<?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>199246</bug_id>
          
          <creation_ts>2019-06-26 16:48:44 -0700</creation_ts>
          <short_desc>Expose UIAction identifiers for _WKElementActions</short_desc>
          <delta_ts>2019-06-26 18:49:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>darin</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548223</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-06-26 16:48:44 -0700</bug_when>
    <thetext>Expose UIAction identifiers for _WKElementActions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548225</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-26 16:49:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/52218950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548240</commentid>
    <comment_count>2</comment_count>
      <attachid>372971</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-06-26 17:08:11 -0700</bug_when>
    <thetext>Created attachment 372971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548258</commentid>
    <comment_count>3</comment_count>
      <attachid>372971</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-06-26 17:31:36 -0700</bug_when>
    <thetext>Comment on attachment 372971
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.h:65
&gt; -+ (UIImage *)imageForElementActionType:(_WKElementActionType)actionType WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; ++ (UIImage *)imageForElementActionType:(_WKElementActionType)actionType WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(13.0));

Why this change?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm:217
&gt; +#if !defined(TARGET_OS_IOS) || TARGET_OS_IOS

Why not a PLATFORM macro? This is an implementation file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548272</commentid>
    <comment_count>4</comment_count>
      <attachid>372976</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-06-26 17:42:35 -0700</bug_when>
    <thetext>Created attachment 372976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548275</commentid>
    <comment_count>5</comment_count>
      <attachid>372971</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-06-26 17:52:18 -0700</bug_when>
    <thetext>Comment on attachment 372971
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.h:65
&gt;&gt; ++ (UIImage *)imageForElementActionType:(_WKElementActionType)actionType WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(13.0));
&gt; 
&gt; Why this change?

Because we have announced that the next version of iOS will be called 13?

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm:217
&gt;&gt; +#if !defined(TARGET_OS_IOS) || TARGET_OS_IOS
&gt; 
&gt; Why not a PLATFORM macro? This is an implementation file.

Yes, thanks. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548298</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-06-26 18:11:39 -0700</bug_when>
    <thetext>Committed r246865: &lt;https://trac.webkit.org/changeset/246865&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548308</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-06-26 18:34:18 -0700</bug_when>
    <thetext>I still see TARGET_OS_IOS in the .mm file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548312</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-06-26 18:44:42 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; I still see TARGET_OS_IOS in the .mm file.

That was fixed, along with other things in https://bugs.webkit.org/show_bug.cgi?id=199255 which was r246867</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548317</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-06-26 18:49:10 -0700</bug_when>
    <thetext>Ah, great, how did I miss that? I actually looked at that check-in first!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372971</attachid>
            <date>2019-06-26 17:08:11 -0700</date>
            <delta_ts>2019-06-26 17:32:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199246-20190627100810.patch</filename>
            <type>text/plain</type>
            <size>19831</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc4NTFjZGRiZmY4ZTVlNDE4
