<?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>97559</bug_id>
          
          <creation_ts>2012-09-25 05:25:09 -0700</creation_ts>
          <short_desc>MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data</short_desc>
          <delta_ts>2012-09-27 08:01:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>56459</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>727534</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-25 05:25:09 -0700</bug_when>
    <thetext>Instead of just returning the names, return a pair of name and value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727544</commentid>
    <comment_count>1</comment_count>
      <attachid>165590</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-25 05:36:29 -0700</bug_when>
    <thetext>Created attachment 165590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727547</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 05:38:26 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727555</commentid>
    <comment_count>3</comment_count>
      <attachid>165590</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-25 05:52:35 -0700</bug_when>
    <thetext>Comment on attachment 165590
Patch

Attachment 165590 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14033036</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727559</commentid>
    <comment_count>4</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-25 05:57:03 -0700</bug_when>
    <thetext>Hmm, can really see how my patch could have broken cr-android :/

out/Release/obj.target/Source/WebCore/WebCore.gyp/libwebcore_remaining.a(InspectorDebuggerAgent.o): in function .LTHUNK29:Source/WebCore/inspector/InspectorDebuggerAgent.cpp:633: error: undefined reference to &apos;WebCore::InspectorFrontend::Debugger::scriptParsed(WTF::String const&amp;, WTF::String const&amp;, int, int, int, int, bool const*, WTF::String const*)&apos;
collect2: ld returned 1 exit status</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727564</commentid>
    <comment_count>5</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-25 06:07:25 -0700</bug_when>
    <thetext>s/can/can&apos;t/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727721</commentid>
    <comment_count>6</comment_count>
      <attachid>165590</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 09:32:49 -0700</bug_when>
    <thetext>Comment on attachment 165590
Patch

Rejecting attachment 165590 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
WebCore/platform/mediastream/MediaConstraints.h
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp
Hunk #1 FAILED at 120.
1 out of 1 hunk FAILED -- saving rejects to file Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/14002812</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728298</commentid>
    <comment_count>7</comment_count>
      <attachid>165745</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-26 01:11:12 -0700</bug_when>
    <thetext>Created attachment 165745
Patch that belongs to another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729428</commentid>
    <comment_count>8</comment_count>
      <attachid>165977</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-27 04:51:08 -0700</bug_when>
    <thetext>Created attachment 165977
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729527</commentid>
    <comment_count>9</comment_count>
      <attachid>165977</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 07:56:38 -0700</bug_when>
    <thetext>Comment on attachment 165977
Patch for landing

Clearing flags on attachment: 165977

Committed r129764: &lt;http://trac.webkit.org/changeset/129764&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165590</attachid>
            <date>2012-09-25 05:36:29 -0700</date>
            <delta_ts>2012-09-26 08:45:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97559-20120925143548.patch</filename>
            <type>text/plain</type>
            <size>14181</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NTAyZjFjNGQzNDVi
