<?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>219209</bug_id>
          
          <creation_ts>2020-11-20 09:43:36 -0800</creation_ts>
          <short_desc>AudioWorkletProcessor::process() may get called on non-audio worklet thread and crash</short_desc>
          <delta_ts>2020-11-20 13:38:41 -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>Web Audio</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1709516</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 09:43:36 -0800</bug_when>
    <thetext>AudioWorkletProcessor::process() may get called on non-audio worklet thread and crash:

Thread 13 Crashed:: com.apple.audio.IOThread.client
0   com.apple.JavaScriptCore      	0x000000056c733bae WTFCrash + 14 (Assertions.cpp:295)
1   com.apple.WebCore             	0x000000054e83c77b WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:671)
2   com.apple.WebCore             	0x0000000550b22ab6 WebCore::AudioWorkletProcessor::process(WTF::Vector&lt;WTF::RefPtr&lt;WebCore::AudioBus, WTF::RawPtrTraits&lt;WebCore::AudioBus&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::AudioBus&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WTF::Vector&lt;WTF::Ref&lt;WebCore::AudioBus, WTF::RawPtrTraits&lt;WebCore::AudioBus&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WTF::HashMap&lt;WTF::String, std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt; &gt; &gt; const&amp;, bool&amp;) + 374 (AudioWorkletProcessor.cpp:257)
3   com.apple.WebCore             	0x0000000550b22571 WebCore::AudioWorkletNode::process(unsigned long) + 1489 (AudioWorkletNode.cpp:222)
4   com.apple.WebCore             	0x0000000550ace01e WebCore::AudioNode::processIfNecessary(unsigned long) + 462 (AudioNode.cpp:474)
5   com.apple.WebCore             	0x0000000550b2be82 WebCore::BaseAudioContext::processAutomaticPullNodes(unsigned long) + 194 (BaseAudioContext.cpp:904)
6   com.apple.WebCore             	0x0000000550ac84a6 WebCore::AudioDestinationNode::render(WebCore::AudioBus*, WebCore::AudioBus*, unsigned long, WebCore::AudioIOPosition const&amp;) + 566 (AudioDestinationNode.cpp:102)
7   com.apple.WebCore             	0x00000005526d1939 WebCore::AudioDestinationCocoa::provideInput(WebCore::AudioBus*, unsigned long) + 185 (AudioDestinationCocoa.cpp:229)
8   com.apple.WebCore             	0x00000005526aeea5 WebCore::MultiChannelResampler::ChannelProvider::provideInput(WebCore::AudioBus*, unsigned long) + 309 (MultiChannelResampler.cpp:70)
9   com.apple.WebCore             	0x00000005526ca72d WebCore::SincResampler::consumeSource(float*, unsigned int) + 349 (SincResampler.cpp:203)
10  com.apple.WebCore             	0x00000005526cb4e8 WebCore::SincResampler::process(WebCore::AudioSourceProvider*, float*, unsigned long) + 3240 (SincResampler.cpp:524)
11  com.apple.WebCore             	0x00000005526a69e7 WebCore::MultiChannelResampler::process(WebCore::AudioSourceProvider*, WebCore::AudioBus*, unsigned long) + 279 (MultiChannelResampler.cpp:120)
12  com.apple.WebCore             	0x00000005526d174a WebCore::AudioDestinationCocoa::renderOnRenderingThead(unsigned long) + 154 (AudioDestinationCocoa.cpp:217)
13  com.apple.WebCore             	0x00000005526d1440 WebCore::AudioDestinationCocoa::render(double, unsigned long long, unsigned int, AudioBufferList*) + 528 (AudioDestinationCocoa.cpp:207)
14  com.apple.WebCore             	0x00000005526d1a54 WebCore::AudioOutputUnitAdaptor::inputProc(void*, unsigned int*, AudioTimeStamp const*, unsigned int, unsigned int, AudioBufferList*) + 132 (AudioOutputUnitAdaptor.cpp:69)

Reported by @JackSchaedler on Twitter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709529</commentid>
    <comment_count>1</comment_count>
      <attachid>414692</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 10:05:06 -0800</bug_when>
    <thetext>Created attachment 414692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709595</commentid>
    <comment_count>2</comment_count>
      <attachid>414692</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-20 12:33:54 -0800</bug_when>
    <thetext>Comment on attachment 414692
Patch

r=me

