<?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>235503</bug_id>
          
          <creation_ts>2022-01-24 01:33:42 -0800</creation_ts>
          <short_desc>Pass the Document through bindings to KeyframeEffect::setKeyframes()</short_desc>
          <delta_ts>2022-01-24 11:09:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833217</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-24 01:33:42 -0800</bug_when>
    <thetext>Pass the Document through bindings to KeyframeEffect::setKeyframes()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833220</commentid>
    <comment_count>1</comment_count>
      <attachid>449790</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-24 01:41:15 -0800</bug_when>
    <thetext>Created attachment 449790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833355</commentid>
    <comment_count>2</comment_count>
      <attachid>449790</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-01-24 09:07:02 -0800</bug_when>
    <thetext>Comment on attachment 449790
Patch

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

&gt; Source/WebCore/animation/KeyframeEffect.cpp:210
&gt; -        auto* scriptExecutionContext = jsCast&lt;JSDOMGlobalObject*&gt;(&amp;lexicalGlobalObject)-&gt;scriptExecutionContext();
&gt; -        if (is&lt;Document&gt;(scriptExecutionContext)) {
&gt; -            if (downcast&lt;Document&gt;(*scriptExecutionContext).settings().webAnimationsCompositeOperationsEnabled())
&gt; -                baseProperties.composite = baseKeyframe.composite;
&gt; -        }
&gt; +        if (document.settings().webAnimationsCompositeOperationsEnabled())
&gt; +            baseProperties.composite = baseKeyframe.composite;

This seems right, but in future, you can actually get settings directly from the ScriptExecutionContext via the settingsValues() accessor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833380</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-24 10:34:56 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 449790 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449790&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:210
&gt; &gt; -        auto* scriptExecutionContext = jsCast&lt;JSDOMGlobalObject*&gt;(&amp;lexicalGlobalObject)-&gt;scriptExecutionContext();
&gt; &gt; -        if (is&lt;Document&gt;(scriptExecutionContext)) {
&gt; &gt; -            if (downcast&lt;Document&gt;(*scriptExecutionContext).settings().webAnimationsCompositeOperationsEnabled())
&gt; &gt; -                baseProperties.composite = baseKeyframe.composite;
&gt; &gt; -        }
&gt; &gt; +        if (document.settings().webAnimationsCompositeOperationsEnabled())
&gt; &gt; +            baseProperties.composite = baseKeyframe.composite;
&gt; 
&gt; This seems right, but in future, you can actually get settings directly from
&gt; the ScriptExecutionContext via the settingsValues() accessor.

Good to know! This patch could have just passed the ScriptExecutionContext in then, but as it turns out we also needed a Document further down to establish a CSSParserContext so it turned out to be handy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833382</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-24 10:41:33 -0800</bug_when>
    <thetext>Committed r288452 (246341@trunk): &lt;https://commits.webkit.org/246341@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833383</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-24 10:42:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/87978492&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833394</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-24 11:09:28 -0800</bug_when>
    <thetext>Committed r288454 (246343@trunk): &lt;https://commits.webkit.org/246343@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449790</attachid>
            <date>2022-01-24 01:41:15 -0800</date>
            <delta_ts>2022-01-24 09:07:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235503-20220124104114.patch</filename>
            <type>text/plain</type>
            <size>16804</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdmZDk3MzFiZTZmYjVl