NzViMjczMDVhNTA4ZTAyY2JiNzgwNjViMjU1Li5lNzJiYTI5YWVkYTlmZjdhZWFjMmU1ZWI2MDFi
ZGQ2ODcxNmFhYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wOS0yNSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEVuaGFuY2UgTWVkaWFDb25zdHJhaW50cyB0byBtYWtlIGl0IGVhc2llciB0byBn
ZXQgdGhlIGNvbnN0cmFpbnQgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc1NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZyB0byBtaW1pYyB0aGUgbmV3IE1lZGlhQ29uc3RyYWlu
dHMgYXBpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYk1lZGlhQ29uc3RyYWludHMu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFp
bnQ6OldlYk1lZGlhQ29uc3RyYWludCk6CisgICAgICAgIChXZWJNZWRpYUNvbnN0cmFpbnQpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYk1lZGlhQ29uc3RyYWludHMpOgorCiAyMDEy
LTA5LTI0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjIyNDMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk2ZGNlNGUz
YzczYTEzOWI1MWFhMDhhYTBlZGJmMDUzYzVjZjc4MS4uZmFkYTU4MWYyZmI4YjI3NWUwYTlhMTVj
NWM3OGYwNWZmZjBhOGFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTI1
ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlh
U3RyZWFtIEFQSTogRW5oYW5jZSBNZWRpYUNvbnN0cmFpbnRzIHRvIG1ha2UgaXQgZWFzaWVyIHRv
IGdldCB0aGUgY29uc3RyYWludCBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzU1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEluc3RlYWQgb2YganVzdCByZXR1cm5pbmcgdGhlIG5hbWVzLCByZXR1
cm4gYSBwYWlyIG9mIG5hbWUgYW5kIHZhbHVlLgorCisgICAgICAgIEV4aXN0aW5nIHRlc3RzIGNv
dmVyIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHNJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNJbXBs
Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNJbXBsOjpn
ZXRNYW5kYXRvcnlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzSW1wbDo6Z2V0T3B0aW9uYWxDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzSW1wbDo6Z2V0T3B0aW9uYWxDb25zdHJhaW50VmFsdWUpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaDoKKyAgICAgICAgKE1l
ZGlhQ29uc3RyYWludHNJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYk1lZGlhQ29uc3RyYWludHMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUNvbnN0
cmFpbnQ6OldlYk1lZGlhQ29uc3RyYWludCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzOjpnZXRNYW5kYXRvcnlDb25zdHJhaW50cyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHM6OmdldE9wdGlvbmFsQ29uc3RyYWlu
dHMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludDo6TWVkaWFDb25zdHJhaW50KToKKyAg
ICAgICAgKE1lZGlhQ29uc3RyYWludCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1l
ZGlhQ29uc3RyYWludHMpOgorCiAyMDEyLTA5LTI0ICBKb25hdGhhbiBMaXUgIDxuZXQxNDdAZ21h
aWwuY29tPgogCiAgICAgICAgIFVzZSB1bnNpZ25lZCBjaGFyIGZvciBiaXRmaWVsZCBpbnN0ZWFk
IG9mIHVuc2lnbmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYUNvbnN0cmFpbnRzLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYk1lZGlhQ29uc3RyYWludHMuaAppbmRleCBjNzc0MjQ4ODA5NjgwNTk2ZjRjODRlYTRlNTBl
NTY4MGJiY2RlOWJhLi4wMDJlOWM0MjQwZjk2YTUwYmUyMjZlNWFlZTZkNmRmY2MzMWIzZjNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhQ29uc3Ry
YWludHMuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhQ29u
c3RyYWludHMuaApAQCAtMzgsMTEgKzM4LDMxIEBACiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnQ7CiBjbGFzcyBNZWRp
YUNvbnN0cmFpbnRzOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RydWN0IFdlYk1lZGlh
Q29uc3RyYWludCB7CisgICAgV2ViTWVkaWFDb25zdHJhaW50KCkKKyAgICB7CisgICAgfQorCisg
ICAgV2ViTWVkaWFDb25zdHJhaW50KFdlYlN0cmluZyBuYW1lLCBXZWJTdHJpbmcgdmFsdWUpCisg
ICAgICAgIDogbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKKyAgICB7Cisg
ICAgfQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViTWVkaWFDb25zdHJhaW50
KGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludCYpOworI2VuZGlmCisKKyAgICBXZWJTdHJp
bmcgbV9uYW1lOworICAgIFdlYlN0cmluZyBtX3ZhbHVlOworfTsKKwogY2xhc3MgV2ViTWVkaWFD
b25zdHJhaW50cyB7CiBwdWJsaWM6CiAgICAgV2ViTWVkaWFDb25zdHJhaW50cygpIHsgfQpAQCAt
NjAsOCArODAsOCBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAg
ICAgYm9vbCBpc051bGwoKSBjb25zdDsKIAotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBnZXRNYW5k
YXRvcnlDb25zdHJhaW50TmFtZXMoV2ViVmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzKSBjb25zdDsK
LSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZ2V0T3B0aW9uYWxDb25zdHJhaW50TmFtZXMoV2ViVmVj
dG9yPFdlYlN0cmluZz4mIG5hbWVzKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZ2V0
TWFuZGF0b3J5Q29uc3RyYWludHMoV2ViVmVjdG9yPFdlYk1lZGlhQ29uc3RyYWludD4mKSBjb25z
dDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZ2V0T3B0aW9uYWxDb25zdHJhaW50cyhXZWJWZWN0
b3I8V2ViTWVkaWFDb25zdHJhaW50PiYpIGNvbnN0OwogCiAgICAgV0VCS0lUX0VYUE9SVCBib29s
IGdldE1hbmRhdG9yeUNvbnN0cmFpbnRWYWx1ZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYlN0
cmluZyYgdmFsdWUpIGNvbnN0OwogICAgIFdFQktJVF9FWFBPUlQgYm9vbCBnZXRPcHRpb25hbENv
bnN0cmFpbnRWYWx1ZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYlN0cmluZyYgdmFsdWUpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YUNvbnN0cmFpbnRzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAppbmRleCAxMzM2ZjgyOGEwYjdiNDY4NzE3Y2RiNDkx
YzgwZmE5NjQ0Y2QyZWU5Li4xMDEzY2EwMWU1NWYzN2E0NDRhNjZiNzNiZDc0MTY1YzljYmM5YTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHNJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhQ29uc3RyYWludHNJbXBsLmNwcApAQCAtOTcsOCArOTcsNyBAQCBib29sIE1lZGlhQ29u
c3RyYWludHNJbXBsOjppbml0aWFsaXplKGNvbnN0IERpY3Rpb25hcnkmIGNvbnN0cmFpbnRzKQog
ICAgICAgICAgICAgb2sgPSBjb25zdHJhaW50LmdldChrZXksIHZhbHVlKTsKICAgICAgICAgICAg
IGlmICghb2spCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9v
cHRpb25hbENvbnN0cmFpbnROYW1lcy5hcHBlbmQoa2V5KTsKLSAgICAgICAgICAgIG1fb3B0aW9u
YWxDb25zdHJhaW50VmFsdWVzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgICAgICBtX29wdGlvbmFs
Q29uc3RyYWludHMuYXBwZW5kKE1lZGlhQ29uc3RyYWludChrZXksIHZhbHVlKSk7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTEwOSwxOCArMTA4LDE4IEBAIE1lZGlhQ29uc3RyYWludHNJbXBsOjp+
TWVkaWFDb25zdHJhaW50c0ltcGwoKQogewogfQogCi12b2lkIE1lZGlhQ29uc3RyYWludHNJbXBs
OjpnZXRNYW5kYXRvcnlDb25zdHJhaW50TmFtZXMoVmVjdG9yPFN0cmluZz4mIG5hbWVzKSBjb25z
dAordm9pZCBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Z2V0TWFuZGF0b3J5Q29uc3RyYWludHMoVmVj
dG9yPE1lZGlhQ29uc3RyYWludD4mIGNvbnN0cmFpbnRzKSBjb25zdAogewotICAgIG5hbWVzLmNs
ZWFyKCk7CisgICAgY29uc3RyYWludHMuY2xlYXIoKTsKICAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPjo6Y29uc3RfaXRlcmF0b3IgaSA9IG1fbWFuZGF0b3J5Q29uc3RyYWludHMuYmVnaW4oKTsK
ICAgICBmb3IgKDsgaSAhPSBtX21hbmRhdG9yeUNvbnN0cmFpbnRzLmVuZCgpOyArK2kpCi0gICAg
ICAgIG5hbWVzLmFwcGVuZChpLT5maXJzdCk7CisgICAgICAgIGNvbnN0cmFpbnRzLmFwcGVuZChN
ZWRpYUNvbnN0cmFpbnQoaS0+Zmlyc3QsIGktPnNlY29uZCkpOwogfQogCi12b2lkIE1lZGlhQ29u
c3RyYWludHNJbXBsOjpnZXRPcHRpb25hbENvbnN0cmFpbnROYW1lcyhWZWN0b3I8U3RyaW5nPiYg
bmFtZXMpIGNvbnN0Cit2b2lkIE1lZGlhQ29uc3RyYWludHNJbXBsOjpnZXRPcHRpb25hbENvbnN0
cmFpbnRzKFZlY3RvcjxNZWRpYUNvbnN0cmFpbnQ+JiBjb25zdHJhaW50cykgY29uc3QKIHsKLSAg
ICBuYW1lcy5jbGVhcigpOwotICAgIG5hbWVzID0gbV9vcHRpb25hbENvbnN0cmFpbnROYW1lczsK
KyAgICBjb25zdHJhaW50cy5jbGVhcigpOworICAgIGNvbnN0cmFpbnRzLmFwcGVuZChtX29wdGlv
bmFsQ29uc3RyYWludHMpOwogfQogCiBib29sIE1lZGlhQ29uc3RyYWludHNJbXBsOjpnZXRNYW5k
YXRvcnlDb25zdHJhaW50VmFsdWUoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJpbmcmIHZhbHVlKSBj
b25zdApAQCAtMTM1LDEyICsxMzQsMTUgQEAgYm9vbCBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Z2V0
TWFuZGF0b3J5Q29uc3RyYWludFZhbHVlKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW4KIAogYm9v
bCBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Z2V0T3B0aW9uYWxDb25zdHJhaW50VmFsdWUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdAogewotICAgIHNpemVfdCBpbmRleCA9
IG1fb3B0aW9uYWxDb25zdHJhaW50TmFtZXMuZmluZChuYW1lKTsKLSAgICBpZiAoaW5kZXggPT0g
bm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBWZWN0b3I8TWVkaWFDb25zdHJh
aW50Pjo6Y29uc3RfaXRlcmF0b3IgaSA9IG1fb3B0aW9uYWxDb25zdHJhaW50cy5iZWdpbigpOwor
ICAgIGZvciAoOyBpICE9IG1fb3B0aW9uYWxDb25zdHJhaW50cy5lbmQoKTsgKytpKSB7CisgICAg
ICAgIGlmIChpLT5tX25hbWUgPT0gbmFtZSkgeworICAgICAgICAgICAgdmFsdWUgPSBpLT5tX3Zh
bHVlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICB2
YWx1ZSA9IG1fb3B0aW9uYWxDb25zdHJhaW50VmFsdWVzW2luZGV4XTsKLSAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50
c0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJh
aW50c0ltcGwuaAppbmRleCA0YTczMWM5MDQ5MWMwYTJjZDZmYjZkZTExOWNkNmU5NWYxZDkyZWJm
Li5lYjE1Y2NlMzI1MmQwMTkyNWRiOTY3NTIxOGIzMjRiN2VhZmIyYjdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRz
SW1wbC5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlKGNvbnN0IERpY3Rpb25hcnkmLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdmlydHVhbCB+TWVkaWFDb25zdHJhaW50c0ltcGwoKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBnZXRNYW5kYXRvcnlDb25zdHJhaW50TmFtZXMoVmVjdG9yPFN0cmluZz4mIG5hbWVz
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3B0aW9uYWxDb25zdHJhaW50
TmFtZXMoVmVjdG9yPFN0cmluZz4mIG5hbWVzKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0TWFuZGF0b3J5Q29uc3RyYWludHMoVmVjdG9yPE1lZGlhQ29uc3RyYWludD4mKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3B0aW9uYWxDb25zdHJhaW50cyhW
ZWN0b3I8TWVkaWFDb25zdHJhaW50PiYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBi
b29sIGdldE1hbmRhdG9yeUNvbnN0cmFpbnRWYWx1ZShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmlu
ZyYgdmFsdWUpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPcHRpb25hbENv
bnN0cmFpbnRWYWx1ZShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUpIGNvbnN0IE9W
RVJSSURFOwpAQCAtNTcsOCArNTcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaW5pdGlhbGl6ZShj
b25zdCBEaWN0aW9uYXJ5Jik7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX21hbmRh
dG9yeUNvbnN0cmFpbnRzOwotICAgIFZlY3RvcjxTdHJpbmc+IG1fb3B0aW9uYWxDb25zdHJhaW50
TmFtZXM7Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9vcHRpb25hbENvbnN0cmFpbnRWYWx1ZXM7Cisg
ICAgVmVjdG9yPE1lZGlhQ29uc3RyYWludD4gbV9vcHRpb25hbENvbnN0cmFpbnRzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFDb25zdHJhaW50cy5jcHAKaW5k
ZXggMDVmYTNmNjY2ZDAxNjMxY2M5MmE5MjdkNTdjMDM2YTE4OGU1NTkwZi4uYTVmNzBiNjdhNzVk
MmExZWIzNDEzOWJkZDMxYzZkZmMyYWY4ODhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhQ29uc3RyYWlu
dHMuY3BwCkBAIC00MCw2ICs0MCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK1dlYk1lZGlhQ29uc3RyYWludDo6V2ViTWVkaWFDb25zdHJhaW50
KGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludCYgb3RoZXIpCisgICAgOiBtX25hbWUob3Ro
ZXIubV9uYW1lKQorICAgICwgbV92YWx1ZShvdGhlci5tX3ZhbHVlKQoreworfQorCiBXZWJNZWRp
YUNvbnN0cmFpbnRzOjpXZWJNZWRpYUNvbnN0cmFpbnRzKGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQogICAgIDogbV9wcml2YXRlKGNvbnN0cmFpbnRzKQog
ewpAQCAtNjAsMjIgKzY2LDIyIEBAIGJvb2wgV2ViTWVkaWFDb25zdHJhaW50czo6aXNOdWxsKCkg
Y29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOwogfQogCi12b2lkIFdlYk1lZGlh
Q29uc3RyYWludHM6OmdldE1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcyhXZWJWZWN0b3I8V2ViU3Ry
aW5nPiYgbmFtZXMpIGNvbnN0Cit2b2lkIFdlYk1lZGlhQ29uc3RyYWludHM6OmdldE1hbmRhdG9y
eUNvbnN0cmFpbnRzKFdlYlZlY3RvcjxXZWJNZWRpYUNvbnN0cmFpbnQ+JiBjb25zdHJhaW50cykg
Y29uc3QKIHsKICAgICBBU1NFUlQoIWlzTnVsbCgpKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBjb25z
dHJhaW50TmFtZXM7Ci0gICAgbV9wcml2YXRlLT5nZXRNYW5kYXRvcnlDb25zdHJhaW50TmFtZXMo
Y29uc3RyYWludE5hbWVzKTsKLSAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiByZXN1bHQoY29uc3Ry
YWludE5hbWVzKTsKLSAgICBuYW1lcy5zd2FwKHJlc3VsdCk7CisgICAgVmVjdG9yPE1lZGlhQ29u
c3RyYWludD4gbWFuZGF0b3J5Q29uc3RyYWludHM7CisgICAgbV9wcml2YXRlLT5nZXRNYW5kYXRv
cnlDb25zdHJhaW50cyhtYW5kYXRvcnlDb25zdHJhaW50cyk7CisgICAgV2ViVmVjdG9yPFdlYk1l
ZGlhQ29uc3RyYWludD4gcmVzdWx0KG1hbmRhdG9yeUNvbnN0cmFpbnRzKTsKKyAgICBjb25zdHJh
aW50cy5zd2FwKHJlc3VsdCk7CiB9CiAKLXZvaWQgV2ViTWVkaWFDb25zdHJhaW50czo6Z2V0T3B0
aW9uYWxDb25zdHJhaW50TmFtZXMoV2ViVmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzKSBjb25zdAor
dm9pZCBXZWJNZWRpYUNvbnN0cmFpbnRzOjpnZXRPcHRpb25hbENvbnN0cmFpbnRzKFdlYlZlY3Rv
cjxXZWJNZWRpYUNvbnN0cmFpbnQ+JiBjb25zdHJhaW50cykgY29uc3QKIHsKICAgICBBU1NFUlQo
IWlzTnVsbCgpKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBjb25zdHJhaW50TmFtZXM7Ci0gICAgbV9w
cml2YXRlLT5nZXRPcHRpb25hbENvbnN0cmFpbnROYW1lcyhjb25zdHJhaW50TmFtZXMpOwotICAg
IFdlYlZlY3RvcjxXZWJTdHJpbmc+IHJlc3VsdChjb25zdHJhaW50TmFtZXMpOwotICAgIG5hbWVz
LnN3YXAocmVzdWx0KTsKKyAgICBWZWN0b3I8TWVkaWFDb25zdHJhaW50PiBvcHRpb25hbENvbnN0
cmFpbnRzOworICAgIG1fcHJpdmF0ZS0+Z2V0T3B0aW9uYWxDb25zdHJhaW50cyhvcHRpb25hbENv
bnN0cmFpbnRzKTsKKyAgICBXZWJWZWN0b3I8V2ViTWVkaWFDb25zdHJhaW50PiByZXN1bHQob3B0
aW9uYWxDb25zdHJhaW50cyk7CisgICAgY29uc3RyYWludHMuc3dhcChyZXN1bHQpOwogfQogCiBi
b29sIFdlYk1lZGlhQ29uc3RyYWludHM6OmdldE1hbmRhdG9yeUNvbnN0cmFpbnRWYWx1ZShjb25z
dCBXZWJTdHJpbmcmIG5hbWUsIFdlYlN0cmluZyYgdmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKaW5k
ZXggZjI4NWM1NzliOTYzN2YwMjI2ZmJkY2YyZTk0NmU2NDQ1MWM1YzZiNS4uNTE0MWMyMjhkMGQ0
OGY3OGRiNmU2NTdkOTg1ZTA2MzY5ZWJhZTY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAtMzgsMTIgKzM4
LDIzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IE1lZGlhQ29uc3RyYWludCB7
CisgICAgTWVkaWFDb25zdHJhaW50KFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpCisgICAgICAg
IDogbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgfQor
CisgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBTdHJpbmcgbV92YWx1ZTsKK307CisKIGNsYXNzIE1l
ZGlhQ29uc3RyYWludHMgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUNvbnN0cmFpbnRzPiB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+TWVkaWFDb25zdHJhaW50cygpIHsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGdldE1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcyhWZWN0b3I8U3RyaW5nPiYgbmFtZXMp
IGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3B0aW9uYWxDb25zdHJhaW50TmFtZXMo
VmVjdG9yPFN0cmluZz4mIG5hbWVzKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldE1h
bmRhdG9yeUNvbnN0cmFpbnRzKFZlY3RvcjxNZWRpYUNvbnN0cmFpbnQ+JikgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRPcHRpb25hbENvbnN0cmFpbnRzKFZlY3RvcjxNZWRpYUNvbnN0
cmFpbnQ+JikgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGdldE1hbmRhdG9yeUNvbnN0
cmFpbnRWYWx1ZShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3B0aW9uYWxDb25zdHJhaW50VmFsdWUoY29uc3QgU3RyaW5n
JiBuYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2JmYjA4MDU0M2MyZWI2MTM1MjI1MjhmNWFm
ZjgwZjYwYzI0MDRhYy4uNDkwNjk0ZTFmNjBiN2YzYzhiMzExOTgzYzU2ZGNkMDcwZmI0YTdiZiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTA5LTI1ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUu
Y29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogRW5oYW5jZSBNZWRpYUNvbnN0cmFpbnRz
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGdldCB0aGUgY29uc3RyYWludCBkYXRhCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzU1OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nIGZvciB0aGUg
bmV3IFdlYk1lZGlhQ29uc3RyYWludHMgYXBpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjppbml0aWFsaXplKToKKwogMjAxMi0wOS0y
NCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+CiAKICAgICAgICAg
W1F0XSBGaXggYnVpbGQgd2l0aCBsYXRlc3QgUXQgNQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcAppbmRleCBiMmQ1MGZlYjNjMjIzMTJhOTczNDRmZGI5M2M1NGY3YTM3NmM0N2I4Li4z
MWM3ZGIxMTUzYzg2YjkyMDBkMmViNmM1NDhlMDk1NGNjYWNmOWRlIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtMTIwLDI4ICsxMjAsMjIgQEAgc3RhdGljIGJvb2wgaXNW
YWxpZENvbnN0cmFpbnQoY29uc3QgV2ViU3RyaW5nJiBjb25zdHJhaW50KQogCiBib29sIE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUlRDQ29uZmln
dXJhdGlvbiYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQogewotICAg
IFdlYlZlY3RvcjxXZWJTdHJpbmc+IG1hbmRhdG9yeUNvbnN0cmFpbnROYW1lczsKLSAgICBjb25z
dHJhaW50cy5nZXRNYW5kYXRvcnlDb25zdHJhaW50TmFtZXMobWFuZGF0b3J5Q29uc3RyYWludE5h
bWVzKTsKLSAgICBpZiAobWFuZGF0b3J5Q29uc3RyYWludE5hbWVzLnNpemUoKSkgewotICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcy5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgaWYgKCFpc1N1cHBvcnRlZENvbnN0cmFpbnQobWFuZGF0b3J5
Q29uc3RyYWludE5hbWVzW2ldKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXZWJTdHJpbmcgdmFsdWU7Ci0gICAgICAgICAgICBjb25zdHJhaW50cy5nZXRNYW5k
YXRvcnlDb25zdHJhaW50VmFsdWUobWFuZGF0b3J5Q29uc3RyYWludE5hbWVzW2ldLCB2YWx1ZSk7
Ci0gICAgICAgICAgICBpZiAodmFsdWUgIT0gIjEiKQorICAgIFdlYlZlY3RvcjxXZWJNZWRpYUNv
bnN0cmFpbnQ+IG1hbmRhdG9yeUNvbnN0cmFpbnRzOworICAgIGNvbnN0cmFpbnRzLmdldE1hbmRh
dG9yeUNvbnN0cmFpbnRzKG1hbmRhdG9yeUNvbnN0cmFpbnRzKTsKKyAgICBpZiAobWFuZGF0b3J5
Q29uc3RyYWludHMuc2l6ZSgpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWFu
ZGF0b3J5Q29uc3RyYWludHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGNvbnN0IFdlYk1l
ZGlhQ29uc3RyYWludCYgY3VyciA9IG1hbmRhdG9yeUNvbnN0cmFpbnRzW2ldOworICAgICAgICAg
ICAgaWYgKCFpc1N1cHBvcnRlZENvbnN0cmFpbnQoY3Vyci5tX25hbWUpIHx8IGN1cnIubV92YWx1
ZSAhPSAiMSIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAg
fQogCi0gICAgV2ViVmVjdG9yPFdlYlN0cmluZz4gb3B0aW9uYWxDb25zdHJhaW50TmFtZXM7Ci0g
ICAgY29uc3RyYWludHMuZ2V0T3B0aW9uYWxDb25zdHJhaW50TmFtZXMob3B0aW9uYWxDb25zdHJh
aW50TmFtZXMpOwotICAgIGlmIChvcHRpb25hbENvbnN0cmFpbnROYW1lcy5zaXplKCkpIHsKLSAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25hbENvbnN0cmFpbnROYW1lcy5zaXpl
KCk7ICsraSkgewotICAgICAgICAgICAgaWYgKCFpc1ZhbGlkQ29uc3RyYWludChvcHRpb25hbENv
bnN0cmFpbnROYW1lc1tpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgV2ViU3RyaW5nIHZhbHVlOwotICAgICAgICAgICAgY29uc3RyYWludHMuZ2V0T3B0aW9u
YWxDb25zdHJhaW50VmFsdWUob3B0aW9uYWxDb25zdHJhaW50TmFtZXNbaV0sIHZhbHVlKTsKLSAg
ICAgICAgICAgIGlmICh2YWx1ZSAhPSAiMCIpCisgICAgV2ViVmVjdG9yPFdlYk1lZGlhQ29uc3Ry
YWludD4gb3B0aW9uYWxDb25zdHJhaW50czsKKyAgICBjb25zdHJhaW50cy5nZXRPcHRpb25hbENv
bnN0cmFpbnRzKG9wdGlvbmFsQ29uc3RyYWludHMpOworICAgIGlmIChvcHRpb25hbENvbnN0cmFp
bnRzLnNpemUoKSkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wdGlvbmFsQ29u
c3RyYWludHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGNvbnN0IFdlYk1lZGlhQ29uc3Ry
YWludCYgY3VyciA9IG9wdGlvbmFsQ29uc3RyYWludHNbaV07CisgICAgICAgICAgICBpZiAoIWlz
VmFsaWRDb25zdHJhaW50KGN1cnIubV9uYW1lKSB8fCBjdXJyLm1fdmFsdWUgIT0gIjAiKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0K
</data>
<flag name="review"
          id="177964"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>165745</attachid>
            <date>2012-09-26 01:11:12 -0700</date>
            <delta_ts>2012-09-26 01:24:24 -0700</delta_ts>
            <desc>Patch that belongs to another bug.</desc>
            <filename>bug-97559-20120926101030.patch</filename>
            <type>text/plain</type>
            <size>42255</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBjMDJiOTRmYjY3ZTZk
