
    h9                    i   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z'm(Z( dd	l)m*Z* dd
l+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3m4Z4  G d de&          Z5dD ]Z6 e(e.e5e6            e(e.e5e6            e'e.e5dd            G d de&          Z7 G d de&          Z8 e'e5e7d            e'e7e8            e'e8e8            G d de&          Z9 G d de&          Z: e'e5e9d            e'e9e:            e'e:e:           ej;         G d  d!                      Z< G d" d#e          Z= G d$ d%ee          Z> G d& d'ee>          Z? G d( d)e"e>          Z@d*ZAi d e<d+d,-          d. e<d/d,-          d0 e<d1d,-          d, e<d2ded3e	i4          d e<d5de#6          d7 e<d8de6          d9 e<d:d.e6          d; e<d<d,e6          d= e<d>de6          d? e<d@          dA e<dBd.e6          dC e<dDd,e6          dE e<dFde6          dG e<dH          dI e<dJd,e6          dK e<dLd.e=6          dM e<dNd.e=6          i dO e<dPd,e6          dQ e<dRd,-          dS e<dTd,-          dU e<dVd,edWdXi4          dY e<dZd,edWdXi4          d[ e<d\d,-          d] e<d^d,-          d_ e<d`          da e<db          dc e<dddKe06          de e<dfdKe06          dg e<dhde6          di e<djde6          dk e<dld0e!6          dm e<dnd.e$6          do e<dpde6          dq e<drd,e6          i ds e<dtde#6          du e<dvd.e6          dw e<dxd.e6          dy e<dzde6          d{ e<d|de6          d} e<d~d,-          d e<dd,-          d e<dd,-          d e<d          d e<d          d e<d          d e<dded3dddddddi4          d e<dd,e6          d e<dd,-          d e<dde6          d e<dd,e6          d e<d          i d e<d          d e<d          d e<d          d e<dde#6          d e<dd7e6          d e<dd7e6          d e<dd.e6          d e<dd.e6          d e<dde6          d e<dded3dddi4          d e<ddKe06          d e<ddKe06          d e<dd,-          d e<dd0-          d e<dd0-          d e<dd0-          d e<dd0-          i d e<dd0-          d e<dd0-          d e<dd0-          d e<dd0-          d e<dd0-          d e<dd0-          d e<dΦ          d e<dЦ          d e<dҦ          d e<dԦ          d e<d֦          d e<dئ          d e<dڦ          d e<dܦ          d e<dަ          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<dd,e6          d e<ddKe06          d e<d          d e<d          d e<d           d e<d          d e<d          i d e<d          d e<d          d	 e<d
          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d d;e@6          d! e<d"d;e@6          d# e<d$d;e@dWdXi4          d% e<d&d;e@dWdXi4          i d' e<d(d;e@d)dXi4          d* e<d+d;e@d)dXi4          d, e<d-d;e@d.dXi4          d/ e<d0d;e@d.dXi4          d1 e<d2d;e?d)dXi4          d3 e<d4d;e?d)dXi4          d5 e<d6d;e@dWdXi4          d7 e<d8d;e?dWdXi4          d9 e<d:d;e?d)dXi4          d; e<d<          d= e<d>          d? e<d@          dA e<dB          dC e<dD          dE e<dF          dG e<dH          dI e<dJ          i dK e<dL          dM e<dN          dO e<dP          dQ e<dR          dS e<dT          dU e<dV          dW e<dX          dY e<dZ          d[ e<d\          d] e<d^          d_ e<d`          da e<db          dc e<dd          de e<df          dg e<dh          di e<dj          dk e<dl          i dm e<dn          do e<dp          dq e<dr          ds e<dt          du e<dv          dw e<dx          dy e<dz          d{ e<d|de#6          d} e<d~          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<dd,e6          d e<ddKe06          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<dd,e6          d e<dd,e6          d e<d          d e<d          d e<d          d e<d¦          d e<dĦ          d e<dƦ          d e<dȦ          d e<dʦ          d e<d̦          d e<dΦ          d e<dЦ          d e<dҦ          i d e<dԦ          d e<d֦          d e<dئ          d e<dڦ          d e<dܦ          d e<dަ          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d          d e<d          d e<dd;e?dWdXi4          d e<d          d e<dd;e?6          d e<d d;e?6          d e<d          d e<d          d e<dd;e?6          d e<dd;e?6          d	 e<d
          d e<d          d e<dd;e@d)dXi4          d e<dd;e@dWdXi4          d e<dd;e@d.dXi4          d e<dd;e@d)dXi4          d e<dd;e@dWdXi4          i d e<dd;e@d.dXi4          d e<d          d e<d          d e<d          d e<d           d! e<d"          d# e<d$d;e?6          d% e<d&          d' e<d(dKe06          d) e<d*dKe06          d+ e<d,          d- e<d.          d/ e<d0          d1 e<d2          d3 e<d4          d5 e<d6          d7 e<d8          i d9 e<d:          d; e<d<          d= e<d>          d? e<d@          dA e<dB          dC e<dD          dE e<dF          dG e<dH          dI e<dJ          dK e<dL          dM e<dN          dO e<dP          dQ e<dR          dS e<dT          dU e<dV          dW e<dX          dY e<dZ          i d[ e<d\          d] e<d^          d_ e<d`          da e<db          dc e<dd          de e<df          dg e<dh          di e<dj          dk e<dl          dm e<dn          do e<dp          dq e<dr          ds e<dt          du e<dv          dw e<dx          dy e<dzd;e@6          d{ e<d|d;e@dWdXi4          i d} e<d~d;e@d)dXi4          d e<dd;e@d.dXi4          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d¦          d e<dĦ          d e<dƦ          d e<dȦ          d e<dʦ          d e<d̦          d e<dΦ          d e<dd7e6          d e<dd,e6          d e<dd7e6          d e<d֦          d e<dئ          d e<dڦ          d e<dܦ          d e<dަ          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<d          d e<d          d e<dd,e6          d e<dd,e6          d e<ddKe06          d e<ddKe06          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d           d e<d          d e<d          i d e<d          d e<d          d	 e<d
          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<dd,e6          d e<ddKe06          d e<d           d! e<d"          d# e<d$          d% e<d&          i d' e<d(          d) e<d*          d+ e<d,          d- e<d.          d/ e<d0          d1 e<d2d7e6          d3 e<d4d7e6          d5 e<d6          d7 e<d8          d9 e<d:          d; e<d<          d= e<d>          d? e<d@          dA e<dB          dC e<dD          dE e<dF          dG e<dH          i dI e<dJ          dK e<dL          dM e<dN          dO e<dP          dQ e<dR          dS e<dT          dU e<dVd,e6          dW e<dX          dY e<dZ          d[ e<d\          d] e<d^          d_ e<d`          da e<db          dc e<dd          de e<df          dg e<dh          di e<dj          i dk e<dl          dm e<dn          do e<dp          dq e<dr          ds e<dt          du e<dv          dw e<dx          dy e<dz          d{ e<d|          d} e<d~          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<dd,e6          d e<dd,e6          d e<dƦ          d e<dȦ          d e<dʦ          d e<d̦          d e<dΦ          d e<dЦ          i d e<dҦ          d e<dԦ          d e<d֦          d e<dئ          d e<dڦ          d e<dܦ          d e<dަ          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          i d e<d          d e<d          d e<d          d e<d          d e<d          d e<d          d e<d           d e<d          d e<d          d e<d          d e<d          d	 e<d
          d e<dd,e6          d e<dd,e6          d e<d          d e<d          d e<d          i deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d           deAz    e<d!          deAz    e<d"          deAz    e<d#          deAz    e<d$          deAz    e<d%          d&eAz    e<d'          i d(eAz    e<d)          d*eAz    e<d+          d,eAz    e<d-          d.eAz    e<d/          d0eAz    e<d1          d2eAz    e<d3          d4eAz    e<d5          d6eAz    e<d7          d8eAz    e<d9          d:eAz    e<d;          d<eAz    e<d=          d>eAz    e<d?d,e6          d@eAz    e<dA          dBeAz    e<dCd,e6          dDeAz    e<dE          dFeAz    e<dG          dHeAz    e<dI          i dJeAz    e<dK          dLeAz    e<dM          dNeAz    e<dO          dPeAz    e<dQ          dReAz    e<dS          dTeAz    e<dU          dVeAz    e<dW          dXeAz    e<dY          deAz    e<dZ          deAz    e<d[          deAz    e<d\          deAz    e<d]          deAz    e<d^          deAz    e<d_          deAz    e<d`          deAz    e<da          deAz    e<db          i deAz    e<dc          d	eAz    e<dd          deAz    e<de          deAz    e<df          deAz    e<dg          deAz    e<dhd,e6          deAz    e<di          deAz    e<djd,e6          deAz    e<dk          deAz    e<dl          deAz    e<dm          deAz    e<dn          d!eAz    e<do          d#eAz    e<dp          d%eAz    e<dq          d'eAz    e<dr          d*eAz    e<ds          i d,eAz    e<dt          d/eAz    e<du          d1eAz    e<dv          d3eAz    e<dw          d5eAz    e<dx          d7eAz    e<dy          dEeAz    e<dz          dGeAz    e<d{          d]eAz    e<d|          d_eAz    e<d}          daeAz    e<d~          dceAz    e<d          deeAz    e<d          dgeAz    e<d          dieAz    e<d          dkeAz    e<d          dmeAz    e<d          i doeAz    e<d          d{eAz    e<d          d}eAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          i deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          i deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          i deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          d!eAz    e<d          d#eAz    e<d          d%eAz    e<d¦          d'eAz    e<dæ          d)eAz    e<dĦ          d+eAz    e<dŦ          d-eAz    e<dƦ          d/eAz    e<dǦ          d9eAz    e<dȦ          i d;eAz    e<dɦ          d=eAz    e<dʦ          d?eAz    e<d˦          dAeAz    e<d̦          dCeAz    e<dͦ          dEeAz    e<dΦ          dGeAz    e<dϦ          dIeAz    e<dЦ          dKeAz    e<dѦ          dMeAz    e<dҦ          dOeAz    e<dӦ          dQeAz    e<dԦ          dSeAz    e<dզ          dUeAz    e<d֦          dWeAz    e<dצ          dYeAz    e<dئ          d[eAz    e<d٦          i d]eAz    e<dڦ          d_eAz    e<dۦ          dueAz    e<dܦ          dweAz    e<dݦ          dyeAz    e<dަ          d{eAz    e<dߦ          d}eAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          i deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          i deAz    e<d          deAz    e<dd7e6          deAz    e<dd,e6          deAz    e<d          deAz    e<d           deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d	          deAz    e<d
          deAz    e<d          deAz    e<d          i deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          deAz    e<d          i deAz    e<d          deAz    e<d          deAz    e<d           deAz    e<d!          deAz    e<d"          deAz    e<d#          deAz    e<d$          deAz    e<d%          d	eAz    e<d&          deAz    e<d'          deAz    e<d(dKe06          deAz    e<d)dKe06          deAz    e<d*          deAz    e<d+          deAz    e<d,          deAz    e<d-          deAz    e<d.          i deAz    e<d/          deAz    e<d0          deAz    e<d1          d!eAz    e<d2          d#eAz    e<d3          d%eAz    e<d4          d'eAz    e<d5          d)eAz    e<d6          d+eAz    e<d7          d-eAz    e<d8          d/eAz    e<d9          d1eAz    e<d:          d3eAz    e<d;          d5eAz    e<d<          d7eAz    e<d=          d9eAz    e<d>          d;eAz    e<d?          i d=eAz    e<d@          d?eAz    e<dA          dAeAz    e<dB          dCeAz    e<dC          dEeAz    e<dD          dGeAz    e<dE          dIeAz    e<dF          dKeAz    e<d          dMeAz    e<dG          dOeAz    e<dH          dQeAz    e<dI          dSeAz    e<dJ          dUeAz    e<dK          dWeAz    e<dL          dYeAz    e<dM          d[eAz    e<dN          d]eAz    e<dO          i d_eAz    e<dP          daeAz    e<dQ          dceAz    e<dR          deeAz    e<dS          dgeAz    e<dT          dieAz    e<dU          dkeAz    e<dV          dmeAz    e<dW          doeAz    e<dX          dqeAz    e<dY          dseAz    e<dZ          dueAz    e<d[          dweAz    e<d\          dyeAz    e<d]          d{eAz    e<d^          d}eAz    e<d_          deAz    e<d`          i deAz    e<da          deAz    e<db          deAz    e<dc          deAz    e<dd          deAz    e<de          deAz    e<df          deAz    e<dg          deAz    e<dh          deAz    e<di          deAz    e<dj          deAz    e<dk          deAz    e<dl          deAz    e<dm          deAz    e<dn          deAz    e<do          deAz    e<dp          deAz    e<dq          deAz    e<drd,e6          iZBds eBC                                D             ZDdtdudvdwdxdyZE G dz d{e&          ZF G d| d}e&          ZG G d~ de&          ZH G d de&          ZI G d de&          ZJ G d de          ZKd ZLddZM G d de&          ZN G d de&          ZOd ZPddZQd ZR G d de,          ZS G d deN          ZT G d deN          ZU G d de&          ZV G d de&          ZW G d de&          ZX G d deX          ZY e'e5eFd=            e'eFeO            e'eOeO            e'eXeO            e'eJeO            e'e5eGd?            e'eGeO           dS (  a=  
