<?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>140512</bug_id>
          
          <creation_ts>2015-01-15 14:04:45 -0800</creation_ts>
          <short_desc>Web Replay: convert to is&lt;T&gt; and downcast&lt;T&gt; for decoding replay inputs</short_desc>
          <delta_ts>2015-01-19 12:49:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          
          <blocked>136290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1061629</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-15 14:04:45 -0800</bug_when>
    <thetext>There&apos;s a big switch/if chain in 
EncodingTraits&lt;NondeterministicInputBase&gt;::decodeValue/encodeValue() that should be converted.

This should require some fairly trivial changes to the input code generator to make the TypeCastTraits specializations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062204</commentid>
    <comment_count>1</comment_count>
      <attachid>244862</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-18 09:56:23 -0800</bug_when>
    <thetext>Created attachment 244862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062205</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-18 09:58:38 -0800</bug_when>
    <thetext>This patch modifies the WEB_REPLAY inputs generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-input-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062206</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-18 09:58:49 -0800</bug_when>
    <thetext>Attachment 244862 did not pass style-queue:


ERROR: Source/WebCore/replay/SerializationMethods.cpp:169:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062436</commentid>
    <comment_count>4</comment_count>
      <attachid>244862</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-19 11:53:33 -0800</bug_when>
    <thetext>Comment on attachment 244862
Patch

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

r=me

&gt; Source/JavaScriptCore/replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.h:91
&gt; +#if ENABLE(DUMMY_FEATURE)

What is this DUMMY_FEATURE?

&gt; Source/WebCore/replay/MemoizedDOMResult.h:155
&gt; +    

New spaces?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062437</commentid>
    <comment_count>5</comment_count>
      <attachid>244862</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-19 11:56:25 -0800</bug_when>
    <thetext>Comment on attachment 244862
Patch

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

&gt;&gt; Source/JavaScriptCore/replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.h:91
&gt;&gt; +#if ENABLE(DUMMY_FEATURE)
&gt; 
&gt; What is this DUMMY_FEATURE?

This test covers generation of ENABLE guards. Useful for inputs related to TOUCH_EVENTS, REQUEST_ANIMATION_FRAME, etc.

&gt;&gt; Source/WebCore/replay/MemoizedDOMResult.h:155
&gt;&gt; +    
&gt; 
&gt; New spaces?

Oops, Xcode :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062469</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-19 12:49:33 -0800</bug_when>
    <thetext>Committed r178668: &lt;http://trac.webkit.org/changeset/178668&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244862</attachid>
            <date>2015-01-18 09:56:23 -0800</date>
            <delta_ts>2015-01-19 11:53:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140512-20150118095540.patch</filename>
            <type>text/plain</type>
            <size>19127</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ODMyM2FjM2I0ZDdkMjYxNjgwM2JlODgzYzUxNDNiMjdlOTNhMjUwLi5jN2U0NjRhOWYzNmE5NTYw
