<?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>81820</bug_id>
          
          <creation_ts>2012-03-21 12:07:37 -0700</creation_ts>
          <short_desc>Rename touchpad fling curve, add curve parameters to constructor.</short_desc>
          <delta_ts>2012-03-22 07:03:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="W. James MacLean">wjmaclean</reporter>
          <assigned_to name="W. James MacLean">wjmaclean</assigned_to>
          <cc>enne</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>pnormand</cc>
    
    <cc>rjkroege</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>584468</commentid>
    <comment_count>0</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-03-21 12:07:37 -0700</bug_when>
    <thetext>Rename touchpad fling curve, add curve parameters to constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584469</commentid>
    <comment_count>1</comment_count>
      <attachid>133089</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-03-21 12:09:19 -0700</bug_when>
    <thetext>Created attachment 133089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584476</commentid>
    <comment_count>2</comment_count>
      <attachid>133089</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-21 12:17:39 -0700</bug_when>
    <thetext>Comment on attachment 133089
Patch

Attachment 133089 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12035638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584510</commentid>
    <comment_count>3</comment_count>
      <attachid>133098</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-03-21 12:40:31 -0700</bug_when>
    <thetext>Created attachment 133098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584511</commentid>
    <comment_count>4</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-03-21 12:40:56 -0700</bug_when>
    <thetext>Patch to update GTK make files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584619</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-21 14:07:49 -0700</bug_when>
    <thetext>It&apos;s really hard to read a diff when you both rename a file and change the implementation.  I realize you&apos;re trying to move quickly here, but that&apos;s not helping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584631</commentid>
    <comment_count>6</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-03-21 14:26:55 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; It&apos;s really hard to read a diff when you both rename a file and change the implementation.  I realize you&apos;re trying to move quickly here, but that&apos;s not helping.

Sorry about that ... I hadn&apos;t quite realized how the diffs would turn out until after I uploaded the patch (git shows things more sensibly ...).

Should I re-do them separately?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584639</commentid>
    <comment_count>7</comment_count>
      <attachid>133098</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-21 14:36:35 -0700</bug_when>
    <thetext>Comment on attachment 133098
Patch

No, don&apos;t bother.  I&apos;ve looked at it enough now that I see what&apos;s going on.  Along with renaming a file, it just looks like you&apos;re removing a static (yay) and moving it to be a member variable that you can also now set from the constructor.  Seems totally reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585184</commentid>
    <comment_count>8</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-03-22 05:59:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 133098 [details])
&gt; No, don&apos;t bother.  I&apos;ve looked at it enough now that I see what&apos;s going on.  Along with renaming a file, it just looks like you&apos;re removing a static (yay) and moving it to be a member variable that you can also now set from the constructor.  Seems totally reasonable.

Thanks - I&apos;ll make sure not do combine a rename op with anything else in future :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585220</commentid>
    <comment_count>9</comment_count>
      <attachid>133098</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 07:03:24 -0700</bug_when>
    <thetext>Comment on attachment 133098
Patch

Clearing flags on attachment: 133098

Committed r111686: &lt;http://trac.webkit.org/changeset/111686&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585221</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 07:03:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133089</attachid>
            <date>2012-03-21 12:09:19 -0700</date>
            <delta_ts>2012-03-21 12:40:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81820-20120321150918.patch</filename>
            <type>text/plain</type>
            <size>21918</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU3NmFjNTE3NDU1YTI4