Cisco NetFlow protocol v1, v5, v9 and v10 (IPFix)

HowTo dissect NetflowV9/10 (IPFix) packets

# From a pcap / list of packets

Using sniff and sessions::

    >>> sniff(offline=open("my_great_pcap.pcap", "rb"), session=NetflowSession)

Using the netflowv9_defragment/ipfix_defragment commands:

- get a list of packets containing NetflowV9/10 packets
- call `netflowv9_defragment(plist)` to defragment the list

(ipfix_defragment is an alias for netflowv9_defragment)

# Live / on-the-flow / other: use NetflowSession::

    >>> sniff(session=NetflowSession, prn=[...])

    N)Counter)conf)	IP_PROTOS)warningScapy_Exception)BitEnumFieldBitFieldByteEnumField	ByteFieldConditionalFieldFieldFieldLenField
FlagsFieldIPFieldIntField	LongFieldMACFieldPacketListFieldSecondsIntFieldShortEnumField
ShortFieldStrFieldStrFixedLenFieldStrLenFieldThreeBytesFieldUTCTimeField
XByteFieldXShortField)Packetbind_layersbind_bottom_up)
PacketList)	IPSession)UDP)IP6Field)AnyDictOptionalc                   ,    e Zd ZdZ edd          gZdS )NetflowHeaderzNetflow Headerversion   N)__name__
__module____qualname__namer   fields_desc     X/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/layers/netflow.pyr*   r*   R   s'        D:i++,KKKr3   r*   )  i  i'  i'  i  )dport)sportr5   )r6   r7   c                   x    e Zd ZdZ edd           edd           edd           eddd	          gZd
 ZdS )NetflowHeaderV1zNetflow Header v1countN	sysUptimer   unixSecsunixNanoSecondsTuse_nanoc                     | j         Dt          |                                           dz
  }t          j        d|          |dd          z   }||z   S Nr,   !H   r:   lenlayersstructpackselfpktpayr:   s       r4   
post_buildzNetflowHeaderV1.post_buildi   L    :&&*E+dE**SW4CSyr3   	r-   r.   r/   r0   r   r   r   r1   rM   r2   r3   r4   r9   r9   b   sr        D:gt,,8K++<
A..< 11tDDDFK
    r3   r9   c                   v   e Zd ZdZ edd           edd           edd           edd           edd           ed	d           ed
d           edd           edd           edd           edd           edd           edd           edd           edd           edd          gZdS )NetflowRecordV1zNetflow Record v1ipsrc0.0.0.0ipdstnexthopinputIfIndexr   outpuIfIndexdpktsdbytes	starttimeendtimesrcportdstportpaddingprototospadding1padding2N)	r-   r.   r/   r0   r   r   r   r   r1   r2   r3   r4   rQ   rQ   p   s
       D77I..77I..79i00:na00:na008GQ''8Ha((8K++8Iq)):i++:i++:i++9Wa((9UA&&8J**8J**,KKKr3   rQ   r,   )r+   c                       e Zd ZdZ edd           edd           edd           eddd	           ed
d           edd           edd           edd          gZd Z	dS )NetflowHeaderV5zNetflow Header v5r:   Nr;   r   r<   r=   Tr>   flowSequence
engineTypeengineIDsamplingIntervalc                     | j         Dt          |                                           dz
  }t          j        d|          |dd          z   }||z   S rA   rD   rI   s       r4   rM   zNetflowHeaderV5.post_build   rN   r3   )
r-   r.   r/   r0   r   r   r   r   r1   rM   r2   r3   r4   rd   rd      s        D:gt,,8K++<
A..< 11tDDD8NA..9\1--9Z++:0!446K    r3   rd   c                      e Zd ZdZ edd           edd           edd           edd           ed	d           ed
d           edd           edd           edd           edd           edd           edd           edddd           e	de
j        e           edd           edd           edd           edd           edd           edd          gZdS )NetflowRecordV5zNetflow Record v5srcz	127.0.0.1dstrU   rS   inputr   outputrX   r,   dOctets<   firstlastr\   r]   pad1tcpFlagsrC      FSRPAUECprotr`   src_asdst_assrc_maskdst_maskpad2N)r-   r.   r/   r0   r   r   r   r   r   r
   socketIPPROTO_TCPr   r1   r2   r3   r4   rk   rk      sO       D75+..75+..79i00:gq)):h**8GQ''8Ir**8GQ''8FA&&:i++:i++9VQ'':j#q*== =);YGG9UA&&:h**:h**9Z++9Z++:fa(('*KKKr3   rk      c                   r    e Zd ZU eed<   dZeed<   dZeed<    e	j        e
          Zeeef         ed<   dS )_N910Fr0   r   lengthNfield)default_factorykwargs)r-   r.   r/   str__annotations__r   intr   r   dataclassesdictr   r'   r&   r2   r3   r4   r   r      s`         
IIIFCOOOE5.[.tDDDFDcNDDDDDr3   r   c                       e Zd Zd ZdS )
ShortOrIntc                     t          |          dk    r"t          j        | | j        | j        d           t          j        | ||          S )NrC   rB   )fmt)rE   r   __init__r0   defaultgetfield)rJ   rK   xs      r4   r   zShortOrInt.getfield   sB    q66Q;;N4DLdCCCC~dC+++r3   N)r-   r.   r/   r   r2   r3   r4   r   r      s#        , , , , ,r3   r   c                       e Zd ZdZd ZdS )_AdjustableNetflowFieldz`Fields that can receive a length kwarg, even though they normally can't.
    Netflow usage only.c                     |dk    rt          j        | ||           d S |dk    rt          j        | ||           d S t          j        | ||           d S )N   rv   )r   r   r   )rJ   r0   r   r   s       r4   r   z _AdjustableNetflowField.__init__   sc    Q;;dD'222Fq[[tT7333F4w/////r3   Nr-   r.   r/   __doc__r   r2   r3   r4   r   r      s-         0 0 0 0 0r3   r   c                       e Zd ZdZd ZdS )N9SecondsIntFieldz5Defines dateTimeSeconds (without EPOCH: just seconds)c                     |                     dd          }t          j        | ||g|R i | t                              | |||           d S Nr   rv   )popr   r   r   rJ   r0   r   argskargsr   s         r4   r   zN9SecondsIntField.__init__   se    8Q'' tWEtEEEuEEE(($	
 	
 	
 	
 	
r3   Nr   r2   r3   r4   r   r      s)        ??
 
 
 
 
r3   r   c                       e Zd ZdZd ZdS )N9UTCTimeFieldzDefines dateTimeSeconds (EPOCH)c                     |                     dd          }t          j        | ||g|R i | t                              | |||           d S r   )r   r   r   r   r   s         r4   r   zN9UTCTimeField.__init__   se    8Q''dD'BDBBBEBBB(($	
 	
 	
 	
 	
r3   Nr   r2   r3   r4   r   r      s)        ))
 
 
 
 
r3   r   i  IN_BYTESr   r   rC   IN_PKTS   FLOWSPROTOCOLenum)r   r   r   TOS)r   r      	TCP_FLAGS   L4_SRC_PORTrv   IPV4_SRC_ADDR	   SRC_MASK
   