OTlkMzMwNTEwNDkxMzdiMmU3ZmY4YWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wMS0xOCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogY29udmVydCB0byBpczxUPiBhbmQgZG93bmNh
c3Q8VD4gZm9yIGRlY29kaW5nIHJlcGxheSBpbnB1dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDUxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlbmVyYXRlIGEgU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U18qIGNodW5rIG9mIGNvZGUgZm9yIGVhY2ggaW5wdXQuIFRoaXMgY2Fubm90CisgICAgICAgIGJl
IGRvbmUgdXNpbmcgUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9FQUNIIG1hY3JvIHNpbmNlIHRoYXQg
ZG9lc24ndCBmdWxseSBxdWFsaWZ5CisgICAgICAgIGlucHV0IHR5cGVzLCBhbmQgdGhlIHR5cGUg
dHJhaXRzIG1hY3JvIGlzIGRlZmluZWQgaW4gbmFtZXNwYWNlIFdURi4KKworICAgICAgICAqIHJl
cGxheS9Ob25kZXRlcm1pbmlzdGljSW5wdXQuaDogTWFrZSBvdmVycmlkZGVuIG1ldGhvZHMgcHVi
bGljLgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMu
cHk6CisgICAgICAgIChHZW5lcmF0b3IuZ2VuZXJhdGVfaGVhZGVyKToKKyAgICAgICAgKEdlbmVy
YXRvci5xdWFsaWZpZWRfaW5wdXRfbmFtZSk6IEFsbG93IGZvcmNpbmcgcXVhbGlmaWNhdGlvbi4g
V1RGIGlzIG5ldmVyIGEgdGFyZ2V0IGZyYW1ld29yay4KKyAgICAgICAgKEdlbmVyYXRvci5nZW5l
cmF0ZV9pbnB1dF90eXBlX3RyYWl0X2RlY2xhcmF0aW9uKTogQWRkZWQuCisgICAgICAgICogcmVw
bGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weTogQWRkIGEg
dGVtcGxhdGUuCisgICAgICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJh
dGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNvbi1UZXN0UmVw
bGF5SW5wdXRzLmg6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2Vu
ZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oOgorICAg
ICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0td2l0aC1n
dWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaDoKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVz
dFJlcGxheUlucHV0cy5oOgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVk
L2dlbmVyYXRlLWlucHV0LXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmg6CisgICAg
ICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC12
ZWN0b3ItbWVtYmVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaDoKKyAgICAgICAgKiByZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dHMtd2l0aC1mbGFncy5qc29uLVRl
c3RSZXBsYXlJbnB1dHMuaDoKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3Rl
ZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oOgor
CiAyMDE1LTAxLTE3ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBoaWdobGlnaHQgZGF0YSBmb3Igb3ZlcmxheSBzaG91bGQg
dXNlIHByb3RvY29sIHR5cGUgYnVpbGRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmOTNkOGEwODM0ZjJhMTVl
YzhjYzFlNDk1MWE2YzFhOTJkY2Q5YjU0Li43NzE5ZDUxNDlhODgxNGEyYjBmMzZmNmQxZDAyZjc4
M2Q4NTg0Zjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDEtMTggIEJyaWFu
IEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgorCisgICAgICAgIFdlYiBSZXBsYXk6
IGNvbnZlcnQgdG8gaXM8VD4gYW5kIGRvd25jYXN0PFQ+IGZvciBkZWNvZGluZyByZXBsYXkgaW5w
dXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA1
MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZWQuCisKKyAgICAgICAgKiByZXBsYXkvRXZlbnRM
b29wSW5wdXQuaDogTWFrZSBvdmVycmlkZGVuIG1ldGhvZHMgcHVibGljLgorICAgICAgICAqIHJl
cGxheS9NZW1vaXplZERPTVJlc3VsdC5oOiBBZGQgdHlwZSB0cmFpdCBzcGVjaWFsaXphdGlvbiBo
ZXJlLiBJdCBpcworICAgICAgICBzcGVjaWFsLWNhc2VkIGJlY2F1c2UgdGhlIGlucHV0IHR5cGUg
cGFyYW1ldGVyIGRvZXNuJ3Qgd29yayB3aXRoIG1hY3Jvcy4KKyAgICAgICAgKiByZXBsYXkvU2Vy
aWFsaXphdGlvbk1ldGhvZHMuY3BwOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxOb25k
ZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICBVc2UgaXMoKSBh
bmQgZG93bmNhc3QoKSB3aGVuIGRpc3BhdGNoaW5nIHRvIGVuY29kZXJzIGJhc2VkIG9uIHR5cGUu
CisKIDIwMTUtMDEtMTcgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1Pgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGhpZ2hsaWdodCBkYXRhIGZvciBvdmVybGF5IHNob3Vs
ZCB1c2UgcHJvdG9jb2wgdHlwZSBidWlsZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3JlcGxheS9Ob25kZXRlcm1pbmlzdGljSW5wdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9yZXBsYXkvTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmgKaW5kZXggZDNmY2VjZjIxNTU4OGE0
YmY3NDYzYzhiNTg3MzMyZGY1YmQ3Y2FiZi4uMzBiYTMzYmNmN2Q5MWE2Y2RiZDQyMTdhYmYzODcw
NjcwM2UxNmZlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9Ob25k
ZXRlcm1pbmlzdGljSW5wdXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L05v
bmRldGVybWluaXN0aWNJbnB1dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKIAogdGVtcGxh
dGU8dHlwZW5hbWUgSW5wdXRUeXBlPgogY2xhc3MgTm9uZGV0ZXJtaW5pc3RpY0lucHV0IDogcHVi
bGljIE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UgeworcHVibGljOgogICAgIHZpcnR1YWwgY29u
c3QgU3RyaW5nJiB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBJ
bnB1dFRyYWl0czxJbnB1dFR5cGU+Ojp0eXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5w
dXRzLnB5CmluZGV4IDY1ZjU0OWFlYjM3N2YyZWNlYWFiZDk1OTM3NzEwMmZmYjE1YjYzYTUuLmRi
OGY3NmIzNWViYTAzZjI0MDdmMmZjNzE3YzZlYTE3YzU5ZGYxYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRz
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yUmVwbGF5SW5wdXRzLnB5CkBAIC01Nyw2ICs1Nyw5IEBAIEdMT0JBTF9DT05GSUcgPSB7CiAg
ICAgICAgIChbIkphdmFTY3JpcHRDb3JlIl0sCiAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3Jl
IiwgInJlcGxheS9Ob25kZXRlcm1pbmlzdGljSW5wdXQuaCIpCiAgICAgICAgICksCisgICAgICAg
IChbIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiXSwKKyAgICAgICAgICAgICgiV1RGIiwgInd0
Zi9UeXBlQ2FzdHMuaCIpCisgICAgICAgICksCiAgICAgICAgIChbIldlYkNvcmUiXSwKICAgICAg
ICAgICAgICgiV1RGIiwgInd0Zi90ZXh0L1dURlN0cmluZy5oIikKICAgICAgICAgKSwKQEAgLTU5
Niw2ICs1OTksNyBAQCBjbGFzcyBHZW5lcmF0b3I6CiAgICAgICAgICAgICAnaW5wdXRGb3J3YXJk
RGVjbGFyYXRpb25zJzogIlxuIi5qb2luKFt3cmFwX3dpdGhfZ3VhcmQoImNsYXNzICVzOyIsIF9p
bnB1dC5ndWFyZCkgJSBfaW5wdXQubmFtZSBmb3IgX2lucHV0IGluIHNlbGYuX21vZGVsLmlucHV0
c10pLAogICAgICAgICAgICAgJ2lucHV0Q2xhc3NEZWNsYXJhdGlvbnMnOiAiXG5cbiIuam9pbihb
c2VsZi5nZW5lcmF0ZV9jbGFzc19kZWNsYXJhdGlvbihfaW5wdXQpIGZvciBfaW5wdXQgaW4gc2Vs
Zi5fbW9kZWwuaW5wdXRzXSksCiAgICAgICAgICAgICAnaW5wdXRUcmFpdERlY2xhcmF0aW9ucyc6
ICJcblxuIi5qb2luKFtzZWxmLmdlbmVyYXRlX2lucHV0X3RyYWl0X2RlY2xhcmF0aW9uKF9pbnB1
dCkgZm9yIF9pbnB1dCBpbiBzZWxmLl9tb2RlbC5pbnB1dHNdKSwKKyAgICAgICAgICAgICdpbnB1
dFR5cGVUcmFpdERlY2xhcmF0aW9ucyc6ICJcblxuIi5qb2luKFtzZWxmLmdlbmVyYXRlX2lucHV0
X3R5cGVfdHJhaXRfZGVjbGFyYXRpb24oX2lucHV0KSBmb3IgX2lucHV0IGluIHNlbGYuX21vZGVs
LmlucHV0c10pLAogICAgICAgICAgICAgJ2VudW1UcmFpdERlY2xhcmF0aW9ucyc6ICJcblxuIi5q
b2luKFt3cmFwX3dpdGhfZ3VhcmQoc2VsZi5nZW5lcmF0ZV9lbnVtX3RyYWl0X2RlY2xhcmF0aW9u
KF90eXBlKSwgX3R5cGUuZ3VhcmQpIGZvciBfdHlwZSBpbiBzZWxmLl9tb2RlbC5lbnVtX3R5cGVz
KCldKSwKICAgICAgICAgICAgICdmb3JFYWNoTWFjcm8nOiBzZWxmLmdlbmVyYXRlX2Zvcl9lYWNo
X21hY3JvKCksCiAgICAgICAgIH0KQEAgLTc0NywxMSArNzUxLDExIEBAIGNsYXNzIEdlbmVyYXRv
cjoKICAgICBkZWYgZ2VuZXJhdGVfaW5wdXRfbWVtYmVyX3R1cGxlcyhzZWxmLCBfaW5wdXQpOgog
ICAgICAgICByZXR1cm4gWyhfbWVtYmVyLCBzZWxmLl9tb2RlbC5nZXRfdHlwZV9mb3JfbWVtYmVy
KF9tZW1iZXIpKSBmb3IgX21lbWJlciBpbiBfaW5wdXQubWVtYmVyc10KIAotICAgIGRlZiBxdWFs
aWZpZWRfaW5wdXRfbmFtZShzZWxmLCBfaW5wdXQpOgotICAgICAgICBpZiBzZWxmLnRhcmdldF9m
cmFtZXdvcmsgPT0gc2VsZi50cmFpdHNfZnJhbWV3b3JrOgotICAgICAgICAgICAgcmV0dXJuIF9p
bnB1dC5uYW1lCi0gICAgICAgIGVsc2U6CisgICAgZGVmIHF1YWxpZmllZF9pbnB1dF9uYW1lKHNl
bGYsIF9pbnB1dCwgZm9yY2VRdWFsaWZpZWQ9RmFsc2UpOgorICAgICAgICBpZiBmb3JjZVF1YWxp
ZmllZCBvciBzZWxmLnRhcmdldF9mcmFtZXdvcmsgIT0gc2VsZi50cmFpdHNfZnJhbWV3b3JrOgog
ICAgICAgICAgICAgcmV0dXJuICIlczo6JXMiICUgKHNlbGYudGFyZ2V0X2ZyYW1ld29yay5zZXR0
aW5nKCduYW1lc3BhY2UnKSwgX2lucHV0Lm5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByZXR1cm4gX2lucHV0Lm5hbWUKIAogICAgIGRlZiBnZW5lcmF0ZV9pbnB1dF90cmFpdF9kZWNs
YXJhdGlvbihzZWxmLCBfaW5wdXQpOgogICAgICAgICBkZWNsX3R5cGUgPSBbJ3N0cnVjdCddCkBA
IC03NjYsNiArNzcwLDEzIEBAIGNsYXNzIEdlbmVyYXRvcjoKIAogICAgICAgICByZXR1cm4gd3Jh
cF93aXRoX2d1YXJkKFRlbXBsYXRlKFRlbXBsYXRlcy5JbnB1dFRyYWl0c0RlY2xhcmF0aW9uKS5z
dWJzdGl0dXRlKHRlbXBsYXRlX2FyZ3VtZW50cyksIF9pbnB1dC5ndWFyZCkKIAorICAgIGRlZiBn
ZW5lcmF0ZV9pbnB1dF90eXBlX3RyYWl0X2RlY2xhcmF0aW9uKHNlbGYsIF9pbnB1dCk6CisgICAg
ICAgIHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKKyAgICAgICAgICAgICdxdWFsaWZpZWRJbnB1dE5h
bWUnOiBzZWxmLnF1YWxpZmllZF9pbnB1dF9uYW1lKF9pbnB1dCwgZm9yY2VRdWFsaWZpZWQ9VHJ1
ZSksCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gd3JhcF93aXRoX2d1YXJkKFRlbXBsYXRl
KFRlbXBsYXRlcy5JbnB1dFR5cGVUcmFpdHNEZWNsYXJhdGlvbikuc3Vic3RpdHV0ZSh0ZW1wbGF0
ZV9hcmd1bWVudHMpLCBfaW5wdXQuZ3VhcmQpCisKICAgICBkZWYgZ2VuZXJhdGVfZW51bV90cmFp
dF9kZWNsYXJhdGlvbihzZWxmLCBfdHlwZSk6CiAgICAgICAgIHNob3VsZF9xdWFsaWZ5X3R5cGUg
PSBfdHlwZS5mcmFtZXdvcmsgIT0gc2VsZi50cmFpdHNfZnJhbWV3b3JrCiAgICAgICAgIHRlbXBs
YXRlID0gVGVtcGxhdGVzLkVudW1UcmFpdERlY2xhcmF0aW9uIGlmIF90eXBlLmlzX2VudW0oKSBl
bHNlIFRlbXBsYXRlcy5FbnVtQ2xhc3NUcmFpdERlY2xhcmF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
c1RlbXBsYXRlcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5CmluZGV4IDhkZTdiZjZiMDc0NTZjN2Fi
OTI1OTMyMTVjMzE1MTdhNmQzYzY1YmIuLmE5YmM2NTI0MGU3MjY5ZTdhNWZhOTgyYjRlZDFhZjE2
YzVkOWYyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxh
dGVzLnB5CkBAIC04OCw2ICs4OCw4IEBAIG5hbWVzcGFjZSAke2lucHV0c05hbWVzcGFjZX0gewog
JHtpbnB1dENsYXNzRGVjbGFyYXRpb25zfQogfSAvLyBuYW1lc3BhY2UgJHtpbnB1dHNOYW1lc3Bh
Y2V9CiAKKyR7aW5wdXRUeXBlVHJhaXREZWNsYXJhdGlvbnN9CisKICR7Zm9yRWFjaE1hY3JvfQog
CiAjZW5kaWYgLy8gJHtndWFyZENvbmRpdGlvbn0KQEAgLTEwNCw2ICsxMDYsMTEgQEAgJHtmb3JF
YWNoTWFjcm99CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgc3Rk
Ojp1bmlxdWVfcHRyPCR7cXVhbGlmaWVkSW5wdXROYW1lfT4mKTsKIH07IiIiKQogCisgICAgSW5w
dXRUeXBlVHJhaXRzRGVjbGFyYXRpb24gPSAoCisgICAgIiIiU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTigke3F1YWxpZmllZElucHV0TmFtZX0pCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNv
bnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UmIGlucHV0KSB7IHJldHVybiBpbnB1dC50eXBl
KCkgPT0gSW5wdXRUcmFpdHM8JHtxdWFsaWZpZWRJbnB1dE5hbWV9Pjo6dHlwZSgpOyB9CitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpIiIiKQorCiAgICAgRW51bVRyYWl0RGVjbGFyYXRpb24g
PSAoCiAgICAgIiIidGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8JHtlbnVtTmFtZX0+
IHsKICAgICB0eXBlZGVmICR7ZW51bU5hbWV9IERlY29kZWRUeXBlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWVudW0tZW5jb2RpbmctaGVscGVycy13aXRoLWd1YXJkZWQtdmFsdWVzLmpzb24tVGVzdFJlcGxh
eUlucHV0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4
cGVjdGVkL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy13aXRoLWd1YXJkZWQtdmFsdWVz
Lmpzb24tVGVzdFJlcGxheUlucHV0cy5oCmluZGV4IDE2YzZkNTM1MGE2Yjk2YTliZmQ1MDk2NDBk
ODFiMzIxNzVmMTA4OTYuLmZiMDJmY2FkMTFlNWNhMjhkZDFmYmFlZjkxMWMwMzU1Y2ZlOTU5YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9l
eHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMtd2l0aC1ndWFyZGVkLXZhbHVl
cy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVw
bGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJz
LXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKQEAgLTcxLDYgKzcx
LDEwIEBAIHByaXZhdGU6CiB9OwogfSAvLyBuYW1lc3BhY2UgVGVzdAogCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0JFR0lOKFRlc3Q6OlNhdmVkTW91c2VCdXR0b24pCisgICAgc3RhdGljIGJvb2wg
aXNUeXBlKGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UmIGlucHV0KSB7IHJldHVybiBp
bnB1dC50eXBlKCkgPT0gSW5wdXRUcmFpdHM8VGVzdDo6U2F2ZWRNb3VzZUJ1dHRvbj46OnR5cGUo
KTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZGVmaW5lIFRFU1RfUkVQTEFZ
X0lOUFVUX05BTUVTX0ZPUl9FQUNIKG1hY3JvKSBcCiAgICAgbWFjcm8oU2F2ZWRNb3VzZUJ1dHRv
bikgXAogICAgIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2Ny
aXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbi1U
ZXN0UmVwbGF5SW5wdXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLmpzb24tVGVzdFJl
cGxheUlucHV0cy5oCmluZGV4IDM5NGVmYjM1MWI2YjRmOTdjMTE2YjU4YmJkOTQ1M2QxOTNiMWU0
NjIuLjI5ZWU4ZTc2YWQ3Y2NhMTQxODJjNjFiMzdkYTE5YjVhNzc4YmU4ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVy
YXRlLWVudW0tZW5jb2RpbmctaGVscGVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaApAQCAtOTAs
NiArOTAsMTAgQEAgcHJpdmF0ZToKIH07CiB9IC8vIG5hbWVzcGFjZSBUZXN0CiAKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQkVHSU4oVGVzdDo6U2F2ZWRNb3VzZUJ1dHRvbikKKyAgICBzdGF0aWMg
Ym9vbCBpc1R5cGUoY29uc3QgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSYgaW5wdXQpIHsgcmV0
dXJuIGlucHV0LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZE1vdXNlQnV0dG9uPjo6
dHlwZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNkZWZpbmUgVEVTVF9S
RVBMQVlfSU5QVVRfTkFNRVNfRk9SX0VBQ0gobWFjcm8pIFwKICAgICBtYWNybyhTYXZlZE1vdXNl
QnV0dG9uKSBcCiAgICAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxh
eS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRl
c3RSZXBsYXlJbnB1dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5w
dXRzLmgKaW5kZXggMzcxMjljNGI1Mzk0MmQ2NWEzZTc1YWYyNGNmYTQwZTUwMWE1MmU3NS4uNjQ0
NjEyZmFiMTc5ZjEyODQwZjc4YzE1NThhNDYxOTI4ZDNhMGE3MyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVu
dW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRo
LWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCkBAIC03Niw2ICs3NiwxMCBAQCBwcml2YXRl
OgogfTsKIH0gLy8gbmFtZXNwYWNlIFRlc3QKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJ
TihUZXN0OjpIYW5kbGVXaGVlbEV2ZW50KQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBO
b25kZXRlcm1pbmlzdGljSW5wdXRCYXNlJiBpbnB1dCkgeyByZXR1cm4gaW5wdXQudHlwZSgpID09
IElucHV0VHJhaXRzPFRlc3Q6OkhhbmRsZVdoZWVsRXZlbnQ+Ojp0eXBlKCk7IH0KK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2RlZmluZSBURVNUX1JFUExBWV9JTlBVVF9OQU1FU19G
T1JfRUFDSChtYWNybykgXAogICAgIG1hY3JvKEhhbmRsZVdoZWVsRXZlbnQpIFwKICAgICBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5qc29uLVRlc3RSZXBsYXlJ
bnB1dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBl
Y3RlZC9nZW5lcmF0ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVzdFJlcGxheUlu
cHV0cy5oCmluZGV4IDZjOTNhZDdlNGNhZDU1MTQwYmM1ZmM3YWIzZWQwZmQyZTE3MWQxMDMuLmQ2
NTY1NTYzM2UxZGMyOGFlNTEyZjY3MjZiNzMyZjg4MTYyMmJhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1l
bnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0
ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCkBAIC05
OCw2ICs5OCwxMCBAQCBwcml2YXRlOgogfTsKIH0gLy8gbmFtZXNwYWNlIFRlc3QKIAorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihUZXN0OjpGb3JtQ29tYm8pCisgICAgc3RhdGljIGJvb2wg
aXNUeXBlKGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UmIGlucHV0KSB7IHJldHVybiBp
bnB1dC50eXBlKCkgPT0gSW5wdXRUcmFpdHM8VGVzdDo6Rm9ybUNvbWJvPjo6dHlwZSgpOyB9CitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNkZWZpbmUgVEVTVF9SRVBMQVlfSU5QVVRf
TkFNRVNfRk9SX0VBQ0gobWFjcm8pIFwKICAgICBtYWNybyhGb3JtQ29tYm8pIFwKICAgICBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1pbnB1dC13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCmluZGV4IDRmMTQ1
YjY4MmExZTliNDYxYzI0YWQ3NjYxNzRmMjNlM2ZjYjI4YWIuLmU0ZDJiYTE3Zjg3ZDdmMGVmMzQz
NzllYzM2NDE5N2E5Y2ZmMDU1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLWd1YXJkLmpz
b24tVGVzdFJlcGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLWd1YXJkLmpzb24tVGVz
dFJlcGxheUlucHV0cy5oCkBAIC04OCw2ICs4OCwxNiBAQCBwcml2YXRlOgogfTsKIH0gLy8gbmFt
ZXNwYWNlIFRlc3QKIAorI2lmIEVOQUJMRShEVU1NWV9GRUFUVVJFKQorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19CRUdJTihUZXN0OjpHZXRDdXJyZW50VGltZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSYgaW5wdXQpIHsgcmV0dXJuIGlucHV0
LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxUZXN0OjpHZXRDdXJyZW50VGltZT46OnR5cGUoKTsgfQor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorI2VuZGlmIC8vIEVOQUJMRShEVU1NWV9GRUFU
VVJFKQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFRlc3Q6OlNldFJhbmRvbVNlZWQp
CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2Um
IGlucHV0KSB7IHJldHVybiBpbnB1dC50eXBlKCkgPT0gSW5wdXRUcmFpdHM8VGVzdDo6U2V0UmFu
ZG9tU2VlZD46OnR5cGUoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZGVm
aW5lIFRFU1RfUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9FQUNIKG1hY3JvKSBcCiAgICAgbWFjcm8o
R2V0Q3VycmVudFRpbWUpIFwKICAgICBtYWNybyhTZXRSYW5kb21TZWVkKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2Vu
ZXJhdGUtaW5wdXQtd2l0aC12ZWN0b3ItbWVtYmVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1pbnB1dC13aXRoLXZlY3Rvci1tZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCmlu
ZGV4IGEyNzFlY2I5MjNhZTVmNzg1OGIxMDNjNjZhYTkwNTQxZGYxNDI1NmUuLjE3Mjg1OThlMTM2
ZTJjOGE3MWRiOTAxMGFmOWViNzFiODQ4ZTE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRo
LXZlY3Rvci1tZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13
aXRoLXZlY3Rvci1tZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCkBAIC05MCw2ICs5MCwx
NCBAQCBwcml2YXRlOgogfTsKIH0gLy8gbmFtZXNwYWNlIFRlc3QKIAorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19CRUdJTihUZXN0OjpBcnJheU9mVGhpbmdzKQorICAgIHN0YXRpYyBib29sIGlzVHlw
ZShjb25zdCBOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlJiBpbnB1dCkgeyByZXR1cm4gaW5wdXQu
dHlwZSgpID09IElucHV0VHJhaXRzPFRlc3Q6OkFycmF5T2ZUaGluZ3M+Ojp0eXBlKCk7IH0KK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJ
TihUZXN0OjpTYXZlZEhpc3RvcnkpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IE5vbmRl
dGVybWluaXN0aWNJbnB1dEJhc2UmIGlucHV0KSB7IHJldHVybiBpbnB1dC50eXBlKCkgPT0gSW5w
dXRUcmFpdHM8VGVzdDo6U2F2ZWRIaXN0b3J5Pjo6dHlwZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0VORCgpCisKICNkZWZpbmUgVEVTVF9SRVBMQVlfSU5QVVRfTkFNRVNfRk9SX0VBQ0go
bWFjcm8pIFwKICAgICBtYWNybyhBcnJheU9mVGhpbmdzKSBcCiAgICAgbWFjcm8oU2F2ZWRIaXN0
b3J5KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXRzLXdpdGgtZmxhZ3MuanNvbi1UZXN0UmVwbGF5
SW5wdXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtaW5wdXRzLXdpdGgtZmxhZ3MuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgK
aW5kZXggOGY0ZGUxYjEzOGQyYWQ3Y2NjNGZlZTYzMzlmMjI1ZGZkYzA4ZTU2ZC4uMzcxZTdmNWNh
ZTk3YjVjMjIyZTM5MjlhYjJlMjJjNTI3NTdlNjM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0cy13
aXRoLWZsYWdzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dHMtd2l0aC1m
bGFncy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaApAQCAtODIsNiArODIsMTQgQEAgcHJpdmF0ZToK
IH07CiB9IC8vIG5hbWVzcGFjZSBUZXN0CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4o
VGVzdDo6U2NhbGFySW5wdXQxKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBOb25kZXRl
cm1pbmlzdGljSW5wdXRCYXNlJiBpbnB1dCkgeyByZXR1cm4gaW5wdXQudHlwZSgpID09IElucHV0
VHJhaXRzPFRlc3Q6OlNjYWxhcklucHV0MT46OnR5cGUoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFRlc3Q6OlNjYWxhcklu
cHV0MikKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgTm9uZGV0ZXJtaW5pc3RpY0lucHV0
QmFzZSYgaW5wdXQpIHsgcmV0dXJuIGlucHV0LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxUZXN0OjpT
Y2FsYXJJbnB1dDI+Ojp0eXBlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwog
I2RlZmluZSBURVNUX1JFUExBWV9JTlBVVF9OQU1FU19GT1JfRUFDSChtYWNybykgXAogICAgIG1h
Y3JvKFNjYWxhcklucHV0MSkgXAogICAgIG1hY3JvKFNjYWxhcklucHV0MikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dl
bmVyYXRlLW1lbW9pemVkLXR5cGUtbW9kZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUt
bWVtb2l6ZWQtdHlwZS1tb2Rlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAppbmRleCA0M2MzOWZj
ZTAxMDZjYWM4Y2ExNTI0OWJkZmZmZDIyMDUwOTM3ZWM4Li5hZTE5ZTUyMWVjOGE0NDdiNTcxYjJj
ZTBlYjcwMDY1MDRiZWE0ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVw
bGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6ZWQtdHlwZS1tb2Rlcy5q
c29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5
L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6ZWQtdHlwZS1tb2Rlcy5qc29u
LVRlc3RSZXBsYXlJbnB1dHMuaApAQCAtODIsNiArODIsMTQgQEAgcHJpdmF0ZToKIH07CiB9IC8v
IG5hbWVzcGFjZSBUZXN0CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oVGVzdDo6U2Nh
bGFySW5wdXQpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IE5vbmRldGVybWluaXN0aWNJ
bnB1dEJhc2UmIGlucHV0KSB7IHJldHVybiBpbnB1dC50eXBlKCkgPT0gSW5wdXRUcmFpdHM8VGVz
dDo6U2NhbGFySW5wdXQ+Ojp0eXBlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkK
KworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihUZXN0OjpNYXBJbnB1dCkKKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSYgaW5wdXQpIHsg
cmV0dXJuIGlucHV0LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxUZXN0OjpNYXBJbnB1dD46OnR5cGUo
KTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZGVmaW5lIFRFU1RfUkVQTEFZ
X0lOUFVUX05BTUVTX0ZPUl9FQUNIKG1hY3JvKSBcCiAgICAgbWFjcm8oU2NhbGFySW5wdXQpIFwK
ICAgICBtYWNybyhNYXBJbnB1dCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5
L0V2ZW50TG9vcElucHV0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXQu
aAppbmRleCBjYjM3NWU3ZGY2MDYyNTYzMjhkM2VjZWViN2QxY2VmMjZmNGVhYjVjLi40MGQ1MWM5
MmM2M2NkZWJmZTZlMDhhZThlYzkyNDI0NGZhODQxZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkv
RXZlbnRMb29wSW5wdXQuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBJbnB1dFR5cGU+CiBjbGFzcyBFdmVudExvb3BJbnB1dCA6IHB1YmxpYyBFdmVudExv
b3BJbnB1dEJhc2UgeworcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiB0eXBlKCkg
Y29uc3Qgb3ZlcnJpZGUgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBJbnB1dFRyYWl0czxJ
bnB1dFR5cGU+Ojp0eXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVt
b2l6ZWRET01SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9NZW1vaXplZERPTVJlc3Vs
dC5oCmluZGV4IDZiYTBmNWQ3YWMxYjRlZWIzOTdlNDcyZmExNzVmMjFiZGY4YTM1NDEuLjhhYTNi
MzI5YzJkNTBmYTgyZTU4NGYyNDYzMzJkMzU1NjNmNDZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9NZW1vaXplZERPTVJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9NZW1vaXplZERPTVJlc3VsdC5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlIDxy
ZXBsYXkvRW5jb2RlZFZhbHVlLmg+CiAjaW5jbHVkZSA8cmVwbGF5L05vbmRldGVybWluaXN0aWNJ
bnB1dC5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0xNTEsOSArMTUyLDEzIEBAIHN0cnVjdCBJbnB1dFRyYWl0czxNZW1vaXplZERPTVJl
c3VsdEJhc2U+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlZFZhbHVlJiwgY29uc3Qg
TWVtb2l6ZWRET01SZXN1bHRCYXNlJiBpbnB1dCk7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEVu
Y29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxNZW1vaXplZERPTVJlc3VsdEJhc2U+JiBpbnB1
dCk7CiB9OwotCisgICAgCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19CRUdJTihXZWJDb3JlOjpNZW1vaXplZERPTVJlc3VsdEJhc2UpCitzdGF0aWMgYm9vbCBp
c1R5cGUoY29uc3QgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSYgaW5wdXQpIHsgcmV0dXJuIGlu
cHV0LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxXZWJDb3JlOjpNZW1vaXplZERPTVJlc3VsdEJhc2U+
Ojp0eXBlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmIC8vIEVO
QUJMRShXRUJfUkVQTEFZKQogCiAjZW5kaWYgLy8gTWVtb2l6ZWRET01SZXN1bHRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKaW5kZXggYzkzMjU4
MGU5ZTExNmMwY2E0NGExMDY3ZjEzMjE2OGU4N2VlODg5YS4uNjY5YTEwMWMzOWMzYWI2YWQxMzVl
YWE4Y2E3MzEzMmJkNGMwZGI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1Nl
cmlhbGl6YXRpb25NZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFs
aXphdGlvbk1ldGhvZHMuY3BwCkBAIC0xNjYsOCArMTY2LDggQEAgRW5jb2RlZFZhbHVlIEVuY29k
aW5nVHJhaXRzPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+OjplbmNvZGVWYWx1ZShjb25zdCBO
b25kZXQKICAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdHlw
ZSwgaW5wdXQudHlwZSgpKTsKIAogI2RlZmluZSBFTkNPREVfSUZfVFlQRV9UQUdfTUFUQ0hFUyhu
YW1lKSBcCi0gICAgaWYgKGlucHV0LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxuYW1lPjo6dHlwZSgp
KSB7IFwKLSAgICAgICAgSW5wdXRUcmFpdHM8bmFtZT46OmVuY29kZShlbmNvZGVkVmFsdWUsIHN0
YXRpY19jYXN0PGNvbnN0IG5hbWUmPihpbnB1dCkpOyBcCisgICAgaWYgKGlzPG5hbWU+KGlucHV0
KSkgeyBcCisgICAgICAgIElucHV0VHJhaXRzPG5hbWU+OjplbmNvZGUoZW5jb2RlZFZhbHVlLCBk
b3duY2FzdDxuYW1lPihpbnB1dCkpOyBcCiAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7IFwK
ICAgICB9IFwKIApAQCAtMTc2LDggKzE3Niw4IEBAIEVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0
czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUoY29uc3QgTm9uZGV0CiAj
dW5kZWYgRU5DT0RFX0lGX1RZUEVfVEFHX01BVENIRVMKIAogICAgIC8vIFRoZSBtYWNybyB3b24n
dCB3b3JrIGhlcmUgYmVjYXVzZSBvZiB0aGUgY2xhc3MgdGVtcGxhdGUgYXJndW1lbnQuCi0gICAg
aWYgKGlucHV0LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+Ojp0
eXBlKCkpIHsKLSAgICAgICAgSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6ZW5j
b2RlKGVuY29kZWRWYWx1ZSwgc3RhdGljX2Nhc3Q8Y29uc3QgTWVtb2l6ZWRET01SZXN1bHRCYXNl
Jj4oaW5wdXQpKTsKKyAgICBpZiAoaXM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPihpbnB1dCkpIHsK
KyAgICAgICAgSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6ZW5jb2RlKGVuY29k
ZWRWYWx1ZSwgZG93bmNhc3Q8TWVtb2l6ZWRET01SZXN1bHRCYXNlPihpbnB1dCkpOwogICAgICAg
ICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="269784"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>