N2Q3ZTBkMGRiNWU2MjFkMjA2Yjg2YTQuLjQ5MGU2NzE5OWZkNzNmZTFiNmRlNDcxNjJmOWM2MjEx
YTA0M2JmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTktMDYtMjYgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBVSUFjdGlvbiBpZGVudGlm
aWVycyBmb3IgX1dLRWxlbWVudEFjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5OTI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTIyMTg5
NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
b3JkZXIgZm9yIGNsaWVudHMgdG8gY3JlYXRlIGEgY29udGV4dHVhbCBtZW51LCB0aGV5IGFyZSBn
aXZlbgorICAgICAgICBhIHNldCBvZiBzdWdnZXN0ZWQgVUlBY3Rpb25zLCBjcmVhdGVkIGZyb20g
X1dLRWxlbWVudEFjdGlvbnMuCisgICAgICAgIEJ5IGFzc29jaWF0aW5nIGlkZW50aWZpZXJzIChz
dHJpbmdzKSB3aXRoIHRoZSBVSUFjdGlvbnMsIGNsaWVudHMKKyAgICAgICAgY2FuIGluc3BlY3Qg
dGhlIHN1Z2dlc3Rpb25zIGFuZCBtYWtlIGEgZGVjaXNpb24gb24gd2hldGhlciBvcgorICAgICAg
ICBub3QgdG8gaW5jbHVkZSB0aGVtIGluIHRoZSBmaW5hbCBtZW51LgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmg6IFR5cGVkZWYgVUlBY3Rpb25JZGVu
dGlmaWVyLAorICAgICAgICBhZGQgYSBtZXRob2QgdG8gY3JlYXRlIGEgVUlBY3Rpb24gZnJvbSBh
biBfV0tFbGVtZW50QWN0aW9uLCBhbmQgYQorICAgICAgICBoZWxwZXIgdG8gbWFwIGJldHdlZW4g
aWRlbnRpZmllcnMgYW5kIHR5cGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50QWN0aW9uLm1tOgorICAgICAgICAoZWxlbWVudEFjdGlvblR5cGVUb1VJQWN0aW9u
SWRlbnRpZmllcik6IEhlbHBlciB0byBjb252ZXJ0IGJldHdlZW4gdGhlIHR3byB0eXBlcy4KKyAg
ICAgICAgKHVpQWN0aW9uSWRlbnRpZmllclRvRWxlbWVudEFjdGlvblR5cGUpOiBUaGUgaW52ZXJz
ZSBvZiBhYm92ZS4KKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBlbGVtZW50QWN0aW9uVHlw
ZUZvclVJQWN0aW9uSWRlbnRpZmllcjpdKTogQSBjbGllbnQgZ2l2ZW4KKyAgICAgICAgYSBVSUFj
dGlvbiBvYmplY3QgY2FuIHVzZSB0aGlzIGhlbHBlciBtZXRob2QgdG8gc2VlIHdoYXQgX1dLRWxl
bWVudEFjdGlvblR5cGUgaXQKKyAgICAgICAgY29ycmVzcG9uZHMgdG8uCisgICAgICAgICgtW19X
S0VsZW1lbnRBY3Rpb24gdWlBY3Rpb25Gb3JFbGVtZW50SW5mbzpdKTogVXNlZCBieSBXS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24gdG8KKyAgICAgICAgY3JlYXRlIGEgVUlBY3Rpb24gZnJvbSB0aGlz
IF9XS0VsZW1lbnRBY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKHVpQWN0aW9uRm9yTGVnYWN5UHJldmlld0FjdGlv
bik6IFJlbmFtZWQgdG8gbWFrZSBpdCBjbGVhciB0aGlzIGlzIGEgbGVnYWN5IGFwcHJvYWNoLgor
ICAgICAgICAobWVudUZyb21MZWdhY3lQcmV2aWV3T3JEZWZhdWx0QWN0aW9ucyk6IFNwbGl0IHRo
ZXNlIGZ1bmN0aW9ucyB0byBzZXBhcmF0ZSB0aGUgbGVnYWN5CisgICAgICAgIGFuZCBub24tbGVn
YWN5IGFwcHJvYWNoLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFzc2lnbkxlZ2FjeURhdGFG
b3JDb250ZXh0TWVudUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29u
dGludWVDb250ZXh0TWVudUludGVyYWN0aW9uOl0pOgorICAgICAgICAodWlBY3Rpb25Gb3JQcmV2
aWV3QWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKG1lbnVGcm9tUHJldmlld09yRGVmYXVsdHMp
OiBEZWxldGVkLgorCisKIDIwMTktMDYtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gT2NjYXNpb25hbCBjcmFzaCB1bmRlciAtW1VJUHJl
dmlld1RhcmdldCBpbml0V2l0aENvbnRhaW5lcjpjZW50ZXI6dHJhbnNmb3JtOl0gd2hlbiBnZW5l
cmF0aW5nIGEgZHJhZyBwcmV2aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaAppbmRleCA0NTRkYzZhMTNhMjZlNWFjMThiYWQy
OTg0YWUwOTc4M2RlODZkNTFjLi45ZDBhYjQ2MmNlMzk5ZWFhYjVmZTNlOWU1NGQxNzJmM2Y4NGIw
MGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxl
bWVudEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
bGVtZW50QWN0aW9uLmgKQEAgLTMwLDggKzMwLDExIEBACiAjaW1wb3J0IDxXZWJLaXQvV0tCYXNl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KIAorQGNsYXNz
IFVJQWN0aW9uOwogQGNsYXNzIFVJSW1hZ2U7CiAKK3R5cGVkZWYgTlNTdHJpbmcgKlVJQWN0aW9u
SWRlbnRpZmllcjsKKwogdHlwZWRlZiB2b2lkICheV0tFbGVtZW50QWN0aW9uSGFuZGxlcikoX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKik7CiB0eXBlZGVmIEJPT0wgKF5XS0VsZW1lbnRBY3Rpb25E
aXNtaXNzYWxIYW5kbGVyKSh2b2lkKTsKIApAQCAtNDIsOCArNDUsOCBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9uVHlwZSkgewogICAgIF9XS0VsZW1lbnRBY3Rp
b25UeXBlU2F2ZUltYWdlLAogI2lmICFkZWZpbmVkKFRBUkdFVF9PU19JT1MpIHx8IFRBUkdFVF9P
U19JT1MKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZUFkZFRvUmVhZGluZ0xpc3QsCi0gICAgX1dL
RWxlbWVudEFjdGlvblR5cGVPcGVuSW5EZWZhdWx0QnJvd3NlciBXS19BUElfQVZBSUxBQkxFKGlv
cyg5XzApKSwKLSAgICBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRp
b24gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSksCisgICAgX1dLRWxlbWVudEFjdGlvblR5cGVP
cGVuSW5EZWZhdWx0QnJvd3NlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKSwKKyAgICBfV0tF
bGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb24gV0tfQVBJX0FWQUlMQUJM
RShpb3MoOS4wKSksCiAjZW5kaWYKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpLAogICAgIF9XS0VsZW1lbnRBY3Rp
b25UeXBlT3BlbkluTmV3VGFiIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSksCkBAIC01OSw5ICs2MiwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKICsgKGluc3RhbmNldHlwZSllbGVtZW50QWN0aW9uV2l0aFR5
cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgY3VzdG9tVGl0bGU6KE5TU3RyaW5nICopdGl0
bGU7CiArIChpbnN0YW5jZXR5cGUpZWxlbWVudEFjdGlvbldpdGhUaXRsZTooTlNTdHJpbmcgKil0
aXRsZSBhY3Rpb25IYW5kbGVyOihXS0VsZW1lbnRBY3Rpb25IYW5kbGVyKWhhbmRsZXI7CiAKLSsg
KFVJSW1hZ2UgKilpbWFnZUZvckVsZW1lbnRBY3Rpb25UeXBlOihfV0tFbGVtZW50QWN0aW9uVHlw
ZSlhY3Rpb25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CisrIChVSUltYWdlICopaW1hZ2VGb3JFbGVtZW50QWN0aW9uVHlwZTooX1dLRWxl
bWVudEFjdGlvblR5cGUpYWN0aW9uVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoMTMuMCkpOworKyAoX1dLRWxlbWVudEFjdGlvblR5cGUpZWxlbWVudEFjdGlvblR5
cGVGb3JVSUFjdGlvbklkZW50aWZpZXI6KFVJQWN0aW9uSWRlbnRpZmllcilpZGVudGlmaWVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcygxMy4wKSk7CisKKy0gKHZvaWQp
cnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKDkuMCkpOwogCi0tICh2b2lk
KXJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKilpbmZv
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAoVUlBY3Rpb24gKil1aUFjdGlvbkZvckVs
ZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcygxMy4wKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgX1dLRWxlbWVudEFjdGlvblR5cGUgdHlwZTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcqIHRpdGxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQppbmRleCBjNDQ0
OTNmOTMwYmNkMGU3NWUzZjI5YTdkMDI5ZDAyMzliMjg1NTk2Li43ZTQ1NWVhNmE1ZTIyZTA0N2Iy
ZWVhNDgyZDgwMTYyMDFiN2MwYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQpAQCAtNTAsNiArNTAsMjAgQEAgU09G
VF9MSU5LX0NMQVNTKFNhZmFyaVNlcnZpY2VzLCBTU1JlYWRpbmdMaXN0KTsKIAogdHlwZWRlZiB2
b2lkICheV0tFbGVtZW50QWN0aW9uSGFuZGxlckludGVybmFsKShXS0FjdGlvblNoZWV0QXNzaXN0
YW50ICosIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopOwogCitzdGF0aWMgVUlBY3Rpb25JZGVu
dGlmaWVyIGNvbnN0IFdLRWxlbWVudEFjdGlvblR5cGVDdXN0b21JZGVudGlmaWVyID0gQCJXS0Vs
ZW1lbnRBY3Rpb25UeXBlQ3VzdG9tIjsKK3N0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3Qg
V0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JZGVudGlmaWVyID0gQCJXS0VsZW1lbnRBY3Rpb25UeXBl
T3BlbiI7CitzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVudEFjdGlvblR5
cGVDb3B5SWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZUNvcHkiOworc3RhdGljIFVJ
QWN0aW9uSWRlbnRpZmllciBjb25zdCBXS0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdlSWRlbnRp
ZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFnZSI7CisjaWYgIWRlZmluZWQoVEFS
R0VUX09TX0lPUykgfHwgVEFSR0VUX09TX0lPUworc3RhdGljIFVJQWN0aW9uSWRlbnRpZmllciBj
b25zdCBXS0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFkaW5nTGlzdElkZW50aWZpZXIgPSBAIldL
RWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0IjsKK3N0YXRpYyBVSUFjdGlvbklkZW50
aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRCcm93c2VySWRlbnRp
ZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRCcm93c2VyIjsKK3N0YXRp
YyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVy
bmFsQXBwbGljYXRpb25JZGVudGlmaWVyID0gQCJXS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRXh0
ZXJuYWxBcHBsaWNhdGlvbiI7CisjZW5kaWYKK3N0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29u
c3QgV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlSWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9u
VHlwZVNoYXJlIjsKK3N0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0
aW9uVHlwZU9wZW5Jbk5ld1RhYklkZW50aWZpZXIgPSBAIldLRWxlbWVudEFjdGlvblR5cGVPcGVu
SW5OZXdUYWIiOworc3RhdGljIFVJQWN0aW9uSWRlbnRpZmllciBjb25zdCBXS0VsZW1lbnRBY3Rp
b25UeXBlT3BlbkluTmV3V2luZG93SWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZU9w
ZW5Jbk5ld1dpbmRvdyI7CitzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVu
dEFjdGlvblR5cGVEb3dubG9hZElkZW50aWZpZXIgPSBAIldLRWxlbWVudEFjdGlvblR5cGVEb3du
bG9hZCI7CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tFbGVtZW50QWN0aW9uICB7CiAgICAgUmV0YWlu
UHRyPE5TU3RyaW5nPiBfdGl0bGU7CiAgICAgV0tFbGVtZW50QWN0aW9uSGFuZGxlckludGVybmFs
IF9hY3Rpb25IYW5kbGVyOwpAQCAtMTg4LDYgKzIwMiw5OSBAQCBzdGF0aWMgdm9pZCBhZGRUb1Jl
YWRpbmdMaXN0KE5TVVJMICp0YXJnZXRVUkwsIE5TU3RyaW5nICp0aXRsZSkKIH0KICNlbmRpZgog
CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCitzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGVsZW1l
bnRBY3Rpb25UeXBlVG9VSUFjdGlvbklkZW50aWZpZXIoX1dLRWxlbWVudEFjdGlvblR5cGUgYWN0
aW9uVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGFjdGlvblR5cGUpIHsKKyAgICBjYXNlIF9XS0VsZW1l
bnRBY3Rpb25UeXBlQ3VzdG9tOgorICAgICAgICByZXR1cm4gV0tFbGVtZW50QWN0aW9uVHlwZUN1
c3RvbUlkZW50aWZpZXI7CisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW46CisgICAg
ICAgIHJldHVybiBXS0VsZW1lbnRBY3Rpb25UeXBlT3BlbklkZW50aWZpZXI7CisgICAgY2FzZSBf
V0tFbGVtZW50QWN0aW9uVHlwZUNvcHk6CisgICAgICAgIHJldHVybiBXS0VsZW1lbnRBY3Rpb25U
eXBlQ29weUlkZW50aWZpZXI7CisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFn
ZToKKyAgICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlvblR5cGVTYXZlSW1hZ2VJZGVudGlmaWVy
OworI2lmICFkZWZpbmVkKFRBUkdFVF9PU19JT1MpIHx8IFRBUkdFVF9PU19JT1MKKyAgICBjYXNl
IF9XS0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFkaW5nTGlzdDoKKyAgICAgICAgcmV0dXJuIFdL
RWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0SWRlbnRpZmllcjsKKyAgICBjYXNlIF9X
S0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRGVmYXVsdEJyb3dzZXI6CisgICAgICAgIHJldHVybiBX
S0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRGVmYXVsdEJyb3dzZXJJZGVudGlmaWVyOworICAgIGNh
c2UgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5FeHRlcm5hbEFwcGxpY2F0aW9uOgorICAgICAg
ICByZXR1cm4gV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb25JZGVu
dGlmaWVyOworI2VuZGlmCisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlOgorICAg
ICAgICByZXR1cm4gV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlSWRlbnRpZmllcjsKKyAgICBjYXNl
IF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluTmV3VGFiOgorICAgICAgICByZXR1cm4gV0tFbGVt
ZW50QWN0aW9uVHlwZU9wZW5Jbk5ld1RhYklkZW50aWZpZXI7CisgICAgY2FzZSBfV0tFbGVtZW50
QWN0aW9uVHlwZU9wZW5Jbk5ld1dpbmRvdzoKKyAgICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlv
blR5cGVPcGVuSW5OZXdXaW5kb3dJZGVudGlmaWVyOworICAgIGNhc2UgX1dLRWxlbWVudEFjdGlv
blR5cGVEb3dubG9hZDoKKyAgICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlvblR5cGVEb3dubG9h
ZElkZW50aWZpZXI7CisgICAgfQorfQorCitzdGF0aWMgX1dLRWxlbWVudEFjdGlvblR5cGUgdWlB
Y3Rpb25JZGVudGlmaWVyVG9FbGVtZW50QWN0aW9uVHlwZShVSUFjdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBpZiAoW2lkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOldLRWxlbWVu
dEFjdGlvblR5cGVDdXN0b21JZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIF9XS0VsZW1lbnRB
Y3Rpb25UeXBlQ3VzdG9tOworICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tF
bGVtZW50QWN0aW9uVHlwZU9wZW5JZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIF9XS0VsZW1l
bnRBY3Rpb25UeXBlT3BlbjsKKyAgICBpZiAoW2lkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOldL
RWxlbWVudEFjdGlvblR5cGVDb3B5SWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBfV0tFbGVt
ZW50QWN0aW9uVHlwZUNvcHk7CisgICAgaWYgKFtpZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpX
S0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdlSWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBf
V0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFnZTsKKyNpZiAhZGVmaW5lZChUQVJHRVRfT1NfSU9T
KSB8fCBUQVJHRVRfT1NfSU9TCisgICAgaWYgKFtpZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpX
S0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFkaW5nTGlzdElkZW50aWZpZXJdKQorICAgICAgICBy
ZXR1cm4gX1dLRWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0OworICAgIGlmIChbaWRl
bnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRC
cm93c2VySWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZU9w
ZW5JbkRlZmF1bHRCcm93c2VyOworICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6
V0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb25JZGVudGlmaWVyXSkK
KyAgICAgICAgcmV0dXJuIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRXh0ZXJuYWxBcHBsaWNh
dGlvbjsKKyNlbmRpZgorICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tFbGVt
ZW50QWN0aW9uVHlwZVNoYXJlSWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBfV0tFbGVtZW50
QWN0aW9uVHlwZVNoYXJlOworICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tF
bGVtZW50QWN0aW9uVHlwZU9wZW5Jbk5ld1RhYklkZW50aWZpZXJdKQorICAgICAgICByZXR1cm4g
X1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5OZXdUYWI7CisgICAgaWYgKFtpZGVudGlmaWVyIGlz
RXF1YWxUb1N0cmluZzpXS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluTmV3V2luZG93SWRlbnRpZmll
cl0pCisgICAgICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5Jbk5ld1dpbmRvdzsK
KyAgICBpZiAoW2lkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOldLRWxlbWVudEFjdGlvblR5cGVE
b3dubG9hZElkZW50aWZpZXJdKQorICAgICAgICByZXR1cm4gX1dLRWxlbWVudEFjdGlvblR5cGVE
b3dubG9hZDsKKworICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZUN1c3RvbTsKK30KKwor
KyAoX1dLRWxlbWVudEFjdGlvblR5cGUpZWxlbWVudEFjdGlvblR5cGVGb3JVSUFjdGlvbklkZW50
aWZpZXI6KFVJQWN0aW9uSWRlbnRpZmllcilpZGVudGlmaWVyCit7CisgICAgcmV0dXJuIHVpQWN0
aW9uSWRlbnRpZmllclRvRWxlbWVudEFjdGlvblR5cGUoaWRlbnRpZmllcik7Cit9CisKKy0gKFVJ
QWN0aW9uICopdWlBY3Rpb25Gb3JFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
KillbGVtZW50SW5mbworeworICAgIFVJSW1hZ2UgKmltYWdlID0gW19XS0VsZW1lbnRBY3Rpb24g
aW1hZ2VGb3JFbGVtZW50QWN0aW9uVHlwZTpzZWxmLnR5cGVdOworICAgIFVJQWN0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyID0gZWxlbWVudEFjdGlvblR5cGVUb1VJQWN0aW9uSWRlbnRpZmllcihz
ZWxmLnR5cGUpOworCisgICAgcmV0dXJuIFtVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6c2VsZi50
aXRsZSBpbWFnZTppbWFnZSBpZGVudGlmaWVyOmlkZW50aWZpZXIgaGFuZGxlcjpbd2Vha1NlbGYg
PSBXZWFrT2JqQ1B0cjxfV0tFbGVtZW50QWN0aW9uPihzZWxmKSwgd2Vha0VsZW1lbnRJbmZvID0g
V2Vha09iakNQdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+KGVsZW1lbnRJbmZvKV0gKFVJQWN0
aW9uICopIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAg
ICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBz
dHJvbmdFbGVtZW50SW5mbyA9IHdlYWtFbGVtZW50SW5mby5nZXQoKTsKKyAgICAgICAgaWYgKCFz
dHJvbmdFbGVtZW50SW5mbykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgW3N0cm9uZ1Nl
bGYgcnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOnN0cm9uZ0VsZW1lbnRJbmZvLmdldCgpXTsKKyAg
ICB9XTsKK30KKyNlbHNlCisrIChfV0tFbGVtZW50QWN0aW9uVHlwZSllbGVtZW50QWN0aW9uVHlw
ZUZvclVJQWN0aW9uSWRlbnRpZmllcjooVUlBY3Rpb25JZGVudGlmaWVyKWlkZW50aWZpZXIKK3sK
KyAgICByZXR1cm4gX1dLRWxlbWVudEFjdGlvblR5cGVDdXN0b207Cit9CisKKy0gKFVJQWN0aW9u
ICopdWlBY3Rpb25Gb3JFbGVtZW50SW5mbzooUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvPillbGVtZW50SW5mbworeworICAgIHJldHVybiBuaWw7Cit9CisjZW5kaWYKKwogQGVuZAog
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRkNDJm
MGIwMWVhYTFlMTVlNjRhZDQ5YWM0MWE3ZDhkNTcwMmM2ZTkuLmI1ZDBiNjYzOWRiNTliZTkyNjQy
NDE0ODg2YWUzOGNkMDFhMTAxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzUyOCw3ICs3NTI4LDcg
QEAgc3RhdGljIGJvb2wgbmVlZHNEZXByZWNhdGVkUHJldmlld0FQSShpZDxXS1VJRGVsZWdhdGU+
IGRlbGVnYXRlKQogfQogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotc3Rh
dGljIE5TQXJyYXk8V0tQcmV2aWV3QWN0aW9uICo+ICp3a1ByZXZpZXdBY3Rpb25zRnJvbUVsZW1l
bnRBY3Rpb25zKE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqZWxlbWVudEFjdGlvbnMsIF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICplbGVtZW50SW5mbykKK3N0YXRpYyBOU0FycmF5PFdLUHJl
dmlld0FjdGlvbiAqPiAqd2tMZWdhY3lQcmV2aWV3QWN0aW9uc0Zyb21FbGVtZW50QWN0aW9ucyhO
U0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKmVsZW1lbnRBY3Rpb25zLCBfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqZWxlbWVudEluZm8pCiB7CiAgICAgTlNNdXRhYmxlQXJyYXk8V0tQcmV2aWV3
QWN0aW9uICo+ICpwcmV2aWV3QWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBh
Y2l0eTpbZWxlbWVudEFjdGlvbnMgY291bnRdXTsKICAgICBmb3IgKF9XS0VsZW1lbnRBY3Rpb24g
KmVsZW1lbnRBY3Rpb24gaW4gZWxlbWVudEFjdGlvbnMpIHsKQEAgLTc1NDEsNyArNzU0MSw3IEBA
IHN0YXRpYyBOU0FycmF5PFdLUHJldmlld0FjdGlvbiAqPiAqd2tQcmV2aWV3QWN0aW9uc0Zyb21F
bGVtZW50QWN0aW9ucyhOU0FycmF5PF9XCiAgICAgcmV0dXJuIHByZXZpZXdBY3Rpb25zOwogfQog
Ci1zdGF0aWMgVUlBY3Rpb24gKnVpQWN0aW9uRm9yUHJldmlld0FjdGlvbihVSVByZXZpZXdBY3Rp
b24gKnByZXZpZXdBY3Rpb24sIFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxl
cikKK3N0YXRpYyBVSUFjdGlvbiAqdWlBY3Rpb25Gb3JMZWdhY3lQcmV2aWV3QWN0aW9uKFVJUHJl
dmlld0FjdGlvbiAqcHJldmlld0FjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpZXdD
b250cm9sbGVyKQogewogICAgIC8vIFVJUHJldmlld0FjdGlvbkl0ZW0uaW1hZ2UgaXMgU1BJLCBz
byBubyBleHRlcm5hbCBjbGllbnRzIHdpbGwgYmUgYWJsZQogICAgIC8vIHRvIHByb3ZpZGUgZ2x5
cGhzIGZvciBhY3Rpb25zIDxyZGFyOi8vcHJvYmxlbS81MDE1MTg1NT4uCkBAIC03NTUzLDM4ICs3
NTUzLDQ0IEBAIHN0YXRpYyBVSUFjdGlvbiAqdWlBY3Rpb25Gb3JQcmV2aWV3QWN0aW9uKFVJUHJl
dmlld0FjdGlvbiAqcHJldmlld0FjdGlvbiwgVUlWaWV3CiB9CiBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAotc3RhdGljIE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqbWVudUVs
ZW1lbnRzRnJvbVByZXZpZXdPckRlZmF1bHRzKFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaWV3
Q29udHJvbGxlciwgY29uc3QgUmV0YWluUHRyPE5TQXJyYXk+JiBkZWZhdWx0RWxlbWVudEFjdGlv
bnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8pCitzdGF0
aWMgTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICptZW51RWxlbWVudHNGcm9tTGVnYWN5UHJldmll
dyhVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpCiB7Ci0gICAgYXV0byBh
Y3Rpb25zID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OmRlZmF1bHRFbGVtZW50
QWN0aW9ucy5nZXQoKS5jb3VudF07CisgICAgaWYgKHByZXZpZXdWaWV3Q29udHJvbGxlcikKKyAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIC8vIE9uZSBvZiB0aGUgZGVsZWdhdGVzIG1heSBoYXZl
IHByb3ZpZGVkIGEgVUlWaWV3Q29udHJvbGxlciB3aXRoIGEgcHJldmlld0FjdGlvbkl0ZW1zIGFy
cmF5LiBJZiBzbywKLSAgICAvLyB3ZSBuZWVkIHRvIGNvbnZlcnQgZWFjaCBVSVByZXZpZXdBY3Rp
b25JdGVtIGludG8gYSBVSUFjdGlvbi4KLSAgICBpZiAocHJldmlld1ZpZXdDb250cm9sbGVyKSB7
Ci0gICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgIE5T
QXJyYXk8aWQ8VUlQcmV2aWV3QWN0aW9uSXRlbT4+ICpwcmV2aWV3QWN0aW9ucyA9IHByZXZpZXdW
aWV3Q29udHJvbGxlci5wcmV2aWV3QWN0aW9uSXRlbXM7Ci0gICAgICAgIGZvciAoVUlQcmV2aWV3
QWN0aW9uICpwcmV2aWV3QWN0aW9uIGluIHByZXZpZXdBY3Rpb25zKQotICAgICAgICAgICAgW2Fj
dGlvbnMgYWRkT2JqZWN0OnVpQWN0aW9uRm9yUHJldmlld0FjdGlvbihwcmV2aWV3QWN0aW9uLCBw
cmV2aWV3Vmlld0NvbnRyb2xsZXIpXTsKLSAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECi0gICAgfQorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CisgICAgTlNBcnJheTxpZDxVSVByZXZpZXdBY3Rpb25JdGVtPj4gKnByZXZpZXdBY3Rpb25zID0g
cHJldmlld1ZpZXdDb250cm9sbGVyLnByZXZpZXdBY3Rpb25JdGVtczsKKyAgICBpZiAoIXByZXZp
ZXdBY3Rpb25zIHx8ICFbcHJldmlld0FjdGlvbnMgY291bnRdKQorICAgICAgICByZXR1cm4gbmls
OwogCi0gICAgaWYgKCFbYWN0aW9ucyBjb3VudF0pIHsKLSAgICAgICAgLy8gV2UgZWl0aGVyIGRp
ZG4ndCBnZXQgYSBjdXN0b20gcHJldmlldyBVSVZpZXdDb250cm9sbGVyLCBvciBpdCBkaWRuJ3Qg
cHJvdmlkZSBhbnkgYWN0aW9ucwotICAgICAgICAvLyBzbyB3ZSBzaG91bGQgdXNlIHRoZSBkZWZh
dWx0IHNldC4KLSAgICAgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICplbGVtZW50QWN0aW9uIGlu
IGRlZmF1bHRFbGVtZW50QWN0aW9ucy5nZXQoKSkgewotICAgICAgICAgICAgVUlJbWFnZSAqaW1h
Z2UgPSBbX1dLRWxlbWVudEFjdGlvbiBpbWFnZUZvckVsZW1lbnRBY3Rpb25UeXBlOmVsZW1lbnRB
Y3Rpb24udHlwZV07CisgICAgYXV0byBhY3Rpb25zID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0
aENhcGFjaXR5OnByZXZpZXdBY3Rpb25zLmNvdW50XTsKIAotICAgICAgICAgICAgW2FjdGlvbnMg
YWRkT2JqZWN0OltVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6ZWxlbWVudEFjdGlvbi50aXRsZSBp
bWFnZTppbWFnZSBpZGVudGlmaWVyOm5pbCBoYW5kbGVyOl4oVUlBY3Rpb24gKikgewotICAgICAg
ICAgICAgICAgIFtlbGVtZW50QWN0aW9uIHJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzplbGVtZW50
SW5mby5nZXQoKV07Ci0gICAgICAgICAgICB9XV07Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9y
IChVSVByZXZpZXdBY3Rpb24gKnByZXZpZXdBY3Rpb24gaW4gcHJldmlld0FjdGlvbnMpCisgICAg
ICAgIFthY3Rpb25zIGFkZE9iamVjdDp1aUFjdGlvbkZvckxlZ2FjeVByZXZpZXdBY3Rpb24ocHJl
dmlld0FjdGlvbiwgcHJldmlld1ZpZXdDb250cm9sbGVyKV07CisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gYWN0aW9uczsKIH0KIAotc3RhdGljIFVJ
TWVudSAqbWVudUZyb21QcmV2aWV3T3JEZWZhdWx0cyhVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3
Vmlld0NvbnRyb2xsZXIsIGNvbnN0IFJldGFpblB0cjxOU0FycmF5PiYgZGVmYXVsdEVsZW1lbnRB
Y3Rpb25zLCBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvLCBO
U1N0cmluZyAqdGl0bGUpCitzdGF0aWMgTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICptZW51RWxl
bWVudHNGcm9tRGVmYXVsdEFjdGlvbnMoY29uc3QgUmV0YWluUHRyPE5TQXJyYXk+JiBkZWZhdWx0
RWxlbWVudEFjdGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVu
dEluZm8pCiB7Ci0gICAgYXV0byBhY3Rpb25zID0gbWVudUVsZW1lbnRzRnJvbVByZXZpZXdPckRl
ZmF1bHRzKHByZXZpZXdWaWV3Q29udHJvbGxlciwgZGVmYXVsdEVsZW1lbnRBY3Rpb25zLCBlbGVt
ZW50SW5mbyk7CisgICAgaWYgKCFkZWZhdWx0RWxlbWVudEFjdGlvbnMgfHwgIWRlZmF1bHRFbGVt
ZW50QWN0aW9ucy5nZXQoKS5jb3VudCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8g
YWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpkZWZhdWx0RWxlbWVu
dEFjdGlvbnMuZ2V0KCkuY291bnRdOworCisgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICplbGVt
ZW50QWN0aW9uIGluIGRlZmF1bHRFbGVtZW50QWN0aW9ucy5nZXQoKSkKKyAgICAgICAgW2FjdGlv
bnMgYWRkT2JqZWN0OltlbGVtZW50QWN0aW9uIHVpQWN0aW9uRm9yRWxlbWVudEluZm86ZWxlbWVu
dEluZm8uZ2V0KCldXTsKKworICAgIHJldHVybiBhY3Rpb25zOworfQorCitzdGF0aWMgVUlNZW51
ICptZW51RnJvbUxlZ2FjeVByZXZpZXdPckRlZmF1bHRBY3Rpb25zKFVJVmlld0NvbnRyb2xsZXIg
KnByZXZpZXdWaWV3Q29udHJvbGxlciwgY29uc3QgUmV0YWluUHRyPE5TQXJyYXk+JiBkZWZhdWx0
RWxlbWVudEFjdGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVu
dEluZm8sIE5TU3RyaW5nICp0aXRsZSkKK3sKKyAgICBhdXRvIGFjdGlvbnMgPSBtZW51RWxlbWVu
dHNGcm9tTGVnYWN5UHJldmlldyhwcmV2aWV3Vmlld0NvbnRyb2xsZXIpOworICAgIGlmICghYWN0
aW9ucykKKyAgICAgICAgYWN0aW9ucyA9IG1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhk
ZWZhdWx0RWxlbWVudEFjdGlvbnMsIGVsZW1lbnRJbmZvKTsKKwogICAgIHJldHVybiBbVUlNZW51
IG1lbnVXaXRoVGl0bGU6dGl0bGUgY2hpbGRyZW46YWN0aW9uc107CiB9CiAKQEAgLTc2MzIsNyAr
NzYzOCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqdGl0bGVGb3JNZW51KGJvb2wgaXNMaW5rLCBib29s
IHNob3dMaW5rUHJldmlld3MsIGNvbnN0IFVSTCYgdXJsCiAKICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JF
bGVtZW50OmRlZmF1bHRBY3Rpb25zOildKSB7Ci0gICAgICAgICAgICBhdXRvIGRlZmF1bHRBY3Rp
b25zID0gd2tQcmV2aWV3QWN0aW9uc0Zyb21FbGVtZW50QWN0aW9ucyhkZWZhdWx0QWN0aW9uc0Zy
b21Bc3Npc3RhbnQuZ2V0KCksIGVsZW1lbnRJbmZvLmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8g
ZGVmYXVsdEFjdGlvbnMgPSB3a0xlZ2FjeVByZXZpZXdBY3Rpb25zRnJvbUVsZW1lbnRBY3Rpb25z
KGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudC5nZXQoKSwgZWxlbWVudEluZm8uZ2V0KCkpOwog
ICAgICAgICAgICAgYXV0byBwcmV2aWV3RWxlbWVudEluZm8gPSBhZG9wdE5TKFtbV0tQcmV2aWV3
RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aExpbmtVUkw6dXJsXSk7CiAgICAgICAgICAgICBw
cmV2aWV3Vmlld0NvbnRyb2xsZXIgPSBbdWlEZWxlZ2F0ZSB3ZWJWaWV3Ol93ZWJWaWV3IHByZXZp
ZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdldCgpIGRl
ZmF1bHRBY3Rpb25zOmRlZmF1bHRBY3Rpb25zXTsKICAgICAgICAgfSBlbHNlIGlmIChbdWlEZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdWaWV3Q29u
dHJvbGxlckZvclVSTDpkZWZhdWx0QWN0aW9uczplbGVtZW50SW5mbzopXSkKQEAgLTc2NTMsNyAr
NzY1OSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqdGl0bGVGb3JNZW51KGJvb2wgaXNMaW5rLCBib29s
IHNob3dMaW5rUHJldmlld3MsIGNvbnN0IFVSTCYgdXJsCiAgICAgICAgICAgICAgICAgaWYgKF9z
aG93TGlua1ByZXZpZXdzICYmIGRhdGFEZXRlY3RvcnNSZXN1bHQgJiYgZGF0YURldGVjdG9yc1Jl
c3VsdC5nZXQoKS5wcmV2aWV3UHJvdmlkZXIpCiAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0
TWVudUxlZ2FjeVByZXZpZXdDb250cm9sbGVyID0gZGF0YURldGVjdG9yc1Jlc3VsdC5nZXQoKS5w
cmV2aWV3UHJvdmlkZXIoKTsKICAgICAgICAgICAgICAgICBpZiAoZGF0YURldGVjdG9yc1Jlc3Vs
dCAmJiBkYXRhRGV0ZWN0b3JzUmVzdWx0LmdldCgpLmFjdGlvblByb3ZpZGVyKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGF1dG8gbWVudUVsZW1lbnRzID0gbWVudUVsZW1lbnRzRnJvbVByZXZpZXdP
ckRlZmF1bHRzKG5pbCwgZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gbWVudUVsZW1lbnRzID0gbWVudUVsZW1lbnRzRnJv
bURlZmF1bHRBY3Rpb25zKGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCwgZWxlbWVudEluZm8p
OwogICAgICAgICAgICAgICAgICAgICBfY29udGV4dE1lbnVMZWdhY3lNZW51ID0gZGF0YURldGVj
dG9yc1Jlc3VsdC5nZXQoKS5hY3Rpb25Qcm92aWRlcihtZW51RWxlbWVudHMpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAt
NzY2Myw3ICs3NjY5LDcgQEAgc3RhdGljIE5TU3RyaW5nICp0aXRsZUZvck1lbnUoYm9vbCBpc0xp
bmssIGJvb2wgc2hvd0xpbmtQcmV2aWV3cywgY29uc3QgVVJMJiB1cmwKICNlbmRpZgogCiAgICAg
ICAgIGF1dG8gbWVudVRpdGxlID0gdGl0bGVGb3JNZW51KHRydWUsIF9zaG93TGlua1ByZXZpZXdz
LCB1cmwsIF9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlKTsKLSAgICAgICAgX2NvbnRleHRNZW51
TGVnYWN5TWVudSA9IG1lbnVGcm9tUHJldmlld09yRGVmYXVsdHMocHJldmlld1ZpZXdDb250cm9s
bGVyLCBkZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1lbnRJbmZvLCBtZW51VGl0bGUp
OworICAgICAgICBfY29udGV4dE1lbnVMZWdhY3lNZW51ID0gbWVudUZyb21MZWdhY3lQcmV2aWV3
T3JEZWZhdWx0QWN0aW9ucyhwcmV2aWV3Vmlld0NvbnRyb2xsZXIsIGRlZmF1bHRBY3Rpb25zRnJv
bUFzc2lzdGFudCwgZWxlbWVudEluZm8sIG1lbnVUaXRsZSk7CiAKICAgICB9IGVsc2UgaWYgKF9w
b3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UpIHsKICAgICAgICAgTlNVUkwgKm5zVVJMID0gKE5T
VVJMICopdXJsOwpAQCAtNzY5MSw3ICs3Njk3LDcgQEAgc3RhdGljIE5TU3RyaW5nICp0aXRsZUZv
ck1lbnUoYm9vbCBpc0xpbmssIGJvb2wgc2hvd0xpbmtQcmV2aWV3cywgY29uc3QgVVJMJiB1cmwK
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAgICAgYXV0
byBtZW51VGl0bGUgPSB0aXRsZUZvck1lbnUoZmFsc2UsIF9zaG93TGlua1ByZXZpZXdzLCB1cmws
IF9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlKTsKLSAgICAgICAgX2NvbnRleHRNZW51TGVnYWN5
TWVudSA9IG1lbnVGcm9tUHJldmlld09yRGVmYXVsdHMocHJldmlld1ZpZXdDb250cm9sbGVyLCBk
ZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1lbnRJbmZvLCBtZW51VGl0bGUpOworICAg
ICAgICBfY29udGV4dE1lbnVMZWdhY3lNZW51ID0gbWVudUZyb21MZWdhY3lQcmV2aWV3T3JEZWZh
dWx0QWN0aW9ucyhwcmV2aWV3Vmlld0NvbnRyb2xsZXIsIGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lz
dGFudCwgZWxlbWVudEluZm8sIG1lbnVUaXRsZSk7CiAgICAgfQogCiAgICAgX2NvbnRleHRNZW51
TGVnYWN5UHJldmlld0NvbnRyb2xsZXIgPSBfc2hvd0xpbmtQcmV2aWV3cyA/IHByZXZpZXdWaWV3
Q29udHJvbGxlciA6IG51bGxwdHI7CkBAIC03ODM3LDcgKzc4NDMsNyBAQCBzdGF0aWMgTlNTdHJp
bmcgKnRpdGxlRm9yTWVudShib29sIGlzTGluaywgYm9vbCBzaG93TGlua1ByZXZpZXdzLCBjb25z
dCBVUkwmIHVybAogICAgICAgICAgICAgYXV0byBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb246c3Ryb25nU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb25dKTsKICAgICAgICAg
ICAgIFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+IGRlZmF1bHRBY3Rpb25z
RnJvbUFzc2lzdGFudCA9IHN0cm9uZ1NlbGYtPl9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluayA/
IFtzdHJvbmdTZWxmLT5fYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JMaW5r
U2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldIDogW3N0cm9uZ1NlbGYtPl9hY3Rpb25TaGVldEFzc2lz
dGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwogCi0g
ICAgICAgICAgICBhdXRvIG1lbnVFbGVtZW50cyA9IG1lbnVFbGVtZW50c0Zyb21QcmV2aWV3T3JE
ZWZhdWx0cyhuaWwsIGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCwgZWxlbWVudEluZm8pOwor
ICAgICAgICAgICAgYXV0byBtZW51RWxlbWVudHMgPSBtZW51RWxlbWVudHNGcm9tRGVmYXVsdEFj
dGlvbnMoZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7CiAKICAgICAg
ICAgICAgIGlmIChhY3Rpb25Qcm92aWRlckZyb21VSURlbGVnYXRlKQogICAgICAgICAgICAgICAg
IHJldHVybiBhY3Rpb25Qcm92aWRlckZyb21VSURlbGVnYXRlKG1lbnVFbGVtZW50cyk7Cg==
</data>
<flag name="review"
          id="388750"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372976</attachid>
            <date>2019-06-26 17:42:35 -0700</date>
            <delta_ts>2019-06-26 17:42:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199246-20190627104234.patch</filename>
            <type>text/plain</type>
            <size>19822</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc4NTFjZGRiZmY4ZTVlNDE4