INPUT_SNMP   L4_DST_PORT   IPV4_DST_ADDR   DST_MASK   OUTPUT_SNMP   IPV4_NEXT_HOP   SRC_AS   DST_AS   BGP_IPV4_NEXT_HOP   MUL_DST_PKTS   MUL_DST_BYTES   LAST_SWITCHEDuse_msecT   FIRST_SWITCHED   	OUT_BYTES   OUT_PKTS   IP_LENGTH_MINIMUM   IP_LENGTH_MAXIMUM   IPV6_SRC_ADDR   IPV6_DST_ADDR   IPV6_SRC_MASK   IPV6_DST_MASK   IPV6_FLOW_LABEL    	ICMP_TYPE!   MUL_IGMP_TYPE"   SAMPLING_INTERVAL#   SAMPLING_ALGORITHM$   FLOW_ACTIVE_TIMEOUT%   FLOW_INACTIVE_TIMEOUT&   ENGINE_TYPE'   	ENGINE_ID(   TOTAL_BYTES_EXP)   TOTAL_PKTS_EXP*   TOTAL_FLOWS_EXP+   IPV4_ROUTER_SC,   IP_SRC_PREFIX-   IP_DST_PREFIX.   MPLS_TOP_LABEL_TYPEUNKNOWNzTE-MIDPTATOMVPNBGPLDP)r   r,   rC   r   r   r   /   MPLS_TOP_LABEL_IP_ADDR0   FLOW_SAMPLER_ID1   FLOW_SAMPLER_MODE2   FLOW_SAMPLER_RANDOM_INTERVAL3   
FLOW_CLASS4   MIN_TTL5   MAX_TTL6   
IPV4_IDENT7   DST_TOS8   SRC_MAC9   DST_MAC:   SRC_VLAN;   DST_VLANrq   IP_PROTOCOL_VERSION=   	DIRECTIONzIngress flowzEgress flow)r   r,   >   IPV6_NEXT_HOP?   BGP_IPV6_NEXT_HOP@   IPV6_OPTION_HEADERSF   MPLS_LABEL_1G   MPLS_LABEL_2H   MPLS_LABEL_3I   MPLS_LABEL_4J   MPLS_LABEL_5K   MPLS_LABEL_6L   MPLS_LABEL_7M   MPLS_LABEL_8N   MPLS_LABEL_9O   MPLS_LABEL_10P   DESTINATION_MACQ   
SOURCE_MACR   IF_NAMES   IF_DESCT   SAMPLER_NAMEU   BYTES_TOTALV   PACKETS_TOTALX   FRAGMENT_OFFSETY   FORWARDING_STATUSZ   VPN_ROUTE_DISTINGUISHER[   mplsTopLabelPrefixLength\   SRC_TRAFFIC_INDEX]   DST_TRAFFIC_INDEX^   APPLICATION_DESC_   APPLICATION_ID`   APPLICATION_NAMEb   postIpDiffServCodePointc   multicastReplicationFactore   classificationEngineId   DST_AS_PEER   SRC_AS_PEER   exporterIPv4Address   exporterIPv6Address   DROPPED_BYTES   DROPPED_PACKETS   DROPPED_BYTES_TOTAL   DROPPED_PACKETS_TOTAL   flowEndReason   commonPropertiesId   observationPointId   icmpTypeCodeIPv6   MPLS_TOP_LABEL_IPv6_ADDRESS   
lineCardId   portId   meteringProcessId   FLOW_EXPORTER   
templateId   wlanChannelId   wlanSSID   flowId   observationDomainId   flowStartSeconds   flowEndSeconds   flowStartMilliseconds   flowEndMilliseconds   flowStartMicroseconds	use_micro   flowEndMicroseconds   flowStartNanosecondsr?      flowEndNanoseconds   flowStartDeltaMicroseconds   flowEndDeltaMicroseconds   systemInitTimeMilliseconds   flowDurationMilliseconds   flowDurationMicroseconds   observedFlowTotalCount   ignoredPacketTotalCount   ignoredOctetTotalCount   notSentFlowTotalCount   notSentPacketTotalCount   notSentOctetTotalCount   destinationIPv6Prefix   sourceIPv6Prefix   postOctetTotalCount   postPacketTotalCount   flowKeyIndicator   postMCastPacketTotalCount   postMCastOctetTotalCount   ICMP_IPv4_TYPE   ICMP_IPv4_CODE   ICMP_IPv6_TYPE   ICMP_IPv6_CODE   UDP_SRC_PORT   UDP_DST_PORT   TCP_SRC_PORT   TCP_DST_PORT   TCP_SEQ_NUM   TCP_ACK_NUM   TCP_WINDOW_SIZE   TCP_URGENT_PTR   TCP_HEADER_LEN   IP_HEADER_LEN   IP_TOTAL_LEN   payloadLengthIPv6   IP_TTL   nextHeaderIPv6   mplsPayloadLength   IP_DSCP   IP_PRECEDENCE   IP_FRAGMENT_FLAGS   DELTA_BYTES_SQUARED   TOTAL_BYTES_SQUARED   MPLS_TOP_LABEL_TTL   MPLS_LABEL_STACK_OCTETS   MPLS_LABEL_STACK_DEPTH   MPLS_TOP_LABEL_EXP   IP_PAYLOAD_LENGTH   
UDP_LENGTH   IS_MULTICAST   IP_HEADER_WORDS   IP_OPTION_MAP   TCP_OPTION_MAP   paddingOctets   collectorIPv4Address   collectorIPv6Address   collectorInterface   collectorProtocolVersion   collectorTransportProtocol   collectorTransportPort   exporterTransportPort   tcpSynTotalCount   tcpFinTotalCount   tcpRstTotalCount   tcpPshTotalCount   tcpAckTotalCount   tcpUrgTotalCount   ipTotalLength   postNATSourceIPv4Address   postNATDestinationIPv4Address   postNAPTSourceTransportPort    postNAPTDestinationTransportPort   natOriginatingAddressRealm   natEvent   initiatorOctets   responderOctets   firewallEvent   ingressVRFID   egressVRFID   VRFname   postMplsTopLabelExp   tcpWindowScale   biflowDirection   ethernetHeaderLength   ethernetPayloadLength   ethernetTotalLength   dot1qVlanId   dot1qPriority   dot1qCustomerVlanId   dot1qCustomerPriority   
metroEvcId   metroEvcType   pseudoWireId   pseudoWireType   pseudoWireControlWord   ingressPhysicalInterface   egressPhysicalInterface   postDot1qVlanId   postDot1qCustomerVlanId   ethernetTypei  postIpPrecedencei  collectionTimeMillisecondsi  exportSctpStreamIdi  maxExportSecondsi  maxFlowEndSecondsi  messageMD5Checksumi  messageScopei  minExportSecondsi	  minFlowStartSecondsi
  opaqueOctetsi  sessionScopei  maxFlowEndMicrosecondsi  maxFlowEndMillisecondsi  maxFlowEndNanosecondsi  minFlowStartMicrosecondsi  minFlowStartMillisecondsi  minFlowStartNanosecondsi  collectorCertificatei  exporterCertificatei  dataRecordsReliabilityi  observationPointTypei  newConnectionDeltaCounti  connectionSumDurationSecondsi  connectionTransactionIdi  postNATSourceIPv6Addressi  postNATDestinationIPv6Addressi  	natPoolIdi  natPoolNamei  anonymizationFlagsi  anonymizationTechniquei  informationElementIndexi   p2pTechnologyi!  tunnelTechnologyi"  encryptedTechnologyi#  	basicListi$  subTemplateListi%  subTemplateMultiListi&  bgpValidityStatei'  IPSecSPIi(  greKeyi)  natTypei*  initiatorPacketsi+  responderPacketsi,  observationDomainNamei-  selectionSequenceIdi.  
selectorIdi/  informationElementIdi0  selectorAlgorithmi1  samplingPacketIntervali2  samplingPacketSpacei3  samplingTimeIntervali4  samplingTimeSpacei5  samplingSizei6  samplingPopulationi7  samplingProbabilityi8  dataLinkFrameSizei9  IP_SECTION_HEADERi:  IP_SECTION_PAYLOADi;  dataLinkFrameSectioni<  mplsLabelStackSectioni=  mplsPayloadPacketSectioni>  selectorIdTotalPktsObservedi?  selectorIdTotalPktsSelectedi@  absoluteErroriA  relativeErroriB  observationTimeSecondsiC  observationTimeMillisecondsiD  observationTimeMicrosecondsiE  observationTimeNanosecondsiF  digestHashValueiG  hashIPPayloadOffsetiH  hashIPPayloadSizeiI  hashOutputRangeMiniJ  hashOutputRangeMaxiK  hashSelectedRangeMiniL  hashSelectedRangeMaxiM  hashDigestOutputiN  hashInitialiserValueiO  selectorNameiP  upperCILimitiQ  lowerCILimitiR  confidenceLeveliS  informationElementDataTypeiT  informationElementDescriptioniU  informationElementNameiV  informationElementRangeBeginiW  informationElementRangeEndiX  informationElementSemanticsiY  informationElementUnitsiZ  privateEnterpriseNumberi[  virtualStationInterfaceIdi\  virtualStationInterfaceNamei]  virtualStationUUIDi^  virtualStationNamei_  layer2SegmentIdi`  layer2OctetDeltaCountia  layer2OctetTotalCountib  ingressUnicastPacketTotalCountic   ingressMulticastPacketTotalCountid   ingressBroadcastPacketTotalCountie  egressUnicastPacketTotalCountif  egressBroadcastPacketTotalCountig  #monitoringIntervalStartMilliSecondsih  !monitoringIntervalEndMilliSecondsii  portRangeStartij  portRangeEndik  portRangeStepSizeil  portRangeNumPortsim  staMacAddressin  staIPv4Addressio  wtpMacAddressip  ingressInterfaceTypeiq  egressInterfaceTypeir  rtpSequenceNumberis  userNameit  applicationCategoryNameiu  applicationSubCategoryNameiv  applicationGroupNameiw  originalFlowsPresentix  originalFlowsInitiatediy  originalFlowsCompletediz  distinctCountOfSourceIPAddressi{  #distinctCountOfDestinationIPAddressi|   distinctCountOfSourceIPv4Addressi}  %distinctCountOfDestinationIPv4Addressi~   distinctCountOfSourceIPv6Addressi  %distinctCountOfDestinationIPv6Addressi  valueDistributionMethodi  rfc3550JitterMillisecondsi  rfc3550JitterMicrosecondsi  rfc3550JitterNanosecondsi  dot1qDEIi  dot1qCustomerDEIi  flowSelectorAlgorithmi  flowSelectedOctetDeltaCounti  flowSelectedPacketDeltaCounti  flowSelectedFlowDeltaCounti  selectorIDTotalFlowsObservedi  selectorIDTotalFlowsSelectedi  samplingFlowIntervali  samplingFlowSpacingi  flowSamplingTimeIntervali  flowSamplingTimeSpacingi  hashFlowDomaini  transportOctetDeltaCounti  transportPacketDeltaCounti  originalExporterIPv4Addressi  originalExporterIPv6Addressi  originalObservationDomainIdi  intermediateProcessIdi  ignoredDataRecordTotalCounti  dataLinkFrameTypei  sectionOffseti  sectionExportedOctetsi  dot1qServiceInstanceTagi  dot1qServiceInstanceIdi  dot1qServiceInstancePriorityi  dot1qCustomerSourceMacAddressi  "dot1qCustomerDestinationMacAddressi  z)deprecated [dup of layer2OctetDeltaCount]i  postLayer2OctetDeltaCounti  postMCastLayer2OctetDeltaCounti  z(deprecated [dup of layer2OctetTotalCounti  postLayer2OctetTotalCounti  postMCastLayer2OctetTotalCounti  minimumLayer2TotalLengthi  maximumLayer2TotalLengthi  droppedLayer2OctetDeltaCounti  droppedLayer2OctetTotalCounti  ignoredLayer2OctetTotalCounti  notSentLayer2OctetTotalCounti  layer2OctetDeltaSumOfSquaresi  layer2OctetTotalSumOfSquaresi  layer2FrameDeltaCounti  layer2FrameTotalCounti   pseudoWireDestinationIPv4Addressi  ignoredLayer2FrameTotalCounti  mibObjectValueIntegeri  mibObjectValueOctetStringi  mibObjectValueOIDi  mibObjectValueBitsi  mibObjectValueIPAddressi  mibObjectValueCounteri  mibObjectValueGaugei  mibObjectValueTimeTicksi  mibObjectValueUnsignedi  mibObjectValueTablei  mibObjectValueRowi  mibObjectIdentifieri  mibSubIdentifieri  mibIndexIndicatori  mibCaptureTimeSemanticsi  mibContextEngineIDi  mibContextNamei  mibObjectNamei  mibObjectDescriptioni  mibObjectSyntaxi  mibModuleNamei  
mobileIMSIi  mobileMSISDNi  httpStatusCodei  sourceTransportPortsLimiti  httpRequestMethodi  httpRequestHosti  httpRequestTargeti  httpMessageVersioni  natInstanceIDi  internalAddressRealmi  externalAddressRealmi  natQuotaExceededEventi  natThresholdEventi  httpUserAgenti  httpContentTypei  httpReasonPhrasei  maxSessionEntriesi  maxBIBEntriesi  maxEntriesPerUseri  maxSubscribersi  maxFragmentsPendingReassemblyi  addressPoolHighThresholdi  addressPoolLowThresholdi  addressPortMappingHighThresholdi  addressPortMappingLowThresholdi  &addressPortMappingPerUserHighThresholdi  !globalAddressMappingHighThresholdi4`  NAT_LOG_FIELD_IDX_CONTEXT_IDi5`  NAT_LOG_FIELD_IDX_CONTEXT_NAMEi6`  NAT_LOG_FIELD_IDX_ASSIGN_TS_SECi7`  !NAT_LOG_FIELD_IDX_UNASSIGN_TS_SECi8`  NAT_LOG_FIELD_IDX_IPV4_INT_ADDRi9`  NAT_LOG_FIELD_IDX_IPV4_EXT_ADDRi:`   NAT_LOG_FIELD_IDX_EXT_PORT_FIRSTi;`  NAT_LOG_FIELD_IDX_EXT_PORT_LASTi  INGRESS_ACL_IDi  EGRESS_ACL_IDi  FW_EXT_EVENTiЄ  SGT_SOURCE_TAGiф  SGT_DESTINATION_TAGi҄  SGT_SOURCE_NAMEiӄ  SGT_DESTINATION_NAMEi  PACKETS_DROPPEDi  	BYTE_RATEi  APPLICATION_MEDIA_BYTESi  APPLICATION_MEDIA_BYTE_RATEi  APPLICATION_MEDIA_PACKETSi  APPLICATION_MEDIA_PACKET_RATEi  APPLICATION_MEDIA_EVENTi  MONITOR_EVENTi  TIMESTAMP_INTERVALi  TRANSPORT_PACKETS_EXPECTEDi  TRANSPORT_ROUND_TRIP_TIMEi  TRANSPORT_EVENT_PACKET_LOSSi  TRANSPORT_PACKETS_LOSTi  TRANSPORT_PACKETS_LOST_RATEi  TRANSPORT_RTP_SSRCi  TRANSPORT_RTP_JITTER_MEANi  TRANSPORT_RTP_JITTER_MINi  TRANSPORT_RTP_JITTER_MAXi  TRANSPORT_RTP_PAYLOAD_TYPEiϐ  TRANSPORT_BYTES_OUT_OF_ORDERiҐ  TRANSPORT_PACKETS_OUT_OF_ORDERiې  TRANSPORT_TCP_WINDOWS_SIZE_MINiܐ  TRANSPORT_TCP_WINDOWS_SIZE_MAXiݐ  TRANSPORT_TCP_WINDOWS_SIZE_MEANiސ  "TRANSPORT_TCP_MAXIMUM_SEGMENT_SIZEi@  AAA_USERNAMEiA  XLATE_SRC_ADDR_IPV4iB  XLATE_DST_ADDR_IPV4iC  XLATE_SRC_PORTiD  XLATE_DST_PORTiE  FW_EVENTSRC_FRAGMENTSDST_FRAGMENTSSRC_TO_DST_MAX_THROUGHPUTSRC_TO_DST_MIN_THROUGHPUTSRC_TO_DST_AVG_THROUGHPUTSRC_TO_SRC_MAX_THROUGHPUTSRC_TO_SRC_MIN_THROUGHPUTW   SRC_TO_SRC_AVG_THROUGHPUTNUM_PKTS_UP_TO_128_BYTESNUM_PKTS_128_TO_256_BYTESNUM_PKTS_256_TO_512_BYTESNUM_PKTS_512_TO_1024_BYTESNUM_PKTS_1024_TO_1514_BYTESNUM_PKTS_OVER_1514_BYTESCUMULATIVE_ICMP_TYPESRC_IP_COUNTRYf   SRC_IP_CITYg   DST_IP_COUNTRYh   DST_IP_CITYi   FLOW_PROTO_PORTj   UPSTREAM_TUNNEL_IDk   LONGEST_FLOW_PKTl   SHORTEST_FLOW_PKTm   RETRANSMITTED_IN_PKTSn   RETRANSMITTED_OUT_PKTSo   OOORDER_IN_PKTSp   OOORDER_OUT_PKTSq   UNTUNNELED_PROTOCOLr   UNTUNNELED_IPV4_SRC_ADDRs   UNTUNNELED_L4_SRC_PORTt   UNTUNNELED_IPV4_DST_ADDRu   UNTUNNELED_L4_DST_PORTv   L7_PROTOw   L7_PROTO_NAMEx   DOWNSTREAM_TUNNEL_IDy   FLOW_USER_NAMEz   FLOW_SERVER_NAME{   CLIENT_NW_LATENCY_MS|   SERVER_NW_LATENCY_MS}   APPL_LATENCY_MS~   PLUGIN_NAME   RETRANSMITTED_IN_BYTESRETRANSMITTED_OUT_BYTESSIP_CALL_IDSIP_CALLING_PARTYSIP_CALLED_PARTYSIP_RTP_CODECSSIP_INVITE_TIMESIP_TRYING_TIMESIP_RINGING_TIMESIP_INVITE_OK_TIMESIP_INVITE_FAILURE_TIMESIP_BYE_TIMESIP_BYE_OK_TIMESIP_CANCEL_TIMESIP_CANCEL_OK_TIMESIP_RTP_IPV4_SRC_ADDRSIP_RTP_L4_SRC_PORTSIP_RTP_IPV4_DST_ADDRSIP_RTP_L4_DST_PORTSIP_RESPONSE_CODESIP_REASON_CAUSERTP_FIRST_SEQRTP_FIRST_TSRTP_LAST_SEQRTP_LAST_TSRTP_IN_JITTERRTP_OUT_JITTERRTP_IN_PKT_LOSTRTP_OUT_PKT_LOSTRTP_OUT_PAYLOAD_TYPERTP_IN_MAX_DELTARTP_OUT_MAX_DELTARTP_IN_PAYLOAD_TYPESRC_PROC_PIDSRC_PROC_NAMEHTTP_URLHTTP_RET_CODEHTTP_REFERERHTTP_UA	HTTP_MIMESMTP_MAIL_FROMSMTP_RCPT_TO	HTTP_HOSTSSL_SERVER_NAMEBITTORRENT_HASHMYSQL_SRV_VERSIONMYSQL_USERNAMEMYSQL_DBMYSQL_QUERYMYSQL_RESPONSEORACLE_USERNAMEORACLE_QUERYORACLE_RSP_CODEORACLE_RSP_STRINGORACLE_QUERY_DURATION	DNS_QUERYDNS_QUERY_IDDNS_QUERY_TYPEDNS_RET_CODEDNS_NUM_ANSWERSPOP_USERGTPV1_REQ_MSG_TYPEGTPV1_RSP_MSG_TYPEGTPV1_C2S_TEID_DATAGTPV1_C2S_TEID_CTRLGTPV1_S2C_TEID_DATAGTPV1_S2C_TEID_CTRLGTPV1_END_USER_IPGTPV1_END_USER_IMSIGTPV1_END_USER_MSISDNGTPV1_END_USER_IMEIGTPV1_APN_NAMEGTPV1_RAI_MCCGTPV1_RAI_MNCGTPV1_ULI_CELL_LACGTPV1_ULI_CELL_CIGTPV1_ULI_SACGTPV1_RAT_TYPERADIUS_REQ_MSG_TYPERADIUS_RSP_MSG_TYPERADIUS_USER_NAMERADIUS_CALLING_STATION_IDRADIUS_CALLED_STATION_IDRADIUS_NAS_IP_ADDRRADIUS_NAS_IDENTIFIERRADIUS_USER_IMSIRADIUS_USER_IMEIRADIUS_FRAMED_IP_ADDRRADIUS_ACCT_SESSION_IDRADIUS_ACCT_STATUS_TYPERADIUS_ACCT_IN_OCTETSRADIUS_ACCT_OUT_OCTETSRADIUS_ACCT_IN_PKTSRADIUS_ACCT_OUT_PKTS
IMAP_LOGINGTPV2_REQ_MSG_TYPEGTPV2_RSP_MSG_TYPEGTPV2_C2S_S1U_GTPU_TEIDGTPV2_C2S_S1U_GTPU_IPGTPV2_S2C_S1U_GTPU_TEIDGTPV2_S2C_S1U_GTPU_IPGTPV2_END_USER_IMSIGTPV2_END_USER_MSISDNGTPV2_APN_NAMEGTPV2_ULI_MCCGTPV2_ULI_MNCGTPV2_ULI_CELL_TACGTPV2_ULI_CELL_IDGTPV2_RAT_TYPEGTPV2_PDN_IPGTPV2_END_USER_IMEISRC_AS_PATH_1SRC_AS_PATH_2SRC_AS_PATH_3SRC_AS_PATH_4SRC_AS_PATH_5SRC_AS_PATH_6SRC_AS_PATH_7SRC_AS_PATH_8SRC_AS_PATH_9SRC_AS_PATH_10DST_AS_PATH_1DST_AS_PATH_2DST_AS_PATH_3DST_AS_PATH_4DST_AS_PATH_5DST_AS_PATH_6DST_AS_PATH_7DST_AS_PATH_8DST_AS_PATH_9DST_AS_PATH_10MYSQL_APPL_LATENCY_USECGTPV0_REQ_MSG_TYPEGTPV0_RSP_MSG_TYPE	GTPV0_TIDGTPV0_END_USER_IPGTPV0_END_USER_MSISDNGTPV0_APN_NAMEGTPV0_RAI_MCCGTPV0_RAI_MNCGTPV0_RAI_CELL_LACGTPV0_RAI_CELL_RACGTPV0_RESPONSE_CAUSEGTPV1_RESPONSE_CAUSEGTPV2_RESPONSE_CAUSENUM_PKTS_TTL_5_32NUM_PKTS_TTL_32_64NUM_PKTS_TTL_64_96NUM_PKTS_TTL_96_128NUM_PKTS_TTL_128_160NUM_PKTS_TTL_160_192NUM_PKTS_TTL_192_224NUM_PKTS_TTL_224_255GTPV1_RAI_LACGTPV1_RAI_RACGTPV1_ULI_MCCGTPV1_ULI_MNCNUM_PKTS_TTL_2_5NUM_PKTS_TTL_EQ_1RTP_SIP_CALL_IDIN_SRC_OSI_SAPOUT_DST_OSI_SAPWHOIS_DAS_DOMAINDNS_TTL_ANSWERDHCP_CLIENT_MACDHCP_CLIENT_IPDHCP_CLIENT_NAME	FTP_LOGINFTP_PASSWORDFTP_COMMANDFTP_COMMAND_RET_CODEHTTP_METHOD	HTTP_SITESIP_C_IPSIP_CALL_STATEEPP_REGISTRAR_NAMEEPP_CMDEPP_CMD_ARGSEPP_RSP_CODEEPP_REASON_STREPP_SERVER_NAME
RTP_IN_MOSRTP_IN_R_FACTORSRC_PROC_USER_NAMESRC_FATHER_PROC_PIDSRC_FATHER_PROC_NAMEDST_PROC_PIDDST_PROC_NAMEDST_PROC_USER_NAMEDST_FATHER_PROC_PIDDST_FATHER_PROC_NAMERTP_RTTRTP_IN_TRANSITRTP_OUT_TRANSITSRC_PROC_ACTUAL_MEMORYSRC_PROC_PEAK_MEMORYSRC_PROC_AVERAGE_CPU_LOADSRC_PROC_NUM_PAGE_FAULTSDST_PROC_ACTUAL_MEMORYDST_PROC_PEAK_MEMORYDST_PROC_AVERAGE_CPU_LOADDST_PROC_NUM_PAGE_FAULTSDURATION_INDURATION_OUTSRC_PROC_PCTG_IOWAITDST_PROC_PCTG_IOWAITRTP_DTMF_TONESUNTUNNELED_IPV6_SRC_ADDRUNTUNNELED_IPV6_DST_ADDRDNS_RESPONSEDIAMETER_REQ_MSG_TYPEDIAMETER_RSP_MSG_TYPEDIAMETER_REQ_ORIGIN_HOSTDIAMETER_RSP_ORIGIN_HOSTDIAMETER_REQ_USER_NAMEDIAMETER_RSP_RESULT_CODEDIAMETER_EXP_RES_VENDOR_IDDIAMETER_EXP_RES_RESULT_CODES1AP_ENB_UE_S1AP_IDS1AP_MME_UE_S1AP_IDS1AP_MSG_EMM_TYPE_MME_TO_ENBS1AP_MSG_ESM_TYPE_MME_TO_ENBS1AP_MSG_EMM_TYPE_ENB_TO_MMES1AP_MSG_ESM_TYPE_ENB_TO_MMES1AP_CAUSE_ENB_TO_MMES1AP_DETAILED_CAUSE_ENB_TO_MMETCP_WIN_MIN_INTCP_WIN_MAX_INTCP_WIN_MSS_INTCP_WIN_SCALE_INTCP_WIN_MIN_OUTTCP_WIN_MAX_OUTTCP_WIN_MSS_OUTTCP_WIN_SCALE_OUTDHCP_REMOTE_IDDHCP_SUBSCRIBER_IDSRC_PROC_UIDDST_PROC_UID	USER_NAMEDHCP_MESSAGE_TYPERTP_IN_PKT_DROPRTP_OUT_PKT_DROPRTP_OUT_MOSRTP_OUT_R_FACTORRTP_MOSGTPV2_S5_S8_GTPC_TEIDRTP_R_FACTORRTP_SSRCPAYLOAD_HASHGTPV2_C2S_S5_S8_GTPU_TEIDGTPV2_S2C_S5_S8_GTPU_TEIDGTPV2_C2S_S5_S8_GTPU_IPGTPV2_S2C_S5_S8_GTPU_IP
SRC_AS_MAP
DST_AS_MAPDIAMETER_HOP_BY_HOP_IDUPSTREAM_SESSION_IDDOWNSTREAM_SESSION_IDSRC_IP_LONG
SRC_IP_LATDST_IP_LONG
DST_IP_LATDIAMETER_CLR_CANCEL_TYPEDIAMETER_CLR_FLAGSGTPV2_C2S_S5_S8_GTPC_IPGTPV2_S2C_S5_S8_GTPC_IPGTPV2_C2S_S5_S8_SGW_GTPU_TEIDGTPV2_S2C_S5_S8_SGW_GTPU_TEIDGTPV2_C2S_S5_S8_SGW_GTPU_IPGTPV2_S2C_S5_S8_SGW_GTPU_IPHTTP_X_FORWARDED_FORHTTP_VIA	SSDP_HOSTSSDP_USNNETBIOS_QUERY_NAMENETBIOS_QUERY_TYPENETBIOS_RESPONSENETBIOS_QUERY_OSSSDP_SERVER	SSDP_TYPESSDP_METHODNPROBE_IPV4_ADDRESSc                 $    i | ]\  }}||j         S r2   )r0   ).0kvs      r4   
<dictcomp>r    s-     ! ! !!QAqv! ! !r3   System	Interfacez	Line cardCacheTemplate)r,   rC   r   r   r   c                       e Zd ZdZ edd           edd           edd           edd           edd          gZd	 ZdS )
NetflowHeaderV9zNetflow Header V9r:   Nr;   r   r<   packageSequenceSourceIDc                      d  j         mt           fdt                                                                                     D                       }t          j        d|          |dd          z   }||z   S )Nc                     t          |           t          k    rt          | j                  S t          |           t          k    rt          | j                  S t          |           t          k    rdS dS )Nr,   r   )typeNetflowFlowsetV9rE   	templatesNetflowDataflowsetV9recordsNetflowOptionsFlowsetV9)layers    r4   count_by_layerz2NetflowHeaderV9.post_build.<locals>.count_by_layer  sb    E{{...5?+++e 4445=)))e 777qqr3   c           	   3   |   K   | ]5\  }t          fd t          d|dz             D                       V  6dS )c              3   V   K   | ]#}                      |                    V  $d S N)getlayer)r  nthr  	layer_clsrJ   s     r4   	<genexpr>z7NetflowHeaderV9.post_build.<locals>.<genexpr>.<genexpr>  sO       0 0 #N4==C#@#@AA 0 0 0 0 0 0r3   r,   N)sumrange)r  nr  r  rJ   s     @r4   r  z-NetflowHeaderV9.post_build.<locals>.<genexpr>  s         !Iq  0 0 0 0 0 0$QA0 0 0 0 0     r3   rB   rC   )r:   r  r   rF   itemsrG   rH   )rJ   rK   rL   r:   r  s   `   @r4   rM   zNetflowHeaderV9.post_build  s    	 	 	 :      %,DKKMM$:$:$@$@$B$B    E
 +dE**SW4CSyr3   rO   r2   r3   r4   r  r    s{        D:gt,,8K++<
D118-q118J**	,K    r3   r  c                   x    e Zd ZdZdZ edd           edd           edd           edd          gZd Z	dS )	NetflowHeaderV10zIPFix (Netflow V10) Headerr   N
ExportTimer   re   ObservationDomainIDc                     | j         ?t          |          t          |          z   }t          j        d|          |dd          z   }||z   S )NrB   rC   r   rE   rG   rH   )rJ   rK   rL   r   s       r4   rM   zNetflowHeaderV10.post_build  sH    ;XXC(F+dF++c!""g5CSyr3   )
r-   r.   r/   r   r0   r   r   r   r1   rM   r2   r3   r4   r  r    sr        $$'D:h--<a008NA..811557K
    r3   r  c            	           e Zd ZdZ eddd           eddde           edd           e e	d	d          d
           gZ
