/home/lnzliplg/www/gi.tar
__pycache__/types.cpython-36.pyc000064400000020275151734360730012565 0ustar003

��<_�8�@s(ddlmZddlZddlZddlZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZmZddlm	Z	eefddlmZdd	lmZdejko�d knr�dd�Zd
d�ZGdd�de�Zdd�Zdd�ZGdd�de�Ze	je�Gdd�dee�Z dd�Z!dd�Z"Gdd�dee�Z#dS)!�)�absolute_importN�)�TYPE_INVALID)�generate_doc_string)�
InterfaceInfo�
ObjectInfo�
StructInfo�	VFuncInfo�register_interface_info�hook_up_vfunc_implementation�
GInterface)�_gi)�_propertyhelper)�
_signalhelper�cCs
t|d�S)N�__call__)�hasattr)�obj�r�/usr/lib64/python3.6/types.py�callable1srcCs tjdd|�}tjdd|�j�S)Nz(.)([A-Z][a-z]+)z\1_\2z([a-z0-9])([A-Z]))�re�sub�lower)�name�s1rrr�
snake_case5src@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�MetaClassHelpercCs&x |jj�D]}t||j|�qWdS)N)�__info__�get_methods�setattr�__name__)�cls�method_inforrr�_setup_methods;szMetaClassHelper._setup_methodscCsP|j}|j�}|dkrdSx0|j�D]$}|j}t||�s$t||t|��q$WdS)N)rZget_class_structrr!rr �classmethod)r"�infoZclass_structr#rrrr�_setup_class_methods?s
z$MetaClassHelper._setup_class_methodscCs>x8|jj�D]*}|j�jdd�}t||t|j|j��qWdS)N�-�_)rZ
get_fields�get_name�replacer �property�	get_valueZ	set_value)r"Z
field_inforrrr�
_setup_fieldsJszMetaClassHelper._setup_fieldscCs4x.|jj�D] }|j�}|j�}t|||�qWdS)N)rZ
get_constantsr*r-r )r"Z
constant_infor�valuerrr�_setup_constantsOsz MetaClassHelper._setup_constantsc
Csj�xb|jj�D�]R\}}|jd�st|�r0qd}d}x�|jD]�}t||d�}|dk	rht|t�rh|}Pt|d�s@t|j	d�r�q@t
|j	j��}x0|j	j�D]"}|d||j
�fkr�|}d}Pq�W|r@Pq@W|dkr�t|j|td�d��}|dk	r|�sTt||j�}	|	dk	�rT|j�}
td||j	j�|j	j
�|
j�|
j
�|	j	j�|	j	j
�f��t||j|�qWdS)NZdo_Fr�
get_vfuncszdo_%s_%sTzTMethod %s() on class %s.%s is ambiguous with methods in base classes %s.%s and %s.%s)�__dict__�items�
startswithr�__mro__�getattr�
isinstancer	rrrZ
get_type_namer1r*�find_vfunc_info_in_interface�	__bases__�len�find_vfunc_conflict_in_basesZ
get_container�	TypeError�
get_namespacer�	__gtype__)r"�
vfunc_nameZpy_vfuncZskip_ambiguity_check�
vfunc_info�base�methodZ	base_name�vZambiguous_baseZ	base_inforrr�
_setup_vfuncsUsJ
zMetaClassHelper._setup_vfuncscCsh|jjd�}|dks t|t�r$dS|jdkr<|jdkr<dSx&|j�D]}d|j}t|||�qFWdS)Nrzgi.repository.GObjectZObjectzdo_%s)r2�getr7r�
__module__r!r1r )r"Z
class_infor@rrrr�_setup_native_vfuncs�s
z$MetaClassHelper._setup_native_vfuncsN)	r!rF�__qualname__r$r'r.r0rDrGrrrrr:s=rcCs|xv|D]n}|tkst|t�st|d�r,qt|jt�r\x"|jj�D]}|j�|krD|SqDWt|j	|�}|dk	r|SqWdS)Nr)
r�
issubclassrr7rrr1r*r8r9)�basesr?rA�vfuncrrrr8�s
r8cCs~xx|D]p}t|d�st|jd�r&q|jj�}|j�}x$|D]}|j�|kr>||kr>|Sq>Wt||j�}|dk	r|SqWdS)Nrr1)rrr1r*r;r9)rKrJ�klassZvfuncsr?rCZaklassrrrr;�s


r;c@s eZdZdZdd�Zdd�ZdS)�_GObjectMetaBasez8Metaclass for automatically registering GObject classes.cCs4tj||||�tj|�tj|�|j|j�dS)N)�type�__init__�propertyhelperZinstall_properties�signalhelperZinstall_signals�_type_registerr2)r"rrJ�dict_rrrrO�s

z_GObjectMetaBase.__init__cCs2d|krdS|jjd�rdStj||jd��dS)Nr>z
gi.overrides.Z__gtype_name__)rFr4r
Z
type_registerrE)r"�	namespacerrrrR�s
z_GObjectMetaBase._type_registerN)r!rFrH�__doc__rOrRrrrrrM�srMcs4eZdZdZ�fdd�Zdd�Zedd��Z�ZS)�GObjectMetaz+Meta class used for GI GObject based types.cs�tt|�j|||�d}|jd|jj�kr0d}d}|rJ|jtjkrJd}|rX|j�n`|r�t|jt�rp|j	�|j
�|j�|j�t|jt�r�|j
�nt|jt�r�t|jj��dS)NFzgi.repository.T)�superrVrOrFrr=rDr7rr'r$r0rGr.rr
�
get_g_type)r"rrJrSZ
is_gi_definedZis_python_defined)�	__class__rrrO�s&

zGObjectMeta.__init__cCst|�S)N)�mro)r"rrrrZszGObjectMeta.mrocCs@|tkrdS|jjdd�}|dk	r&|S|jjd�r<t|j�SdS)zFMeta class property which shows up on any class using this meta-class.�rUN�gi.repository.�gi.overrides)r\r])rVr2rErFr4rr)r"�docrrrrUs
zGObjectMeta.__doc__)r!rFrHrUrOrZr,�
__classcell__rr)rYrrV�srVcsg}|gg}|jrlxH|jD]>}t|d�r:|t|j�g7}qtjd|t�|t|�g7}qW|t|j�g7}x�|�rx<|D]4}|d��fdd�|D�}|r�t�jkr�d�qzPqzW�dkr�t	d��|j
��x8|dd�D](}|o�|d�kr�|d=|s�|j|�q�WqnW|S)a\Compute the class precedence list (mro) according to C3, with GObject
    interface considerations.

    We override Python's MRO calculation to account for the fact that
    GObject classes are not affected by the diamond problem:
    http://en.wikipedia.org/wiki/Diamond_problem

    Based on http://www.python.org/download/releases/2.3/mro/
    r5zQMixin class %s is an old style class, please update this to derive from "object".rcs g|]}�|dd�kr|�qS)rNr)�.0�s)�	candidaterr�
<listcomp>=szmro.<locals>.<listcomp>Nz8Cannot create a consistent method resolution order (MRO))r9r�listr5�warnings�warn�RuntimeWarningrZrr<�append�remove)�CrJZbases_of_subclassesrAZsubclass_basesZnot_headr)rbrrZs6


rZcOsdS)Nr)�args�kwargsrrr�nothingRsrmcs,eZdZdZ�fdd�Zedd��Z�ZS)�
StructMetaz*Meta class used for GI Struct based types.cs�tt|�j|||�|jj�}|tkr4|jdk	r4dS|j�|j�xN|jj	�D]@}|j
�rP|jdkrP|j�s~|jj
�dkrPt|�|_t|_PqPWdS)N�newr)rWrnrOrrXrZpytyper.r$rZis_constructorr!Z
get_argumentsZget_size�staticmethod�__new__rm)r"rrJrSZg_typer#)rYrrrOYs



zStructMeta.__init__cCs|tkrdSt|j�S)Nr[)rnrr)r"rrrrUoszStructMeta.__doc__)r!rFrHrUrOr,r_rr)rYrrnVsrn)rr)rr)$Z
__future__r�sysrerZ
_constantsrZ	docstringrr
rrrr	r
rrr[rrPrrQ�version_inforr�objectrr8r;rNrMZ_install_metaclassrVrZrmrnrrrr�<module>s,$k
.<__pycache__/_propertyhelper.cpython-36.opt-1.pyc000064400000024315151734360730015602 0ustar003

��<_�:�@s�ddlZddlZddlmZddlmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZejZejZejZej Z ej!Z!ej"Z"ej#Z#ej$Z$ej%d
kr�e&Z'e(Z)ne*Z'e+Z)Gdd�de,�Z-dd	�Z.dS)�N�)�_gi)�	TYPE_NONE�TYPE_INTERFACE�	TYPE_CHAR�
TYPE_UCHAR�TYPE_BOOLEAN�TYPE_INT�	TYPE_UINT�	TYPE_LONG�
TYPE_ULONG�
TYPE_INT64�TYPE_UINT64�	TYPE_ENUM�
TYPE_FLAGS�
TYPE_FLOAT�TYPE_DOUBLE�TYPE_STRING�TYPE_POINTER�
TYPE_BOXED�
TYPE_PARAM�TYPE_OBJECT�
TYPE_PYOBJECT�
TYPE_GTYPE�	TYPE_STRV�TYPE_VARIANT�c@sNeZdZdZeeeeee	e
eee
eeiZedededeeeeeeeeed/iZeeeeed1ed3eeeeeeeeiZedededededede
dededi	Z Gd	d
�d
e!�Z"dddddde#j$ddf	dd
�Z%dd�Z&dd�Z'dd�Z(dd�Z)dd�Z*dd�Z+dd�Z,dd�Z-dd�Z.d d!�Z/d"d#�Z0d$d%�Z1d&d'�Z2d(d)�Z3d*d+�Z4d,d-�Z5dS)4�Propertya�Creates a new Property which when used in conjunction with
    GObject subclass will create a Python property accessor for the
    GObject ParamSpec.

    :param callable getter:
        getter to get the value of the property
    :param callable setter:
        setter to set the value of the property
    :param type type:
        type of property
    :param default:
        default value, must match the property type.
    :param str nick:
        short description
    :param str blurb:
        long description
    :param GObject.ParamFlags flags:
        parameter flags
    :keyword minimum:
        minimum allowed value (int, float, long only)
    :keyword maximum:
        maximum allowed value (int, float, long only)

    .. code-block:: python

         class MyObject(GObject.Object):
             prop = GObject.Property(type=str)

         obj = MyObject()
         obj.prop = 'value'

         obj.prop  # now is 'value'

    The API is similar to the builtin :py:func:`property`:

    .. code-block:: python

        class AnotherObject(GObject.Object):
            value = 0

            @GObject.Property
            def prop(self):
                'Read only property.'
                return 1

            @GObject.Property(type=int)
            def propInt(self):
                'Read-write integer property.'
                return self.value

            @propInt.setter
            def propInt(self, value):
                self.value = value
    r��?r�@�gc@seZdZdd�ZdS)zProperty.__metaclass__cCsdS)Nz<class 'GObject.Property'>�)�selfr"r"�'/usr/lib64/python3.6/_propertyhelper.py�__repr__�szProperty.__metaclass__.__repr__N)�__name__�
__module__�__qualname__r%r"r"r"r$�
__metaclass__�sr)Nc

Cs<d|_|dkrt}|j|�|_|j|�|_|j�t|t�sDt	d��||_
t|t�s\t	d��||_||_||_
|r�|r�|j}n*|r�|r�|j}n|r�|r�|j}|j}|j|�||_|dk	r�||j�kr�t	d|j|j�f��n|j�}||_|	dk	�r$|	|j�k�r,t	d|j|j�f��n|j�}	|	|_d|_dS)Nznick must be a stringzblurb must be a stringz+Minimum for type %s cannot be lower than %dz,Maximum for type %s cannot be higher than %d)�name�object�_type_from_python�type�_get_default�default�_check_default�
isinstance�_basestring�	TypeError�nick�blurb�__doc__�flags�_readonly_setter�_writeonly_getter�_default_getter�_default_setter�getter�fset�_get_minimum�minimum�_get_maximum�maximum�_exc)
r#r<�setterr-r/r4r5r7r?rAr"r"r$�__init__�sL





zProperty.__init__cCsd|jp
dtj|j�fS)Nz<GObject Property %s (%s)>z(uninitialized))r*rZ	type_namer-)r#r"r"r$r%�szProperty.__repr__cCs\|dkr|Sd|_y|j|�}Wn tk
r@tj�d}YnX|jrX|j}d|_|�|S)N)rB�fget�	Exception�	traceback�	print_exc)r#�instance�klass�value�excr"r"r$�__get__�s
zProperty.__get__cCs:|dkrt�d|_|j|j|�|jr6|j}d|_|�dS)N)r3rBZset_propertyr*)r#rIrKrLr"r"r$�__set__�szProperty.__set__cCs
|j|�S)z;Allows application of the getter along with init arguments.)r<)r#rEr"r"r$�__call__�szProperty.__call__cCs |jr|j|_|j|_||_|S)z8Set the getter function to fget. For use as a decorator.)r6r5rE)r#rEr"r"r$r<�s
zProperty.gettercCs||_|js|jj|_|S)z8Set the setter function to fset. For use as a decorator.)r=r*rEr&)r#r=r"r"r$rCs
zProperty.settercCs�||jkr|j|St|t�rBt|tjtjtjtjtj	f�rB|j
S|ttt
ttttttttttttttttttt fkrz|St!d|f��dS)NzUnsupported type: %r)"�_type_from_pytype_lookupr1r-�
issubclassrZGObjectZGEnumZGFlagsZGBoxedZ
GInterface�	__gtype__rrrrr	r
rrrr
rrrrrrrrrrrrr3)r#Ztype_r"r"r$r,s"




zProperty._type_from_pythoncCs|dk	r|S|jj|jd�S)N)�_default_lookup�getr-)r#r/r"r"r$r.&szProperty._get_defaultcCs||j}|j}|tkr.|d
kr.td|f���nJ|tkrJ|dk	rFtd���n.|tkrf|dk	rbtd���ntj|t�r�|dkr�td��ntj||�s�td||f��n�tj|t	�r�tj||�s�td||f��n�tj|t
�o�|dk	�r2t|t��s�td	t
|���xx|D](}t|�ttfk�rtd
t|����qWnFtj|t��rx|dk	�rxt|d��shtj|t��rxtd||f��dS)NTFz%default must be True or False, not %rz)object types does not have default valuesz(GType types does not have default valuesz%enum properties needs a default valuez'enum value %s must be an instance of %rz(flags value %s must be an instance of %rzStrv value %s must be a listz'Strv value %s must contain only stringsrRz*variant value %s must be an instance of %r)TF)r-r/rr3rrrZ	type_is_arrrr1�list�repr�str�bytesr�hasattr)r#�ptyper/�valr"r"r$r0+s>

zProperty._check_defaultcCs|jj|jd�S)N)�_min_value_lookuprTr-)r#r"r"r$r>LszProperty._get_minimumcCs|jj|jd�S)N)�_max_value_lookuprTr-)r#r"r"r$r@OszProperty._get_maximumcCst|d|j|�dS)N�_property_helper_)�setattrr*)r#rIrKr"r"r$r;VszProperty._default_settercCst|d|j|j�S)Nr^)�getattrr*r/)r#rIr"r"r$r:YszProperty._default_gettercCstd|jt|�jf�|_dS)Nz%s property of %s is read-only)r3r*r-r&rB)r#rIrKr"r"r$r8\szProperty._readonly_settercCstd|jt|�jf�|_dS)Nz%s property of %s is write-only)r3r*r-r&rB)r#rIr"r"r$r9`szProperty._writeonly_getterc	Cs�|j}|ttttttttfkr0|j	|j
|jf}nl|tks^|t
ks^|jt�s^|jt�s^|jt�rh|jf}n4|ttfkrzf}n"|jt�s�|jt�r�f}nt|��|j|j|jf||jfS)N)r-r	r
rrr
rrrr?rAr/rrZis_arrrrrrr�NotImplementedErrorr4r5r7)r#rZ�argsr"r"r$�get_pspec_argshs


zProperty.get_pspec_argsll����ll����ll����)6r&r'r(r6�_longr�intr	�boolr�floatrrWrr+rrPr
rrr�
G_MAXFLOAT�G_MAXDOUBLE�G_MININT�	G_MINLONGr
r\�	G_MAXUINT�
G_MAXULONG�G_MAXINT�	G_MAXLONGr]rSr-r)rZPARAM_READWRITErDr%rMrNrOr<rCr,r.r0r>r@r;r:r8r9rcr"r"r"r$r2sh66	
!rcs�jjdi�}g}xp�jj�D]b\}}t|t�r|js<||_|j|krh||j|j�krZqtd|j��|j�||j<|j|�qW|s�dS|�_	d�jks�d�jkr�x4|D],}|j
|jks�|j|j
kr�td�jf��q�Wdd�}|�_�fd	d
�}|�_dS)z�
    Scans the given class for instances of Property and merges them
    into the classes __gproperties__ dict if it exists or adds it if not.
    �__gproperties__z0Property %s was already found in __gproperties__N�do_get_property�do_set_propertyzGObject subclass %r defines do_get/set_property and it also uses a property with a custom setter or getter. This is not allowedcSs|jjdd�}t||d�S)N�-�_)r*�replacer`)r#�pspecr*r"r"r$�obj_get_property�sz,install_properties.<locals>.obj_get_propertycs.|jjdd�}t�|d�}|r*|j||�dS)Nrsrt)r*rur`r=)r#rvrKr*�prop)�clsr"r$�obj_set_property�sz,install_properties.<locals>.obj_set_property)�__dict__rT�itemsr1rr*rc�
ValueError�appendrprEr:r=r;r3r&rqrr)ryZgpropertiesZpropsr*rxrwrzr")ryr$�install_properties{s2


r)rr)/�sysrGr!rZ
_constantsrrrrrr	r
rrr
rrrrrrrrrrrrrrrhrirjrnrlrkrorm�version_inforWr2rerdZ
basestringZlongr+rrr"r"r"r$�<module>s(h
K__pycache__/_propertyhelper.cpython-36.pyc000064400000024315151734360730014643 0ustar003

��<_�:�@s�ddlZddlZddlmZddlmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZejZejZejZej Z ej!Z!ej"Z"ej#Z#ej$Z$ej%d
kr�e&Z'e(Z)ne*Z'e+Z)Gdd�de,�Z-dd	�Z.dS)�N�)�_gi)�	TYPE_NONE�TYPE_INTERFACE�	TYPE_CHAR�
TYPE_UCHAR�TYPE_BOOLEAN�TYPE_INT�	TYPE_UINT�	TYPE_LONG�
TYPE_ULONG�
TYPE_INT64�TYPE_UINT64�	TYPE_ENUM�
TYPE_FLAGS�
TYPE_FLOAT�TYPE_DOUBLE�TYPE_STRING�TYPE_POINTER�
TYPE_BOXED�
TYPE_PARAM�TYPE_OBJECT�
TYPE_PYOBJECT�
TYPE_GTYPE�	TYPE_STRV�TYPE_VARIANT�c@sNeZdZdZeeeeee	e
eee
eeiZedededeeeeeeeeed/iZeeeeed1ed3eeeeeeeeiZedededededede
dededi	Z Gd	d
�d
e!�Z"dddddde#j$ddf	dd
�Z%dd�Z&dd�Z'dd�Z(dd�Z)dd�Z*dd�Z+dd�Z,dd�Z-dd�Z.d d!�Z/d"d#�Z0d$d%�Z1d&d'�Z2d(d)�Z3d*d+�Z4d,d-�Z5dS)4�Propertya�Creates a new Property which when used in conjunction with
    GObject subclass will create a Python property accessor for the
    GObject ParamSpec.

    :param callable getter:
        getter to get the value of the property
    :param callable setter:
        setter to set the value of the property
    :param type type:
        type of property
    :param default:
        default value, must match the property type.
    :param str nick:
        short description
    :param str blurb:
        long description
    :param GObject.ParamFlags flags:
        parameter flags
    :keyword minimum:
        minimum allowed value (int, float, long only)
    :keyword maximum:
        maximum allowed value (int, float, long only)

    .. code-block:: python

         class MyObject(GObject.Object):
             prop = GObject.Property(type=str)

         obj = MyObject()
         obj.prop = 'value'

         obj.prop  # now is 'value'

    The API is similar to the builtin :py:func:`property`:

    .. code-block:: python

        class AnotherObject(GObject.Object):
            value = 0

            @GObject.Property
            def prop(self):
                'Read only property.'
                return 1

            @GObject.Property(type=int)
            def propInt(self):
                'Read-write integer property.'
                return self.value

            @propInt.setter
            def propInt(self, value):
                self.value = value
    r��?r�@�gc@seZdZdd�ZdS)zProperty.__metaclass__cCsdS)Nz<class 'GObject.Property'>�)�selfr"r"�'/usr/lib64/python3.6/_propertyhelper.py�__repr__�szProperty.__metaclass__.__repr__N)�__name__�
__module__�__qualname__r%r"r"r"r$�
__metaclass__�sr)Nc

Cs<d|_|dkrt}|j|�|_|j|�|_|j�t|t�sDt	d��||_
t|t�s\t	d��||_||_||_
|r�|r�|j}n*|r�|r�|j}n|r�|r�|j}|j}|j|�||_|dk	r�||j�kr�t	d|j|j�f��n|j�}||_|	dk	�r$|	|j�k�r,t	d|j|j�f��n|j�}	|	|_d|_dS)Nznick must be a stringzblurb must be a stringz+Minimum for type %s cannot be lower than %dz,Maximum for type %s cannot be higher than %d)�name�object�_type_from_python�type�_get_default�default�_check_default�
isinstance�_basestring�	TypeError�nick�blurb�__doc__�flags�_readonly_setter�_writeonly_getter�_default_getter�_default_setter�getter�fset�_get_minimum�minimum�_get_maximum�maximum�_exc)
r#r<�setterr-r/r4r5r7r?rAr"r"r$�__init__�sL





zProperty.__init__cCsd|jp
dtj|j�fS)Nz<GObject Property %s (%s)>z(uninitialized))r*rZ	type_namer-)r#r"r"r$r%�szProperty.__repr__cCs\|dkr|Sd|_y|j|�}Wn tk
r@tj�d}YnX|jrX|j}d|_|�|S)N)rB�fget�	Exception�	traceback�	print_exc)r#�instance�klass�value�excr"r"r$�__get__�s
zProperty.__get__cCs:|dkrt�d|_|j|j|�|jr6|j}d|_|�dS)N)r3rBZset_propertyr*)r#rIrKrLr"r"r$�__set__�szProperty.__set__cCs
|j|�S)z;Allows application of the getter along with init arguments.)r<)r#rEr"r"r$�__call__�szProperty.__call__cCs |jr|j|_|j|_||_|S)z8Set the getter function to fget. For use as a decorator.)r6r5rE)r#rEr"r"r$r<�s
zProperty.gettercCs||_|js|jj|_|S)z8Set the setter function to fset. For use as a decorator.)r=r*rEr&)r#r=r"r"r$rCs
zProperty.settercCs�||jkr|j|St|t�rBt|tjtjtjtjtj	f�rB|j
S|ttt
ttttttttttttttttttt fkrz|St!d|f��dS)NzUnsupported type: %r)"�_type_from_pytype_lookupr1r-�
issubclassrZGObjectZGEnumZGFlagsZGBoxedZ
GInterface�	__gtype__rrrrr	r
rrrr
rrrrrrrrrrrrr3)r#Ztype_r"r"r$r,s"




zProperty._type_from_pythoncCs|dk	r|S|jj|jd�S)N)�_default_lookup�getr-)r#r/r"r"r$r.&szProperty._get_defaultcCs||j}|j}|tkr.|d
kr.td|f���nJ|tkrJ|dk	rFtd���n.|tkrf|dk	rbtd���ntj|t�r�|dkr�td��ntj||�s�td||f��n�tj|t	�r�tj||�s�td||f��n�tj|t
�o�|dk	�r2t|t��s�td	t
|���xx|D](}t|�ttfk�rtd
t|����qWnFtj|t��rx|dk	�rxt|d��shtj|t��rxtd||f��dS)NTFz%default must be True or False, not %rz)object types does not have default valuesz(GType types does not have default valuesz%enum properties needs a default valuez'enum value %s must be an instance of %rz(flags value %s must be an instance of %rzStrv value %s must be a listz'Strv value %s must contain only stringsrRz*variant value %s must be an instance of %r)TF)r-r/rr3rrrZ	type_is_arrrr1�list�repr�str�bytesr�hasattr)r#�ptyper/�valr"r"r$r0+s>

zProperty._check_defaultcCs|jj|jd�S)N)�_min_value_lookuprTr-)r#r"r"r$r>LszProperty._get_minimumcCs|jj|jd�S)N)�_max_value_lookuprTr-)r#r"r"r$r@OszProperty._get_maximumcCst|d|j|�dS)N�_property_helper_)�setattrr*)r#rIrKr"r"r$r;VszProperty._default_settercCst|d|j|j�S)Nr^)�getattrr*r/)r#rIr"r"r$r:YszProperty._default_gettercCstd|jt|�jf�|_dS)Nz%s property of %s is read-only)r3r*r-r&rB)r#rIrKr"r"r$r8\szProperty._readonly_settercCstd|jt|�jf�|_dS)Nz%s property of %s is write-only)r3r*r-r&rB)r#rIr"r"r$r9`szProperty._writeonly_getterc	Cs�|j}|ttttttttfkr0|j	|j
|jf}nl|tks^|t
ks^|jt�s^|jt�s^|jt�rh|jf}n4|ttfkrzf}n"|jt�s�|jt�r�f}nt|��|j|j|jf||jfS)N)r-r	r
rrr
rrrr?rAr/rrZis_arrrrrrr�NotImplementedErrorr4r5r7)r#rZ�argsr"r"r$�get_pspec_argshs


zProperty.get_pspec_argsll����ll����ll����)6r&r'r(r6�_longr�intr	�boolr�floatrrWrr+rrPr
rrr�
G_MAXFLOAT�G_MAXDOUBLE�G_MININT�	G_MINLONGr
r\�	G_MAXUINT�
G_MAXULONG�G_MAXINT�	G_MAXLONGr]rSr-r)rZPARAM_READWRITErDr%rMrNrOr<rCr,r.r0r>r@r;r:r8r9rcr"r"r"r$r2sh66	
!rcs�jjdi�}g}xp�jj�D]b\}}t|t�r|js<||_|j|krh||j|j�krZqtd|j��|j�||j<|j|�qW|s�dS|�_	d�jks�d�jkr�x4|D],}|j
|jks�|j|j
kr�td�jf��q�Wdd�}|�_�fd	d
�}|�_dS)z�
    Scans the given class for instances of Property and merges them
    into the classes __gproperties__ dict if it exists or adds it if not.
    �__gproperties__z0Property %s was already found in __gproperties__N�do_get_property�do_set_propertyzGObject subclass %r defines do_get/set_property and it also uses a property with a custom setter or getter. This is not allowedcSs|jjdd�}t||d�S)N�-�_)r*�replacer`)r#�pspecr*r"r"r$�obj_get_property�sz,install_properties.<locals>.obj_get_propertycs.|jjdd�}t�|d�}|r*|j||�dS)Nrsrt)r*rur`r=)r#rvrKr*�prop)�clsr"r$�obj_set_property�sz,install_properties.<locals>.obj_set_property)�__dict__rT�itemsr1rr*rc�
ValueError�appendrprEr:r=r;r3r&rqrr)ryZgpropertiesZpropsr*rxrwrzr")ryr$�install_properties{s2


r)rr)/�sysrGr!rZ
_constantsrrrrrr	r
rrr
rrrrrrrrrrrrrrrhrirjrnrlrkrorm�version_inforWr2rerdZ
basestringZlongr+rrr"r"r"r$�<module>s(h
K__pycache__/pygtkcompat.cpython-36.pyc000064400000001162151734360730013755 0ustar003

��<_��@slddlmZddlZddlmZejde�ddlmZmZm	Z	m
Z
mZmZm
Z
mZdddd	d
ddd
gZdS)�)�absolute_importN)�PyGIDeprecationWarningzLgi.pygtkcompat is being deprecated in favor of using "pygtkcompat" directly.)�enable�
enable_gtk�
enable_vte�enable_poppler�
enable_webkit�enable_gudev�
enable_gst�enable_goocanvasrrrrrr	r
r)Z
__future__r�warningsZgir�warnZpygtkcompatrrrrrr	r
r�__all__�rr�#/usr/lib64/python3.6/pygtkcompat.py�<module>s(
__pycache__/module.cpython-36.pyc000064400000013021151734360730012675 0ustar003

��<_Q(�@sddlmZddlZddlZddlmZejddkZy
djZWn e	k
r`ddl
mZYnXddlZddlm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZdd	lm Z m!Z!dd
l"m#Z#m$Z$m%Z%m&Z&m'Z'e
j(�Z)iZ*dd�Z+d
d�Z,Gdd�de-�Z.dd�Z/dS)�)�absolute_importN)�Lock��)�	maketrans�)�
Repository�FunctionInfo�RegisteredTypeInfo�EnumInfo�
ObjectInfo�
InterfaceInfo�ConstantInfo�
StructInfo�	UnionInfo�CallbackInfo�Struct�Boxed�	CCallback�enum_add�enum_register_new_gtype_and_add�	flags_add� flags_register_new_gtype_and_add�
GInterface)�GObjectMeta�
StructMeta)�	TYPE_NONE�
TYPE_BOXED�TYPE_POINTER�	TYPE_ENUM�
TYPE_FLAGScCsP|j�}|s(|j�}|r$|jr$|jStS|j�}|j�}tjd|�}t||�S)Nzgi.repository.)	Z
get_parent�
get_g_type�pytype�object�
get_namespace�get_name�	importlib�
import_module�getattr)�object_infoZparent_object_infoZgtype�	namespace�name�module�r-�/usr/lib64/python3.6/module.py�get_parent_for_objectLs
r/cCsHg}x>|j�D]2}|j�}|j�}tjd|�}|jt||��qW|S)Nzgi.repository.)Zget_interfacesr$r%r&r'�appendr()r)�
interfacesZinterface_infor*r+r,r-r-r.�get_interfaces_for_objectcsr2c@s2eZdZdZddd�Zdd�Zdd�Zd	d
�ZdS)�IntrospectionModuleaUAn object which wraps an introspection typelib.

    This wrapping creates a python module like representation of the typelib
    using gi repository as a foundation. Accessing attributes of the module
    will dynamically pull them in and create wrappers for the members.
    These members are then cached on this introspection module.
    NcCsltj||�||_||_d||_tj|j�}|g|_trH|jd�g|_|jdkr`tj	|j�|_t
�|_dS)z"Might raise gi._gi.RepositoryErrorzgi.repository.zUTF-8N)�
repositoryZrequire�
_namespaceZ_version�__name__�get_typelib_path�__path__�	_have_py3�decodeZget_versionr�_lock)�selfr*�version�pathr-r-r.�__init__vs

zIntrospectionModule.__init__c
s�tj|j|�}|s$td|j|f��t|t��r<|j�}|j��|j	}|dk�r|j
�r�|jt�rlt
|�}q�|tksxt�t|�}n(|jt�r�t|�}n|tks�t�t|�}||_d|j�|_tdd�}x2|j�D]&}|j�j|�}t||||j���q�Wx |j�D]}t||j|��qW|tk�r.||_	WdQRX�n�t|t��r�|j�}t|t��r�t |��t!�fdd�t"|�D��}	�f|	}
t#}n�t|t$��r�t%f}
t#}n�t|t&��r�t'f}
t#}ntt|t(t)f��r*|jt*��r�t+f}
nB|jt,��s|tk�s|j-|k�rt.f}
nt/d|j�|j0�f��t1}nt2|��|j�f|tk�rl|j	}|dk	�rl||
k�rl||j3|<|S|d|j|d�}
|||
|
�}|tk�r�||_	WdQRXn0t|t4��r�|}nt|t5��r�|j�}nt2|��||j3|<|S)	Nz%r object has no attribute %rzgi.repository.ZabcdefgjhijklmnopqrstuvwxyzZABCDEFGJHIJKLMNOPQRSTUVWXYZc3s|]}t�|�s|VqdS)N)�
issubclass)�.0Z	interface)�parentr-r.�	<genexpr>�sz2IntrospectionModule.__getattr__.<locals>.<genexpr>z$unable to create a wrapper for %s.%s)�__info__�
__module__Z	__gtype__)6r4Zfind_by_namer5�AttributeErrorr6�
isinstancerr!r;r"Zis_flagsZis_ar rr�AssertionErrorrrrrrDr$rErZ
get_valuesZget_name_unescaped�	translate�setattrZ	get_valueZget_methodsr
rr/�tupler2rrrr
rrrrrrZfundamentalr�	TypeErrorr%r�NotImplementedError�__dict__r	r)r<r+�infoZg_type�wrapperZascii_upper_transZ
value_infoZ
value_nameZmethod_infor1�bases�	metaclassZtype_Zdict_r-)rBr.�__getattr__�s�













zIntrospectionModule.__getattr__cCs(tj|j�}tr|jd�}d|j|fS)NzUTF-8z <IntrospectionModule %r from %r>)r4r7r5r9r:)r<r>r-r-r.�__repr__�s
zIntrospectionModule.__repr__cCsFtt|j��}|j|jj��tj|j�}|jdd�|D��t	|�S)Ncss |]}t|t�s|j�VqdS)N)rGrr%)rArOr-r-r.rCsz.IntrospectionModule.__dir__.<locals>.<genexpr>)
�set�dir�	__class__�updaterN�keysr4Z	get_infosr5�list)r<�resultZnamespace_infosr-r-r.�__dir__�s
zIntrospectionModule.__dir__)N)r6rE�__qualname__�__doc__r?rSrTr\r-r-r-r.r3ns

lr3cCs0|tkrt|Stj|�}t||�}|t|<|S)z�
    :Returns:
        An object directly wrapping the gi module without overrides.

    Might raise gi._gi.RepositoryError
    )�_introspection_modules�giZget_required_versionr3)r*r=r,r-r-r.�get_introspection_modules

ra)0Z
__future__r�sysr&Z	threadingr�version_infor9rrF�stringr`Z_girr	r
rrr
rrrrrrrrrrrr�typesrrZ
_constantsrrrrr Zget_defaultr4r_r/r2r#r3rar-r-r-r.�<module>s&
P__pycache__/_option.cpython-36.opt-1.pyc000064400000025177151734360730014035 0ustar003

��<_�3�	@s�dZddlZddlZddlmZmZmZmZmZddlm	Z	ej
dkrTeZdd�Z
neZeZ
dd	lmZdd
lmZe	d�Zejej��Zdd
dddddddg	ZGdd�dej�ZGdd�dej�ZGdd�dej�ZeZdS)a,GOption command line parser

Extends optparse to use the GOptionGroup, GOptionEntry and GOptionContext
objects. So it is possible to use the gtk, gnome_program and gstreamer command
line groups and contexts.

Use this interface instead of the raw wrappers of GOptionContext and
GOptionGroup in glib.
�N)�
OptParseError�OptionError�OptionValueError�BadOptionError�OptionConflictError�)�get_introspection_module�cCs|j�S)N)�encode)�s�r�/usr/lib64/python3.6/_option.py�<lambda>&sr)�_gi)�GError�GLibrrrrr�Option�OptionGroup�OptionParser�make_optionc@sPeZdZdZejjdZejjdddgZdej	Z
dd�Zd	d
�Zdd�Z
d
S)ra�Represents a command line option

    To use the extended possibilities of the GOption API Option
    (and make_option) are extended with new types and attributes.

    Types:
        filename   The supplied arguments are read as filename, GOption
                   parses this type in with the GLib filename encoding.

    :ivar optional_arg:
        This does not need a arguement, but it can be supplied.
    :ivar hidden:
        The help list does not show this option
    :ivar in_main:
        This option apears in the main group, this should only
        be used for backwards compatibility.

    Use Option.REMAINING as option name to get all positional arguments.

    .. NOTE::
        Every argument to an option is passed as utf-8 coded string, the only
        exception are options which use the 'filename' type, its arguments
        are passed as strings in the GLib filename encoding.

    For further help, see optparse.Option.
    �filename�hidden�in_main�optional_argz--cOsXtjj|f|�|�|js"td��t|j�t|j�kr>td��|jsTtd|jd��dS)Nz!%s at least one long option name.z;%s at least more long option names than short option names.z%s needs a help message.r)�optparser�__init__�
_long_opts�
ValueError�len�_short_opts�help)�self�args�kwargsrrr
reszOption.__init__cCsF|j|kr|jj|j�tjj||�t|j�t|j�krBtd��dS)NzCgoption.Option needs more long option names than short option names)	�	REMAININGr�appendrr�_set_opt_stringrrr)r!Zoptsrrr
r&qs

zOption._set_opt_stringccs�d}|jr|tjjO}|jr(|tjjO}|j�rD|jrP|tjjO}n|tjj	O}|j
dkrf|tjjO}x>t|j
|j�D],\}}|dd�t|d�||j|jfVqvWx<|j
t|j�d�D]$}|dd�td�||j|jfVq�WdS)Nrr�r�)rrZOptionFlagsZHIDDENrZIN_MAINZtakes_valuerZOPTIONAL_ARGZNO_ARG�typeZFILENAME�ziprr�_bytesr �metavarr)r!�flagsZ	long_nameZ
short_namerrr
�_to_goptionentriesys
(zOption._to_goptionentriesN)r)�__name__�
__module__�__qualname__�__doc__rrZTYPESZATTRSrZOPTION_REMAININGr$rr&r.rrrr
r>s
c@s<eZdZdZddd�Zdd�Zdd	�Zdd
d�Zdd
�ZdS)ra�A group of command line options.

    :param str name:
        The groups name, used to create the --help-{name} option
    :param str description:
        Shown as title of the groups help view
    :param str help_description:
        Shown as help to the --help-{name} option
    :param list option_list:
        The options used in this group, must be option.Option()
    :param dict defaults:
        A dicitionary of default values
    :param translation_domain:
           Sets the translation domain for gettext().

    .. NOTE::
        This OptionGroup does not exactly map the optparse.OptionGroup
        interface. There is no parser object to supply, but it is possible
        to set default values and option_lists. Also the default values and
        values are not shared with the OptionParser.

    To pass a OptionGroup into a function which expects a GOptionGroup (e.g.
    gnome_program_init() ). OptionGroup.get_option_group() can be used.

    For further help, see optparse.OptionGroup.
    �NcCsZtjj|td|�||_d|_||_|r.||_d|_||_	|rVx|D]}|j
|�qDWdS)N�error)rZOptionContainerrr�name�parser�help_description�defaults�values�translation_domainZ
add_option)r!r5�descriptionr7�option_listr8r:�optionrrr
r�s
zOptionGroup.__init__cCsg|_|j�dS)N)r<Z_create_option_mappings)r!rrr
�_create_option_list�szOptionGroup._create_option_listcsf��fdd�}tj�j�j�j|�}�jr6|j�j�g}x�jD]}|j|j	��qBW|j
|�|S)Ncs�|jd�r�j|}n
�j|}y|j||�j��WnJtk
r�tj�d}tt	|��}t
|_tj
j|_t	|�|_|�YnXdS)Nz--r)�
startswith�	_long_opt�
_short_opt�processr9r�sys�exc_infor�str�OPTION_CONTEXT_ERROR_QUARK�domainrr�	BAD_VALUE�code�message)�option_name�option_value�group�optr4Zgerror)r6r!rr
�callback�s



z.OptionGroup._to_goptiongroup.<locals>.callback)rrr5r;r7r:Zset_translation_domainr<�extendr.�add_entries)r!r6rOrMZentriesr=r)r6r!r
�_to_goptiongroup�s

zOptionGroup._to_goptiongroupcCs|j�|j|�S)z� Returns the corresponding GOptionGroup object.

        Can be used as parameter for gnome_program_init(), gtk_init().
        )�set_values_to_defaultsrR)r!r6rrr
�get_option_group�szOptionGroup.get_option_groupcCsVxB|jD]8}|jj|j�}t|t�r|j�}|j||�|j|j<qWtj	|j�|_
dS)N)r<r8�get�dest�
isinstance�_basestringZget_opt_stringZcheck_valuerZValuesr9)r!r=�defaultZopt_strrrr
rS�s
z"OptionGroup.set_values_to_defaults)r3NNN)N)	r/r0r1r2rr>rRrTrSrrrr
r�s

c@sJeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	ddd�Z
dS)raHCommand line parser with GOption support.

    :param bool help_enabled:
        The --help, --help-all and --help-{group} options are enabled (default).
    :param bool ignore_unknown_options:
        Do not throw a exception when a option is not knwon, the option
        will be in the result list.

    .. NOTE::
        The OptionParser interface is not the exactly the same as the
        optparse.OptionParser interface. Especially the usage parameter
        is only used to show the metavar of the arguements.

    OptionParser.add_option_group() does not only accept OptionGroup instances
    but also glib.OptionGroup, which is returned by gtk_get_option_group().

    Only glib.option.OptionGroup and glib.option.Option instances should
    be passed as groups and options.

    For further help, see optparse.OptionParser.
    cOsLd|krt|d<|jdd�|_|jdd�|_tjj|f|�ddi|��dS)NZoption_class�help_enabledT�ignore_unknown_optionsFZadd_help_option)r�poprZr[rrr)r!r"r#rrr
r
s
zOptionParser.__init__cCs8|dkrd|_n$|jd�r.|td�d�|_n||_dS)Nr3z%prog)�usager?r)r!r]rrr
�	set_usages

zOptionParser.set_usagec
s��jr�jd�j}n�j}tj|�}|j�j�|j�j�x4�jD]*}t	|tj
�r^|}n
|j��}|j|�qHW��fdd�}tj
ddd|�}g}x�j
D]}	|j|	j��q�W|j|�|j|�|S)Nz - cs4|jd�r�j|}n
�j|}|j||���dS)Nz--)r?r@rArB)rKrLrMrN)r!r9rr
rO+s

z1OptionParser._to_goptioncontext.<locals>.callback)r;r]rZ
OptionContextZset_help_enabledrZZset_ignore_unknown_optionsr[�
option_groupsrWrrTZ	add_groupr<rPr.rQZset_main_group)
r!r9Zparameter_string�contextZoption_groupZg_grouprOZ
main_groupZmain_entriesr=r)r!r9r
�_to_goptioncontexts&



zOptionParser._to_goptioncontextcOs�t|dt�r,tjj|t|f|�|��dSt|�dkr�|r�t|dt�rv|djs`||d_|dj|k	rvtd��t|dt	j�r�|j
j|d�dStjj|f|�|�dS)Nrrz"invalid OptionGroup (wrong parser))rWrXrr�add_option_grouprrr6rrr_r%)r!r"r#rrr
rb;s

zOptionParser.add_option_groupcCs:|jdd�}x&|jD]}t|tj�r|j|j�qW|S)N)r<r_rWrrrP)r!�optionsrMrrr
�_get_all_optionsKs
zOptionParser._get_all_optionscCs4|j|�}|jtjdg|�dd�|dd�<dS)Nrr)ra�parserC�argv)r!ZlargsZrargsr9r`rrr
�
_process_argsRs
zOptionParser._process_argsNc	
Cs�|pg}ytjj|||�\}}Wn|tk
r�tj�d}|jtkrH�|jt	j
jkrbt|j
��n6|jt	j
jkr|t|j
��n|jt	j
jkr�t|j
��n�YnXx4|jD]*}x$|jjj�D]\}}|j||�q�Wq�W|dt|��}||fS)Nrr')rr�
parse_argsrrCrDrGrFrIrrrHrrJZUNKNOWN_OPTIONrZFAILEDrr_r9�__dict__�itemsZensure_valuer)	r!r"r9Zold_argsrcr4rM�key�valuerrr
rhZs(
zOptionParser.parse_args)NN)r/r0r1r2rr^rarbrdrgrhrrrr
r�s	 )r	r)r2rCrrrrrr�moduler�version_inforErXr+Z
basestringZgirZ	gi._errorrrZquark_to_stringZoption_error_quarkrF�__all__rrrrrrrr
�<module>s6

Ta__pycache__/_error.cpython-36.pyc000064400000002655151734360740012714 0ustar003

��<_ �@sGdd�de�ZdS)csJeZdZd�fdd�	Zdd�Zdd	�Zd
d�Zdd
�Zedd��Z	�Z
S)�GError�
unknown error�
pygi-error�cs&tt|�j|�||_||_||_dS)N)�superr�__init__�message�domain�code)�selfrrr	)�	__class__��/usr/lib64/python3.6/_error.pyrszGError.__init__cCsd|j|j|jfS)Nz%s: %s (%d))rrr	)r
rrr
�__str__%szGError.__str__cCsdtjtj|j|j|jfS)Nz%s.%s('%s', '%s', %d))r�
__module__�__name__rrr	)r
rrr
�__repr__(s
zGError.__repr__cCst|j|j|j�S)N)rrrr	)r
rrr
�copy,szGError.copycCst�dS)z:Placeholder that will be monkey patched in GLib overrides.N)�NotImplementedError)r
rr	rrr
�matches/szGError.matchescCst�dS)z:Placeholder that will be monkey patched in GLib overrides.N)r)rrr	rrr
�new_literal3szGError.new_literal)rrr)rr�__qualname__rrrrr�staticmethodr�
__classcell__rr)rr
rsrN)�RuntimeErrorrrrrr
�<module>s__pycache__/docstring.cpython-36.pyc000064400000007327151734360740013421 0ustar003

��<_ �,@s�ddlmZmZmZmZmZmZmZdadd�Z	dd�Z
dd�Zeje
ejeejeejeejeejeejeejeejeejeejeejeejeejeejeej e!ej"e!ej#e!ej$dej%dej&dej'diZ(d	d
�Z)dd�Z*d
d�Z+dd�Z,e	e,�dS)�)�	VFuncInfo�FunctionInfo�CallableInfo�
ObjectInfo�
StructInfo�	Direction�TypeTagNcCs|adS)z�Set doc string generator function

    :param callable func:
        Callable which takes a GIInfoStruct and returns documentation for it.
    N)�_generate_doc_string_func)�func�r�!/usr/lib64/python3.6/docstring.py�set_doc_string_generator%sr
cCstS)z6Returns the currently registered doc string generator.)r	rrrr�get_doc_string_generator/srcCst|�S)aEGenerate a doc string given a GIInfoStruct.

    :param gi.types.BaseInfo info:
        GI info instance to generate documentation for.
    :returns:
        Generated documentation as a string.
    :rtype: str

    This passes the info struct to the currently registered doc string
    generator and returns the result.
    )r	)�inforrr�generate_doc_string4srcCsf|j�}tj|d�}|r(t|d�r(|jS|tjkr^|j�}|j�}|sN|j	�Sd|j
�|fS|j	�S)N�__name__z%s.%s)Zget_tag�_type_tag_to_py_type�get�hasattrrr�	INTERFACEZ
get_interface�get_nameZget_tag_as_stringZ
get_namespace)Zgi_typeZtype_tagZpy_typeZifaceZ	info_namerrr�_get_pytype_hint\s
rc
Csg}t|t�rdg}nt|t�r.|j�r.dg}|j�}d
}t�}t�}x:|D]2}|j|j��|j|j�j	��|j|j
��qLWx�t|�D]�\}}|j�t
jkr�q�||kr�q�|j�}t|j��}	|	|kr�|d|	7}|j�s�||kr�|d7}n|j��r|d7}|j|�q�Wdj|�}
g}t|j��}|j��rf|�rf||k�rf|}|j��r\|d7}|j|�xlt|�D]`\}}|j�t
jk�r��qp||k�r��qp|j�}t|j��}	|	|k�r�|d|	7}|j|��qpW|�r�d|j|
dj|�fSd	|j|
fSdS)N�self�void�:z=Nonez=<optional>z, z or Nonez%s(%s) -> %sz%s(%s))r)�
isinstancerrZ	is_methodZ
get_arguments�set�addZget_destroyZget_typeZget_array_lengthZget_closure�	enumerateZ
get_directionrZOUTrrZmay_be_nullZis_optional�append�joinZget_return_typeZskip_returnZmay_return_null�INr)
rZin_args_strs�argsZhint_blacklistZignore_indicesZuser_data_indices�arg�iZargstrZhintZin_args_strZ
out_args_strsZreturn_hintrrr�_generate_callable_info_docnsb









r%cCs�d}d}t|t�r4|j�dkrH|d|j�d7}n|d|j�d7}x,|j�D] }|j�rR|dt|�d7}qRW|r�||SdSdS)Nz
:Constructors:

::

��z    z()
z(**properties)
�
)rrZget_sizerZget_methodsZis_constructorr%)r�header�docZmethod_inforrr�_generate_class_info_doc�s
r+cCs,t|ttf�rt|�St|t�r(t|�SdS)Nr&)rrrr+rr%)rrrr�_generate_doc_dispatch�s

r,)-Z_girrrrrrrr	r
rrZBOOLEAN�boolZINT8�intZUINT8ZINT16ZUINT16ZINT32ZUINT32ZINT64ZUINT64ZFLOAT�floatZDOUBLEZGLIST�listZGSLISTZARRAYZGHASH�dictZUTF8�strZFILENAMEZUNICHARrZGTYPEZERRORZVOIDrrr%r+r,rrrr�<module>s>$

@
__pycache__/importer.cpython-36.opt-1.pyc000064400000006456151734360740014227 0ustar003

��<_��@s�ddlmZddlZddlZddlZddlmZddlZddlm	Z	m
Z
ddlmZddlm
Z
ddlmZe	j�ZiZed	d
��Zdd�ZGd
d�de�ZdS)�)�absolute_importN)�contextmanager�)�
Repository�RepositoryError)�PyGIWarning)�get_introspection_module)�load_overridesccs^tj|�}dV|rdS|dkr$dStj|�dk	r6dStj|�}tjd||d�t|d�dS)	aOA context manager which tries to give helpful warnings
    about missing gi.require_version() which could potentially
    break code if only an older version than expected is installed
    or a new version gets introduced.

    ::

        with _check_require_version("Gtk", stacklevel):
            load_namespace_and_overrides()
    N�GLib�GObject�Gioz�%(namespace)s was imported without specifying a version first. Use gi.require_version('%(namespace)s', '%(version)s') before import to ensure that the right version gets loaded.)�	namespace�version)�
stacklevel)r
rr)�
repository�
is_registered�giZget_required_versionZget_version�warnings�warnr)r
rZ
was_loadedr�r� /usr/lib64/python3.6/importer.py�_check_require_version+s


rcCsZtjdd�}|dkr"|rdSdS|dkr6|r2dSdS|d	krJ|rFdSdS|rRdSdSdS)
a2Returns the stacklevel value for warnings.warn() for when the warning
    gets emitted by an imported module, but the warning should point at the
    code doing the import.

    Pass import_hook=True if the warning gets generated by an import hook
    (warn() gets called in load_module(), see PEP302)
    N�����
)rr)rr)rr)�sys�version_info)�import_hook�
py_versionrrr�get_import_stacklevelRs	r!c@s&eZdZdd�Zddd�Zdd�ZdS)	�DynamicImportercCs
||_dS)N)�path)�selfr#rrr�__init__lszDynamicImporter.__init__NcCsV|j|j�sdS|jdd�\}}||jkr.dStj|�sBtj|�rF|Std|��dS)N�.rz6cannot import name %s, introspection typelib not found)�
startswithr#�rsplitrrZenumerate_versions�ImportError)r$�fullnamer#r
rrr�find_moduleos


zDynamicImporter.find_modulec	Cs�|tjkrtj|S|jdd�\}}tdd�}t||d��ryt|�}Wn*tk
rr}zt|��WYdd}~XnXx*tj	|�D]}t
jd|jd�d�q�Wt
|�}WdQRXd	||_||_|tj|<|S)
Nr&rT)r)rzgi.repository.�-rz<%s>)r�modulesr(r!rrrr)rZget_immediate_dependencies�	importlib�
import_module�splitr	�__file__�
__loader__)	r$r*r#r
rZintrospection_module�eZdepZdynamic_modulerrr�load_module�s 




zDynamicImporter.load_module)N)�__name__�
__module__�__qualname__r%r+r4rrrrr"hs
r")Z
__future__rrrr.�
contextlibrrZ_girrr�modulerZ	overridesr	Zget_defaultrr-rr!�objectr"rrrr�<module>s'__pycache__/_constants.cpython-36.pyc000064400000001735151734360740013575 0ustar003

��<_��@s
ddlmZejZejd�Zejd�Zejd�Zejd�Zejd�Zejd�Z	ejd�Z
ejd	�Zejd
�Zejd�Z
ejd�Zejd
�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Ze
ZdS)�)�_gi�voidZ
GInterfaceZgcharZgucharZgbooleanZgintZguintZglongZgulongZgint64Zguint64ZGEnumZGFlagsZgfloatZgdoubleZ
gchararrayZgpointerZGBoxedZGParamZGObjectZPyObjectZGTypeZGStrvZGVariantN)�rZTYPE_INVALIDZtype_from_nameZ	TYPE_NONEZTYPE_INTERFACEZ	TYPE_CHARZ
TYPE_UCHARZTYPE_BOOLEANZTYPE_INTZ	TYPE_UINTZ	TYPE_LONGZ
TYPE_ULONGZ
TYPE_INT64ZTYPE_UINT64Z	TYPE_ENUMZ
TYPE_FLAGSZ
TYPE_FLOATZTYPE_DOUBLEZTYPE_STRINGZTYPE_POINTERZ
TYPE_BOXEDZ
TYPE_PARAMZTYPE_OBJECTZ
TYPE_PYOBJECTZ
TYPE_GTYPEZ	TYPE_STRVZTYPE_VARIANTZTYPE_UNICHAR�rr�"/usr/lib64/python3.6/_constants.py�<module>s4























__pycache__/__init__.cpython-36.pyc000064400000010427151734360740013157 0ustar003

��<_n�@s�ddlmZddlmZeee�ZddlZddlZddlZddl	Z	dZ
dejkrXee
��ddl
mZddlmZdd	lmZdd
lmZddlmZeZeZeZiZejjejje�d�Ze	jd
�Zeejej<eje_eje_ejdd�Zdje�ZGdd�de	j�Z e de
�ejd<e de
�ejd<e de
�ejd<e de
�ejd<e de
�ejd<dd�Z!dd�Z"dd�Z#dd�Z$ddd�Z%dS) �)�absolute_import)�extend_pathNz�When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183Zgobject�)�_gi)�_API)�
Repository)�PyGIDeprecationWarning)�PyGIWarningZ	overrideszgi._gobjectz{0}.{1}.{2}c@seZdZdZdd�ZdS)�_DummyStaticModuleNcCstt��dS)N)�AttributeError�_static_binding_error)�self�name�r� /usr/lib64/python3.6/__init__.py�__getattr__Dsz_DummyStaticModule.__getattr__)�__name__�
__module__�__qualname__�__path__rrrrrr
Asr
ZglibZgioZgtkzgtk.gdkcCs@t|t�r ttt|jd���}n|}|tkr<td|tf��dS)N�.zNpygobject's version %s required, and available version %s is not recent enough)	�
isinstance�str�tuple�map�int�split�version_info�
ValueError�__version__)�versionZversion_listrrr�
check_versionOs
r!cCs�tj�}tjddkr*t|t�s<td��nt|t�s<td��||j�krj|j	|�}||krjtd||f��|t
kr�t
||kr�td|t
|f��|j|�}|s�td|��||kr�td||f��|t
|<dS)	a� Ensures the correct versions are loaded when importing `gi` modules.

    :param namespace: The name of module to require.
    :type namespace: str
    :param version: The version of module to require.
    :type version: str
    :raises ValueError: If module/version is already loaded, already required, or unavailable.

    :Example:

    .. code-block:: python

        import gi
        gi.require_version('Gtk', '3.0')

    r�z'Namespace version needs to be a string.z.Namespace %s is already loaded with version %sz(Namespace %s already requires version %szNamespace %s not availablez)Namespace %s not available for version %sN)rZget_default�sysrrZ
basestringrrZget_loaded_namespacesZget_version�	_versionsZenumerate_versions)�	namespacer Z
repositoryZloaded_versionZavailable_versionsrrr�require_version\s*




r&cCs$x|j�D]\}}t||�q
WdS)a3 Utility function for consolidating multiple `gi.require_version()` calls.

    :param requires: The names and versions of modules to require.
    :type requires: dict

    :Example:

    .. code-block:: python

        import gi
        gi.require_versions({'Gtk': '3.0', 'GLib': '2.0', 'Gio': '2.0'})
    N)�itemsr&)ZrequiresZmodule_nameZmodule_versionrrr�require_versions�s
r(cCstj|d�S)N)r$�get)r%rrr�get_required_version�sr*cCsPytj||�Wn.tk
r>}ztt|���WYdd}~XnXtjd|�dS)a�Ensure the given foreign marshaling module is available and loaded.

    :param str namespace:
        Introspection namespace of the foreign module (e.g. "cairo")
    :param symbol:
        Optional symbol typename to ensure a converter exists.
    :type symbol: str or None
    :raises: ImportError

    :Example:

    .. code-block:: python

        import gi
        import cairo
        gi.require_foreign('cairo')

    Nz
gi.repository)r�require_foreign�	Exception�ImportErrorr�	importlib�
import_module)r%Zsymbol�errrr+�s
r+)N)&Z
__future__rZpkgutilrrrr#�osr.�typesr�modulesr-�rrrrr	r$�path�join�dirname�__file__Z
_overridesdir�
ModuleTypeZ_gobjectZ_PyGObject_APIZpygobject_versionr�formatrr
r!r&r(r*r+rrrr�<module>sH




/__pycache__/pygtkcompat.cpython-36.opt-1.pyc000064400000001162151734360740014715 0ustar003

��<_��@slddlmZddlZddlmZejde�ddlmZmZm	Z	m
Z
mZmZm
Z
mZdddd	d
ddd
gZdS)�)�absolute_importN)�PyGIDeprecationWarningzLgi.pygtkcompat is being deprecated in favor of using "pygtkcompat" directly.)�enable�
enable_gtk�
enable_vte�enable_poppler�
enable_webkit�enable_gudev�
enable_gst�enable_goocanvasrrrrrr	r
r)Z
__future__r�warningsZgir�warnZpygtkcompatrrrrrr	r
r�__all__�rr�#/usr/lib64/python3.6/pygtkcompat.py�<module>s(
__pycache__/_constants.cpython-36.opt-1.pyc000064400000001735151734360740014534 0ustar003

��<_��@s
ddlmZejZejd�Zejd�Zejd�Zejd�Zejd�Zejd�Z	ejd�Z
ejd	�Zejd
�Zejd�Z
ejd�Zejd
�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�Ze
ZdS)�)�_gi�voidZ
GInterfaceZgcharZgucharZgbooleanZgintZguintZglongZgulongZgint64Zguint64ZGEnumZGFlagsZgfloatZgdoubleZ
gchararrayZgpointerZGBoxedZGParamZGObjectZPyObjectZGTypeZGStrvZGVariantN)�rZTYPE_INVALIDZtype_from_nameZ	TYPE_NONEZTYPE_INTERFACEZ	TYPE_CHARZ
TYPE_UCHARZTYPE_BOOLEANZTYPE_INTZ	TYPE_UINTZ	TYPE_LONGZ
TYPE_ULONGZ
TYPE_INT64ZTYPE_UINT64Z	TYPE_ENUMZ
TYPE_FLAGSZ
TYPE_FLOATZTYPE_DOUBLEZTYPE_STRINGZTYPE_POINTERZ
TYPE_BOXEDZ
TYPE_PARAMZTYPE_OBJECTZ
TYPE_PYOBJECTZ
TYPE_GTYPEZ	TYPE_STRVZTYPE_VARIANTZTYPE_UNICHAR�rr�"/usr/lib64/python3.6/_constants.py�<module>s4























__pycache__/module.cpython-36.opt-1.pyc000064400000012743151734360750013650 0ustar003

��<_Q(�@sddlmZddlZddlZddlmZejddkZy
djZWn e	k
r`ddl
mZYnXddlZddlm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZdd	lm Z m!Z!dd
l"m#Z#m$Z$m%Z%m&Z&m'Z'e
j(�Z)iZ*dd�Z+d
d�Z,Gdd�de-�Z.dd�Z/dS)�)�absolute_importN)�Lock��)�	maketrans�)�
Repository�FunctionInfo�RegisteredTypeInfo�EnumInfo�
ObjectInfo�
InterfaceInfo�ConstantInfo�
StructInfo�	UnionInfo�CallbackInfo�Struct�Boxed�	CCallback�enum_add�enum_register_new_gtype_and_add�	flags_add� flags_register_new_gtype_and_add�
GInterface)�GObjectMeta�
StructMeta)�	TYPE_NONE�
TYPE_BOXED�TYPE_POINTER�	TYPE_ENUM�
TYPE_FLAGScCsP|j�}|s(|j�}|r$|jr$|jStS|j�}|j�}tjd|�}t||�S)Nzgi.repository.)	Z
get_parent�
get_g_type�pytype�object�
get_namespace�get_name�	importlib�
import_module�getattr)�object_infoZparent_object_infoZgtype�	namespace�name�module�r-�/usr/lib64/python3.6/module.py�get_parent_for_objectLs
r/cCsHg}x>|j�D]2}|j�}|j�}tjd|�}|jt||��qW|S)Nzgi.repository.)Zget_interfacesr$r%r&r'�appendr()r)�
interfacesZinterface_infor*r+r,r-r-r.�get_interfaces_for_objectcsr2c@s2eZdZdZddd�Zdd�Zdd�Zd	d
�ZdS)�IntrospectionModuleaUAn object which wraps an introspection typelib.

    This wrapping creates a python module like representation of the typelib
    using gi repository as a foundation. Accessing attributes of the module
    will dynamically pull them in and create wrappers for the members.
    These members are then cached on this introspection module.
    NcCsltj||�||_||_d||_tj|j�}|g|_trH|jd�g|_|jdkr`tj	|j�|_t
�|_dS)z"Might raise gi._gi.RepositoryErrorzgi.repository.zUTF-8N)�
repositoryZrequire�
_namespaceZ_version�__name__�get_typelib_path�__path__�	_have_py3�decodeZget_versionr�_lock)�selfr*�version�pathr-r-r.�__init__vs

zIntrospectionModule.__init__c
s�tj|j|�}|s$td|j|f��t|t��r"|j�}|j��|j	}|dk�r|j
�rv|jt�rlt
|�}q�t|�}n|jt�r�t|�}nt|�}||_d|j�|_tdd�}x2|j�D]&}|j�j|�}t||||j���q�Wx|j�D]}t||j|�q�W|tk�r||_	WdQRX�n�t|t��r�|j�}t|t��rtt|��t �fdd�t!|�D��}	�f|	}
t"}n�t|t#��r�t$f}
t"}n�t|t%��r�t&f}
t"}ntt|t't(f��r|jt)��r�t*f}
nB|jt+��s�|tk�s�|j,|k�r�t-f}
nt.d|j�|j/�f��t0}nt1|��|j�f|tk�rR|j	}|dk	�rR||
k�rR||j2|<|S|d|j|d�}
|||
|
�}|tk�r�||_	WdQRXn0t|t3��r�|}nt|t4��r�|j�}nt1|��||j2|<|S)	Nz%r object has no attribute %rzgi.repository.ZabcdefgjhijklmnopqrstuvwxyzZABCDEFGJHIJKLMNOPQRSTUVWXYZc3s|]}t�|�s|VqdS)N)�
issubclass)�.0Z	interface)�parentr-r.�	<genexpr>�sz2IntrospectionModule.__getattr__.<locals>.<genexpr>z$unable to create a wrapper for %s.%s)�__info__�
__module__Z	__gtype__)5r4Zfind_by_namer5�AttributeErrorr6�
isinstancerr!r;r"Zis_flagsZis_ar rrrrrrDr$rErZ
get_valuesZget_name_unescaped�	translate�setattrZ	get_valueZget_methodsrr
rr/�tupler2rrrr
rrrrrrZfundamentalr�	TypeErrorr%r�NotImplementedError�__dict__r	r)r<r+�infoZg_type�wrapperZascii_upper_transZ
value_infoZ
value_nameZmethod_infor1�bases�	metaclassZtype_Zdict_r-)rBr.�__getattr__�s�













zIntrospectionModule.__getattr__cCs(tj|j�}tr|jd�}d|j|fS)NzUTF-8z <IntrospectionModule %r from %r>)r4r7r5r9r:)r<r>r-r-r.�__repr__�s
zIntrospectionModule.__repr__cCsFtt|j��}|j|jj��tj|j�}|jdd�|D��t	|�S)Ncss |]}t|t�s|j�VqdS)N)rGrr%)rArNr-r-r.rCsz.IntrospectionModule.__dir__.<locals>.<genexpr>)
�set�dir�	__class__�updaterM�keysr4Z	get_infosr5�list)r<�resultZnamespace_infosr-r-r.�__dir__�s
zIntrospectionModule.__dir__)N)r6rE�__qualname__�__doc__r?rRrSr[r-r-r-r.r3ns

lr3cCs0|tkrt|Stj|�}t||�}|t|<|S)z�
    :Returns:
        An object directly wrapping the gi module without overrides.

    Might raise gi._gi.RepositoryError
    )�_introspection_modules�giZget_required_versionr3)r*r=r,r-r-r.�get_introspection_modules

r`)0Z
__future__r�sysr&Z	threadingr�version_infor9rrF�stringr_Z_girr	r
rrr
rrrrrrrrrrrr�typesrrZ
_constantsrrrrr Zget_defaultr4r^r/r2r#r3r`r-r-r-r.�<module>s&
P__pycache__/__init__.cpython-36.opt-1.pyc000064400000010427151734360750014117 0ustar003

��<_n�@s�ddlmZddlmZeee�ZddlZddlZddlZddl	Z	dZ
dejkrXee
��ddl
mZddlmZdd	lmZdd
lmZddlmZeZeZeZiZejjejje�d�Ze	jd
�Zeejej<eje_eje_ejdd�Zdje�ZGdd�de	j�Z e de
�ejd<e de
�ejd<e de
�ejd<e de
�ejd<e de
�ejd<dd�Z!dd�Z"dd�Z#dd�Z$ddd�Z%dS) �)�absolute_import)�extend_pathNz�When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183Zgobject�)�_gi)�_API)�
Repository)�PyGIDeprecationWarning)�PyGIWarningZ	overrideszgi._gobjectz{0}.{1}.{2}c@seZdZdZdd�ZdS)�_DummyStaticModuleNcCstt��dS)N)�AttributeError�_static_binding_error)�self�name�r� /usr/lib64/python3.6/__init__.py�__getattr__Dsz_DummyStaticModule.__getattr__)�__name__�
__module__�__qualname__�__path__rrrrrr
Asr
ZglibZgioZgtkzgtk.gdkcCs@t|t�r ttt|jd���}n|}|tkr<td|tf��dS)N�.zNpygobject's version %s required, and available version %s is not recent enough)	�
isinstance�str�tuple�map�int�split�version_info�
ValueError�__version__)�versionZversion_listrrr�
check_versionOs
r!cCs�tj�}tjddkr*t|t�s<td��nt|t�s<td��||j�krj|j	|�}||krjtd||f��|t
kr�t
||kr�td|t
|f��|j|�}|s�td|��||kr�td||f��|t
|<dS)	a� Ensures the correct versions are loaded when importing `gi` modules.

    :param namespace: The name of module to require.
    :type namespace: str
    :param version: The version of module to require.
    :type version: str
    :raises ValueError: If module/version is already loaded, already required, or unavailable.

    :Example:

    .. code-block:: python

        import gi
        gi.require_version('Gtk', '3.0')

    r�z'Namespace version needs to be a string.z.Namespace %s is already loaded with version %sz(Namespace %s already requires version %szNamespace %s not availablez)Namespace %s not available for version %sN)rZget_default�sysrrZ
basestringrrZget_loaded_namespacesZget_version�	_versionsZenumerate_versions)�	namespacer Z
repositoryZloaded_versionZavailable_versionsrrr�require_version\s*




r&cCs$x|j�D]\}}t||�q
WdS)a3 Utility function for consolidating multiple `gi.require_version()` calls.

    :param requires: The names and versions of modules to require.
    :type requires: dict

    :Example:

    .. code-block:: python

        import gi
        gi.require_versions({'Gtk': '3.0', 'GLib': '2.0', 'Gio': '2.0'})
    N)�itemsr&)ZrequiresZmodule_nameZmodule_versionrrr�require_versions�s
r(cCstj|d�S)N)r$�get)r%rrr�get_required_version�sr*cCsPytj||�Wn.tk
r>}ztt|���WYdd}~XnXtjd|�dS)a�Ensure the given foreign marshaling module is available and loaded.

    :param str namespace:
        Introspection namespace of the foreign module (e.g. "cairo")
    :param symbol:
        Optional symbol typename to ensure a converter exists.
    :type symbol: str or None
    :raises: ImportError

    :Example:

    .. code-block:: python

        import gi
        import cairo
        gi.require_foreign('cairo')

    Nz
gi.repository)r�require_foreign�	Exception�ImportErrorr�	importlib�
import_module)r%Zsymbol�errrr+�s
r+)N)&Z
__future__rZpkgutilrrrr#�osr.�typesr�modulesr-�rrrrr	r$�path�join�dirname�__file__Z
_overridesdir�
ModuleTypeZ_gobjectZ_PyGObject_APIZpygobject_versionr�formatrr
r!r&r(r*r+rrrr�<module>sH




/__pycache__/_signalhelper.cpython-36.opt-1.pyc000064400000017705151734360750015202 0ustar003

��<_r&�@sjddlZddlmZdejko(dknr6dd�ZGdd	�d	e�ZGd
d�de�Zdd
�Zdd�Z	dS)�N�)�_gi��cCs
t|d�S)N�__call__)�hasattr)�fn�r	�%/usr/lib64/python3.6/_signalhelper.py�callablesrc@sjeZdZdZGdd�de�Zddd�Zddejdddddfdd	�Z	dd
d�Z
dd
�Zddd�Zdd�Z
dS)�Signala�Object which gives a nice API for creating and binding signals.

    :param name:
        Name of signal or callable closure when used as a decorator.
    :type name: str or callable
    :param callable func:
        Callable closure method.
    :param GObject.SignalFlags flags:
        Flags specifying when to run closure.
    :param type return_type:
        Return type of the Signal.
    :param list arg_types:
        List of argument types specifying the signals function signature
    :param str doc:
        Documentation of signal object.
    :param callable accumulator:
        Accumulator method with the signature:
        func(ihint, return_accu, handler_return, accu_data) -> boolean
    :param object accu_data:
        User data passed to the accumulator.

    :Example:

    .. code-block:: python

        class Spam(GObject.Object):
            velocity = 0

            @GObject.Signal
            def pushed(self):
                self.velocity += 1

            @GObject.Signal(flags=GObject.SignalFlags.RUN_LAST)
            def pulled(self):
                self.velocity -= 1

            stomped = GObject.Signal('stomped', arg_types=(int,))

            @GObject.Signal
            def annotated_signal(self, a:int, b:str):
                "Python3 annotation support for parameter types.

        def on_pushed(obj):
            print(obj)

        spam = Spam()
        spam.pushed.connect(on_pushed)
        spam.pushed.emit()
    c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)zSignal.BoundSignalz�
        Temporary binding object which can be used for connecting signals
        without specifying the signal name string to connect.
        cOstj||�S)N)�str�__new__)�cls�name�args�kargsr	r	r
rXszSignal.BoundSignal.__new__cCstj|�||_||_dS)N)r
�__init__�signal�gobj)�selfrrr	r	r
r[s
zSignal.BoundSignal.__init__cCsd|S)NzBoundSignal("%s")r	)rr	r	r
�__repr__`szSignal.BoundSignal.__repr__cOs|jj|jf|�|�S)zCall the signals closure.)r�funcr)rrrr	r	r
rcszSignal.BoundSignal.__call__cOs|jj||f|�|�S)z^Same as GObject.Object.connect except there is no need to specify
            the signal name.)r�connect)r�callbackrrr	r	r
rgszSignal.BoundSignal.connectcOs|jj|d||f|�|�S)a
Same as GObject.Object.connect except there is no need to specify
            the signal name. In addition concats "::<detail>" to the signal name
            when connecting; for use with notifications like "notify" when a property
            changes.
            z::)rr)rrZdetailrrr	r	r
�connect_detailedlsz#Signal.BoundSignal.connect_detailedcCs|jj|�dS)z"Same as GObject.Object.disconnect.N)�instance�
disconnect)rZ
handler_idr	r	r
rtszSignal.BoundSignal.disconnectcOs|jjt|�f|�|�S)z[Same as GObject.Object.emit except there is no need to specify
            the signal name.)r�emitr
)rrrr	r	r
rxszSignal.BoundSignal.emitN)�__name__�
__module__�__qualname__�__doc__rrrrrrrrr	r	r	r
�BoundSignalSsr#�cOst|�r|j}tj||�S)N)rrr
r)rrrrr	r	r
r}szSignal.__new__Nc		Cs�|r|r|j}nt|�r$|}|j}|r4|r4|j}tj|�|rX|pH|rXt|�\}}|dkrft�}||_||_||_	||_
||_||_||_dS)N)
rrr"r
r�get_signal_annotations�tupler�flags�return_type�	arg_types�accumulator�	accu_data)	rrrr'r(r)�docr*r+r	r	r
r�s&


zSignal.__init__cCs|dkr|S|j||�S)z:Returns a BoundSignal when accessed on an object instance.N)r#)rr�ownerr	r	r
�__get__�szSignal.__get__c
Osdt|tj�r |j|f|�|�n@t|�r2t|�}n|j}t|�|||j|j|j	|j
|j|jd�SdS)zmAllows for instantiated Signals to be used as a decorator or calling
        of the underlying signal method.)rrr'r(r)r,r*r+N)
�
isinstancerZGObjectrr
r�typer'r(r)r"r*r+)r�objrrrr	r	r
r�s
zSignal.__call__c
Cs8|dkr|j}t|�||j|j|j|j|j|j|jd�S)z%Returns a renamed copy of the Signal.N)rrr'r(r)r,r*r+)	rr0rr'r(r)r"r*r+)rZnewNamer	r	r
�copy�s
zSignal.copycCs|j|j|j|j|jfS)zKReturns a tuple of: (flags, return_type, arg_types, accumulator, accu_data))r'r(r)r*r+)rr	r	r
�get_signal_args�szSignal.get_signal_args)r$)N)N)rr r!r"r
r#rrZSIGNAL_RUN_FIRSTrr.rr2r3r	r	r	r
r!s1*


rc@seZdZdZdd�ZdS)�SignalOverridea&Specialized sub-class of Signal which can be used as a decorator for overriding
    existing signals on GObjects.

    :Example:

    .. code-block:: python

        class MyWidget(Gtk.Widget):
            @GObject.SignalOverride
            def configure_event(self):
                pass
    cCsdS)zReturns the string 'override'.�overrider	)rr	r	r
r3�szSignalOverride.get_signal_argsN)rr r!r"r3r	r	r	r
r4�sr4csZt�}d}t|d�rRddl}|j|��t�fdd��jD��}d�jkrR�jd}||fS)aAttempt pulling python 3 function annotations off of 'func' for
    use as a signals type information. Returns an ordered nested tuple
    of (return_type, (arg_type1, arg_type2, ...)). If the given function
    does not have annotations then (None, tuple()) is returned.
    N�__annotations__rc3s"|]}|�jkr�j|VqdS)N)�annotations)�.0�arg)�specr	r
�	<genexpr>�sz)get_signal_annotations.<locals>.<genexpr>�return)r&r�inspectZgetfullargspecrr7)rr)r(r=r	)r:r
r%�s



r%cCs�|jjdi�}i}xn|jj�D]`\}}t|t�rt|�}|sV|}|j|�}t|||�||krjtd|��|||<|j	�||<qW||_
xF|j�D]:\}}|jdk	r�d|jdd�}t
||�s�t|||j�q�WdS)z�Adds Signal instances on a GObject derived class into the '__gsignals__'
    dictionary to be picked up and registered as real GObject signals.
    �__gsignals__z(Signal "%s" has already been registered.NZdo_�-�_)�__dict__�get�itemsr/rr
r2�setattr�
ValueErrorr3r>r�replacer)rZgsignalsZ
newsignalsrrZ
signalNameZfuncNamer	r	r
�install_signals�s&



rG)rr)rr)
�sysr$r�version_inforr
rr4r%rGr	r	r	r
�<module>s"__pycache__/_ossighelper.cpython-36.pyc000064400000012276151734360750014110 0ustar003

��<_�!�@s�ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
dd�Zdae
dd��Z
d	d
�Ze�ZejZeje_ejge_ejej�ejkr�eej�ZndZdd
�Ze
dd��Zdd�Zgadae
dd��ZdS)�)�print_functionN)�closing�contextmanagerc
Cspt|d�r|jd�nVyddl}Wntk
r>td��Yn.X|j�}|j||j�}|j||j||jB�dS)z�Ensures that the socket is not inherited by child processes

    Raises:
        EnvironmentError
        NotImplementedError: With Python <3.4 on Windows
    �set_inheritableFrNz+Not implemented for older Python on Windows)	�hasattrr�fcntl�ImportError�NotImplementedError�filenoZF_GETFDZF_SETFDZ
FD_CLOEXEC)�sockr�fd�flags�r�$/usr/lib64/python3.6/_ossighelper.py�ensure_socket_not_inheritables
rFc	'#s�trdVdSddlm�tjdkp4tjdd�d
k}ttd�}|sL|rVdVdStj	�\�}t
����"t
|���x"�|gD]}|jd	�t|�q�Wyt
j|j��}Wntk
r�dVdSXd
a��fdd�}zxtjdk�r��jj�j��}n�jj�j��}�j|�j�jj�jjB�jjB�jjB|�}z
dVWd�j|�XWdt
j|�}||j�k�rzt
j|�d	aXWdQRXWdQRXdS)aA decorator for functions which create a glib event loop to keep
    Python signal handlers working while the event loop is idling.

    In case an OS signal is received will wake the default event loop up
    shortly so that any registered Python signal handlers registered through
    signal.signal() can run.

    Works on Windows but needs Python 3.5+.

    In case the wrapped function is not called from the main thread it will be
    called as is and it will not wake up the default loop for signals.
    Nr)�GLib�nt����
socketpairFTcsN|�j@rFyt�jd��Stk
r@}zt|�dSd}~XnXdSdSdS)N�FT)ZIO_IN�boolZrecv�EnvironmentError�print)�sourceZ	condition�e)r�read_socketrr�
signal_notifyis
z'wakeup_on_signal.<locals>.signal_notify)rr)�_wakeup_fd_is_activeZ
gi.repositoryr�os�name�sys�version_infor�socketrrZsetblockingr�signal�
set_wakeup_fdr
�
ValueErrorZ	IOChannelZwin32_new_socketZunix_newZio_add_watchZPRIORITY_DEFAULTZIOCondition�INZHUPZNVALZERRZ
source_remove)	Zset_wakeup_fd_supports_socketZhas_socketpairZwrite_socketrZorig_fdrZchannelZ	source_idZwrite_fdr)rrr�wakeup_on_signal8sL




r)cCsJtjdkrtjddtj�Stjdkr<tjdtjdd��Stjd�SdS)Nrz
python dll�cygwinzlibpython%d.%d.dllr)r r!�ctypesZPyDLLr"Z	dllhandle�platformr#rrrr�create_pythonapi�s


r-rcCs tjtj�tjkottj�tkS)z?Returns if on SIGINT the default Python handler would be called)r%�	getsignal�SIGINT�default_int_handler�PyOS_getsig�startup_sigint_ptrrrrr�sigint_handler_is_default�sr3ccsbt�s
t�tjtj|�ttj�}z
dVWdtjtj�|kr\ttj�|kr\tjtjtj�XdS)z�Context manager for saving/restoring the SIGINT handler default state.

    Will only restore the default handler again if the handler is not changed
    while the context is active.
    N)r3�AssertionErrorr%r/r1r.r0)ZhandlerZsig_ptrrrr�&sigint_handler_set_and_restore_default�s


r5cCstj�jdkS)z@Returns True in case the function is called from the main threadZ
MainThread)�	threadingZcurrent_threadr!rrrr�is_main_thread�sr7ccs�t�sdVdSt�sPtrFtj|�z
dVWdtj�}trB|�XndVdSdadd�}tj|�zt|��dVWdQRXWdtr�tjtj	d�ntj�XdS)a�Installs a SIGINT signal handler in case the default Python one is
    active which calls 'callback' in case the signal occurs.

    Only does something if called from the main thread.

    In case of nested context managers the signal handler will be only
    installed once and the callbacks will be called in the reverse order
    of their registration.

    The old signal handler will be restored in case no signal handler is
    registered while the context is active.
    NFcSstrdSdatj��dS)NT)�_sigint_called�_callback_stack�pop)Zsig_num�framerrr�sigint_handler�sz0register_sigint_fallback.<locals>.sigint_handler)
r7r3r9�appendr:r8r5r%r0r/)�callback�cbr<rrr�register_sigint_fallback�s,




r@���)Z
__future__rr r"r$r%r+r6�
contextlibrrrrr)r-Zpydllr1Zc_void_pZrestypeZc_intZargtypesr.r/r0r2r3r5r7r9r8r@rrrr�<module>s0V
__pycache__/_option.cpython-36.pyc000064400000025177151734360750013100 0ustar003

��<_�3�	@s�dZddlZddlZddlmZmZmZmZmZddlm	Z	ej
dkrTeZdd�Z
neZeZ
dd	lmZdd
lmZe	d�Zejej��Zdd
dddddddg	ZGdd�dej�ZGdd�dej�ZGdd�dej�ZeZdS)a,GOption command line parser

Extends optparse to use the GOptionGroup, GOptionEntry and GOptionContext
objects. So it is possible to use the gtk, gnome_program and gstreamer command
line groups and contexts.

Use this interface instead of the raw wrappers of GOptionContext and
GOptionGroup in glib.
�N)�
OptParseError�OptionError�OptionValueError�BadOptionError�OptionConflictError�)�get_introspection_module�cCs|j�S)N)�encode)�s�r�/usr/lib64/python3.6/_option.py�<lambda>&sr)�_gi)�GError�GLibrrrrr�Option�OptionGroup�OptionParser�make_optionc@sPeZdZdZejjdZejjdddgZdej	Z
dd�Zd	d
�Zdd�Z
d
S)ra�Represents a command line option

    To use the extended possibilities of the GOption API Option
    (and make_option) are extended with new types and attributes.

    Types:
        filename   The supplied arguments are read as filename, GOption
                   parses this type in with the GLib filename encoding.

    :ivar optional_arg:
        This does not need a arguement, but it can be supplied.
    :ivar hidden:
        The help list does not show this option
    :ivar in_main:
        This option apears in the main group, this should only
        be used for backwards compatibility.

    Use Option.REMAINING as option name to get all positional arguments.

    .. NOTE::
        Every argument to an option is passed as utf-8 coded string, the only
        exception are options which use the 'filename' type, its arguments
        are passed as strings in the GLib filename encoding.

    For further help, see optparse.Option.
    �filename�hidden�in_main�optional_argz--cOsXtjj|f|�|�|js"td��t|j�t|j�kr>td��|jsTtd|jd��dS)Nz!%s at least one long option name.z;%s at least more long option names than short option names.z%s needs a help message.r)�optparser�__init__�
_long_opts�
ValueError�len�_short_opts�help)�self�args�kwargsrrr
reszOption.__init__cCsF|j|kr|jj|j�tjj||�t|j�t|j�krBtd��dS)NzCgoption.Option needs more long option names than short option names)	�	REMAININGr�appendrr�_set_opt_stringrrr)r!Zoptsrrr
r&qs

zOption._set_opt_stringccs�d}|jr|tjjO}|jr(|tjjO}|j�rD|jrP|tjjO}n|tjj	O}|j
dkrf|tjjO}x>t|j
|j�D],\}}|dd�t|d�||j|jfVqvWx<|j
t|j�d�D]$}|dd�td�||j|jfVq�WdS)Nrr�r�)rrZOptionFlagsZHIDDENrZIN_MAINZtakes_valuerZOPTIONAL_ARGZNO_ARG�typeZFILENAME�ziprr�_bytesr �metavarr)r!�flagsZ	long_nameZ
short_namerrr
�_to_goptionentriesys
(zOption._to_goptionentriesN)r)�__name__�
__module__�__qualname__�__doc__rrZTYPESZATTRSrZOPTION_REMAININGr$rr&r.rrrr
r>s
c@s<eZdZdZddd�Zdd�Zdd	�Zdd
d�Zdd
�ZdS)ra�A group of command line options.

    :param str name:
        The groups name, used to create the --help-{name} option
    :param str description:
        Shown as title of the groups help view
    :param str help_description:
        Shown as help to the --help-{name} option
    :param list option_list:
        The options used in this group, must be option.Option()
    :param dict defaults:
        A dicitionary of default values
    :param translation_domain:
           Sets the translation domain for gettext().

    .. NOTE::
        This OptionGroup does not exactly map the optparse.OptionGroup
        interface. There is no parser object to supply, but it is possible
        to set default values and option_lists. Also the default values and
        values are not shared with the OptionParser.

    To pass a OptionGroup into a function which expects a GOptionGroup (e.g.
    gnome_program_init() ). OptionGroup.get_option_group() can be used.

    For further help, see optparse.OptionGroup.
    �NcCsZtjj|td|�||_d|_||_|r.||_d|_||_	|rVx|D]}|j
|�qDWdS)N�error)rZOptionContainerrr�name�parser�help_description�defaults�values�translation_domainZ
add_option)r!r5�descriptionr7�option_listr8r:�optionrrr
r�s
zOptionGroup.__init__cCsg|_|j�dS)N)r<Z_create_option_mappings)r!rrr
�_create_option_list�szOptionGroup._create_option_listcsf��fdd�}tj�j�j�j|�}�jr6|j�j�g}x�jD]}|j|j	��qBW|j
|�|S)Ncs�|jd�r�j|}n
�j|}y|j||�j��WnJtk
r�tj�d}tt	|��}t
|_tj
j|_t	|�|_|�YnXdS)Nz--r)�
startswith�	_long_opt�
_short_opt�processr9r�sys�exc_infor�str�OPTION_CONTEXT_ERROR_QUARK�domainrr�	BAD_VALUE�code�message)�option_name�option_value�group�optr4Zgerror)r6r!rr
�callback�s



z.OptionGroup._to_goptiongroup.<locals>.callback)rrr5r;r7r:Zset_translation_domainr<�extendr.�add_entries)r!r6rOrMZentriesr=r)r6r!r
�_to_goptiongroup�s

zOptionGroup._to_goptiongroupcCs|j�|j|�S)z� Returns the corresponding GOptionGroup object.

        Can be used as parameter for gnome_program_init(), gtk_init().
        )�set_values_to_defaultsrR)r!r6rrr
�get_option_group�szOptionGroup.get_option_groupcCsVxB|jD]8}|jj|j�}t|t�r|j�}|j||�|j|j<qWtj	|j�|_
dS)N)r<r8�get�dest�
isinstance�_basestringZget_opt_stringZcheck_valuerZValuesr9)r!r=�defaultZopt_strrrr
rS�s
z"OptionGroup.set_values_to_defaults)r3NNN)N)	r/r0r1r2rr>rRrTrSrrrr
r�s

c@sJeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	ddd�Z
dS)raHCommand line parser with GOption support.

    :param bool help_enabled:
        The --help, --help-all and --help-{group} options are enabled (default).
    :param bool ignore_unknown_options:
        Do not throw a exception when a option is not knwon, the option
        will be in the result list.

    .. NOTE::
        The OptionParser interface is not the exactly the same as the
        optparse.OptionParser interface. Especially the usage parameter
        is only used to show the metavar of the arguements.

    OptionParser.add_option_group() does not only accept OptionGroup instances
    but also glib.OptionGroup, which is returned by gtk_get_option_group().

    Only glib.option.OptionGroup and glib.option.Option instances should
    be passed as groups and options.

    For further help, see optparse.OptionParser.
    cOsLd|krt|d<|jdd�|_|jdd�|_tjj|f|�ddi|��dS)NZoption_class�help_enabledT�ignore_unknown_optionsFZadd_help_option)r�poprZr[rrr)r!r"r#rrr
r
s
zOptionParser.__init__cCs8|dkrd|_n$|jd�r.|td�d�|_n||_dS)Nr3z%prog)�usager?r)r!r]rrr
�	set_usages

zOptionParser.set_usagec
s��jr�jd�j}n�j}tj|�}|j�j�|j�j�x4�jD]*}t	|tj
�r^|}n
|j��}|j|�qHW��fdd�}tj
ddd|�}g}x�j
D]}	|j|	j��q�W|j|�|j|�|S)Nz - cs4|jd�r�j|}n
�j|}|j||���dS)Nz--)r?r@rArB)rKrLrMrN)r!r9rr
rO+s

z1OptionParser._to_goptioncontext.<locals>.callback)r;r]rZ
OptionContextZset_help_enabledrZZset_ignore_unknown_optionsr[�
option_groupsrWrrTZ	add_groupr<rPr.rQZset_main_group)
r!r9Zparameter_string�contextZoption_groupZg_grouprOZ
main_groupZmain_entriesr=r)r!r9r
�_to_goptioncontexts&



zOptionParser._to_goptioncontextcOs�t|dt�r,tjj|t|f|�|��dSt|�dkr�|r�t|dt�rv|djs`||d_|dj|k	rvtd��t|dt	j�r�|j
j|d�dStjj|f|�|�dS)Nrrz"invalid OptionGroup (wrong parser))rWrXrr�add_option_grouprrr6rrr_r%)r!r"r#rrr
rb;s

zOptionParser.add_option_groupcCs:|jdd�}x&|jD]}t|tj�r|j|j�qW|S)N)r<r_rWrrrP)r!�optionsrMrrr
�_get_all_optionsKs
zOptionParser._get_all_optionscCs4|j|�}|jtjdg|�dd�|dd�<dS)Nrr)ra�parserC�argv)r!ZlargsZrargsr9r`rrr
�
_process_argsRs
zOptionParser._process_argsNc	
Cs�|pg}ytjj|||�\}}Wn|tk
r�tj�d}|jtkrH�|jt	j
jkrbt|j
��n6|jt	j
jkr|t|j
��n|jt	j
jkr�t|j
��n�YnXx4|jD]*}x$|jjj�D]\}}|j||�q�Wq�W|dt|��}||fS)Nrr')rr�
parse_argsrrCrDrGrFrIrrrHrrJZUNKNOWN_OPTIONrZFAILEDrr_r9�__dict__�itemsZensure_valuer)	r!r"r9Zold_argsrcr4rM�key�valuerrr
rhZs(
zOptionParser.parse_args)NN)r/r0r1r2rr^rarbrdrgrhrrrr
r�s	 )r	r)r2rCrrrrrr�moduler�version_inforErXr+Z
basestringZgirZ	gi._errorrrZquark_to_stringZoption_error_quarkrF�__all__rrrrrrrr
�<module>s6

Ta__pycache__/_error.cpython-36.opt-1.pyc000064400000002655151734360760013655 0ustar003

��<_ �@sGdd�de�ZdS)csJeZdZd�fdd�	Zdd�Zdd	�Zd
d�Zdd
�Zedd��Z	�Z
S)�GError�
unknown error�
pygi-error�cs&tt|�j|�||_||_||_dS)N)�superr�__init__�message�domain�code)�selfrrr	)�	__class__��/usr/lib64/python3.6/_error.pyrszGError.__init__cCsd|j|j|jfS)Nz%s: %s (%d))rrr	)r
rrr
�__str__%szGError.__str__cCsdtjtj|j|j|jfS)Nz%s.%s('%s', '%s', %d))r�
__module__�__name__rrr	)r
rrr
�__repr__(s
zGError.__repr__cCst|j|j|j�S)N)rrrr	)r
rrr
�copy,szGError.copycCst�dS)z:Placeholder that will be monkey patched in GLib overrides.N)�NotImplementedError)r
rr	rrr
�matches/szGError.matchescCst�dS)z:Placeholder that will be monkey patched in GLib overrides.N)r)rrr	rrr
�new_literal3szGError.new_literal)rrr)rr�__qualname__rrrrr�staticmethodr�
__classcell__rr)rr
rsrN)�RuntimeErrorrrrrr
�<module>s__pycache__/types.cpython-36.opt-1.pyc000064400000020275151734360760013527 0ustar003

��<_�8�@s(ddlmZddlZddlZddlZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZmZddlm	Z	eefddlmZdd	lmZdejko�d knr�dd�Zd
d�ZGdd�de�Zdd�Zdd�ZGdd�de�Ze	je�Gdd�dee�Z dd�Z!dd�Z"Gdd�dee�Z#dS)!�)�absolute_importN�)�TYPE_INVALID)�generate_doc_string)�
InterfaceInfo�
ObjectInfo�
StructInfo�	VFuncInfo�register_interface_info�hook_up_vfunc_implementation�
GInterface)�_gi)�_propertyhelper)�
_signalhelper�cCs
t|d�S)N�__call__)�hasattr)�obj�r�/usr/lib64/python3.6/types.py�callable1srcCs tjdd|�}tjdd|�j�S)Nz(.)([A-Z][a-z]+)z\1_\2z([a-z0-9])([A-Z]))�re�sub�lower)�name�s1rrr�
snake_case5src@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�MetaClassHelpercCs&x |jj�D]}t||j|�qWdS)N)�__info__�get_methods�setattr�__name__)�cls�method_inforrr�_setup_methods;szMetaClassHelper._setup_methodscCsP|j}|j�}|dkrdSx0|j�D]$}|j}t||�s$t||t|��q$WdS)N)rZget_class_structrr!rr �classmethod)r"�infoZclass_structr#rrrr�_setup_class_methods?s
z$MetaClassHelper._setup_class_methodscCs>x8|jj�D]*}|j�jdd�}t||t|j|j��qWdS)N�-�_)rZ
get_fields�get_name�replacer �property�	get_valueZ	set_value)r"Z
field_inforrrr�
_setup_fieldsJszMetaClassHelper._setup_fieldscCs4x.|jj�D] }|j�}|j�}t|||�qWdS)N)rZ
get_constantsr*r-r )r"Z
constant_infor�valuerrr�_setup_constantsOsz MetaClassHelper._setup_constantsc
Csj�xb|jj�D�]R\}}|jd�st|�r0qd}d}x�|jD]�}t||d�}|dk	rht|t�rh|}Pt|d�s@t|j	d�r�q@t
|j	j��}x0|j	j�D]"}|d||j
�fkr�|}d}Pq�W|r@Pq@W|dkr�t|j|td�d��}|dk	r|�sTt||j�}	|	dk	�rT|j�}
td||j	j�|j	j
�|
j�|
j
�|	j	j�|	j	j
�f��t||j|�qWdS)NZdo_Fr�
get_vfuncszdo_%s_%sTzTMethod %s() on class %s.%s is ambiguous with methods in base classes %s.%s and %s.%s)�__dict__�items�
startswithr�__mro__�getattr�
isinstancer	rrrZ
get_type_namer1r*�find_vfunc_info_in_interface�	__bases__�len�find_vfunc_conflict_in_basesZ
get_container�	TypeError�
get_namespacer�	__gtype__)r"�
vfunc_nameZpy_vfuncZskip_ambiguity_check�
vfunc_info�base�methodZ	base_name�vZambiguous_baseZ	base_inforrr�
_setup_vfuncsUsJ
zMetaClassHelper._setup_vfuncscCsh|jjd�}|dks t|t�r$dS|jdkr<|jdkr<dSx&|j�D]}d|j}t|||�qFWdS)Nrzgi.repository.GObjectZObjectzdo_%s)r2�getr7r�
__module__r!r1r )r"Z
class_infor@rrrr�_setup_native_vfuncs�s
z$MetaClassHelper._setup_native_vfuncsN)	r!rF�__qualname__r$r'r.r0rDrGrrrrr:s=rcCs|xv|D]n}|tkst|t�st|d�r,qt|jt�r\x"|jj�D]}|j�|krD|SqDWt|j	|�}|dk	r|SqWdS)Nr)
r�
issubclassrr7rrr1r*r8r9)�basesr?rA�vfuncrrrr8�s
r8cCs~xx|D]p}t|d�st|jd�r&q|jj�}|j�}x$|D]}|j�|kr>||kr>|Sq>Wt||j�}|dk	r|SqWdS)Nrr1)rrr1r*r;r9)rKrJ�klassZvfuncsr?rCZaklassrrrr;�s


r;c@s eZdZdZdd�Zdd�ZdS)�_GObjectMetaBasez8Metaclass for automatically registering GObject classes.cCs4tj||||�tj|�tj|�|j|j�dS)N)�type�__init__�propertyhelperZinstall_properties�signalhelperZinstall_signals�_type_registerr2)r"rrJ�dict_rrrrO�s

z_GObjectMetaBase.__init__cCs2d|krdS|jjd�rdStj||jd��dS)Nr>z
gi.overrides.Z__gtype_name__)rFr4r
Z
type_registerrE)r"�	namespacerrrrR�s
z_GObjectMetaBase._type_registerN)r!rFrH�__doc__rOrRrrrrrM�srMcs4eZdZdZ�fdd�Zdd�Zedd��Z�ZS)�GObjectMetaz+Meta class used for GI GObject based types.cs�tt|�j|||�d}|jd|jj�kr0d}d}|rJ|jtjkrJd}|rX|j�n`|r�t|jt�rp|j	�|j
�|j�|j�t|jt�r�|j
�nt|jt�r�t|jj��dS)NFzgi.repository.T)�superrVrOrFrr=rDr7rr'r$r0rGr.rr
�
get_g_type)r"rrJrSZ
is_gi_definedZis_python_defined)�	__class__rrrO�s&

zGObjectMeta.__init__cCst|�S)N)�mro)r"rrrrZszGObjectMeta.mrocCs@|tkrdS|jjdd�}|dk	r&|S|jjd�r<t|j�SdS)zFMeta class property which shows up on any class using this meta-class.�rUN�gi.repository.�gi.overrides)r\r])rVr2rErFr4rr)r"�docrrrrUs
zGObjectMeta.__doc__)r!rFrHrUrOrZr,�
__classcell__rr)rYrrV�srVcsg}|gg}|jrlxH|jD]>}t|d�r:|t|j�g7}qtjd|t�|t|�g7}qW|t|j�g7}x�|�rx<|D]4}|d��fdd�|D�}|r�t�jkr�d�qzPqzW�dkr�t	d��|j
��x8|dd�D](}|o�|d�kr�|d=|s�|j|�q�WqnW|S)a\Compute the class precedence list (mro) according to C3, with GObject
    interface considerations.

    We override Python's MRO calculation to account for the fact that
    GObject classes are not affected by the diamond problem:
    http://en.wikipedia.org/wiki/Diamond_problem

    Based on http://www.python.org/download/releases/2.3/mro/
    r5zQMixin class %s is an old style class, please update this to derive from "object".rcs g|]}�|dd�kr|�qS)rNr)�.0�s)�	candidaterr�
<listcomp>=szmro.<locals>.<listcomp>Nz8Cannot create a consistent method resolution order (MRO))r9r�listr5�warnings�warn�RuntimeWarningrZrr<�append�remove)�CrJZbases_of_subclassesrAZsubclass_basesZnot_headr)rbrrZs6


rZcOsdS)Nr)�args�kwargsrrr�nothingRsrmcs,eZdZdZ�fdd�Zedd��Z�ZS)�
StructMetaz*Meta class used for GI Struct based types.cs�tt|�j|||�|jj�}|tkr4|jdk	r4dS|j�|j�xN|jj	�D]@}|j
�rP|jdkrP|j�s~|jj
�dkrPt|�|_t|_PqPWdS)N�newr)rWrnrOrrXrZpytyper.r$rZis_constructorr!Z
get_argumentsZget_size�staticmethod�__new__rm)r"rrJrSZg_typer#)rYrrrOYs



zStructMeta.__init__cCs|tkrdSt|j�S)Nr[)rnrr)r"rrrrUoszStructMeta.__doc__)r!rFrHrUrOr,r_rr)rYrrnVsrn)rr)rr)$Z
__future__r�sysrerZ
_constantsrZ	docstringrr
rrrr	r
rrr[rrPrrQ�version_inforr�objectrr8r;rNrMZ_install_metaclassrVrZrmrnrrrr�<module>s,$k
.<__pycache__/docstring.cpython-36.opt-1.pyc000064400000007327151734360760014362 0ustar003

��<_ �,@s�ddlmZmZmZmZmZmZmZdadd�Z	dd�Z
dd�Zeje
ejeejeejeejeejeejeejeejeejeejeejeejeejeejeej e!ej"e!ej#e!ej$dej%dej&dej'diZ(d	d
�Z)dd�Z*d
d�Z+dd�Z,e	e,�dS)�)�	VFuncInfo�FunctionInfo�CallableInfo�
ObjectInfo�
StructInfo�	Direction�TypeTagNcCs|adS)z�Set doc string generator function

    :param callable func:
        Callable which takes a GIInfoStruct and returns documentation for it.
    N)�_generate_doc_string_func)�func�r�!/usr/lib64/python3.6/docstring.py�set_doc_string_generator%sr
cCstS)z6Returns the currently registered doc string generator.)r	rrrr�get_doc_string_generator/srcCst|�S)aEGenerate a doc string given a GIInfoStruct.

    :param gi.types.BaseInfo info:
        GI info instance to generate documentation for.
    :returns:
        Generated documentation as a string.
    :rtype: str

    This passes the info struct to the currently registered doc string
    generator and returns the result.
    )r	)�inforrr�generate_doc_string4srcCsf|j�}tj|d�}|r(t|d�r(|jS|tjkr^|j�}|j�}|sN|j	�Sd|j
�|fS|j	�S)N�__name__z%s.%s)Zget_tag�_type_tag_to_py_type�get�hasattrrr�	INTERFACEZ
get_interface�get_nameZget_tag_as_stringZ
get_namespace)Zgi_typeZtype_tagZpy_typeZifaceZ	info_namerrr�_get_pytype_hint\s
rc
Csg}t|t�rdg}nt|t�r.|j�r.dg}|j�}d
}t�}t�}x:|D]2}|j|j��|j|j�j	��|j|j
��qLWx�t|�D]�\}}|j�t
jkr�q�||kr�q�|j�}t|j��}	|	|kr�|d|	7}|j�s�||kr�|d7}n|j��r|d7}|j|�q�Wdj|�}
g}t|j��}|j��rf|�rf||k�rf|}|j��r\|d7}|j|�xlt|�D]`\}}|j�t
jk�r��qp||k�r��qp|j�}t|j��}	|	|k�r�|d|	7}|j|��qpW|�r�d|j|
dj|�fSd	|j|
fSdS)N�self�void�:z=Nonez=<optional>z, z or Nonez%s(%s) -> %sz%s(%s))r)�
isinstancerrZ	is_methodZ
get_arguments�set�addZget_destroyZget_typeZget_array_lengthZget_closure�	enumerateZ
get_directionrZOUTrrZmay_be_nullZis_optional�append�joinZget_return_typeZskip_returnZmay_return_null�INr)
rZin_args_strs�argsZhint_blacklistZignore_indicesZuser_data_indices�arg�iZargstrZhintZin_args_strZ
out_args_strsZreturn_hintrrr�_generate_callable_info_docnsb









r%cCs�d}d}t|t�r4|j�dkrH|d|j�d7}n|d|j�d7}x,|j�D] }|j�rR|dt|�d7}qRW|r�||SdSdS)Nz
:Constructors:

::

��z    z()
z(**properties)
�
)rrZget_sizerZget_methodsZis_constructorr%)r�header�docZmethod_inforrr�_generate_class_info_doc�s
r+cCs,t|ttf�rt|�St|t�r(t|�SdS)Nr&)rrrr+rr%)rrrr�_generate_doc_dispatch�s

r,)-Z_girrrrrrrr	r
rrZBOOLEAN�boolZINT8�intZUINT8ZINT16ZUINT16ZINT32ZUINT32ZINT64ZUINT64ZFLOAT�floatZDOUBLEZGLIST�listZGSLISTZARRAYZGHASH�dictZUTF8�strZFILENAMEZUNICHARrZGTYPEZERRORZVOIDrrr%r+r,rrrr�<module>s>$

@
__pycache__/_ossighelper.cpython-36.opt-1.pyc000064400000012235151734360760015043 0ustar003

��<_�!�@s�ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
dd�Zdae
dd��Z
d	d
�Ze�ZejZeje_ejge_ejej�ejkr�eej�ZndZdd
�Ze
dd��Zdd�Zgadae
dd��ZdS)�)�print_functionN)�closing�contextmanagerc
Cspt|d�r|jd�nVyddl}Wntk
r>td��Yn.X|j�}|j||j�}|j||j||jB�dS)z�Ensures that the socket is not inherited by child processes

    Raises:
        EnvironmentError
        NotImplementedError: With Python <3.4 on Windows
    �set_inheritableFrNz+Not implemented for older Python on Windows)	�hasattrr�fcntl�ImportError�NotImplementedError�filenoZF_GETFDZF_SETFDZ
FD_CLOEXEC)�sockr�fd�flags�r�$/usr/lib64/python3.6/_ossighelper.py�ensure_socket_not_inheritables
rFc	'#s�trdVdSddlm�tjdkp4tjdd�d
k}ttd�}|sL|rVdVdStj	�\�}t
����"t
|���x"�|gD]}|jd	�t|�q�Wyt
j|j��}Wntk
r�dVdSXd
a��fdd�}zxtjdk�r��jj�j��}n�jj�j��}�j|�j�jj�jjB�jjB�jjB|�}z
dVWd�j|�XWdt
j|�}||j�k�rzt
j|�d	aXWdQRXWdQRXdS)aA decorator for functions which create a glib event loop to keep
    Python signal handlers working while the event loop is idling.

    In case an OS signal is received will wake the default event loop up
    shortly so that any registered Python signal handlers registered through
    signal.signal() can run.

    Works on Windows but needs Python 3.5+.

    In case the wrapped function is not called from the main thread it will be
    called as is and it will not wake up the default loop for signals.
    Nr)�GLib�nt����
socketpairFTcsN|�j@rFyt�jd��Stk
r@}zt|�dSd}~XnXdSdSdS)N�FT)ZIO_IN�boolZrecv�EnvironmentError�print)�sourceZ	condition�e)r�read_socketrr�
signal_notifyis
z'wakeup_on_signal.<locals>.signal_notify)rr)�_wakeup_fd_is_activeZ
gi.repositoryr�os�name�sys�version_infor�socketrrZsetblockingr�signal�
set_wakeup_fdr
�
ValueErrorZ	IOChannelZwin32_new_socketZunix_newZio_add_watchZPRIORITY_DEFAULTZIOCondition�INZHUPZNVALZERRZ
source_remove)	Zset_wakeup_fd_supports_socketZhas_socketpairZwrite_socketrZorig_fdrZchannelZ	source_idZwrite_fdr)rrr�wakeup_on_signal8sL




r)cCsJtjdkrtjddtj�Stjdkr<tjdtjdd��Stjd�SdS)Nrz
python dll�cygwinzlibpython%d.%d.dllr)r r!�ctypesZPyDLLr"Z	dllhandle�platformr#rrrr�create_pythonapi�s


r-rcCs tjtj�tjkottj�tkS)z?Returns if on SIGINT the default Python handler would be called)r%�	getsignal�SIGINT�default_int_handler�PyOS_getsig�startup_sigint_ptrrrrr�sigint_handler_is_default�sr3ccsXtjtj|�ttj�}z
dVWdtjtj�|krRttj�|krRtjtjtj�XdS)z�Context manager for saving/restoring the SIGINT handler default state.

    Will only restore the default handler again if the handler is not changed
    while the context is active.
    N)r%r/r1r.r0)ZhandlerZsig_ptrrrr�&sigint_handler_set_and_restore_default�s


r4cCstj�jdkS)z@Returns True in case the function is called from the main threadZ
MainThread)�	threadingZcurrent_threadr!rrrr�is_main_thread�sr6ccs�t�sdVdSt�sPtrFtj|�z
dVWdtj�}trB|�XndVdSdadd�}tj|�zt|��dVWdQRXWdtr�tjtj	d�ntj�XdS)a�Installs a SIGINT signal handler in case the default Python one is
    active which calls 'callback' in case the signal occurs.

    Only does something if called from the main thread.

    In case of nested context managers the signal handler will be only
    installed once and the callbacks will be called in the reverse order
    of their registration.

    The old signal handler will be restored in case no signal handler is
    registered while the context is active.
    NFcSstrdSdatj��dS)NT)�_sigint_called�_callback_stack�pop)Zsig_num�framerrr�sigint_handler�sz0register_sigint_fallback.<locals>.sigint_handler)
r6r3r8�appendr9r7r4r%r0r/)�callback�cbr;rrr�register_sigint_fallback�s,




r?���)Z
__future__rr r"r$r%r+r5�
contextlibrrrrr)r-Zpydllr1Zc_void_pZrestypeZc_intZargtypesr.r/r0r2r3r4r6r8r7r?rrrr�<module>s0V
__pycache__/_signalhelper.cpython-36.pyc000064400000017705151734360760014244 0ustar003

��<_r&�@sjddlZddlmZdejko(dknr6dd�ZGdd	�d	e�ZGd
d�de�Zdd
�Zdd�Z	dS)�N�)�_gi��cCs
t|d�S)N�__call__)�hasattr)�fn�r	�%/usr/lib64/python3.6/_signalhelper.py�callablesrc@sjeZdZdZGdd�de�Zddd�Zddejdddddfdd	�Z	dd
d�Z
dd
�Zddd�Zdd�Z
dS)�Signala�Object which gives a nice API for creating and binding signals.

    :param name:
        Name of signal or callable closure when used as a decorator.
    :type name: str or callable
    :param callable func:
        Callable closure method.
    :param GObject.SignalFlags flags:
        Flags specifying when to run closure.
    :param type return_type:
        Return type of the Signal.
    :param list arg_types:
        List of argument types specifying the signals function signature
    :param str doc:
        Documentation of signal object.
    :param callable accumulator:
        Accumulator method with the signature:
        func(ihint, return_accu, handler_return, accu_data) -> boolean
    :param object accu_data:
        User data passed to the accumulator.

    :Example:

    .. code-block:: python

        class Spam(GObject.Object):
            velocity = 0

            @GObject.Signal
            def pushed(self):
                self.velocity += 1

            @GObject.Signal(flags=GObject.SignalFlags.RUN_LAST)
            def pulled(self):
                self.velocity -= 1

            stomped = GObject.Signal('stomped', arg_types=(int,))

            @GObject.Signal
            def annotated_signal(self, a:int, b:str):
                "Python3 annotation support for parameter types.

        def on_pushed(obj):
            print(obj)

        spam = Spam()
        spam.pushed.connect(on_pushed)
        spam.pushed.emit()
    c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)zSignal.BoundSignalz�
        Temporary binding object which can be used for connecting signals
        without specifying the signal name string to connect.
        cOstj||�S)N)�str�__new__)�cls�name�args�kargsr	r	r
rXszSignal.BoundSignal.__new__cCstj|�||_||_dS)N)r
�__init__�signal�gobj)�selfrrr	r	r
r[s
zSignal.BoundSignal.__init__cCsd|S)NzBoundSignal("%s")r	)rr	r	r
�__repr__`szSignal.BoundSignal.__repr__cOs|jj|jf|�|�S)zCall the signals closure.)r�funcr)rrrr	r	r
rcszSignal.BoundSignal.__call__cOs|jj||f|�|�S)z^Same as GObject.Object.connect except there is no need to specify
            the signal name.)r�connect)r�callbackrrr	r	r
rgszSignal.BoundSignal.connectcOs|jj|d||f|�|�S)a
Same as GObject.Object.connect except there is no need to specify
            the signal name. In addition concats "::<detail>" to the signal name
            when connecting; for use with notifications like "notify" when a property
            changes.
            z::)rr)rrZdetailrrr	r	r
�connect_detailedlsz#Signal.BoundSignal.connect_detailedcCs|jj|�dS)z"Same as GObject.Object.disconnect.N)�instance�
disconnect)rZ
handler_idr	r	r
rtszSignal.BoundSignal.disconnectcOs|jjt|�f|�|�S)z[Same as GObject.Object.emit except there is no need to specify
            the signal name.)r�emitr
)rrrr	r	r
rxszSignal.BoundSignal.emitN)�__name__�
__module__�__qualname__�__doc__rrrrrrrrr	r	r	r
�BoundSignalSsr#�cOst|�r|j}tj||�S)N)rrr
r)rrrrr	r	r
r}szSignal.__new__Nc		Cs�|r|r|j}nt|�r$|}|j}|r4|r4|j}tj|�|rX|pH|rXt|�\}}|dkrft�}||_||_||_	||_
||_||_||_dS)N)
rrr"r
r�get_signal_annotations�tupler�flags�return_type�	arg_types�accumulator�	accu_data)	rrrr'r(r)�docr*r+r	r	r
r�s&


zSignal.__init__cCs|dkr|S|j||�S)z:Returns a BoundSignal when accessed on an object instance.N)r#)rr�ownerr	r	r
�__get__�szSignal.__get__c
Osdt|tj�r |j|f|�|�n@t|�r2t|�}n|j}t|�|||j|j|j	|j
|j|jd�SdS)zmAllows for instantiated Signals to be used as a decorator or calling
        of the underlying signal method.)rrr'r(r)r,r*r+N)
�
isinstancerZGObjectrr
r�typer'r(r)r"r*r+)r�objrrrr	r	r
r�s
zSignal.__call__c
Cs8|dkr|j}t|�||j|j|j|j|j|j|jd�S)z%Returns a renamed copy of the Signal.N)rrr'r(r)r,r*r+)	rr0rr'r(r)r"r*r+)rZnewNamer	r	r
�copy�s
zSignal.copycCs|j|j|j|j|jfS)zKReturns a tuple of: (flags, return_type, arg_types, accumulator, accu_data))r'r(r)r*r+)rr	r	r
�get_signal_args�szSignal.get_signal_args)r$)N)N)rr r!r"r
r#rrZSIGNAL_RUN_FIRSTrr.rr2r3r	r	r	r
r!s1*


rc@seZdZdZdd�ZdS)�SignalOverridea&Specialized sub-class of Signal which can be used as a decorator for overriding
    existing signals on GObjects.

    :Example:

    .. code-block:: python

        class MyWidget(Gtk.Widget):
            @GObject.SignalOverride
            def configure_event(self):
                pass
    cCsdS)zReturns the string 'override'.�overrider	)rr	r	r
r3�szSignalOverride.get_signal_argsN)rr r!r"r3r	r	r	r
r4�sr4csZt�}d}t|d�rRddl}|j|��t�fdd��jD��}d�jkrR�jd}||fS)aAttempt pulling python 3 function annotations off of 'func' for
    use as a signals type information. Returns an ordered nested tuple
    of (return_type, (arg_type1, arg_type2, ...)). If the given function
    does not have annotations then (None, tuple()) is returned.
    N�__annotations__rc3s"|]}|�jkr�j|VqdS)N)�annotations)�.0�arg)�specr	r
�	<genexpr>�sz)get_signal_annotations.<locals>.<genexpr>�return)r&r�inspectZgetfullargspecrr7)rr)r(r=r	)r:r
r%�s



r%cCs�|jjdi�}i}xn|jj�D]`\}}t|t�rt|�}|sV|}|j|�}t|||�||krjtd|��|||<|j	�||<qW||_
xF|j�D]:\}}|jdk	r�d|jdd�}t
||�s�t|||j�q�WdS)z�Adds Signal instances on a GObject derived class into the '__gsignals__'
    dictionary to be picked up and registered as real GObject signals.
    �__gsignals__z(Signal "%s" has already been registered.NZdo_�-�_)�__dict__�get�itemsr/rr
r2�setattr�
ValueErrorr3r>r�replacer)rZgsignalsZ
newsignalsrrZ
signalNameZfuncNamer	r	r
�install_signals�s&



rG)rr)rr)
�sysr$r�version_inforr
rr4r%rGr	r	r	r
�<module>s"__pycache__/importer.cpython-36.pyc000064400000006456151734360760013272 0ustar003

��<_��@s�ddlmZddlZddlZddlZddlmZddlZddlm	Z	m
Z
ddlmZddlm
Z
ddlmZe	j�ZiZed	d
��Zdd�ZGd
d�de�ZdS)�)�absolute_importN)�contextmanager�)�
Repository�RepositoryError)�PyGIWarning)�get_introspection_module)�load_overridesccs^tj|�}dV|rdS|dkr$dStj|�dk	r6dStj|�}tjd||d�t|d�dS)	aOA context manager which tries to give helpful warnings
    about missing gi.require_version() which could potentially
    break code if only an older version than expected is installed
    or a new version gets introduced.

    ::

        with _check_require_version("Gtk", stacklevel):
            load_namespace_and_overrides()
    N�GLib�GObject�Gioz�%(namespace)s was imported without specifying a version first. Use gi.require_version('%(namespace)s', '%(version)s') before import to ensure that the right version gets loaded.)�	namespace�version)�
stacklevel)r
rr)�
repository�
is_registered�giZget_required_versionZget_version�warnings�warnr)r
rZ
was_loadedr�r� /usr/lib64/python3.6/importer.py�_check_require_version+s


rcCsZtjdd�}|dkr"|rdSdS|dkr6|r2dSdS|d	krJ|rFdSdS|rRdSdSdS)
a2Returns the stacklevel value for warnings.warn() for when the warning
    gets emitted by an imported module, but the warning should point at the
    code doing the import.

    Pass import_hook=True if the warning gets generated by an import hook
    (warn() gets called in load_module(), see PEP302)
    N�����
)rr)rr)rr)�sys�version_info)�import_hook�
py_versionrrr�get_import_stacklevelRs	r!c@s&eZdZdd�Zddd�Zdd�ZdS)	�DynamicImportercCs
||_dS)N)�path)�selfr#rrr�__init__lszDynamicImporter.__init__NcCsV|j|j�sdS|jdd�\}}||jkr.dStj|�sBtj|�rF|Std|��dS)N�.rz6cannot import name %s, introspection typelib not found)�
startswithr#�rsplitrrZenumerate_versions�ImportError)r$�fullnamer#r
rrr�find_moduleos


zDynamicImporter.find_modulec	Cs�|tjkrtj|S|jdd�\}}tdd�}t||d��ryt|�}Wn*tk
rr}zt|��WYdd}~XnXx*tj	|�D]}t
jd|jd�d�q�Wt
|�}WdQRXd	||_||_|tj|<|S)
Nr&rT)r)rzgi.repository.�-rz<%s>)r�modulesr(r!rrrr)rZget_immediate_dependencies�	importlib�
import_module�splitr	�__file__�
__loader__)	r$r*r#r
rZintrospection_module�eZdepZdynamic_modulerrr�load_module�s 




zDynamicImporter.load_module)N)�__name__�
__module__�__qualname__r%r+r4rrrrr"hs
r")Z
__future__rrrr.�
contextlibrrZ_girrr�modulerZ	overridesr	Zget_defaultrr-rr!�objectr"rrrr�<module>s'repository/__pycache__/__init__.cpython-36.pyc000064400000000445151734360760015377 0ustar003

��<_�@s8ddlmZddlZddlmZejjed��[[dS)�)�absolute_importN�)�DynamicImporterz
gi.repository)Z
__future__r�sysZimporterr�	meta_path�append�rr� /usr/lib64/python3.6/__init__.py�<module>s
repository/__pycache__/__init__.cpython-36.opt-1.pyc000064400000000445151734360760016336 0ustar003

��<_�@s8ddlmZddlZddlmZejjed��[[dS)�)�absolute_importN�)�DynamicImporterz
gi.repository)Z
__future__r�sysZimporterr�	meta_path�append�rr� /usr/lib64/python3.6/__init__.py�<module>s
repository/__init__.py000064400000002022151734360760011104 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2009 Johan Dahlin <johan@gnome.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from __future__ import absolute_import

import sys

from ..importer import DynamicImporter

sys.meta_path.append(DynamicImporter('gi.repository'))

del DynamicImporter
del sys
__init__.py000064400000013556151734360760006703 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2005-2009 Johan Dahlin <johan@gnome.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from __future__ import absolute_import

# support overrides in different directories than our gi module
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

import sys
import os
import importlib
import types

_static_binding_error = ('When using gi.repository you must not import static '
                         'modules like "gobject". Please change all occurrences '
                         'of "import gobject" to "from gi.repository import GObject". '
                         'See: https://bugzilla.gnome.org/show_bug.cgi?id=709183')

# we can't have pygobject 2 loaded at the same time we load the internal _gobject
if 'gobject' in sys.modules:
    raise ImportError(_static_binding_error)


from . import _gi
from ._gi import _API
from ._gi import Repository
from ._gi import PyGIDeprecationWarning
from ._gi import PyGIWarning

_API = _API  # pyflakes
PyGIDeprecationWarning = PyGIDeprecationWarning
PyGIWarning = PyGIWarning

_versions = {}
_overridesdir = os.path.join(os.path.dirname(__file__), 'overrides')

# Needed for compatibility with "pygobject.h"/pygobject_init()
_gobject = types.ModuleType("gi._gobject")
sys.modules[_gobject.__name__] = _gobject
_gobject._PyGObject_API = _gi._PyGObject_API
_gobject.pygobject_version = _gi.pygobject_version

version_info = _gi.pygobject_version[:]
__version__ = "{0}.{1}.{2}".format(*version_info)


class _DummyStaticModule(types.ModuleType):
    __path__ = None

    def __getattr__(self, name):
        raise AttributeError(_static_binding_error)


sys.modules['glib'] = _DummyStaticModule('glib', _static_binding_error)
sys.modules['gobject'] = _DummyStaticModule('gobject', _static_binding_error)
sys.modules['gio'] = _DummyStaticModule('gio', _static_binding_error)
sys.modules['gtk'] = _DummyStaticModule('gtk', _static_binding_error)
sys.modules['gtk.gdk'] = _DummyStaticModule('gtk.gdk', _static_binding_error)


def check_version(version):
    if isinstance(version, str):
        version_list = tuple(map(int, version.split(".")))
    else:
        version_list = version

    if version_list > version_info:
        raise ValueError((
            "pygobject's version %s required, and available version "
            "%s is not recent enough") % (version, __version__)
        )


def require_version(namespace, version):
    """ Ensures the correct versions are loaded when importing `gi` modules.

    :param namespace: The name of module to require.
    :type namespace: str
    :param version: The version of module to require.
    :type version: str
    :raises ValueError: If module/version is already loaded, already required, or unavailable.

    :Example:

    .. code-block:: python

        import gi
        gi.require_version('Gtk', '3.0')

    """
    repository = Repository.get_default()

    if sys.version_info[0] <= 2:
        if not isinstance(version, basestring):
            raise ValueError('Namespace version needs to be a string.')
    else:
        if not isinstance(version, str):
            raise ValueError('Namespace version needs to be a string.')

    if namespace in repository.get_loaded_namespaces():
        loaded_version = repository.get_version(namespace)
        if loaded_version != version:
            raise ValueError('Namespace %s is already loaded with version %s' %
                             (namespace, loaded_version))

    if namespace in _versions and _versions[namespace] != version:
        raise ValueError('Namespace %s already requires version %s' %
                         (namespace, _versions[namespace]))

    available_versions = repository.enumerate_versions(namespace)
    if not available_versions:
        raise ValueError('Namespace %s not available' % namespace)

    if version not in available_versions:
        raise ValueError('Namespace %s not available for version %s' %
                         (namespace, version))

    _versions[namespace] = version


def require_versions(requires):
    """ Utility function for consolidating multiple `gi.require_version()` calls.

    :param requires: The names and versions of modules to require.
    :type requires: dict

    :Example:

    .. code-block:: python

        import gi
        gi.require_versions({'Gtk': '3.0', 'GLib': '2.0', 'Gio': '2.0'})
    """
    for module_name, module_version in requires.items():
        require_version(module_name, module_version)


def get_required_version(namespace):
    return _versions.get(namespace, None)


def require_foreign(namespace, symbol=None):
    """Ensure the given foreign marshaling module is available and loaded.

    :param str namespace:
        Introspection namespace of the foreign module (e.g. "cairo")
    :param symbol:
        Optional symbol typename to ensure a converter exists.
    :type symbol: str or None
    :raises: ImportError

    :Example:

    .. code-block:: python

        import gi
        import cairo
        gi.require_foreign('cairo')

    """
    try:
        _gi.require_foreign(namespace, symbol)
    except Exception as e:
        raise ImportError(str(e))
    importlib.import_module('gi.repository', namespace)
pygtkcompat.py000064400000001376151734360760007503 0ustar00from __future__ import absolute_import
import warnings

from gi import PyGIDeprecationWarning

warnings.warn('gi.pygtkcompat is being deprecated in favor of using "pygtkcompat" directly.',
              PyGIDeprecationWarning)

# pyflakes.ignore
from pygtkcompat import (enable,
                         enable_gtk,
                         enable_vte,
                         enable_poppler,
                         enable_webkit,
                         enable_gudev,
                         enable_gst,
                         enable_goocanvas)


__all__ = ['enable',
           'enable_gtk',
           'enable_vte',
           'enable_poppler',
           'enable_webkit',
           'enable_gudev',
           'enable_gst',
           'enable_goocanvas']
_option.py000064400000031660151734360770006610 0ustar00# -*- Mode: Python -*-
# pygobject - Python bindings for the GObject library
# Copyright (C) 2006  Johannes Hoelzl
#
#   glib/option.py: GOption command line parser
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <http://www.gnu.org/licenses/>.

"""GOption command line parser

Extends optparse to use the GOptionGroup, GOptionEntry and GOptionContext
objects. So it is possible to use the gtk, gnome_program and gstreamer command
line groups and contexts.

Use this interface instead of the raw wrappers of GOptionContext and
GOptionGroup in glib.
"""

import sys
import optparse
from optparse import OptParseError, OptionError, OptionValueError, \
    BadOptionError, OptionConflictError
from .module import get_introspection_module

if sys.version_info >= (3, 0):
    _basestring = str
    _bytes = lambda s: s.encode()
else:
    _basestring = basestring
    _bytes = str

from gi import _gi
from gi._error import GError
GLib = get_introspection_module('GLib')

OPTION_CONTEXT_ERROR_QUARK = GLib.quark_to_string(GLib.option_error_quark())

__all__ = [
    "OptParseError",
    "OptionError",
    "OptionValueError",
    "BadOptionError",
    "OptionConflictError",
    "Option",
    "OptionGroup",
    "OptionParser",
    "make_option",
]


class Option(optparse.Option):
    """Represents a command line option

    To use the extended possibilities of the GOption API Option
    (and make_option) are extended with new types and attributes.

    Types:
        filename   The supplied arguments are read as filename, GOption
                   parses this type in with the GLib filename encoding.

    :ivar optional_arg:
        This does not need a arguement, but it can be supplied.
    :ivar hidden:
        The help list does not show this option
    :ivar in_main:
        This option apears in the main group, this should only
        be used for backwards compatibility.

    Use Option.REMAINING as option name to get all positional arguments.

    .. NOTE::
        Every argument to an option is passed as utf-8 coded string, the only
        exception are options which use the 'filename' type, its arguments
        are passed as strings in the GLib filename encoding.

    For further help, see optparse.Option.
    """
    TYPES = optparse.Option.TYPES + (
        'filename',
    )

    ATTRS = optparse.Option.ATTRS + [
        'hidden',
        'in_main',
        'optional_arg',
    ]

    REMAINING = '--' + GLib.OPTION_REMAINING

    def __init__(self, *args, **kwargs):
        optparse.Option.__init__(self, *args, **kwargs)
        if not self._long_opts:
            raise ValueError("%s at least one long option name.")

        if len(self._long_opts) < len(self._short_opts):
            raise ValueError(
                "%s at least more long option names than short option names.")

        if not self.help:
            raise ValueError("%s needs a help message.", self._long_opts[0])

    def _set_opt_string(self, opts):
        if self.REMAINING in opts:
            self._long_opts.append(self.REMAINING)
        optparse.Option._set_opt_string(self, opts)
        if len(self._short_opts) > len(self._long_opts):
            raise OptionError("goption.Option needs more long option names "
                              "than short option names")

    def _to_goptionentries(self):
        flags = 0

        if self.hidden:
            flags |= GLib.OptionFlags.HIDDEN

        if self.in_main:
            flags |= GLib.OptionFlags.IN_MAIN

        if self.takes_value():
            if self.optional_arg:
                flags |= GLib.OptionFlags.OPTIONAL_ARG
        else:
            flags |= GLib.OptionFlags.NO_ARG

        if self.type == 'filename':
            flags |= GLib.OptionFlags.FILENAME

        for (long_name, short_name) in zip(self._long_opts, self._short_opts):
            yield (long_name[2:], _bytes(short_name[1]), flags, self.help, self.metavar)

        for long_name in self._long_opts[len(self._short_opts):]:
            yield (long_name[2:], _bytes('\0'), flags, self.help, self.metavar)


class OptionGroup(optparse.OptionGroup):
    """A group of command line options.

    :param str name:
        The groups name, used to create the --help-{name} option
    :param str description:
        Shown as title of the groups help view
    :param str help_description:
        Shown as help to the --help-{name} option
    :param list option_list:
        The options used in this group, must be option.Option()
    :param dict defaults:
        A dicitionary of default values
    :param translation_domain:
           Sets the translation domain for gettext().

    .. NOTE::
        This OptionGroup does not exactly map the optparse.OptionGroup
        interface. There is no parser object to supply, but it is possible
        to set default values and option_lists. Also the default values and
        values are not shared with the OptionParser.

    To pass a OptionGroup into a function which expects a GOptionGroup (e.g.
    gnome_program_init() ). OptionGroup.get_option_group() can be used.

    For further help, see optparse.OptionGroup.
    """
    def __init__(self, name, description, help_description="",
                 option_list=None, defaults=None,
                 translation_domain=None):
        optparse.OptionContainer.__init__(self, Option, 'error', description)
        self.name = name
        self.parser = None
        self.help_description = help_description
        if defaults:
            self.defaults = defaults

        self.values = None

        self.translation_domain = translation_domain

        if option_list:
            for option in option_list:
                self.add_option(option)

    def _create_option_list(self):
        self.option_list = []
        self._create_option_mappings()

    def _to_goptiongroup(self, parser):
        def callback(option_name, option_value, group):
            if option_name.startswith('--'):
                opt = self._long_opt[option_name]
            else:
                opt = self._short_opt[option_name]

            try:
                opt.process(option_name, option_value, self.values, parser)
            except OptionValueError:
                error = sys.exc_info()[1]
                gerror = GError(str(error))
                gerror.domain = OPTION_CONTEXT_ERROR_QUARK
                gerror.code = GLib.OptionError.BAD_VALUE
                gerror.message = str(error)
                raise gerror

        group = _gi.OptionGroup(self.name, self.description,
                                self.help_description, callback)
        if self.translation_domain:
            group.set_translation_domain(self.translation_domain)

        entries = []
        for option in self.option_list:
            entries.extend(option._to_goptionentries())

        group.add_entries(entries)

        return group

    def get_option_group(self, parser=None):
        """ Returns the corresponding GOptionGroup object.

        Can be used as parameter for gnome_program_init(), gtk_init().
        """
        self.set_values_to_defaults()
        return self._to_goptiongroup(parser)

    def set_values_to_defaults(self):
        for option in self.option_list:
            default = self.defaults.get(option.dest)
            if isinstance(default, _basestring):
                opt_str = option.get_opt_string()
                self.defaults[option.dest] = option.check_value(
                    opt_str, default)
        self.values = optparse.Values(self.defaults)


class OptionParser(optparse.OptionParser):
    """Command line parser with GOption support.

    :param bool help_enabled:
        The --help, --help-all and --help-{group} options are enabled (default).
    :param bool ignore_unknown_options:
        Do not throw a exception when a option is not knwon, the option
        will be in the result list.

    .. NOTE::
        The OptionParser interface is not the exactly the same as the
        optparse.OptionParser interface. Especially the usage parameter
        is only used to show the metavar of the arguements.

    OptionParser.add_option_group() does not only accept OptionGroup instances
    but also glib.OptionGroup, which is returned by gtk_get_option_group().

    Only glib.option.OptionGroup and glib.option.Option instances should
    be passed as groups and options.

    For further help, see optparse.OptionParser.
    """

    def __init__(self, *args, **kwargs):
        if 'option_class' not in kwargs:
            kwargs['option_class'] = Option
        self.help_enabled = kwargs.pop('help_enabled', True)
        self.ignore_unknown_options = kwargs.pop('ignore_unknown_options',
                                                 False)
        optparse.OptionParser.__init__(self, add_help_option=False,
                                       *args, **kwargs)

    def set_usage(self, usage):
        if usage is None:
            self.usage = ''
        elif usage.startswith("%prog"):
            self.usage = usage[len("%prog"):]
        else:
            self.usage = usage

    def _to_goptioncontext(self, values):
        if self.description:
            parameter_string = self.usage + " - " + self.description
        else:
            parameter_string = self.usage
        context = _gi.OptionContext(parameter_string)
        context.set_help_enabled(self.help_enabled)
        context.set_ignore_unknown_options(self.ignore_unknown_options)

        for option_group in self.option_groups:
            if isinstance(option_group, _gi.OptionGroup):
                g_group = option_group
            else:
                g_group = option_group.get_option_group(self)
            context.add_group(g_group)

        def callback(option_name, option_value, group):
            if option_name.startswith('--'):
                opt = self._long_opt[option_name]
            else:
                opt = self._short_opt[option_name]
            opt.process(option_name, option_value, values, self)

        main_group = _gi.OptionGroup(None, None, None, callback)
        main_entries = []
        for option in self.option_list:
            main_entries.extend(option._to_goptionentries())
        main_group.add_entries(main_entries)
        context.set_main_group(main_group)

        return context

    def add_option_group(self, *args, **kwargs):
        if isinstance(args[0], _basestring):
            optparse.OptionParser.add_option_group(self,
                                                   OptionGroup(self, *args, **kwargs))
            return
        elif len(args) == 1 and not kwargs:
            if isinstance(args[0], OptionGroup):
                if not args[0].parser:
                    args[0].parser = self
                if args[0].parser is not self:
                    raise ValueError("invalid OptionGroup (wrong parser)")
            if isinstance(args[0], _gi.OptionGroup):
                self.option_groups.append(args[0])
                return
        optparse.OptionParser.add_option_group(self, *args, **kwargs)

    def _get_all_options(self):
        options = self.option_list[:]
        for group in self.option_groups:
            if isinstance(group, optparse.OptionGroup):
                options.extend(group.option_list)
        return options

    def _process_args(self, largs, rargs, values):
        context = self._to_goptioncontext(values)

        # _process_args() returns the remaining parameters in rargs.
        # The prepended program name is used to all g_set_prgname()
        # The program name is cut away so it doesn't appear in the result.
        rargs[:] = context.parse([sys.argv[0]] + rargs)[1:]

    def parse_args(self, args=None, values=None):
        old_args = args or []
        try:
            options, args = optparse.OptionParser.parse_args(
                self, args, values)
        except GError:
            error = sys.exc_info()[1]
            if error.domain != OPTION_CONTEXT_ERROR_QUARK:
                raise
            if error.code == GLib.OptionError.BAD_VALUE:
                raise OptionValueError(error.message)
            elif error.code == GLib.OptionError.UNKNOWN_OPTION:
                raise BadOptionError(error.message)
            elif error.code == GLib.OptionError.FAILED:
                raise OptParseError(error.message)
            else:
                raise

        for group in self.option_groups:
            for key, value in group.values.__dict__.items():
                options.ensure_value(key, value)

        args = args[2:-len(old_args)]
        return options, args


make_option = Option
_signalhelper.py000064400000023162151734360770007753 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# pygobject - Python bindings for the GObject library
# Copyright (C) 2012 Simon Feltman
#
#   gi/_signalhelper.py: GObject signal binding decorator object
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <http://www.gnu.org/licenses/>.

import sys

from . import _gi

# Callable went away in python 3.0 and came back in 3.2.
# Use versioning to figure out when to define it, otherwise we have to deal with
# the complexity of using __builtin__ or builtin between python versions to
# check if callable exists which PyFlakes will also complain about.
if (3, 0) <= sys.version_info < (3, 2):
    def callable(fn):
        return hasattr(fn, '__call__')


class Signal(str):
    """Object which gives a nice API for creating and binding signals.

    :param name:
        Name of signal or callable closure when used as a decorator.
    :type name: str or callable
    :param callable func:
        Callable closure method.
    :param GObject.SignalFlags flags:
        Flags specifying when to run closure.
    :param type return_type:
        Return type of the Signal.
    :param list arg_types:
        List of argument types specifying the signals function signature
    :param str doc:
        Documentation of signal object.
    :param callable accumulator:
        Accumulator method with the signature:
        func(ihint, return_accu, handler_return, accu_data) -> boolean
    :param object accu_data:
        User data passed to the accumulator.

    :Example:

    .. code-block:: python

        class Spam(GObject.Object):
            velocity = 0

            @GObject.Signal
            def pushed(self):
                self.velocity += 1

            @GObject.Signal(flags=GObject.SignalFlags.RUN_LAST)
            def pulled(self):
                self.velocity -= 1

            stomped = GObject.Signal('stomped', arg_types=(int,))

            @GObject.Signal
            def annotated_signal(self, a:int, b:str):
                "Python3 annotation support for parameter types.

        def on_pushed(obj):
            print(obj)

        spam = Spam()
        spam.pushed.connect(on_pushed)
        spam.pushed.emit()
    """
    class BoundSignal(str):
        """
        Temporary binding object which can be used for connecting signals
        without specifying the signal name string to connect.
        """
        def __new__(cls, name, *args, **kargs):
            return str.__new__(cls, name)

        def __init__(self, signal, gobj):
            str.__init__(self)
            self.signal = signal
            self.gobj = gobj

        def __repr__(self):
            return 'BoundSignal("%s")' % self

        def __call__(self, *args, **kargs):
            """Call the signals closure."""
            return self.signal.func(self.gobj, *args, **kargs)

        def connect(self, callback, *args, **kargs):
            """Same as GObject.Object.connect except there is no need to specify
            the signal name."""
            return self.gobj.connect(self, callback, *args, **kargs)

        def connect_detailed(self, callback, detail, *args, **kargs):
            """Same as GObject.Object.connect except there is no need to specify
            the signal name. In addition concats "::<detail>" to the signal name
            when connecting; for use with notifications like "notify" when a property
            changes.
            """
            return self.gobj.connect(self + '::' + detail, callback, *args, **kargs)

        def disconnect(self, handler_id):
            """Same as GObject.Object.disconnect."""
            self.instance.disconnect(handler_id)

        def emit(self, *args, **kargs):
            """Same as GObject.Object.emit except there is no need to specify
            the signal name."""
            return self.gobj.emit(str(self), *args, **kargs)

    def __new__(cls, name='', *args, **kargs):
        if callable(name):
            name = name.__name__
        return str.__new__(cls, name)

    def __init__(self, name='', func=None, flags=_gi.SIGNAL_RUN_FIRST,
                 return_type=None, arg_types=None, doc='', accumulator=None, accu_data=None):
        if func and not name:
            name = func.__name__
        elif callable(name):
            func = name
            name = func.__name__
        if func and not doc:
            doc = func.__doc__

        str.__init__(self)

        if func and not (return_type or arg_types):
            return_type, arg_types = get_signal_annotations(func)
        if arg_types is None:
            arg_types = tuple()

        self.func = func
        self.flags = flags
        self.return_type = return_type
        self.arg_types = arg_types
        self.__doc__ = doc
        self.accumulator = accumulator
        self.accu_data = accu_data

    def __get__(self, instance, owner=None):
        """Returns a BoundSignal when accessed on an object instance."""
        if instance is None:
            return self
        return self.BoundSignal(self, instance)

    def __call__(self, obj, *args, **kargs):
        """Allows for instantiated Signals to be used as a decorator or calling
        of the underlying signal method."""

        # If obj is a GObject, than we call this signal as a closure otherwise
        # it is used as a re-application of a decorator.
        if isinstance(obj, _gi.GObject):
            self.func(obj, *args, **kargs)
        else:
            # If self is already an allocated name, use it otherwise create a new named
            # signal using the closure name as the name.
            if str(self):
                name = str(self)
            else:
                name = obj.__name__
            # Return a new value of this type since it is based on an immutable string.
            return type(self)(name=name, func=obj, flags=self.flags,
                              return_type=self.return_type, arg_types=self.arg_types,
                              doc=self.__doc__, accumulator=self.accumulator, accu_data=self.accu_data)

    def copy(self, newName=None):
        """Returns a renamed copy of the Signal."""
        if newName is None:
            newName = self.name
        return type(self)(name=newName, func=self.func, flags=self.flags,
                          return_type=self.return_type, arg_types=self.arg_types,
                          doc=self.__doc__, accumulator=self.accumulator, accu_data=self.accu_data)

    def get_signal_args(self):
        """Returns a tuple of: (flags, return_type, arg_types, accumulator, accu_data)"""
        return (self.flags, self.return_type, self.arg_types, self.accumulator, self.accu_data)


class SignalOverride(Signal):
    """Specialized sub-class of Signal which can be used as a decorator for overriding
    existing signals on GObjects.

    :Example:

    .. code-block:: python

        class MyWidget(Gtk.Widget):
            @GObject.SignalOverride
            def configure_event(self):
                pass
    """
    def get_signal_args(self):
        """Returns the string 'override'."""
        return 'override'


def get_signal_annotations(func):
    """Attempt pulling python 3 function annotations off of 'func' for
    use as a signals type information. Returns an ordered nested tuple
    of (return_type, (arg_type1, arg_type2, ...)). If the given function
    does not have annotations then (None, tuple()) is returned.
    """
    arg_types = tuple()
    return_type = None

    if hasattr(func, '__annotations__'):
        # import inspect only when needed because it takes ~10 msec to load
        import inspect
        spec = inspect.getfullargspec(func)
        arg_types = tuple(spec.annotations[arg] for arg in spec.args
                          if arg in spec.annotations)
        if 'return' in spec.annotations:
            return_type = spec.annotations['return']

    return return_type, arg_types


def install_signals(cls):
    """Adds Signal instances on a GObject derived class into the '__gsignals__'
    dictionary to be picked up and registered as real GObject signals.
    """
    gsignals = cls.__dict__.get('__gsignals__', {})
    newsignals = {}
    for name, signal in cls.__dict__.items():
        if isinstance(signal, Signal):
            signalName = str(signal)
            # Fixup a signal which is unnamed by using the class variable name.
            # Since Signal is based on string which immutable,
            # we must copy and replace the class variable.
            if not signalName:
                signalName = name
                signal = signal.copy(name)
                setattr(cls, name, signal)
            if signalName in gsignals:
                raise ValueError('Signal "%s" has already been registered.' % name)
            newsignals[signalName] = signal
            gsignals[signalName] = signal.get_signal_args()

    cls.__gsignals__ = gsignals

    # Setup signal closures by adding the specially named
    # method to the class in the form of "do_<signal_name>".
    for name, signal in newsignals.items():
        if signal.func is not None:
            funcName = 'do_' + name.replace('-', '_')
            if not hasattr(cls, funcName):
                setattr(cls, funcName, signal.func)
_gi.cpython-36m-x86_64-linux-gnu.so000075500001231700151734360770012637 0ustar00ELF>�*@�,@8@@�@� ����$��$��`� ����$��$@@$$ � � �  P�tdX�X�X���Q�tdR�td����$��$hhGNU��1^^]����へ U��bbq�n���+�
h
5��0�2&
*B.w
	�=(+%�-�k"s%{Bw%n�0:W1��.�	�)�
���.�'�/b� `	g���(��Z���/��*�R��!��!m[x�C!N-�D<pl1{��&�$o�Y*�!���-�'�('+t,E15*�,f��&�0�0%/�W/��X�,��)\)�.�	�
U.��"�.�(�1H$�1.��.,�&A�"K'�W��(�*+�+�"X�.G
30��(;�"D%p/�R��
�g(E0���
x�
�'�&)��\!�*��
�

��$B��$.UU8+�u!�
��f$�e�+��/!�.'u�'�/#S�!��(D �%���.1d:�Y8"u
2.	�$�*�-
�	��
���-s#t�)P"(Z�T(�.��k	/��'/�1�KU
X�+&�'�6L�,��0�.�1�x�&`%�&G*�_�#� �0�'Z�.�G4�&Eh&� Z��'�/#�#q'0q

)h-�$�(p+�X\a�	�/� �*�|0���
2
l�%DYW0��#�	��^���,��,#'#*<�<h+��"��*�j0�B V�,|O&
�/5'�� �k*�!�
@,�/)L�-���w0��!�/�+1�)"G=�&�*|R*(�,�z�P�� �d�co	�%a r�2s�u)�"���}�� 1�%�[,��-� �1�� BG�&�4
��	�
��"��D�+^&�-?��i)���g.+_Nw(H�)%A	8#(
?y!�	�!
0��Y
�	e��.���+!0�g)V���#zo"i�)5/?-�(q���|-�'u�=����	�h�1�k7�-���.���#��+, �$�BT#>)C/-$ 
J+�%"-�&.��AX'�0�,K�$�	��(�
 F"���^+�C
C��
1���,s�Z�5	__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizePyGILState_EnsurePyGILState_Releaseg_object_get_qdataPyErr_Print_PyObject_CallMethod_SizeT_PyArg_ParseTuple_SizeT_Py_NoneStructPyCallable_CheckPySequence_CheckPySequence_Sizeg_malloc_nPySequence_GetItemPyErr_Clearg_snprintfPyExc_TypeErrorPyErr_SetStringg_mallocgi_cclosure_marshal_genericg_signal_newvPyExc_RuntimeError__stack_chk_fail_Py_BuildValue_SizeT_PyObject_CallFunction_SizeTPyTuple_SizePyObject_IsTrueg_quark_to_stringPyUnicode_FromStringg_type_fundamentalg_param_spec_variantg_type_nameg_param_spec_objectg_param_spec_charg_param_spec_ucharg_param_spec_booleang_param_spec_intg_param_spec_uintg_param_spec_longg_param_spec_ulongg_param_spec_int64g_param_spec_uint64g_param_spec_enumg_param_spec_flagsg_param_spec_floatg_param_spec_doubleg_param_spec_stringg_gtype_get_typeg_param_spec_pointerg_param_spec_boxedg_param_spec_paramg_param_spec_gtypePyUnicode_AsUTF8PySequence_GetSlicePyTuple_GetItemPyLong_AsLongg_object_class_install_propertyPyDict_NextPyErr_FetchPyErr_RestorePyDict_GetItemStringPyDict_Newg_strdupPyDict_SetItemStringg_signal_lookupg_signal_override_class_closurePyDict_DelItemStringPyExc_DeprecationWarningPyErr_WarnExg_type_parentg_type_get_qdataPyTuple_NewPyTuple_SetItemPySequence_ConcatPyObject_CallObject_Py_TrueStructstrleng_ascii_tableg_hash_table_foreachg_hash_table_destroyg_log_remove_handlerPy_IsInitializedg_log_default_handlerg_slist_prependg_type_set_qdatag_type_class_refg_object_class_find_propertyg_value_initg_type_class_unrefPyErr_Formatg_value_unsetg_return_if_fail_warningg_private_setg_private_getg_hash_table_lookupg_log_set_handlerg_hash_table_insertg_str_hashg_str_equalg_hash_table_new_fullg_type_check_class_castPyModule_AddIntConstantg_logg_type_from_namePyObject_Reprg_type_is_aPyBool_FromLongPyType_TypePyType_IsSubtypeg_type_interfacesg_type_queryg_type_register_staticg_quark_from_stringPyObject_SetAttrStringPyErr_Occurredg_type_add_interface_staticPyObject_GetAttrStringg_strconcatg_strdup_printfPyExc_RuntimeWarningg_assertion_message_exprg_object_newvg_object_is_floatingg_type_test_flagsPyLong_FromLongg_object_class_list_propertiesg_type_default_interface_refg_object_interface_list_propertiesg_type_default_interface_unrefg_object_unrefg_signal_parse_nameg_signal_add_emission_hookPyLong_FromUnsignedLongg_value_get_typePyCapsule_NewPyFloat_FromDoublePyModule_AddObjectPyLong_FromSize_tPyLong_FromSsize_tPyLong_FromLongLongg_gstring_get_typePyExc_WarningPyErr_NewExceptiong_boxed_freePyObject_Freeg_strrstrPyUnicode_FromFormatPyExc_NotImplementedError_Py_NotImplementedStructPyObject_IsInstancePyType_Readyg_boxed_copyg_quark_from_static_stringPyType_GenericNewPyType_GenericAllocPyLong_Type_PyArg_ParseTupleAndKeywords_SizeTPyDict_SizePyDict_GetItemPyExc_ValueErrorg_type_check_class_is_a__sprintf_chkg_enum_get_valuePyModule_GetNamePyDict_SetItemPyList_NewPyLong_AsUnsignedLongMaskPyList_AppendPyObject_IsSubclassg_flags_get_first_valueg_slist_removeg_closure_invalidatePyEval_SaveThreadPyEval_RestoreThreadg_object_weak_unrefPyObject_GC_UnTrackPyObject_GC_Delg_param_spec_get_nameg_strdelimitPyList_SetItemPyObject_MallocPyObject_Initg_type_check_instance_castg_object_set_propertyPyObject_GenericSetAttrPyObject_GenericGetAttrg_type_check_instance_is_fundamentally_a_PyObject_GC_Newg_object_weak_refg_signal_get_invocation_hintg_signal_nameg_signal_queryg_malloc0_ng_value_set_objectg_value_set_static_boxedg_signal_chain_from_overriddeng_signal_emitvg_closure_new_simpleg_closure_add_invalidate_notifierg_closure_set_marshalg_value_get_boxedg_value_set_booleang_object_freeze_notifyg_object_thaw_notifyg_object_set_qdata_fullg_object_remove_toggle_refPyBaseObject_Typeg_object_add_toggle_refPyObject_CallPyExc_StopIterationPyErr_SetNoneg_malloc0PyObject_ClearWeakRefsPyObject_RichCompareBoolg_signal_handlers_unblock_matchedg_signal_handlers_block_matchedg_signal_handlers_disconnect_matchedg_initially_unowned_get_typeg_type_check_instance_is_ag_object_ref_sinkstrrchrPySequence_ListPySequence_ContainsPySequence_TuplePyUnicode_FromStringAndSizePyObject_GC_Trackg_object_bind_property_with_closuresg_slist_findg_signal_connect_closure_by_id_PyObject_Newg_boxed_type_register_staticg_param_spec_typesstrcmpg_param_spec_get_blurbPyExc_AttributeErrorg_param_spec_get_nickPyLong_FromUnsignedLongLongg_param_spec_unrefg_param_spec_refg_type_check_valueg_value_get_objectg_signal_list_idsg_string_append_printfg_string_appendg_type_depthg_type_value_table_peekg_type_check_is_value_typeg_type_childrenPyBool_TypePyFloat_TypePyUnicode_Typeg_string_new_leng_string_freeg_array_newg_array_append_valsg_type_next_baseg_array_freeg_enum_get_value_by_nameg_enum_get_value_by_nickg_flags_get_value_by_nameg_flags_get_value_by_nickg_closure_refg_closure_sinkPyUnicode_GetSizePyUnicode_AsUnicodePyUnicode_FromObjectg_strv_get_typeg_option_context_newg_option_context_add_groupg_option_context_set_main_groupg_option_context_get_ignore_unknown_optionsg_option_context_set_ignore_unknown_optionsg_option_context_get_help_enabledg_option_context_set_help_enabledPyList_SizePyList_GetItemg_strfreevg_strdupvg_option_context_parseg_strv_lengthg_option_context_freeg_option_group_newg_slist_foreachg_slist_freeg_option_group_freeg_option_group_add_entriesg_option_group_set_translation_domaing_slice_free1g_spawn_close_pidg_slice_allocg_spawn_async_with_pipes_Py_FalseStructg_io_channel_get_typePyBytes_SizePyBytes_AsStringg_io_channel_read_charsPyBytes_FromStringAndSize_PyBytes_ResizePyBytes_FromStringg_base_info_get_containerg_base_info_get_typeg_registered_type_info_get_g_typeg_object_info_get_class_structg_struct_info_get_n_fieldsg_struct_info_get_fieldg_base_info_get_nameg_field_info_get_typeg_type_info_get_tagg_base_info_unrefg_type_interface_peekg_interface_info_get_iface_structg_type_info_get_interfaceg_field_info_get_offsetg_enum_info_get_n_valuesg_enum_info_get_valueg_base_info_get_attributeg_value_info_get_valueg_base_info_get_namespaceg_flags_register_staticg_enum_register_staticg_irepository_get_defaultg_irepository_find_by_gtypePyModule_Create2PyModule_GetDictPyEval_InitThreadsPyModule_AddStringConstantPyInit__gig_irepository_is_registeredg_irepository_get_immediate_dependenciesg_irepository_get_dependenciesg_irepository_get_loaded_namespacesg_irepository_get_versiong_irepository_get_typelib_pathg_irepository_find_by_nameg_strndupg_irepository_get_n_infosg_irepository_get_infog_irepository_requireg_error_freeg_irepository_enumerate_versionsg_list_freeg_enum_info_get_storage_typeg_type_info_get_array_typeg_type_info_is_zero_terminatedg_type_info_is_pointerg_type_info_get_array_fixed_sizeg_type_info_get_array_lengthg_type_tag_to_stringg_arg_info_get_destroyg_arg_info_get_closureg_arg_info_get_scopeg_arg_info_get_ownership_transferg_arg_info_may_be_nullg_arg_info_is_optionalg_arg_info_is_return_valueg_arg_info_is_caller_allocatesg_arg_info_get_directiong_property_info_get_ownership_transferg_property_info_get_flagsg_union_info_get_sizeg_struct_info_get_sizeg_field_info_get_sizeg_field_info_get_flagsg_struct_info_is_foreigng_object_info_get_fieldg_field_info_get_fieldg_union_info_get_fieldg_constant_info_get_valueg_constant_info_get_typeg_constant_info_free_valueg_object_info_get_fundamentalg_object_info_get_abstractg_struct_info_is_gtype_structg_struct_info_get_alignmentg_signal_info_true_stops_emitg_signal_info_get_flagsg_vfunc_info_get_offsetg_vfunc_info_get_flagsg_function_info_get_flagsg_callable_info_skip_returng_callable_info_may_return_nullg_callable_info_get_caller_ownsPyUnicode_InternInPlacePyUnicode_InternFromStringPyObject_CallFunctionObjArgsPyImport_ImportModulePyUnicode_AsUTF8Stringg_base_info_is_deprecatedg_callable_info_get_return_attributeg_base_info_equalg_callable_info_can_throw_gerrorg_object_info_get_get_value_functiong_object_info_get_set_value_functiong_object_info_get_ref_functiong_object_info_get_unref_functiong_object_info_get_type_initg_object_info_get_type_nameg_registered_type_info_get_type_initg_registered_type_info_get_type_nameg_function_info_get_symbolg_base_info_refg_arg_info_get_typeg_property_info_get_typeg_object_info_get_parentg_signal_info_get_class_closureg_vfunc_info_get_invokerg_vfunc_info_get_signalg_function_info_get_vfuncg_function_info_get_propertyg_callable_info_get_return_typeg_type_info_get_param_typeg_union_info_get_methodg_union_info_get_n_methodsg_union_info_get_n_fieldsg_interface_info_get_constantg_interface_info_get_n_constantsg_interface_info_get_vfuncg_interface_info_get_n_vfuncsg_interface_info_get_signalg_interface_info_get_n_signalsg_interface_info_get_methodg_interface_info_get_n_methodsg_interface_info_get_propertyg_interface_info_get_n_propertiesg_interface_info_get_prerequisiteg_interface_info_get_n_prerequisitesg_object_info_get_vfuncg_object_info_get_n_vfuncsg_object_info_get_constantg_object_info_get_n_constantsg_object_info_get_interfaceg_object_info_get_n_interfacesg_object_info_get_signalg_object_info_get_n_signalsg_object_info_get_propertyg_object_info_get_n_propertiesg_object_info_get_n_fieldsg_object_info_get_methodg_object_info_get_n_methodsg_enum_info_get_methodg_enum_info_get_n_methodsg_struct_info_get_methodg_struct_info_get_n_methodsg_callable_info_get_argg_callable_info_get_n_argsg_interface_info_find_vfuncg_interface_info_find_signalg_interface_info_find_methodg_object_info_find_vfuncg_object_info_find_methodPyErr_NoMemoryPyObject_TypePyUnicode_Concatg_field_info_set_fieldmemmovePyExc_KeyErrorg_ptr_array_addg_ptr_array_newg_try_malloc0PyErr_ExceptionMatchesg_source_get_typeg_source_set_callbackg_source_newg_callable_info_load_argg_arg_info_load_typeg_array_sized_newg_slist_lengthg_array_get_element_sizePyLong_FromVoidPtr__memcpy_chkg_warn_messageg_error_copyg_hash_table_iter_initg_hash_table_iter_nextg_hash_table_unrefg_hash_table_steal_allg_closure_get_typeg_closure_unrefPyMapping_SizePyMapping_KeysPyMapping_Valuesg_hash_table_newPyNumber_Longg_list_prependmemcpyg_array_insert_valsPyTuple_TypePyUnicode_FormatPyThreadState_Get_PyTrash_thread_deposit_object_PyTrash_thread_destroy_chainPyObject_DirPyDict_KeysPySequence_InPlaceConcatPyLong_AsSsize_tg_slice_alloc0g_callable_info_free_closure_PyTuple_Resizeg_slist_free_fullg_callable_info_prepare_closureg_object_get_propertyg_value_dup_boxedg_value_set_boxedg_value_set_scharg_value_set_ucharg_type_check_value_holdsg_value_set_intg_value_set_uintg_value_set_int64g_value_set_uint64g_value_set_floatg_value_set_doubleg_value_set_gtypeg_value_set_stringg_value_take_boxedg_value_set_longg_value_set_ulongg_value_set_pointerg_value_set_flagsg_value_set_enumg_value_set_variantg_assertion_message_cmpnumg_object_info_find_signalmemsetg_hash_table_lookup_extendedffi_callgi_type_info_extract_ffi_return_valuePyTuple_GetSliceg_ptr_array_unrefg_function_invoker_destroyg_vfunc_info_get_addressg_hash_table_remove_allg_slist_appendg_callable_info_get_instance_ownership_transferg_strjoing_ptr_array_new_fullg_ptr_array_set_sizeg_function_invoker_new_for_addressg_function_info_prep_invokerPyNumber_CheckPyLong_AsUnsignedLongLongPyExc_OverflowErrorPyLong_AsLongLongPyNumber_FloatPyFloat_AsDouble__snprintf_chkPyCapsule_TypePyLong_AsVoidPtrPyCapsule_GetPointerPyUnicode_EncodeFSDefaultPyBytes_AsStringAndSize__assert_failg_utf8_get_charg_unichar_validateg_unichar_to_utf8PyUnicode_DecodeFSDefaultg_list_lengthg_ptr_array_sized_newg_list_reverseg_list_copyg_slist_reverseg_slist_copyg_array_unrefg_value_copyg_ptr_array_freeg_array_refg_ptr_array_refPyErr_SetObjectg_clear_errorg_set_error_literalPyErr_NormalizeExceptionPyErr_GivenExceptionMatchesg_error_get_typeg_object_refg_object_force_floatingg_value_get_variantg_value_get_pointerg_value_get_longg_value_get_ulongg_value_get_booleang_value_get_scharg_value_get_ucharg_value_get_gtypeg_value_get_stringg_value_get_floatg_value_get_doubleg_value_get_int64g_value_get_uintg_value_get_intg_value_get_uint64g_value_get_paramg_value_get_flagsg_value_get_enumg_info_type_to_stringg_variant_refg_value_array_get_typeg_value_array_newg_value_array_appendg_value_array_freeg_value_set_paramPyLong_AsUnsignedLongPyObject_Strg_array_get_typePyUnicode_AsUTF8AndSizePyUnicode_FromUnicodeg_variant_ref_sinkg_hash_table_reflibgirepository-1.0.so.1libgobject-2.0.so.0libglib-2.0.so.0libffi.so.6libpthread.so.0libc.so.6_gi.cpython-36m-x86_64-linux-gnu.soGLIBC_2.14GLIBC_2.4GLIBC_2.2.5GLIBC_2.3.4q2����2ii
�2ui	�2ti	�2��$�+��$p+��$��$��$ �$�$��$ �$ �$��$�zȝ$��$H�$��$�$��$p��$���$ � �$	(�$�0�$�+8�$P�@�$�H�$pP�$@X�$�`�$Pph�$�[p�$0�x�$ �$��$`d��$�e��$`�$��$ ���$����$�I��$�J��$�C��$�IȠ$B�$��$�$���$p@��$�$�E�$�p�$0`�$��$ �$po(�$�r0�$`�$8�$�~@�$�P�$�+X�$�+`�$ ,h�$�Ep�$�x�$�	��$�H��$�D��$N��$���$`���$����$`�$��$�c�$Ş�$0g8�$ʞ��$���$���$�n�$���$Pn`�$��h�$@k��$g�@�$��`�$ wh�$ wp�$ wx�$ w��$ w��$ wȦ$��Ц$�ئ$`���$����$�}��$����$@}Ч$��ا$0v��$���$@ux�$���$����$����$0���$����$����$����$����$��Э$��ح$p� �$�(�$�@�$ʯH�$�`�$g�h�$����$ٯ��$���$���$����$ڮȮ$P��$���$���$���$�� �$��(�$��@�$0�H�$@�`�$�h�$����$!���$@���$����$����$9�ȯ$���$?��$��$H��$� �$Q�(�$Ќx�$^��$m���$ ��$���$��X�$����$����$����$��ط$|�x�$Բ�$%�8�$}���$��ȼ$0��$���$��$���$� �$��(�$��@�$̴H�$p�`�$޴h�$@���$���$���$����$����$
�Ƚ$`��$���$��$6��$�@�$�H�$��P�$�h�$;�p�$���$����$����$����$���$!��$��$���$P�0�$*�8�$����$0� �$��0�$��@�$ߺP�$E�`�$E���$\���$���$����$`��$���$@�$���$��$ۺ�$� �$��(�$�@�$�H�$p`�$A�h�$�
��$���$�
��$!�`�$��p�$����$;���$����$����$����$����$ ��$����$�8�$Ż��$����$���$���$v���$)���$5���$?���$N��$^� �$m�(�$�x�$s��$���$� �$��0�$�h�$Z���$��$��$���$޿��$�3�$ ��$ / �$ѿ(�$ 3@�$@�H�$P,`�$��h�$�1��$$���$`)��$���$�(��$A���$�(��$L���$���$`��$`& �$c�(�$@�@�$�H�$ X�$h�`�$ޒh�$�K��$���$`L��$7���$M��$N���$�M��$ɓ��$PT�$���$�V �$�(�$�X@�$��H�$PZ`�$0�h�$�Z��$p���$�\��$����$�\��$����$0]�$`� �$`�(�$��0�$"�@�$`�P�$`�X�$;�p�$`���$`���$`���$`���$`���$����$'���$�=�$:��$�= �$�(�$�<@�$��H�$ ;`�$��h�$:��$����$`9��$o���$�8��$F���$08��$Q���$`7�$\��$�6 �$6�(�$6x�$w��$���$��$��$
� �$�(�$�0�$�8�$��@�$�H�$'�P�$+�X�$/�`�$4�h�$9�p�$@�x�$H���$L���$Q���$1���$X���$<���$_���$b���$i���$r���$I���$v���${���$����$����$����$���$���$�� �$��(�$�V@�$��H�$�V`�$��h�$�B��$��@�$��H�$G`�$��h�$�F��$����$�T��$����$�T��$����$� �$E�(�$�b@�$��H�$ f`�$��h�$C��$����$�B��$����$�B��$���$�S�$���$E���$�D��$*���$E���$E��$7�`�$G�h�$�W��$ʯ��$`W��$����$@W��$Y���$�Y��$e���$ W�$q��$�Y �$}�(�$W@�$��H�$�V`�$��h�$T��$����$�Y��$��`�$��h�$@T��$����$`X��$Y���$0Z��$����$@X��$ʯ��$ X�$e��$X �$��(�$�W@�$��H�$�W`�$}�h�$�W��$����$Z��$����$0F��$����$pO��$����$PO�$���$F �$�(�$ T@�$�H�$0O`�$)�h�$O��$:���$�N��$Q���$�N��$����$h���$�X��$s���$pI��$����$�X��$|���$@8�$����$����$�X��$����$�X�$���$�B �$��(�$pF@�$��H�$PF`�$��h�$�C��$��@�$��H�$�O`�$��h�$�O��$����$�F��$��`�$��h�$pG��$����$PG��$����$�O��$����$0G��$���$�T�$��$�TX�$���$!���$�@�$,��$�? �$4�(�$�@@�$F�H�$ U`�$U�h�$�S��$c���$�@��$t���$�@��$����$p@��$����$P@8�$����$����$ B��$����$B�$���$�A �$��(�$�A@�$��H�$�A`�$�h�$�A��$���$`A��$"���$@A��$.���$ A��$���$�S8�$:���$����$`B��$���$�S�$��$@BX�$E��$���$�F�$U��$`T �$g�(�$�Fx�$w��$����$��X�$��$x��$pQ��$/��$a��$ C �$4�`�$�h�$0@��$@���$Q��$I���$P��$\��$�O�$j��$`L�$x��$0P �$��(�$�[@�$��H�$@M��$�� %��(% �@%��H%Y`%��h%U�%���%�G�%���%�G�%���%�G�%���%�L%�%`N@%`�H%�x%��%��%�%0�%p�`%��h% ��%���%��%%��% ��%:��%���%���%���% �8%���%
���$	��$��$��$��$"Ȝ$+М$.؜$0�$5�$>��$@�$E�$G�$P�$R(�$u0�$x8�$|@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$�Н$�؝$��$��$��$���$��$��$��$�$ �$(�$0�$8�$@�$&H�$)P�$-X�$2`�$3h�$8p�$9x�$@��$F��$S��$X��$a��$t��$u��$y��$}��$Ȟ$�О$�؞$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$��$��$	��$��$��$0ȟ$1П$4؟$7�$:�$H�$Q��$_�$�$�$ �$(�$0�$8�$@�$H�$
P�$X�$`�$
h�$p�$x�$��$��$��$��$��$��$��$��$��$Ȍ$Ќ$،$�$�$ �$!��$#�$$�$%�$&�$' �$((�$)0�$*8�$,@�$-H�$/P�$1X�$2`�$3h�$4p�$5x�$6��$7��$8��$9��$:��$;��$<��$=��$?��$Aȍ$BЍ$C؍$D�$E�$F�$G��$H�$I�$J�$K�$L �$M(�$N0�$O8�$Q@�$SH�$TP�$UX�$V`�$Wh�$Xp�$Yx�$Z��$[��$\��$]��$^��$_��$`��$a��$b��$cȎ$dЎ$e؎$f�$g�$h�$i��$j�$k�$l�$m�$n �$o(�$p0�$q8�$r@�$sH�$tP�$vX�$w`�$yh�$zp�${x�$}��$~��$��$���$���$���$���$���$���$�ȏ$�Џ$�؏$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$���$�Ȑ$�А$�ؐ$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$���$�ȑ$�Б$�ؑ$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$���$�Ȓ$�В$�ؒ$��$��$��$���$��$�$�$�$ �$(�$0�$8�$@�$H�$	P�$
X�$`�$h�$
p�$x�$��$��$��$��$��$��$��$��$��$ȓ$Г$ؓ$ �$!�$"�$#��$$�$%�$'�$(�$* �$+(�$,0�$.8�$/@�$0H�$1P�$3X�$4`�$5h�$6p�$7x�$9��$:��$;��$<��$=��$>��$?��$A��$B��$CȔ$DД$Eؔ$G�$H�$I�$J��$K�$L�$M�$N�$O �$P(�$Q0�$R8�$S@�$TH�$UP�$VX�$W`�$Yh�$Zp�$[x�$\��$]��$^��$_��$`��$a��$b��$c��$d��$eȕ$fЕ$gؕ$h�$i�$j�$k��$l�$m�$n�$o�$p �$q(�$r0�$s8�$u@�$vH�$wP�$xX�$z`�${h�$|p�$~x�$���$���$���$���$���$���$���$���$���$�Ȗ$�Ж$�ؖ$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$���$�ȗ$�З$�ؗ$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$���$�Ș$�И$�ؘ$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$���$�ș$�Й$�ؙ$��$�$�$��$�$�$�$�$
 �$(�$0�$
8�$@�$H�$P�$X�$`�$h�$p�$x�$��$��$��$��$��$��$��$��$��$ Ț$!К$"ؚ$#�$$�$%�$&��$'�$(�$)�$*�$+ �$,(�$-0�$.8�$/@�$2H�$3P�$5X�$6`�$8h�$9p�$;x�$<��$=��$>��$?��$@��$A��$B��$C��$D��$Eț$FЛ$G؛$I�$J�$K�$L��$M�$N�$O�$P�$Q �$R(�$S0�$T8�$U@�$VH�$WP�$XX�$Y`�$Zh�$[p�$\x�$]��$^��$`��$a��H��H�ٵ#H��t��H����5b�#�%c�#��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h��������h�������h�������h������h������h������h������h������h��q����h��a����h	��Q����h
��A����h��1����h��!����h
������h������h�������h�������h�������h������h������h������h������h������h��q����h��a����h��Q����h��A����h��1����h��!����h������h������h�������h �������h!�������h"������h#������h$������h%������h&������h'��q����h(��a����h)��Q����h*��A����h+��1����h,��!����h-������h.������h/�������h0�������h1�������h2������h3������h4������h5������h6������h7��q����h8��a����h9��Q����h:��A����h;��1����h<��!����h=������h>������h?�������h@�������hA�������hB������hC������hD������hE������hF������hG��q����hH��a����hI��Q����hJ��A����hK��1����hL��!����hM������hN������hO�������hP�������hQ�������hR������hS������hT������hU������hV������hW��q����hX��a����hY��Q����hZ��A����h[��1����h\��!����h]������h^������h_�������h`�������ha�������hb������hc������hd������he������hf������hg��q����hh��a����hi��Q����hj��A����hk��1����hl��!����hm������hn������ho�������hp�������hq�������hr������hs������ht������hu������hv������hw��q����hx��a����hy��Q����hz��A����h{��1����h|��!����h}������h~������h�������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h���������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h	��Q�����h
��A�����h��1�����h��!�����h
�������h�������h��������h��������h���������%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%�#D���%�#D���%݁#D���%Ձ#D���%́#D���%Ł#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%�#D���%�#D���%݀#D���%Հ#D���%̀#D���%ŀ#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%�#D���%}#D���%u#D���%m#D���%e#D���%]#D���%U#D���%M#D���%E#D���%=#D���%5#D���%-#D���%%#D���%#D���%#D���%
#D���%#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%�~#D���%}~#D���%u~#D���%m~#D���%e~#D���%]~#D���%U~#D���%M~#D���%E~#D���%=~#D���%5~#D���%-~#D���%%~#D���%~#D���%~#D���%
~#D���%~#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%�}#D���%}}#D���%u}#D���%m}#D���%e}#D���%]}#D���%U}#D���%M}#D���%E}#D���%=}#D���%5}#D���%-}#D���%%}#D���%}#D���%}#D���%
}#D���%}#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%�|#D���%}|#D���%u|#D���%m|#D���%e|#D���%]|#D���%U|#D���%M|#D���%E|#D���%=|#D���%5|#D���%-|#D���%%|#D���%|#D���%|#D���%
|#D���%|#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%�{#D���%}{#D���%u{#D���%m{#D���%e{#D���%]{#D���%U{#D���%M{#D���%E{#D���%={#D���%5{#D���%-{#D���%%{#D���%{#D���%{#D���%
{#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���%�z#D���%�z#D���%}z#D���%uz#D���%mz#D���%ez#D���%]z#D���%Uz#D���%Mz#D���%Ez#D���%=z#D���%5z#D���%-z#D���%%z#D���%z#D���%z#D���%
z#D���%z#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%�y#D���%}y#D���%uy#D���%my#D���%ey#D���%]y#D���%Uy#D���%My#D���%Ey#D���%=y#D���%5y#D���%-y#D���%%y#D���%y#D���%y#D���%
y#D���%y#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%�x#D���%}x#D���%ux#D���%mx#D���%ex#D���%]x#D���%Ux#D���%Mx#D���%Ex#D���%=x#D���%5x#D���%-x#D���%%x#D���%x#D���%x#D���%
x#D���%x#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%�w#D���%}w#D���%uw#D���%mw#D���%ew#D���%]w#D���%Uw#D���%Mw#D���%Ew#D���%=w#D���%5w#D���%-w#D���%%w#D���%w#D���%w#D���%
w#D���%w#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%�v#D���%}v#D���%uv#D���%mv#D���%ev#D���%]v#D���%Uv#D���%Mv#D���%Ev#D���%=v#D���%5v#D���%-v#D���%%v#D���%v#D���%v#D���%
v#D���%v#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%�u#D���%}u#D���%uu#D���%mu#D���%eu#D���%]u#D���%Uu#D���%Mu#D���%Eu#D���%=u#D���%5u#D���%-u#D���%%u#D���%u#D���%u#D���%
u#D���%u#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%�t#D���%}t#D���%ut#D���%mt#D���%et#D���%]t#D���%Ut#D���%Mt#D���%Et#D���%=t#D���%5t#D���%-t#D���%%t#D���%t#D���%t#D���%
t#D���%t#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%�s#D���%}s#D���%us#D���%ms#D���%es#D���%]s#D���%Us#D���%Ms#D���%Es#D���%=s#D���%5s#D���%-s#D���%%s#D���%s#D���%s#D���%
s#D���%s#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%�r#D���%}r#D���%ur#D���%mr#D���%er#D���%]r#D���%Ur#D���%Mr#D���%Er#D���%=r#D���%5r#D���%-r#D���%%r#D���%r#D���%r#D���%
r#D���%r#D���%�q#D���%�q#D���%�q#D���%�q#D���%�q#D���%�q#D���%�q#D���%�q#D���%�q#D���%�q#DH�%�%�%@H�=I�#H�B�#H9�tH��q#H��t	�����H�=�#H�5�#H)�H��H��H��?H�H�tH�et#H��t��fD�����=��#u+UH�=jt#H��tH�=^#�I����d������#]������w������1��f���������USH��H����H�+��u
H�CH��P0H����[]��Df.��������AVI��AUI��ATUH��S�f�H��A��H�e�#�0�B�H��tuH�H��L��H��苰H��H��tCH��L����C��xtH�+u
H�CH��P0H�mu
H�EH��P0[D��]A\A]A^�s��H�+u�H�CH��P0��fDH���@�H��H��u�[D��]A\A]A^�8����+��f���AVI��AUI��ATUH��S��H��A��H���#�0�b�H����H�H��L���J��L��I���Z.L��H��H��H��I��H�5`d1���H����H�(tzH�+t\I�mt=H�mt[D��]A\A]A^�v��fDH�EH��P0[D��]A\A]A^�V��fDI�EL��P0H�mu���DH�CH��P0I�mu���DH�PH��R0H�+�x�����f.�H����H��H���
���[D��]A\A]A^����@���H�+�5�����AWAVAUI��H�5pcATUSH���H�|$H�L$0H��H�T$,H��dH�%(H��$�1�H�D$HH�D$PH�D$PP1�L�L$PL�D$H�3�ZY���)H�|$@H;=�o#tH��t�!���GH�|$01��;�I��H��u3H��$�dH3%(���%H���[]A\A]A^A_��H�|$8�6�����H�|$8�����I��H�D$���H��E����A�n�E1��,f�H��I�u
I�GL���P0I�FI9���I��H�|$8L����H��I���u�H��J��I�u�H��I�u
I�GL���P0H��1�����������H�l$P�$�L��H��eH�タ1��;���H�Lm#H��H�8�������@H�l$PL��H��e���H�l$PL��H��e��H�D$@H��tFH;'n#t=��S��L��H��H�D$@H�EH�H�D$HH�EH��tH��
�1�E1�L�D$�A�S�T$I��H��L��RAT�5m#L�D$8�T$LH�t$(�W�H��H�� ����t���������H�\$PL�龀1�H��H�ce�.���H��k#H��1�H�8�������������AVI��AUI��ATI��USH���3�A�~�Ņ���H�&m#H�A�NA�6H�=S`1����L��I���*1�L��I���)L�KM��L��H��M����H�;H�5`1�����H��H����H�C���uHH�yk#H�5�dE1�H�8���
�H�+t�����[D��]A\A]A^ÐH�CH��P0��@H����H��u�H�{���H�s L��A����=��t������s���H����H�����H�;H�5d�1����H��H���>����n�E1��b���fDAWE��AVI��AUI��ATI��H��UL��SH��H��dH�%(H��$�1����H��H��LwmH�iHc�H�>���1�H�T$H�5�lH�������tsH�D$E1�H;_k#tL�@E��H�
�^L��L��L�����f�H��u:H��H�\$ �����H��H�WcH��1����H��i#H��H�8�s��1�H��$�dH3%(��H�ĸ[]A\A]A^A_��1�H�5�H������t�E��H��L��L��L�����b���f�1�H�L$H�T$H��L�D$H�5�]������u����L$H��L��L��AWD�L$(L��D�D$ ����Y^����@1�H�L$H�T$H��L�D$H�5m]�x��������L$H��L��L��AWD�L$(L��D�D$ �{�A_Z���1�H�T$H�5�^H���*��������L$E��L��L��L�����x����1�H�L$H�T$H��L�D$H�5�\����������H��L��L��L��AWD�L$(D�D$ �L$���A]A^����D1�H�L$H�T$H��L�D$H�5�\�����-���H��L��L��L��AWD�L$(D�D$ �L$���]A\����fD1�H�L$H�T$H��L�D$H�51\�0�������H��L��L��L��AWL�L$(L�D$ H�L$���AZA[�l���@1�H�L$H�T$H��L�D$H�5�[������}���H��L��L��L��AWL�L$(L�D$ H�L$�-�AXAY����@1�H�L$H�T$H��L�D$H�5�[�����%���H��L��L��L��AWL�L$(L�D$ H�L$�e��^_���fD1�H�L$H�T$H��L�D$H�55[�(�������H��L��L��L��AWL�L$(L�D$ H�L$��ZY�f���fD1�H�T$H�5�hH�����������H�t$H�T$H��� ����e���D�D$E��H��L��L��L�����
���f.�1�H�T$H�5�hH���z�������H�t$H�T$H����������D�D$E��H��L��L��L��������f.�1�H�L$H�T$H��L�D$H�5!Z����������T$D��L��L���L$�D$L�����P���1�H�L$H�T$H��L�D$H�5�Y�����e����T$D��L��L���L$�D$L���5������1�H�T$H�5
�H���z�������H�L$E��L��L��L���L������1�H�5{H���?�������"�H9���D��L��L��L���X�����1�H�5�zH�����������E��H��L��L��L���C��N���fD1�H�5�zH��������l���E��H��L��L��L��������fDE���L��L��L���J�������AWI��AVAUATUSH��H�|$(L�t$HdH�%(H��$�1�H�D$@H�D$8H�D$H�D$8H�$H�D$XH�D$H�D$PH�D$H�D$`H�D$ �AH�|$@H�G��������H�|$HI��H�G�������H����H�|$H�1��J��H��H���FL�D$H�L$H��1�H�T$ H�5�W����H�E��H��H�Eu
H�EH��P0H�|$`��H��H������H�|$HHc�H���E��H�P����tH���,�H�|$HH�ھI�����H�L$XH��E��H�T$PH��I��L�����H�+H��u
H�CH��P0H��t9H�|$(H����H�T$H�4$L��L�������������F@H�t$pH�T$xH�|$h�d�H�t$pH�F�����H�T$xH�|$h�����1�H��$�dH3%(�H�Ę[]A\A]A^A_�DH��a#H�5:[H�8�B���H��a#H�5J[H�8�*����H�qa#H�5R[H�8�
����H��H�E�j���H�EH��P0�[���H�1a#H�5J[H�8�����=���H�D$(H��$�H�8���H�|$pH���c�H��I��M��H��H�H[1�����H�|$pH�/uH�G�P0H���j�H�t$pH�D$H����v��fD��AWAVAUI��ATUSH���L��H�5 UdH�%(H��$�1�H���H�GH��H�G L���)�H����I��H�@��� ��H�D$(M�u�j�H��H�D$8H�D$H�D$0H�D$H�D$(H�D$f�H�L$H�T$L��H�t$�������H�|$0H�G����;�&�H�T$8H;�`#H����H�B���t'H�����	H�=3TH�������tbH�T$8H��L���R���j���f.�H��tH�m��H��$�dH3%(�H���[]A\A]A^A_��H�����H���H�ʄ�t<-u�_H�����u�H�T$0H��H��H�$���H�$����H������L��H������t�$�G��<$L��H���y�����@L�d$@H�پ�1�L��H�3S�b�H�s^#L��H�8�������H�Y^#H�5�XH�8�������DH�����H��H�5�RL���]��������H�mt^H�5�RL����H�5�RL������H����H�P��� tzH��L�������������H�5�RL���h��s���H�EH��P0�@H�EH��P0�Q�����K���f�H��]#H�5:XH�8�������DH�a]#H�5BXH�8�������D������fDH���8����������@f.���AUATI��USH��8dH�%(H�D$(1������!�1�L��H������H��H����H��H�L$ 1�H�T$L�L$L�D$H�5�Q�.����H���H��H���H�|$ �L�H��H������L��Hc�H������I��H�@�����H��L���[��L��H�����H�L$I��H��H�T$H�|$A���c�H�L$(dH3%(�|H��8[]A\A]�@H�CH��P0�[����H��H�uH�CH��P0D1��@H��[#H�5�VH�8�Z��1��fDH��[#H�5�VH�8�:��1��p����N��@f.���S����H�5�V��H�I[#H�8������[�����ATI��UH��SH���n�H��tL��H��H��������u4H�P�#H�ߋ0�V��H��H��u�$@H�[H��tL��H����t�[]A\�fD[1�]A\Ð��AWAVI��AUATUH��S��H��������A�����I�ą�t`D�k�1��&�H��H��L��H���N��H�CL9�t5H��1�H���H��u�1�D���	��H����[]A\A]A^A_��1�L�������L��H�����L��H���+��I�,$H��tYH��H���&��H�+H��t-H��tM1�H;-g[#��H�mu�H�EH��P0�u���fDH�CH��P0H��u���I�D$L��P0��V��1��>���Df.���UH��SH��H��H������H�����8Ut��_ur1��OH��H9�s%H�D�D8D
t�A��_t�H��H��[]�fD��t;H��Y#H�:��@��_t҅�t�P�H��H��2�wt�H��H��[]�f�H��H��H��[]ø�f�f.���H�=��#���#H��t6H��1�H�59��H�=��#���H���#H�����Df.����g�����AUA��ATI��UH��SH��H���a����uH��H��H��D��[L��]A\A]�2��f��K��H��H�޺A�����H��D��[]A\A]���fD��ATI��UH�-�#SH���u�#��L��H������uH��[H��]A\���fD��AWAVAUATUSH��H��8H�4$H�T$ H�L$L�D$(L�L$�~��H�D$H���8H�;�TL�<$1�E1�1�H�L$H�,H�}tPH�L$ H�|$L�$I�4$�a��I�$I�Ɖ�H��HD$H�L�`I�vL�����H�uL����)���tK��A�EH�$I��H��L�<I�?u�H�|$�5��H�D$(�H��8�[]A\A]A^A_�f.�I�~�g��I�H�5}RH��H��V#H�81��i�H�|$������t,H�T$�C�H��H�jH�\(fDH��H�� �$��H9�u�H��81�[]A\A]A^A_�fDH�KH�5JV1�����H��81�[]A\A]A^A_�1��,����f.���AUATUH��SH��H��H�!�#�0���H��tH��1�H�=��#[]A\A]�����H�=��#�d��H��tH�xu�H�XH���l�f.�1�H�=��#������H��1�H��A���}sH��I����k1��K��H�����H��L��H��I�EH��(��u9H�+u
H�CH��P0H�mu
H�EH��P0H��D��[]A\A]���fD����f���H����H������#����UH��SH��H��H�=�#H����H������H��t
��H�����H��H�/����H���2�H�߉��X��H�=��#H����[H��]�A���H�FIH�5�T1�����H�=IH�5zT1�����H�=�U#H��S#1�H�5�S#���H��H�2�#�U���D�Df.���AVAUI��H��ATI��USH���#��H��0��M��tlH��1�����0H������H�ŋ@��t6��L���H�@H�EH��H�xLc0��L��L��H���2���;]r�[H��]A\A]A^���D[H�uH]1�A\H�5$SA]A^����H�����H��4t*H������[H�&H]H��A\�A]1�1�A^����f�L��H��L��[]A\A]A^�
f.���AVAUI��H��ATI��USH�����H��4��M��tlH��1�����4H������H�ŋ@��t6��L���H�@H�EH��H�xD�0���L��L��H���"���;]r�[H��]A\A]A^���D[H�eG]1�A\H�54RA]A^����H���p��H��0t*H������[H�DG]H��A\�A]1�1�A^����f�L��H��L��[]A\A]A^���f.���H��(H��H�5GdH�%(H�D$1�H�T$�4����t0H�|$�f�H��t!H���I��H��t4H���,���f.�1�H�L$dH3%(u0H��(�f�H�Q#H�5�FH�D$H�:����H�D$����f���USH��H��H�5�FH��dH�%(H�D$1�H�������tSH�<$�D��H��u_H���G��H�,$H��H���8��H��H�5PFH��H�|P#H�81����H�+u
H�CH��P01�H�L$dH3%(uH��[]ÐH�������A�����SH��H�5
FH�� dH�%(H�D$1�H�L$H�T$������t:H�|$��H��H��t(H�|$��H��tH��H�����Hc�����@1�H�\$dH3%(uH�� [������AWH��H�5�EAVAUATUS1�H��H��P#dH�%(H��$�1�H�L$0L�D$8H�D$8�����tJH�5bb#H�|$0�������H�|$0�6�H��H�D$0H���"�H9�t=H�D$0H�H�\$0H��$�dH3%(H���H��[]A\A]A^A_�H�l$0f�H�\$8H�[�)�$�H��H��$�H���)�$�)�$�)�$�HDŽ$�H��$�耯I��H����H�t$,H�����H�D$H����H�t$@L��H��$��T����D$P1�H��H��$�L��f��$��D$Tf��$����I��H���H�EH�=D�j��H��L����m��H�b�#�L��0�W��L��菪H�5�CH��H��H���
���H�+u
H�CH��P0H��H�5�d���H����L��PM���.1�H�D$`I�~H�D$~UM�|�I�G����t6H�5�Y#L�������t#L���;�H��I�����H����fDH��I9^�L���>��I�����H��H����L��H��L�����L�����l���H�|$�����M��H�������1����DH��L#H�5�HH�8������DL���`7H�����oH�T$L��L��H�l$p)L$`�����D���@E1�A�L��$��L��耻���L��1�D��H�8B�G��H�51BH���x���H���OH�P����A���L�}H��IE�H�D$H�L$�{��H�L$E1�L��H��H�5�B1����L�L$I��I�)uI�AL��P0�A���tL��D��.u�+H�����u�L�����H��tA��A��������H�t$@L��H��$��S����D$P1�L��H��$�L��f��$��D$Tf��$����I��H���3L���B�����DH�(uH��R0A���H�}IE�1�1����I���*���f.������f���H��H�5�aH����������I�wH�=�F����I��H��H��L#H�8�&���L��螹���9���f�H��@�1�1��K��� ���L��1�輼��H�|$�b�������証��H�|$�N������L����H��H�5�F1�H��H��I#H�81����������׽��L��追��L��H�5eFH��H��I#H�81����L��������@��ATUSH�t!L��?H�
J��1�H�5�?谿����H��H��I��H�=��#���H���Q���L��H��贵��H��H�������t�K(H���_1�H�=P�#�k��H�kH���/`[1�]A\����AWH��H�5[?AVAUATUSH��8dH�%(H�D$(1�H�L$H�T$H��H�D$(P1�L�L$(L�D$�o��ZY���5H�|$蛩I��H����H���"����uL�����H����H�|$�b�I��H����H�|$ 茵�����DH�|$ �����H��I���:��I��M����1��'f.�H�+u
H�CH��P0H��I9���H�|$ H�����H��H���ۨI�D�H��u����H�+u
H�CH��P0H��G#H�5�DH�8膼��L���޶��1��,f.�H��G#H�5>H�8�Z���f.�1�H�T$(dH3%(��H��8[]A\A]A^A_���AUE1�E1�ATH��L��AWjH�|$(�T$$�1��H�� L����S������{���������f�H�1G#H�5�CH�8�ʻ��1��u���H�G#H�5�CH�8誻��1��U���辺��@f.���AWH��H�5<=AVAUATUSH��(dH�%(H�D$1�H�T$�:������H�|$�h�H��H����H������H�����PH���]�����H���]��I��H���H�t$H��E1����I�ŋ|$�%��I��H����D$1ۅ�t*��݃�I�|��)�H��L��H������9\$w�L�����M����L���<����H��E#H�5�BH�8�t���@E1�H�L$dH3%(L����H��([]A\A]A^A_��H��舲��I��H��t�H�t$H��E1�����I���*����L������fDH�QE#H�5�BE1�H�8����u���H��D#H�5\BE1�H�8�ɹ���W���L������L���d����B����ʸ��f.���AUH��H�5f;ATI��USH��(dH�%(H�D$1�H�T$�D$H�D$�:�����H�|$�h�H��H����H�Ǿ����H�߅����o��H��H���L��H�L$H�T$H����qE1�tH�T$�t$H���v���I��H�����D$��t;E1��H�D$D��A��H��H�<����H\$H��H��辳��D9l$w�H�|$���H���5���M��t@L���ZL���`cL��H���U����%�k���H�5<AH��H��C#H�81��p��1�H�L$dH3%(H��u>H��([]A\A]�H�1C#H�5�9H�8�
����+���H�VC#H�5@H�8�����������H��H�)C#H�5�@H�8�·��1�H��Ðf.���AUI��H��ATUH��SH��8dH�%(H�D$(1��D$���H����1��H��I���к��H�L$H�T$ H��H��1�L�D$H�5>9�����H��SH��H���H�|$ �;�H��H����H�|$�������H�|$H�L$H�T$H��A���������L��H���8���H����H�t$H��H�=�81����H�����|$�t$H��L�>��H������H�����H�L$(dH3%(��H��8[]A\A]�H�CH��P0�$���f�H��A#H�5�?H�8�*���f.�1��@L������H�l$H��H�����H��H�58H��H�DA#H�81����H�H��H�u�H�CH��P01��K���DH�A#H�5B?H�8誵��1��)���辴��@f.���H��#H�H�0H��S#H�H�pH��A#H����SH��H�~H�5=E#H9�t	�3����t芮��H9CuH�{�[�DH�q@#H�5E7H�8�
���1�[�fD��SH��H�5>7H�� dH�%(H�D$1�H�L$H�T$�����thH�\$H�5�D#H�{H9�t���H�\$��t/��H9Cu$H�{H�t$�N���t'H�
A#H��@H��?#H�5�6H�8�b���1�H�T$dH3%(uH�� [��e���D��UH��1�H�5�6SH��H�=�A#���H�56H��H��H��虬��H�+uH�CH��H�@0H��[]��H��[]�f���S��?H���+���H��H�586H�������?����H��H�5$6H������j?���H��H�56H�������S?�η��H��H�5�5H�����H��H�����H�5�5�V���H�ߺ�H�5�5�B���H�ߺ��H�5�5�.���H��H���H�5�5��������H�5=[H������������j��H�5�5H��H���8��H���i���H�5�5H��H�����H���������H���H�5�5H��H�����H������
��H�5q5H��H������H������|���H�5^5H��H�����H��������蛶��H�5G5H��H�����H���z���H�515H��H���x��H���I��H�55H��H���W��H���������(��H��H�55H���6��H�ߺH�5�4�Ҫ���H�5�4H��辪��1�臙H�5�?H��H��������H���h�H��H�5�4[H������D��UH��SH�����H�>#H�5�4H��H���թ��H��H�5�4H���é��H�+uH�CH��H�@0H��[]��f.�H��[]�f���S�H���H�=d4�1��K��H��H�5T4[H���X������U1�H��H�=D4SH��H��;#H�0�{���H��H�5.4H��H������H��H�=!4���H��H�=4���H��H��H�=4[]����H�G����USH��H���G ��t"H�t蠱��H�{H�s���ѧ�����
���H�CH��H��@H��[]��@���׳�����AUH�51ATUH��SH���C���H����H��H�@�����H���^���H�5�1H��I������H�}L�mH��H�PLE�脮��M��H��I��H�EL��H�=
<H�P1�����H�+tH��[]A\A]ÐH�SH�D$H��R0H�D$H��[]A\A]ÐH�+uH��P0H��1�[]A\A]��SH��:�H��dH�%(H��$1�H�G�G H��H�GH�GH�HH��1�����H�69#H��H�8蛮��H��$dH3%(u	H��[�蚭��f.���S1�H��H��H�5^:�7�����tH���K��������[�@��H�FH9GtH�#9#H��fDATA��UH��H�5>#SH���'�����uH��8#H�[]A\�H�uH�{D��[]A\��f�f.���H����H����H����AVAUATUSH�y0��H��9#I��H��H��H��I��H�AH�m=#H��������H���A�H��H�5�.I��H���إ��I�.tJH���#H��H��0�θ��H��L��[L��]A\A]A^騥���H�<9H�5:1����I�FL���P0�@H��8H�5�91��î��H��8H�5�91�髮��H�q���H�A0�
����H�KH��8[1�]�A\1�A]A^鯺��Df.���AWAVAUATUSH��H��u)H��8H�5K91�1��2���H��H��[]A\A]A^A_�H��I��A��A�ͅ�u��u|藭��A��M����H�x�#H��0蚦��H��H���~H�5�;#H����������H��1���0H��H��tE��u?L�cH�kD�k D��諥���d���fDH�i8H�5�81�1��y����B���@L��H��腬��I���H����\H�5Q;#H��H���n���H���f���DH��7#��H��6�������H�A6#H�S1�H�5}7H�81��B���D���
�������D��H�wH����u���D��UH��H�=D7SH�����H�4�#H�=<7��Ү��H��#H��:#�H�[���H��0H�C0H�H���H���H�����H�CXH�:#H���H��H��(H�c���H��@H�����Hǃ�H�Cx��H��8tfH��螮����t
H��[]�H��H�5r6H��莢���H�ԑH��H�53+H��H���k���H�mu�H�EH��H�@0H��[]��H�5#H��8�H�I6#H��0�m���f.�AT1�I��H��UH��H�=�6SH�����1�H��H��H��H��6#��8H�+uH�SH�D$H��R0H�D$H��tL�`(H��[]A\�f.���ATH�
�:#UH��H��H��SH�'aH��dH�%(H�D$1�I���u������H�5#*H���N���H��H����H�xH�5V#H9�t
蝽�����EH��轔H�+I����L���ص���0H�����H�5�5H��I�����H��H����H�@��� tXH�����A�T$H9�wFL�����H�<$�ͬ��H��I��H���?���I�,$H����H�+t{H����H�E�3H�I3#H�5!5H�8���H�+u
H�CH��P0L���z���1�H�L$dH3%(H����H��[]A\��H�CH��P0�����H�CH��P0�v����I�D$L��P0H�+�`�����f�H�+tJH��2#H�5�51�H�8�B����u���DH�i2#H�$H�5z4H�81��L����O����H�CH��P0�����Df.���U1�SH��H��H�5G4H��貲����t>H�5E4H���?���H��H��蔰��H�sH��H��H��[H�=%41�]����fDH��1�[]����H�F�����AUATA��UH��SH��H��H�5�8#H9�tH���4�����tZH�}(H;{(tP�A���H�{(I���5���H��4�M��H��H�=��#1��E���H�1#�H�5��#H�8�ʢ����u.H��D��H��H��[]A\A]�NnfDH��0#H��@H��1�[]A\A]Ðf.���AVH�5�&AUATUH��S����H���aI��H�@����@H�}(诲��I��H���H�80t�0H����������H������A�U���4I�}HcH9��$���H�tRH����HcH�KH9�tH��H9�u�L��裵��H�5''H��I���Q���H�PH��I�ELE�L�DH�EH�XM����H��M��H�
S2S�1��H�=�#�%���XZI�,$uI�D$L��P0L������[H�=�#]A\A]A^�U���DL��1H�
23�^1�H�5�1菥���I�,$uL��P0[1�]A\A]A^�H�����H��M��H�
�1I��S�T����1����f���UH��SH��H�(����H��tMH�80H��t�0H���o�����t3H��胭��H�߉��9���H�x萵��H��H���5���H��H��[]�L�1H�
�2�`1�H�51跤�����UH��SH��H�(芰��H��tMH�80H��t�0H���ߺ����t3H����H�߉�詳��H�x����H��H��襠��H��H��[]�L�p0H�
�1�N1�H�5w0�'������AWAVAUATUSH��8H�T$ H�L$H����I��H��H�Ͼ0�ȯ����������D$,����H�
�4#H��H�=�.#H��I��H�5K01����H�mI����M����H����I�������I��8M����L������H������I��H�5'#H���~���H�_�#L�|$L��0L���u���L��證I��H�5#H��H���D���H�m��L��H��L�����I�EH�|$�ܮ���0H�����I������H�D$A�D$����1�I�T$��H�@Hc<�H��H�L$�ߥ��H�t$L��H��I�����H�|$L��H��H��蹳��I�/u
I�GL���P0M��tFH�t$I�D$H�|0H�t$ ���H������H��L��H��H�D$�0���H�L$H���#���H�E��A9\$�P���H�\$I��H�5�-H���%���H�H�D$H��H�u
H�CH��P0L���"����|$,�i���H��8L��[]A\A]A^A_��H�EH��P0�����H���#H�\$L��0H���ǫ��H���I��H�5^!H��H��薘��H�+�f���H�CH��P0�W���DH��-H�5/1�E1�����b���H�EH��P0����f�L�t$E1�L���@���H��訞��L��H��蝞��H��H�5#.H��H��*#H�81�蟴������H�{*#H�5Y-H�8�T����|$,�K�������fD��AUATUSH��H��u%H�6-H�5o.1�����1�H��[]A\A]�H�y�#Hc�H���0蔙��I��H��t\I��$H�5,����H��I���m���L��H��H���ߣ��H��trH�H�+u�H�SH�D$H��R0H�D$H��[]A\A]ÐH���PI��H��u�H��舝��H��1�1�H�����I��H���q���H��H��[]A\A]����S���H��H��L�����z�����UH��H�=I,SH���7���H���#H�y0#�H�(+#H��0Hǃ�H��8H��H�@xH��8H�CxH�)���H�CXH���H�7���H���H��/#H���H�K/#H����~H��tiH��������t
H��[]�fDH��H�5�+H������0�4�H��H�5�H��H���˕��H�mu�H�EH��H�@0H��[]��H�y(#H��8�H��)#H��0�o���f.���AVAUATUH��SH�(�(���H����H�84I��t�4H���y�������1�誔��I��A�E��t`1����A9]vPH���7�����H�RI�UH�ʋH!�H9�u�H�y�f���L��I��H���Ȣ��I�.u�I�FL�����P0A9]w�L�����[L��]A\A]A^�L��+H�
.��1�H�5�+�g������AVAUATUH��SH�(�8���H����H�84I��t�4H��艳������1�躓��I��A�E��t`1����A9]vPH���G�����H�RI�UH�ʋH!�H9�u�H�y�v���L��I��H���ء��I�.u�I�FL�����P0A9]w�L�����[L��]A\A]A^�L��*H�
-��1�H�5�*�w������H��H�!&#�H�5�+H�8�͗����uH�j'#H�H���f�1�H���f���H�F�����AUATA��UH��SH��H��H�5�0#H9�tH���t�����tZH�}(H;{(tP聙��H�{(I���u���H�.+�M��H��H�=ܔ#1�腯��H�^%#�H�5”#H�8�
�����u.H��D��H��H��[]A\A]�bfDH��$#H��@H��1�[]A\A]Ðf.���AWAVAUATI��USH���v���I�|$(I���	���H���XH�84H��t�4H���Z������:�C1�E1�u�d@A��D;ksVD��H�@H�CH�Ћ��t�D��!�9�u�H�RH���H��H�=�(1�A���V���H��I��苓��L��D;kr�f�H���Ȗ��H�5BL��艔��H��H����H�@�����H��褩��H�5(H��I���R���H�PH��I�D$LE�L�pH����L��L��H��1�H�=8(辟��I��H����H�+u
H�CH��P0L���{���L��H�����H��H��[]A\A]A^A_�fDL��'H�
�)�P1�H�5�'藙���H��H�=Mi1��?���H������H�+uH��P01��L��訟��L��L��H�=�'H��1�����I���>���f�AT1�I��H��UH��H�=�$SH���!���H�5�-#H��H�������u+L��(H�
�)�*1�H�5'�ژ��f.�H��$#1�H��H��8H�+tH��tL�`(H��[]A\�H�SH�D$H��R0H�D$��f.���AVH�
#+#AUATI��H��H��UH��NSH��dH�%(H�D$1�I���q������IH�5L���J���H��H���.H�xH�5D#H9�t
虫������H��蹂H�+I����L���ԣ���4H�����H�58&L��H�����H��H����H�@��� ��H����H�<$跦��H��H��I���I���H��H����H�I�.u
I�FL���P0H�+u
H�CH��P0H�L$dH3%(H����H��[]A\A]A^�DH�CH��P0�5����H�+u
H�CH��P0H�!#H�5�#H�8蚕��f.�1��@H�� #H�5S%H�8�r���H�+t\H��1������d���D�c���L��L��L���u���H��H��� ���L�)%H�
K'��1�H�5�$�x����H�CH��P0�����Df.���UH��SH��H�(�*���H��tUH�84H��t�4H��������t;H���c���H�߉��9���H��tLH�x蛦��H��H���@���H��H��[]�fDL��#H�
2&��1�H�5�#迕���H�-� #H�E�f.���UH��SH��H�(�z���H��tUH�84H��t�4H���ϫ����t;H��賛��H�߉�艨��H��tLH�x���H��H��萑��H��H��[]�fDL�-#H�
b%��1�H�56#�����H�-) #H�E�f.���AWAVAUATUSH��8H�T$ H�L$H����I��H��H�Ͼ4蘠�������˔���D$,���H�
k)#H��H�=y#H��I��H�5!1�轐��H�mI���M����H����I��$�����I��$8M��t:L���ޘ��H���֤��I��$H�5�H���O���L��H��L������I�$H�!�#H�\$L��0H���3���H���kzI��$H�5�H��H������H�+��H�|$譟���4H���Н��H�����H�D$�E����1�fDH�U��H�@�<�H��H�L$葢��I��詛��H��t$L�"H�
&$�61�H�5j!�C���H�t$L��L������H�|$L��H��I���]���I�/u
I�GL���P0M��t=H�L$H�EH�t$ H�|�P��H��踥��I�L��L��I��H���ӣ��L���ˋ��I�.u
I�FL���P0��9]����H�\$I��$H�5!H���É��H�H�D$H��H�trH���ʎ���|$,����H��8L��[]A\A]A^A_��H�EH��P0����f�H�CH��P0�j����H��H�5�"1�E1�訒���fDH�CH��P0�@L�t$E1�L���0���H��蘏��L��H��荏��I�ؾ1�H��H��!1�蒞���L���H�n#H�5R H�8�G����|$,�>����(���f���AUATI��U��SH��踙��1�H����M��txH�}�#L��0藊��I��H����I��H�5�����H��H���M���H��H��H���ߔ��H��H����H�H�mu
H�EH��P0H��H��[]A\A]�H��H�5�!1�H���h���H��H��[]A\A]�f.�L����@I��H���a���L���T���L��1�1�H�����I��H���>���H��H��[]A\A]闟�������H��L��L���-���H��H���B���L�"H�
C!��1�H�5W�0�����ATL�%�$#UH��SL��H���ӎ����uH��#H��H��[]A\H�@`H�@x��@H�{(�4�›����t�L��H��蓎����t�H�}(�4衛����t�H������H��I�����D��H�{([	�]A\�������ATL�%S$#UH��SL��H���3�����uH�0#H��H��[]A\H�@`H�@p��@H�{(�4�"�����t�L��H������t�H�}(�4������t�H���e���H��I���Z���D��H�{([1�]A\�h������ATL�%�##UH��SL��H��蓍����uH��#H��H��[]A\H�@`H�@h��@H�{(�4肚����t�L��H���S�����t�H�}(�4�a�����t�H���Ŕ��H��I��躔��D��H�{([!�]A\�������UH��H�=(SH�����H�L�#H��"#H�
� #�H��#H��0H�K`H��8H��Hǃ�H�@xH��8H�CxH���H�CXH���H���H���H��!#H�����H��tlH���Đ����tH��[]�f�H��H�5�H��讄���4��sH��H�5S
H��H��苄��H�mu�H�EH��H�@0H��[]��H�9#H��8�H�i#H��0�l���f.���闏���SH���H��dH�%(H��$1�H�GH��H��H�H1�褠��H��#H��H�8�R���H��$dH3%(u	H��[��Q������S1�H��H��H�5������tH���k��������[�@��H�=#AVAUI��ATI��H��UH��SH��H�AH��"#H���G�����xkH��u.H�7�#H��H��0�J���H��L��[L��]A\A]A^�$���@H���hrH��H�5�I��H�����I�.u�I�FL���P0�DH�KH��[1�]�A\1�A]A^�g������H���#H��0黕���f.���H���#�0鞄��@f.���UH��H�=�SH�����H�P�#H�={����H�?�#H��!#�H�{���H��0H��(H���Hǃ�H��@��H��8��H�������tH��[]�@H��H�5$H���ց����qH��H�5{
H��H��賁��H�mu
H�EH��P0�m�H��H�5\+H��臁���R�H��H��H�5�[H��]�f���fDH�)#H��8�N���DH�Q#H��0�(���D�#fD�PЀ�	v<-t
��߃�A<v�-H�����u����H�H��tH��H��H���H������1��D��H�G����ATI��UH��SH��H�H��t	H��Յ�xH�{ 1�H��tL����[]A\ø������@f.���ATA��UH��S�M���H���H�M�#�0�*���H��tH�E��tH��H�t,��[]A\陁��f�H����H�[]A\�~���fDH�PH��R0��[]A\�c�����USH��H���Έ��H�{ ��H��tH�/t=H�{(H��tH�/t���'���H�C H�C(H��[]�H�G�P0���H�G�P0����USH��H���^���H�+��u
H�CH��P0H����[]鿀��Df.���SH���#���H���蘀��H��[���ATI��USH�����H�{L��������H�C[]A\�`�����AVE1�AUATUH��S蹒��A�ą�ujH�]H�EH�EH��t6f�H�;H�[贉��H��u�H�}tH���1�1��#���H���K���E��u6[]A\A]A^�D�S���H�}A��H�/t>����A�I���q���������t�L���_���[D��]A\A]A^����H�GA��P0趗��I���,���@f.���H��H��#H�5jH�8�B���1�H��Ðf.���H��H�y#H�5:H�8����1�H��Ðf.���SH��H�H��tH�CH�/tQH�{ H��tH�C H�/t*H�{H��tH��H�5G�2���H�C1�[�fDH�G�P0���H�G�P0����SH��賜��H�{H�CH��tH�/tH��[�Á��H�G�P0H��[鰁����駁�����SH��H��~��H��[����fD��USH��H�dH�%(H�D$1��=���H�t$H��H���}��H��H��肁��H���*~���D$H�T$dH3%(uH��[]��ʂ��f.���AWAVAUATUSH��H�dH�%(H�D$1��Ő��H�t$�D$H��I���-}���|$I���Q{��I�ŋD$��tX1�@A�߃�K�<��}��H���Y����_H�5H��H������H���
���L��L��H���|���H���T}��;\$r�M��tL���A}��L��艀��L��H�L$dH3%(uH��[]A\A]A^A_��ҁ��f���UH��SH��H�L&#H�{ 賃��H��H����z��H�}H���̏��H�sH��H���=|���CH��H�C�
���H��H��[]�AVf�AUATUH��SH�� dH�%(H�D$1��F)$H�D$����������LI��H��I������H��H�pH������H��L��H����������
���H�uH��L��I���˙��H�߻��|��L���f|��H�L$dH3%(����H�� []A\A]A^�H��#H�VH�5_H�81�蔖���f�H��#H�V1�H�5�H�81��r����L�����L�uI��I�EH�8�5����LH��I���5���H�x����L��H�����H��M��M��H��H�F#H�5g�H�81�����I�,$�'���I�D$L��P0�����������AWAVAUATUSH��H����I��H��I��I���D���H����I�UH����H��L�r蒔��H��H�����I�>H����~��H��H���z��H��tYH�} ��y��uI�}L��H���PN�Å�t���tUL��H��L��1���������H����[]A\A]A^A_�D��H��L��L��L��[]A\A]A^A_�w�����[���H��t��H�#H�5������H�8����H��
#H�5I�����H�8�|���y������AVI��AUATUH��H��S����H��taH�}H��蕌��H��I���j���H��H�����H��L���}��H��I���yy��L���|��M��t!H�}H��t3[L��]A\A]A^�SJ���[L��H��]A\A]A^�(����[L��]A\A]A^�0T��H�1�1�鏓��Df.���ATUH��H��H�5�SH�� dH�%(H�D$1�H�L$H�T$�H�������H�]�PH���ߎ������H�;H�t$�|��H��H����H�T$H��H���NL��u2H��
#H�H�L$dH3%(H����H�� []A\��胇��H��uH�}H�T$H���}�����u�f�1��@H�EH��H�5�1�H�HH��#H�81��Ò��낐H�EL�d$H�H�8�|��L��H�5�H��H��#H�81�莒���J����t|��@��AUI��ATUSH��PH��H�辍�����>H���ނ��I�ą���H�CH��1�H�@h�PIc�H�߾H���`���H�=�#M�mI���}}��H��H�hL�` H����H�EH�@ H��tH�L�kH��H�59L���A����C(H�H�mu
H�EH��P0M��tI�,$uI�D$L��P0H��H��[]A\A]�H�=	#I�m��|��H��H�5�H�hH��H��H�@H�@ �Lj��H��H��[]A\A]�f�M��tVI�$H��H�5�L��L�h萈���k���I�EL��H�5�1�H�HH�%#H�81���H��H��[]A\A]�L�kH��H�57L���?����,���f.���AWf�AVAUATUSH��H��H�oH�t$�PH��dH�%(H��$�1�)D$PH�D$`�͋������H����|��H���<�(���{��H�|$I���.���I�ą���H�t$���W����L$8M�����D$8H��L9��z�x�E1��ʋ��H��H�CH��H�H�0�Ց��H�{�P1��Ō��H��H���:����D$8����fDH�D$@H�4�A�\$H�[I��H��H�|�腑���D$89�rՅ���1���L��L���e�����D��D9d$8vkH�|$A��L���|��H�xI�ǍCH;=#I��H�@L�t�tH�5�	#�����t�H�D$@J��H��I9Gu�I�wL��D��蒀��D9d$8w�H�t$0L�d$PH����L��H��1��'����|$8�t�؃�H�@H�|��t���D$8��9�w�H����s��H�|$0��H��#H��6�H�\$pM��M�辀H��
H��1�����H��#H��H�8�-y��1�H��$�dH3%(�QH��[]A\A]A^A_�f�L�d$PH��L�������6���f.��L���c�L��H�D$��s��H�D$��I�>L�d$p�w��A�پ�L��I��I�GH�Z
1�H�H1��ō��H��#L��H�8�sx���|$8�t"@�؃�H�@H�|��us���D$8��9�w�H���r��1�����H�CH��H�5"H�HH�w#H�81��E���1����fDH�Y#H�5>H�8��w��1����H�9#H�52H�D$H�:��w��H�D$�����v��@f.���AWf�AVI��H��AUI��ATUSH��dH�%(H��$1�)D$`H�D$p舌��H���/1��L��H���z��H�T$H�5�H��H��1�������H��H��H���I�^�PH��蛇������H�H�|$H�L$H�T$A�H�0�������|$H�t$ �-����L$H�AH9���H��1�1�謇��I��I�FL��H�H�0跍��I�~�P詈��L��H�������D$H����f�H�D$PH�4؍]H�[H��H��I�<��p����D$H9�r�1��@�D$HD��9��A�]L��H��I���x��I��H�[I��L��H���*���y�H�;H��$��u��H��A�龀I��I�GH��
H�H1�����H�##H��1�H�8�u��fD�؃�H�@I�<���p��9�s�L���o��1�H��$dH3%(��H��[]A\A]A^A_��H�CH��P0�=���f�L������H�l$H��H�����H��H�5@�H��H�|#H�81��J���H�H��H��p���H�CH��P01��a���f�H�t$@H�l$`H�����T$�t$H��L��1���q���|$H�t�؃�H�@I�<���o���D$H��9�w�L���n��H�D$@H��H��uH�
#H����@�H���H��H�D$�~o��H�D$���@H�l$`H��H���_����^���f.�H���"H�5*	H�8�t��1��{���I�FL��H�5�H�HH�O�"H�81�����1��N���fDL�D$L�M���1�H��$�H�YH�����H�
�"H��H�8�s��1������r���f.�ATUSH��toH��I��@1��%v��H��1�H��H�����H�5�H���Ҋ��H�EH�k M��t L;%�"tI�D$I�$���t8L�c(H��[]A\�@1�H�vH�5�1���t��H��[]A\�f���&{��L��1�H��H���}��I��멐��AWAVI��AUATI��UH��SH���0t���A����z��1�L��H���&�1�H��H���}��I�|$1��
��H��H���}��H�u(H��tH���x��H�+I����H��H�} H���|��H��H����H;��"��I�|$0�}���H��H���2���uN�L���|��H�mu
H�EH��P0H�+u
H�CH��P0H��D��[]A\A]A^A_��k��f.�H��"H�5*
H�8�q���s��1�L���K|���f�H�CH��L���P0�2���fD1�L���|���y���f��[s���f���fD��AW�PAVAUATI��UH��SH��HH�_dH�%(H��$81�H��衁������H��PH��L�|$ L�t$(H�D$�
���H���r���H�D$H�D$H�$M��uE�Yf�H�|$(�v���H�|$H��H���&o��I��H��t~H�T$ H��H���>����H�4$L��L��L��贀����u�H�}�P肂��H�����L�
�"I�M��H��$8dH3%(L����H��H[]A\A]A^A_�H�EL�d$0H�H�8�o��I��L��H��H�'1��0���H�A�"L��H�8��o��H�}�P��H���X����w����[y��H��u)H�}H�\$ �P�Á��H��L��H���E��������H�}�PE1�蜁��H�������#����H�EH��H�5RE1�H�HH���"H�81��r������Xn�����AVAUI��H��ATI��US�6�������Hc�H���Cw��D�s�1�H����H��H��L����p��H�P���t=H�����L��H���<H��H��H����y��H�CL9�u�[H��]A\A]A^��H��"H�5
H�8�n��H�mt1�[H��]A\A]A^�DH�EH��1�P0[H��]A\A]A^�H���"1�H�5�H�8�8n��[H��]A\A]A^�f�f.���USH��H��H�H��t7H��k#1�1ҋ0�|��H�{tQH�{1�H�5���y���c(�H�CH�{H��tH�CH�/tH��1�[]�H�G�P0H��1�[]�����H�{H���g��H���Gh���D��AUH�5��ATUH��SH����h��H����H��H�@�����H���}��H�5��H��I���v��L�mL��H�PH��LE�M��tI�EH�8�l��I��H�EM��H��L��H�=��H�P1��d��H�+t
H��[]A\A]�f�H�SH�D$H��R0H�D$H��[]A\A]ÐH�+uH��P0H��1�[]A\A]��AWAVAUATI��UH�-�S��H��H�|$�T$�,�H�T$H�<t+H��H��H9���Hc]L���T����T$A�Ņ�u�E1�E1���~��L��L����m��H�H��t'H�5-
#H;3tH�5��"H;3t
M��tL9�u�I��I��E9��M���w���H�D$H��L�4H�H9��n���H��[]A\A]A^A_�Df.���SH�GH��H��tH�H�C[�D�{��H�CH��t�H�{H��tڋW��u"L�lH�
$
�z1�H�5��l����S(��u���H�H�5:��S(1���n��H�{�d��H�C낐��SH��H�GH��tNH��H��H�5qH���Yy���C(H�C��tH�+�C(u
H�CH��P0H�4�"H�H��[�f�H��"H�5?H�D$H�:�j��H�D$��@f.���H�H�G��ATUSH����k��H�s H�{1�A���K~��H��H��t:H;��"t H�@H�5�H�PH�l�"H�81��:��H�mu
H�EH��P0��k��H�{H��tH�CH�/tEH�{ H��tH�C H�/tF�C(��t
H�+�C(tB[D��]A\�c��fD��H�G�P0H�{ H��u��fDH�G�P0�C(��t��H�CH��P0[D��]A\�Zc��f.����G;GsH�W�H�OH�<��>�H��H���"H�8�mk��1�H���fD��ATH�=#I��USH���i��H��H��t>H;o�"t5H�5#H���h����tBH�H��H�]��TH�EH��[]A\�fDH�EL���TH�EH��[]A\�@H���"H�5z�1�H�8�xh����fD��H�GH��t�x�l��H��H���"H�5~�H�81��l}��1�H���D��SH��H��H�5�H��dH�%(H�D$1�H����s����t>H�{�P�x����t4H�4$H���5H�L$dH3%(u?H��[�f.�1���@H�CH��H�5��H�HH���"H�81���|��1���f��f�f.���AUA��ATI��UH��SH��H��#H���zg�����tU��uH�B�"H�H��[]A\A]�H��L���Mg�����t(��t�I�t$H�}H��D��[]A\A]�yf�H��1�[]A\A]���AVAUI��ATI��USH��H�H����L�5Od#A�6�/u��H��H����H�{H��t
L��A�ԅ�uH�C�@��t1�[]A\A]A^�f�H�]H��t��H�+H�} H��t
L��A�ԅ�u�H�}(H��t
L��A�ԅ�u�H�}0H��t
L��A�ԅ�u�H�[H��u��f���Vy��H�
���H��H�CH��H�EH�H�{A�6�t���9���@H�{H���G���H��A�ԅ��9����6������SH����}��H�{H��tH�CH�/tTH�{ H��tH�C H�/t-H�{H��tH��H�5�����s��H�CH��[��b��@H�G�P0���H�G�P0�Df.���USH��H���^}��H���_��H�{H��tXH�-�b#�u�ns��H����H�{H��t7H�qb#1�1ҋ0��r��H�{t[H�{1�H�5�����p���c(�H�CH�{H��tH�CH�/tH��H��[]�b��H�G�P0H��H��[]��a���v��H�{H���W^��H���_���D��w��H�KH��H�H�H�{H�
����u�=r���3������USH��H��H�<#H�oH�����H��tH��[]��H�{t�H�{H��t�W��u!L��H�
��z1�H�5O��e���S(��u���H�H�5����S(1҉D$�lg��H�{�s]���D$�f.���H��`#ATI��USH��0��q��H��tFH�XH��u�;��u6H�[H��t+H�+�L��H�} �/h�����u��%i��H�[H��u�@1�H��[]A\�@f.���UH���PSH��H��(H�dH�%(H�D$1�H�D$�Is������1�H�T$H�5�H���{n������H�|$�yr����teH�t$H������I��H����H��H�{E1�1�j1Ҿ�1c��ZY����f��I��H�L$dH3%(L����H��([]��H�q�"H�5��H�8�
b��E1��DH�CH��H�5�H�HH�?�"H�81��
w��E1���H�|$H�D$�u��H��H���vr��H�5��H��H���"H�81���v��H�+u�H�CH��P0L�D$�<����`��f�f.���UH���PSH��H��(H�dH�%(H�D$1�H�D$��q������1�H�T$H�5�H���l������H�|$�p����teH�t$H�����I��H����H��H�{E1�1�j1Ҿ�[��ZY���he��I��H�L$dH3%(L����H��([]��H���"H�5�H�8�`��E1��DH�CH��H�5j�H�HH���"H�81��u��E1���H�|$H�D$�t��H��H���p��H�5
�H��H�}�"H�81��Ku��H�+u�H�CH��P0L�D$�<����_��f�f.���UH���PSH��H��(H�dH�%(H�D$1�H�D$�Ip������1�H�T$H�5��H���{k������H�|$�yo����teH�t$H������I��H����H��H�{E1�1�j1Ҿ�1[��ZY����c��I��H�L$dH3%(L����H��([]��H�q�"H�5��H�8�
_��E1��DH�CH��H�5��H�HH�?�"H�81��
t��E1���H�|$H�D$�r��H��H���vo��H�5��H��H���"H�81���s��H�+u�H�CH��P0L�D$�<����]��f�f.���SH���CW��H��t.H�H��tH9tH��H����o����tH��[��q��f�[�@f.����G(�t%H��L���1���H�
�H�5���P_�����G(�f����G(�t
��G(�fDH����H����SH�5�"H��H�H9�t�r����uH���H�5��1�[�p_��H�{�G��t5H��Z#1�H�ڋ0�rk��H�{tH�{�G��tP�C(�tq[��L�Y�H�
2���1�H�5���^���H�$�H�5
�1���^��L��H�
��z1�H�5~��?^�����H�H�5���1҉C(�`��H�{[�V��fD��AWAVAUATUSH��H��t0H�%Z#H���0�'W��H��H��t'H��H��[]A\A]A^A_�DH�1�"���H��Y#H��0��V��H��H��u�H���
H���?b��H��u��]��H��A���
1�H��I����]��I���k��H��H����CH�5@�H��I��H���uT��I�mu
I�EL��P0�/TH�5%�H��H���MT��H�=��m��H�5��H��I��H���,T��I�mu
I�EL��P0H���Z��I�|$I��L��H��H�5��1��Y��H��H���-H�x@��H�{H��I�D$0H�C0I��$0H��0I��$@H��@I��$�H���I��$�H���M��t
1�L��H���^�H���f_������H�H�gX#H��H�ڋ0�ff��D���T����`��H�2X#H��H��0�Ef���!���I�|$H�O���Hǃ�I�D$HH�CH�6���I�|$@����Hǀ�I�D$@H�C@����H�KH���1�1��1��kh��D���3T���p����)\��D���!T���^���f�f.�AUATE1�USH��dH�%(H�D$1�H��PtTH���ur��H���-���H�t$H��H���]��I�ŋD$�x�a��H�EH��1�H��I����d���D$��u)L���S��H�L$dH3%(L��u@H��[]A\A]�1�1�@I�|��kH�����H��L��H�H���nd��;l$r���aX�����AW�.AVAUATM��UH��SH��H��(L�qH�|$L��H�T$�
Z��H��H�PH��LE����H��M��t}I�D$L��H�D$�]l��H�{I��~>A���bI��L9{~#N�d�L��L���xZ����y��Z��I��L9{�L���k��I�mI���H�+��L��H��S#H��PH�H�EH��t%1�H���.Z���H��H��H��H���H���\�����SH�]�.H���Y��H��t7H)�H��Hc��m��H��H�5"�H��H���vP��H�+u
H�CH��P0H�|$���%PH��H�5�H���?P��H�|$H��L��H��([]A\A]A^A_�!P���H�CH��L��P0����fDI�EL��P0H�+�����f�H�D$L��H��X�Y���������L��L���]���r���@H�|$�?H��H�5e�H��H���O��H�+t'H�EH��T#H��H�|$�0�b�������H�CH��P0��@H�MH��(�1�[H���]1�A\A]A^A_��d��f���AUATUSH��H����H�T#A��I��H���0��d��H��H��t"H�����E����H��H��[]A\A]�H��S#H��0�d��H����H�8H�������tH��V��H��H��t�H�@H��H�@ �@(H�h��\����t�K(E��t�C(tH���ji��H������H���zT��H��H��[]A\A]�@H�)�"H�H��H��[]A\A]��M��t[I�}����H���G���f�H���XO��H��H��[]A\A]�f.�L���H�
���1�H�5���V���H�EH�8�l���H�����@��1�1��c�����S1�H��H�
�P#H��H��H�3��mc����t)H�{H��t[���f.�H�A�"H�[�1�[�f�f.���AWAVAUATUH��H��H�5��SH��XdH�%(H�D$H1�H�L$(H�T$H�D$@�D$H��H�D$@H�D$8H�D$HPH�D$HPH�D$HP1�L�L$4L�D$@�_��H�� ����H�}�P�d������H�D$(H�5�"H�xH9�t
��h�����IH�|$0H�U�"H9��DH���;�c�����NH�|$0H�t$@��H�|$8I��H���H9���pc�����H�t$@H�|$8����H��H�|$�g���-H�5��H���Hk��H�|$ I���kg���-H�5��H���'k��H�}�PD�|$I��H�D$(H�PH�T$�#e��H��M��E��SH�T$L��L��H���]��L��H��XZ�8M��L���0M��H����H�߾P��d��H�����H��H�L$HdH3%(H���UH��X[]A\A]A^A_�f�H�|$8E1�H�����1������H���"H�5"�H�8�JR��1��fDH�EH��H�5*�1�H�HH�}�"H�81��Kg���g���fDH����e��H�|$(I���e��L�|$ H��H���b��L��L�l$I���b��M��M��L��H��H� �"H�5��H�81���f��I�,$t@H�m�[���H�EH��P0���fDH���"H�5�1�H�8�xQ������I�D$L��P0�H���"H�5��1�H�8�HQ������^P��@f.���H����AUATUH��SH��H��H�H�58�"H9�t��e��H�����tKH����H�{H����i��L�-^N#A�u�=_��I��H����I�|$H���J��H���H��tH��H�5=�1�[]A\A]�R��I�|$H���U��L��H��H����I�D$H��[]A\A]��g��f�H�l�H�5��1��;R��H�������nc��H�
���I��H�CL��I�$H�H�{A�u�^���B���AWE��AVI��AUI��ATI��UL��A�SH��H��XdH�%(H�D$H1�H�GH�L$H�T$�D$L��H�H�0�^������H��tH�}H�5��"H9�t
�td�������|$H�t$��Z��H�|$ �I��t`H��L��L���"FI��L��H������H�{�T$E���t$L���O��H���_��H�\$HdH3%(��H��X[]A\A]A^A_�f�H�T$H�t$ I��M��L��H���%(I��H��u��x����H��L#�H�5�H�8�K�����1���1��f�H���Xb��H��H���M_��L��H�5��H��H���"H�81��c��H�+u�H�CH��P01��3����sM����AUI��H��ATUH��SH��8dH�%(H�D$(1��Dc��H���1��H��I���xQ��H�L$H�T$ H��H��1�L�D$H�5���Y����H���H��H���H�|$�]�����I�}�P�=^������L��H���Q��H��H���|L�D$H�T$H��L��H�t$ A��i���H�+uH�SH�D$H��R0H�D$H�L$(dH3%(��H��8[]A\A]�H�CH��P0�T����H��H�u
H�CH��P01��f�H�Q�"H�5��H�8��L��1��fDI�EL��H�5��H�HH��"H�81���a��1��g���fDH��"H�5��H�8�L��1��D����K��@f.���AUI��H��ATUH��SH��8dH�%(H�D$(1��ta��H���1��H��I���O��H�L$H�T$ H��H��1�L�D$H�5���W����H���H��H���H�|$��[�����I�}�P�m\������L��H���5O��H��H���|L�D$H�T$E1�H��H�t$ L�����H�+uH�SH�D$H��R0H�D$H�L$(dH3%(��H��8[]A\A]�H�CH��P0�T����H��H�u
H�CH��P01��f�H���"H�5��H�8�K��1��fDI�EL��H�5��H�HH�O�"H�81��`��1��d���fDH�1�"H�5*�H�8��J��1��A�����I��@f.���AUI��H��ATUH��SH��8dH�%(H�D$(1��_��H���1��H��I����M��H�L$H�T$ H��H��H�5��1��*V����H���H��H���H�|$�Z�����I�}�P�Z������L��H���jM��H��H����H�T$H�t$ E1�H��A�L������H�+uH�SH�D$H��R0H�D$H�L$(dH3%(��H��8[]A\A]��H�CH��P0�O����H��H�u
H�CH��P01��f�H���"H�5
�H�8�JI��1��fDI�EL��H�5*�H�HH��"H�81��M^��1��`���fDH�a�"H�5Z�H�8�H��1��=����H��@f.���AUI��H��ATI��USH��8dH�%(H�D$(1���]�����1��L��H���	L��H�L$H�T$ H��H��H�5!�1��[T����H���H��H���H�|$�IX�����I�}�P��X��������L���K��H��H��twH�T$H�t$ E1�E1�H��L���	���H�+uH�SH�D$H��R0H�D$H�L$(dH3%(��H��8[]A\A]�H�CH��P0�^����H��H�u
H�CH��P01��f�H���"H�5��H�8�G��1��fDI�EL��H�5j�H�HH���"H�81��\��1��g���fDH���"H�5��H�8�:G��1��D����NF��@f.���AWAVAUATUSH��XH�|$H�t$dH�%(H�D$H1���H�H����H��I��I��H�D$0�r?��� H���W��I�H�D$@H�D$(H�D$8H�D$ H�D$0H�D$�xf�A�$H�|$8H��I�;W��H�|$H��I����D��H��H�����LH��L�s�nX��L��H�p�b]��H�t$@H��L���2�����L���RZ��H�A�$H�L$(H�T$ H�t$H�|$�AV�����i����@H�L$HdH3%(��H��X[]A\A]A^A_�DH�D$H�8��D��L��H�5��H��H���"H�81���Z��1��f��LH���W��H�x�D��L��H�5��I��H�D$@H�@H�HH���"H�81��Z��1��X����cD����AUATUH��SH��(dH�%(H�D$1�H��D$H�D$t'H�L$dH3%(�eH��([]A\A]��H��H��H�5��1��P�����H����0I��H����H�Ǿ�cW��L������Q��I��H����H�L$H�T$H��H���R�����uf�D$E1�t4H�D$D��A��H��H�<�>��H\$H��H���V?��D9l$w�H�|$�>��L����A��1�H�}��������@H�T$�t$H���w�����t�H��"H�5��H�8��C���j���H�)�"H�5R�H�8��C������������B��H�5��H��H���"H�81���X�����������B��f���ATI��H�=4�US�G��H��@#H�=����tG��H��@#H�=���_G��H��@#H�=���JG��H��@#H�=����5G��H��@#H�=��� G��H��>#H�z@#H�;���H��"E1��PL��H����H�5V"H�C0H��H�8��H���H�*��H�CXH�_���H�CxH�t��H���H����H���H�X��H���H�Z�"H���H���"H���H����H��(H����H��@H���"Hǃ�DH��0H�y�"Hǃ� H��8Hǃ ���R:H��H�5��H���l:��H�=��"H�N���H�G0H�3�"H�GhH�H��H���H�����H���H�L�H���H����H���H�о��H���H�B�"HLJ�@H�����E�����SH�-�"H�5��H��H��HDž��E�����#H���R��H��H�5.�H���9��H�=%��R��H��H�5�H��H���p9��H�m�H�=~�"H�����H�G0H���H���H�^��HLJ�H����E������H�8�"H����H�C0H��H�s�H���H���H���H�'���H���H�I���H���H���"Hǃ�@H����D����x H��L��H�5��[]A\�8��f.�[]A\�H����H�5:���H�=���NS��H���fDH�EH��P0������H�G����ATUSH�_H���SH�\�"H�(H�H�uH���9L� I9��MH���
Q�����=H�uI9��0H����P����� H�uI9���H����P�����sH�uI9���H���P������H�u I9���H���P������H�u(I9���H���|P������H�u0I9���H���_P������H�u8I9���H���BP�����rH�u@I9��eH���%P�����UH�uHI9���H���P������H�uPI9���H����O������H�uXI9��>H����O�����.H�u`I9��VH���O�����FH�uhI9��
H���O������H�upI9�tH���{O������H��H���L�
��PH���L���PH�(�H�

�PH���H��PH��H�5��PH���H�=j�PH���PH���PH���P1���R��H��P�DH����N�����H�uH����N������H�uH���N�����XH�uH���N������H�u H���N������H�u(H���|N������H�u0H���hN������H�u8H���TN������H�u@H���@N����utH�uHH���0N������H�uPH���N�����H�uXH���N�����hH�u`H����M������H�uhH����M�����FH�up�L����H���L�
`�PH���L�g�PH�w�H�
f�PH���H�:�PH�n�H�5;�PH�g�H�=?�P1��7Q��H��0[]A\�fDH���L�
�PH� �L���PH��H�
��PH���H�ʼPH�5��H�=�1���P��H�� []A\�H��H�"�L�
��PH���PH���PH�?�PH�r�PL���H�
��1�H�a�H�5j�H�=���qP��H��0�5���H��H���L�
,�PH�\�PH�J�PH��PH���P�H��H��L�
��PH�x�L�k�PH��PH��PH���PH��PH��PH�
��H���1�H�5��H�=,���O��H��@���DH��H��L�
A�PH���L�m�PH���H�
��PH�]�H�5f�1�H�=4��kO��H�� �/���H��H���L�
��PH�V�L�-�PH�=�PH��PH�B�PH�B�PH���P�*�����USH��H��hH�dH�%(H�D$X1��
4��H��H�CH��H�H�8�u8��I��PH��H��H���1��N��H���AK��H�T$XdH3%(uH��h[]��E8��D��AV�
AUATUSH�oH�=Q�H��������
�H�=�H����������H�=<�H��������v�H�=�H����������H�=��H��������j�H�=��H��������,�H�=�H��������&�H�=��H��������@H����H���"L� H�EM�,$H����L�0M9�� L��H���I�����
M�l$M9���L��H���dI������M�l$M9��^L��H���CI�����KM�l$M9���L��H���"I�����rM�l$ M9���L��H���I������M�l$(M9��cL��H����H�����PM�l$0M9���L��H���H������M�l$8M9��8L��H���H�����%M�l$@M9���L��H���}H������M�l$HM9���L��H���\H������M�l$PM9��+L��H���;H�����M�l$XM9�tL��H���H������H�5��H���<������
H�5�H����<������L��H���]H��H�@HH�H��3#�0H����0��H���*
H��H���<��H��[H�=%]1�A\A]A^�_K���H�EH�8[]A\A]A^�@�H�= �H����������H�=/�H����������H�=�H��������VH���"H��H�8�d5��1�[]A\A]A^�f�H����/���;���H���H5���+���Hc}[]A\A]A^�9���H�}�.����L��H���G���pJ[H�=:�]1�A\A]A^�,��H�} �����H�= �H��������-�H�=/�H����������H�=�H�����������H��L���F���xI�6���f�L��H���E�����}���M�l$H��L����E�����e���M�l$H��L����E������M�l$H��L���E������M�l$ H��L���E�����|M�l$(H��L���}E������M�l$0H��L���eE�����WM�l$8H��L���ME������M�l$@H��L���5E�����_M�l$HH��L���E������M�l$PH��L���E������M�l$XH��L����D��������M�l$`H��L����D�����?M�l$hH��L���D������M�d$pL��H���D������H�5R�H���~9�����LH�5��H���g9�����!H�5��H���P9������H�5��H���99�����uH�5��H���"9�����JH�5��H���9���������H��L���D���xa@���[]A\A]A^�8����H�=��H������������H��L���GD��HcxH�ÐH��L���5D��H�xI�����H�=X�H��������p�H�=g�H����������H�=Q�H��������8���H��L����C��HcxL�n���H��L���C��H�xH�Y���L��H���C���pJ�x����H�=��H��������o�H�=��H����������H�=��H������������H��L���,C���xL[]A\A]A^�|A��H��L���C���xH����H�=8�H��������t�H�=G�H��������j�H�=1�H�����������H��L���B��H�xP�N���H��L���B��HcxP�:����H�=��H����������H�=��H����������H�=��H������������H��L���!B��H�xP���H��L���
B��HcxH���H��L���A���xP�����H�=!�H���������H�55�H���46������H�5&�H���6��������H��L���A��H�xP[]A\A]A^�E��H��L���~A���xH�M���H��L���kA��H�xX����H��L���WA��H�xH����H�5��H���5�����^H�5��H���5�����3H�5��H���5�����s���H��L���@��H�xP[]A\A]A^�)��H�5"�H���N5�����@���L��H����@���pH���H��L���@��H�xX���H��L���@��H�xH�r���H�5��H���4�����SH�5�H����4��������L��H���b@��H�@HH�H��+#�0H����(��H������H���)-��1�1�H��H���J���H�����H���"����H��L���
@��H�xH�k���H��L���?��H�xX�W���H��L����?��H�xH����H��L����?��H�xX����M�l$`M9���L��H���,?������M�l$hM9�tL��H���?�����CH�5��H����3������H�5��H����3������H�5��H���3������H�5��H���3���������L��H��� ?���@`[]A\A]A^�N1��H�5C�H���o3������H�5Y�H���X3����tnH�5N�H���E3����tBH�5s�H���23�����$���L��H���>��f��Z@T�L��H���>���@P�t���L��H���>��f��Z@L�[���L��H���k>��f��Z@H�B���L��H���R>��f��Z@P�)���M�d$pM9���������L��H���&>��H�}[�pP]A\A]A^鲌��H���*��1�1�H��H���K���H�����������L��H����=��H�}[�pP]A\A]A^�~���L��H����=��H�pP���L��H���=��H�pH���L��H���=���@H�v���L��H���=���@X�a���H�5��H����1�����D�������H��L���U=���xa����L��H���A=��[H�=c�]�p`A\1�A]A^�w@��L��H���=��H�pX�����SH��H���3��H��[��.��fD��H�GH9Fu	H;S�"tH���"H��DH�vH��=�f.���UH��SH��H��"H�{ �+��H��H���"��H��H��tH���7��H�CH��H��[]�f.���UH��SH��H���"H�m�"H�CH��H�'���H�C0H���H�C@H�1���H���H�S�H�CXH�(�H�CxH�-�"Hǃ�H����F.����t
H��[]�H��H��H��[H�5��]�0"����H�G��@f���H�G�����g-�����USH��H�oH�dH�%(H��$�1�H���P(��I�辀H��H��H���1��d>��H���;��H��$�dH3%(u
H�Ę[]��(��f.�SH�д�H��dH�%(H��$1�H�GH�GH��H�GH��H�H1���=��H�-�"H��H�8�(��H��$dH3%(u	H��[��'�����S1�H��H��H�5���74����tH���[��������[�@��H�FH9GtH�#�"H��fDH�vH��;��H����H����H����AVAUATUSH�y0��H��"I��H��H��H��I��H�AH���"H���1,������H���H��H�5�I��H��� ��I�.tJH�%#H��H��0�3��H��L��[L��]A\A]A^�����H���H�5�1��+)��I�FL���P0�@H�4�H�5��1��)��H�)�H�5��1���(��H�Q���H�A0�
����H�KH��[1�]�A\1�A]A^��4��Df.���AUATUSH��H��u-H��H�5O�1�1��v(��H��H��[]A\A]��H��I����'��A��M��t}H��##H��0�� ��H��H��tDH�{ �['��H��H���p��D��H���% ��H��t�L�cH��H�kH��[]A\A]�f.�H���x�H��H��u�H��"��H�a�"��H�����H��H��[]A\A]���UH��H�=C�SH����)��H�@##H���"�H��H��0H�C0H�=���H���H�����H�CXH����H�CxH���H��(H����Hǃ�H��@��H��8tiH���)����t
H��[]�fDH��H�5��H������D��H��H�53�H��H���k��H�mu�H�EH��H�@0H��[]��H��"H��8�H�I�"H��0�j���f.���H�G����AWAVA��AUATI��USH��H��(H�t$H�L$��%��D���D$�,��H��E���}E�n�E1��ADI�$� t6I�D$0H����H�I�T$01�H��H��� /��I�GM9�t6I��M��t�1�H���umH����H��L��H��H����.��I�GM9�u�I�t$(H��tH���*��H�mH����H��I�|$ H���.��H��H����H�|$�������H�+��H�mu
H�EH��P0�|$H��([]A\A]A^A_�A���H��(H��H�5N�1�[]A\A]A^A_�
%��D�,��H��uH�_�"H�5�H�8�"���I�D$8H��ttH�T$D��H�|$���i���f�H�CH��P0�X���H�EH��H��P0����H�|$H���€���'����5,��H��t(I�D$8H��t6H�T$D��H�|$������m$�����H���"H�5��H�8�R"����K$������fD��USH��H���#��H�{ ��H��tH�/tmH�{(H��tH�/tNH�{0H��tH�/t/�����H�C H�C(H�C0H��[]�f�H�G�P0���H�G�P0��H�G�P0����AWAVAUM��ATUH��S��H��H�t$�"���D$M���OH���� ��I��H����PH����1������L���.��H�J�I��H����A�}�!��1�H�=C�H��1��$���I�ń�tD��-u�_H�����u�L��L���b��L��I���7��M����I�,$���{��(��I�ă���D�k�H��1��%H��H��L��H���+��H�CI9���H��1�H���jH��u�I�,$th�|$H��[]A\A]A^A_�Q���H���H��H�5��1�[]A\A]A^A_�"��DI�D$L��P0�U�����&��I�,$u�@I�D$L��P0�L��L���U*��L��H���4����tv�X�E1��fDI�EI9�t_I��L��L���!��I��H��t�H�xH�5��"H9�t	�4����t�I�?t�A�G ��u�I�wI�� ��A�G I�GI�EI9�u�H����I�.tqI�,$t:H�|$�p����uEH�m����H�EH��P0���f�H������@I�D$L��P0H�|$�+����t�H�|$H���
}��I�FL���P0I�,$u���� ��I�.�O���I�FL���P0�@���Df.�AWAVAUATUH��SH��H��hdH�%(H�D$X1��D$�*1������H�t$H���%���t$I�Ņ�u#H�D$XdH3%(��H��h[]A\A]A^A_�H�D$H��L�t$ L�%U�1����H�5/�H��H��1���+���T$�������L��E1�A�|��.)��H�5�H���.��H�t$(H���.��H�5�H���.���D$H��tCH�L$PD��H�<����H��H���\.���D$H�H�D9�tL��H���E.���D$HA��A9�r�H�5��H���).��H�D$@����uNH�5�H�߃��.��9l$�B���L���z��H�5žH����-��H�D$H�������H��������H�52�H���-��H�|$@����H��H���-���f.�H���*��H�t$H��H�D$�v���L$I�Ņ�t��x����������w ������g �����H��H��O��H������ ��@��H��H��O��H���H��HD�H��H���%.��D��H��H�� ��.��H��Hc��>"��@f.���H��H���.��H��Hc��"��@f.���H��H���j.��H��Hc���!��@f.���H��H���:.��H��Hc��!��@f.���H��H���
.��H��Hc��~!��@f.���H��H����-��H��Hc��N!��@f.���H��H�� ��1�H��@��H���!��f�f.���H��H����1�H��@��H���� ��f.���H��H�����H��Hc��� ����UH��SH��hH�dH�%(H�D$X1�H���g��H���L�EH��H���PHD�H���H��1��l/��H���$,��H�L$XdH3%(uH��h[]��(���S�H���2'����tH�g#[���0H���'����tH�@#[��@�4H����&����tH�$#[��@�DH����&����tH�(#[��@�HH���&����tH��#[��H��#[��f���ATUH��SH�H���9���H�}��A������H��tH�(t0H;��"t:H�C����tBH�H�}H��D���$��1�[]A\�H�PH��R0H;g�"u�H�}D��1��o$��[1�]A\�H��"H�5J�H�8��������붐f.���SH��H����H�{���$��H��tH�[�f�H��"H�[���H�GH9Fu	H;�"tH�:�"H��DH�vH��+�f.���UH��SH��H�\�"H�{ �#��H��H���8��H��tH�hH��[]����AUATUSH��H�dH�%(H�D$1�H�t$�t���|$I�����I�ċD$��t(1��݃�I�|��i���H��L��H���!��9\$w�L������L��H�L$dH3%(uH��[]A\A]��j��f.���AUATUSH��H�dH�%(H�D$1�H�t$�,���|$I�����I�ċD$��t(1��݃�I�|�����H��L��H���[!��9\$w�L���-��L��H�L$dH3%(uH��[]A\A]�����f.���H��H��/��H��H���c�����H��H����H��H���C�����SH��H�5��1�H��dH�%(H�D$1�H���"����tH�<$����H��t)H�����H��H�L$dH3%(H��u#H��[�DH�	�"H�5c�H�8����������f.���ATUSH��H���;H;=<�"H���KH�GA��H������t=H;=��"�`H;=i�"�cH;=�"�fH;=�"�iH;=b�"tUH�-��"H9�����uPH��H�5�����H��H��tH�H�@H�Q�H9���H�H��te���E��u3H��#H�H��[]A\�H���%��H�����H��t���f�H�!�"H�5��H�8���H��1�[]A\���P0���E��t���f�H�CH��[]A\�H�џ"H�5*�H�8�j��1��j�����]���fDH�GH�H���G���H�D$�U0H�D$�5���fD��%���fD�����fD�<����fD�@���@f.��������f���AWAVAUATI��USH��XdH�%(H�D$H1�H��t$H��H�~H�5ȱ"H9����z(������L�����H��H����1���B+���H��H��� ������H���R��H�5�H��H��1�� ��I��$�H��tH�5ɴH��1��� ���PH���C ������H�sH�;�(���H��H���O��H�L$HdH3%(H����H��X[]A\A]A^A_�f�H�CH�H�(H���/���H���"H�5�1�H�8����H��P���H���x�s��H�5�H��H��1�� ������f.�1�1�L�d$@�H�D$@P�D��H�|$@H�D$(L�l$(t)f��L��L������H�t$@H���
��H�D$@H��u�H�D$(�@�$���D$��HcD$H��H�D$H�D$<H�D$f�H�D$(H�L$H��H�H�<H�|$@���H�l$@�D$<H������H�t$H��H�D$ �;���T$<I�ą��\E1�E1��q@�[��H�$I�H�x�K��I�?I�����L�$L��H��H��H�5�1�A�����I�?���H��tH��H�5ݲH��1����A��D;t$<sCD��M�<�I�?H;o u�E���z���H������H��H�5x�H��1��~��I�?�V���fDL���
��E��tH�5>�H���d!��H�|$ E1��'��H�t$H�|$@�(��H�ŋD$<��t DD��H��A��H�|���D9d$<w�H���
���l$�D$H�l$����m���H�|$(��^������f�H���X
���o������H�5��H��H��1�������1��������fD��SH�
��"H��H��H��H���H��dH�%(H�D$1�I�������t4H�<$���H��t&H�C1�H�L$dH3%(uH��[�f.���������d��@��SH��H��H�5,�H��dH�%(H�D$1�H��������t.H�<$�%���H��t H�{H���4��Hc��,���f.�1�H�L$dH3%(uH��[���
����AUATUSH��H����H��H��H���
H�FI��H����um��aH���2��I��I����L������0H������I��L��L���b&��L��H������H������E1�H��[]A\A]�@H������H�5y�"�EH�{H9�t	��"����t�H�{(L9�t����L��H������I�ؾ1�H��H�DZ1�����1��@H��H�5�1����H�������[]A\A]��H��1�[]A\A]�DH�ɘ"H�5��E1�H�8�_
���
���f.�L��L�����H��H������H���"H�56�H�8�#
���������H�j�"H�5��H�8�
�����������f���AWAVAUATUSH��H���-H��H��H���FH�FH������I��I��A���]��H���!���I��I���L������4H�������D$I��E��~nA���@�	I�GM9�tWI��L��H���
��H������L��H��I���w ��H��u�L��L������H��u�H�S�"H�5��H�8�����D$����L���	���f.�H���x���D$��D$H��[]A\A]A^A_�H�ܛH�5�1��
���D$������f���D$�H���"H�5"�E1�H�8�W���D$������f.�H�����I��I��tOL���w���4H�����I��L��L���l��L��H�����H��t7�E�D$��,���f.�H�1�"H�5��E1�H�8��
���L��L���z
��H��H��u�H��"H�5��H�8�
���D$��������H��"H�5��H�8�y
���D$�������f�f.���AVAUATUSH��td�5#I������I��A�ă�tKL���'��5�#H������H��H��uBH���"��H��H��tA��u�H���|���f.�E��t;1�[H��]A\A]A^�D�E��u�5�#L���`��[H��]A\A]A^�@���f����R#ATI��UH��SH����t-��;���51#H��L� H��H�h[]A\����H�=u��l
��H�=z���#�Z
����#�f���AUATUSH��H����H��I��@1�I�����H���1�H��H���P ��H�5i�H���a ��H�EH�k M��t L;%T�"tI�D$I�$���tWL�c(M��tI�E�L�k0
 �H��H��[]A\A]�fDH��H�5��1�1��a
��H��H��[]A\A]�����L��1�H��H���f��I��느��H��tH�w8�f�H���H�5�1��
���f.���H��#H��t��H��1�� �
��H�5A�H��H��#�R��H�={#���H�=o#�:��H�c#H���@f.���USH��H�7#H��t
H��H��[]�H�-i�"H���"H�EH��������u�H�} �y��H��H�����H��H��#HE�H��H��[]�fD��UH��SH��H��H�G�����H�H�����H��t5H�.�"H�5G�H�8����H�+u
H�CH��P01�H��[]�fDH�����H��tԋ�EH�H�P��H�H��u�H�S�D$H��R0�D$H��[]�f�����H��H���d����f.���H��H��#�0����H����H�����f�f.���UH���H��SH��H�e�"H�C0H���H��0H���H�t�H�CXH�Y�H�CxH�n�"H���H��"H���H����Hǃ�H��(��H��8�|H���
����tH��[]�f�H��H��H�5{����H�W�"H���H�
��H��H�H0Hǀ����H��dH�5 dH��[H��]���f�H�y�"H��8�q���DH���"H��0�K���D��SH��H��H�5f�H��dH�%(H�D$1�H�������t.H�<$�u��H�C1�H�L$dH3%(uH��[�f�����������@��H�1�H�5_��J��f.���UH�
��"H��H��SH��H�C�1�H��dH�%(H�D$1�I�������tEH�5
�"H�<$�1����uLH�<$��H��H��t[H�$H��H�H�}���H�h�"H�H�L$dH3%(H��uAH��[]�f�H��"H�5b�H�8������H���"H�5z�H�8���������UH�
��"H��H��SH��H�s�1�H��dH�%(H�D$1�I��������tMH�5*�"H�<$�Q����u\H�<$��H��H��tkH�}H������H�$H���"H�H�$H�H�EH�L$dH3%(H��uIH��[]�f.�H�!�"H�5�H�8������H���"H�5��H�8���������H��H��O��H��Hc������SH�
t�"H��H��H��H���H��dH�%(H�D$1�I������1҅�t"H�<$�9��H�{������H���"H�H��H�L$dH3%(H��uH��[����f���H��H���
��H��Hc������SH�
İ"H��H��H��H�L�H��dH�%(H�D$1�I���(��1҅�t"H�<$���H�{���
��H���"H�H��H�L$dH3%(H��uH��[��r��f���AVH�
3�"AUI��H��H��ATH�J�USH��0dH�%(H�D$(1�L�D$H�D$ �������H�|$H�G��������I��H����vH�x����H�D$J��M��~v1��f�H��I9�tgH�|$H������H���R��H�T$H��H�,����H�EH�D$H�,�H��u�H�����H�L$(dH3%(H���8H��0[]A\A]A^�H�����I��I�������D�d$H�\$ �Y��I�}H�T$H��H�t$I�����L������Lcd$����H�|$1���	��������H��M��~+fDH�D$H�<����H��H��H��H���(
��I9�u�L���K
��H�|$�A
���%���@L���H�
����1�H�5�������H���"H�5�1�H�8�H�������1�����H�|$1�����L������H����6����3�����SH��H�H��tH�CH�/t!H�{H��t
H�C���H��[����f�H�G�P0�����H�GH��tH�H�G�f.�H�!�"H��@��H�GH9Fu	H;��"tH�j�"H��DH�vH��K�f.���UH��SH��H�̮"H�{ �S���H��H���h���H��tH�hH�@H��[]���UH��H��SH��H���"H�C0H�Z���H��0H���H�$�"H���H����Hǃ�H��(tRH��8t8H��� ����tH��[]�DH��H��H��[H�5v�]�����H�Ɉ"H��8�H���"H��0���SH�
��"H��H��H��H�]�H��0dH�%(H�D$(1�H�D$ PH�D$ P1�L�L$ L�D$���ZY��t]H�T$H�t$H��L�YH�|$����H�CH�CH�D$ H�H�D$ H�C 1�H�L$(dH3%(uH��0[�f�����������@��USH��H�����H�{ H�C��H��tH�C H�/t=H�{(H�5�"1����H�{(����CH�C(��tH�+tH����[]� ���H�G�P0��H�CH��P0H����[]���f���AVI��AUI��ATUH��SH���S���H�{ I��A��H��tT1�H��H�5�L���P���H��tXH��H�Q�H�H��tD�������[]A\A]A^�@H�PH��R0��@H�
�"1�L��H�5�����H��u�L��1��7�����몐��SH�H��uH�H�CH��t�+��H��[����f���AWAVAUATUH��SH��X�dH�%(H�D$H1�����H��1�H��L�D$(H�
��"H���P	�����xH�|$(H�G������M	��I��H�����H�x�0���H�D$M���\H�XH�D$8E1�H�D$H�D$0L�t$@H�D$L�=]������H��H��L�CH��AVL�L$H�5��1�H�T$ ���ZY����H�|$0I��H��0�,��H�}(H��H�D$0�{���H�|$8H�E(H�D$0H�C����H�}(H��H�D$8�S���H�|$@H�E(H�D$8H�C���
��H�}(H��H�D$@�+����C�H�E(H�D$@L�{�H�C�M9�tfH�|$(L�����H�P���� ���H���"H�5R�H�8�J���H�|$��1�H�L$HdH3%(u{H��X[]A\A]A^A_��H�\$H�}H���g��H���_�H���"H��f�H�!�"H�5��H�8����1��fDH�!�"H�5¢H�8���1��u�������@f.���H�GH9Fu	H;�"tH�z�"H��DH�vH��[�f.���UH��SH��dH�%(H�D$1��G��udH�_H��t{H��I��H��1�H�
a�"H���1������tH�}H�4$�2	��H���"H�H�L$dH3%(H��uDH��[]�DH�	�"H�5r�1�H�8�����fDH�ɂ"H�5�H�8��������f.���UH��SH��H�l�"H�{ ���H��H����H��tH�hH�@H��[]���UH����H��SH��H�%�"H�C0H�����H��0H���H���"H���H�����Hǃ�H��(tRH��8t8H���`�����tH��[]�DH��H��H��[H�5Z�]�H��H�	�"H��8�H�9�"H��0���H��H�ف"H�5B�H�8�r��������H������USH��H������H�S��H��t{H�;1�H�52����H��tvH�(t?H�;H�/uH�G�P0H�{H��tH�/t0H�޿�[��H����[]���fDH�PH��R0�@H�G�P0���H�;1�1��\�H��u�������SH����������H���"H��[H��@�����H���S���������H��"H�H���f�f.���H��Hc����H�=i�"H��H���I��H�5۠1�H�����f.���AWH��H�
��"H��AVH���AUATUSH��dH�%(H��$�1�H�U�"H�D$@H�D$PH�D$HH�D$pH�D$X�D$$�D$(�����D$,�����D$0����H�D$`H�D$hH�D$pH�D$x�D$4PH�D$pPH�D$pPH�D$hPH�D$hPH�D$LPH��$�P1�L�L$xL�D$p���H��@����H�|$XH��tu�����tlH�|$`L�|$ H��tj�����taH�|$hL�t$$H��t_������tVH�|$0H�D$(H�$�!���uUH�"H�5��E1�H�8���:�H�|$`E1�H��u�H�|$hE1�H��u�H�|$0H�$�����t�H�|$01������H�xI���K��H��M��F�>fDH�@�����L������H��I�mu
I�EL��P0H��I9���H�|$0H��H�GH�@h�PI��H��u�H�3~"H�5̝H�8���H���$��]��M��tL����M��t4I�}H�/uH�G�P0I�}H��t
H�/uH�G�P0L������H���*�E1�H�L$xdH3%(L���=H�Ĉ[]A\A]A^A_�@H��}"H�5"�H�8�"�H���z�I�mu�I�EL��E1�P0�@L�d$8M����L���J����tH�|$8����H�xH��H�D$����I��H����1��;f�H�@�����L���W��I��I�mu
I�EL��P0H��H9l$tOH�|$8H��H�GH�@h�PI��H��u�H��|"H�5��H�8�F�L����H��E1�������fDH�|$@H;=�}"�&�����������H�T$HI��H�D$@I�UI�EH�I�EH��tH�H�Z}"L�k���H9D$@�LD�H��M��L��H�l$xH��U�t$AVAWH�D$TPH��$��L$L��H��0H�߅���������M��tL�����M����Ic?��H�D$XM��tIc>���H�D$`H�$H��tTHc8���H�D$hH�Ë|$,L�d$`H�l$X����I��L��H�=�H��H��1��l��I�����@E1�E1��(���H�f|"H�H��H�D$h�H�Q|"H�H�D$`�y���H�<|"H�H�D$X�R���H��z"H�5ؚH�8��L�����I�m�?���I�EL��P0�0���H��z"H�5��E1�H�8�U�H�������H��z"H�5šH�8�2�H����M�������L��E1��v�����,�f�f.���UH�
�"H��H�5Z���SH�2���H��H��"H��{"H��H��8H��0H���Hǃ�H��(H��@H��8tQH��t<H�����tH��[]�f�H��H��H��[H�5��]����H��y"H��8�H��z"H��0����G��u�GH�GH��D1��f.���USH��H���n�H�+��u
H�CH��P0H����[]���Df.���ATUSH��tkH���+�H�߾A���{�H��1�H���n�H��H����H��H��t[H�����H�+��tD���c���[]A\�@H�CH��P0��@1�H���H�5ș1��!���[]A\�f.���1�������w~H�
`���Hc�H�>��@H9�vH��y"H��@H9�s�H��x"H���H9�s���f�H9�w��f�H9�u��f�H9�u��H�zw"�������H�
���Hc�H�>��H9�~H�y"H���H9�}�H�Lx"H���H9�|���f�H9�~���f�H9�u��f�H9�u��f�H��v"H��@��Ðf.���AWH��H�5h�AVAUATUSH��HdH�%(H�D$81�H�L$H�T$�D$����H�D$ H�D$(�[������CH�\$H�5W{"H�{H9�t�I��H�\$���$��H9C�Lcl$E����H�D$ L�{H�l$(1�H�D$H�D$0H�$�@I9��OI)�H�|$ � I�� LG�H����M�d���I9���H�|$ ����L�4���H�$L��I��I��L��L����L��A���U�H���="���
H\$0A����Lcl$A����_���H�|$ A� H���u���L����H��H�D$ H���t���f.�1��@H�yu"H�5z�H�8��1�H�T$8dH3%(��H��H[]A\A]A^A_�DH�|$L�����H�|$ �������DH��t�H�/u�H�G�P01��f�H�|$ ��H9�uH�D$ �f.�H�|$ H�������u�fDH�|$ 멐H�=�����O����z�f.����q���H��H��H�5�dH�%(H�D$1�H�����1���t#H�5ޕH�=�l軙H�4$1�1�H���;�H�L$dH3%(uH���������AWH��H�5H�AVAUATUSH��8H���"L���"dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(�[�ZY���AH�|$����H��H���������H�D$L�hL������H��H���#���H��A����H��I���m���H�$A����H����I��H�$H�D$L������A�ƅ�~o1�f.���L�����L��H���[�H��I���P�L��H���E�H�߅�u$�i�H��I����L�������m��H���e����A9�u�L���U��H�<$��H��s"H�H�T$(dH3%(�fH��8[]A\A]A^A_�fDL��H�
����1�H�5���w��H�<$L�����H�D$H����H�����I�����fD���L�����H���U���H����H��I���g���H��I�������t'L�ЕH�
i���1�H�5n����fDH������H�T$ 1�L��Hc�Hl$蜨L��H�@H�E�,��L���$��H����������1�����f�H�<$���L����H�5�H��H�q"H�81��$���H�$�r�����f���AWH��H�
М"H��AVH���AUATUSH��(dH�%(H�D$1�L�D$�0�1҅���H�D$H�x�x�����tH�D$H�x�e�������H�D$H�x�N������uH�D$L�pL��������xA�ljD$Hc��-���H�D$E����H��E1��1�L���8���H�CH��H������A�D$9D$�)A��D��L����H��H���`�H�5ґH��I����L��I�����H��H�C�w��M��u�H�CH�C�fDL������L��H���
�H��1�H�=��H��I��1��d�H�t$H��H�����H��H�����H�Qo"H��H�5E�H�81��U���H�|$�{��H���s��1ҐH��H�T$dH3%(��H��([]A\A]A^A_�f.�H�1o"H�5B�H�8���1��fDL�����L��H���=��H��1�H�=ՐH��I��1���H�t$H��H���$�H��H��t$H������1�H��L��1���O��H���M���DH�T$K�dH�ZL�d�(fDH�C�H�;H9�tH�����H�;���H��L9�u������1����AWH��H�
�"H��AVH�+�AUATUSH��(dH�%(H�D$1�L�D$�`�1҅���H�D$H�x�����tH�D$H�x�������H�D$H�x�~������uH�D$L�pL�����xA�ljD$Hc��]�H�D$E����H��E1��1�L���h���H�CH��H�����A�D$9D$�)A��D��L���K�H��H�����H�5�H��I���>�L��I������H��H�C���M��u�H�CH�C�fDL�����L��H���=��H��1�H�=ՎH��I��1���H�t$H��H���D��H��H�����H��l"H��H�5��H�81����H�|$���H�����1ҐH��H�T$dH3%(��H��([]A\A]A^A_�f.�H�al"H�5��H�8��1��fDL���H��L��H���m��H��1�H�=�H��I��1����H�t$H��H���t��H��H��t$H�����1�H��L��1���=��H���M���DH�T$K�dH�ZL�d�(fDH�C�H�;H9�tH�����H�;���H��L9�u������a�����UH��H�5��S1�H��H�s�"dH�%(H�D$1�H�������tGH�<$����H��H���.���tJ�� �H���H��H�H���U��H�Ll"H�H�T$dH3%(H��u%H��[]�fDH��j"H�5�H�8��������ATI��UH��S�!�H��H���f��H��t1H��H������H��1�1�H��A��H��H�����H��[]A\�fDH���8��[H��1�H��]L��1�A\��D��H��L�Q�"H��H�
�"dH�%(H�D$1�H��I��H�x��e���t!H�<$����H��tH�5,K��H���4����f�1�H�L$dH3%(uH������@��H��L�ы"H��H�
G�"dH�%(H�D$1�H��I��H�������t!H�<$�h��H��tH�5|;��H������f�1�H�L$dH3%(uH����4��@��AT��H�=�"US��H��H����H�����H�{H�5��H�����[H���H���9
H����5H���I`H����H��虥H��衍H����H���q��H���)�H���1)��H���)��H����+��H���Y,��H���,��H�����H�����H���IS��H����H���I2��H���a���H����>��H���!P��H�*h"1�H�=ĊH�0���L�%��"1�H�=��I�$H�&h"H�0��H���"1�H�����H�f�"H�5}�H��H�I�$H�I�$��H�H�5k�H��H�H����1�H�5j�H�=�"�R�H��tH��H��H�5O���H��[]A\�1�[H��]A\�fD���'������SH�
��"H��H��H��H��H�� dH�%(H�D$1�L�L$L�D$H�D$�x���1���tH�{H�T$H�t$��Hc���H�L$dH3%(uH�� [�����f.���AUH�
�"ATE1�USH��H��H��H�ԎH��dH�%(H�D$1�I�������td1��U��H�{H�4$I���u��H�8I��H��t:H�hfD�+�L��H��H����H�+u
H�CH��P0H��H�}�H��u�L����H�L$dH3%(L��uH��[]A\A]����D��AUH�
#�"ATE1�USH��H��H��H���H��dH�%(H�D$1�I��� ���td1����H�{H�4$I����I��H��tEH�8H��t5H�h��[�L��H��H����H�+u
H�CH��P0H��H�}�H��u�L�����H�L$dH3%(L��uH��[]A\A]��%��D��AUATUSH��H��Y��1�I������I�}I��H��t<L�����L��H��H���-�H�+u
H�CH��P0H�}H�����H�}H��u�L������H��L��[]A\A]��UH�
Ĕ"H��H��SH��H���1�H��dH�%(H�D$1�I�������t H�}H�4$���H��H��t,H���$�H��H�L$dH3%(H��u,H��[]��H�d"H�$H�59�H�81�������f.���UH�
�"H��H��SH��H��1�H��dH�%(H�D$1�I���%���t H�}H�4$��H��H��t,H�����H��H�L$dH3%(H��u,H��[]��H�ac"H�$H�5��H�81��d���M��f.���ATH�
3�"UH��H��H��SH���H�� dH�%(H�D$1�L�L$L�D$�n�����H�\$E1�H���f��H��uQH�}H�t$H������L��H�����H��t`H����H��H���m��H�L$dH3%(H��u\H�� []A\�|�_H�p�u�H����H��I������t&L�d$L���@H��c"H��1��@H�\$�]����9��f���AWH�
�"AVI��H��H��AUH���ATUSH��dH�%(H�D$1�I���_�����I�~H�4$���Lc�M����L������I��M���}1��,fDH����H��I���]��M��tHM�d�H��I9�tMI�~H�4$���k��H��H��u�L���H�
���1�H�5����f�M��tI�/tUDE1�H�L$dH3%(L��uIH��[]A\A]A^A_�H�	a"H�$H�51�E1�H�81��	���I�GL��E1��P0�����f�f.���SH�
��"H��H��H��H�[�H��8dH�%(H�D$01�H�D$ H�D$H�D$ P1�L�L$ L�D$���ZY��tiH�|$1�H��t�P�1Ʌ���H�{H�T$L�D$ H�D$ H�t$�8�H�D$ H��u.H��a"H�H�\$(dH3%(u4H��0[�D1���@H�pH���"H�8����H�|$ ���1������f.���SH�d�"H��tH�H��[�fDH�=��"�d�H��H�:�"H��t�� ��H�CH�%�"����AVH�
#�"AUE1�ATUSH��H��H��H���H��dH�%(H�D$1�I������tmH�{H�4$����1�I�����I��M��tFL���L�eL�����L��H��H���F��H�+u
H�CH��P0L�����H�mH��u�L�����H�L$dH3%(L��u
H��[]A\A]A^�������UH��SH��H���"H��_"H�CH��H��"Hǃ�H��������tH��[]�DH��H�5p�H���~���u�1�1�H�=�����H���"H��H�5ۅH�H��H��[]�H����SH��H�(H��tH�C(H�/tAH�{0H��tH�C0H�/tH��"H��[H�@0��f�H�G�P0���H�G�P0����SH���S���uH��[�DH��[�������H��H����H��������@��H��H���H�������@��H��H����H�������@��H��H����H�����d��@��H��H����H��Hc�������H��H����H��Hc�������H��H����H��Hc������H��H��_��H��Hc�������H��H���������H��H����f�f.���H��H����H��Hc������H��H��/��H��Hc��s����H��H����H�����T��@��H��H�����H�����4��@��H��H���H��Hc������H��H��O��H��Hc������H��H����H��Hc��s����H��H�����H��Hc��S����H��H�����H�������@��H��H��/��H�����t��@��H��H�����H��Hc��S����H��H���H��H�������H��H����H��H�������H��H���H��Hc�������H��H��_�H��Hc�������H��H����H�������@��H��H��_��H�=ɂH��H��1����f.���SH��H��_���H�SH�=��[H�rH��1��e��D��H��H��_��H��Hc�������ATI��UH��H��SH��H�� dH�%(H�D$1�H�D$����H�D$�A���t,������t~E1�H�
D��1�H�5�����H�߉�����H��H����H�l$L��H��H�������uSH������H�D$H�L$dH3%(�H�� []A\�f�H�߉����H��랐H�߉����H��뎐H���X��I��H��t�H������H�T$H����YV��u	H�D$����L���D���l���H������m����n��@f.���H��H����H��H��������AUATUH��SH��(H�dH�%(H�D$1�H�\$�D$H�D$H����������H�}�<�H��I���!����t\1�L��H����ZI�ŋD$��u4H�}H�����L���p��H�L$dH3%(L��uXH��([]A\A]�f�H�|$1�����f�L�L$M��1�1�1�H���
XH�D$�H�QW"H�5'�E1�H�8�'����@����H��H����H��Hc��C����H��H����H��Hc��#����H��H��_��H��Hc������H��H����H��H�������H��H����H��H���c�����H��H�����H��Hc������H��H��/��H��������@��H��H����H��Hc�������H��H��/��H�������@��H��H��_��H�������@��H��H��?��H���ǃ�������H��H����H����Hc�������H��H��_�H��Hc�������H��H�����H��Hc������H��H����H��������@��ATUH��SH��H�=�"H�t$tbH�D$H�|$H����H�t$H;5��"taH���I��H��H�|$H�/tH��H��[]A\��H�G�P0H��H��[]A\�DH�=l���H��H���"H��u��H�i�"H��tH��1�H��1����H���H�=�}���I��H���r���H�5w}H������H�"�"H��t(I�$H��H�Q�I�$H��u�I�D$L��P0H���"�I�,$�$���I�D$L��P0����f.���SH�H��t�\��H�{����H�{ H��t��H�CH��[H��@��@��H��H������t��u%H�fU"H�H���DH��T"H�H���E1�H�
f���1�H�5Q|������AVI��AUI��ATI��USH��H�0��H���T��H�xH���h��H��H����I�E0H�I�E0H�CH��~+H��1�DI�|H��tH�H�| H��H9�u�I�}(L��H��轱H�+uH�SH�D$H��R0H�D$H��[]A\A]A^�fDH�(t)L��{H�
;��;1�H�5f{�����H��[]A\A]A^�O��1��@��AWAVAUATI��UH��SH��H��H�0t
H�����u!H��L��H��H��[]A\A]A^A_���DH�{����I��H��toH�{0H�5,{�_��I��H����H�@���unL�����L��I���C�L��H���8������I�m�t���I�EL��P0�e���fDL��zH�
B��T1�H�5Mz����L���P��I�mI��tI���x���fDI�EL��M���P0�`���fDL����L��H�5��H��H�\Q"H�81��*��I�mu
I�EL��P0H��1�[]A\A]A^A_����H��H��?����tH�|R"H�H���H��Q"H�H������USH��H�F���t9H��H���.��H�{H��H�����H��t:H�{H�����H��[H��]�@��H��P"H�5�yH�8�*��H��1�[]ÐH�yR"H��H�5�yH�81��5��H��1�[]�f�f.���UH��SH��H��H�~H�5%�"H9�t	�����t?H�sH�}������uH��P"H�H��[]�@H�aQ"H�H��[]�fDH�yO"H�H��[]�fD����t��tH�SO"H��fD�[���S�R���H�Q"H�H�Q�H�H9�t,H��tH�H��[�fDH�PH��R0H�H����DH��tH�P"H�[�fDH�PH��R0��f�f.���H��H������tH�|P"H�H���H��O"H�H����H����H��tH��H���y��f�H��O"H�H�����H�H�5)P"�Df.���H�H�5�O"�Df.���H�H�5�O"�|���f�f.���H�H�5�O"�\���f�f.���H�H�5aO"�<���f�f.���H�H�5�O"����f�f.���H�H�5�O"���f�f.���H�H�5yN"����f�f.���H�H�5�N"���f�f.���H�H�5	M"���f�f.���H�H�5���|���f�f.���SH�F���t>H��H�����H�{H���'��H��tH��[����f�H�AN"H�[�H�M"H�5
vH�8���1�[�fD��H�5U�"H��tIUH��SH�D�"H���fDH��H�3H��tH��������u�H���[]�@H��1�[]�1��@��USH��H���H��H�������uH��H��[]���1�H�5ZcH��1�����H��H������H��H���7���H��H��[]�f.����f.���UH��SH��������qH�^��Hc�H�>��f�H�Ʉ"f�1�H���0H��H��tH��襼��H�CH�CH�C H��H��[]��H�AK"H�5�t1�H�8������fDH��"��H�i�"��H�Y�"�t���@H�ɓ"�d���@H�y�"�T���@H�I�"�D���@H�9�"�4���@H�	�"�$���@H�9�"����@H���"����@H��"��@H�i�"���@H��"����@H�)�"����@H��"���E1�H�
2���1�H�5�r�g����USH����H��t#H��H���8���H��H��轶��H��H��[]�H�-QK"H�EH��H��[]�f.���H�H�5�K"�Df.���H�H�5J"�|���f�f.���H�H�51I"�\���f�f.���H�H�5�J"�<���f�f.���H�H�5�K"����f�f.���H�H�5�I"���f�f.���H�H�5!I"����f�f.���H�H�5)I"���f�f.���H�H�5AI"���f�f.���H�H�5)J"�|���f�f.���H�H�5!H"�\���f�f.���H�H�5	H"�<���f�f.���H�H�5yJ"����f�f.���USH��H�F���tYH��H������H�{�����H��H��t#H���#���H��H��訴��H��H��[]�fDH�9I"H�H��H��[]�H��G"H�5?q1�H�8舼��H��H��[]�@f.�AWAVI��AUI��ATUSH��H�?��Hc�H�����H����I�ą����C�1�H�D$�/@H���p���H��I�����M��tHM�|�H�CH9\$tMH�É�I�}A��H��H��u�L�1�H�
�|��1�H�5�o�+���I�,$u!I�D$L��E1�P0H��L��[]A\A]A^A_ÐE1���f.���H�=G"H�5NG"H������D��H��G"H�5�E"H�����D��H�eH"H�5>F"H������D��H��G"H�5.F"H�����D��H�-F"H�5&G"H�����D��H�5H"H�5~H"H���e���D��H��F"H�5�F"H���E���D��H�G"H�5H"H���%���D��H��F"H�5fE"H������D��H�
H"H�5fE"H�����D��H��E"H�5�G"H������D��H��G"H�5�E"H�����D��H�EF"H�5NE"H�����D��H�uE"H�5&G"H���e���D��H�5D"H�5�D"H���E���D��H��E"H�5&D"H���%���D��H�-E"H�5�F"H������D��H�UF"H�5E"H�����D��H�%E"H�5�E"H������D��H�}E"H�5�E"H�����DUSH��H�F���tUH��H��H�����H�}H���H��H��tH���&���H��H��諰��H��H��[]ÐH�AE"H�H��H��[]�H��C"H�5m1�H�8萸��H��H��[]�fD��H�%F"H���\���f�f.���H��E"H���<���f�f.���H��B"H������f�f.���H��D"H�����f�f.���H�
D"H������f�f.�H;5aD"��H�����uH�0t
H�H���DUH��SH��H��H���H��tH�EH�h(H�H�X0H��[]�fD��UH�5�8H��H��SH�����H��t?H��H��H���q���H�+tH��[]�@H�SH�D$H��R0H�D$H��[]�DH��1�[]����ATI��UH��SH�H���f����tH��t5H��H��[]A\���fD��H��IE�H��[]A\����fDI�\$H��H��[]A\����@��H��H��o��H��tH��H������fDH��B"H�H������UH��H�5kSH���DZ��H���~H�xH��H9�tH�������t>H�kH���j���H�+tH��H��[]�f.�H�CH��P0H��H��[]�@H�CH�UH�5�s1�H�HH�$A"H�81������1��f�f.�����w}H�
�t��Hc�H�>��@��f.���f.�H�����H�5HsH��H��@"H�81��|��1�H���D��f.���1�����USH��H���n�����wY���H����uW�� uH��%t7H�����H��H����������H�:t��Hc�H�>��fD1�H��[]��H���[]�@�H��H�D$�^���H�D$��������H��u�L�*iH�
Vu�u1�H�51h裵��H���(�����u�H������f.�H��������u�H��������U����u���H��������`���H�������X���E1�H�
�t��1�H�5�g�&���fD��AWAVAUATUSH��(H�|$���H�H�D$H����1��D$A����� �����H���
��H��I���?��������L��H��H��	���`����H��H��E1������D$���	L���٪��H���Ѫ��L���ɪ��E��tYH�|$���ȸ��H��I��荽��H��H���"��������L��H��H�Щ��+���H���{���L���s����D$�D$H��([]A\A]A^A_��H���X�����u��D$H��H9l$A�Ņ���A!��M���fDE1��D$H���+���@H��H��������uH�T$��A��H9l$��A!����fDL���0������D$A��H9l$��A!�����fDE1��D$����D$�(���E1�H�
�r��1�H�5�e���E1�H�
lr��1�H�5ge�ٲ��f���ATUH��S�@��H��tKH��H������H��I������H��H��蚬��L��H��H�=fH��1��C���H��H��t:H��[]A\�H�����H��H���]���H��H�=�eH��1��	���H��H��u�����H��[]A\�@AUI��ATUH��SH���������H���*���H����H���xbH��H����H�C����t/H��L��蔰��A�ą���H�+t;H��D��[]A\A]�DL�(eH�
�p�@1�H�5d菱���H�CH��P0H��D��[]A\A]�H���ȹ�����N���H��A�[D��]A\A]�@H���0aH��H���H���H��E1�[D��]A\A]�H���H���H�+H��u
H�CH��P0H��tBL���h���H��t5H�HH��:"H��H�5tdH�81����H���̩��H��D��[]A\A]�A���������AWAVAUATUSH��H��H�5>dH��XdH�%(H�D$H1�H�T$ �D$H�D$(������.H�{����H��H���aH�t$ H���������tH�������t'��t"��tE1�H�
�n��1�H�5�b����H�D$ H�{L�p�N���H��I���s�����tL�l$(H�{L��L���{�������L��軳������1�L��L���e<H�ËD$����L������H�L$HdH3%(H����H��X[]A\A]A^A_��L���X������p���H�{�F�����~L��膽��H��I�����L��A��蠥��A���vA���-���H�58"H�5�k1�H�8蔭���Y����L��aH�
�m��1�H�5Ua�Ǯ���H�=xb1�����H��H��tzH�t$8H�T$@H�|$0���H�t$8H�F���t5H�����H�|$8H��H�/uH�D$H�G�P0H�t$H����H�t$8H�T$@H�|$0�0���H�+u
H�CH��P01����f�H��7"H�5�a1�H�8訬���m���H�|$(1�����Y����L�L$M��L��H��H�5���L���+8H�D$(�����H�q7"H�5~a1�H�8�H����
���H�{L�l$(����H�I�L�t$(����H�t$8�*����4���@��AVAUATI��H��H�5SaUSH��@dH�%(H�D$81�H�L$H�T$贷������I�|$���H��H���FH�t$H����������H��艾����t,��t'��t"E1�H�
 l�1�H�5[_�ͬ��DH�D$I�|$L�h����H��H���:�����tfH���.�������H�|$�H���HH�D$0躴��H��H����H�����1�H�L$8dH3%(H���H��@[]A\A]A^�H���8�����u�I�|$�)������H���i���H��H��螽����������H�%5"H�5�hH�81�脪��H���\����s����L��^H�
k��1�H�5=^诫���H��蠯����tH��蔯����
�����H�|$1�H���GH�D$0貳��H�������I�|$���H�T$0H�I�T�fDH�=_1�芡��H��H������H�t$(H�T$0H�|$ �j���H�t$(H�F���u`H�T$0H�|$ ���H�+�����H�CH��P0�z���L�t$0I�|$L��L���+�����twH���?���H��5"H��K����H��谿��H�|$(H��H�/uH�D$H�G�P0H�t$H����H�t$(�f���fDH�5r^H�4"�g���D1�1�H��L���@H��3"H�5Z^H�8�˨��H��裠�����fDH��萠���u���H������t?H�|$1�H���FH�D$0�#���H��t9H��1��T���H���L����c���H�t$(���H��3"H�5�fH�8�G�����I�|$�۾��H��Lc��`���H��~H�t$0K�|%H���i���H�������L��\H�
�h�11�H�5�[�K�������fD��AVH����AUI��ATUH�-4"SH��"H�C0H��H����H�CXH�ӓ"H���H�%�H�kH���H�3�"H���H�5��Hǃ�Hǃ�H����ӫ����t[]A\A]A^�fDH��H�5�dL��莹����u�L�%3�"H��"I�l$L��IDŽ$�IDŽ$�I��$�I��$�g�����u�L��H�5�cL���1������z���L�5ҁ"H�[��I��$�H����I�nL��I�D$0H�ɀ"Idž�Idž�I���M����������L��H�5BaL��趸���������H����I���H�)�I��L�5�h"H�4h"I�nL��Idž�Idž�I���M���t����������L��H�5�^L���:����������H�K�I��L�5�"H�f�"I�nL��Idž�Idž�I���M���������/���L��H�5�aL���̷��������L�5�i"H�F�"I�nL��Idž�Idž�I���I��覩��������L��H�5�]L���l����������L�5m�"H�&�"I�nL��Idž�Idž�I���M���F������o���L��H�5aL���������U���L�%-}"H��|"I�l$L��IDŽ$�IDŽ$�I��$�I��$������
���L��H�5�^L��觶������L�5�z"H��y"I�nL��Idž�Idž�I���M��聨���������L��H�5�YL���G����������L�5�w"H�!w"I�nL��Idž�Idž�I���M���!������J���L��H�5�]L��������0���L�5(u"H��r"I�nL��Idž�Idž�I���M����������L��H�5�XL��臵��������L�5�p"H�Ao"I�nL��Idž�Idž�I���M���a����������L��H�5�XL���'������p���L�5Hm"H�m"I�nL��Idž�Idž�I���I���������*���L��H�5y[L���Ǵ��������L�5k"H��j"I�nL��Idž�Idž�I���I��衦��������L��H�5[L���g����������L�5�h"H��g"I�nL��Idž�Idž�I���I���A������j���L��H�5�ZL���������P���L�5b"H��a"I�nL��Idž�Idž�I���M��������
���L��H�5�YL��觳������L�%�"H�A�"I�l$L��IDŽ$�IDŽ$�I��$�I��$�|����������L��H�5B]L���B����������L�%�"H�\�"I�l$L��IDŽ$�IDŽ$�I��$�I��$�������@���L��H�5�\L���ݲ�����&���L�%^�"H��"I�l$L��IDŽ$�IDŽ$�I��$�I��$貤��������L��H�5-\L���x����������L�%�}"H��|"I�l$L��IDŽ$�IDŽ$�I��$�I��$�M������v���L��H�59[L���������\����F���H�5�SL��H������H�5� H��I��H������I�,$uI�D$L��P01�����H�5(UH��H��I��������kI�,$uI�D$L��P0��ͣ��H�5�TH��H��I��託�����I�,$uI�D$L��P0�蔣��H�5�TH��H��I���o�������I�,$uI�D$L��P01�I��H��H��H��TH�5�,�G���H�+I��u
H�CH��P0L��H�5\TL���������H�5�RL��H�����H�5�H��I��H�����I�,$uI�D$L��P01��ݢ��H�5TH��H��I��踖������I�,$uI�D$L��P0�褢��H�5�SH��H��I����������I�,$uI�D$L��P0��k���H�5�SH��H��I���F������SI�,$uI�D$L��P01�I��H��H��H��SH�5z+����H�+I��u
H�CH��P0L��H�5ZSL��蹯����H�5�QL��H���˜��H�5lH��I��H��轕��I�,$uI�D$L��P01�贡��H�5�SH��H��I��菕������I�,$uI�D$L��P0��{���H�5�RH��H��I���V������1I�,$uI�D$L��P0��B���H�5�RH��H��I����������I�,$uI�D$L��P0��	���H�5nRH��H��I���������I�,$uI�D$L��P01�I��H��H��H�?RH�5*輙��H�+I��u
H�CH��P0L��H�5RL���W���蒫��H�53PL��H���`���H�5
H��I��H���[���I�,$uI�D$L��P01��R���H�5�)H��H��I���-�������I�,$uI�D$L��P0�����H�5�QH��H��I�������kI�,$uI�D$L��P0����H�5_QH��H��I��軓�����I�,$uI�D$L��P0�觟��H�5,QH��H��I��肓������I�,$uI�D$L��P01�I��H��H��H��PH�5�(�Z���H�+I��u
H�CH��P0L��H�5�PL������0���H�5�NL��H�����H�5�H��I��H�����I�,$uI�D$L��P0����H�5�PH��H��I���Ȓ������I�,$uI�D$L��P0�贞��H�5YPH��H��I��菒������I�,$uI�D$L��P0��{���H�5PH��H��I���V������PI�,$uI�D$L��P01�I��H��H��H��OH�5�'�.���H�+I��u
H�CH��P0L��H�5�OL���ɫ������H�5�ML��H���Ҕ��H�5|H��I��H���͑��I�,$uI�D$L��P0����H�5~OH��H��I��蜑�����}I�,$uI�D$L��P0�舝��H�5QOH��H��I���c������+I�,$uI�D$L��P01�I��H��H��H�#OH�5�&�;���H�+I��u
H�CH��P0L��H�5�NL���֪������H�5�LL��H���ߓ��H�5�H��I��H���ڐ��I�,$uI�D$L��P0��Μ��H�5�NH��H��I��詐�����XI�,$uI�D$L��P0�蕜��H�5�NH��H��I���p������I�,$uI�D$L��P0��\���H�5YNH��H��I���7�������I�,$uI�D$L��P0��#���H�5*NH��H��I��������bI�,$uI�D$L��P0����H�5�MH��H��I���ŏ�����I�,$uI�D$L��P0� 豛��H�5�MH��H��I��茏������I�,$uI�D$L��P01�I��H��H��H��MH�5�$�d���H�+I��u
H�CH��P0L��H�5rML������:���H�5�JL��H������H�5�H��I��H������I�,$uI�D$L��P01����H�50MH��H��I���Վ������
I�,$uI�D$L��P0����H�5�LH��H��I��蜎������
I�,$uI�D$L��P0�舚��H�5�LH��H��I���c������J
I�,$uI�D$L��P0��O���H�5�LH��H��I���*�������I�,$uI�D$L��P0�����H�5`LH��H��I��������I�,$uI�D$L��P0��ݙ��H�5&LH��H��I��踍�����TI�,$uI�D$L��P0�褙��H�5�KH��H��I���������I�,$uI�D$L��P0��k���H�5�KH��H��I���F�������I�,$uI�D$L��P0��2���H�5�KH��H��I���
������^I�,$uI�D$L��P0�	���H�5PKH��H��I���Ԍ�����I�,$uI�D$L��P0�
���H�5�H��H��I��蛌������
I�,$uI�D$L��P0�臘��H�5rH��H��I���b������h
I�,$uI�D$L��P0��N���H�5�JH��H��I���)������
I�,$uI�D$L��P0�
����H�5yJH��H��I��������	I�,$uI�D$L��P0��ܗ��H�5EJH��H��I��跋�����r	I�,$uI�D$L��P0�裗��H�5
IH��H��I���~������ 	I�,$uI�D$L��P0��j���H�5�IH��H��I���E�������I�,$uI�D$L��P0��1���H�5�IH��H��I���������|I�,$uI�D$L��P0����H�5zIH��H��I���ӊ�����*I�,$uI�D$L��P0�迖��H�5HIH��H��I��蚊������I�,$uI�D$L��P0�膖��H�5IH��H��I���a�������I�,$uI�D$L��P0��M���H�5�HH��H��I���(������4I�,$uI�D$L��P01�I��H��H��H��HH�5\����H�+I��u
H�CH��P0L��H�5�HL��蛣���֠��H�5wEL��H��褌��H�5NH��I��H��蟉��I�,$uI�D$L��P01�薕��H�5H��H��I���q������dI�,$uI�D$L��P0��]���H�5HH��H��I���8������I�,$uI�D$L��P0��$���H�5�GH��H��I���������I�,$uI�D$L��P0����H�5�GH��H��I���ƈ�����nI�,$uI�D$L��P0�貔��H�5pGH��H��I��荈�����I�,$uI�D$L��P0��y���H�5=GH��H��I���T�������I�,$uI�D$L��P0��@���H�5	GH��H��I���������xI�,$uI�D$L��P0�����H�5�FH��H��I��������&I�,$uI�D$L��P0��Γ��H�5@FH��H��I��詇������I�,$uI�D$L��P0�	蕓��H�5kFH��H��I���p�������I�,$uI�D$L��P0�
�\���H�5;FH��H��I���7������0I�,$uI�D$L��P0��#���H�5FH��H��I���������I�,$uI�D$L��P0����H�5�EH��H��I�������I�,$uI�D$L��P0�
豒��H�5�EH��H��I��茆�����:I�,$uI�D$L��P0��x���H�5�DH��H��I���S�������I�,$uI�D$L��P0��?���H�5;EH��H��I����������I�,$uI�D$L��P0�����H�5EH��H��I��������YI�,$uI�D$L��P0��͑��H�5�DH��H��I��訅�����I�,$uI�D$L��P0�蔑��H�5�CH��H��I���o�������I�,$uI�D$L��P0��[���H�5jDH��H��I���6�����u]I�,$uI�D$L��P0H��H��1�I��H�?DH�5n����H�+H��u
H�CH��P0[H��L��]H�5DA\A]A^饞��H�+u
H�CH��P0I�,$���I�D$[L��]A\H�@0A]A^��H�+u�H�CH��P0��H�+u�H�CH��P0�H�+u�H�CH��P0�H�+u�H�CH��P0�H�+u�H�CH��P0�H�+�{���H�CH��P0�l���H�+�b���H�CH��P0�S���H�+�I���H�CH��P0�:���H�+�0���H�CH��P0�!���H�+����H�CH��P0����H�+�����H�CH��P0���H�+���H�CH��P0����H�+����H�CH��P0���H�+�����H�CH��P0���H�+�����H�CH��P0���H�+�����H�CH��P0�r���H�+�h���H�CH��P0�Y���H�+�O���H�CH��P0�@���H�+�6���H�CH��P0�'���H�+����H�CH��P0����H�+����H�CH��P0���H�+���H�CH��P0����H�+����H�CH��P0����H�+�����H�CH��P0���H�+�����H�CH��P0���H�+�����H�CH��P0�x���H�+�n���H�CH��P0�_���H�+�U���H�CH��P0�F���H�+�<���H�CH��P0�-���H�+�#���H�CH��P0����H�+�
���H�CH��P0���H�+��H�CH��P0���H�+����H�CH��P0����H�+�����H�CH��P0���H�+�����H�CH��P0���H�+�����H�CH��P0�~���H�+�t���H�CH��P0�e���H�+�[���H�CH��P0�L���H�+�B���H�CH��P0�3���H�+�)���H�CH��P0����H�+����H�CH��P0����H�+�����H�CH��P0���H�+����H�CH��P0����H�+����H�CH��P0���H�+�����H�CH��P0���H�+�����H�CH��P0���H�+�z���H�CH��P0�k���H�+�a���H�CH��P0�R���H�+�H���H�CH��P0�9���H�+�/���H�CH��P0� ���H�+����H�CH��P0����H�+�����H�CH��P0���H�+���H�CH��P0����H�+����H�CH��P0���H�+�����H�CH��P0���H�+�����H�CH��P0���H�+�����H�CH��P0�q���H�+�g���H�CH��P0�X���H�+�N���H�CH��P0�?���H�+�5���H�CH��P0�&���H�+����H�CH��P0�
���H�+����H�CH��P0��H�+���H�CH��P0����H�+����H�CH��P0����H�+�����H�CH��P0���H�+�����H�CH��P0���DUH��1�H�=�FS1�H��览��H��H��謏��H��H������H��H��[]��H�Ɂ"AVAUATUS�B��tFH���I��I��L�l�f�H�+L��H�u�ы����uH�uL�������tH��L9�u�1�[H��]A\A]A^�fDATI��UH��S���H��H��t	H��[]A\ÐH���(���H��tKH�(u
H�PH��R0L��H���H���H��u2H�"L��H��H�5�EH�81��ՙ��H��[]A\�D裊����H���f�f.�USH��H������H��H�����H��H��[H��]�F���fD��AUI��ATA��UH��H��SH��H�����H��t!H�@H��L��D��H��H��[]A\A]��DH�����H�5yEH��H��"H�81�����H��1�[]A\A]����ATI��U��SH���;���H��tL���H��H�@[]A\��@[1�]A\�f���UH��SH��H�����H��t)H�@ H��tH��H��H��[]���H��"H�H��[]�fD��AVI���(AUI��ATI��UH��SL��諚��H�=d"L�0H��L�hL�`H�hH�X []A\A]A^�����H��(H��H�
�r"H��dH�%(H�D$1�L�L$L�D$H�D$H�D$H��C�3�����t_H�t$H�|$H��t0�{���H��tFH�"H�H�L$dH3%(u/H��(�fD���H��tH�(u�H�PH��R0�@1���W������H�=t~"tÐH��觉��H�`~"H���f.����1��f�ATH�5�6US�`}��H����H�xH�-<X"H��H9�tH��謖����t8H�kH���}��H�+tH��[]A\�fDH�CH��P0H��[]A\�fDH�{L�%�A"L9�t�L���X�����u�H�CH�U1�H�5CI�L$L�@H��"H�81��i�����1��f�f.���AVAUATUH��S����H��t_H�}H��L�u����H��I���||��H��I���A|��M��M��H��L��H��H�={
1��tx��H��H���x��[H��]A\A]A^�D1�[H��]A\A]A^�f.���ATUSH��H�� dH�%(H�D$1�����I��H��tH�T$H�t$H������H���Z���H��H��tbH�������un�S ��uH���x��M��tH�T$H�t$H�<$�_z��H�CH���@H�D$dH3%(uPH�� []A\�f��C ��t�H�{�0z���fDH�sH���,����f.�H�{�z���s����~��f.���AUI��ATA��UH��SH����0H��t?H�5�o"H��H���M�����t91�H���0H��tL�hH�hD�` H��[]A\A]�f�H�5Yo"H���@H�q
"H�5�@H�8�
��1���fD��AUI��ATA��UH��SH��H�5o"�͓����t91�H��0H��H��tH����j��L�kH�CD�c H��H��[]A\A]�@H��	"H�5r@1�H�8�~����fD��AT1�H�
�z"UH��H��H��SH� �������H���Z���H��H����H���f|��H��tAH������I��H����H��H���
���H��H����H����u��H��[]A\ÐH���xy��H��H���=y��H��H�5�?1�H��H�	"H�81�����H�"H�8�9�����tH��"H�5�?H�81�轒��1�[H��]A\��z��1��s���@L����w���b�����UH��SH��H�|m"H��	"H�CH��H�g$"Hǃ�H��H�����H��8H����H��(H�r���H�C0H����H�CX�n�����t
H��[]�H��H��H��[H�5p>]�(������ATUSH���0~��H�{`H�5?A���x��H��txH��1�H�����H�+H��t"H��t,H�mt6[D��]A\�jv��f.�H�CH��P0H��u��L~��[D��]A\�@v��H�EH��P0[D��]A\�*v��f.��+���[D��]A\�v��Df.���AUI��ATUH��SH��H���d}��A��M��t|1�H���}���H��I���}��I��H�}`L��H��$1�H�5&>����H��H��tKH��裈��H�+��tD���u��H����[]A\A]�fDH�CH��P0��@L��"M���@�K}��1�����ATUSH���|��H�{`1�H�5�=A��1�艆��H��tDH��H������H�+��tD���t����[]A\�f�H�CH��P0D����t����[]A\����|��1�D���t����[]A\�f.���AUI��ATUSH��H���|��H�{`1�H�5=A��1���H��t{H��H��耇���Ņ�t<H�C�����H���q���H��t[H��"H�5E=H�8�5z���0|��1�H�+tD��� t��H����[]A\A]�H�CH��P0��@�{��1����H�{���H�{ ��較��A�E���u��n���H��u���H�"H�5�<H�8�y���p���D��ATH��UH��SH�� dH�%(H�D$1�虎�����`1��H��I����|��H�L$H�T$H��H��H�5�;1�� �����H��H��H���H�\$H�5	"H�{H9�t���H�\$�����܃��H9C��H�|$�؈������IcԾH���@|��H����H�t$H��H�=�1��!���H��trH�T$H�
����H�5ي��H�zH���݄��H�"H�H�L$dH3%(��H�� []A\�DH�CH��P0�)����H��"H�5�;H�8�:x��1��fDH��H�u�H�CH��P01��f�H�a"H�5R;H�8�w��1��q���H�A"H�5�:H�8��w��1��Q�����v��@f.���S�hH�=i"�v��H�5e:H�=A�H���T(H��1�1�H����+H�C`[�f.�DU�SH������H��H���E����P���vH���%o��H����[]�@H���������f�f.�����	��L��<��Ic�L�>��H�H���@�H���DH�H����H���@H�H����H���@HcH���@H�����w��H�5&:H��H��"H�81�蚋��1�H�����SH��H���{����t#��w.H�5<��Hc�H�>��[�fDH�������fD���v��H��=1�[H���1��(������UH��SH��H��H���8{����tK��wH�5�;��Hc�H�>�����Av��H�b=�1�H��1��Ƀ��H�H��[]��H�������fD�H��[]��H�H��[]�D�H��[]�fDH�H��[]�D�H��[]�fDHcH��[]�@f.���AVI��AUATI��H��UD��SH�����H��dH�%(H��$�1�L�l$H�l$`H�\$L��蠋��H��L����|��K�dH��I�<�腹H��H�$�y��H�T$H����j�����t.H�D$H��$�dH3%(uH�İ[]A\A]A^�fDH�����ns��@f.���AWI��AVI��AUI��ATM��UH��L��SL��H��(�ty����t/H��7H�5�;1���u��1�H��([]A\A]A^A_�f�H�}t�H���!y������������t;��tvH���x��H��;�1���1��ǁ��H��(1�[]A\A]A^A_�fDH�]�1�1��K�o��H�H��S�PA�$H��([]A\A]A^A_��H�EA�$H��([]A\A]A^A_�DH���X���1�H�߉D$躆��H��H�D$�ݽ��H�T$H�D$H����j���D$��t[H�}��|�����T$�|$1��L$��t��H�8H�D$�m��H�UH�D$�L$H��HA�$H��([]A\A]A^A_�fDH���0v������t�M��tZH���zm����x&Hc�L��L��A��H���W������r���f.�L�:H�
�9�1�H�5:�s���H�MH�
61�1���/����T$1�1��t��A�$���D��AWAVAUI��ATI��H��U��SH��xdH�%(H�D$h1��w����L��A��D���N�H��H��t&H�L$hdH3%(H����H��x[]A\A]A^A_�A���YH��7Jc�H�>��DI�<$H�|$(H��t����H�|$(������H���!H��I�<$t�謀��H��H���1�L��覄��H�D$H����H�|$�>v������L��5H�
(8��1�H�5�8�r��DM�$$L���Dj�����h��I��H�������1�L���7���I��H�������D�M��t<1�L�l$(I�$��L��L��H�D$(�n���H����I�WH��M�d$H��M��u�L��L���h������L�����H��I�����A�ƃ���H�
�6��Hc�H�>��fDI�<$tX1�L������I��H���sH���u��M�<$���øL��D��Rp����H�$H��vVH��3�1�1��}��1��zg��H������f�L���Xr������������I�<$��t��H������A�����.g��H��H����A�OE1�E1�L�l$(����H�$L�ιL��H�D$(I7L�L$�&v����L��L�����L�L$H����H�SL$J��A�GI��L9�w��DL��2H�
�5��1�H�5l6�v���*���f���L���F�H��L���Kf������fDL����s��H���DA�4$H��A�������H���L��E1��s��H��A����H��T�nH���dH����I��H��H��E1�A��AWL��L��L���L�H��XZM���[���I�.�Q���I�FL���P0�B���D��s��H�D$(�g����H�|$0H�T$@H�t$8�<��H�|$0H��t
H�/uH�G�P0H�|$@H��t
H�/uH�G�P0H�\$8���@L�R5H�
�4��1�H�55�n���H��I�?�]i��H��L����d���w���E1�H�
c4��1�H�5�4�Pn��1��S���L��茀��I��H����H���(r�����!L��1H�
4��1�H�5�4�m���I�/u
I�GL���P0H��H�=�41��'d��H��H��tIH�t$8H�T$@H�|$0�~��H�t$8H�F�����H�T$@H�|$0�f��H�+u
H�CH��P0E1����fDH�+u
H�CH��P0L��H�=41��c��H��H��tIH�t$8H�T$@H�|$0�}��H�t$8H�F�����H�T$@H�|$0�f��H�+u
H�CH��P01�������I�4$L�d$8D�H�D$@H��H�D$����H�D$0H�$H�4$H�|$L���Op������H�t$H�<$���g���I��H����L��L������L��L���C���I��H����H��L��H���}��I�/uI�W�D$L���R0�D$I�.uI�V�D$L���R0�D$���a���H�+��H�CH��1�P0H�|$�b���6���f�L����I�����L��2H�
�1�}1�H�5T2��k���*��H�����L��2H�
�1��1�H�5&2�k��L�{2H�
�1��1�H�52�k��L��E1���s����A����L���RH��H���`�����,r��Ic<$I���n��1�L��H����t������A�$1�H�5��H���Vg��I�.H��u
I�FL���P0H�m�%���H�EH��P0����I�/����I�GL���P0���H������H�|$8H��H�/uH�$H�G�P0H�4$H����H�t$8��A�O1�H��-1���Ow��L���`���|���H���z��H�|$8H��H�/uH�$H�G�P0H�4$H��tEH�t$8����1�����I�.u
I�FL���P0H�m�&���H�EH��P0����H�t$8�^���H�t$8�����g��E1�H�
�/�1�H�5\0��i��E1�H�
�/�e1�H�5?0�i��f.���AWAVAUA��ATI��UH��H��S��H��XdH�%(H�D$H1��{m��A�ƃ�
��w@H��.Hc�H�>���H�uH��tH�>H��t	����H�u��4}��@H�D$HdH3%(�(H��X[]A\A]A^A_�DL���Pw��H��I���z���������H��du~��SH�}�L$t�L����l��I���`��L��H���t���L$����H�mE��u��uA��u
��uH���@b��D��	�t
A��u��tH���b|��f�L����^���#���H�mH������E��u	���UA������u����A	�t�����������@H����t������L�}M�������E��u	����A��uJ��uE1�L���z���D$H��H����M���T$L��D��H�����M�d$M��u�H���
^��D��	�tA���L������D���L��A���?�bb���-���DH�}H��tD��	�tA�������������0`�����L�}M�����E��u	����A��u\��uW1�L���Hy���D$I��A�G1�t0L��M�'�(f���T$D��L����H��H��L�����A�GH9�w�L���+]��D��	�tA���j������b����L���uk���P�������H�}H���8���A��A�������������^������1�L���x���D$I���9���fD1�L���fx���D$H��H���N���L��,H�
�+��1�H�5f,��e���1�L���&x��I��H�����L���
x��I��H����H�D$ H��L�l$H��H�D$L�d$�x��H�|$L��L���i����t61�1�L��L�����1�1�L��L�������fDH���`\���C���L���[��L���[���������#�����s�����fDL��+H�
�*��1�H�5|+�d����L$�h��L��H���p���L$��t=A	��k���H�}�c���]���DL��+H�
�*��1�H�5+�d����tn�HL���ep���������DL���Pp����u
I������L����e�����������L�(H�
*�q1�H�5�*��j������L���|l����t�A��������������H�uL���	������a��E1�H�
�)��1�H�5W*��c��f���AWAVAUA��ATI��USH��H��H��xdH�%(H�D$h1�L�t$(H�D$0H�D$(�g��L�D$0D��L����H�߉��Om��t+H�L$hdH3%(H�D$(��H��x[]A\A]A^A_�A���xk��H��uȍE��oH��(Hc�H�>��fDH;1�!��H���ks��H��H��x�H���+^��I��H���t���H���wu��H��H���C1�L���u��H�$H�����L���t��H�D$H����H�<$�f����
���Y1�1��Kd��H�D$8H����A���DD�H�D$HE1�H�D$H����H�CH�4$D��J��H�D$I�FJ�<��Y���H�D$@�_j��H��u6H�t$H�|$D���8���H�D$H�>j��H���H�|$@1�1�L���4���H�|$81�1�L���#���L��H�=�(1�H�D$8�	X��H��H��tJH�t$XH�T$`H�|$P��q��H�t$XH�F����;H�T$`H�|$P�hZ��H�mu
H�EH��P0H�D$8H�D$(H�<$��W��H�|$��W��I�.u
I�FL���P0H�+����H�CH��P0����H�I�!H�5*%H�8�_�����DH;!�!��H����W����tH�C����tH���!H�5�'H�8�`_���P���L���o��H��H���5r�����2H�5A&��Hc�H�>��f�H�D$HH;��!��H����d��I��H�����1�L���r��I��H���NA���DD�I��I�����L��H����a��H��t9D��L��H��H�$�3���H�$H�D$H�)u
H�AH��P0�%h��H���!H�|$H1�1�L������L��H�=�&1�H�D$H�V��H��H��tIH�t$XH�T$`H�|$P��o��H�t$XH�F����H�T$`H�|$P�`X��H�+u
H�CH��P0H�D$HL��H�D$(��U������f�D��L��H��肝H���U�����DH���x]��H��H��t�H���g���D$(H�+u�H�CH��P0�f����H���b��H��H�D$��L��H�$�V`��H��1�L��PH��AWjAUL�T$ L�D$(M���b�L�T$ H�� I�H��I�H���T���I�BL��P0�E����H�D$(���H���b��H��H�����L���&t��1�L��A���p��H��I���.b���D�����E�1��BY��L��H�D$@H���^�a�����_A���DD�H�D$HE1�H�$H����L��H���_��H��t;D��L��H��H�D$����H�L$H�D$HH�)u
H�AH��P0��e��H���mH�|$@1�1�L�����L��H�=v$1�H�D$@�S��H��H��tJH�t$XH�T$`H�|$P�m��H�t$XH�F����8H�T$`H�|$P�
V��H�mu
H�EH��P0H�D$@L��H�D$(�wS�����L��#H�
#�1�H�5V#��\��H��E1��&e����A������H�|$HH�t$��tu��_��H�D$HI��I����o����/����I�.����I�FL���P0����H���wq��H�|$XH��H�/uH�$H�G�P0H�4$H����H�t$X����Z��H�D$H�H�5��!H�=��!���L��"H�
*"�k1�H�5|"�[��L��"H�
	"�h1�H�5["��[��H�t$H�|$I���s�H�t$@H�|$8H���g��L9��^����<����R���iW���)���H�C��������H���km��H�T$@H��H�:H���b��H�D$@�h�R����Y��H�t$X����H���Tp��H�|$XI��H�/uH�G�P0M����L�d$XL�����H�$H�|$@D���I����W��L9��%������H���o��H�|$XH��H�/uH�G�P0H��t>H�\$XH������V���[���E1�H�
� ��1�H�5 !�Z��H�t$X�
���H�t$X�^���E1�H�
� ��1�H�5� �jZ��E1�H�
� ��1�H�5� �MZ��f.���ATI��H�=�J"USH����j��L��H��H��H�]�!���H�mH��u
H�EH��P0H��t>L��H���o��H�+t
H��[]A\�@H�SH�D$H��R0H�D$H��[]A\�H��1�[]A\�f.���AUATUH��SH���jp���`��I�ŋ����1����A���L�eM��~`1�fDH�|�H��t
H�/uH�G�P0H��I9�u�I��	2H�;T"B����c"H�
kT"��J�4�B��J�,�H�u�fDH�EH��@A�����I���A���t��~,H��[]A\A]�f�H��H��[]A\A]�d��fDH��[]A\A]�Ym��f���AUATI��H�=I"USH���i��L��H��H��H���!���H�+H��u
H�CH��P0H����I�|$��T��I��H����H���h��H��H����H��L���f��I��I�,$tBH�mtMH��tH�+tH��L��[]A\A]��H�CH��P0H��L��[]A\A]�I�D$L��P0H�mu�H�EH��P0�f�H�mu
H�EH��P0H��E1�[L��]A\A]�fDE1��g�����H���i��H��tH�5��!H��H��1�H�=]�Rk��f�1�H���f���AVI��AUATI��H�=�G"US�g��L�-S�!L��H��H��A���H�mH��u
H�EH��P0H����H�C��� tAL��H���Z��H��tYH���9Z��I�l�H�EH�+u
H�CH��P0[H��]A\A]A^�L��H�
B�G1�H�5��oV���L��L��A���H���fD1��f�f.���AWAVAUATUSH��8H�G���u!L�mH�
���1�H�5;�V��I���8d��1�I��H�D$ ��\��H�5+L��H��H���M��H�+�J1��cL��I���c��H�=&H�D$�Jf��H�=H�D$(�9f��L��H�D$��b��H�D$H����1���H��H�=)�1��oi��H�|$I��H���_k��I�.I��u
I�FL���P0L��L���AZ��I�/u
I�GL���P0H���	X��H�|$H��I��H���Ff��I�/u
I�GL���P0H��H9\$t-I�EH�,�H;-�!�f���H�t$(L��H����Y��H9\$u�H�L$(H�H�D$H��H��H�T$H�H�D$H��H���H�=i��e��L��H��H�5�H��H��1��p^��H�+H����I�,$�xH�=���d��H��I��H���>j��I�,$H���0H�m�H�|$ H��H�5�D"�1K��H�+��H�\$H�|$ H�5�D"H���K��H�H�D$H��H���H�L$ H�
E"H�501�H�=D��g��1�H��H���!H��H���8H�+H��tWH�D$ H�H��H�Q�H�L$H�H��t+H��tH�������H��8H��[]A\A]A^A_�f�H�@�P0���H�CH��P0�@H�CH��P0�H����H�CH��P0�
����H�EH��P0�����I�D$L��P0H�m�������I�D$L��P0�x���H�CH��P0I�,$�c�����f�H�BH��P0�����H�AH��P0�����H�CH��P0������H��H��H�5�dH�%(H�D$1�H����\����t2H�<$H�G���t)���H�L$dH3%(u.H����1���@H���!H�5�H�8�P��1����O��f���H�F�H��v
��0@H�M"SH��H��tOH�SH��H��L"H�ڃ,�H��DH�BH��H9�u�H�{H�H��H���N��H��[�H��0[��@f.���UH��SH��H��B"H�}�!H��H��H���H�CXH���H���H��A"H���H�]���Hǃ�H�C0�	T����u5H�H��H�5�H����a����uH��[]�@H�+u
H�CH��P0�������f���AT1�1�I��UH��H�=�SH���R��H��H���#Y��H��H���hI��H��tCL��H���xJ��H�+tH��[]A\�f�H�SH�D$H��R0H�D$H��[]A\�H��1�[]A\�D��USH��H���.J��H��H����I��H��H��[H��]�B���f���USH��H���P��H��H���cM��H��t&H��H�����H��H���(F��H��H��[]�fD1�H��H��[]�f�f.���UH��SH����5��H��tIH�5��H��H���wI��H;x�!t>H�+tH��[]ÐH�SH�D$H��R0H�D$H��[]�DH��1�[]��H���(����fD��H�G��@f���USH��H���W H�o��t'H��t"�G(��t<H�0H���b���C(H�C0H���!H�CH�H��[]���K9��H��H����D����@f.���Hc �CS����H��H��1�H��H�
�I"H����m[����t	1�H���f���R��H��!�H�5XH�8�I��1�H���f���UH��SH��H���{_����r>��vq��u4H����]��H��tH��tH�EH���N^��H��H��tVH��H��[]�@H��1��._��H�5?��H���!H�81��Ta��H��H��[]�f.�H���8J���fD�+I��H��H��[]ÐH���xG��H��1�H���;G��H��H�5H��H��!H�81���`���b������AVAUATUSH����I��H�5�@"I��A��H���s`������1�H��0H��H��t$H���7��D�k H�CL�sM��tL�c0�C(H��[]A\A]A^��H�C0H���C([]A\A]A^�DH���!H�H��[]A\A]A^�f�H�A�!H�5K1�H�8��J���fD��AUATI��USH��H�58"dH�%(H�D$1�H�$�;���H��tnH��H��H��1����I��H��t+H�$�H��L�����H��H��trH�$�C(H�C0H���+B��H�T$dH3%(H��uVH��[]A\A]�DH���!1�H�8�L����t�H�d�!H�5H�81��+_���f�H�<$L���D_����H��f.���USH��H��H�oH��tH�H���J��H��H������H�k�C H��[]Ð��UH��SH��H�l>"H���!H�CH��H�W�!Hǃ�H��H�~���H��8H�@���H��(H�����H�C0H��="H���H�i="H����M����t	H��[]�f�H��H��H��[H�5\(]�H[�����Ðf.�H��t�z(w�B(H�
7Hc�H�>����H�H�Ð�H��f.�HcH��f��H��f���������UH��SH��H��H����([����tS��u>�H�EH��[]ÐH�H����H��f�H�H���H�H�E��HcH�E��H��t�z(w%�B(H�
�Hc�H�>�������H�H��f��f��f����f.���������ATI��UH��SH���H���'Z����t��t��t H�EI�$[]A\��EA�$����SH�E��u�H��t�H�{0�ϑ��H�u[L��]H��A\�\O��f�f.���H��t'SH��H���H��t�>��H�޿�[�\��@�Df.���I��H�JxH���1�H���tH��HO H�1E1�H���tH��HG L�H���I�9�����
f�ATUH��SH���G��H�}A��H��tH�EH�/t?H�;H��t
H�H�/t[D��]A\�?��fDH�G�P0[D��]A\��?��DH�G�P0�Df.���SH��H�wH�?�|Y��H�;H��t�=��H�{HH��t�BH�s@H�{�D���H�޿P[��Z��fDAVI��AUI��ATUH��SH��H�R dH�%(H�D$1�H�$�r(����I�F(�P��tI1�I���f��PH��H9�s4H�H��B t�H��L��H��H��HEH�x����I�F(�PH9�r�A�FH��tI�EH��H��HEH�8H��t苀H�D$dH3%(u#H��[]A\A]A^�fDH��H������T����C����AWAVAUI��ATUH�͹SH��H�t$H�\$@H��dH�%(H��$�1��H��P����u)H��$�dH3%(�1H�Ĩ[]A\A]A^A_��E��L�eH�D$$M����H�E@H��$�I�D$(E�L$H�xH�|$PH�|$HE��t	H�GH�D$P�K��H�D$@H���6H�D$`H��H�D$x�W����L�}HE1�I�W(�z���H�D$8E1�H�l$H�D$(H�\$�l�p��uUH�L$`M��H��L�D$(I��L��H�|$H�D$8L�P@H�T$`H�L$8J�L*H���
H�T$@J�D�I��I�W(�BI��L9��tH�J��@ t�M;gPu�H��$�H��u
H�U�!H��H�C�����H��!H�5HH�l$H�\$H�8�B��H�UHH�L$H�s H�{�����L��H��t�qD���E8��t1��tO��tJH�}��=��H��1�H��1��nP���@H�u@H�}���H�=,?"H���F��H�?"H���]H�|$@H��t
H�/���|$$��;�����H��E1��W��H�t$HH�|$H��H�H���?��H�������L��H���C��K�|5I��H�H�t$@H�D�L9�u�I�W(I��I�BL9������H�l$H�\$L��H���K?���������H�}H�t$@��K��I��H�������H�uHH���,CL�mHI�E �H(����E1�I�E(E1��P���UH�l$H���kK�L�H�D$`M��L��L��I��H��H��L�LN�L�\$H��S8L�\$���xH�t$`H��I��L�H�~���I�E(�PI��L9���H�J��C t�{(��I�D$����l���M���L���`���I�T$L���tI�L$H�T$`L�s(L��H��M��L�JH��P8���I�U H�|$L��A��D������H�G�P0�|$$�9������H�D$`I�T$(H�D$XH�D$�B����E1�H�l$D��I��H���I��I�\�H��I��L|$�B tH�I�H��t>I�_�z(����H�
�
��Hc�H�>��H����_R����t��uD�A�I�T$(���B9�r�H�l$L��E�D$HE�������I�T�H�L$H��H�H����H�I����A��fA����A��A��L��I��H��HD$`H�@H�I�E(�PL9��(���H��H�l$I�,$�4���I�D$L��P0�$����/?��H�
�1�H��1��L��I������;�����H�}�x>I��H�EHH���c�������H��L��L��H�l$H���
DH�uHH���!?H�UHH�L$H�s H�{����W���L��H����C��H�\$L��L��H�l$H���C�V����=�����E��t	���t�DH��������AVA��H�5�AUI��H�=�:"ATI��UH��S�6���PH��:"�pO��L��H����9��L�cH�H�k@I�$H��tH�EH����H�sH��L����J��D�s8H�CH��[]A\A]A^��AWAVAUI��ATI��UH��SH��H��H�BxL�$L�L$H���H�V(��E1�H�L�<�I�whH;w�L;-_�!���L���L������H������L��L�����H�<$H��H�@H�M��t
I�.��M��tI�G`H��HE H�H���H��~2I�T$(��H�H��H��tM����H�C`H�����H��HE H�H�D$H��H����[]A\A]A^A_���$I�EH�5
H�PH�O�!H�81��Q���$��E1�E1����DH�?�=��I��H��tPH�a9"L90t4I�|$X��I�����I�FH�$L���P0H�$����E1�����1��A���f�L��H�$�4H�=�H��I��1��`B��L��I���5��H���!�L��H�8�7��H�$��uNL��H�$�j5��H�C`H��H�$H��HE H����L��1�H�=��1��EP��I�����DL��� 5��H�$H�����1����f.���AWM��AVM��AUI����ATA��UH��SH���T$�aL��H��H�����T$E��L��H�lj�H���N)����E1�M��tM�n`H�c�H��H�CX�wD��H��H�J�(H���HE�H�Cx�-7��H�H���H�����I�H�{xL�����M��x!�*�@D�` I�V(���H�H��H���4��L������5��L���A��tH�e���H�C8H�����H�CHA��tH���H�C@H��H��[]A\A]A^A_�H��1��$��@H�{xx��*�@D�` �@I�V(�KxH�H��L����3������UH��SH��H��H�8H��tH�K H��H��[]�57DH�{H�sH�T$��6H�T$H��H��H�C8u�H��1�[]�@��SH��H��0��H�{8H��t�5H�CH��[H��@����AWAVAUATUSH��H��tYH��."M��H��A��I��I��1�H���0H��H��tL�xH��L�p D�h(L�`0�x4��H�CH��H��[]A\A]A^A_�f�H���!H�����UH��SH��H�|."H�-�!H�CH��H�'���H�C0H�����Hǃ�H����5<����tH��[]�f.�H��H��H��[H�5n]��I�����USH������H�
f��H��Hc�H�>����+A��H��H��� A��H9�������u0H�<�!H�H��[]�@��H��H����@��H9�������t�H���!H�H��[]��@��H��H���@��H9������D�@��H��H���@��H9������{���f��@��H��H���@��H9������[���f��k@��H��H���`@��H9������;���E1�H�
��$1�H�5D�7��DAVAUI��ATUSH����7��H��H���25��H����H��H���I��H��t&�I����tl1�H����-��H��[]A\A]A^�fD�+7��Lc�M��~�E1�D��H���E>��H��H���Z1��L��H���O<����t�H��I���-��M9�u���H���=��Lc�M��~�E1�DD��H���=:��H��H���1��L��H���;�����U���H��I���3-��M9�u��=���f�1�H��[]A\A]A^�f���UH��H��SH���
��H��H�5EH��H��H��1��m@��H��t0H�+t
H��[]�H�SH�D$H��R0H�D$H��[]�D��6��H�+u
H�CH��P0H�4�!H�H��[]Ð��AVf�AUATUSH��H��0dH�%(H�D$(1�)D$H�D$ �F��I��H�~ �-�������F���LH��H�l$I���SF��H��H�p�GK��H�sI�|$H���&,��H�|$�9��L��I���.��L��H���&|I��H��t>H���/��H�L$(dH3%(L����H��0[]A\A]A^�f�L��H�����I����H�sH�{ �S���I��H����H���D$H�D$�.��H��I��H���PxL��H�D$��8������H�{�HL�d$�@��1҅���L��L���R���I�ċD$����L���*��L����*��M������f.�H�ھH���@�I������H��E1��e-��H�5H��H��!H�81���G������DH��L�d$�=���H�D$�W���@L�d$1�L�L$M��1�1�L���5���1�H�D$�,���f�H�|$1��8���,����j1��f.���UH��SH��H��H�GH�8�0��H��tH��H��H��[]�n���fDH�CH�H�8�	1��H��H�5�H��H�=�!H�81��G��H��1�[]�f���AWI��f�AVAUATI��USH��H��HH�vH�{ dH�%(H�D$81�)D$ H�D$0�6���H���bH��H��C�M�,��H��I���@��L��L�������I����:��H����LH��L�d$ �MC��L��H�p�AH��L���y6������H����Hc�H�>��DH�|$ H��@L��L����-��DH�sI�L��1���H��L����+��H���(��M��tL���(��H�L$8dH3%(����H��H[]A\A]A^A_�@D��L���%;���A��L���t7���f�A��L���,���w����H�|$  �,� L���<�����D��L���1���?����H�|$ $��$L���w<������D��L���*�������H�|$  ��� L���?<������L��L����8�������H�|$ $���$L���<�����L��L���t=������D�t$�D$L���;���x���L�t$�D$L���m3���`����L��L���e.���H���L��L���e.���8���M����A�F��x�?��A�V����1��I�>�у�H�<�H�<�A�N9�w�H��H�L��H����9���L���4������L���H>��H��H�D$�4��H�|$H�D$�lA��H�|$�D$�N&���D$�����H�{�Hc�H�>��DL���3������.��H�5�H��H���!�����H�81��IC���V���@L��L���*���(���L��L���/�������HL���c:������L��L��� D����L��L���]B������D��L���E������D��L���%6�����H�|$�H�:���������H�|$�T�:����tL��L����:���~���fDH�|$�V,��H�5��H�������������h���fD�$��������h���H���E����$,��@��AWAVAUATI��USH��H�t$8�T$$H�$dH�%(H��$�1��C.���D$HI�D$@H��H�D$��;���Å����C�\$$�D$ H�H9�tJH��L�
��1��_jiL���H�
�H�5�H�\$ �l$ H�� �|$�D$P�<$��#��H��0H���4��I�ŋD$$�����X�H�D$`E1�H�D$(H�D$H�D$XH��$�M��H�D$H�D$TH�D$0�fDD9t$ �I�FL9�tLI��D��M��u�I�$� ��I�D$0H���|H�I�T$01�L���6��I�FL9�u��I�t$(H��tL����1��I�mH���I��I�|$ L����5��H��H����H�|$8�z%�����-H�+u
H�CH��P0H�\$(H��t�H�;H�?~�B�H�[H��u�H�|$(�_'��I�m�4�|$H��$����fDL�|$H�|$��H�D$X�D$TL���A��H��L����2��H�$K�vH��H�<��{oH��H�D$X��/��������tpH�|$1�H��葸���L$TI�Dž��M���%L��L��L���k5���a���fDH�<$1���sH���#���H��1�L���?5���5���f.�H���9��H��I����<���@���v��tL����!���a����L���T$L�T/���T$LH�D$@�����
#��H�|$@H����6����u�H�|$@�H��6��L����t��q!��H�|$�H��蟷��I��H���+H�5\"H���)�������D$T�������H�|$X1��/�������H��H�5�1��+��H��$�dH3%(��H��[]A\A]A^A_�f.�H�$L�L$0I��H�L$H�5ȳ��H�|$H�P芴��H�D$X�@���I�EL��P0�|$H�"���H��L�
�1��[jiL��H�
6�jH�5�j�D$@�D$@H���<$� ��H��0���I�EL��I��P0����@�T$T��tH�|$X1��.���/*���!���L����1�����,����S���H�|$8H���(��������H�Q�!H�5*�H�8��'��I�D$8H��t_H�$�t$$H�|$8�����I�D$8H��t�H�$�t$$H�|$8�����A�G H�|$(L���),��H�D$(�3���H�D$(���|)���5����&��f���USH��H����(��H�{ ��H��tH�/t}H�{(H��tH�/t^H�{0H��tH�/t?���(!��H�C H�{@H�C(H�C0����H�C@H��[]��H�G�P0��H�G�P0��H�G�P0�w���@��AVAUATUSH��t_H��I��H��M��M���K(��H��H���%��H��H��tMH���p9����tSH���c9������H��1��@��H��[]A\A]A^�@H���H�5�1��+(��1�H��[]A\A]A^�DL��H���}%��I��H������M��t�1��H�(��1�H�����H��H���M=��H�5��H���^=��L�s@H�EL;%V�!H�k tM��tI�D$I�$���tHL�c(M���C���I�E�L�k0
 �H��[]A\A]A^�DL��H���e6��I���S���D��-��L��1�H��H���n0��I���f���SH�GH��H�<�H��H��	FH�/""H��H��t6H��1�H��H���1'��H��H�CH�K H��H��H�K[�@��6��H��H��u�H�{�t���!��1�[�@f.���H�GH�w H��	H��!"H�<�tH�<�H����9��H�4�Ðf.���AWAVAUATUH��SH��H��xH�L$H�T$dH�%(H�D$h1�H�G(H�D$H�@H�F�OH��tH��H�FH�{P��	H���H�|$H�D$H�D$H�@H�$H���y���H�D$ H����H�EXH�4$H9t$������H����	H�|$ ��H�D$`L�}@L�t$XH�D$`L�l$PH�D$(�FfDH�|$P�v��I��H���*
H���6��1�1�L��H���C9�����
I�,$�P
H�t$(H�|$L��L���k3����u�L�t$L���Z+��L�m8�D$4����I��M��A��M����E1�A �D�|$3�RH�\$8�H�}@L���d!��H�uXE1҉�H��xH�E1�H9�A��H�|$ A��M����A �D�L$2���|$31�L94$��H�t$J�t�H��A���E@���<E����H�K�t�I��M�mL9t$��M����M�}M���P���H�uXH����������H���S���E1ҋ\$4�|$31�L94$�t���E�������.
H�E(Hc�H�H��D�xE���
H�t"H�H�H�K�D�I��M�mL9t$�d���f.�H�\$8L�#M����L���6��H��H�C�;������yH�C8D�]HE��t,H�CH�K H�s8H�P�H��H��H�tHC H�KH��H��H���H9C�EH�E(D�PE����H�L$`E1�H�L$��f�A�|$�dI�D$hH;C��H�L�|�M�vE�L$E���sH�KH�$HC H��H�H�X"L98�<I�D$8H��tWA�|$tOH�D$`A�t$��u
L;=�!�
L��L��H��L�L$M��H���H�S H�L$`H�4$H�L2���>H�E(I���PL9���H�L��L�s J��H��N�$�H�$I�A�D$ ���S����������aE1�H�
���1�H�5���4!��@H�|$L��D�T$(��*��D�T$(D�L$2H��@��E1�L94$����H��@��tE��tE��uTH�K�D��%���@��t	E���q���@������E������H��H�\$8�L��H�57�H��H���@H��1�H�=O�1��4��K�D�����1��Q'��K�D�����H���H�4$H9t$�3���H���H�L$L�
��L���H��H�v�H�5��H��H��LD�H�|$ LN�H��H��!E1�t$H�81��3��XH��Z����H��~DH�D$ ����DH�CL�4A�D$(�������H����L��H�5��I��H��H�r�!H�81��@3��L���h��L��H��H���Z!E1�H���?���H�;H��t
H�/uH�G�P0H�L$hdH3%(L����H��x[]A\A]A^A_�@H�CN�4�A�D$������L���I�D$hH;C�cH�L�|�H�"L98����I�D$pI��I�H�E(�PL9������/��L�|$HH�KH�sPI��H���L���-��L������H�{8t
H�{8��T��uiL�e M���jI�|$0L�s(L��L���0��L�e L�mhL+��M���.A�L$����A�|$$��E1�M���AH�{8�.H��H������fDE1�����H�CH�H�SHH��&���@A��$����q��I�H�����������I�I��$��H�g)�����_�j��I9�$��,E�D$xI��$�E���1�1�����I��$�L��H��腗��I��I�D$PH������L��E1�L��1�H��E1���M��u3H�E �P���dH��H���yM�������H��H���e�y���HcEpL�u0��u
I���bL�H�}xH��H�$����H�D$H�����EpE1���tH�D$A�L�`H�D$`H�D$(L9<$��I��L�d$L����K�D�I��H�[L9<$�L�3L�D$(H��L��H�D$`I�F`L��H��IE H�HA�V@I�V`H�L$`H��IU H�JH��u��}pH��L��I��I��L��L���M H�L$H�H�$H��H���H��H���I�]���@H���H�CP�0���L��L�D$`L��H��H�D$`H��A�T$@I��H�D$`H�C0M���d���H��H���H��H�����������H���#-��I����H�D$H�I��L�#�5���@I��$�1����I��[���f�H�|$L��H�\$8H���������T$��K�D��DL�5��!I�L�t$�H��H���EL�d$����H����L��H���,��H��H�5��H��H�y�!H�81��G.��I�,$uI�D$L��P0H���]��H�����I�D$L��P0���H���H���L�CH�5��I��H��H��!H�81���-��L��E1��������L�mhL+��M�����������H�|$ ���H�4$H9t$���H��E1��H�5��H��H��H���!H�81��d-��H�����H��)���H����H���L�CH�56�I��H��H�Q�!H�81��-������f.����)��I����fDL���`���H��H�\$8�cH�L$L�
��L���H��H�I�H�5��H��H��LD�H�|$ LN�H��H�Ǣ!�t$H�81��,��A]H��A^���I�,$�M���I�D$L��E1�P0H��9���H�{8�����M�������L��H�
���Y1�H�5���[��M�&H��L�D$`H��H�D$`I�D$`L��H��HC H�HA�T$@H�T$`H��H�D$I�D$`H��HC H�PH���A���1�H��H���d����H�AH��P0����f�H���!L��H�5��H�81��+��L��H��H����H���f�H��=����O��H��A�������H���@��ATI��UH��SH�G H��H�H��t[L��H��E1�]H��A\�����(����t"��tV��t4H�{��H�C H��tQH�{�H�{���H�{�u3�u�����H����1�1��#���fDH�{�����[1�]A\�f.�D��H��t'SH��H�0H��t�
��H�CXH��tH��[��fD��H�޿x[�j*��f.�AWI��AVM��AUE��ATA��UH��SH��H����'������H�+���Hc�H�>���H��M��M��D��D��H��H��[]A\A]A^A_��XH��M��M��D��D��H��H��[]A\A]A^A_����H��M��D��D��H��H��[]A\A]A^A_��fDH��M��D��D��H��H��[]A\A]A^A_��{fDH��M��D��D��H��H��[]A\A]A^A_��{E1�H�
���E1�H�5���9��f����W����SH��H�0H��t
H�C0���H�{8H��t
H�C8����H�{@H��t
H�C@�!��H�{(H��t
H�C(���H�{xH��tH�CxH�/tH�{ H��t H�C [���f�H�G�P0H�{ H��u�[�@f.���SH��H������H��[�3�����SH��H����
��H������H��[�������H��tSH��H�x�Z���H�޿�[�'��@����H��tWSH��H���H��t
H�/uH�G�P0H���H��t���H���H��t�(
��H�޿�[�'��f.��Df.���AVAUI��ATI��1�UH��H��SH��H�� dH�%(H�D$1�H�D$���H����H����H����L�t$H���H��L���!��L��I�D$P�SI��ugH���&��H�߾H���W��L��L��H��H��H����H�+uH�SH�D$H��R0H�D$H�L$dH3%(u;H�� []A\A]A^�@1���@H���!H�52�H�D$H�:���H�D$��)��f���H�����ATI��USH��D�G �O$H�GhH�G`H��t%H��H�����H��C�!��H��C(�
��H�k0M��t/�C��t6L���.��L��H�� ���C�C(����vE�C[�]A\�@L���h ����u�C��H�Cp���f�L������C[�]A\Ðf.���UL��SH��H��������tWH�p���H��H�CX�D��H���H���C(�n^��H��H����O��H��H�������H��H�������H��[]�f���AWM��AVA��AUA��ATI��UH����SH���e!��M��E��D��L��H��H��H���;�����tH��H��[]A\A]A^A_�DH��1������@���x�!��f���AWI��AVA��AUM��ATM��UH��S��H���X����wSH�|���Hc�H�>��H��M���D��L���].H��H��t%H�D$PL�m`H�EhH��H��[]A\A]A^A_�fD1���@L���@��H��M��A��D��L��H��H�D$�t���L�T$H��L���D���f�H���D��L����KH���H��M���D��L��腌H���c���DH���D��L���� H���F���H��M���D��L���BH��H���Q���L�L$PM���L��L��H����@����@��AVM��AUI��ATE��UH��S�������tVH���1�L��H�EX�H!����M��D��I�ŸD�H��E1�1�jL����O���L��H�ExXZ�A��1�H�}x��[]A\A]A^�@f.���AW�AVI��AUATUSH��H��8�oH��H�t$��E��}��L��I�����I������H����M��AVI�؉�1�L�����H�D$(A[]H���XH�|$E1��$��H�L$L��AH�K ���H�C(L�sPL�c`L�t$ �@L9����DH���`�����g�S�������cH�����I��H�C(H�N�<�M���,A�M�g`�H�ChL��L�T$���L�T$A�G(L������H��I��I�����H��I�����H�C(�@L9���H�|$D��E������H��H�����H�L9��9���L�kP���I��H�C(H�N�<�1��{��M�o`��A�G H�I�G�q����D$������H����
��I��H�C(H�N�<�M�����T$M�g`��A�t�����������H���I�GhH��H������D$�fD�D$���H�{@H�������H�C(I�����Hǃ�L�kX�hL�L9�u�t@H��H����bH�C(H�L�$�A�D$���t�A�D$ t�M�4$H�{8L�����H�C8M��tH�{@H��L�����H���H����A�D$H���I���u�A�|$I���t���H�kX�k���H��L�T$�K��H��M��I��t$(L�T$ �¹H��L������I��XZM��L�T$��H�ChH�{0L��L�T$�
��L�T$H�C0�\f�H��L�T$(����H��H��M��H���I��H�QH�����QL�T$8�L$ L���P���Y^H��I��L�T$(�E�|$u�H�C(H�N�<��,���fDH�D$D�HE��u
D�@(E���E1�����{pI����L�c0M��t<�I�$H�8����L��H��H���V��H�mu
H�EH��P0M�d$M��u�L���s��H��mI�E�H�P�I�UH��u
I�EL��P0H��8��[]A\A]A^A_�I�mu
I�EL��P01���@E�T$E���)���H��H�������f�L���h���H��t�H�Cx�}���f.�H�5��!H���������@L��1����H������d����H�5ْ!H�=�!���H�C@����@�Cp���@��ATUH��SH��H�����H��I���o��1�1�I��A���L����H��t;�@H��H��H�@hH�@`H�S(H�H�H���[]A\����[1�]A\Ð��H�WH�H�wH��tH��E1�H�=z�1��(���H��1�H�=_�1��
��f.�AUATUH��SH��H��H����ZH����4H���\��H��H��!��H��H�C���H�CI��H��t
H�������upH������H��CH�����uqL�c`H�����A�xH�5�D������D��H�C(H������H��H��������H���[]A\A]�fDL�����H�C�f.�H�59�H���Q
��H��I�����I��M����L��H��H�=��1����I��L���+��H��!1�L��H�8���L������)���f.�H�Y���H������DH���H������DH�߉D$��D$H��[]A\A]�DH��H�=p�1��_��I���d����ATUH��SH��H��dH�%(H�D$1�H����GH�$tyH�����H��H�������t>H���H���I��H��tvH��L��H���8����usL���\<��txH�����1�H�L$dH3%(��H��[]A\ÐH�i�H���H����y���H���H����f����L��H�������t���f.�H�����H�5Y�H��H�/�!H�81��=���`����#����AVI��AUI��1�ATI��H��UH��S���H����H������H��H�����L��L��L��H��H���9��H�mH��t?H��tII�D$ �@��uH��!H9�tBH�S���tH9Ct/H��[]A\A]A^�H�EH��P0H��u�1�H��[]A\A]A^�H���!H�5m�H�8�*��H�+u�H�CH��1�P0��fDL��H�����H���
	��H�N�!H��H�5L�H�81����H���:����f���D��SH�����H��[����f���UH����SH������H��H��H���[�����tH��H��[]�DH��1�������f�f.���H��hI���I��dH�%(H�D$X1�H��H���H�H��L��L��A���H�L$XdH3%(uH��h��*��f.���ATI��UH����S�(��H��L���H��H�������tH��[]A\��H��1�������@��H��hI��I��H��dH�%(H�D$X1�H���H�H�t$HH��H��L��L��A���H�T$XdH3%(uH��h��r��f���UH����SH���y��H��H��H�,���H���H�������tH��H��[]��H��1��^�����f�f.���UH����SH�����H��H��H�@`H�����H���H�������tH��H��[]�f.�H��1������@��UH����SH�����H��H��H�|�H����ᆳ�H��H���H�/�H���H�q���H�C`H���������tH���t���H���H��H��[]�H��1��f���H��H��[]�f�f.���UH����SH�����H���@H��H����������H�S(1�D�BE��tADH�2H�ƃy(uH���H���tH���BH�S(�JH��H9�w�H�{P�tH��H��[]�f�H��t�H�21��
@H��H9�t�H�ƃz u�z(��u�R��t�H�CP�f�H��1��v����@��AVI��AUATUH��SH�� dH�%(H�D$1����I��H��tH�T$H�t$H���{��H�}(�G��tt1�fDH���I��I��H�4�I�V H�FHJ�L*H��t>H��t9H�VhH��x0�F t*I�>A�H�T�L����I�F J�D(H�}(fD�GH��H9�w�M��tH�T$H�t$H�<$���H�D$dH3%(u
H�� []A\A]A^��2���f���AVAUATI��USH��H�� dH�%(H�D$1����I��H��tH�T$H�t$H���{��H�s H��t#H�FPH��tI�L$(H��tI�T$0A�L���H�[0H��u%��H�PA�L��H��L��A��H�[H��tqH�+H�E`L�MPH��ID$ L�0M����M��t��u��E��tʄ�t����H���H���l
����t`L���@���L����s��H�[H��u�f.�M��tH�T$H�t$H�<$�8���H�D$dH3%(u&H�� []A\A]A^�H����H�	���8�������f.���AWI��AVAUATI��USH��H��8H�4$dH�%(H�D$(1����H�D$H���nH�T$ H�|$H�t$�
��A�G@H�S(�z����M����1��ofD�} ���U��t7�Z���H���H���;	�����+L����F��I�G L��H�@H�$H�P(�BH��H9�vTI9�|OH�
��H�,�H�uhH��x�I��I�G L�UHI��L�L�pM����M��t���\����u��t���t��]���@H�|$tH�T$ H�t$H�|$���H�D$(dH3%(��H��8[]A\A]A^A_�f�I9�I�L��L��A��H�T�E��H��A��I�G L�����DH�$A�G@H�P(�B��t�M��������fDH����H�����t#H�������L��H�����I�G L�����Mx��t!H���L����v��I�G L����fDL����I�G L��|����o���Df.����G@�@���G@�@���~$t�DH���h��AUI��ATI��U��SH����
����t5L�����H��H�����	�+H���Hc�H�>�����I�D$H�5l�H�PH��!H�81����H����[]A\A]�H�����I�E@H�+u
H�CH��P0���1�H����H����[]A\A]�fDH�����H������H��u�H���A�H�����H=���A�m�DH������H�����H���w���H���v�A��1���H�����H���`��H���G���H���A��H����H=��v3�yf�H���h��H��� ��H������A���H����w�fA�m���fDH���0��H������H�������������A����H��H�H9�vDH�Q�!H��H�5�H�81��5
�����H���8��H�����H���w���A�����L9�w\A�m�c���H�����I�E�O����H�	�!H�5��H�8�������E1�H�
���1�H�5�����H���!1�H��H�5��H�81�������@f.�ATI��UH��S�1����t=H��1���H��H��t$H�ǻ����A$H�mu
H�EH��P0��[]A\É�H�EH�5��H�PH�@�!H�81������[]A\��SH��dH�%(H��$�1�f/�w/f/�w)�H��$�dH3%(��H�Đ[�@f.X�w����f.�w��T$�L$�D$���D$�L$H���T$t�E����T$�L$�D$H�\$ �d��dL�I�H�߸�{�H�,�!H��H�8���1��>�����f.���E��t�F$��t��H������ATM��UL��S�B$H�˅�t!L�)�H�
Z��71�H�5���w���H;��!t6H�CH;��!tY���t0H�����I�$H�E[�]A\�fDI�$1���@H�Y�!H�5��H�8����[1�]A\�1�H���N
��I�$�����B��uH�f�!H��f�H�9�X������AUATUSH��(dH�%(H�D$1���w-H��H��H�=����Hc�M��H�>��H�mu
H�EH��P01�H�\$dH3%(��H��([]A\A]��H��H���=�����H�t$H��������t�����H��u����
-��D$�2�����t�f�۸�Z\$��x���fDH�t$H��������[����f���H���M������
���D$�������*����D$������fDH�����H����H����f�H;-�!�KH�E����zH���:�H��H�������H���v��H���N��H�mI��u
H�EH��P0L�+�M�,$���f�H;-q!��H�UH�����-��H���j���H��H���>���1�H�t$H���	���������H�|$���H�muH�UH�D$H��R0H�D$H�I�$���H;-�~!��H�E����zH�}(���E ��`<`��L�e@H����H��H�������H���X��H���0��H�mI��u
H�EH��P0I���H�3}!L��H�5��H�81����L����1��J��������H;-)~!��H�E�����H��|!H�5��H�8�t��f�H���x��������H���������H�E��������H��T$�3���H����H���q�����f.�L�1�H�
r��11�H�5$�����B���f.�H������H�I�$�f���@H�PH�5P�H�|!H�81�����1��7���D1�H�t$H������������H�|$�������f�L�e�C����H��{!H�5��H�81��x��1������H���(���H�}(�����H�
F���H�5J�H�=���~�fDH������H��~���@L�����L���.���V���@H�EH�5*�H�P���@H�RH�5G�������1�������@f.���H�ϋJ$�R(L��M��������USH��dH�%(H�D$1����mH�����Hc�H�>��f.�����V�������wH�l$��H����H��Hc�����Hc?����H�L$dH3%(�]H��[]�DH�?�G���D�?�8���fDH�?�'��D�?���fDHc?���fD�?�����H�?����s���H�?�h��c���f��Z���N���fD��o��:���f.�H�?�����#���H�?H��tP�������fDH�?H��t8�K������fD1����f�H�=\���������H�z!H�����H��x!��H�50�H�81����1�����z�f.���H�ЋR$H�ϋp(����f.���AWA��AVI��AUATI��U��SH������H��H��trL���^�A��D��L��L��H��A����������A�����D��H�� uC��`uvE����@��tH�����H�C8��tH�����H�C@H��H��[]A\A]A^A_�f�@��tH����H�C8��t�H����H�C@��DH��1�����@@��tH����H�C8H�`���H�CH��t�H����H�C@H���H�CP�x���E1�H�
���1�H�5$��O�f.�D��AWI��AVAUATUH��SH��H�vxH�<$L�fPH�L$M��t:H��t5E��H��E1��f�H�uxI�D��E��H�<$A��H��H�A��H�[H��u؋E$����w�E(��t%��u,H�|$��H��L��[]A\A]A^A_���H�|$�f�����E1�H�
����1�H�5D��w����AWAVAUATUL��SH��H��XL�9H�<$H�t$L��dH�%(H�D$H1��d���I�����I��H���D����H�EH�[xI��H�C@H�D$M����H�D$(E1�H�l$ H�D$�DI�UJ��M�I��M����H�D$(H�s0H��I�H�D$ ��s��H��H��L�D$H�t$H�<$H�D$��I�$H�L$(J��H��u�I�mu
I�EL��P0L��H�="�1���H��H��t;H�t$8H�T$@H�|$0���H�t$8H�F���u\H�T$@H�|$0��H�+t0L��E1��]�H�\$HdH3%(L��ufH��X[]A\A]A^A_�H�CH��E1�P0L���#���H������H�|$8H��H�/tH��tH�t$8�H�$H�G�P0H�4$��H�t$8�g����O�Df.���AWAVAUATUL��SH��H��XL�9H�<$H�t$L��dH�%(H�D$H1�����I�����I��H���D���&�H�EH�[xI��H�C@H�D$M����H�D$(E1�H�l$ H�D$�DI�UJ��M�I��M����H�D$(H�s0H��I�H�D$ �q��H��H��L�D$H�t$H�<$H�D$��I�$H�L$(J��H��u�I�mu
I�EL��P0L��H�=2�1����H��H��t;H�t$8H�T$@H�|$0���H�t$8H�F���u\H�T$@H�|$0��H�+t0L��E1��m�H�\$HdH3%(L��ufH��X[]A\A]A^A_�H�CH��E1�P0L���3���H�����H�|$8H��H�/tH��tH�t$8�H�$H�G�P0H�4$��H�t$8�g����_�Df.���E����AWAVI��AUATI��USH��H�FxH�L$L�xHH�<$M��tZH��tUH��1��H��L����I�t$xA�H�I��H��H�<$A��M��tI�mu
I�UL��R0H�[H��H��u�A�D$(��t-��u@H�|$H��[]A\A]A^A_������H�|$H��[]A\A]A^A_���E1�H�
����1�H�5`�����AWM��AVAUATUSH��xL�L$dH�%(H�D$h1�H;
�r!��I��H��I��I��H���E���Ņ��#H��1���H�D$0H���+I�D$xH�$H�@8H�D$��H�D$HL�|$81�H�D$(H�D$@H�D$H��H�߉l$$H�D$@H�D$H��I��H��t4H��I�T$xL�L$(L��L�D$L��H�D$�Ѕ���I�/M���WH�<$�V����t$$H�=h�1�����H��H��tIH�t$XH�T$`H�|$P���H�t$XH�F����"H�T$`H�|$P�#��H�+u
H�CH��P01��'�H�CH�5�H�PH��o!H�81�����H�L$hdH3%(���,H��x[]A\A]A^A_�I����f�I�/trI�D$xH�|$H��H�p0�Sn��H�<$H���g�H�$H9l$0�����L�|$8H�<$�Z��I�A�T$$��������H�D$�H��S���I�GL���P0�@I�BL��P0���f�H���(���H�|$XH��H�/tH��t%H�t$X���H�$H�G�P0H�4$���H�t$X���H���n���fDH�L$�H�����q����AWM��AVAUATUSH��xL�L$dH�%(H�D$h1�H;
�o!��I��H��I��I��H���e���Ņ��#H��1���H�D$0H���+I�D$xH�$H�@8H�D$��H�D$HL�|$81�H�D$(H�D$@H�D$H��H�߉l$$H�D$@H�D$H��I��H��t4H��I�T$xL�L$(L��L�D$L��H�D$�Ѕ���I�/M���WH�<$����t$$H�=��1�����H��H��tIH�t$XH�T$`H�|$P���H�t$XH�F����"H�T$`H�|$P�C��H�+u
H�CH��P01��'�H�CH�5�H�PH�m!H�81����H�L$hdH3%(���,H��x[]A\A]A^A_�I����f�I�/trI�D$xH�|$H��H�p0�sk��H�<$H�����H�$H9l$0�����L�|$8H�<$�z��I�A�T$$��������H�D$�H��S���I�GL���P0�@I�BL��P0���f�H���H���H�|$XH��H�/tH��t%H�t$X���H�$H�G�P0H�4$���H�t$X���H�����fDH�L$�H����������AWM��AVA��AUI��ATI����U��SH���6�H��H��twL����M��A��D��L��L��H�߉D$�K������D�T$A��tXA����@��tH�����H�C8H�����H�CH��tH�����H�C@H���H�CPH��H��[]A\A]A^A_�D@��tH�s���H�C8H�h���H�CH��t�H�x�H�C@H���H�CP��H��1�����E1�H�
:���1�H�5t������AWI��AVAUATUL��SH��H��xD���H�|$H�t$dH�%(H�D$h1�E����L���M����H�9�����1�1����I��H����H�8H��t���I�E�fI�H�SxI��z(ubH���yA�vI�>����I�ċ������H�|$hdH3<%(L����H��x[]A\A]A^A_�fDH�SxH��z(I��t�H����A�~�.��I��H����A�~�y�H�EH�kxH�D$@H�}@H�|$(L�����A�~��H�L$8���^���E1�L��H�|$XM��H�L$`M��H�|$I��H�L$0L�l$@H�\$ �fD�u�����}(��H�T$8H�|$�H��H��I4$��H�L$H��L�D$0H�t$H�|$H�D$(��I�UH�L$`H��H���hI�VI��H��E9|$��H�D$ D��H�D$XH�D$`����Z���I�$H��H�D$X�|����D���E����H�9E1�H����H�Bx�x(���^��I������fDH�������t?�������I�$H��H�D$X����@1�L���������1��i��I�������H�T$8H�D$ H�Ӄx$�"I$H�T$X���f.�H���H�|$H�‰�H��HW H�|$H�O(H�	H���x(��	�dH�5D���Hc�H�>���L��M��M��H�\$ H�(I��u
H�@L��P0������IH�|$@�W��������YH�sxL�fPM��t5D��E;ns,L�l$�@H�sxI���E1�L���H��1�A��A9nw߃{$��E1�����DL��H�\$ M��I�����DE1��y���H�=�|�t�I�����@L��H�
���1�H�5��G������A����L�"���D�"���L�"����Lc"����D�"����L�"���D�"����"��H�5��E1�H��H��e!H�81������L����������L�������fD1��{$L��@��E1��{����H����HH�T$H�P�H�T$H�������H�|$8���H�T$HI�4$H��H�H�T$8�`�H�D$X�Z�������{$�z���I�?H���n������E1��2�������f���AWAVAUATUSH��H�|$H�t$ L�D$PL�L$XdH�%(H��$�1�H;
�e!���B$H��H��I�̉D$d����Å���L������I��H����H���H9�t	H����H���H�D$����D$`��������T$D���i��H�D$(H�|$(�H�Ex�x(�2H�@8H�D$8M����H�D$xL�d$01�1�H�D$@H�D$pH�D$L�l$HI��H�|$0H��A��A��H�D$pH�D$x�{��I��H����H��H�UxL�L$@L�D$H�t$ H�|$H�D$8�Ѕ��I�,$uI�D$L��P0H�D$xH��tH;D$p�f�|$`�SL�uxA�~����H�|$��L�0�H�
i��01�H�5ѯ���fDI�D$H�5خH�PH��b!H�81���H��$�dH3%(���H�Ĩ[]A\A]A^A_�@I����f�L�d$0H�ExL�xHM��th�p��taH��t\H�\$E1�D�t$L�t$(L��L���5��I�H�uxA�H��H�|$J��H��A��H�+u
H�SH��R0I��L9l$u�D�t$�|$`��H�|$(����D��H�=��1��[��H��H��tcH��$�H��$�H��$��6�H��$�H�F����EH��$�H��$����H�+uH�CH��P0�1����f�D�����H�D$(�J���fDH��H�Fa!H�5�1�H�81��+��g���fDH�T$H�|$(�D���)��H��Ll$A��H9\$H�B���L�l$HL�d$0H���H���x������*H�D$(H�L$P�|$dH�H���H�D$XH�L$(�H������A�~(�e���I����9���t	���K���I�FHH�D$h�}��I���H���^����^H�|$pt7H�D$(H�T$1�L�8M�L���$��H�D$pL��H�0��H�|$pL�����H�D$(�@H�D$hH�����H�L$xL��L��H�|$A�������H�t$pH�|$(������@I�T$��������L����D���H�L$(E��H�9uD�M$E��uD���E����L��H�����H�D$(1�D�hD���E���c���H�E1�B�(�S���M��L�d$0I�/�����I�GL���P0����H�|$(��Q�����@����1��-���@H�T$pH�|$(�D����������@H��^!H�5��L�d$0H�8�}���-����H�L$PH�D$(�T$dH����|�|$d�`H�D$X�H����fDH�L$ ��H�Q(H�L$H�H�‹x(H�@`H��HA ��	wH�
v���Hc�H�>��L�(�B����u��L��H�5c�H��H�)^!H�81����w��������I9�D�(�����������L�H9�v��)��L��H�5�H��H��^!H�81����+���I�����fD�(���I���H����w���I����D�(���I���H���w����H����H��$�H��H�/uH�D$H�G�P0H�t$H��t0H��$������|$`H�|$(tt�K��H�L$X�H��:���H��$��O���1�E1����H�|$(1������H�D$XH�����H�D$����H�L$(H�D$�D$dH��6����w��������AWI��AVAUI��ATUSH��H��(���H�<$D�D$����F$1�H�vx��L�fP��@�lj|$����M����H������D$�iI��E1���1�H�D$H��t|H��H��L��I���.H�MH��I�}D�D$H��H�H�<$A��H;\$tAI�vxH��H��u�I�H�����M�����i�D$E1���I��L������D$��uH��([]A\A]A^A_�fDM�����t$H��(L��[]A\A]A^A_�e��DL���M��xT���1�1����I��H��t�I�>D���B��M�>E�fH�sx�D$L�fP�D$M�������������uiH���E1�H��x�H�<$H��HG L� �fD���*����D$�t$H��(L��[]A\A]A^A_���DI���D$E1����H���5��A���)���f.���AWAVAUATUSH��(H�<$H�T$H�L$E����H�Vx���H��L�bH���M����H�L$H������I1�H�L$H���E1��VfDH�EN�4�H�|$L�����H�sxL��H�<$I��A�H��A��M��tI�mu
I�UL��R0I��L;|$thH��u�H�D$H�H�Cx�P��t N�4��f.�H��([]A\A]A^A_ÐH���I��L;%~Y!L�4�d���L������f.������tOH�|$tnH�|$H��([]A\A]A^A_�V��fDM��tPH�l$�EH�D$H��t>H�D$�����u��C$1�H�|$��@��H��([]A\A]A^A_����@H�l$H�|$H��([]A\A]A^A_���1��_���f���H��tSH��H�x�ڷ��H�޿�[�|�@����AWM��AVM��AUA��ATI��UH��SH��H���H���/H�U(��H�H��D���H���K�����{��H�Z���CD�k H�C@H�$��H�Ch����H�C8I��$�L9���A����I�/H�U(H���I��$��JH�FH9�H�
s}��H��H��u�pf�H�
��H��H����H�jhH�U(H���JH9�w�I��$�H�
�3@H�}0H���|��H�E0�{tH����$���DH�E(H���H��H��H��[]A\A]A^A_ÐH�����H�I��$�H��tH��xHE`I��$�1�H��x����@�T$�?����T$H�Å��~������I��$�����f.���AWM��AVA��AUI��ATA��UH����SH�����H��H��t%M��E��D��L��H��H���&�����u"H��1�蘵��H��H��[]A\A]A^A_�fDH�����H��H�CX�
��H�����H���Q��1�H��Hǃ�����H�H����3��H��H���X��H��H����I��A��tH���H�C8H�1���H�CHA���[���H���H�C@H����H�CP�@������E��u�fDH���8����ATUSH����H�/H��H��tk�_��H�=?�!A��H�-�!H�(t H��8�^��H�=�!H������H��HE�H�1ɋ;��u-H�SD�CH��1�H�5H��$��D��H���y��H��[]A\Ð�;�H����fD1�H��H�5 �1��9��H��[]A\Ð��SH��H�� dH�%(H�D$1�H�H�|$H�D$�����{$tH��t7H�t$dH34%(u4H�� [ÐH�|$H��t�H�D$��H�D$H��u�f�H�QU!H������@f.���H��dH�%(H�D$1�����H��H�$���H��tH�T$dH3%(uH���DH��T!H����v��fD��ATUSH��tc1�H�?H��tA���H��A���(���H��H��H�{�!H�8�s��H�mtH������D������[]A\�f�H�EH��P0��@H���H�5��1����[1�]A\�@��AWAVI��AUATUH��SH��H��!H�0�����t4H�EH�5L�1�H�PH��R!H�81����H����[]A\A]A^A_ÐH�57�H�������I��H���H�@���uVH�gR!H�5 �H�8� ��I�,$��E1�I�D$L��1�P0DM��t�I�mu�I�EL��P0�s���DH�5gpH���Q��I��H���-H�@�����H��H�5nG�%��H��H���)H�@�����H��Q!H�5�H�8�r��I�,$�H�muh1�fDH�EH��P0�I���f�H�qQ!H�5*�H�8�*��1����H�QQ!H�5J�H�8�
��I�,$����1�����L�����H��H�D$���L��I�����H���X��H�L$D��L��������I�,$��H�m������C���H��P!H�5ŸH�8���I�,$�e���1����H��P!H�5ڟH�8�Z��I�,$�W���I�D$L��1�P0H���>���H�m�.�������I�D$L��P0��f�f.���UH��L��SL��H��dH�%(H�D$1�H��H�$������tH�$H�EH��H�T$dH3%(uH��[]�����f.���SH��H��H��dH�%(H�D$1�H��H�$����������tH�4$H�����1�H�L$dH3%(��uH��[��]��f.���AVAUATI��US1�H�� dH�%(H�D$1�L�t$L�l$H��L��L��H�����H�<$twL��L��H���[���H�|$��H�(�!H�<$H�0�������H�<$H�/tbH�|$H��t
H�/uH�G�P0H�|$L����������t]H�|$H�/tBH�L$dH3%(����H�� []A\A]A^��H�G�P0H�|$H��u��DH�G�P0�����H�|$�����H�/u���H�T$H�t$�����H�<$�A��������u���H�T$H�<$1�������"��������V��������U1�S��H��H��!H�0���H�=�!H��t&Hc��.��H�=�!H��H�����H��H��[]�f����H�̿!��f���AVA��AUI��ATI��U��S����H��H��tRA��D��L��L��H���(�����tL@��tH����H�C8�C$��uH���H�CH��tH������CH�C@H��[]A\A]A^�fDH��1��~���H��[]A\A]A^�f���H��H�=�����H��t?H�5��H������H��!H��i��H���H�5���H��H���Ϸ���H�����AUATUSH��H;=�M!��H��H��H�5h_!A��H�H9�t���A�Ņ�t0L�kM����A��t}L�mA�H��D��[]A\A]�DH�����H��H�����H�5��H��H�$L!H�81�����H�+u�H�CH��P0�H�A�H��[D��]A\A]�DL������v���H�CH��H�5jTH�HH�K!H�81�����U������ATI��UH��S�����Å�tH�}�t��[]A\�@M�$$A�D$��u�L������E(tL���l����f.�H�����H��H�����H�=�H��1�����H�+H��u
H�CH��P0H�*M!�H��H�8肼��H��u�����a������1��U�����E��t�G@��tH��t�~$t�@H��H�ϾP�o��H��H���3���AWM��AVI��AUI��ATUH��SH��H��H���H���4�������H�{H�51]!A��H9�t	������tH�CH���H�H�8�������H��H�5�?�C���I��H�CH�XM����L���g��H�UH���I��H����H��L�
�@SH��I!H�5.�H�81����_AXI�mu(I�EL��P0�fD�U$L��H��A��A��I�EI�H��D��[]A\A]A^A_��H�qI!H�UH���H�8H��t&H��L�
�_H�5��1�SM�����XZ�DH��L�
�_H�5��1�SM��H�Ƙ����Y^�{���DH��L�
�?H���S�������H;

J!H��H��L��tL����L���+���I��Ðf.���H;
�I!H��H��L��tL���L�����I��Ðf.���E��u�~$t�H��H�ϾP���H��H���Ӷ����ATUSH��H�/H��tTA��H���LH���I����tH������A��tGH��[]A\�fD1�A��H��@��H��1�[]A\��e��@H��H!H�H��[]A\�@H�;H�D$�S��H�D$�f�f.����r$H���Q������ATU��SH��L�'��uM��t�LL�������t��H��[]A\�����L��������t�H�;����H�߾���H�;H���4��H��[]A\�f�f.����r$H���q������UL��S��H�����H��tV��t&�MH�(�����H�
���HE�H�
��H�HHH�P8��t&�UH�

���H�6���H�XP��H�����HE�H�P@H��[]�f.���AUATI��UH��H��S1�H���b�����w^H�:���Hc�H�>��f.�L�eI��Htc�HH���I����uRI��Tt�TH���2������H���R���H��H��H��[]A\A]ÐH��t+H�}Ht�HH�������tH������H����fDH�����H���H�}� ���H����������fDH�}�$�Z��H���G芴�����d���H�}� �2��H������H���;���f.�H���H�����"����H�������������H������������H���8��������H���ع��H�����H�����H������L�����H��I���M��L��A���2���A�U����H�
ڕHc�H�>��@H�}�$�b��H��ts薳��H���o���fDH������f~��X����H���8��fH~��?���fD�ð��H���,������������@�S������
���@���H�����H��t{H�}Lt�LH�������tcH���s���H������H��谵�������f�H���x���������D�����H��H��B!H�5�H�81��M���y���H��耷��H���i���I��D������DH���q���������L�����Df.���H��H��4�FH�w�SH��Hc�H�>��f����H���
H�D!H�[�D���[H�����������[������f�����[Hc�钽��f����[Hc����f��+��[���ӻ������[H���»��f�蛱��H��H��y[���D��H��[隻��f.�����H�;[������+���H�;[���&������H��H��y�[���D���[�Z��	���f����[���D1�[�@H��[����1��D��AUA��ATUH��SH��H�?dH�%(H�D$1����H����H��H����H��H���R���I��H��t*H�L$dH3%(L����H��[]A\A]��D��H��H���I��H��u��u���H��u�H�}�״��H���H�5��H��HD�H��H�A!H�81������@H���0���H�|$��D$轱��I���[���DH�����H�|$��D$���I���3����h������AWAVAUATUSH��H��H��H�YvGH��P��H��T��H��L�H�;虪��H��tuH�H��H��[]A\A]A^A_��fDH��tBH��Du����H��tZH9tH��H���2�����tFH�����H��[H��]A\A]A^A_�p���H�?�P������u?1�H��H��[]A\A]A^A_�H�����H�;H��[H��]A\A]A^A_闍���H��訳��H��[H��]A\A]A^A_�_��f��˭��H���6H������H��1ҿT[H��]A\A]A^A_�]4��D���H��[H��]A\A]A^A_�=���DL�'��A��H���L9�tH��H���(���A��H�6�!H�0I9���H���
��������ͬ��I9���H��H���������E��������I9���H��H��迿������L���Ϩ��H���2���H�߅����v�����H�;H��H��[]A\A]A^A_���H���ؽ��H��H���_���H�]?!H��O���@H��� ���H����[H��]A\A]A^A_�8����H�����H�pH�8H��[]A\A]A^A_�.��H������I��H��tSD�(L���c���H��M������I��E1�L�{K�<d��I~����M�I��I�M9�u�������1�1�����H��1�[]A\A]A^A_����fD��AVAUI��ATUH��SH��dH�%(H�D$1�H����H��?!H��L� H�I�t$HH��tWL�0I9�tH���G����t{H�t$H���f�������虷�������H�L$dH3%(��H��[]A\A]A^�H�������u�M��$�H��L��������u1DH��L���M�M��$�M9�tL��H�������t�L��H���!��H��L��H���#�j���fD�t$L��茫��1��Q�����AWAVAUI��ATI��USH��HH�|$H��dH�%(H�D$81��_���H��H����>M��tA�D$P9�t���T���E���I�ƅ����C�H�l$ 1�H�D$�Zf�L��H���E���I�/uI�W�D$L���R0�D$�����H��L���9���H���1���H�CH;\$�ZH��H��L������f�H�D$0I��)D$ H���FM��tqI�|$HH��t7�L����H��H�p����I�T$HH���S���L��H���
�N���H;<!��H�x蚛��H��t0H��H�������H;�;!toH�x�n���H���}�P���L���ت��I�/��fD�����H�L$8dH3%(��H��H[]A\A]A^A_þDH������=���fDH��D���L��H�������H��H������L��H�����h���DH�|$L���۹��1��q���@蛴��L���#����V���fDL������H��舩���;���I�GL���P0�,����_������%����c�����AWAVAUATUH��SH��H��XL�'dH�%(H�D$H1�L��譳��H��H��L�?H���Hc�H�>��fDH;-i:!�K1�H������H��T�0	H�uH���;����S���H���jE1�H�L$HdH3%(D���7	H��X[]A\A]A^A_ÐH;-:!�cH�}H�5�K!H9�t
�N������H�mH�3H����H�EH��tH90tH���о�����rH��H������`����L�e�LL��菽�����GH�}H�5|R!H9�t
�������K
1�H��� ��H��H���U��������K���L�#A�I9�tH��H���"���A��H;- 9!��H�#�!H�0I9��'H��������H�}H�5T<!H9����F���L�#����薥��I9�tH��H��趸��A�Dž���H�}�B���I��H������L���L��I��H�����L��H���3���H��L�����A���9���H;-a8!�
H�}H�5�R!H9��'������H��8!H9E���l���H9tH��H���������b	H��蜗��H��H��豪�����@H�E����7H���o���H��H���������H������H��H���է���h���H�EH������G���H����H�����������H9�����H��莥���!���f�H��訴��H��H������������H�H9��-��H��苫������fDH��蘷��H�߉��.������f�H�EH��������$H���G���H��H��茽��H���0�a���H�m�n���H�EH��P0�_����H�EH���������H�����H��H���,���H���0���H�m�����@�PL��������H;-,6!��H�}H�5�G!H9�t
�y�������H�mH��t%H�EH��t	L9 �>���L��H��������+���H��4!H�5e�A��H�8�9������@H�;H�T$(H���D$(�(��������t$(H�����G����H�;H�T$(H���D$(� ��������t$(H���\��������H�E�����H�����H��H��蜶�������H���ȼ��H��H��譱������H���X���H��萬�����H���@���H���Z�������H;-�4!��H��胦��I��H����H������H��H����H���K���H��H���@���H�mu
H�EH��P0I�,$����I�D$L��P0����@H�;�X���H����H��H��PA�����fDH�uH93tH������������H�uH���ý�����fD胷���v���fDH��H���=�������S���H�|$1�臭��I�.uI�FL���P0�A������n���D1�H��覻���I����H���ذ��H���H���wȉ�H������!���f�H��訰��H=�w���H���������L��L�ø��H��H���(�������1�H�����������1�H���ƥ������H�uL9�tH���߲��������H�uH���;������fDH���X��������>���H�E�����H������H��H���Z���H��H���O���H�m�<�������芯��H���<������@1�H��辢������1�H����������1�H������H��H��������H�������t	E���KH�������t!���H9�H��H��������
H�EL�#���t\蹵��L9�tH��H��蹱����tCH�t$(H���8���H�������H�t$(H����H��H��H�����H���g����:���L��芚��H���2���H�2!H9E��1�H������H��H��諡�����H�0!H�5/�A��H�8蜤����H��/!H�5!�A��H�8�}�������H��0!H�5��A��H�8�^�������t���H������I�ă�����1��O���H�D$E���aA�D$�L�l$0E1�H�D$�nH�x�$���H��H�������L������L��L���I�.uI�v�D$L���V0�D$����jH�|$�L��蒬��I�D$L9d$��I��L��H��账��f�H�D$@I��)D$0H���H;�/!�\����D�g���H��.!H�5[�A��H�8�E������1�H��H���c�A������6���A���v���I�,$��I�D$L��A���P0�W���H�O.!H�5�A��H�8����8���H�0.!H�5z�A��H�8�Ţ������H�t$H��������H��-!H�5�A��H�8蔢�����H��-!H�5��A��H�8�u�������{���H�|$1�诨���:���H�|$1�螨��L���f����!���H��-!H�5w�A��H�8�'����{�H�s-!H�5h�A��H�8�����\�H�T-!H�5Z�A��H�8����=�@��S����o���H��u
��[�fD�˧���������@��UH��S��H��dH�%(H�D$1�H�R/!H�H�pHH��tVH�H��tH90tH���	�����t=H��H�$�E���H���$���H�L$dH3%(uH��[]�fD��H�������7������AVAUATUS�_���H��tzH�8I��tqH�@1��f�Hc�H���{H�x�u�Hc�L�4�1�轘��I��f.�I�l$I�|衲��H�H��H�EI9�u�[L��]A\A]A^�D[1�]A\A]A^�q������H�FH����AWI��H��AVAUATI��USH������H�xI���Z���I��M����1��\f.�I�D$H�<�H�G���td���H��H��tWH���5���H���
���I�D�H�mu
H�EH��P0H��I9�tNI�D$���u�I�|��f�I�|����H��H���u�L�����H�������[]A\A]A^A_�K�D�H�L��L��虪��H��1�[]A\A]A^A_ø�����f���	��L����Ic�L�>��@H�H���@�H���DH�H����H���@H�H����H���@HcH���@H�����5���H�5^~H��H��)!H�81�躳��1�H�����ATI��UH��SH��H�z0dH�%(H�D$1�����H��H���:�����t%L�~H�
'���1�H�5<�脟��@H���Ȯ��H��L���������tgH���H�4$H��t6���H��H���ƕ��H�L$dH3%(H��u7H��[]A\�f.�H���H��1�H�5�U�H���H���1��跜�����ATI��UH��SH�� H�z0dH�%(H�D$1�����H��H���J�����t%L�f}H�
w~�
1�H�5L蔞��@H���ح��H�t$L�����������H�����H���H��t,�t$����H�L$dH3%(��H�� []A\�fDH����N��H��H��������H�|$H���A���1�H��H��货����uXH�T$1�H�5�TH������H�muH�UH�D$H��R0H�D$H�+�b���H�SH�D$H��R0H�D$�I���@H�mt9H�+t1��1���@H�����1������H�CH��P01������H�EH��P0��������	w[L��|��Ic�L�>���f�7����7���@�7���H�7���S��H������H��H�5�{H��H��&!H�81�臰��1�[���AWH��AVI��AUATI��UL��SH��H����F���L�����ܚ��H���#I��H�����I�/I����I�|$0衪��H��H�D$�ԭ������H�|$聫��L��H������������t5�I��$������H��H���f���H��I���k���M9�tf��I��$�����9�|�H�|$t
H�|$�@���I�FI��$�H�5t|H�HH��%!H�81��h���H��1�[]A\A]A^A_��H�|$���H���[]A\A]A^A_�f�I�GL���P0��������H�
�{��H�5�{H�=�y�:���E1�H�
0{��1�H�5�{�
���f.���AWH��M��AVAUATI��UH��SH��H���薙��H��A���+���H����H��H������H�+I��tFE��uPM��tKH�EI��$�H�5X{H�HH�~$!H�81��L���H��1�[]A\A]A^A_�H�CH��P0E��t�I�|$0蟨��H��H���ԫ����t'L��xH�
�y��1�H�5�z����fDH���`���L��L����������t/H���w���H���[]A\A]A^A_�苞���2���fDH�߉D$�D����D$H��[]A\A]A^A_Ð��S��褈��H��t ��tH�
��H�H8��tH�
����H�H@[�f.���S���d���H��t ��tH�
S���H�H8��tH�
S���H�H@[�f.����F$��t�@H����M�����H��tH���ߗ�������E��u�fDH���(������E��tH��uÐU1�SH��H��H�z�|���H��蔐��H9�uH��[]��H���H���H��H�޿[]�u���DAWAVAUATUSH��H�?D�t$PtgH��H�t$I��E��D��I���.���H��H��������u'E��tZI�H�|$H����[]A\A]A^A_����DI�?H��1�[]A\A]A^A_� �H�#!H�H��[]A\A]A^A_�fD�HH��裣����t?M����1�E������I�7L����E����H��	�[]��A\A]A^A_�qJ����DH���S�������M��tH�5/�!L�����������t!L�ZH�
�y��1�H�5'y�ʝ��I�7H��H��[]A\A]A^A_�o���H�|$�֓��H���S���H��覔��H�5�wH��H� !H�81�諪��1������TH��裢����t7M��t�I�7��t1�H��L��[]A\A]A^A_�;��H������I�7��fDH��u�M��t�����E����	���I�7붃�����Df.���SH��L��H��D�@xH���H���H���H��APD�HD�@$���ZYH�[�Df.����G@��tE��u��H���H������f���E��u�~$t�H���H��������AVH��M��AUM��ATUH��S�S����H��I�������tL���b���I�I�E��[]A\A]A^É�H�EH�5kvH�PH�@!H�81�������[]A\A]A^���AVA��AUI��1�ATUH��SH���}��H��tkH����H9�uL�eE��t}M�e�[]A\A]A^���f���H��I��H��I��腪��H��L������y�L���詨��1��DH�Q!H�5�uH�8�*���[1�]A\A]A^������I�4$H��H������L��H��I���1����W���f�f.���AWAVAUATUSH��HH;=O!��$�D��$�D��$��D$��$��D$8��L��H�t$H��I��L�L$H�T$ 讗��H��H��I��谟������賋��H��H��蘟�����pE���7H�t$H���Z���A�Ņ��OL���������fL����H��H�5=I��脍��H��H�CH�XH����H��訢��H�|$ I���8H��L�
L��SH�T$0H�!H�5omH�81��ݦ��_AXH�mu
H�EH��P0L��E1�����f�1�H���{��H��H���[�����uL��H��蜞��A�ą��QL��H��膞������H�[H���H������A����H�D$A�H���H�A�H��HD��[]A\A]A^A_�f��HH����������H�{H�5� !H9���袥������H����|��H��H���ם�����q���H�sH�D$H�0A���]H��A��{���H�L$H��c���fD1�1�H������H��H���1���H��蹉��H������H�A!H�5�rE1�H�8��������f�H�L$L��D��H��E1����H;{!A�����f.��L$H�t$H��HD��H��[]A\A]A^A_���fDL���P����D$��&����{���H�|$�q���A��D9l$�d���D��L���g���H��H�D$�*���H��I��返��L����u�����H��H�D$(�@��H����H��H��H�D$0�L���H�T$0�D$<H�*u
H�BH��P0H�|$(���L�����H�|$�׆��D�T$<E���X����HH���������E����DH������A�ą�u@�TH������u/H��t)H��豍��H�5�pH��H� !H�81�趣�������TH��賛����u0D�L$8E��t&E��t!L�YqH�
Br�1�H�5�q�?����TH���r�����uVH�{H�D$H�8A��ttA������H;k�\����r����H�CH�5cqH�PH�B!H�81��������H����y��H��Tt�H�!H�5CqE1�H�8豍�����@�c����H��L�
�L��SH��h���fDH���h����T���H�|$(�F���L�����fDH��!H�T$ H�8H��t'H��L�
�.L��1�SM��H�5�h�T���XZ���H��L�
�.L��1�SH�5�hM��H�h�&���Y^�V���Df.���UH��L��SL��H��H���BH���P�BxPj�B$PL���L���H����H�H�UH��([]Ð��UD��SH���D$(P�i���ZYH��H��tH�5X�!H��而����u��uH��H��[]�fDH���pB����@f.���AUA��ATM��U��SH���u|��H��H��t!L�����1҃��J�Sx@��u��uDH��H��[]A\A]�fDL���`�����t\H�u���H�C8E��u�H�%�H�CH��H�{@��L���U����Cx��tvH����H�CPH��H��[]A\A]�DH�����H�C8萐��H���H��葘������蔄��H9�����Cx���;���H�����H�CH�+���@�c���H���H���D���������H�������H����H���������H���H�CP����DH����H�C@����L���h���1҅������@H���H�CH����H�	�H�CH������H��t�F$����v�H��鐘����AWAVAUATUSH��H�H�<$dH�%(H��$�1�H����I��I��譙��H�D$H���OI�D$xH��H�l$XH�\$PH�D$H�@@H�D$ I��$�H�D$0H�@@H�D$8H�D$pH��H�D$����H�D$`H�D$(H�D$hH�D$@��fDI�D$xH��H�D$`H�D$hH�p0���L�D$(H��L��H�T$H�<$H�D$ ��I��H����I��$�H��H�p0����L�D$@H��L��H�T$0H�<$H�D$8��I��H����H�|$H��L��裛��I�/uI�W�D$LL���R0�D$LI�muI�U�D$LL��R0�D$L��xfH�|$H��H��讍��������fDH��$�dH3%(H�D$��H�Ĩ[]A\A]A^A_�f�L�=!I�L�|$�fDH�\$H�H�$H��H�tH�D$��H�CH��P0H�D$�x����H�\$H�H�$H��H�u
H�CH��P0I�/u�I�GL���P0��
���f.���H��t'SH��H�x�zr��H����nr��H�޿�[�����Df.���AWAVAUATUSH��XH�L$dH�%(H�D$H1�E����H����H�FxI��H��H�hHH���L�`HH����L�l$ H�t$L�|$L���~���H�D$H�$DH�4$L��L��������t]H�L$H��tH��tH�sxA�1�L����H�L$H��t�M��t�H���A�1�L��A����M���r����H�|$���H�D$HdH3%(uH��X[]A\A]A^A_�袅��f���AWAVAUATUSH��L�D$L�L$dH�%(H��$�1�H;
�!�yI��H��I��H��I���͂��H��H����L�����H���
L��H�D$����H�T$H��I����H�ExH�H8�@(H�L$@H�����
H�I8H�L$H���1�1�H�T$���H�T$H��H�D$8�5H���tHDŽ$�H�CHDŽ$�L�I�D$L�8M���jM���aH�B�H�\$`H��L��H�D$hH��$�H�D$PH�D$pH�D$(H��$�H�D$XH�D$xH�D$H�D$0�D$H�SxH��L��L�L$PL�D$(L��D$$H�D$@�Ѕ�t)H���L��L��L��L�L$XL�D$0H�D$H�Ѕ��UH�mH�\$`I��uI�CL��P0M��tI�/u
I�GL���P0H�+u
H�CH��P0I�,$uI�D$L��P0H�|$8諒���t$$H�=�[1��	|��H��H��t[H��$�H��$�H��$����H��$�H�F����kH��$�H��$��V~��H�+u
H�CH��P01�H��$�dH3%(�H�ĸ[]A\A]A^A_�I����f.�H�5�!H�=�!����DI�D$H�5�gH�PH��!H�81�觘��1��|���H���H�|$0H�p0�k
��H�|$(H��H�CxH�p0�V
��H�|$8H��H���f����D$$H�L$hH9L$��H�L$`H�D$HDŽ$�HDŽ$�H�QH��H�D$H�,�I�T$L�<�H��t	M�������H�\$`I��M������I�+���������H������H��$�H��H�/uH�D$H�G�P0H�t$H��tIH��$��Y���@���H�+u
H�CH��P0I�,$�Z���I�D$L��P01��J���fDH��$�����H��H�D$H�t$8H�0�E$��uH�D$H�0������D$$�&�����tH�D$H�����H�|$8����H�L$H�������ـ��f���AWM��AVI��AUI����ATA��U��SH���v���H��H��t!E���L��L��H���kp����uH��1��
l��H��H��[]A\A]A^A_�H�a���1�L��H�CX���L��I���Ӕ����L��M��I�ŸD��D�H��1�E1�j����q��H�Cx^_H��t�H��D���E1�jM��1�L���q��H���ZYH���[���L���x��L���x��A��tH�%���H�C8H�����H�CHA���/���H�5���H�C@H�
���H�CP������H��H���do_set_propertyiOO|OOlNiNNNOccciiiIIIlllkkkLLLKKKfffddd*__gsignals__overridecould not look up %s__gproperties__sOzzoclassdomain != NULLwarning != NULL`%s' is not an enum typestrip_prefix != NULL`%s' is not an flags typeO:gobject.type_nameunknown typecodes:gobject.type_from_name%s: unknown type name: %sOO:gobject.type_is_aO!|z:gobject.type_register-v%i__module__PyGObject::class__gtype__type has no basesself->obj == NULLgobjectmodule.csOiOO:gobject.signal_newcould not create signalO:gobject.list_propertiesO:gobject.newcould not create objectOsO:add_emission_hook%s: unknown signal name: %s(ON)Expected GValue argument.OO:_gi._gvalue_setgobject._PyGObject_APIG_MINFLOATG_MAXFLOATG_MINDOUBLEG_MAXDOUBLEG_MINSHORTG_MAXSHORTG_MAXUSHORTG_MININTG_MAXUINTG_MINLONGG_MAXLONGG_MAXULONGG_MAXSIZEG_MAXSSIZEG_MINSSIZEG_MINOFFSETG_MAXOFFSETSIGNAL_RUN_FIRSTPARAM_READWRITETYPE_GSTRINGgeneric-c-marshallerfeatures(iii)pygobject_versiongobject.WarningGLibGLib-GObjectGThreadvalue for __gsignals__['%s'] not in correct formataccumulator for __gsignals__['%s'] must be callablethird element of __gsignals__['%s'] tuple must be a sequencecould not create signal for %saccumulator function must return a (bool, object) tuplecould not create param spec for type %s__gproperties__ keys must be strings__gproperties__ values must be tuples__gproperties__ values must be at least 4 elements longlast element in __gproperties__ value tuple must be an int%s (while registering property '%s' for GType '%s')__gsignals__ attribute not a dict!__gsignals__ keys must be strings__gproperties__ attribute not a dict!paramspec tuples must be at least 4 elements longlast element in tuple must be an intUsing pyg_set_thread_block_funcs is not longer needed. PyGObject always uses Py_BLOCK/UNBLOCK_THREADS.could not convert parameter '%s' of type '%s'argument must be a GObject subclassInterface type %s has no Python implementation supportcould not create new GType: %s (subclass of %s)argument 2 must be an object type or interface typeargument 5 must be a sequence of GType codescould not get a reference to interface typecould not get a reference to type classtype must be derived from GObject or an interfacecannot create instance of abstract (non-instantiable) type `%s'signal_accumulator_true_handled can only be used as accumulator argument when registering signalsgobject.add_emission_hook requires at least 3 argumentsthird argument must be callable��e���e���e������e���e���e���X���e���e���e�������e���e���e����e���e���e���H���e���e���e�������e���e���e�������e���e���e���P���e���e���e�������e���e���e������e���e���e���`���e���e���e�������e���e���e������e���e���e���`���e���e���e�������e���e���e�����e���e���e������e���e���e�����e���e���e������pyg_enum_add_constantspyg_flags_add_constantspyg_parse_constructor_argsadd_warning_redirectionpygobject_constructv8��G�������%s can not be constructed:GBoxed.__init__dict != NULLclass_name != NULLboxed_type != 0could not get type `%s' ready%s isn't a GBoxedPyGBoxed::classPyGBoxed::marshalcopygobject.GBoxed<%s.%s object at %p (%s at %p)>!copy_boxed || (copy_boxed && own_ref)pyg_boxed_newpyg_register_boxed(O)__enum_values____enum_values__ badly formedinvalid enum value: %ld:GEnum.__reduce____dict__(O(i)O)G_IS_ENUM_CLASS(enum_class)pygenum.c<enum %s of type %s.%s><enum %ld of type %s.%s>typename != NULLs(O)Ocan't create constgtype != G_TYPE_INVALIDPyGEnum::classgobject.GEnum__gtype__ attribute not a typecodecomparing different enum types: %s and %sTrying to register gtype '%s' as enum when in fact it is of type '%s'pyg_enum_reprpyg_enum_get_value_namepyg_enum_get_value_nickpyg_enum_addpyg_enum_from_gtypeG_IS_FLAGS_CLASS(flags_class)pygflags.c%s | %s<flags %s of type %s.%s><flags %ld of type %s.%s>__flags_values____flags_values__ badly formedret != NULLcan't create GFlags subtypePyErr_Occurred() == NULLretval != NULLPyGFlags::classfirst_value_namefirst_value_nickvalue_namesvalue_nicksgobject.GFlagsunsupported arithmetic operation for flags typecomparing different flags types: %s and %sPyObject_IsSubclass(subclass, (PyObject*) &PyGFlags_Type)Trying to register gtype '%s' as flags when in fact it is of type '%s'generate_reprpyg_flags_get_first_value_namepyg_flags_get_first_value_nickpyg_flags_get_value_namespyg_flags_get_value_nickspyg_flags_newpyg_flags_addpyg_flags_val_newpyg_flags_from_gtype:GInterface.__init__could not ready `%s'PyGInterface::typePyGInterface::info__gdoc__gobject.GInterfaceinvalidated all closures, but data->closures != NULL !GObject descendants' instances are non-copyableproperty '%s' can only be set in constructorcould not convert %s to type '%s' when setting property '%s.%s'cannot set GOject properties without an instanceobject at %p of type %s is not initializedobject of type `%s' does not have property `%s'could not find signal invocation information for this object.%d parameters needed for signal %s; %ld givencould not convert type %s to %s required for parameter %dGObject.emit needs at least one argobject `%s' doesn't support property `%s'requires at least one argumentExpected string argument for property.GObject weak notify callback returned a value of type %s, should return Nonecannot use GObject property descriptor on non-GObject instancesGObject instance is not yet createdO:GObject.handler_unblock_by_funcfirst argument must be callableO:GObject.handler_block_by_func!(self->private_flags.flags & PYGOBJECT_IS_FLOATING_REF)PyObject_TypeCheck(self, &PyGObject_Type)couldn't make the type `%s' readysOs|iOOO:GObject.bind_propertySecond argument must be a GObjecttransform_to must be callable or Nonetransform_from must be callable or NoneCannot create binding from %s.%s to %s.%sg_slist_find(data->closures, closure) == NULLUsing non GObject arguments for connect_object() is deprecated, use: connect_data(signal, callback, data, connect_flags=GObject.ConnectFlags.SWAPPED)GObject.connect_object_after requires at least 3 argumentssOO:GObject.connect_object_aftersecond argument must be callableGObject.connect_object requires at least 3 argumentsGObject.connect_after requires at least 2 argumentsGObject.connect requires at least 2 argumentsgobject `%s' doesn't support property `%s'could not convert value for property `%s' from %s to %sPyGObject::has-updated-constructorThe properties of the GObject accessible as Python attributes.-property '%s' is not writableproperties cannot be deletedsO:GObject.set_propertyunknown signal names:GObject.emitcallback != NULLcan't convert valueuninitializedpygobject-object.cweak ref already unreffeds:GObject.get_propertynothing connected to %sO:GObject.disconnect_by_funcself != NULLgself->obj->ref_count >= 1__gi__sNNtp != NULL:__call__closure != NULLsOO:GObject.connect_objectsO:GObject.connect_aftersO:GObject.connect:GObject.__init__PyGObject::customPyGObject::class-initPyGObject::wrapperPyGObject::instance-dataPyObjectpropsgi._giGObject properties iteratorA GObject weak referenceunrefgi._gi.GObjectWeakRef__grefcount____gpointer__get_propertiesset_propertiesbind_propertyconnect_object_afterhandler_block_by_funchandler_unblock_by_funcchainweak_ref__copy____deepcopy__gi._gi.GObjectgi._gi.GPropsDescr__dir__gi._gi.GPropsgi._gi.GPropsIterpygbinding_closure_newpygobject_watch_closurepygobject_new_fullpygobject_switch_to_toggle_refpygobject_register_wrapperpygobject_ref_float��x�X�8default_valueblurb[sssssssssss]owner_typeminimummaximum[sssssssss]enum_class[ssssssssss]flags_classepsilon[ssssssssssss]cset_nthcset_first[ssssssssssssss]substitutornull_fold_if_emptyensure_non_null[ssssssss]<%s '%s'>%cgobject.GParamSpec<%s at 0x%lu>:GPointer.__init__pointer_type != 0PyGPointer::classgobject.GPointerpyg_pointer_newpyg_register_pointerpc->swap_data != NULLinvocation_hint != NULLobject_wrapper != NULLdo_Signals from %s:
   (,  -> invalid<GType %s (%lu)>s:GType.from_nameunknown type namecould not get object typeInterface %s

Object %s

Properties from %s:
  %s -> %s: %s
    %s
O:GType.__init__O:GType.is_acould not convert stringPyGType::marshalPyGType::marshal-helpergobject.GObject.__doc__is_interfaceis_classedis_instantiatableis_derivableis_deep_derivableis_abstractis_value_abstractis_value_typehas_value_tablepytypechildrendepthgobject.GTypecan't convert parameter to desired typecan't convert return value to desired typeobject != NULL && G_IS_OBJECT(object)Value must be None or a type objectcan't get type from NULL objectcould not get typecode from objectexpected enumeration type %s, but got %s insteadcould not convert string to enum because there is no GType associated to look up the valueenum values must be strings or intscould not convert string to flag because there is no GType associated to look up the valueflag values must be strings, ints, longs, or tuplesunicode character value must be 1 character uniode stringpyg_signal_class_closure_marshalpyg_closure_set_exception_handlerpyg_closure_marshalpyg_closure_newpyg_flags_get_valuepyg_enum_get_values:gi._gi.GOptionContext.__init__GOptionContext.add_group expects a GOptionGroup.Group is already in a OptionContext.O:GOptionContext.set_main_groupGOptionContext.set_main_group expects a GOptionGroup.O:GOptionContext.set_ignore_unknown_optionsO:GOptionContext.set_help_enabledGOptionContext.parse expects a list of strings.goption.contextO:GOptionContext.add_groupO:GOptionContext.parseargv_length <= G_MAXINTpygoptioncontext.cargvhelp_enableset_help_enabledget_help_enabledset_ignore_unknown_optionsget_ignore_unknown_optionsset_main_groupget_main_group_get_contextgi._gi.OptionContextpyg_option_context_parsezzzO:GOptionGroup.__init__sOOssOO:GOptionGroup.add_entriessciszhelp_descriptionset_translation_domaingi._gi.OptionGroupThe GOptionGroup was not created by gi._gi.OptionGroup(), so operation is not possible.GOptionGroup.add_entries expected a list of entriesThe corresponding GOptionGroup was already freed, probably through the release of GOptionContextz:GOptionGroup.set_translate_domaingi._gi.Pid cannot be manually instantiatedgi._gi.spawn_async: first argument must be a sequence of stringsgi._gi.spawn_async: second argument must be a sequence of stringschild_setup parameter must be callable or None__new__O|OsiOOOOO:gi._gi.spawn_asyncNNNNenvpworking_directorychild_setupuser_datastandard_inputstandard_outputstandard_errorclosegi._gi.Piduser_data != NULL�f���f��g��g���f���f��Xg��hg��xg���g��(g��@g��_pyglib_handler_marshalOi:pyg_channel_reads:variant_type_from_stringVariantTypegimodule.cO:flags_add_make_new_gtypec:identifierUnable to register flags '%s'PyO:enum_add_make_new_gtypeUnable to register enum '%s'O!:register_interface_infomust be an interfaceO!:flags_addO!:enum_add__package__gi.PyGIWarninggi.PyGIDeprecationWarninggi._APIhook_up_vfunc_implementationsource_newsource_set_callbackio_channel_read_install_metaclass_gvalue_getfirst argument is not a GLib.IOChannelO!O!O:hook_up_vfunc_implementationG_TYPE_IS_CLASSED (implementor_gtype)Couldn't find GType of implementor of interface %s. Forgot to set __gtype_name__?g_base_info_get_type (interface_info) == GI_INFO_TYPE_CALLBACKinfo must be an EnumInfo with info type GI_INFO_TYPE_FLAGSinfo must be an EnumInfo with info type GI_INFO_TYPE_ENUMenum_register_new_gtype_and_addflags_register_new_gtype_and_addspawn_async(argv, envp=None, working_directory=None,
            flags=0, child_setup=None, user_data=None,
            standard_input=None, standard_output=None,
            standard_error=None) -> (pid, stdin, stdout, stderr)

Execute a child program asynchronously within a glib.MainLoop()
See the reference manual for a complete reference.
signal_accumulator_true_handled_wrap_pyg_hook_up_vfunc_implementations|z:Repository.is_registereds:Repository.get_dependenciess:Repository.get_versionNamespace '%s' not loadeds:Repository.get_typelib_pathss:Repository.find_by_names:Repository.get_infospygi-repository.cs|zO:Repository.requiregi.RepositoryErrorlazyenumerate_versionsget_defaultget_loaded_namespacesget_immediate_dependenciesgi.Repositorys:Repository.get_immediate_dependenciess:Repository.enumerate_versions_wrap_g_irepository_get_infostype_type_instancegi.repository.%s%s(%s)pygi-info.cunable to get valuegi.docstringgenerate_doc_stringself->py_unbound_info == NULL__name__container_info != NULLexpected string namereturn attribute %s not foundInvalid info typeexpected integer value__info__size > 0%s.%s.%sPyType_Check (py_type)Must be %s, not %sO:FieldInfo.get_valueargument 1: field is not readableunable to get the valueOO:FieldInfo.set_valuefield is not writableunable to set value for fieldStructInfoObjectInfoInterfaceInfoININOUTDirectionNOTHINGCONTAINEREVERYTHINGTransferPTR_ARRAYBYTE_ARRAYArrayTypeCALLASYNCNOTIFIEDScopeTypeCHAIN_UPNOT_OVERRIDEVFuncInfoFlagsIS_READABLEIS_WRITABLEFieldInfoFlagsIS_METHODIS_CONSTRUCTORIS_GETTERIS_SETTERWRAPS_VFUNCTHROWSFunctionInfoFlagsVOIDBOOLEANUINT8UINT16UINT32UINT64GTYPEUTF8FILENAMEINTERFACEGLISTGSLISTGHASHERRORUNICHARTypeTagFUNCTIONCALLBACKSTRUCTBOXEDENUMFLAGSOBJECTCONSTANTINVALID_0UNIONVALUESIGNALPROPERTYFIELDARGUNRESOLVEDInfoTypeFalseNoneTrueandasassertbreakcontinuedefdelelifelseexceptfinallyforfromglobalimportislambdanonlocalnotpassraisetrywhilewithyieldprintget_fieldsget_methodsget_sizegi.UnionInfoget_flagsget_offsetget_signalget_invokergi.VFuncInfogi.UnresolvedInfoget_typegi.FieldInfogi.ValueInfogi.ConstantInfoget_prerequisitesfind_methodget_signalsfind_signalget_vfuncsget_constantsget_iface_structfind_vfuncget_parentget_interfacesget_abstractget_type_nameget_type_initget_fundamentalget_class_structget_unref_functionget_ref_functionget_set_value_functionget_get_value_functionget_valuesis_flagsget_storage_typegi.EnumInfoget_alignmentis_gtype_structis_foreignget_g_typegi.RegisteredTypeInfois_constructoris_methodget_symbolget_vfuncgi.FunctionInfois_pointerget_tagget_tag_as_stringget_param_typeget_interfaceget_array_lengthget_array_fixed_sizeis_zero_terminatedget_array_typegi.TypeInfoget_directionis_caller_allocatesis_return_valueis_optionalmay_be_nullget_ownership_transferget_scopeget_closureget_destroygi.ArgInfogi.PropertyInfoget_class_closuretrue_stops_emitgi.SignalInfogi.ErrorDomainInfogi.CallbackInfoinvokeget_argumentsget_return_typeget_caller_ownsmay_return_nullskip_returnget_return_attributecan_throw_gerrorgi.CallableInfoNameModule nameget_nameget_name_unescapedget_namespaceis_deprecatedget_attributeget_containerequalgi.BaseInfo%s constructor cannot be used to create instances of a subclass %sattribute '__info__' must be %s, not %sUnable to know the size (assuming %s is not a pointer)getting an union is not supported yetsetting an union is not supported yetcannot set a structure which has no well-defined ownership transfer rules��� ���0���@���@���P���P���`���p��������������������������Ё������������p���P�������������������P���P���`���`���P���`���`���p���p���p���p���p���p���p���p���P�����������������������h���h�������������������H���_callable_info_call_function_info_call_wrap_g_enum_info_is_flags_struct_field_array_length_marshal_wrap_g_field_info_get_value_pygi_g_registered_type_info_check_object_wrap_g_field_info_set_value_make_infos_tuplepygi_g_struct_info_is_simple_pygi_g_type_info_size_pygi_info_newgi._gi_s|z:require_foreignCouldn't find foreign struct converter for '%s.%s'could not find foreign type %sgi.Structattribute '__info__' must be %s or %s, not %smust be a subtype of gi.Structmissing introspection informationstruct cannot be created directly; try using a constructor, see: help(%s.%s)finalizedispatchcheckprepareOO:set_callbacksecond argument not callableSourcesource prepare function must return a tuple or Falsesource prepare function return tuple must be exactly 2 elements longset_callback requires at least 2 argumentsfirst argument is not a GLib.SourceUnable to marshal %s to gssizeg_type_info_get_tag (type_info) == GI_TYPE_TAG_ARRAYUnable to determine array length for %ptransfer == GI_TRANSFER_NOTHINGStack overflow protection. Can't copy array element into GIArgument.Failure to allocate array for %u itemsg_type_info_get_tag (key_type_info) != GI_TYPE_TAG_VOIDg_type_info_get_tag (value_type_info) != GI_TYPE_TAG_VOID!g_type_info_is_pointer (type_info) || transfer == GI_TRANSFER_NOTHINGerror marshalling is not supported yet���������������������p��`��`�� �� �������������� �� �� �� ������������<��<�����������������|��<��<��<��<��[��[��[��[��[��@���������������������������������������������������������`�����������,��,��������������������,��4��4��d�����������<��4��l�����������\��L�����������d��d��4��4������������d��_pygi_argument_release_pygi_argument_to_object_pygi_argument_from_object_pygi_argument_to_arrayUnsupported type %slength_arg_pos >= 0pygi-argument.cUnexpected array type %uitem_type_info != NULLItem %zu: key_type_info != NULLvalue_type_info != NULLexpected sequenceItem %zd: (O, (N))PyDict_Check (mapping)pygi-resulttuple.c__slots__PyList_Check (tuple_names)%s=%%rjoin_ResultTupleO:ResultTuple._new_typenot a listgi._gi.ResultTupleresulttuple_getattropygi_resulttuple_new_typegi.repository.must be a subtype of gi.Boxed__del___free_on_deallocPassing arguments to gi.types.Boxed.__init__() is deprecated. All arguments passed will be ignored.info should be Boxed or Union, not '%d'boxed cannot be created directly; try using a constructor, see: help(%s.%s)����d�t������������$����������4�����������������������������������������������������������o���������������o���o������������������0�������0�������Y�������������������o���Unhandled type tag %sexpected tuple for callback user_dataInvalid scope reached inside %s.  Possibly a bad annotation?Callback needs to be a function or method not %sCallables passed to %s will leak references because the method does not support a user_data argument. See: https://bugzilla.gnome.org/show_bug.cgi?id=685598gi.CCallbackpygi-util.c���0���P���p���������pyg_integer_richcomparedo_get_propertyproperty %s is not readableSetting properties of type '%s' is not implementedSetting properties of type %s is not implemented����������������������T�����������������������4�����D��L��L��<��,������������L��>=n_sig_info_args >= 0pygi-signal-closure.c==sig_info_highest_arg == n_param_valuespygi_signal_closure_marshalpygi_signal_closure_newnon-keyword pygi-invoke.cpy_return == NULLCannot invoke callback types%.200s() takes exactly %zd %sargument%s (%zd given)%.200s() cannot use variable user data arguments with keyword arguments%.200s() got an unexpected keyword argument '%.400s'%.200s() got multiple values for keyword argument '%.200s'%s() takes exactly %zd argument(s) (%zd given)Could not caller allocate argument %zd of callable %sArgument %zd does not allow None as a value_invoke_marshal_out_args_invoke_marshal_in_argspygi-cache.c%s is deprecated: %s%s is deprecatedconstructor returned NULL��������8��8��`�����������������8��H ��H ��H ��H ��H ��H ��H ��H ��H ��H ��H ��H ��H ��H ��H ��` �����������( �� ��H ��_arg_cache_new_for_interfaceneed the GType of the implementor classunknown error creating invoker for %sConstructors require the class to be passed in as an argument, No arguments passed to the %s constructor.Must be number, not %sexpected int argument%ld not in range %ld to %ld%lld not in range %ld to %lupygi-basictype.c%g not in range %g to %gMust be a single characterMust be gobject.GType, not %sMust be string, not %sMust be bytes, not %sInvalid unicode codepoint %us4��s4���2��3��@3���3���3��4��@4���2��8:��x:���:���:���7���7���7���7���7���7���7��8��h8���8���8��x7��x7��x7��x7��x7��x7���9���=���<���<���<��=��=�� =��0=��@=��P=��`=��x=���=���=���=���=���=���=���=���=���=���<��_pygi_marshal_from_py_voidpygi_arg_basic_type_setup_from_info_pygi_marshal_from_py_unichar_pygi_marshal_from_py_long_pygi_marshal_from_py_basic_typearg_cache->transfer == GI_TRANSFER_NOTHINGPointer arguments are restricted to integers, capsules, and None. See: https://bugzilla.gnome.org/show_bug.cgi?id=683599Pointer assignment is restricted to integer values. See: https://bugzilla.gnome.org/show_bug.cgi?id=683599((PyASCIIObject *)(py_arg))->wstrMust be a one character string, not %lld characters����������pygi-list.cMust be sequence, not %sItem %i: _pygi_marshal_cleanup_to_py_glist_pygi_marshal_cleanup_from_py_glistpygi_arg_glist_setup_from_infoarg->v_pointer != NULLpygi-array.cUnable to marshal %s to gsizeM��M���L��M��M���L���L���L���L���L���T���T��GU��6U��$U��U���T���T���T���T��_pygi_marshal_from_py_array_pygi_marshal_to_py_arrayMust contain %zd items, not %zdCannot cleanup item data for array due to the items data its cleanup data being different.item_size == sizeof (item.v_pointer)Unable to marshal C Py_ssize_t %zd to %serror != NULLssiMust be GLib.Error, not %smessagegi._errorGErrorGLib.Error instances must have a 'message' string attributeGLib.Error instances must have a 'domain' string attributeGLib.Error instances must have a 'code' int attributepygi_error_checkpygi_error_marshal_to_pyexpected GObject but got %sselfExpecting to marshal a borrowed reference for %s, but nothing in Python is holding a reference to this object. See: https://bugzilla.gnome.org/show_bug.cgi?id=687522argument %s: Expected %s, but got %s%s%sConverting GValue's of type '%s' is not implemented.Invalid GObject type for assignment\i���i���i��j��li���i��li���i���i���j���j���j��,j��<j��<j��,i��Lj��,i��,i��,i��Ii��j���h���h��k���j���j���j��$k��$k���h���k���l���l���l���k���l���l���l���k���l���l���l���k���l���l���l��l���l���l���l��l���l���l���l�� l���l���l���l��8l���l���l���l��pl���l���l���l��Pl���l���l���l��`l���l���l���l���l���l���l���l���l���l���l���l���k���x���z���z���z��\x���z���z���z���w���z���z���z���w���z���z���z���w���z���z���z��Lw���z���z���z��4w���z���z���z��w���z���z���z���y���z���z���z���y���z���z���z��ty���z���z���z��<y���z���z���z��z���z���z���z���y���z���z���z��4z���z���z���z���v���z���z���z���u���z���z���z��\u���z���z���z���t���z���z���z���t��(null)unknown type %sGObject is requiredUnsupported conversionCannot convert to TYPE_CHARout of range for int propertyExpected stringExpected pointerExpected BoxedExpected ParamSpecExpected GObjectExpected VariantUnknown value typeUnable to marshal %s to C longg_base_info_get_type (interface) == GI_INFO_TYPE_ENUMg_base_info_get_type (interface) == GI_INFO_TYPE_FLAGSUnable to marshal C long %ld to %s��������p�������������������`���P���P���ȃ��ȃ����������������������������������_pygi_marshal_from_py_interface_flags_pygi_marshal_to_py_interface_flags_pygi_marshal_from_py_interface_enum_pygi_marshal_from_py_interface_enum_pygi_marshal_to_py_interface_enumpygi-enum-marshal.cExpected a %s, but got %sstructure type '%s' is not supported yetUnable to retrieve a GObject type class from "%s".unable to retrieve object's GTypePyObject conversion to GClosure failedg_type_is_a (g_type, G_TYPE_VARIANT) || !is_pointer || transfer == GI_TRANSFER_NOTHINGpygi-struct-marshal.cMust be callable, not %sexpected GLib.Variantpygi_arg_struct_to_py_marshallerpygi_arg_struct_from_py_marshalMust be mapping, not %s;�p8�h����4���4�4��~�4���~h5���x5����5���5��8�5��L�6���8��;��tx<���8C����F���J��$�K��`�K��|XL����M��XN��D�N��\�N��p8O���xO���(Q��d8R���8S���HT��\XU���V����V��HW��8X]����]���H`��8b��h�c���(d���Hf���xf���f��,�g��P�g���hj����j���k����k���k��,�k��T�k��h�l���hm����m��n��<ho����p�� �p�� Hr��P �r��� �t��� Xu��� 8v��@!�w���!�x���!y���!�|��H"�}���"�~���"��� #Ȁ��`#����#�����#���$$����X$���$�����$H����$����@%����%�����%H���&��H&(����&8����&�����&ؐ���&���� 'ȑ��4'��H'8����'h����'�����'�����'�����'x���0(��\((����(H����(x����(x���)����4)ؖ��L)X���l)�����)�����)ȗ���)8����)(���4*����\*(����*h���+���d+8���x+�����+H���,(���\,H����,����,����4-�����-�����-X���,.H����.H����.ذ���.h���/����T/Ȳ��l/h����/�����/X����/��@0����0�����0�����0h���1��01h���h1���1h����1�����1����2���$2(���X2����2����28��D3����3����38���3���h4����4���H5X���5(���5����5���86����6X���6��7(��78�8��08��T9�p9H�9��98��9H��9X�:h�:��H:h�l:��:��:(���;���p;H����;X����;���� <8���L<8����<H����<X���=h���$=����<=����T=��l=���=H���=x���=����=����=���=8��>X��,>���X>����>8���>x���>���?���(?���d?8���?X���?x���?���?���H@��\@���@����@
���@���PAx���A8���A���B���hB���|B8���B����Bx��C���C���PCX��tCx���CX���CH���Ch���C���D��4D���XD����D���DH���D����D���E���@EH��pE����E� ���E� ��F8#��`Fx#��tFH$���F�$���FH%��Gx%��G(&��DGX&��`G�&��xG�&���G�,��H�-��XH�-��lH.���H�.���HX/���H�/���H0��I�2��\I�2��pI3���I�5���I�8��4J�;���JX<���J�<���JH=��K�=��K�?��TK�?��hK8@���KA���K�A��LXB��<LC��hL�C���L�D���L(F��M(G��@MxG��\MXH���M�H���MhI���M�I��N�I��,N�I��DN�I��\NJ��tN8J���NXJ���NxJ���N�J���N�J���N�J��OK��O(K��4OHK��LOhK��dO�K��|O�K���O�K���O�K���OL���O(L���OHL��PhL��$P�L��<P�L��TP�L��lP�L���P(M���PHM���P�N���P�N��Q�O��@Q�O��XQ�O��pQP���Q8P���QXP���QxP���Q�P���Q�P��R�P��R�P��0RQ��HR8Q��`RXQ��xRxQ���R�Q���R�R���RS��SxS��(S�T���SV���SHV��T�V��DThW���TX���THX���TxX���T�X���T�X��U�X��$U�X��8UY��LU8Y��`UXY��tUxY���U�Y���U�Y���U�Y���UHZ���U�Z��$V[��XV([��lV�\���V(]���VH]���Vh]���V�]��W�]��W�]��0W�]��DW^��XW(^��lWH^���Wh^���W�^���W�^���W�^���Wh_��XH`��\Xh`��pX�`���X�`���X�`���X�`���Xa���X(a���XHa���Xha��Y�a��$Y�a��8Y�a��LY�a��`Yb��tY(b���YHb���Yhb���Y�b���Y�b���Y�b���YXc��,Zxc��@Z�c��TZ�c��hZ�c��|Z�c���ZXd���Z�d���Z8e��<[xe��\[(f���[�f���[h���[hj��0\k��h\�l���\�o��<]�s���]����]X���^Ȗ��L^X����^�����^����^H���4_����h_���_�����_ؙ���_���_����(`H���t`H����`؜���`X��� ax���\a����a؟���a����b(���`b8����b����bh����b����cx���4c��TcȦ���c����d�����d����eh���`e����e���f���tf����f���f���4g����gX���g����g����g(��@hX��hh����h8���hH���h��� i���4i8��Ti(���i���i��8jH��`j����j���j���j��kH��8k���Lk���kh���kX���k���0l��Dl����l8��l��m(�LmX�hm���mX��m�� n��pn8��n���n�(o��xoh��o���p�����p(����ph����p���$q���8q���pq����q��@r��Tr���tr����r	���rH	���r�	���r�
��(s���`s8���s����s����s��4t���|t���t���,u���@u����u����u��v(��0vx��\v���xv(���v����v����vH��w���Lw���xw����w8��x�!��Lx�!��`x�!��xx�!���x�$���x%��y&��8y(&��Ly�&���y'���yh,���y�,���y�.��z�.��,z�/��xz�0���z�2��{�4��d{�5���{�8��0|h;���|�<���|8B��}xJ��l}�L�� ~�N���~�N���~�P��0�Q����Q����R���(S����S���T��D��V����8W�����W���Y��$�xY��P�Z����xZ�����[���X\��<��\��T�H^��̂�^����^����^����_��\��_��p�(`����8`�����`���d��$�he�����f����i�� �k��d��m�����y���(z����z��H�h{�����|���X}���H~��L������������8��������|�ȃ���������(���̉H����h����Ȅ��,����8����h���0�����D�����������������H����������h���@�����T�������8�����X����(���\�zRx�$���0!FJw�?:*3$"D���� !\x!��pt!��	$�p!��1E�A�G [CA��!��	L��!���F�E�E �A(�D0�i
(D BBBHi
(D BBBM`"��YF�E�E �A(�D0��
(D BBBKK
(D BBBKe
(D BBBIpt#���B�B�B �L(�A0�A8�G�V�k�R�A�^
8A0A(B BBBI��N�B�F�Z�<��%��jF�E�E �D(�A0��
(D BBBB�(�&���B�E�E �E(�G0�D8�J��
8A0A(B BBBIa�H�U�A�z�H�V�A�t�K�U�B�v�K�T�B�w�K�V�B�u�K�V�B�u�K�U�A�w�K�U�A�L��,��JB�E�B �B(�A0�A8�G�$
8A0A(B BBBFLH�/���F�B�B �E(�A0�A8�G�f
8A0A(B BBBH8��2���F�B�D �A(�D`
(A ABBE�P4��/E�e4�d4��oB�D�D �T
ABGACBH(�4��1F�B�E �B(�A0�D8�F@a
8C0A(B BBBI@t�5���E�D�J A
DAGx
DACG
DAA�6��Q^i�T6��	H�P6��jF�E�D �D(�G0M
(J DBBG\(D ABB(0t6��:F�D�H �]DBx\�6���F�B�B �B(�A0�A8�Gp�
8F0A(B BBBKe
8C0A(B BBBGY
8C0A(B BBBAL��7��F�B�A �D(�G0W
(J ABBF�
(D ABBK4(|8���e�D�G SC�D�v ��p��l`D9��F�B�H �D(�A0�o
(D BBBJA
(H DIBHW
(H EGFGJ(A BBBl��9��F�B�H �D(�A0�o
(D BBBJA
(H DIBHW
(H EGFGJ(A BBB@�:���H0n
J(\;���E�A�Q0�
AAB ��;���E�N0s
AAH�<��F�L�B �B(�A0�A8�I��
8A0A(B BBBD(��A���F�A�A ��CBh$@B��BF�L�B �B(�A0�A8�Dp^xF�RxApW
8A0A(B BBBDGxH�H�B�RpH�$D���F�L�B �B(�A0�A8�D`"
8A0A(B BBBH8��E���F�L�D �A(�DP^
(A ABBA	LG��%H\80	dG��F�H�A �D(�D`7
(A ABBDl	HI��-�	dI��ZE�q
JY �	�I���E�N0�
AA0�	@J��WE�M�D v
AABDAA�	lJ��kE�^0
�L��gE�D�D E
AALDAAH
�L��8E�k$d
 M��mE�M�D FKA�
hM��	$�
dM��LE�A�G {AA�
�M��	X�
�M���F�I�A �D(�D@�
(A ABBBX
(A ABBBP(C ABB 8N���A�S�k
AA\xN��,E�f4x�N��db�D�K �X
ABDL�A�B�t��N��Qa�B�B �A(�A0���(D� B�B�B�e0�����P�����p0�����d�(C� G�D�B�H(�O��kF�B�B �B(�A0�A8�D@`
8D0A(B BBBAt�P��8��P��CE�K�D �
AADK
AAC,��Q��cB�I�K �D0D AAB0�0R��!F�H�J �K0P
 AABI0(
,T��iE�C�Q k
GJKDCAT\
hT���W�B�D �D(�G0v(J� A�B�B�[0����D(C ABB`�
�T���F�I�B �A(�D0��8K@Y8A0[
(H BBBJv
(C BBBAL
8N@F(LV���E�D�D R
DAD(D�V���E�D�D R
DADHpW��zF�B�B �B(�A0�A8�DpI
8D0A(B BBBH\�HZ��F�B�A �A(�D@`
(A ABBDp
(A ABBBw
(D ABBH4�Z��3E�K�D �
AAGK
AAC<T\���F�B�B �A(�D0��
(D BBBD<��\���F�B�B �A(�D0��
(D BBBD�`]��GHn
JFT��]���W�B�D �D(�G0v(J� A�B�B�[0����D(C ABBHL^��F�B�B �B(�D0�A8�D@_
8D0A(B BBBG0��_���B�I�K �D0n
 AABD@�X`��!F�I�B �J(�H0�D@
0A(A BBBF(Db���E�D�D W
DAG(<�b���E�D�D W
DAGHhLc��WF�B�B �B(�A0�A8�Dpq
8D0A(B BBBH\�`f��`F�B�D �C(�D0�
(D ABBA\
(D ABBK~
(A ABBL4`g���F�H�D �]
ABNNCB4L�g���F�H�D �]
ABNNCB4�0h���F�H�D �]
ABNNCB4��h��3E�K�D �
AAJK
AAC��i��	 �i��oA�S�T
AA,�i��,E�fHH�i���M�B�E �G(�D0�~
(D BBBID(C GDB��j����j��4��j��KE�K�D }
AAEq
HDK��k��-�k��+QL �k��	(4�k��BF�D�D �i
ABA@`l��}F�D�D �q
ABNJ
ABKMAB(�@l��iE�A�G @
AAA$��l��1E�A�G [CA��l��E�W(�l��0F�D�A �]ABL@�l���F�E�B �A(�D0�i
(A BBBFz
(D BBBL�Tm��%H\�lm��%H\��m��yE�T
G��m��@E�c
HKn��	n��E�P(0n��fE�A�D0T
AAAH\Hn���F�B�B �B(�A0�A8�DP�
8A0A(B BBBA$��n��`E�D�D MDA@�$o���B�F�B �A(�D0�DP�
0A(A BBBD`�p��9F�B�B �B(�A0�A8�D@�
8C0A(B BBBFI
8J0A(B BBBL\x\q���F�E�B �A(�G0�Y
(D BBBHF
(G BBBMA(D BBB��q��0��q��LF�A�N �D@�
 AABH\ �r���F�E�A �A(�L0�
(D ABBA}
(D ABBJQ
(D ABBAL�4t���F�F�B �B(�A0�A8�J�g
8A0A(B BBBCL��w��F�F�H �E(�A0�A8�G�
8A0A(B BBBH8 �{���B�A�A �l
ABE[
ABJH\|��zF�B�E �B(�D0�D8�D@�
8D0A(B BBBOL�L}��F�G�B �B(�D0�D8�G�
8A0A(B BBBAl���F�B�H �D(�A0�q
(D BBBH`
(D BBBFM
(D BBBAY(D BBB4h����E�A�G [
CADK
CAAX�$����F�I�A �D(�D@�
(A ABBCX
(A ABBBP(C ABBD������B�B�B �B(�D0�H8�IP�8A0A(B BBBDp����E�U
F `���E�D S
AC@�P���Y�A�A ���D�B�S ���s�D�B��,���:dU8�T����F�K�A �D
ABGX
ABE����;\^ 4���E�Q N
AKXXl����F�E�D �D(�D0g
(A ABBDa
(D ABBND(C ABB<�����(F�B�E �D(�A0�M
(A BBBJ������E�Z
I4���E�A�G �
DAEK
DAH(L؆���E�A�G0a
AAH(x\���rM�D�A �\AB4�����tE�I�G@sHKPMHA@e
AAH4�����tE�I�G@sHKPMHA@e
AAH4@���tE�I�G@sHKPMHA@e
AAHL����BE�m
NAl����7Oa���0���
N�m
�Ex
Hh�X�E�H�Ȍ���F�B�B �B(�A0�A8�D@c
8D0A(B BBBF8����B�B�D �A(�D@�
(A ABBD`T�����F�G�B �B(�D0�D8�G`�
8A0A(B BBBF�8H0H(D BBBp����F�B�A �A(�D0}
(D ABBD�
(D ABBEO
(D ABBHd
(D ABBK, ���
$@ ���TE�l
OL
DCph <���bF�B�B �B(�A0�N8�D�o�X�F�F�U��G�Z�A�I
8A0A(B BBBJ\� 8���-O�B�A �D(�G0o
(J� A�B�B�Ec(A� A�B�B�_0����zRx�0����$����
Hp!Ԗ���B�E�E �E(�D0�J8�G��
8A0A(B BBBC8�!8����F�H�A �D(�D`
(A ABBA8�!̙���F�H�A �D(�D`�
(A ABBD84"`����F�H�A �D(�D`�
(A ABBH8p"��F�H�D �A(�D`�
(A ABBAL�"x����F�B�B �B(�A0�A8�D�6
8A0A(B BBBF8�"����F�B�A �D(�DP@
(A ABBI88#�����F�K�A �\
ABOA
ABDt#���	��#���
F�A�A ��(O0O8O@OHOPOXH`HhHpK 9(O0O8O@OHOPK A
ABGO(O0O8O@Y A
ABAD(O0H8H@HHHPn I
(O0H8H@HHHPBD(O0O8H@HHHPHXH`g N(O0O8O@` I(O0O8H@HHHPHXH`(x$,���{E�A�G�f
AAA �$����-F�G�B �A(�A0�
(H DBBLH
(A BBBIo
(A BBBJe
(A BBBL`
(H DBBH�
(A BBBFH
(A BBBE�
(A BBBE�
(A BBBE�
(A BBBE�
(D BBBEu
(D BBBE�
(H FDBE�%����E�P�%����5$�%����FE�D�D sDA0 &���E�D�D u
AADDGHT&P���h&L���	|&H���	(�&D���vE�A�G�a
AAA �&����A�S�d
AA�&�,E�f�&���-t'$���Qa�B�B �A(�A0���(D� B�B�B�e0�����P�����p0�����d�(C� G�D�B�X�'����F�B�A �A(�D0`
(D ABBI_
(A ABBKv(D ABB4�'����#E�K�D �
AAGK
AAC(����	`0(����:F�B�E �B(�D0�A8�G`
8A0A(B BBBFD
8Q0A(B BBBJ(�(p����E�A�G W
AAJ`�(���F�B�B �E(�A0�D8�FP&
8A0A(B BBBFK
8J0A(B BBBJH$)����B�B�B �B(�A0�D8�L�U
8A0A(B BBBAp)D��	�)@��	�)<��HM�)D��+H[�)\��"HR�)t��"HR�)���"HR*���"HR(*���"HR@*���"HRX*���$HWp*��#HV�*��HM(�*$��xE�D�D�c
AAA4�*x���A�Y
FY
GY
GY
GY
CH8+����F�A�D �Q
ABAb
CBA@+d��=E�a
JL`+���5$t+���8E�D�D hAA8�+����F�B�A �A(�D@|
(A ABBA8�+,���F�B�A �A(�D@|
(A ABBA,���HM,,���HM D,����E�P L
AFPh,���F�A�A �D0�
 AABAz
 CABH`
 AABD�,���H�,���
F�B�B �B(�D0�A8�D��
8A0A(B BBBJ -h��|E�[ D
AK @-���}E�Q `
AA\d- ���F�B�A �A(�D0�
(A ABBEy
(F ABBDJ
(C ABBFH�-����F�B�B �B(�A0�A8�DP(
8A0A(B BBBDL.����F�B�B �A(�A0�l
(D BBBFY
(D BBBE(`.D��nL�D�D �e
ABLL�.����F�B�A �A(�D0�
(D ABBG[
(D ABBD�.(��%�.D��b\E0/���jE�A�D P
DAADDA4</����E�D�G0O
AAG|
AAJt/p��$HX4�/���;E�K�D �
AAJT
ADG �/���lE�Q 
AJ�/���(�/����E�N�P0x
AAC((0����E�N�P0�
AAKT0`��HM l0h��~E�[ W
AA�0���HM �0���~E�[ W
AA@�0(��=F�I�K �H(�A0�D`�
0A(A BBBD1$��IE�t
G,1X��,@1t��5$T1���@E�D�D pAA4|1����E�K�D d
AAFD
GHM,�1@���E�[@VHFPRHA@V
AJ0�1����E�A�G Z
CAE^CA<2<���F�E�E �A(�D0�O
(A BBBEX2���.E�d\t2���bF�B�B �B(�A0�D8�D���L�Y�A��
8A0A(B BBBH�2���5(�2����E�D�D0s
AAF$3���@E�D�D pAA4<3����E�K�D d
AAFD
GHMt3@��(H_(�3X���E�A�G \
CAK�3���(E�Z�3���$H[�3��6HS�40��F�O�I �B(�A0�A8�G���F�F�F�F�F�I�U��
8A0A(B BBBE�O�D�B�B�F�U�8�4���E�R�K b
AAJD
GHM�4H�#$�4d�1E�A�G [CA85|��F�A�A �X
ABEj
ABKD5���X5l��l5��L�5��vF�L�B �B(�A0�A8�D��
8A0A(B BBBF�5$�	�5 �oH a
AX6t��F�L�B �B(�A0�A8�DpgxF�MxAp0
8A0A(B BBBGH\6��F�O�I �B(�A0�A8�D`�
8A0A(B BBBKH�6���F�O�I �B(�A0�A8�D`�
8A0A(B BBBK(�6�E�K�F0�
AAG4 7��kB�D�D �|
ABGIIGX7��|H n
At7@�|H n
A4�7���F�M�A ��
ABDCDB�7<�	 �78�E�[0_
AA88���F�I�D �A(�T@�
(A ABBA8<88����F�I�D �A(�T@�
(A ABBA4x8���F�B�A �A(�D0g(D ABB(�8����E�N�P0S
AAH(�8�����E�N�P0S
AAH09���F�H�J �K@�
 AABBH<9����TF�I�K �I(�A0�A8�DP�
8A0A(B BBBD(�9����E�[HhPRHA@f
AF�9��ME�T
G@�9����F�I�E �A(�A0�T@�
0A(A BBBA4:�����E�D�D {
AAF~DAL:���iE�|
Oh:l���)E�U
FD�:|���HM�:����HM�:����HM�:����HM�:����HM;����HM;����HM0;����HMH;����$HT`;���HMx;���HM�;��HM�;��HM�;�HM�;����HM�;���HM<���HM <���HM8<���HMP<$���HMh<,���HM�<4���HM�<<���HM�<D���HM�<L���HM�<T���&HT�<l���+E�X=����HM0,=����BF�D�G �G@�
 AABJ`=����HM8x=����F�B�A �D(�DP�
(A ABBC�=p���HM�=x���HM�=����HM�=����HM>����HM,>����HMD>����HM\>����HMt>����HM�>����HM�>����HM�>��� HM�>���HM�>���HM?��HM@?��6F�A�D �D0J
 DABHK
 DABF`?��<E�n|?��]Hb
FO
AT�?H��F�E�E �D(�A0�D@�
0A(A BBBGt
0A(A BBBL`�?��xF�B�B �B(�D0�D8�G@X
8J0A(B BBBJ8C0A(B BBBX@��8H\
DO<x@<���E�A�D |
ADEZ
CAB_CA<�@���zE�D�G y
AAEO
AAGOAA �@����i�h
Gi
GAX��8H\
DO<Ax��0DN
NO\A���pA����A����A����A����A����A����A����A���B���$B��$8B��jE�m
NL
DY4`BT��\Q�D�K d
FAEDCAA��0�B|��cE�A�D \
DAEmDA�B���(�B����E�D�D f
DAH0C8��FA�A�D a
DADPDA@CT��TC`��hCl��|Cx���C����C����C����C����C����C���D���D���0D���<DD����E�A�D B
DAGO
DAD\DAH�DP���B�B�E �E(�A0�A8�DP�
8D0A(B BBBB�D����D����D���E�� E��4E ��HE,��\E8��pED���EP���E\���Eh���Et���E����E����E���F���$F���8F���LF���<`F����A�A�D C
DABO
DAD\DA�F$	���F0	���F<	���FH	���FT	��$G`	��Zi�D�G cAA<,G�	��iE�N�D0b
AAEX
AAFDCA@lG�	��lF�D�D �\
ABKR
ABKLAB�G�	��8HU
KO4�G
���E�K�D |
DAKN
DAEH�
���Df4 H��ZE�A�G0i
AAHD
FAEHXH,��GF�B�B �B(�A0�A8�D`+
8A0A(B BBBI4�H0���F�A�D �N
ABDxAB��H���}B�E�A �D(�D0a
(D ABBFv
(D ABBAT
(G DBBEX
(D DBBDX
(D ABBAL`I���<F�B�B �B(�A0�A8�Q�
8A0A(B BBBI@�I���*F�B�B �N(�A0�Dp

0A(A BBBAd�Ip��"F�I�E �A(�H0�u
(A BBBG�
(G IBBEa
(D BFBB$\J(8��9A�M�F _DA8�J@8��jI�B�B �A(�A0�P(D BBB8�Jt8���B�D�D �Q
ABBO
ABF$�J�8��*A�A�G TDDH$K�8��xF�E�D �G(�G0R
(M ABBGg(C ABB4pK9��7F�D�C �Z
ABFACB0�K9��JE�D�G W
GAIOAA8�K(9��OF�J�E �D(�D0�f(A BBBL<9���H0�
G4L�9��%TPLL�9��8`L�9���B�H�A �C
ABGN
ABGH�L�:���F�B�B �A(�D0�Y
(D BBBFC(D BBB0�L�:���F�A�A �G@�
 AABJ8M�;���F�E�D �D(�D0@
(A ABBC8XM�;��zF�E�D �D(�D0{
(D ABBE8�M0<��F�J�J �q
ABBf
DBD0�M=���E�D�D m
AADDGHLN�=���F�A�A �C
DBOU
DBEK
DBOFDB8TN�=���F�E�A �D(�G0j
(C ABBG@�Nt>���F�A�A �B
ABCU
ABHRAB8�N�>��F�E�A �A(�G0�
(C ABBD0O�?���F�D�D �D@$
 AABFDO@A��AE�{(dOpA��DA�F�D d
CAE�O�A����h�O<B��hE�l
Gal�O�B���E�D�J K
AAHV
AAHH
AAFG
AAGH
AAFG
AAGGAA@8P�B���F�E�B �G(�D0�N��
0A(A BBBG�|P�C��[F�E�E �E(�D0�G8�G`e
8A0A(B BBBJM
8C0A(B BBBGm
8A0A(B BBBIP
8A0A(B BBBF�
8A0A(B BBBG\(Q<E���	F�B�B �E(�G0�C8�D�H
8A0A(B BBBA{�K�R�A�H�QlN���F�B�B �E(�D0�G8�F�x
8A0A(B BBBFd�QT���	F�B�B �E(�D0�A8�J�d
8A0A(B BBBD��E�B�B�[�L<R(]���F�K�A �D0I
 AABEX
 AABDD CABX�Rx]��F�B�A �D(�D0�
(A ABBJD
(D ABBKD(A ABB\�R,^�� F�B�K �A(�D0�
(D ABBHN
(D ABBAu
(D DBBGHS�^��7HX
PF<hS_���F�E�B �K(�A0�y
(D BBBDH�S�_���F�B�B �B(�A0�A8�Dp�
8D0A(B BBBJ�S@c���H P
H T�c���`�T
DH�,4T d���E�D�D |
AAELdT�d���F�H�K �D0u
 AABJX
 AABDD CAB$�T�d��.E�A�G TDD0�T�d��TE�A�G o
DAGFDA@Ue��zE�D�D0o
AABX
AAFD
CAHTUPe��(hULe��rE�A�G I
AAH�U�e��
�U�e��WHe
Cf@�U�e���E�D�G ~
DAEh
DAKY
DAB`V�f���F�B�B �A(�A0�d
(A BBBIS
(A BBBFO
(A BBBJ8pVg���F�B�D �A(�D@�
(A ABBF$�V�g��?E�A�G oAA4�V�g���E�D�D ~
AACDGHWXh��0 WTh�����D�G `AAB��p ��8TW i�����D�D �g
ABDn�D�E��W�i��1J�]��Wj��N4�WDj��qB�A�D �x
DBKH
DBJ�W�j��JE�@@X�j���B�E�E �A(�D0�D@�
0A(A BBBGHXXlk���F�B�B �E(�A0�I8�G�J
8A0A(B BBBA�X�q�� 8�X�q���F�L�L �D(�D0�a(A BBBH�X r���F�B�B �E(�D0�D8�GP�
8C0A(B BBBHH@Ydt���F�E�E �J(�D0�D8�DP	
8D0A(B BBBD0�Y�u��\E�D�G0Q
DAJgCA�Y�u��0E�bH�Y�u��}F�B�B �B(�A0�A8�D@N
8D0A(B BBBC0(Zv��xE�D�D F
AAKDGH4\Zhv��+E�A�D R
AABl
AABL�Z`w��B�B�E �A(�A0�G
(A BBBG�(A BBB<�Z0x���E�G�D0r
AADX
AAFdAA@$[�x��VF�F�B �A(�A0�G`�
0A(A BBBC0h[�z��nE�D�G U
GAKqCAL�[�z���F�I�B �B(�D0�A8�G�"
8A0A(B BBBEt�[X���F�B�B �B(�D0�A8�G�[�P�b�T�B
8A0A(B BBBKL�P�P�I�L�L�(d\p����E�A�G h
AAI`�\�wF�B�B �A(�A0�X
(A BBBE[
(A BBBF�
(A BBBF�\����E�V
Ea]����5l(]����MF�B�B �B(�A0�D8�G���N�K�D��
8A0A(B BBBE:�K�L�E��]����4�]�����F�D�D �Q
JEExCB �]���FJ�^�P�I��^<���'B�E�E �E(�D0�D8�G@l
8S0A(B BBBHD
8S0A(B BBBHD
8P0A(B BBBKD
8P0A(B BBBKD
8P0A(B BBBE�^����	�^�����E��
GQ�^L���E�S_P���)E�_ _d���)J�U�<_x���aJ�G�@X_̖��F�B�E �F(�G0�GP�
0A(A BBBE4�_�����M�D�A �q
FBE|FB$�_P���wE�D�G dAAH�_����lF�E�E �E(�D0�I8�D@g
8D0A(B BBBFH`̘��H\`Ș��LF�E�E �E(�D0�D8�FPI
8D0A(B BBBGD�`̙���F�E�E �D(�D0�x8G@R8A0P(A BBBt�`���lF�G�E �B(�A0�A8�GplxG�VxAp�xJ�[xApBx^�RxAp�
8C0A(B BBBA4ha���F�A�D �b
ABHACB�aT���CL�a�����B�B�A �D(�G@�
(F ABBG�
(A ABBF0b���-B�A�D �G0�
 AABBL8b���+F�E�G �G(�D0�x
(A BBBDU
(A BBBD�b��E�M(�b�DE�I�D [
DAF�b���VHpH
A(�bX���LF�D�I �b
ABHc|���^HpP
A(4c����TE�I�D i
DAH(`c�\E�I�D n
DAK0�c(����E�I�D e
DADNDA(�c�����E�I�D v
DAC@�cH����F�E�B �A(�D0�DP�
0A(A BBBA@0d���cF�B�B �D(�A0�GP&
0A(A BBBDHtd0���QF�E�B �B(�D0�A8�GpQ
8A0A(B BBBJ�dD����d@����d8���LeD����B�E�D �C(�D0e
(C ABBAq
(C ABBG4Pe����yB�D�D �B
ABAeAB �e���A�G�B
AE�eȬ�� 8�eԬ���F�D�D �[
FBGg
CBD�eX���(8ft���BF�B�A �A(�DP\
(A ABBHLf����(`f�����E�A�D0�
AAF�fh���H�ft���AF�E�E �B(�D0�C8�D@�
8D0A(B BBBCH�fx����F�E�B �B(�A0�D8�DPv
8D0A(B BBBEL8g�����F�B�B �B(�A0�D8�G�b
8A0A(B BBBDL�g�����F�B�B �B(�A0�D8�G�b
8A0A(B BBBDx�g<����O�B�E �B(�D0�A8�DP�8A�0A�(B� B�B�B�UP������I
8A�0A�(B� B�B�B�ELTh�����F�E�B �B(�A0�A8�D��
8A0A(B BBBDL�hP����F�E�B �B(�A0�A8�D��
8A0A(B BBBDL�h��)F�E�E �E(�I0�C8�DP�
8D0A(B BBBFHDi�����F�E�B �B(�A0�D8�G��
8A0A(B BBBGL�i��@F�B�B �B(�A0�A8�G�
8A0A(B BBBEx�i��3F�E�B �E(�A0�A8�G`�
8A0A(B BBBGQ
8D0A(B BBBJ�
8D0A(B BBBJ zRx�`������(~���	��j����F�B�B �B(�A0�A8�D`�
8A0A(B BBBBK
8A0A(B BBBK}
8A0A(B BBBIN
8A0A(B BBBH�ߵ��	<k���)J�U�HXk����F�E�E �E(�D0�D8�DP0
8D0A(B BBBBL�k`��F�E�E �E(�D0�I8�D@v
8D0A(B BBBG�k0��4l<���F�A�A ��
ABBkAB @l����E�G0A
ABdl0��ZH z
F4�lt���F�A�A �R
ABCfCBH�l����F�B�E �B(�A0�D8�DPz
8C0A(B BBBB(m0��cE�G�G0H
AAA 0mt��cE�J M
AA@Tm���mF�B�B �D(�A0�FP�
0A(A BBBH(�m���^E�C�F z
DACH�m ���F�E�E �D(�C0�c
(A BBBGN(A BBB nt��]HA
ODL4n���F�B�A �A(�D0S
(D ABBFQ
(A DBBF(�np���F�D�D �Z
ABE�n��=dQt�n<���B�E�E �E(�A0�D8�G@�HHPYHB@s
8D0A(B BBBI^HQPIHA@KHQPPHA@NHOP@ot��5To���5ho���-TQL�o����F�A�A �D0q
 AABGQ
 CABIO
 AABE�o4��4�o0��tF�A�C �f
ABMpABpx��(0pt��vE�D�F dAA8\p���AF�B�D �G(�F0l
(D ABBB��p���[Z�p
FF
�JF
�JF
�JF
�JF
�JF
�JN
�JI
�OI
�GI
�GN
�JF
�RF
�JC
ED�8q��(F�E�A �D(�D@]
(A ABBI8Xq��:F�B�B �B(�A0�A8�G@~
8D0A(B BBBHv
8A0D(B BBBEW
8D0A(B BBBDO
8A0D(B BBBLL
8A0D(B BBBGZ
8H0D(B BBBJI
8A0D(B BBBJ�
8D0A(B BBBHt
8C0D(B BBBMS
8A0A(B BBBEg8C0A(B BBB@�r��0F�B�E �A(�D0�D@~
0A(A BBBDL�r���B�B�B �E(�D0�A8�D��
8A0A(B BBBAH(s��\F�B�B �B(�A0�D8�G��
8A0A(B BBBBts��,E�T
G(�s�E�D�F0p
AAGH�sx�F�B�B �A(�A0�t
(D BBBFA(C BBBht��.[�H�B �B(�D0�A8�D@�
8F0A(B BBBA[8C0A(B BBBA������tt���h0�t8����F�D�D �D0�
 AABK0�t��F�D�D �D@�
 AABG�tp����a�k`u���F�E�E �B(�D0�D8�DP�
8C0A(B BBBHN
8F0A(B BBBCxtu0���OF�H�B �B(�D0�D8�DPj
8C0A(B BBBDu
8F0A(B BBBDd8A0A(B BBB�u���3E�mv(���3E�m,vH���@vT���Tv`���4hvl���[Q�C�G Z
AAILI�A���v����B�B�B �B(�A0�A8�DPD
8C0A(B BBBJG
8C0A(B BBBEO
8A0A(B BBBG{
8C0A(E BBBF]
8D0A(B BBBFc
8D0A(B BBBE$hw��AE�fB NAD�w���'�w0���H�w<���}F�H�E �A(�D0�p
(A BBBAe(A BBBLxp����F�E�G �A(�D0�n
(A BBBDW
(C BBBH�Tx����F�B�B �B(�A0�A8�D���K�^�B��
8D0A(B BBBJ

8G0A(B BBBK
�K�R@�M�P�A�I�M�W�A�0�xh��OE�G�J K(D0B8D@aAA00y���RE�D�D(E0F(A c
DAGLdy����F�E�D �C(�D0r
(D ABBGY
(D ABBF�y �� L�y,��fF�B�B �B(�A0�A8�G��
8A0A(B BBBCzL��1J�a�H4zp��F�B�B �B(�A0�A8�D��
8A0A(B BBBAL�zD���F�B�B �B(�A0�A8�G��
8A0A(B BBBD`�z���?F�E�E �J(�D0�C8�D@r
8D0A(B BBBD@HGPLHA@IHJPUHA@GNU��+p+��$202D2U2a2q2{2h�
����$��$���o(�;P
�2�$�1���s8C	���o���o0s���o�odn���of��$�������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p�������������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p��������		 	0	@	P	`	p	�	�	�	�	 �$��$ �$�z��$��$�p��� �	��+P��p@�Pp�[0� �$`d�e`�$ ����I�J�C�IB��$��p@�E�p0`��$po�r`�$�~��+�+ ,�E��	�H�DN�`���`�$�cŞ0gʞ(�����n��Pn��@kg�0�� w w w w w w���`����}��@}��0v��@u��0����0���0����������p���ʯ�g���ٯ����ڮP�������������0�@����!�@�����9���?��H��Q�Ќ^�0m� ������� �� ����|�Բ %�}���0�����������̴p�޴@�������
�`����!6������;����������!����P�*���0�����ߺE�E�\����`��@���ۺ�����pA��
��
!� ����;��������� ���Ż0����v�)�5�?�N�^�m��s� ������Z�����������$�޿�3 � /ѿ 3@�P,���1$�`)��(A��(L���`�`&c�@�� h�ޒ�K�`L7�MN��MɓPT���V��X��PZ0��Zp��\���\��0]`�`���"�`�`�;�`�`�`�`�`���'��=:��=$��<�� ;��:��`9o��8F�08Q�`7\��66�6w�����
�������'�+�/�4�9�@�H�L�Q�1�X�<�_�b�i�r�I�v�{����������������V���V���B��(��G���F���T���T��8�(E��b�� f��C���B���B��S�(E��D*�(E�E7�(G��Wʯ`W��@WY��Ye� Wq��Y}�W���V��T���Y��(��@T��`XY�0Z��@Xʯ Xe�X���W���W}��W��Z��0F��pO��PO��F� T�0O)�O:��NQ��N��(h��Xs�pI���X|�@��(���X���X���B��pF��PF���C��(���O���O���F��(��pG��PG���O��0G��T��T�8!��@,��?4��@F� UU��Sc��@t��@��p@��P@��(�� B��B���A���A���A��A�`A"�@A.� A��S:�(��`B��S�@BE�(���FU�`Tg��Fw�8��(��8�8x�pQ/�a� C4��0@@�QI�P\��Oj�`Lx�0P���[��@M��(�� ���Y��U���G���G���G���L�`N`����(���0�p�__tuple_indices__repr_format�� ����%� �!:� ������ ���8
�@GA$3a1h�͑
GA$3c890�*�*
GA$3p890�+SzGA*GA$annobin gcc 8.3.1 20190507GA$running gcc 8.3.1 20191121GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA$3p890�a��GA*GA$annobin gcc 8.3.1 20190507GA$running gcc 8.3.1 20191121GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign_gi.cpython-36m-x86_64-linux-gnu.so-3.28.3-2.el8.x86_64.debug��3F�7zXZ�ִF!t/���]?�E�h=��ڊ�2N��9K�S�Ns�f,��)�3��]8Hb`L��{-sJ0i���8����T)���'�i׏'�(z쀫F#��#�������Hvg��6�ӆ=��d�!���8�C=�����BXF(�js
qF�{+���$F���2�O9������BP5�u%S�q���+��(��w��U�[zt<U�E/%���ا0��p�q���>٥�O;��ŊqZ���<гBK��f6�i���sxv�uںzGdS#��dV'��Q�"
�s�TQ��iK�s�d�>,m���3����.mLy�S����Bڰ-�3m�#;�T��(����9�oY+!H�J�D�Z���I���2W�{�T����U���*�/E���jK�ܲ�f9)���:���L����s����l=ޯ�e�`j��/9m�'�^��ĢX��,ş��{��i�G��*5k��ȶ"�(x�%Há�w��t��܂��<�\1�s����.�>�-r�����z�i�:�Y�<�3���=�p;�����/�h0��B�
�2wÙ[�\�9L'!�+)l:�Ȥ�	�*Ŷ,Z$�Z�:A����3�2��RA�S�M%F��Y-6b����!-��]�V<�#�$����ѨET�R�Lע"f�*����ܾ`by:+C��y�O<��,�U���@�	�-�1^�c���
y|��T�Q�(L�K+�#��
��۷��G�'� ��m0�O��|@qs��:iՌ1u��8ʨ]�7Y���y <t�
�
o�D���"�*AN'�>V� �Cmf!��k�� �ݺ�Ef��fTB�ٕ��CFJ�����wI�X�m�}W!��dVM�.G��i`h:����դ�U��u��:2���2���+h��B��Rk��=T�ð$ER�R)�_��9�����Ƽ�d��
��2e�B'Ҧ5j�9QZ6�DǏ���z�m�D�oo�}LyI�4:q[��1�l��ðDz���>`FzT*ÁrUE0��X.]��#w�[Q?�Tr�ܪ��u�`�bY�7�_�s4�Rԫ3C�� �?��3iq��;'tG�u�0�W�a�X�WYީס�6͆-o�j�F�"0HakK��˙�T��T�?�w�Pw��B'��==?7��헞�j����c����?V�s��…xf��Îy{��F�)�iG�+��"}���}��(^�u��p��޶�(O&���!Kg!��g�����RIe��Ww��c�'lBH��}�K�
Ħ��c�G��	��b=�\��O� ��~��4ZV���u�������Cy������D�Z�����PL�B\rf[h�I@��H��S�zS��w��
��
d�jD@��O���&t�o��¡��a=��ޤ�����e��Z{�Ie�kfHw-�ΫC��}��E�hI[&W屭�l������9�!�^,�E��AX/g�C3��i��X���r(��[3�b���O�z�J|�X�
��9�|]1�CS	�M�$�[�hu�<зo�eu"+̇�)��Ҋ��E�(T�p�:P7��V�єBw�hx��D��W����&<�6g�����'��;B���i�k˗H��kZ1�|�'�5�ND|Cl�@i���q�8�Tj��\~v9��
�3��g�"��҇�T�<~�;N��n�-ΈTQt���0t޶��2�`��EL��Q�����$M�𻉮���HȘ{��W�Zg����#�����V�C���ۉ���l��V*Mf@Z�Hs��<c�2P����0B��K?���"��%�Ӹ�"�ݫ�
�)�
�,Q�5)�q�t�Ҋ�r?�AY�Q���.ݳ�$���D�ٴ��%A�`���񓷘�V	 ����f^�uIzh�}N��u�z}�3�����G��G����M]J���f��@�#˜��좶9ȍ��&�+1&E��ސ��>�]�����)U})�c�q!�k�cnM�c}���Z���I*�Ϝ�ԙ��/7k�.�'Ӆ4�\6�����;8"��GfY���W1H�Tj� ��
n��E`�Yҽ�1�rATE�Dԓ��
X�V�ɳ�=E0=E8U��|���|x5�� ��1����wE�׈�t%��Շ�S{�u�p���Qaw�6�ܤ��'8Ye�ƃ���+sz��{��/���`�g	0s�b�����2��$d�7b���#���?���l7�]t�p^`@����`��pn�j�D����p�G�˅�	6/(/'�*H)]�1���m兜�cO����7�g,��]ed�wM������T���������ᅘ���z�~�������A:{=���u��d̲ p/�0$�9��8n1=����:h��䔁��XȲ����n��Ȟډ<���m�U#��m7jVD�d	;�4�Y��,����U��D�U鵀�]^5�S�4�\��:өf�-]�~�G+5�yj���qk�k;���W�+�)Ͽ}@:+���T�}`�'غS�8L�sx�C��cH?dҶ?r��#�]�OW�J�5,#��6�f\���~�,��k��xp��x6O+Q�m��%��2�2�w��U
!1-�3���_H�?}"��F��$�u�xMH���Գ!D��%Ss�P��/���]*�t�n�j!�ӌS1G�aq8�8T�V�.�/����_��à5E/��[���_L��������[QO�6�S�3����Ftg����^�"8�Dy}�\F�[���n��3YyIY+Gu�sH�zڑq�^�ɜs�D���8'��\�~ۼ]Z���S��P.��e���2�E���T�	��Rp��5}Bt� �XF+�mc�g.5�SFU,�4�9���%��Z�#z�F���5i�p��:)�#2��7v:�� �����s�*�9�]�v�;q�Up��eɎnF�iK��|�hĉ��U7`��i�>�Q&^p����e��_i#��D�����
��.���W*R�Ӹ1uY�Y
�b�3�����>��O��mʺ�݇"����*L�O_D�N=�hGJ��ʃ
�mȹʲXA�O���������4>�W*N�:&�DO&��	9��B�v qp� �b�>0���=���tx&v=�ײ���vOz�����+�Fl�ڕ7����sT$᪫��ř,,�#B�b�ɑ)nVÏ��ű��R�ً����{��<�bK�ַ��d^�r<I`�,���d^}�h����̥L"�E���]�d<���ƫ���>e�=pF5�ʸ�:=��>d{�앩��mUn�CWH樗���"�t=����)���%��0W6V���i1� ����5�$S&H1�m��`+�eR���<��M�hM׃��g_hօ{��I��j�Zߴ��P4��rf�I�q>K��#peV��l����CF,[Ö��9��E(�Pl_\$���i`��D�ݜɆ+�m�e��ڞl�F�g��yJ��fh8�����y�;�Mï���%��4�*uה�]b�1;0 �s�N
���AL��R塧�MyF!gИ���91dC���#�i��><���J�Ց�m-��v�	*�j���
%��8��Y<F��4�&\������Q"-�m]�>KmR��
~���s	i��ڤ�bc��Mq'	�;���렇��>���wF���:As����X⋓x��}%s2 �/��ĹE	��(�Z Ey��j)�Ya��)H]��`P_l-�v3���4�\� �����S�Fz	H��t(�/s��=��Q�e��O�~2H��4��C~�͞�aZ�NщL�֜����
�p�ۀf#�EJ��-�N�NŊ]��+��Ǵ�Ŷ��QVmE�ޭm����B�
���E%�P�J% 	PT�C$M�B�V�qZ�L��m�}�����
��H�)-l�B�3;��ͬX�H�o<GO��M׾�;�a���:���j~$�\-�ݔ�nd�A��Y��I�^]�T�B�a�>1�lisٻ����+���tac~rtF�oX�a"��}��)Lg��
%r|�i�Ԋ۝���3�e�1�,IIu��»٪�bL�?&�2p��Z[�Ua��:�‰[����,��M��kmT�Y@y��̕ى���cA��7�p腋��-�omu�B������;y�G`k_G��o}��о��GK�LB��Qrj�t�n�d�3~��~;�V[7%	��θ]U�\�K��U=�IO�SÊlm���IM��>k��Ṡm���^�z�݉[���ů�]���=���Z{ں��� �=j1ku~E	��0�\eP;��Yj�}\�؈�]gmU�.�� C`�x�.��8����h��0��������z-o��VE�d�)u)��+�
�#�o�c�Z�e->|z�@���g�G�B��A�P�^�=3��L%@�TE���{`��*Ÿ�?��p�"ө�W�*�{��r�M�z��J���jG��>��^F�Z�o�����H.�Wx�6�)a3R�Z�T�a{�$��_�Z~w 0�i8���А4�G�DY�/�i�8�@(��6�_+l���p��ן7�T*��7I~´�L�����ߣ�
��NЙǣ����t_I\�)��'����ϗ��$k��(
.O��R���ԋ4ɔ�f7
�ρ�]��Y�ػi
`��M���S���[QSؑ%��S4W2��*��Y%����w�2��dnĵ��d\o�#���n��Gu�AZ���a>�t�p��L�7�-v@�yh�zt�
��F�l%��{��0óy5�o�.�������nV�R�IHB��c
\�@}��FS�L^Oɯ`}R����J�d�~���K"^l֏n���Q�/�x/���o�X�]�.H�ٽ�I����c���L1
.Pp�^�W#RS��=&�k��b� �el�]wԕ@c
�L_w�|���"P����/��J^��M�5�OW۝���S�R�XB)dk��6~v���$U���uyz	�q����a趩@�v��[�I�2	Juq\`�IMAdD�p~��5̰8�Z�p�W{_i7Ȯ�	���8���D�O�ѐ�y��1!\��#�v�6-p�B�J�ox�O�ʝWփ���߅�9��	G�|(���4��Om��er<?���u��<��� �.s%�=��5�V� ��[��,�l�(}�Ax)�jZ0<ÌVA�읇9�w���u�(��bG_�P��ô
umx"�ŋ��n�E.�b[5��#�'ݳku�� ����>^�I�M���?�cLֈ%����|��v�p�.+�����1��u6�1�y��d+�=	]�.�`�C�M
W�W����{NlC�O�T��}R�xikp�T�o�:� ��I9�Q��&���
�W�c�4L�:p!ԕ�{ziPMH	��W�(��d�
n�� ��	�����_fC��e	��I������X@�{��&�����-Z�U4��]�I;��}39Q�MXMC�u���I9��m�z,g�D��$ʛ��밀,�?
et4�B`������
�	7�h��ٔ���U�/�s3��\Se�U�"���^��'$�!�͈d�O m�a��v,�b���͕���6/�0�G��
/Bx��t�P�#��^�Y�t�I%���-X���񗻨A@�L*��Q7Frm�)ޟѳtR\�2���
R[U~r���+��S)gfŷ����~ي�=�7Ÿx�3��e����h�<hk��+n �l����#f������H�)��6?��6Y���7��ܡ~��{a {r�
~r�l;rϟ���+����݊�"<pX�A�.�ܓ���o����NB�Z!!�\��ؗЩ�F�Š��{�vI}���_N8����[�#��dNy�3<5�aN�b����fuA�_�`.�!o�?���~@��4��s@�X�Z�f{'�V��f�x�K};>��u�̼�g9XK�/�?�X_�]7�f��M�C�J�X��b�C�A�KX?roO}���h�VL�4�m(����]�Z)
�n^_�&5��e���|A�u���x{8��jc
�\���[��!���.�G�4i��a\b/~F�LĽ`����C8��v9�m<��'�Q�a�QdWIwK���<����4%�,߰�GjO�����Hs䤂�@�u����Q(A�+[m����3P*��K�	q�Hv�>��m�)i�u�p���w�͒-L�v�;^���^������8��{�?aoc$�V����,���X�����T��`�\�l���k���v����<=I0�B�	'�0C컣�����~ն���,��jh�iH��m�lL�͛��1s+��{DLx��>o������ʏς�����/9��S�a=`gv=�wIhNP�}��d=�u³���@�W��+������6����Z�Ӹ���W^[����SI��g����ϣ.N�RVȊOu�A,1����,��-��hifH���.�P+�>�Q]��z� 9�
\&W� Ԓ��&;}��1T��1
wO��D�)ġM���"���b|�=���	-��:�lHAn;9	�*�оbҫ�w4-�9v~�6�?0��P��U�)�:׵���3������u�AI����SK*��^b����C���j�K�+���J�6��2H�x�'[�iw���c�镻��E����3nZ�6��&�Z��˪2�����3јU�*���'�e
e�>�
�b^�T��5��	i
#�w�`zK�:u�Q�O�2U�W��_]�I	ЍiL����J~�<��I��������v4i�-i��]�Wa���0�ty�Ց�v�:`�}������܏���ؾ[���և�]�]��z�.�{��i:Ș�o7@?�%KX�u;_ZG�K��Oi.7�R��MNq]����Pt�f�����-R�0�V
M���an�e�Γ�{kH4F��-{o<��/@RM�v��Ї�_7�z��De�����u���n"�A��h�}
�����y����Ĝ�Ex���]��+��F�^UC�Eu�Б�|(�sp~
9|��JDa�0������d.Oa�����8�x�P�^D�ئ�MR*�[u�^Ca���D>]��˙�g�e	�]�*Nz�&��Vyk'�FT��i�Y�BJ���|χ�������TQ��9��o����g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata$���o(($(PPH90�;�;�28���odndn�E���o0s0sPT�s�s8C^B�����1hh�h�c����0!n�	�	 !w�*�*�f}����
���xd �X�X����	�	4{� � � ���$�����$�����$�����$��@��$���$�Pj �`
%P
� ��eP
�
�
D8 X+(types.py000064400000034242151734360770006304 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2005-2009 Johan Dahlin <johan@gnome.org>
#
#   types.py: base types for introspected items.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from __future__ import absolute_import

import sys
import warnings
import re

from ._constants import TYPE_INVALID
from .docstring import generate_doc_string

from ._gi import \
    InterfaceInfo, \
    ObjectInfo, \
    StructInfo, \
    VFuncInfo, \
    register_interface_info, \
    hook_up_vfunc_implementation, \
    GInterface
from . import _gi

StructInfo, GInterface  # pyflakes

from . import _propertyhelper as propertyhelper
from . import _signalhelper as signalhelper

if (3, 0) <= sys.version_info < (3, 3):
    # callable not available for python 3.0 thru 3.2
    def callable(obj):
        return hasattr(obj, '__call__')


def snake_case(name):
    s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()


class MetaClassHelper(object):
    def _setup_methods(cls):
        for method_info in cls.__info__.get_methods():
            setattr(cls, method_info.__name__, method_info)

    def _setup_class_methods(cls):
        info = cls.__info__
        class_struct = info.get_class_struct()
        if class_struct is None:
            return
        for method_info in class_struct.get_methods():
            name = method_info.__name__
            # Don't mask regular methods or base class methods with TypeClass methods.
            if not hasattr(cls, name):
                setattr(cls, name, classmethod(method_info))

    def _setup_fields(cls):
        for field_info in cls.__info__.get_fields():
            name = field_info.get_name().replace('-', '_')
            setattr(cls, name, property(field_info.get_value, field_info.set_value))

    def _setup_constants(cls):
        for constant_info in cls.__info__.get_constants():
            name = constant_info.get_name()
            value = constant_info.get_value()
            setattr(cls, name, value)

    def _setup_vfuncs(cls):
        for vfunc_name, py_vfunc in cls.__dict__.items():
            if not vfunc_name.startswith("do_") or not callable(py_vfunc):
                continue

            skip_ambiguity_check = False

            # If a method name starts with "do_" assume it is a vfunc, and search
            # in the base classes for a method with the same name to override.
            # Recursion is necessary as overriden methods in most immediate parent
            # classes may shadow vfuncs from classes higher in the hierarchy.
            vfunc_info = None
            for base in cls.__mro__:
                method = getattr(base, vfunc_name, None)
                if method is not None and isinstance(method, VFuncInfo):
                    vfunc_info = method
                    break

                if not hasattr(base, '__info__') or not hasattr(base.__info__, 'get_vfuncs'):
                    continue

                base_name = snake_case(base.__info__.get_type_name())

                for v in base.__info__.get_vfuncs():
                    if vfunc_name == 'do_%s_%s' % (base_name, v.get_name()):
                        vfunc_info = v
                        skip_ambiguity_check = True
                        break

                if vfunc_info:
                    break

            # If we did not find a matching method name in the bases, we might
            # be overriding an interface virtual method. Since interfaces do not
            # provide implementations, there will be no method attribute installed
            # on the object. Instead we have to search through
            # InterfaceInfo.get_vfuncs(). Note that the infos returned by
            # get_vfuncs() use the C vfunc name (ie. there is no "do_" prefix).
            if vfunc_info is None:
                vfunc_info = find_vfunc_info_in_interface(cls.__bases__, vfunc_name[len("do_"):])

            if vfunc_info is not None:
                # Check to see if there are vfuncs with the same name in the bases.
                # We have no way of specifying which one we are supposed to override.
                if not skip_ambiguity_check:
                    ambiguous_base = find_vfunc_conflict_in_bases(vfunc_info, cls.__bases__)
                    if ambiguous_base is not None:
                        base_info = vfunc_info.get_container()
                        raise TypeError('Method %s() on class %s.%s is ambiguous '
                                        'with methods in base classes %s.%s and %s.%s' %
                                        (vfunc_name,
                                         cls.__info__.get_namespace(),
                                         cls.__info__.get_name(),
                                         base_info.get_namespace(),
                                         base_info.get_name(),
                                         ambiguous_base.__info__.get_namespace(),
                                         ambiguous_base.__info__.get_name()
                                        ))
                hook_up_vfunc_implementation(vfunc_info, cls.__gtype__,
                                             py_vfunc)

    def _setup_native_vfuncs(cls):
        # Only InterfaceInfo and ObjectInfo have the get_vfuncs() method.
        # We skip InterfaceInfo because interfaces have no implementations for vfuncs.
        # Also check if __info__ in __dict__, not hasattr('__info__', ...)
        # because we do not want to accidentally retrieve __info__ from a base class.
        class_info = cls.__dict__.get('__info__')
        if class_info is None or not isinstance(class_info, ObjectInfo):
            return

        # Special case skipping of vfuncs for GObject.Object because they will break
        # the static bindings which will try to use them.
        if cls.__module__ == 'gi.repository.GObject' and cls.__name__ == 'Object':
            return

        for vfunc_info in class_info.get_vfuncs():
            name = 'do_%s' % vfunc_info.__name__
            setattr(cls, name, vfunc_info)


def find_vfunc_info_in_interface(bases, vfunc_name):
    for base in bases:
        # All wrapped interfaces inherit from GInterface.
        # This can be seen in IntrospectionModule.__getattr__() in module.py.
        # We do not need to search regular classes here, only wrapped interfaces.
        # We also skip GInterface, because it is not wrapped and has no __info__ attr.
        # Skip bases without __info__ (static _gi.GObject)
        if base is GInterface or\
                not issubclass(base, GInterface) or\
                not hasattr(base, '__info__'):
            continue

        # Only look at this classes vfuncs if it is an interface.
        if isinstance(base.__info__, InterfaceInfo):
            for vfunc in base.__info__.get_vfuncs():
                if vfunc.get_name() == vfunc_name:
                    return vfunc

        # Recurse into the parent classes
        vfunc = find_vfunc_info_in_interface(base.__bases__, vfunc_name)
        if vfunc is not None:
            return vfunc

    return None


def find_vfunc_conflict_in_bases(vfunc, bases):
    for klass in bases:
        if not hasattr(klass, '__info__') or \
                not hasattr(klass.__info__, 'get_vfuncs'):
            continue
        vfuncs = klass.__info__.get_vfuncs()
        vfunc_name = vfunc.get_name()
        for v in vfuncs:
            if v.get_name() == vfunc_name and v != vfunc:
                return klass

        aklass = find_vfunc_conflict_in_bases(vfunc, klass.__bases__)
        if aklass is not None:
            return aklass
    return None


class _GObjectMetaBase(type):
    """Metaclass for automatically registering GObject classes."""
    def __init__(cls, name, bases, dict_):
        type.__init__(cls, name, bases, dict_)
        propertyhelper.install_properties(cls)
        signalhelper.install_signals(cls)
        cls._type_register(cls.__dict__)

    def _type_register(cls, namespace):
        # don't register the class if already registered
        if '__gtype__' in namespace:
            return

        # Do not register a new GType for the overrides, as this would sort of
        # defeat the purpose of overrides...
        if cls.__module__.startswith('gi.overrides.'):
            return

        _gi.type_register(cls, namespace.get('__gtype_name__'))


_gi._install_metaclass(_GObjectMetaBase)


class GObjectMeta(_GObjectMetaBase, MetaClassHelper):
    """Meta class used for GI GObject based types."""
    def __init__(cls, name, bases, dict_):
        super(GObjectMeta, cls).__init__(name, bases, dict_)
        is_gi_defined = False
        if cls.__module__ == 'gi.repository.' + cls.__info__.get_namespace():
            is_gi_defined = True

        is_python_defined = False
        if not is_gi_defined and cls.__module__ != GObjectMeta.__module__:
            is_python_defined = True

        if is_python_defined:
            cls._setup_vfuncs()
        elif is_gi_defined:
            if isinstance(cls.__info__, ObjectInfo):
                cls._setup_class_methods()
            cls._setup_methods()
            cls._setup_constants()
            cls._setup_native_vfuncs()

            if isinstance(cls.__info__, ObjectInfo):
                cls._setup_fields()
            elif isinstance(cls.__info__, InterfaceInfo):
                register_interface_info(cls.__info__.get_g_type())

    def mro(cls):
        return mro(cls)

    @property
    def __doc__(cls):
        """Meta class property which shows up on any class using this meta-class."""
        if cls == GObjectMeta:
            return ''

        doc = cls.__dict__.get('__doc__', None)
        if doc is not None:
            return doc

        # For repository classes, dynamically generate a doc string if it wasn't overridden.
        if cls.__module__.startswith(('gi.repository.', 'gi.overrides')):
            return generate_doc_string(cls.__info__)

        return None


def mro(C):
    """Compute the class precedence list (mro) according to C3, with GObject
    interface considerations.

    We override Python's MRO calculation to account for the fact that
    GObject classes are not affected by the diamond problem:
    http://en.wikipedia.org/wiki/Diamond_problem

    Based on http://www.python.org/download/releases/2.3/mro/
    """
    # TODO: If this turns out being too slow, consider using generators
    bases = []
    bases_of_subclasses = [[C]]

    if C.__bases__:
        for base in C.__bases__:
            # Python causes MRO's to be calculated starting with the lowest
            # base class and working towards the descendant, storing the result
            # in __mro__ at each point. Therefore at this point we know that
            # we already have our base class MRO's available to us, there is
            # no need for us to (re)calculate them.
            if hasattr(base, '__mro__'):
                bases_of_subclasses += [list(base.__mro__)]
            else:
                warnings.warn('Mixin class %s is an old style class, please '
                              'update this to derive from "object".' % base,
                              RuntimeWarning)
                # For old-style classes (Python2 only), the MRO is not
                # easily accessible. As we do need it here, we calculate
                # it via recursion, according to the C3 algorithm. Using C3
                # for old style classes deviates from Python's own behaviour,
                # but visible effects here would be a corner case triggered by
                # questionable design.
                bases_of_subclasses += [mro(base)]
        bases_of_subclasses += [list(C.__bases__)]

    while bases_of_subclasses:
        for subclass_bases in bases_of_subclasses:
            candidate = subclass_bases[0]
            not_head = [s for s in bases_of_subclasses if candidate in s[1:]]
            if not_head and GInterface not in candidate.__bases__:
                candidate = None  # conflict, reject candidate
            else:
                break

        if candidate is None:
            raise TypeError('Cannot create a consistent method resolution '
                            'order (MRO)')

        bases.append(candidate)

        for subclass_bases in bases_of_subclasses[:]:  # remove candidate
            if subclass_bases and subclass_bases[0] == candidate:
                del subclass_bases[0]
                if not subclass_bases:
                    bases_of_subclasses.remove(subclass_bases)

    return bases


def nothing(*args, **kwargs):
    pass


class StructMeta(type, MetaClassHelper):
    """Meta class used for GI Struct based types."""

    def __init__(cls, name, bases, dict_):
        super(StructMeta, cls).__init__(name, bases, dict_)

        # Avoid touching anything else than the base class.
        g_type = cls.__info__.get_g_type()
        if g_type != TYPE_INVALID and g_type.pytype is not None:
            return

        cls._setup_fields()
        cls._setup_methods()

        for method_info in cls.__info__.get_methods():
            if method_info.is_constructor() and \
                    method_info.__name__ == 'new' and \
                    (not method_info.get_arguments() or
                     cls.__info__.get_size() == 0):
                cls.__new__ = staticmethod(method_info)
                # Boxed will raise an exception
                # if arguments are given to __init__
                cls.__init__ = nothing
                break

    @property
    def __doc__(cls):
        if cls == StructMeta:
            return ''
        return generate_doc_string(cls.__info__)
_constants.py000064400000003631151734360770007311 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# pygobject - Python bindings for the GObject library
# Copyright (C) 2006-2007 Johan Dahlin
#
#   gi/_constants.py: GObject type constants
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <http://www.gnu.org/licenses/>.

from . import _gi

TYPE_INVALID = _gi.TYPE_INVALID
TYPE_NONE = _gi.type_from_name('void')
TYPE_INTERFACE = _gi.type_from_name('GInterface')
TYPE_CHAR = _gi.type_from_name('gchar')
TYPE_UCHAR = _gi.type_from_name('guchar')
TYPE_BOOLEAN = _gi.type_from_name('gboolean')
TYPE_INT = _gi.type_from_name('gint')
TYPE_UINT = _gi.type_from_name('guint')
TYPE_LONG = _gi.type_from_name('glong')
TYPE_ULONG = _gi.type_from_name('gulong')
TYPE_INT64 = _gi.type_from_name('gint64')
TYPE_UINT64 = _gi.type_from_name('guint64')
TYPE_ENUM = _gi.type_from_name('GEnum')
TYPE_FLAGS = _gi.type_from_name('GFlags')
TYPE_FLOAT = _gi.type_from_name('gfloat')
TYPE_DOUBLE = _gi.type_from_name('gdouble')
TYPE_STRING = _gi.type_from_name('gchararray')
TYPE_POINTER = _gi.type_from_name('gpointer')
TYPE_BOXED = _gi.type_from_name('GBoxed')
TYPE_PARAM = _gi.type_from_name('GParam')
TYPE_OBJECT = _gi.type_from_name('GObject')
TYPE_PYOBJECT = _gi.type_from_name('PyObject')
TYPE_GTYPE = _gi.type_from_name('GType')
TYPE_STRV = _gi.type_from_name('GStrv')
TYPE_VARIANT = _gi.type_from_name('GVariant')
TYPE_UNICHAR = TYPE_UINT
overrides/GLib.py000064400000072615151734360770007765 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2010 Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
# Copyright (C) 2011, 2012 Canonical Ltd.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

import warnings
import sys
import socket

from .._ossighelper import wakeup_on_signal, register_sigint_fallback
from ..module import get_introspection_module
from .._gi import (variant_type_from_string, source_new,
                   source_set_callback, io_channel_read)
from ..overrides import override, deprecated, deprecated_attr
from gi import PyGIDeprecationWarning, version_info

GLib = get_introspection_module('GLib')

__all__ = []

from gi import _option as option
option  # pyflakes
__all__.append('option')


# Types and functions still needed from static bindings
from gi import _gi
from gi._error import GError

Error = GError
OptionContext = _gi.OptionContext
OptionGroup = _gi.OptionGroup
Pid = _gi.Pid
spawn_async = _gi.spawn_async


def threads_init():
    warnings.warn('Since version 3.11, calling threads_init is no longer needed. '
                  'See: https://wiki.gnome.org/PyGObject/Threading',
                  PyGIDeprecationWarning, stacklevel=2)


def gerror_matches(self, domain, code):
    # Handle cases where self.domain was set to an integer for compatibility
    # with the introspected GLib.Error.
    if isinstance(self.domain, str):
        self_domain_quark = GLib.quark_from_string(self.domain)
    else:
        self_domain_quark = self.domain
    return (self_domain_quark, self.code) == (domain, code)


def gerror_new_literal(domain, message, code):
    domain_quark = GLib.quark_to_string(domain)
    return GError(message, domain_quark, code)


# Monkey patch methods that rely on GLib introspection to be loaded at runtime.
Error.__name__ = 'Error'
Error.__module__ = 'GLib'
Error.__gtype__ = GLib.Error.__gtype__
Error.matches = gerror_matches
Error.new_literal = staticmethod(gerror_new_literal)


__all__ += ['GError', 'Error', 'OptionContext', 'OptionGroup', 'Pid',
            'spawn_async', 'threads_init']


class _VariantCreator(object):

    _LEAF_CONSTRUCTORS = {
        'b': GLib.Variant.new_boolean,
        'y': GLib.Variant.new_byte,
        'n': GLib.Variant.new_int16,
        'q': GLib.Variant.new_uint16,
        'i': GLib.Variant.new_int32,
        'u': GLib.Variant.new_uint32,
        'x': GLib.Variant.new_int64,
        't': GLib.Variant.new_uint64,
        'h': GLib.Variant.new_handle,
        'd': GLib.Variant.new_double,
        's': GLib.Variant.new_string,
        'o': GLib.Variant.new_object_path,
        'g': GLib.Variant.new_signature,
        'v': GLib.Variant.new_variant,
    }

    def _create(self, format, value):
        """Create a GVariant object from given format and a value that matches
        the format.

        This method recursively calls itself for complex structures (arrays,
        dictionaries, boxed).

        Returns the generated GVariant.

        If value is None it will generate an empty GVariant container type.
        """
        gvtype = GLib.VariantType(format)
        if format in self._LEAF_CONSTRUCTORS:
            return self._LEAF_CONSTRUCTORS[format](value)

        # Since we discarded all leaf types, this must be a container
        builder = GLib.VariantBuilder.new(gvtype)
        if value is None:
            return builder.end()

        if gvtype.is_maybe():
            builder.add_value(self._create(gvtype.element().dup_string(), value))
            return builder.end()

        try:
            iter(value)
        except TypeError:
            raise TypeError("Could not create array, tuple or dictionary entry from non iterable value %s %s" %
                            (format, value))

        if gvtype.is_tuple() and gvtype.n_items() != len(value):
            raise TypeError("Tuple mismatches value's number of elements %s %s" % (format, value))
        if gvtype.is_dict_entry() and len(value) != 2:
            raise TypeError("Dictionary entries must have two elements %s %s" % (format, value))

        if gvtype.is_array():
            element_type = gvtype.element().dup_string()
            if isinstance(value, dict):
                value = value.items()
            for i in value:
                builder.add_value(self._create(element_type, i))
        else:
            remainer_format = format[1:]
            for i in value:
                dup = variant_type_from_string(remainer_format).dup_string()
                builder.add_value(self._create(dup, i))
                remainer_format = remainer_format[len(dup):]

        return builder.end()


class Variant(GLib.Variant):
    def __new__(cls, format_string, value):
        """Create a GVariant from a native Python object.

        format_string is a standard GVariant type signature, value is a Python
        object whose structure has to match the signature.

        Examples:
          GLib.Variant('i', 1)
          GLib.Variant('(is)', (1, 'hello'))
          GLib.Variant('(asa{sv})', ([], {'foo': GLib.Variant('b', True),
                                          'bar': GLib.Variant('i', 2)}))
        """
        if not GLib.VariantType.string_is_valid(format_string):
            raise TypeError("Invalid GVariant format string '%s'", format_string)
        creator = _VariantCreator()
        v = creator._create(format_string, value)
        v.format_string = format_string
        return v

    @staticmethod
    def new_tuple(*elements):
        return GLib.Variant.new_tuple(elements)

    def __del__(self):
        try:
            self.unref()
        except ImportError:
            # Calling unref will cause gi and gi.repository.GLib to be
            # imported. However, if the program is exiting, then these
            # modules have likely been removed from sys.modules and will
            # raise an exception. Assume that's the case for ImportError
            # and ignore the exception since everything will be cleaned
            # up, anyways.
            pass

    def __str__(self):
        return self.print_(True)

    def __repr__(self):
        if hasattr(self, 'format_string'):
            f = self.format_string
        else:
            f = self.get_type_string()
        return "GLib.Variant('%s', %s)" % (f, self.print_(False))

    def __eq__(self, other):
        try:
            return self.equal(other)
        except TypeError:
            return False

    def __ne__(self, other):
        try:
            return not self.equal(other)
        except TypeError:
            return True

    def __hash__(self):
        # We're not using just hash(self.unpack()) because otherwise we'll have
        # hash collisions between the same content in different variant types,
        # which will cause a performance issue in set/dict/etc.
        return hash((self.get_type_string(), self.unpack()))

    def unpack(self):
        """Decompose a GVariant into a native Python object."""

        LEAF_ACCESSORS = {
            'b': self.get_boolean,
            'y': self.get_byte,
            'n': self.get_int16,
            'q': self.get_uint16,
            'i': self.get_int32,
            'u': self.get_uint32,
            'x': self.get_int64,
            't': self.get_uint64,
            'h': self.get_handle,
            'd': self.get_double,
            's': self.get_string,
            'o': self.get_string,  # object path
            'g': self.get_string,  # signature
        }

        # simple values
        la = LEAF_ACCESSORS.get(self.get_type_string())
        if la:
            return la()

        # tuple
        if self.get_type_string().startswith('('):
            res = [self.get_child_value(i).unpack()
                   for i in range(self.n_children())]
            return tuple(res)

        # dictionary
        if self.get_type_string().startswith('a{'):
            res = {}
            for i in range(self.n_children()):
                v = self.get_child_value(i)
                res[v.get_child_value(0).unpack()] = v.get_child_value(1).unpack()
            return res

        # array
        if self.get_type_string().startswith('a'):
            return [self.get_child_value(i).unpack()
                    for i in range(self.n_children())]

        # variant (just unbox transparently)
        if self.get_type_string().startswith('v'):
            return self.get_variant().unpack()

        # maybe
        if self.get_type_string().startswith('m'):
            if not self.n_children():
                return None
            return self.get_child_value(0).unpack()

        raise NotImplementedError('unsupported GVariant type ' + self.get_type_string())

    @classmethod
    def split_signature(klass, signature):
        """Return a list of the element signatures of the topmost signature tuple.

        If the signature is not a tuple, it returns one element with the entire
        signature. If the signature is an empty tuple, the result is [].

        This is useful for e. g. iterating over method parameters which are
        passed as a single Variant.
        """
        if signature == '()':
            return []

        if not signature.startswith('('):
            return [signature]

        result = []
        head = ''
        tail = signature[1:-1]  # eat the surrounding ()
        while tail:
            c = tail[0]
            head += c
            tail = tail[1:]

            if c in ('m', 'a'):
                # prefixes, keep collecting
                continue
            if c in ('(', '{'):
                # consume until corresponding )/}
                level = 1
                up = c
                if up == '(':
                    down = ')'
                else:
                    down = '}'
                while level > 0:
                    c = tail[0]
                    head += c
                    tail = tail[1:]
                    if c == up:
                        level += 1
                    elif c == down:
                        level -= 1

            # otherwise we have a simple type
            result.append(head)
            head = ''

        return result

    #
    # Pythonic iterators
    #

    def __len__(self):
        if self.get_type_string() in ['s', 'o', 'g']:
            return len(self.get_string())
        # Array, dict, tuple
        if self.get_type_string().startswith('a') or self.get_type_string().startswith('('):
            return self.n_children()
        raise TypeError('GVariant type %s does not have a length' % self.get_type_string())

    def __getitem__(self, key):
        # dict
        if self.get_type_string().startswith('a{'):
            try:
                val = self.lookup_value(key, variant_type_from_string('*'))
                if val is None:
                    raise KeyError(key)
                return val.unpack()
            except TypeError:
                # lookup_value() only works for string keys, which is certainly
                # the common case; we have to do painful iteration for other
                # key types
                for i in range(self.n_children()):
                    v = self.get_child_value(i)
                    if v.get_child_value(0).unpack() == key:
                        return v.get_child_value(1).unpack()
                raise KeyError(key)

        # array/tuple
        if self.get_type_string().startswith('a') or self.get_type_string().startswith('('):
            key = int(key)
            if key < 0:
                key = self.n_children() + key
            if key < 0 or key >= self.n_children():
                raise IndexError('list index out of range')
            return self.get_child_value(key).unpack()

        # string
        if self.get_type_string() in ['s', 'o', 'g']:
            return self.get_string().__getitem__(key)

        raise TypeError('GVariant type %s is not a container' % self.get_type_string())

    #
    # Pythonic bool operations
    #

    def __nonzero__(self):
        return self.__bool__()

    def __bool__(self):
        if self.get_type_string() in ['y', 'n', 'q', 'i', 'u', 'x', 't', 'h', 'd']:
            return self.unpack() != 0
        if self.get_type_string() in ['b']:
            return self.get_boolean()
        if self.get_type_string() in ['s', 'o', 'g']:
            return len(self.get_string()) != 0
        # Array, dict, tuple
        if self.get_type_string().startswith('a') or self.get_type_string().startswith('('):
            return self.n_children() != 0
        if self.get_type_string() in ['v']:
            # unpack works recursively, hence bool also works recursively
            return bool(self.unpack())
        # Everything else is True
        return True

    def keys(self):
        if not self.get_type_string().startswith('a{'):
            return TypeError, 'GVariant type %s is not a dictionary' % self.get_type_string()

        res = []
        for i in range(self.n_children()):
            v = self.get_child_value(i)
            res.append(v.get_child_value(0).unpack())
        return res


def get_string(self):
    value, length = GLib.Variant.get_string(self)
    return value


setattr(Variant, 'get_string', get_string)

__all__.append('Variant')


def markup_escape_text(text, length=-1):
    if isinstance(text, bytes):
        return GLib.markup_escape_text(text.decode('UTF-8'), length)
    else:
        return GLib.markup_escape_text(text, length)


__all__.append('markup_escape_text')


# backwards compatible names from old static bindings
for n in ['DESKTOP', 'DOCUMENTS', 'DOWNLOAD', 'MUSIC', 'PICTURES',
          'PUBLIC_SHARE', 'TEMPLATES', 'VIDEOS']:
    attr = 'USER_DIRECTORY_' + n
    deprecated_attr("GLib", attr, "GLib.UserDirectory.DIRECTORY_" + n)
    globals()[attr] = getattr(GLib.UserDirectory, 'DIRECTORY_' + n)
    __all__.append(attr)

for n in ['ERR', 'HUP', 'IN', 'NVAL', 'OUT', 'PRI']:
    globals()['IO_' + n] = getattr(GLib.IOCondition, n)
    __all__.append('IO_' + n)

for n in ['APPEND', 'GET_MASK', 'IS_READABLE', 'IS_SEEKABLE',
          'MASK', 'NONBLOCK', 'SET_MASK']:
    attr = 'IO_FLAG_' + n
    deprecated_attr("GLib", attr, "GLib.IOFlags." + n)
    globals()[attr] = getattr(GLib.IOFlags, n)
    __all__.append(attr)

# spelling for the win
IO_FLAG_IS_WRITEABLE = GLib.IOFlags.IS_WRITABLE
deprecated_attr("GLib", "IO_FLAG_IS_WRITEABLE", "GLib.IOFlags.IS_WRITABLE")
__all__.append('IO_FLAG_IS_WRITEABLE')

for n in ['AGAIN', 'EOF', 'ERROR', 'NORMAL']:
    attr = 'IO_STATUS_' + n
    globals()[attr] = getattr(GLib.IOStatus, n)
    deprecated_attr("GLib", attr, "GLib.IOStatus." + n)
    __all__.append(attr)

for n in ['CHILD_INHERITS_STDIN', 'DO_NOT_REAP_CHILD', 'FILE_AND_ARGV_ZERO',
          'LEAVE_DESCRIPTORS_OPEN', 'SEARCH_PATH', 'STDERR_TO_DEV_NULL',
          'STDOUT_TO_DEV_NULL']:
    attr = 'SPAWN_' + n
    globals()[attr] = getattr(GLib.SpawnFlags, n)
    deprecated_attr("GLib", attr, "GLib.SpawnFlags." + n)
    __all__.append(attr)

for n in ['HIDDEN', 'IN_MAIN', 'REVERSE', 'NO_ARG', 'FILENAME', 'OPTIONAL_ARG',
          'NOALIAS']:
    attr = 'OPTION_FLAG_' + n
    globals()[attr] = getattr(GLib.OptionFlags, n)
    deprecated_attr("GLib", attr, "GLib.OptionFlags." + n)
    __all__.append(attr)

for n in ['UNKNOWN_OPTION', 'BAD_VALUE', 'FAILED']:
    attr = 'OPTION_ERROR_' + n
    deprecated_attr("GLib", attr, "GLib.OptionError." + n)
    globals()[attr] = getattr(GLib.OptionError, n)
    __all__.append(attr)


# these are not currently exported in GLib gir, presumably because they are
# platform dependent; so get them from our static bindings
for name in ['G_MINFLOAT', 'G_MAXFLOAT', 'G_MINDOUBLE', 'G_MAXDOUBLE',
             'G_MINSHORT', 'G_MAXSHORT', 'G_MAXUSHORT', 'G_MININT', 'G_MAXINT',
             'G_MAXUINT', 'G_MINLONG', 'G_MAXLONG', 'G_MAXULONG', 'G_MAXSIZE',
             'G_MINSSIZE', 'G_MAXSSIZE', 'G_MINOFFSET', 'G_MAXOFFSET']:
    attr = name.split("_", 1)[-1]
    globals()[attr] = getattr(_gi, name)
    __all__.append(attr)


class MainLoop(GLib.MainLoop):
    # Backwards compatible constructor API
    def __new__(cls, context=None):
        return GLib.MainLoop.new(context, False)

    def __init__(self, context=None):
        pass

    def run(self):
        with register_sigint_fallback(self.quit):
            with wakeup_on_signal():
                super(MainLoop, self).run()


MainLoop = override(MainLoop)
__all__.append('MainLoop')


class MainContext(GLib.MainContext):
    # Backwards compatible API with default value
    def iteration(self, may_block=True):
        return super(MainContext, self).iteration(may_block)


MainContext = override(MainContext)
__all__.append('MainContext')


class Source(GLib.Source):
    def __new__(cls, *args, **kwargs):
        # use our custom pyg_source_new() here as g_source_new() is not
        # bindable
        source = source_new()
        source.__class__ = cls
        setattr(source, '__pygi_custom_source', True)
        return source

    def __init__(self, *args, **kwargs):
        return super(Source, self).__init__()

    def __del__(self):
        if hasattr(self, '__pygi_custom_source'):
            self.unref()

    def set_callback(self, fn, user_data=None):
        if hasattr(self, '__pygi_custom_source'):
            # use our custom pyg_source_set_callback() if for a GSource object
            # with custom functions
            source_set_callback(self, fn, user_data)
        else:
            # otherwise, for Idle and Timeout, use the standard method
            super(Source, self).set_callback(fn, user_data)

    def get_current_time(self):
        return GLib.get_real_time() * 0.000001

    get_current_time = deprecated(get_current_time,
                                  'GLib.Source.get_time() or GLib.get_real_time()')

    # as get/set_priority are introspected, we can't use the static
    # property(get_priority, ..) here
    def __get_priority(self):
        return self.get_priority()

    def __set_priority(self, value):
        self.set_priority(value)

    priority = property(__get_priority, __set_priority)

    def __get_can_recurse(self):
        return self.get_can_recurse()

    def __set_can_recurse(self, value):
        self.set_can_recurse(value)

    can_recurse = property(__get_can_recurse, __set_can_recurse)


Source = override(Source)
__all__.append('Source')


class Idle(Source):
    def __new__(cls, priority=GLib.PRIORITY_DEFAULT):
        source = GLib.idle_source_new()
        source.__class__ = cls
        return source

    def __init__(self, priority=GLib.PRIORITY_DEFAULT):
        super(Source, self).__init__()
        if priority != GLib.PRIORITY_DEFAULT:
            self.set_priority(priority)


__all__.append('Idle')


class Timeout(Source):
    def __new__(cls, interval=0, priority=GLib.PRIORITY_DEFAULT):
        source = GLib.timeout_source_new(interval)
        source.__class__ = cls
        return source

    def __init__(self, interval=0, priority=GLib.PRIORITY_DEFAULT):
        if priority != GLib.PRIORITY_DEFAULT:
            self.set_priority(priority)


__all__.append('Timeout')


# backwards compatible API
def idle_add(function, *user_data, **kwargs):
    priority = kwargs.get('priority', GLib.PRIORITY_DEFAULT_IDLE)
    return GLib.idle_add(priority, function, *user_data)


__all__.append('idle_add')


def timeout_add(interval, function, *user_data, **kwargs):
    priority = kwargs.get('priority', GLib.PRIORITY_DEFAULT)
    return GLib.timeout_add(priority, interval, function, *user_data)


__all__.append('timeout_add')


def timeout_add_seconds(interval, function, *user_data, **kwargs):
    priority = kwargs.get('priority', GLib.PRIORITY_DEFAULT)
    return GLib.timeout_add_seconds(priority, interval, function, *user_data)


__all__.append('timeout_add_seconds')


# The GI GLib API uses g_io_add_watch_full renamed to g_io_add_watch with
# a signature of (channel, priority, condition, func, user_data).
# Prior to PyGObject 3.8, this function was statically bound with an API closer to the
# non-full version with a signature of: (fd, condition, func, *user_data)
# We need to support this until we are okay with breaking API in a way which is
# not backwards compatible.
#
# This needs to take into account several historical APIs:
# - calling with an fd as first argument
# - calling with a Python file object as first argument (we keep this one as
#   it's really convenient and does not change the number of arguments)
# - calling without a priority as second argument
def _io_add_watch_get_args(channel, priority_, condition, *cb_and_user_data, **kwargs):
    if not isinstance(priority_, int) or isinstance(priority_, GLib.IOCondition):
        warnings.warn('Calling io_add_watch without priority as second argument is deprecated',
                      PyGIDeprecationWarning)
        # shift the arguments around
        user_data = cb_and_user_data
        callback = condition
        condition = priority_
        if not callable(callback):
            raise TypeError('third argument must be callable')

        # backwards compatibility: Call with priority kwarg
        if 'priority' in kwargs:
            warnings.warn('Calling io_add_watch with priority keyword argument is deprecated, put it as second positional argument',
                          PyGIDeprecationWarning)
            priority_ = kwargs['priority']
        else:
            priority_ = GLib.PRIORITY_DEFAULT
    else:
        if len(cb_and_user_data) < 1 or not callable(cb_and_user_data[0]):
            raise TypeError('expecting callback as fourth argument')
        callback = cb_and_user_data[0]
        user_data = cb_and_user_data[1:]

    # backwards compatibility: Allow calling with fd
    if isinstance(channel, int):
        func_fdtransform = lambda _, cond, *data: callback(channel, cond, *data)
        real_channel = GLib.IOChannel.unix_new(channel)
    elif isinstance(channel, socket.socket) and sys.platform == 'win32':
        func_fdtransform = lambda _, cond, *data: callback(channel, cond, *data)
        real_channel = GLib.IOChannel.win32_new_socket(channel.fileno())
    elif hasattr(channel, 'fileno'):
        # backwards compatibility: Allow calling with Python file
        func_fdtransform = lambda _, cond, *data: callback(channel, cond, *data)
        real_channel = GLib.IOChannel.unix_new(channel.fileno())
    else:
        assert isinstance(channel, GLib.IOChannel)
        func_fdtransform = callback
        real_channel = channel

    return real_channel, priority_, condition, func_fdtransform, user_data


__all__.append('_io_add_watch_get_args')


def io_add_watch(*args, **kwargs):
    """io_add_watch(channel, priority, condition, func, *user_data) -> event_source_id"""
    channel, priority, condition, func, user_data = _io_add_watch_get_args(*args, **kwargs)
    return GLib.io_add_watch(channel, priority, condition, func, *user_data)


__all__.append('io_add_watch')


# backwards compatible API
class IOChannel(GLib.IOChannel):
    def __new__(cls, filedes=None, filename=None, mode=None, hwnd=None):
        if filedes is not None:
            return GLib.IOChannel.unix_new(filedes)
        if filename is not None:
            return GLib.IOChannel.new_file(filename, mode or 'r')
        if hwnd is not None:
            return GLib.IOChannel.win32_new_fd(hwnd)
        raise TypeError('either a valid file descriptor, file name, or window handle must be supplied')

    def __init__(self, *args, **kwargs):
        return super(IOChannel, self).__init__()

    def read(self, max_count=-1):
        return io_channel_read(self, max_count)

    def readline(self, size_hint=-1):
        # note, size_hint is just to maintain backwards compatible API; the
        # old static binding did not actually use it
        (status, buf, length, terminator_pos) = self.read_line()
        if buf is None:
            return ''
        return buf

    def readlines(self, size_hint=-1):
        # note, size_hint is just to maintain backwards compatible API;
        # the old static binding did not actually use it
        lines = []
        status = GLib.IOStatus.NORMAL
        while status == GLib.IOStatus.NORMAL:
            (status, buf, length, terminator_pos) = self.read_line()
            # note, this appends an empty line after EOF; this is
            # bug-compatible with the old static bindings
            if buf is None:
                buf = ''
            lines.append(buf)
        return lines

    def write(self, buf, buflen=-1):
        if not isinstance(buf, bytes):
            buf = buf.encode('UTF-8')
        if buflen == -1:
            buflen = len(buf)
        (status, written) = self.write_chars(buf, buflen)
        return written

    def writelines(self, lines):
        for line in lines:
            self.write(line)

    _whence_map = {0: GLib.SeekType.SET, 1: GLib.SeekType.CUR, 2: GLib.SeekType.END}

    def seek(self, offset, whence=0):
        try:
            w = self._whence_map[whence]
        except KeyError:
            raise ValueError("invalid 'whence' value")
        return self.seek_position(offset, w)

    def add_watch(self, condition, callback, *user_data, **kwargs):
        priority = kwargs.get('priority', GLib.PRIORITY_DEFAULT)
        return io_add_watch(self, priority, condition, callback, *user_data)

    add_watch = deprecated(add_watch, 'GLib.io_add_watch()')

    def __iter__(self):
        return self

    def __next__(self):
        (status, buf, length, terminator_pos) = self.read_line()
        if status == GLib.IOStatus.NORMAL:
            return buf
        raise StopIteration

    # Python 2.x compatibility
    next = __next__


IOChannel = override(IOChannel)
__all__.append('IOChannel')


class PollFD(GLib.PollFD):
    def __new__(cls, fd, events):
        pollfd = GLib.PollFD()
        pollfd.__class__ = cls
        return pollfd

    def __init__(self, fd, events):
        self.fd = fd
        self.events = events


PollFD = override(PollFD)
__all__.append('PollFD')


# The GI GLib API uses g_child_watch_add_full renamed to g_child_watch_add with
# a signature of (priority, pid, callback, data).
# Prior to PyGObject 3.8, this function was statically bound with an API closer to the
# non-full version with a signature of: (pid, callback, data=None, priority=GLib.PRIORITY_DEFAULT)
# We need to support this until we are okay with breaking API in a way which is
# not backwards compatible.
def _child_watch_add_get_args(priority_or_pid, pid_or_callback, *args, **kwargs):
    user_data = []

    if callable(pid_or_callback):
        warnings.warn('Calling child_watch_add without priority as first argument is deprecated',
                      PyGIDeprecationWarning)
        pid = priority_or_pid
        callback = pid_or_callback
        if len(args) == 0:
            priority = kwargs.get('priority', GLib.PRIORITY_DEFAULT)
        elif len(args) == 1:
            user_data = args
            priority = kwargs.get('priority', GLib.PRIORITY_DEFAULT)
        elif len(args) == 2:
            user_data = [args[0]]
            priority = args[1]
        else:
            raise TypeError('expected at most 4 positional arguments')
    else:
        priority = priority_or_pid
        pid = pid_or_callback
        if 'function' in kwargs:
            callback = kwargs['function']
            user_data = args
        elif len(args) > 0 and callable(args[0]):
            callback = args[0]
            user_data = args[1:]
        else:
            raise TypeError('expected callback as third argument')

    if 'data' in kwargs:
        if user_data:
            raise TypeError('got multiple values for "data" argument')
        user_data = [kwargs['data']]

    return priority, pid, callback, user_data


# we need this to be accessible for unit testing
__all__.append('_child_watch_add_get_args')


def child_watch_add(*args, **kwargs):
    """child_watch_add(priority, pid, function, *data)"""
    priority, pid, function, data = _child_watch_add_get_args(*args, **kwargs)
    return GLib.child_watch_add(priority, pid, function, *data)


__all__.append('child_watch_add')


def get_current_time():
    return GLib.get_real_time() * 0.000001


get_current_time = deprecated(get_current_time, 'GLib.get_real_time()')

__all__.append('get_current_time')


# backwards compatible API with default argument, and ignoring bytes_read
# output argument
def filename_from_utf8(utf8string, len=-1):
    return GLib.filename_from_utf8(utf8string, len)[0]


__all__.append('filename_from_utf8')


# backwards compatible API for renamed function
if not hasattr(GLib, 'unix_signal_add_full'):
    def add_full_compat(*args):
        warnings.warn('GLib.unix_signal_add_full() was renamed to GLib.unix_signal_add()',
                      PyGIDeprecationWarning)
        return GLib.unix_signal_add(*args)

    GLib.unix_signal_add_full = add_full_compat


# obsolete constants for backwards compatibility
glib_version = (GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION)
__all__.append('glib_version')
deprecated_attr("GLib", "glib_version",
                "(GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION)")

pyglib_version = version_info
__all__.append('pyglib_version')
deprecated_attr("GLib", "pyglib_version", "gi.version_info")
overrides/__pycache__/GLib.cpython-36.opt-1.pyc000064400000055017151734360770015205 0ustar003

��<_�u�@s�ddlZddlZddlZddlmZmZddlmZddlm	Z	m
Z
mZmZddl
mZmZmZddlmZmZed�ZgZdd	lmZeejd
�ddlmZddlmZeZejZejZejZejZd
d�Z dd�Z!dd�Z"de_#de_$ejj%e_%e!e_&e'e"�e_(edddddddg7ZGdd�de)�Z*Gdd�dej+�Z+dd�Z,e-e+de,�ejd�d�d d!�Z.ejd!�xFd�D]>Z/d*e/Z0ede0d+e/�e1ej2d,e/�e3�e0<eje0��qxWx2d�D]*Z/e1ej4e/�e3�d3e/<ejd3e/��q�WxBd�D]:Z/d;e/Z0ede0d<e/�e1ej5e/�e3�e0<eje0��q�Wej5j6Z7edd=d>�ejd=�xBd�D]:Z/dCe/Z0e1ej8e/�e3�e0<ede0dDe/�eje0��qVWxBd�D]:Z/dLe/Z0e1ej9e/�e3�e0<ede0dMe/�eje0��q�WxBd�D]:Z/dUe/Z0e1ej:e/�e3�e0<ede0dVe/�eje0��q�WxBd�D]:Z/dZe/Z0ede0d[e/�e1ej;e/�e3�e0<eje0��q"Wx8d�D]0Z<e<j=dnd�d�Z0e1ee<�e3�e0<eje0��qfWGdodp�dpej>�Z>ee>�Z>ejdp�Gdqdr�drej?�Z?ee?�Z?ejdr�Gdsdt�dtej@�Z@ee@�Z@ejdt�Gdudv�dve@�ZAejdv�Gdwdx�dxe@�ZBejdx�dydz�ZCejdz�d{d|�ZDejd|�d}d~�ZEejd~�dd��ZFejd��d�d��ZGejd��Gd�d��d�ejH�ZHeeH�ZHejd��Gd�d��d�ejI�ZIeeI�ZIejd��d�d��ZJejd��d�d��ZKejd��d�d��ZLeeLd��ZLejd��d�d�d��ZMejd��eNed���sJd�d��ZOeOe_PejQejRejSfZTejd��edd�d��eZUejd��edd�d��dS)��N�)�wakeup_on_signal�register_sigint_fallback)�get_introspection_module)�variant_type_from_string�
source_new�source_set_callback�io_channel_read)�override�
deprecated�deprecated_attr)�PyGIDeprecationWarning�version_info�GLib)�_option�option)�_gi)�GErrorcCstjdtdd�dS)NzmSince version 3.11, calling threads_init is no longer needed. See: https://wiki.gnome.org/PyGObject/Threadingr)�
stacklevel)�warnings�warnr
�rr�/usr/lib64/python3.6/GLib.py�threads_init5srcCs2t|jt�rtj|j�}n|j}||jf||fkS)N)�
isinstance�domain�strrZquark_from_string�code)�selfrrZself_domain_quarkrrr�gerror_matches;srcCstj|�}t|||�S)N)rZquark_to_stringr)r�messagerZdomain_quarkrrr�gerror_new_literalEs
r!�Errorr�
OptionContext�OptionGroup�Pid�spawn_asyncc@sneZdZejjejjejjejjejj	ejj
ejjejjejj
ejjejjejjejjejjd�Zdd�ZdS)�_VariantCreator)�b�y�n�q�i�u�x�t�h�d�s�o�g�vc	
Cs�tj|�}||jkr"|j||�Stjj|�}|dkr>|j�S|j�rh|j|j|j	�j
�|��|j�Syt|�Wn$tk
r�td||f��YnX|j
�r�|j�t|�kr�td||f��|j�r�t|�dkr�td||f��|j��r4|j	�j
�}t|t��r|j�}xl|D]}|j|j||���qWnJ|dd�}x<|D]4}t|�j
�}|j|j||��|t|�d�}�qFW|j�S)aBCreate a GVariant object from given format and a value that matches
        the format.

        This method recursively calls itself for complex structures (arrays,
        dictionaries, boxed).

        Returns the generated GVariant.

        If value is None it will generate an empty GVariant container type.
        NzOCould not create array, tuple or dictionary entry from non iterable value %s %sz1Tuple mismatches value's number of elements %s %srz/Dictionary entries must have two elements %s %s�)r�VariantType�_LEAF_CONSTRUCTORSZVariantBuilder�new�endZis_maybeZ	add_value�_create�elementZ
dup_string�iter�	TypeErrorZis_tupleZn_items�lenZ
is_dict_entryZis_arrayr�dict�itemsr)	r�format�valueZgvtypeZbuilderZelement_typer,Zremainer_format�duprrrr;is<




z_VariantCreator._createN)�__name__�
__module__�__qualname__r�VariantZnew_booleanZnew_byteZ	new_int16Z
new_uint16Z	new_int32Z
new_uint32Z	new_int64Z
new_uint64Z
new_handleZ
new_doubleZ
new_stringZnew_object_pathZ
new_signatureZnew_variantr8r;rrrrr'Vsr'c@s�eZdZdd�Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Ze
dd��Zdd�Zdd�Zdd�Zdd�Zdd�ZdS) rHcCs2tjj|�std|��t�}|j||�}||_|S)a�Create a GVariant from a native Python object.

        format_string is a standard GVariant type signature, value is a Python
        object whose structure has to match the signature.

        Examples:
          GLib.Variant('i', 1)
          GLib.Variant('(is)', (1, 'hello'))
          GLib.Variant('(asa{sv})', ([], {'foo': GLib.Variant('b', True),
                                          'bar': GLib.Variant('i', 2)}))
        z#Invalid GVariant format string '%s')rr7Zstring_is_validr>r'r;�
format_string)�clsrIrCZcreatorr5rrr�__new__�s
zVariant.__new__cGstjj|�S)N)rrH�	new_tuple)�elementsrrrrL�szVariant.new_tuplecCs&y|j�Wntk
r YnXdS)N)�unref�ImportError)rrrr�__del__�szVariant.__del__cCs
|jd�S)NT)�print_)rrrr�__str__�szVariant.__str__cCs,t|d�r|j}n|j�}d||jd�fS)NrIzGLib.Variant('%s', %s)F)�hasattrrI�get_type_stringrQ)r�frrr�__repr__�s
zVariant.__repr__cCs$y
|j|�Stk
rdSXdS)NF)�equalr>)r�otherrrr�__eq__�s
zVariant.__eq__cCs&y|j|�Stk
r dSXdS)NT)rWr>)rrXrrr�__ne__�szVariant.__ne__cCst|j�|j�f�S)N)�hashrT�unpack)rrrr�__hash__�szVariant.__hash__csX�j�j�j�j�j�j�j�j�j�j	�j
�j
�j
d�
}|j�j��}|rR|�S�j�j
d�r��fdd�t�j��D�}t|�S�j�j
d�r�i}x:t�j��D]*}�j|�}|jd�j�||jd�j�<q�W|S�j�j
d�r��fd	d�t�j��D�S�j�j
d
��r�j�j�S�j�j
d��rD�j��s6dS�jd�j�Std
�j���dS)z1Decompose a GVariant into a native Python object.)
r(r)r*r+r,r-r.r/r0r1r2r3r4�(csg|]}�j|�j��qSr)�get_child_valuer\)�.0r,)rrr�
<listcomp>�sz"Variant.unpack.<locals>.<listcomp>za{r6r�acsg|]}�j|�j��qSr)r_r\)r`r,)rrrrasr5�mNzunsupported GVariant type )�get_booleanZget_byteZ	get_int16Z
get_uint16Z	get_int32Z
get_uint32Z	get_int64Z
get_uint64Z
get_handleZ
get_double�
get_string�getrT�
startswith�range�
n_children�tupler_r\Zget_variant�NotImplementedError)rZLEAF_ACCESSORSZla�resr,r5r)rrr\�sH


 

zVariant.unpackc	Cs�|dkrgS|jd�s|gSg}d}|dd�}x�|r�|d}||7}|dd�}|d
kr\q2|dkr�d}|}|dkrzd
}nd}xJ|dkr�|d}||7}|dd�}||kr�|d7}q�||kr�|d8}q�W|j|�d}q2W|S)a[Return a list of the element signatures of the topmost signature tuple.

        If the signature is not a tuple, it returns one element with the entire
        signature. If the signature is an empty tuple, the result is [].

        This is useful for e. g. iterating over method parameters which are
        passed as a single Variant.
        z()r^�r6rNrcrb�{�)�}���)rcrb)r^rn)rg�append)	�klassZ	signature�result�head�tail�c�levelZupZdownrrr�split_signatures<




zVariant.split_signaturecCsP|j�dkrt|j��S|j�jd�s4|j�jd�r<|j�Std|j���dS)Nr2r3r4rbr^z'GVariant type %s does not have a length)r2r3r4)rTr?rergrir>)rrrr�__len__Is
zVariant.__len__cCs&|j�jd�r�y(|j|td��}|dkr0t|��|j�Stk
r�x>t|j��D].}|j	|�}|j	d�j�|krT|j	d�j�SqTWt|��YnX|j�jd�s�|j�jd�r�t
|�}|dkr�|j�|}|dks�||j�kr�td��|j	|�j�S|j�dk�r|j�j
|�Std|j���dS)
Nza{�*rr6rbr^zlist index out of ranger2r3r4z#GVariant type %s is not a container)r2r3r4)rTrgZlookup_valuer�KeyErrorr\r>rhrir_�int�
IndexErrorre�__getitem__)r�key�valr,r5rrrrQs,
zVariant.__getitem__cCs|j�S)N)�__bool__)rrrr�__nonzero__vszVariant.__nonzero__c
Cs�|j�dkr|j�d
kS|j�dkr,|j�S|j�dkrHt|j��d
kS|j�jd�sd|j�jd�rp|j�d
kS|j�dkr�t|j��SdS)Nr)r*r+r,r-r.r/r0r1rr(r2r3r4rbr^r5T)	r)r*r+r,r-r.r/r0r1)r()r2r3r4)r5)rTr\rdr?rergri�bool)rrrrr�yszVariant.__bool__cCsZ|j�jd�std|j�fSg}x2t|j��D]"}|j|�}|j|jd�j��q0W|S)Nza{z$GVariant type %s is not a dictionaryr)rTrgr>rhrir_rrr\)rrlr,r5rrr�keys�s
zVariant.keysN)rErFrGrK�staticmethodrLrPrRrVrYrZr]r\�classmethodryrzrr�r�r�rrrrrH�s76%rHcCstjj|�\}}|S)N)rrHre)rrC�lengthrrrre�srer6cCs,t|t�rtj|jd�|�Stj||�SdS)NzUTF-8)r�bytesr�markup_escape_text�decode)�textr�rrrr��s
r��DESKTOP�	DOCUMENTS�DOWNLOAD�MUSIC�PICTURES�PUBLIC_SHARE�	TEMPLATES�VIDEOSZUSER_DIRECTORY_zGLib.UserDirectory.DIRECTORY_Z
DIRECTORY_�ERR�HUP�IN�NVAL�OUT�PRIZIO_�APPEND�GET_MASK�IS_READABLE�IS_SEEKABLE�MASK�NONBLOCK�SET_MASKZIO_FLAG_z
GLib.IOFlags.�IO_FLAG_IS_WRITEABLEzGLib.IOFlags.IS_WRITABLE�AGAIN�EOF�ERROR�NORMALZ
IO_STATUS_zGLib.IOStatus.�CHILD_INHERITS_STDIN�DO_NOT_REAP_CHILD�FILE_AND_ARGV_ZERO�LEAVE_DESCRIPTORS_OPEN�SEARCH_PATH�STDERR_TO_DEV_NULL�STDOUT_TO_DEV_NULLZSPAWN_zGLib.SpawnFlags.�HIDDEN�IN_MAIN�REVERSE�NO_ARG�FILENAME�OPTIONAL_ARG�NOALIASZOPTION_FLAG_zGLib.OptionFlags.�UNKNOWN_OPTION�	BAD_VALUE�FAILEDZ
OPTION_ERROR_zGLib.OptionError.�
G_MINFLOAT�
G_MAXFLOAT�G_MINDOUBLE�G_MAXDOUBLE�
G_MINSHORT�
G_MAXSHORT�G_MAXUSHORT�G_MININT�G_MAXINT�	G_MAXUINT�	G_MINLONG�	G_MAXLONG�
G_MAXULONG�	G_MAXSIZE�
G_MINSSIZE�
G_MAXSSIZE�G_MINOFFSET�G_MAXOFFSET�_cs0eZdZddd�Zd	dd�Z�fdd�Z�ZS)
�MainLoopNcCstjj|d�S)NF)rr�r9)rJ�contextrrrrK�szMainLoop.__new__cCsdS)Nr)rr�rrr�__init__�szMainLoop.__init__cs:t|j��&t��tt|�j�WdQRXWdQRXdS)N)r�quitr�superr��run)r)�	__class__rrr��szMainLoop.run)N)N)rErFrGrKr�r��
__classcell__rr)r�rr��s

r�cseZdZd�fdd�	Z�ZS)�MainContextTcstt|�j|�S)N)r�r��	iteration)rZ	may_block)r�rrr��szMainContext.iteration)T)rErFrGr�r�rr)r�rr��sr�cs�eZdZdd�Z�fdd�Zdd�Zd�fdd	�	Zd
d�Zeed�Zd
d�Z	dd�Z
ee	e
�Zdd�Z
dd�Zee
e�Z�ZS)�SourcecOst�}||_t|dd�|S)N�__pygi_custom_sourceT)rr��setattr)rJ�args�kwargs�sourcerrrrKszSource.__new__cstt|�j�S)N)r�r�r�)rr�r�)r�rrr�szSource.__init__cCst|d�r|j�dS)Nr�)rSrN)rrrrrPs
zSource.__del__Ncs.t|d�rt|||�ntt|�j||�dS)Nr�)rSrr�r��set_callback)r�fn�	user_data)r�rrr�s
zSource.set_callbackcCstj�dS)Ng���ư>)r�
get_real_time)rrrr�get_current_timeszSource.get_current_timez.GLib.Source.get_time() or GLib.get_real_time()cCs|j�S)N)Zget_priority)rrrrZ__get_priority$szSource.__get_prioritycCs|j|�dS)N)�set_priority)rrCrrrZ__set_priority'szSource.__set_prioritycCs|j�S)N)Zget_can_recurse)rrrrZ__get_can_recurse,szSource.__get_can_recursecCs|j|�dS)N)Zset_can_recurse)rrCrrrZ__set_can_recurse/szSource.__set_can_recurse)N)rErFrGrKr�rPr�r�rZ_Source__get_priorityZ_Source__set_priority�property�priorityZ_Source__get_can_recurseZ_Source__set_can_recurseZcan_recurser�rr)r�rr�s	
r�cs0eZdZejfdd�Zejf�fdd�	Z�ZS)�IdlecCstj�}||_|S)N)rZidle_source_newr�)rJr�r�rrrrK:szIdle.__new__cs&tt|�j�|tjkr"|j|�dS)N)r�r�r�r�PRIORITY_DEFAULTr�)rr�)r�rrr�?s
z
Idle.__init__)rErFrGrr�rKr�r�rr)r�rr�9sr�c@s,eZdZdejfdd�Zdejfdd�ZdS)�TimeoutrcCstj|�}||_|S)N)rZtimeout_source_newr�)rJ�intervalr�r�rrrrKIs
zTimeout.__new__cCs|tjkr|j|�dS)N)rr�r�)rr�r�rrrr�Ns
zTimeout.__init__N)rErFrGrr�rKr�rrrrr�Hsr�cOs |jdtj�}tj||f|��S)Nr�)rfrZPRIORITY_DEFAULT_IDLE�idle_add)�functionr�r�r�rrrr�Wsr�cOs"|jdtj�}tj|||f|��S)Nr�)rfrr��timeout_add)r�r�r�r�r�rrrr�_sr�cOs"|jdtj�}tj|||f|��S)Nr�)rfrr��timeout_add_seconds)r�r�r�r�r�rrrr�gsr�cs:t|t�st|tj�rftjdt�|}|�|}t��s@td��d|kr^tjdt�|d}q�tj	}n6t
|�dks�t|d�r�td��|d�|dd�}t�t�r‡�fdd	�}tjj��}njt�t
j
�r�tjd
kr���fdd	�}tjj�j��}n4t�d��r$��fd
d	�}tjj�j��}n�}�}|||||fS)NzFCalling io_add_watch without priority as second argument is deprecatedzthird argument must be callabler�zgCalling io_add_watch with priority keyword argument is deprecated, put it as second positional argumentr6rz%expecting callback as fourth argumentcs��|f|��S)Nr)r��cond�data)�callback�channelrr�<lambda>�sz(_io_add_watch_get_args.<locals>.<lambda>Zwin32cs��|f|��S)Nr)r�r�r�)r�r�rrr��s�filenocs��|f|��S)Nr)r�r�r�)r�r�rrr��s)rr}r�IOConditionrrr
�callabler>r�r?�	IOChannel�unix_new�socket�sys�platformZwin32_new_socketr�rS)r�Z	priority_�	conditionZcb_and_user_datar�r�Zfunc_fdtransformZreal_channelr)r�r�r�_io_add_watch_get_args{s:

r�cOs*t||�\}}}}}tj||||f|��S)zOio_add_watch(channel, priority, condition, func, *user_data) -> event_source_id)r�r�io_add_watch)r�r�r�r�r��funcr�rrrr��sr�cs�eZdZddd�Z�fdd�Zddd�Zd d	d
�Zd"dd�Zd$d
d�Zdd�Z	e
jje
jj
e
jjd�Zd%dd�Zdd�Zeed�Zdd�Zdd�ZeZ�ZS)&r�NcCsN|dk	rtjj|�S|dk	r.tjj||p*d�S|dk	rBtjj|�Std��dS)N�rzLeither a valid file descriptor, file name, or window handle must be supplied)rr�r�Znew_fileZwin32_new_fdr>)rJZfiledes�filename�modeZhwndrrrrK�szIOChannel.__new__cstt|�j�S)N)r�r�r�)rr�r�)r�rrr��szIOChannel.__init__r6cCs
t||�S)N)r	)rZ	max_countrrr�read�szIOChannel.readcCs |j�\}}}}|dkrdS|S)Nrm)�	read_line)r�	size_hint�status�bufr��terminator_posrrr�readline�szIOChannel.readlinecCsHg}tjj}x6|tjjkrB|j�\}}}}|dkr6d}|j|�qW|S)Nrm)r�IOStatusr�rrr)rr�linesrrr�rrrr�	readlines�szIOChannel.readlinescCs8t|t�s|jd�}|dkr$t|�}|j||�\}}|S)NzUTF-8r6rq)rr��encoder?Zwrite_chars)rrZbuflenrZwrittenrrr�write�s

zIOChannel.writecCsx|D]}|j|�qWdS)N)r
)rr�linerrr�
writelines�s
zIOChannel.writelines)rr6rrcCs8y|j|}Wntk
r*td��YnX|j||�S)Nzinvalid 'whence' value)�_whence_mapr|�
ValueErrorZ
seek_position)r�offset�whence�wrrr�seek�s
zIOChannel.seekcOs"|jdtj�}t||||f|��S)Nr�)rfrr�r�)rr�r�r�r�r�rrr�	add_watch�szIOChannel.add_watchzGLib.io_add_watch()cCs|S)Nr)rrrr�__iter__�szIOChannel.__iter__cCs(|j�\}}}}|tjjkr |St�dS)N)rrrr��
StopIteration)rrrr�rrrr�__next__�szIOChannel.__next__)NNNNrq)rqrq)rqrq)rqrq)rq)r)rErFrGrKr�r�rrr
rrZSeekTypeZSETZCURZENDr
rrrrr�nextr�rr)r�rr��s
	





r�c@seZdZdd�Zdd�ZdS)�PollFDcCstj�}||_|S)N)rrr�)rJ�fd�eventsZpollfdrrrrKszPollFD.__new__cCs||_||_dS)N)rr)rrrrrrr�szPollFD.__init__N)rErFrGrKr�rrrrrsrcOsg}t|�r�tjdt�|}|}t|�dkr<|jdtj�}q�t|�dkr\|}|jdtj�}q�t|�dkr||dg}|d}q�td��nT|}|}d|kr�|d}|}n6t|�dkr�t|d�r�|d}|dd�}ntd��d	|kr�|r�td
��|d	g}||||fS)NzHCalling child_watch_add without priority as first argument is deprecatedrr�r6rz'expected at most 4 positional argumentsr�z#expected callback as third argumentr�z'got multiple values for "data" argument)	r�rrr
r?rfrr�r>)Zpriority_or_pidZpid_or_callbackr�r�r��pidr�r�rrr�_child_watch_add_get_argss:



rcOs&t||�\}}}}tj|||f|��S)z/child_watch_add(priority, pid, function, *data))rr�child_watch_add)r�r�r�rr�r�rrrrDsrcCstj�dS)Ng���ư>)rr�rrrrr�Msr�zGLib.get_real_time()cCstj||�dS)Nr)r�filename_from_utf8)Z
utf8stringr?rrrrXsr�unix_signal_add_fullcGstjdt�tj|�S)NzAGLib.unix_signal_add_full() was renamed to GLib.unix_signal_add())rrr
rZunix_signal_add)r�rrr�add_full_compatasr �glib_versionz<(GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION)�pyglib_versionzgi.version_inforq)rq)r�r�r�r�r�r�r�r�)r�r�r�r�r�r�)r�r�r�r�r�r�r�)r�r�r�r�)r�r�r�r�r�r�r�)r�r�r�r�r�r�r�)r�r�r�)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rqrq)rq)Vrr�r�Z_ossighelperrr�modulerrrrrr	Z	overridesr
rrZgir
rr�__all__rrrrZ	gi._errorrr"r#r$r%r&rrr!rErFZ	__gtype__Zmatchesr�Znew_literal�objectr'rHrer�r�r*�attr�getattrZ
UserDirectory�globalsr�ZIOFlagsZIS_WRITABLEr�rZ
SpawnFlagsZOptionFlagsZOptionError�name�splitr�r�r�r�r�r�r�r�r�r�r�rrrr�rrSr rZ
MAJOR_VERSIONZ
MINOR_VERSIONZ
MICRO_VERSIONr!r"rrrr�<module>s





Fy








2





+

N

	'







overrides/__pycache__/GLib.cpython-36.pyc000064400000055063151734360770014247 0ustar003

��<_�u�@s�ddlZddlZddlZddlmZmZddlmZddlm	Z	m
Z
mZmZddl
mZmZmZddlmZmZed�ZgZdd	lmZeejd
�ddlmZddlmZeZejZejZejZejZd
d�Z dd�Z!dd�Z"de_#de_$ejj%e_%e!e_&e'e"�e_(edddddddg7ZGdd�de)�Z*Gdd�dej+�Z+dd�Z,e-e+de,�ejd�d�d d!�Z.ejd!�xFd�D]>Z/d*e/Z0ede0d+e/�e1ej2d,e/�e3�e0<eje0��qxWx2d�D]*Z/e1ej4e/�e3�d3e/<ejd3e/��q�WxBd�D]:Z/d;e/Z0ede0d<e/�e1ej5e/�e3�e0<eje0��q�Wej5j6Z7edd=d>�ejd=�xBd�D]:Z/dCe/Z0e1ej8e/�e3�e0<ede0dDe/�eje0��qVWxBd�D]:Z/dLe/Z0e1ej9e/�e3�e0<ede0dMe/�eje0��q�WxBd�D]:Z/dUe/Z0e1ej:e/�e3�e0<ede0dVe/�eje0��q�WxBd�D]:Z/dZe/Z0ede0d[e/�e1ej;e/�e3�e0<eje0��q"Wx8d�D]0Z<e<j=dnd�d�Z0e1ee<�e3�e0<eje0��qfWGdodp�dpej>�Z>ee>�Z>ejdp�Gdqdr�drej?�Z?ee?�Z?ejdr�Gdsdt�dtej@�Z@ee@�Z@ejdt�Gdudv�dve@�ZAejdv�Gdwdx�dxe@�ZBejdx�dydz�ZCejdz�d{d|�ZDejd|�d}d~�ZEejd~�dd��ZFejd��d�d��ZGejd��Gd�d��d�ejH�ZHeeH�ZHejd��Gd�d��d�ejI�ZIeeI�ZIejd��d�d��ZJejd��d�d��ZKejd��d�d��ZLeeLd��ZLejd��d�d�d��ZMejd��eNed���sJd�d��ZOeOe_PejQejRejSfZTejd��edd�d��eZUejd��edd�d��dS)��N�)�wakeup_on_signal�register_sigint_fallback)�get_introspection_module)�variant_type_from_string�
source_new�source_set_callback�io_channel_read)�override�
deprecated�deprecated_attr)�PyGIDeprecationWarning�version_info�GLib)�_option�option)�_gi)�GErrorcCstjdtdd�dS)NzmSince version 3.11, calling threads_init is no longer needed. See: https://wiki.gnome.org/PyGObject/Threadingr)�
stacklevel)�warnings�warnr
�rr�/usr/lib64/python3.6/GLib.py�threads_init5srcCs2t|jt�rtj|j�}n|j}||jf||fkS)N)�
isinstance�domain�strrZquark_from_string�code)�selfrrZself_domain_quarkrrr�gerror_matches;srcCstj|�}t|||�S)N)rZquark_to_stringr)r�messagerZdomain_quarkrrr�gerror_new_literalEs
r!�Errorr�
OptionContext�OptionGroup�Pid�spawn_asyncc@sneZdZejjejjejjejjejj	ejj
ejjejjejj
ejjejjejjejjejjd�Zdd�ZdS)�_VariantCreator)�b�y�n�q�i�u�x�t�h�d�s�o�g�vc	
Cs�tj|�}||jkr"|j||�Stjj|�}|dkr>|j�S|j�rh|j|j|j	�j
�|��|j�Syt|�Wn$tk
r�td||f��YnX|j
�r�|j�t|�kr�td||f��|j�r�t|�dkr�td||f��|j��r4|j	�j
�}t|t��r|j�}xl|D]}|j|j||���qWnJ|dd�}x<|D]4}t|�j
�}|j|j||��|t|�d�}�qFW|j�S)aBCreate a GVariant object from given format and a value that matches
        the format.

        This method recursively calls itself for complex structures (arrays,
        dictionaries, boxed).

        Returns the generated GVariant.

        If value is None it will generate an empty GVariant container type.
        NzOCould not create array, tuple or dictionary entry from non iterable value %s %sz1Tuple mismatches value's number of elements %s %srz/Dictionary entries must have two elements %s %s�)r�VariantType�_LEAF_CONSTRUCTORSZVariantBuilder�new�endZis_maybeZ	add_value�_create�elementZ
dup_string�iter�	TypeErrorZis_tupleZn_items�lenZ
is_dict_entryZis_arrayr�dict�itemsr)	r�format�valueZgvtypeZbuilderZelement_typer,Zremainer_format�duprrrr;is<




z_VariantCreator._createN)�__name__�
__module__�__qualname__r�VariantZnew_booleanZnew_byteZ	new_int16Z
new_uint16Z	new_int32Z
new_uint32Z	new_int64Z
new_uint64Z
new_handleZ
new_doubleZ
new_stringZnew_object_pathZ
new_signatureZnew_variantr8r;rrrrr'Vsr'c@s�eZdZdd�Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Ze
dd��Zdd�Zdd�Zdd�Zdd�Zdd�ZdS) rHcCs2tjj|�std|��t�}|j||�}||_|S)a�Create a GVariant from a native Python object.

        format_string is a standard GVariant type signature, value is a Python
        object whose structure has to match the signature.

        Examples:
          GLib.Variant('i', 1)
          GLib.Variant('(is)', (1, 'hello'))
          GLib.Variant('(asa{sv})', ([], {'foo': GLib.Variant('b', True),
                                          'bar': GLib.Variant('i', 2)}))
        z#Invalid GVariant format string '%s')rr7Zstring_is_validr>r'r;�
format_string)�clsrIrCZcreatorr5rrr�__new__�s
zVariant.__new__cGstjj|�S)N)rrH�	new_tuple)�elementsrrrrL�szVariant.new_tuplecCs&y|j�Wntk
r YnXdS)N)�unref�ImportError)rrrr�__del__�szVariant.__del__cCs
|jd�S)NT)�print_)rrrr�__str__�szVariant.__str__cCs,t|d�r|j}n|j�}d||jd�fS)NrIzGLib.Variant('%s', %s)F)�hasattrrI�get_type_stringrQ)r�frrr�__repr__�s
zVariant.__repr__cCs$y
|j|�Stk
rdSXdS)NF)�equalr>)r�otherrrr�__eq__�s
zVariant.__eq__cCs&y|j|�Stk
r dSXdS)NT)rWr>)rrXrrr�__ne__�szVariant.__ne__cCst|j�|j�f�S)N)�hashrT�unpack)rrrr�__hash__�szVariant.__hash__csX�j�j�j�j�j�j�j�j�j�j	�j
�j
�j
d�
}|j�j��}|rR|�S�j�j
d�r��fdd�t�j��D�}t|�S�j�j
d�r�i}x:t�j��D]*}�j|�}|jd�j�||jd�j�<q�W|S�j�j
d�r��fd	d�t�j��D�S�j�j
d
��r�j�j�S�j�j
d��rD�j��s6dS�jd�j�Std
�j���dS)z1Decompose a GVariant into a native Python object.)
r(r)r*r+r,r-r.r/r0r1r2r3r4�(csg|]}�j|�j��qSr)�get_child_valuer\)�.0r,)rrr�
<listcomp>�sz"Variant.unpack.<locals>.<listcomp>za{r6r�acsg|]}�j|�j��qSr)r_r\)r`r,)rrrrasr5�mNzunsupported GVariant type )�get_booleanZget_byteZ	get_int16Z
get_uint16Z	get_int32Z
get_uint32Z	get_int64Z
get_uint64Z
get_handleZ
get_double�
get_string�getrT�
startswith�range�
n_children�tupler_r\Zget_variant�NotImplementedError)rZLEAF_ACCESSORSZla�resr,r5r)rrr\�sH


 

zVariant.unpackc	Cs�|dkrgS|jd�s|gSg}d}|dd�}x�|r�|d}||7}|dd�}|d
kr\q2|dkr�d}|}|dkrzd
}nd}xJ|dkr�|d}||7}|dd�}||kr�|d7}q�||kr�|d8}q�W|j|�d}q2W|S)a[Return a list of the element signatures of the topmost signature tuple.

        If the signature is not a tuple, it returns one element with the entire
        signature. If the signature is an empty tuple, the result is [].

        This is useful for e. g. iterating over method parameters which are
        passed as a single Variant.
        z()r^�r6rNrcrb�{�)�}���)rcrb)r^rn)rg�append)	�klassZ	signature�result�head�tail�c�levelZupZdownrrr�split_signatures<




zVariant.split_signaturecCsP|j�dkrt|j��S|j�jd�s4|j�jd�r<|j�Std|j���dS)Nr2r3r4rbr^z'GVariant type %s does not have a length)r2r3r4)rTr?rergrir>)rrrr�__len__Is
zVariant.__len__cCs&|j�jd�r�y(|j|td��}|dkr0t|��|j�Stk
r�x>t|j��D].}|j	|�}|j	d�j�|krT|j	d�j�SqTWt|��YnX|j�jd�s�|j�jd�r�t
|�}|dkr�|j�|}|dks�||j�kr�td��|j	|�j�S|j�dk�r|j�j
|�Std|j���dS)
Nza{�*rr6rbr^zlist index out of ranger2r3r4z#GVariant type %s is not a container)r2r3r4)rTrgZlookup_valuer�KeyErrorr\r>rhrir_�int�
IndexErrorre�__getitem__)r�key�valr,r5rrrrQs,
zVariant.__getitem__cCs|j�S)N)�__bool__)rrrr�__nonzero__vszVariant.__nonzero__c
Cs�|j�dkr|j�d
kS|j�dkr,|j�S|j�dkrHt|j��d
kS|j�jd�sd|j�jd�rp|j�d
kS|j�dkr�t|j��SdS)Nr)r*r+r,r-r.r/r0r1rr(r2r3r4rbr^r5T)	r)r*r+r,r-r.r/r0r1)r()r2r3r4)r5)rTr\rdr?rergri�bool)rrrrr�yszVariant.__bool__cCsZ|j�jd�std|j�fSg}x2t|j��D]"}|j|�}|j|jd�j��q0W|S)Nza{z$GVariant type %s is not a dictionaryr)rTrgr>rhrir_rrr\)rrlr,r5rrr�keys�s
zVariant.keysN)rErFrGrK�staticmethodrLrPrRrVrYrZr]r\�classmethodryrzrr�r�r�rrrrrH�s76%rHcCstjj|�\}}|S)N)rrHre)rrC�lengthrrrre�srer6cCs,t|t�rtj|jd�|�Stj||�SdS)NzUTF-8)r�bytesr�markup_escape_text�decode)�textr�rrrr��s
r��DESKTOP�	DOCUMENTS�DOWNLOAD�MUSIC�PICTURES�PUBLIC_SHARE�	TEMPLATES�VIDEOSZUSER_DIRECTORY_zGLib.UserDirectory.DIRECTORY_Z
DIRECTORY_�ERR�HUP�IN�NVAL�OUT�PRIZIO_�APPEND�GET_MASK�IS_READABLE�IS_SEEKABLE�MASK�NONBLOCK�SET_MASKZIO_FLAG_z
GLib.IOFlags.�IO_FLAG_IS_WRITEABLEzGLib.IOFlags.IS_WRITABLE�AGAIN�EOF�ERROR�NORMALZ
IO_STATUS_zGLib.IOStatus.�CHILD_INHERITS_STDIN�DO_NOT_REAP_CHILD�FILE_AND_ARGV_ZERO�LEAVE_DESCRIPTORS_OPEN�SEARCH_PATH�STDERR_TO_DEV_NULL�STDOUT_TO_DEV_NULLZSPAWN_zGLib.SpawnFlags.�HIDDEN�IN_MAIN�REVERSE�NO_ARG�FILENAME�OPTIONAL_ARG�NOALIASZOPTION_FLAG_zGLib.OptionFlags.�UNKNOWN_OPTION�	BAD_VALUE�FAILEDZ
OPTION_ERROR_zGLib.OptionError.�
G_MINFLOAT�
G_MAXFLOAT�G_MINDOUBLE�G_MAXDOUBLE�
G_MINSHORT�
G_MAXSHORT�G_MAXUSHORT�G_MININT�G_MAXINT�	G_MAXUINT�	G_MINLONG�	G_MAXLONG�
G_MAXULONG�	G_MAXSIZE�
G_MINSSIZE�
G_MAXSSIZE�G_MINOFFSET�G_MAXOFFSET�_cs0eZdZddd�Zd	dd�Z�fdd�Z�ZS)
�MainLoopNcCstjj|d�S)NF)rr�r9)rJ�contextrrrrK�szMainLoop.__new__cCsdS)Nr)rr�rrr�__init__�szMainLoop.__init__cs:t|j��&t��tt|�j�WdQRXWdQRXdS)N)r�quitr�superr��run)r)�	__class__rrr��szMainLoop.run)N)N)rErFrGrKr�r��
__classcell__rr)r�rr��s

r�cseZdZd�fdd�	Z�ZS)�MainContextTcstt|�j|�S)N)r�r��	iteration)rZ	may_block)r�rrr��szMainContext.iteration)T)rErFrGr�r�rr)r�rr��sr�cs�eZdZdd�Z�fdd�Zdd�Zd�fdd	�	Zd
d�Zeed�Zd
d�Z	dd�Z
ee	e
�Zdd�Z
dd�Zee
e�Z�ZS)�SourcecOst�}||_t|dd�|S)N�__pygi_custom_sourceT)rr��setattr)rJ�args�kwargs�sourcerrrrKszSource.__new__cstt|�j�S)N)r�r�r�)rr�r�)r�rrr�szSource.__init__cCst|d�r|j�dS)Nr�)rSrN)rrrrrPs
zSource.__del__Ncs.t|d�rt|||�ntt|�j||�dS)Nr�)rSrr�r��set_callback)r�fn�	user_data)r�rrr�s
zSource.set_callbackcCstj�dS)Ng���ư>)r�
get_real_time)rrrr�get_current_timeszSource.get_current_timez.GLib.Source.get_time() or GLib.get_real_time()cCs|j�S)N)Zget_priority)rrrrZ__get_priority$szSource.__get_prioritycCs|j|�dS)N)�set_priority)rrCrrrZ__set_priority'szSource.__set_prioritycCs|j�S)N)Zget_can_recurse)rrrrZ__get_can_recurse,szSource.__get_can_recursecCs|j|�dS)N)Zset_can_recurse)rrCrrrZ__set_can_recurse/szSource.__set_can_recurse)N)rErFrGrKr�rPr�r�rZ_Source__get_priorityZ_Source__set_priority�property�priorityZ_Source__get_can_recurseZ_Source__set_can_recurseZcan_recurser�rr)r�rr�s	
r�cs0eZdZejfdd�Zejf�fdd�	Z�ZS)�IdlecCstj�}||_|S)N)rZidle_source_newr�)rJr�r�rrrrK:szIdle.__new__cs&tt|�j�|tjkr"|j|�dS)N)r�r�r�r�PRIORITY_DEFAULTr�)rr�)r�rrr�?s
z
Idle.__init__)rErFrGrr�rKr�r�rr)r�rr�9sr�c@s,eZdZdejfdd�Zdejfdd�ZdS)�TimeoutrcCstj|�}||_|S)N)rZtimeout_source_newr�)rJ�intervalr�r�rrrrKIs
zTimeout.__new__cCs|tjkr|j|�dS)N)rr�r�)rr�r�rrrr�Ns
zTimeout.__init__N)rErFrGrr�rKr�rrrrr�Hsr�cOs |jdtj�}tj||f|��S)Nr�)rfrZPRIORITY_DEFAULT_IDLE�idle_add)�functionr�r�r�rrrr�Wsr�cOs"|jdtj�}tj|||f|��S)Nr�)rfrr��timeout_add)r�r�r�r�r�rrrr�_sr�cOs"|jdtj�}tj|||f|��S)Nr�)rfrr��timeout_add_seconds)r�r�r�r�r�rrrr�gsr�csLt|t�st|tj�rftjdt�|}|�|}t��s@td��d|kr^tjdt�|d}q�tj	}n6t
|�dks�t|d�r�td��|d�|dd�}t�t�r‡�fdd	�}tjj��}n|t�t
j
�r�tjd
kr���fdd	�}tjj�j��}nFt�d��r$��fd
d	�}tjj�j��}nt�tj��s6t��}�}|||||fS)NzFCalling io_add_watch without priority as second argument is deprecatedzthird argument must be callabler�zgCalling io_add_watch with priority keyword argument is deprecated, put it as second positional argumentr6rz%expecting callback as fourth argumentcs��|f|��S)Nr)r��cond�data)�callback�channelrr�<lambda>�sz(_io_add_watch_get_args.<locals>.<lambda>Zwin32cs��|f|��S)Nr)r�r�r�)r�r�rrr��s�filenocs��|f|��S)Nr)r�r�r�)r�r�rrr��s)rr}r�IOConditionrrr
�callabler>r�r?�	IOChannel�unix_new�socket�sys�platformZwin32_new_socketr�rS�AssertionError)r�Z	priority_�	conditionZcb_and_user_datar�r�Zfunc_fdtransformZreal_channelr)r�r�r�_io_add_watch_get_args{s<

r�cOs*t||�\}}}}}tj||||f|��S)zOio_add_watch(channel, priority, condition, func, *user_data) -> event_source_id)r�r�io_add_watch)r�r�r�r�r��funcr�rrrr��sr�cs�eZdZddd�Z�fdd�Zddd�Zd d	d
�Zd"dd�Zd$d
d�Zdd�Z	e
jje
jj
e
jjd�Zd%dd�Zdd�Zeed�Zdd�Zdd�ZeZ�ZS)&r�NcCsN|dk	rtjj|�S|dk	r.tjj||p*d�S|dk	rBtjj|�Std��dS)N�rzLeither a valid file descriptor, file name, or window handle must be supplied)rr�r�Znew_fileZwin32_new_fdr>)rJZfiledes�filename�modeZhwndrrrrK�szIOChannel.__new__cstt|�j�S)N)r�r�r�)rr�r�)r�rrr��szIOChannel.__init__r6cCs
t||�S)N)r	)rZ	max_countrrr�read�szIOChannel.readcCs |j�\}}}}|dkrdS|S)Nrm)�	read_line)r�	size_hint�status�bufr��terminator_posrrr�readline�szIOChannel.readlinecCsHg}tjj}x6|tjjkrB|j�\}}}}|dkr6d}|j|�qW|S)Nrm)r�IOStatusr�rrr)rr�linesrrr�rrrr�	readlines�szIOChannel.readlinescCs8t|t�s|jd�}|dkr$t|�}|j||�\}}|S)NzUTF-8r6rq)rr��encoder?Zwrite_chars)rrZbuflenrZwrittenrrr�write�s

zIOChannel.writecCsx|D]}|j|�qWdS)N)r)rr�linerrr�
writelines�s
zIOChannel.writelines)rr6rrcCs8y|j|}Wntk
r*td��YnX|j||�S)Nzinvalid 'whence' value)�_whence_mapr|�
ValueErrorZ
seek_position)r�offset�whence�wrrr�seek�s
zIOChannel.seekcOs"|jdtj�}t||||f|��S)Nr�)rfrr�r�)rr�r�r�r�r�rrr�	add_watch�szIOChannel.add_watchzGLib.io_add_watch()cCs|S)Nr)rrrr�__iter__�szIOChannel.__iter__cCs(|j�\}}}}|tjjkr |St�dS)N)rrrr��
StopIteration)rrrr�rrrr�__next__�szIOChannel.__next__)NNNNrq)rqrq)rqrq)rqrq)rq)r)rErFrGrKr�rrr	rr
rZSeekTypeZSETZCURZENDrrrrrr�nextr�rr)r�rr��s
	





r�c@seZdZdd�Zdd�ZdS)�PollFDcCstj�}||_|S)N)rrr�)rJ�fd�eventsZpollfdrrrrKszPollFD.__new__cCs||_||_dS)N)rr)rrrrrrr�szPollFD.__init__N)rErFrGrKr�rrrrrsrcOsg}t|�r�tjdt�|}|}t|�dkr<|jdtj�}q�t|�dkr\|}|jdtj�}q�t|�dkr||dg}|d}q�td��nT|}|}d|kr�|d}|}n6t|�dkr�t|d�r�|d}|dd�}ntd��d	|kr�|r�td
��|d	g}||||fS)NzHCalling child_watch_add without priority as first argument is deprecatedrr�r6rz'expected at most 4 positional argumentsr�z#expected callback as third argumentr�z'got multiple values for "data" argument)	r�rrr
r?rfrr�r>)Zpriority_or_pidZpid_or_callbackr�r�r��pidr�r�rrr�_child_watch_add_get_argss:



rcOs&t||�\}}}}tj|||f|��S)z/child_watch_add(priority, pid, function, *data))rr�child_watch_add)r�r�r�rr�r�rrrrDsrcCstj�dS)Ng���ư>)rr�rrrrr�Msr�zGLib.get_real_time()cCstj||�dS)Nr)r�filename_from_utf8)Z
utf8stringr?rrrrXsr�unix_signal_add_fullcGstjdt�tj|�S)NzAGLib.unix_signal_add_full() was renamed to GLib.unix_signal_add())rrr
rZunix_signal_add)r�rrr�add_full_compatasr!�glib_versionz<(GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION)�pyglib_versionzgi.version_inforq)rq)r�r�r�r�r�r�r�r�)r�r�r�r�r�r�)r�r�r�r�r�r�r�)r�r�r�r�)r�r�r�r�r�r�r�)r�r�r�r�r�r�r�)r�r�r�)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rqrq)rq)Vrr�r�Z_ossighelperrr�modulerrrrrr	Z	overridesr
rrZgir
rr�__all__rrrrZ	gi._errorrr"r#r$r%r&rrr!rErFZ	__gtype__Zmatchesr�Znew_literal�objectr'rHrer�r�r*�attr�getattrZ
UserDirectory�globalsr�ZIOFlagsZIS_WRITABLEr�rZ
SpawnFlagsZOptionFlagsZOptionError�name�splitr�r�r�r�r�r�r�r�r�r�r�rrrr�rrSr!r Z
MAJOR_VERSIONZ
MINOR_VERSIONZ
MICRO_VERSIONr"r#rrrr�<module>s





Fy








2





+

N

	'







overrides/__pycache__/keysyms.cpython-36.pyc000064400000001620151734360770015124 0ustar003

��<_��@s�ddlZddlZddlmZed�Zejde�e�dZej	eZ
xPee�D]DZej
d�rNedd�Zedd	kr|d
eZeee�Zee
ee�qNWdZdZd
ZdZdZdZdZdZdZdZdZdS)�N�)�get_introspection_module�Gdkz?keysyms has been deprecated. Please use Gdk.KEY_<name> instead.�__name__ZKEY_��
0123456789�_i�i�i�i�i�i�i�i�i�i�)�sys�warnings�modulerr�warn�RuntimeWarning�globalsZ_modname�modulesZ_keysyms�dir�name�
startswith�target�getattr�value�setattrZArmenian_eternityZArmenian_section_signZArmenian_parenleftZArmenian_guillemotrightZArmenian_guillemotleftZArmenian_em_dashZArmenian_dotZArmenian_mijaketZArmenian_commaZArmenian_en_dashZArmenian_ellipsis�rr�/usr/lib64/python3.6/keysyms.py�<module>s2



overrides/__pycache__/Gdk.cpython-36.opt-1.pyc000064400000026402151734360770015071 0ustar003

��<__=�@sddlZddlZddlmZmZddlmZddlmZm	Z	ed�Z
gZy e	de
j�ddl
mZeWneefk
r�YnXee
d	�r�Gd
d	�d	e
j�Zee�Zejd	�ee
d�r�Gdd�de
j�Zee�Zejd�e
jd
k�rGdd�de
j�Zee�Zejd�nNee
d��s:ddl
mZejZejd�n$e
jjZe
jjZejd�ejd�e
jd
k�r�Gdd�de
j�Zee�Zejd�n$Gdd�de
j�Zee�Zejd�ee
j d�e
j _!ee
j d�e
j _"Gdd�de
j#�Z#ee#�Z#ejd�e$�dZ%ej&e%Zddddd d!d"d#d$d%d&d'd(d)d*d+d,d-gZ'e
jd
k�rJe'jd.�ee
d/��r`e'jd/�d0d1d2d3gZ(x�e'D]�Z)e*e)ee
e)�fi�Z+xTe
j#j,j-�D]DZ.e.j/�Z0ee
j#e0�Z1ee1d4e1�Z1e0e(k�r�ee1�Z1e2e+e0e1��q�We2ee)e+�eje)��qrWGd5d6�d6e
j3�Z3ee3�Z3ejd6�Gd7d8�d8e
j4�Z4ee4�Z4ejd8�ee
d9��rdee
j5�Z5ejd9�d:d;�Z6d<d=�Z7e6e
j8_9e7e
j8_:e
jd>k�r�e
j;d?d@�Z<ejdA�e
j;dBd@�Z=ejdC�e
j;dDd@�Z>ejdE�e
j;dFd@�Z?ejdG�e
j;dHd@�Z@ejdI�e
j;dJd@�ZAejdK�e
j;dLd@�ZBejdM�e
j;dNd@�ZCejdO�e
j;dPd@�ZDejdQ�e
j;dFd@�ZEejdR�e
j;dHd@�ZFejdS�e
j;dJd@�ZGejdT�e
j;dUd@�ZHejdV�e
j;dLd@�ZIejdW�e
j;dXd@�ZJejdY�e
j;dNd@�ZKejdZ�e
jd[k�rddlZe
jLejM�\ZNZMdS)\�N�)�override�strip_boolean_result)�get_introspection_module)�PyGIDeprecationWarning�require_version�Gdk�GdkX11)r	�Colorc@sxeZdZdZdd�Zdd�Zdd�Zedd	�d
d	�d�Zedd	�d
d	�d�Z	edd	�dd	�d�Z
dd�Zedd��Z
dS)r
i��cCs"tjj|�||_||_||_dS)N)rr
�__init__�red�green�blue)�selfrr
r�r�/usr/lib64/python3.6/Gdk.pyr/szColor.__init__cCs
|j|�S)N)�equal)r�otherrrr�__eq__5szColor.__eq__cCsd|j|j|jfS)Nz$Gdk.Color(red=%d, green=%d, blue=%d))rr
r)rrrr�__repr__8szColor.__repr__cCs|jt|j�S)N)r�float�	MAX_VALUE)rrrr�<lambda>;szColor.<lambda>cCst|dt||j��S)Nr)�setattr�intr)r�vrrrr<s)�fget�fsetcCs|jt|j�S)N)r
rr)rrrrr>scCst|dt||j��S)Nr
)rrr)rrrrrr?scCs|jt|j�S)N)rrr)rrrrrAscCst|dt||j��S)Nr)rrr)rrrrrrBscCs|j|j|jfS)z3Return (red_float, green_float, blue_float) triple.)�	red_float�green_float�
blue_float)rrrr�	to_floatsDszColor.to_floatscCs*tt|tj�t|tj�t|tj��S)zEReturn a new Color object from red/green/blue values from 0.0 to 1.0.)r
rr)rr
rrrr�from_floatsIszColor.from_floatsN)�__name__�
__module__�__qualname__rrrr�propertyrrr r!�staticmethodr"rrrrr
,s�RGBAc@sBeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zedd
��Z	dS)r(��?cCs(tjj|�||_||_||_||_dS)N)rr(rrr
r�alpha)rrr
rr*rrrrWs
z
RGBA.__init__cCs
|j|�S)N)r)rrrrrr^szRGBA.__eq__cCsd|j|j|j|jfS)Nz-Gdk.RGBA(red=%f, green=%f, blue=%f, alpha=%f))rr
rr*)rrrrrasz
RGBA.__repr__ccs$|jV|jV|jV|jVdS)z>Iterator which allows easy conversion to tuple and list types.N)rr
rr*)rrrr�__iter__dsz
RGBA.__iter__cCs0tt|jtj�t|jtj�t|jtj��S)z>Converts this RGBA into a Color instance which excludes alpha.)r
rrrr
r)rrrr�to_colorlsz
RGBA.to_colorcCs||j|j|j�S)z3Returns a new RGBA instance given a Color instance.)rrr )�clsZcolorrrr�
from_colorsszRGBA.from_colorN)r)r)r)r))
r#r$r%rrrr+r,�classmethodr.rrrrr(Vs
�2.0c@seZdZdd�Zdd�ZdS)�	RectanglecCs(tjj|�||_||_||_||_dS)N)rr1r�x�y�width�height)rr2r3r4r5rrrrs
zRectangle.__init__cCsd|j|j|j|jfS)Nz.Gdk.Rectangle(x=%d, y=%d, width=%d, height=%d))r2r3r5r4)rrrrr�szRectangle.__repr__N)r#r$r%rrrrrrr1}sr1)�cairo�rectangle_intersect�rectangle_unionc@seZdZdd�ZdS)�DrawablecCs
tj|�S)N)r�cairo_create)rrrrr:�szDrawable.cairo_createN)r#r$r%r:rrrrr9�sr9c@s$eZdZdd�Zdd�Zdd�ZdS)�WindowcCstjj|||�S)N)rr;�new)r-�parent�
attributes�attributes_maskrrr�__new__�szWindow.__new__cCsdS)Nr)rr=r>r?rrrr�szWindow.__init__cCs
tj|�S)N)rr:)rrrrr:�szWindow.cairo_createN)r#r$r%r@rr:rrrrr;�sr;Z
2BUTTON_PRESSZ
3BUTTON_PRESSc<@sheZdZejjdejjdejjdejjdejj	dejj
dejjdejjdejj
dejjdejjdejjdejjdejjdejjdejjdejjd	ejjd
ejjd
ejjd
ejjdejjdejjdejjdejjdejjdejjdejj dejj!d
ejj"diZ#ej$dk�rde#ejj%<e&ejd��rLe#j'ejj(dejj)dejj*dejj+di�dd�Z,dd�Z-dd�Z.dS)�Event�anyZexposeZmotionZbutton�keyZcrossingZfocus_changeZ	configurer&Z	selectionZ	proximityZdndZclientZ
visibilityz2.0Z	no_expose�TOUCH_BEGINZtouchcCs>t|d�j|j�}|r&tt||�|�Std|jj|f��dS)N�_UNION_MEMBERSz!'%s' object has no attribute '%s')�getattr�get�type�AttributeError�	__class__r#)r�name�
real_eventrrr�__getattr__�szEvent.__getattr__cCs>t|d�j|j�}|r*tt||�||�ntjj|||�dS)NrE)rFrGrHrrrA�__setattr__)rrK�valuerLrrrrN�szEvent.__setattr__cCs tjj|�jd�}d||jfS)Nz><z<%s type=%r>)rrAr�striprH)rZ	base_reprrrrr�szEvent.__repr__N)/r#r$r%r�	EventTypeZDELETEZDESTROYZEXPOSEZ
MOTION_NOTIFYZBUTTON_PRESS�_2BUTTON_PRESS�_3BUTTON_PRESSZBUTTON_RELEASEZ	KEY_PRESSZKEY_RELEASEZENTER_NOTIFYZLEAVE_NOTIFYZFOCUS_CHANGEZ	CONFIGUREZMAPZUNMAPZPROPERTY_NOTIFYZSELECTION_CLEARZSELECTION_REQUESTZSELECTION_NOTIFYZPROXIMITY_INZ
PROXIMITY_OUTZ
DRAG_ENTERZ
DRAG_LEAVEZDRAG_MOTIONZDRAG_STATUSZ
DROP_STARTZ
DROP_FINISHEDZCLIENT_EVENTZVISIBILITY_NOTIFYrE�_versionZ	NO_EXPOSE�hasattr�updaterDZTOUCH_UPDATEZ	TOUCH_ENDZTOUCH_CANCELrMrNrrrrrrA�sRrAr#ZEventAnyZEventExposeZEventVisibilityZEventMotionZEventButtonZEventScrollZEventKeyZ
EventCrossingZ
EventFocusZEventConfigureZ
EventPropertyZEventSelectionZEventOwnerChangeZEventProximityZEventDNDZEventWindowStateZEventSettingZEventGrabBrokenZ
EventNoExposeZ
EventTouchZ	get_stateZget_axisZ
get_coordsZget_root_coords�__func__c@seZdZdd�ZdS)�DragContextcCstd�}|j||||�dS)N�Gtk)rZdrag_finish)r�successZdel_ZtimerYrrr�finish:szDragContext.finishN)r#r$r%r[rrrrrX9srXc@seZdZdd�ZdS)�CursorcOs�t|�}t|�}||}|dkr>tjdkr2td��|j||�S|dkr^tjdt�|j||�S|dkr~tjdt�|j	||�S|dkr�tjd	kr�td��tjd
t�|j
||�Std��dS)N�z4.0zWrong number of parametersrz�Calling "Gdk.Cursor(display, cursor_type)" has been deprecated. Please use Gdk.Cursor.new_for_display(display, cursor_type). See: https://wiki.gnome.org/PyGObject/InitializerDeprecations�z�Calling "Gdk.Cursor(display, pixbuf, x, y)" has been deprecated. Please use Gdk.Cursor.new_from_pixbuf(display, pixbuf, x, y). See: https://wiki.gnome.org/PyGObject/InitializerDeprecations�z2.0z�Calling "Gdk.Cursor(source, mask, fg, bg, x, y)" has been deprecated. Please use Gdk.Cursor.new_from_pixmap(source, mask, fg, bg, x, y). See: https://wiki.gnome.org/PyGObject/InitializerDeprecations)�lenrrT�
ValueErrorr<�warnings�warnrZnew_for_displayZnew_from_pixbufZnew_from_pixmap)r-�args�kwdsZarg_lenZkwd_lenZ	total_lenrrrr@Es,

zCursor.__new__N)r#r$r%r@rrrrr\Csr\�color_parsecCs|j�}|r|Sdt|�S)NzGdk.Atom<%i>)rK�hash)�atom�nrrr�
_gdk_atom_strzsrjcCs |j�}|rd|Sdt|�S)NzGdk.Atom.intern("%s", False)z<Gdk.Atom(%i)>)rKrg)rhrirrr�_gdk_atom_repr�srk�3.0ZPRIMARYT�SELECTION_PRIMARYZ	SECONDARY�SELECTION_SECONDARYZ	CLIPBOARD�SELECTION_CLIPBOARDZBITMAP�
TARGET_BITMAPZCOLORMAP�TARGET_COLORMAPZDRAWABLE�TARGET_DRAWABLEZPIXMAP�
TARGET_PIXMAP�STRING�
TARGET_STRINGZATOM�SELECTION_TYPE_ATOM�SELECTION_TYPE_BITMAP�SELECTION_TYPE_COLORMAP�SELECTION_TYPE_DRAWABLEZINTEGER�SELECTION_TYPE_INTEGER�SELECTION_TYPE_PIXMAPZWINDOW�SELECTION_TYPE_WINDOW�SELECTION_TYPE_STRING)r0rl)O�sysrbZ	overridesrr�modulerZgirrr�__all__rTZ
gi.repositoryr	ra�ImportErrorrUr
�appendr(r1r6Z_cairoZRectangleIntZ	intersectr7�unionr8r9r;rFrQrRrSrA�globals�modname�modulesZevent_member_classesZgsuccess_mask_funcsZevent_classrHZoverride_classZ__info__Zget_methodsZmethod_infoZget_namerKZevent_methodrrXr\rfrjrkZAtom�__str__rZatom_internrmrnrorprqrrrsrurvrwrxryrzr{r|r}Z
init_check�argvZinitializedrrrr�<module>s
%

#



A







,


















overrides/__pycache__/Gtk.cpython-36.pyc000064400000147014151734360770014155 0ustar003

��<_���@s�ddlZddlZddlZddlmZddlmZmZddlm	Z	m
Z
mZddlm
Z
ddlmZejdkrpeZneZe
d	�ZgZejd
kr�dZejee�Gdd
�d
e�Zejd
�dd�Zejd�dd�Zejd�dd�ZGdd�dej�Ze	e�Zejd�Gdd�dej e�Z e	e �Z ejd�Gdd�dej!�Z!e	e!�Z!ejd�ejd�k�r�Gdd�dej"�Z"e	e"�Z"ejd�Gdd�dej#�Z#e	e#�Z#ejd�Gdd �d ej$�Z$e	e$�Z$ejd �Gd!d"�d"ej%�Z%e	e%�Z%ejd"�Gd#d$�d$ej&e �Z&e	e&�Z&ejd$�Gd%d&�d&ej'�Z'e	e'�Z'ejd&�Gd'd(�d(ej(�Z(e	e(�Z(ejd(�Gd)d*�d*ej)�Z)e	e)�Z)ejd*�Gd+d,�d,ej*�Z*e	e*�Z*ejd,�Gd-d.�d.ej+�Z+e	e+�Z+ejd.�Gd/d0�d0ej,e �Z,e	e,�Z,ejd0�Gd1d2�d2ej-e,�Z-e	e-�Z-ejd2�ejd�k�r@Gd3d4�d4ej.�Z.e	e.�Z.ejd4�Gd5d6�d6ej/�Z/e	e/�Z/ejd6�ejd�k�r�Gd7d8�d8ej0�Z0e	e0�Z0ejd8�Gd9d:�d:ej1�Z1e	e1�Z1ejd:�Gd;d<�d<ej2�Z2e	e2�Z2ejd<�Gd=d>�d>ej3�Z3e	e3�Z3ejd>�Gd?d@�d@ej4�Z4e	e4�Z4ejd@�GdAdB�dBej5�Z5e	e5�Z5ejdB�GdCdD�dDej6�Z6e	e6�Z6ejdD�GdEdF�dFej7�Z7e	e7�Z7ejdF�GdGdH�dHej8�Z8e	e8�Z8ejdH�GdIdJ�dJej9�Z9e	e9�Z9ejdJ�GdKdL�dLej:�Z:e	e:�Z:ejdL�GdMdN�dNej;e8e9�Z;e	e;�Z;ejdN�GdOdP�dPe<�Z=ejdP�GdQdR�dRe<�Z>ejdR�GdSdT�dTej?�Z?e	e?�Z?ejdT�GdUdV�dVej@e8e9�Z@e	e@�Z@ejdV�GdWdX�dXejAe �ZAe	eA�ZAejdX�GdYdZ�dZejB�ZBe	eB�ZBejdZ�Gd[d\�d\ejC�ZCe	eC�ZCejd\�Gd]d^�d^ejDe �ZDe	eD�ZDejd^�Gd_d`�d`ejE�ZEe	eE�ZEejd`�Gdadb�dbejF�ZFe	eF�ZFejdb�Gdcdd�ddejG�ZGe	eG�ZGejdd�ejd�k�r�Gdedf�dfejHe �ZHe	eH�ZHejdf�Gdgdh�dhejI�ZIe	eI�ZIejdh�ejd�k�rNGdidj�djejJ�ZJe	eJ�ZJejdj�Gdkdl�dlejK�ZKe	eK�ZKejdl�Gdmdn�dnejL�ZLe	eL�ZLejdn�ejd�k�r�Gdodp�dpejM�ZMe	eM�ZMejdp�Gdqdr�drejN�ZNe	eN�ZNejdr�Gdsdt�dtejO�ZOe	eO�ZOejdt�Gdudv�dvejP�ZPe	eP�ZPejdv�ejd
k�r>Gdwdx�dxejQ�ZQe	eQ�ZQejdx�ejRZSe	ejR�dydz��ZRejTZUe	ejT�d{d|��ZTejd�k�r�e
ejV�ZVejd}�ejd~k�r�ejW�nejWejX�\ZYZXeZeX�e_XdS)��N)�GObject�)�wakeup_on_signal�register_sigint_fallback)�override�strip_boolean_result�deprecated_init)�get_introspection_module)�PyGIDeprecationWarning��Gtk�2.0aBYou have imported the Gtk 2.0 module.  Because Gtk 2.0 was not designed for use with introspection some of the interfaces and API will fail.  As such this is not supported by the pygobject development team and we encourage you to port your app to Gtk 3 or greater. PyGTK is the recomended python module to use with Gtk 2.0c@seZdZdS)�PyGTKDeprecationWarningN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.6/Gtk.pyr4srcCs8g}x.|D]&}t|tj�s&tjj|�}|j|�q
W|S)z�Create a list of TargetEntry items from a list of tuples in the form (target, flags, info)

    The list can also contain existing TargetEntry items in which case the existing entry
    is re-used in the return list.
    )�
isinstancerZTargetEntry�new�append)�targets�target_entries�entryrrr�_construct_target_list;s
rcCs�d}t|tj�r|j|d�}nt||d�}|dkr>td|��f}t|tj�r|t|�dkrftd|��|dd�}|d}nt	|�s�td|��||fS)NzHandler %s not foundrz!Handler %s tuple can not be empty�z-Handler %s is not a method, function or tuple)
r�collections�Mapping�get�getattr�AttributeError�Sequence�len�	TypeError�callable)�
obj_or_map�handler_name�handler�argsrrr�_extract_handler_and_argsLs
r)c
Cs�t||�\}}|tjj@}	|dk	rR|	r<|j|||f|��q||j|||f|��n*|	rj|j||f|��n|j||f|��dS)N)r)rZConnectFlagsZAFTERZconnect_object_afterZconnect_objectZ
connect_after�connect)
ZbuilderZgobjZsignal_namer&Zconnect_obj�flagsr%r'r(�afterrrr�_builder_connect_callbackgsr-cs>eZdZeejj�Z�fdd�Z�fdd�Zddd�Z	�Z
S)	�Widgetcs:|dk	r&t|tj�r&tjjt|��}tt|�j|�dS)N)rr�
TargetListrr�superr.�drag_dest_set_target_list)�self�target_list)�	__class__rrr1{sz Widget.drag_dest_set_target_listcs:|dk	r&t|tj�r&tjjt|��}tt|�j|�dS)N)rrr/rrr0r.�drag_source_set_target_list)r2r3)r4rrr5�sz"Widget.drag_source_set_target_listNcCsN|dkr6|j|�}|dkr*td||f��tj|j�}tjj|||�|j�S)Nz/Class "%s" does not contain style property "%s")	Zfind_style_property�
ValueErrorr�Value�
value_typerr.�style_get_property�	get_value)r2�
property_name�value�proprrrr9�s
zWidget.style_get_property)N)rrrrrr.Ztranslate_coordinatesr1r5r9�
__classcell__rr)r4rr.wsr.c@sVeZdZdd�Zdd�Zdd�Zdd�ZeZee	j
j�Zdd
d�Zdd
�Z
dd�Zd	S)�	ContainercCst|j��S)N)r"�get_children)r2rrr�__len__�szContainer.__len__cCs||j�kS)N)r@)r2�childrrr�__contains__�szContainer.__contains__cCst|j��S)N)�iterr@)r2rrr�__iter__�szContainer.__iter__cCsdS)NTr)r2rrr�__bool__�szContainer.__bool__NcCsP|dkr6|j|�}|dkr*td||f��tj|j�}tjj||||�|j�S)Nz/Class "%s" does not contain child property "%s")	Zfind_child_propertyr6rr7r8rr?�child_get_propertyr:)r2rBr;r<r=rrrrG�s
zContainer.child_get_propertycs��fdd�|D�S)z<Returns a list of child property values for the given names.csg|]}�j�|��qSr)rG)�.0�name)rBr2rr�
<listcomp>�sz'Container.child_get.<locals>.<listcomp>r)r2rBZ
prop_namesr)rBr2r�	child_get�szContainer.child_getcKs4x.|j�D]"\}}|jdd�}|j|||�q
WdS)z=Set a child properties on the given child to key/value pairs.�_�-N)�items�replaceZchild_set_property)r2rB�kwargsrIr<rrr�	child_set�szContainer.child_set)N)rrrrArCrErF�__nonzero__rrr?Zget_focus_chainrGrKrQrrrrr?�s
r?cs,eZdZ�fdd�Zeejjfd�Z�ZS)�Editablecstt|�j|d|�S)Nr���)r0rS�insert_text)r2�text�position)r4rrrU�szEditable.insert_text)�fail_ret)	rrrrUrrrS�get_selection_boundsr>rr)r4rrS�srS�3.0c@seZdZeejjded�ZdS)�ActionrI�label�tooltip�stock_id)�	arg_names�categoryN)rIr\r]r^)rrrrrr[�__init__rrrrrr[�sr[c@seZdZeejjded�ZdS)	�RadioActionrIr\r]r^r<)r_r`N)rIr\r]r^r<)rrrrrrbrarrrrrrb�srbc@s<eZdZeejjd
ed�Zddd�Zddd�Z	d
dd	�Z
dS)�ActionGrouprI)r_r`Nc
sTyt|�Wntk
r(td��YnXd��fdd�	}x|D]}||�q@WdS)a�
            The add_actions() method is a convenience method that creates a number
            of gtk.Action  objects based on the information in the list of action
            entry tuples contained in entries and adds them to the action group.
            The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            zentries must be iterableNcsLt||||d�}|dk	r<�dkr.|jd|�n|jd|���j||�dS)N)rIr\r]r^�activate)r[r*�add_action_with_accel)rIr^r\�acceleratorr]�callback�action)r2�	user_datarr�_process_actionsz0ActionGroup.add_actions.<locals>._process_action)NNNNN)rDr#)r2�entriesrirj�er)r2rir�add_actions�s

zActionGroup.add_actionscsTyt|�Wntk
r(td��YnXd��fdd�	}x|D]}||�q@WdS)a�
            The add_toggle_actions() method is a convenience method that creates a
            number of gtk.ToggleAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The toggle action entry tuples can vary in size from one to seven
            items with the following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.
                * A flag indicating whether the toggle action is active. Optional
                  with a default value of False.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            zentries must be iterableNFcsXtj||||d�}|j|�|dk	rH�dkr:|jd|�n|jd|���j||�dS)N)rIr\r]r^rd)rZToggleAction�
set_activer*re)rIr^r\rfr]rgZ	is_activerh)r2rirrrj3s
z7ActionGroup.add_toggle_actions.<locals>._process_action)NNNNNF)rDr#)r2rkrirjrlr)r2rir�add_toggle_actionss
zActionGroup.add_toggle_actionsc	
s�yt|�Wntk
r(td��YnXd}d��fdd�	}x&|D]}||f|��}|dkrD|}qDW|dk	r�|dk	r�|dkr�|jd|�n|jd||�dS)a�
            The add_radio_actions() method is a convenience method that creates a
            number of gtk.RadioAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The value to set on the radio action. Optional with a default
                  value of 0. Should be specified in applications.

            The value parameter specifies the radio action that should be set
            active. The "changed" signal of the first radio action is connected to
            the on_change callback (if specified and not None) and the accel paths
            of the actions are set to <Actions>/group-name/action-name.
            zentries must be iterableNrcsHt|||||d�}t|d�r&|j|��|kr8|jd��j||�|S)N)rIr\r]r^r<�
join_groupT)rb�hasattrrprnre)Zgroup_sourcerIr^r\rfr]Zentry_valuerh)r2r<rrrjes


z6ActionGroup.add_radio_actions.<locals>._process_actionZchanged)NNNNr)rDr#r*)	r2rkr<Z	on_changeriZfirst_actionrjrlrhr)r2r<r�add_radio_actionsBs
zActionGroup.add_radio_actions)rI)N)N)NNN)rrrrrrcrarrmrorrrrrrrc�s
-
1rcc@seZdZdd�Zddd�ZdS)	�	UIManagercCs0t|t�std��t|jd��}tjj|||�S)Nzbuffer must be a stringzUTF-8)r�_basestringr#r"�encoderrs�add_ui_from_string)r2�buffer�lengthrrrrv�s
zUIManager.add_ui_from_stringrcCstjj|||�S)N)rrs�insert_action_group)r2rwrxrrrry�szUIManager.insert_action_groupNrT)rT)rrrrvryrrrrrs�srsc@seZdZeejj�ZdS)�ComboBoxN)rrrrrrzZget_active_iterrrrrrz�srzc@seZdZeejjded�ZdS)�Box�homogeneous�spacing)r_r`N)r|r})rrrrrr{rarrrrrr{�sr{c@s(eZdZeejjddejjie	d�ZdS)�	SizeGroup�mode)r_Zdeprecated_defaultsr`N)r)
rrrrrr~raZ
SizeGroupModeZVERTICALrrrrrr~�s
r~c@seZdZeejjded�ZdS)�MenuItemr\)r_r`N)r\)rrrrrr�rarrrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�BuildercCs|jt|�dS)a�Connect signals specified by this builder to a name, handler mapping.

        Connect signal, name, and handler sets specified in the builder with
        the given mapping "obj_or_map". The handler/value aspect of the mapping
        can also contain a tuple in the form of (handler [,arg1 [,argN]])
        allowing for extra arguments to be passed to the handler. For example:

        .. code-block:: python

            builder.connect_signals({'on_clicked': (on_clicked, arg1, arg2)})
        N)Zconnect_signals_fullr-)r2r%rrr�connect_signals�szBuilder.connect_signalscCs*t|t�std��t|�}tjj|||�S)Nzbuffer must be a string)rrtr#r"rr��add_from_string)r2rwrxrrrr��s
zBuilder.add_from_stringcCs,t|t�std��t|�}tjj||||�S)Nzbuffer must be a string)rrtr#r"rr��add_objects_from_string)r2rwZ
object_idsrxrrrr��s
zBuilder.add_objects_from_stringN)rrrr�r�r�rrrrr��sr�c@seZdZeejjded�ZdS)�Window�type)r_r`N)r�)rrrrrr�rarrrrrr��sr�c@s\eZdZdZeejjddddd�ed	�Z	d
d�Zdd
�Z
edd��Zedd��Z
dd�ZdS)�Dialog�title�parentr+�buttons�_buttons_property�
transient_for�add_buttons)r�r�)r_�ignore�deprecated_aliasesr`cOs�|j�}tt|j|��}|j|�d}|jtkrF|jjtjkrF|d7}|jdd�}|dk	r�t	|t
j�r�tj
dt|d�d|kr�|d=nd}|jdd�}|r�tj
dt|d�|t
jj@r�d	|d
<|t
jj@r�d	|d<|j||�|r�|j|�dS)Nrrr�z�The "buttons" argument must be a Gtk.ButtonsType enum value. Please use the "add_buttons" method for adding buttons. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations)�
stacklevelr+rz�The "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsTZmodalZdestroy_with_parent)�copy�dict�zip�_old_arg_names�updater4r�rarrrZButtonsType�warnings�warnrZDialogFlagsZMODALZDESTROY_WITH_PARENT�_initr�)r2r(rP�
new_kwargsZ
old_kwargsr�r�r+rrrra�s0


zDialog.__init__cOs<t|j��(t��tjj|f|�|�SQRXWdQRXdS)N)rZdestroyrrr��run)r2r(rPrrrr�#sz
Dialog.runcCs|j�S)N)Zget_action_area)�dialogrrr�<lambda>(szDialog.<lambda>cCs|j�S)N)Zget_content_area)r�rrrr�)scGsPdd�}y&x ||�D]\}}|j||�qWWntk
rJtd��YnXdS)a
        The add_buttons() method adds several buttons to the Gtk.Dialog using
        the button data passed as arguments to the method. This method is the
        same as calling the Gtk.Dialog.add_button() repeatedly. The button data
        pairs - button text (or stock ID) and a response ID integer are passed
        individually. For example:

        .. code-block:: python

            dialog.add_buttons(Gtk.STOCK_OPEN, 42, "Close", Gtk.ResponseType.CLOSE)

        will add "Open" and "Close" buttons to dialog.
        css4x.|r.|dd�\}}|dd�}||fVqWdS)Nrrr)�b�t�rrrr�_button9sz#Dialog.add_buttons.<locals>._buttonz%Must pass an even number of argumentsN)Z
add_button�
IndexErrorr#)r2r(r�rVZresponserrrr�+szDialog.add_buttonsN)r�r�r+r�r�)r�r�r+r�r�)r+r�)rrrr�rrr�rarr�r��propertyZaction_areaZvboxr�rrrrr��s+r�c@s6eZdZeejjdddd�ed�Zd	d
�Zdd�Z	d
S)�
MessageDialogr�r+�message_typer��message_formatr�)rVr�)r_r�r`cCs|jdd�|jd|�dS)Nzsecondary-use-markupFzsecondary-text)�set_property)r2r�rrr�format_secondary_textRsz#MessageDialog.format_secondary_textcCs|jdd�|jd|�dS)Nzsecondary-use-markupTzsecondary-text)r�)r2r�rrr�format_secondary_markupVsz%MessageDialog.format_secondary_markupN)r�r+r�r�r�)
rrrrrr�rarr�r�rrrrr�Jsr�c@seZdZeejjded�ZdS)�ColorSelectionDialogr�)r_r`N)r�)rrrrrr�rarrrrrr�`sr�c@seZdZeejjded�ZdS)�FileChooserDialogr�r�rhr�)r_r`N)r�r�rhr�)rrrrrr�rarrrrrr�isr�c@seZdZeejjded�ZdS)�FontSelectionDialogr�)r_r`N)r�)rrrrrr�rarrrrrr�tsr�c@s$eZdZeejjdddied�ZdS)	�RecentChooserDialogr�r��recent_managerr�Zmanager)r_r�r`N)r�r�r�r�)rrrrrr�rarrrrrr�}sr�c@sBeZdZeejjded�Zeejj	�Z	eejj
�Z
eejj�ZdS)�IconView�model)r_r`N)r�)rrrrrr�rarrZget_item_at_pos�get_visible_rangeZget_dest_item_at_posrrrrr��sr�c@seZdZeejjded�ZdS)�
ToolButtonr^)r_r`N)r^)rrrrrr�rarrrrrr��sr�c@seZdZeejj�ZdS)�	IMContextN)rrrrrr�Zget_surroundingrrrrr��sr�c@seZdZeejj�ZdS)�
RecentInfoN)rrrrrr�Zget_application_inforrrrr��sr�c@sfeZdZdd�Zddd�Zddd�Zdd
d�Zddd
�Zdd�Zdd�Z	ddd�Z
eej
jfd�ZdS)�
TextBuffercCs&|j�}|dkr"tj�}|j|�|S)N)�
get_tag_tablerZTextTagTableZ
set_tag_table)r2�tablerrr�_get_or_create_tag_table�s

z#TextBuffer._get_or_create_tag_tableNcKs&tjfd|i|��}|j�j|�|S)a�Creates a tag and adds it to the tag table of the TextBuffer.

        :param str tag_name:
            Name of the new tag, or None
        :param **properties:
            Keyword list of properties and their values

        This is equivalent to creating a Gtk.TextTag and then adding the
        tag to the buffer's tag table. The returned tag is owned by
        the buffer's tag table.

        If ``tag_name`` is None, the tag is anonymous.

        If ``tag_name`` is not None, a tag called ``tag_name`` must not already
        exist in the tag table for this buffer.

        Properties are passed as a keyword list of names and values (e.g.
        foreground='DodgerBlue', weight=Pango.Weight.BOLD)

        :returns:
            A new tag.
        rI)rZTextTagr��add)r2Ztag_nameZ
properties�tagrrr�
create_tag�szTextBuffer.create_tagFcCstjj||||�S)N)rr��create_mark)r2Z	mark_name�whereZleft_gravityrrrr��szTextBuffer.create_markrcCstjj|||�dS)N)rr��set_text)r2rVrxrrrr��szTextBuffer.set_textcCs0t|t�stdt|���tjj||||�dS)Nztext must be a string, not %s)rrtr#r�rr��insert)r2rDrVrxrrrr��s
zTextBuffer.insertcGsF|j�}|j||�|sdS|j|�}x|D]}|j|||�q,WdS)N)Z
get_offsetr�Zget_iter_at_offsetZ	apply_tag)r2rDrV�tagsZstart_offset�startr�rrr�insert_with_tags�s

zTextBuffer.insert_with_tagscGsPg}x4|D],}|j�j|�}|s,td|��|j|�q
W|j||f|��dS)Nzunknown text tag: %s)r��lookupr6rr�)r2rDrVr�Ztag_objsr�Ztag_objrrr�insert_with_tags_by_name�s
z#TextBuffer.insert_with_tags_by_namecCs.t|t�stdt|���tjj|||�dS)Nztext must be a string, not %s)rrtr#r�rr��insert_at_cursor)r2rVrxrrrr��s
zTextBuffer.insert_at_cursor)rX)N)FrT)rTrT)rTrT)rT)rrrr�r�r�r�r�r�r�r�rrr�rYrrrrr��s




r�c@s$eZdZeejj�Zeejj�ZdS)�TextIterN)rrrrrr�Zforward_searchZbackward_searchrrrrr�sr�cseZdZdd�Zdd�ZeZdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zee
jj�Zee
jj�Zee
jj�Zee
jj�Zee
jjed�Z�fdd�Z�fdd�Z�fdd�Zdd�Zdd�Zdd�Zdd�Z�fd d!�Z�fd"d#�Z�fd$d%�Z�fd&d'�Z�fd(d)�Z �Z!S)*�	TreeModelcCs
|jd�S)N)Ziter_n_children)r2rrrrAszTreeModel.__len__cCsdS)NTr)r2rrrrFszTreeModel.__bool__cCs�t|tj�r|St|t�rv|dkrvt|�|}|dkrBtd|��y|j|�}Wn tk
rptd|��YnX|Sy|j|�}Wn tk
r�td|��YnX|SdS)Nrzrow index is out of bounds: %dzcould not find tree path '%s')rr�TreeIter�intr"r��get_iterr6)r2�key�index�aiterrrr�_getiters zTreeModel._getitercCst|tj�r|St|�SdS)N)rr�TreePath)r2�pathrrr�_coerce_path-szTreeModel._coerce_pathcCs|j|�}t||�S)N)r��TreeModelRow)r2r�r�rrr�__getitem__3s
zTreeModel.__getitem__cCs||}|j|j|�dS)N)�set_rowrD)r2r�r<�rowrrr�__setitem__7szTreeModel.__setitem__cCs|j|�}|j|�dS)N)r��remove)r2r�r�rrr�__delitem__;s
zTreeModel.__delitem__cCst||j��S)N)�TreeModelRowIter�get_iter_first)r2rrrrE?szTreeModel.__iter__zinvalid tree pathcs2|j|�}tt|�j|�\}}|s.td|��|S)Nzinvalid tree path '%s')r�r0r�r�r6)r2r��successr�)r4rrr�Is

zTreeModel.get_itercs$|j�}tt|�j|�}|r |SdS)N)r�r0r��	iter_next)r2r��	next_iterr�)r4rrr�PszTreeModel.iter_nextcs$|j�}tt|�j|�}|r |SdS)N)r�r0r��
iter_previous)r2r��	prev_iterr�)r4rrr�VszTreeModel.iter_previouscCszt|t�rtd��|j�}t|�|kr.td��g}g}x:t|�D].\}}|dkrRq@|j|j||��|j|�q@W||fS)Nz%Expected a list or tuple, but got strz1row sequence has the incorrect number of elements)	r�strr#�
get_n_columnsr"r6�	enumerater�_convert_value)r2r��	n_columns�result�columnsZcur_colr<rrr�_convert_row\s
zTreeModel._convert_rowcCs@|j|�\}}x,|D]$}||}|dkr*q|j|||�qWdS)N)r��	set_value)r2�treeiterr�Z
converted_rowr��columnr<rrrr�ps
zTreeModel.set_rowcCs"t|tj�r|Stj|j|�|�S)z5Convert value to a GObject.Value of the expected type)rrr7Zget_column_type)r2r�r<rrrr�yszTreeModel._convert_valuecGs^|j�}g}xH|D]@}t|t�s(td��|dks8||kr@td��|j|j||��qWt|�S)Nzcolumn numbers must be intsrzcolumn number is out of range)r�rr�r#r6rr:�tuple)r2r�r�r��values�colrrrr�s

z
TreeModel.getcstt|�j|j|�|�S)N)r0r��row_changedr�)r2r�rD)r4rrr��szTreeModel.row_changedcstt|�j|j|�|�S)N)r0r��row_insertedr�)r2r�rD)r4rrr��szTreeModel.row_insertedcstt|�j|j|�|�S)N)r0r��row_has_child_toggledr�)r2r�rD)r4rrr��szTreeModel.row_has_child_toggledcstt|�j|j|��S)N)r0r��row_deletedr�)r2r�)r4rrr��szTreeModel.row_deletedcstt|�j|j|�||�S)N)r0r��rows_reorderedr�)r2r�rDZ	new_order)r4rrr��szTreeModel.rows_reordered)"rrrrArFrRr�r�r�r�r�rErrr�r��
iter_childrenZiter_nth_child�iter_parentZget_iter_from_stringr6r�r�r�r�r�r�rr�r�r�r�r�r>rr)r4rr�s6	r�cs<eZdZeejjdd�Zd�fdd�	Zd	�fdd�	Z�Z	S)
�TreeSortableN)rXcstt|�j|||�dS)N)r0r��
set_sort_func)r2Zsort_column_id�	sort_funcri)r4rrr��szTreeSortable.set_sort_funccstt|�j||�dS)N)r0r��set_default_sort_func)r2r�ri)r4rrr��sz"TreeSortable.set_default_sort_func)NN)N)N)
rrrrrr�Zget_sort_column_idr�r�r>rr)r4rr��sr�c@seZdZeejjded�ZdS)�
TreeModelSortr�)r_r`N)r�)rrrrrr�rarrrrrr��sr�c@s^eZdZdd�Zdd�Zddd�Zddd	�Zdd
d�Zddd
�Zddd�Z	dd�Z
dd�ZdS)�	ListStorecGstjj|�|j|�dS)N)rr�ra�set_column_types)r2�column_typesrrrra�szListStore.__init__cCs8|dk	r&|j|�\}}|j|||�}ntjj||�}|S)N)r�Zinsert_with_valuesvrr�r�)r2rWr�r�r�rrr�
_do_insert�s
zListStore._do_insertNcCs |r|jd|�Stjj|�SdS)NrrT)r�rr�r)r2r�rrrr�szListStore.appendcCs|jd|�S)Nr)r�)r2r�rrr�prepend�szListStore.prependcCs|j||�S)N)r�)r2rWr�rrrr��szListStore.insertcCs&tjj||�}|dk	r"|j||�|S)N)rr��
insert_beforer�)r2�siblingr�r�rrrr��szListStore.insert_beforecCs&tjj||�}|dk	r"|j||�|S)N)rr��insert_afterr�)r2r�r�r�rrrr�szListStore.insert_aftercCs"|j||�}tjj||||�dS)N)r�rr�r�)r2r�r�r<rrrr��szListStore.set_valuecs���fdd�}|r�t|dt�r@||ddd�|ddd��nlt|dttf�rzt|�dkrftd��||d|d�n2t|dt�r�|t|d�|dj��ntd��dS)Ncs|t|�t|�krtd��g}g}xDt||�D]6\}}t|t�sFtd��|j|�|j�j||��q,Wtjj	��||�dS)Nz7The number of columns do not match the number of valuesz0TypeError: Expected integer argument for column.)
r"r#r�rr�rr�rr��set)�cols�valsr�r��col_numr<)r2r�rr�
_set_lists�s

z!ListStore.set.<locals>._set_listsrrrzToo many argumentsz�Argument list must be in the form of (column, value, ...), ((columns,...), (values, ...)) or {column: value}.  No -1 termination is needed.)rr�r��listr"r#r�r�)r2r�r(rr)r2r�rr�s z
ListStore.set)N)N)N)N)N)rrrrar�rr�r�r�rr�rrrrrr��s	




r�c@s|eZdZdd�Zedd��Zedd��Zedd��Zed	d
��Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)r�cCsht|tj�stdt|�j��||_t|tj�r>|j|�|_	n&t|tj
�rR||_	ntdt|�j��dS)Nz expected Gtk.TreeModel, %s foundz?expected Gtk.TreeIter or Gtk.TreePath,                 %s found)rrr�r#r�rr�r�r�rDr�)r2r�Ziter_or_pathrrrraszTreeModelRow.__init__cCs|jj|j�S)N)r��get_pathrD)r2rrrr�&szTreeModelRow.pathcCs|j�S)N)�get_next)r2rrr�next*szTreeModelRow.nextcCs|j�S)N)�get_previous)r2rrr�previous.szTreeModelRow.previouscCs|j�S)N)�
get_parent)r2rrrr�2szTreeModelRow.parentcCs"|jj|j�}|rt|j|�SdS)N)r�r�rDr�)r2r�rrrr6szTreeModelRow.get_nextcCs"|jj|j�}|rt|j|�SdS)N)r�r�rDr�)r2r�rrrr
;szTreeModelRow.get_previouscCs"|jj|j�}|rt|j|�SdS)N)r�r�rDr�)r2Zparent_iterrrrr@szTreeModelRow.get_parentcs�t|t�rH|�jj�kr&td|��n|dkr8�j|�}�jj�j|�St|t�r�|j	�jj��\}}}g}x*t
|||�D]}|j�jj�j|��qzW|St|t�r��fdd�|D�St
dt|�j��dS)Nz!column index is out of bounds: %drcsg|]}�|�qSrr)rH�k)r2rrrJSsz,TreeModelRow.__getitem__.<locals>.<listcomp>z0indices must be integers, slice or tuple, not %s)rr�r�r�r��_convert_negative_indexr:rD�slice�indices�rangerr�r#r�r)r2r�r��stop�stepZalist�ir)r2rr�Es 



zTreeModelRow.__getitem__c
Cs>t|t�rL||jj�kr&td|��n|dkr8|j|�}|jj|j||�n�t|t�r�|j	|jj��\}}}t
|||�}t|�t|�kr�tdt|�t|�f��x�t
|�D]\}}|jj|j|||�q�Wnlt|t��r(t|�t|�k�rtdt|�t|�f��x4t||�D]\}	}|||	<�qWntdt|�j��dS)Nz!column index is out of bounds: %drz9attempt to assign sequence of size %d to slice of size %dz<attempt to assign sequence of size %d to sequence of size %dz2indices must be an integer, slice or tuple, not %s)rr�r�r�r�rr�rDrrrr"r6r�r�r�r#r�r)
r2r�r<r�rrZ	indexListr�vr
rrrr�Xs0


zTreeModelRow.__setitem__cCs&|jj�|}|dkr"td|��|S)Nrz!column index is out of bounds: %d)r�r�r�)r2r�Z	new_indexrrrrtsz$TreeModelRow._convert_negative_indexcCs|jj|j�}t|j|�S)N)r�r�rDr�)r2Z
child_iterrrr�iterchildrenzszTreeModelRow.iterchildrenN)rrrrar�r�r	rr�rr
rr�r�rrrrrrr�sr�c@s(eZdZdd�Zdd�ZeZdd�ZdS)r�cCs||_||_dS)N)r�rD)r2r�r�rrrra�szTreeModelRowIter.__init__cCs,|js
t�t|j|j�}|jj|j�|_|S)N)rD�
StopIterationr�r�r�)r2r�rrr�__next__�s
zTreeModelRowIter.__next__cCs|S)Nr)r2rrrrE�szTreeModelRowIter.__iter__N)rrrrarr	rErrrrr��sr�csveZdZddd�Z�fdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)r�rcCszt|t�rt|�}nt|t�s2djdd�|D��}t|�dkrJtd|��y
tj|�Stk
rttd|��YnXdS)N�:css|]}t|�VqdS)N)r�)rH�valrrr�	<genexpr>�sz#TreePath.__new__.<locals>.<genexpr>rz-could not parse subscript '%s' as a tree path)	rr�r�rt�joinr"r#r�Znew_from_string)�clsr�rrr�__new__�s



zTreePath.__new__cstt|�j�dS)N)r0r�ra)r2r(rP)r4rrra�szTreePath.__init__cCs|j�p
dS)N�)Z	to_string)r2rrr�__str__�szTreePath.__str__cCs|dk	o|j|�dkS)Nr)�compare)r2�otherrrr�__lt__�szTreePath.__lt__cCs|dk	o|j|�dkS)Nr)r!)r2r"rrr�__le__�szTreePath.__le__cCs|dk	o|j|�dkS)Nr)r!)r2r"rrr�__eq__�szTreePath.__eq__cCs|dkp|j|�dkS)Nr)r!)r2r"rrr�__ne__�szTreePath.__ne__cCs|dkp|j|�dkS)Nr)r!)r2r"rrr�__gt__�szTreePath.__gt__cCs|dkp|j|�dkS)Nr)r!)r2r"rrr�__ge__�szTreePath.__ge__cCst|j��S)N)rD�get_indices)r2rrrrE�szTreePath.__iter__cCs|j�S)N)Z	get_depth)r2rrrrA�szTreePath.__len__cCs|j�|S)N)r))r2r�rrrr��szTreePath.__getitem__)r)rrrrrar r#r$r%r&r'r(rErAr�r>rr)r4rr��s

r�c@s^eZdZdd�Zdd�Zddd�Zddd	�Zdd
d�Zddd
�Zddd�Z	dd�Z
dd�ZdS)�	TreeStorecGstjj|�|j|�dS)N)rr*rar�)r2r�rrrra�szTreeStore.__init__cCs<|dk	r(|j|�\}}|j||||�}ntjj|||�}|S)N)r�Zinsert_with_valuesrr*r�)r2r�rWr�r�r�rrrr��s
zTreeStore._do_insertNcCs|j|d|�S)NrrT)r�)r2r�r�rrrr�szTreeStore.appendcCs|j|d|�S)Nr)r�)r2r�r�rrrr��szTreeStore.prependcCs|j|||�S)N)r�)r2r�rWr�rrrr��szTreeStore.insertcCs(tjj|||�}|dk	r$|j||�|S)N)rr*r�r�)r2r�r�r�r�rrrr��szTreeStore.insert_beforecCs(tjj|||�}|dk	r$|j||�|S)N)rr*rr�)r2r�r�r�r�rrrr�szTreeStore.insert_aftercCs"|j||�}tjj||||�dS)N)r�rr*r�)r2r�r�r<rrrr��szTreeStore.set_valuecs���fdd�}|r�t|dt�r@||ddd�|ddd��nlt|dttf�rzt|�dkrftd��||d|d�n2t|dt�r�||dj�|dj��ntd��dS)Ncs|t|�t|�krtd��g}g}xDt||�D]6\}}t|t�sFtd��|j|�|j�j||��q,Wtjj	��||�dS)Nz7The number of columns do not match the number of valuesz0TypeError: Expected integer argument for column.)
r"r#r�rr�rr�rr*r)rrr�r�rr<)r2r�rrrs

z!TreeStore.set.<locals>._set_listsrrrzToo many argumentsz�Argument list must be in the form of (column, value, ...), ((columns,...), (values, ...)) or {column: value}.  No -1 termination is needed.)	rr�r�rr"r#r��keysr�)r2r�r(rr)r2r�rr�s z
TreeStore.set)N)N)N)N)N)rrrrar�rr�r�r�rr�rrrrrr*�s	




r*cs�eZdZeejjded�Zeejj	�Z	eejj
�Z
eejj�Z�fdd�Z�fdd�Z
d�fd
d�	Zd�fdd
�	Zd�fdd�	Zdd�Z�ZS)�TreeViewr�)r_r`cs t|�}tt|�j|||�dS)N)rr0r,�enable_model_drag_source)r2Zstart_button_maskr�actionsr)r4rrr-)sz!TreeView.enable_model_drag_sourcecst|�}tt|�j||�dS)N)rr0r,�enable_model_drag_dest)r2rr.r)r4rrr//szTreeView.enable_model_drag_destNF�cs0t|tj�st|�}tt|�j|||||�dS)N)rrr�r0r,�scroll_to_cell)r2r�r�Z	use_alignZ	row_alignZ	col_align)r4rrr14szTreeView.scroll_to_cellcs,t|tj�st|�}tt|�j|||�dS)N)rrr�r0r,�
set_cursor)r2r�r�Z
start_editing)r4rrr29szTreeView.set_cursorcs&t|tj�st|�}tt|�j||�S)N)rrr�r0r,�
get_cell_area)r2r�r�)r4rrr3>szTreeView.get_cell_areacKs:t�}|j|�|j|d�|j||�|j|f|�dS)NF)�TreeViewColumnZ	set_title�
pack_startZ
insert_column�set_attributes)r2rWr�ZcellrPr�rrr�insert_column_with_attributesCs

z&TreeView.insert_column_with_attributes)r�)NFr0r0)NF)N)rrrrrr,rarrZget_path_at_posr�Zget_dest_row_at_posr-r/r1r2r3r7r>rr)r4rr, sr,cs<eZdZd	dd�Zeejj�Zd
�fdd�	Zdd�Z	�Z
S)r4rNcKsHtjj||d�|r |j|d�x"|j�D]\}}|j|||�q*WdS)N)r�T)rr4rar5rN�
add_attribute)r2r��
cell_renderer�
attributesrIr<rrrraPs
zTreeViewColumn.__init__cstt|�j|||�dS)N)r0r4�set_cell_data_func)r2r9�funcZ	func_data)r4rrr;\sz!TreeViewColumn.set_cell_data_funccKs:tjj||�x&|j�D]\}}tjj||||�qWdS)N)rZ
CellLayoutZclear_attributesrNr8)r2r9r:rIr<rrrr6_szTreeViewColumn.set_attributes)rN)N)rrrrarrr4Zcell_get_positionr;r6r>rr)r4rr4Os

	r4cs4eZdZ�fdd�Z�fdd�Z�fdd�Z�ZS)�
TreeSelectioncs(t|tj�st|�}tt|�j|�dS)N)rrr�r0r=�select_path)r2r�)r4rrr>lszTreeSelection.select_pathcs,tt|�j�\}}}|r ||fS|dfSdS)N)r0r=�get_selected)r2r�r�r�)r4rrr?qszTreeSelection.get_selectedcstt|�j�\}}||fS)N)r0r=�get_selected_rows)r2�rowsr�)r4rrr@zszTreeSelection.get_selected_rows)rrrr>r?r@r>rr)r4rr=js	r=c@s*eZdZeejjd
dedd�Zdd�Zd	S)�Buttonr\�stock�	use_stock�
use_underliner)r_r�r`r�cOsld|kr\|dr\tjdtdd�|j�}|d|d<d|d<d|d<|d=tjj|f|�n|j||�dS)	NrCzKStock items are deprecated. Please use: Gtk.Button.new_with_mnemonic(label)r)r�r\TrDrE)r�r�rr�rrBrar�)r2r(rPr�rrrra�s
zButton.__init__N)r\rCrDrE)rC)	rrrrrrBrarr�rrrrrB�srBc@seZdZeejjded�ZdS)�
LinkButton�urir\)r_r`N)rGr\)rrrrrrFrarrrrrrF�srFc@seZdZeejjded�ZdS)�Labelr\)r_r`N)r\)rrrrrrHrarrrrrrH�srHc@s0eZdZeejjdddd	�ed
d�Zdd
�ZdS)�
Adjustmentr<�lower�upper�step_increment�page_increment�	page_sizeZ	page_incrZ	step_incr)rMrLr)r_r�r`r�cOsB|j||�d|kr$|j|d�nt|�dkr>|j|d�dS)Nr<rr)r�r�r")r2r(rPrrrra�s
zAdjustment.__init__N)r<rJrKrLrMrN)	rrrrrrIrarr�rrrrrI�srIc@sPeZdZeejjdddd�ed�Zejj	ejj
Bejj	ejj
Bddfd	d
�ZdS)
�Table�n_rowsr�r|rAr�)rPr�)r_r�r`rc

Cs"tjj||||||||||	�
dS)N)rrO�attach)
r2rBZleft_attachZright_attachZ
top_attachZ
bottom_attachZxoptionsZyoptionsZxpaddingZypaddingrrrrQ�szTable.attachN)rPr�r|)rrrrrrOrarZ
AttachOptionsZEXPANDZFILLrQrrrrrO�s
rOc@seZdZeejjded�ZdS)�ScrolledWindow�hadjustment�vadjustment)r_r`N)rSrT)rrrrrrRrarrrrrrR�srRc@seZdZeejjded�ZdS)�
HScrollbar�
adjustment)r_r`N)rV)rrrrrrUrarrrrrrU�srUc@seZdZeejjded�ZdS)�
VScrollbarrV)r_r`N)rV)rrrrrrWrarrrrrrW�srWcs,eZdZd�fdd�	Zd�fdd�	Z�ZS)	�PanedFTcstt|�j|||�dS)N)r0rX�pack1)r2rB�resize�shrink)r4rrrY�szPaned.pack1cstt|�j|||�dS)N)r0rX�pack2)r2rBrZr[)r4rrr\�szPaned.pack2)FT)TT)rrrrYr\r>rr)r4rrX�srXc@seZdZeejjded�ZdS)�Arrow�
arrow_type�shadow_type)r_r`N)r^r_)rrrrrr]rarrrrrr]sr]cs&eZdZddd�Z�fdd�Z�ZS)�IconSetNcCs6|dk	r&tjdtdd�tjj|�}ntjj|�}|S)NzXGtk.IconSet(pixbuf) has been deprecated. Please use: Gtk.IconSet.new_from_pixbuf(pixbuf)r)r�)r�r�rrr`Znew_from_pixbufr)rZpixbufZiconsetrrrrs
zIconSet.__new__cstt|�j�S)N)r0r`ra)r2r(rP)r4rrraszIconSet.__init__)N)rrrrrar>rr)r4rr`
s

r`c@seZdZeejjded�ZdS)�ViewportrSrT)r_r`N)rSrT)rrrrrrararrrrrrasracs&eZdZd�fdd�	Zdd�Z�ZS)�TreeModelFilterNcstt|�j||�dS)N)r0rb�set_visible_func)r2r<�data)r4rrrc*sz TreeModelFilter.set_visible_funccCs |j|�}|j�j|||�dS)N)Zconvert_iter_to_child_iterZ	get_modelr�)r2rDr�r<rrrr�-s
zTreeModelFilter.set_value)N)rrrrcr�r>rr)r4rrb)srbc@seZdZdd�ZdS)�MenucCs|jd||||||�dS)N)Zpopup_for_device)r2Zparent_menu_shellZparent_menu_itemr<rdZbuttonZ
activate_timerrr�popup8sz
Menu.popupN)rrrrfrrrrre7srecGs
t�dS)N)�_Gtk_main_quit)r(rrr�	main_quit@srhcOs2ttj��t��t||�SQRXWdQRXdS)N)rrrhr�	_Gtk_main)r(rPrrr�mainHsrj�stock_lookupz4.0)rr)r
rZ)r
rZ)r
rZ)r
rZ)r
rZ)r
rZ)r
rZ)[r�sysr�Z
gi.repositoryrZ_ossighelperrrZ	overridesrrr�moduler	Zgir
�version_infor�rtZ
basestringr�__all__Z_versionZwarn_msgr��RuntimeWarningrrrr)r-r.r?rSr[rbrcrsrzr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��objectr�r�r�r*r,r4r=rBrFrHrIrOrRrUrWrXr]r`rarbrerhrgrjrirkZ
init_check�argvZinitializedrrrrr�<module>s|





)



$





 

X




	





Q




S
g

1
N
+






	













overrides/__pycache__/Pango.cpython-36.opt-1.pyc000064400000002453151734360770015430 0ustar003

��<_��@spddlmZddlmZed�ZgZGdd�dej�Zee�Zejd�Gdd�dej�Zee�Zejd�dS)	�)�override)�get_introspection_module�Pangocs&eZdZddd�Z�fdd�Z�ZS)�FontDescriptionNcCs"|dk	rtj|�Stjj|�SdS)N)rZfont_description_from_stringr�__new__)�cls�string�r	�/usr/lib64/python3.6/Pango.pyrs
zFontDescription.__new__cstt|�j�S)N)�superr�__init__)�self�args�kwargs)�	__class__r	r
r%szFontDescription.__init__)N)�__name__�
__module__�__qualname__rr�
__classcell__r	r	)rr
rs
rcs&eZdZdd�Zd�fdd�	Z�ZS)�LayoutcCstjj|�S)N)rr�new)r�contextr	r	r
r/szLayout.__new__�cstt|�j||�dS)N)rr�
set_markup)r
�textZlength)rr	r
r2szLayout.set_markup���)r)rrrrrrr	r	)rr
r-srN)	Z	overridesr�modulerr�__all__r�appendrr	r	r	r
�<module>s
	overrides/__pycache__/Gio.cpython-36.pyc000064400000016674151734360770014155 0ustar003

��<_>#�@sJddlZddlmZmZddlmZmZddlmZddl	m
Z
ddlmZddl
Z
ed�ZgZGd	d
�d
ej�Zee�Zejd
�Gdd�dej�Zee�Zejd�Gd
d�dej�Zee�Zejd�Gdd�dej�Zee�Zejd�Gdd�dej�Zee�Zejd�Gdd�d�ZGdd�dej�Zee�Zejd�dS)�N�)�wakeup_on_signal�register_sigint_fallback)�override�deprecated_init)�get_introspection_module)�PyGIWarning)�GLib�Gioc@seZdZdd�ZdS)�ApplicationcOs<t|j��(t��tjj|f|�|�SQRXWdQRXdS)N)r�quitrr
r�run)�self�args�kwargs�r�/usr/lib64/python3.6/Gio.pyr
'szApplication.runN)�__name__�
__module__�__qualname__r
rrrrr%srcseZdZ�fdd�Z�ZS)�
VolumeMonitorcs&tt|�j||�tjdtdd�dS)NzZGio.VolumeMonitor shouldn't be instantiated directly, use Gio.VolumeMonitor.get() instead.r)�
stacklevel)�superr�__init__�warnings�warnr)rrr)�	__class__rrr3szVolumeMonitor.__init__)rrrr�
__classcell__rr)rrr1src@s eZdZdd�Zdd�ZeZdS)�FileEnumeratorcCs|S)Nr)rrrr�__iter__BszFileEnumerator.__iter__cCs|jd�}|dk	r|St�dS)N)Z	next_file�
StopIteration)r�	file_inforrr�__next__Es
zFileEnumerator.__next__N)rrrrr"�nextrrrrrAs	rc@seZdZdd�ZdS)�MenuItemcCs,x&|D]\}}}|j|tj||��qWdS)N)Zset_attribute_valuer	�Variant)rZ
attributes�name�
format_string�valuerrr�
set_attributeVszMenuItem.set_attributeN)rrrr)rrrrr$Usr$c@sTeZdZdZeejjdd�Zdd�Zdd	�Z	d
d�Z
e
Zdd
�Zdd�Z
dd�ZdS)�Settingsz0Provide dictionary-like access to GLib.Settings.�schema�path�backend)Z	arg_namescCs||j�kS)N)�	list_keys)r�keyrrr�__contains__eszSettings.__contains__cCst|j��S)N)�lenr.)rrrr�__len__hszSettings.__len__cCsdS)NTr)rrrr�__bool__kszSettings.__bool__cCs$||krtd|f��|j|�j�S)Nzunknown key: %r)�KeyErrorZ	get_value�unpack)rr/rrr�__getitem__sszSettings.__getitem__cCs�||krtd|f��|j|�}|jd�j�}|jd�}|dkrj|jd�j�}|jd�s\t�|dd�}nf|dkr�|jd�j�jd�s�t�|jd�jd�j�}|j�}||kr�td||f��nt	dt
|���|j|tj
||��dS)	Nzunknown key: %rr��type�a�enumz$value %s is not an allowed enum (%s)z'Cannot handle allowed type range class )r4Z	get_rangeZget_child_valueZ
get_stringZget_type_string�
startswith�AssertionErrorr5�
ValueError�NotImplementedError�strZ	set_valuer	r%)rr/r(�rangeZtype_�vZtype_strZallowedrrr�__setitem__zs"

zSettings.__setitem__cCs|j�S)N)r.)rrrr�keys�sz
Settings.keysN)r+r,r-)rrr�__doc__rr
r*rr0r2r3Z__nonzero__r6rBrCrrrrr*_sr*c@s4eZdZdZdd�Zdd�Zdd�Zedd	��Zd
S)�_DBusProxyMethodCallz1Helper class to implement DBusProxy method calls.cCs||_||_dS)N)�
dbus_proxy�method_name)rrFrGrrrr�sz_DBusProxyMethodCall.__init__c
Csv|\}}}y|j|�}WnFtk
r^tj�dd�\}}	|rN|||	|�n|||	|�dSX|||j|�|�dS)Nr)Zcall_finish�	Exception�sys�exc_info�_unpack_result)
r�obj�result�	user_dataZresult_callbackZerror_callbackZreal_user_data�ret�etype�errrZ__async_result_handler�s
z+_DBusProxyMethodCall.__async_result_handlercOs�|r0|d}|dd�}t|t�s4td|��nd}tj|t|��}d|kr�|d|jd�|jd�f}|jj|j	||jdd�|jd	d
�d|j
|�n0|jj|j	||jdd�|jd	d�d�}|j|�SdS)Nrr7z6first argument must be the method signature string: %rz()Zresult_handlerZ
error_handlerrN�flagsZtimeout���rS)
�
isinstancer?�	TypeErrorr	r%�tuple�getrFZcallrG�*_DBusProxyMethodCall__async_result_handlerZ	call_syncrK)rrrZ	signatureZarg_variantrNrMrrr�__call__�s&


z_DBusProxyMethodCall.__call__cCs2|j�}t|�dkr|d}nt|�dkr.d}|S)z?Convert a D-BUS return variant into an appropriate return valuer7rN)r5r1)�klassrMrrrrK�s
z#_DBusProxyMethodCall._unpack_resultN)	rrrrDrrXrY�classmethodrKrrrrrE�s
rEc@seZdZdZdd�ZdS)�	DBusProxya$Provide comfortable and pythonic method calls.

    This marshalls the method arguments into a GVariant, invokes the
    call_sync() method on the DBusProxy object, and unmarshalls the result
    GVariant back into a Python tuple.

    The first argument always needs to be the D-Bus signature tuple of the
    method call. Example:

      proxy = Gio.DBusProxy.new_sync(...)
      result = proxy.MyMethod('(is)', 42, 'hello')

    The exception are methods which take no arguments, like
    proxy.MyMethod('()'). For these you can omit the signature and just write
    proxy.MyMethod().

    Optional keyword arguments:

    - timeout: timeout for the call in milliseconds (default to D-Bus timeout)

    - flags: Combination of Gio.DBusCallFlags.*

    - result_handler: Do an asynchronous method call and invoke
         result_handler(proxy_object, result, user_data) when it finishes.

    - error_handler: If the asynchronous call raises an exception,
      error_handler(proxy_object, exception, user_data) is called when it
      finishes. If error_handler is not given, result_handler is called with
      the exception object as result instead.

    - user_data: Optional user data to pass to result_handler for
      asynchronous calls.

    Example for asynchronous calls:

      def mymethod_done(proxy, result, user_data):
          if isinstance(result, Exception):
              # handle error
          else:
              # do something with result

      proxy.MyMethod('(is)', 42, 'hello',
          result_handler=mymethod_done, user_data='data')
    cCs
t||�S)N)rE)rr&rrr�__getattr__szDBusProxy.__getattr__N)rrrrDr]rrrrr\�s,r\)rZ_ossighelperrrZ	overridesrr�modulerZgirZ
gi.repositoryr	rIr
�__all__r�appendrrr$r*rEr\rrrr�<module>s6



9
C1overrides/__pycache__/keysyms.cpython-36.opt-1.pyc000064400000001620151734360770016063 0ustar003

��<_��@s�ddlZddlZddlmZed�Zejde�e�dZej	eZ
xPee�D]DZej
d�rNedd�Zedd	kr|d
eZeee�Zee
ee�qNWdZdZd
ZdZdZdZdZdZdZdZdZdS)�N�)�get_introspection_module�Gdkz?keysyms has been deprecated. Please use Gdk.KEY_<name> instead.�__name__ZKEY_��
0123456789�_i�i�i�i�i�i�i�i�i�i�)�sys�warnings�modulerr�warn�RuntimeWarning�globalsZ_modname�modulesZ_keysyms�dir�name�
startswith�target�getattr�value�setattrZArmenian_eternityZArmenian_section_signZArmenian_parenleftZArmenian_guillemotrightZArmenian_guillemotleftZArmenian_em_dashZArmenian_dotZArmenian_mijaketZArmenian_commaZArmenian_en_dashZArmenian_ellipsis�rr�/usr/lib64/python3.6/keysyms.py�<module>s2



overrides/__pycache__/Pango.cpython-36.pyc000064400000002453151734360770014471 0ustar003

��<_��@spddlmZddlmZed�ZgZGdd�dej�Zee�Zejd�Gdd�dej�Zee�Zejd�dS)	�)�override)�get_introspection_module�Pangocs&eZdZddd�Z�fdd�Z�ZS)�FontDescriptionNcCs"|dk	rtj|�Stjj|�SdS)N)rZfont_description_from_stringr�__new__)�cls�string�r	�/usr/lib64/python3.6/Pango.pyrs
zFontDescription.__new__cstt|�j�S)N)�superr�__init__)�self�args�kwargs)�	__class__r	r
r%szFontDescription.__init__)N)�__name__�
__module__�__qualname__rr�
__classcell__r	r	)rr
rs
rcs&eZdZdd�Zd�fdd�	Z�ZS)�LayoutcCstjj|�S)N)rr�new)r�contextr	r	r
r/szLayout.__new__�cstt|�j||�dS)N)rr�
set_markup)r
�textZlength)rr	r
r2szLayout.set_markup���)r)rrrrrrr	r	)rr
r-srN)	Z	overridesr�modulerr�__all__r�appendrr	r	r	r
�<module>s
	overrides/__pycache__/Gio.cpython-36.opt-1.pyc000064400000016563151734360770015111 0ustar003

��<_>#�@sJddlZddlmZmZddlmZmZddlmZddl	m
Z
ddlmZddl
Z
ed�ZgZGd	d
�d
ej�Zee�Zejd
�Gdd�dej�Zee�Zejd�Gd
d�dej�Zee�Zejd�Gdd�dej�Zee�Zejd�Gdd�dej�Zee�Zejd�Gdd�d�ZGdd�dej�Zee�Zejd�dS)�N�)�wakeup_on_signal�register_sigint_fallback)�override�deprecated_init)�get_introspection_module)�PyGIWarning)�GLib�Gioc@seZdZdd�ZdS)�ApplicationcOs<t|j��(t��tjj|f|�|�SQRXWdQRXdS)N)r�quitrr
r�run)�self�args�kwargs�r�/usr/lib64/python3.6/Gio.pyr
'szApplication.runN)�__name__�
__module__�__qualname__r
rrrrr%srcseZdZ�fdd�Z�ZS)�
VolumeMonitorcs&tt|�j||�tjdtdd�dS)NzZGio.VolumeMonitor shouldn't be instantiated directly, use Gio.VolumeMonitor.get() instead.r)�
stacklevel)�superr�__init__�warnings�warnr)rrr)�	__class__rrr3szVolumeMonitor.__init__)rrrr�
__classcell__rr)rrr1src@s eZdZdd�Zdd�ZeZdS)�FileEnumeratorcCs|S)Nr)rrrr�__iter__BszFileEnumerator.__iter__cCs|jd�}|dk	r|St�dS)N)Z	next_file�
StopIteration)r�	file_inforrr�__next__Es
zFileEnumerator.__next__N)rrrrr"�nextrrrrrAs	rc@seZdZdd�ZdS)�MenuItemcCs,x&|D]\}}}|j|tj||��qWdS)N)Zset_attribute_valuer	�Variant)rZ
attributes�name�
format_string�valuerrr�
set_attributeVszMenuItem.set_attributeN)rrrr)rrrrr$Usr$c@sTeZdZdZeejjdd�Zdd�Zdd	�Z	d
d�Z
e
Zdd
�Zdd�Z
dd�ZdS)�Settingsz0Provide dictionary-like access to GLib.Settings.�schema�path�backend)Z	arg_namescCs||j�kS)N)�	list_keys)r�keyrrr�__contains__eszSettings.__contains__cCst|j��S)N)�lenr.)rrrr�__len__hszSettings.__len__cCsdS)NTr)rrrr�__bool__kszSettings.__bool__cCs$||krtd|f��|j|�j�S)Nzunknown key: %r)�KeyErrorZ	get_value�unpack)rr/rrr�__getitem__sszSettings.__getitem__cCs�||krtd|f��|j|�}|jd�j�}|jd�}|dkr\|jd�j�}|dd�}nN|dkr�|jd�jd�j�}|j�}||kr�td||f��ntdt|���|j	|t
j||��dS)Nzunknown key: %rr��type�enumz$value %s is not an allowed enum (%s)z'Cannot handle allowed type range class )r4Z	get_rangeZget_child_valueZ
get_stringZget_type_stringr5�
ValueError�NotImplementedError�strZ	set_valuer	r%)rr/r(�rangeZtype_�vZtype_strZallowedrrr�__setitem__zs

zSettings.__setitem__cCs|j�S)N)r.)rrrr�keys�sz
Settings.keysN)r+r,r-)rrr�__doc__rr
r*rr0r2r3Z__nonzero__r6r?r@rrrrr*_sr*c@s4eZdZdZdd�Zdd�Zdd�Zedd	��Zd
S)�_DBusProxyMethodCallz1Helper class to implement DBusProxy method calls.cCs||_||_dS)N)�
dbus_proxy�method_name)rrCrDrrrr�sz_DBusProxyMethodCall.__init__c
Csv|\}}}y|j|�}WnFtk
r^tj�dd�\}}	|rN|||	|�n|||	|�dSX|||j|�|�dS)Nr)Zcall_finish�	Exception�sys�exc_info�_unpack_result)
r�obj�result�	user_dataZresult_callbackZerror_callbackZreal_user_data�ret�etype�errrZ__async_result_handler�s
z+_DBusProxyMethodCall.__async_result_handlercOs�|r0|d}|dd�}t|t�s4td|��nd}tj|t|��}d|kr�|d|jd�|jd�f}|jj|j	||jdd�|jd	d
�d|j
|�n0|jj|j	||jdd�|jd	d�d�}|j|�SdS)Nrr7z6first argument must be the method signature string: %rz()Zresult_handlerZ
error_handlerrK�flagsZtimeout���rP)
�
isinstancer<�	TypeErrorr	r%�tuple�getrCZcallrD�*_DBusProxyMethodCall__async_result_handlerZ	call_syncrH)rrrZ	signatureZarg_variantrKrJrrr�__call__�s&


z_DBusProxyMethodCall.__call__cCs2|j�}t|�dkr|d}nt|�dkr.d}|S)z?Convert a D-BUS return variant into an appropriate return valuer7rN)r5r1)�klassrJrrrrH�s
z#_DBusProxyMethodCall._unpack_resultN)	rrrrArrUrV�classmethodrHrrrrrB�s
rBc@seZdZdZdd�ZdS)�	DBusProxya$Provide comfortable and pythonic method calls.

    This marshalls the method arguments into a GVariant, invokes the
    call_sync() method on the DBusProxy object, and unmarshalls the result
    GVariant back into a Python tuple.

    The first argument always needs to be the D-Bus signature tuple of the
    method call. Example:

      proxy = Gio.DBusProxy.new_sync(...)
      result = proxy.MyMethod('(is)', 42, 'hello')

    The exception are methods which take no arguments, like
    proxy.MyMethod('()'). For these you can omit the signature and just write
    proxy.MyMethod().

    Optional keyword arguments:

    - timeout: timeout for the call in milliseconds (default to D-Bus timeout)

    - flags: Combination of Gio.DBusCallFlags.*

    - result_handler: Do an asynchronous method call and invoke
         result_handler(proxy_object, result, user_data) when it finishes.

    - error_handler: If the asynchronous call raises an exception,
      error_handler(proxy_object, exception, user_data) is called when it
      finishes. If error_handler is not given, result_handler is called with
      the exception object as result instead.

    - user_data: Optional user data to pass to result_handler for
      asynchronous calls.

    Example for asynchronous calls:

      def mymethod_done(proxy, result, user_data):
          if isinstance(result, Exception):
              # handle error
          else:
              # do something with result

      proxy.MyMethod('(is)', 42, 'hello',
          result_handler=mymethod_done, user_data='data')
    cCs
t||�S)N)rB)rr&rrr�__getattr__szDBusProxy.__getattr__N)rrrrArZrrrrrY�s,rY)rZ_ossighelperrrZ	overridesrr�modulerZgirZ
gi.repositoryr	rFr
�__all__r�appendrrr$r*rBrYrrrr�<module>s6



9
C1overrides/__pycache__/GObject.cpython-36.opt-1.pyc000064400000044503151734360770015703 0ustar003

��<_�e�*@s~ddlZddlZddlmZddlZddlZddlmZmZddl	m
Z
ddlmZddlmZ
ddlmZddlmZejjd	�ZgZdd
lmZeZx6d�D].Zee
e�e�e<ed	ed$e�eje�q�WxXd�D]PZej��"ejdOe�ee
e�e�e<WdQRXed	ed$e�eje��q�WxHd�D]@Zejd\d]�d�Zee
e�e�e<ed	ed$e�eje��q0WxHd�D]@Zejd\d]�d�Zee
e�e�e<ed	ed$e�eje��qzWejdp�Z ejdq�Z!ejdr�Z"ejds�Z#ejdt�Z$ejdu�Z%ejdv�Z&ejdw�Z'ejdx�Z(ejdy�Z)ejdz�Z*ejd{�Z+ejd|�Z,ejd}�Z-ejd~�Z.ejd�Z/ejd��Z0ejd��Z1ejd��Z2ejd��Z3ejd	�Z4ejd��Z5ejd��Z6ejd��Z7ejd��Z8ejd��Z9ej:j;Z<e'Z=ed�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�g7Zx8d�D]0Zee
e�e�e<ed	ed$e�eje��qWxJd�D]BZejd\d]�d�Zeej>e�e�e<ed	ed�e�eje��qNWej>j?ej>j@BZAejd��eBej>d���r�ed	d�d��xLd�D]DZejd\d]��dZeejCe�e�e<ed	ed�e�eje��q�WejDZDejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLejMZMed�d|d}drd	d�d�d�d�d�g
7ZejNZNejOZOejPZPejQZQe
jRZRejSZSed�d�d�d�d�d�g7ZGd�dńd�ej:�Z:ee:�Z:ejdŃd�dDŽZejdǃd�dɄZTejdɃd�d˄ZUd�d̈́ZVejd̓d�dτZWejdσd�dфZXejdуed�d�d�d�d�d�d�g�ZY�dd�dڄZZejdڃGd�d܄d�e[�Z\d�dބZ]ejdރd�d�Z^ejd�d�d�Z_ejd��dd�d�Z`ejd��dd�d�Zaejd�ejbZbejcZced�d�g7ZGd�d�d�e[�Zdd�d�ZeGd�d�d�ejf�Zfeef�ZfefZHed�d	g7ZGd�d�d�ejg�Zgeeg�Zgejd�e
jhZhejiZiejjZjehZked	d�d�ed�d�d�d�g7ZdS(�N)�
namedtuple)�override�deprecated_attr)�GLib)�PyGIDeprecationWarning)�_propertyhelper)�
_signalhelper)�_gi�GObject)�_option�markup_escape_text�get_application_name�set_application_name�get_prgname�set_prgname�
main_depth�filename_display_basename�filename_display_name�filename_from_utf8�uri_list_extract_uris�MainLoop�MainContext�main_context_default�
source_remove�Source�Idle�Timeout�PollFD�idle_add�timeout_add�timeout_add_seconds�io_add_watch�child_watch_add�get_current_time�spawn_asynczGLib.�PRIORITY_DEFAULT�PRIORITY_DEFAULT_IDLE�
PRIORITY_HIGH�PRIORITY_HIGH_IDLE�PRIORITY_LOW�IO_IN�IO_OUT�IO_PRI�IO_ERR�IO_HUP�IO_NVAL�IO_STATUS_ERROR�IO_STATUS_NORMAL�
IO_STATUS_EOF�IO_STATUS_AGAIN�IO_FLAG_APPEND�IO_FLAG_NONBLOCK�IO_FLAG_IS_READABLE�IO_FLAG_IS_WRITEABLE�IO_FLAG_IS_SEEKABLE�IO_FLAG_MASK�IO_FLAG_GET_MASK�IO_FLAG_SET_MASK�SPAWN_LEAVE_DESCRIPTORS_OPEN�SPAWN_DO_NOT_REAP_CHILD�SPAWN_SEARCH_PATH�SPAWN_STDOUT_TO_DEV_NULL�SPAWN_STDERR_TO_DEV_NULL�SPAWN_CHILD_INHERITS_STDIN�SPAWN_FILE_AND_ARGV_ZERO�OPTION_FLAG_HIDDEN�OPTION_FLAG_IN_MAIN�OPTION_FLAG_REVERSE�OPTION_FLAG_NO_ARG�OPTION_FLAG_FILENAME�OPTION_FLAG_OPTIONAL_ARG�OPTION_FLAG_NOALIAS�OPTION_ERROR_UNKNOWN_OPTION�OPTION_ERROR_BAD_VALUE�OPTION_ERROR_FAILED�OPTION_REMAINING�glib_version�ignore�	G_MININT8�	G_MAXINT8�
G_MAXUINT8�
G_MININT16�
G_MAXINT16�G_MAXUINT16�
G_MININT32�
G_MAXINT32�G_MAXUINT32�
G_MININT64�
G_MAXINT64�G_MAXUINT64�_��
G_MINFLOAT�
G_MAXFLOAT�G_MINDOUBLE�G_MAXDOUBLE�
G_MINSHORT�
G_MAXSHORT�G_MAXUSHORT�G_MININT�G_MAXINT�	G_MAXUINT�	G_MINLONG�	G_MAXLONG�
G_MAXULONG�	G_MAXSIZE�
G_MINSSIZE�
G_MAXSSIZE�G_MINOFFSET�G_MAXOFFSETZinvalid�void�
GInterfaceZgcharZgucharZgbooleanZgintZguintZglongZgulongZgint64Zguint64�GEnum�GFlagsZgfloatZgdoubleZ
gchararrayZgpointer�GBoxedZGParamZPyObject�GTypeZGStrvZGVariantZGString�TYPE_INVALID�	TYPE_NONE�TYPE_INTERFACE�	TYPE_CHAR�
TYPE_UCHAR�TYPE_BOOLEAN�TYPE_INT�	TYPE_UINT�	TYPE_LONG�
TYPE_ULONG�
TYPE_INT64�TYPE_UINT64�	TYPE_ENUM�
TYPE_FLAGS�
TYPE_FLOAT�TYPE_DOUBLE�TYPE_STRING�TYPE_POINTER�
TYPE_BOXED�
TYPE_PARAM�TYPE_OBJECT�
TYPE_PYOBJECT�
TYPE_GTYPE�	TYPE_STRV�TYPE_VARIANT�TYPE_GSTRING�TYPE_UNICHAR�
TYPE_VALUE�Pid�GError�OptionGroup�
OptionContext�PARAM_CONSTRUCT�PARAM_CONSTRUCT_ONLY�PARAM_LAX_VALIDATION�PARAM_READABLE�PARAM_WRITABLEzGObject.ParamFlags.�PARAM_READWRITEZ	READWRITEz)GObject.ParamFlags.READWRITE (glib 2.42+)�
SIGNAL_ACTION�SIGNAL_DETAILED�SIGNAL_NO_HOOKS�SIGNAL_NO_RECURSE�SIGNAL_RUN_CLEANUP�SIGNAL_RUN_FIRST�SIGNAL_RUN_LASTzGObject.SignalFlags.�GObjectWeakRef�
GParamSpec�GPointer�Warning�features�list_properties�new�pygobject_version�threads_init�
type_registercsNeZdZddd�Z�fdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	�Z
S)�ValueNcCs4tjj|�|dk	r0|j|�|dk	r0|j|�dS)N)�
GObjectModuler��__init__Zinit�	set_value)�selfZ
value_type�py_value�r��/usr/lib64/python3.6/GObject.pyr��s

zValue.__init__cs*|jr|jtkr|j�tt|�j�dS)N)Z_free_on_dealloc�g_typervZunset�superr��__del__)r�)�	__class__r�r�r��sz
Value.__del__cCstj||�dS)N)r	Z_gvalue_set)r�Zboxedr�r�r��	set_boxed�szValue.set_boxedcCs
tj|�S)N)r	Z_gvalue_get)r�r�r�r��	get_boxed�szValue.get_boxedcCs�|j}|tjkrtd���nb|tkr2|j|��nL|tkrH|j|��n6|tkr^|j	|��n |t
krt|j|��n
|tkr�|j
|��n�|tkr�|j|��n�|tkr�|j|��n�|tkr�|j|��n�|tkr�|j|��n�|tkr�|j|��n�|tk�r|j|��nn|tk�r�t|t��r0t|�}nNtjdk�rjt|t��rT|j d�}nt!d|t"|�f��nt!d|t"|�f��|j#|�n�|t$k�r�|j%|�n�|j&t'��r�|j(|�n�|j&t)��r�|j*|�n�|j&t+��r�|j,|�n�|t-k�r�|j.|�n�|j&t/��r|j0|�nh|t1k�r0|j
t2|��nN|t3k�rF|j4|�n8|t5k�r\|j6|�n"|t7k�rr|j,|�ntd|��dS)	Nz+GObject.Value needs to be initialized first�rzUTF-8z'Expected string or unicode but got %s%szExpected string but got %s%szUnknown value type %s)r�r)8r�r	rv�	TypeErrorr{Zset_booleanryZset_charrzZ	set_ucharr|Zset_intr}Zset_uintr~Zset_longrZ	set_ulongr�Z	set_int64r�Z
set_uint64r�Z	set_floatr�Z
set_doubler��
isinstance�str�sys�version_infoZunicode�encode�
ValueError�typeZ
set_stringr�Z	set_param�is_ar�Zset_enumr�Z	set_flagsr�r�r�Zset_pointerr�Z
set_objectr��intr�Z	set_gtyper�Zset_variantr�)r�r��gtyper�r�r�r��sr









zValue.set_valuecCs�|j}|tkr|j�S|tkr&|j�S|tkr6|j�S|tkrF|j�S|t	krV|j
�S|tkrf|j�S|t
krv|j�S|tkr�|j�S|tkr�|j�S|tkr�|j�S|tkr�|j�S|tkr�|j�S|tk�r�|j�S|jt��r�|j�S|jt��r|j�S|jt ��r|j!�S|t"k�r&|j#�S|jt$��r:|j%�S|t&k�rL|j
�S|t'k�r^|j(�S|t)k�rp|j*�S|t+k�r|ndSdS)N),r�r{Zget_booleanryZget_charrzZ	get_ucharr|Zget_intr}Zget_uintr~Zget_longrZ	get_ulongr�Z	get_int64r�Z
get_uint64r�Z	get_floatr�Z
get_doubler�Z
get_stringr�Z	get_paramr�r�Zget_enumr�Z	get_flagsr�r�r�Zget_pointerr�Z
get_objectr�r�Z	get_gtyper�Zget_variantr�)r�r�r�r�r��	get_value-s\





zValue.get_valuecCsd|jj|j�fS)Nz<Value (%s) %s>)r��namer�)r�r�r�r��__repr___szValue.__repr__)NN)�__name__�
__module__�__qualname__r�r�r�r�r�r�r��
__classcell__r�r�)r�r�r��s
A2r�cCs"tj|�}|tkrtd|��|S)Nzunknown type name: %s)r��type_from_namerv�RuntimeError)r��type_r�r�r�r�gs
r�cCstj|�}|tkrtd��|S)Nzno parent for type)r��type_parentrvr�)r��parentr�r�r�r�qs
r�cCs4t|d�r|j}|j�r0|j�r0td|��dS)N�	__gtype__z1type must be instantiable or an interface, got %s)�hasattrr�Zis_instantiatableZis_interfacer�)r�r�r�r�� _validate_type_for_signal_method{s
r�cCst|�tj|�S)N)r�r��signal_list_ids)r�r�r�r�r��sr�cCst|�}tdd�|D��S)Ncss|]}tj|�VqdS)N)r��signal_name)�.0�ir�r�r��	<genexpr>�sz$signal_list_names.<locals>.<genexpr>)r��tuple)r�Zidsr�r�r��signal_list_names�sr�cCst|�tj||�S)N)r�r��
signal_lookup)r�r�r�r�r�r��sr��SignalQuery�	signal_idr��itype�signal_flags�return_type�param_typescCsX|dk	rt||�}tj|�}|dkr(dS|jdkr6dSt|j|j|j|j|jt	|j
��S)Nr)r�r��signal_queryr�r�r�r�r�r�r�r�)Z
id_or_namer��resr�r�r�r��s


r�c@s$eZdZdd�Zdd�Zdd�ZdS)�_HandlerBlockManagercCs||_||_dS)N)�obj�
handler_id)r�r�r�r�r�r�r��sz_HandlerBlockManager.__init__cCsdS)Nr�)r�r�r�r��	__enter__�sz_HandlerBlockManager.__enter__cCstj|j|j�dS)N)r��signal_handler_unblockr�r�)r��exc_type�	exc_value�	tracebackr�r�r��__exit__�sz_HandlerBlockManager.__exit__N)r�r�r�r�r�r�r�r�r�r�r��sr�cCstj||�t||�S)a�Blocks the signal handler from being invoked until
    handler_unblock() is called.

    :param GObject.Object obj:
        Object instance to block handlers for.
    :param int handler_id:
        Id of signal to block.
    :returns:
        A context manager which optionally can be used to
        automatically unblock the handler:

    .. code-block:: python

        with GObject.signal_handler_block(obj, id):
            pass
    )r��signal_handler_blockr�)r�r�r�r�r�r��sr�cCs4tj|||�\}}}|r ||fStd||f��dS)a%Parse a detailed signal name into (signal_id, detail).

    :param str detailed_signal:
        Signal name which can include detail.
        For example: "notify:prop_name"
    :returns:
        Tuple of (signal_id, detail)
    :raises ValueError:
        If the given signal is unknown.
    z%s: unknown signal name: %sN)r��signal_parse_namer�)�detailed_signalr�Zforce_detail_quarkr�r��detailr�r�r�r��s
r�cCs t||d�\}}tj||�dS)NT)r�r�Zsignal_remove_emission_hook)r�r�Zhook_idr�r�r�r�r��remove_emission_hook�sr�cCsd|fS)NFr�)�ihint�return_accu�handler_return�	user_datar�r�r��signal_accumulator_first_winssr�cCs
||fS)Nr�)r�r�r�r�r�r�r��signal_accumulator_true_handledsr��add_emission_hook�
signal_newc@s$eZdZdd�Zdd�Zdd�ZdS)�_FreezeNotifyManagercCs
||_dS)N)r�)r�r�r�r�r�r�sz_FreezeNotifyManager.__init__cCsdS)Nr�)r�r�r�r�r�sz_FreezeNotifyManager.__enter__cCs|jj�dS)N)r�Zthaw_notify)r�r�r�r�r�r�r�r�sz_FreezeNotifyManager.__exit__N)r�r�r�r�r�r�r�r�r�r�r�sr�cstjj���fdd��}|S)Ncs
�||�S)Nr�)�args�kwargs)�funcr�r��meth'sz_signalmethod.<locals>.meth)�giZ	overrides�wraps)r�rr�)r�r��
_signalmethod#srcsjeZdZdd�Zdd�ZeZeZeZeZeZ	eZ
eZeZeZ
eZeZeZeZeZeZejjZejjZejjZejjZeZeZeZeZejj Z ejj!Z!ejj"Z"ejj#Z#ejj$Z$ejj%Z%ejj&Z&ejj'Z'ejj(Z(ejj)Z)ejj*Z*ejj+Z+ejj,Z,ejj-Z-ejj.Z.ejj/Z/ejj0Z0�fdd�Z1dd�Z2e3Z4e5ej6�Z7e5ej8�Z9e5ej8�Z:e5ej;�Z<e5ej=�Z>d	d
�Z?e?Z@�ZAS)�ObjectcOstd��dS)Nz%This method is currently unsupported.)r�)r�r��kargsr�r�r��_unsupported_method.szObject._unsupported_methodcOstd��dS)NzIData access methods are unsupported. Use normal Python attributes instead)r�)r�r�rr�r�r��_unsupported_data_method1szObject._unsupported_data_methodcstt|�j�t|�S)a�Freezes the object's property-changed notification queue.

        :returns:
            A context manager which optionally can be used to
            automatically thaw notifications.

        This will freeze the object so that "notify" signals are blocked until
        the thaw_notify() method is called.

        .. code-block:: python

            with obj.freeze_notify():
                pass
        )r�r�
freeze_notifyr�)r�)r�r�r�riszObject.freeze_notifycst|jdd�}|tjj@r"tjj}ntjj}|tjj@r^t	|�dkrPt
d|g���fdd�}n�}||||f|��S)aConnect a callback to the given signal with optional user data.

        :param str detailed_signal:
            A detailed signal to connect to.
        :param callable handler:
            Callback handler to connect to the signal.
        :param *data:
            Variable data which is passed through to the signal handler.
        :param GObject.ConnectFlags connect_flags:
            Flags used for connection options.
        :returns:
            A signal id which can be used with disconnect.
        Z
connect_flagsrr]zWUsing GObject.ConnectFlags.SWAPPED requires exactly one argument for user data, got: %scs(t|�}|j�}||g}�|f|��S)N)�list�pop)r�r�Zswap)�handlerr�r��new_handler�s
z(Object.connect_data.<locals>.new_handler)�getr�ZConnectFlagsZAFTERr	r
�
connect_after�connectZSWAPPED�lenr�)r�r�r�datar��flagsZconnect_funcrr�)rr��connect_data{s

zObject.connect_datacCstj|jjtdd�|j|�S)z-Deprecated, please use stop_emission_by_name.�)�
stacklevel)�warnings�warn�
stop_emission�__doc__r�stop_emission_by_name)r�r�r�r�r�r�szObject.stop_emission)Br�r�r�rr�get_dataZ	get_qdata�set_dataZ
steal_dataZsteal_qdataZreplace_dataZ
replace_qdataZbind_property_fullZcompat_controlZinterface_find_propertyZinterface_install_propertyZinterface_list_propertiesZnotify_by_pspecZrun_disposeZ
watch_closurer�r�refZ_refZref_sinkZ	_ref_sinkZunrefZ_unrefZforce_floatingZ_force_floatingr	r
Zget_propertyZget_propertiesZset_propertyZset_propertiesZ
bind_propertyrrZconnect_objectZconnect_object_afterZdisconnect_by_funcZhandler_block_by_funcZhandler_unblock_by_func�emit�chainZweak_ref�__copy__�__deepcopy__rrr�Z
handler_blockrr�Zhandler_unblockZsignal_handler_disconnectZ
disconnectZhandler_disconnectZsignal_handler_is_connectedZhandler_is_connectedZsignal_stop_emission_by_namerrZemit_stop_by_namer�r�r�)r�r�r-sh)




rcs$eZdZdd�Z�fdd�Z�ZS)�BindingcCstjdtdd�|S)Nz�Using parentheses (binding()) to retrieve the Binding object is no longer needed because the binding is returned directly from "bind_property.r)r)rrr)r�r�r�r��__call__�s
zBinding.__call__cs2t|d�rtd��nt|dd�tt|�j�dS)NZ_unboundz$binding has already been cleared outT)r�r��setattrr�r"�unbind)r�)r�r�r�r%�s

zBinding.unbind)r�r�r�r#r%r�r�r�)r�r�r"�sr"�propertyzGObject.Property�Property�Signal�SignalOverride)rr
rrrrrrrrrrrrrrrrrrr r!r"r#r$)*r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrN)rPrQrRrSrTrUrVrWrXrYrZr[���)r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnror*)r�r�r�r�)r�r�r�r�r�r*)r�r�r�r�r�r�r�r*)N)N)N)lr�r�collectionsrZgi.overridesrZ	gi.modulerrZ
gi.repositoryrrrZpropertyhelperrZsignalhelperr	�moduleZget_introspection_moduler��__all__rZoptionr��getattr�globals�append�catch_warnings�simplefilter�split�new_namer�rvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Z
ParamFlagsZREADABLEZWRITABLEr�r�ZSignalFlagsrtrrrsrqr
r�r�r�rur�r�r�r�r�r�r�r�r�r�r�r�r�r��objectr�r�r�r�r�r�r�r�r�rrr"r'r(r)r&r�r�r�r��<module>s�















































overrides/__pycache__/GObject.cpython-36.pyc000064400000044503151734360770014744 0ustar003

��<_�e�*@s~ddlZddlZddlmZddlZddlZddlmZmZddl	m
Z
ddlmZddlmZ
ddlmZddlmZejjd	�ZgZdd
lmZeZx6d�D].Zee
e�e�e<ed	ed$e�eje�q�WxXd�D]PZej��"ejdOe�ee
e�e�e<WdQRXed	ed$e�eje��q�WxHd�D]@Zejd\d]�d�Zee
e�e�e<ed	ed$e�eje��q0WxHd�D]@Zejd\d]�d�Zee
e�e�e<ed	ed$e�eje��qzWejdp�Z ejdq�Z!ejdr�Z"ejds�Z#ejdt�Z$ejdu�Z%ejdv�Z&ejdw�Z'ejdx�Z(ejdy�Z)ejdz�Z*ejd{�Z+ejd|�Z,ejd}�Z-ejd~�Z.ejd�Z/ejd��Z0ejd��Z1ejd��Z2ejd��Z3ejd	�Z4ejd��Z5ejd��Z6ejd��Z7ejd��Z8ejd��Z9ej:j;Z<e'Z=ed�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�g7Zx8d�D]0Zee
e�e�e<ed	ed$e�eje��qWxJd�D]BZejd\d]�d�Zeej>e�e�e<ed	ed�e�eje��qNWej>j?ej>j@BZAejd��eBej>d���r�ed	d�d��xLd�D]DZejd\d]��dZeejCe�e�e<ed	ed�e�eje��q�WejDZDejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLejMZMed�d|d}drd	d�d�d�d�d�g
7ZejNZNejOZOejPZPejQZQe
jRZRejSZSed�d�d�d�d�d�g7ZGd�dńd�ej:�Z:ee:�Z:ejdŃd�dDŽZejdǃd�dɄZTejdɃd�d˄ZUd�d̈́ZVejd̓d�dτZWejdσd�dфZXejdуed�d�d�d�d�d�d�g�ZY�dd�dڄZZejdڃGd�d܄d�e[�Z\d�dބZ]ejdރd�d�Z^ejd�d�d�Z_ejd��dd�d�Z`ejd��dd�d�Zaejd�ejbZbejcZced�d�g7ZGd�d�d�e[�Zdd�d�ZeGd�d�d�ejf�Zfeef�ZfefZHed�d	g7ZGd�d�d�ejg�Zgeeg�Zgejd�e
jhZhejiZiejjZjehZked	d�d�ed�d�d�d�g7ZdS(�N)�
namedtuple)�override�deprecated_attr)�GLib)�PyGIDeprecationWarning)�_propertyhelper)�
_signalhelper)�_gi�GObject)�_option�markup_escape_text�get_application_name�set_application_name�get_prgname�set_prgname�
main_depth�filename_display_basename�filename_display_name�filename_from_utf8�uri_list_extract_uris�MainLoop�MainContext�main_context_default�
source_remove�Source�Idle�Timeout�PollFD�idle_add�timeout_add�timeout_add_seconds�io_add_watch�child_watch_add�get_current_time�spawn_asynczGLib.�PRIORITY_DEFAULT�PRIORITY_DEFAULT_IDLE�
PRIORITY_HIGH�PRIORITY_HIGH_IDLE�PRIORITY_LOW�IO_IN�IO_OUT�IO_PRI�IO_ERR�IO_HUP�IO_NVAL�IO_STATUS_ERROR�IO_STATUS_NORMAL�
IO_STATUS_EOF�IO_STATUS_AGAIN�IO_FLAG_APPEND�IO_FLAG_NONBLOCK�IO_FLAG_IS_READABLE�IO_FLAG_IS_WRITEABLE�IO_FLAG_IS_SEEKABLE�IO_FLAG_MASK�IO_FLAG_GET_MASK�IO_FLAG_SET_MASK�SPAWN_LEAVE_DESCRIPTORS_OPEN�SPAWN_DO_NOT_REAP_CHILD�SPAWN_SEARCH_PATH�SPAWN_STDOUT_TO_DEV_NULL�SPAWN_STDERR_TO_DEV_NULL�SPAWN_CHILD_INHERITS_STDIN�SPAWN_FILE_AND_ARGV_ZERO�OPTION_FLAG_HIDDEN�OPTION_FLAG_IN_MAIN�OPTION_FLAG_REVERSE�OPTION_FLAG_NO_ARG�OPTION_FLAG_FILENAME�OPTION_FLAG_OPTIONAL_ARG�OPTION_FLAG_NOALIAS�OPTION_ERROR_UNKNOWN_OPTION�OPTION_ERROR_BAD_VALUE�OPTION_ERROR_FAILED�OPTION_REMAINING�glib_version�ignore�	G_MININT8�	G_MAXINT8�
G_MAXUINT8�
G_MININT16�
G_MAXINT16�G_MAXUINT16�
G_MININT32�
G_MAXINT32�G_MAXUINT32�
G_MININT64�
G_MAXINT64�G_MAXUINT64�_��
G_MINFLOAT�
G_MAXFLOAT�G_MINDOUBLE�G_MAXDOUBLE�
G_MINSHORT�
G_MAXSHORT�G_MAXUSHORT�G_MININT�G_MAXINT�	G_MAXUINT�	G_MINLONG�	G_MAXLONG�
G_MAXULONG�	G_MAXSIZE�
G_MINSSIZE�
G_MAXSSIZE�G_MINOFFSET�G_MAXOFFSETZinvalid�void�
GInterfaceZgcharZgucharZgbooleanZgintZguintZglongZgulongZgint64Zguint64�GEnum�GFlagsZgfloatZgdoubleZ
gchararrayZgpointer�GBoxedZGParamZPyObject�GTypeZGStrvZGVariantZGString�TYPE_INVALID�	TYPE_NONE�TYPE_INTERFACE�	TYPE_CHAR�
TYPE_UCHAR�TYPE_BOOLEAN�TYPE_INT�	TYPE_UINT�	TYPE_LONG�
TYPE_ULONG�
TYPE_INT64�TYPE_UINT64�	TYPE_ENUM�
TYPE_FLAGS�
TYPE_FLOAT�TYPE_DOUBLE�TYPE_STRING�TYPE_POINTER�
TYPE_BOXED�
TYPE_PARAM�TYPE_OBJECT�
TYPE_PYOBJECT�
TYPE_GTYPE�	TYPE_STRV�TYPE_VARIANT�TYPE_GSTRING�TYPE_UNICHAR�
TYPE_VALUE�Pid�GError�OptionGroup�
OptionContext�PARAM_CONSTRUCT�PARAM_CONSTRUCT_ONLY�PARAM_LAX_VALIDATION�PARAM_READABLE�PARAM_WRITABLEzGObject.ParamFlags.�PARAM_READWRITEZ	READWRITEz)GObject.ParamFlags.READWRITE (glib 2.42+)�
SIGNAL_ACTION�SIGNAL_DETAILED�SIGNAL_NO_HOOKS�SIGNAL_NO_RECURSE�SIGNAL_RUN_CLEANUP�SIGNAL_RUN_FIRST�SIGNAL_RUN_LASTzGObject.SignalFlags.�GObjectWeakRef�
GParamSpec�GPointer�Warning�features�list_properties�new�pygobject_version�threads_init�
type_registercsNeZdZddd�Z�fdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	�Z
S)�ValueNcCs4tjj|�|dk	r0|j|�|dk	r0|j|�dS)N)�
GObjectModuler��__init__Zinit�	set_value)�selfZ
value_type�py_value�r��/usr/lib64/python3.6/GObject.pyr��s

zValue.__init__cs*|jr|jtkr|j�tt|�j�dS)N)Z_free_on_dealloc�g_typervZunset�superr��__del__)r�)�	__class__r�r�r��sz
Value.__del__cCstj||�dS)N)r	Z_gvalue_set)r�Zboxedr�r�r��	set_boxed�szValue.set_boxedcCs
tj|�S)N)r	Z_gvalue_get)r�r�r�r��	get_boxed�szValue.get_boxedcCs�|j}|tjkrtd���nb|tkr2|j|��nL|tkrH|j|��n6|tkr^|j	|��n |t
krt|j|��n
|tkr�|j
|��n�|tkr�|j|��n�|tkr�|j|��n�|tkr�|j|��n�|tkr�|j|��n�|tkr�|j|��n�|tk�r|j|��nn|tk�r�t|t��r0t|�}nNtjdk�rjt|t��rT|j d�}nt!d|t"|�f��nt!d|t"|�f��|j#|�n�|t$k�r�|j%|�n�|j&t'��r�|j(|�n�|j&t)��r�|j*|�n�|j&t+��r�|j,|�n�|t-k�r�|j.|�n�|j&t/��r|j0|�nh|t1k�r0|j
t2|��nN|t3k�rF|j4|�n8|t5k�r\|j6|�n"|t7k�rr|j,|�ntd|��dS)	Nz+GObject.Value needs to be initialized first�rzUTF-8z'Expected string or unicode but got %s%szExpected string but got %s%szUnknown value type %s)r�r)8r�r	rv�	TypeErrorr{Zset_booleanryZset_charrzZ	set_ucharr|Zset_intr}Zset_uintr~Zset_longrZ	set_ulongr�Z	set_int64r�Z
set_uint64r�Z	set_floatr�Z
set_doubler��
isinstance�str�sys�version_infoZunicode�encode�
ValueError�typeZ
set_stringr�Z	set_param�is_ar�Zset_enumr�Z	set_flagsr�r�r�Zset_pointerr�Z
set_objectr��intr�Z	set_gtyper�Zset_variantr�)r�r��gtyper�r�r�r��sr









zValue.set_valuecCs�|j}|tkr|j�S|tkr&|j�S|tkr6|j�S|tkrF|j�S|t	krV|j
�S|tkrf|j�S|t
krv|j�S|tkr�|j�S|tkr�|j�S|tkr�|j�S|tkr�|j�S|tkr�|j�S|tk�r�|j�S|jt��r�|j�S|jt��r|j�S|jt ��r|j!�S|t"k�r&|j#�S|jt$��r:|j%�S|t&k�rL|j
�S|t'k�r^|j(�S|t)k�rp|j*�S|t+k�r|ndSdS)N),r�r{Zget_booleanryZget_charrzZ	get_ucharr|Zget_intr}Zget_uintr~Zget_longrZ	get_ulongr�Z	get_int64r�Z
get_uint64r�Z	get_floatr�Z
get_doubler�Z
get_stringr�Z	get_paramr�r�Zget_enumr�Z	get_flagsr�r�r�Zget_pointerr�Z
get_objectr�r�Z	get_gtyper�Zget_variantr�)r�r�r�r�r��	get_value-s\





zValue.get_valuecCsd|jj|j�fS)Nz<Value (%s) %s>)r��namer�)r�r�r�r��__repr___szValue.__repr__)NN)�__name__�
__module__�__qualname__r�r�r�r�r�r�r��
__classcell__r�r�)r�r�r��s
A2r�cCs"tj|�}|tkrtd|��|S)Nzunknown type name: %s)r��type_from_namerv�RuntimeError)r��type_r�r�r�r�gs
r�cCstj|�}|tkrtd��|S)Nzno parent for type)r��type_parentrvr�)r��parentr�r�r�r�qs
r�cCs4t|d�r|j}|j�r0|j�r0td|��dS)N�	__gtype__z1type must be instantiable or an interface, got %s)�hasattrr�Zis_instantiatableZis_interfacer�)r�r�r�r�� _validate_type_for_signal_method{s
r�cCst|�tj|�S)N)r�r��signal_list_ids)r�r�r�r�r��sr�cCst|�}tdd�|D��S)Ncss|]}tj|�VqdS)N)r��signal_name)�.0�ir�r�r��	<genexpr>�sz$signal_list_names.<locals>.<genexpr>)r��tuple)r�Zidsr�r�r��signal_list_names�sr�cCst|�tj||�S)N)r�r��
signal_lookup)r�r�r�r�r�r��sr��SignalQuery�	signal_idr��itype�signal_flags�return_type�param_typescCsX|dk	rt||�}tj|�}|dkr(dS|jdkr6dSt|j|j|j|j|jt	|j
��S)Nr)r�r��signal_queryr�r�r�r�r�r�r�r�)Z
id_or_namer��resr�r�r�r��s


r�c@s$eZdZdd�Zdd�Zdd�ZdS)�_HandlerBlockManagercCs||_||_dS)N)�obj�
handler_id)r�r�r�r�r�r�r��sz_HandlerBlockManager.__init__cCsdS)Nr�)r�r�r�r��	__enter__�sz_HandlerBlockManager.__enter__cCstj|j|j�dS)N)r��signal_handler_unblockr�r�)r��exc_type�	exc_value�	tracebackr�r�r��__exit__�sz_HandlerBlockManager.__exit__N)r�r�r�r�r�r�r�r�r�r�r��sr�cCstj||�t||�S)a�Blocks the signal handler from being invoked until
    handler_unblock() is called.

    :param GObject.Object obj:
        Object instance to block handlers for.
    :param int handler_id:
        Id of signal to block.
    :returns:
        A context manager which optionally can be used to
        automatically unblock the handler:

    .. code-block:: python

        with GObject.signal_handler_block(obj, id):
            pass
    )r��signal_handler_blockr�)r�r�r�r�r�r��sr�cCs4tj|||�\}}}|r ||fStd||f��dS)a%Parse a detailed signal name into (signal_id, detail).

    :param str detailed_signal:
        Signal name which can include detail.
        For example: "notify:prop_name"
    :returns:
        Tuple of (signal_id, detail)
    :raises ValueError:
        If the given signal is unknown.
    z%s: unknown signal name: %sN)r��signal_parse_namer�)�detailed_signalr�Zforce_detail_quarkr�r��detailr�r�r�r��s
r�cCs t||d�\}}tj||�dS)NT)r�r�Zsignal_remove_emission_hook)r�r�Zhook_idr�r�r�r�r��remove_emission_hook�sr�cCsd|fS)NFr�)�ihint�return_accu�handler_return�	user_datar�r�r��signal_accumulator_first_winssr�cCs
||fS)Nr�)r�r�r�r�r�r�r��signal_accumulator_true_handledsr��add_emission_hook�
signal_newc@s$eZdZdd�Zdd�Zdd�ZdS)�_FreezeNotifyManagercCs
||_dS)N)r�)r�r�r�r�r�r�sz_FreezeNotifyManager.__init__cCsdS)Nr�)r�r�r�r�r�sz_FreezeNotifyManager.__enter__cCs|jj�dS)N)r�Zthaw_notify)r�r�r�r�r�r�r�r�sz_FreezeNotifyManager.__exit__N)r�r�r�r�r�r�r�r�r�r�r�sr�cstjj���fdd��}|S)Ncs
�||�S)Nr�)�args�kwargs)�funcr�r��meth'sz_signalmethod.<locals>.meth)�giZ	overrides�wraps)r�rr�)r�r��
_signalmethod#srcsjeZdZdd�Zdd�ZeZeZeZeZeZ	eZ
eZeZeZ
eZeZeZeZeZeZejjZejjZejjZejjZeZeZeZeZejj Z ejj!Z!ejj"Z"ejj#Z#ejj$Z$ejj%Z%ejj&Z&ejj'Z'ejj(Z(ejj)Z)ejj*Z*ejj+Z+ejj,Z,ejj-Z-ejj.Z.ejj/Z/ejj0Z0�fdd�Z1dd�Z2e3Z4e5ej6�Z7e5ej8�Z9e5ej8�Z:e5ej;�Z<e5ej=�Z>d	d
�Z?e?Z@�ZAS)�ObjectcOstd��dS)Nz%This method is currently unsupported.)r�)r�r��kargsr�r�r��_unsupported_method.szObject._unsupported_methodcOstd��dS)NzIData access methods are unsupported. Use normal Python attributes instead)r�)r�r�rr�r�r��_unsupported_data_method1szObject._unsupported_data_methodcstt|�j�t|�S)a�Freezes the object's property-changed notification queue.

        :returns:
            A context manager which optionally can be used to
            automatically thaw notifications.

        This will freeze the object so that "notify" signals are blocked until
        the thaw_notify() method is called.

        .. code-block:: python

            with obj.freeze_notify():
                pass
        )r�r�
freeze_notifyr�)r�)r�r�r�riszObject.freeze_notifycst|jdd�}|tjj@r"tjj}ntjj}|tjj@r^t	|�dkrPt
d|g���fdd�}n�}||||f|��S)aConnect a callback to the given signal with optional user data.

        :param str detailed_signal:
            A detailed signal to connect to.
        :param callable handler:
            Callback handler to connect to the signal.
        :param *data:
            Variable data which is passed through to the signal handler.
        :param GObject.ConnectFlags connect_flags:
            Flags used for connection options.
        :returns:
            A signal id which can be used with disconnect.
        Z
connect_flagsrr]zWUsing GObject.ConnectFlags.SWAPPED requires exactly one argument for user data, got: %scs(t|�}|j�}||g}�|f|��S)N)�list�pop)r�r�Zswap)�handlerr�r��new_handler�s
z(Object.connect_data.<locals>.new_handler)�getr�ZConnectFlagsZAFTERr	r
�
connect_after�connectZSWAPPED�lenr�)r�r�r�datar��flagsZconnect_funcrr�)rr��connect_data{s

zObject.connect_datacCstj|jjtdd�|j|�S)z-Deprecated, please use stop_emission_by_name.�)�
stacklevel)�warnings�warn�
stop_emission�__doc__r�stop_emission_by_name)r�r�r�r�r�r�szObject.stop_emission)Br�r�r�rr�get_dataZ	get_qdata�set_dataZ
steal_dataZsteal_qdataZreplace_dataZ
replace_qdataZbind_property_fullZcompat_controlZinterface_find_propertyZinterface_install_propertyZinterface_list_propertiesZnotify_by_pspecZrun_disposeZ
watch_closurer�r�refZ_refZref_sinkZ	_ref_sinkZunrefZ_unrefZforce_floatingZ_force_floatingr	r
Zget_propertyZget_propertiesZset_propertyZset_propertiesZ
bind_propertyrrZconnect_objectZconnect_object_afterZdisconnect_by_funcZhandler_block_by_funcZhandler_unblock_by_func�emit�chainZweak_ref�__copy__�__deepcopy__rrr�Z
handler_blockrr�Zhandler_unblockZsignal_handler_disconnectZ
disconnectZhandler_disconnectZsignal_handler_is_connectedZhandler_is_connectedZsignal_stop_emission_by_namerrZemit_stop_by_namer�r�r�)r�r�r-sh)




rcs$eZdZdd�Z�fdd�Z�ZS)�BindingcCstjdtdd�|S)Nz�Using parentheses (binding()) to retrieve the Binding object is no longer needed because the binding is returned directly from "bind_property.r)r)rrr)r�r�r�r��__call__�s
zBinding.__call__cs2t|d�rtd��nt|dd�tt|�j�dS)NZ_unboundz$binding has already been cleared outT)r�r��setattrr�r"�unbind)r�)r�r�r�r%�s

zBinding.unbind)r�r�r�r#r%r�r�r�)r�r�r"�sr"�propertyzGObject.Property�Property�Signal�SignalOverride)rr
rrrrrrrrrrrrrrrrrrr r!r"r#r$)*r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrN)rPrQrRrSrTrUrVrWrXrYrZr[���)r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnror*)r�r�r�r�)r�r�r�r�r�r*)r�r�r�r�r�r�r�r*)N)N)N)lr�r�collectionsrZgi.overridesrZ	gi.modulerrZ
gi.repositoryrrrZpropertyhelperrZsignalhelperr	�moduleZget_introspection_moduler��__all__rZoptionr��getattr�globals�append�catch_warnings�simplefilter�split�new_namer�rvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Z
ParamFlagsZREADABLEZWRITABLEr�r�ZSignalFlagsrtrrrsrqr
r�r�r�rur�r�r�r�r�r�r�r�r�r�r�r�r�r��objectr�r�r�r�r�r�r�r�r�rrr"r'r(r)r&r�r�r�r��<module>s�















































overrides/__pycache__/__init__.cpython-36.pyc000064400000024236151734360770015167 0ustar003

��<_�1�@s�ddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZmZddlm
Z
e
ee�ZiZdd�ZGd	d
�d
ej�ZGdd�de�Zd
d�Zdd�ZeZdd�Zdd�Ze�iiedfdd�Zddd�ZdS)�N)�
get_loader)�PyGIDeprecationWarning)�CallableInfo)�	TYPE_NONE�TYPE_INVALID)�extend_pathcs�fdd�}|S)Ncs�j|_�j|_|S)N)�__name__�
__module__)�wrapper)�wrapped�� /usr/lib64/python3.6/__init__.py�assignszwraps.<locals>.assignr)rrr)rr
�wrapssrcs8eZdZdZ�fdd�Zdd�Zdd�Zdd	�Z�ZS)
�OverridesProxyModulez7Wraps a introspection module and contains all overridescstt|�j|j�||_dS)N)�superr�__init__r�_introspection_module)�self�introspection_module)�	__class__rr
r!s
zOverridesProxyModule.__init__cCst|j|�S)N)�getattrr)r�namerrr
�__getattr__&sz OverridesProxyModule.__getattr__cCs6tt|j��}|j|jj��|jt|j��t|�S)N)�set�dirr�update�__dict__�keysr�sorted)r�resultrrr
�__dir__)szOverridesProxyModule.__dir__cCsdt|�j|jfS)Nz<%s %r>)�typerr)rrrr
�__repr__/szOverridesProxyModule.__repr__)	rr	�__qualname__�__doc__rrr!r#�
__classcell__rr)rr
rs
rc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�_DeprecatedAttributez�A deprecation descriptor for OverridesProxyModule subclasses.

    Emits a PyGIDeprecationWarning on every access and tries to act as a
    normal instance attribute (can be replaced and deleted).
    cCs$||_||_td|||f�|_dS)Nz#%s.%s is deprecated; use %s instead)�_attr�_valuer�_warning)r�	namespace�attr�value�replacementrrr
r:s
z_DeprecatedAttribute.__init__cCs(|dkrt|j��tj|jdd�|jS)N�)�
stacklevel)�AttributeErrorr(�warnings�warnr*r))r�instance�ownerrrr
�__get__As
z_DeprecatedAttribute.__get__cCs$|j}tt|�|�t|||�dS)N)r(�delattrr"�setattr)rr4r-r,rrr
�__set__Gsz_DeprecatedAttribute.__set__cCstt|�|j�dS)N)r7r"r()rr4rrr
�
__delete__Msz_DeprecatedAttribute.__delete__N)rr	r$r%rr6r9r:rrrr
r'3s
r'cCs�|jjdd�d}d|}|tjk}tjj|�}t|dtfi�}||�}|tj|<ddlm}t|d�snt	�|||<zHd|}yt
|�}	Wntk
r�d	}	YnX|	d	kr�|Stj
|�}
Wd	||=tj|=|r�|tj|<X||_g}t|
d
�r�|
j}xH|D]@}yt|
|�}
Wnttfk
�r.�w�YnXt|||
��q�Wxptj|g�D]`\}}yt||�}Wn"tk
�r�t	d|��YnXt||�t||||�}t|||��qPW|S)
z�Loads overrides for an introspection module.

    Either returns the same module again in case there are no overrides or a
    proxy module including overrides. Doesn't cache the result.
    �.�zgi.repository.ZProxyModuler/)�modulesrz
gi.overrides.N�__all__z1%s was set deprecated but wasn't added to __all__���)r�rsplit�sysr=�getr"rZimporter�hasattr�AssertionErrorrr1�	importlib�
import_moduleZ_overrides_moduler>r�	TypeErrorr8�_deprecated_attrs�popr7r')rr+Z
module_keyZhas_oldZ
old_moduleZ
proxy_type�proxyr=Zoverride_package_nameZoverride_loaderZoverride_modZoverride_all�var�itemr,r.r-�deprecated_attrrrr
�load_overridesRsX






rNcst|t�r>|}|jjdd�d}tjd|��fdd�}|St|tj�rXtd|��n�yt	|d�}Wn"t
k
r�td|j��YnX|jjd	�s�t
d
||jf��|j�}|tks�t�|tkr�||_|jjdd�d
}tjd|�t�|j|�|SdS)aDecorator for registering an override.

    Other than objects added to __all__, these can get referenced in the same
    override module via the gi.repository module (get_parent_for_object() does
    for example), so they have to be added to the module immediately.
    r;r<zgi.repository.cst�|j|�|S)N)r8r)�func)�modulerr
r
�szoverride.<locals>.wrapperz"func must be a gi function, got %sZ__info__zKCan not override a type %s, which is not in a gobject introspection typelibzgi.overrideszUYou have tried override outside of the overrides module. This is not allowed (%s, %s)Nr?r?)�
isinstancerr	r@rAr=�types�FunctionTyperGrr1r�
startswith�KeyErrorZ
get_g_typerrDrZpytyper8)Ztype_rOr+r
�infoZg_typer)rPr
�override�s4
rWcst����fdd��}|S)z7Decorator for marking methods and classes as deprecatedcs$tjd�j�ftdd��||�S)Nz %s is deprecated; use %s insteadr/)r0)r2r3rr)�args�kwargs)�fnr.rr
r�s
zdeprecated.<locals>.wrapped)r)rZr.rr)rZr.r
�
deprecated�sr[cCstj|g�j||f�dS)a:Marks a module level attribute as deprecated. Accessing it will emit
    a PyGIDeprecationWarning warning.

    e.g. for ``deprecated_attr("GObject", "STATUS_FOO", "GLib.Status.FOO")``
    accessing GObject.STATUS_FOO will emit:

        "GObject.STATUS_FOO is deprecated; use GLib.Status.FOO instead"

    :param str namespace:
        The namespace of the override this is called in.
    :param str namespace:
        The attribute name (which gets added to __all__).
    :param str replacement:
        The replacement text which will be included in the warning.
    N)rH�
setdefault�append)r+r,r.rrr
rM�srMr/cs�������fdd�}|S)aWrapper for deprecating GObject based __init__ methods which specify
    defaults already available or non-standard defaults.

    :param callable super_init_func:
        Initializer to wrap.
    :param list arg_names:
        Ordered argument name list.
    :param list ignore:
        List of argument names to ignore when calling the wrapped function.
        This is useful for function which take a non-standard keyword that is munged elsewhere.
    :param dict deprecated_aliases:
        Dictionary mapping a keyword alias to the actual g_object_newv keyword.
    :param dict deprecated_defaults:
        Dictionary of non-standard defaults that will be used when the
        keyword is not explicitly passed.
    :param Exception category:
        Exception category of the error.
    :param int stacklevel:
        Stack level for the deprecation passed on to warnings.warn
    :returns: Wrapped version of ``super_init_func`` which gives a deprecation
        warning when non-keyword args or aliases are used.
    :rtype: callable
    c	sZ|r:tjddj�dt|�����d�tt�|��}ni}|j|�g}x4�j�D](\}}||krV|j|�||<|j	|�qVW|r�tjddj�fdd�t
|�D��djt
|��f��d�g}x2�j�D]&\}}||krΈ|||<|j	|�q�W|�r*tjddj�fd	d�t
|�D����d�x"�D]}||k�r0|j|��q0W�|f|�S)
z�Initializer for a GObject based classes with support for property
        sets through the use of explicit keyword arguments.
        z�Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "%s" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsz, N)r0z�The keyword(s) "%s" have been deprecated in favor of "%s" respectively. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsc3s|]}�|VqdS)Nr)�.0�k)�deprecated_aliasesrr
�	<genexpr>/sz4deprecated_init.<locals>.new_init.<locals>.<genexpr>z�Initializer is relying on deprecated non-standard defaults. Please update to explicitly use: %s See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsc3s|]}d|�|fVqdS)z%s=%sNr)r^r_)�deprecated_defaultsrr
ra>s)r2r3�join�len�dict�zipr�itemsrIr]r)	rrXrYZ
new_kwargsZaliases_used�key�aliasZ
defaults_usedr-)�	arg_names�categoryr`rb�ignorer0�super_init_funcrr
�new_inits<





z!deprecated_init.<locals>.new_initr)rmrjrlr`rbrkr0rnr)rjrkr`rbrlr0rmr
�deprecated_init�s3rocst������fdd��}|S)aTranslate method's return value for stripping off success flag.

    There are a lot of methods which return a "success" boolean and have
    several out arguments. Translate such a method to return the out arguments
    on success and None on failure.
    csL�||�}|dr4t|�dkr&|dS|dd�Sn�rD��p@d���SdS)Nrr/r<zcall failed)rd)rXrY�ret)�exc_str�exc_type�fail_ret�methodrr
rRs
z%strip_boolean_result.<locals>.wrapped)r)rtrrrqrsrr)rqrrrsrtr
�strip_boolean_resultKsru)NNN)rRr2rErAZpkgutilrZgirZgi._girZ
gi._constantsrrr�__path__rrHr�
ModuleTyper�objectr'rNrWZoverridefuncr[rM�tuplerorurrrr
�<module>s.
V-
Qoverrides/__pycache__/GIMarshallingTests.cpython-36.pyc000064400000003323151734360770017126 0ustar003

��<_��@s~ddlmZddlmZed�ZgZdZejd�Gdd�dej�Zee�Zejd�Gdd	�d	ej	�Z	ee	�Z	ejd	�d
S)�)�override)�get_introspection_module�GIMarshallingTests��OVERRIDES_CONSTANTc@s$eZdZdd�Zdd�Zdd�ZdS)�OverridesStructcCstjj|�S)N)rr�__new__)�cls�long_�r�*/usr/lib64/python3.6/GIMarshallingTests.pyr"szOverridesStruct.__new__cCstjj|�||_dS)N)rr�__init__r
)�selfr
rrrr
%szOverridesStruct.__init__cCstjj|�dS)Nr)rr�method)rrrrr)szOverridesStruct.methodN)�__name__�
__module__�__qualname__rr
rrrrrr src@s0eZdZdd�Zdd�Zedd��Zdd�Zd	S)
�OverridesObjectcCstjj|�S)N)rrr)r	r
rrrr3szOverridesObject.__new__cCstjj|�dS)N)rrr
)rr
rrrr
6szOverridesObject.__init__cCstjj�}|S)N)rr�new)r	r
rrrrr;s
zOverridesObject.newcCstjj|�dS)zOverridden doc string.r)rrr)rrrrrBszOverridesObject.methodN)rrrrr
�classmethodrrrrrrr1srN)
Z	overridesr�modulerr�__all__r�appendrrrrrr�<module>s


overrides/__pycache__/__init__.cpython-36.opt-1.pyc000064400000024155151734360770016126 0ustar003

��<_�1�@s�ddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZmZddlm
Z
e
ee�ZiZdd�ZGd	d
�d
ej�ZGdd�de�Zd
d�Zdd�ZeZdd�Zdd�Ze�iiedfdd�Zddd�ZdS)�N)�
get_loader)�PyGIDeprecationWarning)�CallableInfo)�	TYPE_NONE�TYPE_INVALID)�extend_pathcs�fdd�}|S)Ncs�j|_�j|_|S)N)�__name__�
__module__)�wrapper)�wrapped�� /usr/lib64/python3.6/__init__.py�assignszwraps.<locals>.assignr)rrr)rr
�wrapssrcs8eZdZdZ�fdd�Zdd�Zdd�Zdd	�Z�ZS)
�OverridesProxyModulez7Wraps a introspection module and contains all overridescstt|�j|j�||_dS)N)�superr�__init__r�_introspection_module)�self�introspection_module)�	__class__rr
r!s
zOverridesProxyModule.__init__cCst|j|�S)N)�getattrr)r�namerrr
�__getattr__&sz OverridesProxyModule.__getattr__cCs6tt|j��}|j|jj��|jt|j��t|�S)N)�set�dirr�update�__dict__�keysr�sorted)r�resultrrr
�__dir__)szOverridesProxyModule.__dir__cCsdt|�j|jfS)Nz<%s %r>)�typerr)rrrr
�__repr__/szOverridesProxyModule.__repr__)	rr	�__qualname__�__doc__rrr!r#�
__classcell__rr)rr
rs
rc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�_DeprecatedAttributez�A deprecation descriptor for OverridesProxyModule subclasses.

    Emits a PyGIDeprecationWarning on every access and tries to act as a
    normal instance attribute (can be replaced and deleted).
    cCs$||_||_td|||f�|_dS)Nz#%s.%s is deprecated; use %s instead)�_attr�_valuer�_warning)r�	namespace�attr�value�replacementrrr
r:s
z_DeprecatedAttribute.__init__cCs(|dkrt|j��tj|jdd�|jS)N�)�
stacklevel)�AttributeErrorr(�warnings�warnr*r))r�instance�ownerrrr
�__get__As
z_DeprecatedAttribute.__get__cCs$|j}tt|�|�t|||�dS)N)r(�delattrr"�setattr)rr4r-r,rrr
�__set__Gsz_DeprecatedAttribute.__set__cCstt|�|j�dS)N)r7r"r()rr4rrr
�
__delete__Msz_DeprecatedAttribute.__delete__N)rr	r$r%rr6r9r:rrrr
r'3s
r'cCs�|jjdd�d}d|}|tjk}tjj|�}t|dtfi�}||�}|tj|<ddlm}|||<zHd|}yt|�}	Wnt	k
r�d}	YnX|	dkr�|St
j|�}
Wd||=tj|=|r�|tj|<X||_g}t
|
d	�r�|
j}xD|D]<}yt|
|�}
Wnt	tfk
�rw�YnXt|||
�q�Wxptj|g�D]`\}}yt||�}Wn"t	k
�rvtd
|��YnXt||�t||||�}t|||��q>W|S)z�Loads overrides for an introspection module.

    Either returns the same module again in case there are no overrides or a
    proxy module including overrides. Doesn't cache the result.
    �.�zgi.repository.ZProxyModuler/)�modulesz
gi.overrides.N�__all__z1%s was set deprecated but wasn't added to __all__���)r�rsplit�sysr=�getr"rZimporterrr1�	importlib�
import_moduleZ_overrides_module�hasattrr>r�	TypeErrorr8�_deprecated_attrs�pop�AssertionErrorr7r')rr+Z
module_keyZhas_oldZ
old_moduleZ
proxy_type�proxyr=Zoverride_package_nameZoverride_loaderZoverride_modZoverride_all�var�itemr,r.r-�deprecated_attrrrr
�load_overridesRsV





rNcs�t|t�r>|}|jjdd�d}tjd|��fdd�}|St|tj�rXtd|��n�yt	|d�}Wn"t
k
r�td|j��YnX|jjd	�s�t
d
||jf��|j�}|tkr�||_|jjdd�d
}tjd|�t�|j|�|SdS)aDecorator for registering an override.

    Other than objects added to __all__, these can get referenced in the same
    override module via the gi.repository module (get_parent_for_object() does
    for example), so they have to be added to the module immediately.
    r;r<zgi.repository.cst�|j|�|S)N)r8r)�func)�modulerr
r
�szoverride.<locals>.wrapperz"func must be a gi function, got %sZ__info__zKCan not override a type %s, which is not in a gobject introspection typelibzgi.overrideszUYou have tried override outside of the overrides module. This is not allowed (%s, %s)Nr?r?)�
isinstancerr	r@rAr=�types�FunctionTyperFrr1r�
startswith�KeyErrorZ
get_g_typerZpytyper8)Ztype_rOr+r
�infoZg_typer)rPr
�override�s2
rWcst����fdd��}|S)z7Decorator for marking methods and classes as deprecatedcs$tjd�j�ftdd��||�S)Nz %s is deprecated; use %s insteadr/)r0)r2r3rr)�args�kwargs)�fnr.rr
r�s
zdeprecated.<locals>.wrapped)r)rZr.rr)rZr.r
�
deprecated�sr[cCstj|g�j||f�dS)a:Marks a module level attribute as deprecated. Accessing it will emit
    a PyGIDeprecationWarning warning.

    e.g. for ``deprecated_attr("GObject", "STATUS_FOO", "GLib.Status.FOO")``
    accessing GObject.STATUS_FOO will emit:

        "GObject.STATUS_FOO is deprecated; use GLib.Status.FOO instead"

    :param str namespace:
        The namespace of the override this is called in.
    :param str namespace:
        The attribute name (which gets added to __all__).
    :param str replacement:
        The replacement text which will be included in the warning.
    N)rG�
setdefault�append)r+r,r.rrr
rM�srMr/cs�������fdd�}|S)aWrapper for deprecating GObject based __init__ methods which specify
    defaults already available or non-standard defaults.

    :param callable super_init_func:
        Initializer to wrap.
    :param list arg_names:
        Ordered argument name list.
    :param list ignore:
        List of argument names to ignore when calling the wrapped function.
        This is useful for function which take a non-standard keyword that is munged elsewhere.
    :param dict deprecated_aliases:
        Dictionary mapping a keyword alias to the actual g_object_newv keyword.
    :param dict deprecated_defaults:
        Dictionary of non-standard defaults that will be used when the
        keyword is not explicitly passed.
    :param Exception category:
        Exception category of the error.
    :param int stacklevel:
        Stack level for the deprecation passed on to warnings.warn
    :returns: Wrapped version of ``super_init_func`` which gives a deprecation
        warning when non-keyword args or aliases are used.
    :rtype: callable
    c	sZ|r:tjddj�dt|�����d�tt�|��}ni}|j|�g}x4�j�D](\}}||krV|j|�||<|j	|�qVW|r�tjddj�fdd�t
|�D��djt
|��f��d�g}x2�j�D]&\}}||krΈ|||<|j	|�q�W|�r*tjddj�fd	d�t
|�D����d�x"�D]}||k�r0|j|��q0W�|f|�S)
z�Initializer for a GObject based classes with support for property
        sets through the use of explicit keyword arguments.
        z�Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "%s" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsz, N)r0z�The keyword(s) "%s" have been deprecated in favor of "%s" respectively. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsc3s|]}�|VqdS)Nr)�.0�k)�deprecated_aliasesrr
�	<genexpr>/sz4deprecated_init.<locals>.new_init.<locals>.<genexpr>z�Initializer is relying on deprecated non-standard defaults. Please update to explicitly use: %s See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsc3s|]}d|�|fVqdS)z%s=%sNr)r^r_)�deprecated_defaultsrr
ra>s)r2r3�join�len�dict�zipr�itemsrHr]r)	rrXrYZ
new_kwargsZaliases_used�key�aliasZ
defaults_usedr-)�	arg_names�categoryr`rb�ignorer0�super_init_funcrr
�new_inits<





z!deprecated_init.<locals>.new_initr)rmrjrlr`rbrkr0rnr)rjrkr`rbrlr0rmr
�deprecated_init�s3rocst������fdd��}|S)aTranslate method's return value for stripping off success flag.

    There are a lot of methods which return a "success" boolean and have
    several out arguments. Translate such a method to return the out arguments
    on success and None on failure.
    csL�||�}|dr4t|�dkr&|dS|dd�Sn�rD��p@d���SdS)Nrr/r<zcall failed)rd)rXrY�ret)�exc_str�exc_type�fail_ret�methodrr
rRs
z%strip_boolean_result.<locals>.wrapped)r)rtrrrqrsrr)rqrrrsrtr
�strip_boolean_resultKsru)NNN)rRr2rCrAZpkgutilrZgirZgi._girZ
gi._constantsrrr�__path__rrGr�
ModuleTyper�objectr'rNrWZoverridefuncr[rM�tuplerorurrrr
�<module>s.
V-
Qoverrides/__pycache__/Gtk.cpython-36.opt-1.pyc000064400000147014151734360770015114 0ustar003

��<_���@s�ddlZddlZddlZddlmZddlmZmZddlm	Z	m
Z
mZddlm
Z
ddlmZejdkrpeZneZe
d	�ZgZejd
kr�dZejee�Gdd
�d
e�Zejd
�dd�Zejd�dd�Zejd�dd�ZGdd�dej�Ze	e�Zejd�Gdd�dej e�Z e	e �Z ejd�Gdd�dej!�Z!e	e!�Z!ejd�ejd�k�r�Gdd�dej"�Z"e	e"�Z"ejd�Gdd�dej#�Z#e	e#�Z#ejd�Gdd �d ej$�Z$e	e$�Z$ejd �Gd!d"�d"ej%�Z%e	e%�Z%ejd"�Gd#d$�d$ej&e �Z&e	e&�Z&ejd$�Gd%d&�d&ej'�Z'e	e'�Z'ejd&�Gd'd(�d(ej(�Z(e	e(�Z(ejd(�Gd)d*�d*ej)�Z)e	e)�Z)ejd*�Gd+d,�d,ej*�Z*e	e*�Z*ejd,�Gd-d.�d.ej+�Z+e	e+�Z+ejd.�Gd/d0�d0ej,e �Z,e	e,�Z,ejd0�Gd1d2�d2ej-e,�Z-e	e-�Z-ejd2�ejd�k�r@Gd3d4�d4ej.�Z.e	e.�Z.ejd4�Gd5d6�d6ej/�Z/e	e/�Z/ejd6�ejd�k�r�Gd7d8�d8ej0�Z0e	e0�Z0ejd8�Gd9d:�d:ej1�Z1e	e1�Z1ejd:�Gd;d<�d<ej2�Z2e	e2�Z2ejd<�Gd=d>�d>ej3�Z3e	e3�Z3ejd>�Gd?d@�d@ej4�Z4e	e4�Z4ejd@�GdAdB�dBej5�Z5e	e5�Z5ejdB�GdCdD�dDej6�Z6e	e6�Z6ejdD�GdEdF�dFej7�Z7e	e7�Z7ejdF�GdGdH�dHej8�Z8e	e8�Z8ejdH�GdIdJ�dJej9�Z9e	e9�Z9ejdJ�GdKdL�dLej:�Z:e	e:�Z:ejdL�GdMdN�dNej;e8e9�Z;e	e;�Z;ejdN�GdOdP�dPe<�Z=ejdP�GdQdR�dRe<�Z>ejdR�GdSdT�dTej?�Z?e	e?�Z?ejdT�GdUdV�dVej@e8e9�Z@e	e@�Z@ejdV�GdWdX�dXejAe �ZAe	eA�ZAejdX�GdYdZ�dZejB�ZBe	eB�ZBejdZ�Gd[d\�d\ejC�ZCe	eC�ZCejd\�Gd]d^�d^ejDe �ZDe	eD�ZDejd^�Gd_d`�d`ejE�ZEe	eE�ZEejd`�Gdadb�dbejF�ZFe	eF�ZFejdb�Gdcdd�ddejG�ZGe	eG�ZGejdd�ejd�k�r�Gdedf�dfejHe �ZHe	eH�ZHejdf�Gdgdh�dhejI�ZIe	eI�ZIejdh�ejd�k�rNGdidj�djejJ�ZJe	eJ�ZJejdj�Gdkdl�dlejK�ZKe	eK�ZKejdl�Gdmdn�dnejL�ZLe	eL�ZLejdn�ejd�k�r�Gdodp�dpejM�ZMe	eM�ZMejdp�Gdqdr�drejN�ZNe	eN�ZNejdr�Gdsdt�dtejO�ZOe	eO�ZOejdt�Gdudv�dvejP�ZPe	eP�ZPejdv�ejd
k�r>Gdwdx�dxejQ�ZQe	eQ�ZQejdx�ejRZSe	ejR�dydz��ZRejTZUe	ejT�d{d|��ZTejd�k�r�e
ejV�ZVejd}�ejd~k�r�ejW�nejWejX�\ZYZXeZeX�e_XdS)��N)�GObject�)�wakeup_on_signal�register_sigint_fallback)�override�strip_boolean_result�deprecated_init)�get_introspection_module)�PyGIDeprecationWarning��Gtk�2.0aBYou have imported the Gtk 2.0 module.  Because Gtk 2.0 was not designed for use with introspection some of the interfaces and API will fail.  As such this is not supported by the pygobject development team and we encourage you to port your app to Gtk 3 or greater. PyGTK is the recomended python module to use with Gtk 2.0c@seZdZdS)�PyGTKDeprecationWarningN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.6/Gtk.pyr4srcCs8g}x.|D]&}t|tj�s&tjj|�}|j|�q
W|S)z�Create a list of TargetEntry items from a list of tuples in the form (target, flags, info)

    The list can also contain existing TargetEntry items in which case the existing entry
    is re-used in the return list.
    )�
isinstancerZTargetEntry�new�append)�targets�target_entries�entryrrr�_construct_target_list;s
rcCs�d}t|tj�r|j|d�}nt||d�}|dkr>td|��f}t|tj�r|t|�dkrftd|��|dd�}|d}nt	|�s�td|��||fS)NzHandler %s not foundrz!Handler %s tuple can not be empty�z-Handler %s is not a method, function or tuple)
r�collections�Mapping�get�getattr�AttributeError�Sequence�len�	TypeError�callable)�
obj_or_map�handler_name�handler�argsrrr�_extract_handler_and_argsLs
r)c
Cs�t||�\}}|tjj@}	|dk	rR|	r<|j|||f|��q||j|||f|��n*|	rj|j||f|��n|j||f|��dS)N)r)rZConnectFlagsZAFTERZconnect_object_afterZconnect_objectZ
connect_after�connect)
ZbuilderZgobjZsignal_namer&Zconnect_obj�flagsr%r'r(�afterrrr�_builder_connect_callbackgsr-cs>eZdZeejj�Z�fdd�Z�fdd�Zddd�Z	�Z
S)	�Widgetcs:|dk	r&t|tj�r&tjjt|��}tt|�j|�dS)N)rr�
TargetListrr�superr.�drag_dest_set_target_list)�self�target_list)�	__class__rrr1{sz Widget.drag_dest_set_target_listcs:|dk	r&t|tj�r&tjjt|��}tt|�j|�dS)N)rrr/rrr0r.�drag_source_set_target_list)r2r3)r4rrr5�sz"Widget.drag_source_set_target_listNcCsN|dkr6|j|�}|dkr*td||f��tj|j�}tjj|||�|j�S)Nz/Class "%s" does not contain style property "%s")	Zfind_style_property�
ValueErrorr�Value�
value_typerr.�style_get_property�	get_value)r2�
property_name�value�proprrrr9�s
zWidget.style_get_property)N)rrrrrr.Ztranslate_coordinatesr1r5r9�
__classcell__rr)r4rr.wsr.c@sVeZdZdd�Zdd�Zdd�Zdd�ZeZee	j
j�Zdd
d�Zdd
�Z
dd�Zd	S)�	ContainercCst|j��S)N)r"�get_children)r2rrr�__len__�szContainer.__len__cCs||j�kS)N)r@)r2�childrrr�__contains__�szContainer.__contains__cCst|j��S)N)�iterr@)r2rrr�__iter__�szContainer.__iter__cCsdS)NTr)r2rrr�__bool__�szContainer.__bool__NcCsP|dkr6|j|�}|dkr*td||f��tj|j�}tjj||||�|j�S)Nz/Class "%s" does not contain child property "%s")	Zfind_child_propertyr6rr7r8rr?�child_get_propertyr:)r2rBr;r<r=rrrrG�s
zContainer.child_get_propertycs��fdd�|D�S)z<Returns a list of child property values for the given names.csg|]}�j�|��qSr)rG)�.0�name)rBr2rr�
<listcomp>�sz'Container.child_get.<locals>.<listcomp>r)r2rBZ
prop_namesr)rBr2r�	child_get�szContainer.child_getcKs4x.|j�D]"\}}|jdd�}|j|||�q
WdS)z=Set a child properties on the given child to key/value pairs.�_�-N)�items�replaceZchild_set_property)r2rB�kwargsrIr<rrr�	child_set�szContainer.child_set)N)rrrrArCrErF�__nonzero__rrr?Zget_focus_chainrGrKrQrrrrr?�s
r?cs,eZdZ�fdd�Zeejjfd�Z�ZS)�Editablecstt|�j|d|�S)Nr���)r0rS�insert_text)r2�text�position)r4rrrU�szEditable.insert_text)�fail_ret)	rrrrUrrrS�get_selection_boundsr>rr)r4rrS�srS�3.0c@seZdZeejjded�ZdS)�ActionrI�label�tooltip�stock_id)�	arg_names�categoryN)rIr\r]r^)rrrrrr[�__init__rrrrrr[�sr[c@seZdZeejjded�ZdS)	�RadioActionrIr\r]r^r<)r_r`N)rIr\r]r^r<)rrrrrrbrarrrrrrb�srbc@s<eZdZeejjd
ed�Zddd�Zddd�Z	d
dd	�Z
dS)�ActionGrouprI)r_r`Nc
sTyt|�Wntk
r(td��YnXd��fdd�	}x|D]}||�q@WdS)a�
            The add_actions() method is a convenience method that creates a number
            of gtk.Action  objects based on the information in the list of action
            entry tuples contained in entries and adds them to the action group.
            The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            zentries must be iterableNcsLt||||d�}|dk	r<�dkr.|jd|�n|jd|���j||�dS)N)rIr\r]r^�activate)r[r*�add_action_with_accel)rIr^r\�acceleratorr]�callback�action)r2�	user_datarr�_process_actionsz0ActionGroup.add_actions.<locals>._process_action)NNNNN)rDr#)r2�entriesrirj�er)r2rir�add_actions�s

zActionGroup.add_actionscsTyt|�Wntk
r(td��YnXd��fdd�	}x|D]}||�q@WdS)a�
            The add_toggle_actions() method is a convenience method that creates a
            number of gtk.ToggleAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The toggle action entry tuples can vary in size from one to seven
            items with the following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.
                * A flag indicating whether the toggle action is active. Optional
                  with a default value of False.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            zentries must be iterableNFcsXtj||||d�}|j|�|dk	rH�dkr:|jd|�n|jd|���j||�dS)N)rIr\r]r^rd)rZToggleAction�
set_activer*re)rIr^r\rfr]rgZ	is_activerh)r2rirrrj3s
z7ActionGroup.add_toggle_actions.<locals>._process_action)NNNNNF)rDr#)r2rkrirjrlr)r2rir�add_toggle_actionss
zActionGroup.add_toggle_actionsc	
s�yt|�Wntk
r(td��YnXd}d��fdd�	}x&|D]}||f|��}|dkrD|}qDW|dk	r�|dk	r�|dkr�|jd|�n|jd||�dS)a�
            The add_radio_actions() method is a convenience method that creates a
            number of gtk.RadioAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The value to set on the radio action. Optional with a default
                  value of 0. Should be specified in applications.

            The value parameter specifies the radio action that should be set
            active. The "changed" signal of the first radio action is connected to
            the on_change callback (if specified and not None) and the accel paths
            of the actions are set to <Actions>/group-name/action-name.
            zentries must be iterableNrcsHt|||||d�}t|d�r&|j|��|kr8|jd��j||�|S)N)rIr\r]r^r<�
join_groupT)rb�hasattrrprnre)Zgroup_sourcerIr^r\rfr]Zentry_valuerh)r2r<rrrjes


z6ActionGroup.add_radio_actions.<locals>._process_actionZchanged)NNNNr)rDr#r*)	r2rkr<Z	on_changeriZfirst_actionrjrlrhr)r2r<r�add_radio_actionsBs
zActionGroup.add_radio_actions)rI)N)N)NNN)rrrrrrcrarrmrorrrrrrrc�s
-
1rcc@seZdZdd�Zddd�ZdS)	�	UIManagercCs0t|t�std��t|jd��}tjj|||�S)Nzbuffer must be a stringzUTF-8)r�_basestringr#r"�encoderrs�add_ui_from_string)r2�buffer�lengthrrrrv�s
zUIManager.add_ui_from_stringrcCstjj|||�S)N)rrs�insert_action_group)r2rwrxrrrry�szUIManager.insert_action_groupNrT)rT)rrrrvryrrrrrs�srsc@seZdZeejj�ZdS)�ComboBoxN)rrrrrrzZget_active_iterrrrrrz�srzc@seZdZeejjded�ZdS)�Box�homogeneous�spacing)r_r`N)r|r})rrrrrr{rarrrrrr{�sr{c@s(eZdZeejjddejjie	d�ZdS)�	SizeGroup�mode)r_Zdeprecated_defaultsr`N)r)
rrrrrr~raZ
SizeGroupModeZVERTICALrrrrrr~�s
r~c@seZdZeejjded�ZdS)�MenuItemr\)r_r`N)r\)rrrrrr�rarrrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�BuildercCs|jt|�dS)a�Connect signals specified by this builder to a name, handler mapping.

        Connect signal, name, and handler sets specified in the builder with
        the given mapping "obj_or_map". The handler/value aspect of the mapping
        can also contain a tuple in the form of (handler [,arg1 [,argN]])
        allowing for extra arguments to be passed to the handler. For example:

        .. code-block:: python

            builder.connect_signals({'on_clicked': (on_clicked, arg1, arg2)})
        N)Zconnect_signals_fullr-)r2r%rrr�connect_signals�szBuilder.connect_signalscCs*t|t�std��t|�}tjj|||�S)Nzbuffer must be a string)rrtr#r"rr��add_from_string)r2rwrxrrrr��s
zBuilder.add_from_stringcCs,t|t�std��t|�}tjj||||�S)Nzbuffer must be a string)rrtr#r"rr��add_objects_from_string)r2rwZ
object_idsrxrrrr��s
zBuilder.add_objects_from_stringN)rrrr�r�r�rrrrr��sr�c@seZdZeejjded�ZdS)�Window�type)r_r`N)r�)rrrrrr�rarrrrrr��sr�c@s\eZdZdZeejjddddd�ed	�Z	d
d�Zdd
�Z
edd��Zedd��Z
dd�ZdS)�Dialog�title�parentr+�buttons�_buttons_property�
transient_for�add_buttons)r�r�)r_�ignore�deprecated_aliasesr`cOs�|j�}tt|j|��}|j|�d}|jtkrF|jjtjkrF|d7}|jdd�}|dk	r�t	|t
j�r�tj
dt|d�d|kr�|d=nd}|jdd�}|r�tj
dt|d�|t
jj@r�d	|d
<|t
jj@r�d	|d<|j||�|r�|j|�dS)Nrrr�z�The "buttons" argument must be a Gtk.ButtonsType enum value. Please use the "add_buttons" method for adding buttons. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations)�
stacklevelr+rz�The "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsTZmodalZdestroy_with_parent)�copy�dict�zip�_old_arg_names�updater4r�rarrrZButtonsType�warnings�warnrZDialogFlagsZMODALZDESTROY_WITH_PARENT�_initr�)r2r(rP�
new_kwargsZ
old_kwargsr�r�r+rrrra�s0


zDialog.__init__cOs<t|j��(t��tjj|f|�|�SQRXWdQRXdS)N)rZdestroyrrr��run)r2r(rPrrrr�#sz
Dialog.runcCs|j�S)N)Zget_action_area)�dialogrrr�<lambda>(szDialog.<lambda>cCs|j�S)N)Zget_content_area)r�rrrr�)scGsPdd�}y&x ||�D]\}}|j||�qWWntk
rJtd��YnXdS)a
        The add_buttons() method adds several buttons to the Gtk.Dialog using
        the button data passed as arguments to the method. This method is the
        same as calling the Gtk.Dialog.add_button() repeatedly. The button data
        pairs - button text (or stock ID) and a response ID integer are passed
        individually. For example:

        .. code-block:: python

            dialog.add_buttons(Gtk.STOCK_OPEN, 42, "Close", Gtk.ResponseType.CLOSE)

        will add "Open" and "Close" buttons to dialog.
        css4x.|r.|dd�\}}|dd�}||fVqWdS)Nrrr)�b�t�rrrr�_button9sz#Dialog.add_buttons.<locals>._buttonz%Must pass an even number of argumentsN)Z
add_button�
IndexErrorr#)r2r(r�rVZresponserrrr�+szDialog.add_buttonsN)r�r�r+r�r�)r�r�r+r�r�)r+r�)rrrr�rrr�rarr�r��propertyZaction_areaZvboxr�rrrrr��s+r�c@s6eZdZeejjdddd�ed�Zd	d
�Zdd�Z	d
S)�
MessageDialogr�r+�message_typer��message_formatr�)rVr�)r_r�r`cCs|jdd�|jd|�dS)Nzsecondary-use-markupFzsecondary-text)�set_property)r2r�rrr�format_secondary_textRsz#MessageDialog.format_secondary_textcCs|jdd�|jd|�dS)Nzsecondary-use-markupTzsecondary-text)r�)r2r�rrr�format_secondary_markupVsz%MessageDialog.format_secondary_markupN)r�r+r�r�r�)
rrrrrr�rarr�r�rrrrr�Jsr�c@seZdZeejjded�ZdS)�ColorSelectionDialogr�)r_r`N)r�)rrrrrr�rarrrrrr�`sr�c@seZdZeejjded�ZdS)�FileChooserDialogr�r�rhr�)r_r`N)r�r�rhr�)rrrrrr�rarrrrrr�isr�c@seZdZeejjded�ZdS)�FontSelectionDialogr�)r_r`N)r�)rrrrrr�rarrrrrr�tsr�c@s$eZdZeejjdddied�ZdS)	�RecentChooserDialogr�r��recent_managerr�Zmanager)r_r�r`N)r�r�r�r�)rrrrrr�rarrrrrr�}sr�c@sBeZdZeejjded�Zeejj	�Z	eejj
�Z
eejj�ZdS)�IconView�model)r_r`N)r�)rrrrrr�rarrZget_item_at_pos�get_visible_rangeZget_dest_item_at_posrrrrr��sr�c@seZdZeejjded�ZdS)�
ToolButtonr^)r_r`N)r^)rrrrrr�rarrrrrr��sr�c@seZdZeejj�ZdS)�	IMContextN)rrrrrr�Zget_surroundingrrrrr��sr�c@seZdZeejj�ZdS)�
RecentInfoN)rrrrrr�Zget_application_inforrrrr��sr�c@sfeZdZdd�Zddd�Zddd�Zdd
d�Zddd
�Zdd�Zdd�Z	ddd�Z
eej
jfd�ZdS)�
TextBuffercCs&|j�}|dkr"tj�}|j|�|S)N)�
get_tag_tablerZTextTagTableZ
set_tag_table)r2�tablerrr�_get_or_create_tag_table�s

z#TextBuffer._get_or_create_tag_tableNcKs&tjfd|i|��}|j�j|�|S)a�Creates a tag and adds it to the tag table of the TextBuffer.

        :param str tag_name:
            Name of the new tag, or None
        :param **properties:
            Keyword list of properties and their values

        This is equivalent to creating a Gtk.TextTag and then adding the
        tag to the buffer's tag table. The returned tag is owned by
        the buffer's tag table.

        If ``tag_name`` is None, the tag is anonymous.

        If ``tag_name`` is not None, a tag called ``tag_name`` must not already
        exist in the tag table for this buffer.

        Properties are passed as a keyword list of names and values (e.g.
        foreground='DodgerBlue', weight=Pango.Weight.BOLD)

        :returns:
            A new tag.
        rI)rZTextTagr��add)r2Ztag_nameZ
properties�tagrrr�
create_tag�szTextBuffer.create_tagFcCstjj||||�S)N)rr��create_mark)r2Z	mark_name�whereZleft_gravityrrrr��szTextBuffer.create_markrcCstjj|||�dS)N)rr��set_text)r2rVrxrrrr��szTextBuffer.set_textcCs0t|t�stdt|���tjj||||�dS)Nztext must be a string, not %s)rrtr#r�rr��insert)r2rDrVrxrrrr��s
zTextBuffer.insertcGsF|j�}|j||�|sdS|j|�}x|D]}|j|||�q,WdS)N)Z
get_offsetr�Zget_iter_at_offsetZ	apply_tag)r2rDrV�tagsZstart_offset�startr�rrr�insert_with_tags�s

zTextBuffer.insert_with_tagscGsPg}x4|D],}|j�j|�}|s,td|��|j|�q
W|j||f|��dS)Nzunknown text tag: %s)r��lookupr6rr�)r2rDrVr�Ztag_objsr�Ztag_objrrr�insert_with_tags_by_name�s
z#TextBuffer.insert_with_tags_by_namecCs.t|t�stdt|���tjj|||�dS)Nztext must be a string, not %s)rrtr#r�rr��insert_at_cursor)r2rVrxrrrr��s
zTextBuffer.insert_at_cursor)rX)N)FrT)rTrT)rTrT)rT)rrrr�r�r�r�r�r�r�r�rrr�rYrrrrr��s




r�c@s$eZdZeejj�Zeejj�ZdS)�TextIterN)rrrrrr�Zforward_searchZbackward_searchrrrrr�sr�cseZdZdd�Zdd�ZeZdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zee
jj�Zee
jj�Zee
jj�Zee
jj�Zee
jjed�Z�fdd�Z�fdd�Z�fdd�Zdd�Zdd�Zdd�Zdd�Z�fd d!�Z�fd"d#�Z�fd$d%�Z�fd&d'�Z�fd(d)�Z �Z!S)*�	TreeModelcCs
|jd�S)N)Ziter_n_children)r2rrrrAszTreeModel.__len__cCsdS)NTr)r2rrrrFszTreeModel.__bool__cCs�t|tj�r|St|t�rv|dkrvt|�|}|dkrBtd|��y|j|�}Wn tk
rptd|��YnX|Sy|j|�}Wn tk
r�td|��YnX|SdS)Nrzrow index is out of bounds: %dzcould not find tree path '%s')rr�TreeIter�intr"r��get_iterr6)r2�key�index�aiterrrr�_getiters zTreeModel._getitercCst|tj�r|St|�SdS)N)rr�TreePath)r2�pathrrr�_coerce_path-szTreeModel._coerce_pathcCs|j|�}t||�S)N)r��TreeModelRow)r2r�r�rrr�__getitem__3s
zTreeModel.__getitem__cCs||}|j|j|�dS)N)�set_rowrD)r2r�r<�rowrrr�__setitem__7szTreeModel.__setitem__cCs|j|�}|j|�dS)N)r��remove)r2r�r�rrr�__delitem__;s
zTreeModel.__delitem__cCst||j��S)N)�TreeModelRowIter�get_iter_first)r2rrrrE?szTreeModel.__iter__zinvalid tree pathcs2|j|�}tt|�j|�\}}|s.td|��|S)Nzinvalid tree path '%s')r�r0r�r�r6)r2r��successr�)r4rrr�Is

zTreeModel.get_itercs$|j�}tt|�j|�}|r |SdS)N)r�r0r��	iter_next)r2r��	next_iterr�)r4rrr�PszTreeModel.iter_nextcs$|j�}tt|�j|�}|r |SdS)N)r�r0r��
iter_previous)r2r��	prev_iterr�)r4rrr�VszTreeModel.iter_previouscCszt|t�rtd��|j�}t|�|kr.td��g}g}x:t|�D].\}}|dkrRq@|j|j||��|j|�q@W||fS)Nz%Expected a list or tuple, but got strz1row sequence has the incorrect number of elements)	r�strr#�
get_n_columnsr"r6�	enumerater�_convert_value)r2r��	n_columns�result�columnsZcur_colr<rrr�_convert_row\s
zTreeModel._convert_rowcCs@|j|�\}}x,|D]$}||}|dkr*q|j|||�qWdS)N)r��	set_value)r2�treeiterr�Z
converted_rowr��columnr<rrrr�ps
zTreeModel.set_rowcCs"t|tj�r|Stj|j|�|�S)z5Convert value to a GObject.Value of the expected type)rrr7Zget_column_type)r2r�r<rrrr�yszTreeModel._convert_valuecGs^|j�}g}xH|D]@}t|t�s(td��|dks8||kr@td��|j|j||��qWt|�S)Nzcolumn numbers must be intsrzcolumn number is out of range)r�rr�r#r6rr:�tuple)r2r�r�r��values�colrrrr�s

z
TreeModel.getcstt|�j|j|�|�S)N)r0r��row_changedr�)r2r�rD)r4rrr��szTreeModel.row_changedcstt|�j|j|�|�S)N)r0r��row_insertedr�)r2r�rD)r4rrr��szTreeModel.row_insertedcstt|�j|j|�|�S)N)r0r��row_has_child_toggledr�)r2r�rD)r4rrr��szTreeModel.row_has_child_toggledcstt|�j|j|��S)N)r0r��row_deletedr�)r2r�)r4rrr��szTreeModel.row_deletedcstt|�j|j|�||�S)N)r0r��rows_reorderedr�)r2r�rDZ	new_order)r4rrr��szTreeModel.rows_reordered)"rrrrArFrRr�r�r�r�r�rErrr�r��
iter_childrenZiter_nth_child�iter_parentZget_iter_from_stringr6r�r�r�r�r�r�rr�r�r�r�r�r>rr)r4rr�s6	r�cs<eZdZeejjdd�Zd�fdd�	Zd	�fdd�	Z�Z	S)
�TreeSortableN)rXcstt|�j|||�dS)N)r0r��
set_sort_func)r2Zsort_column_id�	sort_funcri)r4rrr��szTreeSortable.set_sort_funccstt|�j||�dS)N)r0r��set_default_sort_func)r2r�ri)r4rrr��sz"TreeSortable.set_default_sort_func)NN)N)N)
rrrrrr�Zget_sort_column_idr�r�r>rr)r4rr��sr�c@seZdZeejjded�ZdS)�
TreeModelSortr�)r_r`N)r�)rrrrrr�rarrrrrr��sr�c@s^eZdZdd�Zdd�Zddd�Zddd	�Zdd
d�Zddd
�Zddd�Z	dd�Z
dd�ZdS)�	ListStorecGstjj|�|j|�dS)N)rr�ra�set_column_types)r2�column_typesrrrra�szListStore.__init__cCs8|dk	r&|j|�\}}|j|||�}ntjj||�}|S)N)r�Zinsert_with_valuesvrr�r�)r2rWr�r�r�rrr�
_do_insert�s
zListStore._do_insertNcCs |r|jd|�Stjj|�SdS)NrrT)r�rr�r)r2r�rrrr�szListStore.appendcCs|jd|�S)Nr)r�)r2r�rrr�prepend�szListStore.prependcCs|j||�S)N)r�)r2rWr�rrrr��szListStore.insertcCs&tjj||�}|dk	r"|j||�|S)N)rr��
insert_beforer�)r2�siblingr�r�rrrr��szListStore.insert_beforecCs&tjj||�}|dk	r"|j||�|S)N)rr��insert_afterr�)r2r�r�r�rrrr�szListStore.insert_aftercCs"|j||�}tjj||||�dS)N)r�rr�r�)r2r�r�r<rrrr��szListStore.set_valuecs���fdd�}|r�t|dt�r@||ddd�|ddd��nlt|dttf�rzt|�dkrftd��||d|d�n2t|dt�r�|t|d�|dj��ntd��dS)Ncs|t|�t|�krtd��g}g}xDt||�D]6\}}t|t�sFtd��|j|�|j�j||��q,Wtjj	��||�dS)Nz7The number of columns do not match the number of valuesz0TypeError: Expected integer argument for column.)
r"r#r�rr�rr�rr��set)�cols�valsr�r��col_numr<)r2r�rr�
_set_lists�s

z!ListStore.set.<locals>._set_listsrrrzToo many argumentsz�Argument list must be in the form of (column, value, ...), ((columns,...), (values, ...)) or {column: value}.  No -1 termination is needed.)rr�r��listr"r#r�r�)r2r�r(rr)r2r�rr�s z
ListStore.set)N)N)N)N)N)rrrrar�rr�r�r�rr�rrrrrr��s	




r�c@s|eZdZdd�Zedd��Zedd��Zedd��Zed	d
��Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)r�cCsht|tj�stdt|�j��||_t|tj�r>|j|�|_	n&t|tj
�rR||_	ntdt|�j��dS)Nz expected Gtk.TreeModel, %s foundz?expected Gtk.TreeIter or Gtk.TreePath,                 %s found)rrr�r#r�rr�r�r�rDr�)r2r�Ziter_or_pathrrrraszTreeModelRow.__init__cCs|jj|j�S)N)r��get_pathrD)r2rrrr�&szTreeModelRow.pathcCs|j�S)N)�get_next)r2rrr�next*szTreeModelRow.nextcCs|j�S)N)�get_previous)r2rrr�previous.szTreeModelRow.previouscCs|j�S)N)�
get_parent)r2rrrr�2szTreeModelRow.parentcCs"|jj|j�}|rt|j|�SdS)N)r�r�rDr�)r2r�rrrr6szTreeModelRow.get_nextcCs"|jj|j�}|rt|j|�SdS)N)r�r�rDr�)r2r�rrrr
;szTreeModelRow.get_previouscCs"|jj|j�}|rt|j|�SdS)N)r�r�rDr�)r2Zparent_iterrrrr@szTreeModelRow.get_parentcs�t|t�rH|�jj�kr&td|��n|dkr8�j|�}�jj�j|�St|t�r�|j	�jj��\}}}g}x*t
|||�D]}|j�jj�j|��qzW|St|t�r��fdd�|D�St
dt|�j��dS)Nz!column index is out of bounds: %drcsg|]}�|�qSrr)rH�k)r2rrrJSsz,TreeModelRow.__getitem__.<locals>.<listcomp>z0indices must be integers, slice or tuple, not %s)rr�r�r�r��_convert_negative_indexr:rD�slice�indices�rangerr�r#r�r)r2r�r��stop�stepZalist�ir)r2rr�Es 



zTreeModelRow.__getitem__c
Cs>t|t�rL||jj�kr&td|��n|dkr8|j|�}|jj|j||�n�t|t�r�|j	|jj��\}}}t
|||�}t|�t|�kr�tdt|�t|�f��x�t
|�D]\}}|jj|j|||�q�Wnlt|t��r(t|�t|�k�rtdt|�t|�f��x4t||�D]\}	}|||	<�qWntdt|�j��dS)Nz!column index is out of bounds: %drz9attempt to assign sequence of size %d to slice of size %dz<attempt to assign sequence of size %d to sequence of size %dz2indices must be an integer, slice or tuple, not %s)rr�r�r�r�rr�rDrrrr"r6r�r�r�r#r�r)
r2r�r<r�rrZ	indexListr�vr
rrrr�Xs0


zTreeModelRow.__setitem__cCs&|jj�|}|dkr"td|��|S)Nrz!column index is out of bounds: %d)r�r�r�)r2r�Z	new_indexrrrrtsz$TreeModelRow._convert_negative_indexcCs|jj|j�}t|j|�S)N)r�r�rDr�)r2Z
child_iterrrr�iterchildrenzszTreeModelRow.iterchildrenN)rrrrar�r�r	rr�rr
rr�r�rrrrrrr�sr�c@s(eZdZdd�Zdd�ZeZdd�ZdS)r�cCs||_||_dS)N)r�rD)r2r�r�rrrra�szTreeModelRowIter.__init__cCs,|js
t�t|j|j�}|jj|j�|_|S)N)rD�
StopIterationr�r�r�)r2r�rrr�__next__�s
zTreeModelRowIter.__next__cCs|S)Nr)r2rrrrE�szTreeModelRowIter.__iter__N)rrrrarr	rErrrrr��sr�csveZdZddd�Z�fdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)r�rcCszt|t�rt|�}nt|t�s2djdd�|D��}t|�dkrJtd|��y
tj|�Stk
rttd|��YnXdS)N�:css|]}t|�VqdS)N)r�)rH�valrrr�	<genexpr>�sz#TreePath.__new__.<locals>.<genexpr>rz-could not parse subscript '%s' as a tree path)	rr�r�rt�joinr"r#r�Znew_from_string)�clsr�rrr�__new__�s



zTreePath.__new__cstt|�j�dS)N)r0r�ra)r2r(rP)r4rrra�szTreePath.__init__cCs|j�p
dS)N�)Z	to_string)r2rrr�__str__�szTreePath.__str__cCs|dk	o|j|�dkS)Nr)�compare)r2�otherrrr�__lt__�szTreePath.__lt__cCs|dk	o|j|�dkS)Nr)r!)r2r"rrr�__le__�szTreePath.__le__cCs|dk	o|j|�dkS)Nr)r!)r2r"rrr�__eq__�szTreePath.__eq__cCs|dkp|j|�dkS)Nr)r!)r2r"rrr�__ne__�szTreePath.__ne__cCs|dkp|j|�dkS)Nr)r!)r2r"rrr�__gt__�szTreePath.__gt__cCs|dkp|j|�dkS)Nr)r!)r2r"rrr�__ge__�szTreePath.__ge__cCst|j��S)N)rD�get_indices)r2rrrrE�szTreePath.__iter__cCs|j�S)N)Z	get_depth)r2rrrrA�szTreePath.__len__cCs|j�|S)N)r))r2r�rrrr��szTreePath.__getitem__)r)rrrrrar r#r$r%r&r'r(rErAr�r>rr)r4rr��s

r�c@s^eZdZdd�Zdd�Zddd�Zddd	�Zdd
d�Zddd
�Zddd�Z	dd�Z
dd�ZdS)�	TreeStorecGstjj|�|j|�dS)N)rr*rar�)r2r�rrrra�szTreeStore.__init__cCs<|dk	r(|j|�\}}|j||||�}ntjj|||�}|S)N)r�Zinsert_with_valuesrr*r�)r2r�rWr�r�r�rrrr��s
zTreeStore._do_insertNcCs|j|d|�S)NrrT)r�)r2r�r�rrrr�szTreeStore.appendcCs|j|d|�S)Nr)r�)r2r�r�rrrr��szTreeStore.prependcCs|j|||�S)N)r�)r2r�rWr�rrrr��szTreeStore.insertcCs(tjj|||�}|dk	r$|j||�|S)N)rr*r�r�)r2r�r�r�r�rrrr��szTreeStore.insert_beforecCs(tjj|||�}|dk	r$|j||�|S)N)rr*rr�)r2r�r�r�r�rrrr�szTreeStore.insert_aftercCs"|j||�}tjj||||�dS)N)r�rr*r�)r2r�r�r<rrrr��szTreeStore.set_valuecs���fdd�}|r�t|dt�r@||ddd�|ddd��nlt|dttf�rzt|�dkrftd��||d|d�n2t|dt�r�||dj�|dj��ntd��dS)Ncs|t|�t|�krtd��g}g}xDt||�D]6\}}t|t�sFtd��|j|�|j�j||��q,Wtjj	��||�dS)Nz7The number of columns do not match the number of valuesz0TypeError: Expected integer argument for column.)
r"r#r�rr�rr�rr*r)rrr�r�rr<)r2r�rrrs

z!TreeStore.set.<locals>._set_listsrrrzToo many argumentsz�Argument list must be in the form of (column, value, ...), ((columns,...), (values, ...)) or {column: value}.  No -1 termination is needed.)	rr�r�rr"r#r��keysr�)r2r�r(rr)r2r�rr�s z
TreeStore.set)N)N)N)N)N)rrrrar�rr�r�r�rr�rrrrrr*�s	




r*cs�eZdZeejjded�Zeejj	�Z	eejj
�Z
eejj�Z�fdd�Z�fdd�Z
d�fd
d�	Zd�fdd
�	Zd�fdd�	Zdd�Z�ZS)�TreeViewr�)r_r`cs t|�}tt|�j|||�dS)N)rr0r,�enable_model_drag_source)r2Zstart_button_maskr�actionsr)r4rrr-)sz!TreeView.enable_model_drag_sourcecst|�}tt|�j||�dS)N)rr0r,�enable_model_drag_dest)r2rr.r)r4rrr//szTreeView.enable_model_drag_destNF�cs0t|tj�st|�}tt|�j|||||�dS)N)rrr�r0r,�scroll_to_cell)r2r�r�Z	use_alignZ	row_alignZ	col_align)r4rrr14szTreeView.scroll_to_cellcs,t|tj�st|�}tt|�j|||�dS)N)rrr�r0r,�
set_cursor)r2r�r�Z
start_editing)r4rrr29szTreeView.set_cursorcs&t|tj�st|�}tt|�j||�S)N)rrr�r0r,�
get_cell_area)r2r�r�)r4rrr3>szTreeView.get_cell_areacKs:t�}|j|�|j|d�|j||�|j|f|�dS)NF)�TreeViewColumnZ	set_title�
pack_startZ
insert_column�set_attributes)r2rWr�ZcellrPr�rrr�insert_column_with_attributesCs

z&TreeView.insert_column_with_attributes)r�)NFr0r0)NF)N)rrrrrr,rarrZget_path_at_posr�Zget_dest_row_at_posr-r/r1r2r3r7r>rr)r4rr, sr,cs<eZdZd	dd�Zeejj�Zd
�fdd�	Zdd�Z	�Z
S)r4rNcKsHtjj||d�|r |j|d�x"|j�D]\}}|j|||�q*WdS)N)r�T)rr4rar5rN�
add_attribute)r2r��
cell_renderer�
attributesrIr<rrrraPs
zTreeViewColumn.__init__cstt|�j|||�dS)N)r0r4�set_cell_data_func)r2r9�funcZ	func_data)r4rrr;\sz!TreeViewColumn.set_cell_data_funccKs:tjj||�x&|j�D]\}}tjj||||�qWdS)N)rZ
CellLayoutZclear_attributesrNr8)r2r9r:rIr<rrrr6_szTreeViewColumn.set_attributes)rN)N)rrrrarrr4Zcell_get_positionr;r6r>rr)r4rr4Os

	r4cs4eZdZ�fdd�Z�fdd�Z�fdd�Z�ZS)�
TreeSelectioncs(t|tj�st|�}tt|�j|�dS)N)rrr�r0r=�select_path)r2r�)r4rrr>lszTreeSelection.select_pathcs,tt|�j�\}}}|r ||fS|dfSdS)N)r0r=�get_selected)r2r�r�r�)r4rrr?qszTreeSelection.get_selectedcstt|�j�\}}||fS)N)r0r=�get_selected_rows)r2�rowsr�)r4rrr@zszTreeSelection.get_selected_rows)rrrr>r?r@r>rr)r4rr=js	r=c@s*eZdZeejjd
dedd�Zdd�Zd	S)�Buttonr\�stock�	use_stock�
use_underliner)r_r�r`r�cOsld|kr\|dr\tjdtdd�|j�}|d|d<d|d<d|d<|d=tjj|f|�n|j||�dS)	NrCzKStock items are deprecated. Please use: Gtk.Button.new_with_mnemonic(label)r)r�r\TrDrE)r�r�rr�rrBrar�)r2r(rPr�rrrra�s
zButton.__init__N)r\rCrDrE)rC)	rrrrrrBrarr�rrrrrB�srBc@seZdZeejjded�ZdS)�
LinkButton�urir\)r_r`N)rGr\)rrrrrrFrarrrrrrF�srFc@seZdZeejjded�ZdS)�Labelr\)r_r`N)r\)rrrrrrHrarrrrrrH�srHc@s0eZdZeejjdddd	�ed
d�Zdd
�ZdS)�
Adjustmentr<�lower�upper�step_increment�page_increment�	page_sizeZ	page_incrZ	step_incr)rMrLr)r_r�r`r�cOsB|j||�d|kr$|j|d�nt|�dkr>|j|d�dS)Nr<rr)r�r�r")r2r(rPrrrra�s
zAdjustment.__init__N)r<rJrKrLrMrN)	rrrrrrIrarr�rrrrrI�srIc@sPeZdZeejjdddd�ed�Zejj	ejj
Bejj	ejj
Bddfd	d
�ZdS)
�Table�n_rowsr�r|rAr�)rPr�)r_r�r`rc

Cs"tjj||||||||||	�
dS)N)rrO�attach)
r2rBZleft_attachZright_attachZ
top_attachZ
bottom_attachZxoptionsZyoptionsZxpaddingZypaddingrrrrQ�szTable.attachN)rPr�r|)rrrrrrOrarZ
AttachOptionsZEXPANDZFILLrQrrrrrO�s
rOc@seZdZeejjded�ZdS)�ScrolledWindow�hadjustment�vadjustment)r_r`N)rSrT)rrrrrrRrarrrrrrR�srRc@seZdZeejjded�ZdS)�
HScrollbar�
adjustment)r_r`N)rV)rrrrrrUrarrrrrrU�srUc@seZdZeejjded�ZdS)�
VScrollbarrV)r_r`N)rV)rrrrrrWrarrrrrrW�srWcs,eZdZd�fdd�	Zd�fdd�	Z�ZS)	�PanedFTcstt|�j|||�dS)N)r0rX�pack1)r2rB�resize�shrink)r4rrrY�szPaned.pack1cstt|�j|||�dS)N)r0rX�pack2)r2rBrZr[)r4rrr\�szPaned.pack2)FT)TT)rrrrYr\r>rr)r4rrX�srXc@seZdZeejjded�ZdS)�Arrow�
arrow_type�shadow_type)r_r`N)r^r_)rrrrrr]rarrrrrr]sr]cs&eZdZddd�Z�fdd�Z�ZS)�IconSetNcCs6|dk	r&tjdtdd�tjj|�}ntjj|�}|S)NzXGtk.IconSet(pixbuf) has been deprecated. Please use: Gtk.IconSet.new_from_pixbuf(pixbuf)r)r�)r�r�rrr`Znew_from_pixbufr)rZpixbufZiconsetrrrrs
zIconSet.__new__cstt|�j�S)N)r0r`ra)r2r(rP)r4rrraszIconSet.__init__)N)rrrrrar>rr)r4rr`
s

r`c@seZdZeejjded�ZdS)�ViewportrSrT)r_r`N)rSrT)rrrrrrararrrrrrasracs&eZdZd�fdd�	Zdd�Z�ZS)�TreeModelFilterNcstt|�j||�dS)N)r0rb�set_visible_func)r2r<�data)r4rrrc*sz TreeModelFilter.set_visible_funccCs |j|�}|j�j|||�dS)N)Zconvert_iter_to_child_iterZ	get_modelr�)r2rDr�r<rrrr�-s
zTreeModelFilter.set_value)N)rrrrcr�r>rr)r4rrb)srbc@seZdZdd�ZdS)�MenucCs|jd||||||�dS)N)Zpopup_for_device)r2Zparent_menu_shellZparent_menu_itemr<rdZbuttonZ
activate_timerrr�popup8sz
Menu.popupN)rrrrfrrrrre7srecGs
t�dS)N)�_Gtk_main_quit)r(rrr�	main_quit@srhcOs2ttj��t��t||�SQRXWdQRXdS)N)rrrhr�	_Gtk_main)r(rPrrr�mainHsrj�stock_lookupz4.0)rr)r
rZ)r
rZ)r
rZ)r
rZ)r
rZ)r
rZ)r
rZ)[r�sysr�Z
gi.repositoryrZ_ossighelperrrZ	overridesrrr�moduler	Zgir
�version_infor�rtZ
basestringr�__all__Z_versionZwarn_msgr��RuntimeWarningrrrr)r-r.r?rSr[rbrcrsrzr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��objectr�r�r�r*r,r4r=rBrFrHrIrOrRrUrWrXr]r`rarbrerhrgrjrirkZ
init_check�argvZinitializedrrrrr�<module>s|





)



$





 

X




	





Q




S
g

1
N
+






	













overrides/__pycache__/Gdk.cpython-36.pyc000064400000026402151734360770014132 0ustar003

��<__=�@sddlZddlZddlmZmZddlmZddlmZm	Z	ed�Z
gZy e	de
j�ddl
mZeWneefk
r�YnXee
d	�r�Gd
d	�d	e
j�Zee�Zejd	�ee
d�r�Gdd�de
j�Zee�Zejd�e
jd
k�rGdd�de
j�Zee�Zejd�nNee
d��s:ddl
mZejZejd�n$e
jjZe
jjZejd�ejd�e
jd
k�r�Gdd�de
j�Zee�Zejd�n$Gdd�de
j�Zee�Zejd�ee
j d�e
j _!ee
j d�e
j _"Gdd�de
j#�Z#ee#�Z#ejd�e$�dZ%ej&e%Zddddd d!d"d#d$d%d&d'd(d)d*d+d,d-gZ'e
jd
k�rJe'jd.�ee
d/��r`e'jd/�d0d1d2d3gZ(x�e'D]�Z)e*e)ee
e)�fi�Z+xTe
j#j,j-�D]DZ.e.j/�Z0ee
j#e0�Z1ee1d4e1�Z1e0e(k�r�ee1�Z1e2e+e0e1��q�We2ee)e+�eje)��qrWGd5d6�d6e
j3�Z3ee3�Z3ejd6�Gd7d8�d8e
j4�Z4ee4�Z4ejd8�ee
d9��rdee
j5�Z5ejd9�d:d;�Z6d<d=�Z7e6e
j8_9e7e
j8_:e
jd>k�r�e
j;d?d@�Z<ejdA�e
j;dBd@�Z=ejdC�e
j;dDd@�Z>ejdE�e
j;dFd@�Z?ejdG�e
j;dHd@�Z@ejdI�e
j;dJd@�ZAejdK�e
j;dLd@�ZBejdM�e
j;dNd@�ZCejdO�e
j;dPd@�ZDejdQ�e
j;dFd@�ZEejdR�e
j;dHd@�ZFejdS�e
j;dJd@�ZGejdT�e
j;dUd@�ZHejdV�e
j;dLd@�ZIejdW�e
j;dXd@�ZJejdY�e
j;dNd@�ZKejdZ�e
jd[k�rddlZe
jLejM�\ZNZMdS)\�N�)�override�strip_boolean_result)�get_introspection_module)�PyGIDeprecationWarning�require_version�Gdk�GdkX11)r	�Colorc@sxeZdZdZdd�Zdd�Zdd�Zedd	�d
d	�d�Zedd	�d
d	�d�Z	edd	�dd	�d�Z
dd�Zedd��Z
dS)r
i��cCs"tjj|�||_||_||_dS)N)rr
�__init__�red�green�blue)�selfrr
r�r�/usr/lib64/python3.6/Gdk.pyr/szColor.__init__cCs
|j|�S)N)�equal)r�otherrrr�__eq__5szColor.__eq__cCsd|j|j|jfS)Nz$Gdk.Color(red=%d, green=%d, blue=%d))rr
r)rrrr�__repr__8szColor.__repr__cCs|jt|j�S)N)r�float�	MAX_VALUE)rrrr�<lambda>;szColor.<lambda>cCst|dt||j��S)Nr)�setattr�intr)r�vrrrr<s)�fget�fsetcCs|jt|j�S)N)r
rr)rrrrr>scCst|dt||j��S)Nr
)rrr)rrrrrr?scCs|jt|j�S)N)rrr)rrrrrAscCst|dt||j��S)Nr)rrr)rrrrrrBscCs|j|j|jfS)z3Return (red_float, green_float, blue_float) triple.)�	red_float�green_float�
blue_float)rrrr�	to_floatsDszColor.to_floatscCs*tt|tj�t|tj�t|tj��S)zEReturn a new Color object from red/green/blue values from 0.0 to 1.0.)r
rr)rr
rrrr�from_floatsIszColor.from_floatsN)�__name__�
__module__�__qualname__rrrr�propertyrrr r!�staticmethodr"rrrrr
,s�RGBAc@sBeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zedd
��Z	dS)r(��?cCs(tjj|�||_||_||_||_dS)N)rr(rrr
r�alpha)rrr
rr*rrrrWs
z
RGBA.__init__cCs
|j|�S)N)r)rrrrrr^szRGBA.__eq__cCsd|j|j|j|jfS)Nz-Gdk.RGBA(red=%f, green=%f, blue=%f, alpha=%f))rr
rr*)rrrrrasz
RGBA.__repr__ccs$|jV|jV|jV|jVdS)z>Iterator which allows easy conversion to tuple and list types.N)rr
rr*)rrrr�__iter__dsz
RGBA.__iter__cCs0tt|jtj�t|jtj�t|jtj��S)z>Converts this RGBA into a Color instance which excludes alpha.)r
rrrr
r)rrrr�to_colorlsz
RGBA.to_colorcCs||j|j|j�S)z3Returns a new RGBA instance given a Color instance.)rrr )�clsZcolorrrr�
from_colorsszRGBA.from_colorN)r)r)r)r))
r#r$r%rrrr+r,�classmethodr.rrrrr(Vs
�2.0c@seZdZdd�Zdd�ZdS)�	RectanglecCs(tjj|�||_||_||_||_dS)N)rr1r�x�y�width�height)rr2r3r4r5rrrrs
zRectangle.__init__cCsd|j|j|j|jfS)Nz.Gdk.Rectangle(x=%d, y=%d, width=%d, height=%d))r2r3r5r4)rrrrr�szRectangle.__repr__N)r#r$r%rrrrrrr1}sr1)�cairo�rectangle_intersect�rectangle_unionc@seZdZdd�ZdS)�DrawablecCs
tj|�S)N)r�cairo_create)rrrrr:�szDrawable.cairo_createN)r#r$r%r:rrrrr9�sr9c@s$eZdZdd�Zdd�Zdd�ZdS)�WindowcCstjj|||�S)N)rr;�new)r-�parent�
attributes�attributes_maskrrr�__new__�szWindow.__new__cCsdS)Nr)rr=r>r?rrrr�szWindow.__init__cCs
tj|�S)N)rr:)rrrrr:�szWindow.cairo_createN)r#r$r%r@rr:rrrrr;�sr;Z
2BUTTON_PRESSZ
3BUTTON_PRESSc<@sheZdZejjdejjdejjdejjdejj	dejj
dejjdejjdejj
dejjdejjdejjdejjdejjdejjdejjdejjd	ejjd
ejjd
ejjd
ejjdejjdejjdejjdejjdejjdejjdejj dejj!d
ejj"diZ#ej$dk�rde#ejj%<e&ejd��rLe#j'ejj(dejj)dejj*dejj+di�dd�Z,dd�Z-dd�Z.dS)�Event�anyZexposeZmotionZbutton�keyZcrossingZfocus_changeZ	configurer&Z	selectionZ	proximityZdndZclientZ
visibilityz2.0Z	no_expose�TOUCH_BEGINZtouchcCs>t|d�j|j�}|r&tt||�|�Std|jj|f��dS)N�_UNION_MEMBERSz!'%s' object has no attribute '%s')�getattr�get�type�AttributeError�	__class__r#)r�name�
real_eventrrr�__getattr__�szEvent.__getattr__cCs>t|d�j|j�}|r*tt||�||�ntjj|||�dS)NrE)rFrGrHrrrA�__setattr__)rrK�valuerLrrrrN�szEvent.__setattr__cCs tjj|�jd�}d||jfS)Nz><z<%s type=%r>)rrAr�striprH)rZ	base_reprrrrr�szEvent.__repr__N)/r#r$r%r�	EventTypeZDELETEZDESTROYZEXPOSEZ
MOTION_NOTIFYZBUTTON_PRESS�_2BUTTON_PRESS�_3BUTTON_PRESSZBUTTON_RELEASEZ	KEY_PRESSZKEY_RELEASEZENTER_NOTIFYZLEAVE_NOTIFYZFOCUS_CHANGEZ	CONFIGUREZMAPZUNMAPZPROPERTY_NOTIFYZSELECTION_CLEARZSELECTION_REQUESTZSELECTION_NOTIFYZPROXIMITY_INZ
PROXIMITY_OUTZ
DRAG_ENTERZ
DRAG_LEAVEZDRAG_MOTIONZDRAG_STATUSZ
DROP_STARTZ
DROP_FINISHEDZCLIENT_EVENTZVISIBILITY_NOTIFYrE�_versionZ	NO_EXPOSE�hasattr�updaterDZTOUCH_UPDATEZ	TOUCH_ENDZTOUCH_CANCELrMrNrrrrrrA�sRrAr#ZEventAnyZEventExposeZEventVisibilityZEventMotionZEventButtonZEventScrollZEventKeyZ
EventCrossingZ
EventFocusZEventConfigureZ
EventPropertyZEventSelectionZEventOwnerChangeZEventProximityZEventDNDZEventWindowStateZEventSettingZEventGrabBrokenZ
EventNoExposeZ
EventTouchZ	get_stateZget_axisZ
get_coordsZget_root_coords�__func__c@seZdZdd�ZdS)�DragContextcCstd�}|j||||�dS)N�Gtk)rZdrag_finish)r�successZdel_ZtimerYrrr�finish:szDragContext.finishN)r#r$r%r[rrrrrX9srXc@seZdZdd�ZdS)�CursorcOs�t|�}t|�}||}|dkr>tjdkr2td��|j||�S|dkr^tjdt�|j||�S|dkr~tjdt�|j	||�S|dkr�tjd	kr�td��tjd
t�|j
||�Std��dS)N�z4.0zWrong number of parametersrz�Calling "Gdk.Cursor(display, cursor_type)" has been deprecated. Please use Gdk.Cursor.new_for_display(display, cursor_type). See: https://wiki.gnome.org/PyGObject/InitializerDeprecations�z�Calling "Gdk.Cursor(display, pixbuf, x, y)" has been deprecated. Please use Gdk.Cursor.new_from_pixbuf(display, pixbuf, x, y). See: https://wiki.gnome.org/PyGObject/InitializerDeprecations�z2.0z�Calling "Gdk.Cursor(source, mask, fg, bg, x, y)" has been deprecated. Please use Gdk.Cursor.new_from_pixmap(source, mask, fg, bg, x, y). See: https://wiki.gnome.org/PyGObject/InitializerDeprecations)�lenrrT�
ValueErrorr<�warnings�warnrZnew_for_displayZnew_from_pixbufZnew_from_pixmap)r-�args�kwdsZarg_lenZkwd_lenZ	total_lenrrrr@Es,

zCursor.__new__N)r#r$r%r@rrrrr\Csr\�color_parsecCs|j�}|r|Sdt|�S)NzGdk.Atom<%i>)rK�hash)�atom�nrrr�
_gdk_atom_strzsrjcCs |j�}|rd|Sdt|�S)NzGdk.Atom.intern("%s", False)z<Gdk.Atom(%i)>)rKrg)rhrirrr�_gdk_atom_repr�srk�3.0ZPRIMARYT�SELECTION_PRIMARYZ	SECONDARY�SELECTION_SECONDARYZ	CLIPBOARD�SELECTION_CLIPBOARDZBITMAP�
TARGET_BITMAPZCOLORMAP�TARGET_COLORMAPZDRAWABLE�TARGET_DRAWABLEZPIXMAP�
TARGET_PIXMAP�STRING�
TARGET_STRINGZATOM�SELECTION_TYPE_ATOM�SELECTION_TYPE_BITMAP�SELECTION_TYPE_COLORMAP�SELECTION_TYPE_DRAWABLEZINTEGER�SELECTION_TYPE_INTEGER�SELECTION_TYPE_PIXMAPZWINDOW�SELECTION_TYPE_WINDOW�SELECTION_TYPE_STRING)r0rl)O�sysrbZ	overridesrr�modulerZgirrr�__all__rTZ
gi.repositoryr	ra�ImportErrorrUr
�appendr(r1r6Z_cairoZRectangleIntZ	intersectr7�unionr8r9r;rFrQrRrSrA�globals�modname�modulesZevent_member_classesZgsuccess_mask_funcsZevent_classrHZoverride_classZ__info__Zget_methodsZmethod_infoZget_namerKZevent_methodrrXr\rfrjrkZAtom�__str__rZatom_internrmrnrorprqrrrsrurvrwrxryrzr{r|r}Z
init_check�argvZinitializedrrrr�<module>s
%

#



A







,


















overrides/__pycache__/GIMarshallingTests.cpython-36.opt-1.pyc000064400000003323151734360770020065 0ustar003

��<_��@s~ddlmZddlmZed�ZgZdZejd�Gdd�dej�Zee�Zejd�Gdd	�d	ej	�Z	ee	�Z	ejd	�d
S)�)�override)�get_introspection_module�GIMarshallingTests��OVERRIDES_CONSTANTc@s$eZdZdd�Zdd�Zdd�ZdS)�OverridesStructcCstjj|�S)N)rr�__new__)�cls�long_�r�*/usr/lib64/python3.6/GIMarshallingTests.pyr"szOverridesStruct.__new__cCstjj|�||_dS)N)rr�__init__r
)�selfr
rrrr
%szOverridesStruct.__init__cCstjj|�dS)Nr)rr�method)rrrrr)szOverridesStruct.methodN)�__name__�
__module__�__qualname__rr
rrrrrr src@s0eZdZdd�Zdd�Zedd��Zdd�Zd	S)
�OverridesObjectcCstjj|�S)N)rrr)r	r
rrrr3szOverridesObject.__new__cCstjj|�dS)N)rrr
)rr
rrrr
6szOverridesObject.__init__cCstjj�}|S)N)rr�new)r	r
rrrrr;s
zOverridesObject.newcCstjj|�dS)zOverridden doc string.r)rrr)rrrrrBszOverridesObject.methodN)rrrrr
�classmethodrrrrrrr1srN)
Z	overridesr�modulerr�__all__r�appendrrrrrr�<module>s


overrides/keysyms.py000064400000003251151734360770010642 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# pygtk - Python bindings for the GTK toolkit.
# Copyright (C) 1998-2003  James Henstridge
#
#   gtk/keysyms.py: list of keysyms.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <http://www.gnu.org/licenses/>.

import sys
import warnings

from ..module import get_introspection_module

Gdk = get_introspection_module('Gdk')

warnings.warn('keysyms has been deprecated. Please use Gdk.KEY_<name> instead.',
              RuntimeWarning)

_modname = globals()['__name__']
_keysyms = sys.modules[_modname]

for name in dir(Gdk):
    if name.startswith('KEY_'):
        target = name[4:]
        if target[0] in '0123456789':
            target = '_' + target
        value = getattr(Gdk, name)
        setattr(_keysyms, target, value)


# Not found in Gdk but left for compatibility.
Armenian_eternity = 0x14a1
Armenian_section_sign = 0x14a2
Armenian_parenleft = 0x14a5
Armenian_guillemotright = 0x14a6
Armenian_guillemotleft = 0x14a7
Armenian_em_dash = 0x14a8
Armenian_dot = 0x14a9
Armenian_mijaket = 0x14a9
Armenian_comma = 0x14ab
Armenian_en_dash = 0x14ac
Armenian_ellipsis = 0x14ae
overrides/__init__.py000064400000030675151734360770010707 0ustar00import types
import warnings
import importlib
import sys
from pkgutil import get_loader

from gi import PyGIDeprecationWarning
from gi._gi import CallableInfo
from gi._constants import \
    TYPE_NONE, \
    TYPE_INVALID

# support overrides in different directories than our gi module
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)


# namespace -> (attr, replacement)
_deprecated_attrs = {}


def wraps(wrapped):
    def assign(wrapper):
        wrapper.__name__ = wrapped.__name__
        wrapper.__module__ = wrapped.__module__
        return wrapper
    return assign


class OverridesProxyModule(types.ModuleType):
    """Wraps a introspection module and contains all overrides"""

    def __init__(self, introspection_module):
        super(OverridesProxyModule, self).__init__(
            introspection_module.__name__)
        self._introspection_module = introspection_module

    def __getattr__(self, name):
        return getattr(self._introspection_module, name)

    def __dir__(self):
        result = set(dir(self.__class__))
        result.update(self.__dict__.keys())
        result.update(dir(self._introspection_module))
        return sorted(result)

    def __repr__(self):
        return "<%s %r>" % (type(self).__name__, self._introspection_module)


class _DeprecatedAttribute(object):
    """A deprecation descriptor for OverridesProxyModule subclasses.

    Emits a PyGIDeprecationWarning on every access and tries to act as a
    normal instance attribute (can be replaced and deleted).
    """

    def __init__(self, namespace, attr, value, replacement):
        self._attr = attr
        self._value = value
        self._warning = PyGIDeprecationWarning(
            '%s.%s is deprecated; use %s instead' % (
                namespace, attr, replacement))

    def __get__(self, instance, owner):
        if instance is None:
            raise AttributeError(self._attr)
        warnings.warn(self._warning, stacklevel=2)
        return self._value

    def __set__(self, instance, value):
        attr = self._attr
        # delete the descriptor, then set the instance value
        delattr(type(instance), attr)
        setattr(instance, attr, value)

    def __delete__(self, instance):
        # delete the descriptor
        delattr(type(instance), self._attr)


def load_overrides(introspection_module):
    """Loads overrides for an introspection module.

    Either returns the same module again in case there are no overrides or a
    proxy module including overrides. Doesn't cache the result.
    """

    namespace = introspection_module.__name__.rsplit(".", 1)[-1]
    module_key = 'gi.repository.' + namespace

    # We use sys.modules so overrides can import from gi.repository
    # but restore everything at the end so this doesn't have any side effects
    has_old = module_key in sys.modules
    old_module = sys.modules.get(module_key)

    # Create a new sub type, so we can separate descriptors like
    # _DeprecatedAttribute for each namespace.
    proxy_type = type(namespace + "ProxyModule", (OverridesProxyModule, ), {})

    proxy = proxy_type(introspection_module)
    sys.modules[module_key] = proxy

    # backwards compat:
    # gedit uses gi.importer.modules['Gedit']._introspection_module
    from ..importer import modules
    assert hasattr(proxy, "_introspection_module")
    modules[namespace] = proxy

    try:
        override_package_name = 'gi.overrides.' + namespace

        # http://bugs.python.org/issue14710
        try:
            override_loader = get_loader(override_package_name)

        except AttributeError:
            override_loader = None

        # Avoid checking for an ImportError, an override might
        # depend on a missing module thus causing an ImportError
        if override_loader is None:
            return introspection_module

        override_mod = importlib.import_module(override_package_name)

    finally:
        del modules[namespace]
        del sys.modules[module_key]
        if has_old:
            sys.modules[module_key] = old_module

    # backwards compat: for gst-python/gstmodule.c,
    # which tries to access Gst.Fraction through
    # Gst._overrides_module.Fraction. We assign the proxy instead as that
    # contains all overridden classes like Fraction during import anyway and
    # there is no need to keep the real override module alive.
    proxy._overrides_module = proxy

    override_all = []
    if hasattr(override_mod, "__all__"):
        override_all = override_mod.__all__

    for var in override_all:
        try:
            item = getattr(override_mod, var)
        except (AttributeError, TypeError):
            # Gedit puts a non-string in __all__, so catch TypeError here
            continue
        setattr(proxy, var, item)

    # Replace deprecated module level attributes with a descriptor
    # which emits a warning when accessed.
    for attr, replacement in _deprecated_attrs.pop(namespace, []):
        try:
            value = getattr(proxy, attr)
        except AttributeError:
            raise AssertionError(
                "%s was set deprecated but wasn't added to __all__" % attr)
        delattr(proxy, attr)
        deprecated_attr = _DeprecatedAttribute(
            namespace, attr, value, replacement)
        setattr(proxy_type, attr, deprecated_attr)

    return proxy


def override(type_):
    """Decorator for registering an override.

    Other than objects added to __all__, these can get referenced in the same
    override module via the gi.repository module (get_parent_for_object() does
    for example), so they have to be added to the module immediately.
    """

    if isinstance(type_, CallableInfo):
        func = type_
        namespace = func.__module__.rsplit('.', 1)[-1]
        module = sys.modules["gi.repository." + namespace]

        def wrapper(func):
            setattr(module, func.__name__, func)
            return func

        return wrapper
    elif isinstance(type_, types.FunctionType):
        raise TypeError("func must be a gi function, got %s" % type_)
    else:
        try:
            info = getattr(type_, '__info__')
        except AttributeError:
            raise TypeError(
                'Can not override a type %s, which is not in a gobject '
                'introspection typelib' % type_.__name__)

        if not type_.__module__.startswith('gi.overrides'):
            raise KeyError(
                'You have tried override outside of the overrides module. '
                'This is not allowed (%s, %s)' % (type_, type_.__module__))

        g_type = info.get_g_type()
        assert g_type != TYPE_NONE
        if g_type != TYPE_INVALID:
            g_type.pytype = type_

        namespace = type_.__module__.rsplit(".", 1)[-1]
        module = sys.modules["gi.repository." + namespace]
        setattr(module, type_.__name__, type_)

        return type_


overridefunc = override
"""Deprecated"""


def deprecated(fn, replacement):
    """Decorator for marking methods and classes as deprecated"""
    @wraps(fn)
    def wrapped(*args, **kwargs):
        warnings.warn('%s is deprecated; use %s instead' % (fn.__name__, replacement),
                      PyGIDeprecationWarning, stacklevel=2)
        return fn(*args, **kwargs)
    return wrapped


def deprecated_attr(namespace, attr, replacement):
    """Marks a module level attribute as deprecated. Accessing it will emit
    a PyGIDeprecationWarning warning.

    e.g. for ``deprecated_attr("GObject", "STATUS_FOO", "GLib.Status.FOO")``
    accessing GObject.STATUS_FOO will emit:

        "GObject.STATUS_FOO is deprecated; use GLib.Status.FOO instead"

    :param str namespace:
        The namespace of the override this is called in.
    :param str namespace:
        The attribute name (which gets added to __all__).
    :param str replacement:
        The replacement text which will be included in the warning.
    """

    _deprecated_attrs.setdefault(namespace, []).append((attr, replacement))


def deprecated_init(super_init_func, arg_names, ignore=tuple(),
                    deprecated_aliases={}, deprecated_defaults={},
                    category=PyGIDeprecationWarning,
                    stacklevel=2):
    """Wrapper for deprecating GObject based __init__ methods which specify
    defaults already available or non-standard defaults.

    :param callable super_init_func:
        Initializer to wrap.
    :param list arg_names:
        Ordered argument name list.
    :param list ignore:
        List of argument names to ignore when calling the wrapped function.
        This is useful for function which take a non-standard keyword that is munged elsewhere.
    :param dict deprecated_aliases:
        Dictionary mapping a keyword alias to the actual g_object_newv keyword.
    :param dict deprecated_defaults:
        Dictionary of non-standard defaults that will be used when the
        keyword is not explicitly passed.
    :param Exception category:
        Exception category of the error.
    :param int stacklevel:
        Stack level for the deprecation passed on to warnings.warn
    :returns: Wrapped version of ``super_init_func`` which gives a deprecation
        warning when non-keyword args or aliases are used.
    :rtype: callable
    """
    # We use a list of argument names to maintain order of the arguments
    # being deprecated. This allows calls with positional arguments to
    # continue working but with a deprecation message.
    def new_init(self, *args, **kwargs):
        """Initializer for a GObject based classes with support for property
        sets through the use of explicit keyword arguments.
        """
        # Print warnings for calls with positional arguments.
        if args:
            warnings.warn('Using positional arguments with the GObject constructor has been deprecated. '
                          'Please specify keyword(s) for "%s" or use a class specific constructor. '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations' %
                          ', '.join(arg_names[:len(args)]),
                          category, stacklevel=stacklevel)
            new_kwargs = dict(zip(arg_names, args))
        else:
            new_kwargs = {}
        new_kwargs.update(kwargs)

        # Print warnings for alias usage and transfer them into the new key.
        aliases_used = []
        for key, alias in deprecated_aliases.items():
            if alias in new_kwargs:
                new_kwargs[key] = new_kwargs.pop(alias)
                aliases_used.append(key)

        if aliases_used:
            warnings.warn('The keyword(s) "%s" have been deprecated in favor of "%s" respectively. '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations' %
                          (', '.join(deprecated_aliases[k] for k in sorted(aliases_used)),
                           ', '.join(sorted(aliases_used))),
                          category, stacklevel=stacklevel)

        # Print warnings for defaults different than what is already provided by the property
        defaults_used = []
        for key, value in deprecated_defaults.items():
            if key not in new_kwargs:
                new_kwargs[key] = deprecated_defaults[key]
                defaults_used.append(key)

        if defaults_used:
            warnings.warn('Initializer is relying on deprecated non-standard '
                          'defaults. Please update to explicitly use: %s '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations' %
                          ', '.join('%s=%s' % (k, deprecated_defaults[k]) for k in sorted(defaults_used)),
                          category, stacklevel=stacklevel)

        # Remove keywords that should be ignored.
        for key in ignore:
            if key in new_kwargs:
                new_kwargs.pop(key)

        return super_init_func(self, **new_kwargs)

    return new_init


def strip_boolean_result(method, exc_type=None, exc_str=None, fail_ret=None):
    """Translate method's return value for stripping off success flag.

    There are a lot of methods which return a "success" boolean and have
    several out arguments. Translate such a method to return the out arguments
    on success and None on failure.
    """
    @wraps(method)
    def wrapped(*args, **kwargs):
        ret = method(*args, **kwargs)
        if ret[0]:
            if len(ret) == 2:
                return ret[1]
            else:
                return ret[1:]
        else:
            if exc_type:
                raise exc_type(exc_str or 'call failed')
            return fail_ret
    return wrapped
overrides/GObject.py000064400000062665151734360770010471 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2012 Canonical Ltd.
# Author: Martin Pitt <martin.pitt@ubuntu.com>
# Copyright (C) 2012-2013 Simon Feltman <sfeltman@src.gnome.org>
# Copyright (C) 2012 Bastian Winkler <buz@netbuz.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

import sys
import warnings
from collections import namedtuple

import gi.overrides
import gi.module
from gi.overrides import override, deprecated_attr
from gi.repository import GLib
from gi import PyGIDeprecationWarning

from gi import _propertyhelper as propertyhelper
from gi import _signalhelper as signalhelper
from gi import _gi


GObjectModule = gi.module.get_introspection_module('GObject')

__all__ = []


from gi import _option as option
option = option


# API aliases for backwards compatibility
for name in ['markup_escape_text', 'get_application_name',
             'set_application_name', 'get_prgname', 'set_prgname',
             'main_depth', 'filename_display_basename',
             'filename_display_name', 'filename_from_utf8',
             'uri_list_extract_uris',
             'MainLoop', 'MainContext', 'main_context_default',
             'source_remove', 'Source', 'Idle', 'Timeout', 'PollFD',
             'idle_add', 'timeout_add', 'timeout_add_seconds',
             'io_add_watch', 'child_watch_add', 'get_current_time',
             'spawn_async']:
    globals()[name] = getattr(GLib, name)
    deprecated_attr("GObject", name, "GLib." + name)
    __all__.append(name)

# deprecated constants
for name in ['PRIORITY_DEFAULT', 'PRIORITY_DEFAULT_IDLE', 'PRIORITY_HIGH',
             'PRIORITY_HIGH_IDLE', 'PRIORITY_LOW',
             'IO_IN', 'IO_OUT', 'IO_PRI', 'IO_ERR', 'IO_HUP', 'IO_NVAL',
             'IO_STATUS_ERROR', 'IO_STATUS_NORMAL', 'IO_STATUS_EOF',
             'IO_STATUS_AGAIN', 'IO_FLAG_APPEND', 'IO_FLAG_NONBLOCK',
             'IO_FLAG_IS_READABLE', 'IO_FLAG_IS_WRITEABLE',
             'IO_FLAG_IS_SEEKABLE', 'IO_FLAG_MASK', 'IO_FLAG_GET_MASK',
             'IO_FLAG_SET_MASK',
             'SPAWN_LEAVE_DESCRIPTORS_OPEN', 'SPAWN_DO_NOT_REAP_CHILD',
             'SPAWN_SEARCH_PATH', 'SPAWN_STDOUT_TO_DEV_NULL',
             'SPAWN_STDERR_TO_DEV_NULL', 'SPAWN_CHILD_INHERITS_STDIN',
             'SPAWN_FILE_AND_ARGV_ZERO',
             'OPTION_FLAG_HIDDEN', 'OPTION_FLAG_IN_MAIN', 'OPTION_FLAG_REVERSE',
             'OPTION_FLAG_NO_ARG', 'OPTION_FLAG_FILENAME', 'OPTION_FLAG_OPTIONAL_ARG',
             'OPTION_FLAG_NOALIAS', 'OPTION_ERROR_UNKNOWN_OPTION',
             'OPTION_ERROR_BAD_VALUE', 'OPTION_ERROR_FAILED', 'OPTION_REMAINING',
             'glib_version']:
    with warnings.catch_warnings():
        # TODO: this uses deprecated Glib attributes, silence for now
        warnings.simplefilter('ignore', PyGIDeprecationWarning)
        globals()[name] = getattr(GLib, name)
    deprecated_attr("GObject", name, "GLib." + name)
    __all__.append(name)


for name in ['G_MININT8', 'G_MAXINT8', 'G_MAXUINT8', 'G_MININT16',
             'G_MAXINT16', 'G_MAXUINT16', 'G_MININT32', 'G_MAXINT32',
             'G_MAXUINT32', 'G_MININT64', 'G_MAXINT64', 'G_MAXUINT64']:
    new_name = name.split("_", 1)[-1]
    globals()[name] = getattr(GLib, new_name)
    deprecated_attr("GObject", name, "GLib." + new_name)
    __all__.append(name)

# these are not currently exported in GLib gir, presumably because they are
# platform dependent; so get them from our static bindings
for name in ['G_MINFLOAT', 'G_MAXFLOAT', 'G_MINDOUBLE', 'G_MAXDOUBLE',
             'G_MINSHORT', 'G_MAXSHORT', 'G_MAXUSHORT', 'G_MININT', 'G_MAXINT',
             'G_MAXUINT', 'G_MINLONG', 'G_MAXLONG', 'G_MAXULONG', 'G_MAXSIZE',
             'G_MINSSIZE', 'G_MAXSSIZE', 'G_MINOFFSET', 'G_MAXOFFSET']:
    new_name = name.split("_", 1)[-1]
    globals()[name] = getattr(GLib, new_name)
    deprecated_attr("GObject", name, "GLib." + new_name)
    __all__.append(name)


TYPE_INVALID = GObjectModule.type_from_name('invalid')
TYPE_NONE = GObjectModule.type_from_name('void')
TYPE_INTERFACE = GObjectModule.type_from_name('GInterface')
TYPE_CHAR = GObjectModule.type_from_name('gchar')
TYPE_UCHAR = GObjectModule.type_from_name('guchar')
TYPE_BOOLEAN = GObjectModule.type_from_name('gboolean')
TYPE_INT = GObjectModule.type_from_name('gint')
TYPE_UINT = GObjectModule.type_from_name('guint')
TYPE_LONG = GObjectModule.type_from_name('glong')
TYPE_ULONG = GObjectModule.type_from_name('gulong')
TYPE_INT64 = GObjectModule.type_from_name('gint64')
TYPE_UINT64 = GObjectModule.type_from_name('guint64')
TYPE_ENUM = GObjectModule.type_from_name('GEnum')
TYPE_FLAGS = GObjectModule.type_from_name('GFlags')
TYPE_FLOAT = GObjectModule.type_from_name('gfloat')
TYPE_DOUBLE = GObjectModule.type_from_name('gdouble')
TYPE_STRING = GObjectModule.type_from_name('gchararray')
TYPE_POINTER = GObjectModule.type_from_name('gpointer')
TYPE_BOXED = GObjectModule.type_from_name('GBoxed')
TYPE_PARAM = GObjectModule.type_from_name('GParam')
TYPE_OBJECT = GObjectModule.type_from_name('GObject')
TYPE_PYOBJECT = GObjectModule.type_from_name('PyObject')
TYPE_GTYPE = GObjectModule.type_from_name('GType')
TYPE_STRV = GObjectModule.type_from_name('GStrv')
TYPE_VARIANT = GObjectModule.type_from_name('GVariant')
TYPE_GSTRING = GObjectModule.type_from_name('GString')
TYPE_VALUE = GObjectModule.Value.__gtype__
TYPE_UNICHAR = TYPE_UINT
__all__ += ['TYPE_INVALID', 'TYPE_NONE', 'TYPE_INTERFACE', 'TYPE_CHAR',
            'TYPE_UCHAR', 'TYPE_BOOLEAN', 'TYPE_INT', 'TYPE_UINT', 'TYPE_LONG',
            'TYPE_ULONG', 'TYPE_INT64', 'TYPE_UINT64', 'TYPE_ENUM', 'TYPE_FLAGS',
            'TYPE_FLOAT', 'TYPE_DOUBLE', 'TYPE_STRING', 'TYPE_POINTER',
            'TYPE_BOXED', 'TYPE_PARAM', 'TYPE_OBJECT', 'TYPE_PYOBJECT',
            'TYPE_GTYPE', 'TYPE_STRV', 'TYPE_VARIANT', 'TYPE_GSTRING',
            'TYPE_UNICHAR', 'TYPE_VALUE']


# Deprecated, use GLib directly
for name in ['Pid', 'GError', 'OptionGroup', 'OptionContext']:
    globals()[name] = getattr(GLib, name)
    deprecated_attr("GObject", name, "GLib." + name)
    __all__.append(name)


# Deprecated, use: GObject.ParamFlags.* directly
for name in ['PARAM_CONSTRUCT', 'PARAM_CONSTRUCT_ONLY', 'PARAM_LAX_VALIDATION',
             'PARAM_READABLE', 'PARAM_WRITABLE']:
    new_name = name.split("_", 1)[-1]
    globals()[name] = getattr(GObjectModule.ParamFlags, new_name)
    deprecated_attr("GObject", name, "GObject.ParamFlags." + new_name)
    __all__.append(name)

# PARAM_READWRITE should come from the gi module but cannot due to:
# https://bugzilla.gnome.org/show_bug.cgi?id=687615
PARAM_READWRITE = GObjectModule.ParamFlags.READABLE | \
    GObjectModule.ParamFlags.WRITABLE
__all__.append("PARAM_READWRITE")

# READWRITE is part of ParamFlags since glib 2.42. Only mark PARAM_READWRITE as
# deprecated in case ParamFlags.READWRITE is available. Also include the glib
# version in the warning so it's clear that this needs a newer glib, unlike
# the other ParamFlags related deprecations.
# https://bugzilla.gnome.org/show_bug.cgi?id=726037
if hasattr(GObjectModule.ParamFlags, "READWRITE"):
    deprecated_attr("GObject", "PARAM_READWRITE",
                    "GObject.ParamFlags.READWRITE (glib 2.42+)")


# Deprecated, use: GObject.SignalFlags.* directly
for name in ['SIGNAL_ACTION', 'SIGNAL_DETAILED', 'SIGNAL_NO_HOOKS',
             'SIGNAL_NO_RECURSE', 'SIGNAL_RUN_CLEANUP', 'SIGNAL_RUN_FIRST',
             'SIGNAL_RUN_LAST']:
    new_name = name.split("_", 1)[-1]
    globals()[name] = getattr(GObjectModule.SignalFlags, new_name)
    deprecated_attr("GObject", name, "GObject.SignalFlags." + new_name)
    __all__.append(name)

# Static types
GBoxed = _gi.GBoxed
GEnum = _gi.GEnum
GFlags = _gi.GFlags
GInterface = _gi.GInterface
GObject = _gi.GObject
GObjectWeakRef = _gi.GObjectWeakRef
GParamSpec = _gi.GParamSpec
GPointer = _gi.GPointer
GType = _gi.GType
Warning = _gi.Warning
__all__ += ['GBoxed', 'GEnum', 'GFlags', 'GInterface', 'GObject',
            'GObjectWeakRef', 'GParamSpec', 'GPointer', 'GType',
            'Warning']


features = _gi.features
list_properties = _gi.list_properties
new = _gi.new
pygobject_version = _gi.pygobject_version
threads_init = GLib.threads_init
type_register = _gi.type_register
__all__ += ['features', 'list_properties', 'new',
            'pygobject_version', 'threads_init', 'type_register']


class Value(GObjectModule.Value):
    def __init__(self, value_type=None, py_value=None):
        GObjectModule.Value.__init__(self)
        if value_type is not None:
            self.init(value_type)
            if py_value is not None:
                self.set_value(py_value)

    def __del__(self):
        if self._free_on_dealloc and self.g_type != TYPE_INVALID:
            self.unset()

        # We must call base class __del__() after unset.
        super(Value, self).__del__()

    def set_boxed(self, boxed):
        # Workaround the introspection marshalers inability to know
        # these methods should be marshaling boxed types. This is because
        # the type information is stored on the GValue.
        _gi._gvalue_set(self, boxed)

    def get_boxed(self):
        return _gi._gvalue_get(self)

    def set_value(self, py_value):
        gtype = self.g_type

        if gtype == _gi.TYPE_INVALID:
            raise TypeError("GObject.Value needs to be initialized first")
        elif gtype == TYPE_BOOLEAN:
            self.set_boolean(py_value)
        elif gtype == TYPE_CHAR:
            self.set_char(py_value)
        elif gtype == TYPE_UCHAR:
            self.set_uchar(py_value)
        elif gtype == TYPE_INT:
            self.set_int(py_value)
        elif gtype == TYPE_UINT:
            self.set_uint(py_value)
        elif gtype == TYPE_LONG:
            self.set_long(py_value)
        elif gtype == TYPE_ULONG:
            self.set_ulong(py_value)
        elif gtype == TYPE_INT64:
            self.set_int64(py_value)
        elif gtype == TYPE_UINT64:
            self.set_uint64(py_value)
        elif gtype == TYPE_FLOAT:
            self.set_float(py_value)
        elif gtype == TYPE_DOUBLE:
            self.set_double(py_value)
        elif gtype == TYPE_STRING:
            if isinstance(py_value, str):
                py_value = str(py_value)
            elif sys.version_info < (3, 0):
                if isinstance(py_value, unicode):
                    py_value = py_value.encode('UTF-8')
                else:
                    raise ValueError("Expected string or unicode but got %s%s" %
                                     (py_value, type(py_value)))
            else:
                raise ValueError("Expected string but got %s%s" %
                                 (py_value, type(py_value)))
            self.set_string(py_value)
        elif gtype == TYPE_PARAM:
            self.set_param(py_value)
        elif gtype.is_a(TYPE_ENUM):
            self.set_enum(py_value)
        elif gtype.is_a(TYPE_FLAGS):
            self.set_flags(py_value)
        elif gtype.is_a(TYPE_BOXED):
            self.set_boxed(py_value)
        elif gtype == TYPE_POINTER:
            self.set_pointer(py_value)
        elif gtype.is_a(TYPE_OBJECT):
            self.set_object(py_value)
        elif gtype == TYPE_UNICHAR:
            self.set_uint(int(py_value))
        # elif gtype == TYPE_OVERRIDE:
        #     pass
        elif gtype == TYPE_GTYPE:
            self.set_gtype(py_value)
        elif gtype == TYPE_VARIANT:
            self.set_variant(py_value)
        elif gtype == TYPE_PYOBJECT:
            self.set_boxed(py_value)
        else:
            raise TypeError("Unknown value type %s" % gtype)

    def get_value(self):
        gtype = self.g_type

        if gtype == TYPE_BOOLEAN:
            return self.get_boolean()
        elif gtype == TYPE_CHAR:
            return self.get_char()
        elif gtype == TYPE_UCHAR:
            return self.get_uchar()
        elif gtype == TYPE_INT:
            return self.get_int()
        elif gtype == TYPE_UINT:
            return self.get_uint()
        elif gtype == TYPE_LONG:
            return self.get_long()
        elif gtype == TYPE_ULONG:
            return self.get_ulong()
        elif gtype == TYPE_INT64:
            return self.get_int64()
        elif gtype == TYPE_UINT64:
            return self.get_uint64()
        elif gtype == TYPE_FLOAT:
            return self.get_float()
        elif gtype == TYPE_DOUBLE:
            return self.get_double()
        elif gtype == TYPE_STRING:
            return self.get_string()
        elif gtype == TYPE_PARAM:
            return self.get_param()
        elif gtype.is_a(TYPE_ENUM):
            return self.get_enum()
        elif gtype.is_a(TYPE_FLAGS):
            return self.get_flags()
        elif gtype.is_a(TYPE_BOXED):
            return self.get_boxed()
        elif gtype == TYPE_POINTER:
            return self.get_pointer()
        elif gtype.is_a(TYPE_OBJECT):
            return self.get_object()
        elif gtype == TYPE_UNICHAR:
            return self.get_uint()
        elif gtype == TYPE_GTYPE:
            return self.get_gtype()
        elif gtype == TYPE_VARIANT:
            return self.get_variant()
        elif gtype == TYPE_PYOBJECT:
            pass
        else:
            return None

    def __repr__(self):
        return '<Value (%s) %s>' % (self.g_type.name, self.get_value())


Value = override(Value)
__all__.append('Value')


def type_from_name(name):
    type_ = GObjectModule.type_from_name(name)
    if type_ == TYPE_INVALID:
        raise RuntimeError('unknown type name: %s' % name)
    return type_


__all__.append('type_from_name')


def type_parent(type_):
    parent = GObjectModule.type_parent(type_)
    if parent == TYPE_INVALID:
        raise RuntimeError('no parent for type')
    return parent


__all__.append('type_parent')


def _validate_type_for_signal_method(type_):
    if hasattr(type_, '__gtype__'):
        type_ = type_.__gtype__
    if not type_.is_instantiatable() and not type_.is_interface():
        raise TypeError('type must be instantiable or an interface, got %s' % type_)


def signal_list_ids(type_):
    _validate_type_for_signal_method(type_)
    return GObjectModule.signal_list_ids(type_)


__all__.append('signal_list_ids')


def signal_list_names(type_):
    ids = signal_list_ids(type_)
    return tuple(GObjectModule.signal_name(i) for i in ids)


__all__.append('signal_list_names')


def signal_lookup(name, type_):
    _validate_type_for_signal_method(type_)
    return GObjectModule.signal_lookup(name, type_)


__all__.append('signal_lookup')


SignalQuery = namedtuple('SignalQuery',
                         ['signal_id',
                          'signal_name',
                          'itype',
                          'signal_flags',
                          'return_type',
                          # n_params',
                          'param_types'])


def signal_query(id_or_name, type_=None):
    if type_ is not None:
        id_or_name = signal_lookup(id_or_name, type_)

    res = GObjectModule.signal_query(id_or_name)
    if res is None:
        return None

    if res.signal_id == 0:
        return None

    # Return a named tuple to allows indexing which is compatible with the
    # static bindings along with field like access of the gi struct.
    # Note however that the n_params was not returned from the static bindings
    # so we must skip over it.
    return SignalQuery(res.signal_id, res.signal_name, res.itype,
                       res.signal_flags, res.return_type,
                       tuple(res.param_types))


__all__.append('signal_query')


class _HandlerBlockManager(object):
    def __init__(self, obj, handler_id):
        self.obj = obj
        self.handler_id = handler_id

    def __enter__(self):
        pass

    def __exit__(self, exc_type, exc_value, traceback):
        GObjectModule.signal_handler_unblock(self.obj, self.handler_id)


def signal_handler_block(obj, handler_id):
    """Blocks the signal handler from being invoked until
    handler_unblock() is called.

    :param GObject.Object obj:
        Object instance to block handlers for.
    :param int handler_id:
        Id of signal to block.
    :returns:
        A context manager which optionally can be used to
        automatically unblock the handler:

    .. code-block:: python

        with GObject.signal_handler_block(obj, id):
            pass
    """
    GObjectModule.signal_handler_block(obj, handler_id)
    return _HandlerBlockManager(obj, handler_id)


__all__.append('signal_handler_block')


def signal_parse_name(detailed_signal, itype, force_detail_quark):
    """Parse a detailed signal name into (signal_id, detail).

    :param str detailed_signal:
        Signal name which can include detail.
        For example: "notify:prop_name"
    :returns:
        Tuple of (signal_id, detail)
    :raises ValueError:
        If the given signal is unknown.
    """
    res, signal_id, detail = GObjectModule.signal_parse_name(detailed_signal, itype,
                                                             force_detail_quark)
    if res:
        return signal_id, detail
    else:
        raise ValueError('%s: unknown signal name: %s' % (itype, detailed_signal))


__all__.append('signal_parse_name')


def remove_emission_hook(obj, detailed_signal, hook_id):
    signal_id, detail = signal_parse_name(detailed_signal, obj, True)
    GObjectModule.signal_remove_emission_hook(signal_id, hook_id)


__all__.append('remove_emission_hook')


# GObject accumulators with pure Python implementations
# These return a tuple of (continue_emission, accumulation_result)

def signal_accumulator_first_wins(ihint, return_accu, handler_return, user_data=None):
    # Stop emission but return the result of the last handler
    return (False, handler_return)


__all__.append('signal_accumulator_first_wins')


def signal_accumulator_true_handled(ihint, return_accu, handler_return, user_data=None):
    # Stop emission if the last handler returns True
    return (not handler_return, handler_return)


__all__.append('signal_accumulator_true_handled')


# Statically bound signal functions which need to clobber GI (for now)

add_emission_hook = _gi.add_emission_hook
signal_new = _gi.signal_new

__all__ += ['add_emission_hook', 'signal_new']


class _FreezeNotifyManager(object):
    def __init__(self, obj):
        self.obj = obj

    def __enter__(self):
        pass

    def __exit__(self, exc_type, exc_value, traceback):
        self.obj.thaw_notify()


def _signalmethod(func):
    # Function wrapper for signal functions used as instance methods.
    # This is needed when the signal functions come directly from GI.
    # (they are not already wrapped)
    @gi.overrides.wraps(func)
    def meth(*args, **kwargs):
        return func(*args, **kwargs)
    return meth


class Object(GObjectModule.Object):
    def _unsupported_method(self, *args, **kargs):
        raise RuntimeError('This method is currently unsupported.')

    def _unsupported_data_method(self, *args, **kargs):
        raise RuntimeError('Data access methods are unsupported. '
                           'Use normal Python attributes instead')

    # Generic data methods are not needed in python as it can be handled
    # with standard attribute access: https://bugzilla.gnome.org/show_bug.cgi?id=641944
    get_data = _unsupported_data_method
    get_qdata = _unsupported_data_method
    set_data = _unsupported_data_method
    steal_data = _unsupported_data_method
    steal_qdata = _unsupported_data_method
    replace_data = _unsupported_data_method
    replace_qdata = _unsupported_data_method

    # The following methods as unsupported until we verify
    # they work as gi methods.
    bind_property_full = _unsupported_method
    compat_control = _unsupported_method
    interface_find_property = _unsupported_method
    interface_install_property = _unsupported_method
    interface_list_properties = _unsupported_method
    notify_by_pspec = _unsupported_method
    run_dispose = _unsupported_method
    watch_closure = _unsupported_method

    # Make all reference management methods private but still accessible.
    _ref = GObjectModule.Object.ref
    _ref_sink = GObjectModule.Object.ref_sink
    _unref = GObjectModule.Object.unref
    _force_floating = GObjectModule.Object.force_floating

    ref = _unsupported_method
    ref_sink = _unsupported_method
    unref = _unsupported_method
    force_floating = _unsupported_method

    # The following methods are static APIs which need to leap frog the
    # gi methods until we verify the gi methods can replace them.
    get_property = _gi.GObject.get_property
    get_properties = _gi.GObject.get_properties
    set_property = _gi.GObject.set_property
    set_properties = _gi.GObject.set_properties
    bind_property = _gi.GObject.bind_property
    connect = _gi.GObject.connect
    connect_after = _gi.GObject.connect_after
    connect_object = _gi.GObject.connect_object
    connect_object_after = _gi.GObject.connect_object_after
    disconnect_by_func = _gi.GObject.disconnect_by_func
    handler_block_by_func = _gi.GObject.handler_block_by_func
    handler_unblock_by_func = _gi.GObject.handler_unblock_by_func
    emit = _gi.GObject.emit
    chain = _gi.GObject.chain
    weak_ref = _gi.GObject.weak_ref
    __copy__ = _gi.GObject.__copy__
    __deepcopy__ = _gi.GObject.__deepcopy__

    def freeze_notify(self):
        """Freezes the object's property-changed notification queue.

        :returns:
            A context manager which optionally can be used to
            automatically thaw notifications.

        This will freeze the object so that "notify" signals are blocked until
        the thaw_notify() method is called.

        .. code-block:: python

            with obj.freeze_notify():
                pass
        """
        super(Object, self).freeze_notify()
        return _FreezeNotifyManager(self)

    def connect_data(self, detailed_signal, handler, *data, **kwargs):
        """Connect a callback to the given signal with optional user data.

        :param str detailed_signal:
            A detailed signal to connect to.
        :param callable handler:
            Callback handler to connect to the signal.
        :param *data:
            Variable data which is passed through to the signal handler.
        :param GObject.ConnectFlags connect_flags:
            Flags used for connection options.
        :returns:
            A signal id which can be used with disconnect.
        """
        flags = kwargs.get('connect_flags', 0)
        if flags & GObjectModule.ConnectFlags.AFTER:
            connect_func = _gi.GObject.connect_after
        else:
            connect_func = _gi.GObject.connect

        if flags & GObjectModule.ConnectFlags.SWAPPED:
            if len(data) != 1:
                raise ValueError('Using GObject.ConnectFlags.SWAPPED requires exactly '
                                 'one argument for user data, got: %s' % [data])

            def new_handler(obj, *args):
                # Swap obj with the last element in args which will be the user
                # data passed to the connect function.
                args = list(args)
                swap = args.pop()
                args = args + [obj]
                return handler(swap, *args)
        else:
            new_handler = handler

        return connect_func(self, detailed_signal, new_handler, *data)

    #
    # Aliases
    #

    handler_block = signal_handler_block
    handler_unblock = _signalmethod(GObjectModule.signal_handler_unblock)
    disconnect = _signalmethod(GObjectModule.signal_handler_disconnect)
    handler_disconnect = _signalmethod(GObjectModule.signal_handler_disconnect)
    handler_is_connected = _signalmethod(GObjectModule.signal_handler_is_connected)
    stop_emission_by_name = _signalmethod(GObjectModule.signal_stop_emission_by_name)

    #
    # Deprecated Methods
    #

    def stop_emission(self, detailed_signal):
        """Deprecated, please use stop_emission_by_name."""
        warnings.warn(self.stop_emission.__doc__, PyGIDeprecationWarning, stacklevel=2)
        return self.stop_emission_by_name(detailed_signal)

    emit_stop_by_name = stop_emission


Object = override(Object)
GObject = Object
__all__ += ['Object', 'GObject']


class Binding(GObjectModule.Binding):
    def __call__(self):
        warnings.warn('Using parentheses (binding()) to retrieve the Binding object is no '
                      'longer needed because the binding is returned directly from "bind_property.',
                      PyGIDeprecationWarning, stacklevel=2)
        return self

    def unbind(self):
        if hasattr(self, '_unbound'):
            raise ValueError('binding has already been cleared out')
        else:
            setattr(self, '_unbound', True)
            super(Binding, self).unbind()


Binding = override(Binding)
__all__.append('Binding')


Property = propertyhelper.Property
Signal = signalhelper.Signal
SignalOverride = signalhelper.SignalOverride
# Deprecated naming "property" available for backwards compatibility.
# Keep this at the end of the file to avoid clobbering the builtin.
property = Property
deprecated_attr("GObject", "property", "GObject.Property")
__all__ += ['Property', 'Signal', 'SignalOverride', 'property']
overrides/Gio.py000064400000021476151734360770007665 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2010 Ignacio Casal Quinteiro <icq@gnome.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

import warnings

from .._ossighelper import wakeup_on_signal, register_sigint_fallback
from ..overrides import override, deprecated_init
from ..module import get_introspection_module
from gi import PyGIWarning

from gi.repository import GLib

import sys

Gio = get_introspection_module('Gio')

__all__ = []


class Application(Gio.Application):

    def run(self, *args, **kwargs):
        with register_sigint_fallback(self.quit):
            with wakeup_on_signal():
                return Gio.Application.run(self, *args, **kwargs)


Application = override(Application)
__all__.append('Application')


class VolumeMonitor(Gio.VolumeMonitor):

    def __init__(self, *args, **kwargs):
        super(VolumeMonitor, self).__init__(*args, **kwargs)

        # https://bugzilla.gnome.org/show_bug.cgi?id=744690
        warnings.warn(
            "Gio.VolumeMonitor shouldn't be instantiated directly, "
            "use Gio.VolumeMonitor.get() instead.",
            PyGIWarning, stacklevel=2)


VolumeMonitor = override(VolumeMonitor)
__all__.append('VolumeMonitor')


class FileEnumerator(Gio.FileEnumerator):
    def __iter__(self):
        return self

    def __next__(self):
        file_info = self.next_file(None)

        if file_info is not None:
            return file_info
        else:
            raise StopIteration

    # python 2 compat for the iter protocol
    next = __next__


FileEnumerator = override(FileEnumerator)
__all__.append('FileEnumerator')


class MenuItem(Gio.MenuItem):
    def set_attribute(self, attributes):
        for (name, format_string, value) in attributes:
            self.set_attribute_value(name, GLib.Variant(format_string, value))


MenuItem = override(MenuItem)
__all__.append('MenuItem')


class Settings(Gio.Settings):
    '''Provide dictionary-like access to GLib.Settings.'''

    __init__ = deprecated_init(Gio.Settings.__init__,
                               arg_names=('schema', 'path', 'backend'))

    def __contains__(self, key):
        return key in self.list_keys()

    def __len__(self):
        return len(self.list_keys())

    def __bool__(self):
        # for "if mysettings" we don't want a dictionary-like test here, just
        # if the object isn't None
        return True

    # alias for Python 2.x object protocol
    __nonzero__ = __bool__

    def __getitem__(self, key):
        # get_value() aborts the program on an unknown key
        if key not in self:
            raise KeyError('unknown key: %r' % (key,))

        return self.get_value(key).unpack()

    def __setitem__(self, key, value):
        # set_value() aborts the program on an unknown key
        if key not in self:
            raise KeyError('unknown key: %r' % (key,))

        # determine type string of this key
        range = self.get_range(key)
        type_ = range.get_child_value(0).get_string()
        v = range.get_child_value(1)
        if type_ == 'type':
            # v is boxed empty array, type of its elements is the allowed value type
            type_str = v.get_child_value(0).get_type_string()
            assert type_str.startswith('a')
            type_str = type_str[1:]
        elif type_ == 'enum':
            # v is an array with the allowed values
            assert v.get_child_value(0).get_type_string().startswith('a')
            type_str = v.get_child_value(0).get_child_value(0).get_type_string()
            allowed = v.unpack()
            if value not in allowed:
                raise ValueError('value %s is not an allowed enum (%s)' % (value, allowed))
        else:
            raise NotImplementedError('Cannot handle allowed type range class ' + str(type_))

        self.set_value(key, GLib.Variant(type_str, value))

    def keys(self):
        return self.list_keys()


Settings = override(Settings)
__all__.append('Settings')


class _DBusProxyMethodCall:
    '''Helper class to implement DBusProxy method calls.'''

    def __init__(self, dbus_proxy, method_name):
        self.dbus_proxy = dbus_proxy
        self.method_name = method_name

    def __async_result_handler(self, obj, result, user_data):
        (result_callback, error_callback, real_user_data) = user_data
        try:
            ret = obj.call_finish(result)
        except Exception:
            etype, e = sys.exc_info()[:2]
            # return exception as value
            if error_callback:
                error_callback(obj, e, real_user_data)
            else:
                result_callback(obj, e, real_user_data)
            return

        result_callback(obj, self._unpack_result(ret), real_user_data)

    def __call__(self, *args, **kwargs):
        # the first positional argument is the signature, unless we are calling
        # a method without arguments; then signature is implied to be '()'.
        if args:
            signature = args[0]
            args = args[1:]
            if not isinstance(signature, str):
                raise TypeError('first argument must be the method signature string: %r' % signature)
        else:
            signature = '()'

        arg_variant = GLib.Variant(signature, tuple(args))

        if 'result_handler' in kwargs:
            # asynchronous call
            user_data = (kwargs['result_handler'],
                         kwargs.get('error_handler'),
                         kwargs.get('user_data'))
            self.dbus_proxy.call(self.method_name, arg_variant,
                                 kwargs.get('flags', 0), kwargs.get('timeout', -1), None,
                                 self.__async_result_handler, user_data)
        else:
            # synchronous call
            result = self.dbus_proxy.call_sync(self.method_name, arg_variant,
                                               kwargs.get('flags', 0),
                                               kwargs.get('timeout', -1),
                                               None)
            return self._unpack_result(result)

    @classmethod
    def _unpack_result(klass, result):
        '''Convert a D-BUS return variant into an appropriate return value'''

        result = result.unpack()

        # to be compatible with standard Python behaviour, unbox
        # single-element tuples and return None for empty result tuples
        if len(result) == 1:
            result = result[0]
        elif len(result) == 0:
            result = None

        return result


class DBusProxy(Gio.DBusProxy):
    '''Provide comfortable and pythonic method calls.

    This marshalls the method arguments into a GVariant, invokes the
    call_sync() method on the DBusProxy object, and unmarshalls the result
    GVariant back into a Python tuple.

    The first argument always needs to be the D-Bus signature tuple of the
    method call. Example:

      proxy = Gio.DBusProxy.new_sync(...)
      result = proxy.MyMethod('(is)', 42, 'hello')

    The exception are methods which take no arguments, like
    proxy.MyMethod('()'). For these you can omit the signature and just write
    proxy.MyMethod().

    Optional keyword arguments:

    - timeout: timeout for the call in milliseconds (default to D-Bus timeout)

    - flags: Combination of Gio.DBusCallFlags.*

    - result_handler: Do an asynchronous method call and invoke
         result_handler(proxy_object, result, user_data) when it finishes.

    - error_handler: If the asynchronous call raises an exception,
      error_handler(proxy_object, exception, user_data) is called when it
      finishes. If error_handler is not given, result_handler is called with
      the exception object as result instead.

    - user_data: Optional user data to pass to result_handler for
      asynchronous calls.

    Example for asynchronous calls:

      def mymethod_done(proxy, result, user_data):
          if isinstance(result, Exception):
              # handle error
          else:
              # do something with result

      proxy.MyMethod('(is)', 42, 'hello',
          result_handler=mymethod_done, user_data='data')
    '''
    def __getattr__(self, name):
        return _DBusProxyMethodCall(self, name)


DBusProxy = override(DBusProxy)
__all__.append('DBusProxy')
overrides/Pango.py000064400000003221151734360770010177 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2010 Paolo Borelli <pborelli@gnome.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from ..overrides import override
from ..module import get_introspection_module

Pango = get_introspection_module('Pango')

__all__ = []


class FontDescription(Pango.FontDescription):

    def __new__(cls, string=None):
        if string is not None:
            return Pango.font_description_from_string(string)
        else:
            return Pango.FontDescription.__new__(cls)

    def __init__(self, *args, **kwargs):
        return super(FontDescription, self).__init__()


FontDescription = override(FontDescription)
__all__.append('FontDescription')


class Layout(Pango.Layout):

    def __new__(cls, context):
        return Pango.Layout.new(context)

    def set_markup(self, text, length=-1):
        super(Layout, self).set_markup(text, length)


Layout = override(Layout)
__all__.append('Layout')
overrides/Gdk.py000064400000036537151734360770007660 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2009 Johan Dahlin <johan@gnome.org>
#               2010 Simon van der Linden <svdlinden@src.gnome.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

import sys
import warnings

from ..overrides import override, strip_boolean_result
from ..module import get_introspection_module
from gi import PyGIDeprecationWarning, require_version

Gdk = get_introspection_module('Gdk')

__all__ = []


# https://bugzilla.gnome.org/show_bug.cgi?id=673396
try:
    require_version("GdkX11", Gdk._version)
    from gi.repository import GdkX11
    GdkX11  # pyflakes
except (ValueError, ImportError):
    pass

if hasattr(Gdk, 'Color'):
    # Gdk.Color was deprecated since 3.14 and dropped in Gtk+-4.0
    class Color(Gdk.Color):
        MAX_VALUE = 65535

        def __init__(self, red, green, blue):
            Gdk.Color.__init__(self)
            self.red = red
            self.green = green
            self.blue = blue

        def __eq__(self, other):
            return self.equal(other)

        def __repr__(self):
            return 'Gdk.Color(red=%d, green=%d, blue=%d)' % (self.red, self.green, self.blue)

        red_float = property(fget=lambda self: self.red / float(self.MAX_VALUE),
                             fset=lambda self, v: setattr(self, 'red', int(v * self.MAX_VALUE)))

        green_float = property(fget=lambda self: self.green / float(self.MAX_VALUE),
                               fset=lambda self, v: setattr(self, 'green', int(v * self.MAX_VALUE)))

        blue_float = property(fget=lambda self: self.blue / float(self.MAX_VALUE),
                              fset=lambda self, v: setattr(self, 'blue', int(v * self.MAX_VALUE)))

        def to_floats(self):
            """Return (red_float, green_float, blue_float) triple."""

            return (self.red_float, self.green_float, self.blue_float)

        @staticmethod
        def from_floats(red, green, blue):
            """Return a new Color object from red/green/blue values from 0.0 to 1.0."""

            return Color(int(red * Color.MAX_VALUE),
                         int(green * Color.MAX_VALUE),
                         int(blue * Color.MAX_VALUE))

    Color = override(Color)
    __all__.append('Color')

if hasattr(Gdk, 'RGBA'):
    # Introduced since Gtk+-3.0
    class RGBA(Gdk.RGBA):
        def __init__(self, red=1.0, green=1.0, blue=1.0, alpha=1.0):
            Gdk.RGBA.__init__(self)
            self.red = red
            self.green = green
            self.blue = blue
            self.alpha = alpha

        def __eq__(self, other):
            return self.equal(other)

        def __repr__(self):
            return 'Gdk.RGBA(red=%f, green=%f, blue=%f, alpha=%f)' % (self.red, self.green, self.blue, self.alpha)

        def __iter__(self):
            """Iterator which allows easy conversion to tuple and list types."""

            yield self.red
            yield self.green
            yield self.blue
            yield self.alpha

        def to_color(self):
            """Converts this RGBA into a Color instance which excludes alpha."""

            return Color(int(self.red * Color.MAX_VALUE),
                         int(self.green * Color.MAX_VALUE),
                         int(self.blue * Color.MAX_VALUE))

        @classmethod
        def from_color(cls, color):
            """Returns a new RGBA instance given a Color instance."""

            return cls(color.red_float, color.green_float, color.blue_float)

    RGBA = override(RGBA)
    __all__.append('RGBA')

if Gdk._version == '2.0':
    class Rectangle(Gdk.Rectangle):

        def __init__(self, x, y, width, height):
            Gdk.Rectangle.__init__(self)
            self.x = x
            self.y = y
            self.width = width
            self.height = height

        def __repr__(self):
            return 'Gdk.Rectangle(x=%d, y=%d, width=%d, height=%d)' % (self.x, self.y, self.height, self.width)

    Rectangle = override(Rectangle)
    __all__.append('Rectangle')
else:
    # Newer GTK+/gobject-introspection (3.17.x) include GdkRectangle in the
    # typelib. See https://bugzilla.gnome.org/show_bug.cgi?id=748832 and
    # https://bugzilla.gnome.org/show_bug.cgi?id=748833
    if not hasattr(Gdk, 'Rectangle'):
        from gi.repository import cairo as _cairo
        Rectangle = _cairo.RectangleInt

        __all__.append('Rectangle')
    else:
        # https://bugzilla.gnome.org/show_bug.cgi?id=756364
        # These methods used to be functions, keep aliases for backwards compat
        rectangle_intersect = Gdk.Rectangle.intersect
        rectangle_union = Gdk.Rectangle.union

        __all__.append('rectangle_intersect')
        __all__.append('rectangle_union')

if Gdk._version == '2.0':
    class Drawable(Gdk.Drawable):
        def cairo_create(self):
            return Gdk.cairo_create(self)

    Drawable = override(Drawable)
    __all__.append('Drawable')
else:
    class Window(Gdk.Window):
        def __new__(cls, parent, attributes, attributes_mask):
            # Gdk.Window had to be made abstract,
            # this override allows using the standard constructor
            return Gdk.Window.new(parent, attributes, attributes_mask)

        def __init__(self, parent, attributes, attributes_mask):
            pass

        def cairo_create(self):
            return Gdk.cairo_create(self)

    Window = override(Window)
    __all__.append('Window')

Gdk.EventType._2BUTTON_PRESS = getattr(Gdk.EventType, "2BUTTON_PRESS")
Gdk.EventType._3BUTTON_PRESS = getattr(Gdk.EventType, "3BUTTON_PRESS")


class Event(Gdk.Event):
    _UNION_MEMBERS = {
        Gdk.EventType.DELETE: 'any',
        Gdk.EventType.DESTROY: 'any',
        Gdk.EventType.EXPOSE: 'expose',
        Gdk.EventType.MOTION_NOTIFY: 'motion',
        Gdk.EventType.BUTTON_PRESS: 'button',
        Gdk.EventType._2BUTTON_PRESS: 'button',
        Gdk.EventType._3BUTTON_PRESS: 'button',
        Gdk.EventType.BUTTON_RELEASE: 'button',
        Gdk.EventType.KEY_PRESS: 'key',
        Gdk.EventType.KEY_RELEASE: 'key',
        Gdk.EventType.ENTER_NOTIFY: 'crossing',
        Gdk.EventType.LEAVE_NOTIFY: 'crossing',
        Gdk.EventType.FOCUS_CHANGE: 'focus_change',
        Gdk.EventType.CONFIGURE: 'configure',
        Gdk.EventType.MAP: 'any',
        Gdk.EventType.UNMAP: 'any',
        Gdk.EventType.PROPERTY_NOTIFY: 'property',
        Gdk.EventType.SELECTION_CLEAR: 'selection',
        Gdk.EventType.SELECTION_REQUEST: 'selection',
        Gdk.EventType.SELECTION_NOTIFY: 'selection',
        Gdk.EventType.PROXIMITY_IN: 'proximity',
        Gdk.EventType.PROXIMITY_OUT: 'proximity',
        Gdk.EventType.DRAG_ENTER: 'dnd',
        Gdk.EventType.DRAG_LEAVE: 'dnd',
        Gdk.EventType.DRAG_MOTION: 'dnd',
        Gdk.EventType.DRAG_STATUS: 'dnd',
        Gdk.EventType.DROP_START: 'dnd',
        Gdk.EventType.DROP_FINISHED: 'dnd',
        Gdk.EventType.CLIENT_EVENT: 'client',
        Gdk.EventType.VISIBILITY_NOTIFY: 'visibility',
    }

    if Gdk._version == '2.0':
        _UNION_MEMBERS[Gdk.EventType.NO_EXPOSE] = 'no_expose'

    if hasattr(Gdk.EventType, 'TOUCH_BEGIN'):
        _UNION_MEMBERS.update(
            {
                Gdk.EventType.TOUCH_BEGIN: 'touch',
                Gdk.EventType.TOUCH_UPDATE: 'touch',
                Gdk.EventType.TOUCH_END: 'touch',
                Gdk.EventType.TOUCH_CANCEL: 'touch',
            })

    def __getattr__(self, name):
        real_event = getattr(self, '_UNION_MEMBERS').get(self.type)
        if real_event:
            return getattr(getattr(self, real_event), name)
        else:
            raise AttributeError("'%s' object has no attribute '%s'" % (self.__class__.__name__, name))

    def __setattr__(self, name, value):
        real_event = getattr(self, '_UNION_MEMBERS').get(self.type)
        if real_event:
            setattr(getattr(self, real_event), name, value)
        else:
            Gdk.Event.__setattr__(self, name, value)

    def __repr__(self):
        base_repr = Gdk.Event.__repr__(self).strip("><")
        return "<%s type=%r>" % (base_repr, self.type)


Event = override(Event)
__all__.append('Event')

# manually bind GdkEvent members to GdkEvent

modname = globals()['__name__']
module = sys.modules[modname]

# right now we can't get the type_info from the
# field info so manually list the class names
event_member_classes = ['EventAny',
                        'EventExpose',
                        'EventVisibility',
                        'EventMotion',
                        'EventButton',
                        'EventScroll',
                        'EventKey',
                        'EventCrossing',
                        'EventFocus',
                        'EventConfigure',
                        'EventProperty',
                        'EventSelection',
                        'EventOwnerChange',
                        'EventProximity',
                        'EventDND',
                        'EventWindowState',
                        'EventSetting',
                        'EventGrabBroken']

if Gdk._version == '2.0':
    event_member_classes.append('EventNoExpose')

if hasattr(Gdk, 'EventTouch'):
    event_member_classes.append('EventTouch')


# whitelist all methods that have a success return we want to mask
gsuccess_mask_funcs = ['get_state',
                       'get_axis',
                       'get_coords',
                       'get_root_coords']


for event_class in event_member_classes:
    override_class = type(event_class, (getattr(Gdk, event_class),), {})
    # add the event methods
    for method_info in Gdk.Event.__info__.get_methods():
        name = method_info.get_name()
        event_method = getattr(Gdk.Event, name)
        # python2 we need to use the __func__ attr to avoid internal
        # instance checks
        event_method = getattr(event_method, '__func__', event_method)

        # use the _gsuccess_mask decorator if this method is whitelisted
        if name in gsuccess_mask_funcs:
            event_method = strip_boolean_result(event_method)
        setattr(override_class, name, event_method)

    setattr(module, event_class, override_class)
    __all__.append(event_class)

# end GdkEvent overrides


class DragContext(Gdk.DragContext):
    def finish(self, success, del_, time):
        Gtk = get_introspection_module('Gtk')
        Gtk.drag_finish(self, success, del_, time)


DragContext = override(DragContext)
__all__.append('DragContext')


class Cursor(Gdk.Cursor):

    def __new__(cls, *args, **kwds):
        arg_len = len(args)
        kwd_len = len(kwds)
        total_len = arg_len + kwd_len

        if total_len == 1:
            if Gdk._version == "4.0":
                raise ValueError("Wrong number of parameters")
            # Since g_object_newv (super.__new__) does not seem valid for
            # direct use with GdkCursor, we must assume usage of at least
            # one of the C constructors to be valid.
            return cls.new(*args, **kwds)

        elif total_len == 2:
            warnings.warn('Calling "Gdk.Cursor(display, cursor_type)" has been deprecated. '
                          'Please use Gdk.Cursor.new_for_display(display, cursor_type). '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations',
                          PyGIDeprecationWarning)
            return cls.new_for_display(*args, **kwds)

        elif total_len == 4:
            warnings.warn('Calling "Gdk.Cursor(display, pixbuf, x, y)" has been deprecated. '
                          'Please use Gdk.Cursor.new_from_pixbuf(display, pixbuf, x, y). '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations',
                          PyGIDeprecationWarning)
            return cls.new_from_pixbuf(*args, **kwds)

        elif total_len == 6:
            if Gdk._version != '2.0':
                # pixmaps don't exist in Gdk 3.0
                raise ValueError("Wrong number of parameters")

            warnings.warn('Calling "Gdk.Cursor(source, mask, fg, bg, x, y)" has been deprecated. '
                          'Please use Gdk.Cursor.new_from_pixmap(source, mask, fg, bg, x, y). '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations',
                          PyGIDeprecationWarning)
            return cls.new_from_pixmap(*args, **kwds)

        else:
            raise ValueError("Wrong number of parameters")


Cursor = override(Cursor)
__all__.append('Cursor')

if hasattr(Gdk, 'color_parse'):
    # Gdk.Color was deprecated since 3.14 and dropped in Gtk+-4.0
    color_parse = strip_boolean_result(Gdk.color_parse)
    __all__.append('color_parse')


# Note, we cannot override the entire class as Gdk.Atom has no gtype, so just
# hack some individual methods
def _gdk_atom_str(atom):
    n = atom.name()
    if n:
        return n
    # fall back to atom index
    return 'Gdk.Atom<%i>' % hash(atom)


def _gdk_atom_repr(atom):
    n = atom.name()
    if n:
        return 'Gdk.Atom.intern("%s", False)' % n
    # fall back to atom index
    return '<Gdk.Atom(%i)>' % hash(atom)


Gdk.Atom.__str__ = _gdk_atom_str
Gdk.Atom.__repr__ = _gdk_atom_repr


# constants
if Gdk._version >= '3.0':
    SELECTION_PRIMARY = Gdk.atom_intern('PRIMARY', True)
    __all__.append('SELECTION_PRIMARY')

    SELECTION_SECONDARY = Gdk.atom_intern('SECONDARY', True)
    __all__.append('SELECTION_SECONDARY')

    SELECTION_CLIPBOARD = Gdk.atom_intern('CLIPBOARD', True)
    __all__.append('SELECTION_CLIPBOARD')

    TARGET_BITMAP = Gdk.atom_intern('BITMAP', True)
    __all__.append('TARGET_BITMAP')

    TARGET_COLORMAP = Gdk.atom_intern('COLORMAP', True)
    __all__.append('TARGET_COLORMAP')

    TARGET_DRAWABLE = Gdk.atom_intern('DRAWABLE', True)
    __all__.append('TARGET_DRAWABLE')

    TARGET_PIXMAP = Gdk.atom_intern('PIXMAP', True)
    __all__.append('TARGET_PIXMAP')

    TARGET_STRING = Gdk.atom_intern('STRING', True)
    __all__.append('TARGET_STRING')

    SELECTION_TYPE_ATOM = Gdk.atom_intern('ATOM', True)
    __all__.append('SELECTION_TYPE_ATOM')

    SELECTION_TYPE_BITMAP = Gdk.atom_intern('BITMAP', True)
    __all__.append('SELECTION_TYPE_BITMAP')

    SELECTION_TYPE_COLORMAP = Gdk.atom_intern('COLORMAP', True)
    __all__.append('SELECTION_TYPE_COLORMAP')

    SELECTION_TYPE_DRAWABLE = Gdk.atom_intern('DRAWABLE', True)
    __all__.append('SELECTION_TYPE_DRAWABLE')

    SELECTION_TYPE_INTEGER = Gdk.atom_intern('INTEGER', True)
    __all__.append('SELECTION_TYPE_INTEGER')

    SELECTION_TYPE_PIXMAP = Gdk.atom_intern('PIXMAP', True)
    __all__.append('SELECTION_TYPE_PIXMAP')

    SELECTION_TYPE_WINDOW = Gdk.atom_intern('WINDOW', True)
    __all__.append('SELECTION_TYPE_WINDOW')

    SELECTION_TYPE_STRING = Gdk.atom_intern('STRING', True)
    __all__.append('SELECTION_TYPE_STRING')

if Gdk._version in ('2.0', '3.0'):
    import sys
    initialized, argv = Gdk.init_check(sys.argv)
overrides/GIMarshallingTests.py000064400000004302151734360770012640 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2010 Simon van der Linden <svdlinden@src.gnome.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from ..overrides import override
from ..module import get_introspection_module

GIMarshallingTests = get_introspection_module('GIMarshallingTests')

__all__ = []

OVERRIDES_CONSTANT = 7
__all__.append('OVERRIDES_CONSTANT')


class OverridesStruct(GIMarshallingTests.OverridesStruct):

    def __new__(cls, long_):
        return GIMarshallingTests.OverridesStruct.__new__(cls)

    def __init__(self, long_):
        GIMarshallingTests.OverridesStruct.__init__(self)
        self.long_ = long_

    def method(self):
        return GIMarshallingTests.OverridesStruct.method(self) / 7


OverridesStruct = override(OverridesStruct)
__all__.append('OverridesStruct')


class OverridesObject(GIMarshallingTests.OverridesObject):

    def __new__(cls, long_):
        return GIMarshallingTests.OverridesObject.__new__(cls)

    def __init__(self, long_):
        GIMarshallingTests.OverridesObject.__init__(self)
        # FIXME: doesn't work yet
        # self.long_ = long_

    @classmethod
    def new(cls, long_):
        self = GIMarshallingTests.OverridesObject.new()
        # FIXME: doesn't work yet
        # self.long_ = long_
        return self

    def method(self):
        """Overridden doc string."""
        return GIMarshallingTests.OverridesObject.method(self) / 7


OverridesObject = override(OverridesObject)
__all__.append('OverridesObject')
overrides/Gtk.py000064400000161735151734360770007677 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2009 Johan Dahlin <johan@gnome.org>
#               2010 Simon van der Linden <svdlinden@src.gnome.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

import collections
import sys
import warnings

from gi.repository import GObject
from .._ossighelper import wakeup_on_signal, register_sigint_fallback
from ..overrides import override, strip_boolean_result, deprecated_init
from ..module import get_introspection_module
from gi import PyGIDeprecationWarning

if sys.version_info >= (3, 0):
    _basestring = str
else:
    _basestring = basestring

Gtk = get_introspection_module('Gtk')

__all__ = []

if Gtk._version == '2.0':
    warn_msg = "You have imported the Gtk 2.0 module.  Because Gtk 2.0 \
was not designed for use with introspection some of the \
interfaces and API will fail.  As such this is not supported \
by the pygobject development team and we encourage you to \
port your app to Gtk 3 or greater. PyGTK is the recomended \
python module to use with Gtk 2.0"

    warnings.warn(warn_msg, RuntimeWarning)


class PyGTKDeprecationWarning(PyGIDeprecationWarning):
    pass


__all__.append('PyGTKDeprecationWarning')


def _construct_target_list(targets):
    """Create a list of TargetEntry items from a list of tuples in the form (target, flags, info)

    The list can also contain existing TargetEntry items in which case the existing entry
    is re-used in the return list.
    """
    target_entries = []
    for entry in targets:
        if not isinstance(entry, Gtk.TargetEntry):
            entry = Gtk.TargetEntry.new(*entry)
        target_entries.append(entry)
    return target_entries


__all__.append('_construct_target_list')


def _extract_handler_and_args(obj_or_map, handler_name):
    handler = None
    if isinstance(obj_or_map, collections.Mapping):
        handler = obj_or_map.get(handler_name, None)
    else:
        handler = getattr(obj_or_map, handler_name, None)

    if handler is None:
        raise AttributeError('Handler %s not found' % handler_name)

    args = ()
    if isinstance(handler, collections.Sequence):
        if len(handler) == 0:
            raise TypeError("Handler %s tuple can not be empty" % handler)
        args = handler[1:]
        handler = handler[0]

    elif not callable(handler):
        raise TypeError('Handler %s is not a method, function or tuple' % handler)

    return handler, args


# Exposed for unit-testing.
__all__.append('_extract_handler_and_args')


def _builder_connect_callback(builder, gobj, signal_name, handler_name, connect_obj, flags, obj_or_map):
    handler, args = _extract_handler_and_args(obj_or_map, handler_name)

    after = flags & GObject.ConnectFlags.AFTER
    if connect_obj is not None:
        if after:
            gobj.connect_object_after(signal_name, handler, connect_obj, *args)
        else:
            gobj.connect_object(signal_name, handler, connect_obj, *args)
    else:
        if after:
            gobj.connect_after(signal_name, handler, *args)
        else:
            gobj.connect(signal_name, handler, *args)


class Widget(Gtk.Widget):

    translate_coordinates = strip_boolean_result(Gtk.Widget.translate_coordinates)

    def drag_dest_set_target_list(self, target_list):
        if (target_list is not None) and (not isinstance(target_list, Gtk.TargetList)):
            target_list = Gtk.TargetList.new(_construct_target_list(target_list))
        super(Widget, self).drag_dest_set_target_list(target_list)

    def drag_source_set_target_list(self, target_list):
        if (target_list is not None) and (not isinstance(target_list, Gtk.TargetList)):
            target_list = Gtk.TargetList.new(_construct_target_list(target_list))
        super(Widget, self).drag_source_set_target_list(target_list)

    def style_get_property(self, property_name, value=None):
        if value is None:
            prop = self.find_style_property(property_name)
            if prop is None:
                raise ValueError('Class "%s" does not contain style property "%s"' %
                                 (self, property_name))
            value = GObject.Value(prop.value_type)

        Gtk.Widget.style_get_property(self, property_name, value)
        return value.get_value()


Widget = override(Widget)
__all__.append('Widget')


class Container(Gtk.Container, Widget):

    def __len__(self):
        return len(self.get_children())

    def __contains__(self, child):
        return child in self.get_children()

    def __iter__(self):
        return iter(self.get_children())

    def __bool__(self):
        return True

    # alias for Python 2.x object protocol
    __nonzero__ = __bool__

    get_focus_chain = strip_boolean_result(Gtk.Container.get_focus_chain)

    def child_get_property(self, child, property_name, value=None):
        if value is None:
            prop = self.find_child_property(property_name)
            if prop is None:
                raise ValueError('Class "%s" does not contain child property "%s"' %
                                 (self, property_name))
            value = GObject.Value(prop.value_type)

        Gtk.Container.child_get_property(self, child, property_name, value)
        return value.get_value()

    def child_get(self, child, *prop_names):
        """Returns a list of child property values for the given names."""
        return [self.child_get_property(child, name) for name in prop_names]

    def child_set(self, child, **kwargs):
        """Set a child properties on the given child to key/value pairs."""
        for name, value in kwargs.items():
            name = name.replace('_', '-')
            self.child_set_property(child, name, value)


Container = override(Container)
__all__.append('Container')


class Editable(Gtk.Editable):

    def insert_text(self, text, position):
        return super(Editable, self).insert_text(text, -1, position)

    get_selection_bounds = strip_boolean_result(Gtk.Editable.get_selection_bounds, fail_ret=())


Editable = override(Editable)
__all__.append("Editable")


if Gtk._version in ("2.0", "3.0"):
    class Action(Gtk.Action):
        __init__ = deprecated_init(Gtk.Action.__init__,
                                   arg_names=('name', 'label', 'tooltip', 'stock_id'),
                                   category=PyGTKDeprecationWarning)

    Action = override(Action)
    __all__.append("Action")

    class RadioAction(Gtk.RadioAction):
        __init__ = deprecated_init(Gtk.RadioAction.__init__,
                                   arg_names=('name', 'label', 'tooltip', 'stock_id', 'value'),
                                   category=PyGTKDeprecationWarning)

    RadioAction = override(RadioAction)
    __all__.append("RadioAction")

    class ActionGroup(Gtk.ActionGroup):
        __init__ = deprecated_init(Gtk.ActionGroup.__init__,
                                   arg_names=('name',),
                                   category=PyGTKDeprecationWarning)

        def add_actions(self, entries, user_data=None):
            """
            The add_actions() method is a convenience method that creates a number
            of gtk.Action  objects based on the information in the list of action
            entry tuples contained in entries and adds them to the action group.
            The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            """
            try:
                iter(entries)
            except (TypeError):
                raise TypeError('entries must be iterable')

            def _process_action(name, stock_id=None, label=None, accelerator=None, tooltip=None, callback=None):
                action = Action(name=name, label=label, tooltip=tooltip, stock_id=stock_id)
                if callback is not None:
                    if user_data is None:
                        action.connect('activate', callback)
                    else:
                        action.connect('activate', callback, user_data)

                self.add_action_with_accel(action, accelerator)

            for e in entries:
                # using inner function above since entries can leave out optional arguments
                _process_action(*e)

        def add_toggle_actions(self, entries, user_data=None):
            """
            The add_toggle_actions() method is a convenience method that creates a
            number of gtk.ToggleAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The toggle action entry tuples can vary in size from one to seven
            items with the following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.
                * A flag indicating whether the toggle action is active. Optional
                  with a default value of False.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            """

            try:
                iter(entries)
            except (TypeError):
                raise TypeError('entries must be iterable')

            def _process_action(name, stock_id=None, label=None, accelerator=None, tooltip=None, callback=None, is_active=False):
                action = Gtk.ToggleAction(name=name, label=label, tooltip=tooltip, stock_id=stock_id)
                action.set_active(is_active)
                if callback is not None:
                    if user_data is None:
                        action.connect('activate', callback)
                    else:
                        action.connect('activate', callback, user_data)

                self.add_action_with_accel(action, accelerator)

            for e in entries:
                # using inner function above since entries can leave out optional arguments
                _process_action(*e)

        def add_radio_actions(self, entries, value=None, on_change=None, user_data=None):
            """
            The add_radio_actions() method is a convenience method that creates a
            number of gtk.RadioAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The value to set on the radio action. Optional with a default
                  value of 0. Should be specified in applications.

            The value parameter specifies the radio action that should be set
            active. The "changed" signal of the first radio action is connected to
            the on_change callback (if specified and not None) and the accel paths
            of the actions are set to <Actions>/group-name/action-name.
            """
            try:
                iter(entries)
            except (TypeError):
                raise TypeError('entries must be iterable')

            first_action = None

            def _process_action(group_source, name, stock_id=None, label=None, accelerator=None, tooltip=None, entry_value=0):
                action = RadioAction(name=name, label=label, tooltip=tooltip, stock_id=stock_id, value=entry_value)

                # FIXME: join_group is a patch to Gtk+ 3.0
                #        otherwise we can't effectively add radio actions to a
                #        group.  Should we depend on 3.0 and error out here
                #        or should we offer the functionality via a compat
                #        C module?
                if hasattr(action, 'join_group'):
                    action.join_group(group_source)

                if value == entry_value:
                    action.set_active(True)

                self.add_action_with_accel(action, accelerator)
                return action

            for e in entries:
                # using inner function above since entries can leave out optional arguments
                action = _process_action(first_action, *e)
                if first_action is None:
                    first_action = action

            if first_action is not None and on_change is not None:
                if user_data is None:
                    first_action.connect('changed', on_change)
                else:
                    first_action.connect('changed', on_change, user_data)

    ActionGroup = override(ActionGroup)
    __all__.append('ActionGroup')

    class UIManager(Gtk.UIManager):
        def add_ui_from_string(self, buffer):
            if not isinstance(buffer, _basestring):
                raise TypeError('buffer must be a string')

            length = len(buffer.encode('UTF-8'))

            return Gtk.UIManager.add_ui_from_string(self, buffer, length)

        def insert_action_group(self, buffer, length=-1):
            return Gtk.UIManager.insert_action_group(self, buffer, length)

    UIManager = override(UIManager)
    __all__.append('UIManager')


class ComboBox(Gtk.ComboBox, Container):
    get_active_iter = strip_boolean_result(Gtk.ComboBox.get_active_iter)


ComboBox = override(ComboBox)
__all__.append('ComboBox')


class Box(Gtk.Box):
    __init__ = deprecated_init(Gtk.Box.__init__,
                               arg_names=('homogeneous', 'spacing'),
                               category=PyGTKDeprecationWarning)


Box = override(Box)
__all__.append('Box')


class SizeGroup(Gtk.SizeGroup):
    __init__ = deprecated_init(Gtk.SizeGroup.__init__,
                               arg_names=('mode',),
                               deprecated_defaults={'mode': Gtk.SizeGroupMode.VERTICAL},
                               category=PyGTKDeprecationWarning)


SizeGroup = override(SizeGroup)
__all__.append('SizeGroup')


class MenuItem(Gtk.MenuItem):
    __init__ = deprecated_init(Gtk.MenuItem.__init__,
                               arg_names=('label',),
                               category=PyGTKDeprecationWarning)


MenuItem = override(MenuItem)
__all__.append('MenuItem')


class Builder(Gtk.Builder):
    def connect_signals(self, obj_or_map):
        """Connect signals specified by this builder to a name, handler mapping.

        Connect signal, name, and handler sets specified in the builder with
        the given mapping "obj_or_map". The handler/value aspect of the mapping
        can also contain a tuple in the form of (handler [,arg1 [,argN]])
        allowing for extra arguments to be passed to the handler. For example:

        .. code-block:: python

            builder.connect_signals({'on_clicked': (on_clicked, arg1, arg2)})
        """
        self.connect_signals_full(_builder_connect_callback, obj_or_map)

    def add_from_string(self, buffer):
        if not isinstance(buffer, _basestring):
            raise TypeError('buffer must be a string')

        length = len(buffer)

        return Gtk.Builder.add_from_string(self, buffer, length)

    def add_objects_from_string(self, buffer, object_ids):
        if not isinstance(buffer, _basestring):
            raise TypeError('buffer must be a string')

        length = len(buffer)

        return Gtk.Builder.add_objects_from_string(self, buffer, length, object_ids)


Builder = override(Builder)
__all__.append('Builder')


# NOTE: This must come before any other Window/Dialog subclassing, to ensure
# that we have a correct inheritance hierarchy.


class Window(Gtk.Window):
    __init__ = deprecated_init(Gtk.Window.__init__,
                               arg_names=('type',),
                               category=PyGTKDeprecationWarning)


Window = override(Window)
__all__.append('Window')


class Dialog(Gtk.Dialog, Container):
    _old_arg_names = ('title', 'parent', 'flags', 'buttons', '_buttons_property')
    _init = deprecated_init(Gtk.Dialog.__init__,
                            arg_names=('title', 'transient_for', 'flags',
                                       'add_buttons', 'buttons'),
                            ignore=('flags', 'add_buttons'),
                            deprecated_aliases={'transient_for': 'parent',
                                                'buttons': '_buttons_property'},
                            category=PyGTKDeprecationWarning)

    def __init__(self, *args, **kwargs):

        new_kwargs = kwargs.copy()
        old_kwargs = dict(zip(self._old_arg_names, args))
        old_kwargs.update(kwargs)

        # Increment the warning stacklevel for sub-classes which implement their own __init__.
        stacklevel = 2
        if self.__class__ != Dialog and self.__class__.__init__ != Dialog.__init__:
            stacklevel += 1

        # buttons was overloaded by PyGtk but is needed for Gtk.MessageDialog
        # as a pass through, so type check the argument and give a deprecation
        # when it is not of type Gtk.ButtonsType
        add_buttons = old_kwargs.get('buttons', None)
        if add_buttons is not None and not isinstance(add_buttons, Gtk.ButtonsType):
            warnings.warn('The "buttons" argument must be a Gtk.ButtonsType enum value. '
                          'Please use the "add_buttons" method for adding buttons. '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations',
                          PyGTKDeprecationWarning, stacklevel=stacklevel)
            if 'buttons' in new_kwargs:
                del new_kwargs['buttons']
        else:
            add_buttons = None

        flags = old_kwargs.get('flags', 0)
        if flags:
            warnings.warn('The "flags" argument for dialog construction is deprecated. '
                          'Please use initializer keywords: modal=True and/or destroy_with_parent=True. '
                          'See: https://wiki.gnome.org/PyGObject/InitializerDeprecations',
                          PyGTKDeprecationWarning, stacklevel=stacklevel)

            if flags & Gtk.DialogFlags.MODAL:
                new_kwargs['modal'] = True

            if flags & Gtk.DialogFlags.DESTROY_WITH_PARENT:
                new_kwargs['destroy_with_parent'] = True

        self._init(*args, **new_kwargs)

        if add_buttons:
            self.add_buttons(*add_buttons)

    def run(self, *args, **kwargs):
        with register_sigint_fallback(self.destroy):
            with wakeup_on_signal():
                return Gtk.Dialog.run(self, *args, **kwargs)

    action_area = property(lambda dialog: dialog.get_action_area())
    vbox = property(lambda dialog: dialog.get_content_area())

    def add_buttons(self, *args):
        """
        The add_buttons() method adds several buttons to the Gtk.Dialog using
        the button data passed as arguments to the method. This method is the
        same as calling the Gtk.Dialog.add_button() repeatedly. The button data
        pairs - button text (or stock ID) and a response ID integer are passed
        individually. For example:

        .. code-block:: python

            dialog.add_buttons(Gtk.STOCK_OPEN, 42, "Close", Gtk.ResponseType.CLOSE)

        will add "Open" and "Close" buttons to dialog.
        """
        def _button(b):
            while b:
                t, r = b[0:2]
                b = b[2:]
                yield t, r

        try:
            for text, response in _button(args):
                self.add_button(text, response)
        except (IndexError):
            raise TypeError('Must pass an even number of arguments')


Dialog = override(Dialog)
__all__.append('Dialog')


class MessageDialog(Gtk.MessageDialog, Dialog):
    __init__ = deprecated_init(Gtk.MessageDialog.__init__,
                               arg_names=('parent', 'flags', 'message_type',
                                          'buttons', 'message_format'),
                               deprecated_aliases={'text': 'message_format',
                                                   'message_type': 'type'},
                               category=PyGTKDeprecationWarning)

    def format_secondary_text(self, message_format):
        self.set_property('secondary-use-markup', False)
        self.set_property('secondary-text', message_format)

    def format_secondary_markup(self, message_format):
        self.set_property('secondary-use-markup', True)
        self.set_property('secondary-text', message_format)


MessageDialog = override(MessageDialog)
__all__.append('MessageDialog')


if Gtk._version in ("2.0", "3.0"):
    class ColorSelectionDialog(Gtk.ColorSelectionDialog):
        __init__ = deprecated_init(Gtk.ColorSelectionDialog.__init__,
                                   arg_names=('title',),
                                   category=PyGTKDeprecationWarning)

    ColorSelectionDialog = override(ColorSelectionDialog)
    __all__.append('ColorSelectionDialog')


class FileChooserDialog(Gtk.FileChooserDialog):
    __init__ = deprecated_init(Gtk.FileChooserDialog.__init__,
                               arg_names=('title', 'parent', 'action', 'buttons'),
                               category=PyGTKDeprecationWarning)


FileChooserDialog = override(FileChooserDialog)
__all__.append('FileChooserDialog')


if Gtk._version in ("2.0", "3.0"):
    class FontSelectionDialog(Gtk.FontSelectionDialog):
        __init__ = deprecated_init(Gtk.FontSelectionDialog.__init__,
                                   arg_names=('title',),
                                   category=PyGTKDeprecationWarning)

    FontSelectionDialog = override(FontSelectionDialog)
    __all__.append('FontSelectionDialog')


class RecentChooserDialog(Gtk.RecentChooserDialog):
    # Note, the "manager" keyword must work across the entire 3.x series because
    # "recent_manager" is not backwards compatible with PyGObject versions prior to 3.10.
    __init__ = deprecated_init(Gtk.RecentChooserDialog.__init__,
                               arg_names=('title', 'parent', 'recent_manager', 'buttons'),
                               deprecated_aliases={'recent_manager': 'manager'},
                               category=PyGTKDeprecationWarning)


RecentChooserDialog = override(RecentChooserDialog)
__all__.append('RecentChooserDialog')


class IconView(Gtk.IconView):
    __init__ = deprecated_init(Gtk.IconView.__init__,
                               arg_names=('model',),
                               category=PyGTKDeprecationWarning)

    get_item_at_pos = strip_boolean_result(Gtk.IconView.get_item_at_pos)
    get_visible_range = strip_boolean_result(Gtk.IconView.get_visible_range)
    get_dest_item_at_pos = strip_boolean_result(Gtk.IconView.get_dest_item_at_pos)


IconView = override(IconView)
__all__.append('IconView')


class ToolButton(Gtk.ToolButton):
    __init__ = deprecated_init(Gtk.ToolButton.__init__,
                               arg_names=('stock_id',),
                               category=PyGTKDeprecationWarning)


ToolButton = override(ToolButton)
__all__.append('ToolButton')


class IMContext(Gtk.IMContext):
    get_surrounding = strip_boolean_result(Gtk.IMContext.get_surrounding)


IMContext = override(IMContext)
__all__.append('IMContext')


class RecentInfo(Gtk.RecentInfo):
    get_application_info = strip_boolean_result(Gtk.RecentInfo.get_application_info)


RecentInfo = override(RecentInfo)
__all__.append('RecentInfo')


class TextBuffer(Gtk.TextBuffer):
    def _get_or_create_tag_table(self):
        table = self.get_tag_table()
        if table is None:
            table = Gtk.TextTagTable()
            self.set_tag_table(table)

        return table

    def create_tag(self, tag_name=None, **properties):
        """Creates a tag and adds it to the tag table of the TextBuffer.

        :param str tag_name:
            Name of the new tag, or None
        :param **properties:
            Keyword list of properties and their values

        This is equivalent to creating a Gtk.TextTag and then adding the
        tag to the buffer's tag table. The returned tag is owned by
        the buffer's tag table.

        If ``tag_name`` is None, the tag is anonymous.

        If ``tag_name`` is not None, a tag called ``tag_name`` must not already
        exist in the tag table for this buffer.

        Properties are passed as a keyword list of names and values (e.g.
        foreground='DodgerBlue', weight=Pango.Weight.BOLD)

        :returns:
            A new tag.
        """

        tag = Gtk.TextTag(name=tag_name, **properties)
        self._get_or_create_tag_table().add(tag)
        return tag

    def create_mark(self, mark_name, where, left_gravity=False):
        return Gtk.TextBuffer.create_mark(self, mark_name, where, left_gravity)

    def set_text(self, text, length=-1):
        Gtk.TextBuffer.set_text(self, text, length)

    def insert(self, iter, text, length=-1):
        if not isinstance(text, _basestring):
            raise TypeError('text must be a string, not %s' % type(text))

        Gtk.TextBuffer.insert(self, iter, text, length)

    def insert_with_tags(self, iter, text, *tags):
        start_offset = iter.get_offset()
        self.insert(iter, text)

        if not tags:
            return

        start = self.get_iter_at_offset(start_offset)

        for tag in tags:
            self.apply_tag(tag, start, iter)

    def insert_with_tags_by_name(self, iter, text, *tags):
        tag_objs = []

        for tag in tags:
            tag_obj = self.get_tag_table().lookup(tag)
            if not tag_obj:
                raise ValueError('unknown text tag: %s' % tag)
            tag_objs.append(tag_obj)

        self.insert_with_tags(iter, text, *tag_objs)

    def insert_at_cursor(self, text, length=-1):
        if not isinstance(text, _basestring):
            raise TypeError('text must be a string, not %s' % type(text))

        Gtk.TextBuffer.insert_at_cursor(self, text, length)

    get_selection_bounds = strip_boolean_result(Gtk.TextBuffer.get_selection_bounds, fail_ret=())


TextBuffer = override(TextBuffer)
__all__.append('TextBuffer')


class TextIter(Gtk.TextIter):
    forward_search = strip_boolean_result(Gtk.TextIter.forward_search)
    backward_search = strip_boolean_result(Gtk.TextIter.backward_search)


TextIter = override(TextIter)
__all__.append('TextIter')


class TreeModel(Gtk.TreeModel):
    def __len__(self):
        return self.iter_n_children(None)

    def __bool__(self):
        return True

    # alias for Python 2.x object protocol
    __nonzero__ = __bool__

    def _getiter(self, key):
        if isinstance(key, Gtk.TreeIter):
            return key
        elif isinstance(key, int) and key < 0:
            index = len(self) + key
            if index < 0:
                raise IndexError("row index is out of bounds: %d" % key)
            try:
                aiter = self.get_iter(index)
            except ValueError:
                raise IndexError("could not find tree path '%s'" % key)
            return aiter
        else:
            try:
                aiter = self.get_iter(key)
            except ValueError:
                raise IndexError("could not find tree path '%s'" % key)
            return aiter

    def _coerce_path(self, path):
        if isinstance(path, Gtk.TreePath):
            return path
        else:
            return TreePath(path)

    def __getitem__(self, key):
        aiter = self._getiter(key)
        return TreeModelRow(self, aiter)

    def __setitem__(self, key, value):
        row = self[key]
        self.set_row(row.iter, value)

    def __delitem__(self, key):
        aiter = self._getiter(key)
        self.remove(aiter)

    def __iter__(self):
        return TreeModelRowIter(self, self.get_iter_first())

    get_iter_first = strip_boolean_result(Gtk.TreeModel.get_iter_first)
    iter_children = strip_boolean_result(Gtk.TreeModel.iter_children)
    iter_nth_child = strip_boolean_result(Gtk.TreeModel.iter_nth_child)
    iter_parent = strip_boolean_result(Gtk.TreeModel.iter_parent)
    get_iter_from_string = strip_boolean_result(Gtk.TreeModel.get_iter_from_string,
                                                ValueError, 'invalid tree path')

    def get_iter(self, path):
        path = self._coerce_path(path)
        success, aiter = super(TreeModel, self).get_iter(path)
        if not success:
            raise ValueError("invalid tree path '%s'" % path)
        return aiter

    def iter_next(self, aiter):
        next_iter = aiter.copy()
        success = super(TreeModel, self).iter_next(next_iter)
        if success:
            return next_iter

    def iter_previous(self, aiter):
        prev_iter = aiter.copy()
        success = super(TreeModel, self).iter_previous(prev_iter)
        if success:
            return prev_iter

    def _convert_row(self, row):
        # TODO: Accept a dictionary for row
        # model.append(None,{COLUMN_ICON: icon, COLUMN_NAME: name})
        if isinstance(row, str):
            raise TypeError('Expected a list or tuple, but got str')

        n_columns = self.get_n_columns()
        if len(row) != n_columns:
            raise ValueError('row sequence has the incorrect number of elements')

        result = []
        columns = []
        for cur_col, value in enumerate(row):
            # do not try to set None values, they are causing warnings
            if value is None:
                continue
            result.append(self._convert_value(cur_col, value))
            columns.append(cur_col)
        return (result, columns)

    def set_row(self, treeiter, row):
        converted_row, columns = self._convert_row(row)
        for column in columns:
            value = row[column]
            if value is None:
                continue  # None means skip this row

            self.set_value(treeiter, column, value)

    def _convert_value(self, column, value):
        '''Convert value to a GObject.Value of the expected type'''

        if isinstance(value, GObject.Value):
            return value
        return GObject.Value(self.get_column_type(column), value)

    def get(self, treeiter, *columns):
        n_columns = self.get_n_columns()

        values = []
        for col in columns:
            if not isinstance(col, int):
                raise TypeError("column numbers must be ints")

            if col < 0 or col >= n_columns:
                raise ValueError("column number is out of range")

            values.append(self.get_value(treeiter, col))

        return tuple(values)

    #
    # Signals supporting python iterables as tree paths
    #
    def row_changed(self, path, iter):
        return super(TreeModel, self).row_changed(self._coerce_path(path), iter)

    def row_inserted(self, path, iter):
        return super(TreeModel, self).row_inserted(self._coerce_path(path), iter)

    def row_has_child_toggled(self, path, iter):
        return super(TreeModel, self).row_has_child_toggled(self._coerce_path(path),
                                                            iter)

    def row_deleted(self, path):
        return super(TreeModel, self).row_deleted(self._coerce_path(path))

    def rows_reordered(self, path, iter, new_order):
        return super(TreeModel, self).rows_reordered(self._coerce_path(path),
                                                     iter, new_order)


TreeModel = override(TreeModel)
__all__.append('TreeModel')


class TreeSortable(Gtk.TreeSortable, ):

    get_sort_column_id = strip_boolean_result(Gtk.TreeSortable.get_sort_column_id, fail_ret=(None, None))

    def set_sort_func(self, sort_column_id, sort_func, user_data=None):
        super(TreeSortable, self).set_sort_func(sort_column_id, sort_func, user_data)

    def set_default_sort_func(self, sort_func, user_data=None):
        super(TreeSortable, self).set_default_sort_func(sort_func, user_data)


TreeSortable = override(TreeSortable)
__all__.append('TreeSortable')


class TreeModelSort(Gtk.TreeModelSort):
    __init__ = deprecated_init(Gtk.TreeModelSort.__init__,
                               arg_names=('model',),
                               category=PyGTKDeprecationWarning)


TreeModelSort = override(TreeModelSort)
__all__.append('TreeModelSort')


class ListStore(Gtk.ListStore, TreeModel, TreeSortable):
    def __init__(self, *column_types):
        Gtk.ListStore.__init__(self)
        self.set_column_types(column_types)

    def _do_insert(self, position, row):
        if row is not None:
            row, columns = self._convert_row(row)
            treeiter = self.insert_with_valuesv(position, columns, row)
        else:
            treeiter = Gtk.ListStore.insert(self, position)

        return treeiter

    def append(self, row=None):
        if row:
            return self._do_insert(-1, row)
        # gtk_list_store_insert() does not know about the "position == -1"
        # case, so use append() here
        else:
            return Gtk.ListStore.append(self)

    def prepend(self, row=None):
        return self._do_insert(0, row)

    def insert(self, position, row=None):
        return self._do_insert(position, row)

    # FIXME: sends two signals; check if this can use an atomic
    # insert_with_valuesv()

    def insert_before(self, sibling, row=None):
        treeiter = Gtk.ListStore.insert_before(self, sibling)

        if row is not None:
            self.set_row(treeiter, row)

        return treeiter

    # FIXME: sends two signals; check if this can use an atomic
    # insert_with_valuesv()

    def insert_after(self, sibling, row=None):
        treeiter = Gtk.ListStore.insert_after(self, sibling)

        if row is not None:
            self.set_row(treeiter, row)

        return treeiter

    def set_value(self, treeiter, column, value):
        value = self._convert_value(column, value)
        Gtk.ListStore.set_value(self, treeiter, column, value)

    def set(self, treeiter, *args):
        def _set_lists(cols, vals):
            if len(cols) != len(vals):
                raise TypeError('The number of columns do not match the number of values')

            columns = []
            values = []
            for col_num, value in zip(cols, vals):
                if not isinstance(col_num, int):
                    raise TypeError('TypeError: Expected integer argument for column.')

                columns.append(col_num)
                values.append(self._convert_value(col_num, value))

            Gtk.ListStore.set(self, treeiter, columns, values)

        if args:
            if isinstance(args[0], int):
                _set_lists(args[::2], args[1::2])
            elif isinstance(args[0], (tuple, list)):
                if len(args) != 2:
                    raise TypeError('Too many arguments')
                _set_lists(args[0], args[1])
            elif isinstance(args[0], dict):
                _set_lists(list(args[0]), args[0].values())
            else:
                raise TypeError('Argument list must be in the form of (column, value, ...), ((columns,...), (values, ...)) or {column: value}.  No -1 termination is needed.')


ListStore = override(ListStore)
__all__.append('ListStore')


class TreeModelRow(object):

    def __init__(self, model, iter_or_path):
        if not isinstance(model, Gtk.TreeModel):
            raise TypeError("expected Gtk.TreeModel, %s found" % type(model).__name__)
        self.model = model
        if isinstance(iter_or_path, Gtk.TreePath):
            self.iter = model.get_iter(iter_or_path)
        elif isinstance(iter_or_path, Gtk.TreeIter):
            self.iter = iter_or_path
        else:
            raise TypeError("expected Gtk.TreeIter or Gtk.TreePath, \
                %s found" % type(iter_or_path).__name__)

    @property
    def path(self):
        return self.model.get_path(self.iter)

    @property
    def next(self):
        return self.get_next()

    @property
    def previous(self):
        return self.get_previous()

    @property
    def parent(self):
        return self.get_parent()

    def get_next(self):
        next_iter = self.model.iter_next(self.iter)
        if next_iter:
            return TreeModelRow(self.model, next_iter)

    def get_previous(self):
        prev_iter = self.model.iter_previous(self.iter)
        if prev_iter:
            return TreeModelRow(self.model, prev_iter)

    def get_parent(self):
        parent_iter = self.model.iter_parent(self.iter)
        if parent_iter:
            return TreeModelRow(self.model, parent_iter)

    def __getitem__(self, key):
        if isinstance(key, int):
            if key >= self.model.get_n_columns():
                raise IndexError("column index is out of bounds: %d" % key)
            elif key < 0:
                key = self._convert_negative_index(key)
            return self.model.get_value(self.iter, key)
        elif isinstance(key, slice):
            start, stop, step = key.indices(self.model.get_n_columns())
            alist = []
            for i in range(start, stop, step):
                alist.append(self.model.get_value(self.iter, i))
            return alist
        elif isinstance(key, tuple):
            return [self[k] for k in key]
        else:
            raise TypeError("indices must be integers, slice or tuple, not %s"
                            % type(key).__name__)

    def __setitem__(self, key, value):
        if isinstance(key, int):
            if key >= self.model.get_n_columns():
                raise IndexError("column index is out of bounds: %d" % key)
            elif key < 0:
                key = self._convert_negative_index(key)
            self.model.set_value(self.iter, key, value)
        elif isinstance(key, slice):
            start, stop, step = key.indices(self.model.get_n_columns())
            indexList = range(start, stop, step)
            if len(indexList) != len(value):
                raise ValueError(
                    "attempt to assign sequence of size %d to slice of size %d"
                    % (len(value), len(indexList)))

            for i, v in enumerate(indexList):
                self.model.set_value(self.iter, v, value[i])
        elif isinstance(key, tuple):
            if len(key) != len(value):
                raise ValueError(
                    "attempt to assign sequence of size %d to sequence of size %d"
                    % (len(value), len(key)))
            for k, v in zip(key, value):
                self[k] = v
        else:
            raise TypeError("indices must be an integer, slice or tuple, not %s"
                            % type(key).__name__)

    def _convert_negative_index(self, index):
        new_index = self.model.get_n_columns() + index
        if new_index < 0:
            raise IndexError("column index is out of bounds: %d" % index)
        return new_index

    def iterchildren(self):
        child_iter = self.model.iter_children(self.iter)
        return TreeModelRowIter(self.model, child_iter)


__all__.append('TreeModelRow')


class TreeModelRowIter(object):

    def __init__(self, model, aiter):
        self.model = model
        self.iter = aiter

    def __next__(self):
        if not self.iter:
            raise StopIteration
        row = TreeModelRow(self.model, self.iter)
        self.iter = self.model.iter_next(self.iter)
        return row

    # alias for Python 2.x object protocol
    next = __next__

    def __iter__(self):
        return self


__all__.append('TreeModelRowIter')


class TreePath(Gtk.TreePath):

    def __new__(cls, path=0):
        if isinstance(path, int):
            path = str(path)
        elif not isinstance(path, _basestring):
            path = ":".join(str(val) for val in path)

        if len(path) == 0:
            raise TypeError("could not parse subscript '%s' as a tree path" % path)
        try:
            return TreePath.new_from_string(path)
        except TypeError:
            raise TypeError("could not parse subscript '%s' as a tree path" % path)

    def __init__(self, *args, **kwargs):
        super(TreePath, self).__init__()

    def __str__(self):
        return self.to_string() or ""

    def __lt__(self, other):
        return other is not None and self.compare(other) < 0

    def __le__(self, other):
        return other is not None and self.compare(other) <= 0

    def __eq__(self, other):
        return other is not None and self.compare(other) == 0

    def __ne__(self, other):
        return other is None or self.compare(other) != 0

    def __gt__(self, other):
        return other is None or self.compare(other) > 0

    def __ge__(self, other):
        return other is None or self.compare(other) >= 0

    def __iter__(self):
        return iter(self.get_indices())

    def __len__(self):
        return self.get_depth()

    def __getitem__(self, index):
        return self.get_indices()[index]


TreePath = override(TreePath)
__all__.append('TreePath')


class TreeStore(Gtk.TreeStore, TreeModel, TreeSortable):
    def __init__(self, *column_types):
        Gtk.TreeStore.__init__(self)
        self.set_column_types(column_types)

    def _do_insert(self, parent, position, row):
        if row is not None:
            row, columns = self._convert_row(row)
            treeiter = self.insert_with_values(parent, position, columns, row)
        else:
            treeiter = Gtk.TreeStore.insert(self, parent, position)

        return treeiter

    def append(self, parent, row=None):
        return self._do_insert(parent, -1, row)

    def prepend(self, parent, row=None):
        return self._do_insert(parent, 0, row)

    def insert(self, parent, position, row=None):
        return self._do_insert(parent, position, row)

    # FIXME: sends two signals; check if this can use an atomic
    # insert_with_valuesv()

    def insert_before(self, parent, sibling, row=None):
        treeiter = Gtk.TreeStore.insert_before(self, parent, sibling)

        if row is not None:
            self.set_row(treeiter, row)

        return treeiter

    # FIXME: sends two signals; check if this can use an atomic
    # insert_with_valuesv()

    def insert_after(self, parent, sibling, row=None):
        treeiter = Gtk.TreeStore.insert_after(self, parent, sibling)

        if row is not None:
            self.set_row(treeiter, row)

        return treeiter

    def set_value(self, treeiter, column, value):
        value = self._convert_value(column, value)
        Gtk.TreeStore.set_value(self, treeiter, column, value)

    def set(self, treeiter, *args):
        def _set_lists(cols, vals):
            if len(cols) != len(vals):
                raise TypeError('The number of columns do not match the number of values')

            columns = []
            values = []
            for col_num, value in zip(cols, vals):
                if not isinstance(col_num, int):
                    raise TypeError('TypeError: Expected integer argument for column.')

                columns.append(col_num)
                values.append(self._convert_value(col_num, value))

            Gtk.TreeStore.set(self, treeiter, columns, values)

        if args:
            if isinstance(args[0], int):
                _set_lists(args[::2], args[1::2])
            elif isinstance(args[0], (tuple, list)):
                if len(args) != 2:
                    raise TypeError('Too many arguments')
                _set_lists(args[0], args[1])
            elif isinstance(args[0], dict):
                _set_lists(args[0].keys(), args[0].values())
            else:
                raise TypeError('Argument list must be in the form of (column, value, ...), ((columns,...), (values, ...)) or {column: value}.  No -1 termination is needed.')


TreeStore = override(TreeStore)
__all__.append('TreeStore')


class TreeView(Gtk.TreeView, Container):
    __init__ = deprecated_init(Gtk.TreeView.__init__,
                               arg_names=('model',),
                               category=PyGTKDeprecationWarning)

    get_path_at_pos = strip_boolean_result(Gtk.TreeView.get_path_at_pos)
    get_visible_range = strip_boolean_result(Gtk.TreeView.get_visible_range)
    get_dest_row_at_pos = strip_boolean_result(Gtk.TreeView.get_dest_row_at_pos)

    def enable_model_drag_source(self, start_button_mask, targets, actions):
        target_entries = _construct_target_list(targets)
        super(TreeView, self).enable_model_drag_source(start_button_mask,
                                                       target_entries,
                                                       actions)

    def enable_model_drag_dest(self, targets, actions):
        target_entries = _construct_target_list(targets)
        super(TreeView, self).enable_model_drag_dest(target_entries,
                                                     actions)

    def scroll_to_cell(self, path, column=None, use_align=False, row_align=0.0, col_align=0.0):
        if not isinstance(path, Gtk.TreePath):
            path = TreePath(path)
        super(TreeView, self).scroll_to_cell(path, column, use_align, row_align, col_align)

    def set_cursor(self, path, column=None, start_editing=False):
        if not isinstance(path, Gtk.TreePath):
            path = TreePath(path)
        super(TreeView, self).set_cursor(path, column, start_editing)

    def get_cell_area(self, path, column=None):
        if not isinstance(path, Gtk.TreePath):
            path = TreePath(path)
        return super(TreeView, self).get_cell_area(path, column)

    def insert_column_with_attributes(self, position, title, cell, **kwargs):
        column = TreeViewColumn()
        column.set_title(title)
        column.pack_start(cell, False)
        self.insert_column(column, position)
        column.set_attributes(cell, **kwargs)


TreeView = override(TreeView)
__all__.append('TreeView')


class TreeViewColumn(Gtk.TreeViewColumn):
    def __init__(self, title='',
                 cell_renderer=None,
                 **attributes):
        Gtk.TreeViewColumn.__init__(self, title=title)
        if cell_renderer:
            self.pack_start(cell_renderer, True)

        for (name, value) in attributes.items():
            self.add_attribute(cell_renderer, name, value)

    cell_get_position = strip_boolean_result(Gtk.TreeViewColumn.cell_get_position)

    def set_cell_data_func(self, cell_renderer, func, func_data=None):
        super(TreeViewColumn, self).set_cell_data_func(cell_renderer, func, func_data)

    def set_attributes(self, cell_renderer, **attributes):
        Gtk.CellLayout.clear_attributes(self, cell_renderer)

        for (name, value) in attributes.items():
            Gtk.CellLayout.add_attribute(self, cell_renderer, name, value)


TreeViewColumn = override(TreeViewColumn)
__all__.append('TreeViewColumn')


class TreeSelection(Gtk.TreeSelection):

    def select_path(self, path):
        if not isinstance(path, Gtk.TreePath):
            path = TreePath(path)
        super(TreeSelection, self).select_path(path)

    def get_selected(self):
        success, model, aiter = super(TreeSelection, self).get_selected()
        if success:
            return (model, aiter)
        else:
            return (model, None)

    # for compatibility with PyGtk

    def get_selected_rows(self):
        rows, model = super(TreeSelection, self).get_selected_rows()
        return (model, rows)


TreeSelection = override(TreeSelection)
__all__.append('TreeSelection')


class Button(Gtk.Button, Container):
    _init = deprecated_init(Gtk.Button.__init__,
                            arg_names=('label', 'stock', 'use_stock', 'use_underline'),
                            ignore=('stock',),
                            category=PyGTKDeprecationWarning,
                            stacklevel=3)

    def __init__(self, *args, **kwargs):
        # Doubly deprecated initializer, the stock keyword is non-standard.
        # Simply give a warning that stock items are deprecated even though
        # we want to deprecate the non-standard keyword as well here from
        # the overrides.
        if 'stock' in kwargs and kwargs['stock']:
            warnings.warn('Stock items are deprecated. '
                          'Please use: Gtk.Button.new_with_mnemonic(label)',
                          PyGTKDeprecationWarning, stacklevel=2)
            new_kwargs = kwargs.copy()
            new_kwargs['label'] = new_kwargs['stock']
            new_kwargs['use_stock'] = True
            new_kwargs['use_underline'] = True
            del new_kwargs['stock']
            Gtk.Button.__init__(self, **new_kwargs)
        else:
            self._init(*args, **kwargs)


Button = override(Button)
__all__.append('Button')


class LinkButton(Gtk.LinkButton):
    __init__ = deprecated_init(Gtk.LinkButton.__init__,
                               arg_names=('uri', 'label'),
                               category=PyGTKDeprecationWarning)


LinkButton = override(LinkButton)
__all__.append('LinkButton')


class Label(Gtk.Label):
    __init__ = deprecated_init(Gtk.Label.__init__,
                               arg_names=('label',),
                               category=PyGTKDeprecationWarning)


Label = override(Label)
__all__.append('Label')


class Adjustment(Gtk.Adjustment):
    _init = deprecated_init(Gtk.Adjustment.__init__,
                            arg_names=('value', 'lower', 'upper',
                                       'step_increment', 'page_increment', 'page_size'),
                            deprecated_aliases={'page_increment': 'page_incr',
                                                'step_increment': 'step_incr'},
                            category=PyGTKDeprecationWarning,
                            stacklevel=3)

    def __init__(self, *args, **kwargs):
        self._init(*args, **kwargs)

        # The value property is set between lower and (upper - page_size).
        # Just in case lower, upper or page_size was still 0 when value
        # was set, we set it again here.
        if 'value' in kwargs:
            self.set_value(kwargs['value'])
        elif len(args) >= 1:
            self.set_value(args[0])


Adjustment = override(Adjustment)
__all__.append('Adjustment')


if Gtk._version in ("2.0", "3.0"):
    class Table(Gtk.Table, Container):
        __init__ = deprecated_init(Gtk.Table.__init__,
                                   arg_names=('n_rows', 'n_columns', 'homogeneous'),
                                   deprecated_aliases={'n_rows': 'rows', 'n_columns': 'columns'},
                                   category=PyGTKDeprecationWarning)

        def attach(self, child, left_attach, right_attach, top_attach, bottom_attach, xoptions=Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL, yoptions=Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL, xpadding=0, ypadding=0):
            Gtk.Table.attach(self, child, left_attach, right_attach, top_attach, bottom_attach, xoptions, yoptions, xpadding, ypadding)

    Table = override(Table)
    __all__.append('Table')


class ScrolledWindow(Gtk.ScrolledWindow):
    __init__ = deprecated_init(Gtk.ScrolledWindow.__init__,
                               arg_names=('hadjustment', 'vadjustment'),
                               category=PyGTKDeprecationWarning)


ScrolledWindow = override(ScrolledWindow)
__all__.append('ScrolledWindow')


if Gtk._version in ("2.0", "3.0"):
    class HScrollbar(Gtk.HScrollbar):
        __init__ = deprecated_init(Gtk.HScrollbar.__init__,
                                   arg_names=('adjustment',),
                                   category=PyGTKDeprecationWarning)

    HScrollbar = override(HScrollbar)
    __all__.append('HScrollbar')

    class VScrollbar(Gtk.VScrollbar):
        __init__ = deprecated_init(Gtk.VScrollbar.__init__,
                                   arg_names=('adjustment',),
                                   category=PyGTKDeprecationWarning)

    VScrollbar = override(VScrollbar)
    __all__.append('VScrollbar')


class Paned(Gtk.Paned):
    def pack1(self, child, resize=False, shrink=True):
        super(Paned, self).pack1(child, resize, shrink)

    def pack2(self, child, resize=True, shrink=True):
        super(Paned, self).pack2(child, resize, shrink)


Paned = override(Paned)
__all__.append('Paned')


if Gtk._version in ("2.0", "3.0"):
    class Arrow(Gtk.Arrow):
        __init__ = deprecated_init(Gtk.Arrow.__init__,
                                   arg_names=('arrow_type', 'shadow_type'),
                                   category=PyGTKDeprecationWarning)

    Arrow = override(Arrow)
    __all__.append('Arrow')

    class IconSet(Gtk.IconSet):
        def __new__(cls, pixbuf=None):
            if pixbuf is not None:
                warnings.warn('Gtk.IconSet(pixbuf) has been deprecated. Please use: '
                              'Gtk.IconSet.new_from_pixbuf(pixbuf)',
                              PyGTKDeprecationWarning, stacklevel=2)
                iconset = Gtk.IconSet.new_from_pixbuf(pixbuf)
            else:
                iconset = Gtk.IconSet.__new__(cls)
            return iconset

        def __init__(self, *args, **kwargs):
            return super(IconSet, self).__init__()

    IconSet = override(IconSet)
    __all__.append('IconSet')


class Viewport(Gtk.Viewport):
    __init__ = deprecated_init(Gtk.Viewport.__init__,
                               arg_names=('hadjustment', 'vadjustment'),
                               category=PyGTKDeprecationWarning)


Viewport = override(Viewport)
__all__.append('Viewport')


class TreeModelFilter(Gtk.TreeModelFilter):
    def set_visible_func(self, func, data=None):
        super(TreeModelFilter, self).set_visible_func(func, data)

    def set_value(self, iter, column, value):
        # Delegate to child model
        iter = self.convert_iter_to_child_iter(iter)
        self.get_model().set_value(iter, column, value)


TreeModelFilter = override(TreeModelFilter)
__all__.append('TreeModelFilter')

if Gtk._version != '2.0':
    class Menu(Gtk.Menu):
        def popup(self, parent_menu_shell, parent_menu_item, func, data, button, activate_time):
            self.popup_for_device(None, parent_menu_shell, parent_menu_item, func, data, button, activate_time)
    Menu = override(Menu)
    __all__.append('Menu')

_Gtk_main_quit = Gtk.main_quit


@override(Gtk.main_quit)
def main_quit(*args):
    _Gtk_main_quit()


_Gtk_main = Gtk.main


@override(Gtk.main)
def main(*args, **kwargs):
    with register_sigint_fallback(Gtk.main_quit):
        with wakeup_on_signal():
            return _Gtk_main(*args, **kwargs)


if Gtk._version in ("2.0", "3.0"):
    stock_lookup = strip_boolean_result(Gtk.stock_lookup)
    __all__.append('stock_lookup')

if Gtk._version == "4.0":
    Gtk.init_check()
else:
    initialized, argv = Gtk.init_check(sys.argv)
    sys.argv = list(argv)
docstring.py000064400000015040151734360770007127 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2013 Simon Feltman <sfeltman@gnome.org>
#
#   docstring.py: documentation string generator for gi.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from ._gi import \
    VFuncInfo, \
    FunctionInfo, \
    CallableInfo, \
    ObjectInfo, \
    StructInfo, \
    Direction, \
    TypeTag


#: Module storage for currently registered doc string generator function.
_generate_doc_string_func = None


def set_doc_string_generator(func):
    """Set doc string generator function

    :param callable func:
        Callable which takes a GIInfoStruct and returns documentation for it.
    """
    global _generate_doc_string_func
    _generate_doc_string_func = func


def get_doc_string_generator():
    """Returns the currently registered doc string generator."""
    return _generate_doc_string_func


def generate_doc_string(info):
    """Generate a doc string given a GIInfoStruct.

    :param gi.types.BaseInfo info:
        GI info instance to generate documentation for.
    :returns:
        Generated documentation as a string.
    :rtype: str

    This passes the info struct to the currently registered doc string
    generator and returns the result.
    """
    return _generate_doc_string_func(info)


_type_tag_to_py_type = {TypeTag.BOOLEAN: bool,
                        TypeTag.INT8: int,
                        TypeTag.UINT8: int,
                        TypeTag.INT16: int,
                        TypeTag.UINT16: int,
                        TypeTag.INT32: int,
                        TypeTag.UINT32: int,
                        TypeTag.INT64: int,
                        TypeTag.UINT64: int,
                        TypeTag.FLOAT: float,
                        TypeTag.DOUBLE: float,
                        TypeTag.GLIST: list,
                        TypeTag.GSLIST: list,
                        TypeTag.ARRAY: list,
                        TypeTag.GHASH: dict,
                        TypeTag.UTF8: str,
                        TypeTag.FILENAME: str,
                        TypeTag.UNICHAR: str,
                        TypeTag.INTERFACE: None,
                        TypeTag.GTYPE: None,
                        TypeTag.ERROR: None,
                        TypeTag.VOID: None,
                        }


def _get_pytype_hint(gi_type):
    type_tag = gi_type.get_tag()
    py_type = _type_tag_to_py_type.get(type_tag, None)

    if py_type and hasattr(py_type, '__name__'):
        return py_type.__name__
    elif type_tag == TypeTag.INTERFACE:
        iface = gi_type.get_interface()

        info_name = iface.get_name()
        if not info_name:
            return gi_type.get_tag_as_string()

        return '%s.%s' % (iface.get_namespace(), info_name)

    return gi_type.get_tag_as_string()


def _generate_callable_info_doc(info):
    in_args_strs = []
    if isinstance(info, VFuncInfo):
        in_args_strs = ['self']
    elif isinstance(info, FunctionInfo):
        if info.is_method():
            in_args_strs = ['self']

    args = info.get_arguments()
    hint_blacklist = ('void',)

    # Build lists of indices prior to adding the docs because it is possible
    # the index retrieved comes before input arguments being used.
    ignore_indices = set()
    user_data_indices = set()
    for arg in args:
        ignore_indices.add(arg.get_destroy())
        ignore_indices.add(arg.get_type().get_array_length())
        user_data_indices.add(arg.get_closure())

    # Build input argument strings
    for i, arg in enumerate(args):
        if arg.get_direction() == Direction.OUT:
            continue  # skip exclusively output args
        if i in ignore_indices:
            continue
        argstr = arg.get_name()
        hint = _get_pytype_hint(arg.get_type())
        if hint not in hint_blacklist:
            argstr += ':' + hint
        if arg.may_be_null() or i in user_data_indices:
            # allow-none or user_data from a closure
            argstr += '=None'
        elif arg.is_optional():
            argstr += '=<optional>'
        in_args_strs.append(argstr)
    in_args_str = ', '.join(in_args_strs)

    # Build return + output argument strings
    out_args_strs = []
    return_hint = _get_pytype_hint(info.get_return_type())
    if not info.skip_return() and return_hint and return_hint not in hint_blacklist:
        argstr = return_hint
        if info.may_return_null():
            argstr += ' or None'
        out_args_strs.append(argstr)

    for i, arg in enumerate(args):
        if arg.get_direction() == Direction.IN:
            continue  # skip exclusively input args
        if i in ignore_indices:
            continue
        argstr = arg.get_name()
        hint = _get_pytype_hint(arg.get_type())
        if hint not in hint_blacklist:
            argstr += ':' + hint
        out_args_strs.append(argstr)

    if out_args_strs:
        return '%s(%s) -> %s' % (info.__name__, in_args_str, ', '.join(out_args_strs))
    else:
        return '%s(%s)' % (info.__name__, in_args_str)


def _generate_class_info_doc(info):
    header = '\n:Constructors:\n\n::\n\n'  # start with \n to avoid auto indent of other lines
    doc = ''

    if isinstance(info, StructInfo):
        # Don't show default constructor for disguised (0 length) structs
        if info.get_size() > 0:
            doc += '    ' + info.get_name() + '()\n'
    else:
        doc += '    ' + info.get_name() + '(**properties)\n'

    for method_info in info.get_methods():
        if method_info.is_constructor():
            doc += '    ' + _generate_callable_info_doc(method_info) + '\n'

    if doc:
        return header + doc
    else:
        return ''


def _generate_doc_dispatch(info):
    if isinstance(info, (ObjectInfo, StructInfo)):
        return _generate_class_info_doc(info)

    elif isinstance(info, CallableInfo):
        return _generate_callable_info_doc(info)

    return ''


set_doc_string_generator(_generate_doc_dispatch)
_error.py000064400000004040151734360770006421 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2014 Simon Feltman <sfeltman@gnome.org>
#
#   _error.py: GError Python implementation
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA


# NOTE: This file should not have any dependencies on introspection libs
# like gi.repository.GLib because it would cause a circular dependency.
# Developers wanting to use the GError class in their applications should
# use gi.repository.GLib.GError


class GError(RuntimeError):
    def __init__(self, message='unknown error', domain='pygi-error', code=0):
        super(GError, self).__init__(message)
        self.message = message
        self.domain = domain
        self.code = code

    def __str__(self):
        return "%s: %s (%d)" % (self.domain, self.message, self.code)

    def __repr__(self):
        return "%s.%s('%s', '%s', %d)" % (GError.__module__, GError.__name__,
                                          self.message, self.domain, self.code)

    def copy(self):
        return GError(self.message, self.domain, self.code)

    def matches(self, domain, code):
        """Placeholder that will be monkey patched in GLib overrides."""
        raise NotImplementedError

    @staticmethod
    def new_literal(domain, message, code):
        """Placeholder that will be monkey patched in GLib overrides."""
        raise NotImplementedError
_ossighelper.py000064400000020603151734360770007617 0ustar00# -*- coding: utf-8 -*-
# Copyright 2017 Christoph Reiter
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <http://www.gnu.org/licenses/>.

from __future__ import print_function

import os
import sys
import socket
import signal
import ctypes
import threading
from contextlib import closing, contextmanager


def ensure_socket_not_inheritable(sock):
    """Ensures that the socket is not inherited by child processes

    Raises:
        EnvironmentError
        NotImplementedError: With Python <3.4 on Windows
    """

    if hasattr(sock, "set_inheritable"):
        sock.set_inheritable(False)
    else:
        try:
            import fcntl
        except ImportError:
            raise NotImplementedError(
                "Not implemented for older Python on Windows")
        else:
            fd = sock.fileno()
            flags = fcntl.fcntl(fd, fcntl.F_GETFD)
            fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC)


_wakeup_fd_is_active = False
"""Since we can't check if set_wakeup_fd() is already used for nested event
loops without introducing a race condition we keep track of it globally.
"""


@contextmanager
def wakeup_on_signal():
    """A decorator for functions which create a glib event loop to keep
    Python signal handlers working while the event loop is idling.

    In case an OS signal is received will wake the default event loop up
    shortly so that any registered Python signal handlers registered through
    signal.signal() can run.

    Works on Windows but needs Python 3.5+.

    In case the wrapped function is not called from the main thread it will be
    called as is and it will not wake up the default loop for signals.
    """

    global _wakeup_fd_is_active

    if _wakeup_fd_is_active:
        yield
        return

    from gi.repository import GLib

    # On Windows only Python 3.5+ supports passing sockets to set_wakeup_fd
    set_wakeup_fd_supports_socket = (
        os.name != "nt" or sys.version_info[:2] >= (3, 5))
    # On Windows only Python 3 has an implementation of socketpair()
    has_socketpair = hasattr(socket, "socketpair")

    if not has_socketpair or not set_wakeup_fd_supports_socket:
        yield
        return

    read_socket, write_socket = socket.socketpair()
    with closing(read_socket), closing(write_socket):

        for sock in [read_socket, write_socket]:
            sock.setblocking(False)
            ensure_socket_not_inheritable(sock)

        try:
            orig_fd = signal.set_wakeup_fd(write_socket.fileno())
        except ValueError:
            # Raised in case this is not the main thread -> give up.
            yield
            return
        else:
            _wakeup_fd_is_active = True

        def signal_notify(source, condition):
            if condition & GLib.IO_IN:
                try:
                    return bool(read_socket.recv(1))
                except EnvironmentError as e:
                    print(e)
                    return False
                return True
            else:
                return False

        try:
            if os.name == "nt":
                channel = GLib.IOChannel.win32_new_socket(
                    read_socket.fileno())
            else:
                channel = GLib.IOChannel.unix_new(read_socket.fileno())

            source_id = GLib.io_add_watch(
                channel,
                GLib.PRIORITY_DEFAULT,
                (GLib.IOCondition.IN | GLib.IOCondition.HUP |
                 GLib.IOCondition.NVAL | GLib.IOCondition.ERR),
                signal_notify)
            try:
                yield
            finally:
                GLib.source_remove(source_id)
        finally:
            write_fd = signal.set_wakeup_fd(orig_fd)
            if write_fd != write_socket.fileno():
                # Someone has called set_wakeup_fd while func() was active,
                # so let's re-revert again.
                signal.set_wakeup_fd(write_fd)
            _wakeup_fd_is_active = False


def create_pythonapi():
    # We need our own instance of ctypes.pythonapi so we don't modify the
    # global shared one. Adapted from the ctypes source.
    if os.name == "nt":
        return ctypes.PyDLL("python dll", None, sys.dllhandle)
    elif sys.platform == "cygwin":
        return ctypes.PyDLL("libpython%d.%d.dll" % sys.version_info[:2])
    else:
        return ctypes.PyDLL(None)


pydll = create_pythonapi()
PyOS_getsig = pydll.PyOS_getsig
PyOS_getsig.restype = ctypes.c_void_p
PyOS_getsig.argtypes = [ctypes.c_int]

# We save the signal pointer so we can detect if glib has changed the
# signal handler behind Python's back (GLib.unix_signal_add)
if signal.getsignal(signal.SIGINT) is signal.default_int_handler:
    startup_sigint_ptr = PyOS_getsig(signal.SIGINT)
else:
    # Something has set the handler before import, we can't get a ptr
    # for the default handler so make sure the pointer will never match.
    startup_sigint_ptr = -1


def sigint_handler_is_default():
    """Returns if on SIGINT the default Python handler would be called"""

    return (signal.getsignal(signal.SIGINT) is signal.default_int_handler and
            PyOS_getsig(signal.SIGINT) == startup_sigint_ptr)


@contextmanager
def sigint_handler_set_and_restore_default(handler):
    """Context manager for saving/restoring the SIGINT handler default state.

    Will only restore the default handler again if the handler is not changed
    while the context is active.
    """

    assert sigint_handler_is_default()

    signal.signal(signal.SIGINT, handler)
    sig_ptr = PyOS_getsig(signal.SIGINT)
    try:
        yield
    finally:
        if signal.getsignal(signal.SIGINT) is handler and \
                PyOS_getsig(signal.SIGINT) == sig_ptr:
            signal.signal(signal.SIGINT, signal.default_int_handler)


def is_main_thread():
    """Returns True in case the function is called from the main thread"""

    return threading.current_thread().name == "MainThread"


_callback_stack = []
_sigint_called = False


@contextmanager
def register_sigint_fallback(callback):
    """Installs a SIGINT signal handler in case the default Python one is
    active which calls 'callback' in case the signal occurs.

    Only does something if called from the main thread.

    In case of nested context managers the signal handler will be only
    installed once and the callbacks will be called in the reverse order
    of their registration.

    The old signal handler will be restored in case no signal handler is
    registered while the context is active.
    """

    # To handle multiple levels of event loops we need to call the last
    # callback first, wait until the inner most event loop returns control
    # and only then call the next callback, and so on... until we
    # reach the outer most which manages the signal handler and raises
    # in the end

    global _callback_stack, _sigint_called

    if not is_main_thread():
        yield
        return

    if not sigint_handler_is_default():
        if _callback_stack:
            # This is an inner event loop, append our callback
            # to the stack so the parent context can call it.
            _callback_stack.append(callback)
            try:
                yield
            finally:
                cb = _callback_stack.pop()
                if _sigint_called:
                    cb()
        else:
            # There is a signal handler set by the user, just do nothing
            yield
        return

    _sigint_called = False

    def sigint_handler(sig_num, frame):
        global _callback_stack, _sigint_called

        if _sigint_called:
            return
        _sigint_called = True
        _callback_stack.pop()()

    _callback_stack.append(callback)
    try:
        with sigint_handler_set_and_restore_default(sigint_handler):
            yield
    finally:
        if _sigint_called:
            signal.default_int_handler(signal.SIGINT, None)
        else:
            _callback_stack.pop()
_propertyhelper.py000064400000035302151734360770010361 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# pygobject - Python bindings for the GObject library
# Copyright (C) 2007 Johan Dahlin
#
#   gi/_propertyhelper.py: GObject property wrapper/helper
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <http://www.gnu.org/licenses/>.

import sys
import traceback

from . import _gi

from ._constants import \
    TYPE_NONE, TYPE_INTERFACE, TYPE_CHAR, TYPE_UCHAR, \
    TYPE_BOOLEAN, TYPE_INT, TYPE_UINT, TYPE_LONG, \
    TYPE_ULONG, TYPE_INT64, TYPE_UINT64, TYPE_ENUM, TYPE_FLAGS, \
    TYPE_FLOAT, TYPE_DOUBLE, TYPE_STRING, \
    TYPE_POINTER, TYPE_BOXED, TYPE_PARAM, TYPE_OBJECT, \
    TYPE_PYOBJECT, TYPE_GTYPE, TYPE_STRV, TYPE_VARIANT

G_MAXFLOAT = _gi.G_MAXFLOAT
G_MAXDOUBLE = _gi.G_MAXDOUBLE
G_MININT = _gi.G_MININT
G_MAXINT = _gi.G_MAXINT
G_MAXUINT = _gi.G_MAXUINT
G_MINLONG = _gi.G_MINLONG
G_MAXLONG = _gi.G_MAXLONG
G_MAXULONG = _gi.G_MAXULONG

if sys.version_info >= (3, 0):
    _basestring = str
    _long = int
else:
    _basestring = basestring
    _long = long


class Property(object):
    """Creates a new Property which when used in conjunction with
    GObject subclass will create a Python property accessor for the
    GObject ParamSpec.

    :param callable getter:
        getter to get the value of the property
    :param callable setter:
        setter to set the value of the property
    :param type type:
        type of property
    :param default:
        default value, must match the property type.
    :param str nick:
        short description
    :param str blurb:
        long description
    :param GObject.ParamFlags flags:
        parameter flags
    :keyword minimum:
        minimum allowed value (int, float, long only)
    :keyword maximum:
        maximum allowed value (int, float, long only)

    .. code-block:: python

         class MyObject(GObject.Object):
             prop = GObject.Property(type=str)

         obj = MyObject()
         obj.prop = 'value'

         obj.prop  # now is 'value'

    The API is similar to the builtin :py:func:`property`:

    .. code-block:: python

        class AnotherObject(GObject.Object):
            value = 0

            @GObject.Property
            def prop(self):
                'Read only property.'
                return 1

            @GObject.Property(type=int)
            def propInt(self):
                'Read-write integer property.'
                return self.value

            @propInt.setter
            def propInt(self, value):
                self.value = value
    """
    _type_from_pytype_lookup = {
        # Put long_ first in case long_ and int are the same so int clobbers long_
        _long: TYPE_LONG,
        int: TYPE_INT,
        bool: TYPE_BOOLEAN,
        float: TYPE_DOUBLE,
        str: TYPE_STRING,
        object: TYPE_PYOBJECT,
    }

    _min_value_lookup = {
        TYPE_UINT: 0,
        TYPE_ULONG: 0,
        TYPE_UINT64: 0,
        # Remember that G_MINFLOAT and G_MINDOUBLE are something different.
        TYPE_FLOAT: -G_MAXFLOAT,
        TYPE_DOUBLE: -G_MAXDOUBLE,
        TYPE_INT: G_MININT,
        TYPE_LONG: G_MINLONG,
        TYPE_INT64: -2 ** 63,
    }

    _max_value_lookup = {
        TYPE_UINT: G_MAXUINT,
        TYPE_ULONG: G_MAXULONG,
        TYPE_INT64: 2 ** 63 - 1,
        TYPE_UINT64: 2 ** 64 - 1,
        TYPE_FLOAT: G_MAXFLOAT,
        TYPE_DOUBLE: G_MAXDOUBLE,
        TYPE_INT: G_MAXINT,
        TYPE_LONG: G_MAXLONG,
    }

    _default_lookup = {
        TYPE_INT: 0,
        TYPE_UINT: 0,
        TYPE_LONG: 0,
        TYPE_ULONG: 0,
        TYPE_INT64: 0,
        TYPE_UINT64: 0,
        TYPE_STRING: '',
        TYPE_FLOAT: 0.0,
        TYPE_DOUBLE: 0.0,
    }

    class __metaclass__(type):
        def __repr__(self):
            return "<class 'GObject.Property'>"

    def __init__(self, getter=None, setter=None, type=None, default=None,
                 nick='', blurb='', flags=_gi.PARAM_READWRITE,
                 minimum=None, maximum=None):
        self.name = None

        if type is None:
            type = object
        self.type = self._type_from_python(type)
        self.default = self._get_default(default)
        self._check_default()

        if not isinstance(nick, _basestring):
            raise TypeError("nick must be a string")
        self.nick = nick

        if not isinstance(blurb, _basestring):
            raise TypeError("blurb must be a string")
        self.blurb = blurb
        # Always clobber __doc__ with blurb even if blurb is empty because
        # we don't want the lengthy Property class documentation showing up
        # on instances.
        self.__doc__ = blurb
        self.flags = flags

        # Call after setting blurb for potential __doc__ usage.
        if getter and not setter:
            setter = self._readonly_setter
        elif setter and not getter:
            getter = self._writeonly_getter
        elif not setter and not getter:
            getter = self._default_getter
            setter = self._default_setter
        self.getter(getter)
        # do not call self.setter() here, as this defines the property name
        # already
        self.fset = setter

        if minimum is not None:
            if minimum < self._get_minimum():
                raise TypeError(
                    "Minimum for type %s cannot be lower than %d" %
                    (self.type, self._get_minimum()))
        else:
            minimum = self._get_minimum()
        self.minimum = minimum
        if maximum is not None:
            if maximum > self._get_maximum():
                raise TypeError(
                    "Maximum for type %s cannot be higher than %d" %
                    (self.type, self._get_maximum()))
        else:
            maximum = self._get_maximum()
        self.maximum = maximum

        self._exc = None

    def __repr__(self):
        return '<GObject Property %s (%s)>' % (
            self.name or '(uninitialized)',
            _gi.type_name(self.type))

    def __get__(self, instance, klass):
        if instance is None:
            return self

        self._exc = None

        # Simply return the result of fget directly, no need to go through GObject.
        # See: https://bugzilla.gnome.org/show_bug.cgi?id=723872
        # We catch and print any exception occurring within the fget for compatibility
        # prior to the fast path addition from bug 723872, this should eventually
        # be removed and exceptions raised directly to the caller as in:
        # https://bugzilla.gnome.org/show_bug.cgi?id=575652
        try:
            value = self.fget(instance)
        except Exception:
            traceback.print_exc()
            value = None

        if self._exc:
            exc = self._exc
            self._exc = None
            raise exc

        return value

    def __set__(self, instance, value):
        if instance is None:
            raise TypeError

        self._exc = None
        instance.set_property(self.name, value)
        if self._exc:
            exc = self._exc
            self._exc = None
            raise exc

    def __call__(self, fget):
        """Allows application of the getter along with init arguments."""
        return self.getter(fget)

    def getter(self, fget):
        """Set the getter function to fget. For use as a decorator."""
        if fget.__doc__:
            # Always clobber docstring and blurb with the getter docstring.
            self.blurb = fget.__doc__
            self.__doc__ = fget.__doc__
        self.fget = fget
        return self

    def setter(self, fset):
        """Set the setter function to fset. For use as a decorator."""
        self.fset = fset
        # with a setter decorator, we must ignore the name of the method in
        # install_properties, as this does not need to be a valid property name
        # and does not define the property name. So set the name here.
        if not self.name:
            self.name = self.fget.__name__
        return self

    def _type_from_python(self, type_):
        if type_ in self._type_from_pytype_lookup:
            return self._type_from_pytype_lookup[type_]
        elif (isinstance(type_, type) and
              issubclass(type_, (_gi.GObject,
                                 _gi.GEnum,
                                 _gi.GFlags,
                                 _gi.GBoxed,
                                 _gi.GInterface))):
            return type_.__gtype__
        elif type_ in (TYPE_NONE, TYPE_INTERFACE, TYPE_CHAR, TYPE_UCHAR,
                       TYPE_INT, TYPE_UINT, TYPE_BOOLEAN, TYPE_LONG,
                       TYPE_ULONG, TYPE_INT64, TYPE_UINT64,
                       TYPE_FLOAT, TYPE_DOUBLE, TYPE_POINTER,
                       TYPE_BOXED, TYPE_PARAM, TYPE_OBJECT, TYPE_STRING,
                       TYPE_PYOBJECT, TYPE_GTYPE, TYPE_STRV, TYPE_VARIANT):
            return type_
        else:
            raise TypeError("Unsupported type: %r" % (type_,))

    def _get_default(self, default):
        if default is not None:
            return default
        return self._default_lookup.get(self.type, None)

    def _check_default(self):
        ptype = self.type
        default = self.default
        if (ptype == TYPE_BOOLEAN and (default not in (True, False))):
            raise TypeError(
                "default must be True or False, not %r" % (default,))
        elif ptype == TYPE_PYOBJECT:
            if default is not None:
                raise TypeError("object types does not have default values")
        elif ptype == TYPE_GTYPE:
            if default is not None:
                raise TypeError("GType types does not have default values")
        elif _gi.type_is_a(ptype, TYPE_ENUM):
            if default is None:
                raise TypeError("enum properties needs a default value")
            elif not _gi.type_is_a(default, ptype):
                raise TypeError("enum value %s must be an instance of %r" %
                                (default, ptype))
        elif _gi.type_is_a(ptype, TYPE_FLAGS):
            if not _gi.type_is_a(default, ptype):
                raise TypeError("flags value %s must be an instance of %r" %
                                (default, ptype))
        elif _gi.type_is_a(ptype, TYPE_STRV) and default is not None:
            if not isinstance(default, list):
                raise TypeError("Strv value %s must be a list" % repr(default))
            for val in default:
                if type(val) not in (str, bytes):
                    raise TypeError("Strv value %s must contain only strings" % str(default))
        elif _gi.type_is_a(ptype, TYPE_VARIANT) and default is not None:
            if not hasattr(default, '__gtype__') or not _gi.type_is_a(default, TYPE_VARIANT):
                raise TypeError("variant value %s must be an instance of %r" %
                                (default, ptype))

    def _get_minimum(self):
        return self._min_value_lookup.get(self.type, None)

    def _get_maximum(self):
        return self._max_value_lookup.get(self.type, None)

    #
    # Getter and Setter
    #

    def _default_setter(self, instance, value):
        setattr(instance, '_property_helper_' + self.name, value)

    def _default_getter(self, instance):
        return getattr(instance, '_property_helper_' + self.name, self.default)

    def _readonly_setter(self, instance, value):
        self._exc = TypeError("%s property of %s is read-only" % (
            self.name, type(instance).__name__))

    def _writeonly_getter(self, instance):
        self._exc = TypeError("%s property of %s is write-only" % (
            self.name, type(instance).__name__))

    #
    # Public API
    #

    def get_pspec_args(self):
        ptype = self.type
        if ptype in (TYPE_INT, TYPE_UINT, TYPE_LONG, TYPE_ULONG,
                     TYPE_INT64, TYPE_UINT64, TYPE_FLOAT, TYPE_DOUBLE):
            args = self.minimum, self.maximum, self.default
        elif (ptype == TYPE_STRING or ptype == TYPE_BOOLEAN or
              ptype.is_a(TYPE_ENUM) or ptype.is_a(TYPE_FLAGS) or
              ptype.is_a(TYPE_VARIANT)):
            args = (self.default,)
        elif ptype in (TYPE_PYOBJECT, TYPE_GTYPE):
            args = ()
        elif ptype.is_a(TYPE_OBJECT) or ptype.is_a(TYPE_BOXED):
            args = ()
        else:
            raise NotImplementedError(ptype)

        return (self.type, self.nick, self.blurb) + args + (self.flags,)


def install_properties(cls):
    """
    Scans the given class for instances of Property and merges them
    into the classes __gproperties__ dict if it exists or adds it if not.
    """
    gproperties = cls.__dict__.get('__gproperties__', {})

    props = []
    for name, prop in cls.__dict__.items():
        if isinstance(prop, Property):  # not same as the built-in
            # if a property was defined with a decorator, it may already have
            # a name; if it was defined with an assignment (prop = Property(...))
            # we set the property's name to the member name
            if not prop.name:
                prop.name = name
            # we will encounter the same property multiple times in case of
            # custom setter methods
            if prop.name in gproperties:
                if gproperties[prop.name] == prop.get_pspec_args():
                    continue
                raise ValueError('Property %s was already found in __gproperties__' % prop.name)
            gproperties[prop.name] = prop.get_pspec_args()
            props.append(prop)

    if not props:
        return

    cls.__gproperties__ = gproperties

    if 'do_get_property' in cls.__dict__ or 'do_set_property' in cls.__dict__:
        for prop in props:
            if prop.fget != prop._default_getter or prop.fset != prop._default_setter:
                raise TypeError(
                    "GObject subclass %r defines do_get/set_property"
                    " and it also uses a property with a custom setter"
                    " or getter. This is not allowed" %
                    (cls.__name__,))

    def obj_get_property(self, pspec):
        name = pspec.name.replace('-', '_')
        return getattr(self, name, None)
    cls.do_get_property = obj_get_property

    def obj_set_property(self, pspec, value):
        name = pspec.name.replace('-', '_')
        prop = getattr(cls, name, None)
        if prop:
            prop.fset(self, value)
    cls.do_set_property = obj_set_property
importer.py000064400000012250151734360770006774 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2005-2009 Johan Dahlin <johan@gnome.org>
#               2015 Christoph Reiter
#
#   importer.py: dynamic importer for introspected libraries.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from __future__ import absolute_import
import sys
import warnings
import importlib
from contextlib import contextmanager

import gi
from ._gi import Repository, RepositoryError
from ._gi import PyGIWarning
from .module import get_introspection_module
from .overrides import load_overrides


repository = Repository.get_default()

# only for backwards compatibility
modules = {}


@contextmanager
def _check_require_version(namespace, stacklevel):
    """A context manager which tries to give helpful warnings
    about missing gi.require_version() which could potentially
    break code if only an older version than expected is installed
    or a new version gets introduced.

    ::

        with _check_require_version("Gtk", stacklevel):
            load_namespace_and_overrides()
    """

    was_loaded = repository.is_registered(namespace)

    yield

    if was_loaded:
        # it was loaded before by another import which depended on this
        # namespace or by C code like libpeas
        return

    if namespace in ("GLib", "GObject", "Gio"):
        # part of glib (we have bigger problems if versions change there)
        return

    if gi.get_required_version(namespace) is not None:
        # the version was forced using require_version()
        return

    version = repository.get_version(namespace)
    warnings.warn(
        "%(namespace)s was imported without specifying a version first. "
        "Use gi.require_version('%(namespace)s', '%(version)s') before "
        "import to ensure that the right version gets loaded."
        % {"namespace": namespace, "version": version},
        PyGIWarning, stacklevel=stacklevel)


def get_import_stacklevel(import_hook):
    """Returns the stacklevel value for warnings.warn() for when the warning
    gets emitted by an imported module, but the warning should point at the
    code doing the import.

    Pass import_hook=True if the warning gets generated by an import hook
    (warn() gets called in load_module(), see PEP302)
    """

    py_version = sys.version_info[:2]
    if py_version <= (3, 2):
        # 2.7 included
        return 4 if import_hook else 2
    elif py_version == (3, 3):
        return 8 if import_hook else 10
    elif py_version == (3, 4):
        return 10 if import_hook else 8
    else:
        # fixed again in 3.5+, see https://bugs.python.org/issue24305
        return 4 if import_hook else 2


class DynamicImporter(object):

    # Note: see PEP302 for the Importer Protocol implemented below.

    def __init__(self, path):
        self.path = path

    def find_module(self, fullname, path=None):
        if not fullname.startswith(self.path):
            return

        path, namespace = fullname.rsplit('.', 1)
        if path != self.path:
            return

        # is_registered() is faster than enumerate_versions() and
        # in the common case of a namespace getting loaded before its
        # dependencies, is_registered() returns True for all dependencies.
        if repository.is_registered(namespace) or \
                repository.enumerate_versions(namespace):
            return self
        else:
            raise ImportError('cannot import name %s, '
                              'introspection typelib not found' % namespace)

    def load_module(self, fullname):
        if fullname in sys.modules:
            return sys.modules[fullname]

        path, namespace = fullname.rsplit('.', 1)

        stacklevel = get_import_stacklevel(import_hook=True)
        with _check_require_version(namespace, stacklevel=stacklevel):
            try:
                introspection_module = get_introspection_module(namespace)
            except RepositoryError as e:
                raise ImportError(e)
            # Import all dependencies first so their init functions
            # (gdk_init, ..) in overrides get called.
            # https://bugzilla.gnome.org/show_bug.cgi?id=656314
            for dep in repository.get_immediate_dependencies(namespace):
                importlib.import_module('gi.repository.' + dep.split("-")[0])
            dynamic_module = load_overrides(introspection_module)

        dynamic_module.__file__ = '<%s>' % fullname
        dynamic_module.__loader__ = self
        sys.modules[fullname] = dynamic_module

        return dynamic_module
module.py000064400000024121151734360770006420 0ustar00# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2007-2009 Johan Dahlin <johan@gnome.org>
#
#   module.py: dynamic module for introspected libraries.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

from __future__ import absolute_import

import sys
import importlib
from threading import Lock

_have_py3 = (sys.version_info[0] >= 3)

try:
    maketrans = ''.maketrans
except AttributeError:
    # fallback for Python 2
    from string import maketrans

import gi

from ._gi import \
    Repository, \
    FunctionInfo, \
    RegisteredTypeInfo, \
    EnumInfo, \
    ObjectInfo, \
    InterfaceInfo, \
    ConstantInfo, \
    StructInfo, \
    UnionInfo, \
    CallbackInfo, \
    Struct, \
    Boxed, \
    CCallback, \
    enum_add, \
    enum_register_new_gtype_and_add, \
    flags_add, \
    flags_register_new_gtype_and_add, \
    GInterface
from .types import \
    GObjectMeta, \
    StructMeta

from ._constants import \
    TYPE_NONE, \
    TYPE_BOXED, \
    TYPE_POINTER, \
    TYPE_ENUM, \
    TYPE_FLAGS


repository = Repository.get_default()

# Cache of IntrospectionModules that have been loaded.
_introspection_modules = {}


def get_parent_for_object(object_info):
    parent_object_info = object_info.get_parent()

    if not parent_object_info:
        # If we reach the end of the introspection info class hierarchy, look
        # for an existing wrapper on the GType and use it as a base for the
        # new introspection wrapper. This allows static C wrappers already
        # registered with the GType to be used as the introspection base
        # (_gi.GObject for example)
        gtype = object_info.get_g_type()
        if gtype and gtype.pytype:
            return gtype.pytype

        # Otherwise use builtins.object as the base
        return object

    namespace = parent_object_info.get_namespace()
    name = parent_object_info.get_name()

    module = importlib.import_module('gi.repository.' + namespace)
    return getattr(module, name)


def get_interfaces_for_object(object_info):
    interfaces = []
    for interface_info in object_info.get_interfaces():
        namespace = interface_info.get_namespace()
        name = interface_info.get_name()

        module = importlib.import_module('gi.repository.' + namespace)
        interfaces.append(getattr(module, name))
    return interfaces


class IntrospectionModule(object):
    """An object which wraps an introspection typelib.

    This wrapping creates a python module like representation of the typelib
    using gi repository as a foundation. Accessing attributes of the module
    will dynamically pull them in and create wrappers for the members.
    These members are then cached on this introspection module.
    """
    def __init__(self, namespace, version=None):
        """Might raise gi._gi.RepositoryError"""

        repository.require(namespace, version)
        self._namespace = namespace
        self._version = version
        self.__name__ = 'gi.repository.' + namespace

        path = repository.get_typelib_path(self._namespace)
        self.__path__ = [path]
        if _have_py3:
            # get_typelib_path() delivers bytes, not a string
            self.__path__ = [path.decode('UTF-8')]

        if self._version is None:
            self._version = repository.get_version(self._namespace)

        self._lock = Lock()

    def __getattr__(self, name):
        info = repository.find_by_name(self._namespace, name)
        if not info:
            raise AttributeError("%r object has no attribute %r" % (
                                 self.__name__, name))

        if isinstance(info, EnumInfo):
            g_type = info.get_g_type()
            with self._lock:
                wrapper = g_type.pytype

                if wrapper is None:
                    if info.is_flags():
                        if g_type.is_a(TYPE_FLAGS):
                            wrapper = flags_add(g_type)
                        else:
                            assert g_type == TYPE_NONE
                            wrapper = flags_register_new_gtype_and_add(info)
                    else:
                        if g_type.is_a(TYPE_ENUM):
                            wrapper = enum_add(g_type)
                        else:
                            assert g_type == TYPE_NONE
                            wrapper = enum_register_new_gtype_and_add(info)

                    wrapper.__info__ = info
                    wrapper.__module__ = 'gi.repository.' + info.get_namespace()

                    # Don't use upper() here to avoid locale specific
                    # identifier conversion (e. g. in Turkish 'i'.upper() == 'i')
                    # see https://bugzilla.gnome.org/show_bug.cgi?id=649165
                    ascii_upper_trans = maketrans(
                        'abcdefgjhijklmnopqrstuvwxyz',
                        'ABCDEFGJHIJKLMNOPQRSTUVWXYZ')
                    for value_info in info.get_values():
                        value_name = value_info.get_name_unescaped().translate(ascii_upper_trans)
                        setattr(wrapper, value_name, wrapper(value_info.get_value()))
                    for method_info in info.get_methods():
                        setattr(wrapper, method_info.__name__, method_info)

                if g_type != TYPE_NONE:
                    g_type.pytype = wrapper

        elif isinstance(info, RegisteredTypeInfo):
            g_type = info.get_g_type()

            # Create a wrapper.
            if isinstance(info, ObjectInfo):
                parent = get_parent_for_object(info)
                interfaces = tuple(interface for interface in get_interfaces_for_object(info)
                                   if not issubclass(parent, interface))
                bases = (parent,) + interfaces
                metaclass = GObjectMeta
            elif isinstance(info, CallbackInfo):
                bases = (CCallback,)
                metaclass = GObjectMeta
            elif isinstance(info, InterfaceInfo):
                bases = (GInterface,)
                metaclass = GObjectMeta
            elif isinstance(info, (StructInfo, UnionInfo)):
                if g_type.is_a(TYPE_BOXED):
                    bases = (Boxed,)
                elif (g_type.is_a(TYPE_POINTER) or
                      g_type == TYPE_NONE or
                      g_type.fundamental == g_type):
                    bases = (Struct,)
                else:
                    raise TypeError("unable to create a wrapper for %s.%s" % (info.get_namespace(), info.get_name()))
                metaclass = StructMeta
            else:
                raise NotImplementedError(info)

            with self._lock:
                # Check if there is already a Python wrapper that is not a parent class
                # of the wrapper being created. If it is a parent, it is ok to clobber
                # g_type.pytype with a new child class wrapper of the existing parent.
                # Note that the return here never occurs under normal circumstances due
                # to caching on the __dict__ itself.
                if g_type != TYPE_NONE:
                    type_ = g_type.pytype
                    if type_ is not None and type_ not in bases:
                        self.__dict__[name] = type_
                        return type_

                dict_ = {
                    '__info__': info,
                    '__module__': 'gi.repository.' + self._namespace,
                    '__gtype__': g_type
                }
                wrapper = metaclass(name, bases, dict_)

                # Register the new Python wrapper.
                if g_type != TYPE_NONE:
                    g_type.pytype = wrapper

        elif isinstance(info, FunctionInfo):
            wrapper = info
        elif isinstance(info, ConstantInfo):
            wrapper = info.get_value()
        else:
            raise NotImplementedError(info)

        # Cache the newly created wrapper which will then be
        # available directly on this introspection module instead of being
        # lazily constructed through the __getattr__ we are currently in.
        self.__dict__[name] = wrapper
        return wrapper

    def __repr__(self):
        path = repository.get_typelib_path(self._namespace)
        if _have_py3:
            # get_typelib_path() delivers bytes, not a string
            path = path.decode('UTF-8')
        return "<IntrospectionModule %r from %r>" % (self._namespace, path)

    def __dir__(self):
        # Python's default dir() is just dir(self.__class__) + self.__dict__.keys()
        result = set(dir(self.__class__))
        result.update(self.__dict__.keys())

        # update *set* because some repository attributes have already been
        # wrapped by __getattr__() and included in self.__dict__; but skip
        # Callback types, as these are not real objects which we can actually
        # get
        namespace_infos = repository.get_infos(self._namespace)
        result.update(info.get_name() for info in namespace_infos if
                      not isinstance(info, CallbackInfo))

        return list(result)


def get_introspection_module(namespace):
    """
    :Returns:
        An object directly wrapping the gi module without overrides.

    Might raise gi._gi.RepositoryError
    """
    if namespace in _introspection_modules:
        return _introspection_modules[namespace]

    version = gi.get_required_version(namespace)
    module = IntrospectionModule(namespace, version)
    _introspection_modules[namespace] = module
    return module