<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>110994</bug_id>
          
          <creation_ts>2013-02-27 10:59:35 -0800</creation_ts>
          <short_desc>[BlackBerry] User credentials is not correctly handled</short_desc>
          <delta_ts>2013-02-28 08:43:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lyon Chen">liachen</reporter>
          <assigned_to name="Lyon Chen">liachen</assigned_to>
          <cc>joenotcharles</cc>
    
    <cc>leoyang</cc>
    
    <cc>mifenton</cc>
    
    <cc>pnormand</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>843263</commentid>
    <comment_count>0</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2013-02-27 10:59:35 -0800</bug_when>
    <thetext>Right now user credential is not correctly handled, like:

* User credentials are never deleted from CertMgr;
* User credentials are not always correctly saved/retrieved;
* User credentials for http proxy are not re-used when visiting different sites.

The reason are:
* For the first one, CertMgrWrapper didn&apos;t support removing password before, but it has since been fixed and we need to use the new API to delete user credential from CertMgr.

*For the second one, we treat encrypted text as normal text, but in fact they are just binary data, we need to treat them correctly, as binary data.

* Fot the third one, we used to save user credential combined the original url, we should not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843290</commentid>
    <comment_count>1</comment_count>
      <attachid>190561</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2013-02-27 11:22:23 -0800</bug_when>
    <thetext>Created attachment 190561
patch for 110994</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843383</commentid>
    <comment_count>2</comment_count>
      <attachid>190561</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2013-02-27 12:33:47 -0800</bug_when>
    <thetext>Comment on attachment 190561
patch for 110994

r+ based on leo&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843401</commentid>
    <comment_count>3</comment_count>
      <attachid>190561</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 12:52:32 -0800</bug_when>
    <thetext>Comment on attachment 190561
patch for 110994

Clearing flags on attachment: 190561

Committed r144229: &lt;http://trac.webkit.org/changeset/144229&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843402</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 12:52:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843804</commentid>
    <comment_count>5</comment_count>
      <attachid>190667</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-02-27 23:55:43 -0800</bug_when>
    <thetext>Created attachment 190667
Fix utf8 handling

WTF::String::utf8 no longer receives a bool, see bug 101678.

http://trac.webkit.org/changeset/134173/trunk/Source/WTF/wtf/text/WTFString.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843824</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-28 00:31:09 -0800</bug_when>
    <thetext>Should this bug be reopened?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844066</commentid>
    <comment_count>7</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2013-02-28 07:37:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Should this bug be reopened?

Thanks for reminding me of this change, it seems our repo had not synced with upstream for quite a while now.

Re-open this for a new patch to adapt to the WTF::String::utf8() interface change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844083</commentid>
    <comment_count>8</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2013-02-28 08:02:14 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=190667) [details]
&gt; Fix utf8 handling
&gt; 
&gt; WTF::String::utf8 no longer receives a bool, see bug 101678.
&gt; 
&gt; http://trac.webkit.org/changeset/134173/trunk/Source/WTF/wtf/text/WTFString.h

The patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844125</commentid>
    <comment_count>9</comment_count>
      <attachid>190667</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 08:43:55 -0800</bug_when>
    <thetext>Comment on attachment 190667
Fix utf8 handling

Clearing flags on attachment: 190667

Committed r144316: &lt;http://trac.webkit.org/changeset/144316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844126</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 08:43:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190561</attachid>
            <date>2013-02-27 11:22:23 -0800</date>
            <delta_ts>2013-02-27 12:52:32 -0800</delta_ts>
            <desc>patch for 110994</desc>
            <filename>110994.patch</filename>
            <type>text/plain</type>
            <size>36736</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YThlNmI3Li5jMDlhMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTMtMDItMjcgIExpYW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIFVzZXIgY3JlZGVudGlhbHMgaXMgbm90IGNvcnJlY3RseSBoYW5kbGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5OTQK