ZWJiYWZhNDY5ZDAyNjE1YWU0NGNmZTRkOC4uZTUyYmRkMTVkYWUxNDBjZDYxYzIwOTkyOWI0ODE5
YWM3YTcyMDE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAxLTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFBhc3MgdGhlIERvY3Vt
ZW50IHRocm91Z2ggYmluZGluZ3MgdG8gS2V5ZnJhbWVFZmZlY3Q6OnNldEtleWZyYW1lcygpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU1MDMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSdyZSBtYWtp
bmcgYSBzaW1pbGFyIGNoYW5nZSBhcyBwYXJ0IG9mIGJ1ZyAyMzIwODYgZm9yIGdldEtleWZyYW1l
cygpCisgICAgICAgIGFmdGVyIGEgc3VnZ2VzdGlvbiBmcm9tIERhcmluIGR1cmluZyByZXZpZXcu
IFNpbmNlIHRoZSBiaW5kaW5ncyBjb2RlCisgICAgICAgIGNhbiBndWFyYW50ZWUgYSBEb2N1bWVu
dCBmb3IgdGhlc2UgYmluZGluZ3MtZXhwb3NlZCBtZXRob2RzLCB3ZSBtaWdodAorICAgICAgICBh
cyB3ZWxsIHVzZSBpdCByYXRoZXIgdGhhbiBvYnRhaW4gdGhlIERvY3VtZW50IHRocm91Z2ggdGhl
IGdsb2JhbCBvYmplY3QuCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc0tleWZyYW1lTGlrZU9iamVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpwcm9jZXNzSXRlcmFibGVLZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
cHJvY2Vzc1Byb3BlcnR5SW5kZXhlZEtleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpLZXlm
cmFtZUVmZmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojpz
ZXRCaW5kaW5nc0tleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6
c2V0S2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojpwcm9jZXNz
S2V5ZnJhbWVzKToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAg
ICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaWRsOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmFuaW1hdGUpOgorCiAyMDIyLTAxLTIz
ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgUG9zaXRp
b246Zml4ZWQgbGF5ZXJzIHNob3VsZG4ndCBhbGxvY2F0ZSBhIGJhY2tpbmcgYnVmZmVyIGlmIGFs
bCBjaGlsZHJlbiBhcmUgb2Zmc2NyZWVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdC5jcHAKaW5kZXggNGMyYmMwMjExMDFlMzdjYWE0NTMyNDc0M2Q1NjZmMDhhOTQy
MDA2OS4uNzUzNGFiYjliMWM0ZDNkMzUxZjUxNjkzNzNjYWM2OTdlZTg0MGNkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC0xNjksNyArMTY5LDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIGNvbXB1dGVNaXNzaW5nS2V5ZnJhbWVPZmZzZXRzKFZlY3Rv
cjxLZXlmcmFtZUVmZmVjdDo6UGFyc2VkS2UKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhj
ZXB0aW9uT3I8S2V5ZnJhbWVFZmZlY3Q6OktleWZyYW1lTGlrZU9iamVjdD4gcHJvY2Vzc0tleWZy
YW1lTGlrZU9iamVjdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgU3Ryb25n
PEpTT2JqZWN0PiYmIGtleWZyYW1lc0lucHV0LCBib29sIGFsbG93TGlzdHMpCitzdGF0aWMgaW5s
aW5lIEV4Y2VwdGlvbk9yPEtleWZyYW1lRWZmZWN0OjpLZXlmcmFtZUxpa2VPYmplY3Q+IHByb2Nl
c3NLZXlmcmFtZUxpa2VPYmplY3QoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IERvY3VtZW50JiBkb2N1bWVudCwgU3Ryb25nPEpTT2JqZWN0PiYmIGtleWZyYW1lc0lucHV0LCBi
b29sIGFsbG93TGlzdHMpCiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL3dlYi1h
bmltYXRpb25zLTEvI3Byb2Nlc3MtYS1rZXlmcmFtZS1saWtlLW9iamVjdAogCkBAIC0yMDYsMTEg
KzIwNiw4IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8S2V5ZnJhbWVFZmZlY3Q6OktleWZy
YW1lTGlrZU9iamVjdD4gcHJvY2Vzc0tleWZyYW1lTGlrCiAgICAgICAgICAgICBiYXNlUHJvcGVy
dGllcy5vZmZzZXQgPSBudWxscHRyOwogICAgICAgICBiYXNlUHJvcGVydGllcy5lYXNpbmcgPSBi
YXNlS2V5ZnJhbWUuZWFzaW5nOwogCi0gICAgICAgIGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICAgICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KSkgewotICAgICAgICAgICAgaWYgKGRvd25jYXN0PERvY3VtZW50Pigq
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkuc2V0dGluZ3MoKS53ZWJBbmltYXRpb25zQ29tcG9zaXRl
T3BlcmF0aW9uc0VuYWJsZWQoKSkKLSAgICAgICAgICAgICAgICBiYXNlUHJvcGVydGllcy5jb21w
b3NpdGUgPSBiYXNlS2V5ZnJhbWUuY29tcG9zaXRlOwotICAgICAgICB9CisgICAgICAgIGlmIChk
b2N1bWVudC5zZXR0aW5ncygpLndlYkFuaW1hdGlvbnNDb21wb3NpdGVPcGVyYXRpb25zRW5hYmxl
ZCgpKQorICAgICAgICAgICAgYmFzZVByb3BlcnRpZXMuY29tcG9zaXRlID0gYmFzZUtleWZyYW1l
LmNvbXBvc2l0ZTsKICAgICB9CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0
aW9uIHsgVHlwZUVycm9yIH0pOwogCkBAIC0yODIsMTIgKzI3OSw4IEBAIHN0YXRpYyBpbmxpbmUg
RXhjZXB0aW9uT3I8S2V5ZnJhbWVFZmZlY3Q6OktleWZyYW1lTGlrZU9iamVjdD4gcHJvY2Vzc0tl
eWZyYW1lTGlrCiAgICAgcmV0dXJuIHsgV1RGTW92ZShrZXlmcmFtZU91cHV0KSB9OwogfQogCi1z
dGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHZvaWQ+IHByb2Nlc3NJdGVyYWJsZUtleWZyYW1lcyhK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgU3Ryb25nPEpTT2JqZWN0PiYmIGtl
eWZyYW1lc0lucHV0LCBKU1ZhbHVlIG1ldGhvZCwgVmVjdG9yPEtleWZyYW1lRWZmZWN0OjpQYXJz
ZWRLZXlmcmFtZT4mIHBhcnNlZEtleWZyYW1lcykKK3N0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8
dm9pZD4gcHJvY2Vzc0l0ZXJhYmxlS2V5ZnJhbWVzKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBEb2N1bWVudCYgZG9jdW1lbnQsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFt
ZXNJbnB1dCwgSlNWYWx1ZSBtZXRob2QsIFZlY3RvcjxLZXlmcmFtZUVmZmVjdDo6UGFyc2VkS2V5
ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMpCiB7Ci0gICAgYXV0byogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghaXM8RG9jdW1lbnQ+KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGF1dG8mIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBDU1NQ
YXJzZXJDb250ZXh0IHBhcnNlckNvbnRleHQoZG9jdW1lbnQpOwogCiAgICAgLy8gMS4gTGV0IGl0
ZXIgYmUgR2V0SXRlcmF0b3Iob2JqZWN0LCBtZXRob2QpLgpAQCAtMzAxLDcgKzI5NCw3IEBAIHN0
YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc0l0ZXJhYmxlS2V5ZnJhbWVzKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAKICAgICAgICAgLy8gNy4gQXBwZW5kIHRvIHByb2Nlc3Nl
ZCBrZXlmcmFtZXMgdGhlIHJlc3VsdCBvZiBydW5uaW5nIHRoZSBwcm9jZWR1cmUgdG8gcHJvY2Vz
cyBhIGtleWZyYW1lLWxpa2Ugb2JqZWN0IHBhc3NpbmcgbmV4dEl0ZW0KICAgICAgICAgLy8gYXMg
dGhlIGtleWZyYW1lIGlucHV0IGFuZCB3aXRoIHRoZSBhbGxvdyBsaXN0cyBmbGFnIHNldCB0byBm
YWxzZS4KLSAgICAgICAgYXV0byBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0UmVzdWx0ID0gcHJv
Y2Vzc0tleWZyYW1lTGlrZU9iamVjdChsZXhpY2FsR2xvYmFsT2JqZWN0LCBTdHJvbmc8SlNPYmpl
Y3Q+KHZtLCBuZXh0VmFsdWUudG9PYmplY3QoJmxleGljYWxHbG9iYWxPYmplY3QpKSwgZmFsc2Up
OworICAgICAgICBhdXRvIHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3RSZXN1bHQgPSBwcm9jZXNz
S2V5ZnJhbWVMaWtlT2JqZWN0KGxleGljYWxHbG9iYWxPYmplY3QsIGRvY3VtZW50LCBTdHJvbmc8
SlNPYmplY3Q+KHZtLCBuZXh0VmFsdWUudG9PYmplY3QoJmxleGljYWxHbG9iYWxPYmplY3QpKSwg
ZmFsc2UpOwogICAgICAgICBpZiAocHJvY2Vzc0tleWZyYW1lTGlrZU9iamVjdFJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0
UmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgYXV0byBrZXlmcmFtZUxpa2VPYmpl
Y3QgPSBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0UmVzdWx0LnJldHVyblZhbHVlKCk7CkBAIC0z
NDUsMTggKzMzOCwxNCBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHZvaWQ+IHByb2Nlc3NJ
dGVyYWJsZUtleWZyYW1lcyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJldHVybiB7IH07
CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc1Byb3BlcnR5SW5k
ZXhlZEtleWZyYW1lcyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgU3Ryb25n
PEpTT2JqZWN0PiYmIGtleWZyYW1lc0lucHV0LCBWZWN0b3I8S2V5ZnJhbWVFZmZlY3Q6OlBhcnNl
ZEtleWZyYW1lPiYgcGFyc2VkS2V5ZnJhbWVzLCBWZWN0b3I8U3RyaW5nPiYgdW51c2VkRWFzaW5n
cykKK3N0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc1Byb3BlcnR5SW5kZXhl
ZEtleWZyYW1lcyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRG9jdW1lbnQm
IGRvY3VtZW50LCBTdHJvbmc8SlNPYmplY3Q+JiYga2V5ZnJhbWVzSW5wdXQsIFZlY3RvcjxLZXlm
cmFtZUVmZmVjdDo6UGFyc2VkS2V5ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMsIFZlY3RvcjxTdHJp
bmc+JiB1bnVzZWRFYXNpbmdzKQogewogICAgIC8vIDEuIExldCBwcm9wZXJ0eS1pbmRleGVkIGtl
eWZyYW1lIGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyB0aGUgcHJvY2VkdXJlIHRvIHByb2Nlc3Mg
YSBrZXlmcmFtZS1saWtlIG9iamVjdCBwYXNzaW5nIG9iamVjdCBhcyB0aGUga2V5ZnJhbWUgaW5w
dXQuCi0gICAgYXV0byBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0UmVzdWx0ID0gcHJvY2Vzc0tl
eWZyYW1lTGlrZU9iamVjdChsZXhpY2FsR2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGtleWZyYW1lc0lu
cHV0KSwgdHJ1ZSk7CisgICAgYXV0byBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0UmVzdWx0ID0g
cHJvY2Vzc0tleWZyYW1lTGlrZU9iamVjdChsZXhpY2FsR2xvYmFsT2JqZWN0LCBkb2N1bWVudCwg
V1RGTW92ZShrZXlmcmFtZXNJbnB1dCksIHRydWUpOwogICAgIGlmIChwcm9jZXNzS2V5ZnJhbWVM
aWtlT2JqZWN0UmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcHJvY2Vzc0tl
eWZyYW1lTGlrZU9iamVjdFJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgYXV0byBwcm9w
ZXJ0eUluZGV4ZWRLZXlmcmFtZSA9IHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3RSZXN1bHQucmV0
dXJuVmFsdWUoKTsKIAotICAgIGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKLSAgICBpZiAoIWlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0
KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERv
Y3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgQ1NTUGFyc2VyQ29udGV4dCBw
YXJzZXJDb250ZXh0KGRvY3VtZW50KTsKIAogICAgIC8vIDIuIEZvciBlYWNoIG1lbWJlciwgbSwg
aW4gcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZSwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBz
OgpAQCAtNDk0LDcgKzQ4Myw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gcHJv
Y2Vzc1Byb3BlcnR5SW5kZXhlZEtleWZyYW1lcyhKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4g
eyB9OwogfQogCi1FeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBLZXlmcmFtZUVmZmVj
dDo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbGVtZW50KiB0
YXJnZXQsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXMsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2
YXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZlY3RPcHRpb25zPj4mJiBvcHRpb25zKQorRXhjZXB0
aW9uT3I8UmVmPEtleWZyYW1lRWZmZWN0Pj4gS2V5ZnJhbWVFZmZlY3Q6OmNyZWF0ZShKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRG9jdW1lbnQmIGRvY3VtZW50LCBFbGVtZW50
KiB0YXJnZXQsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXMsIHN0ZDo6b3B0aW9uYWw8c3Rk
Ojp2YXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZlY3RPcHRpb25zPj4mJiBvcHRpb25zKQogewog
ICAgIGF1dG8ga2V5ZnJhbWVFZmZlY3QgPSBhZG9wdFJlZigqbmV3IEtleWZyYW1lRWZmZWN0KHRh
cmdldCwgUHNldWRvSWQ6Ok5vbmUpKTsKIApAQCAtNTIyLDEyICs1MTEsOSBAQCBFeGNlcHRpb25P
cjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBLZXlmcmFtZUVmZmVjdDo6Y3JlYXRlKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsRwogICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9ucy5kaXJl
Y3Rpb24KICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgIGF1dG8qIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVj
dCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICAgICAgICAgIGlmIChpczxEb2N1bWVu
dD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZG93bmNh
c3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KS5zZXR0aW5ncygpLndlYkFuaW1h
dGlvbnNDb21wb3NpdGVPcGVyYXRpb25zRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGtleWZyYW1lRWZmZWN0LT5zZXRDb21wb3NpdGUoa2V5ZnJhbWVFZmZlY3RPcHRpb25zLmNvbXBv
c2l0ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0LT5zZXRJdGVyYXRpb25D
b21wb3NpdGUoa2V5ZnJhbWVFZmZlY3RPcHRpb25zLml0ZXJhdGlvbkNvbXBvc2l0ZSk7Ci0gICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkud2ViQW5p
bWF0aW9uc0NvbXBvc2l0ZU9wZXJhdGlvbnNFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBr
ZXlmcmFtZUVmZmVjdC0+c2V0Q29tcG9zaXRlKGtleWZyYW1lRWZmZWN0T3B0aW9ucy5jb21wb3Np
dGUpOworICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0LT5zZXRJdGVyYXRpb25Db21wb3Np
dGUoa2V5ZnJhbWVFZmZlY3RPcHRpb25zLml0ZXJhdGlvbkNvbXBvc2l0ZSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgYXV0byB1cGRhdGVUaW1pbmdSZXN1bHQgPSBrZXlmcmFt
ZUVmZmVjdC0+dXBkYXRlVGltaW5nKHRpbWluZyk7CkBAIC01MzUsMTQgKzUyMSwxNCBAQCBFeGNl
cHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBLZXlmcmFtZUVmZmVjdDo6Y3JlYXRlKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsRwogICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVRpbWluZ1Jlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgfQogCi0gICAgYXV0byBwcm9jZXNzS2V5ZnJhbWVz
UmVzdWx0ID0ga2V5ZnJhbWVFZmZlY3QtPnByb2Nlc3NLZXlmcmFtZXMobGV4aWNhbEdsb2JhbE9i
amVjdCwgV1RGTW92ZShrZXlmcmFtZXMpKTsKKyAgICBhdXRvIHByb2Nlc3NLZXlmcmFtZXNSZXN1
bHQgPSBrZXlmcmFtZUVmZmVjdC0+cHJvY2Vzc0tleWZyYW1lcyhsZXhpY2FsR2xvYmFsT2JqZWN0
LCBkb2N1bWVudCwgV1RGTW92ZShrZXlmcmFtZXMpKTsKICAgICBpZiAocHJvY2Vzc0tleWZyYW1l
c1Jlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHByb2Nlc3NLZXlmcmFtZXNS
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAgICAgcmV0dXJuIGtleWZyYW1lRWZmZWN0Owog
fQogCi1FeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBLZXlmcmFtZUVmZmVjdDo6Y3Jl
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8S2V5ZnJhbWVFZmZlY3Q+JiYgc291cmNlKQor
RXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZmZWN0Pj4gS2V5ZnJhbWVFZmZlY3Q6OmNyZWF0ZShS
ZWY8S2V5ZnJhbWVFZmZlY3Q+JiYgc291cmNlKQogewogICAgIGF1dG8ga2V5ZnJhbWVFZmZlY3Qg
PSBhZG9wdFJlZigqbmV3IEtleWZyYW1lRWZmZWN0KG51bGxwdHIsIFBzZXVkb0lkOjpOb25lKSk7
CiAgICAga2V5ZnJhbWVFZmZlY3QtPmNvcHlQcm9wZXJ0aWVzRnJvbVNvdXJjZShXVEZNb3ZlKHNv
dXJjZSkpOwpAQCAtODAyLDE3ICs3ODgsMTcgQEAgVmVjdG9yPFN0cm9uZzxKU09iamVjdD4+IEtl
eWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBLZXlmcmFtZUVmZmVjdDo6
c2V0QmluZGluZ3NLZXlmcmFtZXMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXNJbnB1dCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEtl
eWZyYW1lRWZmZWN0OjpzZXRCaW5kaW5nc0tleWZyYW1lcyhKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgRG9jdW1lbnQmIGRvY3VtZW50LCBTdHJvbmc8SlNPYmplY3Q+JiYga2V5
ZnJhbWVzSW5wdXQpCiB7Ci0gICAgYXV0byByZXRWYWwgPSBzZXRLZXlmcmFtZXMobGV4aWNhbEds
b2JhbE9iamVjdCwgV1RGTW92ZShrZXlmcmFtZXNJbnB1dCkpOworICAgIGF1dG8gcmV0VmFsID0g
c2V0S2V5ZnJhbWVzKGxleGljYWxHbG9iYWxPYmplY3QsIGRvY3VtZW50LCBXVEZNb3ZlKGtleWZy
YW1lc0lucHV0KSk7CiAgICAgaWYgKCFyZXRWYWwuaGFzRXhjZXB0aW9uKCkgJiYgaXM8Q1NTQW5p
bWF0aW9uPihhbmltYXRpb24oKSkpCiAgICAgICAgIGRvd25jYXN0PENTU0FuaW1hdGlvbj4oKmFu
aW1hdGlvbigpKS5lZmZlY3RLZXlmcmFtZXNXZXJlU2V0VXNpbmdCaW5kaW5ncygpOwogICAgIHJl
dHVybiByZXRWYWw7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEtleWZyYW1lRWZmZWN0OjpzZXRL
ZXlmcmFtZXMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFN0cm9uZzxKU09i
amVjdD4mJiBrZXlmcmFtZXNJbnB1dCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEtleWZyYW1lRWZmZWN0
OjpzZXRLZXlmcmFtZXMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIERvY3Vt
ZW50JiBkb2N1bWVudCwgU3Ryb25nPEpTT2JqZWN0PiYmIGtleWZyYW1lc0lucHV0KQogewotICAg
IGF1dG8gcHJvY2Vzc0tleWZyYW1lc1Jlc3VsdCA9IHByb2Nlc3NLZXlmcmFtZXMobGV4aWNhbEds
b2JhbE9iamVjdCwgV1RGTW92ZShrZXlmcmFtZXNJbnB1dCkpOworICAgIGF1dG8gcHJvY2Vzc0tl
eWZyYW1lc1Jlc3VsdCA9IHByb2Nlc3NLZXlmcmFtZXMobGV4aWNhbEdsb2JhbE9iamVjdCwgZG9j
dW1lbnQsIFdURk1vdmUoa2V5ZnJhbWVzSW5wdXQpKTsKICAgICBpZiAoIXByb2Nlc3NLZXlmcmFt
ZXNSZXN1bHQuaGFzRXhjZXB0aW9uKCkgJiYgYW5pbWF0aW9uKCkpCiAgICAgICAgIGFuaW1hdGlv
bigpLT5lZmZlY3RUaW1pbmdEaWRDaGFuZ2UoKTsKICAgICByZXR1cm4gcHJvY2Vzc0tleWZyYW1l
c1Jlc3VsdDsKQEAgLTgyNSw3ICs4MTEsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjprZXlmcmFt
ZXNSdWxlRGlkQ2hhbmdlKCkKICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IEtleWZyYW1lRWZmZWN0Ojpwcm9jZXNzS2V5ZnJhbWVzKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBTdHJvbmc8SlNPYmplY3Q+JiYga2V5ZnJhbWVzSW5wdXQpCitFeGNl
cHRpb25Pcjx2b2lkPiBLZXlmcmFtZUVmZmVjdDo6cHJvY2Vzc0tleWZyYW1lcyhKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRG9jdW1lbnQmIGRvY3VtZW50LCBTdHJvbmc8SlNP
YmplY3Q+JiYga2V5ZnJhbWVzSW5wdXQpCiB7CiAgICAgLy8gMS4gSWYgb2JqZWN0IGlzIG51bGws
IHJldHVybiBhbiBlbXB0eSBzZXF1ZW5jZSBvZiBrZXlmcmFtZXMuCiAgICAgaWYgKCFrZXlmcmFt
ZXNJbnB1dC5nZXQoKSkKQEAgLTg0NiwxMSArODMyLDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEtl
eWZyYW1lRWZmZWN0Ojpwcm9jZXNzS2V5ZnJhbWVzKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsCiAgICAgLy8gNS4gUGVyZm9ybSB0aGUgc3RlcHMgY29ycmVzcG9uZGluZyB0byB0aGUgZmly
c3QgbWF0Y2hpbmcgY29uZGl0aW9uIGZyb20gYmVsb3csCiAgICAgVmVjdG9yPFN0cmluZz4gdW51
c2VkRWFzaW5nczsKICAgICBpZiAoIW1ldGhvZC5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAgIGF1
dG8gcmV0VmFsID0gcHJvY2Vzc0l0ZXJhYmxlS2V5ZnJhbWVzKGxleGljYWxHbG9iYWxPYmplY3Qs
IFdURk1vdmUoa2V5ZnJhbWVzSW5wdXQpLCBXVEZNb3ZlKG1ldGhvZCksIHBhcnNlZEtleWZyYW1l
cyk7CisgICAgICAgIGF1dG8gcmV0VmFsID0gcHJvY2Vzc0l0ZXJhYmxlS2V5ZnJhbWVzKGxleGlj
YWxHbG9iYWxPYmplY3QsIGRvY3VtZW50LCBXVEZNb3ZlKGtleWZyYW1lc0lucHV0KSwgV1RGTW92
ZShtZXRob2QpLCBwYXJzZWRLZXlmcmFtZXMpOwogICAgICAgICBpZiAocmV0VmFsLmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJldFZhbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byByZXRWYWwgPSBwcm9jZXNzUHJvcGVydHlJbmRleGVk
S2V5ZnJhbWVzKGxleGljYWxHbG9iYWxPYmplY3QsIFdURk1vdmUoa2V5ZnJhbWVzSW5wdXQpLCBw
YXJzZWRLZXlmcmFtZXMsIHVudXNlZEVhc2luZ3MpOworICAgICAgICBhdXRvIHJldFZhbCA9IHBy
b2Nlc3NQcm9wZXJ0eUluZGV4ZWRLZXlmcmFtZXMobGV4aWNhbEdsb2JhbE9iamVjdCwgZG9jdW1l
bnQsIFdURk1vdmUoa2V5ZnJhbWVzSW5wdXQpLCBwYXJzZWRLZXlmcmFtZXMsIHVudXNlZEVhc2lu
Z3MpOwogICAgICAgICBpZiAocmV0VmFsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0
dXJuIHJldFZhbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuaAppbmRleCAyNTQ0MDljOWNhZjQwNzI5M2I4NmIxNDg2MWQ4
OGEzMjVlYTUxZDkwLi44YThkMjc4ZjMxOWZlNDU0ZDEwMTIwMWNjOTBhNzMyYmYyODc3NmJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtNTMsOCArNTMs
OCBAQCBzdHJ1Y3QgUmVzb2x1dGlvbkNvbnRleHQ7CiBjbGFzcyBLZXlmcmFtZUVmZmVjdCA6IHB1
YmxpYyBBbmltYXRpb25FZmZlY3QKICAgICAsIHB1YmxpYyBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZmZWN0
Pj4gY3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBFbGVtZW50KiwgSlNDOjpTdHJvbmc8SlND
OjpKU09iamVjdD4mJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFt
ZUVmZmVjdE9wdGlvbnM+PiYmKTsKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEtleWZyYW1l
RWZmZWN0Pj4gY3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8S2V5ZnJhbWVFZmZlY3Q+
JiYpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBjcmVhdGUo
SlNDOjpKU0dsb2JhbE9iamVjdCYsIERvY3VtZW50JiwgRWxlbWVudCosIEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+JiYsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgS2V5ZnJh
bWVFZmZlY3RPcHRpb25zPj4mJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxLZXlmcmFt
ZUVmZmVjdD4+IGNyZWF0ZShSZWY8S2V5ZnJhbWVFZmZlY3Q+JiYpOwogICAgIHN0YXRpYyBSZWY8
S2V5ZnJhbWVFZmZlY3Q+IGNyZWF0ZShjb25zdCBFbGVtZW50JiwgUHNldWRvSWQpOwogICAgIH5L
ZXlmcmFtZUVmZmVjdCgpIHsgfQogCkBAIC0xMTYsOCArMTE2LDggQEAgcHVibGljOgogCiAgICAg
VmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiBnZXRCaW5kaW5nc0tleWZyYW1lcyhK
U0M6OkpTR2xvYmFsT2JqZWN0Jik7CiAgICAgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmpl
Y3Q+PiBnZXRLZXlmcmFtZXMoSlNDOjpKU0dsb2JhbE9iamVjdCYpOwotICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldEJpbmRpbmdzS2V5ZnJhbWVzKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0PiYmKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRLZXlmcmFt
ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYpOwor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEJpbmRpbmdzS2V5ZnJhbWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QmLCBEb2N1bWVudCYsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYpOworICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEtleWZyYW1lcyhKU0M6OkpTR2xvYmFsT2JqZWN0JiwgRG9jdW1l
bnQmLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmKTsKIAogICAgIEl0ZXJhdGlvbkNvbXBv
c2l0ZU9wZXJhdGlvbiBpdGVyYXRpb25Db21wb3NpdGUoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJh
dGlvbkNvbXBvc2l0ZU9wZXJhdGlvbjsgfQogICAgIHZvaWQgc2V0SXRlcmF0aW9uQ29tcG9zaXRl
KEl0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbiBpdGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb24p
IHsgbV9pdGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb24gPSBpdGVyYXRpb25Db21wb3NpdGVPcGVy
YXRpb247IH0KQEAgLTE4Myw3ICsxODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlRWZm
ZWN0U3RhY2tNZW1iZXJzaGlwKCk7CiAgICAgdm9pZCBjb3B5UHJvcGVydGllc0Zyb21Tb3VyY2Uo
UmVmPEtleWZyYW1lRWZmZWN0PiYmKTsKICAgICB2b2lkIGRpZENoYW5nZVRhcmdldFN0eWxlYWJs
ZShjb25zdCBzdGQ6Om9wdGlvbmFsPGNvbnN0IFN0eWxlYWJsZT4mKTsKLSAgICBFeGNlcHRpb25P
cjx2b2lkPiBwcm9jZXNzS2V5ZnJhbWVzKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlN0cm9u
ZzxKU0M6OkpTT2JqZWN0PiYmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBwcm9jZXNzS2V5ZnJh
bWVzKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBEb2N1bWVudCYsIEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+JiYpOwogICAgIHZvaWQgYWRkUGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9uKEFjY2VsZXJh
dGVkQWN0aW9uKTsKICAgICBib29sIGNhbkJlQWNjZWxlcmF0ZWQoKSBjb25zdDsKICAgICBib29s
IGlzQ29tcGxldGVseUFjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZFBy
b3BlcnRpZXNTdGF0ZSA9PSBBY2NlbGVyYXRlZFByb3BlcnRpZXM6OkFsbDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5pZGwKaW5kZXggMTllODA0OTkzNzQ5ZDhl
NmU1M2M2ZDBhMTUxZWFlZThjODY4MTA2Yy4uYWRiYjMyZDFiNjczYjI3OGZiNjM0Y2IwNGNhYjA0
Yzk1NGI2YWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
aWRsCkBAIC0yOSwxNSArMjksMTUgQEAgdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CiAg
ICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogXSBpbnRl
cmZhY2UgS2V5ZnJhbWVFZmZlY3QgOiBBbmltYXRpb25FZmZlY3QgewotICAgIFtDYWxsV2l0aD1H
bG9iYWxPYmplY3RdIGNvbnN0cnVjdG9yKEVsZW1lbnQ/IHRhcmdldCwgb2JqZWN0PyBrZXlmcmFt
ZXMsIG9wdGlvbmFsICh1bnJlc3RyaWN0ZWQgZG91YmxlIG9yIEtleWZyYW1lRWZmZWN0T3B0aW9u
cykgb3B0aW9ucyk7Ci0gICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdF0gY29uc3RydWN0b3IoS2V5
ZnJhbWVFZmZlY3Qgc291cmNlKTsKKyAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0JkRvY3VtZW50
XSBjb25zdHJ1Y3RvcihFbGVtZW50PyB0YXJnZXQsIG9iamVjdD8ga2V5ZnJhbWVzLCBvcHRpb25h
bCAodW5yZXN0cmljdGVkIGRvdWJsZSBvciBLZXlmcmFtZUVmZmVjdE9wdGlvbnMpIG9wdGlvbnMp
OworICAgIGNvbnN0cnVjdG9yKEtleWZyYW1lRWZmZWN0IHNvdXJjZSk7CiAKICAgICBhdHRyaWJ1
dGUgRWxlbWVudD8gdGFyZ2V0OwogICAgIGF0dHJpYnV0ZSBDU1NPTVN0cmluZz8gcHNldWRvRWxl
bWVudDsKICAgICBbRW5hYmxlZEJ5U2V0dGluZz1XZWJBbmltYXRpb25zQ29tcG9zaXRlT3BlcmF0
aW9uc0VuYWJsZWRdIGF0dHJpYnV0ZSBJdGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb24gaXRlcmF0
aW9uQ29tcG9zaXRlOwogICAgIFtFbmFibGVkQnlTZXR0aW5nPVdlYkFuaW1hdGlvbnNDb21wb3Np
dGVPcGVyYXRpb25zRW5hYmxlZF0gYXR0cmlidXRlIENvbXBvc2l0ZU9wZXJhdGlvbiBjb21wb3Np
dGU7CiAgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdCwgSW1wbGVtZW50ZWRBcz1nZXRCaW5kaW5n
c0tleWZyYW1lc10gc2VxdWVuY2U8b2JqZWN0PiBnZXRLZXlmcmFtZXMoKTsKLSAgICBbQ2FsbFdp
dGg9R2xvYmFsT2JqZWN0LCBJbXBsZW1lbnRlZEFzPXNldEJpbmRpbmdzS2V5ZnJhbWVzXSB1bmRl
ZmluZWQgc2V0S2V5ZnJhbWVzKG9iamVjdD8ga2V5ZnJhbWVzKTsKKyAgICBbQ2FsbFdpdGg9R2xv
YmFsT2JqZWN0JkRvY3VtZW50LCBJbXBsZW1lbnRlZEFzPXNldEJpbmRpbmdzS2V5ZnJhbWVzXSB1
bmRlZmluZWQgc2V0S2V5ZnJhbWVzKG9iamVjdD8ga2V5ZnJhbWVzKTsKIH07CiAKIGRpY3Rpb25h
cnkgQmFzZVByb3BlcnR5SW5kZXhlZEtleWZyYW1lIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRl
eCBhNGQ5ODhjMzlkMDFmZjZlMDhmMGEyNjc2MjMxOWM3MDg2ZDRjZTY3Li44NTIxYzI0MDE5MTFj
MjYzMWE2NzY1OTRkMTkyM2VlNDUwZTRkZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC00
Njk1LDcgKzQ2OTUsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gRWxlbWVudDo6
YW5pbWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYgogICAgICAgICBrZXlmcmFt
ZUVmZmVjdE9wdGlvbnMgPSBrZXlmcmFtZUVmZmVjdE9wdGlvbnNWYXJpYW50OwogICAgIH0KIAot
ICAgIGF1dG8ga2V5ZnJhbWVFZmZlY3RSZXN1bHQgPSBLZXlmcmFtZUVmZmVjdDo6Y3JlYXRlKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXMsIFdURk1vdmUoa2V5ZnJhbWVzKSwgV1RGTW92ZShrZXlm
cmFtZUVmZmVjdE9wdGlvbnMpKTsKKyAgICBhdXRvIGtleWZyYW1lRWZmZWN0UmVzdWx0ID0gS2V5
ZnJhbWVFZmZlY3Q6OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBkb2N1bWVudCgpLCB0aGlz
LCBXVEZNb3ZlKGtleWZyYW1lcyksIFdURk1vdmUoa2V5ZnJhbWVFZmZlY3RPcHRpb25zKSk7CiAg
ICAgaWYgKGtleWZyYW1lRWZmZWN0UmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4ga2V5ZnJhbWVFZmZlY3RSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCg==
</data>
<flag name="review"
          id="475995"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="476009"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>