ZTA5NWI1OGI1Y2NmYjAyODNiNGVhNzViMDNhLi5mYTg3ZWIwZGEwZDczYzYxNTkxZDVkNzg4Mjc3
NzNhNTVhYzA0NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wOS0yNSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IFVwZGF0ZSBnZXRVc2VyTWVkaWEgdG8gbWF0Y2ggdGhlIGxhdGVzdCBzcGVjaWZp
Y2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzU0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Y2hyb21pdW0vcHVibGljL1dlYk1lZGlhQ29uc3RyYWludHMuaDoKKyAgICAgICAgKFdlYk1lZGlh
Q29uc3RyYWludHMpOgorCiAyMDEyLTA5LTI1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5NTE3
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDE3NWY3YmY3MzhlYjdkNzQ3ZjIzZWQwNjJlMDk0MzRkMTcyOTIxMDAu
LmFhNzkwMTZmMmM0MDI1MWUwYmU2ZjRiY2ZkMDg3MmU2Njg1NGU3YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAxMi0wOS0yNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSBnZXRVc2VyTWVkaWEg
dG8gbWF0Y2ggdGhlIGxhdGVzdCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzU0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnLzIwMTEvd2VicnRjL2Vk
aXRvci9nZXR1c2VybWVkaWEuaHRtbCNuYXZpZ2F0b3J1c2VybWVkaWEKKyAgICAgICAgTmF2aWdh
dG9yLmdldFVzZXJNZWRpYSBpcyBjaGFuZ2VkIHNvIHRoYXQgdGhlIGF1ZGlvIGFuZCB2aWRlbyBt
ZW1iZXJzIGNhbiBlaXRoZXIKKyAgICAgICAgYmUgYSBib29sIG9yIGEgY29uc3RyYWludHMgb2Jq
ZWN0LgorCisgICAgICAgIEV4aXN0aW5nIHRlc3RzIGV4cGFuZGVkIHRvIGNvdmVyIHRoZSBuZXcg
Y2hhbmdlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRz
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFDb25zdHJhaW50c0ltcGwuaDoKKyAgICAgICAgKE1lZGlhQ29uc3RyYWludHNJbXBsKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvck1lZGlhU3RyZWFtOjp3ZWJraXRHZXRVc2VyTWVkaWEp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYXJzZU9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhUmVxdWVzdDo6VXNlck1lZGlhUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0OjphdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFS
ZXF1ZXN0Ojp2aWRlbyk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphdWRp
b0NvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVv
Q29uc3RyYWludHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChVc2VyTWVkaWFSZXF1ZXN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhQ29uc3RyYWludHMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzOjpXZWJNZWRpYUNvbnN0
cmFpbnRzKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDktMjUgIFBhdHJpY2sgR2Fuc3Rl
cmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dJTl0gRml4IEFTU0VSVCBpbiBC
U3RyaW5nIGFmdGVyIHIxMjg5ODguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRhM2Vk
ZWM5ZTU2NDIyZGEzNjE2ZWI5M2Q3MWE1MWVkN2ViZDA5NmMuLmVmMjRjZjJlNjQwZDcyNmU5N2Vk
NTdhZDZjNGU5ODM2MDUwYjMxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTItMDktMjUgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5j
b20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBVcGRhdGUgZ2V0VXNlck1lZGlhIHRvIG1h
dGNoIHRoZSBsYXRlc3Qgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3Iv
Z2V0dXNlcm1lZGlhLmh0bWwjbmF2aWdhdG9ydXNlcm1lZGlhCisgICAgICAgIE5hdmlnYXRvci5n
ZXRVc2VyTWVkaWEgaXMgY2hhbmdlZCBzbyB0aGF0IHRoZSBhdWRpbyBhbmQgdmlkZW8gbWVtYmVy
cyBjYW4gZWl0aGVyCisgICAgICAgIGJlIGEgYm9vbCBvciBhIGNvbnN0cmFpbnRzIG9iamVjdC4K
KworICAgICAgICAqIHB1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViVXNlck1lZGlhUmVxdWVzdCk6CisgICAgICAgICogc3JjL1dlYlVz
ZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFSZXF1ZXN0
OjphdWRpb0NvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVvQ29uc3RyYWludHMpOgorCiAyMDEyLTA5LTI1ICBB
bHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gUm9s
bCBERVBTIGZvciBDaHJvbWl1bS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFDb25zdHJhaW50cy5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRzLmgKaW5kZXggYzc3NDI0ODgwOTY4MDU5NmY0Yzg0
ZWE0ZTUwZTU2ODBiYmNkZTliYS4uNTBjNTBjYWFjN2M2YWIyNzE5ZjJmZDY5NmE2NmYzYmRkYjVi
ZTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRp
YUNvbnN0cmFpbnRzLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJN
ZWRpYUNvbnN0cmFpbnRzLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYpOwogCiAgICAgV0VC
S0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7Ci0gICAgYm9vbCBpc051bGwoKSBjb25zdDsKKyAgICBi
b29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwoKTsgfQogCiAgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIGdldE1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcyhXZWJWZWN0b3I8
V2ViU3RyaW5nPiYgbmFtZXMpIGNvbnN0OwogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBnZXRPcHRp
b25hbENvbnN0cmFpbnROYW1lcyhXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbmFtZXMpIGNvbnN0OwpA
QCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAg
ICBXZWJNZWRpYUNvbnN0cmFpbnRzKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzPiYpOworICAgIFdlYk1lZGlhQ29uc3RyYWludHMoV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyopOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwCmlu
ZGV4IDEzMzZmODI4YTBiN2I0Njg3MTdjZGI0OTFjODBmYTk2NDRjZDJlZTkuLmI5ZTMwMTQxZWY0
NDEzYjZmOWFjZDA3OGJlOWM2YmMwYTY0ZDYzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwCkBA
IC01MSw2ICs1MSwxMSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBNZWRpYUNv
bnN0cmFpbnRzSW1wbDo6Y3JlYXRlKGNvbnN0IERpY3Rpb25hcnkmCiAgICAgcmV0dXJuIG9iamVj
dC5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50c0ltcGw+IE1lZGlh
Q29uc3RyYWludHNJbXBsOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVk
aWFDb25zdHJhaW50c0ltcGwoKSk7Cit9CisKIGJvb2wgTWVkaWFDb25zdHJhaW50c0ltcGw6Omlu
aXRpYWxpemUoY29uc3QgRGljdGlvbmFyeSYgY29uc3RyYWludHMpCiB7CiAgICAgaWYgKGNvbnN0
cmFpbnRzLmlzVW5kZWZpbmVkT3JOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmgKaW5kZXggNGE3MzFj
OTA0OTFjMGEyY2Q2ZmI2ZGUxMTljZDZlOTVmMWQ5MmViZi4uY2RjNzZiOWNmYzU3YjczMjU1NzRj
MTJhOWRhYWRmZmRkNTg2ZjU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaApAQCAtNDMsNiArNDMsNyBA
QCBjbGFzcyBEaWN0aW9uYXJ5OwogCiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzSW1wbCA6IHB1Ymxp
YyBNZWRpYUNvbnN0cmFpbnRzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50c0ltcGw+IGNyZWF0ZShjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZpcnR1YWwgfk1lZGlhQ29uc3RyYWludHNJbXBsKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVh
bS5jcHAKaW5kZXggZjg1ZDg5MzA2MWE2ZWNkNGFhN2FiNTc1ZjQ5MjZjNDBlMTlmMGM3ZS4uYzE0
YmMxMGUxY2Y2MTc4YzcxYjQ1M2NjNTc4MTZiNzEyMjBmOGNhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVh
bS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBOYXZpZ2F0b3JNZWRpYVN0cmVhbTo6d2Via2l0
R2V0VXNlck1lZGlhKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdCBEaWN0aW8KICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0g
VXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKG5hdmlnYXRvci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSwg
dXNlck1lZGlhLCBvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAg
IFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3Jl
YXRlKG5hdmlnYXRvci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSwgdXNlck1lZGlhLCBvcHRpb25zLCBz
dWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGVjKTsKICAgICBpZiAoIXJlcXVlc3QpIHsK
ICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKaW5kZXggZTZmYzJlNzE1NGFkNzIxNmExNzZkMmUxMjcxMDA1N2Y2MzA4Y2Y4Zi4uYjk0
OTQwMDJhOTJmNGNlMWNmYzlmYzNiM2JjZjMyYWUzNjhjZDM3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBA
IC0zNyw3ICszNyw5IEBACiAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTG9jYWxNZWRp
YVN0cmVhbS5oIgorI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1DZW50ZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIK
ICNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCkBAIC00NSwzMSArNDcsNzQgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBVc2VyTWVk
aWFDb250cm9sbGVyKiBjb250cm9sbGVyLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQYXNz
UmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJh
Y2spCitzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gcGFyc2VPcHRpb25z
KGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnMsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcmVxdWVzdCA9
IGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFSZXF1ZXN0KGNvbnRleHQsIGNvbnRyb2xsZXIsIG9wdGlv
bnMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykpOwotICAgIGlmICghcmVxdWVzdC0+
YXVkaW8oKSAmJiAhcmVxdWVzdC0+dmlkZW8oKSkKKyAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50
c0ltcGw+IGNvbnN0cmFpbnRzOworCisgICAgRGljdGlvbmFyeSBjb25zdHJhaW50c0RpY3Rpb25h
cnk7CisgICAgYm9vbCBvayA9IG9wdGlvbnMuZ2V0KG1lZGlhVHlwZSwgY29uc3RyYWludHNEaWN0
aW9uYXJ5KTsKKyAgICBpZiAob2sgJiYgIWNvbnN0cmFpbnRzRGljdGlvbmFyeS5pc1VuZGVmaW5l
ZE9yTnVsbCgpKQorICAgICAgICBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpj
cmVhdGUoY29uc3RyYWludHNEaWN0aW9uYXJ5LCBlYyk7CisgICAgZWxzZSB7CisgICAgICAgIGJv
b2wgbWVkaWFSZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICAgICAgb3B0aW9ucy5nZXQobWVkaWFUeXBl
LCBtZWRpYVJlcXVlc3RlZCk7CisgICAgICAgIGlmIChtZWRpYVJlcXVlc3RlZCkKKyAgICAgICAg
ICAgIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZSgpOworICAgIH0K
KworICAgIHJldHVybiBjb25zdHJhaW50cy5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8VXNl
ck1lZGlhUmVxdWVzdD4gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFVzZXJNZWRpYUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIsIGNvbnN0IERp
Y3Rpb25hcnkmIG9wdGlvbnMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVm
UHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBhdWRpbyA9IHBhcnNlT3B0aW9ucyhvcHRpb25zLCBB
U0NJSUxpdGVyYWwoImF1ZGlvIiksIGVjKTsKKyAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworICAgIFJlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzSW1wbD4gdmlkZW8gPSBwYXJzZU9wdGlvbnMob3B0aW9ucywgQVNDSUlMaXRlcmFsKCJ2
aWRlbyIpLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICgh
YXVkaW8gJiYgIXZpZGVvKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVXNlck1lZGlhUmVxdWVzdChjb250ZXh0LCBjb250cm9sbGVyLCBhdWRpby5yZWxlYXNl
KCksIHZpZGVvLnJlbGVhc2UoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CiB9
CiAKLVVzZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVXNlck1lZGlhQ29udHJvbGxlciogY29udHJvbGxlciwgY29uc3QgRGlj
dGlvbmFyeSYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorVXNlck1lZGlhUmVxdWVzdDo6VXNlck1lZGlhUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBVc2VyTWVkaWFDb250cm9sbGVy
KiBjb250cm9sbGVyLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBhdWRpbywgUGFz
c1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gdmlkZW8sIFBhc3NSZWZQdHI8TmF2aWdhdG9y
VXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TmF2
aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKICAgICA6IENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCi0gICAgLCBtX2F1ZGlvKGZhbHNlKQotICAg
ICwgbV92aWRlbyhmYWxzZSkKKyAgICAsIG1fYXVkaW8oYXVkaW8pCisgICAgLCBtX3ZpZGVvKHZp
ZGVvKQogICAgICwgbV9jb250cm9sbGVyKGNvbnRyb2xsZXIpCiAgICAgLCBtX3N1Y2Nlc3NDYWxs
YmFjayhzdWNjZXNzQ2FsbGJhY2spCiAgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFj
aykKIHsKLSAgICBvcHRpb25zLmdldCgiYXVkaW8iLCBtX2F1ZGlvKTsKLSAgICBvcHRpb25zLmdl
dCgidmlkZW8iLCBtX3ZpZGVvKTsKIH0KIAogVXNlck1lZGlhUmVxdWVzdDo6flVzZXJNZWRpYVJl
cXVlc3QoKQogewogfQogCitib29sIFVzZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9hdWRpbzsKK30KKworYm9vbCBVc2VyTWVkaWFSZXF1ZXN0Ojp2aWRlbygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlkZW87Cit9CisKK01lZGlhQ29uc3RyYWludHMqIFVz
ZXJNZWRpYVJlcXVlc3Q6OmF1ZGlvQ29uc3RyYWludHMoKSBjb25zdAoreworICAgIHJldHVybiBt
X2F1ZGlvLmdldCgpOworfQorCitNZWRpYUNvbnN0cmFpbnRzKiBVc2VyTWVkaWFSZXF1ZXN0Ojp2
aWRlb0NvbnN0cmFpbnRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWRlby5nZXQoKTsKK30K
KwogRG9jdW1lbnQqIFVzZXJNZWRpYVJlcXVlc3Q6Om93bmVyRG9jdW1lbnQoKQogewogICAgIGlm
IChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggYjUzMzQ4ZDI5NjNj
MmJhMTMyNjhiMjIxOTQ4YjM1OWY4NTRmMTM0YS4uNjRkMGIxN2VkOWEwNjgzYzc0ZTFhY2I3OGIy
MjllNzk2NWNhODk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
RXhjZXB0aW9uQmFzZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrLmgiCkBAIC00NiwxMiArNDcsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEaWN0aW9uYXJ5OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBNZWRp
YUNvbnN0cmFpbnRzOworY2xhc3MgTWVkaWFDb25zdHJhaW50c0ltcGw7CiBjbGFzcyBNZWRpYVN0
cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwogCiBjbGFzcyBVc2Vy
TWVkaWFSZXF1ZXN0IDogcHVibGljIE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50LCBwdWJs
aWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
VXNlck1lZGlhQ29udHJvbGxlciosIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnMsIFBhc3NSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlck1l
ZGlhUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250
cm9sbGVyKiwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9ucywgUGFzc1JlZlB0cjxOYXZpZ2F0b3JV
c2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVy
cm9yQ2FsbGJhY2s+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgflVzZXJNZWRpYVJlcXVlc3QoKTsK
IAogICAgIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjayogc3VjY2Vzc0NhbGxiYWNr
KCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzQ2FsbGJhY2suZ2V0KCk7IH0KQEAgLTY0LDE5ICs2
NywyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdWNjZWVkKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1E
ZXNjcmlwdG9yPik7CiAgICAgdm9pZCBmYWlsKCk7CiAKKyAgICBNZWRpYUNvbnN0cmFpbnRzKiBh
dWRpb0NvbnN0cmFpbnRzKCkgY29uc3Q7CisgICAgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25z
dHJhaW50cygpIGNvbnN0OworCiAgICAgLy8gTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQK
LSAgICB2aXJ0dWFsIGJvb2wgYXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvOyB9Ci0gICAg
dmlydHVhbCBib29sIHZpZGVvKCkgY29uc3QgeyByZXR1cm4gbV92aWRlbzsgfQorICAgIHZpcnR1
YWwgYm9vbCBhdWRpbygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCB2aWRlbygpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVF1ZXJ5KGNvbnN0IE1lZGlhU3RyZWFtU291cmNl
VmVjdG9yJiBhdWRpb1NvdXJjZXMsIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlVmVjdG9yJiB2aWRl
b1NvdXJjZXMpOwogCiAgICAgLy8gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKICAgICB2aXJ0
dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOwogCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRpYUNvbnRyb2xsZXIqLCBjb25z
dCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nl
c3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4p
OworICAgIFVzZXJNZWRpYVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFVzZXJNZWRp
YUNvbnRyb2xsZXIqLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBhdWRpbywgUGFz
c1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gdmlkZW8sIFBhc3NSZWZQdHI8TmF2aWdhdG9y
VXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFF
cnJvckNhbGxiYWNrPik7CiAKLSAgICBib29sIG1fYXVkaW87Ci0gICAgYm9vbCBtX3ZpZGVvOwor
ICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gbV9hdWRpbzsKKyAgICBSZWZQdHI8TWVk
aWFDb25zdHJhaW50c0ltcGw+IG1fdmlkZW87CiAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViTWVkaWFDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhQ29uc3RyYWludHMuY3BwCmluZGV4IDA1ZmEz
ZjY2NmQwMTYzMWNjOTJhOTI3ZDU3YzAzNmExODhlNTU5MGYuLjlkZWE0MjQzMjAwNzVjOGY3ZjNh
N2NhMjhiNDE2MTUxNjVkMzRjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFDb25zdHJhaW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcApA
QCAtNDUsNiArNDUsMTEgQEAgV2ViTWVkaWFDb25zdHJhaW50czo6V2ViTWVkaWFDb25zdHJhaW50
cyhjb25zdCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+JiBjb24KIHsKIH0KIAorV2ViTWVk
aWFDb25zdHJhaW50czo6V2ViTWVkaWFDb25zdHJhaW50cyhNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKKyAgICA6IG1fcHJpdmF0ZShjb25zdHJhaW50cykKK3sKK30KKwogdm9pZCBXZWJN
ZWRpYUNvbnN0cmFpbnRzOjphc3NpZ24oY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYgb3RoZXIp
CiB7CiAgICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOwpAQCAtNTUsMTEgKzYwLDYgQEAg
dm9pZCBXZWJNZWRpYUNvbnN0cmFpbnRzOjpyZXNldCgpCiAgICAgbV9wcml2YXRlLnJlc2V0KCk7
CiB9CiAKLWJvb2wgV2ViTWVkaWFDb25zdHJhaW50czo6aXNOdWxsKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOwotfQotCiB2b2lkIFdlYk1lZGlhQ29uc3RyYWludHM6
OmdldE1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcyhXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbmFtZXMp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc051bGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggNjYwZGY1YmMxYzQ4
YTBjYmQyOWIyYmUwMDE2YmE0MzAwM2M5NTMxNC4uM2M4NDY5NjQ4NjkwMjBlNDZlNmRiOGVhMTNj
NGVlNTZmMGNiYWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlVzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBVc2VyTWVkaWFS
ZXF1ZXN0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkRvY3VtZW50OworY2xhc3Mg
V2ViTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNs
YXNzIFdlYk1lZGlhU3RyZWFtU291cmNlOwogY2xhc3MgV2ViU3RyaW5nOwpAQCAtNjUsNiArNjYs
OCBAQCBwdWJsaWM6CiAKICAgICBXRUJLSVRfRVhQT1JUIGJvb2wgYXVkaW8oKSBjb25zdDsKICAg
ICBXRUJLSVRfRVhQT1JUIGJvb2wgdmlkZW8oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdl
Yk1lZGlhQ29uc3RyYWludHMgYXVkaW9Db25zdHJhaW50cygpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgV2ViTWVkaWFDb25zdHJhaW50cyB2aWRlb0NvbnN0cmFpbnRzKCkgY29uc3Q7CiAKICAg
ICBXRUJLSVRfRVhQT1JUIFdlYlNlY3VyaXR5T3JpZ2luIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAgICAgV0VCS0lUX0VYUE9SVCBXZWJEb2N1bWVudCBvd25lckRvY3VtZW50KCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyTWVkaWFSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVzZXJNZWRpYVJlcXVlc3QuY3Bw
CmluZGV4IDI2ZjE3YzM1YjhlYjFmMzdiMjdlNTBhNGY4YWJmMDUwYzY1Y2MyOGMuLmZmZWNiMGFl
ZDNjODFjOWFjZjQ1MjI4N2U3MzJhZmJkNTM3YTg5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlVzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlVzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0zNSwxNiArMzUsMTgg
QEAKICNpbmNsdWRlICJXZWJVc2VyTWVkaWFSZXF1ZXN0LmgiCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5oIgogI2luY2x1
ZGUgIldlYkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKLSNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJNZWRpYVN0cmVhbVNvdXJjZS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmlu
Zy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlZlY3Rvci5oIgorI2luY2x1ZGUgPHB1YmxpYy9X
ZWJNZWRpYUNvbnN0cmFpbnRzLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZS5oPgorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTczLDYgKzc1LDE4IEBAIGJvb2wgV2ViVXNlck1lZGlhUmVxdWVzdDo6dmlkZW8oKSBjb25zdAog
ICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvKCk7CiB9CiAKK1dlYk1lZGlhQ29uc3RyYWludHMg
V2ViVXNlck1lZGlhUmVxdWVzdDo6YXVkaW9Db25zdHJhaW50cygpIGNvbnN0Cit7CisgICAgQVNT
RVJUKCFpc051bGwoKSk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YXVkaW9Db25zdHJhaW50cygp
OworfQorCitXZWJNZWRpYUNvbnN0cmFpbnRzIFdlYlVzZXJNZWRpYVJlcXVlc3Q6OnZpZGVvQ29u
c3RyYWludHMoKSBjb25zdAoreworICAgIEFTU0VSVCghaXNOdWxsKCkpOworICAgIHJldHVybiBt
X3ByaXZhdGUtPnZpZGVvQ29uc3RyYWludHMoKTsKK30KKwogV2ViU2VjdXJpdHlPcmlnaW4gV2Vi
VXNlck1lZGlhUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdAogewogICAgIEFTU0VSVCgh
aXNOdWxsKCkgJiYgbV9wcml2YXRlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ1M2RmZTI0ODIy
ZmI0YTNmM2NmYTNjM2UyOGNmMzI2NDkzMDM5NmYuLmEzMDU2MzMxNzlmNGJmMWM0MGQyYmNhNTMy
MGM3ZTNiMmY3OTc5NjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wOS0yNSAgVG9tbXkgV2lkZW5mbHljaHQg
IDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSBn
ZXRVc2VyTWVkaWEgdG8gbWF0Y2ggdGhlIGxhdGVzdCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzU0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBtb2NrIHN1cHBvcnQg
Zm9yIHRoZSBlbmhhbmNlZCBnZXRVc2VyTWVkaWEgY2FsbC4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTW9ja0NvbnN0cmFpbnRzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcC4KKyAgICAgICAg
KE1vY2tDb25zdHJhaW50cyk6CisgICAgICAgIChNb2NrQ29uc3RyYWludHM6OmlzU3VwcG9ydGVk
KToKKyAgICAgICAgKE1vY2tDb25zdHJhaW50czo6aXNWYWxpZCk6CisgICAgICAgIChNb2NrQ29u
c3RyYWludHM6OnZlcmlmeSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a0NvbnN0cmFpbnRzLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlVzZXJNZWRpYUNsaWVudE1vY2suaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChN
b2NrQ29uc3RyYWludHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzazo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1
Y2NlZGVkVGFzayk6CisgICAgICAgIChSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVk
VGFzazo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEZhaWxlZFRhc2spOgorICAgICAgICAo
UlRDVm9pZFJlcXVlc3RUYXNrOjpSVENWb2lkUmVxdWVzdFRhc2spOgorICAgICAgICAoTW9ja1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHA6CisgICAgICAgIChV
c2VyTWVkaWFSZXF1ZXN0VGFzayk6CisgICAgICAgIChVc2VyTWVkaWFSZXF1ZXN0VGFzazo6VXNl
ck1lZGlhUmVxdWVzdFRhc2spOgorICAgICAgICAoV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6cmVx
dWVzdFVzZXJNZWRpYSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNl
ck1lZGlhQ2xpZW50TW9jay5oOgorICAgICAgICAoV2ViVXNlck1lZGlhQ2xpZW50TW9jayk6Cisg
ICAgICAgIChXZWJVc2VyTWVkaWFDbGllbnRNb2NrOjp0YXNrTGlzdCk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJWaWV3SG9zdCk6CisKIDIwMTItMDktMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRlIG1hc3Rlci5jZmcgdG8gaW52b2tlIHJ1bi1w
ZXJmLXRlc3RzIHdpdGggLS1uby1zaG93LXJlc3VsdHMgYW5kIC0tcmVzZXQtcmVzdWx0cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaSBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKaW5kZXggODMyZmZjOTkxMmIwZGE4
ZTZkYzkzOTA2NmNkZDlmNjBjMmZhYmM3Zi4uMGMwMTE1MTQwYTQ2YzIzYmY0Zjg1MjhmM2U4MWU2
YTJmOTdlMjQyMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCkBA
IC04LDYgKzgsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAnLAogICAgICAgICAgICAg
J2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vTW9ja0Nv
bnN0cmFpbnRzLmNwcCcsCisgICAgICAgICAgICAnY2hyb21pdW0vTW9ja0NvbnN0cmFpbnRzLmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tHcmFtbWFyQ2hlY2suY3BwJywKICAgICAgICAg
ICAgICdjaHJvbWl1bS9Nb2NrR3JhbW1hckNoZWNrLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L01vY2tTcGVsbENoZWNrLmNwcCcsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9Nb2NrQ29uc3RyYWludHMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja0NvbnN0cmFpbnRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDRjMGE2NTNjOTAzZmEwY2VlYzky
NGQ0M2IyZWVjZDg2OGRmM2I3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja0NvbnN0cmFpbnRzLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNb2NrQ29u
c3RyYWludHMuaCIKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRzLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBNb2NrQ29uc3RyYWludHMgewor
CitzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZChjb25zdCBXZWJTdHJpbmcmIGNvbnN0cmFpbnQpCit7
CisgICAgcmV0dXJuIGNvbnN0cmFpbnQgPT0gInZhbGlkX2FuZF9zdXBwb3J0ZWRfMSIgfHwgY29u
c3RyYWludCA9PSAidmFsaWRfYW5kX3N1cHBvcnRlZF8yIjsKK30KKworc3RhdGljIGJvb2wgaXNW
YWxpZChjb25zdCBXZWJTdHJpbmcmIGNvbnN0cmFpbnQpCit7CisgICAgcmV0dXJuIGlzU3VwcG9y
dGVkKGNvbnN0cmFpbnQpIHx8IGNvbnN0cmFpbnQgPT0gInZhbGlkX2J1dF91bnN1cHBvcnRlZF8x
IiB8fCBjb25zdHJhaW50ID09ICJ2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMiI7Cit9CisKK2Jvb2wg
dmVyaWZ5KGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIFdl
YlZlY3RvcjxXZWJTdHJpbmc+IG1hbmRhdG9yeUNvbnN0cmFpbnROYW1lczsKKyAgICBjb25zdHJh
aW50cy5nZXRNYW5kYXRvcnlDb25zdHJhaW50TmFtZXMobWFuZGF0b3J5Q29uc3RyYWludE5hbWVz
KTsKKyAgICBpZiAobWFuZGF0b3J5Q29uc3RyYWludE5hbWVzLnNpemUoKSkgeworICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcy5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgaWYgKCFpc1N1cHBvcnRlZChtYW5kYXRvcnlDb25zdHJhaW50TmFt
ZXNbaV0pKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFdlYlN0
cmluZyB2YWx1ZTsKKyAgICAgICAgICAgIGNvbnN0cmFpbnRzLmdldE1hbmRhdG9yeUNvbnN0cmFp
bnRWYWx1ZShtYW5kYXRvcnlDb25zdHJhaW50TmFtZXNbaV0sIHZhbHVlKTsKKyAgICAgICAgICAg
IGlmICh2YWx1ZSAhPSAiMSIpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgfQorCisgICAgV2ViVmVjdG9yPFdlYlN0cmluZz4gb3B0aW9uYWxDb25zdHJhaW50
TmFtZXM7CisgICAgY29uc3RyYWludHMuZ2V0T3B0aW9uYWxDb25zdHJhaW50TmFtZXMob3B0aW9u
YWxDb25zdHJhaW50TmFtZXMpOworICAgIGlmIChvcHRpb25hbENvbnN0cmFpbnROYW1lcy5zaXpl
KCkpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25hbENvbnN0cmFpbnRO
YW1lcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKG9wdGlvbmFsQ29u
c3RyYWludE5hbWVzW2ldKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICBXZWJTdHJpbmcgdmFsdWU7CisgICAgICAgICAgICBjb25zdHJhaW50cy5nZXRPcHRpb25h
bENvbnN0cmFpbnRWYWx1ZShvcHRpb25hbENvbnN0cmFpbnROYW1lc1tpXSwgdmFsdWUpOworICAg
ICAgICAgICAgaWYgKHZhbHVlICE9ICIwIikKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgTW9ja0NvbnN0cmFpbnRzCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja0NvbnN0cmFpbnRzLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrQ29uc3RyYWludHMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40MzZlYmE1NzI4YTgwYzljNTRhMDBkZjA4NGE3YmIzMzM0ZTdjZmY5Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja0NvbnN0cmFpbnRzLmgK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgTW9ja0NvbnN0cmFpbnRzX2gKKyNkZWZpbmUgTW9ja0Nv
bnN0cmFpbnRzX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK25hbWVzcGFjZSBXZWJL
aXQgeworY2xhc3MgV2ViTWVkaWFDb25zdHJhaW50czsKK30KKworbmFtZXNwYWNlIE1vY2tDb25z
dHJhaW50cyB7CisKK2Jvb2wgdmVyaWZ5KGNvbnN0IFdlYktpdDo6V2ViTWVkaWFDb25zdHJhaW50
cyYpOworCit9IC8vIG5hbWVzcGFjZSBNb2NrQ29uc3RyYWludHMKKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBNb2NrQ29uc3RyYWludHNfaAorCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IGIyZDUwZmViM2MyMjMxMmE5NzM0NGZkYjkz
YzU0ZjdhMzc2YzQ3YjguLjQ1ZWI2MDA1OTRiNWNkMjNkZWU1ODIxNDI3ZTYzY2I0OTJhYTUyOWQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAK
ICNpbmNsdWRlICJNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgiCiAKKyNpbmNsdWRl
ICJNb2NrQ29uc3RyYWludHMuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJhaW50
cy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQu
aD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmg+CkBAIC00NSw3
ICs0Niw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIGNsYXNzIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RTdWNjZWRlZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7CiBwdWJsaWM6Ci0gICAgUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBv
YmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24mIHJlc3VsdCkKKyAg
ICBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2VkZWRUYXNrKE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiByZXN1bHQp
CiAgICAgICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPihv
YmplY3QpCiAgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAgICAgICwgbV9yZXN1bHQo
cmVzdWx0KQpAQCAtNTgsMTMgKzU5LDEzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKLSAg
ICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBtX3Jlc3VsdDsKKyAgICBXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICBXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb24gbV9yZXN1bHQ7CiB9OwogCiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0RmFpbGVkVGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI+IHsKIHB1YmxpYzoKLSAgICBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFp
bGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdl
YktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYgcmVxdWVzdCkKKyAgICBSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Qm
IHJlcXVlc3QpCiAgICAgICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyPihvYmplY3QpCiAgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAgewpAQCAt
NzYsMTIgKzc3LDEyIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2ViS2l0OjpX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICBXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKIH07CiAKIGNsYXNzIFJUQ1ZvaWRSZXF1
ZXN0VGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXI+IHsKIHB1YmxpYzoKLSAgICBSVENWb2lkUmVxdWVzdFRhc2soTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiBy
ZXF1ZXN0LCBib29sIHN1Y2NlZWRlZCkKKyAgICBSVENWb2lkUmVxdWVzdFRhc2soTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBzdWNjZWVkZWQpCiAgICAgICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyPihvYmplY3QpCiAgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVl
c3QpCiAgICAgICAgICwgbV9zdWNjZWVkZWQoc3VjY2VlZGVkKQpAQCAtOTcsNyArOTgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3Qg
bV9yZXF1ZXN0OworICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBib29sIG1f
c3VjY2VlZGVkOwogfTsKIApAQCAtMTA4LDQ1ICsxMDksOSBAQCBNb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyOjpNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKFdlYlJUQ1BlZXJD
b25uZQogewogfQogCi1zdGF0aWMgYm9vbCBpc1N1cHBvcnRlZENvbnN0cmFpbnQoY29uc3QgV2Vi
U3RyaW5nJiBjb25zdHJhaW50KQotewotICAgIHJldHVybiBjb25zdHJhaW50ID09ICJ2YWxpZF9h
bmRfc3VwcG9ydGVkXzEiIHx8IGNvbnN0cmFpbnQgPT0gInZhbGlkX2FuZF9zdXBwb3J0ZWRfMiI7
Ci19Ci0KLXN0YXRpYyBib29sIGlzVmFsaWRDb25zdHJhaW50KGNvbnN0IFdlYlN0cmluZyYgY29u
c3RyYWludCkKLXsKLSAgICByZXR1cm4gaXNTdXBwb3J0ZWRDb25zdHJhaW50KGNvbnN0cmFpbnQp
IHx8IGNvbnN0cmFpbnQgPT0gInZhbGlkX2J1dF91bnN1cHBvcnRlZF8xIiB8fCBjb25zdHJhaW50
ID09ICJ2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMiI7Ci19Ci0KIGJvb2wgTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwg
Y29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCiB7Ci0gICAgV2ViVmVjdG9y
PFdlYlN0cmluZz4gbWFuZGF0b3J5Q29uc3RyYWludE5hbWVzOwotICAgIGNvbnN0cmFpbnRzLmdl
dE1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcyhtYW5kYXRvcnlDb25zdHJhaW50TmFtZXMpOwotICAg
IGlmIChtYW5kYXRvcnlDb25zdHJhaW50TmFtZXMuc2l6ZSgpKSB7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbWFuZGF0b3J5Q29uc3RyYWludE5hbWVzLnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgICAgICBpZiAoIWlzU3VwcG9ydGVkQ29uc3RyYWludChtYW5kYXRvcnlDb25zdHJhaW50
TmFtZXNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIFdl
YlN0cmluZyB2YWx1ZTsKLSAgICAgICAgICAgIGNvbnN0cmFpbnRzLmdldE1hbmRhdG9yeUNvbnN0
cmFpbnRWYWx1ZShtYW5kYXRvcnlDb25zdHJhaW50TmFtZXNbaV0sIHZhbHVlKTsKLSAgICAgICAg
ICAgIGlmICh2YWx1ZSAhPSAiMSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgV2ViVmVjdG9yPFdlYlN0cmluZz4gb3B0aW9uYWxDb25zdHJh
aW50TmFtZXM7Ci0gICAgY29uc3RyYWludHMuZ2V0T3B0aW9uYWxDb25zdHJhaW50TmFtZXMob3B0
aW9uYWxDb25zdHJhaW50TmFtZXMpOwotICAgIGlmIChvcHRpb25hbENvbnN0cmFpbnROYW1lcy5z
aXplKCkpIHsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25hbENvbnN0cmFp
bnROYW1lcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgaWYgKCFpc1ZhbGlkQ29uc3RyYWlu
dChvcHRpb25hbENvbnN0cmFpbnROYW1lc1tpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgV2ViU3RyaW5nIHZhbHVlOwotICAgICAgICAgICAgY29uc3RyYWlu
dHMuZ2V0T3B0aW9uYWxDb25zdHJhaW50VmFsdWUob3B0aW9uYWxDb25zdHJhaW50TmFtZXNbaV0s
IHZhbHVlKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAiMCIpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuIE1vY2tDb25zdHJhaW50czo6dmVyaWZ5KGNvbnN0cmFpbnRzKTsKIH0KIAogdm9pZCBN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpjcmVhdGVPZmZlcihjb25zdCBXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJNZWRpYUNvbnN0cmFp
bnRzJiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlVzZXJNZWRpYUNsaWVudE1vY2suY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHAKaW5kZXggYTM3M2MzYjMwN2Q2NTYzYWY0
NmFjNzMyODdiYzU1ODM2OGJkNGQxMC4uNjBhYjNkMjIzYjE5NDMyMmU5MjUwM2Q0MGE2YTBiODZm
N2I4YjA2OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNl
ck1lZGlhQ2xpZW50TW9jay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHAKQEAgLTMzLDE1ICszMyw0MSBAQAogCiAjaW5jbHVk
ZSAiV2ViVXNlck1lZGlhQ2xpZW50TW9jay5oIgogCisjaW5jbHVkZSAiTW9ja0NvbnN0cmFpbnRz
LmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVN0cmVhbVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiV2ViVXNlck1lZGlhUmVxdWVzdC5oIgotI2luY2x1ZGUgInBs
YXRmb3JtL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dl
Yk1lZGlhU3RyZWFtU291cmNlLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVmVjdG9yLmgiCisj
aW5jbHVkZSA8cHVibGljL1dlYk1lZGlhQ29uc3RyYWludHMuaD4KKyNpbmNsdWRlIDxwdWJsaWMv
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3Ry
ZWFtU291cmNlLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAKLW5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKKworY2xhc3MgVXNlck1lZGlhUmVxdWVzdFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxX
ZWJVc2VyTWVkaWFDbGllbnRNb2NrPiB7CitwdWJsaWM6CisgICAgVXNlck1lZGlhUmVxdWVzdFRh
c2soV2ViVXNlck1lZGlhQ2xpZW50TW9jayogb2JqZWN0LCBjb25zdCBXZWJVc2VyTWVkaWFSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IgcmVzdWx0KQorICAg
ICAgICA6IE1ldGhvZFRhc2s8V2ViVXNlck1lZGlhQ2xpZW50TW9jaz4ob2JqZWN0KQorICAgICAg
ICAsIG1fcmVxdWVzdChyZXF1ZXN0KQorICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKKyAgICB7
CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERQorICAgIHsK
KyAgICAgICAgaWYgKG1fcmVzdWx0LmlzTnVsbCgpKQorICAgICAgICAgICAgbV9yZXF1ZXN0LnJl
cXVlc3RGYWlsZWQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9yZXF1ZXN0LnJlcXVl
c3RTdWNjZWVkZWQobV9yZXN1bHQpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJVc2VyTWVk
aWFSZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IgbV9yZXN1
bHQ7Cit9OworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBjbGFzcyBNb2Nr
RXh0cmFEYXRhIDogcHVibGljIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6RXh0cmFEYXRhIHsK
IHB1YmxpYzoKQEAgLTU5LDcgKzg1LDE4IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6
cmVxdWVzdFVzZXJNZWRpYShjb25zdCBXZWJVc2VyTWVkaWFSZXF1ZXN0JiBzdHJlYW1SCiAgICAg
V2ViVXNlck1lZGlhUmVxdWVzdCByZXF1ZXN0ID0gc3RyZWFtUmVxdWVzdDsKIAogICAgIGlmIChy
ZXF1ZXN0Lm93bmVyRG9jdW1lbnQoKS5pc051bGwoKSB8fCAhcmVxdWVzdC5vd25lckRvY3VtZW50
KCkuZnJhbWUoKSkgewotICAgICAgICByZXF1ZXN0LnJlcXVlc3RGYWlsZWQoKTsKKyAgICAgICAg
cG9zdFRhc2sobmV3IFVzZXJNZWRpYVJlcXVlc3RUYXNrKHRoaXMsIHJlcXVlc3QsIFdlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvcigpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXZWJN
ZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzID0gcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKCk7
CisgICAgaWYgKCFjb25zdHJhaW50cy5pc051bGwoKSAmJiAhTW9ja0NvbnN0cmFpbnRzOjp2ZXJp
ZnkoY29uc3RyYWludHMpKSB7CisgICAgICAgIHBvc3RUYXNrKG5ldyBVc2VyTWVkaWFSZXF1ZXN0
VGFzayh0aGlzLCByZXF1ZXN0LCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGNvbnN0cmFpbnRzID0gcmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzKCk7CisgICAgaWYgKCFjb25zdHJhaW50cy5pc051bGwoKSAmJiAhTW9ja0NvbnN0cmFpbnRz
Ojp2ZXJpZnkoY29uc3RyYWludHMpKSB7CisgICAgICAgIHBvc3RUYXNrKG5ldyBVc2VyTWVkaWFS
ZXF1ZXN0VGFzayh0aGlzLCByZXF1ZXN0LCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoKSkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NCwxOCArMTExLDE2IEBAIHZvaWQgV2ViVXNl
ck1lZGlhQ2xpZW50TW9jazo6cmVxdWVzdFVzZXJNZWRpYShjb25zdCBXZWJVc2VyTWVkaWFSZXF1
ZXN0JiBzdHJlYW1SCiAgICAgaWYgKHJlcXVlc3QudmlkZW8oKSkKICAgICAgICAgdmlkZW9Tb3Vy
Y2VzWzBdLmluaXRpYWxpemUoIk1vY2tWaWRlb0RldmljZSMxIiwgV2ViTWVkaWFTdHJlYW1Tb3Vy
Y2U6OlR5cGVWaWRlbywgIk1vY2sgdmlkZW8gZGV2aWNlIik7CiAKLSAgICBXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvciBkZXNjcmlwdG9yOwotICAgIGRlc2NyaXB0b3IuaW5pdGlhbGl6
ZSgiZm9vYmFyIiwgYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpOworICAgIFdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciBzdHJlYW07CisgICAgc3RyZWFtLmluaXRpYWxpemUoImZvb2JhciIsIGF1
ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKTsKIAotICAgIGRlc2NyaXB0b3Iuc2V0RXh0cmFEYXRh
KG5ldyBNb2NrRXh0cmFEYXRhKCkpOworICAgIHN0cmVhbS5zZXRFeHRyYURhdGEobmV3IE1vY2tF
eHRyYURhdGEoKSk7CiAKLSAgICByZXF1ZXN0LnJlcXVlc3RTdWNjZWVkZWQoZGVzY3JpcHRvcik7
CisgICAgcG9zdFRhc2sobmV3IFVzZXJNZWRpYVJlcXVlc3RUYXNrKHRoaXMsIHJlcXVlc3QsIHN0
cmVhbSkpOwogfQogCiB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudE1vY2s6OmNhbmNlbFVzZXJNZWRp
YVJlcXVlc3QoY29uc3QgV2ViVXNlck1lZGlhUmVxdWVzdCYpCiB7CiB9CiAKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlVzZXJNZWRpYUNsaWVudE1vY2suaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlVzZXJNZWRpYUNsaWVudE1vY2suaApp
bmRleCBlMjQxNTk4NWNiNmNjOTExOTNhNjRjMmU2ZDM4YzBmM2NiM2FlOGQ2Li45ZTFiZWJhNGEz
YjBkY2Q3OTQ5YWQyYTg2ZmI4OWYwYWZmNmM5OTUzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJVc2VyTWVkaWFDbGllbnRNb2NrLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC0zMywyOCAr
MzMsMzAgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJUYXNrLmgi
CiAjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2Vi
Q29tbW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0jaW5jbHVkZSAicGxh
dGZvcm0vV2ViVVJMLmgiCiAjaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvdGVzdF9tZWRpYV9zdHJl
YW1fY2xpZW50LmgiCisjaW5jbHVkZSA8cHVibGljL1dlYkNvbW1vbi5oPgorI2luY2x1ZGUgPHB1
YmxpYy9XZWJTdHJpbmcuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViVVJMLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlVzZXJN
ZWRpYUNsaWVudE1vY2sgOiBwdWJsaWMgV2ViVXNlck1lZGlhQ2xpZW50IHsKK2NsYXNzIFdlYlVz
ZXJNZWRpYUNsaWVudE1vY2sgOiBwdWJsaWMgV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQgewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYlVzZXJNZWRpYUNsaWVudE1vY2s+IGNy
ZWF0ZSgpOwogICAgIH5XZWJVc2VyTWVkaWFDbGllbnRNb2NrKCkgeyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFVzZXJNZWRpYShjb25zdCBXZWJVc2VyTWVkaWFSZXF1ZXN0JiwgY29uc3Qg
V2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRp
YVN0cmVhbVNvdXJjZT4mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsVXNlck1l
ZGlhUmVxdWVzdChjb25zdCBXZWJVc2VyTWVkaWFSZXF1ZXN0Jik7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RVc2VyTWVkaWEoY29uc3QgV2ViS2l0OjpXZWJVc2VyTWVkaWFSZXF1ZXN0JiwgY29u
c3QgV2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZT4mLCBjb25z
dCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYk1lZGlhU3RyZWFtU291cmNlPiYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxVc2VyTWVkaWFSZXF1ZXN0KGNvbnN0IFdlYktp
dDo6V2ViVXNlck1lZGlhUmVxdWVzdCYpOworCisgICAgLy8gVGFzayByZWxhdGVkIG1ldGhvZHMK
KyAgICBUYXNrTGlzdCogdGFza0xpc3QoKSB7IHJldHVybiAmbV90YXNrTGlzdDsgfQogCiBwcml2
YXRlOgogICAgIFdlYlVzZXJNZWRpYUNsaWVudE1vY2soKSB7IH0KLX07CiAKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAorICAgIFRhc2tMaXN0IG1fdGFza0xpc3Q7Cit9OwogCiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmgKaW5kZXggNGEzNjI3ZjkwZTkzZjQyYTY2NzcxNzY3NDI3NzM1NDBiODQ2ZDJmZS4u
NzYzMmMyNjNkMzViODlhY2VlZjlkZTg5NDE3MWY2OGJkZTI0ZmQ3OCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNz
IE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI7CiBjbGFzcyBNb2NrV2ViU3BlZWNoUmVjb2du
aXplcjsKIGNsYXNzIFNrQ2FudmFzOwogY2xhc3MgVGVzdFNoZWxsOworY2xhc3MgV2ViVXNlck1l
ZGlhQ2xpZW50TW9jazsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsKQEAg
LTY2LDcgKzY3LDYgQEAgY2xhc3MgV2ViU2hhcmVkV29ya2VyQ2xpZW50OwogY2xhc3MgV2ViU3Bl
ZWNoSW5wdXRDb250cm9sbGVyOwogY2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0ZW5lcjsKIGNsYXNz
IFdlYlVSTDsKLWNsYXNzIFdlYlVzZXJNZWRpYUNsaWVudE1vY2s7CiBzdHJ1Y3QgV2ViUmVjdDsK
IHN0cnVjdCBXZWJVUkxFcnJvcjsKIHN0cnVjdCBXZWJXaW5kb3dGZWF0dXJlczsKQEAgLTM0Myw3
ICszNDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzY2FyZEJhY2tpbmdTdG9yZSgpOwogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudE1v
Y2sqIHVzZXJNZWRpYUNsaWVudE1vY2soKTsKKyAgICBXZWJVc2VyTWVkaWFDbGllbnRNb2NrKiB1
c2VyTWVkaWFDbGllbnRNb2NrKCk7CiAgICAgd2Via2l0X3N1cHBvcnQ6OlRlc3RNZWRpYVN0cmVh
bUNsaWVudCogdGVzdE1lZGlhU3RyZWFtQ2xpZW50KCk7CiAjZW5kaWYKIApAQCAtNDMwLDcgKzQz
MCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAg
T3duUHRyPFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50TW9jaz4gbV91c2VyTWVkaWFDbGllbnRN
b2NrOworICAgIE93blB0cjxXZWJVc2VyTWVkaWFDbGllbnRNb2NrPiBtX3VzZXJNZWRpYUNsaWVu
dE1vY2s7CiAgICAgT3duUHRyPHdlYmtpdF9zdXBwb3J0OjpUZXN0TWVkaWFTdHJlYW1DbGllbnQ+
IG1fdGVzdE1lZGlhU3RyZWFtQ2xpZW50OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxOGIzMWJjZTRkZmNk
MWRkM2IxMjY3MTVjODE0MTdkNWYzYjg5Y2FmLi42NDFhYmQwNGZkMTA5ZTY4MWMzMWMzMGY4ZDNm
MTYwZmIzZDMzMTc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDktMjUgIFRvbW15IFdp
ZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJ
OiBVcGRhdGUgZ2V0VXNlck1lZGlhIHRvIG1hdGNoIHRoZSBsYXRlc3Qgc3BlY2lmaWNhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc1NDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBhbmRpbmcg
dGVzdHMgdG8gY292ZXIgdGhlIG5ldyBnZXRVc2VyTWVkaWEgYmVoYXZpb3VyLgorCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWw6CisKIDIwMTItMDktMjYgIFJhcGhh
ZWwgS3VibyBkYSBDb3N0YSAgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAg
ICAgICAgW0VGTF0gVW5za2lwIHBhc3NpbmcgdGVzdCBhZnRlciByMTI5NTkyLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEtZXhwZWN0ZWQudHh0
CmluZGV4IDk0MzdkOTBmYzRmMDU1MmMxNWY4NzhiMzZlOTllNjk1MjQwMTViNDIuLmNmN2FlMGVj
MmQxYzQ4ZWYwZTNjMDhjY2ZmNDIxMTAzMGY5YWE2YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS1leHBlY3RlZC50eHQKQEAgLTMsMTMg
KzMsMjcgQEAgVGVzdHMgd2Via2l0R2V0VXNlck1lZGlhLgogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKLVBBU1Mge2F1ZGlvOnRydWV9IGdlbmVyYXRlZCBzdHJlYW0KK1BBU1MgbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOmZhbHNlfSwgZXJyb3Is
IGVycm9yKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4
Y2VwdGlvbiA5LgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVl
fSwgZ290U3RyZWFtMSwgZXJyb3IpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgU3Ry
ZWFtIGdlbmVyYXRlZC4KIFBBU1Mgc3RyZWFtLmF1ZGlvVHJhY2tzLmxlbmd0aCBpcyAxCiBQQVNT
IHN0cmVhbS52aWRlb1RyYWNrcy5sZW5ndGggaXMgMAotUEFTUyB7dmlkZW86dHJ1ZX0gZ2VuZXJh
dGVkIHN0cmVhbQorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzp0cnVl
fSwgZ290U3RyZWFtMiwgZXJyb3IpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgU3Ry
ZWFtIGdlbmVyYXRlZC4KIFBBU1Mgc3RyZWFtLmF1ZGlvVHJhY2tzLmxlbmd0aCBpcyAwCiBQQVNT
IHN0cmVhbS52aWRlb1RyYWNrcy5sZW5ndGggaXMgMQotUEFTUyB7YXVkaW86dHJ1ZSwgdmlkZW86
dHJ1ZX0gZ2VuZXJhdGVkIHN0cmVhbQorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMywgZXJyb3IpOyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1MgU3RyZWFtIGdlbmVyYXRlZC4KK1BBU1Mgc3RyZWFtLmF1ZGlv
VHJhY2tzLmxlbmd0aCBpcyAxCitQQVNTIHN0cmVhbS52aWRlb1RyYWNrcy5sZW5ndGggaXMgMQor
UEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7bWFuZGF0b3J5Ont9LCBv
cHRpb25hbDpbXX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW00LCBlcnJvcik7IGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBTdHJlYW0gZ2VuZXJhdGVkLgorUEFTUyBzdHJlYW0uYXVkaW9U
cmFja3MubGVuZ3RoIGlzIDEKK1BBU1Mgc3RyZWFtLnZpZGVvVHJhY2tzLmxlbmd0aCBpcyAxCitQ
QVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnttYW5kYXRvcnk6eyd2YWxp
ZF9idXRfdW5zdXBwb3J0ZWRfMSc6MH0sIG9wdGlvbmFsOltdfSwgdmlkZW86dHJ1ZX0sIGdvdFN0
cmVhbUluRXJyb3IsIGVycm9yMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBFcnJv
ciBjYWxsYmFjayBjYWxsZWQuCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1
ZGlvOnttYW5kYXRvcnk6eyd2YWxpZF9hbmRfc3VwcG9ydGVkXzEnOjF9LCBvcHRpb25hbDpbeyd2
YWxpZF9idXRfdW5zdXBwb3J0ZWRfMSc6MH1dfSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIGVy
cm9yKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIFN0cmVhbSBnZW5lcmF0ZWQuCiBQ
QVNTIHN0cmVhbS5hdWRpb1RyYWNrcy5sZW5ndGggaXMgMQogUEFTUyBzdHJlYW0udmlkZW9UcmFj
a3MubGVuZ3RoIGlzIDEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sCmluZGV4IDBlYjY3YjM0
MWY4YmMzODkyMzI3MzczYTExZWY0ZWM2YjgwMjk0MTguLjc2YzQwMzJkZTZlMTBmZTJiMGMxYWIx
YmRiZGM5ZTVmNWJiMzU3OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZ2V0dXNlcm1lZGlhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXR1c2VybWVkaWEuaHRtbApAQCAtMTAsNDcgKzEwLDcwIEBACiA8c2NyaXB0PgogZGVzY3JpcHRp
b24oIlRlc3RzIHdlYmtpdEdldFVzZXJNZWRpYS4iKTsKIAordmFyIHN0cmVhbTsKKwogZnVuY3Rp
b24gZXJyb3IoKSB7Ci0gIHRlc3RGYWlsZWQoJ1N0cmVhbSBnZW5lcmF0aW9uIGZhaWxlZC4nKTsK
LSAgZmluaXNoSlNUZXN0KCk7CisgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgY2FsbGVk
LicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBnb3RTdHJlYW1JbkVycm9y
KHMpIHsKKyAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOworICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCi1mdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2sp
IHsKLSAgdHJ5IHsKLSAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnks
IGNhbGxiYWNrLCBlcnJvcik7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICB0ZXN0RmFpbGVkKCd3ZWJr
aXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7CitmdW5jdGlvbiBnb3RTdHJl
YW01KHMpIHsKKyAgICBzdHJlYW0gPSBzOworICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0
ZWQuJyk7CisgICAgc2hvdWxkQmUoJ3N0cmVhbS5hdWRpb1RyYWNrcy5sZW5ndGgnLCAnMScpOwor
ICAgIHNob3VsZEJlKCdzdHJlYW0udmlkZW9UcmFja3MubGVuZ3RoJywgJzEnKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKLSAgfQorfQorCitmdW5jdGlvbiBlcnJvcjEoKSB7CisgICAgdGVzdFBhc3Nl
ZCgnRXJyb3IgY2FsbGJhY2sgY2FsbGVkLicpOworCisgICAgc2hvdWxkTm90VGhyb3coIm5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnttYW5kYXRvcnk6eyd2YWxpZF9hbmRfc3Vw
cG9ydGVkXzEnOjF9LCBvcHRpb25hbDpbeyd2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMSc6MH1dfSwg
dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIGVycm9yKTsiKTsKK30KKworZnVuY3Rpb24gZ290U3Ry
ZWFtNChzKSB7CisgICAgc3RyZWFtID0gczsKKyAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJh
dGVkLicpOworICAgIHNob3VsZEJlKCdzdHJlYW0uYXVkaW9UcmFja3MubGVuZ3RoJywgJzEnKTsK
KyAgICBzaG91bGRCZSgnc3RyZWFtLnZpZGVvVHJhY2tzLmxlbmd0aCcsICcxJyk7CisKKyAgICBz
aG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86e21hbmRh
dG9yeTp7J3ZhbGlkX2J1dF91bnN1cHBvcnRlZF8xJzowfSwgb3B0aW9uYWw6W119LCB2aWRlbzp0
cnVlfSwgZ290U3RyZWFtSW5FcnJvciwgZXJyb3IxKTsiKTsKIH0KIAogZnVuY3Rpb24gZ290U3Ry
ZWFtMyhzKSB7Ci0gIHN0cmVhbSA9IHM7Ci0gIHRlc3RQYXNzZWQoJ3thdWRpbzp0cnVlLCB2aWRl
bzp0cnVlfSBnZW5lcmF0ZWQgc3RyZWFtJyk7Ci0gIHNob3VsZEJlKCdzdHJlYW0uYXVkaW9UcmFj
a3MubGVuZ3RoJywgJzEnKTsKLSAgc2hvdWxkQmUoJ3N0cmVhbS52aWRlb1RyYWNrcy5sZW5ndGgn
LCAnMScpOwotICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBzdHJlYW0gPSBzOworICAgIHRlc3RQYXNz
ZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7CisgICAgc2hvdWxkQmUoJ3N0cmVhbS5hdWRpb1RyYWNr
cy5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCdzdHJlYW0udmlkZW9UcmFja3MubGVuZ3Ro
JywgJzEnKTsKKworICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHthdWRpbzp7bWFuZGF0b3J5Ont9LCBvcHRpb25hbDpbXX0sIHZpZGVvOnRydWV9LCBnb3RT
dHJlYW00LCBlcnJvcik7Iik7CiB9CiAKIGZ1bmN0aW9uIGdvdFN0cmVhbTIocykgewotICBzdHJl
YW0gPSBzOwotICB0ZXN0UGFzc2VkKCd7dmlkZW86dHJ1ZX0gZ2VuZXJhdGVkIHN0cmVhbScpOwot
ICBzaG91bGRCZSgnc3RyZWFtLmF1ZGlvVHJhY2tzLmxlbmd0aCcsICcwJyk7Ci0gIHNob3VsZEJl
KCdzdHJlYW0udmlkZW9UcmFja3MubGVuZ3RoJywgJzEnKTsKKyAgICBzdHJlYW0gPSBzOworICAg
IHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7CisgICAgc2hvdWxkQmUoJ3N0cmVhbS5h
dWRpb1RyYWNrcy5sZW5ndGgnLCAnMCcpOworICAgIHNob3VsZEJlKCdzdHJlYW0udmlkZW9UcmFj
a3MubGVuZ3RoJywgJzEnKTsKIAotICBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRy
dWV9LCBnb3RTdHJlYW0zKTsKKyAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTMsIGVycm9yKTsi
KTsKIH0KIAogZnVuY3Rpb24gZ290U3RyZWFtMShzKSB7Ci0gIHN0cmVhbSA9IHM7Ci0gIHRlc3RQ
YXNzZWQoJ3thdWRpbzp0cnVlfSBnZW5lcmF0ZWQgc3RyZWFtJyk7Ci0gIHNob3VsZEJlKCdzdHJl
YW0uYXVkaW9UcmFja3MubGVuZ3RoJywgJzEnKTsKLSAgc2hvdWxkQmUoJ3N0cmVhbS52aWRlb1Ry
YWNrcy5sZW5ndGgnLCAnMCcpOworICAgIHN0cmVhbSA9IHM7CisgICAgdGVzdFBhc3NlZCgnU3Ry
ZWFtIGdlbmVyYXRlZC4nKTsKKyAgICBzaG91bGRCZSgnc3RyZWFtLmF1ZGlvVHJhY2tzLmxlbmd0
aCcsICcxJyk7CisgICAgc2hvdWxkQmUoJ3N0cmVhbS52aWRlb1RyYWNrcy5sZW5ndGgnLCAnMCcp
OwogCi0gIGdldFVzZXJNZWRpYSh7dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTIpOworICAgIHNob3Vs
ZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzp0cnVlfSwgZ290
U3RyZWFtMiwgZXJyb3IpOyIpCiB9CiAKLWdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0sIGdvdFN0
cmVhbTEpOworc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlv
OmZhbHNlLCB2aWRlbzpmYWxzZX0sIGVycm9yLCBlcnJvcik7IikKK3Nob3VsZE5vdFRocm93KCJu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSwgZ290U3RyZWFtMSwgZXJy
b3IpOyIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiB3aW5kb3cuc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165977</attachid>
            <date>2012-09-27 04:51:08 -0700</date>
            <delta_ts>2012-09-27 07:56:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97559-20120927135025.patch</filename>
            <type>text/plain</type>
            <size>14237</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA1YTYxMjlkYjBlNmM1