d Zd ZdS )NetflowTemplateFieldV9z$Netflow Flowset Template Field V9/10enterpriseBitr   r,   	fieldTypeNr   fieldLengthenterpriseNumberc                     | j         S r  r  ps    r4   <lambda>zNetflowTemplateFieldV9.<lambda>      ao r3   c                     t          j        | g|R i | | j        5| j        0| j        t          v r$t          | j                 j        pd | _        d S d S d S d S r  )r   r   r  r  NetflowV910TemplateFieldsr   )rJ   r   r   s      r4   r   zNetflowTemplateFieldV9.__init__  s{    .t...v...N& (";;;8    '&((;;r3   c                     t           j        S r  r   padding_layerrJ   r   s     r4   default_payload_classz,NetflowTemplateFieldV9.default_payload_class      !!r3   )r-   r.   r/   r0   r	   r   NetflowV910TemplateFieldTypesr   r   r   r1   r   r	  r2   r3   r4   r  r    s        1D8OQ22<T2 =? ?:mT22##HH-?$C$C$=$=? ?	@K  " " " " "r3   r  c                   j    e Zd ZdZ edd           eddd           edg ed 	          gZd
 Z	dS )NetflowTemplateV9zNetflow Flowset Template V9/10
templateIDr`  
fieldCountNtemplate_fieldscount_ofc                     | j         S r  )r  rK   s    r4   r  zNetflowTemplateV9.<lambda>  s    #. r3   
count_fromc                     t           j        S r  r  r  s     r4   r	  z'NetflowTemplateV9.default_payload_class!  r
  r3   )
r-   r.   r/   r0   r   r   r   r  r1   r	  r2   r3   r4   r  r    sy        +D:lC00 =t>OPPP"?#4b:P.H.HJ J JKK
" " " " "r3   r  c                   h    e Zd ZdZ edd           edddd            edg ed	 
          gZdS )r  zNetflow FlowSet V9/10	flowSetIDr   r   Nr  c                     |dz   S Nr   r2   rK   r   s     r4   r  zNetflowFlowsetV9.<lambda>)  s
    a!e r3   )	length_ofadjustc                     | j         dz
  S r  r   r  s    r4   r  zNetflowFlowsetV9.<lambda>+  s    3:> r3   length_from)	r-   r.   r/   r0   r   r   r   r  r1   r2   r3   r4   r  r  %  sn        "D:k1-- =4;(;(;= = ="?;4E/I/IK K KLKKKr3   r  c                       e Zd Zd ZdS )_CustomStrFixedLenFieldc                      t          |          S r  )repr)rJ   rK   r  s      r4   i2reprz_CustomStrFixedLenField.i2repr/  s    Awwr3   N)r-   r.   r/   r&  r2   r3   r4   r#  r#  .  s#            r3   r#  c           	         g |D ]\  }}d}i }|t           v rt           |         }|j        }|j        }|rat          |t                    r||d<   t          ||                                |t                              |d          dfi |                               t          t                              |d          d|                      G fdd|           }| j
        |_
        | j        |_        |S )	zLInternal function used to generate the Records from
    their template.
    Nr   unknown_datar   r3   r   c                       e Zd Z ZdZdS )-_GenNetflowRecordV9.<locals>.NetflowRecordV9ITN)r-   r.   r/   r1   match_subclass)_fields_descs   r4   NetflowRecordV9Ir*  S  s        "r3   r-  )r  r   r   
issubclassr   printappendr  getr#  r0   r-   )	clslengths_listjr  _f_type	_f_kwargs_fr-  r,  s	           @r4   _GenNetflowRecordV9r8  3  sj    L  1	)))*1-BhG	I 	'#:;; (&'	(#!Y155aHH "     '155aHH           3     H #r3   c                 ~   i }| j         D ]P}g }|j        D ]#}|                    |j        |j        f           $|rt          t          |          }|||j        <   Q|st          d          t          |          dk    r|t          d          ||         S t          |                                          d         S )zw
    Get a NetflowRecordV9/10 for a specific NetflowFlowsetV9/10.

    Have a look at the online doc for examples.
    zNo template IDs detectedr,   Nz3Multiple possible templates ! Specify templateID=..r   )r  r  r0  r  r  r8  NetflowRecordV9r  r   rE   listvalues)flowsetr  definitionsntv9llisttmplr2  s          r4   GetNetflowRecordV9rB  [  s     K! / /( 	= 	=DLL$*DN;<<<< 	/%ou==C+.K( 
&
 
 	
 ;!!E   :&&K&&(())!,,r3   c                   2    e Zd ZdZ edd          gZd ZdS )r:  z Netflow DataFlowset Record V9/10
fieldValue c                     t           j        S r  r  r  s     r4   r	  z%NetflowRecordV9.default_payload_class{  r
  r3   N)r-   r.   r/   r0   r   r1   r	  r2   r3   r4   r:  r:  w  s<        -D8L"--.K" " " " "r3   r:  c                   ~    e Zd ZdZ edd           edd           edg ed           gZedd	            Z	d
 Z
dS )r  zNetflow DataFlowSet V9/10r  r`  r   Nr  c                     | j         dz
  S r  r   r  s    r4   r  zNetflowDataflowsetV9.<lambda>  s    szA~ r3   r   c                     |rT|d d         dk    rt           S |d d         dk    rt          S |d d         dk    rt           S |d d         dk    rt          S | S )NrC   s     s    s    s    )r  r  NetflowOptionsFlowset10)r2  _pktr   r   s       r4   dispatch_hookz"NetflowDataflowsetV9.dispatch_hook  su     	/ BQBx;&&''BQBx;&&..BQBx;&&''BQBx;&&..
