<?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>167690</bug_id>
          
          <creation_ts>2017-02-01 08:42:50 -0800</creation_ts>
          <short_desc>Drag images should be anchored to the mouse location</short_desc>
          <delta_ts>2017-02-04 11:50:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>macOS 10.12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1272138</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-01 08:42:50 -0800</bug_when>
    <thetext>Drag images should be anchored to the mouse location</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272139</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-01 08:43:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/30295261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272141</commentid>
    <comment_count>2</comment_count>
      <attachid>300326</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-01 08:55:47 -0800</bug_when>
    <thetext>Created attachment 300326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272151</commentid>
    <comment_count>3</comment_count>
      <attachid>300329</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-01 09:16:42 -0800</bug_when>
    <thetext>Created attachment 300329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272248</commentid>
    <comment_count>4</comment_count>
      <attachid>300348</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-01 13:16:45 -0800</bug_when>
    <thetext>Created attachment 300348
Fix Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272594</commentid>
    <comment_count>5</comment_count>
      <attachid>300436</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-02 13:06:41 -0800</bug_when>
    <thetext>Created attachment 300436
Actually fix Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272630</commentid>
    <comment_count>6</comment_count>
      <attachid>300436</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2017-02-02 13:59:05 -0800</bug_when>
    <thetext>Comment on attachment 300436
Actually fix Windows build

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272640</commentid>
    <comment_count>7</comment_count>
      <attachid>300448</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-02 14:27:55 -0800</bug_when>
    <thetext>Created attachment 300448
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272668</commentid>
    <comment_count>8</comment_count>
      <attachid>300448</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-02 15:05:05 -0800</bug_when>
    <thetext>Comment on attachment 300448
Patch for landing

Clearing flags on attachment: 300448

Committed r211597: &lt;http://trac.webkit.org/changeset/211597&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300326</attachid>
            <date>2017-02-01 08:55:47 -0800</date>
            <delta_ts>2017-02-01 09:16:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167690-20170201085335.patch</filename>
            <type>text/plain</type>
            <size>28631</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjlkOTlhOTZiZGJlN2Uz
Yzk1OTY1Mjk1MzhmNTgwMzhkMzhiZDE0Yi4uZjY3NDgzMDkyZTBmOTBiYWNmMjZiOTFlZjRkZDk5
ZGIzZDE0MDkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYWcgaW1hZ2Vz
IHNob3VsZCBiZSBhbmNob3JlZCB0byB0aGUgbW91c2UgbG9jYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY5MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAyOTUyNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyBsb2dpYyB0byBjb21wdXRlIHRoZSBtb3VzZSBhbmNob3IgcG9pbnQu
IFRoaXMgaXMgYSBwb2ludCBpbiB0aGUgdW5pdCBzcXVhcmUgaW5kaWNhdGluZyB3aGVyZSB0aGUg
ZHJhZworICAgICAgICBvcmlnaW4gaXMgcmVsYXRpdmUgdG8gdGhlIGJvdW5kcyBvZiB0aGUgZHJh
ZyBpbWFnZS4gVGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLCBzaW5jZSB0aGlzIGFuY2hvciBw
b2ludCBpcyBub3QKKyAgICAgICAgdXNlZCBieSBhbnkgY2xpZW50IHlldDsgdGhpcyBwYXRjaCBv
bmx5IGNvbXB1dGVzIGFuZCB2ZW5kcyB0aGlzIGluZm9ybWF0aW9uIGZyb20gV2ViQ29yZS4KKwor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0Ns
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xs
ZXI6OmRvU3lzdGVtRHJhZyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorCiAyMDE3LTAxLTMxICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24gKFNhZmFyaSAx
MC4xKTogUHJlc3NpbmcgUmV0dXJuIGluIGEgY29udGVudGVkaXRhYmxlIG5vIGxvbmdlciBpbnNl
cnRzIGEgbGluZSBicmVhayB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpp
bmRleCBmMGJjMDRmMWNhMDVkODNhMzY0OTg0MGFlNmQ0ODQyZWVmNGNlODU2Li44OTQ1MjI4MGEw
NWEyYWY5NjI2YzVjNjU0ZTY2NTNhZTA5MjIzMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgRHJhZyBpbWFnZXMgc2hvdWxkIGJlIGFuY2hvcmVkIHRvIHRoZSBtb3Vz
ZSBsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY3NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDI5NTI2MT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNvbWUgcGx1bWJpbmcg
Zm9yIHRoZSBhbmNob3IgcG9pbnQgaW4gdGhlIFdLMSBjbGllbnQgbGF5ZXIuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6
CisKIDIwMTctMDEtMzEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBsZDogd2FybmluZzogaW5zdGFuY2UgbWV0aG9kICdfc2V0QXV0b2ZpbGxlZDonIGlu
IGNhdGVnb3J5IGNvbmZsaWN0cyB3aXRoIHNhbWUgbWV0aG9kIGZyb20gYW5vdGhlciBjYXRlZ29y
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDk1YjVmYmE2YzA4OGZhYzMzMTViZDM5YThhNTc1NmQ5NGE3MTE1MjQu
LjliNjRkMmJjMWEwMDVjZjEyNDFjNGI5OWNjMjFhMGY2ZjFmMGE3OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxNy0wMi0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBEcmFnIGltYWdlcyBzaG91bGQgYmUgYW5jaG9yZWQgdG8gdGhl
IG1vdXNlIGxvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjc2OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwMjk1MjYxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgc29tZSBwbHVt
YmluZyBmb3IgdGhlIG1vdXNlIGFuY2hvciBwb2ludCBpbiB0aGUgVUkgcHJvY2Vzcy4gQWRkaXRp
b25hbGx5LCByZWZhY3RvcnMgc29tZSB1bnJlbGF0ZWQgY29kZQorICAgICAgICBmb3IgaGFuZGxp
bmcgZGF0YSBpbnRlcmFjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRlcmFj
dGlvbldpdGhJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRyYWdDbGll
bnQ6OnN0YXJ0RHJhZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6c3RhcnRE
cmFnKToKKwogMjAxNy0wMS0zMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViUlRDXVtXZWJLaXQyXSBTdXBwb3J0IGV4cGFuZGluZyB0aGUgc2FuZGJv
eCB0byBhbGxvdyBtaWNyb3Bob25lIGFjY2VzcyBhdCBwcm9jZXNzIGxhdW5jaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBhNTI3OWMyYmUwYjNmY2U5NGIzZGQxNDdj
MzMwZjkxYzcwODRiOGZjLi5mMDBmZDAwNDI5ZTU3MGEyMmFhYWNlYTM1OWI3NzE5OTE3NmFkZGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTMwLDcgKzEzMCw3
IEBAIGNsYXNzIEVtcHR5RHJhZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEcmFnQ2xpZW50IHsKICAg
ICB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25z
dCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYpIGZpbmFsIHsgfQogICAgIERyYWdEZXN0aW5hdGlv
bkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhjb25zdCBEcmFnRGF0YSYpIGZpbmFsIHsgcmV0dXJu
IERyYWdEZXN0aW5hdGlvbkFjdGlvbk5vbmU7IH0KICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdT
b3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBmaW5hbCB7IHJldHVybiBE
cmFnU291cmNlQWN0aW9uTm9uZTsgfQotICAgIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwg
Y29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwg
Ym9vbCkgZmluYWwgeyB9CisgICAgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJ
bnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFUcmFuc2Zl
ciYsIEZyYW1lJiwgYm9vbCkgZmluYWwgeyB9CiAgICAgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ry
b3llZCgpIGZpbmFsIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaAppbmRleCA5OWE3
NmVjNThkNGZjY2Q2ZjNmNjBmNzY3Yjk2NjcyZTVkYzljNTE4Li4xYWMxOTE2YzRkODVkZTg4ODgx
ZTY2MDQ4YjllMzVmMzg4ZjAyNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaApAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFnSW1h
Z2UuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgRHJhZ0RhdGEm
KSA9IDA7CiAgICAgdmlydHVhbCBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNr
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpID0gMDsKICAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmIGRyYWdJ
bWFnZU9yaWdpbiwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImLCBGcmFt
ZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydERy
YWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBJ
bnRQb2ludCYgZXZlbnRQb3MsIGNvbnN0IEZsb2F0UG9pbnQmIGRyYWdJbWFnZUFuY2hvciwgRGF0
YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sIGxpbmtEcmFnID0gZmFsc2UpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZHJhZ0VuZGVkKCkgeyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZTQ3ZWQzMWQ0NWYzMjRjNmQzYTEwMWQx
ZTBhZTRhOGUxYzc0MDM5OC4uNjBkYTNjZmNhYjMzMTBmYTk0MGM0ZjBkYzJjOGY5N2JlOGRlZDAz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDbGllbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudEZyYWdtZW50LmgiCkBAIC03Niw2ICs3NywxMSBAQAogI2luY2x1ZGUgIlRl
eHRFdmVudC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgi
CisKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSAiU2VsZWN0aW9uUmVjdC5oIgorI2VuZGlm
CisKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjZW5kaWYKQEAgLTgxMCw2ICs4MTYsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERy
YWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAg
IEFTU0VSVChzdGF0ZS5zb3VyY2UpOwogICAgIEVsZW1lbnQmIGVsZW1lbnQgPSAqc3RhdGUuc291
cmNlOwogCisgICAgSW50UmVjdCBkcmFnSW1hZ2VCb3VuZHM7CiAgICAgSW1hZ2UqIGltYWdlID0g
Z2V0SW1hZ2UoZWxlbWVudCk7CiAgICAgaWYgKHN0YXRlLnR5cGUgPT0gRHJhZ1NvdXJjZUFjdGlv
blNlbGVjdGlvbikgewogICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFz
RGF0YSgpKSB7CkBAIC04MTgsNiArODI1LDE0IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0
RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAg
ICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gc3JjLnNlbGVjdGlvbigp
LnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgICAgICAgICBBU1NFUlQoc2VsZWN0aW9uUmFuZ2Up
OwogCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgICAgICAgICBWZWN0b3I8U2Vs
ZWN0aW9uUmVjdD4gc2VsZWN0aW9uUmVjdHM7CisgICAgICAgICAgICBzZWxlY3Rpb25SYW5nZS0+
Y29sbGVjdFNlbGVjdGlvblJlY3RzKHNlbGVjdGlvblJlY3RzKTsKKyAgICAgICAgICAgIGZvciAo
YXV0byBzZWxlY3Rpb25SZWN0IDogc2VsZWN0aW9uUmVjdHMpCisgICAgICAgICAgICAgICAgZHJh
Z0ltYWdlQm91bmRzLnVuaXRlKHNlbGVjdGlvblJlY3QucmVjdCgpKTsKKyAgICAgICAgICAgIGRy
YWdJbWFnZUJvdW5kcy5pbmZsYXRlKFNlbGVjdGlvbkRyYWdJbWFnZVBhZGRpbmcpOworI2VuZGlm
CisKICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS53aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoc2VsZWN0aW9uUmFuZ2UuZ2V0KCkpOwogCiAgICAgICAgICAgICBpZiAoZW5jbG9zaW5nVGV4
dEZvcm1Db250cm9sKHNyYy5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKSkKQEAgLTg0
Myw3ICs4NTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywg
Y29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICBpZiAoIWRyYWdJ
bWFnZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBkb1N5c3RlbURyYWco
ZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2Up
OworICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBk
cmFnSW1hZ2VCb3VuZHMsIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAgICAgfSBlbHNlIGlm
ICghc3JjLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkuY2FuRGlzcGxheShsaW5rVVJMKSkg
ewogICAgICAgICBzcmMuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJOb3QgYWxsb3dlZCB0byBkcmFnIGxv
Y2FsIHJlc291cmNlOiAiICsgbGlua1VSTC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgo
KSk7CiAgICAgICAgIHN0YXJ0ZWREcmFnID0gZmFsc2U7CkBAIC04NjYsNyArODgxLDcgQEAgYm9v
bCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYg
c3RhdGUsIERyYWdPcGVyYXRpb24KICAgICAgICAgICAgIGRvSW1hZ2VEcmFnKGVsZW1lbnQsIGRy
YWdPcmlnaW4sIGhpdFRlc3RSZXN1bHQuaW1hZ2VSZWN0KCksIGRhdGFUcmFuc2Zlciwgc3JjLCBt
X2RyYWdPZmZzZXQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gREhUTUwgZGVm
aW5lZCBkcmFnIGltYWdlCi0gICAgICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFn
TG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOworICAgICAgICAgICAg
ZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwgeyB9LCBkYXRhVHJh
bnNmZXIsIHNyYywgZmFsc2UpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghbGlua1VSTC5p
c0VtcHR5KCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25MaW5rKSkg
ewogICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CkBA
IC05MDIsNyArOTE3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBz
cmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICAgICAgICAgIC8v
IExhdGVyIGNvZGUgZXhwZWN0cyB0aGUgZHJhZyBpbWFnZSB0byBiZSBzY2FsZWQgYnkgZGV2aWNl
J3Mgc2NhbGUgZmFjdG9yLgogICAgICAgICAgICAgZHJhZ0ltYWdlID0gc2NhbGVEcmFnSW1hZ2Uo
ZHJhZ0ltYWdlLCBGbG9hdFNpemUobV9wYWdlLmRldmljZVNjYWxlRmFjdG9yKCksIG1fcGFnZS5k
ZXZpY2VTY2FsZUZhY3RvcigpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZG9TeXN0ZW1EcmFnKGRy
YWdJbWFnZSwgZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9pbnQsIGRhdGFUcmFuc2Zlciwgc3JjLCB0
cnVlKTsKKyAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgbW91c2VEcmFn
Z2VkUG9pbnQsIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIHRydWUpOwogI2lmIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCiAgICAgfSBlbHNlIGlmICghYXR0YWNobWVudFVSTC5pc0VtcHR5KCkg
JiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25BdHRhY2htZW50KSkgewog
ICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CkBAIC05
MTgsMTMgKzkzMywxMyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNy
YywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgZHJh
Z0xvYyA9IGRyYWdMb2NGb3JTZWxlY3Rpb25EcmFnKHNyYyk7CiAgICAgICAgICAgICBtX2RyYWdP
ZmZzZXQgPSBJbnRQb2ludChkcmFnT3JpZ2luLngoKSAtIGRyYWdMb2MueCgpLCBkcmFnT3JpZ2lu
LnkoKSAtIGRyYWdMb2MueSgpKTsKICAgICAgICAgfQotICAgICAgICBkb1N5c3RlbURyYWcoZHJh
Z0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOwor
ICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCB7IH0s
IGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKHN0YXRl
LnR5cGUgPT0gRHJhZ1NvdXJjZUFjdGlvbkRIVE1MKSB7CiAgICAgICAgIGlmIChkcmFnSW1hZ2Up
IHsKICAgICAgICAgICAgIEFTU0VSVChtX2RyYWdTb3VyY2VBY3Rpb24gJiBEcmFnU291cmNlQWN0
aW9uREhUTUwpOwogICAgICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNlQWN0
aW9uKERyYWdTb3VyY2VBY3Rpb25ESFRNTCwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyKTsKLSAg
ICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRh
dGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CisgICAgICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0lt
YWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCB7IH0sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7
CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgc3RhcnRlZERyYWcgPSBmYWxzZTsKICAgICB9
IGVsc2UgewpAQCAtOTgxLDIwICs5OTYsMjUgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFn
ZURyYWcoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGMKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgZHJhZ0ltYWdlT2Zmc2V0ID0gbW91c2VEb3duUG9pbnQgKyBz
Y2FsZWRPcmlnaW47Ci0gICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0ltYWdlT2Zmc2V0
LCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIGZyYW1lLCBmYWxzZSk7CisgICAgZG9TeXN0ZW1E
cmFnKGRyYWdJbWFnZSwgZHJhZ0ltYWdlT2Zmc2V0LCBkcmFnT3JpZ2luLCBlbGVtZW50LmJvdW5k
c0luUm9vdFZpZXdTcGFjZSgpLCBkYXRhVHJhbnNmZXIsIGZyYW1lLCBmYWxzZSk7CiAKICAgICBk
ZWxldGVEcmFnSW1hZ2UoZHJhZ0ltYWdlKTsKIH0KIAotdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9T
eXN0ZW1EcmFnKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGRyYWdMb2MsIGNv
bnN0IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1l
JiBmcmFtZSwgYm9vbCBmb3JMaW5rKQordm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1EcmFn
KERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGRyYWdMb2MsIGNvbnN0IEludFBv
aW50JiBldmVudFBvcywgY29uc3QgSW50UmVjdCYgZHJhZ0ltYWdlQm91bmRzLCBEYXRhVHJhbnNm
ZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGZvckxpbmspCiB7CisgICAgRmxv
YXRQb2ludCBkcmFnSW1hZ2VBbmNob3IgPSB7IDAuNSwgMC41IH07CisgICAgaWYgKCFkcmFnSW1h
Z2VCb3VuZHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGRyYWdJbWFnZUFuY2hvci5zZXRYKChldmVu
dFBvcy54KCkgLSBkcmFnSW1hZ2VCb3VuZHMueCgpKSAvIChmbG9hdClkcmFnSW1hZ2VCb3VuZHMu
d2lkdGgoKSk7CisgICAgICAgIGRyYWdJbWFnZUFuY2hvci5zZXRZKChldmVudFBvcy55KCkgLSBk
cmFnSW1hZ2VCb3VuZHMueSgpKSAvIChmbG9hdClkcmFnSW1hZ2VCb3VuZHMuaGVpZ2h0KCkpOwor
ICAgIH0KKwogICAgIG1fZGlkSW5pdGlhdGVEcmFnID0gdHJ1ZTsKICAgICBtX2RyYWdJbml0aWF0
b3IgPSBmcmFtZS5kb2N1bWVudCgpOwogICAgIC8vIFByb3RlY3QgdGhpcyBmcmFtZSBhbmQgdmll
dywgYXMgYSBsb2FkIG1heSBvY2N1ciBtaWQgZHJhZyBhbmQgYXR0ZW1wdCB0byB1bmxvYWQgdGhp
cyBmcmFtZQogICAgIFJlZjxNYWluRnJhbWU+IGZyYW1lUHJvdGVjdG9yKG1fcGFnZS5tYWluRnJh
bWUoKSk7CiAgICAgUmVmUHRyPEZyYW1lVmlldz4gdmlld1Byb3RlY3RvciA9IGZyYW1lUHJvdGVj
dG9yLT52aWV3KCk7Ci0gICAgbV9jbGllbnQuc3RhcnREcmFnKGltYWdlLCB2aWV3UHJvdGVjdG9y
LT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZHJh
Z0xvYykpLAotICAgICAgICB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUu
dmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZXZlbnRQb3MpKSwgZGF0YVRyYW5zZmVyLCBmcmFt
ZVByb3RlY3Rvci5nZXQoKSwgZm9yTGluayk7CisgICAgbV9jbGllbnQuc3RhcnREcmFnKGltYWdl
LCB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50
c1RvUm9vdFZpZXcoZHJhZ0xvYykpLCB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMo
ZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZXZlbnRQb3MpKSwgZHJhZ0ltYWdlQW5j
aG9yLCBkYXRhVHJhbnNmZXIsIGZyYW1lUHJvdGVjdG9yLmdldCgpLCBmb3JMaW5rKTsKICAgICAv
LyBEcmFnQ2xpZW50OjpzdGFydERyYWcgY2FuIGNhdXNlIG91ciBQYWdlIHRvIGRpc3BlYXIsIGRl
YWxsb2NhdGluZyB8dGhpc3wuCiAgICAgaWYgKCFmcmFtZVByb3RlY3Rvci0+cGFnZSgpKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggZGVkZGFk
ODZlNmRkY2M2M2FlYjBlMmY4ZGNiN2RiY2YzZDdjNGNmMy4uNzgyMTA0ZjJkNmJhZWU0NDQ5NGM4
ZDkwYTYzNGJkNmFkODc2NDRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJh
Z0ltYWdlLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAj
aW5jbHVkZSAiVVJMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMSw3ICsxMTIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbW91c2VNb3ZlZEludG9Eb2N1bWVu
dChEb2N1bWVudCopOwogCiAgICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxlbWVudCYsIGNvbnN0
IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgSW50UG9p
bnQmKTsKLSAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQ
b2ludCYsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sIGZvckxp
bmspOworICAgICAgICB2b2lkIGRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBv
aW50JiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiBkcmFnSW1hZ2VCb3VuZHMsIERh
dGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCBmb3JMaW5rKTsKICAgICAgICAgdm9pZCBjbGVhbnVw
QWZ0ZXJTeXN0ZW1EcmFnKCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdl
KERhdGFUcmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVs
KTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
SW1hZ2UuaAppbmRleCBhMjg4NDE3OWY4NzU4ODQ1NTA3YjU1MGFjOGY0Zjc3YmEwZjk0MmZjLi5j
M2I2NjVjNmI1MjAzZWI2N2E2MmJiYjU1NGM2NjY5ODAxYjg1ZTI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EcmFnSW1hZ2UuaApAQCAtNjcsNiArNjcsMTAgQEAgdHlwZWRlZiBjYWlyb19zdXJmYWNl
X3QqIERyYWdJbWFnZVJlZjsKIHR5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOwogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyBjb25zdCBmbG9hdCBTZWxlY3Rpb25EcmFnSW1h
Z2VQYWRkaW5nID0gMTU7CisjZW5kaWYKKwogSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFn
ZVJlZik7CiAKIC8vIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgYmUgbWVtb3J5IG5ldXRyYWwsIGVn
LiBpZiB0aGV5IHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBpbWFnZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaAppbmRleCA0MTcwNjBiYzg5
ODQwODlhZTQxYWEzNWI5M2YwOTBkNmRlZDZiOTY3Li5iZTZjYmIxZGZlODA0NzBmOGY0MzUyMWU4
MWIyZGI1NDdkMDYyNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3Jl
OjpEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgV2ViQ29yZTo6
RHJhZ0RhdGEmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkg
b3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9u
TWFza0ZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB3aW5kb3dQb2ludCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZHJhZ1BvcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2ZW50UG9z
LCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcp
IG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBl
dmVudFBvcywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ciYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZykgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2Vi
Q29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNv
cmU6OkZyYW1lKikgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAg
ICB2b2lkIGRlY2xhcmVBbmRXcml0ZUF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSwgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmlu
ZyYgcGF0aCwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCmluZGV4IDNlOTcwOWViMTg2ODFh
OWY0NzlkZTNlZTRkNmFjOWE2YTBjN2Q4OWUuLjRhODRiYzhlNTM2MmI5MWUwYzczZjA3MGNjYmE3
MzNmZDBlNzQ5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5tbQpAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6Ondp
bGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGFjdGlv
bgogICAgIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmll
dyB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb246KFdlYkRyYWdTb3VyY2VBY3Rpb24pYWN0aW9u
IGZyb21Qb2ludDptb3VzZURvd25Qb2ludCB3aXRoUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIHBh
c3RlYm9hcmRXaXRoTmFtZTpkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLm5hbWUoKV1dOwogfQog
Ci12b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBj
b25zdCBJbnRQb2ludCYgYXQsIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVy
JiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKK3ZvaWQgV2ViRHJh
Z0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50
JiBhdCwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBjb25zdCBGbG9hdFBvaW50JiwgRGF0YVRy
YW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKIHsKICAg
ICBSZXRhaW5QdHI8V2ViSFRNTFZpZXc+IGh0bWxWaWV3ID0gKFdlYkhUTUxWaWV3KilbW2tpdCgm
ZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAoIVtodG1sVmlldy5nZXQo
KSBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKQpAQCAtMTY1LDcgKzE2NSw3IEBA
IHZvaWQgV2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6
OkRyYWdTb3VyY2VBY3Rpb24sIGNvbnN0CiB7CiB9CiAKLXZvaWQgV2ViRHJhZ0NsaWVudDo6c3Rh
cnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIERh
dGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFn
KERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEZs
b2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDQyNTcwMTA0NTg1N2U3YWRjN2VhOWI2MDIz
ZWE2ZGE5NjAyNWRhMWIuLjEwYTFjODZiZmExOTE5ZTJlODdkYWMxN2Y5ZWIzNDk0OTJmODRlYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzgzLDcgKzM4Myw3IEBA
IHB1YmxpYzoKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0RGF0YUlu
dGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlv
biwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspID0gMDsKICNlbmRpZgogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU1NDJlZjQ5YzhmM2U0
ODkzNGYwOGJlZDU0MzVmNjQ1M2RjYjU5MTguLmQyZWY0MGIxMzlhNDUyNDkxNmM1MGIxMzk4Nzhi
YjZhYTdkNTVjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTgzNSw3ICs4MzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1
dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCk7CiAgICAgdm9pZCBkcmFnRW5k
ZWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9wZXJhdGlvbik7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0lt
YWdlSGFuZGxlLCBib29sIGlzTGlua0RyYWcpOworICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGRyYWdJbWFnZUhhbmRsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgZHJh
Z0ltYWdlQW5jaG9yLCBib29sIGlzTGlua0RyYWcpOwogICAgIHZvaWQgc2V0UHJvbWlzZWREYXRh
Rm9ySW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmIGltYWdlSGFuZGxlLCB1aW50NjRfdCBpbWFnZVNpemUsIGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHZpc2libGVVUkwsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBhcmNoaXZlSGFuZGxlLCB1
aW50NjRfdCBhcmNoaXZlU2l6ZSk7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IGYyMzc0Zjc1NzEyNWRjMTg5ZDU4M2M0MDczMmViY2Y3NWJmMjc2MzYuLjlkZjMwMjU0MmNm
OTYyYzc5MThiYTQ2YzcxOWVmN2E4OTZhMmQwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzA3LDcgKzMwNyw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQsIHVu
c2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpCiAjZW5kaWYKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBTZXREcmFnSW1hZ2UoV2ViQ29yZTo6
SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUg
ZHJhZ0ltYWdlLCBib29sIGxpbmtEcmFnKQorICAgIFNldERyYWdJbWFnZShXZWJDb3JlOjpJbnRQ
b2ludCBjbGllbnRQb3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBkcmFn
SW1hZ2UsIFdlYkNvcmU6OkZsb2F0UG9pbnQgZHJhZ0ltYWdlQW5jaG9yLCBib29sIGxpbmtEcmFn
KQogICAgIFNldFByb21pc2VkRGF0YUZvckltYWdlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBpbWFnZUhhbmRsZSwgdWludDY0X3QgaW1hZ2VTaXpl
LCBTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBleHRlbnNpb24sIFN0cmluZyB0aXRsZSwgU3RyaW5n
IHVybCwgU3RyaW5nIHZpc2libGVVUkwsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgYXJj
aGl2ZUhhbmRsZSwgdWludDY0X3QgYXJjaGl2ZVNpemUpCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICBTZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50KFN0cmluZyBwYXN0ZWJv
YXJkTmFtZSwgU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZXh0ZW5zaW9uLCBTdHJpbmcgdGl0bGUs
IFN0cmluZyB1cmwsIFN0cmluZyB2aXNpYmxlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDIwNjUxYTNjNzY5MzQ3OGQzNDVi
MmM3ODhjMGM5MjQ3OGJmZmZkZTMuLmM0MDdlOGNiNGUyZjhkMTg1ZWIwMTRlNWQxNmUyODBkNTMx
ODJlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKQEAgLTIwMyw3ICsyMDMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCiAgICAgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxl
ck9wZXJhdGlvbigpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRo
SW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKSBvdmVycmlkZTsKKyAgICB2
b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspIG92ZXJy
aWRlOwogI2VuZGlmCiAKICAgICBXS0NvbnRlbnRWaWV3ICptX2NvbnRlbnRWaWV3OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXgg
Y2QzM2Y5Y2Y0MWVmZDkyZmRiZTcxOGUwOGRiM2FlZWY5MDNiNTQxZi4uMTgzMTI1MDZlNWEyODgy
MzAwNTM1OTdkOTg1ZjQ1NjZhZWZiNGNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03NjgsOSArNzY4LDkgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRp
b24oKQogICAgIFttX2NvbnRlbnRWaWV3IF9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJv
bGxlck9wZXJhdGlvbl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVy
YWN0aW9uV2l0aEltYWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBib29sIGlzTGluaykKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25zdCBG
bG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspCiB7Ci0gICAgW21fY29udGVudFZp
ZXcgX3N0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRl
KGltYWdlKS0+bWFrZUNHSW1hZ2VDb3B5KCkgYXRDbGllbnRQb3NpdGlvbjpDR1BvaW50TWFrZShj
bGllbnRQb3NpdGlvbi54KCksIGNsaWVudFBvc2l0aW9uLnkoKSkgaXNMaW5rOmlzTGlua107Cisg
ICAgW21fY29udGVudFZpZXcgX3N0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOlNoYXJlYWJs
ZUJpdG1hcDo6Y3JlYXRlKGltYWdlKS0+bWFrZUNHSW1hZ2VDb3B5KCkgYXRDbGllbnRQb3NpdGlv
bjpDR1BvaW50TWFrZShjbGllbnRQb3NpdGlvbi54KCksIGNsaWVudFBvc2l0aW9uLnkoKSkgYW5j
aG9yUG9pbnQ6YW5jaG9yUG9pbnQgaXNMaW5rOmlzTGlua107CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKaW5kZXggZmViMDE2YjFlN2I3OGIxZjMwNDEzNTZjZjAzOGU0YzBmYzg1YjNiNy4uMjNk
MDFmNzQwZmQ2MjU3OWU4ZWQyODgwNjI1ZWJhMWIzN2I2ZjI2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBA
IC0yNTIsNyArMjUyLDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIAogI2lmIEVO
QUJMRShEQVRBX0lOVEVSQUNUSU9OKQogLSAodm9pZClfZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlv
bkNvbnRyb2xsZXJPcGVyYXRpb247Ci0tICh2b2lkKV9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJ
bWFnZTooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIGF0Q2xpZW50UG9zaXRpb246KENHUG9p
bnQpY2xpZW50UG9zaXRpb24gaXNMaW5rOihCT09MKWlzTGluazsKKy0gKHZvaWQpX3N0YXJ0RGF0
YUludGVyYWN0aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2UgYXRDbGll
bnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2ludClh
bmNob3JQb2ludCBpc0xpbms6KEJPT0wpaXNMaW5rOwogI2VuZGlmCiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRleCBjZWRiN2IyMTA4
N2EwZmZlNDM4ZjNhYWQ1MjYzN2Q5NjM4YjkyZDMwLi5mZWU5YzU0OTRhMzhhZWQ5N2UxNjk1Yjg3
YjVkN2I3ODFiOGVjMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5oCkBAIC0yMzQsNyArMjM0LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRy
b2xsZXJPcGVyYXRpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9u
V2l0aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBib29sIGlzTGluaykgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFn
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIGJvb2wgaXNMaW5rKSBv
dmVycmlkZTsKICNlbmRpZgogCiAgICAgTlNWaWV3ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCBkM2FjYzU4NzkwNzM4M2M4
NGFhYjQ4NDMzOGYxMjIyNzlhMTE4OTExLi4xOGZhZjliNTg4NWQxYWI1Y2M2OWZiOGM3YWNkNGRi
Y2FiMGU1MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwubW0KQEAgLTg4MSw3ICs4ODEsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJm
b3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpCiAgICAgLy8gRklYTUU6IElt
cGxlbWVudCBtZS4KIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rp
b25XaXRoSW1hZ2UoY29uc3QgSW50UG9pbnQmLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYsIGJvb2wpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJ
bWFnZShjb25zdCBJbnRQb2ludCYsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgY29u
c3QgRmxvYXRQb2ludCYsIGJvb2wpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBtZS4KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5k
ZXggYjdjYTI3ZTBhYWExM2RmNjkwMTVmNjNhNGQxNjMzMTU5ZTE1MTc2ZS4uNjAxM2I5N2IyNDNj
ODc1MzYxMWFmZmE5NTk2NmRlNjE3MmUxZjM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YShjb25zdCBWZWN0
b3I8U3RyaW5nPiYgdHlwZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9p
ZCBXZWJQYWdlUHJveHk6OnNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xp
ZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5k
bGUsIGJvb2wgaXNMaW5rRHJhZykKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXREcmFnSW1hZ2UoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBpc0xp
bmtEcmFnKQogewogICAgIGlmIChhdXRvIGRyYWdJbWFnZSA9IFNoYXJlYWJsZUJpdG1hcDo6Y3Jl
YXRlKGRyYWdJbWFnZUhhbmRsZSkpCiAgICAgICAgIG1fcGFnZUNsaWVudC5zZXREcmFnSW1hZ2Uo
Y2xpZW50UG9zaXRpb24sIFdURk1vdmUoZHJhZ0ltYWdlKSwgaXNMaW5rRHJhZyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50LmNwcAppbmRleCBhOTVkMjYwZDlkMmQ0OGIyMGJlOGJjODg3NjU5MzZiYTA5MTgyMzc0
Li5hMDZiMjZjZDk3NGQzMjczNTIyZWQyMzgyMDE1MzBjNGE1ZGQ0OTAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50
OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JikKIH0KIAogI2lm
ICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKLXZvaWQgV2ViRHJhZ0NsaWVudDo6
c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYs
IERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnRE
cmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpCiB7CiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmgKaW5kZXggYzk1N2M4ZWEwOWI5NDhkY2YxYTVkMjM2MGViNzRmNGRiNTA0
NzVhNy4uNTZkYzEzY2FjYTc1Y2I2NzRlNjIwMWIzZjA3ODllN2ViOTc4ZTc2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpEcmFnRGVz
dGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEm
KSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rp
b25NYXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGV2ZW50UG9zLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFtZSYsIGJv
b2wgbGlua0RyYWcgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydERyYWcoV2ViQ29y
ZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZXZlbnRQb3MsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIGRyYWdJbWFnZUFuY2hvciwgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJiwgV2ViQ29yZTo6
RnJhbWUmLCBib29sIGxpbmtEcmFnID0gZmFsc2UpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQppbmRleCBiODg2OTU0NjJiZTg5MmZmYmMwODRhY2Y0Yzk1MTJmZjBkMTBl
OWZlLi4zNjZmNTczYjEwYjNjODgxY2VkYTlkYTdhNTkzZWRkMzBkYTYxMDcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIFBhc3NSZWZQ
dHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwg
Y29uc3QgSW4KICAgICByZXR1cm4gV1RGTW92ZShiaXRtYXApOwogfQogCi12b2lkIFdlYkRyYWdD
bGllbnQ6OnN0YXJ0RHJhZyhSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGNvbnN0IEludFBvaW50
JiBwb2ludCwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYgZnJhbWUsIGJv
b2wgbGlua0RyYWcpCit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhSZXRhaW5QdHI8TlNJ
bWFnZT4gaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29uc3QgSW50UG9pbnQmLCBjb25z
dCBGbG9hdFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFn
KQogewogICAgIEludFNpemUgYml0bWFwU2l6ZShbaW1hZ2Ugc2l6ZV0pOwogICAgIFJlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IGNvbnZlcnRJbWFnZVRvQml0bWFwKGltYWdlLmdldCgp
LCBiaXRtYXBTaXplLCBmcmFtZSk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgV2ViRHJhZ0NsaWVu
dDo6c3RhcnREcmFnKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIHBv
aW50LCBjCiAgICAgbV9wYWdlLT53aWxsU3RhcnREcmFnKCk7CiAKICAgICAvLyBGSVhNRTogU2Vl
bXMgdGhpcyBtZXNzYWdlIHNob3VsZCBiZSBuYW1lZCBTdGFydERyYWcsIG5vdCBTZXREcmFnSW1h
Z2UuCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldERyYWdJbWFn
ZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQpLCBoYW5kbGUsIGxpbmtEcmFn
KSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldERyYWdJbWFn
ZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQpLCBoYW5kbGUsIHsgfSwgbGlu
a0RyYWcpKTsKIH0KIAogc3RhdGljIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShF
bGVtZW50JiBlbGVtZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300329</attachid>
            <date>2017-02-01 09:16:42 -0800</date>
            <delta_ts>2017-02-01 13:16:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167690-20170201091429.patch</filename>
            <type>text/plain</type>
            <size>31365</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjlkOTlhOTZiZGJlN2Uz
Yzk1OTY1Mjk1MzhmNTgwMzhkMzhiZDE0Yi4uZjY3NDgzMDkyZTBmOTBiYWNmMjZiOTFlZjRkZDk5
ZGIzZDE0MDkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYWcgaW1hZ2Vz
IHNob3VsZCBiZSBhbmNob3JlZCB0byB0aGUgbW91c2UgbG9jYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY5MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAyOTUyNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyBsb2dpYyB0byBjb21wdXRlIHRoZSBtb3VzZSBhbmNob3IgcG9pbnQu
IFRoaXMgaXMgYSBwb2ludCBpbiB0aGUgdW5pdCBzcXVhcmUgaW5kaWNhdGluZyB3aGVyZSB0aGUg
ZHJhZworICAgICAgICBvcmlnaW4gaXMgcmVsYXRpdmUgdG8gdGhlIGJvdW5kcyBvZiB0aGUgZHJh
ZyBpbWFnZS4gVGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLCBzaW5jZSB0aGlzIGFuY2hvciBw
b2ludCBpcyBub3QKKyAgICAgICAgdXNlZCBieSBhbnkgY2xpZW50IHlldDsgdGhpcyBwYXRjaCBv
bmx5IGNvbXB1dGVzIGFuZCB2ZW5kcyB0aGlzIGluZm9ybWF0aW9uIGZyb20gV2ViQ29yZS4KKwor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0Ns
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xs
ZXI6OmRvU3lzdGVtRHJhZyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorCiAyMDE3LTAxLTMxICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24gKFNhZmFyaSAx
MC4xKTogUHJlc3NpbmcgUmV0dXJuIGluIGEgY29udGVudGVkaXRhYmxlIG5vIGxvbmdlciBpbnNl
cnRzIGEgbGluZSBicmVhayB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpp
bmRleCBmMGJjMDRmMWNhMDVkODNhMzY0OTg0MGFlNmQ0ODQyZWVmNGNlODU2Li44OTQ1MjI4MGEw
NWEyYWY5NjI2YzVjNjU0ZTY2NTNhZTA5MjIzMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgRHJhZyBpbWFnZXMgc2hvdWxkIGJlIGFuY2hvcmVkIHRvIHRoZSBtb3Vz
ZSBsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY3NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDI5NTI2MT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNvbWUgcGx1bWJpbmcg
Zm9yIHRoZSBhbmNob3IgcG9pbnQgaW4gdGhlIFdLMSBjbGllbnQgbGF5ZXIuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6
CisKIDIwMTctMDEtMzEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBsZDogd2FybmluZzogaW5zdGFuY2UgbWV0aG9kICdfc2V0QXV0b2ZpbGxlZDonIGlu
IGNhdGVnb3J5IGNvbmZsaWN0cyB3aXRoIHNhbWUgbWV0aG9kIGZyb20gYW5vdGhlciBjYXRlZ29y
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IDhlOGE2NWUwZWExZWZiNzAyYjc3ODNkOGVhNjExYzI2NjNj
ZjIyZjAuLjJhNjZlZDM2ZjFjOGQzNGI1NzVhNjZhZTYyNmE3ZjMyZmI1OTVhY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wMi0wMSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBEcmFnIGltYWdlcyBzaG91bGQgYmUgYW5j
aG9yZWQgdG8gdGhlIG1vdXNlIGxvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwMjk1
MjYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZHMgc29tZSBwbHVtYmluZyBmb3IgdGhlIGFuY2hvciBwb2ludCBpbiB0aGUgV0sxIGNsaWVudCBs
YXllci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToKKwogMjAxNy0wMS0yOCAgWW9hdiBXZWlz
cyAgPHlvYXZAeW9hdi53cz4KIAogICAgICAgICBBZGQgTGluayBQcmVsb2FkIGFzIGFuIG9mZi1i
eS1kZWZhdWx0IGV4cGVyaW1lbnRhbCBmZWF0dXJlIG1lbnUgaXRlbS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5
NWI1ZmJhNmMwODhmYWMzMzE1YmQzOWE4YTU3NTZkOTRhNzExNTI0Li45YjY0ZDJiYzFhMDA1Y2Yx
MjQxYzRiOTljYzIxYTBmNmYxZjBhNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MTctMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJhZyBpbWFnZXMgc2hvdWxkIGJlIGFuY2hvcmVkIHRvIHRoZSBtb3VzZSBsb2NhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NjkwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDI5NTI2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNvbWUgcGx1bWJpbmcgZm9yIHRoZSBtb3Vz
ZSBhbmNob3IgcG9pbnQgaW4gdGhlIFVJIHByb2Nlc3MuIEFkZGl0aW9uYWxseSwgcmVmYWN0b3Jz
IHNvbWUgdW5yZWxhdGVkIGNvZGUKKyAgICAgICAgZm9yIGhhbmRsaW5nIGRhdGEgaW50ZXJhY3Rp
b24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
RHJhZ0ltYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisKIDIwMTctMDEt
MzEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJU
Q11bV2ViS2l0Ml0gU3VwcG9ydCBleHBhbmRpbmcgdGhlIHNhbmRib3ggdG8gYWxsb3cgbWljcm9w
aG9uZSBhY2Nlc3MgYXQgcHJvY2VzcyBsYXVuY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKaW5kZXggYTUyNzljMmJlMGIzZmNlOTRiM2RkMTQ3YzMzMGY5MWM3MDg0YjhmYy4u
ZjAwZmQwMDQyOWU1NzBhMjJhYWFjZWEzNTliNzcxOTkxNzZhZGRiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCBjbGFzcyBFbXB0eURy
YWdDbGllbnQgZmluYWwgOiBwdWJsaWMgRHJhZ0NsaWVudCB7CiAgICAgdm9pZCB3aWxsUGVyZm9y
bURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgSW50UG9pbnQmLCBEYXRh
VHJhbnNmZXImKSBmaW5hbCB7IH0KICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFz
a0ZvckRyYWcoY29uc3QgRHJhZ0RhdGEmKSBmaW5hbCB7IHJldHVybiBEcmFnRGVzdGluYXRpb25B
Y3Rpb25Ob25lOyB9CiAgICAgRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0Zv
clBvaW50KGNvbnN0IEludFBvaW50JikgZmluYWwgeyByZXR1cm4gRHJhZ1NvdXJjZUFjdGlvbk5v
bmU7IH0KLSAgICB2b2lkIHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50Jiwg
Y29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpIGZpbmFsIHsgfQor
ICAgIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJ
bnRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wp
IGZpbmFsIHsgfQogICAgIHZvaWQgZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBmaW5hbCB7IH0K
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKaW5kZXggOTlhNzZlYzU4ZDRmY2NkNmYzZjYw
Zjc2N2I5NjY3MmU1ZGM5YzUxOC4uMWFjMTkxNmM0ZDg1ZGU4ODg4MWU2NjA0OGI5ZTM1ZjM4OGYw
MjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lu
Y2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCisjaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKGNvbnN0IERyYWdEYXRhJikgPSAwOwogICAgIHZpcnR1
YWwgRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IElu
dFBvaW50JiByb290Vmlld1BvaW50KSA9IDA7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0
RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiBkcmFnSW1hZ2VPcmlnaW4sIGNvbnN0
IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sIGxpbmtEcmFn
ID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwg
Y29uc3QgSW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9z
LCBjb25zdCBGbG9hdFBvaW50JiBkcmFnSW1hZ2VBbmNob3IsIERhdGFUcmFuc2ZlciYsIEZyYW1l
JiwgYm9vbCBsaW5rRHJhZyA9IGZhbHNlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYWdFbmRl
ZCgpIHsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCmluZGV4IGU0N2VkMzFkNDVmMzI0YzZkM2ExMDFkMWUwYWU0YThlMWM3NDAzOTgu
LjkzZTQ4N2I3Yzc4MTZiZTYyNDIyNWU4NTM4MmJmNGVlNDI3NjE5NTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkRhdGFU
cmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFn
bWVudC5oIgpAQCAtNzYsNiArNzcsMTEgQEAKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNs
dWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgorCisjaWYgRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pCisjaW5jbHVkZSAiU2VsZWN0aW9uUmVjdC5oIgorI2VuZGlmCisKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjZW5k
aWYKQEAgLTgxMCw2ICs4MTYsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJh
bWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgIEFTU0VS
VChzdGF0ZS5zb3VyY2UpOwogICAgIEVsZW1lbnQmIGVsZW1lbnQgPSAqc3RhdGUuc291cmNlOwog
CisgICAgSW50UmVjdCBkcmFnSW1hZ2VCb3VuZHM7CiAgICAgSW1hZ2UqIGltYWdlID0gZ2V0SW1h
Z2UoZWxlbWVudCk7CiAgICAgaWYgKHN0YXRlLnR5cGUgPT0gRHJhZ1NvdXJjZUFjdGlvblNlbGVj
dGlvbikgewogICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgp
KSB7CkBAIC04MTgsNiArODI1LDE0IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhG
cmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAg
ICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gc3JjLnNlbGVjdGlvbigpLnRvTm9y
bWFsaXplZFJhbmdlKCk7CiAgICAgICAgICAgICBBU1NFUlQoc2VsZWN0aW9uUmFuZ2UpOwogCisj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgICAgICAgICBWZWN0b3I8U2VsZWN0aW9u
UmVjdD4gc2VsZWN0aW9uUmVjdHM7CisgICAgICAgICAgICBzZWxlY3Rpb25SYW5nZS0+Y29sbGVj
dFNlbGVjdGlvblJlY3RzKHNlbGVjdGlvblJlY3RzKTsKKyAgICAgICAgICAgIGZvciAoYXV0byBz
ZWxlY3Rpb25SZWN0IDogc2VsZWN0aW9uUmVjdHMpCisgICAgICAgICAgICAgICAgZHJhZ0ltYWdl
Qm91bmRzLnVuaXRlKHNlbGVjdGlvblJlY3QucmVjdCgpKTsKKyAgICAgICAgICAgIGRyYWdJbWFn
ZUJvdW5kcy5pbmZsYXRlKFNlbGVjdGlvbkRyYWdJbWFnZVBhZGRpbmcpOworI2VuZGlmCisKICAg
ICAgICAgICAgIHNyYy5lZGl0b3IoKS53aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoc2Vs
ZWN0aW9uUmFuZ2UuZ2V0KCkpOwogCiAgICAgICAgICAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1D
b250cm9sKHNyYy5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKSkKQEAgLTg0Myw3ICs4
NTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3Qg
RHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICBpZiAoIWRyYWdJbWFnZSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0lt
YWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOworICAg
ICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkcmFnSW1h
Z2VCb3VuZHMsIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAgICAgfSBlbHNlIGlmICghc3Jj
LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkuY2FuRGlzcGxheShsaW5rVVJMKSkgewogICAg
ICAgICBzcmMuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2Vj
dXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJOb3QgYWxsb3dlZCB0byBkcmFnIGxvY2FsIHJl
c291cmNlOiAiICsgbGlua1VSTC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSk7CiAg
ICAgICAgIHN0YXJ0ZWREcmFnID0gZmFsc2U7CkBAIC04NjYsNyArODgxLDcgQEAgYm9vbCBEcmFn
Q29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUs
IERyYWdPcGVyYXRpb24KICAgICAgICAgICAgIGRvSW1hZ2VEcmFnKGVsZW1lbnQsIGRyYWdPcmln
aW4sIGhpdFRlc3RSZXN1bHQuaW1hZ2VSZWN0KCksIGRhdGFUcmFuc2Zlciwgc3JjLCBtX2RyYWdP
ZmZzZXQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gREhUTUwgZGVmaW5lZCBk
cmFnIGltYWdlCi0gICAgICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBk
cmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOworICAgICAgICAgICAgZG9TeXN0
ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwgeyB9LCBkYXRhVHJhbnNmZXIs
IHNyYywgZmFsc2UpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghbGlua1VSTC5pc0VtcHR5
KCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25MaW5rKSkgewogICAg
ICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CkBAIC05MDIs
NyArOTE3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcmMsIGNv
bnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICAgICAgICAgIC8vIExhdGVy
IGNvZGUgZXhwZWN0cyB0aGUgZHJhZyBpbWFnZSB0byBiZSBzY2FsZWQgYnkgZGV2aWNlJ3Mgc2Nh
bGUgZmFjdG9yLgogICAgICAgICAgICAgZHJhZ0ltYWdlID0gc2NhbGVEcmFnSW1hZ2UoZHJhZ0lt
YWdlLCBGbG9hdFNpemUobV9wYWdlLmRldmljZVNjYWxlRmFjdG9yKCksIG1fcGFnZS5kZXZpY2VT
Y2FsZUZhY3RvcigpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFn
ZSwgZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9pbnQsIGRhdGFUcmFuc2Zlciwgc3JjLCB0cnVlKTsK
KyAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9p
bnQsIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIHRydWUpOwogI2lmIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCiAgICAgfSBlbHNlIGlmICghYXR0YWNobWVudFVSTC5pc0VtcHR5KCkgJiYgKG1f
ZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25BdHRhY2htZW50KSkgewogICAgICAg
ICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CkBAIC05MTgsMTMg
KzkzMywxMyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29u
c3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgZHJhZ0xvYyA9
IGRyYWdMb2NGb3JTZWxlY3Rpb25EcmFnKHNyYyk7CiAgICAgICAgICAgICBtX2RyYWdPZmZzZXQg
PSBJbnRQb2ludChkcmFnT3JpZ2luLngoKSAtIGRyYWdMb2MueCgpLCBkcmFnT3JpZ2luLnkoKSAt
IGRyYWdMb2MueSgpKTsKICAgICAgICAgfQotICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdl
LCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOworICAgICAg
ICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCB7IH0sIGRhdGFU
cmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKHN0YXRlLnR5cGUg
PT0gRHJhZ1NvdXJjZUFjdGlvbkRIVE1MKSB7CiAgICAgICAgIGlmIChkcmFnSW1hZ2UpIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX2RyYWdTb3VyY2VBY3Rpb24gJiBEcmFnU291cmNlQWN0aW9uREhU
TUwpOwogICAgICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERy
YWdTb3VyY2VBY3Rpb25ESFRNTCwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyKTsKLSAgICAgICAg
ICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFu
c2Zlciwgc3JjLCBmYWxzZSk7CisgICAgICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBk
cmFnTG9jLCBkcmFnT3JpZ2luLCB7IH0sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgc3RhcnRlZERyYWcgPSBmYWxzZTsKICAgICB9IGVsc2Ug
ewpAQCAtOTgxLDIwICs5OTYsMjUgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWco
RWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGMKICAgICAgICAg
cmV0dXJuOwogCiAgICAgZHJhZ0ltYWdlT2Zmc2V0ID0gbW91c2VEb3duUG9pbnQgKyBzY2FsZWRP
cmlnaW47Ci0gICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0ltYWdlT2Zmc2V0LCBkcmFn
T3JpZ2luLCBkYXRhVHJhbnNmZXIsIGZyYW1lLCBmYWxzZSk7CisgICAgZG9TeXN0ZW1EcmFnKGRy
YWdJbWFnZSwgZHJhZ0ltYWdlT2Zmc2V0LCBkcmFnT3JpZ2luLCBlbGVtZW50LmJvdW5kc0luUm9v
dFZpZXdTcGFjZSgpLCBkYXRhVHJhbnNmZXIsIGZyYW1lLCBmYWxzZSk7CiAKICAgICBkZWxldGVE
cmFnSW1hZ2UoZHJhZ0ltYWdlKTsKIH0KIAotdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1E
cmFnKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGRyYWdMb2MsIGNvbnN0IElu
dFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFt
ZSwgYm9vbCBmb3JMaW5rKQordm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1EcmFnKERyYWdJ
bWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGRyYWdMb2MsIGNvbnN0IEludFBvaW50JiBl
dmVudFBvcywgY29uc3QgSW50UmVjdCYgZHJhZ0ltYWdlQm91bmRzLCBEYXRhVHJhbnNmZXImIGRh
dGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGZvckxpbmspCiB7CisgICAgRmxvYXRQb2lu
dCBkcmFnSW1hZ2VBbmNob3IgPSB7IDAuNSwgMC41IH07CisgICAgaWYgKCFkcmFnSW1hZ2VCb3Vu
ZHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGRyYWdJbWFnZUFuY2hvci5zZXRYKChldmVudFBvcy54
KCkgLSBkcmFnSW1hZ2VCb3VuZHMueCgpKSAvIChmbG9hdClkcmFnSW1hZ2VCb3VuZHMud2lkdGgo
KSk7CisgICAgICAgIGRyYWdJbWFnZUFuY2hvci5zZXRZKChldmVudFBvcy55KCkgLSBkcmFnSW1h
Z2VCb3VuZHMueSgpKSAvIChmbG9hdClkcmFnSW1hZ2VCb3VuZHMuaGVpZ2h0KCkpOworICAgIH0K
KwogICAgIG1fZGlkSW5pdGlhdGVEcmFnID0gdHJ1ZTsKICAgICBtX2RyYWdJbml0aWF0b3IgPSBm
cmFtZS5kb2N1bWVudCgpOwogICAgIC8vIFByb3RlY3QgdGhpcyBmcmFtZSBhbmQgdmlldywgYXMg
YSBsb2FkIG1heSBvY2N1ciBtaWQgZHJhZyBhbmQgYXR0ZW1wdCB0byB1bmxvYWQgdGhpcyBmcmFt
ZQogICAgIFJlZjxNYWluRnJhbWU+IGZyYW1lUHJvdGVjdG9yKG1fcGFnZS5tYWluRnJhbWUoKSk7
CiAgICAgUmVmUHRyPEZyYW1lVmlldz4gdmlld1Byb3RlY3RvciA9IGZyYW1lUHJvdGVjdG9yLT52
aWV3KCk7Ci0gICAgbV9jbGllbnQuc3RhcnREcmFnKGltYWdlLCB2aWV3UHJvdGVjdG9yLT5yb290
Vmlld1RvQ29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZHJhZ0xvYykp
LAotICAgICAgICB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUudmlldygp
LT5jb250ZW50c1RvUm9vdFZpZXcoZXZlbnRQb3MpKSwgZGF0YVRyYW5zZmVyLCBmcmFtZVByb3Rl
Y3Rvci5nZXQoKSwgZm9yTGluayk7CisgICAgbV9jbGllbnQuc3RhcnREcmFnKGltYWdlLCB2aWV3
UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9v
dFZpZXcoZHJhZ0xvYykpLCB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUu
dmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZXZlbnRQb3MpKSwgZHJhZ0ltYWdlQW5jaG9yLCBk
YXRhVHJhbnNmZXIsIGZyYW1lUHJvdGVjdG9yLmdldCgpLCBmb3JMaW5rKTsKICAgICAvLyBEcmFn
Q2xpZW50OjpzdGFydERyYWcgY2FuIGNhdXNlIG91ciBQYWdlIHRvIGRpc3BlYXIsIGRlYWxsb2Nh
dGluZyB8dGhpc3wuCiAgICAgaWYgKCFmcmFtZVByb3RlY3Rvci0+cGFnZSgpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggZGVkZGFkODZlNmRk
Y2M2M2FlYjBlMmY4ZGNiN2RiY2YzZDdjNGNmMy4uNzgyMTA0ZjJkNmJhZWU0NDQ5NGM4ZDkwYTYz
NGJkNmFkODc2NDRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJhZ0ltYWdl
LmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVk
ZSAiVVJMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMSw3ICsxMTIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbW91c2VNb3ZlZEludG9Eb2N1bWVudChEb2N1
bWVudCopOwogCiAgICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxlbWVudCYsIGNvbnN0IEludFBv
aW50JiwgY29uc3QgSW50UmVjdCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgSW50UG9pbnQmKTsK
LSAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYs
IGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sIGZvckxpbmspOwor
ICAgICAgICB2b2lkIGRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50Jiwg
Y29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiBkcmFnSW1hZ2VCb3VuZHMsIERhdGFUcmFu
c2ZlciYsIEZyYW1lJiwgYm9vbCBmb3JMaW5rKTsKICAgICAgICAgdm9pZCBjbGVhbnVwQWZ0ZXJT
eXN0ZW1EcmFnKCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKERhdGFU
cmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKICNp
ZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aAppbmRleCBhMjg4NDE3OWY4NzU4ODQ1NTA3YjU1MGFjOGY0Zjc3YmEwZjk0MmZjLi5jM2I2NjVj
NmI1MjAzZWI2N2E2MmJiYjU1NGM2NjY5ODAxYjg1ZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
cmFnSW1hZ2UuaApAQCAtNjcsNiArNjcsMTAgQEAgdHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIERy
YWdJbWFnZVJlZjsKIHR5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKK3N0YXRpYyBjb25zdCBmbG9hdCBTZWxlY3Rpb25EcmFnSW1hZ2VQYWRk
aW5nID0gMTU7CisjZW5kaWYKKwogSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZik7
CiAKIC8vIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgYmUgbWVtb3J5IG5ldXRyYWwsIGVnLiBpZiB0
aGV5IHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBpbWFnZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaAppbmRleCA0MTcwNjBiYzg5ODQwODlh
ZTQxYWEzNWI5M2YwOTBkNmRlZDZiOTY3Li5iZTZjYmIxZGZlODA0NzBmOGY0MzUyMWU4MWIyZGI1
NDdkMDYyNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpEcmFn
RGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0Rh
dGEmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CiAgICAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0Zv
clBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB3aW5kb3dQb2ludCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZHJhZ1BvcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2ZW50UG9zLCBXZWJD
b3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcpIG92ZXJy
aWRlOworICAgIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBldmVudFBv
cywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYsIFdl
YkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZykgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWNsYXJl
QW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6
RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZy
YW1lKikgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lk
IGRlY2xhcmVBbmRXcml0ZUF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
V2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcGF0
aCwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCmluZGV4IDNlOTcwOWViMTg2ODFhOWY0Nzlk
ZTNlZTRkNmFjOWE2YTBjN2Q4OWUuLjRhODRiYzhlNTM2MmI5MWUwYzczZjA3MGNjYmE3MzNmZDBl
NzQ5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5tbQpAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OndpbGxQZXJm
b3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGFjdGlvbgogICAg
IFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyB3aWxs
UGVyZm9ybURyYWdTb3VyY2VBY3Rpb246KFdlYkRyYWdTb3VyY2VBY3Rpb24pYWN0aW9uIGZyb21Q
b2ludDptb3VzZURvd25Qb2ludCB3aXRoUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIHBhc3RlYm9h
cmRXaXRoTmFtZTpkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLm5hbWUoKV1dOwogfQogCi12b2lk
IFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBjb25zdCBJ
bnRQb2ludCYgYXQsIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVyJiBkYXRh
VHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKK3ZvaWQgV2ViRHJhZ0NsaWVu
dDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50JiBhdCwg
Y29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBjb25zdCBGbG9hdFBvaW50JiwgRGF0YVRyYW5zZmVy
JiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKIHsKICAgICBSZXRh
aW5QdHI8V2ViSFRNTFZpZXc+IGh0bWxWaWV3ID0gKFdlYkhUTUxWaWV3KilbW2tpdCgmZnJhbWUp
IGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAoIVtodG1sVmlldy5nZXQoKSBpc0tp
bmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKQpAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQg
V2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdT
b3VyY2VBY3Rpb24sIGNvbnN0CiB7CiB9CiAKLXZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFn
KERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFu
c2ZlciYsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJ
bWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEZsb2F0UG9p
bnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKaW5kZXggNmEwZGRj
ZWMzNjliZDA5ZWE4YjUyOWZmZjBiY2MxNjM0YjMzMzMyMC4uMzc5ODBhNGQzODdlMDRmN2ZjMWZl
NmU3YmI3NmEyMmYwNDYyNzNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFdlYkRy
YWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uIGFj
dGlvbiwgY29uc3QgSQogICAgICAgICBjb25zdF9jYXN0PFBhc3RlYm9hcmQmPihkYXRhVHJhbnNm
ZXIucGFzdGVib2FyZCgpKS5zZXRFeHRlcm5hbERhdGFPYmplY3QobmV3RGF0YU9iamVjdC5nZXQo
KSk7CiB9CiAKLXZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBpbWFn
ZSwgY29uc3QgSW50UG9pbnQmIGltYWdlT3JpZ2luLCBjb25zdCBJbnRQb2ludCYgZHJhZ1BvaW50
LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGlzTGluaykK
K3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3Qg
SW50UG9pbnQmIGltYWdlT3JpZ2luLCBjb25zdCBJbnRQb2ludCYgZHJhZ1BvaW50LCBjb25zdCBG
bG9hdFBvaW50JiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9v
bCBpc0xpbmspCiB7CiAgICAgLy9GSVhNRTogQWxsb3cgVUlEZWxlZ2F0ZSB0byBvdmVycmlkZSBi
ZWhhdmlvdXIgPHJkYXI6Ly9wcm9ibGVtLzUwMTU5NTM+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCmluZGV4IDQyNTcwMTA0NTg1N2U3YWRjN2VhOWI2MDIzZWE2ZGE5NjAyNWRh
MWIuLjEwYTFjODZiZmExOTE5ZTJlODdkYWMxN2Y5ZWIzNDk0OTJmODRlYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzgzLDcgKzM4Myw3IEBAIHB1YmxpYzoKIAog
I2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3Jt
RGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJv
b2wgaXNMaW5rKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0
aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBh
bmNob3JQb2ludCwgYm9vbCBpc0xpbmspID0gMDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU1NDJlZjQ5YzhmM2U0ODkzNGYwOGJlZDU0
MzVmNjQ1M2RjYjU5MTguLmQyZWY0MGIxMzlhNDUyNDkxNmM1MGIxMzk4NzhiYjZhYTdkNTVjMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgzNSw3ICs4MzUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWlu
dDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dCwgdW5zaWduZWQg
bnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCk7CiAgICAgdm9pZCBkcmFnRW5kZWQoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
Z2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9wZXJhdGlvbik7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBi
b29sIGlzTGlua0RyYWcpOworICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRy
YWdJbWFnZUhhbmRsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgZHJhZ0ltYWdlQW5jaG9y
LCBib29sIGlzTGlua0RyYWcpOwogICAgIHZvaWQgc2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGlt
YWdlSGFuZGxlLCB1aW50NjRfdCBpbWFnZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNv
bnN0IFN0cmluZyYgZXh0ZW5zaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0
cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHZpc2libGVVUkws
IGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBhcmNoaXZlSGFuZGxlLCB1aW50NjRfdCBhcmNo
aXZlU2l6ZSk7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGYyMzc0Zjc1
NzEyNWRjMTg5ZDU4M2M0MDczMmViY2Y3NWJmMjc2MzYuLjlkZjMwMjU0MmNmOTYyYzc5MThiYTQ2
YzcxOWVmN2E4OTZhMmQwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzA3LDcgKzMwNyw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAgICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90
IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQsIHVuc2lnbmVkIG51bWJl
ck9mSXRlbXNUb0JlQWNjZXB0ZWQpCiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICBTZXREcmFnSW1hZ2UoV2ViQ29yZTo6SW50UG9pbnQgY2xp
ZW50UG9zaXRpb24sIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgZHJhZ0ltYWdlLCBi
b29sIGxpbmtEcmFnKQorICAgIFNldERyYWdJbWFnZShXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQ
b3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBkcmFnSW1hZ2UsIFdlYkNv
cmU6OkZsb2F0UG9pbnQgZHJhZ0ltYWdlQW5jaG9yLCBib29sIGxpbmtEcmFnKQogICAgIFNldFBy
b21pc2VkRGF0YUZvckltYWdlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgV2ViS2l0OjpTaGFyZWRN
ZW1vcnk6OkhhbmRsZSBpbWFnZUhhbmRsZSwgdWludDY0X3QgaW1hZ2VTaXplLCBTdHJpbmcgZmls
ZW5hbWUsIFN0cmluZyBleHRlbnNpb24sIFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgU3RyaW5n
IHZpc2libGVVUkwsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgYXJjaGl2ZUhhbmRsZSwg
dWludDY0X3QgYXJjaGl2ZVNpemUpCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAg
ICBTZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3Ry
aW5nIGZpbGVuYW1lLCBTdHJpbmcgZXh0ZW5zaW9uLCBTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmws
IFN0cmluZyB2aXNpYmxlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDIwNjUxYTNjNzY5MzQ3OGQzNDViMmM3ODhjMGM5MjQ3
OGJmZmZkZTMuLmM0MDdlOGNiNGUyZjhkMTg1ZWIwMTRlNWQxNmUyODBkNTMxODJlNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAg
LTIwMyw3ICsyMDMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04p
CiAgICAgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigp
IG92ZXJyaWRlOwotICAgIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0RGF0
YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3Np
dGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspIG92ZXJyaWRlOwogI2VuZGlm
CiAKICAgICBXS0NvbnRlbnRWaWV3ICptX2NvbnRlbnRWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggY2QzM2Y5Y2Y0MWVm
ZDkyZmRiZTcxOGUwOGRiM2FlZWY5MDNiNTQxZi4uMTgzMTI1MDZlNWEyODgyMzAwNTM1OTdkOTg1
ZjQ1NjZhZWZiNGNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCkBAIC03NjgsOSArNzY4LDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKQogICAgIFtt
X2NvbnRlbnRWaWV3IF9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlv
bl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aElt
YWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGltYWdlLCBib29sIGlzTGluaykKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0
RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwg
Y29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25zdCBGbG9hdFBvaW50JiBh
bmNob3JQb2ludCwgYm9vbCBpc0xpbmspCiB7Ci0gICAgW21fY29udGVudFZpZXcgX3N0YXJ0RGF0
YUludGVyYWN0aW9uV2l0aEltYWdlOlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlKS0+bWFr
ZUNHSW1hZ2VDb3B5KCkgYXRDbGllbnRQb3NpdGlvbjpDR1BvaW50TWFrZShjbGllbnRQb3NpdGlv
bi54KCksIGNsaWVudFBvc2l0aW9uLnkoKSkgaXNMaW5rOmlzTGlua107CisgICAgW21fY29udGVu
dFZpZXcgX3N0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOlNoYXJlYWJsZUJpdG1hcDo6Y3Jl
YXRlKGltYWdlKS0+bWFrZUNHSW1hZ2VDb3B5KCkgYXRDbGllbnRQb3NpdGlvbjpDR1BvaW50TWFr
ZShjbGllbnRQb3NpdGlvbi54KCksIGNsaWVudFBvc2l0aW9uLnkoKSkgYW5jaG9yUG9pbnQ6YW5j
aG9yUG9pbnQgaXNMaW5rOmlzTGlua107CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXgg
ZmViMDE2YjFlN2I3OGIxZjMwNDEzNTZjZjAzOGU0YzBmYzg1YjNiNy4uMjNkMDFmNzQwZmQ2MjU3
OWU4ZWQyODgwNjI1ZWJhMWIzN2I2ZjI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0yNTIsNyArMjUy
LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIAogI2lmIEVOQUJMRShEQVRBX0lO
VEVSQUNUSU9OKQogLSAodm9pZClfZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJP
cGVyYXRpb247Ci0tICh2b2lkKV9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZTooUmV0YWlu
UHRyPENHSW1hZ2VSZWY+KWltYWdlIGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xpZW50UG9z
aXRpb24gaXNMaW5rOihCT09MKWlzTGluazsKKy0gKHZvaWQpX3N0YXJ0RGF0YUludGVyYWN0aW9u
V2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2UgYXRDbGllbnRQb3NpdGlvbjoo
Q0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBp
c0xpbms6KEJPT0wpaXNMaW5rOwogI2VuZGlmCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRleCBjZWRiN2IyMTA4N2EwZmZlNDM4ZjNh
YWQ1MjYzN2Q5NjM4YjkyZDMwLi5mZWU5YzU0OTRhMzhhZWQ5N2UxNjk1Yjg3YjVkN2I3ODFiOGVj
MTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5o
CkBAIC0yMzQsNyArMjM0LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQogICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRp
b24oKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUmIGltYWdlLCBib29sIGlzTGluaykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFy
dERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIGJvb2wgaXNMaW5rKSBvdmVycmlkZTsKICNl
bmRpZgogCiAgICAgTlNWaWV3ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCBkM2FjYzU4NzkwNzM4M2M4NGFhYjQ4NDMzOGYx
MjIyNzlhMTE4OTExLi4xOGZhZjliNTg4NWQxYWI1Y2M2OWZiOGM3YWNkNGRiY2FiMGU1MDg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAg
LTg4MSw3ICs4ODEsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVy
YWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBtZS4K
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2Uo
Y29uc3QgSW50UG9pbnQmLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIGJvb2wpCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBJ
bnRQb2ludCYsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgY29uc3QgRmxvYXRQb2lu
dCYsIGJvb2wpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBtZS4KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggYjdjYTI3ZTBh
YWExM2RmNjkwMTVmNjNhNGQxNjMzMTU5ZTE1MTc2ZS4uNjAxM2I5N2IyNDNjODc1MzYxMWFmZmE5
NTk2NmRlNjE3MmUxZjM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQYWdlUHJveHlNYWMubW0KQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dHlwZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9pZCBXZWJQYWdlUHJv
eHk6OnNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24s
IGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5kbGUsIGJvb2wgaXNM
aW5rRHJhZykKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
ZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBpc0xpbmtEcmFnKQogewog
ICAgIGlmIChhdXRvIGRyYWdJbWFnZSA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGRyYWdJbWFn
ZUhhbmRsZSkpCiAgICAgICAgIG1fcGFnZUNsaWVudC5zZXREcmFnSW1hZ2UoY2xpZW50UG9zaXRp
b24sIFdURk1vdmUoZHJhZ0ltYWdlKSwgaXNMaW5rRHJhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcApp
bmRleCBhOTVkMjYwZDlkMmQ0OGIyMGJlOGJjODg3NjU5MzZiYTA5MTgyMzc0Li5hMDZiMjZjZDk3
NGQzMjczNTIyZWQyMzgyMDE1MzBjNGE1ZGQ0OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAg
LTU3LDcgKzU3LDcgQEAgRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNl
QWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JikKIH0KIAogI2lmICFQTEFURk9STShD
T0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKLXZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERy
YWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2Zl
ciYsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFn
ZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQm
LCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmgKaW5kZXggYzk1N2M4ZWEwOWI5NDhkY2YxYTVkMjM2MGViNzRmNGRiNTA0NzVhNy4uNTZkYzEz
Y2FjYTc1Y2I2NzRlNjIwMWIzZjA3ODllN2ViOTc4ZTc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rp
b24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEmKSBvdmVycmlkZTsK
ICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9p
bnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVycmlkZTsKIAotICAg
IHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2ZW50UG9z
LCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcg
PSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdl
UmVmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZXZlbnRQb3MsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGRyYWdJ
bWFnZUFuY2hvciwgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJiwgV2ViQ29yZTo6RnJhbWUmLCBib29s
IGxpbmtEcmFnID0gZmFsc2UpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
dm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJEcmFnQ2xpZW50R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdDbGllbnRHdGsu
Y3BwCmluZGV4IGY1Y2FkYzc3YTYxY2VlMDNlZTJlYTViMzY5YjQxMjU5YzgzZTVmNzYuLjNkZWFm
ZTE3YTU3ZDE1YmU0M2NhMmRkNmRlNDcxNzE5YWM1YTYxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdDbGllbnRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRy
YWdDbGllbnRHdGsuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBjb252ZXJ0Q2Fpcm9TdXJmYWNlVG9TaGFyZWFibGVCaXRtYXAoY2Fpcm9fc3VyZmFj
CiAgICAgcmV0dXJuIGJpdG1hcDsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWco
RHJhZ0ltYWdlUmVmIGRyYWdJbWFnZSwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVy
LCBGcmFtZSYsIGJvb2wpCit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VS
ZWYgZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFUcmFuc2ZlciYgZGF0
YVRyYW5zZmVyLCBGcmFtZSYsIGJvb2wpCiB7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4g
Yml0bWFwID0gY29udmVydENhaXJvU3VyZmFjZVRvU2hhcmVhYmxlQml0bWFwKGRyYWdJbWFnZSk7
CiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdD
bGllbnRNYWMubW0KaW5kZXggYjg4Njk1NDYyYmU4OTJmZmJjMDg0YWNmNGM5NTEyZmYwZDEwZTlm
ZS4uMzY2ZjU3M2IxMGIzYzg4MWNlZGE5ZGE3YTU5M2VkZDMwZGE2MTA3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVu
dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRy
PFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNv
bnN0IEluCiAgICAgcmV0dXJuIFdURk1vdmUoYml0bWFwKTsKIH0KIAotdm9pZCBXZWJEcmFnQ2xp
ZW50OjpzdGFydERyYWcoUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBjb25zdCBJbnRQb2ludCYg
cG9pbnQsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmIGZyYW1lLCBib29s
IGxpbmtEcmFnKQordm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoUmV0YWluUHRyPE5TSW1h
Z2U+IGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IEludFBvaW50JiwgY29uc3Qg
RmxvYXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykK
IHsKICAgICBJbnRTaXplIGJpdG1hcFNpemUoW2ltYWdlIHNpemVdKTsKICAgICBSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPiBiaXRtYXAgPSBjb252ZXJ0SW1hZ2VUb0JpdG1hcChpbWFnZS5nZXQoKSwg
Yml0bWFwU2l6ZSwgZnJhbWUpOwpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6
OnN0YXJ0RHJhZyhSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2lu
dCwgYwogICAgIG1fcGFnZS0+d2lsbFN0YXJ0RHJhZygpOwogCiAgICAgLy8gRklYTUU6IFNlZW1z
IHRoaXMgbWVzc2FnZSBzaG91bGQgYmUgbmFtZWQgU3RhcnREcmFnLCBub3QgU2V0RHJhZ0ltYWdl
LgotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXREcmFnSW1hZ2Uo
ZnJhbWUudmlldygpLT5jb250ZW50c1RvV2luZG93KHBvaW50KSwgaGFuZGxlLCBsaW5rRHJhZykp
OworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXREcmFnSW1hZ2Uo
ZnJhbWUudmlldygpLT5jb250ZW50c1RvV2luZG93KHBvaW50KSwgaGFuZGxlLCB7IH0sIGxpbmtE
cmFnKSk7CiB9CiAKIHN0YXRpYyBXZWJDb3JlOjpDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoRWxl
bWVudCYgZWxlbWVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300348</attachid>
            <date>2017-02-01 13:16:45 -0800</date>
            <delta_ts>2017-02-02 13:06:37 -0800</delta_ts>
            <desc>Fix Windows build</desc>
            <filename>bug-167690-20170201131433.patch</filename>
            <type>text/plain</type>
            <size>32415</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWNkMTFmZWNiZjJhZWI1
