a „oe$ã@shddlZddlZddlZdZdZdZdZdZdZdZ dZ dZ d Z d Z d Zd ZdZdZdZd ZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&d Z'd!Z(d"Z)d#Z*d$Z+d%Z,d&Z-d'Z.dZ/dZ0d Z1d Z2dZ3dZ4d Z5d(Z6d)Z7d*Z8d+Z9d,Z:d-Z;d.Zd/Z?dZ@dZAdZBdZCd0ZDd1ZEdZFdZGdZHd2ZId3ZJdZKdZLdZMdZNd ZOd4ZPd5ZQd6ZRd7ZSd8ZTd9ZUd:ZVd;ZWdeWd?feWd@feWdAfeWdBfeXdCfeXdDfeXdEfeXdFfeXdGfeYdHfeYdIfeXdJfeXdKfeXdLfeXdMfeYdNfeXdOfeXdPfeXdQfeXdRfeXdSfeXdTfeXdUfeXdVfeXdWfeXdXfgZ\e]eƒdYdZfeWd[feWd\fgZ^eWd]feWd^feWd_feWd`fgZ_eWdafeWdbfe]eƒdYdcfe]eƒdYddfeWdefeWdffgZ`dge]ed ƒdYdhfgZaeXdifeWdjfeWdkfgZbeWdlfeWdmfeWdnfdodpdqgZce[drfeZdsfeZdjfgZd[W[X[Y[Z[[ejeZedtdu„ZfGdvdw„dwƒZgdxdy„Zhdzd{„Zid|d}„Zjd~d„Zkd€d„Zld‚dƒ„Zmd„d…„Znd†d‡„Zodˆd‰„ZpeqdŠkrdeeƒZre'er_selƒZteter_ueferƒZvevdkr ewd‹evfƒ‚exetjyƒD]¸Zzer {¡e"er_sepetj|ezƒer_}eferƒZvevdkrìewd‹evfƒ‚er {¡e#er_sepetj|ezƒer_}dŒ ~d¡er_ehƒZ€e€er_ueferƒedŽdde€j‚D]Zƒed‘epeƒƒfddqÄóz&NCBStruct.__init__..r Úcúréÿÿÿÿ) ÚjoinÚ_formatÚ_itemsrFZ NCBBufferÚstructÚcalcsizeÚ_buffer_ÚlenÚintÚ__dict__)ÚselfÚitemsÚformatr?ÚvalÚlrKrKrLÚ__init__Ãs zNCBStruct.__init__c Csjg}|jD]:\}}z| |j|¡Wq tyB| d¡Yq 0q tj|jft|ƒŽ|jdd…<dS©N) rXÚappendr^ÚKeyErrorrYÚpackrWÚtupler[)r_Zvalsrar?rKrKrLrCÓs zNCBStruct._packcCsRt |j|j¡}t|ƒt|jƒks*Jdƒ‚t|j|ƒD]\\}}}||j|<q6dS)Nz%unexpected number of items to unpack!)rYÚunpackrWr[r\rXÚzipr^)r_r`rar?rbrKrKrLrHÝszNCBStruct._unpackcCsH||jvr:|ddkr:|jD]\}}||krq:qt|ƒ‚||j|<dS)NrÚ_)r^rXÚAttributeError)r_ÚattrrbraZ attr_namerKrKrLÚ __setattr__ãs zNCBStruct.__setattr__N)Ú__name__Ú __module__Ú __qualname__rdrCrHrorKrKrKrLrMÂs rMcCsttƒSre)rMÚADAPTER_STATUS_ITEMSrKrKrKrLÚADAPTER_STATUSísrtcCsttƒSre)rMÚNAME_BUFFER_ITEMSrKrKrKrLÚ NAME_BUFFERñsrvcCsttƒSre)rMÚSESSION_HEADER_ITEMSrKrKrKrLÚSESSION_HEADERõsrxcCsttƒSre)rMÚSESSION_BUFFER_ITEMSrKrKrKrLÚSESSION_BUFFERùsrzcCsttƒSre)rMÚLANA_ENUM_ITEMSrKrKrKrLÚ LANA_ENUMýsr|cCsttƒSre)rMÚFIND_NAME_HEADER_ITEMSrKrKrKrLÚFIND_NAME_HEADERsr~cCsttƒSre)rMÚFIND_NAME_BUFFER_ITEMSrKrKrKrLÚFIND_NAME_BUFFERsr€cCsttƒSre)rMÚACTION_HEADER_ITEMSrKrKrKrLÚ ACTION_HEADER sr‚cCstjdkr|St|ƒS)z=Given an element in a binary buffer, return its integer value)r r)ÚsysÚ version_infoÚord)ÚbrKrKrLÚ byte_to_int s r‡Ú__main__zUnexpected result %dz* ÚasciizAdapter address:ú )Úendz%02x)„rYrƒrFZNCBNAMSZZMAX_LANAZNAME_FLAGS_MASKZ GROUP_NAMEZ UNIQUE_NAMEZ REGISTERINGZ REGISTEREDZ DEREGISTEREDZ DUPLICATEZDUPLICATE_DEREGZLISTEN_OUTSTANDINGZ CALL_PENDINGZSESSION_ESTABLISHEDZHANGUP_PENDINGZHANGUP_COMPLETEZSESSION_ABORTEDZALL_TRANSPORTSZMS_NBFZNCBCALLZ NCBLISTENZ NCBHANGUPZNCBSENDZNCBRECVZ NCBRECVANYZ NCBCHAINSENDZ NCBDGSENDZ NCBDGRECVZ NCBDGSENDBCZ NCBDGRECVBCZ NCBADDNAMEZ NCBDELNAMEZNCBRESETZNCBASTATZNCBSSTATZ NCBCANCELZ NCBADDGRNAMEZNCBENUMZ NCBUNLINKZ NCBSENDNAZNCBCHAINSENDNAZ NCBLANSTALERTZ NCBACTIONZ NCBFINDNAMEZNCBTRACEZASYNCHZ NRC_GOODRETZ NRC_BUFLENZ NRC_ILLCMDZ NRC_CMDTMOZ NRC_INCOMPZ NRC_BADDRZ NRC_SNUMOUTZ NRC_NORESZ NRC_SCLOSEDZ NRC_CMDCANZ NRC_DUPNAMEZ NRC_NAMTFULZ NRC_ACTSESZ NRC_LOCTFULZ NRC_REMTFULZ NRC_ILLNNZ NRC_NOCALLZ NRC_NOWILDZ NRC_INUSEZ NRC_NAMERRZ NRC_SABORTZ NRC_NAMCONFZ NRC_IFBUSYZ NRC_TOOMANYZ NRC_BRIDGEZ NRC_CANOCCRZ NRC_CANCELZ NRC_DUPENVZ NRC_ENVNOTDEFZNRC_OSRESNOTAVZ NRC_MAXAPPSZ NRC_NOSAPSZNRC_NORESOURCESZNRC_INVADDRESSZ NRC_INVDDIDZ NRC_LOCKFAILZ NRC_OPENERRZ NRC_SYSTEMZ NRC_PENDINGZUCHARZWORDZDWORDZUSHORTZULONGrsÚstrrurwryr{r}rrZNCBrGrMrtrvrxrzr|r~r€r‚r‡rprIZCommandZla_enumrDÚrcÚ RuntimeErrorÚrangerAÚiZResetrBZLana_numÚencodeZCallnameZadapterÚprintr=ZchrKrKrKrLÚs€åýüú þýú ý  +