r3   c                     | j         Kt          |          }| dz  }|d d         t          j        d||z             z   |dd          z   }|d|z  z  }||z   S )Nr   rC   rB       r  )rJ   rK   rL   r   pads        r4   rM   zNetflowDataflowsetV9.post_build  sg    ;XXF7a-Cbqb'FKfsl;;;c!""gEC7S= CSyr3   r  )r-   r.   r/   r0   r   r   r:  r1   classmethodrL  rM   r2   r3   r4   r  r    s        &D:lC00:h--"? "&#=#=? ? ?@K    [    r3   r  c                 v   t           | v r| }t           |v r|t                    }|j        D ]k}g }|j        D ]#}|                    |j        |j        f           $|r:t          d |D                       }t          t          |          }	||	f||j	        <   l|j
        }t           |v t          | v r| }t          |v r|t                   }g }|j        D ]#}
|                    |
j        |
j        f           $t          d |D                       }t          t          |          }g }|j        D ]#}|                    |j        |j        f           $t          d |D                       }t          t&          |          }||||f||j	        <   |j
        }t          |v t(          | v r| }t(          |v r	|t(                   }|j	        }||vr||vr|                    |           dS 	 |j        d         j        }|j                            d           n# t2          t4          f$ r Y dS w xY wg }||v r||         \  }}	t7          |          |k    rC|                     |	|d|                              ||d         }t7          |          |k    C||_        |rPt7          |          dk    r(|                    t;          j        |                     n|                    |           n||v r||         \  }}}}|r&|                     ||d|                              |r)|                     |||||z                                 t7          |          ||z   k    r2|                    t;          j        |||z   d                              ||_        d|_         |j
        }t(          |v dS dS dS )z?Used internally to process a single packet during defragmentingc              3   &   K   | ]}|d          V  dS r   Nr2   r  r   s     r4   r  z/_netflowv9_defragment_packet.<locals>.<genexpr>  s&      !6!61!A$!6!6!6!6!6!6r3   c              3   &   K   | ]}|d          V  dS rS  r2   rT  s     r4   r  z/_netflowv9_defragment_packet.<locals>.<genexpr>  s&      44!444444r3   c              3   &   K   | ]}|d          V  dS rS  r2   rT  s     r4   r  z/_netflowv9_defragment_packet.<locals>.<genexpr>  s&       5 5!1 5 5 5 5 5 5r3   Nr   r   z#Netflow DataFlowSet V9/10 - OPTIONS)!r  r  r  r0  r  r  r  r8  r:  r  payloadr  scopesscopeFieldlengthscopeFieldTypeNetflowOptionsRecordScopeV9optionsoptionFieldlengthoptionFieldTypeNetflowOptionsRecordOptionV9r  addr  rD  r   