N2Q3ZTBkMGRiNWU2MjFkMjA2Yjg2YTQuLjQ5MGU2NzE5OWZkNzNmZTFiNmRlNDcxNjJmOWM2MjEx
YTA0M2JmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTktMDYtMjYgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBVSUFjdGlvbiBpZGVudGlm
aWVycyBmb3IgX1dLRWxlbWVudEFjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5OTI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTIyMTg5
NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
b3JkZXIgZm9yIGNsaWVudHMgdG8gY3JlYXRlIGEgY29udGV4dHVhbCBtZW51LCB0aGV5IGFyZSBn
aXZlbgorICAgICAgICBhIHNldCBvZiBzdWdnZXN0ZWQgVUlBY3Rpb25zLCBjcmVhdGVkIGZyb20g
X1dLRWxlbWVudEFjdGlvbnMuCisgICAgICAgIEJ5IGFzc29jaWF0aW5nIGlkZW50aWZpZXJzIChz
dHJpbmdzKSB3aXRoIHRoZSBVSUFjdGlvbnMsIGNsaWVudHMKKyAgICAgICAgY2FuIGluc3BlY3Qg
dGhlIHN1Z2dlc3Rpb25zIGFuZCBtYWtlIGEgZGVjaXNpb24gb24gd2hldGhlciBvcgorICAgICAg
ICBub3QgdG8gaW5jbHVkZSB0aGVtIGluIHRoZSBmaW5hbCBtZW51LgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmg6IFR5cGVkZWYgVUlBY3Rpb25JZGVu
dGlmaWVyLAorICAgICAgICBhZGQgYSBtZXRob2QgdG8gY3JlYXRlIGEgVUlBY3Rpb24gZnJvbSBh
biBfV0tFbGVtZW50QWN0aW9uLCBhbmQgYQorICAgICAgICBoZWxwZXIgdG8gbWFwIGJldHdlZW4g
aWRlbnRpZmllcnMgYW5kIHR5cGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50QWN0aW9uLm1tOgorICAgICAgICAoZWxlbWVudEFjdGlvblR5cGVUb1VJQWN0aW9u
SWRlbnRpZmllcik6IEhlbHBlciB0byBjb252ZXJ0IGJldHdlZW4gdGhlIHR3byB0eXBlcy4KKyAg
ICAgICAgKHVpQWN0aW9uSWRlbnRpZmllclRvRWxlbWVudEFjdGlvblR5cGUpOiBUaGUgaW52ZXJz
ZSBvZiBhYm92ZS4KKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBlbGVtZW50QWN0aW9uVHlw
ZUZvclVJQWN0aW9uSWRlbnRpZmllcjpdKTogQSBjbGllbnQgZ2l2ZW4KKyAgICAgICAgYSBVSUFj
dGlvbiBvYmplY3QgY2FuIHVzZSB0aGlzIGhlbHBlciBtZXRob2QgdG8gc2VlIHdoYXQgX1dLRWxl
bWVudEFjdGlvblR5cGUgaXQKKyAgICAgICAgY29ycmVzcG9uZHMgdG8uCisgICAgICAgICgtW19X
S0VsZW1lbnRBY3Rpb24gdWlBY3Rpb25Gb3JFbGVtZW50SW5mbzpdKTogVXNlZCBieSBXS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24gdG8KKyAgICAgICAgY3JlYXRlIGEgVUlBY3Rpb24gZnJvbSB0aGlz
IF9XS0VsZW1lbnRBY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKHVpQWN0aW9uRm9yTGVnYWN5UHJldmlld0FjdGlv
bik6IFJlbmFtZWQgdG8gbWFrZSBpdCBjbGVhciB0aGlzIGlzIGEgbGVnYWN5IGFwcHJvYWNoLgor
ICAgICAgICAobWVudUZyb21MZWdhY3lQcmV2aWV3T3JEZWZhdWx0QWN0aW9ucyk6IFNwbGl0IHRo
ZXNlIGZ1bmN0aW9ucyB0byBzZXBhcmF0ZSB0aGUgbGVnYWN5CisgICAgICAgIGFuZCBub24tbGVn
YWN5IGFwcHJvYWNoLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFzc2lnbkxlZ2FjeURhdGFG
b3JDb250ZXh0TWVudUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29u
dGludWVDb250ZXh0TWVudUludGVyYWN0aW9uOl0pOgorICAgICAgICAodWlBY3Rpb25Gb3JQcmV2
aWV3QWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKG1lbnVGcm9tUHJldmlld09yRGVmYXVsdHMp
OiBEZWxldGVkLgorCisKIDIwMTktMDYtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gT2NjYXNpb25hbCBjcmFzaCB1bmRlciAtW1VJUHJl
dmlld1RhcmdldCBpbml0V2l0aENvbnRhaW5lcjpjZW50ZXI6dHJhbnNmb3JtOl0gd2hlbiBnZW5l
cmF0aW5nIGEgZHJhZyBwcmV2aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaAppbmRleCA0NTRkYzZhMTNhMjZlNWFjMThiYWQy
OTg0YWUwOTc4M2RlODZkNTFjLi45ZDBhYjQ2MmNlMzk5ZWFhYjVmZTNlOWU1NGQxNzJmM2Y4NGIw
MGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxl
bWVudEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
bGVtZW50QWN0aW9uLmgKQEAgLTMwLDggKzMwLDExIEBACiAjaW1wb3J0IDxXZWJLaXQvV0tCYXNl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KIAorQGNsYXNz
IFVJQWN0aW9uOwogQGNsYXNzIFVJSW1hZ2U7CiAKK3R5cGVkZWYgTlNTdHJpbmcgKlVJQWN0aW9u
SWRlbnRpZmllcjsKKwogdHlwZWRlZiB2b2lkICheV0tFbGVtZW50QWN0aW9uSGFuZGxlcikoX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKik7CiB0eXBlZGVmIEJPT0wgKF5XS0VsZW1lbnRBY3Rpb25E
aXNtaXNzYWxIYW5kbGVyKSh2b2lkKTsKIApAQCAtNDIsOCArNDUsOCBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9uVHlwZSkgewogICAgIF9XS0VsZW1lbnRBY3Rp
b25UeXBlU2F2ZUltYWdlLAogI2lmICFkZWZpbmVkKFRBUkdFVF9PU19JT1MpIHx8IFRBUkdFVF9P
U19JT1MKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZUFkZFRvUmVhZGluZ0xpc3QsCi0gICAgX1dL
RWxlbWVudEFjdGlvblR5cGVPcGVuSW5EZWZhdWx0QnJvd3NlciBXS19BUElfQVZBSUxBQkxFKGlv
cyg5XzApKSwKLSAgICBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRp
b24gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSksCisgICAgX1dLRWxlbWVudEFjdGlvblR5cGVP
cGVuSW5EZWZhdWx0QnJvd3NlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKSwKKyAgICBfV0tF
bGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb24gV0tfQVBJX0FWQUlMQUJM
RShpb3MoOS4wKSksCiAjZW5kaWYKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpLAogICAgIF9XS0VsZW1lbnRBY3Rp
b25UeXBlT3BlbkluTmV3VGFiIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSksCkBAIC01OSw5ICs2MiwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKICsgKGluc3RhbmNldHlwZSllbGVtZW50QWN0aW9uV2l0aFR5
cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgY3VzdG9tVGl0bGU6KE5TU3RyaW5nICopdGl0
bGU7CiArIChpbnN0YW5jZXR5cGUpZWxlbWVudEFjdGlvbldpdGhUaXRsZTooTlNTdHJpbmcgKil0
aXRsZSBhY3Rpb25IYW5kbGVyOihXS0VsZW1lbnRBY3Rpb25IYW5kbGVyKWhhbmRsZXI7CiAKLSsg
KFVJSW1hZ2UgKilpbWFnZUZvckVsZW1lbnRBY3Rpb25UeXBlOihfV0tFbGVtZW50QWN0aW9uVHlw
ZSlhY3Rpb25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CisrIChVSUltYWdlICopaW1hZ2VGb3JFbGVtZW50QWN0aW9uVHlwZTooX1dLRWxl
bWVudEFjdGlvblR5cGUpYWN0aW9uVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoMTMuMCkpOworKyAoX1dLRWxlbWVudEFjdGlvblR5cGUpZWxlbWVudEFjdGlvblR5
cGVGb3JVSUFjdGlvbklkZW50aWZpZXI6KFVJQWN0aW9uSWRlbnRpZmllcilpZGVudGlmaWVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcygxMy4wKSk7CisKKy0gKHZvaWQp
cnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKDkuMCkpOwogCi0tICh2b2lk
KXJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKilpbmZv
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAoVUlBY3Rpb24gKil1aUFjdGlvbkZvckVs
ZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcygxMy4wKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgX1dLRWxlbWVudEFjdGlvblR5cGUgdHlwZTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcqIHRpdGxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQppbmRleCBjNDQ0
OTNmOTMwYmNkMGU3NWUzZjI5YTdkMDI5ZDAyMzliMjg1NTk2Li41Y2MyYWRjZjNiZGNhODRhMzRm
NzM0OGFlNGViNjNkYzZkOGNjMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQpAQCAtNTAsNiArNTAsMjAgQEAgU09G
VF9MSU5LX0NMQVNTKFNhZmFyaVNlcnZpY2VzLCBTU1JlYWRpbmdMaXN0KTsKIAogdHlwZWRlZiB2
b2lkICheV0tFbGVtZW50QWN0aW9uSGFuZGxlckludGVybmFsKShXS0FjdGlvblNoZWV0QXNzaXN0
YW50ICosIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopOwogCitzdGF0aWMgVUlBY3Rpb25JZGVu
dGlmaWVyIGNvbnN0IFdLRWxlbWVudEFjdGlvblR5cGVDdXN0b21JZGVudGlmaWVyID0gQCJXS0Vs
ZW1lbnRBY3Rpb25UeXBlQ3VzdG9tIjsKK3N0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3Qg
V0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JZGVudGlmaWVyID0gQCJXS0VsZW1lbnRBY3Rpb25UeXBl
T3BlbiI7CitzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVudEFjdGlvblR5
cGVDb3B5SWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZUNvcHkiOworc3RhdGljIFVJ
QWN0aW9uSWRlbnRpZmllciBjb25zdCBXS0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdlSWRlbnRp
ZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFnZSI7CisjaWYgIWRlZmluZWQoVEFS
R0VUX09TX0lPUykgfHwgVEFSR0VUX09TX0lPUworc3RhdGljIFVJQWN0aW9uSWRlbnRpZmllciBj
b25zdCBXS0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFkaW5nTGlzdElkZW50aWZpZXIgPSBAIldL
RWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0IjsKK3N0YXRpYyBVSUFjdGlvbklkZW50
aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRCcm93c2VySWRlbnRp
ZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRCcm93c2VyIjsKK3N0YXRp
YyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVy
bmFsQXBwbGljYXRpb25JZGVudGlmaWVyID0gQCJXS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRXh0
ZXJuYWxBcHBsaWNhdGlvbiI7CisjZW5kaWYKK3N0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29u
c3QgV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlSWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9u
VHlwZVNoYXJlIjsKK3N0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0
aW9uVHlwZU9wZW5Jbk5ld1RhYklkZW50aWZpZXIgPSBAIldLRWxlbWVudEFjdGlvblR5cGVPcGVu
SW5OZXdUYWIiOworc3RhdGljIFVJQWN0aW9uSWRlbnRpZmllciBjb25zdCBXS0VsZW1lbnRBY3Rp
b25UeXBlT3BlbkluTmV3V2luZG93SWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZU9w
ZW5Jbk5ld1dpbmRvdyI7CitzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVu
dEFjdGlvblR5cGVEb3dubG9hZElkZW50aWZpZXIgPSBAIldLRWxlbWVudEFjdGlvblR5cGVEb3du
bG9hZCI7CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tFbGVtZW50QWN0aW9uICB7CiAgICAgUmV0YWlu
UHRyPE5TU3RyaW5nPiBfdGl0bGU7CiAgICAgV0tFbGVtZW50QWN0aW9uSGFuZGxlckludGVybmFs
IF9hY3Rpb25IYW5kbGVyOwpAQCAtMTg4LDYgKzIwMiw5OSBAQCBzdGF0aWMgdm9pZCBhZGRUb1Jl
YWRpbmdMaXN0KE5TVVJMICp0YXJnZXRVUkwsIE5TU3RyaW5nICp0aXRsZSkKIH0KICNlbmRpZgog
CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCitzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGVsZW1l
bnRBY3Rpb25UeXBlVG9VSUFjdGlvbklkZW50aWZpZXIoX1dLRWxlbWVudEFjdGlvblR5cGUgYWN0
aW9uVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGFjdGlvblR5cGUpIHsKKyAgICBjYXNlIF9XS0VsZW1l
bnRBY3Rpb25UeXBlQ3VzdG9tOgorICAgICAgICByZXR1cm4gV0tFbGVtZW50QWN0aW9uVHlwZUN1
c3RvbUlkZW50aWZpZXI7CisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW46CisgICAg
ICAgIHJldHVybiBXS0VsZW1lbnRBY3Rpb25UeXBlT3BlbklkZW50aWZpZXI7CisgICAgY2FzZSBf
V0tFbGVtZW50QWN0aW9uVHlwZUNvcHk6CisgICAgICAgIHJldHVybiBXS0VsZW1lbnRBY3Rpb25U
eXBlQ29weUlkZW50aWZpZXI7CisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFn
ZToKKyAgICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlvblR5cGVTYXZlSW1hZ2VJZGVudGlmaWVy
OworI2lmICFkZWZpbmVkKFRBUkdFVF9PU19JT1MpIHx8IFRBUkdFVF9PU19JT1MKKyAgICBjYXNl
IF9XS0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFkaW5nTGlzdDoKKyAgICAgICAgcmV0dXJuIFdL
RWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0SWRlbnRpZmllcjsKKyAgICBjYXNlIF9X
S0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRGVmYXVsdEJyb3dzZXI6CisgICAgICAgIHJldHVybiBX
S0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRGVmYXVsdEJyb3dzZXJJZGVudGlmaWVyOworICAgIGNh
c2UgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5FeHRlcm5hbEFwcGxpY2F0aW9uOgorICAgICAg
ICByZXR1cm4gV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb25JZGVu
dGlmaWVyOworI2VuZGlmCisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlOgorICAg
ICAgICByZXR1cm4gV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlSWRlbnRpZmllcjsKKyAgICBjYXNl
IF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluTmV3VGFiOgorICAgICAgICByZXR1cm4gV0tFbGVt
ZW50QWN0aW9uVHlwZU9wZW5Jbk5ld1RhYklkZW50aWZpZXI7CisgICAgY2FzZSBfV0tFbGVtZW50
QWN0aW9uVHlwZU9wZW5Jbk5ld1dpbmRvdzoKKyAgICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlv
blR5cGVPcGVuSW5OZXdXaW5kb3dJZGVudGlmaWVyOworICAgIGNhc2UgX1dLRWxlbWVudEFjdGlv
blR5cGVEb3dubG9hZDoKKyAgICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlvblR5cGVEb3dubG9h
ZElkZW50aWZpZXI7CisgICAgfQorfQorCitzdGF0aWMgX1dLRWxlbWVudEFjdGlvblR5cGUgdWlB
Y3Rpb25JZGVudGlmaWVyVG9FbGVtZW50QWN0aW9uVHlwZShVSUFjdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBpZiAoW2lkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOldLRWxlbWVu
dEFjdGlvblR5cGVDdXN0b21JZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIF9XS0VsZW1lbnRB
Y3Rpb25UeXBlQ3VzdG9tOworICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tF
bGVtZW50QWN0aW9uVHlwZU9wZW5JZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIF9XS0VsZW1l
bnRBY3Rpb25UeXBlT3BlbjsKKyAgICBpZiAoW2lkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOldL
RWxlbWVudEFjdGlvblR5cGVDb3B5SWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBfV0tFbGVt
ZW50QWN0aW9uVHlwZUNvcHk7CisgICAgaWYgKFtpZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpX
S0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdlSWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBf
V0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFnZTsKKyNpZiAhZGVmaW5lZChUQVJHRVRfT1NfSU9T
KSB8fCBUQVJHRVRfT1NfSU9TCisgICAgaWYgKFtpZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpX
S0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFkaW5nTGlzdElkZW50aWZpZXJdKQorICAgICAgICBy
ZXR1cm4gX1dLRWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0OworICAgIGlmIChbaWRl
bnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRC
cm93c2VySWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZU9w
ZW5JbkRlZmF1bHRCcm93c2VyOworICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6
V0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb25JZGVudGlmaWVyXSkK
KyAgICAgICAgcmV0dXJuIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRXh0ZXJuYWxBcHBsaWNh
dGlvbjsKKyNlbmRpZgorICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tFbGVt
ZW50QWN0aW9uVHlwZVNoYXJlSWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiBfV0tFbGVtZW50
QWN0aW9uVHlwZVNoYXJlOworICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tF
bGVtZW50QWN0aW9uVHlwZU9wZW5Jbk5ld1RhYklkZW50aWZpZXJdKQorICAgICAgICByZXR1cm4g
X1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5OZXdUYWI7CisgICAgaWYgKFtpZGVudGlmaWVyIGlz
RXF1YWxUb1N0cmluZzpXS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluTmV3V2luZG93SWRlbnRpZmll
cl0pCisgICAgICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5Jbk5ld1dpbmRvdzsK
KyAgICBpZiAoW2lkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOldLRWxlbWVudEFjdGlvblR5cGVE
b3dubG9hZElkZW50aWZpZXJdKQorICAgICAgICByZXR1cm4gX1dLRWxlbWVudEFjdGlvblR5cGVE
b3dubG9hZDsKKworICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZUN1c3RvbTsKK30KKwor
KyAoX1dLRWxlbWVudEFjdGlvblR5cGUpZWxlbWVudEFjdGlvblR5cGVGb3JVSUFjdGlvbklkZW50
aWZpZXI6KFVJQWN0aW9uSWRlbnRpZmllcilpZGVudGlmaWVyCit7CisgICAgcmV0dXJuIHVpQWN0
aW9uSWRlbnRpZmllclRvRWxlbWVudEFjdGlvblR5cGUoaWRlbnRpZmllcik7Cit9CisKKy0gKFVJ
QWN0aW9uICopdWlBY3Rpb25Gb3JFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
KillbGVtZW50SW5mbworeworICAgIFVJSW1hZ2UgKmltYWdlID0gW19XS0VsZW1lbnRBY3Rpb24g
aW1hZ2VGb3JFbGVtZW50QWN0aW9uVHlwZTpzZWxmLnR5cGVdOworICAgIFVJQWN0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyID0gZWxlbWVudEFjdGlvblR5cGVUb1VJQWN0aW9uSWRlbnRpZmllcihz
ZWxmLnR5cGUpOworCisgICAgcmV0dXJuIFtVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6c2VsZi50
aXRsZSBpbWFnZTppbWFnZSBpZGVudGlmaWVyOmlkZW50aWZpZXIgaGFuZGxlcjpbd2Vha1NlbGYg
PSBXZWFrT2JqQ1B0cjxfV0tFbGVtZW50QWN0aW9uPihzZWxmKSwgd2Vha0VsZW1lbnRJbmZvID0g
V2Vha09iakNQdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+KGVsZW1lbnRJbmZvKV0gKFVJQWN0
aW9uICopIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAg
ICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBz
dHJvbmdFbGVtZW50SW5mbyA9IHdlYWtFbGVtZW50SW5mby5nZXQoKTsKKyAgICAgICAgaWYgKCFz
dHJvbmdFbGVtZW50SW5mbykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgW3N0cm9uZ1Nl
bGYgcnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOnN0cm9uZ0VsZW1lbnRJbmZvLmdldCgpXTsKKyAg
ICB9XTsKK30KKyNlbHNlCisrIChfV0tFbGVtZW50QWN0aW9uVHlwZSllbGVtZW50QWN0aW9uVHlw
ZUZvclVJQWN0aW9uSWRlbnRpZmllcjooVUlBY3Rpb25JZGVudGlmaWVyKWlkZW50aWZpZXIKK3sK
KyAgICByZXR1cm4gX1dLRWxlbWVudEFjdGlvblR5cGVDdXN0b207Cit9CisKKy0gKFVJQWN0aW9u
ICopdWlBY3Rpb25Gb3JFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVt
ZW50SW5mbworeworICAgIHJldHVybiBuaWw7Cit9CisjZW5kaWYKKwogQGVuZAogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRkNDJmMGIwMWVhYTFl
MTVlNjRhZDQ5YWM0MWE3ZDhkNTcwMmM2ZTkuLmI1ZDBiNjYzOWRiNTliZTkyNjQyNDE0ODg2YWUz
OGNkMDFhMTAxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzUyOCw3ICs3NTI4LDcgQEAgc3RhdGlj
IGJvb2wgbmVlZHNEZXByZWNhdGVkUHJldmlld0FQSShpZDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRl
KQogfQogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotc3RhdGljIE5TQXJy
YXk8V0tQcmV2aWV3QWN0aW9uICo+ICp3a1ByZXZpZXdBY3Rpb25zRnJvbUVsZW1lbnRBY3Rpb25z
KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqZWxlbWVudEFjdGlvbnMsIF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICplbGVtZW50SW5mbykKK3N0YXRpYyBOU0FycmF5PFdLUHJldmlld0FjdGlv
biAqPiAqd2tMZWdhY3lQcmV2aWV3QWN0aW9uc0Zyb21FbGVtZW50QWN0aW9ucyhOU0FycmF5PF9X
S0VsZW1lbnRBY3Rpb24gKj4gKmVsZW1lbnRBY3Rpb25zLCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqZWxlbWVudEluZm8pCiB7CiAgICAgTlNNdXRhYmxlQXJyYXk8V0tQcmV2aWV3QWN0aW9uICo+
ICpwcmV2aWV3QWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpbZWxl
bWVudEFjdGlvbnMgY291bnRdXTsKICAgICBmb3IgKF9XS0VsZW1lbnRBY3Rpb24gKmVsZW1lbnRB
Y3Rpb24gaW4gZWxlbWVudEFjdGlvbnMpIHsKQEAgLTc1NDEsNyArNzU0MSw3IEBAIHN0YXRpYyBO
U0FycmF5PFdLUHJldmlld0FjdGlvbiAqPiAqd2tQcmV2aWV3QWN0aW9uc0Zyb21FbGVtZW50QWN0
aW9ucyhOU0FycmF5PF9XCiAgICAgcmV0dXJuIHByZXZpZXdBY3Rpb25zOwogfQogCi1zdGF0aWMg
VUlBY3Rpb24gKnVpQWN0aW9uRm9yUHJldmlld0FjdGlvbihVSVByZXZpZXdBY3Rpb24gKnByZXZp
ZXdBY3Rpb24sIFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikKK3N0YXRp
YyBVSUFjdGlvbiAqdWlBY3Rpb25Gb3JMZWdhY3lQcmV2aWV3QWN0aW9uKFVJUHJldmlld0FjdGlv
biAqcHJldmlld0FjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVy
KQogewogICAgIC8vIFVJUHJldmlld0FjdGlvbkl0ZW0uaW1hZ2UgaXMgU1BJLCBzbyBubyBleHRl
cm5hbCBjbGllbnRzIHdpbGwgYmUgYWJsZQogICAgIC8vIHRvIHByb3ZpZGUgZ2x5cGhzIGZvciBh
Y3Rpb25zIDxyZGFyOi8vcHJvYmxlbS81MDE1MTg1NT4uCkBAIC03NTUzLDM4ICs3NTUzLDQ0IEBA
IHN0YXRpYyBVSUFjdGlvbiAqdWlBY3Rpb25Gb3JQcmV2aWV3QWN0aW9uKFVJUHJldmlld0FjdGlv
biAqcHJldmlld0FjdGlvbiwgVUlWaWV3CiB9CiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAotc3RhdGljIE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqbWVudUVsZW1lbnRzRnJv
bVByZXZpZXdPckRlZmF1bHRzKFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxl
ciwgY29uc3QgUmV0YWluUHRyPE5TQXJyYXk+JiBkZWZhdWx0RWxlbWVudEFjdGlvbnMsIFJldGFp
blB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8pCitzdGF0aWMgTlNBcnJh
eTxVSU1lbnVFbGVtZW50ICo+ICptZW51RWxlbWVudHNGcm9tTGVnYWN5UHJldmlldyhVSVZpZXdD
b250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpCiB7Ci0gICAgYXV0byBhY3Rpb25zID0g
W05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OmRlZmF1bHRFbGVtZW50QWN0aW9ucy5n
ZXQoKS5jb3VudF07CisgICAgaWYgKHByZXZpZXdWaWV3Q29udHJvbGxlcikKKyAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIC8vIE9uZSBvZiB0aGUgZGVsZWdhdGVzIG1heSBoYXZlIHByb3ZpZGVk
IGEgVUlWaWV3Q29udHJvbGxlciB3aXRoIGEgcHJldmlld0FjdGlvbkl0ZW1zIGFycmF5LiBJZiBz
bywKLSAgICAvLyB3ZSBuZWVkIHRvIGNvbnZlcnQgZWFjaCBVSVByZXZpZXdBY3Rpb25JdGVtIGlu
dG8gYSBVSUFjdGlvbi4KLSAgICBpZiAocHJldmlld1ZpZXdDb250cm9sbGVyKSB7Ci0gICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgIE5TQXJyYXk8aWQ8
VUlQcmV2aWV3QWN0aW9uSXRlbT4+ICpwcmV2aWV3QWN0aW9ucyA9IHByZXZpZXdWaWV3Q29udHJv
bGxlci5wcmV2aWV3QWN0aW9uSXRlbXM7Ci0gICAgICAgIGZvciAoVUlQcmV2aWV3QWN0aW9uICpw
cmV2aWV3QWN0aW9uIGluIHByZXZpZXdBY3Rpb25zKQotICAgICAgICAgICAgW2FjdGlvbnMgYWRk
T2JqZWN0OnVpQWN0aW9uRm9yUHJldmlld0FjdGlvbihwcmV2aWV3QWN0aW9uLCBwcmV2aWV3Vmll
d0NvbnRyb2xsZXIpXTsKLSAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
Ci0gICAgfQorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgTlNB
cnJheTxpZDxVSVByZXZpZXdBY3Rpb25JdGVtPj4gKnByZXZpZXdBY3Rpb25zID0gcHJldmlld1Zp
ZXdDb250cm9sbGVyLnByZXZpZXdBY3Rpb25JdGVtczsKKyAgICBpZiAoIXByZXZpZXdBY3Rpb25z
IHx8ICFbcHJldmlld0FjdGlvbnMgY291bnRdKQorICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
aWYgKCFbYWN0aW9ucyBjb3VudF0pIHsKLSAgICAgICAgLy8gV2UgZWl0aGVyIGRpZG4ndCBnZXQg
YSBjdXN0b20gcHJldmlldyBVSVZpZXdDb250cm9sbGVyLCBvciBpdCBkaWRuJ3QgcHJvdmlkZSBh
bnkgYWN0aW9ucwotICAgICAgICAvLyBzbyB3ZSBzaG91bGQgdXNlIHRoZSBkZWZhdWx0IHNldC4K
LSAgICAgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICplbGVtZW50QWN0aW9uIGluIGRlZmF1bHRF
bGVtZW50QWN0aW9ucy5nZXQoKSkgewotICAgICAgICAgICAgVUlJbWFnZSAqaW1hZ2UgPSBbX1dL
RWxlbWVudEFjdGlvbiBpbWFnZUZvckVsZW1lbnRBY3Rpb25UeXBlOmVsZW1lbnRBY3Rpb24udHlw
ZV07CisgICAgYXV0byBhY3Rpb25zID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5
OnByZXZpZXdBY3Rpb25zLmNvdW50XTsKIAotICAgICAgICAgICAgW2FjdGlvbnMgYWRkT2JqZWN0
OltVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6ZWxlbWVudEFjdGlvbi50aXRsZSBpbWFnZTppbWFn
ZSBpZGVudGlmaWVyOm5pbCBoYW5kbGVyOl4oVUlBY3Rpb24gKikgewotICAgICAgICAgICAgICAg
IFtlbGVtZW50QWN0aW9uIHJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzplbGVtZW50SW5mby5nZXQo
KV07Ci0gICAgICAgICAgICB9XV07Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChVSVByZXZp
ZXdBY3Rpb24gKnByZXZpZXdBY3Rpb24gaW4gcHJldmlld0FjdGlvbnMpCisgICAgICAgIFthY3Rp
b25zIGFkZE9iamVjdDp1aUFjdGlvbkZvckxlZ2FjeVByZXZpZXdBY3Rpb24ocHJldmlld0FjdGlv
biwgcHJldmlld1ZpZXdDb250cm9sbGVyKV07CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICByZXR1cm4gYWN0aW9uczsKIH0KIAotc3RhdGljIFVJTWVudSAqbWVu
dUZyb21QcmV2aWV3T3JEZWZhdWx0cyhVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRy
b2xsZXIsIGNvbnN0IFJldGFpblB0cjxOU0FycmF5PiYgZGVmYXVsdEVsZW1lbnRBY3Rpb25zLCBS
ZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvLCBOU1N0cmluZyAq
dGl0bGUpCitzdGF0aWMgTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICptZW51RWxlbWVudHNGcm9t
RGVmYXVsdEFjdGlvbnMoY29uc3QgUmV0YWluUHRyPE5TQXJyYXk+JiBkZWZhdWx0RWxlbWVudEFj
dGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8pCiB7
Ci0gICAgYXV0byBhY3Rpb25zID0gbWVudUVsZW1lbnRzRnJvbVByZXZpZXdPckRlZmF1bHRzKHBy
ZXZpZXdWaWV3Q29udHJvbGxlciwgZGVmYXVsdEVsZW1lbnRBY3Rpb25zLCBlbGVtZW50SW5mbyk7
CisgICAgaWYgKCFkZWZhdWx0RWxlbWVudEFjdGlvbnMgfHwgIWRlZmF1bHRFbGVtZW50QWN0aW9u
cy5nZXQoKS5jb3VudCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gYWN0aW9ucyA9
IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpkZWZhdWx0RWxlbWVudEFjdGlvbnMu
Z2V0KCkuY291bnRdOworCisgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICplbGVtZW50QWN0aW9u
IGluIGRlZmF1bHRFbGVtZW50QWN0aW9ucy5nZXQoKSkKKyAgICAgICAgW2FjdGlvbnMgYWRkT2Jq
ZWN0OltlbGVtZW50QWN0aW9uIHVpQWN0aW9uRm9yRWxlbWVudEluZm86ZWxlbWVudEluZm8uZ2V0
KCldXTsKKworICAgIHJldHVybiBhY3Rpb25zOworfQorCitzdGF0aWMgVUlNZW51ICptZW51RnJv
bUxlZ2FjeVByZXZpZXdPckRlZmF1bHRBY3Rpb25zKFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdW
aWV3Q29udHJvbGxlciwgY29uc3QgUmV0YWluUHRyPE5TQXJyYXk+JiBkZWZhdWx0RWxlbWVudEFj
dGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8sIE5T
U3RyaW5nICp0aXRsZSkKK3sKKyAgICBhdXRvIGFjdGlvbnMgPSBtZW51RWxlbWVudHNGcm9tTGVn
YWN5UHJldmlldyhwcmV2aWV3Vmlld0NvbnRyb2xsZXIpOworICAgIGlmICghYWN0aW9ucykKKyAg
ICAgICAgYWN0aW9ucyA9IG1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhkZWZhdWx0RWxl
bWVudEFjdGlvbnMsIGVsZW1lbnRJbmZvKTsKKwogICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRo
VGl0bGU6dGl0bGUgY2hpbGRyZW46YWN0aW9uc107CiB9CiAKQEAgLTc2MzIsNyArNzYzOCw3IEBA
IHN0YXRpYyBOU1N0cmluZyAqdGl0bGVGb3JNZW51KGJvb2wgaXNMaW5rLCBib29sIHNob3dMaW5r
UHJldmlld3MsIGNvbnN0IFVSTCYgdXJsCiAKICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Iod2ViVmlldzpwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRl
ZmF1bHRBY3Rpb25zOildKSB7Ci0gICAgICAgICAgICBhdXRvIGRlZmF1bHRBY3Rpb25zID0gd2tQ
cmV2aWV3QWN0aW9uc0Zyb21FbGVtZW50QWN0aW9ucyhkZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3Rh
bnQuZ2V0KCksIGVsZW1lbnRJbmZvLmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8gZGVmYXVsdEFj
dGlvbnMgPSB3a0xlZ2FjeVByZXZpZXdBY3Rpb25zRnJvbUVsZW1lbnRBY3Rpb25zKGRlZmF1bHRB
Y3Rpb25zRnJvbUFzc2lzdGFudC5nZXQoKSwgZWxlbWVudEluZm8uZ2V0KCkpOwogICAgICAgICAg
ICAgYXV0byBwcmV2aWV3RWxlbWVudEluZm8gPSBhZG9wdE5TKFtbV0tQcmV2aWV3RWxlbWVudElu
Zm8gYWxsb2NdIF9pbml0V2l0aExpbmtVUkw6dXJsXSk7CiAgICAgICAgICAgICBwcmV2aWV3Vmll
d0NvbnRyb2xsZXIgPSBbdWlEZWxlZ2F0ZSB3ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdpbmdWaWV3
Q29udHJvbGxlckZvckVsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdldCgpIGRlZmF1bHRBY3Rp
b25zOmRlZmF1bHRBY3Rpb25zXTsKICAgICAgICAgfSBlbHNlIGlmIChbdWlEZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdWaWV3Q29udHJvbGxlckZv
clVSTDpkZWZhdWx0QWN0aW9uczplbGVtZW50SW5mbzopXSkKQEAgLTc2NTMsNyArNzY1OSw3IEBA
IHN0YXRpYyBOU1N0cmluZyAqdGl0bGVGb3JNZW51KGJvb2wgaXNMaW5rLCBib29sIHNob3dMaW5r
UHJldmlld3MsIGNvbnN0IFVSTCYgdXJsCiAgICAgICAgICAgICAgICAgaWYgKF9zaG93TGlua1By
ZXZpZXdzICYmIGRhdGFEZXRlY3RvcnNSZXN1bHQgJiYgZGF0YURldGVjdG9yc1Jlc3VsdC5nZXQo
KS5wcmV2aWV3UHJvdmlkZXIpCiAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0TWVudUxlZ2Fj
eVByZXZpZXdDb250cm9sbGVyID0gZGF0YURldGVjdG9yc1Jlc3VsdC5nZXQoKS5wcmV2aWV3UHJv
dmlkZXIoKTsKICAgICAgICAgICAgICAgICBpZiAoZGF0YURldGVjdG9yc1Jlc3VsdCAmJiBkYXRh
RGV0ZWN0b3JzUmVzdWx0LmdldCgpLmFjdGlvblByb3ZpZGVyKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGF1dG8gbWVudUVsZW1lbnRzID0gbWVudUVsZW1lbnRzRnJvbVByZXZpZXdPckRlZmF1bHRz
KG5pbCwgZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7CisgICAgICAg
ICAgICAgICAgICAgIGF1dG8gbWVudUVsZW1lbnRzID0gbWVudUVsZW1lbnRzRnJvbURlZmF1bHRB
Y3Rpb25zKGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCwgZWxlbWVudEluZm8pOwogICAgICAg
ICAgICAgICAgICAgICBfY29udGV4dE1lbnVMZWdhY3lNZW51ID0gZGF0YURldGVjdG9yc1Jlc3Vs
dC5nZXQoKS5hY3Rpb25Qcm92aWRlcihtZW51RWxlbWVudHMpOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtNzY2Myw3ICs3
NjY5LDcgQEAgc3RhdGljIE5TU3RyaW5nICp0aXRsZUZvck1lbnUoYm9vbCBpc0xpbmssIGJvb2wg
c2hvd0xpbmtQcmV2aWV3cywgY29uc3QgVVJMJiB1cmwKICNlbmRpZgogCiAgICAgICAgIGF1dG8g
bWVudVRpdGxlID0gdGl0bGVGb3JNZW51KHRydWUsIF9zaG93TGlua1ByZXZpZXdzLCB1cmwsIF9w
b3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlKTsKLSAgICAgICAgX2NvbnRleHRNZW51TGVnYWN5TWVu
dSA9IG1lbnVGcm9tUHJldmlld09yRGVmYXVsdHMocHJldmlld1ZpZXdDb250cm9sbGVyLCBkZWZh
dWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1lbnRJbmZvLCBtZW51VGl0bGUpOworICAgICAg
ICBfY29udGV4dE1lbnVMZWdhY3lNZW51ID0gbWVudUZyb21MZWdhY3lQcmV2aWV3T3JEZWZhdWx0
QWN0aW9ucyhwcmV2aWV3Vmlld0NvbnRyb2xsZXIsIGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFu
dCwgZWxlbWVudEluZm8sIG1lbnVUaXRsZSk7CiAKICAgICB9IGVsc2UgaWYgKF9wb3NpdGlvbklu
Zm9ybWF0aW9uLmlzSW1hZ2UpIHsKICAgICAgICAgTlNVUkwgKm5zVVJMID0gKE5TVVJMICopdXJs
OwpAQCAtNzY5MSw3ICs3Njk3LDcgQEAgc3RhdGljIE5TU3RyaW5nICp0aXRsZUZvck1lbnUoYm9v
bCBpc0xpbmssIGJvb2wgc2hvd0xpbmtQcmV2aWV3cywgY29uc3QgVVJMJiB1cmwKICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAgICAgYXV0byBtZW51VGl0
bGUgPSB0aXRsZUZvck1lbnUoZmFsc2UsIF9zaG93TGlua1ByZXZpZXdzLCB1cmwsIF9wb3NpdGlv
bkluZm9ybWF0aW9uLnRpdGxlKTsKLSAgICAgICAgX2NvbnRleHRNZW51TGVnYWN5TWVudSA9IG1l
bnVGcm9tUHJldmlld09yRGVmYXVsdHMocHJldmlld1ZpZXdDb250cm9sbGVyLCBkZWZhdWx0QWN0
aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1lbnRJbmZvLCBtZW51VGl0bGUpOworICAgICAgICBfY29u
dGV4dE1lbnVMZWdhY3lNZW51ID0gbWVudUZyb21MZWdhY3lQcmV2aWV3T3JEZWZhdWx0QWN0aW9u
cyhwcmV2aWV3Vmlld0NvbnRyb2xsZXIsIGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCwgZWxl
bWVudEluZm8sIG1lbnVUaXRsZSk7CiAgICAgfQogCiAgICAgX2NvbnRleHRNZW51TGVnYWN5UHJl
dmlld0NvbnRyb2xsZXIgPSBfc2hvd0xpbmtQcmV2aWV3cyA/IHByZXZpZXdWaWV3Q29udHJvbGxl
ciA6IG51bGxwdHI7CkBAIC03ODM3LDcgKzc4NDMsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnRpdGxl
Rm9yTWVudShib29sIGlzTGluaywgYm9vbCBzaG93TGlua1ByZXZpZXdzLCBjb25zdCBVUkwmIHVy
bAogICAgICAgICAgICAgYXV0byBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246c3Ryb25nU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb25dKTsKICAgICAgICAgICAgIFJldGFp
blB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+IGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lz
dGFudCA9IHN0cm9uZ1NlbGYtPl9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluayA/IFtzdHJvbmdT
ZWxmLT5fYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxl
bWVudEluZm8uZ2V0KCldIDogW3N0cm9uZ1NlbGYtPl9hY3Rpb25TaGVldEFzc2lzdGFudCBkZWZh
dWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwogCi0gICAgICAgICAg
ICBhdXRvIG1lbnVFbGVtZW50cyA9IG1lbnVFbGVtZW50c0Zyb21QcmV2aWV3T3JEZWZhdWx0cyhu
aWwsIGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCwgZWxlbWVudEluZm8pOworICAgICAgICAg
ICAgYXV0byBtZW51RWxlbWVudHMgPSBtZW51RWxlbWVudHNGcm9tRGVmYXVsdEFjdGlvbnMoZGVm
YXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7CiAKICAgICAgICAgICAgIGlm
IChhY3Rpb25Qcm92aWRlckZyb21VSURlbGVnYXRlKQogICAgICAgICAgICAgICAgIHJldHVybiBh
Y3Rpb25Qcm92aWRlckZyb21VSURlbGVnYXRlKG1lbnVFbGVtZW50cyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>