YTgyMDNlMDZiNzk5ZWMwZWJmZDQ5MGJlMC4uZTM1MzFjYjQ4ZGE0ZDEwZTQ4N2Y1ZjViZTg1ZmMy
MmFlYzE4MzRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYWcgaW1hZ2Vz
IHNob3VsZCBiZSBhbmNob3JlZCB0byB0aGUgbW91c2UgbG9jYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY5MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAyOTUyNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyBsb2dpYyB0byBjb21wdXRlIHRoZSBtb3VzZSBhbmNob3IgcG9pbnQu
IFRoaXMgaXMgYSBwb2ludCBpbiB0aGUgdW5pdCBzcXVhcmUgaW5kaWNhdGluZyB3aGVyZSB0aGUg
ZHJhZworICAgICAgICBvcmlnaW4gaXMgcmVsYXRpdmUgdG8gdGhlIGJvdW5kcyBvZiB0aGUgZHJh
ZyBpbWFnZS4gVGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLCBzaW5jZSB0aGlzIGFuY2hvciBw
b2ludCBpcyBub3QKKyAgICAgICAgdXNlZCBieSBhbnkgY2xpZW50IHlldDsgdGhpcyBwYXRjaCBv
bmx5IGNvbXB1dGVzIGFuZCB2ZW5kcyB0aGlzIGluZm9ybWF0aW9uIGZyb20gV2ViQ29yZS4KKwor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0Ns
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xs
ZXI6OmRvU3lzdGVtRHJhZyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorCiAyMDE3LTAyLTAxICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3QgImZpbGVzSGF2ZVNhbWVW
b2x1bWUiIHByZWRpY2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQzZjliZjA0MjM2M2QzZjZhMTlm
ZGVmYzIxNWM1NDBiMTVhZDE3YTYuLjFmYWNjZDM1Mjk0ZmIyMjUxNDA2ZTA3ODMwOTc1NjU4NGZi
YTMyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNy0wMi0wMSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBEcmFnIGltYWdl
cyBzaG91bGQgYmUgYW5jaG9yZWQgdG8gdGhlIG1vdXNlIGxvY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2OTAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMwMjk1MjYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZHMgc29tZSBwbHVtYmluZyBmb3IgdGhlIGFuY2hvciBwb2ludCBpbiB0
aGUgV0sxIGNsaWVudCBsYXllci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToKKworMjAxNy0wMi0wMSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0sxXSBBbGxvdyB0aGUg
ZHJhZyBjbGllbnQgdG8gYmUgaW5pdGlhbGl6ZWQgb24gcGxhdGZvcm1zIHRoYXQgZG8gbm90IHN1
cHBvcnQgZHJhZyBhbmQgZHJvcAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY3Njk1CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMwNTM5MD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCA4ZThhNjVlMGVhMWVmYjcwMmI3NzgzZDhlYTYxMWMyNjYzY2YyMmYw
Li4yMmVhNDJlYjM4MTQyNzhkYzRhY2FmNjJlNDU0OGRmZTc2ZjM5YzIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgRHJhZyBpbWFnZXMgc2hvdWxkIGJlIGFuY2hvcmVk
IHRvIHRoZSBtb3VzZSBsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDI5NTI2MT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNv
bWUgcGx1bWJpbmcgZm9yIHRoZSBhbmNob3IgcG9pbnQgaW4gdGhlIFdLMSBjbGllbnQgbGF5ZXIu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5oOgorCiAyMDE3LTAxLTI4ICBZb2F2IFdlaXNzICA8eW9hdkB5b2F2LndzPgog
CiAgICAgICAgIEFkZCBMaW5rIFByZWxvYWQgYXMgYW4gb2ZmLWJ5LWRlZmF1bHQgZXhwZXJpbWVu
dGFsIGZlYXR1cmUgbWVudSBpdGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDRkZTU1YzFmZmUzMmM3NjdjN2Rk
ZDEyYWU3MmJlMzQ0MmU2NTgyMzUuLjRmM2I5YWUzNDc0ZDc4MjBjNWVkMDljYTMyMWJhZjkxMWQ5
ODJkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNy0wMi0wMSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBEcmFnIGltYWdlcyBzaG91
bGQgYmUgYW5jaG9yZWQgdG8gdGhlIG1vdXNlIGxvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMwMjk1MjYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZHMgc29tZSBwbHVtYmluZyBmb3IgdGhlIG1vdXNlIGFuY2hvciBwb2ludCBpbiB0
aGUgVUkgcHJvY2Vzcy4gQWRkaXRpb25hbGx5LCByZWZhY3RvcnMgc29tZSB1bnJlbGF0ZWQgY29k
ZQorICAgICAgICBmb3IgaGFuZGxpbmcgZGF0YSBpbnRlcmFjdGlvbi4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0
aW9uV2l0aEltYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXREcmFnSW1hZ2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToKKwogMjAxNy0wMi0wMSAgQW5kcmVhcyBLbGluZyAg
PGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBhbHdheXNSdW5zQXRC
YWNrZ3JvdW5kUHJpb3JpdHkgV0syIHNldHRpbmcgdXNpbmcgdGhyZWFkIFFvUy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggYTUyNzljMmJlMGIzZmNlOTRiM2RkMTQ3
YzMzMGY5MWM3MDg0YjhmYy4uZjAwZmQwMDQyOWU1NzBhMjJhYWFjZWEzNTliNzcxOTkxNzZhZGRi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTEzMCw3ICsxMzAs
NyBAQCBjbGFzcyBFbXB0eURyYWdDbGllbnQgZmluYWwgOiBwdWJsaWMgRHJhZ0NsaWVudCB7CiAg
ICAgdm9pZCB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiwgY29u
c3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImKSBmaW5hbCB7IH0KICAgICBEcmFnRGVzdGluYXRp
b25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgRHJhZ0RhdGEmKSBmaW5hbCB7IHJldHVy
biBEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lOyB9CiAgICAgRHJhZ1NvdXJjZUFjdGlvbiBkcmFn
U291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JikgZmluYWwgeyByZXR1cm4g
RHJhZ1NvdXJjZUFjdGlvbk5vbmU7IH0KLSAgICB2b2lkIHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYs
IGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYs
IGJvb2wpIGZpbmFsIHsgfQorICAgIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3Qg
SW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNm
ZXImLCBGcmFtZSYsIGJvb2wpIGZpbmFsIHsgfQogICAgIHZvaWQgZHJhZ0NvbnRyb2xsZXJEZXN0
cm95ZWQoKSBmaW5hbCB7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKaW5kZXggOTlh
NzZlYzU4ZDRmY2NkNmYzZjYwZjc2N2I5NjY3MmU1ZGM5YzUxOC4uMWFjMTkxNmM0ZDg1ZGU4ODg4
MWU2NjA0OGI5ZTM1ZjM4OGYwMjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJhZ0lt
YWdlLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKGNvbnN0IERyYWdEYXRh
JikgPSAwOwogICAgIHZpcnR1YWwgRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFz
a0ZvclBvaW50KGNvbnN0IEludFBvaW50JiByb290Vmlld1BvaW50KSA9IDA7CiAgICAgCi0gICAg
dmlydHVhbCB2b2lkIHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiBkcmFn
SW1hZ2VPcmlnaW4sIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVyJiwgRnJh
bWUmLCBib29sIGxpbmtEcmFnID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRE
cmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3Qg
SW50UG9pbnQmIGV2ZW50UG9zLCBjb25zdCBGbG9hdFBvaW50JiBkcmFnSW1hZ2VBbmNob3IsIERh
dGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCBsaW5rRHJhZyA9IGZhbHNlKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRyYWdFbmRlZCgpIHsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGU0N2VkMzFkNDVmMzI0YzZkM2ExMDFk
MWUwYWU0YThlMWM3NDAzOTguLjkzZTQ4N2I3Yzc4MTZiZTYyNDIyNWU4NTM4MmJmNGVlNDI3NjE5
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2xpZW50UmVjdC5o
IgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpAQCAtNzYsNiArNzcsMTEgQEAKICNpbmNsdWRlICJU
ZXh0RXZlbnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5o
IgorCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisjaW5jbHVkZSAiU2VsZWN0aW9uUmVj
dC5oIgorI2VuZGlmCisKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjZW5kaWYKQEAgLTgxMCw2ICs4MTYsNyBAQCBib29sIERyYWdDb250cm9s
bGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09w
ZXJhdGlvbgogICAgIEFTU0VSVChzdGF0ZS5zb3VyY2UpOwogICAgIEVsZW1lbnQmIGVsZW1lbnQg
PSAqc3RhdGUuc291cmNlOwogCisgICAgSW50UmVjdCBkcmFnSW1hZ2VCb3VuZHM7CiAgICAgSW1h
Z2UqIGltYWdlID0gZ2V0SW1hZ2UoZWxlbWVudCk7CiAgICAgaWYgKHN0YXRlLnR5cGUgPT0gRHJh
Z1NvdXJjZUFjdGlvblNlbGVjdGlvbikgewogICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0
ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CkBAIC04MTgsNiArODI1LDE0IEBAIGJvb2wgRHJhZ0NvbnRy
b2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFn
T3BlcmF0aW9uCiAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gc3Jj
LnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgICAgICAgICBBU1NFUlQoc2Vs
ZWN0aW9uUmFuZ2UpOwogCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgICAgICAg
ICBWZWN0b3I8U2VsZWN0aW9uUmVjdD4gc2VsZWN0aW9uUmVjdHM7CisgICAgICAgICAgICBzZWxl
Y3Rpb25SYW5nZS0+Y29sbGVjdFNlbGVjdGlvblJlY3RzKHNlbGVjdGlvblJlY3RzKTsKKyAgICAg
ICAgICAgIGZvciAoYXV0byBzZWxlY3Rpb25SZWN0IDogc2VsZWN0aW9uUmVjdHMpCisgICAgICAg
ICAgICAgICAgZHJhZ0ltYWdlQm91bmRzLnVuaXRlKHNlbGVjdGlvblJlY3QucmVjdCgpKTsKKyAg
ICAgICAgICAgIGRyYWdJbWFnZUJvdW5kcy5pbmZsYXRlKFNlbGVjdGlvbkRyYWdJbWFnZVBhZGRp
bmcpOworI2VuZGlmCisKICAgICAgICAgICAgIHNyYy5lZGl0b3IoKS53aWxsV3JpdGVTZWxlY3Rp
b25Ub1Bhc3RlYm9hcmQoc2VsZWN0aW9uUmFuZ2UuZ2V0KCkpOwogCiAgICAgICAgICAgICBpZiAo
ZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKHNyYy5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFy
dCgpKSkKQEAgLTg0Myw3ICs4NTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWco
RnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAg
ICBpZiAoIWRyYWdJbWFnZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBk
b1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIs
IHNyYywgZmFsc2UpOworICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBk
cmFnT3JpZ2luLCBkcmFnSW1hZ2VCb3VuZHMsIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAg
ICAgfSBlbHNlIGlmICghc3JjLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkuY2FuRGlzcGxh
eShsaW5rVVJMKSkgewogICAgICAgICBzcmMuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJOb3QgYWxsb3dl
ZCB0byBkcmFnIGxvY2FsIHJlc291cmNlOiAiICsgbGlua1VSTC5zdHJpbmdDZW50ZXJFbGxpcHNp
emVkVG9MZW5ndGgoKSk7CiAgICAgICAgIHN0YXJ0ZWREcmFnID0gZmFsc2U7CkBAIC04NjYsNyAr
ODgxLDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0
IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICAgICAgICAgIGRvSW1hZ2VEcmFn
KGVsZW1lbnQsIGRyYWdPcmlnaW4sIGhpdFRlc3RSZXN1bHQuaW1hZ2VSZWN0KCksIGRhdGFUcmFu
c2Zlciwgc3JjLCBtX2RyYWdPZmZzZXQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
Ly8gREhUTUwgZGVmaW5lZCBkcmFnIGltYWdlCi0gICAgICAgICAgICBkb1N5c3RlbURyYWcoZHJh
Z0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOwor
ICAgICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwg
eyB9LCBkYXRhVHJhbnNmZXIsIHNyYywgZmFsc2UpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlm
ICghbGlua1VSTC5pc0VtcHR5KCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VB
Y3Rpb25MaW5rKSkgewogICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFz
RGF0YSgpKSB7CkBAIC05MDIsNyArOTE3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnRE
cmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAg
ICAgICAgICAgIC8vIExhdGVyIGNvZGUgZXhwZWN0cyB0aGUgZHJhZyBpbWFnZSB0byBiZSBzY2Fs
ZWQgYnkgZGV2aWNlJ3Mgc2NhbGUgZmFjdG9yLgogICAgICAgICAgICAgZHJhZ0ltYWdlID0gc2Nh
bGVEcmFnSW1hZ2UoZHJhZ0ltYWdlLCBGbG9hdFNpemUobV9wYWdlLmRldmljZVNjYWxlRmFjdG9y
KCksIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZG9T
eXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9pbnQsIGRhdGFUcmFu
c2Zlciwgc3JjLCB0cnVlKTsKKyAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xv
YywgbW91c2VEcmFnZ2VkUG9pbnQsIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIHRydWUpOwogI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgfSBlbHNlIGlmICghYXR0YWNobWVudFVS
TC5pc0VtcHR5KCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25BdHRh
Y2htZW50KSkgewogICAgICAgICBpZiAoIWRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkuaGFzRGF0
YSgpKSB7CkBAIC05MTgsMTMgKzkzMywxMyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERy
YWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAg
ICAgICAgICAgZHJhZ0xvYyA9IGRyYWdMb2NGb3JTZWxlY3Rpb25EcmFnKHNyYyk7CiAgICAgICAg
ICAgICBtX2RyYWdPZmZzZXQgPSBJbnRQb2ludChkcmFnT3JpZ2luLngoKSAtIGRyYWdMb2MueCgp
LCBkcmFnT3JpZ2luLnkoKSAtIGRyYWdMb2MueSgpKTsKICAgICAgICAgfQotICAgICAgICBkb1N5
c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIHNy
YywgZmFsc2UpOworICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFn
T3JpZ2luLCB7IH0sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CiAjZW5kaWYKICAgICB9IGVs
c2UgaWYgKHN0YXRlLnR5cGUgPT0gRHJhZ1NvdXJjZUFjdGlvbkRIVE1MKSB7CiAgICAgICAgIGlm
IChkcmFnSW1hZ2UpIHsKICAgICAgICAgICAgIEFTU0VSVChtX2RyYWdTb3VyY2VBY3Rpb24gJiBE
cmFnU291cmNlQWN0aW9uREhUTUwpOwogICAgICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1E
cmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25ESFRNTCwgZHJhZ09yaWdpbiwgZGF0YVRy
YW5zZmVyKTsKLSAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRy
YWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CisgICAgICAgICAgICBkb1N5c3Rl
bURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCB7IH0sIGRhdGFUcmFuc2Zlciwg
c3JjLCBmYWxzZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgc3RhcnRlZERyYWcgPSBm
YWxzZTsKICAgICB9IGVsc2UgewpAQCAtOTgxLDIwICs5OTYsMjUgQEAgdm9pZCBEcmFnQ29udHJv
bGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UG9pbnQmIGRyYWdP
cmlnaW4sIGMKICAgICAgICAgcmV0dXJuOwogCiAgICAgZHJhZ0ltYWdlT2Zmc2V0ID0gbW91c2VE
b3duUG9pbnQgKyBzY2FsZWRPcmlnaW47Ci0gICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJh
Z0ltYWdlT2Zmc2V0LCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIsIGZyYW1lLCBmYWxzZSk7Cisg
ICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0ltYWdlT2Zmc2V0LCBkcmFnT3JpZ2luLCBl
bGVtZW50LmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpLCBkYXRhVHJhbnNmZXIsIGZyYW1lLCBmYWxz
ZSk7CiAKICAgICBkZWxldGVEcmFnSW1hZ2UoZHJhZ0ltYWdlKTsKIH0KIAotdm9pZCBEcmFnQ29u
dHJvbGxlcjo6ZG9TeXN0ZW1EcmFnKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQm
IGRyYWdMb2MsIGNvbnN0IEludFBvaW50JiBldmVudFBvcywgRGF0YVRyYW5zZmVyJiBkYXRhVHJh
bnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBmb3JMaW5rKQordm9pZCBEcmFnQ29udHJvbGxlcjo6
ZG9TeXN0ZW1EcmFnKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGRyYWdMb2Ms
IGNvbnN0IEludFBvaW50JiBldmVudFBvcywgY29uc3QgSW50UmVjdCYgZHJhZ0ltYWdlQm91bmRz
LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGZvckxpbmsp
CiB7CisgICAgRmxvYXRQb2ludCBkcmFnSW1hZ2VBbmNob3IgPSB7IDAuNSwgMC41IH07CisgICAg
aWYgKCFkcmFnSW1hZ2VCb3VuZHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGRyYWdJbWFnZUFuY2hv
ci5zZXRYKChldmVudFBvcy54KCkgLSBkcmFnSW1hZ2VCb3VuZHMueCgpKSAvIChmbG9hdClkcmFn
SW1hZ2VCb3VuZHMud2lkdGgoKSk7CisgICAgICAgIGRyYWdJbWFnZUFuY2hvci5zZXRZKChldmVu
dFBvcy55KCkgLSBkcmFnSW1hZ2VCb3VuZHMueSgpKSAvIChmbG9hdClkcmFnSW1hZ2VCb3VuZHMu
aGVpZ2h0KCkpOworICAgIH0KKwogICAgIG1fZGlkSW5pdGlhdGVEcmFnID0gdHJ1ZTsKICAgICBt
X2RyYWdJbml0aWF0b3IgPSBmcmFtZS5kb2N1bWVudCgpOwogICAgIC8vIFByb3RlY3QgdGhpcyBm
cmFtZSBhbmQgdmlldywgYXMgYSBsb2FkIG1heSBvY2N1ciBtaWQgZHJhZyBhbmQgYXR0ZW1wdCB0
byB1bmxvYWQgdGhpcyBmcmFtZQogICAgIFJlZjxNYWluRnJhbWU+IGZyYW1lUHJvdGVjdG9yKG1f
cGFnZS5tYWluRnJhbWUoKSk7CiAgICAgUmVmUHRyPEZyYW1lVmlldz4gdmlld1Byb3RlY3RvciA9
IGZyYW1lUHJvdGVjdG9yLT52aWV3KCk7Ci0gICAgbV9jbGllbnQuc3RhcnREcmFnKGltYWdlLCB2
aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1Rv
Um9vdFZpZXcoZHJhZ0xvYykpLAotICAgICAgICB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29u
dGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZXZlbnRQb3MpKSwgZGF0YVRy
YW5zZmVyLCBmcmFtZVByb3RlY3Rvci5nZXQoKSwgZm9yTGluayk7CisgICAgbV9jbGllbnQuc3Rh
cnREcmFnKGltYWdlLCB2aWV3UHJvdGVjdG9yLT5yb290Vmlld1RvQ29udGVudHMoZnJhbWUudmll
dygpLT5jb250ZW50c1RvUm9vdFZpZXcoZHJhZ0xvYykpLCB2aWV3UHJvdGVjdG9yLT5yb290Vmll
d1RvQ29udGVudHMoZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZXZlbnRQb3MpKSwg
ZHJhZ0ltYWdlQW5jaG9yLCBkYXRhVHJhbnNmZXIsIGZyYW1lUHJvdGVjdG9yLmdldCgpLCBmb3JM
aW5rKTsKICAgICAvLyBEcmFnQ2xpZW50OjpzdGFydERyYWcgY2FuIGNhdXNlIG91ciBQYWdlIHRv
IGRpc3BlYXIsIGRlYWxsb2NhdGluZyB8dGhpc3wuCiAgICAgaWYgKCFmcmFtZVByb3RlY3Rvci0+
cGFnZSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgK
aW5kZXggZGVkZGFkODZlNmRkY2M2M2FlYjBlMmY4ZGNiN2RiY2YzZDdjNGNmMy4uNzgyMTA0ZjJk
NmJhZWU0NDQ5NGM4ZDkwYTYzNGJkNmFkODc2NDRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAj
aW5jbHVkZSAiRHJhZ0ltYWdlLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEx
MSw3ICsxMTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbW91c2VNb3Zl
ZEludG9Eb2N1bWVudChEb2N1bWVudCopOwogCiAgICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxl
bWVudCYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYsIERhdGFUcmFuc2ZlciYsIEZy
YW1lJiwgSW50UG9pbnQmKTsKLSAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVm
LCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUm
LCBib29sIGZvckxpbmspOworICAgICAgICB2b2lkIGRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYs
IGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiBkcmFnSW1h
Z2VCb3VuZHMsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCBmb3JMaW5rKTsKICAgICAgICAg
dm9pZCBjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGxhYmVsKTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRleCBhMjg4NDE3OWY4NzU4ODQ1NTA3YjU1MGFjOGY0Zjc3
YmEwZjk0MmZjLi5jM2I2NjVjNmI1MjAzZWI2N2E2MmJiYjU1NGM2NjY5ODAxYjg1ZTI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaApAQCAtNjcsNiArNjcsMTAgQEAgdHlwZWRlZiBj
YWlyb19zdXJmYWNlX3QqIERyYWdJbWFnZVJlZjsKIHR5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVm
OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyBjb25zdCBmbG9hdCBTZWxl
Y3Rpb25EcmFnSW1hZ2VQYWRkaW5nID0gMTU7CisjZW5kaWYKKwogSW50U2l6ZSBkcmFnSW1hZ2VT
aXplKERyYWdJbWFnZVJlZik7CiAKIC8vIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgYmUgbWVtb3J5
IG5ldXRyYWwsIGVnLiBpZiB0aGV5IHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBpbWFnZSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaAppbmRl
eCA0MTcwNjBiYzg5ODQwODlhZTQxYWEzNWI5M2YwOTBkNmRlZDZiOTY3Li5iZTZjYmIxZGZlODA0
NzBmOGY0MzUyMWU4MWIyZGI1NDdkMDYyNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoK
ICAgICBXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29u
c3QgV2ViQ29yZTo6RHJhZ0RhdGEmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYWdDb250cm9sbGVy
RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFn
U291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB3aW5kb3dQ
b2ludCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVm
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ1BvcywgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGV2ZW50UG9zLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFtZSYsIGJv
b2wgbGlua0RyYWcpIG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJ
bWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBldmVudFBvcywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdlYkNvcmU6
OkRhdGFUcmFuc2ZlciYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZykgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSwgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0
cmluZyYsIFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICB2b2lkIGRlY2xhcmVBbmRXcml0ZUF0dGFjaG1lbnQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYs
IGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCmluZGV4IDNl
OTcwOWViMTg2ODFhOWY0NzlkZTNlZTRkNmFjOWE2YTBjN2Q4OWUuLjRhODRiYzhlNTM2MmI5MWUw
YzczZjA3MGNjYmE3MzNmZDBlNzQ5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQpAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFdlYkRy
YWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNl
QWN0aW9uIGFjdGlvbgogICAgIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3Om1fd2ViVmlldyB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb246KFdlYkRyYWdTb3VyY2VB
Y3Rpb24pYWN0aW9uIGZyb21Qb2ludDptb3VzZURvd25Qb2ludCB3aXRoUGFzdGVib2FyZDpbTlNQ
YXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLm5h
bWUoKV1dOwogfQogCi12b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYg
ZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2ludCYgYXQsIGNvbnN0IEludFBvaW50JiBldmVudFBvcywg
RGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5rRHJhZykK
K3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNv
bnN0IEludFBvaW50JiBhdCwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBjb25zdCBGbG9hdFBv
aW50JiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBsaW5r
RHJhZykKIHsKICAgICBSZXRhaW5QdHI8V2ViSFRNTFZpZXc+IGh0bWxWaWV3ID0gKFdlYkhUTUxW
aWV3KilbW2tpdCgmZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAoIVto
dG1sVmlldy5nZXQoKSBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKQpAQCAtMTY1
LDcgKzE2NSw3IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0
aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24sIGNvbnN0CiB7CiB9CiAKLXZvaWQgV2ViRHJh
Z0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJ
bnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVu
dDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2lu
dCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5jcHAKaW5kZXggNmEwZGRjZWMzNjliZDA5ZWE4YjUyOWZmZjBiY2MxNjM0YjMzMzMyMC4uMzc5
ODBhNGQzODdlMDRmN2ZjMWZlNmU3YmI3NmEyMmYwNDYyNzNjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTExMCw3ICsx
MTAsNyBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihE
cmFnU291cmNlQWN0aW9uIGFjdGlvbiwgY29uc3QgSQogICAgICAgICBjb25zdF9jYXN0PFBhc3Rl
Ym9hcmQmPihkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpKS5zZXRFeHRlcm5hbERhdGFPYmplY3Qo
bmV3RGF0YU9iamVjdC5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFn
KERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGltYWdlT3JpZ2luLCBjb25zdCBJ
bnRQb2ludCYgZHJhZ1BvaW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZy
YW1lLCBib29sIGlzTGluaykKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFn
ZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGltYWdlT3JpZ2luLCBjb25zdCBJbnRQb2ludCYg
ZHJhZ1BvaW50LCBjb25zdCBGbG9hdFBvaW50JiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIs
IEZyYW1lJiBmcmFtZSwgYm9vbCBpc0xpbmspCiB7CiAgICAgLy9GSVhNRTogQWxsb3cgVUlEZWxl
Z2F0ZSB0byBvdmVycmlkZSBiZWhhdmlvdXIgPHJkYXI6Ly9wcm9ibGVtLzUwMTU5NTM+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaAppbmRl
eCAwOTVjNjBmY2YwZmMyNTM0NGY3N2VmZDlmY2YyZGFkODQ3NjUwNmJkLi42YWFmMDM5M2UzNDFj
NDM3Yzc3MTA0OTk5NTBhYzFmNjI4MzA1YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbk1h
c2tGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCB3
aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25B
Y3Rpb24sIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxQ
ZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYpOwotICAgIHZpcnR1YWwg
dm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJiwg
V2ViQ29yZTo6RnJhbWUmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNv
cmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBX
ZWJDb3JlOjpGcmFtZSYsIGJvb2wpOwogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmll
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDQyNTcwMTA0NTg1N2U3
YWRjN2VhOWI2MDIzZWE2ZGE5NjAyNWRhMWIuLjEwYTFjODZiZmExOTE5ZTJlODdkYWMxN2Y5ZWIz
NDk0OTJmODRlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzgz
LDcgKzM4Myw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAg
IHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlv
bigpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBj
bGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspID0gMDsKICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU1
NDJlZjQ5YzhmM2U0ODkzNGYwOGJlZDU0MzVmNjQ1M2RjYjU5MTguLmQyZWY0MGIxMzlhNDUyNDkx
NmM1MGIxMzk4NzhiYjZhYTdkNTVjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTgzNSw3ICs4MzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQZXJmb3Jt
RHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlz
T3ZlckZpbGVJbnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCk7CiAgICAg
dm9pZCBkcmFnRW5kZWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9wZXJhdGlv
bik7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBib29sIGlzTGlua0RyYWcpOworICAgIHZvaWQgc2V0RHJh
Z0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUmIGRyYWdJbWFnZUhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgZHJhZ0ltYWdlQW5jaG9yLCBib29sIGlzTGlua0RyYWcpOwogICAgIHZvaWQgc2V0
UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3Qg
U2hhcmVkTWVtb3J5OjpIYW5kbGUmIGltYWdlSGFuZGxlLCB1aW50NjRfdCBpbWFnZVNpemUsIGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLAogICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIHZpc2libGVVUkwsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBhcmNo
aXZlSGFuZGxlLCB1aW50NjRfdCBhcmNoaXZlU2l6ZSk7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IGYyMzc0Zjc1NzEyNWRjMTg5ZDU4M2M0MDczMmViY2Y3NWJmMjc2MzYu
LjlkZjMwMjU0MmNmOTYyYzc5MThiYTQ2YzcxOWVmN2E4OTZhMmQwYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzA3LDcg
KzMwNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJG
aWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpCiAjZW5kaWYKICNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBTZXREcmFnSW1h
Z2UoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYktpdDo6U2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUgZHJhZ0ltYWdlLCBib29sIGxpbmtEcmFnKQorICAgIFNldERyYWdJbWFnZShX
ZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSBkcmFnSW1hZ2UsIFdlYkNvcmU6OkZsb2F0UG9pbnQgZHJhZ0ltYWdlQW5jaG9yLCBi
b29sIGxpbmtEcmFnKQogICAgIFNldFByb21pc2VkRGF0YUZvckltYWdlKFN0cmluZyBwYXN0ZWJv
YXJkTmFtZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBpbWFnZUhhbmRsZSwgdWludDY0
X3QgaW1hZ2VTaXplLCBTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBleHRlbnNpb24sIFN0cmluZyB0
aXRsZSwgU3RyaW5nIHVybCwgU3RyaW5nIHZpc2libGVVUkwsIFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpIYW5kbGUgYXJjaGl2ZUhhbmRsZSwgdWludDY0X3QgYXJjaGl2ZVNpemUpCiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBTZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50KFN0
cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZXh0ZW5zaW9uLCBT
dHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIFN0cmluZyB2aXNpYmxlVVJMKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDIwNjUxYTNj
NzY5MzQ3OGQzNDViMmM3ODhjMGM5MjQ3OGJmZmZkZTMuLmM0MDdlOGNiNGUyZjhkMTg1ZWIwMTRl
NWQxNmUyODBkNTMxODJlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTIwMyw3ICsyMDMsNyBAQCBwcml2YXRlOgogCiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0
aW9uQ29udHJvbGxlck9wZXJhdGlvbigpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RhcnREYXRhSW50
ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9u
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUmIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBp
c0xpbmspIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBXS0NvbnRlbnRWaWV3ICptX2NvbnRlbnRW
aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KaW5kZXggY2QzM2Y5Y2Y0MWVmZDkyZmRiZTcxOGUwOGRiM2FlZWY5MDNiNTQxZi4uMTgz
MTI1MDZlNWEyODgyMzAwNTM1OTdkOTg1ZjQ1NjZhZWZiNGNmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03NjgsOSArNzY4
LDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRy
b2xsZXJPcGVyYXRpb24oKQogICAgIFttX2NvbnRlbnRWaWV3IF9kaWRQZXJmb3JtRGF0YUludGVy
YWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnN0
YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlv
biwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBib29sIGlzTGluaykKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IElu
dFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspCiB7Ci0gICAg
W21fY29udGVudFZpZXcgX3N0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOlNoYXJlYWJsZUJp
dG1hcDo6Y3JlYXRlKGltYWdlKS0+bWFrZUNHSW1hZ2VDb3B5KCkgYXRDbGllbnRQb3NpdGlvbjpD
R1BvaW50TWFrZShjbGllbnRQb3NpdGlvbi54KCksIGNsaWVudFBvc2l0aW9uLnkoKSkgaXNMaW5r
OmlzTGlua107CisgICAgW21fY29udGVudFZpZXcgX3N0YXJ0RGF0YUludGVyYWN0aW9uV2l0aElt
YWdlOlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlKS0+bWFrZUNHSW1hZ2VDb3B5KCkgYXRD
bGllbnRQb3NpdGlvbjpDR1BvaW50TWFrZShjbGllbnRQb3NpdGlvbi54KCksIGNsaWVudFBvc2l0
aW9uLnkoKSkgYW5jaG9yUG9pbnQ6YW5jaG9yUG9pbnQgaXNMaW5rOmlzTGlua107CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggZmViMDE2YjFlN2I3OGIxZjMwNDEzNTZjZjAzOGU0YzBm
Yzg1YjNiNy4uMjNkMDFmNzQwZmQ2MjU3OWU4ZWQyODgwNjI1ZWJhMWIzN2I2ZjI2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oCkBAIC0yNTIsNyArMjUyLDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRh
IHsKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogLSAodm9pZClfZGlkUGVyZm9ybURh
dGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb247Ci0tICh2b2lkKV9zdGFydERhdGFJbnRl
cmFjdGlvbldpdGhJbWFnZTooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIGF0Q2xpZW50UG9z
aXRpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gaXNMaW5rOihCT09MKWlzTGluazsKKy0gKHZv
aWQpX3N0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4p
aW1hZ2UgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2lu
dDooQ0dQb2ludClhbmNob3JQb2ludCBpc0xpbms6KEJPT0wpaXNMaW5rOwogI2VuZGlmCiAKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRl
eCBjZWRiN2IyMTA4N2EwZmZlNDM4ZjNhYWQ1MjYzN2Q5NjM4YjkyZDMwLi5mZWU5YzU0OTRhMzhh
ZWQ5N2UxNjk1Yjg3YjVkN2I3ODFiOGVjMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0yMzQsNyArMjM0LDcgQEAgcHJpdmF0ZToKIAog
I2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRl
cmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0RGF0
YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3Np
dGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBib29sIGlzTGluaykg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiBpbWFnZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIGJv
b2wgaXNMaW5rKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgTlNWaWV3ICptX3ZpZXc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCBkM2Fj
YzU4NzkwNzM4M2M4NGFhYjQ4NDMzOGYxMjIyNzlhMTE4OTExLi4xOGZhZjliNTg4NWQxYWI1Y2M2
OWZiOGM3YWNkNGRiY2FiMGU1MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTg4MSw3ICs4ODEsNyBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpCiAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCBtZS4KIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnRE
YXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgSW50UG9pbnQmLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYsIGJvb2wpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRl
cmFjdGlvbldpdGhJbWFnZShjb25zdCBJbnRQb2ludCYsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiwgY29uc3QgRmxvYXRQb2ludCYsIGJvb2wpCiB7CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBtZS4KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0KaW5kZXggYjdjYTI3ZTBhYWExM2RmNjkwMTVmNjNhNGQxNjMzMTU5ZTE1MTc2ZS4u
NjAxM2I5N2IyNDNjODc1MzYxMWFmZmE5NTk2NmRlNjE3MmUxZjM1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTI2OSw3ICsyNjks
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0
YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdHlwZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQotdm9pZCBXZWJQYWdlUHJveHk6OnNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBk
cmFnSW1hZ2VIYW5kbGUsIGJvb2wgaXNMaW5rRHJhZykKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRE
cmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBGbG9hdFBvaW50
JiwgYm9vbCBpc0xpbmtEcmFnKQogewogICAgIGlmIChhdXRvIGRyYWdJbWFnZSA9IFNoYXJlYWJs
ZUJpdG1hcDo6Y3JlYXRlKGRyYWdJbWFnZUhhbmRsZSkpCiAgICAgICAgIG1fcGFnZUNsaWVudC5z
ZXREcmFnSW1hZ2UoY2xpZW50UG9zaXRpb24sIFdURk1vdmUoZHJhZ0ltYWdlKSwgaXNMaW5rRHJh
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50LmNwcAppbmRleCBhOTVkMjYwZDlkMmQ0OGIyMGJlOGJjODg3NjU5
MzZiYTA5MTgyMzc0Li5hMDZiMjZjZDk3NGQzMjczNTIyZWQyMzgyMDE1MzBjNGE1ZGQ0OTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgRHJhZ1NvdXJjZUFjdGlvbiBX
ZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50
JikKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKLXZvaWQgV2Vi
RHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25z
dCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0Ns
aWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQ
b2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wpCiB7
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKaW5kZXggYzk1N2M4ZWEwOWI5NDhkY2YxYTVkMjM2
MGViNzRmNGRiNTA0NzVhNy4uNTZkYzEzY2FjYTc1Y2I2NzRlNjIwMWIzZjA3ODllN2ViOTc4ZTc2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgV2ViQ29y
ZTo6RHJhZ0RhdGEmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRy
YWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRv
d1BvaW50KSBvdmVycmlkZTsKIAotICAgIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFn
ZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGV2ZW50UG9zLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3Jl
OjpGcmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFy
dERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZHJh
Z0ltYWdlT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZXZlbnRQb3MsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGRyYWdJbWFnZUFuY2hvciwgV2ViQ29yZTo6RGF0YVRyYW5zZmVy
JiwgV2ViQ29yZTo6RnJhbWUmLCBib29sIGxpbmtEcmFnID0gZmFsc2UpIG92ZXJyaWRlOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNv
cmU6OlVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJE
cmFnQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZ3RrL1dlYkRyYWdDbGllbnRHdGsuY3BwCmluZGV4IGY1Y2FkYzc3YTYxY2VlMDNlZTJlYTVi
MzY5YjQxMjU5YzgzZTVmNzYuLjNkZWFmZTE3YTU3ZDE1YmU0M2NhMmRkNmRlNDcxNzE5YWM1YTYx
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
Z3RrL1dlYkRyYWdDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdDbGllbnRHdGsuY3BwCkBAIC01Niw3ICs1Niw3IEBA
IHN0YXRpYyBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0Q2Fpcm9TdXJmYWNlVG9TaGFy
ZWFibGVCaXRtYXAoY2Fpcm9fc3VyZmFjCiAgICAgcmV0dXJuIGJpdG1hcDsKIH0KIAotdm9pZCBX
ZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmIGRyYWdJbWFnZSwgY29uc3QgSW50
UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIERh
dGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYsIGJvb2wpCit2b2lkIFdlYkRyYWdDbGll
bnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2ludCYgY2xp
ZW50UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRQ
b2ludCYsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYsIGJvb2wpCiB7CiAgICAg
UmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gY29udmVydENhaXJvU3VyZmFjZVRvU2hh
cmVhYmxlQml0bWFwKGRyYWdJbWFnZSk7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFu
ZGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggYjg4Njk1NDYyYmU4OTJm
ZmJjMDg0YWNmNGM5NTEyZmYwZDEwZTlmZS4uMzY2ZjU3M2IxMGIzYzg4MWNlZGE5ZGE3YTU5M2Vk
ZDMwZGE2MTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC04MCw3ICs4
MCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgcmV0dXJuIFdURk1vdmUoYml0bWFw
KTsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoUmV0YWluUHRyPE5TSW1hZ2U+
IGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5z
ZmVyJiwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQordm9pZCBXZWJEcmFnQ2xpZW50Ojpz
dGFydERyYWcoUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQs
IGNvbnN0IEludFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1l
JiBmcmFtZSwgYm9vbCBsaW5rRHJhZykKIHsKICAgICBJbnRTaXplIGJpdG1hcFNpemUoW2ltYWdl
IHNpemVdKTsKICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBjb252ZXJ0SW1h
Z2VUb0JpdG1hcChpbWFnZS5nZXQoKSwgYml0bWFwU2l6ZSwgZnJhbWUpOwpAQCAtOTEsNyArOTEs
NyBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhSZXRhaW5QdHI8TlNJbWFnZT4gaW1h
Z2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgYwogICAgIG1fcGFnZS0+d2lsbFN0YXJ0RHJhZygp
OwogCiAgICAgLy8gRklYTUU6IFNlZW1zIHRoaXMgbWVzc2FnZSBzaG91bGQgYmUgbmFtZWQgU3Rh
cnREcmFnLCBub3QgU2V0RHJhZ0ltYWdlLgotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTZXREcmFnSW1hZ2UoZnJhbWUudmlldygpLT5jb250ZW50c1RvV2luZG93KHBv
aW50KSwgaGFuZGxlLCBsaW5rRHJhZykpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTZXREcmFnSW1hZ2UoZnJhbWUudmlldygpLT5jb250ZW50c1RvV2luZG93KHBv
aW50KSwgaGFuZGxlLCB7IH0sIGxpbmtEcmFnKSk7CiB9CiAKIHN0YXRpYyBXZWJDb3JlOjpDYWNo
ZWRJbWFnZSogY2FjaGVkSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300436</attachid>
            <date>2017-02-02 13:06:41 -0800</date>
            <delta_ts>2017-02-02 13:59:05 -0800</delta_ts>
            <desc>Actually fix Windows build</desc>
            <filename>bug-167690-20170202130426.patch</filename>
            <type>text/plain</type>
            <size>32468</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY4MGQ4ZmVkMDk3MjE4