IndexErrorAttributeErrorrE   add_payloadr   r  do_dissect_payloadr0   )rK   r>  definitions_optsignoredcurrentr?  r@  rA  tot_lenr2  scopescope_tot_len	scope_clsoptoption_tot_len
option_clsdatafltiddatares	scope_len
option_lens                         r4   _netflowv9_defragment_packetru    s    3'))./G) B B 0 E EDLL$"2DN!CDDDD B!!6!6!6!6!666G-ouEEC4;S>K0oG ')) #%%%0056GE   *(      44e44444M++ I
 E  )'     ! 5 5u 5 5 555N,, J y
4W/0 oG? &00B s"""g--12F#C+%%#5E*E*EC   ~a(3""1%%%%/   C k!!*3/$ii7**JJss4>22333>D $ii7** "% 84yyA~~**4+=d+C+CDDDD11$777(((.>s.C,I
 <JJyyjyj)9::;;; JJ"
4	)j2H(H#IJJ   t99y:555JJ*4	J0F0G0G+HII   "%CnGa #g---- #"--s   $,H H&%H&c                     t          | t          t          f          s| g} i }i }t                      }| D ]}t	          ||||           t
          j        dk    r!|rt          dt          |          z             | S )zProcess all NetflowV9/10 Packets to match IDs of the DataFlowsets
    with the Headers

    params:
     - plist: the list of mixed NetflowV9/10 packets.
     - verb: verbose print (0/1)
    r,   z!Ignored templateIDs (missing): %s)
isinstancer"   r;  setru  r   verbr   )plistry  r>  re  rf  rK   s         r4   netflowv9_defragmentr{    s     ej$/00  KeeG . .$S%0%5%,	. 	. 	. 	. yA~~'~3d7mmCDDDLr3   c                      t          | i |S )zAlias for netflowv9_defragment)r{  )r   r   s     r4   ipfix_defragmentr}  %  s    0000r3   c                   B     e Zd ZdZ fdZdedee         f fdZ xZS )NetflowSessionztSession used to defragment NetflowV9/10 packets on the flow.
    See help(scapy.layers.netflow) for more infos.
    c                     i | _         i | _        t                      | _         t	          t
          |           j        |i | d S r  )r>  re  rx  rf  superr  r   )rJ   r   r   	__class__s      r4   r   zNetflowSession.__init__.  sF     "uu,nd##,d=f=====r3   rK   returnc                     t          t          |                               |          }|sd S t          || j        | j        | j                   |S r  )r  r  processru  r>  re  rf  )rJ   rK   r  s     r4   r  zNetflowSession.process4  sY    ND))11#66 	F$S%)%5%)%:%)\	3 	3 	3 
r3   )	r-   r.   r/   r   r   r   r(   r  __classcell__)r  s   @r4   r  r  *  ss         > > > > >6 hv&6          r3   r  c                       e Zd ZdZdS )r[  z-Netflow Options Template Record V9/10 - ScopeNr-   r.   r/   r0   r2   r3   r4   r[  r[  ?  s        :DDDr3   r[  c                       e Zd ZdZdS )r_  z.Netflow Options Template Record V9/10 - OptionNr  r2   r3   r4   r_  r_  C  s        ;DDDr3   r_  c            	           e Zd ZdZ eddd           eddde           edd           e ed	d          d
           gZ	d Z
dS )NetflowOptionsFlowsetOptionV9z/Netflow Options Template FlowSet V9/10 - Optionr  r   r,   r^  Nr   r]  r  c                     | j         S r  r  r  s    r4   r  z&NetflowOptionsFlowsetOptionV9.<lambda>O  r  r3   c                     t           j        S r  r  r  s     r4   r	  z3NetflowOptionsFlowsetOptionV9.default_payload_classQ  r
  r3   )r-   r.   r/   r0   r	   r   r  r   r   r1   r	  r2   r3   r4   r  r  H  s        <D8OQ22< 14 =? ?:1155##JJ/A1$E$E$=$=? ?	@K" " " " "r3   r  c                   J    e Zd ZdZ edde           edd          gZd ZdS )NetflowOptionsFlowsetScopeV9z.Netflow Options Template FlowSet V9/10 - ScoperZ  NrY  r   c                     t           j        S r  r  r  s     r4   r	  z2NetflowOptionsFlowsetScopeV9.default_payload_class[  r
  r3   )	r-   r.   r/   r0   r   ScopeFieldTypesr   r1   r	  r2   r3   r4   r  r  V  sQ        ;D!>"2D/JJ:0!446K" " " " "r3   r  c                       e Zd ZdZ edd           edd           edd           eddd	
           eddd
           ed	g ed            edg ed            e	ddd           gZ
d Zd ZdS )r  z#Netflow Options Template FlowSet V9r  r,   r   Nr  r`  option_scope_lengthrX  )r  option_field_lengthr\  c                     | j         S r  )r  r  s    r4   r  z NetflowOptionsFlowsetV9.<lambda>l  	    s/F r3   r   c                     | j         S r  )r  r  s    r4   r  z NetflowOptionsFlowsetV9.<lambda>p  r  r3   rO  c                 6    | j         | j        z
  | j        z
  dz
  S )Nr   )r   r  r  r  s    r4   r  z NetflowOptionsFlowsetV9.<lambda>q  s'    zC$;;./134 r3   c                     t           j        S r  r  r  s     r4   r	  z-NetflowOptionsFlowsetV9.default_payload_classu  r
  r3   c                     | j         3d| j        z   | j        z   }|d |         t          |           dz  dz  z   }| j        8|d d         t          j        dt          |                    z   |dd          z   }||z   S )Nr   r   rN  rC   rB   )rO  r  r  rE   r   rG   rH   rJ   rK   rL   starts       r4   rM   z"NetflowOptionsFlowsetV9.post_buildx  s    811D4LLEfuf+#c((Q' 99C;bqb'FKc#hh777#abb'ACSyr3   )r-   r.   r/   r0   r   r   r   r  r  r   r1   r	  rM   r2   r3   r4   r  r  _  s       0D:k1--:h--:lC00 =!6+35 5 5 =!6+46 6 6 #?3#F#FH H H #? "4#F#FH H H ;ud 95 95 6 6 6!7K(" " "    r3   r  c                       e Zd ZdZdZ edd           edd           edd           eddd	d
            eddd           edg ed            ed	g e	d            e
ddd           gZd ZdS )rJ  z,Netflow V10 (IPFix) Options Template FlowSetr  r   r   Nr  r`  field_countr\  c                 Z    ||                      d                              | d           z   S )Nscope_field_count)	get_fieldi2mr  s     r4   r  z NetflowOptionsFlowset10.<lambda>  s0    %&)<*> *>>Ac#tnn&M r3   )r  r  r  rX  r  c                     | j         S r  )r  r  s    r4   r  z NetflowOptionsFlowset10.<lambda>  s	    c.C r3   r  c                      | j         | j        z
  S r  )r  r  r  s    r4   r  z NetflowOptionsFlowset10.<lambda>  s    ?S-BB r3   rO  c                 ,    | j         | j        dz  z
  dz
  S )Nr   r   )r   r  r  s    r4   r  z NetflowOptionsFlowset10.<lambda>  s    zS%:Q%>?"D r3   r   c                     | j         8|d d         t          j        dt          |                    z   |dd          z   }| j        .d| j        dz  z   }|d |         t          |           dz  dz  z   }||z   S )NrC   rB   r   r   rN  )r   rG   rH   rE   rO  r  r  s       r4   rM   z"NetflowOptionsFlowset10.post_build  s    ;bqb'FKc#hh777#abb'AC8/!33Efuf+#c((Q' 99CSyr3   )r-   r.   r/   r   r0   r   r   r   r  r  r   r1   rM   r2   r3   r4   rJ  rJ    s%       669D:k1--:h--:lC00 !=*3)N )NO O O
 !=!4d*24 4 4 #?3"C"CE E E #? "4# #   ;ud 9F 9F G G G1HK6    r3   rJ  r  )r,   )Zr   r   r~   rG   collectionsr   scapy.configr   
scapy.datar   scapy.errorr   r   scapy.fieldsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   scapy.packetr   r    r!   scapy.plistr"   scapy.sessionsr#   scapy.layers.inetr$   scapy.layers.inet6r%   typingr&   r'   r(   r*   portr9   rQ   rd   rk   	dataclassr   r   r   r   r   	NTOP_BASEr  r  r  r  r  r  r  r  r  r#  r8  rB  r:  r  ru  r{  r}  r  r[  r_  r  r  r  rJ  r2   r3   r4   <module>r     sh   0                               0 0 0 0 0 0 0 0                                                 2 = < < < < < < < < < " " " " " " $ $ $ $ $ $ ! ! ! ! ! ! ' ' ' ' ' '         - - - - -F - - -
 + 3 3DN3T2222N3T22222 Cd$ 7 7 7 7    f   , , , , ,f , , ,( M?A 6 6 6 6 O_ - - - O_ - - -    f   $* * * * *f * * *0 M?A 6 6 6 6 O_ - - - O_ - - - E E E E E E E E, , , , , , , ,
0 
0 
0 
0 
0h	 
0 
0 
0
 
 
 
 
)@ 
 
 

 
 
 
 
\#: 
 
 
* 	Avvj###Avvi"""A vvga   A vvj!69*=? ? ?	A vveA     A vvk!  A vvmA     A vvoa  A vvj  A  |!A" }Q	! 	! 	!#A& q	 	 	'A* z!	  	  	 +A. }/A0 q	 	 	1A4 x	! 	! 	!5A8 x	! 	! 	!9A A< "1	 	 	=A@ ~a(((AAB q)))CAD q$!4(	* 	* 	*EAJ $!4(	* 	* 	*KAP {1%%%QAR z!$$$SAT "##UAV "##WAX r	 	 	YA\ r	 	 	]A` q	  	  	 aAd q	  	  	 eAh  $	& 	& 	&iAl {1 	" 	" 	"mAp q	  	  	 qAt "1	 	 	uA A Ax #A	! 	! 	!yA| $Q	! 	! 	!}A@ &q	! 	! 	!AAD }Q	  	  	 EAH {1	  	  	 IAL  +++MAN ***OAP  +++QAR   SAT UAV WAX $Q""#    		 		 		YAl '	 	 	mAp  +++qAr "1	  	  	 sAv -a	 	 	wAz |{A A A| y}A~ yA@ |AAB y	! 	! 	!CAF y	 	 	GAJ y	 	 	KAN z!	! 	! 	!OAR z!	! 	! 	!SAV $Q	  	  	 WAZ {1"nMJJK	M 	M 	M[A` r	 	 	aAd "2	 	 	eAh $Q///iAj ~a(((kAl ~a(((mAn ~a(((oAp ~a(((qA A Ar ~a(((sAt ~a(((uAv ~a(((wAx ~a(((yAz ~a((({A| q)))}A~  !!A@ |AAB yCAD yEAF ~GAH }IAJ KAL  !!MAN "##OAP ())QAR )**SA A AT "##UAV "##WAX !""YAZ   [A\ !""]A^ ())_A` +,,aAb (	)	)cAd 		eAf 		gAh %a
 
 
iAl %b
  
  
 mAp 	 	 qAr !	"	"sAt %	&	&uAv '	(	(wAx 	 	 yA A Az $	%	%{A| $	%	%}A~ "	#	#A@ -	.	.AAB 		CAD 		EAF #	$	$GAH 	 	 IAJ 		KAL 	 	 MAN 
		OAP 		QAR %	&	&SAT "1$
& 
& 
&UAX  $
& 
& 
&YA\ '$"D)
+ 
+ 
+]Ab %a$"D)
+ 
+ 
+cA A Ah '$#T*
, 
, 
,iAn %a$#T*
, 
, 
,oAt &q$"D)
+ 
+ 
+uAz $Q$"D)
+ 
+ 
+{A@ ,Q'#T*
, 
, 
,AAF *1'#T*
, 
, 
,GAL ,Q$"D)
+ 
+ 
+MAR *1'"D)
+ 
+ 
+SAX *1'#T*
, 
, 
,YA^ (	)	)_A` )	*	*aAb (	)	)cAd '	(	(eAf )	*	*gAh (	)	)iAj '	(	(kAl "	#	#mA A An %	&	&oAp &	'	'qAr "	#	#sAt +	,	,uAv *	+	+wAx  	!	!yAz  	!	!{A|  	!	!}A~  	!	!A@ 		AAB 		CAD 		EAF 		GAH 		IAJ 		KAL !	"	"MAN  	!	!OA A AP  	!	!QAR 	 	 SAT 		UAV #	$	$WAX 		YAZ  	!	![A\ #	$	$]A^ 	! 
" 
" 
"_Ab 	 	 cAd #	$	$eAf %	&	&gAh %	&	&iAj $	%	%kAl )	*	*mAn (	)	)oAp $	%	%qAr #	$	$sA A At 		uAv 		wAx !	"	"yAz 	 	 {A|  	!	!}A~ 	 	 A@ &q
 
 
AAD &r
  
  
 EAH $	%	%IAJ *	+	+KAL ,	-	-MAN (	)	)OAP '	(	(QAR "	#	#SAT "	#	#UAV "	#	#WAX "	#	#YA A AZ "	#	#[A\ "	#	#]A^ 	 	 _A` *1
 
 
aAd /
 
 
eAh -	.	.iAj 2	3	3kAl ,	-	-mAn 
		oAp !	"	"qAr !	"	"sAt 	 	 uAv 		wAx 		yAz 			{A| %	&	&}A~  	!	!A A A@	 !	"	"A	AB	 &	'	'C	AD	 '	(	(E	AF	 %	&	&G	AH	 		I	AJ	 	 	 K	AL	 %	&	&M	AN	 '	(	(O	AP	 		Q	AR	 		S	AT	 		U	AV	  	!	!W	AX	 '	(	(Y	AZ	 *	+	+[	A\	 )	*	*]	A^	 !	"	"_	A`	 )	*	*a	A A Ab	 		c	Ad	 "	#	#e	Af	 ,Q'"D)
+ 
+ 
+g	Al	 $	%	%m	An	 "1'
) 
) 
)o	Ar	 #A'
) 
) 
)s	Av	 $	%	%w	Ax	 		y	Az	 "1'
) 
) 
){	A~	 %a'
) 
) 
)	AB
 		C