MzMyMWVkMDE1OTUzYTVhODBhNjc1YTJlNy4uMzcxN2QzNGQ2MDM0ODYzNmNjZTBkNmM5ZjI0MDBm
MGNhNGU4NDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTIxICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW5hbWUg
dG91Y2hwYWQgZmxpbmcgY3VydmUsIGFkZCBjdXJ2ZSBwYXJhbWV0ZXJzIHRvIGNvbnN0cnVjdG9y
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4MjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHVuaXQgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTm9uZTo6ZmlyZVVwQW5BbmltYXRpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL1RvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHA6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3Bw
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaHBhZEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaHBhZEZs
aW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZSk6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6
On5Ub3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUpOgorICAgICAgICAoV2ViQ29yZTo6
VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjphcHBseSk6CisgICAgICAgICogcGxh
dGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlKToKKwogMjAxMi0wMy0yMSAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBDQ1RocmVhZFByb3h5IG11c3QgaW5pdGlhbGl6ZSBmcmFtZUJl
Z2luVGltZSB0byBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUgcmF0aGVyIHRoYW4gemVybwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0YjM4MTk2ZjI2Zjg2OWUyMDNkYzA2MzMzMWVm
MmU4MDUzYTQzNzM0Li4xNjE5M2JhNDM3Yjg5NDBiN2Q5NTU5YmYyMGVkZjZhNWNiYjMyMjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTIxICBX
LiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW5h
bWUgdG91Y2hwYWQgZmxpbmcgY3VydmUsIGFkZCBjdXJ2ZSBwYXJhbWV0ZXJzIHRvIGNvbnN0cnVj
dG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNy
Yy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmcpOgorICAgICAg
ICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpn
ZXN0dXJlRXZlbnQpOgorICAgICAgICAqIHRlc3RzL1BsYXRmb3JtR2VzdHVyZUN1cnZlVGVzdC5j
cHA6CisKIDIwMTItMDMtMjEgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+
CiAKICAgICAgICAgW2Nocm9taXVtXSBNZWRpYVN0cmVhbSBBUEkgKEpTRVApOiBFbmhhbmNpbmcg
V2ViTWVkaWFIaW50cyBhbmQgV2ViSUNFT3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDZkMzEy
MjA5MTU5ZWQ5NTM1NGIzNTBhNDhlY2NmZjJiODY0ZDlmMDMuLjhjMDk4MDM5NmZkNjcxNTNmYmFl
NDM5NmQ3MjM1YWUzYzJiYmJmNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMwOTEsOCArMzA5MSw4
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vVGhyZWFkVGltZXJzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1RpbWVy
LmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9VVUlELmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vVVVJRC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9XaGVl
bEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCmluZGV4IDZmYzFiZDdlNjhkZjg2NzAxNzRlY2Vm
YjRiZWQ1YTg4NDBkYWRhMjEuLmRlMzMwYjQwNjgxZjcxNjczMzcwM2I4ZDE4NjMyMzg0YTFjMTU0
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCiAj
aW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgot
I2luY2x1ZGUgIlRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgorI2luY2x1ZGUgIlRv
dWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgpAQCAtMzk2LDcgKzM5Niw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpmaXJlVXBBbkFu
aW1hdGlvbihGbG9hdFBvaW50IGZwKQogewogICAgIGlmIChtX2dlc3R1cmVBbmltYXRpb24pCiAg
ICAgICAgIG1fZ2VzdHVyZUFuaW1hdGlvbi5jbGVhcigpOwotICAgIG1fZ2VzdHVyZUFuaW1hdGlv
biA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3JlYXRlKFRvdWNoRmxpbmdQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKGZwKSwgdGhpcyk7CisgICAgbV9nZXN0dXJlQW5pbWF0
aW9uID0gQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoVG91Y2hwYWRGbGlu
Z1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUoZnApLCB0aGlzKTsKICAgICBzdGFydE5leHRU
aW1lcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZs
aW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91
Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGE4OWEyYjI2MWE0MDBiOGEzNGNjNGFiYTMwMDQyMjg3NzIzOWJiMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5j
bHVkZSAiVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCi0KLSNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldC5oIgotI2luY2x1ZGUgIlVuaXRCZXppZXIuaCIKLSNpbmNs
dWRlIDxtYXRoLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKLQotUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gVG91Y2hGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlOjpjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2NpdHkpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUodmVsb2Np
dHkpKTsKLX0KLQotVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpUb3VjaEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2NpdHkpCi0gICAgOiBtX3Zl
bG9jaXR5KHZlbG9jaXR5KQotICAgICwgbV90aW1lU2NhbGVGYWN0b3IoMyAvIGxvZzEwKG1heCgx
MC5mLCBtYXgoZmFicyh2ZWxvY2l0eS54KCkpLCBmYWJzKHZlbG9jaXR5LnkoKSkpKSkpCi17Ci0g
ICAgQVNTRVJUKHZlbG9jaXR5ICE9IEZsb2F0UG9pbnQ6Onplcm8oKSk7Ci19Ci0KLVRvdWNoRmxp
bmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6flRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSgp
Ci17Ci19Ci0KLWJvb2wgVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjphcHBseShkb3Vi
bGUgdGltZSwgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQqIHRhcmdldCkKLXsKLSAgICAvLyBV
c2UgMi1EIEJlemllciBjdXJ2ZSB3aXRoIGEgInN0cmV0Y2hlZC1pdGFsaWMtcyIgY3VydmUuCi0g
ICAgLy8gV2Ugc2NhbGUgdGltZSBsb2dhcml0aG1pY2FsbHkgYXMgdGhpcyAoc3ViamVjdGl2ZWx5
KSBmZWVscyBiZXR0ZXIuCi0gICAgdGltZSAqPSBtX3RpbWVTY2FsZUZhY3RvcjsKLQotICAgIHN0
YXRpYyBVbml0QmV6aWVyIGZsaW5nQmV6aWVyKDAuMzMzMywgMC42NjY2LCAwLjY2NjYsIDEpOwot
Ci0gICAgZmxvYXQgZGlzcGxhY2VtZW50OwotICAgIGlmICh0aW1lIDwgMCkKLSAgICAgICAgZGlz
cGxhY2VtZW50ID0gMDsKLSAgICBlbHNlIGlmICh0aW1lIDwgMSkgewotICAgICAgICAvLyBCZWxv
dywgcyBpcyB0aGUgY3VydmUgcGFyYW1ldGVyIGZvciB0aGUgMi1EIEJlemllciBjdXJ2ZSAodGlt
ZShzKSwgZGlzcGxhY2VtZW50KHMpKS4KLSAgICAgICAgZG91YmxlIHMgPSBmbGluZ0Jlemllci5z
b2x2ZUN1cnZlWCh0aW1lLCAxLmUtMyk7Ci0gICAgICAgIGRpc3BsYWNlbWVudCA9IGZsaW5nQmV6
aWVyLnNhbXBsZUN1cnZlWShzKTsKLSAgICB9IGVsc2UKLSAgICAgICAgZGlzcGxhY2VtZW50ID0g
MTsKLQotICAgIC8vIEtlZXAgdHJhY2sgb2YgaW50ZWdlciBwb3J0aW9uIG9mIHNjcm9sbCB0aHVz
IGZhciwgYW5kIHByZXBhcmUgaW5jcmVtZW50LgotICAgIEludFBvaW50IHNjcm9sbChkaXNwbGFj
ZW1lbnQgKiBtX3ZlbG9jaXR5LngoKSwgZGlzcGxhY2VtZW50ICogbV92ZWxvY2l0eS55KCkpOwot
ICAgIEludFBvaW50IHNjcm9sbEluY3JlbWVudChzY3JvbGwgLSBtX2N1bXVsYXRpdmVTY3JvbGwp
OwotICAgIG1fY3VtdWxhdGl2ZVNjcm9sbCA9IHNjcm9sbDsKLQotICAgIGlmICh0aW1lIDwgMSB8
fCBzY3JvbGxJbmNyZW1lbnQgIT0gSW50UG9pbnQ6Onplcm8oKSkgewotICAgICAgICB0YXJnZXQt
PnNjcm9sbEJ5KHNjcm9sbEluY3JlbWVudCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0K
LQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJl
Q3VydmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTdlMWNlYzEwMWUwMTJhY2Vl
MmIxZmMyMWQ5YzUzMDYwYTE3YzM0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1H
ZXN0dXJlQ3VydmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
Ci0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlX2gKLSNkZWZpbmUgVG91
Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlX2gKLQotI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0OwotCi0vLyBJbXBsZW1lbnRhdGlvbiBv
ZiBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSBzdWl0YWJsZSBmb3IgdG91Y2ggcGFkL3NjcmVlbi1iYXNl
ZAotLy8gZmxpbmcgc2Nyb2xsLiBTdGFydHMgd2l0aCBhIGZsYXQgdmVsb2NpdHkgcHJvZmlsZSBi
YXNlZCBvbiAndmVsb2NpdHknLCB3aGljaAotLy8gdGFpbHMgb2ZmIHRvIHplcm8uIFRpbWUgaXMg
c2NhbGVkIHRvIHRoYXQgZHVyYXRpb24gb2YgdGhlIGZsaW5nIGlzIHByb3BvcnRpb25hbAotLy8g
dGhlIGluaXRpYWwgdmVsb2NpdHkuCi1jbGFzcyBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3Vy
dmUgOiBwdWJsaWMgUGxhdGZvcm1HZXN0dXJlQ3VydmUgewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYg
dmVsb2NpdHkpOwotICAgIHZpcnR1YWwgflRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSgp
OwotCi0gICAgdmlydHVhbCBib29sIGFwcGx5KGRvdWJsZSBtb25vdG9uaWNUaW1lLCBQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZVRhcmdldCopOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFRvdWNoRmxp
bmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSk7Ci0KLSAg
ICBGbG9hdFBvaW50IG1fdmVsb2NpdHk7Ci0gICAgZmxvYXQgbV90aW1lU2NhbGVGYWN0b3I7Ci0g
ICAgSW50UG9pbnQgbV9jdW11bGF0aXZlU2Nyb2xsOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNo
cGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Ub3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2Zjdh
YjAxZjEwN2I4ZWQzZWI3NWNjMzM0OTE0MThmODhhZjljN2EKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUu
Y3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgorCisjaW5j
bHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQuaCIKKyNpbmNsdWRlIDxtYXRoLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworUGFzc093blB0
cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZl
OjpjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2NpdHkpCit7CisgICAgcmV0dXJuIGNyZWF0
ZSh2ZWxvY2l0eSwgMywgRmxvYXRQb2ludCgwLjMzMzMsIDAuNjY2NiksIEZsb2F0UG9pbnQoMC42
NjY2LCAxKSk7Cit9CisKK1Bhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IFRvdWNocGFk
RmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9j
aXR5LCBjb25zdCBmbG9hdCB1bml0VGltZVNjYWxlTG9nMTAsIGNvbnN0IEZsb2F0UG9pbnQmIGJl
emllclAxLCBjb25zdCBGbG9hdFBvaW50JiBiZXppZXJQMikKK3sKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSh2ZWxvY2l0eSwgdW5pdFRp
bWVTY2FsZUxvZzEwLCBiZXppZXJQMSwgYmV6aWVyUDIpKTsKK30KKworVG91Y2hwYWRGbGluZ1Bs
YXRmb3JtR2VzdHVyZUN1cnZlOjpUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUoY29u
c3QgRmxvYXRQb2ludCYgdmVsb2NpdHksIGNvbnN0IGZsb2F0IHVuaXRUaW1lU2NhbGVMb2cxMCwg
Y29uc3QgRmxvYXRQb2ludCYgYmV6aWVyUDEsIGNvbnN0IEZsb2F0UG9pbnQmIGJlemllclAyKQor
ICAgIDogbV92ZWxvY2l0eSh2ZWxvY2l0eSkKKyAgICAsIG1fdGltZVNjYWxlRmFjdG9yKHVuaXRU
aW1lU2NhbGVMb2cxMCAvIGxvZzEwKG1heCgxMC5mLCBtYXgoZmFicyh2ZWxvY2l0eS54KCkpLCBm
YWJzKHZlbG9jaXR5LnkoKSkpKSkpCisgICAgLCBtX2ZsaW5nQmV6aWVyKGJlemllclAxLngoKSwg
YmV6aWVyUDEueSgpLCBiZXppZXJQMi54KCksIGJlemllclAyLnkoKSkKK3sKKyAgICBBU1NFUlQo
dmVsb2NpdHkgIT0gRmxvYXRQb2ludDo6emVybygpKTsKK30KKworVG91Y2hwYWRGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlOjp+VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKCkKK3sK
K30KKworYm9vbCBUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmFwcGx5KGRvdWJs
ZSB0aW1lLCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCogdGFyZ2V0KQoreworICAgIC8vIFVz
ZSAyLUQgQmV6aWVyIGN1cnZlIHdpdGggYSAic3RyZXRjaGVkLWl0YWxpYy1zIiBjdXJ2ZS4KKyAg
ICAvLyBXZSBzY2FsZSB0aW1lIGxvZ2FyaXRobWljYWxseSBhcyB0aGlzIChzdWJqZWN0aXZlbHkp
IGZlZWxzIGJldHRlci4KKyAgICB0aW1lICo9IG1fdGltZVNjYWxlRmFjdG9yOworCisgICAgZmxv
YXQgZGlzcGxhY2VtZW50OworICAgIGlmICh0aW1lIDwgMCkKKyAgICAgICAgZGlzcGxhY2VtZW50
ID0gMDsKKyAgICBlbHNlIGlmICh0aW1lIDwgMSkgeworICAgICAgICAvLyBCZWxvdywgcyBpcyB0
aGUgY3VydmUgcGFyYW1ldGVyIGZvciB0aGUgMi1EIEJlemllciBjdXJ2ZSAodGltZShzKSwgZGlz
cGxhY2VtZW50KHMpKS4KKyAgICAgICAgZG91YmxlIHMgPSBtX2ZsaW5nQmV6aWVyLnNvbHZlQ3Vy
dmVYKHRpbWUsIDEuZS0zKTsKKyAgICAgICAgZGlzcGxhY2VtZW50ID0gbV9mbGluZ0Jlemllci5z
YW1wbGVDdXJ2ZVkocyk7CisgICAgfSBlbHNlCisgICAgICAgIGRpc3BsYWNlbWVudCA9IDE7CisK
KyAgICAvLyBLZWVwIHRyYWNrIG9mIGludGVnZXIgcG9ydGlvbiBvZiBzY3JvbGwgdGh1cyBmYXIs
IGFuZCBwcmVwYXJlIGluY3JlbWVudC4KKyAgICBJbnRQb2ludCBzY3JvbGwoZGlzcGxhY2VtZW50
ICogbV92ZWxvY2l0eS54KCksIGRpc3BsYWNlbWVudCAqIG1fdmVsb2NpdHkueSgpKTsKKyAgICBJ
bnRQb2ludCBzY3JvbGxJbmNyZW1lbnQoc2Nyb2xsIC0gbV9jdW11bGF0aXZlU2Nyb2xsKTsKKyAg
ICBtX2N1bXVsYXRpdmVTY3JvbGwgPSBzY3JvbGw7CisKKyAgICBpZiAodGltZSA8IDEgfHwgc2Ny
b2xsSW5jcmVtZW50ICE9IEludFBvaW50Ojp6ZXJvKCkpIHsKKyAgICAgICAgdGFyZ2V0LT5zY3Jv
bGxCeShzY3JvbGxJbmNyZW1lbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU1YjE5YmUyODJmM2RjM2UwMmJhODQwMzM5ZGI4YmE2NTc0
ZDlhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNocGFk
RmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlX2gKKyNkZWZpbmUg
VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlX2gKKworI2luY2x1ZGUgIkZsb2F0UG9p
bnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgorI2luY2x1ZGUgIlVuaXRC
ZXppZXIuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZVRhcmdldDsKKworLy8gSW1wbGVtZW50YXRpb24gb2YgUGxhdGZvcm1HZXN0dXJlQ3VydmUgc3Vp
dGFibGUgZm9yIHRvdWNoIHBhZC9zY3JlZW4tYmFzZWQKKy8vIGZsaW5nIHNjcm9sbC4gU3RhcnRz
IHdpdGggYSBmbGF0IHZlbG9jaXR5IHByb2ZpbGUgYmFzZWQgb24gJ3ZlbG9jaXR5Jywgd2hpY2gK
Ky8vIHRhaWxzIG9mZiB0byB6ZXJvLiBUaW1lIGlzIHNjYWxlZCB0byB0aGF0IGR1cmF0aW9uIG9m
IHRoZSBmbGluZyBpcyBwcm9wb3J0aW9uYWwKKy8vIHRoZSBpbml0aWFsIHZlbG9jaXR5LgorY2xh
c3MgVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlIDogcHVibGljIFBsYXRmb3JtR2Vz
dHVyZUN1cnZlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZT4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5KTsKKyAgICBzdGF0aWMg
UGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQm
IHZlbG9jaXR5LCBjb25zdCBmbG9hdCB1bml0VGltZVNjYWxlTG9nMTAsIGNvbnN0IEZsb2F0UG9p
bnQmIGJlemllclAxLCBjb25zdCBGbG9hdFBvaW50JiBiZXppZXJQMik7CisgICAgdmlydHVhbCB+
VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wg
YXBwbHkoZG91YmxlIG1vbm90b25pY1RpbWUsIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0Kik7
CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5LCBjb25zdCBmbG9hdCB1bml0VGltZVNjYWxl
TG9nMTAsIGNvbnN0IEZsb2F0UG9pbnQmIGJlemllclAxLCBjb25zdCBGbG9hdFBvaW50JiBiZXpp
ZXJQMik7CisKKyAgICBGbG9hdFBvaW50IG1fdmVsb2NpdHk7CisgICAgZmxvYXQgbV90aW1lU2Nh
bGVGYWN0b3I7CisgICAgSW50UG9pbnQgbV9jdW11bGF0aXZlU2Nyb2xsOworICAgIFVuaXRCZXpp
ZXIgbV9mbGluZ0JlemllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXggYTRjYzcxODJjZGI5MjcxMzBhYmYwYTMwYzg2
OWEwYTY1NDcyMDBkOC4uMjA1Y2QyNWIyM2RlNzkyOWExZWUzOTFhYTA5NGI3NGZiOTJjNDM3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIldl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgiCiAKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZVRhcmdldC5oIgotI2luY2x1ZGUgIlRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZS5oIgorI2luY2x1ZGUgIlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgogI2lu
Y2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW1wbC5oIgogI2lu
Y2x1ZGUgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQuaCIKQEAgLTI1OSw3ICsyNTks
NyBAQCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6RXZlbnREaXNwb3NpdGlvbiBXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aAogICAgIHN3aXRjaCAoc2Nyb2xsU3RhdHVzKSB7
CiAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhcnRlZDogewogICAgICAg
ICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgiY2MiLCAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OmhhbmRsZUdlc3R1cmVGbGluZzo6c3RhcnRlZCIpOwotICAgICAgICBPd25QdHI8UGxhdGZv
cm1HZXN0dXJlQ3VydmU+IGZsaW5nQ3VydmUgPSBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3Vy
dmU6OmNyZWF0ZShGbG9hdFBvaW50KC1nZXN0dXJlRXZlbnQuZGVsdGFYLCAtZ2VzdHVyZUV2ZW50
LmRlbHRhWSkpOworICAgICAgICBPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGZsaW5nQ3Vy
dmUgPSBUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50
KC1nZXN0dXJlRXZlbnQuZGVsdGFYLCAtZ2VzdHVyZUV2ZW50LmRlbHRhWSkpOwogICAgICAgICBt
X3doZWVsRmxpbmdBbmltYXRpb24gPSBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShQ
bGF0Zm9ybUdlc3R1cmVUb0NDR2VzdHVyZUFkYXB0ZXI6OmNyZWF0ZShmbGluZ0N1cnZlLnJlbGVh
c2UoKSksIHRoaXMpOwogICAgICAgICBtX3doZWVsRmxpbmdQb2ludCA9IEludFBvaW50KGdlc3R1
cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSk7CiAgICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50
LT5zY2hlZHVsZUFuaW1hdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IGE4MTI2NmZkZWJhYzY0YTRiN2RjZWQ4N2NiNWZmMDdkOTBiMTcwZGMu
LjU1NGI3YjdkYTRhMzgzMjI3NGNhMWMyYjNlYjMxODM2MDU2NjkyYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQAogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJUb3VjaEZsaW5nUGxhdGZvcm1HZXN0
dXJlQ3VydmUuaCIKKyNpbmNsdWRlICJUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUu
aCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSAiVHlwaW5nQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCkBAIC02MzQsNyArNjM0LDcgQEAgYm9v
bCBXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQp
CiAgICAgICAgIG1fbGFzdFdoZWVsR2xvYmFsUG9zaXRpb24gPSBXZWJQb2ludChldmVudC5nbG9i
YWxYLCBldmVudC5nbG9iYWxZKTsKICAgICAgICAgbV9mbGluZ01vZGlmaWVyID0gZXZlbnQubW9k
aWZpZXJzOwogICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGUgY3VydmUgcGFyYW1ldHJpemFibGUg
ZnJvbSB0aGUgYnJvd3Nlci4KLSAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0aXZlUGxh
dGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlOjpjcmVhdGUoRmxvYXRQb2ludChldmVudC5kZWx0YVgsIGV2ZW50LmRlbHRhWSkpLCB0aGlz
KTsKKyAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5p
bWF0aW9uOjpjcmVhdGUoVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUo
RmxvYXRQb2ludChldmVudC5kZWx0YVgsIGV2ZW50LmRlbHRhWSkpLCB0aGlzKTsKICAgICAgICAg
c2NoZWR1bGVBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QbGF0Zm9ybUdlc3R1cmVDdXJ2
ZVRlc3QuY3BwCmluZGV4IDI5ODU3OTFkYjRkODM1YjU1ODk0ODA1MTViNmFhNzc1MzliYjFhY2Qu
LjhmMjA2ZDg2NjkxODdhN2Q4NzhlYjlmNDcyYWI5YmQ1NGZmMzRlN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUGxhdGZvcm1HZXN0dXJlQ3VydmVUZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BsYXRmb3JtR2VzdHVyZUN1cnZlVGVz
dC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZVBsYXRmb3JtR2VzdHVy
ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0LmgiCi0j
aW5jbHVkZSAiVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCisjaW5jbHVkZSAiVG91
Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCiAjaW5jbHVkZSAiV2hlZWxGbGluZ1Bs
YXRmb3JtR2VzdHVyZUN1cnZlLmgiCiAjaW5jbHVkZSAiY2MvQ0NBY3RpdmVHZXN0dXJlQW5pbWF0
aW9uLmgiCiAjaW5jbHVkZSAiY2MvQ0NHZXN0dXJlQ3VydmUuaCIKQEAgLTEwMCw5ICsxMDAsOSBA
QCBURVNUKFBsYXRmb3JtR2VzdHVyZUN1cnZlLCBmbGluZ0N1cnZlKQogVEVTVChQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZSwgZmxpbmdDdXJ2ZVRvdWNoKQogewogICAgIGRvdWJsZSBpbml0aWFsVmVsb2Np
dHkgPSAxMDAwOwotICAgIGNvbnN0IGRvdWJsZSB0b3VjaEZsaW5nQ3VydmVBcmVhRmFjdG9yID0g
MTsgLy8gRGVwZW5kcyBvbiBwYXJhbWV0ZXJpemF0aW9uIGluIFRvdWNoRmxpbmdQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZS4KKyAgICBjb25zdCBkb3VibGUgdG91Y2hGbGluZ0N1cnZlQXJlYUZhY3RvciA9
IDE7IC8vIERlcGVuZHMgb24gcGFyYW1ldGVyaXphdGlvbiBpbiBUb3VjaHBhZEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmUuCiAgICAgTW9ja1BsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0IHRhcmdl
dDsKLSAgICBPd25QdHI8QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uPiBhbmltYXRpb24g
PSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShUb3VjaEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KGluaXRpYWxWZWxvY2l0eSwgMCkpLCAm
dGFyZ2V0KTsKKyAgICBPd25QdHI8QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uPiBhbmlt
YXRpb24gPSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShUb3VjaHBhZEZs
aW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KGluaXRpYWxWZWxvY2l0
eSwgMCkpLCAmdGFyZ2V0KTsKIAogICAgIC8vIE5vdGU6IHRoZSBleHBlY3RhdGlvbnMgYmVsb3cg
YXJlIGRlcGVuZGVudCBvbiB0aGUgdmFsdWUgb2Ygc2lnbWEgaGFyZC1jb2RlZCBpbiB0aGUgUmF5
bGVpZ2gKICAgICAvLyAgICAgICBjdXJ2ZS4gSWYgc2lnbWEgY2hhbmdlcywgdGhlc2UgdGVzdCBl
eHBlY3RhdGlvbnMgd2lsbCBhbHNvIGNoYW5nZS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133098</attachid>
            <date>2012-03-21 12:40:31 -0700</date>
            <delta_ts>2012-03-22 07:03:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81820-20120321154030.patch</filename>
            <type>text/plain</type>
            <size>22787</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU3NmFjNTE3NDU1YTI4
