<?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>98138</bug_id>
          
          <creation_ts>2012-10-02 03:33:54 -0700</creation_ts>
          <short_desc>Provide memory instrumentation for HashCountedSet</short_desc>
          <delta_ts>2019-09-25 16:59:09 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>732482</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-02 03:33:54 -0700</bug_when>
    <thetext>We need to be able to estimate memory footprint of any HashCountedSet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732485</commentid>
    <comment_count>1</comment_count>
      <attachid>166655</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-02 03:40:12 -0700</bug_when>
    <thetext>Created attachment 166655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732715</commentid>
    <comment_count>2</comment_count>
      <attachid>166655</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-02 09:27:40 -0700</bug_when>
    <thetext>Comment on attachment 166655
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166655&amp;action=review

&gt; Source/WTF/wtf/MemoryInstrumentationSequence.h:58
&gt; +    SequenceMemoryInstrumentationTraits&lt;typename Conditional&lt;IsConvertibleToInteger&lt;ValueType&gt;::value, int, ValueType&gt;::Type&gt;::reportMemoryUsage(begin, end, info);

I don&apos;t understand what is the benefit of this check (IsConvertibleToInteger)?
As I understand it doesn&apos;t matter that some type is convertible. We have to filter out POD types.
I&apos;d say we have to use IsInteger here or even IsArithmatic which includes floats.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732819</commentid>
    <comment_count>3</comment_count>
      <attachid>166655</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-02 10:53:40 -0700</bug_when>
    <thetext>Comment on attachment 166655
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166655&amp;action=review

&gt;&gt; Source/WTF/wtf/MemoryInstrumentationSequence.h:58
&gt;&gt; +    SequenceMemoryInstrumentationTraits&lt;typename Conditional&lt;IsConvertibleToInteger&lt;ValueType&gt;::value, int, ValueType&gt;::Type&gt;::reportMemoryUsage(begin, end, info);
&gt; 
&gt; I don&apos;t understand what is the benefit of this check (IsConvertibleToInteger)?
&gt; As I understand it doesn&apos;t matter that some type is convertible. We have to filter out POD types.
&gt; I&apos;d say we have to use IsInteger here or even IsArithmatic which includes floats.

As the comment says the check is added mainly because of  iterators over enum values. Like integers they cannot have methods and would cause compilation errors. Neither IsInterger nor IsArithmetic would would return true for enum so they are not an option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732889</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-02 11:44:30 -0700</bug_when>
    <thetext>lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733379</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-02 23:15:24 -0700</bug_when>
    <thetext>Committed r130253: &lt;http://trac.webkit.org/changeset/130253&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166655</attachid>
            <date>2012-10-02 03:40:12 -0700</date>
            <delta_ts>2019-09-25 16:59:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98138-20121002143924.patch</filename>
            <type>text/plain</type>
            <size>22813</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMwYTNlZDcyYmU1ODE1ZmIyZTlkMjMy