NTY1MWJlM2RiYWIxN2ViM2EzNTZlNWFjNS4uZGNjNWVlMjE3OGIwMjIzYWNkYjYwMzhjZTFhNjYz
NmI4MmVmNjQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYWcgaW1hZ2Vz
IHNob3VsZCBiZSBhbmNob3JlZCB0byB0aGUgbW91c2UgbG9jYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY5MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAyOTUyNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyBsb2dpYyB0byBjb21wdXRlIHRoZSBtb3VzZSBhbmNob3IgcG9pbnQu
IFRoaXMgaXMgYSBwb2ludCBpbiB0aGUgdW5pdCBzcXVhcmUgaW5kaWNhdGluZyB3aGVyZSB0aGUg
ZHJhZworICAgICAgICBvcmlnaW4gaXMgcmVsYXRpdmUgdG8gdGhlIGJvdW5kcyBvZiB0aGUgZHJh
ZyBpbWFnZS4gVGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLCBzaW5jZSB0aGlzIGFuY2hvciBw
b2ludCBpcyBub3QKKyAgICAgICAgdXNlZCBieSBhbnkgY2xpZW50IHlldDsgdGhpcyBwYXRjaCBv
bmx5IGNvbXB1dGVzIGFuZCB2ZW5kcyB0aGlzIGluZm9ybWF0aW9uIGZyb20gV2ViQ29yZS4KKwor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0Ns
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xs
ZXI6OmRvU3lzdGVtRHJhZyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorCiAyMDE3LTAyLTAxICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVwZGF0ZSBDQVJpbmdC
dWZmZXIgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0M2Y5YmYwNDIzNjNkM2Y2YTE5ZmRlZmMy
MTVjNTQwYjE1YWQxN2E2Li4xZmFjY2QzNTI5NGZiMjI1MTQwNmUwNzgzMDk3NTY1ODRmYmEzMjEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTctMDItMDEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJhZyBpbWFnZXMgc2hv
dWxkIGJlIGFuY2hvcmVkIHRvIHRoZSBtb3VzZSBsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NjkwCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zMDI5NTI2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIHNvbWUgcGx1bWJpbmcgZm9yIHRoZSBhbmNob3IgcG9pbnQgaW4gdGhlIFdL
MSBjbGllbnQgbGF5ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAg
KFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisKKzIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMV0gQWxsb3cgdGhlIGRyYWcg
Y2xpZW50IHRvIGJlIGluaXRpYWxpemVkIG9uIHBsYXRmb3JtcyB0aGF0IGRvIG5vdCBzdXBwb3J0
IGRyYWcgYW5kIGRyb3AKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NzY5NQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAzMDUzOTA+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggOGU4YTY1ZTBlYTFlZmI3MDJiNzc4M2Q4ZWE2MTFjMjY2M2NmMjJmMC4uMjJl
YTQyZWIzODE0Mjc4ZGM0YWNhZjYyZTQ1NDhkZmU3NmYzOWMyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIERyYWcgaW1hZ2VzIHNob3VsZCBiZSBhbmNob3JlZCB0byB0
aGUgbW91c2UgbG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAyOTUyNjE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBzb21lIHBs
dW1iaW5nIGZvciB0aGUgYW5jaG9yIHBvaW50IGluIHRoZSBXSzEgY2xpZW50IGxheWVyLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJE
cmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuaDoKKwogMjAxNy0wMS0yOCAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAg
ICAgICBBZGQgTGluayBQcmVsb2FkIGFzIGFuIG9mZi1ieS1kZWZhdWx0IGV4cGVyaW1lbnRhbCBm
ZWF0dXJlIG1lbnUgaXRlbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyZWNhMGUwZmE1ODk4ODc2NmE5MDhlYmJh
YWZhNmY3N2FiNmM4YzFiLi4wZDBmMWZkYTMwYTQ1M2MwOGZiMDRjYmZlN2MzODkwMTY5NjIxMGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzQgQEAKIDIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJhZyBpbWFnZXMgc2hvdWxkIGJl
IGFuY2hvcmVkIHRvIHRoZSBtb3VzZSBsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
MDI5NTI2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRzIHNvbWUgcGx1bWJpbmcgZm9yIHRoZSBtb3VzZSBhbmNob3IgcG9pbnQgaW4gdGhlIFVJ
IHByb2Nlc3MuIEFkZGl0aW9uYWxseSwgcmVmYWN0b3JzIHNvbWUgdW5yZWxhdGVkIGNvZGUKKyAg
ICAgICAgZm9yIGhhbmRsaW5nIGRhdGEgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRlcmFjdGlvbldp
dGhJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisKKzIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBuaWdodGx5
IG9wZW4gc291cmNlIGJ1aWxkLgogCiAgICAgICAgIEFkZHMgbW9yZSBoZWFkZXIgY2hlY2tzIHdo
ZW4gaW1wb3J0aW5nIGZyb20gV2ViS2l0QWRkaXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcAppbmRleCBhNTI3OWMyYmUwYjNmY2U5NGIzZGQxNDdjMzMwZjkxYzcwODRi
OGZjLi5mMDBmZDAwNDI5ZTU3MGEyMmFhYWNlYTM1OWI3NzE5OTE3NmFkZGIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIGNsYXNzIEVt
cHR5RHJhZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEcmFnQ2xpZW50IHsKICAgICB2b2lkIHdpbGxQ
ZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYs
IERhdGFUcmFuc2ZlciYpIGZpbmFsIHsgfQogICAgIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rp
b25NYXNrRm9yRHJhZyhjb25zdCBEcmFnRGF0YSYpIGZpbmFsIHsgcmV0dXJuIERyYWdEZXN0aW5h
dGlvbkFjdGlvbk5vbmU7IH0KICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25N
YXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBmaW5hbCB7IHJldHVybiBEcmFnU291cmNlQWN0
aW9uTm9uZTsgfQotICAgIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9p
bnQmLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkgZmluYWwg
eyB9CisgICAgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNv
bnN0IEludFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwg
Ym9vbCkgZmluYWwgeyB9CiAgICAgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIGZpbmFs
IHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaAppbmRleCA5OWE3NmVjNThkNGZjY2Q2
ZjNmNjBmNzY3Yjk2NjcyZTVkYzljNTE4Li4xYWMxOTE2YzRkODVkZTg4ODgxZTY2MDQ4YjllMzVm
Mzg4ZjAyNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAog
CiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKyNpbmNs
dWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBEcmFnRGVzdGlu
YXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgRHJhZ0RhdGEmKSA9IDA7CiAgICAg
dmlydHVhbCBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29u
c3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwg
Y29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wgbGlu
a0RyYWcgPSBmYWxzZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdl
UmVmLCBjb25zdCBJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBJbnRQb2ludCYgZXZl
bnRQb3MsIGNvbnN0IEZsb2F0UG9pbnQmIGRyYWdJbWFnZUFuY2hvciwgRGF0YVRyYW5zZmVyJiwg
RnJhbWUmLCBib29sIGxpbmtEcmFnID0gZmFsc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJh
Z0VuZGVkKCkgeyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKaW5kZXggZTQ3ZWQzMWQ0NWYzMjRjNmQzYTEwMWQxZTBhZTRhOGUxYzc0
MDM5OC4uOTNlNDg3YjdjNzgxNmJlNjI0MjI1ZTg1MzgyYmY0ZWU0Mjc2MTk1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDbGllbnRSZWN0LmgiCiAjaW5jbHVkZSAi
RGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCkBAIC03Niw2ICs3NywxMSBAQAogI2luY2x1ZGUgIlRleHRFdmVudC5oIgog
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisKKyNpZiBFTkFC
TEUoREFUQV9JTlRFUkFDVElPTikKKyNpbmNsdWRlICJTZWxlY3Rpb25SZWN0LmgiCisjZW5kaWYK
KwogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNlbmRpZgpAQCAtODEwLDYgKzgxNiw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJh
ZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAg
QVNTRVJUKHN0YXRlLnNvdXJjZSk7CiAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpzdGF0ZS5zb3Vy
Y2U7CiAKKyAgICBJbnRSZWN0IGRyYWdJbWFnZUJvdW5kczsKICAgICBJbWFnZSogaW1hZ2UgPSBn
ZXRJbWFnZShlbGVtZW50KTsKICAgICBpZiAoc3RhdGUudHlwZSA9PSBEcmFnU291cmNlQWN0aW9u
U2VsZWN0aW9uKSB7CiAgICAgICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNE
YXRhKCkpIHsKQEAgLTgxOCw2ICs4MjUsMTQgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnRE
cmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAg
ICAgICAgICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uUmFuZ2UgPSBzcmMuc2VsZWN0aW9uKCku
dG9Ob3JtYWxpemVkUmFuZ2UoKTsKICAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rpb25SYW5nZSk7
CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAgICAgICAgICAgIFZlY3RvcjxTZWxl
Y3Rpb25SZWN0PiBzZWxlY3Rpb25SZWN0czsKKyAgICAgICAgICAgIHNlbGVjdGlvblJhbmdlLT5j
b2xsZWN0U2VsZWN0aW9uUmVjdHMoc2VsZWN0aW9uUmVjdHMpOworICAgICAgICAgICAgZm9yIChh
dXRvIHNlbGVjdGlvblJlY3QgOiBzZWxlY3Rpb25SZWN0cykKKyAgICAgICAgICAgICAgICBkcmFn
SW1hZ2VCb3VuZHMudW5pdGUoc2VsZWN0aW9uUmVjdC5yZWN0KCkpOworICAgICAgICAgICAgZHJh
Z0ltYWdlQm91bmRzLmluZmxhdGUoU2VsZWN0aW9uRHJhZ0ltYWdlUGFkZGluZyk7CisjZW5kaWYK
KwogICAgICAgICAgICAgc3JjLmVkaXRvcigpLndpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2Fy
ZChzZWxlY3Rpb25SYW5nZS5nZXQoKSk7CiAKICAgICAgICAgICAgIGlmIChlbmNsb3NpbmdUZXh0
Rm9ybUNvbnRyb2woc3JjLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpKQpAQCAtODQz
LDcgKzg1OCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBj
b25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgIGlmICghZHJhZ0lt
YWdlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGRvU3lzdGVtRHJhZyhk
cmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7
CisgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRy
YWdJbWFnZUJvdW5kcywgZGF0YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsKICAgICB9IGVsc2UgaWYg
KCFzcmMuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS5jYW5EaXNwbGF5KGxpbmtVUkwpKSB7
CiAgICAgICAgIHNyYy5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIk5vdCBhbGxvd2VkIHRvIGRyYWcgbG9j
YWwgcmVzb3VyY2U6ICIgKyBsaW5rVVJMLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
KTsKICAgICAgICAgc3RhcnRlZERyYWcgPSBmYWxzZTsKQEAgLTg2Niw3ICs4ODEsNyBAQCBib29s
IERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBz
dGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgZG9JbWFnZURyYWcoZWxlbWVudCwgZHJh
Z09yaWdpbiwgaGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKSwgZGF0YVRyYW5zZmVyLCBzcmMsIG1f
ZHJhZ09mZnNldCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBESFRNTCBkZWZp
bmVkIGRyYWcgaW1hZ2UKLSAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdM
b2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CisgICAgICAgICAgICBk
b1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCB7IH0sIGRhdGFUcmFu
c2Zlciwgc3JjLCBmYWxzZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKCFsaW5rVVJMLmlz
RW1wdHkoKSAmJiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkxpbmspKSB7
CiAgICAgICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNEYXRhKCkpIHsKQEAg
LTkwMiw3ICs5MTcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNy
YywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgLy8g
TGF0ZXIgY29kZSBleHBlY3RzIHRoZSBkcmFnIGltYWdlIHRvIGJlIHNjYWxlZCBieSBkZXZpY2Un
cyBzY2FsZSBmYWN0b3IuCiAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBzY2FsZURyYWdJbWFnZShk
cmFnSW1hZ2UsIEZsb2F0U2l6ZShtX3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9wYWdlLmRl
dmljZVNjYWxlRmFjdG9yKCkpKTsKICAgICAgICAgfQotICAgICAgICBkb1N5c3RlbURyYWcoZHJh
Z0ltYWdlLCBkcmFnTG9jLCBtb3VzZURyYWdnZWRQb2ludCwgZGF0YVRyYW5zZmVyLCBzcmMsIHRy
dWUpOworICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBtb3VzZURyYWdn
ZWRQb2ludCwgeyB9LCBkYXRhVHJhbnNmZXIsIHNyYywgdHJ1ZSk7CiAjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkKICAgICB9IGVsc2UgaWYgKCFhdHRhY2htZW50VVJMLmlzRW1wdHkoKSAm
JiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkF0dGFjaG1lbnQpKSB7CiAg
ICAgICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNEYXRhKCkpIHsKQEAgLTkx
OCwxMyArOTMzLDEzIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3Jj
LCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgICAgICBkcmFn
TG9jID0gZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWcoc3JjKTsKICAgICAgICAgICAgIG1fZHJhZ09m
ZnNldCA9IEludFBvaW50KGRyYWdPcmlnaW4ueCgpIC0gZHJhZ0xvYy54KCksIGRyYWdPcmlnaW4u
eSgpIC0gZHJhZ0xvYy55KCkpOwogICAgICAgICB9Ci0gICAgICAgIGRvU3lzdGVtRHJhZyhkcmFn
SW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7Cisg
ICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIHsgfSwg
ZGF0YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsKICNlbmRpZgogICAgIH0gZWxzZSBpZiAoc3RhdGUu
dHlwZSA9PSBEcmFnU291cmNlQWN0aW9uREhUTUwpIHsKICAgICAgICAgaWYgKGRyYWdJbWFnZSkg
ewogICAgICAgICAgICAgQVNTRVJUKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rp
b25ESFRNTCk7CiAgICAgICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rp
b24oRHJhZ1NvdXJjZUFjdGlvbkRIVE1MLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIpOwotICAg
ICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwgZGF0
YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsKKyAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1h
Z2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBzdGFydGVkRHJhZyA9IGZhbHNlOwogICAgIH0g
ZWxzZSB7CkBAIC05ODEsMjAgKzk5NiwyNSBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkb0ltYWdl
RHJhZyhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRQb2ludCYgZHJhZ09yaWdpbiwgYwogICAg
ICAgICByZXR1cm47CiAKICAgICBkcmFnSW1hZ2VPZmZzZXQgPSBtb3VzZURvd25Qb2ludCArIHNj
YWxlZE9yaWdpbjsKLSAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQs
IGRyYWdPcmlnaW4sIGRhdGFUcmFuc2ZlciwgZnJhbWUsIGZhbHNlKTsKKyAgICBkb1N5c3RlbURy
YWcoZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQsIGRyYWdPcmlnaW4sIGVsZW1lbnQuYm91bmRz
SW5Sb290Vmlld1NwYWNlKCksIGRhdGFUcmFuc2ZlciwgZnJhbWUsIGZhbHNlKTsKIAogICAgIGRl
bGV0ZURyYWdJbWFnZShkcmFnSW1hZ2UpOwogfQogCi12b2lkIERyYWdDb250cm9sbGVyOjpkb1N5
c3RlbURyYWcoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2ludCYgZHJhZ0xvYywgY29u
c3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUm
IGZyYW1lLCBib29sIGZvckxpbmspCit2b2lkIERyYWdDb250cm9sbGVyOjpkb1N5c3RlbURyYWco
RHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2ludCYgZHJhZ0xvYywgY29uc3QgSW50UG9p
bnQmIGV2ZW50UG9zLCBjb25zdCBJbnRSZWN0JiBkcmFnSW1hZ2VCb3VuZHMsIERhdGFUcmFuc2Zl
ciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIGJvb2wgZm9yTGluaykKIHsKKyAgICBGbG9h
dFBvaW50IGRyYWdJbWFnZUFuY2hvciA9IHsgMC41LCAwLjUgfTsKKyAgICBpZiAoIWRyYWdJbWFn
ZUJvdW5kcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgZHJhZ0ltYWdlQW5jaG9yLnNldFgoKGV2ZW50
UG9zLngoKSAtIGRyYWdJbWFnZUJvdW5kcy54KCkpIC8gKGZsb2F0KWRyYWdJbWFnZUJvdW5kcy53
aWR0aCgpKTsKKyAgICAgICAgZHJhZ0ltYWdlQW5jaG9yLnNldFkoKGV2ZW50UG9zLnkoKSAtIGRy
YWdJbWFnZUJvdW5kcy55KCkpIC8gKGZsb2F0KWRyYWdJbWFnZUJvdW5kcy5oZWlnaHQoKSk7Cisg
ICAgfQorCiAgICAgbV9kaWRJbml0aWF0ZURyYWcgPSB0cnVlOwogICAgIG1fZHJhZ0luaXRpYXRv
ciA9IGZyYW1lLmRvY3VtZW50KCk7CiAgICAgLy8gUHJvdGVjdCB0aGlzIGZyYW1lIGFuZCB2aWV3
LCBhcyBhIGxvYWQgbWF5IG9jY3VyIG1pZCBkcmFnIGFuZCBhdHRlbXB0IHRvIHVubG9hZCB0aGlz
IGZyYW1lCiAgICAgUmVmPE1haW5GcmFtZT4gZnJhbWVQcm90ZWN0b3IobV9wYWdlLm1haW5GcmFt
ZSgpKTsKICAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3UHJvdGVjdG9yID0gZnJhbWVQcm90ZWN0
b3ItPnZpZXcoKTsKLSAgICBtX2NsaWVudC5zdGFydERyYWcoaW1hZ2UsIHZpZXdQcm90ZWN0b3It
PnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhkcmFn
TG9jKSksCi0gICAgICAgIHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52
aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhldmVudFBvcykpLCBkYXRhVHJhbnNmZXIsIGZyYW1l
UHJvdGVjdG9yLmdldCgpLCBmb3JMaW5rKTsKKyAgICBtX2NsaWVudC5zdGFydERyYWcoaW1hZ2Us
IHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52aWV3KCktPmNvbnRlbnRz
VG9Sb290VmlldyhkcmFnTG9jKSksIHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhm
cmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhldmVudFBvcykpLCBkcmFnSW1hZ2VBbmNo
b3IsIGRhdGFUcmFuc2ZlciwgZnJhbWVQcm90ZWN0b3IuZ2V0KCksIGZvckxpbmspOwogICAgIC8v
IERyYWdDbGllbnQ6OnN0YXJ0RHJhZyBjYW4gY2F1c2Ugb3VyIFBhZ2UgdG8gZGlzcGVhciwgZGVh
bGxvY2F0aW5nIHx0aGlzfC4KICAgICBpZiAoIWZyYW1lUHJvdGVjdG9yLT5wYWdlKCkpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCBkZWRkYWQ4
NmU2ZGRjYzYzYWViMGUyZjhkY2I3ZGJjZjNkN2M0Y2YzLi43ODIxMDRmMmQ2YmFlZTQ0NDk0Yzhk
OTBhNjM0YmQ2YWQ4NzY0NGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFn
SW1hZ2UuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKICNp
bmNsdWRlICJVUkwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTExLDcgKzExMiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBtb3VzZU1vdmVkSW50b0RvY3VtZW50
KERvY3VtZW50Kik7CiAKICAgICAgICAgdm9pZCBkb0ltYWdlRHJhZyhFbGVtZW50JiwgY29uc3Qg
SW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBJbnRQb2lu
dCYpOwotICAgICAgICB2b2lkIGRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBv
aW50JiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wgZm9yTGlu
ayk7CisgICAgICAgIHZvaWQgZG9TeXN0ZW1EcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9p
bnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFJlY3QmIGRyYWdJbWFnZUJvdW5kcywgRGF0
YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sIGZvckxpbmspOwogICAgICAgICB2b2lkIGNsZWFudXBB
ZnRlclN5c3RlbURyYWcoKTsKICAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2Uo
RGF0YVRyYW5zZmVyJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwp
OwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJ
bWFnZS5oCmluZGV4IGEyODg0MTc5Zjg3NTg4NDU1MDdiNTUwYWM4ZjRmNzdiYTBmOTQyZmMuLmMz
YjY2NWM2YjUyMDNlYjY3YTYyYmJiNTU0YzY2Njk4MDFiODVlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RyYWdJbWFnZS5oCkBAIC02Nyw2ICs2NywxMCBAQCB0eXBlZGVmIGNhaXJvX3N1cmZhY2Vf
dCogRHJhZ0ltYWdlUmVmOwogdHlwZWRlZiB2b2lkKiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGNvbnN0IGZsb2F0IFNlbGVjdGlvbkRyYWdJbWFn
ZVBhZGRpbmcgPSAxNTsKKyNlbmRpZgorCiBJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdl
UmVmKTsKIAogLy8gVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBiZSBtZW1vcnkgbmV1dHJhbCwgZWcu
IGlmIHRoZXkgcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIGltYWdlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCmluZGV4IDQxNzA2MGJjODk4
NDA4OWFlNDFhYTM1YjkzZjA5MGQ2ZGVkNmI5NjcuLmJlNmNiYjFkZmU4MDQ3MGY4ZjQzNTIxZTgx
YjJkYjU0N2QwNjI0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6
OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhjb25zdCBXZWJDb3JlOjpE
cmFnRGF0YSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBv
dmVycmlkZTsKICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25N
YXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVycmlk
ZTsKLSAgICB2b2lkIHN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBkcmFnUG9zLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZXZlbnRQb3Ms
IFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZykg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ1BvcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2
ZW50UG9zLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgV2ViQ29yZTo6RGF0YVRyYW5zZmVy
JiwgV2ViQ29yZTo6RnJhbWUmLCBib29sIGxpbmtEcmFnKSBvdmVycmlkZTsKICAgICB2b2lkIGRl
Y2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJD
b3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6RnJhbWUqKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAg
IHZvaWQgZGVjbGFyZUFuZFdyaXRlQXR0YWNobWVudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5n
JiBwYXRoLCBXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggM2U5NzA5ZWIxODY4MWE5
ZjQ3OWRlM2VlNGQ2YWM5YTZhMGM3ZDg5ZS4uNGE4NGJjOGU1MzYyYjkxZTBjNzNmMDcwY2NiYTcz
M2ZkMGU3NDlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50Lm1tCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6d2ls
bFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWN0aW9u
CiAgICAgW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3
IHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbjooV2ViRHJhZ1NvdXJjZUFjdGlvbilhY3Rpb24g
ZnJvbVBvaW50Om1vdXNlRG93blBvaW50IHdpdGhQYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgcGFz
dGVib2FyZFdpdGhOYW1lOmRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpXV07CiB9CiAK
LXZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNv
bnN0IEludFBvaW50JiBhdCwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXIm
IGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQordm9pZCBXZWJEcmFn
Q2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmIGRyYWdJbWFnZSwgY29uc3QgSW50UG9pbnQm
IGF0LCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3MsIGNvbnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJh
bnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQogewogICAg
IFJldGFpblB0cjxXZWJIVE1MVmlldz4gaHRtbFZpZXcgPSAoV2ViSFRNTFZpZXcqKVtba2l0KCZm
cmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOwogICAgIGlmICghW2h0bWxWaWV3LmdldCgp
IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pCkBAIC0xNjUsNyArMTY1LDcgQEAg
dm9pZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6
RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QKIHsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFy
dERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgRGF0
YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sKQordm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWco
RHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgRmxv
YXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAppbmRleCA2
YTBkZGNlYzM2OWJkMDllYThiNTI5ZmZmMGJjYzE2MzRiMzMzMzIwLi4zNzk4MGE0ZDM4N2UwNGY3
ZmMxZmU2ZTdiYjc2YTIyZjA0NjI3M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQg
V2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rp
b24gYWN0aW9uLCBjb25zdCBJCiAgICAgICAgIGNvbnN0X2Nhc3Q8UGFzdGVib2FyZCY+KGRhdGFU
cmFuc2Zlci5wYXN0ZWJvYXJkKCkpLnNldEV4dGVybmFsRGF0YU9iamVjdChuZXdEYXRhT2JqZWN0
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVm
IGltYWdlLCBjb25zdCBJbnRQb2ludCYgaW1hZ2VPcmlnaW4sIGNvbnN0IEludFBvaW50JiBkcmFn
UG9pbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIGJvb2wgaXNM
aW5rKQordm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmIGltYWdlLCBj
b25zdCBJbnRQb2ludCYgaW1hZ2VPcmlnaW4sIGNvbnN0IEludFBvaW50JiBkcmFnUG9pbnQsIGNv
bnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1l
LCBib29sIGlzTGluaykKIHsKICAgICAvL0ZJWE1FOiBBbGxvdyBVSURlbGVnYXRlIHRvIG92ZXJy
aWRlIGJlaGF2aW91ciA8cmRhcjovL3Byb2JsZW0vNTAxNTk1Mz4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCmluZGV4IDA5NWM2MGZjZjBm
YzI1MzQ0Zjc3ZWZkOWZjZjJkYWQ4NDc2NTA2YmQuLjdmNWQyYWU4YzYzMDYwZGZkN2E5ODQzNWRm
YzYzZjNhYjQ2ODZkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
V2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uKFdlYkNvcmU6OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiwgY29uc3Qg
V2ViQ29yZTo6RHJhZ0RhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291
cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiwgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJik7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJh
ZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFt
ZSYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdl
UmVmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYsIFdlYkNv
cmU6OkZyYW1lJiwgYm9vbCk7CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDI1NzAxMDQ1ODU3ZTdhZGM3
ZWE5YjYwMjNlYTZkYTk2MDI1ZGExYi4uMTBhMWM4NmJmYTE5MTllMmU4N2RhYzE3ZjllYjM0OTQ5
MmY4NGViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zODMsNyAr
MzgzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdmly
dHVhbCB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBpbWFnZSwgYm9vbCBpc0xpbmspID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykgPSAwOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTU0MmVm
NDljOGYzZTQ4OTM0ZjA4YmVkNTQzNWY2NDUzZGNiNTkxOC4uZDJlZjQwYjEzOWE0NTI0OTE2YzUw
YjEzOTg3OGJiNmFhN2Q1NWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtODM1LDcgKzgzNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFBlcmZvcm1EcmFn
Q29udHJvbGxlckFjdGlvbih1aW50NjRfdCBkcmFnT3BlcmF0aW9uLCBib29sIG1vdXNlSXNPdmVy
RmlsZUlucHV0LCB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKTsKICAgICB2b2lk
IGRyYWdFbmRlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3Qgb3BlcmF0aW9uKTsK
ICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
JiBkcmFnSW1hZ2VIYW5kbGUsIGJvb2wgaXNMaW5rRHJhZyk7CisgICAgdm9pZCBzZXREcmFnSW1h
Z2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBkcmFnSW1hZ2VBbmNob3IsIGJvb2wgaXNMaW5rRHJhZyk7CiAgICAgdm9pZCBzZXRQcm9t
aXNlZERhdGFGb3JJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTaGFy
ZWRNZW1vcnk6OkhhbmRsZSYgaW1hZ2VIYW5kbGUsIHVpbnQ2NF90IGltYWdlU2l6ZSwgY29uc3Qg
U3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBleHRlbnNpb24sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgdmlzaWJsZVVSTCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGFyY2hpdmVI
YW5kbGUsIHVpbnQ2NF90IGFyY2hpdmVTaXplKTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggZjIzNzRmNzU3MTI1ZGMxODlkNTgzYzQwNzMyZWJjZjc1YmYyNzYzNi4uOWRm
MzAyNTQyY2Y5NjJjNzkxOGJhNDZjNzE5ZWY3YTg5NmEyZDBhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMDcsNyArMzA3
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRQZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJ
bnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCkKICNlbmRpZgogI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIFNldERyYWdJbWFnZShX
ZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSBkcmFnSW1hZ2UsIGJvb2wgbGlua0RyYWcpCisgICAgU2V0RHJhZ0ltYWdlKFdlYkNv
cmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlIGRyYWdJbWFnZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBkcmFnSW1hZ2VBbmNob3IsIGJvb2wg
bGlua0RyYWcpCiAgICAgU2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoU3RyaW5nIHBhc3RlYm9hcmRO
YW1lLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGltYWdlSGFuZGxlLCB1aW50NjRfdCBp
bWFnZVNpemUsIFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGV4dGVuc2lvbiwgU3RyaW5nIHRpdGxl
LCBTdHJpbmcgdXJsLCBTdHJpbmcgdmlzaWJsZVVSTCwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6Okhh
bmRsZSBhcmNoaXZlSGFuZGxlLCB1aW50NjRfdCBhcmNoaXZlU2l6ZSkKICNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQogICAgIFNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQoU3RyaW5n
IHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBleHRlbnNpb24sIFN0cmlu
ZyB0aXRsZSwgU3RyaW5nIHVybCwgU3RyaW5nIHZpc2libGVVUkwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMjA2NTFhM2M3Njkz
NDc4ZDM0NWIyYzc4OGMwYzkyNDc4YmZmZmRlMy4uYzQwN2U4Y2I0ZTJmOGQxODVlYjAxNGU1ZDE2
ZTI4MGQ1MzE4MmU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMjAzLDcgKzIwMyw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFC
TEUoREFUQV9JTlRFUkFDVElPTikKICAgICB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25D
b250cm9sbGVyT3BlcmF0aW9uKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdGFydERhdGFJbnRlcmFj
dGlvbldpdGhJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNv
bnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZSwgYm9vbCBpc0xpbmspIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGlu
aykgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFdLQ29udGVudFZpZXcgKm1fY29udGVudFZpZXc7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQppbmRleCBjZDMzZjljZjQxZWZkOTJmZGJlNzE4ZTA4ZGIzYWVlZjkwM2I1NDFmLi4xODMxMjUw
NmU1YTI4ODIzMDA1MzU5N2Q5ODVmNDU2NmFlZmI0Y2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTc2OCw5ICs3NjgsOSBA
QCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxl
ck9wZXJhdGlvbigpCiAgICAgW21fY29udGVudFZpZXcgX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rp
b25Db250cm9sbGVyT3BlcmF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnRE
YXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBj
b25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKQordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgSW50UG9p
bnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykKIHsKLSAgICBbbV9j
b250ZW50VmlldyBfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6U2hhcmVhYmxlQml0bWFw
OjpjcmVhdGUoaW1hZ2UpLT5tYWtlQ0dJbWFnZUNvcHkoKSBhdENsaWVudFBvc2l0aW9uOkNHUG9p
bnRNYWtlKGNsaWVudFBvc2l0aW9uLngoKSwgY2xpZW50UG9zaXRpb24ueSgpKSBpc0xpbms6aXNM
aW5rXTsKKyAgICBbbV9jb250ZW50VmlldyBfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6
U2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2UpLT5tYWtlQ0dJbWFnZUNvcHkoKSBhdENsaWVu
dFBvc2l0aW9uOkNHUG9pbnRNYWtlKGNsaWVudFBvc2l0aW9uLngoKSwgY2xpZW50UG9zaXRpb24u
eSgpKSBhbmNob3JQb2ludDphbmNob3JQb2ludCBpc0xpbms6aXNMaW5rXTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCBjZTBjNGY1MWViNmQ1YWM5MmU3NDZlNzJlN2NmZWQyYWQ2Mjgw
NDc0Li43NmU2NTUxMDM4ZWVmMjRiMzNlNmU4NTY0OWVlNDU3NTdkMzcwMjQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKQEAgLTI1Miw3ICsyNTIsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewog
CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAtICh2b2lkKV9kaWRQZXJmb3JtRGF0YUlu
dGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjsKLS0gKHZvaWQpX3N0YXJ0RGF0YUludGVyYWN0
aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2UgYXRDbGllbnRQb3NpdGlv
bjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBpc0xpbms6KEJPT0wpaXNMaW5rOworLSAodm9pZClf
c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6KFJldGFpblB0cjxDR0ltYWdlUmVmPilpbWFn
ZSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihD
R1BvaW50KWFuY2hvclBvaW50IGlzTGluazooQk9PTClpc0xpbms7CiAjZW5kaWYKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGNl
ZGI3YjIxMDg3YTBmZmU0MzhmM2FhZDUyNjM3ZDk2MzhiOTJkMzAuLmZlZTljNTQ5NGEzOGFlZDk3
ZTE2OTViODdiNWQ3Yjc4MWI4ZWMxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTIzNCw3ICsyMzQsNyBAQCBwcml2YXRlOgogCiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0
aW9uQ29udHJvbGxlck9wZXJhdGlvbigpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RhcnREYXRhSW50
ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9u
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUmIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBp
c0xpbmspIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBOU1ZpZXcgKm1fdmlldzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IGQzYWNjNTg3
OTA3MzgzYzg0YWFiNDg0MzM4ZjEyMjI3OWExMTg5MTEuLjE4ZmFmOWI1ODg1ZDFhYjVjYzY5ZmI4
YzdhY2Q0ZGJjYWIwZTUwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbQpAQCAtODgxLDcgKzg4MSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkKICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IG1lLgogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJ
bnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBJbnRQb2ludCYsIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiwgYm9vbCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0
aW9uV2l0aEltYWdlKGNvbnN0IEludFBvaW50JiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUmLCBjb25zdCBGbG9hdFBvaW50JiwgYm9vbCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IG1lLgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbQppbmRleCBiN2NhMjdlMGFhYTEzZGY2OTAxNWY2M2E0ZDE2MzMxNTllMTUxNzZlLi42MDEz
Yjk3YjI0M2M4NzUzNjExYWZmYTk1OTY2ZGU2MTcyZTFmMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtMjY5LDcgKzI2OSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXBsYWNlU2VsZWN0aW9uV2l0aFBhc3RlYm9hcmREYXRhKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB0eXBlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRyYWdJ
bWFnZUhhbmRsZSwgYm9vbCBpc0xpbmtEcmFnKQordm9pZCBXZWJQYWdlUHJveHk6OnNldERyYWdJ
bWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5kbGUsIGNvbnN0IEZsb2F0UG9pbnQmLCBi
b29sIGlzTGlua0RyYWcpCiB7CiAgICAgaWYgKGF1dG8gZHJhZ0ltYWdlID0gU2hhcmVhYmxlQml0
bWFwOjpjcmVhdGUoZHJhZ0ltYWdlSGFuZGxlKSkKICAgICAgICAgbV9wYWdlQ2xpZW50LnNldERy
YWdJbWFnZShjbGllbnRQb3NpdGlvbiwgV1RGTW92ZShkcmFnSW1hZ2UpLCBpc0xpbmtEcmFnKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuY3BwCmluZGV4IGE5NWQyNjBkOWQyZDQ4YjIwYmU4YmM4ODc2NTkzNmJh
MDkxODIzNzQuLmEwNmIyNmNkOTc0ZDMyNzM1MjJlZDIzODIwMTUzMGM0YTVkZDQ5MDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBEcmFnU291cmNlQWN0aW9uIFdlYkRy
YWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKQog
fQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKQotdm9pZCBXZWJEcmFn
Q2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IElu
dFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sKQordm9pZCBXZWJEcmFnQ2xpZW50
OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50
JiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKIHsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuaAppbmRleCBjOTU3YzhlYTA5Yjk0OGRjZjFhNWQyMzYwZWI3
NGY0ZGI1MDQ3NWE3Li41NmRjMTNjYWNhNzVjYjY3NGU2MjAxYjNmMDc4OWU3ZWI5NzhlNzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhjb25zdCBXZWJDb3JlOjpE
cmFnRGF0YSYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gZHJhZ1Nv
dXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgd2luZG93UG9p
bnQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVm
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZXZlbnRQb3MsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYsIFdlYkNvcmU6OkZy
YW1lJiwgYm9vbCBsaW5rRHJhZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0RHJh
ZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkcmFnSW1h
Z2VPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBldmVudFBvcywgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgZHJhZ0ltYWdlQW5jaG9yLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBX
ZWJDb3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgb3ZlcnJpZGU7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICB2b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6
VVJMJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdD
bGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9n
dGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKaW5kZXggZjVjYWRjNzdhNjFjZWUwM2VlMmVhNWIzNjli
NDEyNTljODNlNWY3Ni4uM2RlYWZlMTdhNTdkMTViZTQzY2EyZGQ2ZGU0NzE3MTlhYzVhNjFiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsv
V2ViRHJhZ0NsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3Rh
dGljIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRDYWlyb1N1cmZhY2VUb1NoYXJlYWJs
ZUJpdG1hcChjYWlyb19zdXJmYWMKICAgICByZXR1cm4gYml0bWFwOwogfQogCi12b2lkIFdlYkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2lu
dCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgRGF0YVRy
YW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6
c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50JiBjbGllbnRQ
b3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFBvaW50
JiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiwgYm9vbCkKIHsKICAgICBSZWZQ
dHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBjb252ZXJ0Q2Fpcm9TdXJmYWNlVG9TaGFyZWFi
bGVCaXRtYXAoZHJhZ0ltYWdlKTsKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJEcmFnQ2xpZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQppbmRleCBjODRkY2JlYzAzMGI2NTM0ODE4
OWRmY2E3ZjdjODU4YTBjNjRhYjU5Li42OWQ3NDYzNWUwNTliYzY5ZDA4MmEzMzNjOTRkZTQ4YzRj
MGQ2YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTgwLDcgKzgwLDcg
QEAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1h
cChOU0ltYWdlICppbWFnZSwgY29uc3QgSW4KICAgICByZXR1cm4gV1RGTW92ZShiaXRtYXApOwog
fQogCi12b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhSZXRhaW5QdHI8TlNJbWFnZT4gaW1h
Z2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXIm
LCBGcmFtZSYgZnJhbWUsIGJvb2wgbGlua0RyYWcpCit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0
RHJhZyhSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29u
c3QgSW50UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmIGZy
YW1lLCBib29sIGxpbmtEcmFnKQogewogICAgIEludFNpemUgYml0bWFwU2l6ZShbaW1hZ2Ugc2l6
ZV0pOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IGNvbnZlcnRJbWFnZVRv
Qml0bWFwKGltYWdlLmdldCgpLCBiaXRtYXBTaXplLCBmcmFtZSk7CkBAIC05MSw3ICs5MSw3IEBA
IHZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwg
Y29uc3QgSW50UG9pbnQmIHBvaW50LCBjCiAgICAgbV9wYWdlLT53aWxsU3RhcnREcmFnKCk7CiAK
ICAgICAvLyBGSVhNRTogU2VlbXMgdGhpcyBtZXNzYWdlIHNob3VsZCBiZSBuYW1lZCBTdGFydERy
YWcsIG5vdCBTZXREcmFnSW1hZ2UuCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNldERyYWdJbWFnZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQp
LCBoYW5kbGUsIGxpbmtEcmFnKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNldERyYWdJbWFnZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQp
LCBoYW5kbGUsIHsgfSwgbGlua0RyYWcpKTsKIH0KIAogc3RhdGljIFdlYkNvcmU6OkNhY2hlZElt
YWdlKiBjYWNoZWRJbWFnZShFbGVtZW50JiBlbGVtZW50KQo=
</data>
<flag name="review"
          id="322326"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300448</attachid>
            <date>2017-02-02 14:27:55 -0800</date>
            <delta_ts>2017-02-02 15:05:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167690-20170202142541.patch</filename>
            <type>text/plain</type>
            <size>32468</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY4MGQ4ZmVkMDk3MjE4