MzMyMWVkMDE1OTUzYTVhODBhNjc1YTJlNy4uMzEzZmYzYmY2MDA2MGRiMTBlZmIzZjVmMGExNjhm
OTIzYWRiODZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAzLTIxICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW5hbWUg
dG91Y2hwYWQgZmxpbmcgY3VydmUsIGFkZCBjdXJ2ZSBwYXJhbWV0ZXJzIHRvIGNvbnN0cnVjdG9y
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4MjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHVuaXQgdGVzdHMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpmaXJl
VXBBbkFuaW1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Rv
dWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6
VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OlRv
dWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6flRvdWNocGFkRmxpbmdQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0
dXJlQ3VydmU6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Ub3VjaHBhZEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Rv
dWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUpOgorCiAyMDEyLTAzLTIxICBO
YXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIENDVGhy
ZWFkUHJveHkgbXVzdCBpbml0aWFsaXplIGZyYW1lQmVnaW5UaW1lIHRvIG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSByYXRoZXIgdGhhbiB6ZXJvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDRiMzgxOTZmMjZmODY5ZTIwM2RjMDYzMzMxZWYyZTgwNTNhNDM3MzQuLjE2MTkzYmE0Mzdi
ODk0MGI3ZDk1NTliZjIwZWRmNmE1Y2JiMzIyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMjEgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xl
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSB0b3VjaHBhZCBmbGluZyBjdXJ2ZSwg
YWRkIGN1cnZlIHBhcmFtZXRlcnMgdG8gY29uc3RydWN0b3IuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTgyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OmhhbmRsZUdlc3R1cmVGbGluZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudCk6CisgICAgICAgICog
dGVzdHMvUGxhdGZvcm1HZXN0dXJlQ3VydmVUZXN0LmNwcDoKKwogMjAxMi0wMy0yMSAgVG9tbXkg
V2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIE1l
ZGlhU3RyZWFtIEFQSSAoSlNFUCk6IEVuaGFuY2luZyBXZWJNZWRpYUhpbnRzIGFuZCBXZWJJQ0VP
cHRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA0NzRmY2RmMmYwYmNiMDNk
NzNmYTkzNGM0NzE0OWUzZWE5OWE0MTU5Li43ZjU1MWEwMzYxM2ZlYzA4ODE1OWU3NzM5NDk4ZGE0
ZDMwNjkwZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM1NjMsOCArMzU2
Myw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Vbmljb2RlQmlkaS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1VuaWNvZGVS
YW5nZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVW5pY29kZVJhbmdlLmgg
XAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaHBhZEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaHBhZEZs
aW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhl
bWVUeXBlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRDaGVjay5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggNmQzMTIyMDkxNTllZDk1MzU0YjM1MGE0OGVjY2ZmMmI4NjRkOWYwMy4uOGMwOTgw
Mzk2ZmQ2NzE1M2ZiYWU0Mzk2ZDcyMzVhZTNjMmJiYmY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
MzA5MSw4ICszMDkxLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9UaHJlYWRUaW1lcnMuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9UaHJlYWRUaW1lcnMuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vVGltZXIuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9Ub3VjaEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmUuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9Ub3VjaEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmUuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vVG91Y2hwYWRG
bGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vVG91
Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L1VVSUQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9VVUlELmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL1doZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKaW5kZXggNmZjMWJkN2U2
OGRmODY3MDE3NGVjZWZiNGJlZDVhODg0MGRhZGEyMS4uZGUzMzBiNDA2ODFmNzE2NzMzNzAzYjhk
MTg2MzIzODRhMWMxNTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvck5vbmUuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1HZXN0
dXJlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlNjcm9s
bGJhclRoZW1lLmgiCi0jaW5jbHVkZSAiVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgi
CisjaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CkBAIC0zOTYsNyArMzk2LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5v
bmU6OmZpcmVVcEFuQW5pbWF0aW9uKEZsb2F0UG9pbnQgZnApCiB7CiAgICAgaWYgKG1fZ2VzdHVy
ZUFuaW1hdGlvbikKICAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uLmNsZWFyKCk7Ci0gICAgbV9n
ZXN0dXJlQW5pbWF0aW9uID0gQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUo
VG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUoZnApLCB0aGlzKTsKKyAgICBt
X2dlc3R1cmVBbmltYXRpb24gPSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0
ZShUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShmcCksIHRoaXMpOwog
ICAgIHN0YXJ0TmV4dFRpbWVyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4YTg5YTJiMjYxYTQwMGI4YTM0Y2M0YWJhMzAwNDIyODc3MjM5
YmIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0KLSNpbmNsdWRlICJUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKLQot
I2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0LmgiCi0jaW5jbHVkZSAiVW5pdEJl
emllci5oIgotI2luY2x1ZGUgPG1hdGguaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2lu
ZyBuYW1lc3BhY2Ugc3RkOwotCi1QYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBUb3Vj
aEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxv
Y2l0eSkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZSh2ZWxvY2l0eSkpOwotfQotCi1Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6
OlRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0
eSkKLSAgICA6IG1fdmVsb2NpdHkodmVsb2NpdHkpCi0gICAgLCBtX3RpbWVTY2FsZUZhY3Rvcigz
IC8gbG9nMTAobWF4KDEwLmYsIG1heChmYWJzKHZlbG9jaXR5LngoKSksIGZhYnModmVsb2NpdHku
eSgpKSkpKSkKLXsKLSAgICBBU1NFUlQodmVsb2NpdHkgIT0gRmxvYXRQb2ludDo6emVybygpKTsK
LX0KLQotVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjp+VG91Y2hGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlKCkKLXsKLX0KLQotYm9vbCBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3Vy
dmU6OmFwcGx5KGRvdWJsZSB0aW1lLCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCogdGFyZ2V0
KQotewotICAgIC8vIFVzZSAyLUQgQmV6aWVyIGN1cnZlIHdpdGggYSAic3RyZXRjaGVkLWl0YWxp
Yy1zIiBjdXJ2ZS4KLSAgICAvLyBXZSBzY2FsZSB0aW1lIGxvZ2FyaXRobWljYWxseSBhcyB0aGlz
IChzdWJqZWN0aXZlbHkpIGZlZWxzIGJldHRlci4KLSAgICB0aW1lICo9IG1fdGltZVNjYWxlRmFj
dG9yOwotCi0gICAgc3RhdGljIFVuaXRCZXppZXIgZmxpbmdCZXppZXIoMC4zMzMzLCAwLjY2NjYs
IDAuNjY2NiwgMSk7Ci0KLSAgICBmbG9hdCBkaXNwbGFjZW1lbnQ7Ci0gICAgaWYgKHRpbWUgPCAw
KQotICAgICAgICBkaXNwbGFjZW1lbnQgPSAwOwotICAgIGVsc2UgaWYgKHRpbWUgPCAxKSB7Ci0g
ICAgICAgIC8vIEJlbG93LCBzIGlzIHRoZSBjdXJ2ZSBwYXJhbWV0ZXIgZm9yIHRoZSAyLUQgQmV6
aWVyIGN1cnZlICh0aW1lKHMpLCBkaXNwbGFjZW1lbnQocykpLgotICAgICAgICBkb3VibGUgcyA9
IGZsaW5nQmV6aWVyLnNvbHZlQ3VydmVYKHRpbWUsIDEuZS0zKTsKLSAgICAgICAgZGlzcGxhY2Vt
ZW50ID0gZmxpbmdCZXppZXIuc2FtcGxlQ3VydmVZKHMpOwotICAgIH0gZWxzZQotICAgICAgICBk
aXNwbGFjZW1lbnQgPSAxOwotCi0gICAgLy8gS2VlcCB0cmFjayBvZiBpbnRlZ2VyIHBvcnRpb24g
b2Ygc2Nyb2xsIHRodXMgZmFyLCBhbmQgcHJlcGFyZSBpbmNyZW1lbnQuCi0gICAgSW50UG9pbnQg
c2Nyb2xsKGRpc3BsYWNlbWVudCAqIG1fdmVsb2NpdHkueCgpLCBkaXNwbGFjZW1lbnQgKiBtX3Zl
bG9jaXR5LnkoKSk7Ci0gICAgSW50UG9pbnQgc2Nyb2xsSW5jcmVtZW50KHNjcm9sbCAtIG1fY3Vt
dWxhdGl2ZVNjcm9sbCk7Ci0gICAgbV9jdW11bGF0aXZlU2Nyb2xsID0gc2Nyb2xsOwotCi0gICAg
aWYgKHRpbWUgPCAxIHx8IHNjcm9sbEluY3JlbWVudCAhPSBJbnRQb2ludDo6emVybygpKSB7Ci0g
ICAgICAgIHRhcmdldC0+c2Nyb2xsQnkoc2Nyb2xsSW5jcmVtZW50KTsKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNoRmxpbmdQ
bGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2Ux
Y2VjMTAxZTAxMmFjZWUyYjFmYzIxZDljNTMwNjBhMTdjMzRlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNo
RmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmVf
aAotI2RlZmluZSBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmVfaAotCi0jaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCi0jaW5jbHVk
ZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQ7Ci0KLS8vIElt
cGxlbWVudGF0aW9uIG9mIFBsYXRmb3JtR2VzdHVyZUN1cnZlIHN1aXRhYmxlIGZvciB0b3VjaCBw
YWQvc2NyZWVuLWJhc2VkCi0vLyBmbGluZyBzY3JvbGwuIFN0YXJ0cyB3aXRoIGEgZmxhdCB2ZWxv
Y2l0eSBwcm9maWxlIGJhc2VkIG9uICd2ZWxvY2l0eScsIHdoaWNoCi0vLyB0YWlscyBvZmYgdG8g
emVyby4gVGltZSBpcyBzY2FsZWQgdG8gdGhhdCBkdXJhdGlvbiBvZiB0aGUgZmxpbmcgaXMgcHJv
cG9ydGlvbmFsCi0vLyB0aGUgaW5pdGlhbCB2ZWxvY2l0eS4KLWNsYXNzIFRvdWNoRmxpbmdQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZSA6IHB1YmxpYyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSB7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNyZWF0ZShjb25z
dCBGbG9hdFBvaW50JiB2ZWxvY2l0eSk7Ci0gICAgdmlydHVhbCB+VG91Y2hGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlKCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoZG91YmxlIG1vbm90b25p
Y1RpbWUsIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0Kik7Ci0KLXByaXZhdGU6Ci0gICAgZXhw
bGljaXQgVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKGNvbnN0IEZsb2F0UG9pbnQmIHZl
bG9jaXR5KTsKLQotICAgIEZsb2F0UG9pbnQgbV92ZWxvY2l0eTsKLSAgICBmbG9hdCBtX3RpbWVT
Y2FsZUZhY3RvcjsKLSAgICBJbnRQb2ludCBtX2N1bXVsYXRpdmVTY3JvbGw7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjZmN2FiMDFmMTA3YjhlZDNlYjc1Y2MzMzQ5MTQxOGY4OGFmOWM3YQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldC5oIgorI2luY2x1
ZGUgPG1hdGguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2Ugc3Rk
OworCitQYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBUb3VjaHBhZEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSkKK3sKKyAg
ICByZXR1cm4gY3JlYXRlKHZlbG9jaXR5LCAzLCBGbG9hdFBvaW50KDAuMzMzMywgMC42NjY2KSwg
RmxvYXRQb2ludCgwLjY2NjYsIDEpKTsKK30KKworUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZT4gVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUoY29uc3QgRmxv
YXRQb2ludCYgdmVsb2NpdHksIGNvbnN0IGZsb2F0IHVuaXRUaW1lU2NhbGVMb2cxMCwgY29uc3Qg
RmxvYXRQb2ludCYgYmV6aWVyUDEsIGNvbnN0IEZsb2F0UG9pbnQmIGJlemllclAyKQoreworICAg
IHJldHVybiBhZG9wdFB0cihuZXcgVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKHZl
bG9jaXR5LCB1bml0VGltZVNjYWxlTG9nMTAsIGJlemllclAxLCBiZXppZXJQMikpOworfQorCitU
b3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSwgY29uc3QgZmxvYXQgdW5pdFRp
bWVTY2FsZUxvZzEwLCBjb25zdCBGbG9hdFBvaW50JiBiZXppZXJQMSwgY29uc3QgRmxvYXRQb2lu
dCYgYmV6aWVyUDIpCisgICAgOiBtX3ZlbG9jaXR5KHZlbG9jaXR5KQorICAgICwgbV90aW1lU2Nh
bGVGYWN0b3IodW5pdFRpbWVTY2FsZUxvZzEwIC8gbG9nMTAobWF4KDEwLmYsIG1heChmYWJzKHZl
bG9jaXR5LngoKSksIGZhYnModmVsb2NpdHkueSgpKSkpKSkKKyAgICAsIG1fZmxpbmdCZXppZXIo
YmV6aWVyUDEueCgpLCBiZXppZXJQMS55KCksIGJlemllclAyLngoKSwgYmV6aWVyUDIueSgpKQor
eworICAgIEFTU0VSVCh2ZWxvY2l0eSAhPSBGbG9hdFBvaW50Ojp6ZXJvKCkpOworfQorCitUb3Vj
aHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6On5Ub3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0
dXJlQ3VydmUoKQoreworfQorCitib29sIFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZTo6YXBwbHkoZG91YmxlIHRpbWUsIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0KiB0YXJnZXQp
Cit7CisgICAgLy8gVXNlIDItRCBCZXppZXIgY3VydmUgd2l0aCBhICJzdHJldGNoZWQtaXRhbGlj
LXMiIGN1cnZlLgorICAgIC8vIFdlIHNjYWxlIHRpbWUgbG9nYXJpdGhtaWNhbGx5IGFzIHRoaXMg
KHN1YmplY3RpdmVseSkgZmVlbHMgYmV0dGVyLgorICAgIHRpbWUgKj0gbV90aW1lU2NhbGVGYWN0
b3I7CisKKyAgICBmbG9hdCBkaXNwbGFjZW1lbnQ7CisgICAgaWYgKHRpbWUgPCAwKQorICAgICAg
ICBkaXNwbGFjZW1lbnQgPSAwOworICAgIGVsc2UgaWYgKHRpbWUgPCAxKSB7CisgICAgICAgIC8v
IEJlbG93LCBzIGlzIHRoZSBjdXJ2ZSBwYXJhbWV0ZXIgZm9yIHRoZSAyLUQgQmV6aWVyIGN1cnZl
ICh0aW1lKHMpLCBkaXNwbGFjZW1lbnQocykpLgorICAgICAgICBkb3VibGUgcyA9IG1fZmxpbmdC
ZXppZXIuc29sdmVDdXJ2ZVgodGltZSwgMS5lLTMpOworICAgICAgICBkaXNwbGFjZW1lbnQgPSBt
X2ZsaW5nQmV6aWVyLnNhbXBsZUN1cnZlWShzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGlzcGxh
Y2VtZW50ID0gMTsKKworICAgIC8vIEtlZXAgdHJhY2sgb2YgaW50ZWdlciBwb3J0aW9uIG9mIHNj
cm9sbCB0aHVzIGZhciwgYW5kIHByZXBhcmUgaW5jcmVtZW50LgorICAgIEludFBvaW50IHNjcm9s
bChkaXNwbGFjZW1lbnQgKiBtX3ZlbG9jaXR5LngoKSwgZGlzcGxhY2VtZW50ICogbV92ZWxvY2l0
eS55KCkpOworICAgIEludFBvaW50IHNjcm9sbEluY3JlbWVudChzY3JvbGwgLSBtX2N1bXVsYXRp
dmVTY3JvbGwpOworICAgIG1fY3VtdWxhdGl2ZVNjcm9sbCA9IHNjcm9sbDsKKworICAgIGlmICh0
aW1lIDwgMSB8fCBzY3JvbGxJbmNyZW1lbnQgIT0gSW50UG9pbnQ6Onplcm8oKSkgeworICAgICAg
ICB0YXJnZXQtPnNjcm9sbEJ5KHNjcm9sbEluY3JlbWVudCk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaHBhZEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTViMTliZTI4MmYzZGMzZTAyYmE4
NDAzMzlkYjhiYTY1NzRkOWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgKQEAgLTAsMCArMSw2MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3Vy
dmVfaAorI2RlZmluZSBUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmVfaAorCisjaW5j
bHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCisj
aW5jbHVkZSAiVW5pdEJlemllci5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRm
b3JtR2VzdHVyZUN1cnZlVGFyZ2V0OworCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZSBzdWl0YWJsZSBmb3IgdG91Y2ggcGFkL3NjcmVlbi1iYXNlZAorLy8gZmxpbmcg
c2Nyb2xsLiBTdGFydHMgd2l0aCBhIGZsYXQgdmVsb2NpdHkgcHJvZmlsZSBiYXNlZCBvbiAndmVs
b2NpdHknLCB3aGljaAorLy8gdGFpbHMgb2ZmIHRvIHplcm8uIFRpbWUgaXMgc2NhbGVkIHRvIHRo
YXQgZHVyYXRpb24gb2YgdGhlIGZsaW5nIGlzIHByb3BvcnRpb25hbAorLy8gdGhlIGluaXRpYWwg
dmVsb2NpdHkuCitjbGFzcyBUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUgOiBwdWJs
aWMgUGxhdGZvcm1HZXN0dXJlQ3VydmUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRy
PFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2NpdHkp
OworICAgIHN0YXRpYyBQYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGUoY29u
c3QgRmxvYXRQb2ludCYgdmVsb2NpdHksIGNvbnN0IGZsb2F0IHVuaXRUaW1lU2NhbGVMb2cxMCwg
Y29uc3QgRmxvYXRQb2ludCYgYmV6aWVyUDEsIGNvbnN0IEZsb2F0UG9pbnQmIGJlemllclAyKTsK
KyAgICB2aXJ0dWFsIH5Ub3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUoKTsKKworICAg
IHZpcnR1YWwgYm9vbCBhcHBseShkb3VibGUgbW9ub3RvbmljVGltZSwgUGxhdGZvcm1HZXN0dXJl
Q3VydmVUYXJnZXQqKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBUb3VjaHBhZEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2NpdHksIGNvbnN0IGZsb2F0
IHVuaXRUaW1lU2NhbGVMb2cxMCwgY29uc3QgRmxvYXRQb2ludCYgYmV6aWVyUDEsIGNvbnN0IEZs
b2F0UG9pbnQmIGJlemllclAyKTsKKworICAgIEZsb2F0UG9pbnQgbV92ZWxvY2l0eTsKKyAgICBm
bG9hdCBtX3RpbWVTY2FsZUZhY3RvcjsKKyAgICBJbnRQb2ludCBtX2N1bXVsYXRpdmVTY3JvbGw7
CisgICAgVW5pdEJlemllciBtX2ZsaW5nQmV6aWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAppbmRleCBhNGNjNzE4MmNkYjky
NzEzMGFiZjBhMzBjODY5YTBhNjU0NzIwMGQ4Li4yMDVjZDI1YjIzZGU3OTI5YTFlZTM5MWFhMDk0
Yjc0ZmI5MmM0MzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCkBAIC0yOCw3ICsyOCw3IEBA
CiAjaW5jbHVkZSAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuaCIKIAogI2luY2x1ZGUg
IlBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0LmgiCi0jaW5jbHVkZSAiVG91Y2hGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlLmgiCisjaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlLmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0
b3JJbXBsLmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oIgpA
QCAtMjU5LDcgKzI1OSw3IEBAIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpFdmVudERp
c3Bvc2l0aW9uIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoCiAgICAgc3dpdGNoIChz
Y3JvbGxTdGF0dXMpIHsKICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFy
dGVkOiB7CiAgICAgICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJjYyIsICJXZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlR2VzdHVyZUZsaW5nOjpzdGFydGVkIik7Ci0gICAgICAg
IE93blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gZmxpbmdDdXJ2ZSA9IFRvdWNoRmxpbmdQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKEZsb2F0UG9pbnQoLWdlc3R1cmVFdmVudC5kZWx0YVgs
IC1nZXN0dXJlRXZlbnQuZGVsdGFZKSk7CisgICAgICAgIE93blB0cjxQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZT4gZmxpbmdDdXJ2ZSA9IFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3Jl
YXRlKEZsb2F0UG9pbnQoLWdlc3R1cmVFdmVudC5kZWx0YVgsIC1nZXN0dXJlRXZlbnQuZGVsdGFZ
KSk7CiAgICAgICAgIG1fd2hlZWxGbGluZ0FuaW1hdGlvbiA9IENDQWN0aXZlR2VzdHVyZUFuaW1h
dGlvbjo6Y3JlYXRlKFBsYXRmb3JtR2VzdHVyZVRvQ0NHZXN0dXJlQWRhcHRlcjo6Y3JlYXRlKGZs
aW5nQ3VydmUucmVsZWFzZSgpKSwgdGhpcyk7CiAgICAgICAgIG1fd2hlZWxGbGluZ1BvaW50ID0g
SW50UG9pbnQoZ2VzdHVyZUV2ZW50LngsIGdlc3R1cmVFdmVudC55KTsKICAgICAgICAgbV9pbnB1
dEhhbmRsZXJDbGllbnQtPnNjaGVkdWxlQW5pbWF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYTgxMjY2ZmRlYmFjNjRhNGI3ZGNlZDg3Y2I1
ZmYwN2Q5MGIxNzBkYy4uNTU0YjdiN2RhNGEzODMyMjc0Y2ExYzJiM2ViMzE4MzYwNTY2OTJjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTEwLDcg
KzExMCw3IEBACiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgIlRvdWNoRmxp
bmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgorI2luY2x1ZGUgIlRvdWNocGFkRmxpbmdQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZS5oIgogI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlICJUeXBp
bmdDb21tYW5kLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKQEAgLTYzNCw3
ICs2MzQsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVy
ZUV2ZW50JiBldmVudCkKICAgICAgICAgbV9sYXN0V2hlZWxHbG9iYWxQb3NpdGlvbiA9IFdlYlBv
aW50KGV2ZW50Lmdsb2JhbFgsIGV2ZW50Lmdsb2JhbFkpOwogICAgICAgICBtX2ZsaW5nTW9kaWZp
ZXIgPSBldmVudC5tb2RpZmllcnM7CiAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoZSBjdXJ2ZSBw
YXJhbWV0cml6YWJsZSBmcm9tIHRoZSBicm93c2VyLgotICAgICAgICBtX2dlc3R1cmVBbmltYXRp
b24gPSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShUb3VjaEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KGV2ZW50LmRlbHRhWCwgZXZlbnQu
ZGVsdGFZKSksIHRoaXMpOworICAgICAgICBtX2dlc3R1cmVBbmltYXRpb24gPSBBY3RpdmVQbGF0
Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJl
Q3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KGV2ZW50LmRlbHRhWCwgZXZlbnQuZGVsdGFZKSksIHRo
aXMpOwogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BsYXRmb3Jt
R2VzdHVyZUN1cnZlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BsYXRm
b3JtR2VzdHVyZUN1cnZlVGVzdC5jcHAKaW5kZXggMjk4NTc5MWRiNGQ4MzViNTU4OTQ4MDUxNWI2
YWE3NzUzOWJiMWFjZC4uOGYyMDZkODY2OTE4N2E3ZDg3OGViOWY0NzJhYjliZDU0ZmYzNGU3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QbGF0Zm9ybUdlc3R1cmVD
dXJ2ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUGxhdGZvcm1H
ZXN0dXJlQ3VydmVUZXN0LmNwcApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiQWN0aXZl
UGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3Vy
dmVUYXJnZXQuaCIKLSNpbmNsdWRlICJUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIK
KyNpbmNsdWRlICJUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKICNpbmNsdWRl
ICJXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKICNpbmNsdWRlICJjYy9DQ0FjdGl2
ZUdlc3R1cmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJjYy9DQ0dlc3R1cmVDdXJ2ZS5oIgpAQCAt
MTAwLDkgKzEwMCw5IEBAIFRFU1QoUGxhdGZvcm1HZXN0dXJlQ3VydmUsIGZsaW5nQ3VydmUpCiBU
RVNUKFBsYXRmb3JtR2VzdHVyZUN1cnZlLCBmbGluZ0N1cnZlVG91Y2gpCiB7CiAgICAgZG91Ymxl
IGluaXRpYWxWZWxvY2l0eSA9IDEwMDA7Ci0gICAgY29uc3QgZG91YmxlIHRvdWNoRmxpbmdDdXJ2
ZUFyZWFGYWN0b3IgPSAxOyAvLyBEZXBlbmRzIG9uIHBhcmFtZXRlcml6YXRpb24gaW4gVG91Y2hG
bGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLgorICAgIGNvbnN0IGRvdWJsZSB0b3VjaEZsaW5nQ3Vy
dmVBcmVhRmFjdG9yID0gMTsgLy8gRGVwZW5kcyBvbiBwYXJhbWV0ZXJpemF0aW9uIGluIFRvdWNo
cGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS4KICAgICBNb2NrUGxhdGZvcm1HZXN0dXJlQ3Vy
dmVUYXJnZXQgdGFyZ2V0OwotICAgIE93blB0cjxBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRp
b24+IGFuaW1hdGlvbiA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3JlYXRlKFRv
dWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKEZsb2F0UG9pbnQoaW5pdGlhbFZl
bG9jaXR5LCAwKSksICZ0YXJnZXQpOworICAgIE93blB0cjxBY3RpdmVQbGF0Zm9ybUdlc3R1cmVB
bmltYXRpb24+IGFuaW1hdGlvbiA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3Jl
YXRlKFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKEZsb2F0UG9pbnQo
aW5pdGlhbFZlbG9jaXR5LCAwKSksICZ0YXJnZXQpOwogCiAgICAgLy8gTm90ZTogdGhlIGV4cGVj
dGF0aW9ucyBiZWxvdyBhcmUgZGVwZW5kZW50IG9uIHRoZSB2YWx1ZSBvZiBzaWdtYSBoYXJkLWNv
ZGVkIGluIHRoZSBSYXlsZWlnaAogICAgIC8vICAgICAgIGN1cnZlLiBJZiBzaWdtYSBjaGFuZ2Vz
LCB0aGVzZSB0ZXN0IGV4cGVjdGF0aW9ucyB3aWxsIGFsc28gY2hhbmdlLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>