<?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>125053</bug_id>
          
          <creation_ts>2013-12-01 19:21:43 -0800</creation_ts>
          <short_desc>Give UserMessageEncoders WebProcessProxy reference (like the decoders already have)</short_desc>
          <delta_ts>2013-12-01 19:33:24 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>955211</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-01 19:21:43 -0800</bug_when>
    <thetext>Give UserMessageEncoders WebProcessProxy reference (like the decoders already have)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955212</commentid>
    <comment_count>1</comment_count>
      <attachid>218132</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-01 19:23:47 -0800</bug_when>
    <thetext>Created attachment 218132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955218</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-01 19:33:24 -0800</bug_when>
    <thetext>Committed r159908: &lt;http://trac.webkit.org/changeset/159908&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218132</attachid>
            <date>2013-12-01 19:23:47 -0800</date>
            <delta_ts>2013-12-01 19:27:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125053-20131201192347.patch</filename>
            <type>text/plain</type>
            <size>39402</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTkwNykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTEyLTAxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2l2ZSBVc2VyTWVzc2FnZUVuY29kZXJz
IFdlYlByb2Nlc3NQcm94eSByZWZlcmVuY2UgKGxpa2UgdGhlIGRlY29kZXJzIGFscmVhZHkgaGF2
ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTA1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gR2l2
ZSB0aGUgVXNlck1lc3NhZ2VFbmNvZGVycyBhIHByb2Nlc3MgcmVmZXJlbmNlLgorICAgICAgICAt
IFN3aXRjaCBVc2VyTWVzc2FnZURlY29kZXJzIHRvIHN0b3JpbmcgYSBwcm9jZXNzIHJlZmVyZW5j
ZSwgcmF0aGVyIHRoYW4gcG9pbnRlci4KKworICAgICAgICAqIFNoYXJlZC9Vc2VyTWVzc2FnZUNv
ZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoQ29kZXJzLmg6Cisg
ICAgICAgICogU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMubW06CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJN
ZXNzYWdlQ29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlQ29kZXJzLmg6CisKIDIwMTMtMTItMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBbQ29jb2FdIFRoZSBQYWdlTG9hZFN0YXRlOjpPYnNlcnZlciBpcyBub3QgYmVp
bmcgc2V0IG9uIGlPUwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29k
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29k
ZXJzLmgJKHJldmlzaW9uIDE1OTkwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVz
c2FnZUNvZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBVc2VyTWVzc2FnZUVuY29k
ZXIgewogcHVibGljOgotICAgIGJvb2wgYmFzZUVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIEFQSTo6T2JqZWN0OjpUeXBlJiB0eXBlKSBjb25zdAorICAgIGJvb2wgYmFz
ZUVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE93bmVyJiBj
b2RlciwgQVBJOjpPYmplY3Q6OlR5cGUmIHR5cGUpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAo
IW1fcm9vdCkgewogICAgICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
QVBJOjpPYmplY3Q6OlR5cGU6Ok51bGwpOwpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBBUEk6OkFycmF5KiBhcnJheSA9IHN0YXRpY19jYXN0PEFQSTo6QXJyYXkqPihtX3Jv
b3QpOwogICAgICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYXJyYXkt
PnNpemUoKSk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFycmF5LT5zaXpl
KCk7ICsraSkKLSAgICAgICAgICAgICAgICBlbmNvZGVyIDw8IE93bmVyKGFycmF5LT5hdChpKSk7
CisgICAgICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihjb2RlciwgYXJyYXktPmF0KGkpKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJOjpP
YmplY3Q6OlR5cGU6OkRpY3Rpb25hcnk6IHsKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gbWFwLmVuZCgpOwogICAgICAgICAgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgewogICAg
ICAgICAgICAgICAgIGVuY29kZXIgPDwgaXQtPmtleTsKLSAgICAgICAgICAgICAgICBlbmNvZGVy
IDw8IE93bmVyKGl0LT52YWx1ZS5nZXQoKSk7CisgICAgICAgICAgICAgICAgZW5jb2RlciA8PCBP
d25lcihjb2RlciwgaXQtPnZhbHVlLmdldCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0xNDksMTUgKzE0OSwxNSBAQCBwdWJsaWM6CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UmVuZGVyTGF5ZXI6IHsK
ICAgICAgICAgICAgIFdlYlJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHN0YXRpY19jYXN0PFdl
YlJlbmRlckxheWVyKj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIocmVu
ZGVyTGF5ZXItPnJlbmRlcmVyKCkpOworICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihjb2Rl
ciwgcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCkpOwogICAgICAgICAgICAgZW5jb2RlciA8PCByZW5k
ZXJMYXllci0+aXNSZWZsZWN0aW9uKCk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHJlbmRlckxh
eWVyLT5pc0NsaXBwaW5nKCk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHJlbmRlckxheWVyLT5p
c0NsaXBwZWQoKTsKICAgICAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHJlbmRlckxheWVyLT5jb21wb3NpdGluZ0xheWVyVHlwZSgpKTsKICAgICAgICAgICAgIGVuY29k
ZXIgPDwgcmVuZGVyTGF5ZXItPmFic29sdXRlQm91bmRpbmdCb3goKTsKLSAgICAgICAgICAgIGVu
Y29kZXIgPDwgT3duZXIocmVuZGVyTGF5ZXItPm5lZ2F0aXZlWk9yZGVyTGlzdCgpKTsKLSAgICAg
ICAgICAgIGVuY29kZXIgPDwgT3duZXIocmVuZGVyTGF5ZXItPm5vcm1hbEZsb3dMaXN0KCkpOwot
ICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihyZW5kZXJMYXllci0+cG9zaXRpdmVaT3JkZXJM
aXN0KCkpOworICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihjb2RlciwgcmVuZGVyTGF5ZXIt
Pm5lZ2F0aXZlWk9yZGVyTGlzdCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29k
ZXIsIHJlbmRlckxheWVyLT5ub3JtYWxGbG93TGlzdCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIg
PDwgT3duZXIoY29kZXIsIHJlbmRlckxheWVyLT5wb3NpdGl2ZVpPcmRlckxpc3QoKSk7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0
OjpUeXBlOjpSZW5kZXJPYmplY3Q6IHsKQEAgLTE2NSwxMCArMTY1LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIGVuY29kZXIgPDwgcmVuZGVyT2JqZWN0LT5uYW1lKCk7CiAgICAgICAgICAgICBl
bmNvZGVyIDw8IHJlbmRlck9iamVjdC0+ZWxlbWVudFRhZ05hbWUoKTsKICAgICAgICAgICAgIGVu
Y29kZXIgPDwgcmVuZGVyT2JqZWN0LT5lbGVtZW50SUQoKTsKLSAgICAgICAgICAgIGVuY29kZXIg
PDwgT3duZXIocmVuZGVyT2JqZWN0LT5lbGVtZW50Q2xhc3NOYW1lcygpKTsKKyAgICAgICAgICAg
IGVuY29kZXIgPDwgT3duZXIoY29kZXIsIHJlbmRlck9iamVjdC0+ZWxlbWVudENsYXNzTmFtZXMo
KSk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHJlbmRlck9iamVjdC0+YWJzb2x1dGVQb3NpdGlv
bigpOwogICAgICAgICAgICAgZW5jb2RlciA8PCByZW5kZXJPYmplY3QtPmZyYW1lUmVjdCgpOwot
ICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihyZW5kZXJPYmplY3QtPmNoaWxkcmVuKCkpOwor
ICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihjb2RlciwgcmVuZGVyT2JqZWN0LT5jaGlsZHJl
bigpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
QVBJOjpPYmplY3Q6OlR5cGU6OlVSTDogewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5oCShyZXZpc2lvbiAxNTk5MDEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw0MSArMzgsNDMgQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCiBjbGFz
cyBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGlj
aXQgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXIoT2JqQ09iamVjdEdyYXBoKik7Cisg
ICAgZXhwbGljaXQgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXIoT2JqQ09iamVjdEdy
YXBoKiwgV2ViUHJvY2Vzc1Byb3h5Jik7CiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgT2JqQ09iamVjdEdyYXBoKiBtX29i
amVjdEdyYXBoOworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOwogfTsKIAogY2xhc3Mg
V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXIgewogcHVibGljOgotICAgIGV4cGxpY2l0
IFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVyKFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+
JiwgV2ViUHJvY2Vzc1Byb3h5Kik7CisgICAgZXhwbGljaXQgV2ViQ29udGV4dE9iakNPYmplY3RH
cmFwaERlY29kZXIoUmVmUHRyPE9iakNPYmplY3RHcmFwaD4mLCBXZWJQcm9jZXNzUHJveHkmKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViQ29u
dGV4dE9iakNPYmplY3RHcmFwaERlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8T2Jq
Q09iamVjdEdyYXBoPiYgbV9vYmplY3RHcmFwaDsKLSAgICBXZWJQcm9jZXNzUHJveHkqIG1fcHJv
Y2VzczsKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07CiAKIAogY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhFbmNvZGVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNp
dCBJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaEVuY29kZXIoT2JqQ09iamVjdEdyYXBoKik7
CisgICAgZXhwbGljaXQgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhFbmNvZGVyKE9iakNP
YmplY3RHcmFwaCosIFdlYlByb2Nlc3MmKTsKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBPYmpDT2JqZWN0R3JhcGgqIG1f
b2JqZWN0R3JhcGg7CisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKIAogY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNvZGVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNp
dCBJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29kZXIoUmVmUHRyPE9iakNPYmplY3RH
cmFwaD4mLCBXZWJQcm9jZXNzKik7CisgICAgZXhwbGljaXQgSW5qZWN0ZWRCdW5kbGVPYmpDT2Jq
ZWN0R3JhcGhEZWNvZGVyKFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+JiwgV2ViUHJvY2VzcyYpOwog
ICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBJbmplY3Rl
ZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8
T2JqQ09iamVjdEdyYXBoPiYgbV9vYmplY3RHcmFwaDsKLSAgICBXZWJQcm9jZXNzKiBtX3Byb2Nl
c3M7CisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVy
cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RH
cmFwaENvZGVycy5tbQkocmV2aXNpb24gMTU5OTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMubW0JKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkx
LDcgQEAgc3RhdGljIFdlYktpdE5TVHlwZSB0eXBlRnJvbU9iamVjdChpZCBvYgogdGVtcGxhdGU8
dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBPYmpDT2JqZWN0R3JhcGhFbmNvZGVyIHsKIHB1YmxpYzoK
LSAgICBib29sIGJhc2VFbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBX
ZWJLaXROU1R5cGUmIHR5cGUpIGNvbnN0CisgICAgYm9vbCBiYXNlRW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgT3duZXImIGNvZGVyLCBXZWJLaXROU1R5cGUm
IHR5cGUpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIW1fcm9vdCkgewogICAgICAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTnVsbFR5cGUpOwpAQCAtMTE3LDcgKzEx
Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KHNpemUpOwogCiAgICAgICAgICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBzaXpl
OyArK2kpCi0gICAgICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihbYXJyYXkgb2JqZWN0QXRJ
bmRleDppXSk7CisgICAgICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihjb2RlciwgW2FycmF5
IG9iamVjdEF0SW5kZXg6aV0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBOU0RpY3Rpb25hcnlUeXBlOiB7CkBAIC0xMjksOCArMTI5LDggQEAgcHVi
bGljOgogICAgICAgICAgICAgTlNBcnJheSAqa2V5cyA9IFtkaWN0aW9uYXJ5IGFsbEtleXNdOwog
ICAgICAgICAgICAgTlNBcnJheSAqdmFsdWVzID0gW2RpY3Rpb25hcnkgYWxsVmFsdWVzXTsKICAg
ICAgICAgICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAg
ICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoW2tleXMgb2JqZWN0QXRJbmRleDppXSk7Ci0gICAg
ICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihbdmFsdWVzIG9iamVjdEF0SW5kZXg6aV0pOwor
ICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29kZXIsIFtrZXlzIG9iamVjdEF0SW5k
ZXg6aV0pOworICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29kZXIsIFt2YWx1ZXMg
b2JqZWN0QXRJbmRleDppXSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwpAQCAtMjY4LDE1ICsyNjgsMjIgQEAgY2xhc3MgV2ViQ29udGV4dE9iakNPYmplY3RHcmFw
aEVuY29kZXJJbQogcHVibGljOgogICAgIHR5cGVkZWYgT2JqQ09iamVjdEdyYXBoRW5jb2RlcjxX
ZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGw+IEJhc2U7CiAKLSAgICBleHBsaWNp
dCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwoaWQgcm9vdCkKKyAgICBleHBs
aWNpdCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwoaWQgcm9vdCwgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzKQogICAgICAgICA6IEJhc2Uocm9vdCkKKyAgICAgICAgLCBtX3By
b2Nlc3MocHJvY2VzcykKKyAgICB7CisgICAgfQorCisgICAgV2ViQ29udGV4dE9iakNPYmplY3RH
cmFwaEVuY29kZXJJbXBsKGNvbnN0IFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNvZGVySW1w
bCYgdXNlck1lc3NhZ2VFbmNvZGVyLCBpZCByb290KQorICAgICAgICA6IEJhc2Uocm9vdCkKKyAg
ICAgICAgLCBtX3Byb2Nlc3ModXNlck1lc3NhZ2VFbmNvZGVyLm1fcHJvY2VzcykKICAgICB7CiAg
ICAgfQogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIHsKICAgICAgICAgV2ViS2l0TlNUeXBlIHR5cGUgPSBOdWxsVHlwZTsKLSAg
ICAgICAgaWYgKGJhc2VFbmNvZGUoZW5jb2RlciwgdHlwZSkpCisgICAgICAgIGlmIChiYXNlRW5j
b2RlKGVuY29kZXIsICp0aGlzLCB0eXBlKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTI4OSw3ICsyOTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBXS1R5cGVSZWZXcmFwcGVyVHlwZTogewogICAgICAgICAgICAgV0tUeXBl
UmVmV3JhcHBlciAqd3JhcHBlciA9IHN0YXRpY19jYXN0PFdLVHlwZVJlZldyYXBwZXIgKj4obV9y
b290KTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rl
cih0b0ltcGwod3JhcHBlci5vYmplY3QpKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih0b0ltcGwod3JhcHBlci5vYmplY3QpLCBtX3Byb2Nlc3Mp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMjk4LDYgKzMwNSw5
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorCitwcml2
YXRlOgorICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOwogfTsKIAogCkBAIC0zMDUsNyAr
MzE1LDcgQEAgY2xhc3MgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXJJbQogcHVibGlj
OgogICAgIHR5cGVkZWYgT2JqQ09iamVjdEdyYXBoRGVjb2RlcjxXZWJDb250ZXh0T2JqQ09iamVj
dEdyYXBoRGVjb2RlckltcGw+IEJhc2U7CiAKLSAgICBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBo
RGVjb2RlckltcGwoUmV0YWluUHRyPGlkPiYgcm9vdCwgV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNz
KQorICAgIFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVySW1wbChSZXRhaW5QdHI8aWQ+
JiByb290LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiAgICAgICAgIDogQmFzZShyb290KQog
ICAgICAgICAsIG1fcHJvY2Vzcyhwcm9jZXNzKQogICAgIHsKQEAgLTMzOCw3ICszNDgsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhZ2VJRCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBXZWJQYWdlUHJveHkqIHdlYlBh
Z2UgPSBjb2Rlci5tX3Byb2Nlc3MtPndlYlBhZ2UocGFnZUlEKTsKKyAgICAgICAgICAgIFdlYlBh
Z2VQcm94eSogd2ViUGFnZSA9IGNvZGVyLm1fcHJvY2Vzcy53ZWJQYWdlKHBhZ2VJRCk7CiAgICAg
ICAgICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgICAgICAgICAgY29kZXIubV9yb290ID0gW05T
TnVsbCBudWxsXTsKICAgICAgICAgICAgIGVsc2UgCkBAIC0zNjIsNyArMzcyLDcgQEAgcHVibGlj
OgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBXZWJQcm9jZXNzUHJveHkqIG1fcHJvY2VzczsKKyAg
ICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07CiAKIApAQCAtMzcyLDE1ICszODIsMjIg
QEAgY2xhc3MgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhFbmNvZAogcHVibGljOgogICAg
IHR5cGVkZWYgT2JqQ09iamVjdEdyYXBoRW5jb2RlcjxJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RH
cmFwaEVuY29kZXJJbXBsPiBCYXNlOwogCi0gICAgZXhwbGljaXQgSW5qZWN0ZWRCdW5kbGVPYmpD
T2JqZWN0R3JhcGhFbmNvZGVySW1wbChpZCByb290KQorICAgIGV4cGxpY2l0IEluamVjdGVkQnVu
ZGxlT2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwoaWQgcm9vdCwgV2ViUHJvY2VzcyYgcHJvY2Vz
cykKKyAgICAgICAgOiBCYXNlKHJvb3QpCisgICAgICAgICwgbV9wcm9jZXNzKHByb2Nlc3MpCisg
ICAgeworICAgIH0KKworICAgIGV4cGxpY2l0IEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBo
RW5jb2RlckltcGwoY29uc3QgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhFbmNvZGVySW1w
bCYgZW5jb2RlciwgaWQgcm9vdCkKICAgICAgICAgOiBCYXNlKHJvb3QpCisgICAgICAgICwgbV9w
cm9jZXNzKGVuY29kZXIubV9wcm9jZXNzKQogICAgIHsKICAgICB9CiAKICAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAg
ICBXZWJLaXROU1R5cGUgdHlwZSA9IE51bGxUeXBlOwotICAgICAgICBpZiAoYmFzZUVuY29kZShl
bmNvZGVyLCB0eXBlKSkKKyAgICAgICAgaWYgKGJhc2VFbmNvZGUoZW5jb2RlciwgKnRoaXMsIHR5
cGUpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewpAQCAt
NDAxLDEzICs0MTgsMTYgQEAgcHVibGljOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKIAogY2xh
c3MgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNvZGVySW1wbCA6IHB1YmxpYyBPYmpD
T2JqZWN0R3JhcGhEZWNvZGVyPEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2Rlcklt
cGw+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIE9iakNPYmplY3RHcmFwaERlY29kZXI8SW5qZWN0
ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNvZGVySW1wbD4gQmFzZTsKIAotICAgIEluamVjdGVk
QnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2RlckltcGwoUmV0YWluUHRyPGlkPiYgcm9vdCwgV2Vi
UHJvY2VzcyogcHJvY2VzcykKKyAgICBJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29k
ZXJJbXBsKFJldGFpblB0cjxpZD4mIHJvb3QsIFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgICAg
IDogQmFzZShyb290KQogICAgICAgICAsIG1fcHJvY2Vzcyhwcm9jZXNzKQogICAgIHsKQEAgLTQ0
MCw3ICs0NjAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
Z2VJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBXZWJQ
YWdlKiB3ZWJQYWdlID0gY29kZXIubV9wcm9jZXNzLT53ZWJQYWdlKHBhZ2VJRCk7CisgICAgICAg
ICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gY29kZXIubV9wcm9jZXNzLndlYlBhZ2UocGFnZUlEKTsK
ICAgICAgICAgICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgICAgICAgICBjb2Rlci5tX3Jvb3Qg
PSBbTlNOdWxsIG51bGxdOwogICAgICAgICAgICAgZWxzZSAKQEAgLTQ2NCwyMyArNDg0LDI0IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2ViUHJvY2VzcyogbV9wcm9jZXNzOwor
ICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CiAKIAogLy8gQWRhcHRvcnMKIAotV2ViQ29u
dGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXI6OldlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNv
ZGVyKE9iakNPYmplY3RHcmFwaCogb2JqZWN0R3JhcGgpCitXZWJDb250ZXh0T2JqQ09iamVjdEdy
YXBoRW5jb2Rlcjo6V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXIoT2JqQ09iamVjdEdy
YXBoKiBvYmplY3RHcmFwaCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogICAgIDogbV9vYmpl
Y3RHcmFwaChvYmplY3RHcmFwaCkKKyAgICAsIG1fcHJvY2Vzcyhwcm9jZXNzKQogewogfQogCiB2
b2lkIFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNvZGVyOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgV2ViQ29udGV4
dE9iakNPYmplY3RHcmFwaEVuY29kZXJJbXBsKG1fb2JqZWN0R3JhcGgtPnJvb3RPYmplY3QoKSk7
CisgICAgZW5jb2RlciA8PCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwobV9v
YmplY3RHcmFwaC0+cm9vdE9iamVjdCgpLCBtX3Byb2Nlc3MpOwogfQogCi1XZWJDb250ZXh0T2Jq
Q09iamVjdEdyYXBoRGVjb2Rlcjo6V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXIoUmVm
UHRyPE9iakNPYmplY3RHcmFwaD4mIG9iamVjdEdyYXBoLCBXZWJQcm9jZXNzUHJveHkqIHByb2Nl
c3MpCitXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRGVjb2Rlcjo6V2ViQ29udGV4dE9iakNPYmpl
Y3RHcmFwaERlY29kZXIoUmVmUHRyPE9iakNPYmplY3RHcmFwaD4mIG9iamVjdEdyYXBoLCBXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MpCiAgICAgOiBtX29iamVjdEdyYXBoKG9iamVjdEdyYXBoKQog
ICAgICwgbV9wcm9jZXNzKHByb2Nlc3MpCiB7CkBAIC00OTcsMTcgKzUxOCwxOCBAQCBib29sIFdl
YkNvbnRleHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVyOjpkCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LUluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRW5jb2Rlcjo6SW5qZWN0ZWRCdW5kbGVPYmpD
T2JqZWN0R3JhcGhFbmNvZGVyKE9iakNPYmplY3RHcmFwaCogb2JqZWN0R3JhcGgpCitJbmplY3Rl
ZEJ1bmRsZU9iakNPYmplY3RHcmFwaEVuY29kZXI6OkluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdy
YXBoRW5jb2RlcihPYmpDT2JqZWN0R3JhcGgqIG9iamVjdEdyYXBoLCBXZWJQcm9jZXNzJiBwcm9j
ZXNzKQogICAgIDogbV9vYmplY3RHcmFwaChvYmplY3RHcmFwaCkKKyAgICAsIG1fcHJvY2Vzcyhw
cm9jZXNzKQogewogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRW5jb2Rl
cjo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAg
ICBlbmNvZGVyIDw8IEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwobV9v
YmplY3RHcmFwaC0+cm9vdE9iamVjdCgpKTsKKyAgICBlbmNvZGVyIDw8IEluamVjdGVkQnVuZGxl
T2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwobV9vYmplY3RHcmFwaC0+cm9vdE9iamVjdCgpLCBt
X3Byb2Nlc3MpOwogfQogCi1JbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29kZXI6Oklu
amVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2RlcihSZWZQdHI8T2JqQ09iamVjdEdyYXBo
PiYgb2JqZWN0R3JhcGgsIFdlYlByb2Nlc3MqIHByb2Nlc3MpCitJbmplY3RlZEJ1bmRsZU9iakNP
YmplY3RHcmFwaERlY29kZXI6OkluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2RlcihS
ZWZQdHI8T2JqQ09iamVjdEdyYXBoPiYgb2JqZWN0R3JhcGgsIFdlYlByb2Nlc3MmIHByb2Nlc3Mp
CiAgICAgOiBtX29iamVjdEdyYXBoKG9iamVjdEdyYXBoKQogICAgICwgbV9wcm9jZXNzKHByb2Nl
c3MpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAxNTk5MDEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUyLDEyICs1MiwxMiBAQCB2b2lkIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omlu
dmFsaWRhCiAKIHZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJv
ZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBBUEk6Ok9iamVjdCogbWVzc2Fn
ZUJvZHkpCiB7Ci0gICAgZW5jb2RlciA8PCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1l
c3NhZ2VCb2R5KTsKKyAgICBlbmNvZGVyIDw8IFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIo
bWVzc2FnZUJvZHksICptX3Byb2Nlc3MpOwogfQogCiBib29sIFdlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgV2ViQ29udGV4dFVz
ZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9keURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJvY2Vz
cyk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9keURlY29kZXIo
bWVzc2FnZUJvZHksICptX3Byb2Nlc3MpOwogICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShtZXNz
YWdlQm9keURlY29kZXIpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCShyZXZpc2lvbiAxNTk5MDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5NCw3ICs1OTQsNyBAQCBXZWJQcm9j
ZXNzUHJveHkmIFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0
PiBpbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEgPSBtX2luamVjdGVkQnVuZGxl
Q2xpZW50LmdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSh0aGlzKTsKICAg
ICBpZiAoIWluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkKICAgICAgICAgaW5q
ZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhID0gbV9pbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGE7Ci0gICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6SW5pdGlhbGl6ZVdlYlByb2Nlc3MocGFyYW1ldGVycywgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RW5jb2RlcihpbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEuZ2V0KCkpKSwgMCk7
CisgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6SW5pdGlhbGl6ZVdlYlBy
b2Nlc3MocGFyYW1ldGVycywgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihpbmplY3RlZEJ1
bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEuZ2V0KCksICpwcm9jZXNzKSksIDApOwogCiAgICAg
aWYgKFdlYlByZWZlcmVuY2VzOjphbnlQYWdlR3JvdXBzQXJlVXNpbmdQcml2YXRlQnJvd3Npbmco
KSkKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCAwKTsKQEAgLTYwOCw3ICs2MDgsNyBAQCBXZWJQcm9jZXNz
UHJveHkmIFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlCiAgICAgICAgICAgICBDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIgbWVzc2FnZURhdGE7CiAKICAgICAgICAgICAgIG1lc3NhZ2VEYXRhLmVuY29k
ZShtZXNzYWdlLmZpcnN0KTsKLSAgICAgICAgICAgIG1lc3NhZ2VEYXRhLmVuY29kZShXZWJDb250
ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2Uuc2Vjb25kLmdldCgpKSk7CisgICAgICAgICAg
ICBtZXNzYWdlRGF0YS5lbmNvZGUoV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdl
LnNlY29uZC5nZXQoKSwgKnByb2Nlc3MpKTsKICAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZShtZXNzYWdlRGF0YS5idWZmZXIoKSwgbWVzc2FnZURhdGEuYnVmZmVyU2l6ZSgp
KSksIDApOwogICAgICAgICB9CiAgICAgICAgIG1fbWVzc2FnZXNUb0luamVjdGVkQnVuZGxlUG9z
dGVkVG9FbXB0eUNvbnRleHQuY2xlYXIoKTsKQEAgLTc4NCwxNCArNzg0LDE0IEBAIHZvaWQgV2Vi
Q29udGV4dDo6cG9zdE1lc3NhZ2VUb0luamVjdGVkQnUKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIC8vIEZJWE1FOiBSZXR1cm4gZWFybHkgaWYgdGhlIG1lc3NhZ2UgYm9keSBjb250YWlu
cyBhbnkgcmVmZXJlbmNlcyB0byBXS1BhZ2VSZWZzL1dLRnJhbWVSZWZzIGV0Yy4gc2luY2UgdGhl
eSdyZSBsb2NhbCB0byBhIHByb2Nlc3MuCisgICAgZm9yIChhdXRvIHByb2Nlc3MgOiBtX3Byb2Nl
c3NlcykgeworICAgICAgICAvLyBGSVhNRTogUmV0dXJuIGVhcmx5IGlmIHRoZSBtZXNzYWdlIGJv
ZHkgY29udGFpbnMgYW55IHJlZmVyZW5jZXMgdG8gV0tQYWdlUmVmcy9XS0ZyYW1lUmVmcyBldGMu
IHNpbmNlIHRoZXkncmUgbG9jYWwgdG8gYSBwcm9jZXNzLgorICAgICAgICBDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIgbWVzc2FnZURhdGE7CisgICAgICAgIG1lc3NhZ2VEYXRhLmVuY29kZShtZXNz
YWdlTmFtZSk7CisgICAgICAgIG1lc3NhZ2VEYXRhLmVuY29kZShXZWJDb250ZXh0VXNlck1lc3Nh
Z2VFbmNvZGVyKG1lc3NhZ2VCb2R5LCAqcHJvY2Vzcy5nZXQoKSkpOwogCi0gICAgQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyIG1lc3NhZ2VEYXRhOwotICAgIG1lc3NhZ2VEYXRhLmVuY29kZShtZXNz
YWdlTmFtZSk7Ci0gICAgbWVzc2FnZURhdGEuZW5jb2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVu
Y29kZXIobWVzc2FnZUJvZHkpKTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcm9j
ZXNzZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fcHJvY2Vzc2VzW2ldLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpQb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UobWVzc2FnZURhdGEuYnVmZmVyKCksIG1lc3NhZ2VEYXRhLmJ1ZmZlclNpemUoKSkpLCAw
KTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6UG9zdEluamVj
dGVkQnVuZGxlTWVzc2FnZShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKG1lc3NhZ2VEYXRhLmJ1ZmZl
cigpLCBtZXNzYWdlRGF0YS5idWZmZXJTaXplKCkpKSwgMCk7CisgICAgfQogfQogCiAvLyBJbmpl
Y3RlZEJ1bmRsZSBjbGllbnQKQEAgLTk1NSw3ICs5NTUsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgICYmIGRlY29kZXIubWVzc2FnZU5hbWUoKSA9
PSBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZXM6OnBvc3RNZXNzYWdlTWVzc2FnZU5hbWUoKSkgewog
ICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CiAgICAgICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4g
bWVzc2FnZUJvZHk7Ci0gICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9u
KGNvbm5lY3Rpb24pKTsKKyAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNz
YWdlQm9keURlY29kZXIobWVzc2FnZUJvZHksICpXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0
aW9uKGNvbm5lY3Rpb24pKTsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlTmFt
ZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVz
c2FnZUJvZHlEZWNvZGVyKSkKQEAgLTk3OSw5ICs5NzksMTEgQEAgdm9pZCBXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQwogICAgICAgICAmJiBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkg
PT0gV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2VzOjpwb3N0U3luY2hyb25vdXNNZXNzYWdlTWVzc2Fn
ZU5hbWUoKSkgewogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGVuY29kZSBz
b21ldGhpbmcgaW4gdGhlIGNhc2UgdGhhdCB0aGUgYXJndW1lbnRzIGRvIG5vdCBkZWNvZGUgY29y
cmVjdGx5LgogCisgICAgICAgIFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA9IFdlYlByb2Nlc3NQ
cm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CisKICAgICAgICAgU3RyaW5nIG1lc3Nh
Z2VOYW1lOwogICAgICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgICAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdl
Qm9keSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7CisgICAg
ICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlEZWNvZGVyKG1lc3Nh
Z2VCb2R5LCAqcHJvY2Vzcyk7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZU5h
bWUpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1l
c3NhZ2VCb2R5RGVjb2RlcikpCkBAIC05ODksNyArOTkxLDcgQEAgdm9pZCBXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQwogCiAgICAgICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gcmV0
dXJuRGF0YTsKICAgICAgICAgZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCksIHJldHVybkRhdGEpOwotICAg
ICAgICByZXBseUVuY29kZXItPmVuY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHJl
dHVybkRhdGEuZ2V0KCkpKTsKKyAgICAgICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUoV2ViQ29udGV4
dFVzZXJNZXNzYWdlRW5jb2RlcihyZXR1cm5EYXRhLmdldCgpLCAqcHJvY2VzcykpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oCShyZXZpc2lvbiAxNTk5MDEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1LDE1ICs0NSwyMiBAQCBjbGFzcyBXZWJDb250ZXh0VXNlck1l
c3NhZ2VFbmNvZGVyIDogcHViCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBVc2VyTWVzc2FnZUVuY29k
ZXI8V2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlcj4gQmFzZTsKIAotICAgIGV4cGxpY2l0IFdl
YkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIoQVBJOjpPYmplY3QqIHJvb3QpIAorICAgIGV4cGxp
Y2l0IFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIoQVBJOjpPYmplY3QqIHJvb3QsIFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcykKICAgICAgICAgOiBCYXNlKHJvb3QpCisgICAgICAgICwgbV9w
cm9jZXNzKHByb2Nlc3MpCisgICAgeworICAgIH0KKworICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZUVuY29kZXIoY29uc3QgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlciYgdXNlck1lc3NhZ2VF
bmNvZGVyLCBBUEk6Ok9iamVjdCogcm9vdCkKKyAgICAgICAgOiBCYXNlKHJvb3QpCisgICAgICAg
ICwgbV9wcm9jZXNzKHVzZXJNZXNzYWdlRW5jb2Rlci5tX3Byb2Nlc3MpCiAgICAgewogICAgIH0K
IAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICB7CiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlIHR5cGUgPSBBUEk6Ok9iamVjdDo6
VHlwZTo6TnVsbDsKLSAgICAgICAgaWYgKGJhc2VFbmNvZGUoZW5jb2RlciwgdHlwZSkpCisgICAg
ICAgIGlmIChiYXNlRW5jb2RlKGVuY29kZXIsICp0aGlzLCB0eXBlKSkKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTc1LDcgKzgyLDcgQEAgcHVibGlj
OgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6T2Jq
Q09iamVjdEdyYXBoOiB7CiAgICAgICAgICAgICBPYmpDT2JqZWN0R3JhcGgqIG9iamVjdEdyYXBo
ID0gc3RhdGljX2Nhc3Q8T2JqQ09iamVjdEdyYXBoKj4obV9yb290KTsKLSAgICAgICAgICAgIGVu
Y29kZXIgPDwgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXIob2JqZWN0R3JhcGgpOwor
ICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2Rlcihv
YmplY3RHcmFwaCwgbV9wcm9jZXNzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAj
ZW5kaWYKQEAgLTg0LDYgKzkxLDkgQEAgcHVibGljOgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7
CiB9OwogCiAvLyBBZGRzCkBAIC05NSw3ICsxMDUsNyBAQCBjbGFzcyBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIDogcHViCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBVc2VyTWVzc2FnZURlY29k
ZXI8V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2Rlcj4gQmFzZTsKIAotICAgIFdlYkNvbnRleHRV
c2VyTWVzc2FnZURlY29kZXIoUmVmUHRyPEFQSTo6T2JqZWN0PiYgcm9vdCwgV2ViUHJvY2Vzc1By
b3h5KiBwcm9jZXNzKQorICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIoUmVmUHRyPEFQ
STo6T2JqZWN0PiYgcm9vdCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogICAgICAgICA6IEJh
c2Uocm9vdCkKICAgICAgICAgLCBtX3Byb2Nlc3MocHJvY2VzcykKICAgICB7CkBAIC0xMjEsMTQg
KzEzMSwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICB1aW50NjRfdCBwYWdlSUQ7CiAgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhZ2VJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0gY29kZXIubV9wcm9jZXNzLT53ZWJQ
YWdlKHBhZ2VJRCk7CisgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBjb2Rlci5tX3Byb2Nlc3Mu
d2ViUGFnZShwYWdlSUQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlRnJhbWU6IHsKICAgICAgICAgICAgIHVpbnQ2
NF90IGZyYW1lSUQ7CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9
IGNvZGVyLm1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgICAgICAgICBjb2Rlci5t
X3Jvb3QgPSBjb2Rlci5tX3Byb2Nlc3Mud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVQ
YWdlR3JvdXA6IHsKQEAgLTE1Niw3ICsxNjYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIFdlYlByb2Nlc3NQcm94eSogbV9wcm9jZXNzOworICAgIFdlYlByb2Nlc3NQcm94eSYg
bV9wcm9jZXNzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMTU5OTAzKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYwNiw3ICs2MDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFVSTChjb25zdCBTdHJpbmcm
CiAgICAgYm9vbCBjcmVhdGVkRXh0ZW5zaW9uID0gbWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVu
c2lvbkhhbmRsZShVUkwoVVJMKCksIHVybCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAg
IGlmIChjcmVhdGVkRXh0ZW5zaW9uKQogICAgICAgICBtX3Byb2Nlc3MtPndpbGxBY3F1aXJlVW5p
dmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJMKHVybCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YSkpLCBtX3BhZ2VJRCk7CisgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJMKHVybCwgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YSwgcHJvY2Vz
cygpKSksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+
c3RhcnQoKTsKIH0KIApAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
VVJMUmVxdWVzdChXZWJVUkwKICAgICBib29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRp
YWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKHVybFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgp
LnVybCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBpZiAoY3JlYXRlZEV4dGVuc2lv
bikKICAgICAgICAgbV9wcm9jZXNzLT53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJv
eEV4dGVuc2lvbigpOwotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9h
ZFVSTFJlcXVlc3QodXJsUmVxdWVzdC0+cmVzb3VyY2VSZXF1ZXN0KCksIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEpKSwgbV9wYWdl
SUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFVSTFJlcXVl
c3QodXJsUmVxdWVzdC0+cmVzb3VyY2VSZXF1ZXN0KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUs
IFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSkpLCBtX3Bh
Z2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9
CiAKQEAgLTY0OCw3ICs2NDgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3Qg
U3RyaW5nCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5k
bGU7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHJlc291cmNlRGlyZWN0b3J5
UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZE9ubHksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUp
OwogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTChyZXNvdXJjZURpcmVj
dG9yeVVSTCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJM
KGZpbGVVUkwsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTChmaWxlVVJMLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBXZWJD
b250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLCBwcm9jZXNzKCkpKSwgbV9wYWdlSUQp
OwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogfQogCkBA
IC02NTgsNyArNjU4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhKFdlYkRhdGEqIGRh
dAogICAgICAgICByZWF0dGFjaFRvV2ViUHJvY2VzcygpOwogCiAgICAgbV9wcm9jZXNzLT5hc3N1
bWVSZWFkQWNjZXNzVG9CYXNlVVJMKGJhc2VVUkwpOwotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6TG9hZERhdGEoZGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBNSU1FVHlwZSwg
ZW5jb2RpbmcsIGJhc2VVUkwsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEp
KSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9h
ZERhdGEoZGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkws
IFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSkpLCBtX3Bh
Z2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9
CiAKQEAgLTY2OCw3ICs2NjgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZEhUTUxTdHJpbmco
Y29uc3QgCiAgICAgICAgIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAKICAgICBtX3Byb2Nlc3Mt
PmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoYmFzZVVSTCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkSFRNTFN0cmluZyhodG1sU3RyaW5nLCBiYXNlVVJMLCBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhKSksIG1fcGFnZUlEKTsKKyAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRIVE1MU3RyaW5nKGh0bWxTdHJp
bmcsIGJhc2VVUkwsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEsIHByb2Nl
c3MoKSkpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkt
PnN0YXJ0KCk7CiB9CiAKQEAgLTY4Myw3ICs2ODMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9h
ZEFsdGVybmF0ZUhUTUxTdHJpCiAgICAgICAgIG1fbWFpbkZyYW1lLT5zZXRVbnJlYWNoYWJsZVVS
TCh1bnJlYWNoYWJsZVVSTCk7CiAKICAgICBtX3Byb2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jh
c2VVUkwoYmFzZVVSTCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpM
b2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhodG1sU3RyaW5nLCBiYXNlVVJMLCB1bnJlYWNoYWJsZVVS
TCwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YSkpLCBtX3BhZ2VJRCk7Cisg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZyhodG1sU3RyaW5nLCBiYXNlVVJMLCB1bnJlYWNoYWJsZVVSTCwgV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRW5jb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKSksIG1fcGFnZUlEKTsKICAgICBtX3By
b2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsKIH0KIApAQCAtNjkyLDcgKzY5
Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUGxhaW5UZXh0U3RyaW5nKGMKICAgICBpZiAo
IWlzVmFsaWQoKSkKICAgICAgICAgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKIAotICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFBsYWluVGV4dFN0cmluZyhzdHJpbmcs
IFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEpKSwgbV9wYWdlSUQpOworICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFBsYWluVGV4dFN0cmluZyhz
dHJpbmcsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSkp
LCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0
KCk7CiB9CiAKQEAgLTcwMSw3ICs3MDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFdlYkFy
Y2hpdmVEYXRhKGNvCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJlYXR0YWNoVG9XZWJQ
cm9jZXNzKCk7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRX
ZWJBcmNoaXZlRGF0YSh3ZWJBcmNoaXZlRGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBXZWJDb250ZXh0
VXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhKSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRXZWJBcmNoaXZlRGF0YSh3ZWJBcmNoaXZlRGF0
YS0+ZGF0YVJlZmVyZW5jZSgpLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRh
LCBwcm9jZXNzKCkpKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NU
aW1lcigpLT5zdGFydCgpOwogfQogCkBAIC04MjIsNyArODIyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3VsZEdvVG9CYWNrRm9yd2FyZAogdm9pZCBXZWJQYWdlUHJveHk6OndpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgJm1fcHJv
Y2Vzcy5nZXQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVj
b2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMDc1LDcgKzIwNzUsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvCiAgICAgbV9wYWdlTG9hZFN0YXRl
LmNsZWFyUGVuZGluZ0FQSVJlcXVlc3RVUkwoKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4g
dXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMDk1
LDcgKzIwOTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvCiB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNl
ckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1
c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTE0LDcg
KzIxMTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsICZtX3By
b2Nlc3MuZ2V0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURl
Y29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjE0NSw3ICsyMTQ1LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmNsZWFyTG9hZERlcGVuZGVudENhbAogdm9pZCBXZWJQYWdlUHJveHk6
OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBDZXJ0aWZpY2F0ZUlu
Zm8mIGNlcnRpZmljYXRlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7
CiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCAmbV9wcm9jZXNzLmdldCgpKTsK
KyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBwcm9jZXNzKCkpOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTIxODIsNyArMjE4Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsICZtX3By
b2Nlc3MuZ2V0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURl
Y29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjE5NSw3ICsyMTk1LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZAogdm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwot
ICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEs
ICZtX3Byb2Nlc3MuZ2V0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVz
c2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjIxMyw3ICsyMjEzLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZQogdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJv
Y2VzcygpKTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMjMzLDcgKzIyMzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
RmFpbExvYWRGb3JGcmFtZSh1CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIHVybCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKLSAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCAm
bV9wcm9jZXNzLmdldCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VEZWNvZGVyKHVzZXJEYXRhLCBwcm9jZXNzKCkpOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
bWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIyNTMsNyArMjI1Myw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2EKIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQ
dHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29k
ZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsICZtX3Byb2Nlc3MuZ2V0KCkpOworICAgIFdlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nlc3Mo
KSk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMjI3MSw3ICsyMjcxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2Vp
dmVUaXRsZUZvckZyYQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCAmbV9wcm9jZXNzLmdldCgpKTsKKyAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBw
cm9jZXNzKCkpOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTIyODQsNyArMjI4NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGaXJzdExheW91dEZvckZyYW0KIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwot
ICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEs
ICZtX3Byb2Nlc3MuZ2V0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVz
c2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjI5Nyw3ICsyMjk3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbQogdm9pZCBXZWJQYWdl
UHJveHk6OmRpZExheW91dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRh
OwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsICZtX3Byb2Nlc3MuZ2V0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIg
bWVzc2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjMwNyw3ICsyMzA3
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZExheW91dCh1aW50MzJfdCBsYQogdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmpl
Y3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURl
Y29kZXIodXNlckRhdGEsICZtX3Byb2Nlc3MuZ2V0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSk7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MjMyMCw3ICsyMzIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZUZyYW1lRnJvbUhp
ZQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsICZtX3Byb2Nlc3MuZ2V0KCkpOworICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHBy
b2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMjMzMyw3ICsyMzMzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZERpc3BsYXlJbnNlY3VyZUNvbgogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgJm1fcHJvY2Vz
cy5nZXQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgcHJvY2VzcygpKTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzQ2LDcgKzIzNDYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
RGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKLSAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCAmbV9w
cm9jZXNzLmdldCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHVzZXJEYXRhLCBwcm9jZXNzKCkpOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIzNzAsNyArMjM3MCw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2UKIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQz
Ml90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMsIGludDMy
X3Qgb3BhcXVlTW91c2VCdXR0b24sIHVpbnQ2NF90IG9yaWdpbmF0aW5nRnJhbWVJRCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2
NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQogewogICAgIFJlZlB0cjxB
UEk6Ok9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBt
ZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0yNDA5LDcgKzI0MDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50
MzJfdCBvcGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJl
ZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAgV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2Vz
cygpKTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0yNDI5LDcgKzI0MjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmV3V2luCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJv
Y2VzcygpKTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yNDY4LDcgKzI0NjgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uCiB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4g
dXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAt
MjQ4Myw3ICsyNDgzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9s
aQogdm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJp
bmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRh
OwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsICZtX3Byb2Nlc3MuZ2V0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIg
bWVzc2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjU3Niw3ICsyNTc2
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFN0YXR1c1RleHQoY29uc3QgUwogdm9pZCBXZWJQ
YWdlUHJveHk6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4g
dXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgJm1fcHJvY2Vzcy5nZXQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zMDQ5
LDcgKzMwNDksNyBAQCBOYXRpdmVXZWJNb3VzZUV2ZW50KiBXZWJQYWdlUHJveHk6OmN1cnJlCiAK
IHZvaWQgV2ViUGFnZVByb3h5Ojpwb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlTmFtZSwgQVBJOjpPYmplY3QqIG1lc3NhZ2VCb2R5KQogewotICAgIHByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpQb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKG1l
c3NhZ2VOYW1lLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSksIG1f
cGFnZUlEKTsKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UG9zdEluamVj
dGVkQnVuZGxlTWVzc2FnZShtZXNzYWdlTmFtZSwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rl
cihtZXNzYWdlQm9keSwgcHJvY2VzcygpKSksIG1fcGFnZUlEKTsKIH0KIAogI2lmIFBMQVRGT1JN
KEdUSykKQEAgLTMxMjAsNyArMzEyMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29udGV4
dE1lbnUoY29uc3QKIHZvaWQgV2ViUGFnZVByb3h5OjppbnRlcm5hbFNob3dDb250ZXh0TWVudShj
b25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRh
JiBoaXRUZXN0UmVzdWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+
JiBwcm9wb3NlZEl0ZW1zLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsICZtX3Byb2Nlc3MuZ2V0KCkpOworICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHBy
b2Nlc3MoKSk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJN
ZXNzYWdlQ29kZXJzLmgJKHJldmlzaW9uIDE1OTkwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCwxMiBAQCBjbGFzcyBJbmplY3RlZEJ1bmRsZVVzZXJN
ZXNzYWdlRW5jb2RlciA6CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBVc2VyTWVzc2FnZUVuY29kZXI8
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXI+IEJhc2U7CiAKLSAgICBJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihBUEk6Ok9iamVjdCogcm9vdCkgCisgICAgSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZUVuY29kZXIoQVBJOjpPYmplY3QqIHJvb3QpCisgICAgICAgIDogQmFz
ZShyb290KQorICAgIHsKKyAgICB9CisKKyAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2Rlcihjb25zdCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciYsIEFQSTo6T2JqZWN0
KiByb290KQogICAgICAgICA6IEJhc2Uocm9vdCkKICAgICB7CiAgICAgfQpAQCAtNTYsNyArNjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGUgdHlwZSA9IEFQ
STo6T2JqZWN0OjpUeXBlOjpOdWxsOwotICAgICAgICBpZiAoYmFzZUVuY29kZShlbmNvZGVyLCB0
eXBlKSkKKyAgICAgICAgaWYgKGJhc2VFbmNvZGUoZW5jb2RlciwgKnRoaXMsIHR5cGUpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewpAQCAtNzgsNyArODMs
NyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0
OjpUeXBlOjpPYmpDT2JqZWN0R3JhcGg6IHsKICAgICAgICAgICAgIE9iakNPYmplY3RHcmFwaCog
b2JqZWN0R3JhcGggPSBzdGF0aWNfY2FzdDxPYmpDT2JqZWN0R3JhcGgqPihtX3Jvb3QpOwotICAg
ICAgICAgICAgZW5jb2RlciA8PCBJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaEVuY29kZXIo
b2JqZWN0R3JhcGgpOworICAgICAgICAgICAgZW5jb2RlciA8PCBJbmplY3RlZEJ1bmRsZU9iakNP
YmplY3RHcmFwaEVuY29kZXIob2JqZWN0R3JhcGgsIFdlYlByb2Nlc3M6OnNoYXJlZCgpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTE0Miw3ICsxNDcsNyBAQCBw
dWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBl
OjpPYmpDT2JqZWN0R3JhcGg6IHsKICAgICAgICAgICAgIFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+
IG9iamVjdEdyYXBoOwotICAgICAgICAgICAgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhE
ZWNvZGVyIG9iamVjdEdyYXBoRGVjb2RlcihvYmplY3RHcmFwaCwgJldlYlByb2Nlc3M6OnNoYXJl
ZCgpKTsKKyAgICAgICAgICAgIEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2RlciBv
YmplY3RHcmFwaERlY29kZXIob2JqZWN0R3JhcGgsIFdlYlByb2Nlc3M6OnNoYXJlZCgpKTsKICAg
ICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUob2JqZWN0R3JhcGhEZWNvZGVyKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBvYmpl
Y3RHcmFwaC5nZXQoKTsK
</data>
<flag name="review"
          id="241455"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>