MDhmNTE2YzAzYWU0OGYyMjkuLjE4YjUwNzMwZTU1NGUzOTc1NDBjZjM0M2ZkMWYwZWUzNzk0N2I3
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMTAtMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0
aW9uIGZvciBIYXNoQ291bnRlZFNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgxMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBIYXNoQ291bnRl
ZFNldC4KKworICAgICAgICBFeHRyYWN0ZWQgY29tbW9uIHJvdXRpbmVzIGZvciBjb2xsZWN0aW5n
IG1lbW9yeSBpbmZvIGZvciBhbiBpdGVyYWJsZSBzZXF1ZW5jZS4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoK
KyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5o
OgorICAgICAgICAoV1RGKToKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aENvdW50ZWRTZXQuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaFNldC5oLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg6
CisgICAgICAgIChXVEY6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiB3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oOgorICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25TZXF1ZW5jZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoTWFwLmguCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpTZXF1ZW5j
ZU1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV1RGOjpyZXBvcnRTZXF1ZW5jZU1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0yOSAgSWx5YSBU
aWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogTk1JIG1ha2UgU3RyaW5nKiBpbnN0cnVtZW50YXRpb24gbm9uIGludHJ1c2l2ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGYyNjBjZDUwMzgzOWE0Yjk3YmE3Y2JlMDlhYTRjZGI5ZjBmNDVhN2QuLjFiY2Q5MzYz
NDA4NjgwOGY3NmE2OTNmNzcxZDk5NDQ5Y2EyNDQzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMi0xMC0wMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
KworICAgICAgICBQcm92aWRlIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gZm9yIEhhc2hDb3VudGVk
U2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODEz
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxh
Y2VkIGFkZEhhc2hDb3VudGVkU2V0IGNhbGxzIHdpdGggYWRkTWVtYmVyIHRoYXQgbm93IGF1dG9t
YXRpY2FsbHkKKyAgICAgICAgZGV0ZWN0cyBIYXNoQ291bnRlZFNldCBhbmQgY2FsbHMgYXBwcm9w
cmlhdGUgcm91dGluZS4KKworICAgICAgICAqIGNzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OnJlcG9ydEJhc2VD
bGFzc01lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwOgorCiAyMDEyLTEwLTAyICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtSZWdyZXNzaW9uXSBCcmVha3BvaW50cyByZXN0
b3JlZCBmcm9tIHN0b3JhZ2UgYXJlIG5vdCBzZXQgaW4gZGVidWdnZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGJlYzg1OThkMzZkNjY1YTk4M2Q2YjkxNTdmZWY0NDU1MjVhMzg5ZjQu
LjM0ZWZiZTVlYzNlMjk4ZjU3NmZmOGFjY2VlYTNmNGMyNDcxYmQxOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMDIgIFl1cnkgU2VtaWtoYXRz
a3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvdmlkZSBtZW1vcnkgaW5zdHJ1
bWVudGF0aW9uIGZvciBIYXNoQ291bnRlZFNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgxMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCB1bml0IHRlc3QgZm9yIEhhc2hDb3VudGVkU2V0IG1l
bW9yeSBpbnN0cnVtZW50YXRpb24uCisKKyAgICAgICAgKiB0ZXN0cy9NZW1vcnlJbnN0cnVtZW50
YXRpb25UZXN0LmNwcDoKKwogMjAxMi0wOS0yOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIG1ha2UgU3RyaW5nKiBp
bnN0cnVtZW50YXRpb24gbm9uIGludHJ1c2l2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGFj
ZThhZmM5MTc3MjYwNGQ1YTMxYWJiZGY4MWRkMDNkOWJiZWNmY2IuLmZiY2M1YzkxZWNhMTJlY2Iy
ODAyZTBiOGVmMTk3NmVjNWQ3ZjEzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgxLDgg
KzgxLDEwIEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUu
Y3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBcCiAgICAg
U291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggXAor
ICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0Lmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCBcCiAg
ICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIFwKKyAgICBT
b3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIFwKICAgICBTb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25TdHJpbmcuaCBcCiAgICAgU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3Vy
Y2UvV1RGL1dURi5neXBpCmluZGV4IGY4NzYwZmFkNjk1ZDkyZDdlNzA5YjE4OGM1NTBmMjk0ODlj
MzVlZmEuLmY5NDQ1N2Q5OTA0NmMyOWExMTMwZThmZTBkYjI3YzgxMGYwZDczNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtNTEs
OCArNTEsMTAgQEAKICAgICAgICAgICAgICd3dGYvTWF0aEV4dHJhcy5oJywKICAgICAgICAgICAg
ICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZpZXcuaCcsCisgICAgICAgICAgICAnd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0LmgnLAorICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25TZXF1ZW5jZS5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
U3RyaW5nLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aCcsCiAgICAgICAgICAgICAnd3RmL01lc3NhZ2VRdWV1ZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCA5YTA2MmM4Mzg3M2NhODg1
MzE2MDRjNGNmNjJmODJmNjY4ZmE3NWY1Li4zMmE3ZGVkYTRkMDQ4MzIzNTc2YjE2OWM3OTIzZWZm
NzAzMWI1ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dU
Ri9XVEYucHJvCkBAIC04OCw4ICs4OCwxMCBAQCBIRUFERVJTICs9IFwKICAgICBNZWRpYVRpbWUu
aCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAogICAgIE1lbW9yeUluc3RydW1lbnRh
dGlvbkFycmF5QnVmZmVyVmlldy5oIFwKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291
bnRlZFNldC5oIFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggXAogICAgIE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
U2VxdWVuY2UuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggXAogICAgIE1l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdlUXVldWUuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RG
LnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGExYTJkMjJlZDRlYzBjYTQzMTc2YTkzYmI2MTY0NGQw
N2VmMTBkYjEuLjMxYWNjMGM1NjViM2JhNWM1ZDkyZWE2ZWQzMmYxMzFlYjIzMDg2MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDksNiArOTA5LDEwIEBACiAJCQk+CiAJCTwvRmls
ZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoQ291bnRlZFNldC5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCSAg
ICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5o
IgogCQkJPgogCQk8L0ZpbGU+CkBAIC05MTcsNiArOTIxLDEwIEBACiAJCQk+CiAJCTwvRmlsZT4K
IAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVtZW50
YXRpb25TZXF1ZW5jZS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCSAgICAgICAgUmVs
YXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmgiCiAJCQk+CiAJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc2
OWJmMjE0ZjdmNDM4MDI0ZmI5MmM2ZDVmY2Y1ZjM3NmVjMDNjYjkuLjI1YjY4NjIzMGFlMDdmYjAw
NTI2Yzc2NTk0MTc1YTA2ZTBlNDhlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjc3LDYgKzI3Nyw4IEBACiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07
CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKIAkJRjM1MjVFNDYxNjE5QTRFRTAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoTWFwLmggKi87IH07CisJCUYzRkJDNzFFMTYxQUY3QkYwMEJCNEJENCAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0IC8q
IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi87IH07CisJCUYzRkJDNzIw
MTYxQUY3Q0QwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNGQkM3MUYxNjFBRjdD
RDAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmggKi87IH07CiAvKiBF
bmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBz
ZWN0aW9uICovCkBAIC01NTksNiArNTYxLDggQEAKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMw
IC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3
RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzUyNUU0NTE2
MTlBNEVFMDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzRkJDNzFEMTYxQUY3QkYwMEJCNEJENCAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGM0ZCQzcxRjE2MUFGN0NEMDBCQjRCRDQgLyog
TWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVn
aW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzAxLDggKzcwNSwxMCBA
QAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLywKIAkJCQk0
RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8sCiAJ
CQkJNEZEODU1NDYxNjEzM0UwRTAwQzVCNzA0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5
QnVmZmVyVmlldy5oICovLAorCQkJCUYzRkJDNzFEMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oICovLAogCQkJCUYzNTI1RTQ1MTYxOUE0RUUw
MDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi8sCiAJCQkJNEYxQjJE
QjUxNjBCNDRBQTAwNTg2NTU5IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCAqLywK
KwkJCQlGM0ZCQzcxRjE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2Vx
dWVuY2UuaCAqLywKIAkJCQk0RkNGMjdFMDE2MTcyRTg2MDBDQkYwMzcgLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uU3RyaW5nLmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQx
MjNGRiAvKiBNZXNzYWdlUXVldWUuaCAqLywKQEAgLTExNjEsNiArMTE2Nyw4IEBACiAJCQkJNEZE
ODU1NDcxNjEzM0UwRTAwQzVCNzA0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVy
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM1MjVFNDYxNjE5QTRFRTAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0YyN0Ux
MTYxNzJFODYwMENCRjAzNyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25TdHJpbmcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUYzRkJDNzFFMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoQ291bnRlZFNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjNGQkM3MjAxNjFBRjdD
RDAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggYjAzZjFiZTIyMDAz
NzQyYWU1MGIxMzI1NzExNGNhMGUzNzdjMzhlYS4uNDFmZTc4M2EzN2QwNzI0MDBjMTU2NjI3NmM1
NTM4ZDQwZmE5N2VmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAg
LTMxNCw2ICszMTQsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNp
dHk+IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVmVjdG9yPAogdGVtcGxhdGU8dHlwZW5h
bWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1l
IEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnPiBjbGFzcyBIYXNoTWFwOwog
dGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhh
c2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnPiB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPiogY29uc3QmLCBNZW1vcnlPYmpl
Y3RJbmZvKik7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBIYXNoQXJn
LCB0eXBlbmFtZSBUcmFpdHNBcmc+IGNsYXNzIEhhc2hDb3VudGVkU2V0OwordGVtcGxhdGU8dHlw
ZW5hbWUgVmFsdWVBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIFRyYWl0c0FyZz4gdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBIYXNoQ291bnRlZFNldDxWYWx1ZUFyZywgSGFzaEFy
ZywgVHJhaXRzQXJnPiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisKIGNsYXNzIFN0cmlu
ZzsKIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgU3RyaW5nKiBjb25zdCYsIE1lbW9yeU9i
amVjdEluZm8qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaENvdW50ZWRTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRh
dGlvbkhhc2hDb3VudGVkU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIzODQwMTYwN2M2MTA4YzkxMjc5NjBi
NWRjN2NiOGYzMDlhMGY0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXRfaAorI2RlZmluZSBNZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoQ291bnRlZFNldF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRT
ZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBI
YXNoQXJnLCB0eXBlbmFtZSBUcmFpdHNBcmc+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0
IEhhc2hDb3VudGVkU2V0PFZhbHVlQXJnLCBIYXNoQXJnLCBUcmFpdHNBcmc+KiBjb25zdCYgaGFz
aFNldCwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCBoYXNoU2V0KTsKKworICAgIHR5cGVkZWYg
SGFzaE1hcDxWYWx1ZUFyZywgdW5zaWduZWQsIEhhc2hBcmcsIFRyYWl0c0FyZz4gSGFzaE1hcFR5
cGU7CisgICAgaW5mby5hZGRQcml2YXRlQnVmZmVyKHNpemVvZih0eXBlbmFtZSBIYXNoTWFwVHlw
ZTo6VmFsdWVUeXBlKSAqIGhhc2hTZXQtPmNhcGFjaXR5KCkpOworICAgIHJlcG9ydFNlcXVlbmNl
TWVtb3J5VXNhZ2U8VmFsdWVBcmcsIHR5cGVuYW1lIEhhc2hNYXBUeXBlOjpjb25zdF9pdGVyYXRv
cjo6S2V5cz4oaGFzaFNldC0+YmVnaW4oKS5rZXlzKCksIGhhc2hTZXQtPmVuZCgpLmtleXMoKSwg
aW5mbyk7Cit9CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeUluc3RydW1lbnRhdGlv
bkhhc2hDb3VudGVkU2V0X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoTWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoTWFwLmgKaW5kZXggNWU0MDFlZWU2YTMxYTViYzI1NjZhYzMzM2E4ZTI5YWU1MDJiZjk4
ZS4uNjk5YzRlYjJmZjQwOGZiODlhMDczYzgzNTliNjU2OWIxMDFkNWRkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaApAQCAtMzIsNDAgKzMyLDE5
IEBACiAjZGVmaW5lIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXBfaAogCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvVHlwZVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAot
dGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZT4KLXN0cnVjdCBTZXF1ZW5jZU1lbW9yeUluc3RydW1l
bnRhdGlvblRyYWl0cyB7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIEk+IHN0YXRpYyB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKEkgaXRlcmF0b3IsIEkgZW5kLCBNZW1vcnlDbGFzc0luZm8mIGluZm8p
Ci0gICAgewotICAgICAgICBpbmZvLmFkZENvbGxlY3Rpb25FbGVtZW50cyhpdGVyYXRvciwgZW5k
KTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBTZXF1ZW5jZU1lbW9yeUluc3RydW1l
bnRhdGlvblRyYWl0czxpbnQ+IHsKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgST4gc3RhdGljIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoSSwgSSwgTWVtb3J5Q2xhc3NJbmZvJikgeyB9Ci19OwotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBTZXF1ZW5jZU1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czx2b2lk
Kj4gewotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJPiBzdGF0aWMgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShJLCBJLCBNZW1vcnlDbGFzc0luZm8mKSB7IH0KLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZz4KIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoY29uc3QgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRz
QXJnLCBNYXBwZWRUcmFpdHNBcmc+KiBjb25zdCYgaGFzaE1hcCwgTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCBoYXNoTWFwKTsKICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcs
IEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPiBIYXNoTWFwVHlwZTsKKyAg
ICBpbmZvLmFkZFByaXZhdGVCdWZmZXIoc2l6ZW9mKHR5cGVuYW1lIEhhc2hNYXBUeXBlOjpWYWx1
ZVR5cGUpICogaGFzaE1hcC0+Y2FwYWNpdHkoKSk7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXBWYWx1
ZVRyYWl0czxLZXlBcmcsIE1hcHBlZEFyZz4gVmFsdWVUcmFpdHM7Ci0gICAgdHlwZWRlZiBIYXNo
VGFibGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU6OktleVR5cGUsIHR5cGVuYW1lIEhhc2hNYXBUeXBl
OjpWYWx1ZVR5cGUsIEtleVZhbHVlUGFpcktleUV4dHJhY3Rvcjx0eXBlbmFtZSBIYXNoTWFwVHlw
ZTo6VmFsdWVUeXBlPiwgSGFzaEFyZywgVmFsdWVUcmFpdHMsIEtleVRyYWl0c0FyZz4gSGFzaFRh
YmxlVHlwZTsKLQotICAgIGluZm8uYWRkUHJpdmF0ZUJ1ZmZlcihzaXplb2YodHlwZW5hbWUgSGFz
aFRhYmxlVHlwZTo6VmFsdWVUeXBlKSAqIGhhc2hNYXAtPmNhcGFjaXR5KCkpOwotCi0gICAgLy8g
Q2hlY2sgaWYgdHlwZSBpcyBjb252ZXJ0aWJsZSB0byBpbnRlZ2VyIHRvIGhhbmRsZSBlbnVtIGtl
eXMgYW5kIHZhbHVlcy4KLSAgICBTZXF1ZW5jZU1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czx0
eXBlbmFtZSBDb25kaXRpb25hbDxJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPEtleUFyZz46OnZhbHVl
LCBpbnQsIEtleUFyZz46OlR5cGU+OjpyZXBvcnRNZW1vcnlVc2FnZShoYXNoTWFwLT5iZWdpbigp
LmtleXMoKSwgaGFzaE1hcC0+ZW5kKCkua2V5cygpLCBpbmZvKTsKLSAgICBTZXF1ZW5jZU1lbW9y
eUluc3RydW1lbnRhdGlvblRyYWl0czx0eXBlbmFtZSBDb25kaXRpb25hbDxJc0NvbnZlcnRpYmxl
VG9JbnRlZ2VyPE1hcHBlZEFyZz46OnZhbHVlLCBpbnQsIE1hcHBlZEFyZz46OlR5cGU+OjpyZXBv
cnRNZW1vcnlVc2FnZShoYXNoTWFwLT5iZWdpbigpLnZhbHVlcygpLCBoYXNoTWFwLT5lbmQoKS52
YWx1ZXMoKSwgaW5mbyk7CisgICAgcmVwb3J0U2VxdWVuY2VNZW1vcnlVc2FnZTxLZXlBcmcsIHR5
cGVuYW1lIEhhc2hNYXBUeXBlOjpjb25zdF9pdGVyYXRvcjo6S2V5cz4oaGFzaE1hcC0+YmVnaW4o
KS5rZXlzKCksIGhhc2hNYXAtPmVuZCgpLmtleXMoKSwgaW5mbyk7CisgICAgcmVwb3J0U2VxdWVu
Y2VNZW1vcnlVc2FnZTxNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hNYXBUeXBlOjpjb25zdF9pdGVy
YXRvcjo6VmFsdWVzPihoYXNoTWFwLT5iZWdpbigpLnZhbHVlcygpLCBoYXNoTWFwLT5lbmQoKS52
YWx1ZXMoKSwgaW5mbyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbkhhc2hTZXQuaAppbmRleCA4YjAzNTM3NWJmY2Y1NGZmZjRjZTY2ODgxMmNjOGI1MGIx
OTY2MTZlLi4xY2Q1MWFjNGU5YWY1OTQ4MjczYjM3NzBhYzUwYTMyZDBmOWEzMGRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKKysrIGIv
U291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oCkBAIC0zMiw2ICsz
Miw3IEBACiAjZGVmaW5lIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXRfaAogCiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg+
CiAKIG5hbWVzcGFjZSBXVEYgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uU2VxdWVuY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmIxOGJmZGUzMGJjYzQ3MDA5YTQyODU5NjE3
MmQ5OTNiNTNmNzNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uU2VxdWVuY2UuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlJbnN0
cnVtZW50YXRpb25TZXF1ZW5jZV9oCisjZGVmaW5lIE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVl
bmNlX2gKKworI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaD4KKyNpbmNsdWRl
IDx3dGYvVHlwZVRyYWl0cy5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5h
bWUgVmFsdWVUeXBlPgorc3RydWN0IFNlcXVlbmNlTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRz
IHsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgST4gc3RhdGljIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoSSBpdGVyYXRvciwgSSBlbmQsIE1lbW9yeUNsYXNzSW5mbyYgaW5mbykKKyAgICB7CisgICAg
ICAgIGluZm8uYWRkQ29sbGVjdGlvbkVsZW1lbnRzKGl0ZXJhdG9yLCBlbmQpOworICAgIH0KK307
CisKK3RlbXBsYXRlPD4gc3RydWN0IFNlcXVlbmNlTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRz
PGludD4geworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJPiBzdGF0aWMgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShJLCBJLCBNZW1vcnlDbGFzc0luZm8mKSB7IH0KK307CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IFNlcXVlbmNlTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzPHZvaWQqPiB7CisgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIEk+IHN0YXRpYyB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKEksIEksIE1l
bW9yeUNsYXNzSW5mbyYpIHsgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0
eXBlbmFtZSBJPiB2b2lkIHJlcG9ydFNlcXVlbmNlTWVtb3J5VXNhZ2UoSSBiZWdpbiwgSSBlbmQs
IE1lbW9yeUNsYXNzSW5mbyYgaW5mbykKK3sKKyAgICAvLyBDaGVjayBpZiB0eXBlIGlzIGNvbnZl
cnRpYmxlIHRvIGludGVnZXIgdG8gaGFuZGxlIGl0ZXJhdGlvbiB0aHJvdWdoIGVudW0gdmFsdWVz
LgorICAgIFNlcXVlbmNlTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzPHR5cGVuYW1lIENvbmRp
dGlvbmFsPElzQ29udmVydGlibGVUb0ludGVnZXI8VmFsdWVUeXBlPjo6dmFsdWUsIGludCwgVmFs
dWVUeXBlPjo6VHlwZT46OnJlcG9ydE1lbW9yeVVzYWdlKGJlZ2luLCBlbmQsIGluZm8pOworfQor
Cit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZV9o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCmluZGV4
IDkwZTEyNzE2MDIxNjk2NjljMTM2ODc3YmEwMjk1NWQ0YjA1NmQ5YjQuLjFlNDA0MTFhYzExYjFk
YzgxNzliZGYwMzI2ZjdhZTY0MTUxNjdkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbWFn
ZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMTMsNyArMTE0LDcg
QEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpwdXRJbWFnZShjb25zdCBJbnRTaXplJiBz
aXplLCBQYXNzUmVmUHRyPEltYWdlPiBpbWEKIHZvaWQgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6
cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRIYXNoQ291bnRl
ZFNldChtX3NpemVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NpemVzKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX2NsaWVudHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faW1hZ2VzKTsgLy8gRklY
TUU6IGluc3RydW1lbnQgSW1hZ2UKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGQyOTFkMTQzYjEzYmExYTE5M2RiZTMwODM1ZTdjNzlm
YTQ4Mjk0MmUuLjQyZTE4NjhiNGQwMjI4MGRhZTIxZmViMWY2NzIyNmY4NWRhYWNlYjEgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgor
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDg0MjhjNDdiMTg2YmI1NDBlMTA0OTc0YzA0NWIzNGIy
YTMyMzBlZjYuLjEwNTkwNzdmMGMxZTlmODhhNGRiNmJlZGJkYzRjZjc3MGQwODMzNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LmNwcApAQCAtMzcsOSArMzcsMTEgQEAKICNpbmNsdWRlIDxndGVzdC9ndGVz
dC5oPgogCiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hD
b3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZp
ZXcuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQu
aD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oPgpAQCAtNjUzLDYgKzY1NSwyNSBAQCBURVNUKE1l
bW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhhc2hNYXBXaXRoRW51bUtleXNBbmRJbnN0cnVtZW50
ZWRWYWx1ZXMpCiAgICAgRVhQRUNUX0VRKGNvdW50ICsgMSwgaGVscGVyLnZpc2l0ZWRPYmplY3Rz
KCkpOwogfQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhhc2hDb3VudGVkU2V0
V2l0aEluc3RydW1lbnRlZFZhbHVlcykKK3sKKyAgICBJbnN0cnVtZW50YXRpb25UZXN0SGVscGVy
IGhlbHBlcjsKKworICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8SW5zdHJ1bWVudGVkKj4gVGVz
dFNldDsKKyAgICBPd25QdHI8VGVzdFNldD4gc2V0ID0gYWRvcHRQdHIobmV3IFRlc3RTZXQoKSk7
CisgICAgVmVjdG9yPE93blB0cjxJbnN0cnVtZW50ZWQ+ID4ga2V5c1ZlY3RvcjsKKyAgICBpbnQg
Y291bnQgPSAxMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAg
ICAga2V5c1ZlY3Rvci5hcHBlbmQoYWRvcHRQdHIobmV3IEluc3RydW1lbnRlZCgpKSk7CisgICAg
ICAgIGZvciAoaW50IGogPSAwOyBqIDw9IGk7IGorKykKKyAgICAgICAgICAgIHNldC0+YWRkKGtl
eXNWZWN0b3IubGFzdCgpLmdldCgpKTsKKyAgICB9CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VGVz
dFNldCogPiByb290KHNldC5nZXQoKSk7CisgICAgaGVscGVyLmFkZFJvb3RPYmplY3Qocm9vdCk7
CisgICAgRVhQRUNUX0VRKHNpemVvZihUZXN0U2V0KSArIHNpemVvZihIYXNoTWFwPEluc3RydW1l
bnRlZCosIHVuc2lnbmVkPjo6VmFsdWVUeXBlKSAqIHNldC0+Y2FwYWNpdHkoKSArIChzaXplb2Yo
SW5zdHJ1bWVudGVkKSArIHNpemVvZihOb3RJbnN0cnVtZW50ZWQpKSAgKiBzZXQtPnNpemUoKSwg
aGVscGVyLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgyICogY291
bnQgKyAxLCBoZWxwZXIudmlzaXRlZE9iamVjdHMoKSk7Cit9CisKIFRFU1QoTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVGVzdCwgYXJyYXlCdWZmZXIpCiB7CiAgICAgSW5zdHJ1bWVudGF0aW9uVGVzdEhl
bHBlciBoZWxwZXI7Cg==
</data>
<flag name="review"
          id="179056"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>