ZGRlZjc4NTg5OGQzNWYzMWNmOTc2MDllODUyLi5iZWI5MmZmYmFlYWU2MDc4MWFkZjEwODdhZmU5
MTdiZDY1ZjliYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMi0wOS0yNyAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAorICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEVuaGFuY2UgTWVkaWFDb25zdHJhaW50cyB0byBtYWtlIGl0IGVhc2llciB0byBn
ZXQgdGhlIGNvbnN0cmFpbnQgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc1NTkKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgor
CisgICAgICAgIFJlZmFjdG9yZWQgdG8gbWltaWMgdGhlIG5ldyBNZWRpYUNvbnN0cmFpbnRzIGFw
aS4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRzLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFDb25zdHJhaW50OjpX
ZWJNZWRpYUNvbnN0cmFpbnQpOgorICAgICAgICAoV2ViTWVkaWFDb25zdHJhaW50KToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJNZWRpYUNvbnN0cmFpbnRzKToKKworMjAxMi0wOS0y
NyAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKwogICAgICAgICBNZWRp
YVN0cmVhbSBBUEk6IFVwZGF0ZSBnZXRVc2VyTWVkaWEgdG8gbWF0Y2ggdGhlIGxhdGVzdCBzcGVj
aWZpY2F0aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NzU0MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI2Y2Q3MWMxZGQzMjM5OGIyYmM1NzgxMDhiZjkzYmQ0
MTA0MzlkZC4uYmE3YjhmN2MzNGJkMjg5OGM1MWU1ZDJjZDdkMjA0NDJhMjMxN2M3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEyLTA5LTI3ICBUb21teSBXaWRlbmZseWNodCAgPHRv
bW15d0Bnb29nbGUuY29tPgogCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogRW5oYW5jZSBNZWRp
YUNvbnN0cmFpbnRzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGdldCB0aGUgY29uc3RyYWludCBkYXRh
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzU1OQor
CisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSW5zdGVhZCBvZiBq
dXN0IHJldHVybmluZyB0aGUgbmFtZXMsIHJldHVybiBhIHBhaXIgb2YgbmFtZSBhbmQgdmFsdWUu
CisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgY292ZXIgdGhpcyBwYXRjaC4KKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0ltcGw6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50c0ltcGw6OmdldE1hbmRhdG9yeUNvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNJbXBsOjpnZXRPcHRpb25hbENvbnN0cmFp
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNJbXBsOjpnZXRPcHRpb25h
bENvbnN0cmFpbnRWYWx1ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNv
bnN0cmFpbnRzSW1wbC5oOgorICAgICAgICAoTWVkaWFDb25zdHJhaW50c0ltcGwpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFDb25zdHJhaW50cy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludDo6V2ViTWVkaWFDb25zdHJhaW50KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHM6
OmdldE1hbmRhdG9yeUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFDb25z
dHJhaW50czo6Z2V0T3B0aW9uYWxDb25zdHJhaW50cyk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50OjpNZWRpYUNvbnN0cmFpbnQpOgorICAgICAgICAoTWVkaWFDb25zdHJhaW50KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb25zdHJhaW50cyk6CisKKzIwMTItMDkt
MjcgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKICAgICAgICAgTWVk
aWFTdHJlYW0gQVBJOiBVcGRhdGUgZ2V0VXNlck1lZGlhIHRvIG1hdGNoIHRoZSBsYXRlc3Qgc3Bl
Y2lmaWNhdGlvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTc1NDAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYUNvbnN0cmFpbnRzLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
Yk1lZGlhQ29uc3RyYWludHMuaAppbmRleCA1MGM1MGNhYWM3YzZhYjI3MTlmMmZkNjk2YTY2ZjNi
ZGRiNWJlM2VlLi5iMmE0NDcxNGFiMjMzMTE3MDJmYzY4ODE2YzI4ZmY5YWQ0MGRkZmFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhQ29uc3RyYWlu
dHMuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhQ29uc3Ry
YWludHMuaApAQCAtMzgsMTEgKzM4LDMxIEBACiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnQ7CiBjbGFzcyBNZWRpYUNv
bnN0cmFpbnRzOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RydWN0IFdlYk1lZGlhQ29u
c3RyYWludCB7CisgICAgV2ViTWVkaWFDb25zdHJhaW50KCkKKyAgICB7CisgICAgfQorCisgICAg
V2ViTWVkaWFDb25zdHJhaW50KFdlYlN0cmluZyBuYW1lLCBXZWJTdHJpbmcgdmFsdWUpCisgICAg
ICAgIDogbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAg
fQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViTWVkaWFDb25zdHJhaW50KGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludCYpOworI2VuZGlmCisKKyAgICBXZWJTdHJpbmcg
bV9uYW1lOworICAgIFdlYlN0cmluZyBtX3ZhbHVlOworfTsKKwogY2xhc3MgV2ViTWVkaWFDb25z
dHJhaW50cyB7CiBwdWJsaWM6CiAgICAgV2ViTWVkaWFDb25zdHJhaW50cygpIHsgfQpAQCAtNjAs
OCArODAsOCBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAgICAg
Ym9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNOdWxsKCk7IH0KIAotICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBnZXRNYW5kYXRvcnlDb25zdHJhaW50TmFtZXMoV2ViVmVjdG9y
PFdlYlN0cmluZz4mIG5hbWVzKSBjb25zdDsKLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZ2V0T3B0
aW9uYWxDb25zdHJhaW50TmFtZXMoV2ViVmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzKSBjb25zdDsK
KyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZ2V0TWFuZGF0b3J5Q29uc3RyYWludHMoV2ViVmVjdG9y
PFdlYk1lZGlhQ29uc3RyYWludD4mKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgZ2V0
T3B0aW9uYWxDb25zdHJhaW50cyhXZWJWZWN0b3I8V2ViTWVkaWFDb25zdHJhaW50PiYpIGNvbnN0
OwogCiAgICAgV0VCS0lUX0VYUE9SVCBib29sIGdldE1hbmRhdG9yeUNvbnN0cmFpbnRWYWx1ZShj
b25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYlN0cmluZyYgdmFsdWUpIGNvbnN0OwogICAgIFdFQktJ
VF9FWFBPUlQgYm9vbCBnZXRPcHRpb25hbENvbnN0cmFpbnRWYWx1ZShjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIFdlYlN0cmluZyYgdmFsdWUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAppbmRl
eCBiOWUzMDE0MWVmNDQxM2I2ZjlhY2QwNzhiZTljNmJjMGE2NGQ2MzI2Li5iOWJmMDQ5MWI1ZGQ3
MTRjYzc5ZmQxODRhZTU2NmNjYmRkMTAxYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcApAQCAt
MTAyLDggKzEwMiw3IEBAIGJvb2wgTWVkaWFDb25zdHJhaW50c0ltcGw6OmluaXRpYWxpemUoY29u
c3QgRGljdGlvbmFyeSYgY29uc3RyYWludHMpCiAgICAgICAgICAgICBvayA9IGNvbnN0cmFpbnQu
Z2V0KGtleSwgdmFsdWUpOwogICAgICAgICAgICAgaWYgKCFvaykKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBtX29wdGlvbmFsQ29uc3RyYWludE5hbWVzLmFwcGVu
ZChrZXkpOwotICAgICAgICAgICAgbV9vcHRpb25hbENvbnN0cmFpbnRWYWx1ZXMuYXBwZW5kKHZh
bHVlKTsKKyAgICAgICAgICAgIG1fb3B0aW9uYWxDb25zdHJhaW50cy5hcHBlbmQoTWVkaWFDb25z
dHJhaW50KGtleSwgdmFsdWUpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTE0LDE4ICsxMTMs
MTggQEAgTWVkaWFDb25zdHJhaW50c0ltcGw6On5NZWRpYUNvbnN0cmFpbnRzSW1wbCgpCiB7CiB9
CiAKLXZvaWQgTWVkaWFDb25zdHJhaW50c0ltcGw6OmdldE1hbmRhdG9yeUNvbnN0cmFpbnROYW1l
cyhWZWN0b3I8U3RyaW5nPiYgbmFtZXMpIGNvbnN0Cit2b2lkIE1lZGlhQ29uc3RyYWludHNJbXBs
OjpnZXRNYW5kYXRvcnlDb25zdHJhaW50cyhWZWN0b3I8TWVkaWFDb25zdHJhaW50PiYgY29uc3Ry
YWludHMpIGNvbnN0CiB7Ci0gICAgbmFtZXMuY2xlYXIoKTsKKyAgICBjb25zdHJhaW50cy5jbGVh
cigpOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpID0gbV9t
YW5kYXRvcnlDb25zdHJhaW50cy5iZWdpbigpOwogICAgIGZvciAoOyBpICE9IG1fbWFuZGF0b3J5
Q29uc3RyYWludHMuZW5kKCk7ICsraSkKLSAgICAgICAgbmFtZXMuYXBwZW5kKGktPmZpcnN0KTsK
KyAgICAgICAgY29uc3RyYWludHMuYXBwZW5kKE1lZGlhQ29uc3RyYWludChpLT5maXJzdCwgaS0+
c2Vjb25kKSk7CiB9CiAKLXZvaWQgTWVkaWFDb25zdHJhaW50c0ltcGw6OmdldE9wdGlvbmFsQ29u
c3RyYWludE5hbWVzKFZlY3RvcjxTdHJpbmc+JiBuYW1lcykgY29uc3QKK3ZvaWQgTWVkaWFDb25z
dHJhaW50c0ltcGw6OmdldE9wdGlvbmFsQ29uc3RyYWludHMoVmVjdG9yPE1lZGlhQ29uc3RyYWlu
dD4mIGNvbnN0cmFpbnRzKSBjb25zdAogewotICAgIG5hbWVzLmNsZWFyKCk7Ci0gICAgbmFtZXMg
PSBtX29wdGlvbmFsQ29uc3RyYWludE5hbWVzOworICAgIGNvbnN0cmFpbnRzLmNsZWFyKCk7Cisg
ICAgY29uc3RyYWludHMuYXBwZW5kKG1fb3B0aW9uYWxDb25zdHJhaW50cyk7CiB9CiAKIGJvb2wg
TWVkaWFDb25zdHJhaW50c0ltcGw6OmdldE1hbmRhdG9yeUNvbnN0cmFpbnRWYWx1ZShjb25zdCBT
dHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUpIGNvbnN0CkBAIC0xNDAsMTIgKzEzOSwxNSBAQCBi
b29sIE1lZGlhQ29uc3RyYWludHNJbXBsOjpnZXRNYW5kYXRvcnlDb25zdHJhaW50VmFsdWUoY29u
c3QgU3RyaW5nJiBuYW1lLCBTdHJpbgogCiBib29sIE1lZGlhQ29uc3RyYWludHNJbXBsOjpnZXRP
cHRpb25hbENvbnN0cmFpbnRWYWx1ZShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUp
IGNvbnN0CiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9vcHRpb25hbENvbnN0cmFpbnROYW1lcy5m
aW5kKG5hbWUpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIFZlY3RvcjxNZWRpYUNvbnN0cmFpbnQ+Ojpjb25zdF9pdGVyYXRvciBpID0gbV9v
cHRpb25hbENvbnN0cmFpbnRzLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gbV9vcHRpb25hbENv
bnN0cmFpbnRzLmVuZCgpOyArK2kpIHsKKyAgICAgICAgaWYgKGktPm1fbmFtZSA9PSBuYW1lKSB7
CisgICAgICAgICAgICB2YWx1ZSA9IGktPm1fdmFsdWU7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgfQorICAgIH0KIAotICAgIHZhbHVlID0gbV9vcHRpb25hbENvbnN0cmFpbnRW
YWx1ZXNbaW5kZXhdOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oCmluZGV4IGNkYzc2YjljZmM1
N2I3MzI1NTc0YzEyYTlkYWFkZmZkZDU4NmY1N2MuLjVkMWZkOTA0MDUwOGQ2ZDY0ZmRjMWRmN2Zm
NmU4OWE0NzViNmRiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmgKQEAgLTQ3LDggKzQ3LDggQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGUo
Y29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIH5NZWRpYUNv
bnN0cmFpbnRzSW1wbCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldE1hbmRhdG9yeUNvbnN0cmFp
bnROYW1lcyhWZWN0b3I8U3RyaW5nPiYgbmFtZXMpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBnZXRPcHRpb25hbENvbnN0cmFpbnROYW1lcyhWZWN0b3I8U3RyaW5nPiYgbmFtZXMp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRNYW5kYXRvcnlDb25zdHJhaW50
cyhWZWN0b3I8TWVkaWFDb25zdHJhaW50PiYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBnZXRPcHRpb25hbENvbnN0cmFpbnRzKFZlY3RvcjxNZWRpYUNvbnN0cmFpbnQ+JikgY29u
c3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0TWFuZGF0b3J5Q29uc3RyYWludFZh
bHVlKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5nJiB2YWx1ZSkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGdldE9wdGlvbmFsQ29uc3RyYWludFZhbHVlKGNvbnN0IFN0cmluZyYg
bmFtZSwgU3RyaW5nJiB2YWx1ZSkgY29uc3QgT1ZFUlJJREU7CkBAIC01OCw4ICs1OCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBpbml0aWFsaXplKGNvbnN0IERpY3Rpb25hcnkmKTsKIAogICAgIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fbWFuZGF0b3J5Q29uc3RyYWludHM7Ci0gICAgVmVjdG9y
PFN0cmluZz4gbV9vcHRpb25hbENvbnN0cmFpbnROYW1lczsKLSAgICBWZWN0b3I8U3RyaW5nPiBt
X29wdGlvbmFsQ29uc3RyYWludFZhbHVlczsKKyAgICBWZWN0b3I8TWVkaWFDb25zdHJhaW50PiBt
X29wdGlvbmFsQ29uc3RyYWludHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlh
Q29uc3RyYWludHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcAppbmRleCA5ZGVhNDI0MzIwMDc1YzhmN2YzYTdjYTI4
YjQxNjE1MTY1ZDM0Yzg4Li42YjIzMDVlZmUzYmJhMjg2NDNhY2I4YjM4MmExODQ0ODU4YjhjMWIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
Yk1lZGlhQ29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViTWVkaWFDb25zdHJhaW50cy5jcHAKQEAgLTQwLDYgKzQwLDEyIEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorV2ViTWVkaWFD
b25zdHJhaW50OjpXZWJNZWRpYUNvbnN0cmFpbnQoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50JiBvdGhlcikKKyAgICA6IG1fbmFtZShvdGhlci5tX25hbWUpCisgICAgLCBtX3ZhbHVlKG90
aGVyLm1fdmFsdWUpCit7Cit9CisKIFdlYk1lZGlhQ29uc3RyYWludHM6OldlYk1lZGlhQ29uc3Ry
YWludHMoY29uc3QgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiYgY29uc3RyYWludHMpCiAg
ICAgOiBtX3ByaXZhdGUoY29uc3RyYWludHMpCiB7CkBAIC02MCwyMiArNjYsMjIgQEAgdm9pZCBX
ZWJNZWRpYUNvbnN0cmFpbnRzOjpyZXNldCgpCiAgICAgbV9wcml2YXRlLnJlc2V0KCk7CiB9CiAK
LXZvaWQgV2ViTWVkaWFDb25zdHJhaW50czo6Z2V0TWFuZGF0b3J5Q29uc3RyYWludE5hbWVzKFdl
YlZlY3RvcjxXZWJTdHJpbmc+JiBuYW1lcykgY29uc3QKK3ZvaWQgV2ViTWVkaWFDb25zdHJhaW50
czo6Z2V0TWFuZGF0b3J5Q29uc3RyYWludHMoV2ViVmVjdG9yPFdlYk1lZGlhQ29uc3RyYWludD4m
IGNvbnN0cmFpbnRzKSBjb25zdAogewogICAgIEFTU0VSVCghaXNOdWxsKCkpOwotICAgIFZlY3Rv
cjxTdHJpbmc+IGNvbnN0cmFpbnROYW1lczsKLSAgICBtX3ByaXZhdGUtPmdldE1hbmRhdG9yeUNv
bnN0cmFpbnROYW1lcyhjb25zdHJhaW50TmFtZXMpOwotICAgIFdlYlZlY3RvcjxXZWJTdHJpbmc+
IHJlc3VsdChjb25zdHJhaW50TmFtZXMpOwotICAgIG5hbWVzLnN3YXAocmVzdWx0KTsKKyAgICBW
ZWN0b3I8TWVkaWFDb25zdHJhaW50PiBtYW5kYXRvcnlDb25zdHJhaW50czsKKyAgICBtX3ByaXZh
dGUtPmdldE1hbmRhdG9yeUNvbnN0cmFpbnRzKG1hbmRhdG9yeUNvbnN0cmFpbnRzKTsKKyAgICBX
ZWJWZWN0b3I8V2ViTWVkaWFDb25zdHJhaW50PiByZXN1bHQobWFuZGF0b3J5Q29uc3RyYWludHMp
OworICAgIGNvbnN0cmFpbnRzLnN3YXAocmVzdWx0KTsKIH0KIAotdm9pZCBXZWJNZWRpYUNvbnN0
cmFpbnRzOjpnZXRPcHRpb25hbENvbnN0cmFpbnROYW1lcyhXZWJWZWN0b3I8V2ViU3RyaW5nPiYg
bmFtZXMpIGNvbnN0Cit2b2lkIFdlYk1lZGlhQ29uc3RyYWludHM6OmdldE9wdGlvbmFsQ29uc3Ry
YWludHMoV2ViVmVjdG9yPFdlYk1lZGlhQ29uc3RyYWludD4mIGNvbnN0cmFpbnRzKSBjb25zdAog
ewogICAgIEFTU0VSVCghaXNOdWxsKCkpOwotICAgIFZlY3RvcjxTdHJpbmc+IGNvbnN0cmFpbnRO
YW1lczsKLSAgICBtX3ByaXZhdGUtPmdldE9wdGlvbmFsQ29uc3RyYWludE5hbWVzKGNvbnN0cmFp
bnROYW1lcyk7Ci0gICAgV2ViVmVjdG9yPFdlYlN0cmluZz4gcmVzdWx0KGNvbnN0cmFpbnROYW1l
cyk7Ci0gICAgbmFtZXMuc3dhcChyZXN1bHQpOworICAgIFZlY3RvcjxNZWRpYUNvbnN0cmFpbnQ+
IG9wdGlvbmFsQ29uc3RyYWludHM7CisgICAgbV9wcml2YXRlLT5nZXRPcHRpb25hbENvbnN0cmFp
bnRzKG9wdGlvbmFsQ29uc3RyYWludHMpOworICAgIFdlYlZlY3RvcjxXZWJNZWRpYUNvbnN0cmFp
bnQ+IHJlc3VsdChvcHRpb25hbENvbnN0cmFpbnRzKTsKKyAgICBjb25zdHJhaW50cy5zd2FwKHJl
c3VsdCk7CiB9CiAKIGJvb2wgV2ViTWVkaWFDb25zdHJhaW50czo6Z2V0TWFuZGF0b3J5Q29uc3Ry
YWludFZhbHVlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViU3RyaW5nJiB2YWx1ZSkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHMuaAppbmRleCBmMjg1YzU3OWI5NjM3ZjAyMjZmYmRjZjJlOTQ2ZTY0NDUxYzVjNmI1
Li41MTQxYzIyOGQwZDQ4Zjc4ZGI2ZTY1N2Q5ODVlMDYzNjllYmFlNjljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5o
CkBAIC0zOCwxMiArMzgsMjMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgTWVk
aWFDb25zdHJhaW50IHsKKyAgICBNZWRpYUNvbnN0cmFpbnQoU3RyaW5nIG5hbWUsIFN0cmluZyB2
YWx1ZSkKKyAgICAgICAgOiBtX25hbWUobmFtZSkKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQor
ICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIFN0cmluZyBtX3ZhbHVlOwor
fTsKKwogY2xhc3MgTWVkaWFDb25zdHJhaW50cyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhQ29u
c3RyYWludHM+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYUNvbnN0cmFpbnRzKCkgeyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0TWFuZGF0b3J5Q29uc3RyYWludE5hbWVzKFZlY3RvcjxT
dHJpbmc+JiBuYW1lcykgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRPcHRpb25hbENv
bnN0cmFpbnROYW1lcyhWZWN0b3I8U3RyaW5nPiYgbmFtZXMpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0TWFuZGF0b3J5Q29uc3RyYWludHMoVmVjdG9yPE1lZGlhQ29uc3RyYWludD4m
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldE9wdGlvbmFsQ29uc3RyYWludHMoVmVj
dG9yPE1lZGlhQ29uc3RyYWludD4mKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
TWFuZGF0b3J5Q29uc3RyYWludFZhbHVlKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5nJiB2YWx1
ZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPcHRpb25hbENvbnN0cmFpbnRWYWx1
ZShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUpIGNvbnN0ID0gMDsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZGQ1NWUyMWUzN2I0
ZjIwNGFkNThmYjU4ZGUwZDdjMGM1NjRlMmFjLi43MzM0ZjdmMTEzOTJjODU5MmFmYWIwNGM1YjZj
OTBlOTgyODIxNzE3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTItMDktMjcgIFRvbW15IFdpZGVuZmx5Y2h0ICA8
dG9tbXl3QGdvb2dsZS5jb20+CiAKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBFbmhhbmNlIE1l
ZGlhQ29uc3RyYWludHMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZ2V0IHRoZSBjb25zdHJhaW50IGRh
dGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NTU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBSZWZhY3Rvcmlu
ZyBmb3IgdGhlIG5ldyBXZWJNZWRpYUNvbnN0cmFpbnRzIGFwaS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tDb25zdHJhaW50cy5jcHA6CisgICAgICAgIChNb2NrQ29u
c3RyYWludHM6OnZlcmlmeSk6CisKKzIwMTItMDktMjcgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9t
bXl3QGdvb2dsZS5jb20+CisKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBVcGRhdGUgZ2V0VXNl
ck1lZGlhIHRvIG1hdGNoIHRoZSBsYXRlc3Qgc3BlY2lmaWNhdGlvbgogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc1NDAKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja0NvbnN0cmFpbnRzLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tDb25zdHJhaW50cy5jcHAKaW5kZXggMGQ0YzBhNjUz
YzkwM2ZhMGNlZWM5MjRkNDNiMmVlY2Q4NjhkZjNiNy4uMTlhOGNmOTdmYWU3Y2I3MjQ2MGU2NmU2
ODA1YTg2NDQ0MWI4MTg1MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja0NvbnN0cmFpbnRzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9Nb2NrQ29uc3RyYWludHMuY3BwCkBAIC01MSwyOCArNTEsMjIgQEAgc3RhdGljIGJvb2wgaXNW
YWxpZChjb25zdCBXZWJTdHJpbmcmIGNvbnN0cmFpbnQpCiAKIGJvb2wgdmVyaWZ5KGNvbnN0IFdl
Yk1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQogewotICAgIFdlYlZlY3RvcjxXZWJTdHJp
bmc+IG1hbmRhdG9yeUNvbnN0cmFpbnROYW1lczsKLSAgICBjb25zdHJhaW50cy5nZXRNYW5kYXRv
cnlDb25zdHJhaW50TmFtZXMobWFuZGF0b3J5Q29uc3RyYWludE5hbWVzKTsKLSAgICBpZiAobWFu
ZGF0b3J5Q29uc3RyYWludE5hbWVzLnNpemUoKSkgewotICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1hbmRhdG9yeUNvbnN0cmFpbnROYW1lcy5zaXplKCk7ICsraSkgewotICAgICAgICAg
ICAgaWYgKCFpc1N1cHBvcnRlZChtYW5kYXRvcnlDb25zdHJhaW50TmFtZXNbaV0pKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIFdlYlN0cmluZyB2YWx1ZTsKLSAg
ICAgICAgICAgIGNvbnN0cmFpbnRzLmdldE1hbmRhdG9yeUNvbnN0cmFpbnRWYWx1ZShtYW5kYXRv
cnlDb25zdHJhaW50TmFtZXNbaV0sIHZhbHVlKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAi
MSIpCisgICAgV2ViVmVjdG9yPFdlYk1lZGlhQ29uc3RyYWludD4gbWFuZGF0b3J5Q29uc3RyYWlu
dHM7CisgICAgY29uc3RyYWludHMuZ2V0TWFuZGF0b3J5Q29uc3RyYWludHMobWFuZGF0b3J5Q29u
c3RyYWludHMpOworICAgIGlmIChtYW5kYXRvcnlDb25zdHJhaW50cy5zaXplKCkpIHsKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtYW5kYXRvcnlDb25zdHJhaW50cy5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50JiBjdXJyID0gbWFuZGF0
b3J5Q29uc3RyYWludHNbaV07CisgICAgICAgICAgICBpZiAoIWlzU3VwcG9ydGVkKGN1cnIubV9u
YW1lKSB8fCBjdXJyLm1fdmFsdWUgIT0gIjEiKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIFdlYlZlY3RvcjxXZWJTdHJpbmc+IG9wdGlvbmFs
Q29uc3RyYWludE5hbWVzOwotICAgIGNvbnN0cmFpbnRzLmdldE9wdGlvbmFsQ29uc3RyYWludE5h
bWVzKG9wdGlvbmFsQ29uc3RyYWludE5hbWVzKTsKLSAgICBpZiAob3B0aW9uYWxDb25zdHJhaW50
TmFtZXMuc2l6ZSgpKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3B0aW9uYWxD
b25zdHJhaW50TmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGlmICghaXNWYWxpZChv
cHRpb25hbENvbnN0cmFpbnROYW1lc1tpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgV2ViU3RyaW5nIHZhbHVlOwotICAgICAgICAgICAgY29uc3RyYWludHMu
Z2V0T3B0aW9uYWxDb25zdHJhaW50VmFsdWUob3B0aW9uYWxDb25zdHJhaW50TmFtZXNbaV0sIHZh
bHVlKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAiMCIpCisgICAgV2ViVmVjdG9yPFdlYk1l
ZGlhQ29uc3RyYWludD4gb3B0aW9uYWxDb25zdHJhaW50czsKKyAgICBjb25zdHJhaW50cy5nZXRP
cHRpb25hbENvbnN0cmFpbnRzKG9wdGlvbmFsQ29uc3RyYWludHMpOworICAgIGlmIChvcHRpb25h
bENvbnN0cmFpbnRzLnNpemUoKSkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9w
dGlvbmFsQ29uc3RyYWludHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGNvbnN0IFdlYk1l
ZGlhQ29uc3RyYWludCYgY3VyciA9IG9wdGlvbmFsQ29uc3RyYWludHNbaV07CisgICAgICAgICAg
ICBpZiAoIWlzVmFsaWQoY3Vyci5tX25hbWUpIHx8IGN1cnIubV92YWx1ZSAhPSAiMCIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>