AD
 		E
AF
 ($#T*
, 
, 
,G
AL
 ($"D)
+ 
+ 
+M
AR
 '$"D)
+ 
+ 
+S
AX
 *1$#T*
, 
, 
,Y
A^
 *1$"D)
+ 
+ 
+_
A A Ad
 )!$"D)
+ 
+ 
+e
Aj
 &	'	'k
Al
 %	&	&m
An
 (	)	)o
Ap
 &	'	'q
Ar
 )	*	*s
At
 .q'
) 
) 
)u
Ax
 )	*	*y
Az
 *2
  
  
 {
A~
 /
  
  
 
AB 		CAD 		EAF $	%	%GAH (	)	)IAJ )	*	*KAL 	 	 MAN "	#	#OA A AP %	&	&QAR 		SAT !	"	"UAV &	'	'WAX "	#	#YAZ 
		[A\ 		]A^ 			_A` "	#	#aAb "	#	#cAd '	(	(eAf %	&	&gAh 		iAj &	'	'kAl #	$	$mAn (	)	)oAp %	&	&qA A Ar &	'	'sAt #	$	$uAv 		wAx $	%	%yAz %	&	&{A| #	$	$}A~ #	$	$A@ $	%	%AAB &	'	'CAD '	(	(EAF *	+	+GAH -	.	.IAJ -	.	.KAL 	 	 MAN 	 	 OAP ($
& 
& 
&QAT -a$"D)
+ 
+ 
+UA A AZ -a$#T*
, 
, 
,[A` ,Q$"D)
+ 
+ 
+aAf !	"	"gAh %	&	&iAj #	$	$kAl $	%	%mAn $	%	%oAp &	'	'qAr &	'	'sAt "	#	#uAv &	'	'wAx 		yAz 		{A| 		}A~ !	"	"A@ ,	-	-AAB /	0	0CA A AD (	)	)EAF .	/	/GAH ,	-	-IAJ -	.	.KAL )	*	*MAN )	*	*OAP +	,	,QAR -	.	.SAT $	%	%UAV $	%	%WAX !	"	"YAZ '	(	([A\ '	(	(]A^ 0	1	1_A` 2	3	3aAb 2	3	3cAd /	0	0eA A Af 1	2	2gAh 5	6	6iAj 3	4	4kAl  	!	!mAn 		oAp #	$	$qAr #	$	$sAt 
  
  
 uAx  
 
 
yA| 
  
  
 }A@ &	'	'AAB %	&	&CAD #	$	$EAF 
		GAH )	*	*IAJ ,	-	-KAL &	'	'MA A AN &	'	'OAP (	)	)QAR (	)	)SAT 0	1	1UAV 5	6	6WAX 21
 
 