NTY1MWJlM2RiYWIxN2ViM2EzNTZlNWFjNS4uMTNiMWIxMzA2Nzg4NWJkMjU0YjliOGQzYzhkOGQ5
OWQ0OWYzMjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERyYWcgaW1hZ2Vz
IHNob3VsZCBiZSBhbmNob3JlZCB0byB0aGUgbW91c2UgbG9jYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY5MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAyOTUyNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2ku
CisKKyAgICAgICAgQWRkcyBsb2dpYyB0byBjb21wdXRlIHRoZSBtb3VzZSBhbmNob3IgcG9pbnQu
IFRoaXMgaXMgYSBwb2ludCBpbiB0aGUgdW5pdCBzcXVhcmUgaW5kaWNhdGluZyB3aGVyZSB0aGUg
ZHJhZworICAgICAgICBvcmlnaW4gaXMgcmVsYXRpdmUgdG8gdGhlIGJvdW5kcyBvZiB0aGUgZHJh
ZyBpbWFnZS4gVGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLCBzaW5jZSB0aGlzIGFuY2hvciBw
b2ludCBpcyBub3QKKyAgICAgICAgdXNlZCBieSBhbnkgY2xpZW50IHlldDsgdGhpcyBwYXRjaCBv
bmx5IGNvbXB1dGVzIGFuZCB2ZW5kcyB0aGlzIGluZm9ybWF0aW9uIGZyb20gV2ViQ29yZS4KKwor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0Ns
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xs
ZXI6OmRvU3lzdGVtRHJhZyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorCiAyMDE3LTAyLTAxICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVwZGF0ZSBDQVJpbmdC
dWZmZXIgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0M2Y5YmYwNDIzNjNkM2Y2YTE5ZmRlZmMy
MTVjNTQwYjE1YWQxN2E2Li5hNTljOWExN2ZmZTgxMzU0NzRkZjA0NjVmMWEwNzFlNGE5NmUyNDFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTctMDItMDEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJhZyBpbWFnZXMgc2hv
dWxkIGJlIGFuY2hvcmVkIHRvIHRoZSBtb3VzZSBsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NjkwCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zMDI5NTI2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2FzdWNjaS4KKwor
ICAgICAgICBBZGRzIHNvbWUgcGx1bWJpbmcgZm9yIHRoZSBhbmNob3IgcG9pbnQgaW4gdGhlIFdL
MSBjbGllbnQgbGF5ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAg
KFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisKKzIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMV0gQWxsb3cgdGhlIGRyYWcg
Y2xpZW50IHRvIGJlIGluaXRpYWxpemVkIG9uIHBsYXRmb3JtcyB0aGF0IGRvIG5vdCBzdXBwb3J0
IGRyYWcgYW5kIGRyb3AKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NzY5NQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAzMDUzOTA+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggOGU4YTY1ZTBlYTFlZmI3MDJiNzc4M2Q4ZWE2MTFjMjY2M2NmMjJmMC4uNWZm
Zjc0YmJhMzg0YjdjZDk1YmM4OTI4ZWVmNzdhMTVhODRhZjU5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIERyYWcgaW1hZ2VzIHNob3VsZCBiZSBhbmNob3JlZCB0byB0
aGUgbW91c2UgbG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAyOTUyNjE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2kuCisKKyAgICAgICAgQWRkcyBzb21lIHBs
dW1iaW5nIGZvciB0aGUgYW5jaG9yIHBvaW50IGluIHRoZSBXSzEgY2xpZW50IGxheWVyLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJE
cmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuaDoKKwogMjAxNy0wMS0yOCAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAg
ICAgICBBZGQgTGluayBQcmVsb2FkIGFzIGFuIG9mZi1ieS1kZWZhdWx0IGV4cGVyaW1lbnRhbCBm
ZWF0dXJlIG1lbnUgaXRlbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyZWNhMGUwZmE1ODk4ODc2NmE5MDhlYmJh
YWZhNmY3N2FiNmM4YzFiLi5mZWNhZmU0YjU2NTA1Nzc1Y2JjNDA2ZGQ0OWM2MmRkMjFiY2IxY2U2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzQgQEAKIDIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJhZyBpbWFnZXMgc2hvdWxkIGJl
IGFuY2hvcmVkIHRvIHRoZSBtb3VzZSBsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
MDI5NTI2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2FzdWNjaS4KKworICAgICAg
ICBBZGRzIHNvbWUgcGx1bWJpbmcgZm9yIHRoZSBtb3VzZSBhbmNob3IgcG9pbnQgaW4gdGhlIFVJ
IHByb2Nlc3MuIEFkZGl0aW9uYWxseSwgcmVmYWN0b3JzIHNvbWUgdW5yZWxhdGVkIGNvZGUKKyAg
ICAgICAgZm9yIGhhbmRsaW5nIGRhdGEgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRlcmFjdGlvbldp
dGhJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisKKzIwMTctMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBuaWdodGx5
IG9wZW4gc291cmNlIGJ1aWxkLgogCiAgICAgICAgIEFkZHMgbW9yZSBoZWFkZXIgY2hlY2tzIHdo
ZW4gaW1wb3J0aW5nIGZyb20gV2ViS2l0QWRkaXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcAppbmRleCBhNTI3OWMyYmUwYjNmY2U5NGIzZGQxNDdjMzMwZjkxYzcwODRi
OGZjLi5mMDBmZDAwNDI5ZTU3MGEyMmFhYWNlYTM1OWI3NzE5OTE3NmFkZGIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIGNsYXNzIEVt
cHR5RHJhZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEcmFnQ2xpZW50IHsKICAgICB2b2lkIHdpbGxQ
ZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYs
IERhdGFUcmFuc2ZlciYpIGZpbmFsIHsgfQogICAgIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rp
b25NYXNrRm9yRHJhZyhjb25zdCBEcmFnRGF0YSYpIGZpbmFsIHsgcmV0dXJuIERyYWdEZXN0aW5h
dGlvbkFjdGlvbk5vbmU7IH0KICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25N
YXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBmaW5hbCB7IHJldHVybiBEcmFnU291cmNlQWN0
aW9uTm9uZTsgfQotICAgIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9p
bnQmLCBjb25zdCBJbnRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkgZmluYWwg
eyB9CisgICAgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNv
bnN0IEludFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwg
Ym9vbCkgZmluYWwgeyB9CiAgICAgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIGZpbmFs
IHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaAppbmRleCA5OWE3NmVjNThkNGZjY2Q2
ZjNmNjBmNzY3Yjk2NjcyZTVkYzljNTE4Li4xYWMxOTE2YzRkODVkZTg4ODgxZTY2MDQ4YjllMzVm
Mzg4ZjAyNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAog
CiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKyNpbmNs
dWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBEcmFnRGVzdGlu
YXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWcoY29uc3QgRHJhZ0RhdGEmKSA9IDA7CiAgICAg
dmlydHVhbCBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29u
c3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwg
Y29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wgbGlu
a0RyYWcgPSBmYWxzZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdl
UmVmLCBjb25zdCBJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBJbnRQb2ludCYgZXZl
bnRQb3MsIGNvbnN0IEZsb2F0UG9pbnQmIGRyYWdJbWFnZUFuY2hvciwgRGF0YVRyYW5zZmVyJiwg
RnJhbWUmLCBib29sIGxpbmtEcmFnID0gZmFsc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJh
Z0VuZGVkKCkgeyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKaW5kZXggZTQ3ZWQzMWQ0NWYzMjRjNmQzYTEwMWQxZTBhZTRhOGUxYzc0
MDM5OC4uOTNlNDg3YjdjNzgxNmJlNjI0MjI1ZTg1MzgyYmY0ZWU0Mjc2MTk1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDbGllbnRSZWN0LmgiCiAjaW5jbHVkZSAi
RGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCkBAIC03Niw2ICs3NywxMSBAQAogI2luY2x1ZGUgIlRleHRFdmVudC5oIgog
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisKKyNpZiBFTkFC
TEUoREFUQV9JTlRFUkFDVElPTikKKyNpbmNsdWRlICJTZWxlY3Rpb25SZWN0LmgiCisjZW5kaWYK
KwogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNlbmRpZgpAQCAtODEwLDYgKzgxNiw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJh
ZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAg
QVNTRVJUKHN0YXRlLnNvdXJjZSk7CiAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpzdGF0ZS5zb3Vy
Y2U7CiAKKyAgICBJbnRSZWN0IGRyYWdJbWFnZUJvdW5kczsKICAgICBJbWFnZSogaW1hZ2UgPSBn
ZXRJbWFnZShlbGVtZW50KTsKICAgICBpZiAoc3RhdGUudHlwZSA9PSBEcmFnU291cmNlQWN0aW9u
U2VsZWN0aW9uKSB7CiAgICAgICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNE
YXRhKCkpIHsKQEAgLTgxOCw2ICs4MjUsMTQgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnRE
cmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAg
ICAgICAgICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uUmFuZ2UgPSBzcmMuc2VsZWN0aW9uKCku
dG9Ob3JtYWxpemVkUmFuZ2UoKTsKICAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rpb25SYW5nZSk7
CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAgICAgICAgICAgIFZlY3RvcjxTZWxl
Y3Rpb25SZWN0PiBzZWxlY3Rpb25SZWN0czsKKyAgICAgICAgICAgIHNlbGVjdGlvblJhbmdlLT5j
b2xsZWN0U2VsZWN0aW9uUmVjdHMoc2VsZWN0aW9uUmVjdHMpOworICAgICAgICAgICAgZm9yIChh
dXRvIHNlbGVjdGlvblJlY3QgOiBzZWxlY3Rpb25SZWN0cykKKyAgICAgICAgICAgICAgICBkcmFn
SW1hZ2VCb3VuZHMudW5pdGUoc2VsZWN0aW9uUmVjdC5yZWN0KCkpOworICAgICAgICAgICAgZHJh
Z0ltYWdlQm91bmRzLmluZmxhdGUoU2VsZWN0aW9uRHJhZ0ltYWdlUGFkZGluZyk7CisjZW5kaWYK
KwogICAgICAgICAgICAgc3JjLmVkaXRvcigpLndpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2Fy
ZChzZWxlY3Rpb25SYW5nZS5nZXQoKSk7CiAKICAgICAgICAgICAgIGlmIChlbmNsb3NpbmdUZXh0
Rm9ybUNvbnRyb2woc3JjLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpKQpAQCAtODQz
LDcgKzg1OCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBj
b25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgIGlmICghZHJhZ0lt
YWdlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGRvU3lzdGVtRHJhZyhk
cmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7
CisgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRy
YWdJbWFnZUJvdW5kcywgZGF0YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsKICAgICB9IGVsc2UgaWYg
KCFzcmMuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS5jYW5EaXNwbGF5KGxpbmtVUkwpKSB7
CiAgICAgICAgIHNyYy5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIk5vdCBhbGxvd2VkIHRvIGRyYWcgbG9j
YWwgcmVzb3VyY2U6ICIgKyBsaW5rVVJMLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
KTsKICAgICAgICAgc3RhcnRlZERyYWcgPSBmYWxzZTsKQEAgLTg2Niw3ICs4ODEsNyBAQCBib29s
IERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBz
dGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgZG9JbWFnZURyYWcoZWxlbWVudCwgZHJh
Z09yaWdpbiwgaGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKSwgZGF0YVRyYW5zZmVyLCBzcmMsIG1f
ZHJhZ09mZnNldCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBESFRNTCBkZWZp
bmVkIGRyYWcgaW1hZ2UKLSAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdM
b2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7CisgICAgICAgICAgICBk
b1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBkcmFnT3JpZ2luLCB7IH0sIGRhdGFUcmFu
c2Zlciwgc3JjLCBmYWxzZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKCFsaW5rVVJMLmlz
RW1wdHkoKSAmJiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkxpbmspKSB7
CiAgICAgICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNEYXRhKCkpIHsKQEAg
LTkwMiw3ICs5MTcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNy
YywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgLy8g
TGF0ZXIgY29kZSBleHBlY3RzIHRoZSBkcmFnIGltYWdlIHRvIGJlIHNjYWxlZCBieSBkZXZpY2Un
cyBzY2FsZSBmYWN0b3IuCiAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBzY2FsZURyYWdJbWFnZShk
cmFnSW1hZ2UsIEZsb2F0U2l6ZShtX3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9wYWdlLmRl
dmljZVNjYWxlRmFjdG9yKCkpKTsKICAgICAgICAgfQotICAgICAgICBkb1N5c3RlbURyYWcoZHJh
Z0ltYWdlLCBkcmFnTG9jLCBtb3VzZURyYWdnZWRQb2ludCwgZGF0YVRyYW5zZmVyLCBzcmMsIHRy
dWUpOworICAgICAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnTG9jLCBtb3VzZURyYWdn
ZWRQb2ludCwgeyB9LCBkYXRhVHJhbnNmZXIsIHNyYywgdHJ1ZSk7CiAjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkKICAgICB9IGVsc2UgaWYgKCFhdHRhY2htZW50VVJMLmlzRW1wdHkoKSAm
JiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkF0dGFjaG1lbnQpKSB7CiAg
ICAgICAgIGlmICghZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5oYXNEYXRhKCkpIHsKQEAgLTkx
OCwxMyArOTMzLDEzIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3Jj
LCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgICAgICBkcmFn
TG9jID0gZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWcoc3JjKTsKICAgICAgICAgICAgIG1fZHJhZ09m
ZnNldCA9IEludFBvaW50KGRyYWdPcmlnaW4ueCgpIC0gZHJhZ0xvYy54KCksIGRyYWdPcmlnaW4u
eSgpIC0gZHJhZ0xvYy55KCkpOwogICAgICAgICB9Ci0gICAgICAgIGRvU3lzdGVtRHJhZyhkcmFn
SW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlciwgc3JjLCBmYWxzZSk7Cisg
ICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1hZ2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIHsgfSwg
ZGF0YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsKICNlbmRpZgogICAgIH0gZWxzZSBpZiAoc3RhdGUu
dHlwZSA9PSBEcmFnU291cmNlQWN0aW9uREhUTUwpIHsKICAgICAgICAgaWYgKGRyYWdJbWFnZSkg
ewogICAgICAgICAgICAgQVNTRVJUKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rp
b25ESFRNTCk7CiAgICAgICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rp
b24oRHJhZ1NvdXJjZUFjdGlvbkRIVE1MLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIpOwotICAg
ICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwgZGF0
YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsKKyAgICAgICAgICAgIGRvU3lzdGVtRHJhZyhkcmFnSW1h
Z2UsIGRyYWdMb2MsIGRyYWdPcmlnaW4sIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIGZhbHNlKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBzdGFydGVkRHJhZyA9IGZhbHNlOwogICAgIH0g
ZWxzZSB7CkBAIC05ODEsMjAgKzk5NiwyNSBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkb0ltYWdl
RHJhZyhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRQb2ludCYgZHJhZ09yaWdpbiwgYwogICAg
ICAgICByZXR1cm47CiAKICAgICBkcmFnSW1hZ2VPZmZzZXQgPSBtb3VzZURvd25Qb2ludCArIHNj
YWxlZE9yaWdpbjsKLSAgICBkb1N5c3RlbURyYWcoZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQs
IGRyYWdPcmlnaW4sIGRhdGFUcmFuc2ZlciwgZnJhbWUsIGZhbHNlKTsKKyAgICBkb1N5c3RlbURy
YWcoZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQsIGRyYWdPcmlnaW4sIGVsZW1lbnQuYm91bmRz
SW5Sb290Vmlld1NwYWNlKCksIGRhdGFUcmFuc2ZlciwgZnJhbWUsIGZhbHNlKTsKIAogICAgIGRl
bGV0ZURyYWdJbWFnZShkcmFnSW1hZ2UpOwogfQogCi12b2lkIERyYWdDb250cm9sbGVyOjpkb1N5
c3RlbURyYWcoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2ludCYgZHJhZ0xvYywgY29u
c3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUm
IGZyYW1lLCBib29sIGZvckxpbmspCit2b2lkIERyYWdDb250cm9sbGVyOjpkb1N5c3RlbURyYWco
RHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2ludCYgZHJhZ0xvYywgY29uc3QgSW50UG9p
bnQmIGV2ZW50UG9zLCBjb25zdCBJbnRSZWN0JiBkcmFnSW1hZ2VCb3VuZHMsIERhdGFUcmFuc2Zl
ciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIGJvb2wgZm9yTGluaykKIHsKKyAgICBGbG9h
dFBvaW50IGRyYWdJbWFnZUFuY2hvciA9IHsgMC41LCAwLjUgfTsKKyAgICBpZiAoIWRyYWdJbWFn
ZUJvdW5kcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgZHJhZ0ltYWdlQW5jaG9yLnNldFgoKGV2ZW50
UG9zLngoKSAtIGRyYWdJbWFnZUJvdW5kcy54KCkpIC8gKGZsb2F0KWRyYWdJbWFnZUJvdW5kcy53
aWR0aCgpKTsKKyAgICAgICAgZHJhZ0ltYWdlQW5jaG9yLnNldFkoKGV2ZW50UG9zLnkoKSAtIGRy
YWdJbWFnZUJvdW5kcy55KCkpIC8gKGZsb2F0KWRyYWdJbWFnZUJvdW5kcy5oZWlnaHQoKSk7Cisg
ICAgfQorCiAgICAgbV9kaWRJbml0aWF0ZURyYWcgPSB0cnVlOwogICAgIG1fZHJhZ0luaXRpYXRv
ciA9IGZyYW1lLmRvY3VtZW50KCk7CiAgICAgLy8gUHJvdGVjdCB0aGlzIGZyYW1lIGFuZCB2aWV3
LCBhcyBhIGxvYWQgbWF5IG9jY3VyIG1pZCBkcmFnIGFuZCBhdHRlbXB0IHRvIHVubG9hZCB0aGlz
IGZyYW1lCiAgICAgUmVmPE1haW5GcmFtZT4gZnJhbWVQcm90ZWN0b3IobV9wYWdlLm1haW5GcmFt
ZSgpKTsKICAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3UHJvdGVjdG9yID0gZnJhbWVQcm90ZWN0
b3ItPnZpZXcoKTsKLSAgICBtX2NsaWVudC5zdGFydERyYWcoaW1hZ2UsIHZpZXdQcm90ZWN0b3It
PnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhkcmFn
TG9jKSksCi0gICAgICAgIHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52
aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhldmVudFBvcykpLCBkYXRhVHJhbnNmZXIsIGZyYW1l
UHJvdGVjdG9yLmdldCgpLCBmb3JMaW5rKTsKKyAgICBtX2NsaWVudC5zdGFydERyYWcoaW1hZ2Us
IHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS52aWV3KCktPmNvbnRlbnRz
VG9Sb290VmlldyhkcmFnTG9jKSksIHZpZXdQcm90ZWN0b3ItPnJvb3RWaWV3VG9Db250ZW50cyhm
cmFtZS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhldmVudFBvcykpLCBkcmFnSW1hZ2VBbmNo
b3IsIGRhdGFUcmFuc2ZlciwgZnJhbWVQcm90ZWN0b3IuZ2V0KCksIGZvckxpbmspOwogICAgIC8v
IERyYWdDbGllbnQ6OnN0YXJ0RHJhZyBjYW4gY2F1c2Ugb3VyIFBhZ2UgdG8gZGlzcGVhciwgZGVh
bGxvY2F0aW5nIHx0aGlzfC4KICAgICBpZiAoIWZyYW1lUHJvdGVjdG9yLT5wYWdlKCkpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCBkZWRkYWQ4
NmU2ZGRjYzYzYWViMGUyZjhkY2I3ZGJjZjNkN2M0Y2YzLi43ODIxMDRmMmQ2YmFlZTQ0NDk0Yzhk
OTBhNjM0YmQ2YWQ4NzY0NGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFn
SW1hZ2UuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKICNp
bmNsdWRlICJVUkwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTExLDcgKzExMiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBtb3VzZU1vdmVkSW50b0RvY3VtZW50
KERvY3VtZW50Kik7CiAKICAgICAgICAgdm9pZCBkb0ltYWdlRHJhZyhFbGVtZW50JiwgY29uc3Qg
SW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBJbnRQb2lu
dCYpOwotICAgICAgICB2b2lkIGRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBv
aW50JiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIGJvb2wgZm9yTGlu
ayk7CisgICAgICAgIHZvaWQgZG9TeXN0ZW1EcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9p
bnQmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFJlY3QmIGRyYWdJbWFnZUJvdW5kcywgRGF0
YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sIGZvckxpbmspOwogICAgICAgICB2b2lkIGNsZWFudXBB
ZnRlclN5c3RlbURyYWcoKTsKICAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2Uo
RGF0YVRyYW5zZmVyJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwp
OwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJ
bWFnZS5oCmluZGV4IGEyODg0MTc5Zjg3NTg4NDU1MDdiNTUwYWM4ZjRmNzdiYTBmOTQyZmMuLmMz
YjY2NWM2YjUyMDNlYjY3YTYyYmJiNTU0YzY2Njk4MDFiODVlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RyYWdJbWFnZS5oCkBAIC02Nyw2ICs2NywxMCBAQCB0eXBlZGVmIGNhaXJvX3N1cmZhY2Vf
dCogRHJhZ0ltYWdlUmVmOwogdHlwZWRlZiB2b2lkKiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGNvbnN0IGZsb2F0IFNlbGVjdGlvbkRyYWdJbWFn
ZVBhZGRpbmcgPSAxNTsKKyNlbmRpZgorCiBJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdl
UmVmKTsKIAogLy8gVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBiZSBtZW1vcnkgbmV1dHJhbCwgZWcu
IGlmIHRoZXkgcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIGltYWdlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCmluZGV4IDQxNzA2MGJjODk4
NDA4OWFlNDFhYTM1YjkzZjA5MGQ2ZGVkNmI5NjcuLmJlNmNiYjFkZmU4MDQ3MGY4ZjQzNTIxZTgx
YjJkYjU0N2QwNjI0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6
OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhjb25zdCBXZWJDb3JlOjpE
cmFnRGF0YSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBv
dmVycmlkZTsKICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25N
YXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVycmlk
ZTsKLSAgICB2b2lkIHN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBkcmFnUG9zLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZXZlbnRQb3Ms
IFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZykg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ1BvcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2
ZW50UG9zLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgV2ViQ29yZTo6RGF0YVRyYW5zZmVy
JiwgV2ViQ29yZTo6RnJhbWUmLCBib29sIGxpbmtEcmFnKSBvdmVycmlkZTsKICAgICB2b2lkIGRl
Y2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJD
b3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6RnJhbWUqKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAg
IHZvaWQgZGVjbGFyZUFuZFdyaXRlQXR0YWNobWVudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5n
JiBwYXRoLCBXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggM2U5NzA5ZWIxODY4MWE5
ZjQ3OWRlM2VlNGQ2YWM5YTZhMGM3ZDg5ZS4uNGE4NGJjOGU1MzYyYjkxZTBjNzNmMDcwY2NiYTcz
M2ZkMGU3NDlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50Lm1tCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6d2ls
bFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWN0aW9u
CiAgICAgW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3
IHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbjooV2ViRHJhZ1NvdXJjZUFjdGlvbilhY3Rpb24g
ZnJvbVBvaW50Om1vdXNlRG93blBvaW50IHdpdGhQYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgcGFz
dGVib2FyZFdpdGhOYW1lOmRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpXV07CiB9CiAK
LXZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNv
bnN0IEludFBvaW50JiBhdCwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBEYXRhVHJhbnNmZXIm
IGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQordm9pZCBXZWJEcmFn
Q2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmIGRyYWdJbWFnZSwgY29uc3QgSW50UG9pbnQm
IGF0LCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3MsIGNvbnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJh
bnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGxpbmtEcmFnKQogewogICAg
IFJldGFpblB0cjxXZWJIVE1MVmlldz4gaHRtbFZpZXcgPSAoV2ViSFRNTFZpZXcqKVtba2l0KCZm
cmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOwogICAgIGlmICghW2h0bWxWaWV3LmdldCgp
IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pCkBAIC0xNjUsNyArMTY1LDcgQEAg
dm9pZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6
RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QKIHsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFy
dERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgRGF0
YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sKQordm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWco
RHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgRmxv
YXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAppbmRleCA2
YTBkZGNlYzM2OWJkMDllYThiNTI5ZmZmMGJjYzE2MzRiMzMzMzIwLi4zNzk4MGE0ZDM4N2UwNGY3
ZmMxZmU2ZTdiYjc2YTIyZjA0NjI3M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQg
V2ViRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rp
b24gYWN0aW9uLCBjb25zdCBJCiAgICAgICAgIGNvbnN0X2Nhc3Q8UGFzdGVib2FyZCY+KGRhdGFU
cmFuc2Zlci5wYXN0ZWJvYXJkKCkpLnNldEV4dGVybmFsRGF0YU9iamVjdChuZXdEYXRhT2JqZWN0
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVm
IGltYWdlLCBjb25zdCBJbnRQb2ludCYgaW1hZ2VPcmlnaW4sIGNvbnN0IEludFBvaW50JiBkcmFn
UG9pbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIGJvb2wgaXNM
aW5rKQordm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmIGltYWdlLCBj
b25zdCBJbnRQb2ludCYgaW1hZ2VPcmlnaW4sIGNvbnN0IEludFBvaW50JiBkcmFnUG9pbnQsIGNv
bnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1l
LCBib29sIGlzTGluaykKIHsKICAgICAvL0ZJWE1FOiBBbGxvdyBVSURlbGVnYXRlIHRvIG92ZXJy
aWRlIGJlaGF2aW91ciA8cmRhcjovL3Byb2JsZW0vNTAxNTk1Mz4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCmluZGV4IDA5NWM2MGZjZjBm
YzI1MzQ0Zjc3ZWZkOWZjZjJkYWQ4NDc2NTA2YmQuLjdmNWQyYWU4YzYzMDYwZGZkN2E5ODQzNWRm
YzYzZjNhYjQ2ODZkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
V2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uKFdlYkNvcmU6OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiwgY29uc3Qg
V2ViQ29yZTo6RHJhZ0RhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291
cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiwgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJik7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJh
ZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBXZWJDb3JlOjpGcmFt
ZSYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdl
UmVmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYsIFdlYkNv
cmU6OkZyYW1lJiwgYm9vbCk7CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDI1NzAxMDQ1ODU3ZTdhZGM3
ZWE5YjYwMjNlYTZkYTk2MDI1ZGExYi4uMTBhMWM4NmJmYTE5MTllMmU4N2RhYzE3ZjllYjM0OTQ5
MmY4NGViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zODMsNyAr
MzgzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdmly
dHVhbCB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBpbWFnZSwgYm9vbCBpc0xpbmspID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykgPSAwOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTU0MmVm
NDljOGYzZTQ4OTM0ZjA4YmVkNTQzNWY2NDUzZGNiNTkxOC4uZDJlZjQwYjEzOWE0NTI0OTE2YzUw
YjEzOTg3OGJiNmFhN2Q1NWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtODM1LDcgKzgzNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFBlcmZvcm1EcmFn
Q29udHJvbGxlckFjdGlvbih1aW50NjRfdCBkcmFnT3BlcmF0aW9uLCBib29sIG1vdXNlSXNPdmVy
RmlsZUlucHV0LCB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKTsKICAgICB2b2lk
IGRyYWdFbmRlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3Qgb3BlcmF0aW9uKTsK
ICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
JiBkcmFnSW1hZ2VIYW5kbGUsIGJvb2wgaXNMaW5rRHJhZyk7CisgICAgdm9pZCBzZXREcmFnSW1h
Z2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBkcmFnSW1hZ2VBbmNob3IsIGJvb2wgaXNMaW5rRHJhZyk7CiAgICAgdm9pZCBzZXRQcm9t
aXNlZERhdGFGb3JJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTaGFy
ZWRNZW1vcnk6OkhhbmRsZSYgaW1hZ2VIYW5kbGUsIHVpbnQ2NF90IGltYWdlU2l6ZSwgY29uc3Qg
U3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBleHRlbnNpb24sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgdmlzaWJsZVVSTCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGFyY2hpdmVI
YW5kbGUsIHVpbnQ2NF90IGFyY2hpdmVTaXplKTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggZjIzNzRmNzU3MTI1ZGMxODlkNTgzYzQwNzMyZWJjZjc1YmYyNzYzNi4uOWRm
MzAyNTQyY2Y5NjJjNzkxOGJhNDZjNzE5ZWY3YTg5NmEyZDBhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMDcsNyArMzA3
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRQZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJ
bnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCkKICNlbmRpZgogI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIFNldERyYWdJbWFnZShX
ZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSBkcmFnSW1hZ2UsIGJvb2wgbGlua0RyYWcpCisgICAgU2V0RHJhZ0ltYWdlKFdlYkNv
cmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlIGRyYWdJbWFnZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBkcmFnSW1hZ2VBbmNob3IsIGJvb2wg
bGlua0RyYWcpCiAgICAgU2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoU3RyaW5nIHBhc3RlYm9hcmRO
YW1lLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGltYWdlSGFuZGxlLCB1aW50NjRfdCBp
bWFnZVNpemUsIFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGV4dGVuc2lvbiwgU3RyaW5nIHRpdGxl
LCBTdHJpbmcgdXJsLCBTdHJpbmcgdmlzaWJsZVVSTCwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6Okhh
bmRsZSBhcmNoaXZlSGFuZGxlLCB1aW50NjRfdCBhcmNoaXZlU2l6ZSkKICNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQogICAgIFNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQoU3RyaW5n
IHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBleHRlbnNpb24sIFN0cmlu
ZyB0aXRsZSwgU3RyaW5nIHVybCwgU3RyaW5nIHZpc2libGVVUkwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMjA2NTFhM2M3Njkz
NDc4ZDM0NWIyYzc4OGMwYzkyNDc4YmZmZmRlMy4uYzQwN2U4Y2I0ZTJmOGQxODVlYjAxNGU1ZDE2
ZTI4MGQ1MzE4MmU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMjAzLDcgKzIwMyw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFC
TEUoREFUQV9JTlRFUkFDVElPTikKICAgICB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25D
b250cm9sbGVyT3BlcmF0aW9uKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdGFydERhdGFJbnRlcmFj
dGlvbldpdGhJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNv
bnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZSwgYm9vbCBpc0xpbmspIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGlu
aykgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFdLQ29udGVudFZpZXcgKm1fY29udGVudFZpZXc7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQppbmRleCBjZDMzZjljZjQxZWZkOTJmZGJlNzE4ZTA4ZGIzYWVlZjkwM2I1NDFmLi4xODMxMjUw
NmU1YTI4ODIzMDA1MzU5N2Q5ODVmNDU2NmFlZmI0Y2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTc2OCw5ICs3NjgsOSBA
QCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxl
ck9wZXJhdGlvbigpCiAgICAgW21fY29udGVudFZpZXcgX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rp
b25Db250cm9sbGVyT3BlcmF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnRE
YXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBj
b25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKQordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgSW50UG9p
bnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykKIHsKLSAgICBbbV9j
b250ZW50VmlldyBfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6U2hhcmVhYmxlQml0bWFw
OjpjcmVhdGUoaW1hZ2UpLT5tYWtlQ0dJbWFnZUNvcHkoKSBhdENsaWVudFBvc2l0aW9uOkNHUG9p
bnRNYWtlKGNsaWVudFBvc2l0aW9uLngoKSwgY2xpZW50UG9zaXRpb24ueSgpKSBpc0xpbms6aXNM
aW5rXTsKKyAgICBbbV9jb250ZW50VmlldyBfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6
U2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2UpLT5tYWtlQ0dJbWFnZUNvcHkoKSBhdENsaWVu
dFBvc2l0aW9uOkNHUG9pbnRNYWtlKGNsaWVudFBvc2l0aW9uLngoKSwgY2xpZW50UG9zaXRpb24u
eSgpKSBhbmNob3JQb2ludDphbmNob3JQb2ludCBpc0xpbms6aXNMaW5rXTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCBjZTBjNGY1MWViNmQ1YWM5MmU3NDZlNzJlN2NmZWQyYWQ2Mjgw
NDc0Li43NmU2NTUxMDM4ZWVmMjRiMzNlNmU4NTY0OWVlNDU3NTdkMzcwMjQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKQEAgLTI1Miw3ICsyNTIsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewog
CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAtICh2b2lkKV9kaWRQZXJmb3JtRGF0YUlu
dGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjsKLS0gKHZvaWQpX3N0YXJ0RGF0YUludGVyYWN0
aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2UgYXRDbGllbnRQb3NpdGlv
bjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBpc0xpbms6KEJPT0wpaXNMaW5rOworLSAodm9pZClf
c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6KFJldGFpblB0cjxDR0ltYWdlUmVmPilpbWFn
ZSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihD
R1BvaW50KWFuY2hvclBvaW50IGlzTGluazooQk9PTClpc0xpbms7CiAjZW5kaWYKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGNl
ZGI3YjIxMDg3YTBmZmU0MzhmM2FhZDUyNjM3ZDk2MzhiOTJkMzAuLmZlZTljNTQ5NGEzOGFlZDk3
ZTE2OTViODdiNWQ3Yjc4MWI4ZWMxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTIzNCw3ICsyMzQsNyBAQCBwcml2YXRlOgogCiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0
aW9uQ29udHJvbGxlck9wZXJhdGlvbigpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RhcnREYXRhSW50
ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9u
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUmIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBp
c0xpbmspIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBOU1ZpZXcgKm1fdmlldzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IGQzYWNjNTg3
OTA3MzgzYzg0YWFiNDg0MzM4ZjEyMjI3OWExMTg5MTEuLjE4ZmFmOWI1ODg1ZDFhYjVjYzY5ZmI4
YzdhY2Q0ZGJjYWIwZTUwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbQpAQCAtODgxLDcgKzg4MSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkKICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IG1lLgogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJ
bnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBJbnRQb2ludCYsIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiwgYm9vbCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0
aW9uV2l0aEltYWdlKGNvbnN0IEludFBvaW50JiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUmLCBjb25zdCBGbG9hdFBvaW50JiwgYm9vbCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IG1lLgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbQppbmRleCBiN2NhMjdlMGFhYTEzZGY2OTAxNWY2M2E0ZDE2MzMxNTllMTUxNzZlLi42MDEz
Yjk3YjI0M2M4NzUzNjExYWZmYTk1OTY2ZGU2MTcyZTFmMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtMjY5LDcgKzI2OSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXBsYWNlU2VsZWN0aW9uV2l0aFBhc3RlYm9hcmREYXRhKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB0eXBlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRyYWdJ
bWFnZUhhbmRsZSwgYm9vbCBpc0xpbmtEcmFnKQordm9pZCBXZWJQYWdlUHJveHk6OnNldERyYWdJ
bWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5kbGUsIGNvbnN0IEZsb2F0UG9pbnQmLCBi
b29sIGlzTGlua0RyYWcpCiB7CiAgICAgaWYgKGF1dG8gZHJhZ0ltYWdlID0gU2hhcmVhYmxlQml0
bWFwOjpjcmVhdGUoZHJhZ0ltYWdlSGFuZGxlKSkKICAgICAgICAgbV9wYWdlQ2xpZW50LnNldERy
YWdJbWFnZShjbGllbnRQb3NpdGlvbiwgV1RGTW92ZShkcmFnSW1hZ2UpLCBpc0xpbmtEcmFnKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuY3BwCmluZGV4IGE5NWQyNjBkOWQyZDQ4YjIwYmU4YmM4ODc2NTkzNmJh
MDkxODIzNzQuLmEwNmIyNmNkOTc0ZDMyNzM1MjJlZDIzODIwMTUzMGM0YTVkZDQ5MDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBEcmFnU291cmNlQWN0aW9uIFdlYkRy
YWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKQog
fQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKQotdm9pZCBXZWJEcmFn
Q2xpZW50OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IElu
dFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBib29sKQordm9pZCBXZWJEcmFnQ2xpZW50
OjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50
JiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFUcmFuc2ZlciYsIEZyYW1lJiwgYm9vbCkKIHsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuaAppbmRleCBjOTU3YzhlYTA5Yjk0OGRjZjFhNWQyMzYwZWI3
NGY0ZGI1MDQ3NWE3Li41NmRjMTNjYWNhNzVjYjY3NGU2MjAxYjNmMDc4OWU3ZWI5NzhlNzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhjb25zdCBXZWJDb3JlOjpE
cmFnRGF0YSYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gZHJhZ1Nv
dXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgd2luZG93UG9p
bnQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVm
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZXZlbnRQb3MsIFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYsIFdlYkNvcmU6OkZy
YW1lJiwgYm9vbCBsaW5rRHJhZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0RHJh
ZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkcmFnSW1h
Z2VPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBldmVudFBvcywgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgZHJhZ0ltYWdlQW5jaG9yLCBXZWJDb3JlOjpEYXRhVHJhbnNmZXImLCBX
ZWJDb3JlOjpGcmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgb3ZlcnJpZGU7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICB2b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6
VVJMJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdD
bGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9n
dGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKaW5kZXggZjVjYWRjNzdhNjFjZWUwM2VlMmVhNWIzNjli
NDEyNTljODNlNWY3Ni4uM2RlYWZlMTdhNTdkMTViZTQzY2EyZGQ2ZGU0NzE3MTlhYzVhNjFiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsv
V2ViRHJhZ0NsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3Rh
dGljIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRDYWlyb1N1cmZhY2VUb1NoYXJlYWJs
ZUJpdG1hcChjYWlyb19zdXJmYWMKICAgICByZXR1cm4gYml0bWFwOwogfQogCi12b2lkIFdlYkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2lu
dCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgRGF0YVRy
YW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiwgYm9vbCkKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6
c3RhcnREcmFnKERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50JiBjbGllbnRQ
b3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFBvaW50
JiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiwgYm9vbCkKIHsKICAgICBSZWZQ
dHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBjb252ZXJ0Q2Fpcm9TdXJmYWNlVG9TaGFyZWFi
bGVCaXRtYXAoZHJhZ0ltYWdlKTsKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJEcmFnQ2xpZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQppbmRleCBjODRkY2JlYzAzMGI2NTM0ODE4
OWRmY2E3ZjdjODU4YTBjNjRhYjU5Li42OWQ3NDYzNWUwNTliYzY5ZDA4MmEzMzNjOTRkZTQ4YzRj
MGQ2YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTgwLDcgKzgwLDcg
QEAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1h
cChOU0ltYWdlICppbWFnZSwgY29uc3QgSW4KICAgICByZXR1cm4gV1RGTW92ZShiaXRtYXApOwog
fQogCi12b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhSZXRhaW5QdHI8TlNJbWFnZT4gaW1h
Z2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXIm
LCBGcmFtZSYgZnJhbWUsIGJvb2wgbGlua0RyYWcpCit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0
RHJhZyhSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29u
c3QgSW50UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmIGZy
YW1lLCBib29sIGxpbmtEcmFnKQogewogICAgIEludFNpemUgYml0bWFwU2l6ZShbaW1hZ2Ugc2l6
ZV0pOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IGNvbnZlcnRJbWFnZVRv
Qml0bWFwKGltYWdlLmdldCgpLCBiaXRtYXBTaXplLCBmcmFtZSk7CkBAIC05MSw3ICs5MSw3IEBA
IHZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwg
Y29uc3QgSW50UG9pbnQmIHBvaW50LCBjCiAgICAgbV9wYWdlLT53aWxsU3RhcnREcmFnKCk7CiAK
ICAgICAvLyBGSVhNRTogU2VlbXMgdGhpcyBtZXNzYWdlIHNob3VsZCBiZSBuYW1lZCBTdGFydERy
YWcsIG5vdCBTZXREcmFnSW1hZ2UuCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNldERyYWdJbWFnZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQp
LCBoYW5kbGUsIGxpbmtEcmFnKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNldERyYWdJbWFnZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQp
LCBoYW5kbGUsIHsgfSwgbGlua0RyYWcpKTsKIH0KIAogc3RhdGljIFdlYkNvcmU6OkNhY2hlZElt
YWdlKiBjYWNoZWRJbWFnZShFbGVtZW50JiBlbGVtZW50KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>