Does this mean we can remove the thread check before we take the JS lock?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709597</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 12:36:40 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #2)
&gt; Comment on attachment 414692 [details]
&gt; Patch
&gt; 
&gt; r=me
&gt; 
&gt; Does this mean we can remove the thread check before we take the JS lock?

I will double check but I do not believe so. Until the worklet is ready, handlePreRenderTask() and process() will get called on a non-worklet thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709602</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-20 12:48:46 -0800</bug_when>
    <thetext>Committed r270127: &lt;https://trac.webkit.org/changeset/270127&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414692.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709603</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-20 12:49:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/71638769&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414692</attachid>
            <date>2020-11-20 10:05:06 -0800</date>
            <delta_ts>2020-11-20 13:38:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219209-20201120100505.patch</filename>
            <type>text/plain</type>
            <size>14662</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY5YjZhZjMyMTk1MDgy
ZGIwNDQyZTA4NDMyNThjZDUxZDA1ZjkwYi4uZmJlZGVjZmZmOTY4ZjNhZGExM2FiZjBiYmEzNjk0
NDM3OTUxYjgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTExLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yOjpwcm9jZXNzKCkgbWF5IGdldCBjYWxsZWQgb24gbm9uLWF1ZGlvIHdvcmtsZXQgdGhyZWFk
IGFuZCBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5MjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSWYgdGhlIEF1ZGlvQ29udGV4dCBpcyBhbHJlYWR5IHJ1bm5pbmcgd2hlbiB0aGUgQXVkaW9X
b3JrbGV0IGJlY29tZXMgcmVhZHksIHRoZW4gdGhlCisgICAgICAgIEF1ZGlvV29ya2xldE5vZGU6
OnByb2Nlc3MoKSB3YXMgZ2V0dGluZyBjYWxsZWQgb24gdGhlIENvcmVBdWRpbyByZW5kZXJpbmcg
dGhyZWFkIGluc3RlYWQKKyAgICAgICAgb2YgdGhlIEF1ZGlvV29ya2xldCB0aHJlYWQuIFRoaXMg
d2FzIGNhdXNpbmcgdXMgdG8gcnVuIHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IncyBKUworICAg
ICAgICBvbiB0aGUgd3JvbmcgdGhyZWFkLCB3aGljaCB3b3VsZCBjYXVzZSBmbGFreSBjcmFzaGVz
IGluIHJlbGVhc2UgYW5kIGFzc2VydGlvbiBoaXRzIGluCisgICAgICAgIGRlYnVnLgorCisgICAg
ICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIHVwZGF0ZWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJv
Y2VzcygpIHRvIG91dHB1dCBzaWxlbmNlIHdoZW4KKyAgICAgICAgaXQgaXMgY2FsbGVkIG9uIGFu
b3RoZXIgdGhyZWFkIHRoYW4gdGhlIEF1ZGlvV29ya2xldCB0aHJlYWQuIEFsc28sIGlmIHRoZSBB
dWRpb0NvbnRleHQKKyAgICAgICAgaXMgYWxyZWFkeSBydW5uaW5nIHdoZW4gdGhlIEF1ZGlvV29y
a2xldCBiZWNvbWVzIHJlYWR5LCB3ZSBuZWVkIHRvIHJlc3RhcnQgdGhlCisgICAgICAgIEF1ZGlv
RGVzdGluYXRpb24gc28gdGhhdCB3ZSBzd2l0Y2ggdGhlIGF1ZGlvIHJlbmRlcmluZyBmcm9tIHRo
ZSBDb3JlQXVkaW8gcmVuZGVyaW5nCisgICAgICAgIHRocmVhZCB0byB0aGUgQXVkaW9Xb3JrbGV0
IHRocmVhZC4KKworICAgICAgICBUZXN0OiBodHRwL3dwdC93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2NvbnRleHQtYWxyZWFkeS1yZW5kZXJpbmcuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3RhcnRSZW5kZXJpbmcp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjppc1dvcmtsZXRUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRl
eHQ6OmFkZEF1ZGlvUGFyYW1EZXNjcmlwdG9ycyk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVk
aW9Db250ZXh0Ojp3b3JrbGV0SXNSZWFkeSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjp1bmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZXN0YXJ0UmVuZGVyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50KToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5o
OgorCiAyMDIwLTExLTIwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBNb3ZlIGhvcml6b250YWwgc3BhY2UgdHJhY2tpbmcgZnJvbSBMaW5lIHRv
IExpbmVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXggNDEyMDdlNWFhYTQwNGEyMzAwOTAxNjZkOTA2
OGM5NTM5ZTRiYTg0ZS4uNTQwM2ZhZWFjY2Y1ZTQ4ZTM3NTYxZmUyMzhmZWMwMGI4YjM1MDY0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0
aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbk5vZGUuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihX
VEY6Om51bGxvcHQpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHJlc3RhcnRSZW5kZXJpbmcoKSB7IH0KIAogICAgIHZpcnR1YWwgYm9v
bCBpc1BsYXlpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgaXNQbGF5aW5nRGlkQ2hh
bmdlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmNwcAppbmRleCA4ZjFhZjAyNTFjN2MzZjk4YjBjMDk2ODI4ZTAz
ZjUwOTVkMTdmNzg3Li5kMTA5YTY1ODE2ZmI1YjUwYTRlNmRhZTYzZTFlZTlkNmVkZmM4MTk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
Tm9kZS5jcHAKQEAgLTE4Miw2ICsxODIsNyBAQCB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnNldFBy
b2Nlc3NvcihSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiYmIHByb2Nlc3NvcikKICAgICBp
ZiAocHJvY2Vzc29yKSB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNz
TG9jayk7CiAgICAgICAgIG1fcHJvY2Vzc29yID0gV1RGTW92ZShwcm9jZXNzb3IpOworICAgICAg
ICBtX3dvcmtsZXRUaHJlYWQgPSAmVGhyZWFkOjpjdXJyZW50KCk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIGZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZChQcm9jZXNzb3JFcnJvcjo6Q29uc3Ry
dWN0b3JFcnJvcik7CiB9CkBAIC0xOTEsNyArMTkyLDcgQEAgdm9pZCBBdWRpb1dvcmtsZXROb2Rl
Ojpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7CiAKICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwot
ICAgIGlmICghbG9ja2VyIHx8ICFtX3Byb2Nlc3NvcikgeworICAgIGlmICghbG9ja2VyIHx8ICFt
X3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkgIT0gbV93b3JrbGV0VGhyZWFkKSB7CiAg
ICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVzdHJveWVk
LiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKICAgICAgICAgICAgIG91dHB1dChp
KS0+YnVzKCktPnplcm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmgKaW5kZXggOWM4ODc1MWUzYzY4MDY0MWRkM2QwYjQ2M2E1ODVm
ODU5YjA5YzI3My4uMjQwYzQ1Y2ZhOGU1Yzk5NzljNGQ2NWJlZjdhZWE0ZTU5ZjNmNjVjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBMb2NrIG1fcHJvY2Vzc0xvY2s7CiAg
ICAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gbV9wcm9jZXNzb3I7IC8vIFNob3VsZCBv
bmx5IGJlIHVzZWQgb24gdGhlIHJlbmRlcmluZyB0aHJlYWQuCiAgICAgSGFzaE1hcDxTdHJpbmcs
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiBtX3BhcmFtVmFsdWVzTWFwOworICAg
IFRocmVhZCogbV93b3JrbGV0VGhyZWFkIHsgbnVsbHB0ciB9OwogCiAgICAgLy8gS2VlcHMgdGhl
IHJlZmVyZW5jZSBvZiBBdWRpb0J1cyBvYmplY3RzIGZyb20gQXVkaW9Ob2RlSW5wdXQgYW5kIEF1
ZGlvTm9kZU91dHB1dCBpbiBvcmRlcgogICAgIC8vIHRvIHBhc3MgdGhlbSB0byBBdWRpb1dvcmts
ZXRQcm9jZXNzb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCA5MDc2YzkyNzk5OTgxOTQ5ODkyMjJmM2NjYmJlNTE3
Y2FmMjAwNTY1Li5iMGE3MmFmZGY0YTRmMTZlMzhiM2YzY2FhNTIyN2I2OTNhZmMzZmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAKQEAgLTEwNDAsNyArMTA0MCwxMCBAQCBQZXJpb2RpY1dhdmUmIEJhc2VBdWRpb0NvbnRl
eHQ6OnBlcmlvZGljV2F2ZShPc2NpbGxhdG9yVHlwZSB0eXBlKQogdm9pZCBCYXNlQXVkaW9Db250
ZXh0OjphZGRBdWRpb1BhcmFtRGVzY3JpcHRvcnMoY29uc3QgU3RyaW5nJiBwcm9jZXNzb3JOYW1l
LCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+JiYgZGVzY3JpcHRvcnMpCiB7CiAgICAgQVNT
RVJUKCFtX3BhcmFtZXRlckRlc2NyaXB0b3JNYXAuY29udGFpbnMocHJvY2Vzc29yTmFtZSkpOwor
ICAgIGJvb2wgd2FzRW1wdHkgPSBtX3BhcmFtZXRlckRlc2NyaXB0b3JNYXAuaXNFbXB0eSgpOwog
ICAgIG1fcGFyYW1ldGVyRGVzY3JpcHRvck1hcC5hZGQocHJvY2Vzc29yTmFtZSwgV1RGTW92ZShk
ZXNjcmlwdG9ycykpOworICAgIGlmICh3YXNFbXB0eSkKKyAgICAgICAgd29ya2xldElzUmVhZHko
KTsKIH0KIAogdm9pZCBCYXNlQXVkaW9Db250ZXh0Ojpzb3VyY2VOb2RlV2lsbEJlZ2luUGxheWJh
Y2soQXVkaW9Ob2RlJiBub2RlKQpAQCAtMTA1NSw2ICsxMDU4LDE2IEBAIHZvaWQgQmFzZUF1ZGlv
Q29udGV4dDo6c291cmNlTm9kZURpZEZpbmlzaFBsYXliYWNrKEF1ZGlvTm9kZSYgbm9kZSkKICAg
ICBtX2ZpbmlzaGVkU291cmNlTm9kZXMuYXBwZW5kKCZub2RlKTsKIH0KIAordm9pZCBCYXNlQXVk
aW9Db250ZXh0Ojp3b3JrbGV0SXNSZWFkeSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKworICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgcmVuZGVyaW5nIHdoZW4gdGhlIHdvcmtsZXQg
YmVjb21lcyByZWFkeSwgd2UgbmVlZCB0byByZXN0YXJ0CisgICAgLy8gcmVuZGVyaW5nIGluIG9y
ZGVyIHRvIHN3aXRjaCB0byB0aGUgYXVkaW8gd29ya2xldCB0aHJlYWQuCisgICAgaWYgKG1fZGVz
dGluYXRpb25Ob2RlKQorICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZS0+cmVzdGFydFJlbmRlcmlu
ZygpOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsJiBCYXNl
QXVkaW9Db250ZXh0Ojpsb2dDaGFubmVsKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggYjE5MzQwZmU5NjI4
NjBlZTk4NTA3NmY1MmVkYjQ0ODIxMDFlZjkzNi4uNzk4MjJkZjY1ZjVkYTMxYmI2MWQ3ZjEzYjk5
MTgyMWEwOTIxZTdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTMxNyw2ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgY2xlYXIoKTsKIAogICAgIHZvaWQgc2NoZWR1bGVOb2RlRGVsZXRpb24oKTsKKyAgICB2b2lk
IHdvcmtsZXRJc1JlYWR5KCk7CiAKICAgICAvLyBXaGVuIHNvdXJjZSBub2RlcyBiZWdpbiBwbGF5
aW5nLCB0aGUgQmFzZUF1ZGlvQ29udGV4dCBrZWVwcyB0aGVtIGFsaXZlIGluc2lkZSBtX3JlZmVy
ZW5jZWRTb3VyY2VOb2Rlcy4KICAgICAvLyBXaGVuIHRoZSBub2RlcyBzdG9wIHBsYXlpbmcsIHRo
ZXkgZ2V0IGFkZGVkIHRvIG1fZmluaXNoZWRTb3VyY2VOb2Rlcy4gQWZ0ZXIgZWFjaCByZW5kZXJp
bmcgcXVhbnR1bSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA2ZGM5ZDIwZjVi
NmMyZGVjNDQ0ZGJhYWM0MmE3ZTcxZDZkMGI2ZmQyLi45OWE3NWY0NmY5OWI5MDQ2ZWFjYmNmMjM1
NjI2OTE1ZjE4ZDYzYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC03NSw2
ICs3NSw3IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjp1bmluaXRpYWxpemUo
KQogICAgICAgICByZXR1cm47CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAg
IG1fd2FzRGVzdGluYXRpb25TdGFydGVkID0gZmFsc2U7CiAgICAgbV9kZXN0aW5hdGlvbi0+c3Rv
cCgpOwogICAgIG1fZGVzdGluYXRpb24gPSBudWxscHRyOwogICAgIG1fbnVtYmVyT2ZJbnB1dENo
YW5uZWxzID0gMDsKQEAgLTEyOCw2ICsxMjksNyBAQCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbAog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZXNzID8gV1RGOjpudWxsb3B0IDogbWFrZU9w
dGlvbmFsKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHN0YXJ0IHRo
ZSBhdWRpbyBkZXZpY2UiX3MgfSkpOwogICAgIH07CiAKKyAgICBtX3dhc0Rlc3RpbmF0aW9uU3Rh
cnRlZCA9IHRydWU7CiAgICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZEZ1bmN0aW9uKCksIFdURk1vdmUoaW5uZXJDb21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBA
IC0xNDAsNiArMTQyLDcgQEAgdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3Vt
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGkKICAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CisgICAgbV93YXNEZXN0aW5hdGlvblN0YXJ0ZWQgPSB0cnVl
OwogICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlv
bigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9v
bCBzdWNjZXNzKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3VjY2VzcyA/
IFdURjo6bnVsbG9wdCA6IG1ha2VPcHRpb25hbChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkZhaWxlZCB0byBzdGFydCB0aGUgYXVkaW8gZGV2aWNlIl9zIH0pKTsKICAgICB9KTsKQEAg
LTE1NSwxMSArMTU4LDIxIEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdXNw
ZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKKyAgICBtX3dhc0Rlc3RpbmF0aW9uU3RhcnRlZCA9IGZhbHNlOwogICAgIG1f
ZGVzdGluYXRpb24tPnN0b3AoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHN1Y2Nlc3MgPyBXVEY6Om51bGxvcHQgOiBtYWtlT3B0aW9uYWwoRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gc3RvcCB0aGUgYXVkaW8gZGV2aWNlIl9zIH0pKTsK
ICAgICB9KTsKIH0KIAordm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3RhcnRS
ZW5kZXJpbmcoKQoreworICAgIGlmICghbV93YXNEZXN0aW5hdGlvblN0YXJ0ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZGVzdGluYXRpb24tPnN0b3AoKTsKKyAgICBtX2Rlc3RpbmF0aW9u
LT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7Cit9CisKIHZvaWQgRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjbG9zZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7CkBA
IC0xOTEsOSArMjA0LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkIGNoYW5uZWxDCiAKICAgICBpZiAodGhp
cy0+Y2hhbm5lbENvdW50KCkgIT0gb2xkQ2hhbm5lbENvdW50ICYmIGlzSW5pdGlhbGl6ZWQoKSkg
ewogICAgICAgICAvLyBSZS1jcmVhdGUgZGVzdGluYXRpb24uCi0gICAgICAgIG1fZGVzdGluYXRp
b24tPnN0b3AoKTsKKyAgICAgICAgaWYgKG1fd2FzRGVzdGluYXRpb25TdGFydGVkKQorICAgICAg
ICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigp
OwotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVu
Y3Rpb24oKSk7CisgICAgICAgIGlmIChtX3dhc0Rlc3RpbmF0aW9uU3RhcnRlZCkKKyAgICAgICAg
ICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigp
KTsKICAgICB9CiAKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5k
ZXggM2ZjNjJjMWZhZTJiYTYyYjQ5YjQ3NjEyNmJmNTdkNjVhOGYxZTdlYy4uMzZkYjUyYjViODM2
ZDk0NzE1MmI0ZjA3NTM3ZTMxMWI3NDg3MWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5o
CkBAIC01OSwxMSArNTksMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuYWJsZUlucHV0KGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCkgZmluYWw7CiAgICAgdm9pZCByZXN1bWUoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lk
IHN1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYm
KSBmaW5hbDsKKyAgICB2b2lkIHJlc3RhcnRSZW5kZXJpbmcoKSBmaW5hbDsKICAgICB2b2lkIGNs
b3NlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdW5zaWduZWQgbWF4
Q2hhbm5lbENvdW50KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBmaW5hbDsK
IAogICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIGJvb2wg
bV93YXNEZXN0aW5hdGlvblN0YXJ0ZWQgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX2lucHV0RGV2
aWNlSWQ7CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgeyAwIH07CiB9Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDAxZjE2N2I5M2Q1MDQzMmUwNWUxMWU5ZTVhZjc5MmM2YTJiYTk4OTYuLmM0NGE4YjYy
ZmM3MjY2OGFiZmQzZjA1N2M1NWNkMGQzNmMxYTExYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAyMC0xMS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF1
ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2VzcygpIG1heSBnZXQgY2FsbGVkIG9uIG5vbi1hdWRp
byB3b3JrbGV0IHRocmVhZCBhbmQgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxOTIwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAq
IGh0dHAvd3B0L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvY29udGV4dC1hbHJlYWR5LXJlbmRlcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvY29udGV4dC1hbHJlYWR5LXJlbmRlcmluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3dwdC93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNl
L3Byb2Nlc3NvcnMvYmFzaWMtcHJvY2Vzc29yLmpzOiBBZGRlZC4KKyAgICAgICAgKEJhc2ljUHJv
Y2Vzc29yLnByb3RvdHlwZS5wcm9jZXNzKToKKyAgICAgICAgKEJhc2ljUHJvY2Vzc29yKToKKwog
MjAyMC0xMS0yMCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzAwNzAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2Nv
bnRleHQtYWxyZWFkeS1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9jb250
ZXh0LWFscmVhZHktcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWIzODg1N2Uy
YjI3ODIxNDlhZDg4YTIxMGQ4YzIwOWU4YjNjNjUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9jb250ZXh0LWFscmVhZHktcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBQYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2gKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9jb250ZXh0LWFscmVhZHktcmVuZGVyaW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJm
YWNlL2NvbnRleHQtYWxyZWFkeS1yZW5kZXJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWM0NzM2YjY5
ODI4NzU0ZjQ5MmQ5YjgyOTNjMzhhNWFlYTFiZDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9jb250ZXh0LWFscmVhZHktcmVuZGVyaW5nLmh0bWwKQEAgLTAsMCArMSwzMiBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+TWFrZSBzdXJlIHdlIGRvbid0IGNyYXNoIGlmIHRoZSBB
dWRpb1dvcmtsZXQgZ2V0cyBjb25zdHJ1Y3RlZCB3aGlsZSB0aGUgQXVkaW9Db250ZXh0IGlzIGFs
cmVhZHkgcmVuZGVyaW5nLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgY29udGV4dDsKK3Byb21pc2Vfc2V0dXAoYXN5
bmMgKHQpID0+IHsKKyAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKKyAgaW50ZXJuYWxz
LndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICBjb250ZXh0LnJlc3VtZSgpOworICB9KTsK
KworICBjb25zdCBmaWxlUGF0aCA9ICdwcm9jZXNzb3JzL2Jhc2ljLXByb2Nlc3Nvci5qcyc7Cisg
IGF3YWl0IGNvbnRleHQuYXVkaW9Xb3JrbGV0LmFkZE1vZHVsZShmaWxlUGF0aCk7Cit9KTsKKwor
Y29uc3Qgd2FpdF9mb3JfYXVkaW93b3JrbGV0X3JlbmRlcmluZyA9IGFzeW5jIChub2RlKSA9PiB7
CisgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgbm9kZS5wb3J0Lm9ubWVz
c2FnZSA9IHJlc29sdmU7CisgIH0pOworfTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CisgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgbnVtYmVyT2ZJbnB1dHM6IDAsCisgICAgbnVtYmVy
T2ZPdXRwdXRzOiAxCisgIH07CisKKyAgY29uc3Qgbm9kZSA9IG5ldyBBdWRpb1dvcmtsZXROb2Rl
KGNvbnRleHQsICdiYXNpYy1wcm9jZXNzb3InLCBvcHRpb25zKTsKKyAgYXdhaXQgd2FpdF9mb3Jf
YXVkaW93b3JrbGV0X3JlbmRlcmluZyhub2RlKTsKK30sICdQYXNzZXMgaWYgaXQgZG9lcyBub3Qg
Y3Jhc2gnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzb3Jz
L2Jhc2ljLXByb2Nlc3Nvci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29ycy9iYXNpYy1wcm9j
ZXNzb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYyZWFiZTdiYjc3YjAyNzI4ZTIxNWVmMzM4NDFlYTU4OTli
MWUzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29ycy9iYXNpYy1w
cm9jZXNzb3IuanMKQEAgLTAsMCArMSw4IEBACitjbGFzcyBCYXNpY1Byb2Nlc3NvciBleHRlbmRz
IEF1ZGlvV29ya2xldFByb2Nlc3NvciB7CisgIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzKSB7Cisg
ICAgdGhpcy5wb3J0LnBvc3RNZXNzYWdlKCJkaWQgcmVuZGVyaW5nIik7CisgICAgcmV0dXJuIGZh
bHNlOworICB9Cit9CisKK3JlZ2lzdGVyUHJvY2Vzc29yKCdiYXNpYy1wcm9jZXNzb3InLCBCYXNp
Y1Byb2Nlc3Nvcik7Cg==
</data>
<flag name="commit-queue"
          id="431680"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>