YA\ 7
 
 
]A` 22
  
  
 aAd 7
  
  
 eAh )	*	*iAj +	,	,kAl +	,	,mAn *	+	+oAp 
		qAr "	#	#sAt '	(	(uAv -	.	.wA A Ax .	/	/yAz ,	-	-{A| .	/	/}A~ .	/	/A@ &	'	'AAB %	&	&CAD *	+	+EAF )	*	*GAH  	!	!IAJ *	+	+KAL +	,	,MAN -a
 
 
OAR -b
  
  
 SAV -	.	.WAX '	(	(YAZ -	.	.[A\ #	$	$]A A A^ 	 	 _A` '	(	(aAb )	*	*cAd (	)	)eAf .	/	/gAh /
  
  
 iAl 4Q
  
  
 mAp ;	<	<qAr +	,	,sAt 0	1	1uAv :	;	;wAx +	,	,yAz 0	1	1{A| *	+	+}A~ *	+	+A@ .	/	/AAB .	/	/CA A AD .	/	/EAF .	/	/GAH .	/	/IAJ .	/	/KAL '	(	(MAN '	(	(OAP 21
 
 
QAT .	/	/UAV '	(	(WAX +	,	,YAZ #	$	$[A\ $	%	%]A^ )	*	*_A` '	(	(aAb %	&	&cAd )	*	*eAf (	)	)gA A Ah %	&	&iAj #	$	$kAl %	&	&mAn "	#	#oAp #	$	$qAr )	*	*sAt $	%	%uAv  	!	!wAx 	 	 yAz &	'	'{A| !	"	"}A~ 	 	 A@ 		AAB 		CAD  	!	!EAF +	,	,GAH #	$	$IA A AJ !	"	"KAL #	$	$MAN $	%	%OAP 	 	 QAR &	'	'SAT &	'	'UAV '	(	(WAX #	$	$YAZ 	 	 [A\ !	"	"]A^ "	#	#_A` #	$	$aAb 	 	 cAd #	$	$eAf  	!	!gAh /	0	0iAj *	+	+kA A Al )	*	*mAn 1	2	2oAp 0	1	1qAr 8	9	9sAt 3	4	4uAz 
66011{A| 
66233}A~ 
66344A@ 
66566AAB 
663A! ! !CAF 
663A! ! !GAJ 
66455KAL 
66344MAP 
66"##QAR 
66/""SAT 
66.!!UAX 
66"##YA A AZ 
66'(([A\ 
66#$$]A^ 
66())_Ab 
66#$$cAd 
66+eAf 
66+,,gAh 
66/00iAj 
66-..kAl 
66122mAn 
66+,,oAp 
66/""qAr 
66&''sAt 
66.//uAv 
66-..wAx 
66/00yAz 
66*++{A| 
66/00}A A A~ 
66&''A@ 
66-..AAB 
66,--CAD 
66,--EAF 
66.//GAH 
66011IAJ 
66233KAL 
66233MAN 
66233OAP 
66344QAR 
66677SAV 
66.!!WAX 
66'! ! !YA\ 
66'! ! !]A` 
66"##aAb 
66"##cAd 
66*eA A Ah NFF?++iAj NFF?++kAl NFF677mAn NFF677oAp NFF677qAr NFF677sAt NFF677uAv NFF677wAx NFF566yAz NFF677{A| NFF677}A~ NFF788A@ NFF899AAB NFF566CAD NFF122EAF )OVV,--GAH )OVVM**IA A AJ )OVV,--KAL )OVVM**MAN )OVV-..OAP )OVV011QAR )OVV.//SAT )OVV/00UAV )OVV344WAX )OVV455YAZ )OVV-..[A\ )OVV.//]A^ )OVV122_A` )OVV6q")+ + +aAd )OVV455eAf )OVV6q")+ + +gAj )OVV455kAl )OVVJ''mAn )OVVO,,oA A Ap )OVV233qAr )OVV,--sAt )OVV.//uAv )OVV233wAx )OVV233yAz )OVV-..{A| )OVVM**}A~ )OVV455A@ )OVV566AAB )OVVM**CAD )OVV/00EAF )OVV.//GAH )OVV,--IAJ )OVV-..KAL )OVV-..MAN )OVV.//OAP )OVV011QA A AR )OVV566SAT )OVVN++UAV )OVV-..WAX )OVV-..YAZ )OVV011[A\ )OVV3A")+ + +]A` )OVV122aAb )OVV3A")+ + +cAf )OVV122gAh )OVV/00iAj )OVV.//kAl )OVVO,,mAn )OVVN++oAp )OVVN++qAr )OVVM**sAt )OVVO,,uAv )OVV,--wA A Ax )OVV-..yAz )OVV.//{A| )OVV233}A~ )OVV.//A@ )OVV/00AAB )OVV122CAD )OVVN++EAF )OVVO,,GAH )OVVJ''IAJ )OVVO,,KAL )OVVN++MAN )OVVI&&OAP )OVVK((QAR )OVV,--SAT )OVVN++UAV )OVVK((WAX )OVV-..YA A AZ )OVV-..[A\ )OVV/00]A^ )OVV,--_A` )OVVJ''aAb )OVVM**cAd )OVV,--eAf )OVV-..gAh )OVVN++iAj )OVV-..kAl )OVV/00mAn )OVV344oAp )OVVK((qAr )OVVN++sAt )OVV,--uAv )OVVN++wAx )OVV-..yAz )OVVJ''{A A A| )OVV011}A~ )OVV011A@ )OVV122AAB )OVV122CAD )OVV122EAF )OVV122GAH )OVV/00IAJ )OVV122KAL )OVV344MAN )OVV122OAP )OVV,--QAR )OVVO,,SAT )OVVO,,UAV )OVV011WAX )OVV/00YAZ )OVVO,,[A\ )OVV,--]A A A^ )OVV122_A` )OVV122aAb )OVV.//cAd )OVV788eAf )OVV677gAh )OVV011iAj )OVV344kAl )OVV.//mAn )OVV.//oAp )OVV344qAr )OVV455sAt )OVV566uAv )OVV344wAx )OVV455yAz )OVV122{A| )OVV233}A~ )OVVL))A A A@ )OVV011AAB )OVV011CAD )OVV566EAF )OVV344GAH )OVV566IAJ )OVV344KAL )OVV122MAN )OVV344OAP )OVV,--QAR )OVVO,,SAT )OVVO,,UAV )OVV011WAX )OVV/00YAZ )OVV,--[A\ )OVVN++]A^ )OVV122_A` )OVVO,,aA A Ab )OVVO,,cAd )OVVO,,eAf )OVVO,,gAh )OVVO,,iAj )OVVO,,kAl )OVVO,,mAn )OVVO,,oAp )OVVO,,qAr )OVV,--sAt )OVVO,,uAv )OVVO,,wAx )OVVO,,yAz )OVVO,,{A| )OVVO,,}A~ )OVVO,,A@ )OVVO,,AAB )OVVO,,CA A AD )OVVO,,EAF )OVV,--GAH )OVV566IAJ )OVV011KAL )OVV011MAN )OVVK((OAP )OVV/00QAR )OVV344SAT )OVV,--UAV )OVVO,,WAX )OVVO,,YAZ )OVV011[A\ )OVV011]A^ )OVV233_A` )OVV233aAb )OVV233cAd )OVV/00eA A Af )OVV011gAh )OVV011iAj )OVV122kAl )OVV233mAn )OVV233oAp )OVV233qAr )OVV233sAt )OVVO,,uAv )OVVO,,wAx )OVVO,,yAz )OVVO,,{A| )OVV.//}A~ )OVV/00A@ )OVV-..AAB )OVV,--CAD )OVV-..EAF )OVV.//GA A AH )OVV,--IAJ )OVV-a"*, , ,KAN )OVV,Q")+ + +OAR )OVV.//SAT )OVVK((UAV )OVVN++WAX )OVVM**YAZ )OVV233[A\ )OVVM**]A^ )OVVK((_A` )OVVJ''aAb )OVV,--cAd )OVV011eAf )OVVI&&gAh )OVVN++iAj )OVVN++kAl )OVV,--mA A An )OVV-..oAp )OVVL))qAr )OVV-..sAt )OVV011uAv )OVV122wAx )OVV233yAz )OVVN++{A| )OVVO,,}A~ )OVV011A@ )OVV122AAB )OVV233CAD )OVVI&&EAF )OVV,--GAH )OVV-..IAJ )OVV455KAL )OVV233MAN )OVV788OA A AP )OVV677QAR )OVV455SAT )OVV233UAV )OVV788WAX )OVV677YAZ )OVVM**[A\ )OVVN++]A^ )OVV233_A` )OVV233aAb )OVV,--cAd )OVV6r"*, , ,eAh )OVV6r"*, , ,iAl )OVVN++mAn )OVV344oAp )OVV344qAr )OVV677sAt )OVV677uA A Av )OVV455wAx )OVV677yAz )OVV899{A| )OVV:;;}A~ )OVV122A@ )OVV122AAB )OVV:;;CAD )OVV:;;EAF )OVV:;;GAH )OVV:;;IAJ )OVV344KAL )OVV<==MAN )OVV,--OAP )OVV,--QAR )OVV,--SAT )OVV.//UAV )OVV-..WA A AX )OVV-..YAZ )OVV-..[A\ )OVV/00]A^ )OVV,--_A` )OVV011aAb )OVVN++cAd )OVVN++eAf )OVV.//gAh )OVVK((iAj )OVV/00kAl )OVV-..mAn )OVV.//oAp )OVVM**qAr )OVV.//sAt )OVVI&&uAv )OVV344wAx )OVVN++yA A Az )OVVJ''{A| )OVVN++}A~ )OVV788A@ )OVV788AAB )OVV566CAD )OVV566EAF )OVVL))GAH )OVVL))IAJ )OVV455KAL )OVV122MAN )OVV344OAP )OVVM**QAR )OVVL))SAT )OVVM**UAV )OVVL))WAX )OVV677YAZ )OVV011[A A A\ )OVV566]A^ )OVV566_A` )OVV;<<aAb )OVV;<<cAd )OVV9::eAf )OVV9::gAh )OVV233iAj )OVVJ''kAl )OVVK((mAn )OVVJ''oAp )OVV011qAr )OVV011sAt )OVV.//uAv )OVV.//wAx )OVVM**yAz )OVVK(({A| )OVVM**}A A~ )OVV1!")+ + +A A D! !399;;! ! ! 
      f   @    v   " " " " "V " " "," " " " " " " "L L L L Lv L L L    .   
% % %P- - - -8" " " " "f " " "         6      Ff% f% f%R   41 1 1
    Y   *; ; ; ; ;/ ; ; ;< < < < <? < < <

" 
" 
" 
" 
"F 
" 
" 
"" " " " "6 " " "         f      H% % % % %5 % % %P M?A 6 6 6 6 O1 2 2 2  "6 7 7 7 #%9 : : : 2 3 3 3
 M+R 8 8 8 8 2 3 3 3 3 3r3   