<?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>33698</bug_id>
          
          <creation_ts>2010-01-14 16:47:28 -0800</creation_ts>
          <short_desc>CrossThreadCopier needs to support ThreadSafeShared better.</short_desc>
          <delta_ts>2010-01-20 14:43:01 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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="David Levin">levin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>181004</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-14 16:47:28 -0800</bug_when>
    <thetext>CrossThreadCopier needs to support ThreadSafeShared better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181014</commentid>
    <comment_count>1</comment_count>
      <attachid>46622</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-14 17:11:07 -0800</bug_when>
    <thetext>Created attachment 46622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181554</commentid>
    <comment_count>2</comment_count>
      <attachid>46622</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-16 13:44:09 -0800</bug_when>
    <thetext>Comment on attachment 46622
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182924</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-20 14:43:01 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/53568</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46622</attachid>
            <date>2010-01-14 17:11:07 -0800</date>
            <delta_ts>2010-01-16 13:44:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33698-20100114171106.patch</filename>
            <type>text/plain</type>
            <size>28815</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAxMDY5YjJmLi5hMzk5OGRmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTAtMDEtMTQgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyb3NzVGhyZWFkQ29w
aWVyIG5lZWRzIHRvIHN1cHBvcnQgVGhyZWFkU2FmZVNoYXJlZCBiZXR0ZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzY5OAorCisgICAgICAgICog
d3RmL1R5cGVUcmFpdHMuY3BwOiBBZGRlZCB0ZXN0cyBmb3IgdGhlIG5ldyB0eXBlIHRyYWl0cy4K
KyAgICAgICAgKiB3dGYvVHlwZVRyYWl0cy5oOgorICAgICAgICAoV1RGOjpJc1N1YmNsYXNzKTog
RGV0ZXJtaW5lcyBpZiBhIGNsYXNzIGlzIGEgZGVyaXZlZCBmcm9tIGFub3RoZXIgY2xhc3MuCisg
ICAgICAgIChXVEY6OklzU3ViY2xhc3NPZlRlbXBsYXRlKTogRGV0ZXJtaW5lcyBpZiBhIGNsYXNz
IGlzIGEgZGVyaXZlZCBmcm9tIGEKKyAgICAgICAgdGVtcGxhdGUgY2xhc3MgKHdpdGggb25lIHBh
cmFtZXRlciB0aGF0IGlzIHVua25vd24pLgorICAgICAgICAoV1RGOjpSZW1vdmVUZW1wbGF0ZSk6
IFJldmVhbHMgdGhlIHR5cGUgZm9yIGEgdGVtcGxhdGUgcGFyYW1ldGVyLgorCiAyMDEwLTAxLTEz
ICBLZW50IEhhbnNlbiAgPGtlbnQuaGFuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJh
aXRzLmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmNwcAppbmRleCAzNmZjNmM2
Li45ZTUxYWQwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0cy5jcHAK
KysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1R5cGVUcmFpdHMuY3BwCkBAIC0xLDYgKzEsNiBAQAog
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTAxLDYgKzEwMSwyMCBA
QCBDT01QSUxFX0FTU0VSVCgoIUlzU2FtZVR5cGU8aW50LCBpbnQqPjo6dmFsdWUpLCBXVEZfSXNT
YW1lVHlwZV9pbnRfaW50X3BvaW50ZXJfZgogQ09NUElMRV9BU1NFUlQoKCFJc1NhbWVUeXBlPGJv
b2wsIGNvbnN0IGJvb2w+Ojp2YWx1ZSksIFdURl9Jc1NhbWVUeXBlX2NvbnN0X2NoYW5nZV9mYWxz
ZSk7CiBDT01QSUxFX0FTU0VSVCgoIUlzU2FtZVR5cGU8Ym9vbCwgdm9sYXRpbGUgYm9vbD46OnZh
bHVlKSwgV1RGX0lzU2FtZVR5cGVfdm9sYXRpbGVfY2hhbmdlX2ZhbHNlKTsKIAordGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CitjbGFzcyBUZXN0QmFzZUNsYXNzIHsKK307CisKK2NsYXNzIFRlc3REZXJp
dmVkQ2xhc3MgOiBwdWJsaWMgVGVzdEJhc2VDbGFzczxpbnQ+IHsKK307CisKK0NPTVBJTEVfQVNT
RVJUKChJc1N1YmNsYXNzPFRlc3REZXJpdmVkQ2xhc3MsIFRlc3RCYXNlQ2xhc3M8aW50PiA+Ojp2
YWx1ZSksIFdURl9UZXN0X0lzU3ViY2xhc3NfRGVyaXZlZF9Gcm9tX0Jhc2UpOworQ09NUElMRV9B
U1NFUlQoKCFJc1N1YmNsYXNzPFRlc3RCYXNlQ2xhc3M8aW50PiwgVGVzdERlcml2ZWRDbGFzcz46
OnZhbHVlKSwgV1RGX1Rlc3RfSXNTdWJjbGFzc19CYXNlX0Zyb21fRGVyaXZlZCk7CitDT01QSUxF
X0FTU0VSVCgoSXNTdWJjbGFzc09mVGVtcGxhdGU8VGVzdERlcml2ZWRDbGFzcywgVGVzdEJhc2VD
bGFzcz46OnZhbHVlKSwgV1RGX1Rlc3RfSXNTdWJjbGFzc09mVGVtcGxhdGVfQmFzZV9Gcm9tX0Rl
cml2ZWQpOworQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8UmVtb3ZlVGVtcGxhdGU8VGVzdEJh
c2VDbGFzczxpbnQ+LCBUZXN0QmFzZUNsYXNzPjo6VHlwZSwgaW50Pjo6dmFsdWUpLCBXVEZfVGVz
dF9SZW1vdmVUZW1wbGF0ZSk7CitDT01QSUxFX0FTU0VSVCgoSXNTYW1lVHlwZTxSZW1vdmVUZW1w
bGF0ZTxpbnQsIFRlc3RCYXNlQ2xhc3M+OjpUeXBlLCBpbnQ+Ojp2YWx1ZSksIFdURl9UZXN0X1Jl
bW92ZVRlbXBsYXRlX1dpdGhvdXRUZW1wbGF0ZSk7CisKKwogQ09NUElMRV9BU1NFUlQoKElzU2Ft
ZVR5cGU8Ym9vbCwgUmVtb3ZlQ29uc3Q8Y29uc3QgYm9vbD46OlR5cGU+Ojp2YWx1ZSksIFdURl90
ZXN0X1JlbW92ZUNvbnN0X2NvbnN0X2Jvb2wpOwogQ09NUElMRV9BU1NFUlQoKCFJc1NhbWVUeXBl
PGJvb2wsIFJlbW92ZUNvbnN0PHZvbGF0aWxlIGJvb2w+OjpUeXBlPjo6dmFsdWUpLCBXVEZfdGVz
dF9SZW1vdmVDb25zdF92b2xhdGlsZV9ib29sKTsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvd3RmL1R5cGVUcmFpdHMuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmgKaW5k
ZXggOWU3NWU3YS4uNjJkYmM0OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1R5cGVU
cmFpdHMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0cy5oCkBAIC0xLDYgKzEs
NiBAQAogIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTA0LDYgKzEw
NCw0MCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUg
PSB0cnVlOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
Y2xhc3MgSXNTdWJjbGFzcyB7CisgICAgICAgIHR5cGVkZWYgY2hhciBZZXNUeXBlOworICAgICAg
ICBzdHJ1Y3QgTm9UeXBlIHsKKyAgICAgICAgICAgIGNoYXIgcGFkZGluZ1s4XTsKKyAgICAgICAg
fTsKKworICAgICAgICBzdGF0aWMgWWVzVHlwZSBzdWJjbGFzc0NoZWNrKFUqKTsKKyAgICAgICAg
c3RhdGljIE5vVHlwZSBzdWJjbGFzc0NoZWNrKC4uLik7CisgICAgICAgIHN0YXRpYyBUKiB0Owor
ICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2Yoc3Vi
Y2xhc3NDaGVjayh0KSkgPT0gc2l6ZW9mKFllc1R5cGUpOworICAgIH07CisKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVCwgdGVtcGxhdGU8Y2xhc3MgVj4gY2xhc3MgVT4gY2xhc3MgSXNTdWJjbGFz
c09mVGVtcGxhdGUgeworICAgICAgICB0eXBlZGVmIGNoYXIgWWVzVHlwZTsKKyAgICAgICAgc3Ry
dWN0IE5vVHlwZSB7CisgICAgICAgICAgICBjaGFyIHBhZGRpbmdbOF07CisgICAgICAgIH07CisK
KyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVz4gc3RhdGljIFllc1R5cGUgc3ViY2xhc3NDaGVj
ayhVPFc+Kik7CisgICAgICAgIHN0YXRpYyBOb1R5cGUgc3ViY2xhc3NDaGVjayguLi4pOworICAg
ICAgICBzdGF0aWMgVCogdDsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBib29s
IHZhbHVlID0gc2l6ZW9mKHN1YmNsYXNzQ2hlY2sodCkpID09IHNpemVvZihZZXNUeXBlKTsKKyAg
ICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHRlbXBsYXRlIDxjbGFzcyBWPiBjbGFz
cyBPdXRlclRlbXBsYXRlPiBzdHJ1Y3QgUmVtb3ZlVGVtcGxhdGUgeworICAgICAgICB0eXBlZGVm
IFQgVHlwZTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHRlbXBsYXRlIDxj
bGFzcyBWPiBjbGFzcyBPdXRlclRlbXBsYXRlPiBzdHJ1Y3QgUmVtb3ZlVGVtcGxhdGU8T3V0ZXJU
ZW1wbGF0ZTxUPiwgT3V0ZXJUZW1wbGF0ZT4geworICAgICAgICB0eXBlZGVmIFQgVHlwZTsKKyAg
ICB9OworCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBSZW1vdmVDb25zdCB7CiAg
ICAgICAgIHR5cGVkZWYgVCBUeXBlOwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE3ODhhZDYuLjc2MDBhN2QgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDUgQEAKKzIwMTAtMDEtMTQgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyb3NzVGhyZWFk
Q29waWVyIG5lZWRzIHRvIHN1cHBvcnQgVGhyZWFkU2FmZVNoYXJlZCBiZXR0ZXIuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzY5OAorCisgICAgICAg
IE5vdyB0aGUgY29waWVyIGlzIGFibGUgdG8gaGFuZGxlIHR5cGVzIHRoYXQgZGVyaXZlIGZyb20g
VGhyZWFkU2FmZVNoYXJlZC4KKworICAgICAgICBObyBjaGFuZ2UgZnVuY3Rpb25hbGl0eSBzbyBu
byBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFk
QnJpZGdlOjpjYW5jZWwpOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdC4KKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmNsZWFyQ2xpZW50
V3JhcHBlcik6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVy
Lmg6CisgICAgICAgIENoYW5nZSB0byB1c2UgdGhlIGRlcml2ZWQgY2xhc3MgaW5zdGVhZCBvZiB0
aGUgVGhyZWFkU2FmZVNoYXJlZCB2ZXJzaW9uLgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhy
ZWFkQ29waWVyLmNwcDoKKyAgICAgICAgQWRkIHRoZSBuZXcgdGVtcGxhdGUgcGFyYW1ldGVyIHRo
cm91Z2hvdXQgdGhlIGNsYXNzZXMgYW5kIGFkanVzdCB0aGUgY2xhc3MgdGhhdCAKKyAgICAgICAg
aGFuZGxlcyBUaHJlYWRTYWZlU2hhcmVkIHRvIGFsbG93IGZvciBkZXJpdmVkIHR5cGVzLgorICAg
ICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6CisgICAgICAgIEFkZCBhbm90aGVy
IHRlbXBsYXRlIHBhcmFtZXRlciB0byBiZSBhYmxlIHRvIGRldGVjdCBjbGFzc2VzIHRoYXQgZGVy
aXZlIAorICAgICAgICBmcm9tIFRocmVhZFNhZmVTaGFyZWQuCisgICAgICAgICogd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIFJlbW92ZWQg
dW5uZWNlc3NhcnkgY2FzdHMgYW5kIGNoYW5nZWQgYSB0eXBlIHRvIHVzZSB0aGUgZGVyaXZlZCBj
bGFzcyBpbnN0ZWFkIG9mCisgICAgICAgIHRoZSBUaHJlYWRTYWZlU2hhcmVkIHZlcnNpb24uCisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6
UGVlcik6CisgICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkU2VuZCk6CisgICAgICAg
IChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkR2V0QnVmZmVyZWRBbW91bnQpOgorICAgICAgICAo
V2ViQ29yZTo6d29ya2VyQ29udGV4dERpZENvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6d29y
a2VyQ29udGV4dERpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OndvcmtlckNv
bnRleHREaWRDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6QnJpZGdlOjpzZXRXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5UaHJlYWRD
cmVhdGVXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6YnVmZmVyZWRBbW91bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRn
ZTo6Y2xlYXJDbGllbnRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNldE1ldGhvZE5vdENvbXBsZXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjp3
YWl0Rm9yTWV0aG9kQ29tcGxldGlvbik6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmNyZWF0ZSk6IENoYW5nZWQgYSB0eXBlIHRvIHVz
ZSB0aGUKKyAgICAgICAgZGVyaXZlZCBjbGFzcyBpbnN0ZWFkIG9mIHRoZSBUaHJlYWRTYWZlU2hh
cmVkIHZlcnNpb24uCisKIDIwMTAtMDEtMTQgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1ha2UgQ2FjaGU6OnJlcXVlc3RSZXNvdXJjZSByZXR1cm4gMCBpZiB0aGUg
cmVzb3VyY2UncyBsb2FkIGZhaWxzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJU
aHJlYWRhYmxlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2Fk
ZXIuY3BwCmluZGV4IGJkMzYyZjQuLjY4MzdjYTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRo
cmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBXb3JrZXJUaHJl
YWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjptYWluVGhyZWFkQ2FuY2VsKFNjcmlwdEV4
ZWN1dGlvbkMKIHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6
Y2FuY2VsKCkKIHsKICAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2Fs
bGJhY2tUYXNrKCZNYWluVGhyZWFkQnJpZGdlOjptYWluVGhyZWFkQ2FuY2VsLCB0aGlzKSk7Ci0g
ICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIqIGNsaWVudFdyYXBwZXIgPSBzdGF0aWNf
Y2FzdDxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcio+KG1fd29ya2VyQ2xpZW50V3JhcHBl
ci5nZXQoKSk7CisgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIqIGNsaWVudFdyYXBw
ZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIuZ2V0KCk7CiAgICAgaWYgKCFjbGllbnRXcmFwcGVy
LT5kb25lKCkpIHsKICAgICAgICAgLy8gSWYgdGhlIGNsaWVudCBoYXNuJ3QgcmVhY2hlZCBhIHRl
cm1pbmF0aW9uIHN0YXRlLCB0aGVuIHRyYW5zaXRpb24gaXQgYnkgc2VuZGluZyBhIGNhbmNlbGxh
dGlvbiBlcnJvci4KICAgICAgICAgLy8gTm90ZTogbm8gbW9yZSBjbGllbnQgY2FsbGJhY2tzIHdp
bGwgYmUgZG9uZSBhZnRlciB0aGlzIG1ldGhvZCAtLSB0aGUgY2xlYXJDbGllbnRXcmFwcGVyKCkg
Y2FsbCBlbnN1cmVzIHRoYXQuCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRh
YmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpjYW5jZWwoKQogCiB2b2lkIFdvcmtlclRocmVh
ZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmNsZWFyQ2xpZW50V3JhcHBlcigpCiB7Ci0g
ICAgc3RhdGljX2Nhc3Q8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIqPihtX3dvcmtlckNs
aWVudFdyYXBwZXIuZ2V0KCkpLT5jbGVhckNsaWVudCgpOworICAgIG1fd29ya2VyQ2xpZW50V3Jh
cHBlci0+Y2xlYXJDbGllbnQoKTsKIH0KIAogc3RhdGljIHZvaWQgd29ya2VyQ29udGV4dERpZFNl
bmREYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxUaHJlYWRhYmxl
TG9hZGVyQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciwgdW5zaWduZWQgbG9uZyBs
b25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaCBiL1dlYkNv
cmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaAppbmRleCA4NjA4M2Y1Li5hNjQ5MzI3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmgKKysr
IGIvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oCkBAIC0xMjQsNyArMTI0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgICAgICAvLyBUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50V3JhcHBlciBpcyB0byBiZSB1c2VkIG9uIHRoZSB3b3JrZXIgY29udGV4dCB0aHJl
YWQuCiAgICAgICAgICAgICAvLyBUaGUgcmVmIGNvdW50aW5nIGlzIGRvbmUgb24gZWl0aGVyIHRo
cmVhZC4KLSAgICAgICAgICAgIFJlZlB0cjxUaHJlYWRTYWZlU2hhcmVkPFRocmVhZGFibGVMb2Fk
ZXJDbGllbnRXcmFwcGVyPiA+IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKKyAgICAgICAgICAgIFJl
ZlB0cjxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gbV93b3JrZXJDbGllbnRXcmFwcGVy
OwogCiAgICAgICAgICAgICAvLyBNYXkgYmUgdXNlZCBvbiBlaXRoZXIgdGhyZWFkLgogICAgICAg
ICAgICAgV29ya2VyTG9hZGVyUHJveHkmIG1fbG9hZGVyUHJveHk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IGMxOTc5YzQuLjY4M2JhNTQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC00MCwyNyArNDAsMjcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1Dcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIEtVUkw+OjpUeXBlIENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgS1VSTD46OmNvcHkoY29uc3QgS1VSTCYgdXJsKQor
Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgS1VSTD46OlR5cGUgQ3Jvc3NUaHJl
YWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgS1VSTD46OmNvcHkoY29uc3QgS1VSTCYgdXJsKQog
ewogICAgIHJldHVybiB1cmwuY29weSgpOwogfQogCi1Dcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIFN0cmluZz46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBTdHJpbmc+Ojpj
b3B5KGNvbnN0IFN0cmluZyYgc3RyKQorQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxz
ZSwgU3RyaW5nPjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTdHJp
bmc+Ojpjb3B5KGNvbnN0IFN0cmluZyYgc3RyKQogewogICAgIHJldHVybiBzdHIuY3Jvc3NUaHJl
YWRTdHJpbmcoKTsKIH0KIAotQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBSZXNvdXJjZUVy
cm9yPjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFJlc291cmNlRXJyb3I+Ojpj
b3B5KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQorQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZh
bHNlLCBmYWxzZSwgUmVzb3VyY2VFcnJvcj46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZh
bHNlLCBmYWxzZSwgUmVzb3VyY2VFcnJvcj46OmNvcHkoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCiB7CiAgICAgcmV0dXJuIGVycm9yLmNvcHkoKTsKIH0KIAotQ3Jvc3NUaHJlYWRDb3BpZXJC
YXNlPGZhbHNlLCBSZXNvdXJjZVJlcXVlc3Q+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgUmVzb3VyY2VSZXF1ZXN0Pjo6Y29weShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCitDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlcXVlc3Q+
OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVxdWVz
dD46OmNvcHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHJldHVybiBy
ZXF1ZXN0LmNvcHlEYXRhKCk7CiB9CiAKLUNyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgUmVz
b3VyY2VSZXNwb25zZT46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBSZXNvdXJj
ZVJlc3BvbnNlPjo6Y29weShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK0Nyb3Nz
VGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+OjpUeXBlIENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+Ojpjb3B5
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIHJldHVybiByZXNwb25z
ZS5jb3B5RGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVh
ZENvcGllci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCmluZGV4IDU5
MWE1NDUuLjBhOWFlZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTU3LDI5ICs1NywzMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH0KICAgICB9Owog
Ci0gICAgdGVtcGxhdGU8Ym9vbCBpc0NvbnZlcnRpYmxlVG9JbnRlZ2VyLCB0eXBlbmFtZSBUPiBz
dHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlOworICAgIHRlbXBsYXRlPGJvb2wgaXNDb252ZXJ0
aWJsZVRvSW50ZWdlciwgYm9vbCBpc1RocmVhZHNhZmVTaGFyZWQsIHR5cGVuYW1lIFQ+IHN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2U7CiAKICAgICAvLyBJbnRlZ2VycyBnZXQgcGFzc2VkIHRo
cm91Z2ggd2l0aG91dCBhbnkgY2hhbmdlcy4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPHRydWUsIFQ+IDogcHVibGljIENyb3NzVGhyZWFkQ29w
aWVyUGFzc1Rocm91Z2g8VD4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9z
c1RocmVhZENvcGllckJhc2U8dHJ1ZSwgZmFsc2UsIFQ+IDogcHVibGljIENyb3NzVGhyZWFkQ29w
aWVyUGFzc1Rocm91Z2g8VD4gewogICAgIH07CiAKICAgICAvLyBQb2ludGVycyBnZXQgcGFzc2Vk
IHRocm91Z2ggd2l0aG91dCBhbnkgc2lnbmlmaWNhbnQgY2hhbmdlcy4KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBUKj4gOiBwdWJs
aWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxUKj4geworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUKj4gOiBw
dWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxUKj4gewogICAgIH07CiAKLSAgICB0
ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFRocmVhZGFibGVM
b2FkZXJPcHRpb25zPiA6IHB1YmxpYyBDcm9zc1RocmVhZENvcGllclBhc3NUaHJvdWdoPFRocmVh
ZGFibGVMb2FkZXJPcHRpb25zPiB7CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRD
b3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM+IDogcHVibGlj
IENyb3NzVGhyZWFkQ29waWVyUGFzc1Rocm91Z2g8VGhyZWFkYWJsZUxvYWRlck9wdGlvbnM+IHsK
ICAgICB9OwogCiAgICAgLy8gQ3VzdG9tIGNvcHkgbWV0aG9kcy4KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBSZWZQdHI8VGhyZWFk
U2FmZVNoYXJlZDxUPiA+ID4gewotICAgICAgICB0eXBlZGVmIFBhc3NSZWZQdHI8VD4gVHlwZTsK
LSAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBSZWZQdHI8VGhyZWFkU2FmZVNoYXJlZDxU
PiA+JiByZWZQdHIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFk
Q29waWVyQmFzZTxmYWxzZSwgdHJ1ZSwgVD4geworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFdU
Rjo6UmVtb3ZlVGVtcGxhdGU8VCwgUmVmUHRyPjo6VHlwZSBSZWZDb3VudGVkVHlwZTsKKyAgICAg
ICAgdHlwZWRlZiBQYXNzUmVmUHRyPFJlZkNvdW50ZWRUeXBlPiBUeXBlOworICAgICAgICBzdGF0
aWMgVHlwZSBjb3B5KGNvbnN0IFQmIHJlZlB0cikKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFBhc3NSZWZQdHI8VD4oc3RhdGljX2Nhc3Q8VCo+KHJlZlB0ci5nZXQoKSkpOworICAgICAg
ICAgICAgcmV0dXJuIHJlZlB0ci5nZXQoKTsKICAgICAgICAgfQogICAgIH07CiAKLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBQYXNz
T3duUHRyPFQ+ID4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBQYXNzT3duUHRyPFQ+ID4gewogICAgICAgICB0eXBl
ZGVmIFBhc3NPd25QdHI8VD4gVHlwZTsKICAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBQ
YXNzT3duUHRyPFQ+JiBvd25QdHIpCiAgICAgICAgIHsKQEAgLTg3LDcgKzg4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB9CiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIHN0ZDo6YXV0b19wdHI8VD4g
PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxmYWxzZSwgZmFsc2UsIHN0ZDo6YXV0b19wdHI8VD4gPiB7CiAgICAgICAgIHR5cGVkZWYgc3Rk
OjphdXRvX3B0cjxUPiBUeXBlOwogICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IHN0ZDo6
YXV0b19wdHI8VD4mIGF1dG9QdHIpCiAgICAgICAgIHsKQEAgLTk1LDMyICs5NiwzNCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBLVVJMPiB7CisgICAgdGVtcGxhdGU8PiBz
dHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgS1VSTD4gewogICAgICAg
ICB0eXBlZGVmIEtVUkwgVHlwZTsKICAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBLVVJM
Jik7CiAgICAgfTsKIAotICAgIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxmYWxzZSwgU3RyaW5nPiB7CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3Bp
ZXJCYXNlPGZhbHNlLCBmYWxzZSwgU3RyaW5nPiB7CiAgICAgICAgIHR5cGVkZWYgU3RyaW5nIFR5
cGU7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgU3RyaW5nJik7CiAgICAgfTsKIAot
ICAgIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgUmVzb3Vy
Y2VFcnJvcj4geworICAgIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgZmFsc2UsIFJlc291cmNlRXJyb3I+IHsKICAgICAgICAgdHlwZWRlZiBSZXNvdXJjZUVy
cm9yIFR5cGU7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VFcnJvciYp
OwogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8
ZmFsc2UsIFJlc291cmNlUmVxdWVzdD4geworICAgIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhy
ZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVxdWVzdD4gewogICAgICAgICB0
eXBlZGVmIHN0ZDo6YXV0b19wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBUeXBl
OwogICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAg
IH07CiAKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2Us
IFJlc291cmNlUmVzcG9uc2U+IHsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNlPiB7CiAgICAgICAgIHR5cGVk
ZWYgc3RkOjphdXRvX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBUeXBlOwog
ICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB9
OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyIDog
cHVibGljIENyb3NzVGhyZWFkQ29waWVyQmFzZTxXVEY6OklzQ29udmVydGlibGVUb0ludGVnZXI8
VD46OnZhbHVlLCBUPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhy
ZWFkQ29waWVyIDogcHVibGljIENyb3NzVGhyZWFkQ29waWVyQmFzZTxXVEY6OklzQ29udmVydGli
bGVUb0ludGVnZXI8VD46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpJc1N1
YmNsYXNzT2ZUZW1wbGF0ZTx0eXBlbmFtZSBXVEY6OlJlbW92ZVRlbXBsYXRlPFQsIFJlZlB0cj46
OlR5cGUsIFRocmVhZFNhZmVTaGFyZWQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFQ+IHsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGIvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCBkZTI5MDZlLi44ZGI4MWI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1dlYkNvcmUvd2Vic29ja2V0cy9X
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtOTQsNyArOTQsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKICAg
ICBtX2JyaWRnZS5jbGVhcigpOwogfQogCi1Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6UGVlcjo6UGVlcihSZWZQdHI8VGhyZWFkU2FmZVNoYXJlZDxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI+ID4gY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJveHkm
IGxvYWRlclByb3h5LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIHRhc2tNb2RlLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCitX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6UGVlcihSZWZQdHI8VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBjbGllbnRXcmFwcGVyLCBXb3JrZXJM
b2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgdGFza01vZGUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBw
cm90b2NvbCkKICAgICA6IG1fd29ya2VyQ2xpZW50V3JhcHBlcihjbGllbnRXcmFwcGVyKQogICAg
ICwgbV9sb2FkZXJQcm94eShsb2FkZXJQcm94eSkKICAgICAsIG1fbWFpbldlYlNvY2tldENoYW5u
ZWwoV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGNvbnRleHQsIHRoaXMsIHVybCwgcHJvdG9jb2wp
KQpAQCAtMTE4LDEwICsxMTgsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6UGVlcjo6Y29ubmVjdCgpCiAgICAgbV9tYWluV2ViU29ja2V0Q2hhbm5lbC0+Y29ubmVj
dCgpOwogfQogCi1zdGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0RGlkU2VuZChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkU2FmZVNoYXJlZDxUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+ID4gd29ya2VyQ2xpZW50V3JhcHBlciwgYm9vbCBz
ZW50KQorc3RhdGljIHZvaWQgd29ya2VyQ29udGV4dERpZFNlbmQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciwgYm9vbCBzZW50KQogewogICAgIEFTU0VSVF9VTlVT
RUQoY29udGV4dCwgY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwotICAgIHN0YXRpY19jYXN0
PFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcio+KHdvcmtlckNsaWVudFdy
YXBwZXIuZ2V0KCkpLT5zZXRTZW50KHNlbnQpOworICAgIHdvcmtlckNsaWVudFdyYXBwZXItPnNl
dFNlbnQoc2VudCk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OlBlZXI6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTMzLDEwICsxMzMsMTAgQEAg
dm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6c2VuZChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtl
ckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkU2VuZCwgbV93b3Jr
ZXJDbGllbnRXcmFwcGVyLCBzZW50KSwgbV90YXNrTW9kZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdv
cmtlckNvbnRleHREaWRHZXRCdWZmZXJlZEFtb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBSZWZQdHI8VGhyZWFkU2FmZVNoYXJlZDxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI+ID4gd29ya2VyQ2xpZW50V3JhcHBlciwgdW5zaWduZWQgbG9uZyBidWZm
ZXJlZEFtb3VudCkKK3N0YXRpYyB2b2lkIHdvcmtlckNvbnRleHREaWRHZXRCdWZmZXJlZEFtb3Vu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyLCB1bnNpZ25lZCBs
b25nIGJ1ZmZlcmVkQW1vdW50KQogewogICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4
dC0+aXNXb3JrZXJDb250ZXh0KCkpOwotICAgIHN0YXRpY19jYXN0PFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcio+KHdvcmtlckNsaWVudFdyYXBwZXIuZ2V0KCkpLT5zZXRC
dWZmZXJlZEFtb3VudChidWZmZXJlZEFtb3VudCk7CisgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+
c2V0QnVmZmVyZWRBbW91bnQoYnVmZmVyZWRBbW91bnQpOwogfQogCiB2b2lkIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpidWZmZXJlZEFtb3VudCgpCkBAIC0xNjYsMTAg
KzE2NiwxMCBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpk
aXNjb25uZWN0KCkKICAgICBtX21haW5XZWJTb2NrZXRDaGFubmVsID0gMDsKIH0KIAotc3RhdGlj
IHZvaWQgd29ya2VyQ29udGV4dERpZENvbm5lY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUmVmUHRyPFRocmVhZFNhZmVTaGFyZWQ8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyPiA+IHdvcmtlckNsaWVudFdyYXBwZXIpCitzdGF0aWMgdm9pZCB3b3JrZXJD
b250ZXh0RGlkQ29ubmVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFw
cGVyKQogewogICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC0+aXNXb3JrZXJDb250
ZXh0KCkpOwotICAgIHN0YXRpY19jYXN0PFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlcio+KHdvcmtlckNsaWVudFdyYXBwZXIuZ2V0KCkpLT5kaWRDb25uZWN0KCk7CisgICAg
d29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkQ29ubmVjdCgpOwogfQogCiB2b2lkIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRDb25uZWN0KCkKQEAgLTE3OCwxMCArMTc4
LDEwIEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENv
bm5lY3QoKQogICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0
KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4dERpZENvbm5lY3QsIG1fd29ya2VyQ2xp
ZW50V3JhcHBlciksIG1fdGFza01vZGUpOwogfQogCi1zdGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0
RGlkUmVjZWl2ZU1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRy
PFRocmVhZFNhZmVTaGFyZWQ8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiA+IHdvcmtlckNsaWVudFdyYXBwZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3N0YXRpYyB2
b2lkIHdvcmtlckNvbnRleHREaWRSZWNlaXZlTWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiB3b3JrZXJDbGllbnRXcmFwcGVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7Ci0gICAgc3Rh
dGljX2Nhc3Q8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKj4od29ya2Vy
Q2xpZW50V3JhcHBlci5nZXQoKSktPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOworICAgIHdv
cmtlckNsaWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOwogfQogCiB2b2lk
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xOTAsMTAgKzE5MCwxMCBAQCB2b2lkIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRSZWNlaXZlTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lcwogICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJD
b250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4dERpZFJlY2VpdmVNZXNzYWdl
LCBtX3dvcmtlckNsaWVudFdyYXBwZXIsIG1lc3NhZ2UpLCBtX3Rhc2tNb2RlKTsKIH0KIAotc3Rh
dGljIHZvaWQgd29ya2VyQ29udGV4dERpZENsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFJlZlB0cjxUaHJlYWRTYWZlU2hhcmVkPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcj4gPiB3b3JrZXJDbGllbnRXcmFwcGVyKQorc3RhdGljIHZvaWQgd29ya2Vy
Q29udGV4dERpZENsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBw
ZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc1dvcmtlckNvbnRl
eHQoKSk7Ci0gICAgc3RhdGljX2Nhc3Q8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyKj4od29ya2VyQ2xpZW50V3JhcHBlci5nZXQoKSktPmRpZENsb3NlKCk7CisgICAgd29y
a2VyQ2xpZW50V3JhcHBlci0+ZGlkQ2xvc2UoKTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UoKQpAQCAtMjAzLDE0ICsyMDMsMTQgQEAg
dm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UoKQog
ICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0ZUNh
bGxiYWNrVGFzaygmd29ya2VyQ29udGV4dERpZENsb3NlLCBtX3dvcmtlckNsaWVudFdyYXBwZXIp
LCBtX3Rhc2tNb2RlKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6QnJpZGdlOjpzZXRXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIEJyaWRnZSogdGhpc1B0ciwgUGVlciogcGVlciwgUmVmUHRyPFRocmVhZFNhZmVTaGFy
ZWQ8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiA+IHdvcmtlckNsaWVu
dFdyYXBwZXIpCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6
OnNldFdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQnJp
ZGdlKiB0aGlzUHRyLCBQZWVyKiBwZWVyLCBSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyKQogewogICAgIEFTU0VSVF9VTlVT
RUQoY29udGV4dCwgY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwogICAgIHRoaXNQdHItPm1f
cGVlciA9IHBlZXI7Ci0gICAgc3RhdGljX2Nhc3Q8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyKj4od29ya2VyQ2xpZW50V3JhcHBlci5nZXQoKSktPnNldFN5bmNNZXRob2RE
b25lKCk7CisgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+c2V0U3luY01ldGhvZERvbmUoKTsKIH0K
IAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjptYWluVGhy
ZWFkQ3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBCcmlkZ2UqIHRoaXNQdHIsIFJlZlB0cjxUaHJlYWRTYWZlU2hhcmVkPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gPiBjbGllbnRXcmFwcGVyLCBjb25zdCBTdHJpbmcm
IHRhc2tNb2RlLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCit2b2lk
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5UaHJlYWRDcmVh
dGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEJyaWRn
ZSogdGhpc1B0ciwgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cj4gY2xpZW50V3JhcHBlciwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc0RvY3VtZW50KCkpOwpAQCAt
MjcxLDcgKzI3MSw3IEBAIGJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJy
aWRnZTo6c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgc2V0TWV0aG9kTm90Q29tcGxl
dGVkKCk7CiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKGNyZWF0ZUNhbGxiYWNr
VGFzaygmV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRTZW5kLCBt
X3BlZXIsIG1lc3NhZ2UpKTsKICAgICB3YWl0Rm9yTWV0aG9kQ29tcGxldGlvbigpOwotICAgIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciogY2xpZW50V3JhcHBlciA9IHN0
YXRpY19jYXN0PFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcio+KG1fd29y
a2VyQ2xpZW50V3JhcHBlci5nZXQoKSk7CisgICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyKiBjbGllbnRXcmFwcGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLmdldCgp
OwogICAgIHJldHVybiBjbGllbnRXcmFwcGVyICYmIGNsaWVudFdyYXBwZXItPnNlbnQoKTsKIH0K
IApAQCAtMjkyLDcgKzI5Miw3IEBAIHVuc2lnbmVkIGxvbmcgV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OkJyaWRnZTo6YnVmZmVyZWRBbW91bnQoKQogICAgIHNldE1ldGhvZE5vdENv
bXBsZXRlZCgpOwogICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxs
YmFja1Rhc2soJldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkQnVm
ZmVyZWRBbW91bnQsIG1fcGVlcikpOwogICAgIHdhaXRGb3JNZXRob2RDb21wbGV0aW9uKCk7Ci0g
ICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiBjbGllbnRXcmFwcGVy
ID0gc3RhdGljX2Nhc3Q8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKj4o
bV93b3JrZXJDbGllbnRXcmFwcGVyLmdldCgpKTsKKyAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIqIGNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIu
Z2V0KCk7CiAgICAgaWYgKGNsaWVudFdyYXBwZXIpCiAgICAgICAgIHJldHVybiBjbGllbnRXcmFw
cGVyLT5idWZmZXJlZEFtb3VudCgpOwogICAgIHJldHVybiAwOwpAQCAtMzM1LDEzICszMzUsMTMg
QEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpkaXNjb25u
ZWN0KCkKIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpj
bGVhckNsaWVudFdyYXBwZXIoKQogewotICAgIHN0YXRpY19jYXN0PFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcio+KG1fd29ya2VyQ2xpZW50V3JhcHBlci5nZXQoKSktPmNs
ZWFyQ2xpZW50KCk7CisgICAgbV93b3JrZXJDbGllbnRXcmFwcGVyLT5jbGVhckNsaWVudCgpOwog
fQogCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNldE1l
dGhvZE5vdENvbXBsZXRlZCgpCiB7CiAgICAgQVNTRVJUKG1fd29ya2VyQ2xpZW50V3JhcHBlcik7
Ci0gICAgc3RhdGljX2Nhc3Q8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
Kj4obV93b3JrZXJDbGllbnRXcmFwcGVyLmdldCgpKS0+Y2xlYXJTeW5jTWV0aG9kRG9uZSgpOwor
ICAgIG1fd29ya2VyQ2xpZW50V3JhcHBlci0+Y2xlYXJTeW5jTWV0aG9kRG9uZSgpOwogfQogCiB2
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OndhaXRGb3JNZXRo
b2RDb21wbGV0aW9uKCkKQEAgLTM1MCwxMCArMzUwLDEwIEBAIHZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6d2FpdEZvck1ldGhvZENvbXBsZXRpb24oKQogICAg
ICAgICByZXR1cm47CiAgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IG1fd29ya2VyQ29udGV4
dC0+dGhyZWFkKCktPnJ1bkxvb3AoKTsKICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3Vs
dCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXIqIGNsaWVudFdyYXBwZXIgPSBzdGF0aWNfY2FzdDxUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqPihtX3dvcmtlckNsaWVudFdyYXBwZXIu
Z2V0KCkpOworICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciogY2xp
ZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlci5nZXQoKTsKICAgICB3aGlsZSAoY2xp
ZW50V3JhcHBlciAmJiAhY2xpZW50V3JhcHBlci0+c3luY01ldGhvZERvbmUoKSAmJiByZXN1bHQg
IT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgewogICAgICAgICByZXN1bHQgPSBydW5Mb29wLnJ1
bkluTW9kZShtX3dvcmtlckNvbnRleHQuZ2V0KCksIG1fdGFza01vZGUpOwotICAgICAgICBjbGll
bnRXcmFwcGVyID0gc3RhdGljX2Nhc3Q8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyKj4obV93b3JrZXJDbGllbnRXcmFwcGVyLmdldCgpKTsKKyAgICAgICAgY2xpZW50V3Jh
cHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlci5nZXQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
IGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgK
aW5kZXggMzViZWJjMy4uY2YyOTdlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRz
L1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNzcsNyArNzcsNyBA
QCBwcml2YXRlOgogICAgIC8vIGxpZmV0aW1lcy4KICAgICBjbGFzcyBQZWVyIDogcHVibGljIFdl
YlNvY2tldENoYW5uZWxDbGllbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBlZXIq
IGNyZWF0ZShSZWZQdHI8VGhyZWFkU2FmZVNoYXJlZDxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI+ID4gY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRl
clByb3h5LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRh
c2tNb2RlLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCisgICAgICAg
IHN0YXRpYyBQZWVyKiBjcmVhdGUoUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcj4gY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRhc2tNb2Rl
LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIHJldHVybiBuZXcgUGVlcihjbGllbnRXcmFwcGVyLCBsb2FkZXJQcm94eSwgY29u
dGV4dCwgdGFza01vZGUsIHVybCwgcHJvdG9jb2wpOwogICAgICAgICB9CkBAIC05NCw5ICs5NCw5
IEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZSgpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgUGVlcihSZWZQdHI8VGhyZWFkU2FmZVNoYXJlZDxUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+ID4sIFdvcmtlckxvYWRlclByb3h5JiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmIHByb3RvY29sKTsKKyAgICAgICAgUGVlcihSZWZQdHI8VGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiwgV29ya2VyTG9hZGVyUHJveHkmLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgY29uc3QgS1VSTCYsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wpOwogCi0gICAgICAgIFJlZlB0cjxUaHJlYWRTYWZlU2hhcmVk
PFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gPiBtX3dvcmtlckNsaWVu
dFdyYXBwZXI7CisgICAgICAgIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI+IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKICAgICAgICAgV29ya2VyTG9hZGVyUHJv
eHkmIG1fbG9hZGVyUHJveHk7CiAgICAgICAgIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbD4gbV9tYWluV2ViU29ja2V0Q2hhbm5lbDsKICAgICAgICAgU3RyaW5nIG1fdGFza01vZGU7
CkBAIC0xMTcsMTAgKzExNywxMCBAQCBwcml2YXRlOgogICAgICAgICB1c2luZyBSZWZDb3VudGVk
PEJyaWRnZT46OmRlcmVmOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIHZvaWQgc2V0
V2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQnJpZGdlKiB0aGlzUHRy
LCBQZWVyKiwgUmVmUHRyPFRocmVhZFNhZmVTaGFyZWQ8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyPiA+KTsKKyAgICAgICAgc3RhdGljIHZvaWQgc2V0V2ViU29ja2V0Q2hh
bm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQnJpZGdlKiB0aGlzUHRyLCBQZWVyKiwgUmVm
UHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4pOwogCiAgICAgICAg
IC8vIEV4ZWN1dGVkIG9uIHRoZSBtYWluIHRocmVhZCB0byBjcmVhdGUgYSBQZWVyIGZvciB0aGlz
IGJyaWRnZS4KLSAgICAgICAgc3RhdGljIHZvaWQgbWFpblRocmVhZENyZWF0ZVdlYlNvY2tldENo
YW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEJyaWRnZSogdGhpc1B0ciwgUmVmUHRyPFRo
cmVhZFNhZmVTaGFyZWQ8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiA+
LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90
b2NvbCk7CisgICAgICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRDcmVhdGVXZWJTb2NrZXRDaGFu
bmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBCcmlkZ2UqIHRoaXNQdHIsIFJlZlB0cjxUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+LCBjb25zdCBTdHJpbmcmIHRhc2tN
b2RlLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7CiAKICAgICAgICAgLy8g
RXhlY3V0ZWQgb24gdGhlIHdvcmtlciBjb250ZXh0J3MgdGhyZWFkLgogICAgICAgICB2b2lkIGNs
ZWFyQ2xpZW50V3JhcHBlcigpOwpAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgc2V0TWV0aG9kTm90Q29tcGxldGVkKCk7CiAgICAgICAgIHZvaWQgd2FpdEZvck1ldGhv
ZENvbXBsZXRpb24oKTsKIAotICAgICAgICBSZWZQdHI8VGhyZWFkU2FmZVNoYXJlZDxUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+ID4gbV93b3JrZXJDbGllbnRXcmFwcGVy
OworICAgICAgICBSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiBtX3dvcmtlckNsaWVudFdyYXBwZXI7CiAgICAgICAgIFJlZlB0cjxXb3JrZXJDb250ZXh0PiBt
X3dvcmtlckNvbnRleHQ7CiAgICAgICAgIFdvcmtlckxvYWRlclByb3h5JiBtX2xvYWRlclByb3h5
OwogICAgICAgICBTdHJpbmcgbV90YXNrTW9kZTsK
</data>
<flag name="review"
          id="28924"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>