KworICAgICAgICBJbnRlcm5hbCBQUjogMjgwOTkwCisgICAgICAgIEludGVybmFsIHJldmlld2Vk
IGJ5IExlbyBZYW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZvbGxvd2luZyBjaGFuZ2VzIGFyZSBtYWRlOgorICAgICAgICAgICAgUmVtb3ZlIHVy
bCBmcm9tIGdlbmVyYXRpbmcgdGhlIGhhc2ggdG8gaW5kZXggdXNlciBjcmVkZW50aWFsLgorICAg
ICAgICAgICAgUmVtb3ZlIHVybCBmcm9tIGRhdGFiYXNlLgorICAgICAgICAgICAgVXNlIG5ldyBD
ZXJ0TWdyV3JhcHBlciBBUEkgdG8gcmVtb3ZlIHBhc3N3b3JkIGZyb20gQ2VydE1nci4KKyAgICAg
ICAgICAgIEhhbmRsZSBlbmNyeXB0ZWQgcGFzc3dvcmQgYXMgYmluYXJ5IGRhdGEsIGluc3RlYWQg
b2Ygbm9ybWFsIHRleHQgc3RyaW5nLgorICAgICAgICAgICAgV2hlbiBhdXRoZW50aWNhdGlvbiBm
YWlscywgcmVtb3ZlIHRoZSBzYXZlZCB1c2VyIGNyZWRlbnRpYWwgb25seSB3aGVuIHRoZXkgbWF0
Y2guCisgICAgICAgICAgICBSZW1vdmUgc29tZSB1cmwgcmVsYXRlZCBBUEkgZnJvbSBDcmVkZW50
aWFsQmFja2luZ1N0b3JlLCBhcyB0aGV5IGFyZSBvYnNvbGV0ZSBub3cuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGFzIHRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMgY2hhbmdlIGFib3V0IHVzZXIg
Y3JlZGVudGlhbC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVk
ZW50aWFsQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc2hDcmVkZW50aWFs
SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpDcmVkZW50
aWFsQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxCYWNraW5nU3Rv
cmU6On5DcmVkZW50aWFsQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRp
YWxCYWNraW5nU3RvcmU6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tp
bmdTdG9yZTo6YWRkTG9naW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdT
dG9yZTo6dXBkYXRlTG9naW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdT
dG9yZTo6aGFzTG9naW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9y
ZTo6Z2V0TG9naW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6
cmVtb3ZlTG9naW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6
YWRkTmV2ZXJSZW1lbWJlcik6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0
b3JlOjplbmNyeXB0ZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tp
bmdTdG9yZTo6ZGVjcnlwdGVkU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoQ3JlZGVudGlhbEJh
Y2tpbmdTdG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6c2VuZFJlcXVlc3RXaXRo
Q3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6cHVyZ2VDcmVkZW50
aWFscyk6CisKIDIwMTMtMDItMjcgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNl
bkBkaWdpYS5jb20+CiAKICAgICAgICAgU3dpdGNoIFF0V2ViS2l0IHRvIEdTdHJlYW1lciAxLjAu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMGQzZWM2OS4u
MjQ2M2Q3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcApAQCAt
MzksMTQgKzM5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHVuc2lnbmVk
IGhhc2hDcmVkZW50aWFsSW5mbyhjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgUHJvdGVjdGlvblNw
YWNlJiBzcGFjZSwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSkKK3N0YXRpYyB1bnNpZ25lZCBoYXNo
Q3JlZGVudGlhbEluZm8oY29uc3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSwgY29uc3QgU3RyaW5n
JiB1c2VybmFtZSkKIHsKLSAgICBTdHJpbmcgaGFzaFN0cmluZyA9IFN0cmluZzo6Zm9ybWF0KCIl
c0Alc0Alc0AlZEAlZEAlc0AlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1c2VybmFtZS51dGY4KCkuZGF0YSgpLCB1cmwudXRmOCgpLmRhdGEoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlLmhvc3QoKS51dGY4KCkuZGF0YSgp
LCBzcGFjZS5wb3J0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0aWNfY2FzdDxpbnQ+KHNwYWNlLnNlcnZlclR5cGUoKSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzcGFjZS5yZWFsbSgpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHNwYWNlLmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpKTsKKyAgICBTdHJpbmcgaGFzaFN0cmluZyA9IFN0cmluZzo6
Zm9ybWF0KCIlc0Alc0AlZEAlZEAlc0AlZCIsCisgICAgICAgIHVzZXJuYW1lLnV0ZjgoKS5kYXRh
KCksCisgICAgICAgIHNwYWNlLmhvc3QoKS51dGY4KCkuZGF0YSgpLCBzcGFjZS5wb3J0KCksCisg
ICAgICAgIHN0YXRpY19jYXN0PGludD4oc3BhY2Uuc2VydmVyVHlwZSgpKSwKKyAgICAgICAgc3Bh
Y2UucmVhbG0oKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHNwYWNl
LmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpKTsKICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpjb21w
dXRlSGFzaEFuZE1hc2tUb3A4Qml0cyhoYXNoU3RyaW5nLmNoYXJhY3RlcnMoKSwgaGFzaFN0cmlu
Zy5sZW5ndGgoKSk7CiB9CiAKQEAgLTYzLDExICs2Myw5IEBAIENyZWRlbnRpYWxCYWNraW5nU3Rv
cmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKQogICAgICwgbV91cGRhdGVMb2dpblN0YXRlbWVu
dCgwKQogICAgICwgbV9oYXNMb2dpblN0YXRlbWVudCgwKQogICAgICwgbV9nZXRMb2dpblN0YXRl
bWVudCgwKQotICAgICwgbV9nZXRMb2dpbkJ5VVJMU3RhdGVtZW50KDApCiAgICAgLCBtX3JlbW92
ZUxvZ2luU3RhdGVtZW50KDApCiAgICAgLCBtX2FkZE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQoMCkK
ICAgICAsIG1faGFzTmV2ZXJSZW1lbWJlclN0YXRlbWVudCgwKQotICAgICwgbV9nZXROZXZlclJl
bWVtYmVyU3RhdGVtZW50KDApCiAgICAgLCBtX3JlbW92ZU5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQo
MCkKICAgICAsIG1fY2VydE1ncldyYXBwZXIoMCkKIHsKQEAgLTg1LDE2ICs4MywxMiBAQCBDcmVk
ZW50aWFsQmFja2luZ1N0b3JlOjp+Q3JlZGVudGlhbEJhY2tpbmdTdG9yZSgpCiAgICAgbV9oYXNM
b2dpblN0YXRlbWVudCA9IDA7CiAgICAgZGVsZXRlIG1fZ2V0TG9naW5TdGF0ZW1lbnQ7CiAgICAg
bV9nZXRMb2dpblN0YXRlbWVudCA9IDA7Ci0gICAgZGVsZXRlIG1fZ2V0TG9naW5CeVVSTFN0YXRl
bWVudDsKLSAgICBtX2dldExvZ2luQnlVUkxTdGF0ZW1lbnQgPSAwOwogICAgIGRlbGV0ZSBtX3Jl
bW92ZUxvZ2luU3RhdGVtZW50OwogICAgIG1fcmVtb3ZlTG9naW5TdGF0ZW1lbnQgPSAwOwogICAg
IGRlbGV0ZSBtX2FkZE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQ7CiAgICAgbV9hZGROZXZlclJlbWVt
YmVyU3RhdGVtZW50ID0gMDsKICAgICBkZWxldGUgbV9oYXNOZXZlclJlbWVtYmVyU3RhdGVtZW50
OwogICAgIG1faGFzTmV2ZXJSZW1lbWJlclN0YXRlbWVudCA9IDA7Ci0gICAgZGVsZXRlIG1fZ2V0
TmV2ZXJSZW1lbWJlclN0YXRlbWVudDsKLSAgICBtX2dldE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQg
PSAwOwogICAgIGRlbGV0ZSBtX3JlbW92ZU5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQ7CiAgICAgbV9y
ZW1vdmVOZXZlclJlbWVtYmVyU3RhdGVtZW50ID0gMDsKIApAQCAtMTEwLDcgKzEwNCw3IEBAIGJv
b2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6b3Blbihjb25zdCBTdHJpbmcmIGRiUGF0aCkKICAg
ICAgICAgIkZhaWxlZCB0byBvcGVuIGRhdGFiYXNlIGZpbGUgJXMgZm9yIGxvZ2luIGRhdGFiYXNl
IiwgZGJQYXRoLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhp
c3RzKCJsb2dpbnMiKSkgewotICAgICAgICBIQU5ETEVfU1FMX0VYRUNfRkFJTFVSRSghbV9kYXRh
YmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JFQVRFIFRBQkxFIGxvZ2lucyAob3JpZ2luX3VybCBWQVJD
SEFSIE5PVCBOVUxMLCBob3N0IFZBUkNIQVIgTk9UIE5VTEwsIHBvcnQgSU5URUdFUiwgc2Vydmlj
ZV90eXBlIElOVEVHRVIgTk9UIE5VTEwsIHJlYWxtIFZBUkNIQVIsIGF1dGhfc2NoZW1lIElOVEVH
RVIgTk9UIE5VTEwsIHVzZXJuYW1lIFZBUkNIQVIsIHBhc3N3b3JkIEJMT0IpICIpLAorICAgICAg
ICBIQU5ETEVfU1FMX0VYRUNfRkFJTFVSRSghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JF
QVRFIFRBQkxFIGxvZ2lucyAoaG9zdCBWQVJDSEFSIE5PVCBOVUxMLCBwb3J0IElOVEVHRVIsIHNl
cnZpY2VfdHlwZSBJTlRFR0VSIE5PVCBOVUxMLCByZWFsbSBWQVJDSEFSLCBhdXRoX3NjaGVtZSBJ
TlRFR0VSIE5PVCBOVUxMLCB1c2VybmFtZSBWQVJDSEFSLCBwYXNzd29yZCBCTE9CKSAiKSwKICAg
ICAgICAgICAgIGZhbHNlLCAiRmFpbGVkIHRvIGNyZWF0ZSB0YWJsZSBsb2dpbnMgZm9yIGxvZ2lu
IGRhdGFiYXNlIik7CiAKICAgICAgICAgLy8gQ3JlYXRlIGluZGV4IGZvciB0YWJsZSBsb2dpbnMu
CkBAIC0xMTksNyArMTEzLDcgQEAgYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpvcGVuKGNv
bnN0IFN0cmluZyYgZGJQYXRoKQogICAgIH0KIAogICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4
aXN0cygibmV2ZXJfcmVtZW1iZXIiKSkgewotICAgICAgICBIQU5ETEVfU1FMX0VYRUNfRkFJTFVS
RSghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JFQVRFIFRBQkxFIG5ldmVyX3JlbWVtYmVy
IChvcmlnaW5fdXJsIFZBUkNIQVIgTk9UIE5VTEwsIGhvc3QgVkFSQ0hBUiBOT1QgTlVMTCwgcG9y
dCBJTlRFR0VSLCBzZXJ2aWNlX3R5cGUgSU5URUdFUiBOT1QgTlVMTCwgcmVhbG0gVkFSQ0hBUiwg
YXV0aF9zY2hlbWUgSU5URUdFUiBOT1QgTlVMTCkgIiksCisgICAgICAgIEhBTkRMRV9TUUxfRVhF
Q19GQUlMVVJFKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgbmV2ZXJf
cmVtZW1iZXIgKGhvc3QgVkFSQ0hBUiBOT1QgTlVMTCwgcG9ydCBJTlRFR0VSLCBzZXJ2aWNlX3R5
cGUgSU5URUdFUiBOT1QgTlVMTCwgcmVhbG0gVkFSQ0hBUiwgYXV0aF9zY2hlbWUgSU5URUdFUiBO
T1QgTlVMTCkgIiksCiAgICAgICAgICAgICBmYWxzZSwgIkZhaWxlZCB0byBjcmVhdGUgdGFibGUg
bmV2ZXJfcmVtZW1iZXIgZm9yIGxvZ2luIGRhdGFiYXNlIik7CiAKICAgICAgICAgLy8gQ3JlYXRl
IGluZGV4IGZvciB0YWJsZSBuZXZlcl9yZW1lbWJlci4KQEAgLTEyOCwzMSArMTIyLDI3IEBAIGJv
b2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6b3Blbihjb25zdCBTdHJpbmcmIGRiUGF0aCkKICAg
ICB9CiAKICAgICAvLyBQcmVwYXJlIHRoZSBzdGF0ZW1lbnRzLgotICAgIG1fYWRkTG9naW5TdGF0
ZW1lbnQgPSBuZXcgU1FMaXRlU3RhdGVtZW50KG1fZGF0YWJhc2UsICJJTlNFUlQgT1IgUkVQTEFD
RSBJTlRPIGxvZ2lucyAob3JpZ2luX3VybCwgaG9zdCwgcG9ydCwgc2VydmljZV90eXBlLCByZWFs
bSwgYXV0aF9zY2hlbWUsIHVzZXJuYW1lLCBwYXNzd29yZCkgVkFMVUVTICg/LCA/LCA/LCA/LCA/
LCA/LCA/LCA/KSIpOworICAgIG1fYWRkTG9naW5TdGF0ZW1lbnQgPSBuZXcgU1FMaXRlU3RhdGVt
ZW50KG1fZGF0YWJhc2UsICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIGxvZ2lucyAoaG9zdCwgcG9y
dCwgc2VydmljZV90eXBlLCByZWFsbSwgYXV0aF9zY2hlbWUsIHVzZXJuYW1lLCBwYXNzd29yZCkg
VkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/KSIpOwogICAgIEhBTkRMRV9TUUxfRVhFQ19GQUlM
VVJFKG1fYWRkTG9naW5TdGF0ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaywKICAgICAg
ICAgZmFsc2UsICJGYWlsZWQgdG8gcHJlcGFyZSBhZGRMb2dpbiBzdGF0ZW1lbnQiKTsKIAotICAg
IG1fdXBkYXRlTG9naW5TdGF0ZW1lbnQgPSBuZXcgU1FMaXRlU3RhdGVtZW50KG1fZGF0YWJhc2Us
ICJVUERBVEUgbG9naW5zIFNFVCB1c2VybmFtZSA9ID8sIHBhc3N3b3JkID0gPyBXSEVSRSBvcmln
aW5fdXJsID0gPyBBTkQgaG9zdCA9ID8gQU5EIHBvcnQgPSA/IEFORCBzZXJ2aWNlX3R5cGUgPSA/
IEFORCByZWFsbSA9ID8gQU5EIGF1dGhfc2NoZW1lID0gPyIpOworICAgIG1fdXBkYXRlTG9naW5T
dGF0ZW1lbnQgPSBuZXcgU1FMaXRlU3RhdGVtZW50KG1fZGF0YWJhc2UsICJVUERBVEUgbG9naW5z
IFNFVCB1c2VybmFtZSA9ID8sIHBhc3N3b3JkID0gPyBXSEVSRSBob3N0ID0gPyBBTkQgcG9ydCA9
ID8gQU5EIHNlcnZpY2VfdHlwZSA9ID8gQU5EIHJlYWxtID0gPyBBTkQgYXV0aF9zY2hlbWUgPSA/
Iik7CiAgICAgSEFORExFX1NRTF9FWEVDX0ZBSUxVUkUobV91cGRhdGVMb2dpblN0YXRlbWVudC0+
cHJlcGFyZSgpICE9IFNRTFJlc3VsdE9rLAogICAgICAgICBmYWxzZSwgIkZhaWxlZCB0byBwcmVw
YXJlIHVwZGF0ZUxvZ2luIHN0YXRlbWVudCIpOwogCi0gICAgbV9oYXNMb2dpblN0YXRlbWVudCA9
IG5ldyBTUUxpdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCBDT1VOVCgqKSBGUk9NIGxv
Z2lucyBXSEVSRSBvcmlnaW5fdXJsID0gPyBBTkQgaG9zdCA9ID8gQU5EIHBvcnQgPSA/IEFORCBz
ZXJ2aWNlX3R5cGUgPSA/IEFORCByZWFsbSA9ID8gQU5EIGF1dGhfc2NoZW1lID0gPyIpOworICAg
IG1faGFzTG9naW5TdGF0ZW1lbnQgPSBuZXcgU1FMaXRlU3RhdGVtZW50KG1fZGF0YWJhc2UsICJT
RUxFQ1QgQ09VTlQoKikgRlJPTSBsb2dpbnMgV0hFUkUgaG9zdCA9ID8gQU5EIHBvcnQgPSA/IEFO
RCBzZXJ2aWNlX3R5cGUgPSA/IEFORCByZWFsbSA9ID8gQU5EIGF1dGhfc2NoZW1lID0gPyIpOwog
ICAgIEhBTkRMRV9TUUxfRVhFQ19GQUlMVVJFKG1faGFzTG9naW5TdGF0ZW1lbnQtPnByZXBhcmUo
KSAhPSBTUUxSZXN1bHRPaywKICAgICAgICAgZmFsc2UsICJGYWlsZWQgdG8gcHJlcGFyZSBoYXNM
b2dpbiBzdGF0ZW1lbnQiKTsKIAotICAgIG1fZ2V0TG9naW5TdGF0ZW1lbnQgPSBuZXcgU1FMaXRl
U3RhdGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1QgdXNlcm5hbWUsIHBhc3N3b3JkLCBvcmlnaW5f
dXJsIEZST00gbG9naW5zIFdIRVJFIGhvc3QgPSA/IEFORCBwb3J0ID0gPyBBTkQgc2VydmljZV90
eXBlID0gPyBBTkQgcmVhbG0gPSA/IEFORCBhdXRoX3NjaGVtZSA9ID8iKTsKKyAgICBtX2dldExv
Z2luU3RhdGVtZW50ID0gbmV3IFNRTGl0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIHVz
ZXJuYW1lLCBwYXNzd29yZCBGUk9NIGxvZ2lucyBXSEVSRSBob3N0ID0gPyBBTkQgcG9ydCA9ID8g
QU5EIHNlcnZpY2VfdHlwZSA9ID8gQU5EIHJlYWxtID0gPyBBTkQgYXV0aF9zY2hlbWUgPSA/Iik7
CiAgICAgSEFORExFX1NRTF9FWEVDX0ZBSUxVUkUobV9nZXRMb2dpblN0YXRlbWVudC0+cHJlcGFy
ZSgpICE9IFNRTFJlc3VsdE9rLAogICAgICAgICBmYWxzZSwgIkZhaWxlZCB0byBwcmVwYXJlIGdl
dExvZ2luIHN0YXRlbWVudCIpOwogCi0gICAgbV9nZXRMb2dpbkJ5VVJMU3RhdGVtZW50ID0gbmV3
IFNRTGl0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIHVzZXJuYW1lLCBwYXNzd29yZCwg
aG9zdCwgcG9ydCwgc2VydmljZV90eXBlLCByZWFsbSwgYXV0aF9zY2hlbWUgRlJPTSBsb2dpbnMg
V0hFUkUgb3JpZ2luX3VybCA9ID8iKTsKLSAgICBIQU5ETEVfU1FMX0VYRUNfRkFJTFVSRShtX2dl
dExvZ2luQnlVUkxTdGF0ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaywKLSAgICAgICAg
ZmFsc2UsICJGYWlsZWQgdG8gcHJlcGFyZSBnZXRMb2dpbkJ5VVJMIHN0YXRlbWVudCIpOwotCi0g
ICAgbV9yZW1vdmVMb2dpblN0YXRlbWVudCA9IG5ldyBTUUxpdGVTdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgIkRFTEVURSBGUk9NIGxvZ2lucyBXSEVSRSBvcmlnaW5fdXJsID0gPyBBTkQgaG9zdCA9ID8g
QU5EIHBvcnQgPSA/IEFORCBzZXJ2aWNlX3R5cGUgPSA/IEFORCByZWFsbSA9ID8gQU5EIGF1dGhf
c2NoZW1lID0gPyIpOworICAgIG1fcmVtb3ZlTG9naW5TdGF0ZW1lbnQgPSBuZXcgU1FMaXRlU3Rh
dGVtZW50KG1fZGF0YWJhc2UsICJERUxFVEUgRlJPTSBsb2dpbnMgV0hFUkUgaG9zdCA9ID8gQU5E
IHBvcnQgPSA/IEFORCBzZXJ2aWNlX3R5cGUgPSA/IEFORCByZWFsbSA9ID8gQU5EIGF1dGhfc2No
ZW1lID0gPyIpOwogICAgIEhBTkRMRV9TUUxfRVhFQ19GQUlMVVJFKG1fcmVtb3ZlTG9naW5TdGF0
ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaywKICAgICAgICAgZmFsc2UsICJGYWlsZWQg
dG8gcHJlcGFyZSByZW1vdmVMb2dpbiBzdGF0ZW1lbnQiKTsKIAotICAgIG1fYWRkTmV2ZXJSZW1l
bWJlclN0YXRlbWVudCA9IG5ldyBTUUxpdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgIklOU0VSVCBP
UiBSRVBMQUNFIElOVE8gbmV2ZXJfcmVtZW1iZXIgKG9yaWdpbl91cmwsIGhvc3QsIHBvcnQsIHNl
cnZpY2VfdHlwZSwgcmVhbG0sIGF1dGhfc2NoZW1lKSBWQUxVRVMgKD8sID8sID8sID8sID8sID8p
Iik7CisgICAgbV9hZGROZXZlclJlbWVtYmVyU3RhdGVtZW50ID0gbmV3IFNRTGl0ZVN0YXRlbWVu
dChtX2RhdGFiYXNlLCAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBuZXZlcl9yZW1lbWJlciAoaG9z
dCwgcG9ydCwgc2VydmljZV90eXBlLCByZWFsbSwgYXV0aF9zY2hlbWUpIFZBTFVFUyAoPywgPywg
PywgPywgPykiKTsKICAgICBIQU5ETEVfU1FMX0VYRUNfRkFJTFVSRShtX2FkZE5ldmVyUmVtZW1i
ZXJTdGF0ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaywKICAgICAgICAgZmFsc2UsICJG
YWlsZWQgdG8gcHJlcGFyZSBhZGROZXZlclJlbWVtYmVyIHN0YXRlbWVudCIpOwogCkBAIC0xNjAs
MTAgKzE1MCw2IEBAIGJvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6b3Blbihjb25zdCBTdHJp
bmcmIGRiUGF0aCkKICAgICBIQU5ETEVfU1FMX0VYRUNfRkFJTFVSRShtX2hhc05ldmVyUmVtZW1i
ZXJTdGF0ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaywKICAgICAgICAgZmFsc2UsICJG
YWlsZWQgdG8gcHJlcGFyZSBoYXNOZXZlclJlbWVtYmVyIHN0YXRlbWVudCIpOwogCi0gICAgbV9n
ZXROZXZlclJlbWVtYmVyU3RhdGVtZW50ID0gbmV3IFNRTGl0ZVN0YXRlbWVudChtX2RhdGFiYXNl
LCAiU0VMRUNUIG9yaWdpbl91cmwgRlJPTSBuZXZlcl9yZW1lbWJlciBXSEVSRSBob3N0ID0gPyBB
TkQgcG9ydCA9ID8gQU5EIHNlcnZpY2VfdHlwZSA9ID8gQU5EIHJlYWxtID0gPyBBTkQgYXV0aF9z
Y2hlbWUgPSA/Iik7Ci0gICAgSEFORExFX1NRTF9FWEVDX0ZBSUxVUkUobV9nZXROZXZlclJlbWVt
YmVyU3RhdGVtZW50LT5wcmVwYXJlKCkgIT0gU1FMUmVzdWx0T2ssCi0gICAgICAgIGZhbHNlLCAi
RmFpbGVkIHRvIHByZXBhcmUgZ2V0TmV2ZXJSZW1lbWJlciBzdGF0ZW1lbnQiKTsKLQogICAgIG1f
cmVtb3ZlTmV2ZXJSZW1lbWJlclN0YXRlbWVudCA9IG5ldyBTUUxpdGVTdGF0ZW1lbnQobV9kYXRh
YmFzZSwgIkRFTEVURSBGUk9NIG5ldmVyX3JlbWVtYmVyIFdIRVJFIGhvc3QgPSA/IEFORCBwb3J0
ID0gPyBBTkQgc2VydmljZV90eXBlID0gPyBBTkQgcmVhbG0gPSA/IEFORCBhdXRoX3NjaGVtZSA9
ID8iKTsKICAgICBIQU5ETEVfU1FMX0VYRUNfRkFJTFVSRShtX3JlbW92ZU5ldmVyUmVtZW1iZXJT
dGF0ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaywKICAgICAgICAgZmFsc2UsICJGYWls
ZWQgdG8gcHJlcGFyZSByZW1vdmVOZXZlclJlbWVtYmVyIHN0YXRlbWVudCIpOwpAQCAtMTcxLDcg
KzE1Nyw3IEBAIGJvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6b3Blbihjb25zdCBTdHJpbmcm
IGRiUGF0aCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0
b3JlOjphZGRMb2dpbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJv
dGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQorYm9vbCBDcmVkZW50
aWFsQmFja2luZ1N0b3JlOjphZGRMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rp
b25TcGFjZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBBU1NFUlQobV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UudGFibGVFeGlzdHMoImxv
Z2lucyIpKTsKQEAgLTE3OSwxNCArMTY1LDEzIEBAIGJvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9y
ZTo6YWRkTG9naW4oY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByCiAg
ICAgaWYgKCFtX2FkZExvZ2luU3RhdGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBtX2FkZExvZ2luU3RhdGVtZW50LT5iaW5kVGV4dCgxLCB1cmwuc3RyaW5nKCkpOwotICAgIG1f
YWRkTG9naW5TdGF0ZW1lbnQtPmJpbmRUZXh0KDIsIHByb3RlY3Rpb25TcGFjZS5ob3N0KCkpOwot
ICAgIG1fYWRkTG9naW5TdGF0ZW1lbnQtPmJpbmRJbnQoMywgcHJvdGVjdGlvblNwYWNlLnBvcnQo
KSk7Ci0gICAgbV9hZGRMb2dpblN0YXRlbWVudC0+YmluZEludCg0LCBzdGF0aWNfY2FzdDxpbnQ+
KHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpKTsKLSAgICBtX2FkZExvZ2luU3RhdGVtZW50
LT5iaW5kVGV4dCg1LCBwcm90ZWN0aW9uU3BhY2UucmVhbG0oKSk7Ci0gICAgbV9hZGRMb2dpblN0
YXRlbWVudC0+YmluZEludCg2LCBzdGF0aWNfY2FzdDxpbnQ+KHByb3RlY3Rpb25TcGFjZS5hdXRo
ZW50aWNhdGlvblNjaGVtZSgpKSk7Ci0gICAgbV9hZGRMb2dpblN0YXRlbWVudC0+YmluZFRleHQo
NywgY3JlZGVudGlhbC51c2VyKCkpOwotICAgIG1fYWRkTG9naW5TdGF0ZW1lbnQtPmJpbmRCbG9i
KDgsIGNlcnRNZ3JXcmFwcGVyKCktPmlzUmVhZHkoKSA/ICIiIDogZW5jcnlwdGVkU3RyaW5nKGNy
ZWRlbnRpYWwucGFzc3dvcmQoKSkpOworICAgIG1fYWRkTG9naW5TdGF0ZW1lbnQtPmJpbmRUZXh0
KDEsIHByb3RlY3Rpb25TcGFjZS5ob3N0KCkpOworICAgIG1fYWRkTG9naW5TdGF0ZW1lbnQtPmJp
bmRJbnQoMiwgcHJvdGVjdGlvblNwYWNlLnBvcnQoKSk7CisgICAgbV9hZGRMb2dpblN0YXRlbWVu
dC0+YmluZEludCgzLCBzdGF0aWNfY2FzdDxpbnQ+KHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBl
KCkpKTsKKyAgICBtX2FkZExvZ2luU3RhdGVtZW50LT5iaW5kVGV4dCg0LCBwcm90ZWN0aW9uU3Bh
Y2UucmVhbG0oKSk7CisgICAgbV9hZGRMb2dpblN0YXRlbWVudC0+YmluZEludCg1LCBzdGF0aWNf
Y2FzdDxpbnQ+KHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSk7CisgICAg
bV9hZGRMb2dpblN0YXRlbWVudC0+YmluZFRleHQoNiwgY3JlZGVudGlhbC51c2VyKCkpOworICAg
IG1fYWRkTG9naW5TdGF0ZW1lbnQtPmJpbmRCbG9iKDcsIGNlcnRNZ3JXcmFwcGVyKCktPmlzUmVh
ZHkoKSA/ICIiIDogZW5jcnlwdGVkU3RyaW5nKGNyZWRlbnRpYWwucGFzc3dvcmQoKSkpOwogCiAg
ICAgaW50IHJlc3VsdCA9IG1fYWRkTG9naW5TdGF0ZW1lbnQtPnN0ZXAoKTsKICAgICBtX2FkZExv
Z2luU3RhdGVtZW50LT5yZXNldCgpOwpAQCAtMTk1LDExICsxODAsMTQgQEAgYm9vbCBDcmVkZW50
aWFsQmFja2luZ1N0b3JlOjphZGRMb2dpbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rp
b25TcGFjZSYgcHIKIAogICAgIGlmICghY2VydE1ncldyYXBwZXIoKS0+aXNSZWFkeSgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB1bnNpZ25lZCBoYXNoID0gaGFzaENyZWRlbnRpYWxJbmZv
KHVybC5zdHJpbmcoKSwgcHJvdGVjdGlvblNwYWNlLCBjcmVkZW50aWFsLnVzZXIoKSk7Ci0gICAg
cmV0dXJuIGNlcnRNZ3JXcmFwcGVyKCktPnNhdmVQYXNzd29yZChoYXNoLCBlbmNyeXB0ZWRTdHJp
bmcoY3JlZGVudGlhbC5wYXNzd29yZCgpKS5sYXRpbjEoKS5kYXRhKCkpOworCisgICAgU3RyaW5n
IGNpcGhlcnRleHQgPSBlbmNyeXB0ZWRTdHJpbmcoY3JlZGVudGlhbC5wYXNzd29yZCgpKTsKKyAg
ICBBU1NFUlQoY2lwaGVydGV4dC5pczhCaXQoKSk7CisgICAgdW5zaWduZWQgaGFzaCA9IGhhc2hD
cmVkZW50aWFsSW5mbyhwcm90ZWN0aW9uU3BhY2UsIGNyZWRlbnRpYWwudXNlcigpKTsKKyAgICBy
ZXR1cm4gY2VydE1ncldyYXBwZXIoKS0+c2F2ZVBhc3N3b3JkKGhhc2gsIHN0ZDo6c3RyaW5nKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGNpcGhlcnRleHQuY2hhcmFjdGVyczgoKSksIGNp
cGhlcnRleHQubGVuZ3RoKCkpKTsKIH0KIAotYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjp1
cGRhdGVMb2dpbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVj
dGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQorYm9vbCBDcmVkZW50aWFs
QmFja2luZ1N0b3JlOjp1cGRhdGVMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rp
b25TcGFjZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBBU1NFUlQobV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UudGFibGVFeGlzdHMoImxv
Z2lucyIpKTsKQEAgLTIwOSwxMiArMTk3LDExIEBAIGJvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9y
ZTo6dXBkYXRlTG9naW4oY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmCiAK
ICAgICBtX3VwZGF0ZUxvZ2luU3RhdGVtZW50LT5iaW5kVGV4dCgxLCBjcmVkZW50aWFsLnVzZXIo
KSk7CiAgICAgbV91cGRhdGVMb2dpblN0YXRlbWVudC0+YmluZEJsb2IoMiwgY2VydE1ncldyYXBw
ZXIoKS0+aXNSZWFkeSgpID8gIiIgOiBlbmNyeXB0ZWRTdHJpbmcoY3JlZGVudGlhbC5wYXNzd29y
ZCgpKSk7Ci0gICAgbV91cGRhdGVMb2dpblN0YXRlbWVudC0+YmluZFRleHQoMywgdXJsLnN0cmlu
ZygpKTsKLSAgICBtX3VwZGF0ZUxvZ2luU3RhdGVtZW50LT5iaW5kVGV4dCg0LCBwcm90ZWN0aW9u
U3BhY2UuaG9zdCgpKTsKLSAgICBtX3VwZGF0ZUxvZ2luU3RhdGVtZW50LT5iaW5kSW50KDUsIHBy
b3RlY3Rpb25TcGFjZS5wb3J0KCkpOwotICAgIG1fdXBkYXRlTG9naW5TdGF0ZW1lbnQtPmJpbmRJ
bnQoNiwgc3RhdGljX2Nhc3Q8aW50Pihwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlwZSgpKSk7Ci0g
ICAgbV91cGRhdGVMb2dpblN0YXRlbWVudC0+YmluZFRleHQoNywgcHJvdGVjdGlvblNwYWNlLnJl
YWxtKCkpOwotICAgIG1fdXBkYXRlTG9naW5TdGF0ZW1lbnQtPmJpbmRJbnQoOCwgc3RhdGljX2Nh
c3Q8aW50Pihwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSkpOworICAgIG1f
dXBkYXRlTG9naW5TdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIHByb3RlY3Rpb25TcGFjZS5ob3N0KCkp
OworICAgIG1fdXBkYXRlTG9naW5TdGF0ZW1lbnQtPmJpbmRJbnQoNCwgcHJvdGVjdGlvblNwYWNl
LnBvcnQoKSk7CisgICAgbV91cGRhdGVMb2dpblN0YXRlbWVudC0+YmluZEludCg1LCBzdGF0aWNf
Y2FzdDxpbnQ+KHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpKTsKKyAgICBtX3VwZGF0ZUxv
Z2luU3RhdGVtZW50LT5iaW5kVGV4dCg2LCBwcm90ZWN0aW9uU3BhY2UucmVhbG0oKSk7CisgICAg
bV91cGRhdGVMb2dpblN0YXRlbWVudC0+YmluZEludCg3LCBzdGF0aWNfY2FzdDxpbnQ+KHByb3Rl
Y3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSk7CiAKICAgICBpbnQgcmVzdWx0ID0g
bV91cGRhdGVMb2dpblN0YXRlbWVudC0+c3RlcCgpOwogICAgIG1fdXBkYXRlTG9naW5TdGF0ZW1l
bnQtPnJlc2V0KCk7CkBAIC0yMjMsMTEgKzIxMCwxNCBAQCBib29sIENyZWRlbnRpYWxCYWNraW5n
U3RvcmU6OnVwZGF0ZUxvZ2luKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNl
JgogCiAgICAgaWYgKCFjZXJ0TWdyV3JhcHBlcigpLT5pc1JlYWR5KCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIHVuc2lnbmVkIGhhc2ggPSBoYXNoQ3JlZGVudGlhbEluZm8odXJsLnN0cmlu
ZygpLCBwcm90ZWN0aW9uU3BhY2UsIGNyZWRlbnRpYWwudXNlcigpKTsKLSAgICByZXR1cm4gY2Vy
dE1ncldyYXBwZXIoKS0+c2F2ZVBhc3N3b3JkKGhhc2gsIGVuY3J5cHRlZFN0cmluZyhjcmVkZW50
aWFsLnBhc3N3b3JkKCkpLmxhdGluMSgpLmRhdGEoKSk7CisKKyAgICBTdHJpbmcgY2lwaGVydGV4
dCA9IGVuY3J5cHRlZFN0cmluZyhjcmVkZW50aWFsLnBhc3N3b3JkKCkpOworICAgIEFTU0VSVChj
aXBoZXJ0ZXh0LmlzOEJpdCgpKTsKKyAgICB1bnNpZ25lZCBoYXNoID0gaGFzaENyZWRlbnRpYWxJ
bmZvKHByb3RlY3Rpb25TcGFjZSwgY3JlZGVudGlhbC51c2VyKCkpOworICAgIHJldHVybiBjZXJ0
TWdyV3JhcHBlcigpLT5zYXZlUGFzc3dvcmQoaGFzaCwgc3RkOjpzdHJpbmcocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oY2lwaGVydGV4dC5jaGFyYWN0ZXJzOCgpKSwgY2lwaGVydGV4dC5s
ZW5ndGgoKSkpOwogfQogCi1ib29sIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omhhc0xvZ2luKGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCiti
b29sIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omhhc0xvZ2luKGNvbnN0IFByb3RlY3Rpb25TcGFj
ZSYgcHJvdGVjdGlvblNwYWNlKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLmlzT3BlbigpKTsK
ICAgICBBU1NFUlQobV9kYXRhYmFzZS50YWJsZUV4aXN0cygibG9naW5zIikpOwpAQCAtMjM1LDEy
ICsyMjUsMTEgQEAgYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpoYXNMb2dpbihjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHIKICAgICBpZiAoIW1faGFzTG9naW5T
dGF0ZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1faGFzTG9naW5TdGF0ZW1l
bnQtPmJpbmRUZXh0KDEsIHVybC5zdHJpbmcoKSk7Ci0gICAgbV9oYXNMb2dpblN0YXRlbWVudC0+
YmluZFRleHQoMiwgcHJvdGVjdGlvblNwYWNlLmhvc3QoKSk7Ci0gICAgbV9oYXNMb2dpblN0YXRl
bWVudC0+YmluZEludCgzLCBwcm90ZWN0aW9uU3BhY2UucG9ydCgpKTsKLSAgICBtX2hhc0xvZ2lu
U3RhdGVtZW50LT5iaW5kSW50KDQsIHN0YXRpY19jYXN0PGludD4ocHJvdGVjdGlvblNwYWNlLnNl
cnZlclR5cGUoKSkpOwotICAgIG1faGFzTG9naW5TdGF0ZW1lbnQtPmJpbmRUZXh0KDUsIHByb3Rl
Y3Rpb25TcGFjZS5yZWFsbSgpKTsKLSAgICBtX2hhc0xvZ2luU3RhdGVtZW50LT5iaW5kSW50KDYs
IHN0YXRpY19jYXN0PGludD4ocHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkp
KTsKKyAgICBtX2hhc0xvZ2luU3RhdGVtZW50LT5iaW5kVGV4dCgxLCBwcm90ZWN0aW9uU3BhY2Uu
aG9zdCgpKTsKKyAgICBtX2hhc0xvZ2luU3RhdGVtZW50LT5iaW5kSW50KDIsIHByb3RlY3Rpb25T
cGFjZS5wb3J0KCkpOworICAgIG1faGFzTG9naW5TdGF0ZW1lbnQtPmJpbmRJbnQoMywgc3RhdGlj
X2Nhc3Q8aW50Pihwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlwZSgpKSk7CisgICAgbV9oYXNMb2dp
blN0YXRlbWVudC0+YmluZFRleHQoNCwgcHJvdGVjdGlvblNwYWNlLnJlYWxtKCkpOworICAgIG1f
aGFzTG9naW5TdGF0ZW1lbnQtPmJpbmRJbnQoNSwgc3RhdGljX2Nhc3Q8aW50Pihwcm90ZWN0aW9u
U3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSkpOwogCiAgICAgaW50IHJlc3VsdCA9IG1faGFz
TG9naW5TdGF0ZW1lbnQtPnN0ZXAoKTsKICAgICBpbnQgbnVtT2ZSb3cgPSBtX2hhc0xvZ2luU3Rh
dGVtZW50LT5nZXRDb2x1bW5JbnQoMCk7CkBAIC0yNjksOCArMjU4LDcgQEAgQ3JlZGVudGlhbCBD
cmVkZW50aWFsQmFja2luZ1N0b3JlOjpnZXRMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHBy
b3RlY3Rpb25TcGEKIAogICAgIGludCByZXN1bHQgPSBtX2dldExvZ2luU3RhdGVtZW50LT5zdGVw
KCk7CiAgICAgU3RyaW5nIHVzZXJuYW1lID0gbV9nZXRMb2dpblN0YXRlbWVudC0+Z2V0Q29sdW1u
VGV4dCgwKTsKLSAgICBTdHJpbmcgcGFzc3dvcmQgPSBjZXJ0TWdyV3JhcHBlcigpLT5pc1JlYWR5
KCkgPyAiIiA6IG1fZ2V0TG9naW5TdGF0ZW1lbnQtPmdldENvbHVtbkJsb2JBc1N0cmluZygxKTsK
LSAgICBTdHJpbmcgdXJsID0gbV9nZXRMb2dpblN0YXRlbWVudC0+Z2V0Q29sdW1uVGV4dCgyKTsK
KyAgICBTdHJpbmcgcGFzc3dvcmQgPSBtX2dldExvZ2luU3RhdGVtZW50LT5nZXRDb2x1bW5CbG9i
QXNTdHJpbmcoMSk7CiAgICAgbV9nZXRMb2dpblN0YXRlbWVudC0+cmVzZXQoKTsKICAgICBIQU5E
TEVfU1FMX0VYRUNfRkFJTFVSRShyZXN1bHQgIT0gU1FMUmVzdWx0Um93LCBDcmVkZW50aWFsKCks
CiAgICAgICAgICJGYWlsZWQgdG8gZXhlY3V0ZSBzZWxlY3QgbG9naW4gaW5mbyBmcm9tIHRhYmxl
IGxvZ2lucyBpbiBnZXRMb2dpbiAtICVpIiwgcmVzdWx0KTsKQEAgLTI3OCw0OCArMjY2LDE2IEBA
IENyZWRlbnRpYWwgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6Z2V0TG9naW4oY29uc3QgUHJvdGVj
dGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhCiAgICAgaWYgKCFjZXJ0TWdyV3JhcHBlcigpLT5pc1Jl
YWR5KCkpCiAgICAgICAgIHJldHVybiBDcmVkZW50aWFsKHVzZXJuYW1lLCBkZWNyeXB0ZWRTdHJp
bmcocGFzc3dvcmQpLCBDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQpOwogCi0gICAgdW5z
aWduZWQgaGFzaCA9IGhhc2hDcmVkZW50aWFsSW5mbyh1cmwsIHByb3RlY3Rpb25TcGFjZSwgdXNl
cm5hbWUpOwotICAgIHN0ZDo6c3RyaW5nIHBhc3N3b3JkQmxvYjsKLSAgICBpZiAoIWNlcnRNZ3JX
cmFwcGVyKCktPmdldFBhc3N3b3JkKGhhc2gsIHBhc3N3b3JkQmxvYikpCi0gICAgICAgIHJldHVy
biBDcmVkZW50aWFsKCk7Ci0gICAgcmV0dXJuIENyZWRlbnRpYWwodXNlcm5hbWUsIGRlY3J5cHRl
ZFN0cmluZyhwYXNzd29yZEJsb2IuY19zdHIoKSksIENyZWRlbnRpYWxQZXJzaXN0ZW5jZVBlcm1h
bmVudCk7Ci19Ci0KLUNyZWRlbnRpYWwgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6Z2V0TG9naW4o
Y29uc3QgS1VSTCYgdXJsKQotewotICAgIEFTU0VSVChtX2RhdGFiYXNlLmlzT3BlbigpKTsKLSAg
ICBBU1NFUlQobV9kYXRhYmFzZS50YWJsZUV4aXN0cygibG9naW5zIikpOwotCi0gICAgaWYgKCFt
X2dldExvZ2luQnlVUkxTdGF0ZW1lbnQpCi0gICAgICAgIHJldHVybiBDcmVkZW50aWFsKCk7Ci0K
LSAgICBtX2dldExvZ2luQnlVUkxTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIHVybC5zdHJpbmcoKSk7
Ci0KLSAgICBpbnQgcmVzdWx0ID0gbV9nZXRMb2dpbkJ5VVJMU3RhdGVtZW50LT5zdGVwKCk7Ci0g
ICAgU3RyaW5nIHVzZXJuYW1lID0gbV9nZXRMb2dpbkJ5VVJMU3RhdGVtZW50LT5nZXRDb2x1bW5U
ZXh0KDApOwotICAgIFN0cmluZyBwYXNzd29yZCA9IGNlcnRNZ3JXcmFwcGVyKCktPmlzUmVhZHko
KSA/ICIiIDogbV9nZXRMb2dpbkJ5VVJMU3RhdGVtZW50LT5nZXRDb2x1bW5CbG9iQXNTdHJpbmco
MSk7Ci0gICAgU3RyaW5nIGhvc3QgPSBtX2dldExvZ2luQnlVUkxTdGF0ZW1lbnQtPmdldENvbHVt
blRleHQoMik7Ci0gICAgaW50IHBvcnQgPSBtX2dldExvZ2luQnlVUkxTdGF0ZW1lbnQtPmdldENv
bHVtbkludCgzKTsKLSAgICBpbnQgc2VydmljZVR5cGUgPSBtX2dldExvZ2luQnlVUkxTdGF0ZW1l
bnQtPmdldENvbHVtbkludCg0KTsKLSAgICBTdHJpbmcgcmVhbG0gPSBtX2dldExvZ2luQnlVUkxT
dGF0ZW1lbnQtPmdldENvbHVtblRleHQoNSk7Ci0gICAgaW50IGF1dGhlbnRpY2F0aW9uU2NoZW1l
ID0gbV9nZXRMb2dpbkJ5VVJMU3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoNik7Ci0gICAgbV9nZXRM
b2dpbkJ5VVJMU3RhdGVtZW50LT5yZXNldCgpOwotICAgIEhBTkRMRV9TUUxfRVhFQ19GQUlMVVJF
KHJlc3VsdCAhPSBTUUxSZXN1bHRSb3csIENyZWRlbnRpYWwoKSwKLSAgICAgICAgIkZhaWxlZCB0
byBleGVjdXRlIHNlbGVjdCBsb2dpbiBpbmZvIGZyb20gdGFibGUgbG9naW5zIGluIGdldExvZ2lu
QnlVUkwgLSAlaSIsIHJlc3VsdCk7Ci0KLSAgICBpZiAoIWNlcnRNZ3JXcmFwcGVyKCktPmlzUmVh
ZHkoKSkKLSAgICAgICAgcmV0dXJuIENyZWRlbnRpYWwodXNlcm5hbWUsIGRlY3J5cHRlZFN0cmlu
ZyhwYXNzd29yZCksIENyZWRlbnRpYWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7CisgICAgdW5zaWdu
ZWQgaGFzaCA9IGhhc2hDcmVkZW50aWFsSW5mbyhwcm90ZWN0aW9uU3BhY2UsIHVzZXJuYW1lKTsK
IAotICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2UoaG9zdCwgcG9ydCwgc3RhdGlj
X2Nhc3Q8UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZT4oc2VydmljZVR5cGUpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbG0sIHN0YXRpY19jYXN0PFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lPihhdXRoZW50aWNhdGlvblNjaGVtZSkpOwotICAgIHVu
c2lnbmVkIGhhc2ggPSBoYXNoQ3JlZGVudGlhbEluZm8odXJsLCBwcm90ZWN0aW9uU3BhY2UsIHVz
ZXJuYW1lKTsKICAgICBzdGQ6OnN0cmluZyBwYXNzd29yZEJsb2I7CiAgICAgaWYgKCFjZXJ0TWdy
V3JhcHBlcigpLT5nZXRQYXNzd29yZChoYXNoLCBwYXNzd29yZEJsb2IpKQogICAgICAgICByZXR1
cm4gQ3JlZGVudGlhbCgpOwotICAgIHJldHVybiBDcmVkZW50aWFsKHVzZXJuYW1lLCBkZWNyeXB0
ZWRTdHJpbmcocGFzc3dvcmRCbG9iLmNfc3RyKCkpLCBDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJt
YW5lbnQpOworCisgICAgcmV0dXJuIENyZWRlbnRpYWwodXNlcm5hbWUsIGRlY3J5cHRlZFN0cmlu
ZyhTdHJpbmcocGFzc3dvcmRCbG9iLmRhdGEoKSwgcGFzc3dvcmRCbG9iLmxlbmd0aCgpKSksIENy
ZWRlbnRpYWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7CiB9CiAKLWJvb2wgQ3JlZGVudGlhbEJhY2tp
bmdTdG9yZTo6cmVtb3ZlTG9naW4oY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3Bh
Y2UmIHByb3RlY3Rpb25TcGFjZSkKK2Jvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6cmVtb3Zl
TG9naW4oY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IFN0cmlu
ZyYgdXNlcm5hbWUpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UuaXNPcGVuKCkpOwogICAgIEFT
U0VSVChtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJsb2dpbnMiKSk7CkBAIC0zMjcsMjIgKzI4Mywy
OCBAQCBib29sIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6OnJlbW92ZUxvZ2luKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJgogICAgIGlmICghbV9yZW1vdmVMb2dpblN0YXRl
bWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9yZW1vdmVMb2dpblN0YXRlbWVu
dC0+YmluZFRleHQoMSwgdXJsLnN0cmluZygpKTsKLSAgICBtX3JlbW92ZUxvZ2luU3RhdGVtZW50
LT5iaW5kVGV4dCgyLCBwcm90ZWN0aW9uU3BhY2UuaG9zdCgpKTsKLSAgICBtX3JlbW92ZUxvZ2lu
U3RhdGVtZW50LT5iaW5kSW50KDMsIHByb3RlY3Rpb25TcGFjZS5wb3J0KCkpOwotICAgIG1fcmVt
b3ZlTG9naW5TdGF0ZW1lbnQtPmJpbmRJbnQoNCwgc3RhdGljX2Nhc3Q8aW50Pihwcm90ZWN0aW9u
U3BhY2Uuc2VydmVyVHlwZSgpKSk7Ci0gICAgbV9yZW1vdmVMb2dpblN0YXRlbWVudC0+YmluZFRl
eHQoNSwgcHJvdGVjdGlvblNwYWNlLnJlYWxtKCkpOwotICAgIG1fcmVtb3ZlTG9naW5TdGF0ZW1l
bnQtPmJpbmRJbnQoNiwgc3RhdGljX2Nhc3Q8aW50Pihwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGlj
YXRpb25TY2hlbWUoKSkpOworICAgIG1fcmVtb3ZlTG9naW5TdGF0ZW1lbnQtPmJpbmRUZXh0KDEs
IHByb3RlY3Rpb25TcGFjZS5ob3N0KCkpOworICAgIG1fcmVtb3ZlTG9naW5TdGF0ZW1lbnQtPmJp
bmRJbnQoMiwgcHJvdGVjdGlvblNwYWNlLnBvcnQoKSk7CisgICAgbV9yZW1vdmVMb2dpblN0YXRl
bWVudC0+YmluZEludCgzLCBzdGF0aWNfY2FzdDxpbnQ+KHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkpKTsKKyAgICBtX3JlbW92ZUxvZ2luU3RhdGVtZW50LT5iaW5kVGV4dCg0LCBwcm90ZWN0
aW9uU3BhY2UucmVhbG0oKSk7CisgICAgbV9yZW1vdmVMb2dpblN0YXRlbWVudC0+YmluZEludCg1
LCBzdGF0aWNfY2FzdDxpbnQ+KHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgp
KSk7CiAKICAgICBpbnQgcmVzdWx0ID0gbV9yZW1vdmVMb2dpblN0YXRlbWVudC0+c3RlcCgpOwog
ICAgIG1fcmVtb3ZlTG9naW5TdGF0ZW1lbnQtPnJlc2V0KCk7CiAgICAgSEFORExFX1NRTF9FWEVD
X0ZBSUxVUkUocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUsIGZhbHNlLAogICAgICAgICAiRmFpbGVk
IHRvIHJlbW92ZSBsb2dpbiBpbmZvIGZyb20gdGFibGUgbG9naW5zIC0gJWkiLCByZXN1bHQpOwog
CisgICAgaWYgKCFjZXJ0TWdyV3JhcHBlcigpLT5pc1JlYWR5KCkpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgdW5zaWduZWQgaGFzaCA9IGhhc2hDcmVkZW50aWFsSW5mbyhwcm90ZWN0aW9u
U3BhY2UsIHVzZXJuYW1lKTsKKyAgICBpZiAoIWNlcnRNZ3JXcmFwcGVyKCktPnJlbW92ZVBhc3N3
b3JkKGhhc2gpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjphZGROZXZlclJlbWVtYmVyKGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCitib29sIENy
ZWRlbnRpYWxCYWNraW5nU3RvcmU6OmFkZE5ldmVyUmVtZW1iZXIoY29uc3QgUHJvdGVjdGlvblNw
YWNlJiBwcm90ZWN0aW9uU3BhY2UpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UuaXNPcGVuKCkp
OwogICAgIEFTU0VSVChtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJuZXZlcl9yZW1lbWJlciIpKTsK
QEAgLTM1MCwxMiArMzEyLDExIEBAIGJvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6YWRkTmV2
ZXJSZW1lbWJlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rpb25TCiAgICAgaWYgKCFt
X2FkZE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IG1fYWRkTmV2ZXJSZW1lbWJlclN0YXRlbWVudC0+YmluZFRleHQoMSwgdXJsLnN0cmluZygpKTsK
LSAgICBtX2FkZE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQtPmJpbmRUZXh0KDIsIHByb3RlY3Rpb25T
cGFjZS5ob3N0KCkpOwotICAgIG1fYWRkTmV2ZXJSZW1lbWJlclN0YXRlbWVudC0+YmluZEludCgz
LCBwcm90ZWN0aW9uU3BhY2UucG9ydCgpKTsKLSAgICBtX2FkZE5ldmVyUmVtZW1iZXJTdGF0ZW1l
bnQtPmJpbmRJbnQoNCwgc3RhdGljX2Nhc3Q8aW50Pihwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlw
ZSgpKSk7Ci0gICAgbV9hZGROZXZlclJlbWVtYmVyU3RhdGVtZW50LT5iaW5kVGV4dCg1LCBwcm90
ZWN0aW9uU3BhY2UucmVhbG0oKSk7Ci0gICAgbV9hZGROZXZlclJlbWVtYmVyU3RhdGVtZW50LT5i
aW5kSW50KDYsIHN0YXRpY19jYXN0PGludD4ocHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9u
U2NoZW1lKCkpKTsKKyAgICBtX2FkZE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQtPmJpbmRUZXh0KDEs
IHByb3RlY3Rpb25TcGFjZS5ob3N0KCkpOworICAgIG1fYWRkTmV2ZXJSZW1lbWJlclN0YXRlbWVu
dC0+YmluZEludCgyLCBwcm90ZWN0aW9uU3BhY2UucG9ydCgpKTsKKyAgICBtX2FkZE5ldmVyUmVt
ZW1iZXJTdGF0ZW1lbnQtPmJpbmRJbnQoMywgc3RhdGljX2Nhc3Q8aW50Pihwcm90ZWN0aW9uU3Bh
Y2Uuc2VydmVyVHlwZSgpKSk7CisgICAgbV9hZGROZXZlclJlbWVtYmVyU3RhdGVtZW50LT5iaW5k
VGV4dCg0LCBwcm90ZWN0aW9uU3BhY2UucmVhbG0oKSk7CisgICAgbV9hZGROZXZlclJlbWVtYmVy
U3RhdGVtZW50LT5iaW5kSW50KDUsIHN0YXRpY19jYXN0PGludD4ocHJvdGVjdGlvblNwYWNlLmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpKTsKIAogICAgIGludCByZXN1bHQgPSBtX2FkZE5ldmVyUmVt
ZW1iZXJTdGF0ZW1lbnQtPnN0ZXAoKTsKICAgICBtX2FkZE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQt
PnJlc2V0KCk7CkBAIC0zOTAsMjkgKzM1MSw2IEBAIGJvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9y
ZTo6aGFzTmV2ZXJSZW1lbWJlcihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1LVVJMIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6OmdldE5l
dmVyUmVtZW1iZXIoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCi17Ci0g
ICAgQVNTRVJUKG1fZGF0YWJhc2UuaXNPcGVuKCkpOwotICAgIEFTU0VSVChtX2RhdGFiYXNlLnRh
YmxlRXhpc3RzKCJuZXZlcl9yZW1lbWJlciIpKTsKLQotICAgIGlmICghbV9nZXROZXZlclJlbWVt
YmVyU3RhdGVtZW50KQotICAgICAgICByZXR1cm4gS1VSTCgpOwotCi0gICAgbV9nZXROZXZlclJl
bWVtYmVyU3RhdGVtZW50LT5iaW5kVGV4dCgxLCBwcm90ZWN0aW9uU3BhY2UuaG9zdCgpKTsKLSAg
ICBtX2dldE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgcHJvdGVjdGlvblNwYWNl
LnBvcnQoKSk7Ci0gICAgbV9nZXROZXZlclJlbWVtYmVyU3RhdGVtZW50LT5iaW5kSW50KDMsIHN0
YXRpY19jYXN0PGludD4ocHJvdGVjdGlvblNwYWNlLnNlcnZlclR5cGUoKSkpOwotICAgIG1fZ2V0
TmV2ZXJSZW1lbWJlclN0YXRlbWVudC0+YmluZFRleHQoNCwgcHJvdGVjdGlvblNwYWNlLnJlYWxt
KCkpOwotICAgIG1fZ2V0TmV2ZXJSZW1lbWJlclN0YXRlbWVudC0+YmluZEludCg1LCBzdGF0aWNf
Y2FzdDxpbnQ+KHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSk7Ci0KLSAg
ICBpbnQgcmVzdWx0ID0gbV9nZXROZXZlclJlbWVtYmVyU3RhdGVtZW50LT5zdGVwKCk7Ci0gICAg
U3RyaW5nIHVybCA9IG1fZ2V0TmV2ZXJSZW1lbWJlclN0YXRlbWVudC0+Z2V0Q29sdW1uVGV4dCgw
KTsKLSAgICBtX2dldE5ldmVyUmVtZW1iZXJTdGF0ZW1lbnQtPnJlc2V0KCk7Ci0gICAgSEFORExF
X1NRTF9FWEVDX0ZBSUxVUkUocmVzdWx0ICE9IFNRTFJlc3VsdFJvdywgS1VSTCgpLAotICAgICAg
ICAiRmFpbGVkIHRvIGV4ZWN1dGUgc2VsZWN0IG5ldmVyIHNhdmVkIHNpdGUgaW5mbyBmcm9tIHRh
YmxlIG5ldmVyX3JlbWVtYmVyIGluIGdldE5ldmVyUmVtZW1iZXIgLSAlaSIsIHJlc3VsdCk7Ci0K
LSAgICByZXR1cm4gS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7Ci19Ci0KIGJvb2wgQ3JlZGVu
dGlhbEJhY2tpbmdTdG9yZTo6cmVtb3ZlTmV2ZXJSZW1lbWJlcihjb25zdCBQcm90ZWN0aW9uU3Bh
Y2UmIHByb3RlY3Rpb25TcGFjZSkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS5pc09wZW4oKSk7
CkBAIC00NTksMTYgKzM5NywyMiBAQCBib29sIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6OmNsZWFy
TmV2ZXJSZW1lbWJlcigpCiAKIFN0cmluZyBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjplbmNyeXB0
ZWRTdHJpbmcoY29uc3QgU3RyaW5nJiBwbGFpblRleHQpIGNvbnN0CiB7CisgICAgV1RGOjpDU3Ry
aW5nIHV0ZjggPSBwbGFpblRleHQudXRmOCh0cnVlKTsKICAgICBzdGQ6OnN0cmluZyBjaXBoZXJU
ZXh0OwotICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpFbmNyeXB0b3I6OmVuY3J5cHRTdHJpbmco
c3RkOjpzdHJpbmcocGxhaW5UZXh0LmxhdGluMSgpLmRhdGEoKSksICZjaXBoZXJUZXh0KTsKLSAg
ICByZXR1cm4gU3RyaW5nKGNpcGhlclRleHQuY19zdHIoKSk7CisgICAgQmxhY2tCZXJyeTo6UGxh
dGZvcm06OkVuY3J5cHRvcjo6ZW5jcnlwdFN0cmluZyhzdGQ6OnN0cmluZyh1dGY4LmRhdGEoKSwg
dXRmOC5sZW5ndGgoKSksICZjaXBoZXJUZXh0KTsKKyAgICByZXR1cm4gU3RyaW5nKGNpcGhlclRl
eHQuZGF0YSgpLCBjaXBoZXJUZXh0Lmxlbmd0aCgpKTsKIH0KIAogU3RyaW5nIENyZWRlbnRpYWxC
YWNraW5nU3RvcmU6OmRlY3J5cHRlZFN0cmluZyhjb25zdCBTdHJpbmcmIGNpcGhlclRleHQpIGNv
bnN0CiB7CisgICAgc3RkOjpzdHJpbmcgdGV4dCA9IGNpcGhlclRleHQuaXM4Qml0KCkgPworICAg
ICAgICBzdGQ6OnN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjaXBoZXJUZXh0
LmNoYXJhY3RlcnM4KCkpLCBjaXBoZXJUZXh0Lmxlbmd0aCgpICogc2l6ZW9mKExDaGFyKSkgOgor
ICAgICAgICBzdGQ6OnN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjaXBoZXJU
ZXh0LmNoYXJhY3RlcnMxNigpKSwgY2lwaGVyVGV4dC5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikp
OworCiAgICAgc3RkOjpzdHJpbmcgcGxhaW5UZXh0OwotICAgIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpFbmNyeXB0b3I6OmRlY3J5cHRTdHJpbmcoc3RkOjpzdHJpbmcoY2lwaGVyVGV4dC5sYXRpbjEo
KS5kYXRhKCkpLCAmcGxhaW5UZXh0KTsKLSAgICByZXR1cm4gU3RyaW5nKHBsYWluVGV4dC5jX3N0
cigpKTsKKyAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6RW5jcnlwdG9yOjpkZWNyeXB0U3RyaW5n
KHRleHQsICZwbGFpblRleHQpOworCisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgocGxhaW5U
ZXh0LmRhdGEoKSwgcGxhaW5UZXh0Lmxlbmd0aCgpKTsKIH0KIAogQmxhY2tCZXJyeTo6UGxhdGZv
cm06OkNlcnRNZ3JXcmFwcGVyKiBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpjZXJ0TWdyV3JhcHBl
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuaAppbmRleCAwYWViOGY2Li4z
MGM2MDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmgKQEAgLTM0LDcg
KzM0LDYgQEAgY2xhc3MgQ2VydE1ncldyYXBwZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgS1VSTDsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIAogY2xhc3MgQ3JlZGVudGlhbEJh
Y2tpbmdTdG9yZSB7CkBAIC00MywxNSArNDIsMTMgQEAgcHVibGljOgogCiAgICAgfkNyZWRlbnRp
YWxCYWNraW5nU3RvcmUoKTsKICAgICBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBkYlBhdGgpOwot
ICAgIGJvb2wgYWRkTG9naW4oY29uc3QgS1VSTCYsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIGNv
bnN0IENyZWRlbnRpYWwmKTsKLSAgICBib29sIHVwZGF0ZUxvZ2luKGNvbnN0IEtVUkwmLCBjb25z
dCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50aWFsJik7Ci0gICAgYm9vbCBoYXNMb2dp
bihjb25zdCBLVVJMJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CisgICAgYm9vbCBhZGRMb2dp
bihjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50aWFsJik7CisgICAgYm9vbCB1
cGRhdGVMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50aWFsJik7Cisg
ICAgYm9vbCBoYXNMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKICAgICBDcmVkZW50aWFs
IGdldExvZ2luKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOwotICAgIENyZWRlbnRpYWwgZ2V0TG9n
aW4oY29uc3QgS1VSTCYpOwotICAgIGJvb2wgcmVtb3ZlTG9naW4oY29uc3QgS1VSTCYsIGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYpOwotICAgIGJvb2wgYWRkTmV2ZXJSZW1lbWJlcihjb25zdCBLVVJM
JiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CisgICAgYm9vbCByZW1vdmVMb2dpbihjb25zdCBQ
cm90ZWN0aW9uU3BhY2UmLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lKTsKKyAgICBib29sIGFkZE5l
dmVyUmVtZW1iZXIoY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CiAgICAgYm9vbCBoYXNOZXZlclJl
bWVtYmVyKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOwotICAgIEtVUkwgZ2V0TmV2ZXJSZW1lbWJl
cihjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKICAgICBib29sIHJlbW92ZU5ldmVyUmVtZW1iZXIo
Y29uc3QgUHJvdGVjdGlvblNwYWNlJik7CiAgICAgYm9vbCBjbGVhckxvZ2lucygpOwogICAgIGJv
b2wgY2xlYXJOZXZlclJlbWVtYmVyKCk7CkBAIC02OCwxMSArNjUsOSBAQCBwcml2YXRlOgogICAg
IFNRTGl0ZVN0YXRlbWVudCogbV91cGRhdGVMb2dpblN0YXRlbWVudDsKICAgICBTUUxpdGVTdGF0
ZW1lbnQqIG1faGFzTG9naW5TdGF0ZW1lbnQ7CiAgICAgU1FMaXRlU3RhdGVtZW50KiBtX2dldExv
Z2luU3RhdGVtZW50OwotICAgIFNRTGl0ZVN0YXRlbWVudCogbV9nZXRMb2dpbkJ5VVJMU3RhdGVt
ZW50OwogICAgIFNRTGl0ZVN0YXRlbWVudCogbV9yZW1vdmVMb2dpblN0YXRlbWVudDsKICAgICBT
UUxpdGVTdGF0ZW1lbnQqIG1fYWRkTmV2ZXJSZW1lbWJlclN0YXRlbWVudDsKICAgICBTUUxpdGVT
dGF0ZW1lbnQqIG1faGFzTmV2ZXJSZW1lbWJlclN0YXRlbWVudDsKLSAgICBTUUxpdGVTdGF0ZW1l
bnQqIG1fZ2V0TmV2ZXJSZW1lbWJlclN0YXRlbWVudDsKICAgICBTUUxpdGVTdGF0ZW1lbnQqIG1f
cmVtb3ZlTmV2ZXJSZW1lbWJlclN0YXRlbWVudDsKIAogICAgIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpDZXJ0TWdyV3JhcHBlciogbV9jZXJ0TWdyV3JhcHBlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcAppbmRl
eCA4YzRmNzBkLi5hNmUwN2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCkBAIC04MzksNiArODM5LDcg
QEAgTmV0d29ya0pvYjo6U2VuZFJlcXVlc3RSZXN1bHQgTmV0d29ya0pvYjo6c2VuZFJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMoUHJvdGVjdGlvblMKIAogICAgIC8vIFdlJ3ZlIGdvdCB0aGUgc2NoZW1l
IGFuZCByZWFsbS4gTm93IHdlIG5lZWQgYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuCiAgICAgQ3Jl
ZGVudGlhbCBjcmVkZW50aWFsOworCiAgICAgaWYgKCFyZXF1aXJlQ3JlZGVudGlhbHMpIHsKICAg
ICAgICAgLy8gRG9uJ3Qgb3ZlcndyaXRlIGFueSBleGlzdGluZyBjcmVkZW50aWFscyB3aXRoIHRo
ZSBlbXB0eSBjcmVkZW50aWFsCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRXZWJDaGFsbGVuZ2UoQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UocHJvdGVjdGlvblNwYWNlLCBjcmVkZW50aWFsLCAwLCBtX3Jl
c3BvbnNlLCBSZXNvdXJjZUVycm9yKCkpLCAvKiBhbGxvd092ZXJ3cml0ZSAqLyBmYWxzZSk7CkBA
IC05ODMsNyArOTg0LDggQEAgdm9pZCBOZXR3b3JrSm9iOjpwdXJnZUNyZWRlbnRpYWxzKEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6OnJl
bW92ZShjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkpOwogICAgIGNoYWxsZW5nZS5zZXRTdG9y
ZWQoZmFsc2UpOwogI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKLSAg
ICBjcmVkZW50aWFsQmFja2luZ1N0b3JlKCkucmVtb3ZlTG9naW4obV9yZXNwb25zZS51cmwoKSwg
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKTsKKyAgICBpZiAoY2hhbGxlbmdlLnByb3Bvc2Vk
Q3JlZGVudGlhbCgpID09IGNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKS5nZXRMb2dpbihjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkpKQorICAgICAgICBjcmVkZW50aWFsQmFja2luZ1N0b3JlKCku
cmVtb3ZlTG9naW4oY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjaGFsbGVuZ2UucHJvcG9z
ZWRDcmVkZW50aWFsKCkudXNlcigpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCBhYjBmOGJmLi41OGI5Y2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTIyMTgsNyArMjIxOCw3IEBAIHZvaWQg
V2ViUGFnZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgUHJvdGVjdGlvblNwCiAjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJT
SVNUKQogICAgIENyZWRlbnRpYWwgY3JlZGVudGlhbCh1c2VybmFtZSwgcGFzc3dvcmQsIENyZWRl
bnRpYWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7CiAgICAgaWYgKG1fd2ViU2V0dGluZ3MtPmlzQ3Jl
ZGVudGlhbEF1dG9maWxsRW5hYmxlZCgpICYmICFtX3dlYlNldHRpbmdzLT5pc1ByaXZhdGVCcm93
c2luZ0VuYWJsZWQoKSAmJiBpc0NvbmZpcm1lZCkKLSAgICAgICAgY3JlZGVudGlhbE1hbmFnZXIo
KS5zYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKHRoaXMsIENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRh
KHVybCwgcHJvdGVjdGlvblNwYWNlLCBjcmVkZW50aWFsKSk7CisgICAgICAgIGNyZWRlbnRpYWxN
YW5hZ2VyKCkuc2F2ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZCh0aGlzLCBDcmVkZW50aWFsVHJhbnNm
b3JtRGF0YShwcm90ZWN0aW9uU3BhY2UsIGNyZWRlbnRpYWwpKTsKICNlbHNlCiAgICAgQ3JlZGVu
dGlhbCBjcmVkZW50aWFsKHVzZXJuYW1lLCBwYXNzd29yZCwgQ3JlZGVudGlhbFBlcnNpc3RlbmNl
Tm9uZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGJjZDkzNmYu
LjNjMjViZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBA
CisyMDEzLTAyLTI3ICBMaWFuZ2h1aSBDaGVuICA8bGlhY2hlbkByaW0uY29tPgorCisgICAgICAg
IFtCbGFja0JlcnJ5XSBVc2VyIGNyZWRlbnRpYWxzIGlzIG5vdCBjb3JyZWN0bHkgaGFuZGxlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwOTk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93aW5n
IGNoYW5nZSBhcmUgbWFkZToKKyAgICAgICAgICAgIFJlbW92ZSB1cmwgZnJvbSBDcmVkZW50aWFs
VHJhbnNmb3JtRGF0YSwgYXMgdXJsIGlzIG5vdCB1c2VkIGFueW1vcmUuCisgICAgICAgICAgICBB
ZGFwdCB0byB1cGRhdGVkIENyZWRlbnRpYWxCYWNraW5nU3RvcmUgQVBJIGFib3V0IHJlbW92aW5n
IHVybC4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsTWFuYWdlcjo6YXV0b2ZpbGxQYXNzd29yZEZvcm1zKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyZWRlbnRpYWxNYW5hZ2VyOjpzYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsVHJhbnNmb3JtRGF0YTo6Q3JlZGVudGlhbFRyYW5z
Zm9ybURhdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxUcmFuc2Zvcm1E
YXRhLmg6CisgICAgICAgIChDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSk6CisKIDIwMTMtMDItMjcg
IEpvaG4gR3JpZ2dzICA8amdyaWdnc0ByaW0uY29tPgogCiAgICAgICAgIDIwMTMtMDItMjcgIEpv
aG4gR3JpZ2dzICA8amdyaWdnc0ByaW0uY29tPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5jcHAKaW5k
ZXggYzRlN2U5OS4uMTdhZWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuY3BwCkBAIC02MCw5
ICs2MCw5IEBAIHZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OmF1dG9maWxsUGFzc3dvcmRGb3JtcyhQ
YXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBkb2NGb3JtCiAgICAgICAgIE5vZGUqIG5vZGUgPSBm
b3Jtcy0+aXRlbShpKTsKICAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgp
KSB7CiAgICAgICAgICAgICBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSBkYXRhKHN0YXRpY19jYXN0
PEhUTUxGb3JtRWxlbWVudCo+KG5vZGUpKTsKLSAgICAgICAgICAgIGlmICghZGF0YS5pc1ZhbGlk
KCkgfHwgIWNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKS5oYXNMb2dpbihkYXRhLnVybCgpLCBkYXRh
LnByb3RlY3Rpb25TcGFjZSgpKSkKKyAgICAgICAgICAgIGlmICghZGF0YS5pc1ZhbGlkKCkgfHwg
IWNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKS5oYXNMb2dpbihkYXRhLnByb3RlY3Rpb25TcGFjZSgp
KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIENyZWRlbnRpYWwgc2F2
ZWRDcmVkZW50aWFsID0gY3JlZGVudGlhbEJhY2tpbmdTdG9yZSgpLmdldExvZ2luKGRhdGEudXJs
KCkpOworICAgICAgICAgICAgQ3JlZGVudGlhbCBzYXZlZENyZWRlbnRpYWwgPSBjcmVkZW50aWFs
QmFja2luZ1N0b3JlKCkuZ2V0TG9naW4oZGF0YS5wcm90ZWN0aW9uU3BhY2UoKSk7CiAgICAgICAg
ICAgICBkYXRhLnNldENyZWRlbnRpYWwoc2F2ZWRDcmVkZW50aWFsKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTc1LDE5ICs3NSwxOSBAQCB2b2lkIENyZWRlbnRpYWxNYW5hZ2VyOjpzYXZlQ3JlZGVu
dGlhbElmQ29uZmlybWVkKFBhZ2VDbGllbnRCbGFja0JlcnJ5KiBwYWdlQ2xpZQogICAgIGlmICgh
ZGF0YS5pc1ZhbGlkKCkgfHwgZGF0YS5jcmVkZW50aWFsKCkuaXNFbXB0eSgpIHx8IGNyZWRlbnRp
YWxCYWNraW5nU3RvcmUoKS5oYXNOZXZlclJlbWVtYmVyKGRhdGEucHJvdGVjdGlvblNwYWNlKCkp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBDcmVkZW50aWFsIHNhdmVkQ3JlZGVudGlhbCA9IGNy
ZWRlbnRpYWxCYWNraW5nU3RvcmUoKS5nZXRMb2dpbihkYXRhLnVybCgpKTsKKyAgICBDcmVkZW50
aWFsIHNhdmVkQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKS5nZXRMb2dpbihk
YXRhLnByb3RlY3Rpb25TcGFjZSgpKTsKICAgICBpZiAoc2F2ZWRDcmVkZW50aWFsID09IGRhdGEu
Y3JlZGVudGlhbCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBQYWdlQ2xpZW50QmxhY2tCZXJy
eTo6U2F2ZUNyZWRlbnRpYWxUeXBlIHR5cGUgPSBwYWdlQ2xpZW50LT5ub3RpZnlTaG91bGRTYXZl
Q3JlZGVudGlhbChzYXZlZENyZWRlbnRpYWwuaXNFbXB0eSgpKTsKICAgICBpZiAodHlwZSA9PSBQ
YWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxZZXMpIHsKICAgICAgICAgaWYgKHNh
dmVkQ3JlZGVudGlhbC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjcmVkZW50aWFsQmFja2luZ1N0
b3JlKCkuYWRkTG9naW4oZGF0YS51cmwoKSwgZGF0YS5wcm90ZWN0aW9uU3BhY2UoKSwgZGF0YS5j
cmVkZW50aWFsKCkpOworICAgICAgICAgICAgY3JlZGVudGlhbEJhY2tpbmdTdG9yZSgpLmFkZExv
Z2luKGRhdGEucHJvdGVjdGlvblNwYWNlKCksIGRhdGEuY3JlZGVudGlhbCgpKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY3JlZGVudGlhbEJhY2tpbmdTdG9yZSgpLnVwZGF0ZUxvZ2luKGRh
dGEudXJsKCksIGRhdGEucHJvdGVjdGlvblNwYWNlKCksIGRhdGEuY3JlZGVudGlhbCgpKTsKKyAg
ICAgICAgICAgIGNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKS51cGRhdGVMb2dpbihkYXRhLnByb3Rl
Y3Rpb25TcGFjZSgpLCBkYXRhLmNyZWRlbnRpYWwoKSk7CiAgICAgfSBlbHNlIGlmICh0eXBlID09
IFBhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbE5ldmVyRm9yVGhpc1NpdGUpIHsK
LSAgICAgICAgY3JlZGVudGlhbEJhY2tpbmdTdG9yZSgpLmFkZE5ldmVyUmVtZW1iZXIoZGF0YS51
cmwoKSwgZGF0YS5wcm90ZWN0aW9uU3BhY2UoKSk7Ci0gICAgICAgIGNyZWRlbnRpYWxCYWNraW5n
U3RvcmUoKS5yZW1vdmVMb2dpbihkYXRhLnVybCgpLCBkYXRhLnByb3RlY3Rpb25TcGFjZSgpKTsK
KyAgICAgICAgY3JlZGVudGlhbEJhY2tpbmdTdG9yZSgpLmFkZE5ldmVyUmVtZW1iZXIoZGF0YS5w
cm90ZWN0aW9uU3BhY2UoKSk7CisgICAgICAgIGNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKS5yZW1v
dmVMb2dpbihkYXRhLnByb3RlY3Rpb25TcGFjZSgpLCBkYXRhLmNyZWRlbnRpYWwoKS51c2VyKCkp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0NyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5jcHAKaW5kZXgg
OWNjMGY5Ni4uMzY3MzQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuY3Bw
CkBAIC0xNDUsMTcgKzE0NSwxNiBAQCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YTo6Q3JlZGVudGlh
bFRyYW5zZm9ybURhdGEoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBib29sIGlzRgogICAgIGlmICgh
aXNGb3JTYXZpbmcgJiYgbV9vbGRQYXNzd29yZEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fdXJsID0gc3RyaXBVUkwoZnVsbE9yaWdpbik7CisgICAgS1VSTCB1cmwgPSBzdHJpcFVS
TChmdWxsT3JpZ2luKTsKICAgICBtX2FjdGlvbiA9IHN0cmlwVVJMKGZ1bGxBY3Rpb24pOwotICAg
IG1fcHJvdGVjdGlvblNwYWNlID0gUHJvdGVjdGlvblNwYWNlKG1fdXJsLmhvc3QoKSwgbV91cmwu
cG9ydCgpLCBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQLCAiRm9ybSIsIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm0pOworICAgIG1fcHJvdGVjdGlvblNwYWNlID0g
UHJvdGVjdGlvblNwYWNlKHVybC5ob3N0KCksIHVybC5wb3J0KCksIFByb3RlY3Rpb25TcGFjZVNl
cnZlckhUVFAsICJGb3JtIiwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1M
Rm9ybSk7CiAgICAgbV9jcmVkZW50aWFsID0gQ3JlZGVudGlhbChtX3VzZXJOYW1lRWxlbWVudC0+
dmFsdWUoKSwgbV9wYXNzd29yZEVsZW1lbnQtPnZhbHVlKCksIENyZWRlbnRpYWxQZXJzaXN0ZW5j
ZVBlcm1hbmVudCk7CiAKICAgICBtX2lzVmFsaWQgPSB0cnVlOwogfQogCi1DcmVkZW50aWFsVHJh
bnNmb3JtRGF0YTo6Q3JlZGVudGlhbFRyYW5zZm9ybURhdGEoY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgY29uc3QgQ3JlZGVudGlhbCYgY3Jl
ZGVudGlhbCkKLSAgICA6IG1fdXJsKHVybCkKLSAgICAsIG1fcHJvdGVjdGlvblNwYWNlKHByb3Rl
Y3Rpb25TcGFjZSkKK0NyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhOjpDcmVkZW50aWFsVHJhbnNmb3Jt
RGF0YShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgY29uc3QgQ3JlZGVu
dGlhbCYgY3JlZGVudGlhbCkKKyAgICA6IG1fcHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFj
ZSkKICAgICAsIG1fY3JlZGVudGlhbChjcmVkZW50aWFsKQogICAgICwgbV91c2VyTmFtZUVsZW1l
bnQoMCkKICAgICAsIG1fcGFzc3dvcmRFbGVtZW50KDApCkBAIC0xNjQsMTYgKzE2Myw2IEBAIENy
ZWRlbnRpYWxUcmFuc2Zvcm1EYXRhOjpDcmVkZW50aWFsVHJhbnNmb3JtRGF0YShjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IFByb3RlY3RpCiB7CiB9CiAKLUtVUkwgQ3JlZGVudGlhbFRyYW5zZm9ybURh
dGE6OnVybCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2lzVmFsaWQpCi0gICAgICAgIHJldHVybiBL
VVJMKCk7Ci0KLSAgICBpZiAobV9wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUo
KSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtKQotICAgICAg
ICByZXR1cm4gbV9hY3Rpb247Ci0gICAgcmV0dXJuIG1fdXJsOwotfQotCiBDcmVkZW50aWFsIENy
ZWRlbnRpYWxUcmFuc2Zvcm1EYXRhOjpjcmVkZW50aWFsKCkgY29uc3QKIHsKICAgICBpZiAobV9j
cmVkZW50aWFsLmlzRW1wdHkoKSAmJiBtX3VzZXJOYW1lRWxlbWVudCAmJiBtX3Bhc3N3b3JkRWxl
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmgKaW5kZXggODYxY2JhNi4uOWFk
MTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0NyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhLmgKQEAgLTMxLDEyICszMSwx
MSBAQCBzdHJ1Y3QgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEgewogICAgIC8vIHJldHVybiB0cnVl
OwogICAgIENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhKCk7CiAgICAgQ3JlZGVudGlhbFRyYW5zZm9y
bURhdGEoSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBpc0ZvclNhdmluZyA9IGZhbHNlKTsKLSAgICBD
cmVkZW50aWFsVHJhbnNmb3JtRGF0YShjb25zdCBLVVJMJiwgY29uc3QgUHJvdGVjdGlvblNwYWNl
JiwgY29uc3QgQ3JlZGVudGlhbCYpOworICAgIENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhKGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYsIGNvbnN0IENyZWRlbnRpYWwmKTsKIAogICAgIC8vIElmIGNyZWF0
aW9uIGZhaWxlZCwgcmV0dXJuIGZhbHNlLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNWYWxpZDsgfQogCi0gICAgS1VSTCB1cmwoKSBjb25zdDsKICAgICBQcm90ZWN0aW9u
U3BhY2UgcHJvdGVjdGlvblNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9wcm90ZWN0aW9uU3BhY2U7
IH0KICAgICBDcmVkZW50aWFsIGNyZWRlbnRpYWwoKSBjb25zdDsKICAgICB2b2lkIHNldENyZWRl
bnRpYWwoY29uc3QgQ3JlZGVudGlhbCYpOwpAQCAtNDQsNyArNDMsNiBAQCBzdHJ1Y3QgQ3JlZGVu
dGlhbFRyYW5zZm9ybURhdGEgewogcHJpdmF0ZToKICAgICBib29sIGZpbmRQYXNzd29yZEZvcm1G
aWVsZHMoSFRNTEZvcm1FbGVtZW50Kik7CiAKLSAgICBLVVJMIG1fdXJsOwogICAgIEtVUkwgbV9h
Y3Rpb247CiAgICAgUHJvdGVjdGlvblNwYWNlIG1fcHJvdGVjdGlvblNwYWNlOwogICAgIG11dGFi
bGUgQ3JlZGVudGlhbCBtX2NyZWRlbnRpYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190667</attachid>
            <date>2013-02-27 23:55:43 -0800</date>
            <delta_ts>2013-02-28 08:43:54 -0800</delta_ts>
            <desc>Fix utf8 handling</desc>
            <filename>utf8.diff</filename>
            <type>text/plain</type>
            <size>1543</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YTNjMmQxLi5jODM0YjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMDItMjcgIEFsYmVydG8gR2FyY2lhICA8YWdhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtCbGFja0JlcnJ5XSBVc2VyIGNyZWRlbnRpYWxzIGlzIG5vdCBjb3JyZWN0bHkgaGFu
ZGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
OTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV1RG
OjpTdHJpbmc6OnV0Zjggbm8gbG9uZ2VyIHJlY2VpdmVzIGEgYm9vbCwgc2VlIHIxMzQxNzMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjplbmNy
eXB0ZWRTdHJpbmcpOgorCiAyMDEzLTAyLTI3ICBLdW5paGlrbyBTYWthbW90byAgPGtzYWthbW90
b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSU5QVVRfTVVMVElQTEVfRklFTERTX1VJOiBTdGVw
LXVwLy1kb3duIG9mIGhvdXIgZmllbGQgc2hvdWxkIHJlc3BlY3QgbWluL21heCBhdHRyaWJ1dGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMjQ2M2Q3YS4u
Njc0MzhlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcApAQCAt
Mzk3LDcgKzM5Nyw3IEBAIGJvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6Y2xlYXJOZXZlclJl
bWVtYmVyKCkKIAogU3RyaW5nIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6OmVuY3J5cHRlZFN0cmlu
Zyhjb25zdCBTdHJpbmcmIHBsYWluVGV4dCkgY29uc3QKIHsKLSAgICBXVEY6OkNTdHJpbmcgdXRm
OCA9IHBsYWluVGV4dC51dGY4KHRydWUpOworICAgIFdURjo6Q1N0cmluZyB1dGY4ID0gcGxhaW5U
ZXh0LnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKTsKICAgICBzdGQ6OnN0cmluZyBjaXBo
ZXJUZXh0OwogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpFbmNyeXB0b3I6OmVuY3J5cHRTdHJp
bmcoc3RkOjpzdHJpbmcodXRmOC5kYXRhKCksIHV0ZjgubGVuZ3RoKCkpLCAmY2lwaGVyVGV4dCk7
CiAgICAgcmV0dXJuIFN0cmluZyhjaXBoZXJUZXh0LmRhdGEoKSwgY2lwaGVyVGV4dC5sZW5ndGgo
KSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>