<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.mozilla.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="20260825.1"
          urlbase="https://bugzilla.mozilla.org/"
          
          maintainer="bmo-mods@mozilla.com"
>

    <bug>
          <bug_id>239279</bug_id>
          <alias>mzlu</alias>
          <filed_via>unknown</filed_via>
          <creation_ts>2004-03-31 09:34:08 -0800</creation_ts>
          <short_desc>Need Mozilla binary that supports Windows unicode API</short_desc>
          <delta_ts>2008-04-13 18:04:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Components</classification>
          <product>Core</product>
          <component>Internationalization</component>
          <version>Trunk</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Windows 2000</op_sys>
          <bug_type>enhancement</bug_type>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>intl</keywords>
          <priority>--</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>131063</blocked>
    
    <blocked>162361</blocked>
    
    <blocked>167128</blocked>
    
    <blocked>231426</blocked>
    
    <blocked>240272</blocked>
    
    <blocked>251897</blocked>
    
    <blocked>253035</blocked>
    
    <blocked>253164</blocked>
    
    <blocked>262922</blocked>
    
    <blocked>272166</blocked>
    
    <blocked>272167</blocked>
    
    <blocked>361543</blocked>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andre-John Mas">andrejohn.mas</reporter>
          <assigned_to name="Jungshik Shin">jshin1987</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bernard.alleysson</cc>
    
    <cc>blizzard</cc>
    
    <cc>brendan</cc>
    
    <cc>cbiesinger</cc>
    
    <cc>chofmann</cc>
    
    <cc>darin.moz</cc>
    
    <cc>davidf</cc>
    
    <cc>dbaron</cc>
    
    <cc>deegg</cc>
    
    <cc>gavin.sharp</cc>
    
    <cc>hackwrench1</cc>
    
    <cc>jshin1987</cc>
    
    <cc>jwalden</cc>
    
    <cc>masayuki</cc>
    
    <cc>mozilla0K2TY</cc>
    
    <cc>Naoto.Sato</cc>
    
    <cc>neil</cc>
    
    <cc>pavel.penaz</cc>
    
    <cc>pcvrcek</cc>
    
    <cc>pkwarren</cc>
    
    <cc>roc</cc>
    
    <cc>ryanvm</cc>
    
    <cc>shanjian</cc>
    
    <cc>smontagu</cc>
    
    <cc>ted</cc>
    
    <cc>tetsuroy</cc>
    
    <cc>wtc</cc>
          <qa_contact name="Yuying Long">amyy</qa_contact>
          <cf_root_cause>---</cf_root_cause>
          <cf_firefox_messaging_system>---</cf_firefox_messaging_system>
          <cf_backlog>---</cf_backlog>
          <cf_tracking_e10s>---</cf_tracking_e10s>
          <cf_geckoview>---</cf_geckoview>
          <cf_bmo_component_move>---</cf_bmo_component_move>
          <cf_tracking_p11>---</cf_tracking_p11>
          <cf_data_science_product_support_area>---</cf_data_science_product_support_area>
          <cf_platform_rel>---</cf_platform_rel>
          <cf_blocking_webextensions>---</cf_blocking_webextensions>
          <cf_tracking_win>---</cf_tracking_win>
          <cf_tracking_firefox5>---</cf_tracking_firefox5>
          <cf_status_firefox5>---</cf_status_firefox5>
          <cf_tracking_firefox6>---</cf_tracking_firefox6>
          <cf_status_firefox6>---</cf_status_firefox6>
          <cf_tracking_firefox7>---</cf_tracking_firefox7>
          <cf_status_firefox7>---</cf_status_firefox7>
          <cf_tracking_firefox8>---</cf_tracking_firefox8>
          <cf_status_firefox8>---</cf_status_firefox8>
          <cf_tracking_firefox9>---</cf_tracking_firefox9>
          <cf_a11y_review_project_flag>---</cf_a11y_review_project_flag>
          <cf_status_firefox9>---</cf_status_firefox9>
          <cf_tracking_firefox10>---</cf_tracking_firefox10>
          <cf_status_firefox10>---</cf_status_firefox10>
          <cf_tracking_firefox11>---</cf_tracking_firefox11>
          <cf_status_firefox11>---</cf_status_firefox11>
          <cf_tracking_firefox12>---</cf_tracking_firefox12>
          <cf_status_firefox12>---</cf_status_firefox12>
          <cf_tracking_firefox13>---</cf_tracking_firefox13>
          <cf_status_firefox13>---</cf_status_firefox13>
          <cf_tracking_firefox14>---</cf_tracking_firefox14>
          <cf_status_firefox14>---</cf_status_firefox14>
          <cf_accessibility_severity>---</cf_accessibility_severity>
          <cf_tracking_firefox15>---</cf_tracking_firefox15>
          <cf_status_firefox15>---</cf_status_firefox15>
          <cf_tracking_firefox16>---</cf_tracking_firefox16>
          <cf_status_firefox16>---</cf_status_firefox16>
          <cf_tracking_firefox17>---</cf_tracking_firefox17>
          <cf_status_firefox17>---</cf_status_firefox17>
          <cf_tracking_firefox18>---</cf_tracking_firefox18>
          <cf_status_firefox18>---</cf_status_firefox18>
          <cf_tracking_firefox19>---</cf_tracking_firefox19>
          <cf_status_firefox19>---</cf_status_firefox19>
          <cf_install_update_workflow>---</cf_install_update_workflow>
          <cf_tracking_firefox20>---</cf_tracking_firefox20>
          <cf_status_firefox20>---</cf_status_firefox20>
          <cf_tracking_firefox21>---</cf_tracking_firefox21>
          <cf_status_firefox21>---</cf_status_firefox21>
          <cf_tracking_firefox22>---</cf_tracking_firefox22>
          <cf_status_firefox22>---</cf_status_firefox22>
          <cf_tracking_firefox23>---</cf_tracking_firefox23>
          <cf_status_firefox23>---</cf_status_firefox23>
          <cf_tracking_firefox24>---</cf_tracking_firefox24>
          <cf_status_firefox24>---</cf_status_firefox24>
          <cf_performance_impact>---</cf_performance_impact>
          <cf_tracking_firefox25>---</cf_tracking_firefox25>
          <cf_status_firefox25>---</cf_status_firefox25>
          <cf_tracking_firefox26>---</cf_tracking_firefox26>
          <cf_status_firefox26>---</cf_status_firefox26>
          <cf_tracking_firefox27>---</cf_tracking_firefox27>
          <cf_status_firefox27>---</cf_status_firefox27>
          <cf_tracking_firefox28>---</cf_tracking_firefox28>
          <cf_status_firefox28>---</cf_status_firefox28>
          <cf_tracking_firefox29>---</cf_tracking_firefox29>
          <cf_size_estimate>---</cf_size_estimate>
          <cf_status_firefox29>---</cf_status_firefox29>
          <cf_tracking_firefox30>---</cf_tracking_firefox30>
          <cf_status_firefox30>---</cf_status_firefox30>
          <cf_tracking_firefox31>---</cf_tracking_firefox31>
          <cf_status_firefox31>---</cf_status_firefox31>
          <cf_tracking_firefox32>---</cf_tracking_firefox32>
          <cf_status_firefox32>---</cf_status_firefox32>
          <cf_tracking_firefox33>---</cf_tracking_firefox33>
          <cf_status_firefox33>---</cf_status_firefox33>
          <cf_tracking_firefox34>---</cf_tracking_firefox34>
          <cf_status_firefox34>---</cf_status_firefox34>
          <cf_webcompat_priority>---</cf_webcompat_priority>
          <cf_tracking_firefox35>---</cf_tracking_firefox35>
          <cf_status_firefox35>---</cf_status_firefox35>
          <cf_tracking_firefox36>---</cf_tracking_firefox36>
          <cf_status_firefox36>---</cf_status_firefox36>
          <cf_tracking_firefox37>---</cf_tracking_firefox37>
          <cf_status_firefox37>---</cf_status_firefox37>
          <cf_tracking_firefox38>---</cf_tracking_firefox38>
          <cf_status_firefox38>---</cf_status_firefox38>
          <cf_tracking_firefox38_0_5>---</cf_tracking_firefox38_0_5>
          <cf_status_firefox38_0_5>---</cf_status_firefox38_0_5>
          <cf_tracking_firefox39>---</cf_tracking_firefox39>
          <cf_webcompat_score>---</cf_webcompat_score>
          <cf_status_firefox39>---</cf_status_firefox39>
          <cf_tracking_firefox40>---</cf_tracking_firefox40>
          <cf_status_firefox40>---</cf_status_firefox40>
          <cf_tracking_firefox41>---</cf_tracking_firefox41>
          <cf_status_firefox41>---</cf_status_firefox41>
          <cf_tracking_firefox42>---</cf_tracking_firefox42>
          <cf_status_firefox42>---</cf_status_firefox42>
          <cf_tracking_firefox43>---</cf_tracking_firefox43>
          <cf_status_firefox43>---</cf_status_firefox43>
          <cf_tracking_firefox44>---</cf_tracking_firefox44>
          <cf_status_firefox44>---</cf_status_firefox44>
          <cf_tracking_firefox45>---</cf_tracking_firefox45>
          <cf_status_firefox45>---</cf_status_firefox45>
          <cf_tracking_firefox46>---</cf_tracking_firefox46>
          <cf_status_firefox46>---</cf_status_firefox46>
          <cf_tracking_firefox47>---</cf_tracking_firefox47>
          <cf_status_firefox47>---</cf_status_firefox47>
          <cf_tracking_firefox48>---</cf_tracking_firefox48>
          <cf_status_firefox48>---</cf_status_firefox48>
          <cf_tracking_firefox49>---</cf_tracking_firefox49>
          <cf_status_firefox49>---</cf_status_firefox49>
          <cf_tracking_esr10>---</cf_tracking_esr10>
          <cf_status_esr10>---</cf_status_esr10>
          <cf_tracking_firefox_esr17>---</cf_tracking_firefox_esr17>
          <cf_status_firefox_esr17>---</cf_status_firefox_esr17>
          <cf_tracking_firefox_esr24>---</cf_tracking_firefox_esr24>
          <cf_status_firefox_esr24>---</cf_status_firefox_esr24>
          <cf_tracking_firefox_esr31>---</cf_tracking_firefox_esr31>
          <cf_status_firefox_esr31>---</cf_status_firefox_esr31>
          <cf_tracking_firefox_esr38>---</cf_tracking_firefox_esr38>
          <cf_status_firefox_esr38>---</cf_status_firefox_esr38>
          <cf_tracking_firefox_esr45>---</cf_tracking_firefox_esr45>
          <cf_status_firefox_esr45>---</cf_status_firefox_esr45>
          <cf_tracking_b2g18>---</cf_tracking_b2g18>
          <cf_status_b2g18>---</cf_status_b2g18>
          <cf_status_b2g30>---</cf_status_b2g30>
          <cf_status_b2g18_1_0_0>---</cf_status_b2g18_1_0_0>
          <cf_status_b2g18_1_0_1>---</cf_status_b2g18_1_0_1>
          <cf_status_b2g_1_1_hd>---</cf_status_b2g_1_1_hd>
          <cf_tracking_b2g_v1_2>---</cf_tracking_b2g_v1_2>
          <cf_status_b2g_1_2>---</cf_status_b2g_1_2>
          <cf_tracking_b2g_v1_3>---</cf_tracking_b2g_v1_3>
          <cf_status_b2g_1_3>---</cf_status_b2g_1_3>
          <cf_status_b2g_1_3t>---</cf_status_b2g_1_3t>
          <cf_blocking_20>---</cf_blocking_20>
          <cf_status_20>---</cf_status_20>
          <cf_status_b2g_1_4>---</cf_status_b2g_1_4>
          <cf_status_b2g_2_0>---</cf_status_b2g_2_0>
          <cf_status_b2g_2_0m>---</cf_status_b2g_2_0m>
          <cf_status_b2g_2_1>---</cf_status_b2g_2_1>
          <cf_status_b2g_2_1_s>---</cf_status_b2g_2_1_s>
          <cf_status_b2g_2_2>---</cf_status_b2g_2_2>
          <cf_status_b2g_2_5>---</cf_status_b2g_2_5>
          <cf_status_b2g_2_6>---</cf_status_b2g_2_6>
          <cf_status_b2g_2_2r>---</cf_status_b2g_2_2r>
          <cf_blocking_192>---</cf_blocking_192>
          <cf_status_192>---</cf_status_192>
          <cf_blocking_191>---</cf_blocking_191>
          <cf_tracking_fxios>---</cf_tracking_fxios>
          <cf_tracking_nss>---</cf_tracking_nss>
          <cf_status_nss>---</cf_status_nss>
          <cf_tracking_firefox_relnote>---</cf_tracking_firefox_relnote>
          <cf_status_b2g_master>---</cf_status_b2g_master>
          <cf_blocking_fx>---</cf_blocking_fx>
          <cf_tracking_relnote_b2g>---</cf_tracking_relnote_b2g>
          <cf_tracking_thunderbird_relnote>---</cf_tracking_thunderbird_relnote>
          <cf_status_conduit_push>---</cf_status_conduit_push>
          <cf_status_191>---</cf_status_191>
          <cf_tracking_conduit_push>---</cf_tracking_conduit_push>
          <cf_tracking_firefox_sumo>---</cf_tracking_firefox_sumo>
          <cf_status_bmo_push>---</cf_status_bmo_push>
          <cf_tracking_bmo_push>---</cf_tracking_bmo_push>
          <cf_blocking_fennec10>---</cf_blocking_fennec10>
          <cf_blocking_fennec>---</cf_blocking_fennec>
          <cf_blocking_thunderbird33>---</cf_blocking_thunderbird33>
          <cf_status_thunderbird33>---</cf_status_thunderbird33>
          <cf_blocking_thunderbird32>---</cf_blocking_thunderbird32>
          <cf_status_thunderbird32>---</cf_status_thunderbird32>
          <cf_blocking_thunderbird31>---</cf_blocking_thunderbird31>
          <cf_status_thunderbird31>---</cf_status_thunderbird31>
          <cf_blocking_thunderbird30>---</cf_blocking_thunderbird30>
          <cf_status_thunderbird30>---</cf_status_thunderbird30>
          <cf_tracking_thunderbird6>---</cf_tracking_thunderbird6>
          <cf_status_thunderbird6>---</cf_status_thunderbird6>
          <cf_tracking_thunderbird7>---</cf_tracking_thunderbird7>
          <cf_status_thunderbird7>---</cf_status_thunderbird7>
          <cf_tracking_thunderbird8>---</cf_tracking_thunderbird8>
          <cf_status_thunderbird8>---</cf_status_thunderbird8>
          <cf_tracking_thunderbird9>---</cf_tracking_thunderbird9>
          <cf_status_thunderbird9>---</cf_status_thunderbird9>
          <cf_tracking_thunderbird10>---</cf_tracking_thunderbird10>
          <cf_status_thunderbird10>---</cf_status_thunderbird10>
          <cf_tracking_thunderbird11>---</cf_tracking_thunderbird11>
          <cf_status_thunderbird11>---</cf_status_thunderbird11>
          <cf_tracking_thunderbird12>---</cf_tracking_thunderbird12>
          <cf_status_thunderbird12>---</cf_status_thunderbird12>
          <cf_tracking_thunderbird13>---</cf_tracking_thunderbird13>
          <cf_status_thunderbird13>---</cf_status_thunderbird13>
          <cf_tracking_thunderbird14>---</cf_tracking_thunderbird14>
          <cf_status_thunderbird14>---</cf_status_thunderbird14>
          <cf_tracking_thunderbird15>---</cf_tracking_thunderbird15>
          <cf_status_thunderbird15>---</cf_status_thunderbird15>
          <cf_tracking_thunderbird16>---</cf_tracking_thunderbird16>
          <cf_status_thunderbird16>---</cf_status_thunderbird16>
          <cf_tracking_thunderbird17>---</cf_tracking_thunderbird17>
          <cf_status_thunderbird17>---</cf_status_thunderbird17>
          <cf_tracking_thunderbird18>---</cf_tracking_thunderbird18>
          <cf_status_thunderbird18>---</cf_status_thunderbird18>
          <cf_tracking_thunderbird19>---</cf_tracking_thunderbird19>
          <cf_status_thunderbird19>---</cf_status_thunderbird19>
          <cf_tracking_thunderbird20>---</cf_tracking_thunderbird20>
          <cf_status_thunderbird20>---</cf_status_thunderbird20>
          <cf_tracking_thunderbird21>---</cf_tracking_thunderbird21>
          <cf_status_thunderbird21>---</cf_status_thunderbird21>
          <cf_tracking_thunderbird22>---</cf_tracking_thunderbird22>
          <cf_status_thunderbird22>---</cf_status_thunderbird22>
          <cf_tracking_thunderbird23>---</cf_tracking_thunderbird23>
          <cf_status_thunderbird23>---</cf_status_thunderbird23>
          <cf_tracking_thunderbird24>---</cf_tracking_thunderbird24>
          <cf_status_thunderbird24>---</cf_status_thunderbird24>
          <cf_tracking_thunderbird25>---</cf_tracking_thunderbird25>
          <cf_status_thunderbird25>---</cf_status_thunderbird25>
          <cf_tracking_thunderbird26>---</cf_tracking_thunderbird26>
          <cf_status_thunderbird26>---</cf_status_thunderbird26>
          <cf_tracking_thunderbird27>---</cf_tracking_thunderbird27>
          <cf_status_thunderbird27>---</cf_status_thunderbird27>
          <cf_tracking_thunderbird28>---</cf_tracking_thunderbird28>
          <cf_status_thunderbird28>---</cf_status_thunderbird28>
          <cf_tracking_thunderbird29>---</cf_tracking_thunderbird29>
          <cf_status_thunderbird29>---</cf_status_thunderbird29>
          <cf_tracking_thunderbird_30>---</cf_tracking_thunderbird_30>
          <cf_status_thunderbird_30>---</cf_status_thunderbird_30>
          <cf_tracking_thunderbird_31>---</cf_tracking_thunderbird_31>
          <cf_status_thunderbird_31>---</cf_status_thunderbird_31>
          <cf_tracking_thunderbird_32>---</cf_tracking_thunderbird_32>
          <cf_status_thunderbird_32>---</cf_status_thunderbird_32>
          <cf_tracking_thunderbird_esr10>---</cf_tracking_thunderbird_esr10>
          <cf_status_thunderbird_esr10>---</cf_status_thunderbird_esr10>
          <cf_tracking_thunderbird_esr17>---</cf_tracking_thunderbird_esr17>
          <cf_status_thunderbird_esr17>---</cf_status_thunderbird_esr17>
          <cf_tracking_thunderbird_33>---</cf_tracking_thunderbird_33>
          <cf_status_thunderbird_33>---</cf_status_thunderbird_33>
          <cf_tracking_thunderbird_34>---</cf_tracking_thunderbird_34>
          <cf_status_thunderbird_34>---</cf_status_thunderbird_34>
          <cf_tracking_thunderbird_35>---</cf_tracking_thunderbird_35>
          <cf_status_thunderbird_35>---</cf_status_thunderbird_35>
          <cf_tracking_thunderbird_36>---</cf_tracking_thunderbird_36>
          <cf_status_thunderbird_36>---</cf_status_thunderbird_36>
          <cf_tracking_thunderbird_37>---</cf_tracking_thunderbird_37>
          <cf_status_thunderbird_37>---</cf_status_thunderbird_37>
          <cf_tracking_thunderbird_38>---</cf_tracking_thunderbird_38>
          <cf_status_thunderbird_38>---</cf_status_thunderbird_38>
          <cf_tracking_thunderbird_39>---</cf_tracking_thunderbird_39>
          <cf_status_thunderbird_39>---</cf_status_thunderbird_39>
          <cf_tracking_thunderbird_40>---</cf_tracking_thunderbird_40>
          <cf_status_thunderbird_40>---</cf_status_thunderbird_40>
          <cf_tracking_thunderbird_41>---</cf_tracking_thunderbird_41>
          <cf_blocking_seamonkey21>---</cf_blocking_seamonkey21>
          <cf_status_thunderbird_41>---</cf_status_thunderbird_41>
          <cf_status_seamonkey21>---</cf_status_seamonkey21>
          <cf_tracking_thunderbird_42>---</cf_tracking_thunderbird_42>
          <cf_tracking_seamonkey22>---</cf_tracking_seamonkey22>
          <cf_status_seamonkey22>---</cf_status_seamonkey22>
          <cf_status_thunderbird_42>---</cf_status_thunderbird_42>
          <cf_tracking_seamonkey23>---</cf_tracking_seamonkey23>
          <cf_tracking_thunderbird_43>---</cf_tracking_thunderbird_43>
          <cf_status_seamonkey23>---</cf_status_seamonkey23>
          <cf_status_thunderbird_43>---</cf_status_thunderbird_43>
          <cf_tracking_seamonkey24>---</cf_tracking_seamonkey24>
          <cf_tracking_thunderbird_44>---</cf_tracking_thunderbird_44>
          <cf_status_thunderbird_44>---</cf_status_thunderbird_44>
          <cf_status_seamonkey24>---</cf_status_seamonkey24>
          <cf_tracking_seamonkey25>---</cf_tracking_seamonkey25>
          <cf_status_seamonkey25>---</cf_status_seamonkey25>
          <cf_tracking_seamonkey26>---</cf_tracking_seamonkey26>
          <cf_status_seamonkey26>---</cf_status_seamonkey26>
          <cf_tracking_seamonkey27>---</cf_tracking_seamonkey27>
          <cf_status_seamonkey27>---</cf_status_seamonkey27>
          <cf_tracking_seamonkey28>---</cf_tracking_seamonkey28>
          <cf_status_seamonkey28>---</cf_status_seamonkey28>
          <cf_tracking_seamonkey29>---</cf_tracking_seamonkey29>
          <cf_status_seamonkey29>---</cf_status_seamonkey29>
          <cf_tracking_seamonkey210>---</cf_tracking_seamonkey210>
          <cf_status_seamonkey210>---</cf_status_seamonkey210>
          <cf_tracking_seamonkey211>---</cf_tracking_seamonkey211>
          <cf_status_seamonkey211>---</cf_status_seamonkey211>
          <cf_tracking_seamonkey212>---</cf_tracking_seamonkey212>
          <cf_status_seamonkey212>---</cf_status_seamonkey212>
          <cf_tracking_seamonkey213>---</cf_tracking_seamonkey213>
          <cf_status_seamonkey213>---</cf_status_seamonkey213>
          <cf_tracking_seamonkey214>---</cf_tracking_seamonkey214>
          <cf_status_seamonkey214>---</cf_status_seamonkey214>
          <cf_tracking_seamonkey215>---</cf_tracking_seamonkey215>
          <cf_status_seamonkey215>---</cf_status_seamonkey215>
          <cf_tracking_seamonkey216>---</cf_tracking_seamonkey216>
          <cf_status_seamonkey216>---</cf_status_seamonkey216>
          <cf_tracking_seamonkey217>---</cf_tracking_seamonkey217>
          <cf_status_seamonkey217>---</cf_status_seamonkey217>
          <cf_tracking_seamonkey218>---</cf_tracking_seamonkey218>
          <cf_status_seamonkey218>---</cf_status_seamonkey218>
          <cf_tracking_seamonkey219>---</cf_tracking_seamonkey219>
          <cf_status_seamonkey219>---</cf_status_seamonkey219>
          <cf_tracking_seamonkey220>---</cf_tracking_seamonkey220>
          <cf_status_seamonkey220>---</cf_status_seamonkey220>
          <cf_tracking_seamonkey221>---</cf_tracking_seamonkey221>
          <cf_status_seamonkey221>---</cf_status_seamonkey221>
          <cf_tracking_seamonkey222>---</cf_tracking_seamonkey222>
          <cf_status_seamonkey222>---</cf_status_seamonkey222>
          <cf_tracking_seamonkey223>---</cf_tracking_seamonkey223>
          <cf_status_seamonkey223>---</cf_status_seamonkey223>
          <cf_tracking_seamonkey224>---</cf_tracking_seamonkey224>
          <cf_tracking_thunderbird_45>---</cf_tracking_thunderbird_45>
          <cf_status_thunderbird_45>---</cf_status_thunderbird_45>
          <cf_tracking_thunderbird_46>---</cf_tracking_thunderbird_46>
          <cf_status_thunderbird_46>---</cf_status_thunderbird_46>
          <cf_status_seamonkey224>---</cf_status_seamonkey224>
          <cf_tracking_thunderbird_47>---</cf_tracking_thunderbird_47>
          <cf_status_thunderbird_47>---</cf_status_thunderbird_47>
          <cf_tracking_thunderbird_48>---</cf_tracking_thunderbird_48>
          <cf_status_thunderbird_48>---</cf_status_thunderbird_48>
          <cf_tracking_seamonkey225>---</cf_tracking_seamonkey225>
          <cf_tracking_thunderbird_49>---</cf_tracking_thunderbird_49>
          <cf_status_thunderbird_49>---</cf_status_thunderbird_49>
          <cf_tracking_thunderbird_50>---</cf_tracking_thunderbird_50>
          <cf_status_thunderbird_50>---</cf_status_thunderbird_50>
          <cf_status_seamonkey225>---</cf_status_seamonkey225>
          <cf_status_seamonkey226>---</cf_status_seamonkey226>
          <cf_tracking_seamonkey226>---</cf_tracking_seamonkey226>
          <cf_status_seamonkey227>---</cf_status_seamonkey227>
          <cf_tracking_seamonkey227>---</cf_tracking_seamonkey227>
          <cf_status_seamonkey228>---</cf_status_seamonkey228>
          <cf_tracking_seamonkey228>---</cf_tracking_seamonkey228>
          <cf_status_seamonkey229>---</cf_status_seamonkey229>
          <cf_colo_site>---</cf_colo_site>
          <cf_tracking_seamonkey229>---</cf_tracking_seamonkey229>
          <cf_tracking_thunderbird_esr24>---</cf_tracking_thunderbird_esr24>
          <cf_status_thunderbird_esr24>---</cf_status_thunderbird_esr24>
          <cf_tracking_thunderbird_esr31>---</cf_tracking_thunderbird_esr31>
          <cf_status_thunderbird_esr31>---</cf_status_thunderbird_esr31>
          <cf_tracking_thunderbird_esr38>---</cf_tracking_thunderbird_esr38>
          <cf_status_thunderbird_esr38>---</cf_status_thunderbird_esr38>
          <cf_status_seamonkey230>---</cf_status_seamonkey230>
          <cf_tracking_thunderbird_esr45>---</cf_tracking_thunderbird_esr45>
          <cf_status_thunderbird_esr45>---</cf_status_thunderbird_esr45>
          <cf_tracking_thunderbird_esr52>---</cf_tracking_thunderbird_esr52>
          <cf_status_thunderbird_esr52>---</cf_status_thunderbird_esr52>
          <cf_office>---</cf_office>
          <cf_tracking_seamonkey230>---</cf_tracking_seamonkey230>
          <cf_tracking_thunderbird_esr60>---</cf_tracking_thunderbird_esr60>
          <cf_status_thunderbird_esr60>---</cf_status_thunderbird_esr60>
          <cf_status_seamonkey231>---</cf_status_seamonkey231>
          <cf_tracking_thunderbird_esr68>---</cf_tracking_thunderbird_esr68>
          <cf_status_thunderbird_esr68>---</cf_status_thunderbird_esr68>
          <cf_tracking_seamonkey231>---</cf_tracking_seamonkey231>
          <cf_status_seamonkey232>---</cf_status_seamonkey232>
          <cf_tracking_thunderbird_esr78>---</cf_tracking_thunderbird_esr78>
          <cf_status_thunderbird_esr78>---</cf_status_thunderbird_esr78>
          <cf_tracking_thunderbird_51>---</cf_tracking_thunderbird_51>
          <cf_tracking_seamonkey232>---</cf_tracking_seamonkey232>
          <cf_status_thunderbird_51>---</cf_status_thunderbird_51>
          <cf_tracking_thunderbird_52>---</cf_tracking_thunderbird_52>
          <cf_status_thunderbird_52>---</cf_status_thunderbird_52>
          <cf_tracking_thunderbird_esr91>---</cf_tracking_thunderbird_esr91>
          <cf_tracking_thunderbird_53>---</cf_tracking_thunderbird_53>
          <cf_status_thunderbird_esr91>---</cf_status_thunderbird_esr91>
          <cf_tracking_seamonkey233>---</cf_tracking_seamonkey233>
          <cf_status_thunderbird_53>---</cf_status_thunderbird_53>
          <cf_tracking_thunderbird_54>---</cf_tracking_thunderbird_54>
          <cf_status_thunderbird_54>---</cf_status_thunderbird_54>
          <cf_tracking_thunderbird_55>---</cf_tracking_thunderbird_55>
          <cf_tracking_thunderbird_esr102>---</cf_tracking_thunderbird_esr102>
          <cf_status_thunderbird_55>---</cf_status_thunderbird_55>
          <cf_status_thunderbird_esr102>---</cf_status_thunderbird_esr102>
          <cf_status_seamonkey233>---</cf_status_seamonkey233>
          <cf_tracking_thunderbird_56>---</cf_tracking_thunderbird_56>
          <cf_status_thunderbird_56>---</cf_status_thunderbird_56>
          <cf_tracking_seamonkey234>---</cf_tracking_seamonkey234>
          <cf_tracking_thunderbird_57>---</cf_tracking_thunderbird_57>
          <cf_status_thunderbird_57>---</cf_status_thunderbird_57>
          <cf_tracking_thunderbird_58>---</cf_tracking_thunderbird_58>
          <cf_status_thunderbird_58>---</cf_status_thunderbird_58>
          <cf_status_seamonkey234>---</cf_status_seamonkey234>
          <cf_tracking_thunderbird_59>---</cf_tracking_thunderbird_59>
          <cf_status_thunderbird_59>---</cf_status_thunderbird_59>
          <cf_tracking_seamonkey235>---</cf_tracking_seamonkey235>
          <cf_tracking_thunderbird_60>---</cf_tracking_thunderbird_60>
          <cf_status_thunderbird_60>---</cf_status_thunderbird_60>
          <cf_status_seamonkey235>---</cf_status_seamonkey235>
          <cf_tracking_thunderbird_61>---</cf_tracking_thunderbird_61>
          <cf_status_thunderbird_61>---</cf_status_thunderbird_61>
          <cf_tracking_seamonkey236>---</cf_tracking_seamonkey236>
          <cf_tracking_thunderbird_62>---</cf_tracking_thunderbird_62>
          <cf_status_thunderbird_62>---</cf_status_thunderbird_62>
          <cf_status_seamonkey236>---</cf_status_seamonkey236>
          <cf_tracking_thunderbird_63>---</cf_tracking_thunderbird_63>
          <cf_status_thunderbird_63>---</cf_status_thunderbird_63>
          <cf_tracking_thunderbird_64>---</cf_tracking_thunderbird_64>
          <cf_status_thunderbird_64>---</cf_status_thunderbird_64>
          <cf_tracking_seamonkey237>---</cf_tracking_seamonkey237>
          <cf_tracking_thunderbird_65>---</cf_tracking_thunderbird_65>
          <cf_status_seamonkey237>---</cf_status_seamonkey237>
          <cf_status_thunderbird_65>---</cf_status_thunderbird_65>
          <cf_tracking_thunderbird_66>---</cf_tracking_thunderbird_66>
          <cf_status_thunderbird_66>---</cf_status_thunderbird_66>
          <cf_tracking_thunderbird_67>---</cf_tracking_thunderbird_67>
          <cf_status_thunderbird_67>---</cf_status_thunderbird_67>
          <cf_tracking_seamonkey238>---</cf_tracking_seamonkey238>
          <cf_tracking_thunderbird_68>---</cf_tracking_thunderbird_68>
          <cf_status_thunderbird_68>---</cf_status_thunderbird_68>
          <cf_status_seamonkey238>---</cf_status_seamonkey238>
          <cf_status_thunderbird_69>---</cf_status_thunderbird_69>
          <cf_tracking_seamonkey239>---</cf_tracking_seamonkey239>
          <cf_tracking_thunderbird_69>---</cf_tracking_thunderbird_69>
          <cf_status_thunderbird_70>---</cf_status_thunderbird_70>
          <cf_crash_signature></cf_crash_signature>
          <cf_status_seamonkey239>---</cf_status_seamonkey239>
          <cf_tracking_thunderbird_70>---</cf_tracking_thunderbird_70>
          <cf_tracking_seamonkey240>---</cf_tracking_seamonkey240>
          
          <cf_status_seamonkey240>---</cf_status_seamonkey240>
          <cf_status_thunderbird_71>---</cf_status_thunderbird_71>
          <cf_tracking_seamonkey241>---</cf_tracking_seamonkey241>
          <cf_tracking_thunderbird_71>---</cf_tracking_thunderbird_71>
          <cf_status_thunderbird_72>---</cf_status_thunderbird_72>
          <cf_status_seamonkey241>---</cf_status_seamonkey241>
          <cf_tracking_thunderbird_72>---</cf_tracking_thunderbird_72>
          <cf_tracking_seamonkey242>---</cf_tracking_seamonkey242>
          <cf_status_seamonkey242>---</cf_status_seamonkey242>
          <cf_status_thunderbird_73>---</cf_status_thunderbird_73>
          <cf_tracking_thunderbird_73>---</cf_tracking_thunderbird_73>
          <cf_tracking_seamonkey243>---</cf_tracking_seamonkey243>
          <cf_status_seamonkey243>---</cf_status_seamonkey243>
          <cf_status_thunderbird_74>---</cf_status_thunderbird_74>
          <cf_tracking_seamonkey244>---</cf_tracking_seamonkey244>
          <cf_tracking_thunderbird_74>---</cf_tracking_thunderbird_74>
          <cf_status_thunderbird_75>---</cf_status_thunderbird_75>
          <cf_tracking_thunderbird_75>---</cf_tracking_thunderbird_75>
          <cf_status_thunderbird_76>---</cf_status_thunderbird_76>
          <cf_status_seamonkey244>---</cf_status_seamonkey244>
          <cf_tracking_thunderbird_76>---</cf_tracking_thunderbird_76>
          <cf_tracking_seamonkey245>---</cf_tracking_seamonkey245>
          <cf_status_thunderbird_77>---</cf_status_thunderbird_77>
          <cf_tracking_thunderbird_77>---</cf_tracking_thunderbird_77>
          <cf_status_thunderbird_78>---</cf_status_thunderbird_78>
          <cf_status_seamonkey245>---</cf_status_seamonkey245>
          <cf_tracking_seamonkey246>---</cf_tracking_seamonkey246>
          <cf_tracking_thunderbird_78>---</cf_tracking_thunderbird_78>
          <cf_status_thunderbird_79>---</cf_status_thunderbird_79>
          <cf_tracking_thunderbird_79>---</cf_tracking_thunderbird_79>
          <cf_status_thunderbird_80>---</cf_status_thunderbird_80>
          <cf_status_seamonkey246>---</cf_status_seamonkey246>
          <cf_tracking_thunderbird_80>---</cf_tracking_thunderbird_80>
          <cf_tracking_seamonkey247>---</cf_tracking_seamonkey247>
          <cf_status_thunderbird_81>---</cf_status_thunderbird_81>
          <cf_tracking_thunderbird_81>---</cf_tracking_thunderbird_81>
          <cf_status_thunderbird_82>---</cf_status_thunderbird_82>
          <cf_status_seamonkey247>---</cf_status_seamonkey247>
          <cf_tracking_thunderbird_82>---</cf_tracking_thunderbird_82>
          <cf_tracking_seamonkey248>---</cf_tracking_seamonkey248>
          <cf_status_thunderbird_83>---</cf_status_thunderbird_83>
          <cf_tracking_thunderbird_83>---</cf_tracking_thunderbird_83>
          <cf_status_seamonkey248>---</cf_status_seamonkey248>
          <cf_status_thunderbird_84>---</cf_status_thunderbird_84>
          <cf_tracking_thunderbird_84>---</cf_tracking_thunderbird_84>
          <cf_status_thunderbird_85>---</cf_status_thunderbird_85>
          <cf_tracking_thunderbird_85>---</cf_tracking_thunderbird_85>
          <cf_status_thunderbird_86>---</cf_status_thunderbird_86>
          <cf_blocking_kilimanjaro>---</cf_blocking_kilimanjaro>
          <cf_tracking_thunderbird_86>---</cf_tracking_thunderbird_86>
          <cf_tracking_seamonkey249>---</cf_tracking_seamonkey249>
          <cf_blocking_b2g>---</cf_blocking_b2g>
          <cf_status_thunderbird_87>---</cf_status_thunderbird_87>
          <cf_tracking_thunderbird_87>---</cf_tracking_thunderbird_87>
          <cf_status_seamonkey249>---</cf_status_seamonkey249>
          <cf_blocking_basecamp>---</cf_blocking_basecamp>
          <cf_status_thunderbird_88>---</cf_status_thunderbird_88>
          <cf_tracking_thunderbird_88>---</cf_tracking_thunderbird_88>
          <cf_feature_b2g>---</cf_feature_b2g>
          <cf_status_thunderbird_89>---</cf_status_thunderbird_89>
          <cf_tracking_seamonkey250>---</cf_tracking_seamonkey250>
          <cf_tracking_thunderbird_89>---</cf_tracking_thunderbird_89>
          <cf_tracking_b2g>---</cf_tracking_b2g>
          <cf_ux_b2g>---</cf_ux_b2g>
          <cf_status_seamonkey250>---</cf_status_seamonkey250>
          <cf_status_thunderbird_90>---</cf_status_thunderbird_90>
          <cf_tracking_thunderbird_90>---</cf_tracking_thunderbird_90>
          <cf_b2g_ota_blocker>---</cf_b2g_ota_blocker>
          <cf_tracking_seamonkey251>---</cf_tracking_seamonkey251>
          <cf_status_thunderbird_91>---</cf_status_thunderbird_91>
          <cf_tracking_thunderbird_91>---</cf_tracking_thunderbird_91>
          <cf_status_seamonkey251>---</cf_status_seamonkey251>
          <cf_status_thunderbird_92>---</cf_status_thunderbird_92>
          <cf_tracking_thunderbird_92>---</cf_tracking_thunderbird_92>
          <cf_tracking_seamonkey252>---</cf_tracking_seamonkey252>
          <cf_status_thunderbird_93>---</cf_status_thunderbird_93>
          <cf_tracking_thunderbird_93>---</cf_tracking_thunderbird_93>
          <cf_status_seamonkey252>---</cf_status_seamonkey252>
          <cf_status_thunderbird_94>---</cf_status_thunderbird_94>
          <cf_tracking_thunderbird_94>---</cf_tracking_thunderbird_94>
          <cf_status_thunderbird_95>---</cf_status_thunderbird_95>
          <cf_status_seamonkey253>---</cf_status_seamonkey253>
          <cf_tracking_seamonkey253>---</cf_tracking_seamonkey253>
          <cf_tracking_thunderbird_95>---</cf_tracking_thunderbird_95>
          <cf_tracking_seamonkey254>---</cf_tracking_seamonkey254>
          <cf_status_thunderbird_96>---</cf_status_thunderbird_96>
          <cf_tracking_thunderbird_96>---</cf_tracking_thunderbird_96>
          <cf_status_thunderbird_97>---</cf_status_thunderbird_97>
          <cf_status_seamonkey254>---</cf_status_seamonkey254>
          <cf_tracking_thunderbird_97>---</cf_tracking_thunderbird_97>
          <cf_status_thunderbird_98>---</cf_status_thunderbird_98>
          <cf_tracking_seamonkey255>---</cf_tracking_seamonkey255>
          <cf_tracking_thunderbird_98>---</cf_tracking_thunderbird_98>
          <cf_status_thunderbird_99>---</cf_status_thunderbird_99>
          <cf_status_seamonkey255>---</cf_status_seamonkey255>
          <cf_tracking_thunderbird_99>---</cf_tracking_thunderbird_99>
          <cf_status_seamonkey256>---</cf_status_seamonkey256>
          <cf_status_thunderbird_100>---</cf_status_thunderbird_100>
          <cf_tracking_thunderbird_100>---</cf_tracking_thunderbird_100>
          <cf_status_thunderbird_101>---</cf_status_thunderbird_101>
          <cf_tracking_seamonkey256>---</cf_tracking_seamonkey256>
          <cf_status_seamonkey257esr>---</cf_status_seamonkey257esr>
          <cf_tracking_thunderbird_101>---</cf_tracking_thunderbird_101>
          <cf_tracking_seamonkey257esr>---</cf_tracking_seamonkey257esr>
          <cf_status_thunderbird_102>---</cf_status_thunderbird_102>
          <cf_tracking_thunderbird_102>---</cf_tracking_thunderbird_102>
          <cf_status_thunderbird_103>---</cf_status_thunderbird_103>
          <cf_status_seamonkey258>---</cf_status_seamonkey258>
          <cf_tracking_thunderbird_103>---</cf_tracking_thunderbird_103>
          <cf_tracking_seamonkey258>---</cf_tracking_seamonkey258>
          <cf_status_thunderbird_104>---</cf_status_thunderbird_104>
          <cf_tracking_thunderbird_104>---</cf_tracking_thunderbird_104>
          <cf_status_seamonkey259>---</cf_status_seamonkey259>
          <cf_status_thunderbird_105>---</cf_status_thunderbird_105>
          <cf_tracking_thunderbird_105>---</cf_tracking_thunderbird_105>
          <cf_tracking_seamonkey259>---</cf_tracking_seamonkey259>
          <cf_status_thunderbird_106>---</cf_status_thunderbird_106>
          <cf_tracking_thunderbird_esr115>---</cf_tracking_thunderbird_esr115>
          <cf_status_fxios_v1_0>---</cf_status_fxios_v1_0>
          <cf_tracking_thunderbird_106>---</cf_tracking_thunderbird_106>
          <cf_status_thunderbird_esr115>---</cf_status_thunderbird_esr115>
          <cf_status_fxios_v1_1>---</cf_status_fxios_v1_1>
          <cf_status_fxios_v1_0_5>---</cf_status_fxios_v1_0_5>
          <cf_status_fxios_v2_0>---</cf_status_fxios_v2_0>
          <cf_status_fxios_v3_0>---</cf_status_fxios_v3_0>
          <cf_status_seamonkey260>---</cf_status_seamonkey260>
          <cf_tracking_thunderbird_esr128>---</cf_tracking_thunderbird_esr128>
          <cf_status_fxios_v4_0>---</cf_status_fxios_v4_0>
          <cf_status_thunderbird_107>---</cf_status_thunderbird_107>
          <cf_tracking_thunderbird_107>---</cf_tracking_thunderbird_107>
          <cf_status_thunderbird_esr128>---</cf_status_thunderbird_esr128>
          <cf_status_fxios_v5_0>---</cf_status_fxios_v5_0>
          <cf_tracking_thunderbird_esr140>---</cf_tracking_thunderbird_esr140>
          <cf_status_thunderbird_108>---</cf_status_thunderbird_108>
          <cf_tracking_seamonkey260>---</cf_tracking_seamonkey260>
          <cf_status_fxios_v5_1>---</cf_status_fxios_v5_1>
          <cf_status_thunderbird_esr140>---</cf_status_thunderbird_esr140>
          <cf_tracking_thunderbird_108>---</cf_tracking_thunderbird_108>
          <cf_status_fxios_v5_2>---</cf_status_fxios_v5_2>
          <cf_status_fxios_v5_3>---</cf_status_fxios_v5_3>
          <cf_status_fxios_v6_0>---</cf_status_fxios_v6_0>
          <cf_tracking_thunderbird_esr153>---</cf_tracking_thunderbird_esr153>
          <cf_status_thunderbird_109>---</cf_status_thunderbird_109>
          <cf_status_thunderbird_esr153>---</cf_status_thunderbird_esr153>
          <cf_tracking_thunderbird_109>---</cf_tracking_thunderbird_109>
          <cf_status_fxios_v6_1>---</cf_status_fxios_v6_1>
          <cf_status_thunderbird_110>---</cf_status_thunderbird_110>
          <cf_status_fxios_v7_0>---</cf_status_fxios_v7_0>
          <cf_status_fxios_v7_1>---</cf_status_fxios_v7_1>
          <cf_tracking_thunderbird_110>---</cf_tracking_thunderbird_110>
          <cf_status_fxios_v7_2>---</cf_status_fxios_v7_2>
          <cf_status_thunderbird_111>---</cf_status_thunderbird_111>
          <cf_tracking_thunderbird_111>---</cf_tracking_thunderbird_111>
          <cf_status_fxios_v7_3>---</cf_status_fxios_v7_3>
          <cf_status_thunderbird_112>---</cf_status_thunderbird_112>
          <cf_status_fxios_v7_4>---</cf_status_fxios_v7_4>
          <cf_tracking_thunderbird_112>---</cf_tracking_thunderbird_112>
          <cf_status_fxios_v7_5>---</cf_status_fxios_v7_5>
          <cf_status_fxios_v7_6>---</cf_status_fxios_v7_6>
          <cf_status_thunderbird_113>---</cf_status_thunderbird_113>
          <cf_tracking_thunderbird_113>---</cf_tracking_thunderbird_113>
          <cf_status_thunderbird_114>---</cf_status_thunderbird_114>
          <cf_tracking_seamonkey263>---</cf_tracking_seamonkey263>
          <cf_tracking_thunderbird_114>---</cf_tracking_thunderbird_114>
          <cf_status_seamonkey263>---</cf_status_seamonkey263>
          <cf_status_thunderbird_115>---</cf_status_thunderbird_115>
          <cf_tracking_thunderbird_115>---</cf_tracking_thunderbird_115>
          
          <cf_status_thunderbird_116>---</cf_status_thunderbird_116>
          <cf_tracking_thunderbird_116>---</cf_tracking_thunderbird_116>
          <cf_status_thunderbird_117>---</cf_status_thunderbird_117>
          <cf_tracking_thunderbird_117>---</cf_tracking_thunderbird_117>
          <cf_status_thunderbird_118>---</cf_status_thunderbird_118>
          <cf_tracking_thunderbird_118>---</cf_tracking_thunderbird_118>
          <cf_status_thunderbird_119>---</cf_status_thunderbird_119>
          <cf_tracking_thunderbird_119>---</cf_tracking_thunderbird_119>
          <cf_status_thunderbird_120>---</cf_status_thunderbird_120>
          <cf_tracking_thunderbird_120>---</cf_tracking_thunderbird_120>
          <cf_status_thunderbird_121>---</cf_status_thunderbird_121>
          <cf_tracking_thunderbird_121>---</cf_tracking_thunderbird_121>
          <cf_status_thunderbird_122>---</cf_status_thunderbird_122>
          <cf_tracking_thunderbird_122>---</cf_tracking_thunderbird_122>
          <cf_status_thunderbird_123>---</cf_status_thunderbird_123>
          <cf_tracking_thunderbird_123>---</cf_tracking_thunderbird_123>
          <cf_status_thunderbird_124>---</cf_status_thunderbird_124>
          <cf_tracking_thunderbird_124>---</cf_tracking_thunderbird_124>
          <cf_status_thunderbird_125>---</cf_status_thunderbird_125>
          <cf_tracking_thunderbird_125>---</cf_tracking_thunderbird_125>
          <cf_status_thunderbird_126>---</cf_status_thunderbird_126>
          <cf_tracking_thunderbird_126>---</cf_tracking_thunderbird_126>
          <cf_status_thunderbird_127>---</cf_status_thunderbird_127>
          <cf_tracking_thunderbird_127>---</cf_tracking_thunderbird_127>
          <cf_status_thunderbird_128>---</cf_status_thunderbird_128>
          <cf_tracking_thunderbird_128>---</cf_tracking_thunderbird_128>
          <cf_status_thunderbird_129>---</cf_status_thunderbird_129>
          <cf_tracking_thunderbird_129>---</cf_tracking_thunderbird_129>
          <cf_status_thunderbird_130>---</cf_status_thunderbird_130>
          <cf_tracking_thunderbird_130>---</cf_tracking_thunderbird_130>
          <cf_status_thunderbird_131>---</cf_status_thunderbird_131>
          <cf_tracking_thunderbird_131>---</cf_tracking_thunderbird_131>
          <cf_status_thunderbird_132>---</cf_status_thunderbird_132>
          <cf_tracking_thunderbird_132>---</cf_tracking_thunderbird_132>
          <cf_status_thunderbird_133>---</cf_status_thunderbird_133>
          <cf_tracking_thunderbird_133>---</cf_tracking_thunderbird_133>
          <cf_status_thunderbird_134>---</cf_status_thunderbird_134>
          <cf_tracking_thunderbird_134>---</cf_tracking_thunderbird_134>
          <cf_status_thunderbird_135>---</cf_status_thunderbird_135>
          <cf_tracking_thunderbird_135>---</cf_tracking_thunderbird_135>
          <cf_last_resolved>2008-04-14 01:04:45</cf_last_resolved>
          <cf_status_thunderbird_136>---</cf_status_thunderbird_136>
          <cf_tracking_thunderbird_136>---</cf_tracking_thunderbird_136>
          <cf_status_thunderbird_137>---</cf_status_thunderbird_137>
          <cf_tracking_thunderbird_137>---</cf_tracking_thunderbird_137>
          <cf_status_thunderbird_138>---</cf_status_thunderbird_138>
          <cf_tracking_thunderbird_138>---</cf_tracking_thunderbird_138>
          <cf_status_thunderbird_139>---</cf_status_thunderbird_139>
          <cf_tracking_thunderbird_139>---</cf_tracking_thunderbird_139>
          <cf_status_thunderbird_140>---</cf_status_thunderbird_140>
          <cf_tracking_thunderbird_140>---</cf_tracking_thunderbird_140>
          <cf_status_thunderbird_141>---</cf_status_thunderbird_141>
          <cf_tracking_thunderbird_141>---</cf_tracking_thunderbird_141>
          <cf_status_thunderbird_142>---</cf_status_thunderbird_142>
          <cf_tracking_thunderbird_142>---</cf_tracking_thunderbird_142>
          <cf_status_thunderbird_143>---</cf_status_thunderbird_143>
          <cf_tracking_thunderbird_143>---</cf_tracking_thunderbird_143>
          <cf_status_thunderbird_144>---</cf_status_thunderbird_144>
          <cf_tracking_thunderbird_144>---</cf_tracking_thunderbird_144>
          <cf_status_thunderbird_145>---</cf_status_thunderbird_145>
          <cf_tracking_thunderbird_145>---</cf_tracking_thunderbird_145>
          <cf_status_thunderbird_146>---</cf_status_thunderbird_146>
          <cf_tracking_thunderbird_146>---</cf_tracking_thunderbird_146>
          <cf_status_thunderbird_147>---</cf_status_thunderbird_147>
          <cf_tracking_thunderbird_147>---</cf_tracking_thunderbird_147>
          <cf_status_thunderbird_148>---</cf_status_thunderbird_148>
          <cf_tracking_thunderbird_148>---</cf_tracking_thunderbird_148>
          <cf_status_thunderbird_149>---</cf_status_thunderbird_149>
          <cf_tracking_thunderbird_149>---</cf_tracking_thunderbird_149>
          <cf_status_thunderbird_150>---</cf_status_thunderbird_150>
          <cf_tracking_thunderbird_150>---</cf_tracking_thunderbird_150>
          <cf_status_thunderbird_151>---</cf_status_thunderbird_151>
          <cf_tracking_thunderbird_151>---</cf_tracking_thunderbird_151>
          <cf_status_thunderbird_152>---</cf_status_thunderbird_152>
          <cf_tracking_thunderbird_152>---</cf_tracking_thunderbird_152>
          <cf_status_thunderbird_153>---</cf_status_thunderbird_153>
          <cf_tracking_thunderbird_153>---</cf_tracking_thunderbird_153>
          <cf_status_thunderbird_154>---</cf_status_thunderbird_154>
          <cf_tracking_thunderbird_154>---</cf_tracking_thunderbird_154>
          <cf_status_thunderbird_155>---</cf_status_thunderbird_155>
          <cf_tracking_thunderbird_155>---</cf_tracking_thunderbird_155>
          <cf_status_thunderbird_156>---</cf_status_thunderbird_156>
          <cf_tracking_thunderbird_156>---</cf_tracking_thunderbird_156>
          <cf_user_story></cf_user_story>
          <cf_mozilla_project>---</cf_mozilla_project>
          <cf_machine_state>---</cf_machine_state>
          <cf_qa_whiteboard></cf_qa_whiteboard>
          <cf_fx_iteration>---</cf_fx_iteration>
          <cf_fx_points>---</cf_fx_points>
          
          <cf_has_str>---</cf_has_str>
          <cf_cab_review>---</cf_cab_review>
          <cf_status_fxios_v8_0>---</cf_status_fxios_v8_0>
          <cf_status_fxios_v8_1>---</cf_status_fxios_v8_1>
          <cf_status_fxios_v8_2>---</cf_status_fxios_v8_2>
          <cf_status_fxios_v8_3>---</cf_status_fxios_v8_3>
          <cf_status_fxios_v8_4>---</cf_status_fxios_v8_4>
          <cf_status_fxios_v9_0>---</cf_status_fxios_v9_0>
          <cf_status_fxios_v9_1>---</cf_status_fxios_v9_1>
          <cf_status_fxios_v9_2>---</cf_status_fxios_v9_2>
          <cf_status_fxios_v9_3>---</cf_status_fxios_v9_3>
          <cf_status_fxios_v9_4>---</cf_status_fxios_v9_4>
          <cf_status_fxios_v10_0>---</cf_status_fxios_v10_0>
          <cf_status_fxios_v10_1>---</cf_status_fxios_v10_1>
          <cf_status_fxios_v10_2>---</cf_status_fxios_v10_2>
          <cf_status_fxios_v10_5>---</cf_status_fxios_v10_5>
          <cf_status_fxios_v10_6>---</cf_status_fxios_v10_6>
          <cf_status_fxios_v11_0>---</cf_status_fxios_v11_0>
          <cf_status_fxios_v11_1>---</cf_status_fxios_v11_1>
          <cf_status_fxios_v12_0>---</cf_status_fxios_v12_0>
          <cf_status_fxios_v12_1>---</cf_status_fxios_v12_1>
          <cf_status_fxios_v12_2>---</cf_status_fxios_v12_2>
          <cf_status_fxios_v13_0>---</cf_status_fxios_v13_0>
          <cf_status_fxios_v13_1>---</cf_status_fxios_v13_1>
          <cf_status_fxios_v13_2>---</cf_status_fxios_v13_2>
          <cf_status_fxios_v13_3>---</cf_status_fxios_v13_3>
          <cf_status_fxios_v14_0>---</cf_status_fxios_v14_0>
          <cf_status_fxios_v14_1>---</cf_status_fxios_v14_1>
          <cf_status_fxios_v14_2>---</cf_status_fxios_v14_2>
          <cf_status_fxios_v14_3>---</cf_status_fxios_v14_3>
          <cf_status_fxios_v15_0>---</cf_status_fxios_v15_0>
          <cf_status_fxios_v15_1>---</cf_status_fxios_v15_1>
          <cf_status_fxios_v16_0>---</cf_status_fxios_v16_0>
          <cf_tracking_geckoview62>---</cf_tracking_geckoview62>
          <cf_status_geckoview62>---</cf_status_geckoview62>
          <cf_tracking_geckoview63>---</cf_tracking_geckoview63>
          <cf_status_geckoview63>---</cf_status_geckoview63>
          <cf_tracking_geckoview64>---</cf_tracking_geckoview64>
          <cf_status_geckoview64>---</cf_status_geckoview64>
          <cf_tracking_geckoview65>---</cf_tracking_geckoview65>
          <cf_status_geckoview65>---</cf_status_geckoview65>
          <cf_tracking_geckoview66>---</cf_tracking_geckoview66>
          <cf_status_geckoview66>---</cf_status_geckoview66>
          <cf_tracking_firefox50>---</cf_tracking_firefox50>
          <cf_status_firefox50>---</cf_status_firefox50>
          <cf_tracking_firefox51>---</cf_tracking_firefox51>
          <cf_status_firefox51>---</cf_status_firefox51>
          <cf_tracking_firefox52>---</cf_tracking_firefox52>
          <cf_status_firefox52>---</cf_status_firefox52>
          <cf_tracking_firefox_esr52>---</cf_tracking_firefox_esr52>
          <cf_status_firefox_esr52>---</cf_status_firefox_esr52>
          <cf_tracking_firefox_esr60>---</cf_tracking_firefox_esr60>
          <cf_status_firefox_esr60>---</cf_status_firefox_esr60>
          <cf_tracking_firefox_esr68>---</cf_tracking_firefox_esr68>
          <cf_status_firefox_esr68>---</cf_status_firefox_esr68>
          <cf_tracking_firefox53>---</cf_tracking_firefox53>
          <cf_tracking_firefox_esr78>---</cf_tracking_firefox_esr78>
          <cf_status_firefox_esr78>---</cf_status_firefox_esr78>
          <cf_tracking_firefox_esr91>---</cf_tracking_firefox_esr91>
          <cf_status_firefox_esr91>---</cf_status_firefox_esr91>
          <cf_status_firefox53>---</cf_status_firefox53>
          <cf_tracking_firefox_esr102>---</cf_tracking_firefox_esr102>
          <cf_status_firefox_esr102>---</cf_status_firefox_esr102>
          <cf_tracking_firefox_esr115>---</cf_tracking_firefox_esr115>
          <cf_status_firefox_esr115>---</cf_status_firefox_esr115>
          <cf_tracking_firefox54>---</cf_tracking_firefox54>
          <cf_tracking_firefox_esr128>---</cf_tracking_firefox_esr128>
          <cf_status_firefox_esr128>---</cf_status_firefox_esr128>
          <cf_tracking_firefox_esr140>---</cf_tracking_firefox_esr140>
          <cf_status_firefox_esr140>---</cf_status_firefox_esr140>
          <cf_status_firefox54>---</cf_status_firefox54>
          <cf_tracking_firefox_esr153>---</cf_tracking_firefox_esr153>
          <cf_status_firefox_esr153>---</cf_status_firefox_esr153>
          <cf_tracking_firefox55>---</cf_tracking_firefox55>
          <cf_status_firefox55>---</cf_status_firefox55>
          <cf_tracking_firefox56>---</cf_tracking_firefox56>
          <cf_status_firefox56>---</cf_status_firefox56>
          <cf_tracking_firefox57>---</cf_tracking_firefox57>
          <cf_status_firefox57>---</cf_status_firefox57>
          <cf_tracking_firefox58>---</cf_tracking_firefox58>
          <cf_status_firefox58>---</cf_status_firefox58>
          <cf_tracking_firefox59>---</cf_tracking_firefox59>
          <cf_status_firefox59>---</cf_status_firefox59>
          <cf_tracking_firefox60>---</cf_tracking_firefox60>
          <cf_status_firefox60>---</cf_status_firefox60>
          <cf_tracking_firefox61>---</cf_tracking_firefox61>
          <cf_status_firefox61>---</cf_status_firefox61>
          <cf_tracking_firefox62>---</cf_tracking_firefox62>
          <cf_status_firefox62>---</cf_status_firefox62>
          <cf_tracking_firefox63>---</cf_tracking_firefox63>
          <cf_status_firefox63>---</cf_status_firefox63>
          <cf_tracking_firefox64>---</cf_tracking_firefox64>
          <cf_status_firefox64>---</cf_status_firefox64>
          <cf_tracking_firefox65>---</cf_tracking_firefox65>
          <cf_status_firefox65>---</cf_status_firefox65>
          <cf_tracking_firefox66>---</cf_tracking_firefox66>
          <cf_status_firefox66>---</cf_status_firefox66>
          <cf_tracking_firefox67>---</cf_tracking_firefox67>
          <cf_status_firefox67>---</cf_status_firefox67>
          <cf_tracking_firefox67_0_1>---</cf_tracking_firefox67_0_1>
          <cf_status_firefox67_0_1>---</cf_status_firefox67_0_1>
          <cf_tracking_firefox68>---</cf_tracking_firefox68>
          <cf_status_firefox68>---</cf_status_firefox68>
          <cf_tracking_firefox69>---</cf_tracking_firefox69>
          <cf_status_firefox69>---</cf_status_firefox69>
          <cf_tracking_firefox70>---</cf_tracking_firefox70>
          <cf_status_firefox70>---</cf_status_firefox70>
          <cf_tracking_firefox71>---</cf_tracking_firefox71>
          <cf_status_firefox71>---</cf_status_firefox71>
          <cf_tracking_firefox72>---</cf_tracking_firefox72>
          <cf_status_firefox72>---</cf_status_firefox72>
          <cf_tracking_firefox73>---</cf_tracking_firefox73>
          <cf_status_firefox73>---</cf_status_firefox73>
          <cf_tracking_firefox74>---</cf_tracking_firefox74>
          <cf_status_firefox74>---</cf_status_firefox74>
          <cf_tracking_firefox75>---</cf_tracking_firefox75>
          <cf_status_firefox75>---</cf_status_firefox75>
          <cf_tracking_firefox76>---</cf_tracking_firefox76>
          <cf_status_firefox76>---</cf_status_firefox76>
          <cf_tracking_firefox77>---</cf_tracking_firefox77>
          <cf_status_firefox77>---</cf_status_firefox77>
          <cf_tracking_firefox78>---</cf_tracking_firefox78>
          <cf_status_firefox78>---</cf_status_firefox78>
          <cf_tracking_firefox79>---</cf_tracking_firefox79>
          <cf_status_firefox79>---</cf_status_firefox79>
          <cf_tracking_firefox80>---</cf_tracking_firefox80>
          <cf_status_firefox80>---</cf_status_firefox80>
          <cf_tracking_firefox81>---</cf_tracking_firefox81>
          <cf_status_firefox81>---</cf_status_firefox81>
          <cf_tracking_firefox82>---</cf_tracking_firefox82>
          <cf_status_firefox82>---</cf_status_firefox82>
          <cf_tracking_firefox83>---</cf_tracking_firefox83>
          <cf_status_firefox83>---</cf_status_firefox83>
          <cf_tracking_firefox84>---</cf_tracking_firefox84>
          <cf_status_firefox84>---</cf_status_firefox84>
          <cf_tracking_firefox85>---</cf_tracking_firefox85>
          <cf_status_firefox85>---</cf_status_firefox85>
          <cf_tracking_firefox86>---</cf_tracking_firefox86>
          <cf_status_firefox86>---</cf_status_firefox86>
          <cf_tracking_firefox87>---</cf_tracking_firefox87>
          <cf_status_firefox87>---</cf_status_firefox87>
          <cf_tracking_firefox88>---</cf_tracking_firefox88>
          <cf_status_firefox88>---</cf_status_firefox88>
          <cf_tracking_firefox89>---</cf_tracking_firefox89>
          <cf_status_firefox89>---</cf_status_firefox89>
          <cf_tracking_firefox90>---</cf_tracking_firefox90>
          <cf_status_firefox90>---</cf_status_firefox90>
          <cf_tracking_firefox91>---</cf_tracking_firefox91>
          <cf_status_firefox91>---</cf_status_firefox91>
          <cf_tracking_firefox92>---</cf_tracking_firefox92>
          <cf_status_firefox92>---</cf_status_firefox92>
          <cf_tracking_firefox93>---</cf_tracking_firefox93>
          <cf_status_firefox93>---</cf_status_firefox93>
          <cf_tracking_firefox94>---</cf_tracking_firefox94>
          <cf_status_firefox94>---</cf_status_firefox94>
          <cf_tracking_firefox95>---</cf_tracking_firefox95>
          <cf_status_firefox95>---</cf_status_firefox95>
          <cf_tracking_firefox96>---</cf_tracking_firefox96>
          <cf_status_firefox96>---</cf_status_firefox96>
          <cf_tracking_firefox97>---</cf_tracking_firefox97>
          <cf_status_firefox97>---</cf_status_firefox97>
          <cf_tracking_firefox98>---</cf_tracking_firefox98>
          <cf_status_firefox98>---</cf_status_firefox98>
          <cf_tracking_firefox99>---</cf_tracking_firefox99>
          <cf_status_firefox99>---</cf_status_firefox99>
          <cf_tracking_firefox100>---</cf_tracking_firefox100>
          <cf_status_firefox100>---</cf_status_firefox100>
          <cf_tracking_firefox101>---</cf_tracking_firefox101>
          <cf_status_firefox101>---</cf_status_firefox101>
          <cf_tracking_firefox102>---</cf_tracking_firefox102>
          <cf_status_firefox102>---</cf_status_firefox102>
          <cf_tracking_firefox103>---</cf_tracking_firefox103>
          <cf_status_firefox103>---</cf_status_firefox103>
          <cf_tracking_firefox104>---</cf_tracking_firefox104>
          <cf_status_firefox104>---</cf_status_firefox104>
          <cf_tracking_firefox105>---</cf_tracking_firefox105>
          <cf_status_firefox105>---</cf_status_firefox105>
          <cf_tracking_firefox106>---</cf_tracking_firefox106>
          <cf_status_firefox106>---</cf_status_firefox106>
          <cf_tracking_firefox107>---</cf_tracking_firefox107>
          <cf_status_firefox107>---</cf_status_firefox107>
          <cf_tracking_firefox108>---</cf_tracking_firefox108>
          <cf_status_firefox108>---</cf_status_firefox108>
          <cf_tracking_firefox109>---</cf_tracking_firefox109>
          <cf_status_firefox109>---</cf_status_firefox109>
          <cf_tracking_firefox110>---</cf_tracking_firefox110>
          <cf_status_firefox110>---</cf_status_firefox110>
          <cf_tracking_firefox111>---</cf_tracking_firefox111>
          <cf_status_firefox111>---</cf_status_firefox111>
          <cf_tracking_firefox112>---</cf_tracking_firefox112>
          <cf_status_firefox112>---</cf_status_firefox112>
          <cf_tracking_firefox113>---</cf_tracking_firefox113>
          <cf_status_firefox113>---</cf_status_firefox113>
          <cf_tracking_firefox114>---</cf_tracking_firefox114>
          <cf_status_firefox114>---</cf_status_firefox114>
          <cf_tracking_firefox115>---</cf_tracking_firefox115>
          <cf_status_firefox115>---</cf_status_firefox115>
          <cf_tracking_firefox116>---</cf_tracking_firefox116>
          <cf_status_firefox116>---</cf_status_firefox116>
          <cf_tracking_firefox117>---</cf_tracking_firefox117>
          <cf_status_firefox117>---</cf_status_firefox117>
          <cf_tracking_firefox118>---</cf_tracking_firefox118>
          <cf_status_firefox118>---</cf_status_firefox118>
          <cf_tracking_firefox119>---</cf_tracking_firefox119>
          <cf_status_firefox119>---</cf_status_firefox119>
          <cf_tracking_firefox120>---</cf_tracking_firefox120>
          <cf_status_firefox120>---</cf_status_firefox120>
          <cf_tracking_firefox121>---</cf_tracking_firefox121>
          <cf_status_firefox121>---</cf_status_firefox121>
          <cf_tracking_firefox122>---</cf_tracking_firefox122>
          <cf_status_firefox122>---</cf_status_firefox122>
          <cf_tracking_firefox123>---</cf_tracking_firefox123>
          <cf_status_firefox123>---</cf_status_firefox123>
          <cf_tracking_firefox124>---</cf_tracking_firefox124>
          <cf_status_firefox124>---</cf_status_firefox124>
          <cf_tracking_firefox125>---</cf_tracking_firefox125>
          <cf_status_firefox125>---</cf_status_firefox125>
          <cf_tracking_firefox126>---</cf_tracking_firefox126>
          <cf_status_firefox126>---</cf_status_firefox126>
          <cf_tracking_firefox127>---</cf_tracking_firefox127>
          <cf_status_firefox127>---</cf_status_firefox127>
          <cf_tracking_firefox128>---</cf_tracking_firefox128>
          <cf_status_firefox128>---</cf_status_firefox128>
          <cf_tracking_firefox129>---</cf_tracking_firefox129>
          <cf_status_firefox129>---</cf_status_firefox129>
          <cf_tracking_firefox130>---</cf_tracking_firefox130>
          <cf_status_firefox130>---</cf_status_firefox130>
          <cf_tracking_firefox131>---</cf_tracking_firefox131>
          <cf_status_firefox131>---</cf_status_firefox131>
          <cf_tracking_firefox132>---</cf_tracking_firefox132>
          <cf_status_firefox132>---</cf_status_firefox132>
          <cf_tracking_firefox133>---</cf_tracking_firefox133>
          <cf_status_firefox133>---</cf_status_firefox133>
          <cf_tracking_firefox134>---</cf_tracking_firefox134>
          <cf_status_firefox134>---</cf_status_firefox134>
          <cf_tracking_firefox135>---</cf_tracking_firefox135>
          <cf_status_firefox135>---</cf_status_firefox135>
          <cf_tracking_firefox136>---</cf_tracking_firefox136>
          <cf_status_firefox136>---</cf_status_firefox136>
          <cf_tracking_firefox137>---</cf_tracking_firefox137>
          <cf_status_firefox137>---</cf_status_firefox137>
          <cf_tracking_firefox138>---</cf_tracking_firefox138>
          <cf_status_firefox138>---</cf_status_firefox138>
          <cf_tracking_firefox139>---</cf_tracking_firefox139>
          <cf_status_firefox139>---</cf_status_firefox139>
          <cf_tracking_firefox140>---</cf_tracking_firefox140>
          <cf_status_firefox140>---</cf_status_firefox140>
          <cf_tracking_firefox141>---</cf_tracking_firefox141>
          <cf_status_firefox141>---</cf_status_firefox141>
          <cf_tracking_firefox142>---</cf_tracking_firefox142>
          <cf_status_firefox142>---</cf_status_firefox142>
          <cf_tracking_firefox143>---</cf_tracking_firefox143>
          <cf_status_firefox143>---</cf_status_firefox143>
          <cf_tracking_firefox144>---</cf_tracking_firefox144>
          <cf_status_firefox144>---</cf_status_firefox144>
          <cf_tracking_firefox145>---</cf_tracking_firefox145>
          <cf_status_firefox145>---</cf_status_firefox145>
          <cf_tracking_firefox146>---</cf_tracking_firefox146>
          <cf_status_firefox146>---</cf_status_firefox146>
          <cf_tracking_firefox147>---</cf_tracking_firefox147>
          <cf_status_firefox147>---</cf_status_firefox147>
          <cf_tracking_firefox148>---</cf_tracking_firefox148>
          <cf_status_firefox148>---</cf_status_firefox148>
          <cf_tracking_firefox149>---</cf_tracking_firefox149>
          <cf_status_firefox149>---</cf_status_firefox149>
          <cf_tracking_firefox150>---</cf_tracking_firefox150>
          <cf_status_firefox150>---</cf_status_firefox150>
          <cf_tracking_firefox151>---</cf_tracking_firefox151>
          <cf_status_firefox151>---</cf_status_firefox151>
          <cf_tracking_firefox152>---</cf_tracking_firefox152>
          <cf_status_firefox152>---</cf_status_firefox152>
          <cf_tracking_firefox153>---</cf_tracking_firefox153>
          <cf_status_firefox153>---</cf_status_firefox153>
          <cf_tracking_firefox154>---</cf_tracking_firefox154>
          <cf_status_firefox154>---</cf_status_firefox154>
          <cf_tracking_firefox155>---</cf_tracking_firefox155>
          <cf_status_firefox155>---</cf_status_firefox155>
          <cf_tracking_firefox156>---</cf_tracking_firefox156>
          <cf_status_firefox156>---</cf_status_firefox156>
          <cf_tracking_firefox157>---</cf_tracking_firefox157>
          <cf_status_firefox157>---</cf_status_firefox157>
          <cf_tracking_flowstate01>---</cf_tracking_flowstate01>
          <cf_status_flowstate01>---</cf_status_flowstate01>
          <cf_tracking_flowstate02>---</cf_tracking_flowstate02>
          <cf_status_flowstate02>---</cf_status_flowstate02>
          <cf_tracking_flowstate03>---</cf_tracking_flowstate03>
          <cf_status_flowstate03>---</cf_status_flowstate03>
          <cf_data_science_status>---</cf_data_science_status>
          <cf_fission_milestone>---</cf_fission_milestone>
          <cf_last_resolved>2008-04-14 01:04:45</cf_last_resolved>
          
          <votes>6</votes>

      

      

      

          <long_desc isprivate="0">
            <commentid>2115261</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2004-03-31 09:34:08 -0800</bug_when>
            <thetext>User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7b) Gecko/20040316
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7b) Gecko/20040316

From what I can tell Mozilla is not currently built to support the Windows
unicode binary. This causes issues, such as found in bug 193358:

  http://bugzilla.mozilla.org/show_bug.cgi?id=193358

With access to the source, this can be resolved by compiling from the source and
modifying the necessary build options. This is a pain for most users, especially
on the Windows platform (it is not bundled with necessary build tools).

If the current binary is not built to use the unicode API, because of older
versions of Windows, would it be feasable to have a separate binary build for
Windows. Maybe &apos;Mozilla UC&apos; or &apos;Mozilla Intl&apos;?


Reproducible: Always
Steps to Reproduce:
1.
2.
3.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115371</commentid>
            <who name="Christian :Biesinger (don&apos;t email me, ping me on IRC)">cbiesinger</who>
            <bug_when>2004-03-31 12:12:27 -0800</bug_when>
            <thetext>parts of mozilla autodetect whether the unicode functions are available and use
them if so... that seems like a better solution, because that way you don&apos;t need
a different binary for NT vs 9x</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115389</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2004-03-31 12:39:10 -0800</bug_when>
            <thetext>Sounds fine, if they work. This doesn&apos;t seem to work for the issue raised in 193358.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115636</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-03-31 18:02:55 -0800</bug_when>
            <thetext>For sure, we do not want to build two separate binaries. We don&apos;t have to even
if we make Mozilla a Unicode binary as long as MSLU(Microsoft Layer for Unicode)
is available on Win9x/ME. Among programs that bundle MSLU is MS IE.  The
question is whether we want to keep pretending that Mozilla can be run without
MS IE&apos;s presence. Currently we do and that&apos;s, I guess,  why Roy and Frank
(ftang) decided to roll out our own mini version of MSLU . Bug 162361 is about
extending it for XPCOM file i/o (there&apos;s already a patch), but that has been
held back because I never  heard back from my repeated emails to NSPR owners. 

Recently, I realized that some parts of Mozilla already rely on APIs offerred by
MSIE. That is, Mozilla can&apos;t run without MS IE. That being the case, rolling out
our own version of MSLU doesn&apos;t seem to do any good although it makes Mozilla
further depend on the presence of MS IE (but it already does as far as I can
tell.) Instead, we&apos;d be better off making Mozilla a Unicode binary as suggested
here. That way, we can cut down a quite lot of code. 

This is also a &apos;policy issue&apos; and I&apos;m adding brendan and chofmann to cc. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115748</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2004-03-31 20:51:07 -0800</bug_when>
            <thetext>If the heading is anthing to go by, then MSLU appears to be a redistributable:
 
http://www.microsoft.com/downloads/details.aspx?FamilyID=73ba7bd7-ed06-4f0d-80a4-2a7eeaee17e2&amp;displaylang=en

So we could just include it in a regular Mozilla build. Or am I mis-reading MS&apos;s
definition of &apos;redistributable&apos;? Of course the is probably affected by &apos;policy
issues&apos; that I am not aware of. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115752</commentid>
            <who name="timeless">timeless</who>
            <bug_when>2004-03-31 21:04:06 -0800</bug_when>
            <thetext>erm, we&apos;re backporting support for nt3.5, if you know of some pieces of mozilla
which don&apos;t work w/o ie, i&apos;d like to hear of them. (i believe trident import
needs ie, but well, it&apos;s a bit hard to import ie cookies w/o an ie to generate
cookies.)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115922</commentid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2004-04-01 04:38:51 -0800</bug_when>
            <thetext>(In reply to comment #3)
&gt; Recently, I realized that some parts of Mozilla already rely on APIs offerred by
&gt; MSIE. That is, Mozilla can&apos;t run without MS IE. That being the case, rolling out

Which parts?

And how large is the MSLU redistributable? Depending on licensing, we could
probably make it an optional extra download with installer builds with minimal
trouble.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115929</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-04-01 05:00:02 -0800</bug_when>
            <thetext>We use IUniformResourceLocator APIs that I believe are only available with MS IE.

http://lxr.mozilla.org/seamonkey/search?string=IUniformResourceLocator

http://search.microsoft.com/search/results.aspx?View=msdn&amp;st=a&amp;qu=IUniformResourceLocator&amp;c=0&amp;s=1


As for the size of MSLU, I guess it&apos;s less than 1MB (the page refered to in
comment #4 indicates that it&apos;s 270kB when compressed. )
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2115941</commentid>
            <who name="Christian :Biesinger (don&apos;t email me, ping me on IRC)">cbiesinger</who>
            <bug_when>2004-04-01 05:44:15 -0800</bug_when>
            <thetext>(In reply to comment #7)
&gt; We use IUniformResourceLocator APIs that I believe are only available with MS IE.

but we fail gracefully when it&apos;s not there (we don&apos;t support .url files in that
case but that&apos;s ok)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2116489</commentid>
            <who name="timeless">timeless</who>
            <bug_when>2004-04-01 19:30:42 -0800</bug_when>
            <thetext>what biesi said, although for kicks mozilla could offer an impl of that class
(i&apos;d probably go for it as an xpi perhaps stick it w/ the activex control). note
that without a provider for CLSID_InternetShortcut it should be fairly hard for
someone to manage to get those files onto their system or into memory (just as
it would be hard to need to worry about importing cookies from ie if ie wasn&apos;t
installed).

if you want to file a bug reminding people to consider adding support for it,
you could, i think it&apos;d even be reasonable to stick it in the tracking pool for 35.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2184010</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-06-22 18:32:47 -0700</bug_when>
            <thetext>In bug 162361, Brodie came up with an alternative to MSLU, rolling out our own
version of MSLU (&apos;MZLU&apos;). A number of bugs (including bug 232969, bug 240272,
bug 9449, bug 243618) can be fixed easily (without cluttering the tree with two
branches of code for Win 9x/ME and Win 2k/XP) if we assume or ship MSLU or add
&apos;MZLU&apos;. This issue (Mozilla not being able to take full advantage of Unicode
capability available on Win 2k/XP) is long-standing and I think we have to
resolve this issue before long. It&apos;d be great if we can resolve it in the trunk
soon enough  so that we can back port the change to aviary-1.0 branch as well as
to 1.7branch.

If we decide to add &apos;MZLU&apos;, we can do it gradually (see attachment 150929. see
also bug 162362 and bug 118013) implementing necessary APIs as we move on to &apos;W&apos;
APIs through out the tree.

Brodie, would it be possible to write MZLU in such a way that it can be a
drop-in replacement for MSLU (perhaps not)? If that&apos;s possible, we can offer it
as an additional download that is needed *only* on Win 9x/ME *without* MSLU
installed. 

Even if it&apos;s not, adding MZLU may be a good solution if we&apos;re worried about
potential licensing issues with MSLU (bug 162361 comment #30)

Thoughts? </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2184071</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-06-22 20:15:37 -0700</bug_when>
            <thetext>It is too much effort to try and make a &apos;drop-in replacement&apos; for MSLU. Either
we roll our own customized minimal version and use it always, absorbing the cost
of associated bugs, maintenance and code size, or we actually use MSLU. Using
MSLU is of course the best solution (the Microsoft approved solution).

Can ANYONE tell me exactly why MSLU is considered taboo? Is it licence? Is it
the build requirements (intimated by bug 162362 comment 4)? I can&apos;t find a
definitive history for this decision. 

If the MSLU import library (unicows.lib) build requirements is a problem, then
there is a project at sourceforge (MIT licence) which provides a replacement
import libraries for Microsoft&apos;s MSLU which can be used with lots of different
compilers. I&apos;m not sure if this is even required (as I don&apos;t know the problem).
http://libunicows.sourceforge.net/</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2184083</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-06-22 20:36:47 -0700</bug_when>
            <thetext>(In reply to comment #11)
&gt; ...
&gt; of associated bugs, maintenance and code size, or we actually use MSLU. Using
&gt; MSLU is of course the best solution (the Microsoft approved solution).

  I wish I could use it right now :-)

&gt; Can ANYONE tell me exactly why MSLU is considered taboo? Is it licence? Is it
&gt; the build requirements (intimated by bug 162362 comment 4)? I can&apos;t find a
&gt; definitive history for this decision.

  I also wish to know, but I&apos;m afraid it&apos;s &apos;buried&apos; somewhere between ftang and
roy who are not active any more in Mozilla project. If those currently active on
the project don&apos;t see any problem with using (and shipping) MSLU, let&apos;s just use it.
 
&gt; If the MSLU import library (unicows.lib) build requirements is a problem, then
&gt; there is a project at sourceforge (MIT licence) which provides a replacement
&gt; import libraries for Microsoft&apos;s MSLU which can be used with lots of different
&gt; compilers. I&apos;m not sure if this is even required (as I don&apos;t know the problem).
&gt; http://libunicows.sourceforge.net/

  Thanks for the pointer. For some reason, if we can&apos;t use MSUL, this seems to
be a good alternative. 
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2184086</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-06-22 20:40:21 -0700</bug_when>
            <thetext>The sourceforge project is not a replacement for unicows. It is only a
replacement loader for unicows. It still uses the original Microsoft supplied
redistributable unicows.dll

Who has to be approached in order to get mozilla.org legal people to check the
MSLU licence and make a decision there?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2184143</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-06-22 22:58:03 -0700</bug_when>
            <thetext>(In reply to comment #13)
&gt; The sourceforge project is not a replacement for unicows. It is only a
&gt; replacement loader for unicows. It still uses the original Microsoft supplied
&gt; redistributable unicows.dll

Yeah, I realized that after visiting the site and going through the cvs.

&gt; Who has to be approached in order to get mozilla.org legal people to check 
&gt; the MSLU licence and make a decision there?

  I  added Bart to Cc hoping that he may shed some light on the issue or find
someone who can. Bart, can you help us here?  
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2188665</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-06-28 14:15:03 -0700</bug_when>
            <thetext>I can try and figure out if what you want to do is allowed, if someone
summarises exactly what it is that you do want to do :-) I&apos;d also need links to
the relevant license documents.

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2188765</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-06-28 16:14:17 -0700</bug_when>
            <thetext>To make Mozilla take the full advantage of Unicode capability on Win 2k/XP while
making it still run on Win 9x/ME are  _without_ adding a whole bunch of |if
(isNT) use &apos;W&apos; APIs else use &apos;A&apos; APIs|-like code (see bug 232969 for an
example), we have a few options:

 
  - Ship the whole or a part of MSLU (=unicows.dll + unicows.lib) with Mozilla
Win.  Because we don&apos;t want to break compiliation with mingw, we may want to
ship unicows.dll from microsoft (actual implmentation that translates &apos;W&apos; APIs
to &apos;A&apos; APIs on Win 9x/ME) but use libunicows (import library that hooks up &apos;W&apos;
API calls to the &apos;translator&apos; in unicows.dll if it&apos;s on Win 9x/ME. Otherwise,
native &apos;W&apos; APIs will be used) at http://libunicows.sourceforge.net  (see comment
#13). Taking this way, we don&apos;t have to rely on the presence of MS IE or other
applications (e.g. MS Word/Office) that include MSLU 

 - Just assume the presence of MS IE or other applications that include MSLU. In
this case, we have to require MSIE be installed. We already have a couple of
dependencies on MSIE in our code, but according to cbie, we have a graceful
fallback in absence of MSIE (see comment #8)
   
 - Roll out our own version of MSLU (what Brodie dubbed &apos;MZLU&apos; and had a partial
implementation). In resolving bug 9449, Roy Yokoyama used a similar approach
that can be utilized only in a small portion of Mozilla-code.  
 
  In all three cases, we have to change our code throughout the tree to use &apos;W&apos;
APIs instead of &apos;A&apos; APIs. The former use &apos;UTF16&apos; strings while the latter use
the locale-specific code page (what MS used to call &apos;ANSI&apos; code page) /
multibyte strings. This  can be done gradually  once we make up our mind about
MSLU. 


   Now as for the MSLU license, I can&apos;t find the license terms for MSLU itself
at  the MSDN web site. It&apos;s one of what MS called &apos;redistributable ???&apos;. Brodie,
can you give us the URL of the MSLU license? You quoted a part of the license
(bug 162361 comment #30), which I don&apos;t think we can possibly violate.
  
MSLU announcement :
 http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx : MSLU 

MSLU download :
    
http://www.microsoft.com/downloads/details.aspx?FamilyId=73BA7BD7-ED06-4F0D-80A4-2A7EEAEE17E2&amp;displaylang=en
 

MSDN article about MSLU:
 http://msdn.microsoft.com/msdnmag/nettop.asp?page=/msdnmag/issues/01/10/MSLU/MSLU.asp&amp;ad=ads.ddj.com/msdnmag/premium.htm

Known MSLU bugs:
http://www.trigeminal.com/usenet/usenet035.asp
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2188864</commentid>
              <attachid>151916</attachid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-06-28 19:26:14 -0700</bug_when>
            <thetext>Created attachment 151916
Unicows licence

This attachment is the licence (&apos;licence.txt&apos;) from the MSLU download. The
following text is the extra redistribution clause (&apos;redist.txt&apos;) from that same
download (MSLU 1.0.4018.0, download link supplied in comment #16).

I couldn&apos;t see any plainly obvious reason that we couldn&apos;t redistribute MSLU
ourselves with the exception of clause &quot;Distribution Terms&quot; (c). Even this
clause could probably be worked around by including the relevant terms in our
installer (e.g. this package contains software copyright by Microsoft, you must
abide by there terms for all of that software, namely &quot;MSLU&quot;). 

Note that it is highly desirable to distribute unicows.dll ourselves instead of
depending on it being on the machine. This is so that we know what version of
MSLU we are using (as there are a variety of versions out there with a variety
of bugs). 

It is very desirable to fix this problem sooner rather than later, either via
MSLU or via a roll-your-own version like MZLU (see bug 162361). Every day more
people are inserting more roll-your-own functions like MS/ZLU implements, but
at a higher level which leads to greater codesize for everyone.

--redist.txt--

===============================================
Microsoft Layer for Unicode on Windows 95/98/ME
===============================================

In addition to the rights granted in Section 1 of the Agreement (&quot;Agreement&quot;),
with 
respect to UNICOWS.DLL, you have the following non-exclusive, royalty free 
rights subject to the Distribution Requirements detailed in Section 1 of 
the Agreement: 

(1)	You may distribute UNICOWS.DLL with the following: Windows 95, Windows
98, 
Windows 98 Second Edition, Windows Millennium, Windows NT4, Windows 2000,
Windows XP, 
and Windows Server 2003.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2190424</commentid>
              <attachid>152021</attachid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-06-30 08:33:58 -0700</bug_when>
            <thetext>Created attachment 152021
MZLU 0.1 (by Brodie)

While it&apos;s being decided as to what to do with MSLU, Brodie updated his MZLU
(he uploaded the zip file to bug 162361) from which I&apos;ve made a patch. 
If we decide to take this route (or are forced to because of licensing issues),
we have to adjust its build procedure. Currently, Brodie&apos;s patch has a MS VC++
project file. We need to convert it to Makefile.in.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2190429</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-06-30 08:36:52 -0700</bug_when>
            <thetext>adding cls to cc for a (potential) build issue (either with MSLU or with
Brodie&apos;s MZLU)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2190618</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-06-30 11:27:00 -0700</bug_when>
            <thetext>Having looked at it, the MSLU license is (fairly predictably) not even vaguely
free-as-in-speech. So we don&apos;t want to be shipping it with our products.

So we can either use our own implementation (MZLU) or depend on IE. 

Given that IE has shipped with every version of Windows from 95 up, isn&apos;t that
the easiest solution? Or do only newer versions of IE come with MSLU?

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2190635</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2004-06-30 11:42:22 -0700</bug_when>
            <thetext>(In reply to comment #20)
&gt; Having looked at it, the MSLU license is (fairly predictably) not even vaguely
&gt; free-as-in-speech. So we don&apos;t want to be shipping it with our products.

thanks for reviewing the license gerv


&gt; Given that IE has shipped with every version of Windows from 95 up, isn&apos;t that
&gt; the easiest solution? Or do only newer versions of IE come with MSLU?

it sounds like there are different versions of MSLU floating around, and some
older versions have serious bugs.  i suspect that we might therefore prefer to
use MZLU on older Win32 platforms at least (Win9x in particular).  we might
experience less pain if we simply include MZLU... provided the size is not too
large, which I doubt it will be.

brodie: can you comment on the codesize overhead of MZLU?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2190643</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-06-30 11:48:18 -0700</bug_when>
            <thetext>&gt; So we can either use our own implementation (MZLU) or depend on IE. 
&gt; 
&gt; Given that IE has shipped with every version of Windows from 95 up, isn&apos;t that
&gt; the easiest solution? Or do only newer versions of IE come with MSLU?

MSLU was released only in 2001 so that an old Win9x box with MS IE 3 or 4(?) and
without any relatively new application that includes MSLU wouldn&apos;t have MSLU.
I&apos;m sorry I forgot to mention this. Besides, do we really want to rely on MS IE?
Well, the browser war was over, but relying on MS IE appears to giving in to MS&apos;
argument that MS IE is a part of the OS. Even if that&apos;s not much a concern, we
still have to figure out how to deal with old Win 9x boxes (there shouldn&apos;t be
many of them that fit the description above, but Mozilla is supposed to run on
them, too).

It seems like we have to roll out our own at the cost of increasing the code
size by a few hundred kB&apos;s (probably a lot less)


</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2190646</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2004-06-30 11:52:31 -0700</bug_when>
            <thetext>Thanks for the extra info jshin...

&gt; It seems like we have to roll out our own at the cost of increasing the code
&gt; size by a few hundred kB&apos;s (probably a lot less)

I&apos;d be surprised is MZLU measures up to even 100 kB.  I&apos;d expect much less.  I
don&apos;t think we can decide to take it or leave it until we know exactly how much
codesize increase we are talking about here :-)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2190753</commentid>
            <who name="timeless">timeless</who>
            <bug_when>2004-06-30 13:38:57 -0700</bug_when>
            <thetext>we are working on not requiring windows4 and we&apos;re also interested in supporting
windows nt 4 without ie. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191004</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-06-30 19:33:41 -0700</bug_when>
            <thetext>The current version of MZLU is about 30Kb. The full version of Microsoft&apos;s MSLU
is 240Kb. I expect that once we implement all of the functions that we need in
NSPR and Mozilla we might hit about 80-90Kb in MZLU but I wouldn&apos;t expect much
more. This code size will only be experienced on Windows 9x as NT doesn&apos;t use
the DLL. 

In addition to this, all code modules (.exe and .dll) need to link to the mslu
static lib and call the initialize function at least once before using any other
MZLU functions. The current version of MZLU intentionally sets all function
pointers to NULL in order to force an error if it is used without
initialization. Linking with this static lib will probably increase sizes by a
couple of Kb at most. 

Since the &apos;W&apos; version of all wrapped functions are referenced in the static lib,
it will probably increase the system DLL dependencies for all modules which use
the static lib to include all DLLs implementing those functions. e.g. shell32,
commdlg32, winspool. Since they are all system DLLs and are all used somewhere
in the Mozilla code anyhow this shouldn&apos;t have any noticeable effect on working
set, but startup times might be slightly increased.

If we use MZLU on any platform we need to use it on all platforms otherwise we
are going to have bug reports caused by MSLU being used in one case and MZLU
used in another. Also with the current implementation it&apos;s not a mix and match
situation. MZLU functions are postfixed with &apos;Mz&apos; instead of &apos;W&apos; so they aren&apos;t
directly interchangeable. 

Note: It might be possible to make it compatible with MSLU (i.e. export &apos;W&apos;
postfixed functions) and use the libunicows loader from sourceforge to load it,
but I think that will require us to create stubs for the hundreds of functions
that MSLU implements and we don&apos;t. Easier to stay with readily identifiable &apos;Mz&apos;
== MZLU function names, and our own loader to minimize problems.

timeless: windows4
Do you mean IE4? What are the realistic minimum requirements for Moz? Windows 95
or Windows NT4 (no IE required on either)? If someone removes IE altogether from
Windows (http://www.litepc.com/) and installs Mozilla should it work?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191140</commentid>
              <attachid>152095</attachid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-06-30 23:56:06 -0700</bug_when>
            <thetext>Created attachment 152095
MZLU 0.2

Definitive figures for MZLU 0.2. Linking with the static lib increases .exe
file size by 4Kb. The DLL is about 50Kb (49Kb when built with Mozilla build
harness or 56Kb directly with VC7). There are currently 70 functions
implemented. This gives an overhead of about 50 bytes per function added.

It&apos;s still a bit early to add MZLU as a patch, so I&apos;ll just attach the .zip
file still. Still very much a prototype. This zip includes the Makefile.in
files required for building under the xpcom tree. Not sure if this will be the
final location. Extract the files below xpcom to create the mzlu and mzlu/mzlua
directories. Add xpcom/mzlu directory to xpcom/Makefile.in. Re-run the make at
xpcom.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191159</commentid>
            <who name="timeless">timeless</who>
            <bug_when>2004-07-01 00:40:29 -0700</bug_when>
            <thetext>By Windows 4, I mean Windows 95 or Windows NT 4.

By not requiring Windows 4, I mean supporting Windows NT3.51.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191189</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-01 01:30:26 -0700</bug_when>
            <thetext>Timeless: who is the &quot;we&quot; in &quot;we are working on...&quot;?

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191240</commentid>
            <who name="timeless">timeless</who>
            <bug_when>2004-07-01 03:38:11 -0700</bug_when>
            <thetext>biesi, neil, and me.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191246</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-07-01 03:51:45 -0700</bug_when>
            <thetext>(In reply to comment #29)
&gt; biesi, neil, and me.

What issues are there in NT 3.5x support if we go ahead with MZLU and using &apos;W&apos;
APIs throughout the tree?  Apparently, NT 3.5x is not officially supported by
mozilla.org. So if there&apos;s no unsurmountable (or rather too-hard-to-reconcilate)
conflict between making Mozilla fully-Unicode-capable and supporting NT 3.5,
that&apos;s great.  If there are such problems that it will take us long to resolve,
I&apos;d say that we should give the priority to making Mozilla take the full
advantage of NT4 or later&apos;s Unicode capability. 
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191497</commentid>
            <who name="Wan-Teh Chang">wtc</who>
            <bug_when>2004-07-01 09:37:44 -0700</bug_when>
            <thetext>There is no reason for current and new Mozilla
releases to support NT 3.51.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2191531</commentid>
            <who name="neil@parkwaycc.co.uk">neil</who>
            <bug_when>2004-07-01 10:06:00 -0700</bug_when>
            <thetext>Actually Mozilla builds and almost runs correctly on NT3.51
I only know of three issues:
System fonts come in cell height sizes instead of character height
Bitmap fonts don&apos;t work
Bookmarks don&apos;t load (dependency on IE, would you believe...)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2192382</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2004-07-02 08:50:00 -0700</bug_when>
            <thetext>codesize overhead of MZLU seems well within reason to me.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2192847</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-02 19:31:43 -0700</bug_when>
            <thetext>However we work out the NSPR API issues, NSPR will need to use MZLU in order to 
support the wchar versions of the API on all platforms (anything else is 
useless). Should MZLU be a standalone library that NSPR is dependent on? I 
would prefer to see it at least stay as a library that can be used separately 
from NSPR to make it useful for other projects that may wish to use it without 
using NSPR. 

Going back to MSLU... Could we get around the licence problems with MSLU by 
creating a new application which abides by the licence terms and then recommend 
that users install it when they don&apos;t already have MSLU? Perhaps an extension 
that users on Win9x are &apos;recommended&apos; to install to actually make Mozilla work 
(if they don&apos;t already have MSLU on the system).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2192850</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-02 19:51:52 -0700</bug_when>
            <thetext>Gerv: 
For the future hundreds of developers who are going to wonder why the heck we 
developed our own version of MSLU when the real version was out there begging 
to be used, would you outline exactly where the problems is with redistributing 
MSLU with Mozilla?  Which are the clauses which cause it to be legally 
impossible?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2192860</commentid>
            <who name="Brendan Eich [:brendan]">brendan</who>
            <bug_when>2004-07-02 20:28:04 -0700</bug_when>
            <thetext>We don&apos;t want NSPR, at this late date, to depend directly on some new library. 
wtc can speak authoritatively; I&apos;ll venture that we could add callbacks
defaulting to null, not called unless non-null, that could be set at runtime to
point at MZLU exports.  See for an analogue
http://lxr.mozilla.org/mozilla/search?string=JSLocaleCallbacks.

/be</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2193145</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-03 08:33:08 -0700</bug_when>
            <thetext>Personally I would still like to see it dependent on Microsoft&apos;s 
redistributable component MSLU and not on some new library at all. Otherwise it 
doesn&apos;t particularly matter to me how it is accomplished, whatever way is 
considered politically correct is fine. 

As long as the unicode version of the NSPR API calls the unicode windows 
functions on NT platforms and falls back to ANSI functions on non-NT platforms. 
Since MSLU and MZLU implement this automatically it makes sense to use one of 
those libraries.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2193152</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2004-07-03 08:45:47 -0700</bug_when>
            <thetext>Would it make any difference if the MSLU binary was downloaded for MS and
installed at install time? If it is legally acceptable then I would imagine the
installer getting the current URL of the file from the Mozilla site (in case the
binary gets moved at MS), downloads it and then get the user to compelete the
installation. Is there any way of getting the installer to check for the
availability of a library call before installing an optional component?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2193283</commentid>
            <who name="Christian :Biesinger (don&apos;t email me, ping me on IRC)">cbiesinger</who>
            <bug_when>2004-07-03 13:43:09 -0700</bug_when>
            <thetext>(In reply to comment #38)
&gt; Would it make any difference if the MSLU binary was downloaded for MS and
&gt; installed at install time?

depending on a present internet connection at install time is not acceptable.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2193928</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-04 15:20:43 -0700</bug_when>
            <thetext>What if we just make MSLU a requirement. Similar to the x Mb of memory and x Mb 
of disk? The installer checks to see if it is installed by searching for the 
version we require in common locations, if we can&apos;t find it then the installer 
allows download if download is available, otherwise it&apos;s bye-bye, you need to 
install MSLU before you can install Mozilla. 

The trouble with this is that there is no standard install location or name for 
the DLL. It is distributed named as Unicows.dll but you can rename it (it&apos;s 
recommended by Microsoft too). It&apos;s not supposed to be installed into the 
Windows or system directories, etc. There is no real location that we can look 
for it and know that it exists, except perhaps searching for products like IE 
that we know use it.

I guess I don&apos;t really understand the problem with redistributing the DLL. Gerv 
says that it isn&apos;t free as in speech, but is that important in this situation? 
It is a royalty-free redistributable system DLL provided by Microsoft for this 
exact situation. As long as there are no actual *legal* issues to installing it 
ourselves, we should. It reduces bugs on our side, it is well supported by 
Microsoft, it is the official solution to this problem, it reduces our source 
code size, it has everything going for it and it is redistributable for crying 
out loud. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2194994</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-06 08:06:40 -0700</bug_when>
            <thetext>Brodie: it&apos;s pretty simple. MSLU is not free software, and mozilla.org
distributions contain only free software (except Talkback, for historical and
deeply practical reasons which I wish would go away but probably won&apos;t.) 

I don&apos;t really need to outline why it&apos;s not free software - it&apos;s clear to anyone
who knows what the terms means and then looks at the license for 30 seconds that
it&apos;s not. :-)

There&apos;s nothing wrong with us depending on MSLU being present, or telling people
to install it before they install Mozilla, but we won&apos;t ship it ourselves.

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2195769</commentid>
              <attachid>152484</attachid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-06 23:20:19 -0700</bug_when>
            <thetext>Created attachment 152484
MZLU 0.3

Gerv: 
Is this being overly moralistic? If we are going to make Mozilla/Win dependent
on a redistributable component of the OS, then isn&apos;t it better to distribute
that component in order to reduce the installation problems for users on Win9x.
Does the distribution of MSLU with Mozilla/Win affect the tri-licencing of
Mozilla?

Whoever has the ability to make a decision: 
Is it satisfactory to distribute Mozilla/Win with the requirement on
Win95/98/ME that MSLU has been installed in the windows/system32 directory
first? i.e. unicows.dll of a specific version or better exists in that
directory? On installation we can then either use the file from that location,
or copy it to our installation directory to have the local copy which is
recommended by Microsoft. It is then left up to customers to ponder how to
fulfil this requirement.

And finally, in case MSLU isn&apos;t used, attached is MZLU 0.3 with support for
registry functions. Included is the patch for xpcom/Makefile.in</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2196036</commentid>
            <who name="Robert O&apos;Callahan (:roc) (email my personal email if necessary)">roc</who>
            <bug_when>2004-07-07 07:35:10 -0700</bug_when>
            <thetext>I don&apos;t understand why we can&apos;t ship 3rd party redistributables in our
distributions. Even the GPL would probably allow this since this Unicode layer
is pretty clearly a piece of the OS and normally distributed with the OS these days.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2196049</commentid>
            <who name="Wan-Teh Chang">wtc</who>
            <bug_when>2004-07-07 07:49:40 -0700</bug_when>
            <thetext>Gerv: MSLU should be treated the same way as MSVC&apos;s
runtime libraries.  If mozilla.org distributions can
contain only free software, mozilla.org will not be
able to ship a distribution compiled with the current
version of MSVC (.NET 2003) because you can&apos;t ship
its runtime libraries (msvcr71.dll and msvcp71.dll).
It is obvious to me that this rule must make an
exception for libraries that are considered part of
the programmming language runtime or the platform.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2196358</commentid>
            <who name="Brendan Eich [:brendan]">brendan</who>
            <bug_when>2004-07-07 13:27:17 -0700</bug_when>
            <thetext>Whatever we do, the default Firefox packaging should not include extra stuff
needed only on downrev Windows.  Special package(s) for those OS versions would
be fine with me.

/be</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2196413</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-07 14:15:04 -0700</bug_when>
            <thetext>roc: as it happens, the mozilla.org binaries are not distributed under the GPL,
they are distributed under the MPL. 

But, if they were distributed under the GPL, we could not distribute MSLU. The
GPL requires you to distribute the entire source code of your application
(section 3.a). The exception you may be thinking of runs as follows:

&quot;However, as a special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary form) with the
major components (compiler, kernel, and so on) of the operating system on which
the executable runs, unless that component itself accompanies the executable.&quot;

The component would be accompanying the executable in this case, and so the
exception does not apply.

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2196421</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-07 14:20:51 -0700</bug_when>
            <thetext>Wan-Teh: it may well be true that this rule means mozilla.org can&apos;t ship
binaries compiled against MSVC .NET 2003. But why would we want to, when we can
compile binaries which work out of the box on all Windows platforms without need
of new system DLLs?

Having said all that, producing &quot;free software&quot; on top of a non-free operating
system is always going to have grey areas. But it seems to be that, if we have
an alternative, introducing a dependency on a proprietary library seems a bad
step. What are the disadvantages of using MZLU?

Gerv
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2196669</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-07 19:59:07 -0700</bug_when>
            <thetext>The disadvantage of MZLU is that it is completely new written from scratch. It
has a mildly different API from the system API (i.e. Mz suffix instead of W,
maybe not all API side-effects implemented fully). It doesn&apos;t implement the
entire Win32 API and so we need to continually extend and maintain it as
extra/different functions are required. To use it in NSPR (which needs to have a
Unicode API) we need to create a dependency from NSPR to MZLU which isn&apos;t popular.

The advantages of MSLU is that it has been in use for a long time, it&apos;s stable
and supports everything that we need now and in the future without any
development work. The API is completely specified, documented and tested. NSPR
can just use the W functions, link to the MSLU loader, and leave the problem of
getting the MSLU DLL to the client up to the user of NSPR. 

Brendan: the compressed DLL is about 85Kb and is the entire difference between
NT and 9x versions of Mozilla. I think it would be far more convenient for
customers if we shipped a single distributable for all platforms.

Gerv: you address why the GPL doesn&apos;t permit the redistribution of OS components
but you didn&apos;t address the MPL which is what we distribute under.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2196918</commentid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2004-07-08 05:31:49 -0700</bug_when>
            <thetext>(In reply to comment #47)
&gt; Wan-Teh: it may well be true that this rule means mozilla.org can&apos;t ship
&gt; binaries compiled against MSVC .NET 2003. But why would we want to, when we can

We already ship the MSVC6 runtime libraries in seamonkey installer builds,
because some win95 (and NT4?) machines don&apos;t come with them.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2197193</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2004-07-08 10:22:42 -0700</bug_when>
            <thetext>We should also consider how this will impact extension authors.  If I write an
extension, and want to use Win32 Unicode APIs, it would be nice to utilize the
same solution that Mozilla is using.  If Mozilla is using MZLU, and if MZLU only
consists of entry points for methods that Mozilla is using, then what happens
when my extension needs to use other Win32 APIs?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2198277</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-09 10:29:07 -0700</bug_when>
            <thetext>I&apos;ll bring this issue up at the next staff meeting. 

Does anyone have a link to the redistribution license for the MSVC6 runtimes
that we currently distribute? If it&apos;s the same, then I guess distributing MSLU
wouldn&apos;t be any worse.

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2200823</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-12 09:25:12 -0700</bug_when>
            <thetext>OK, chaps, this sinks us, surely? From attachment 151916 (Unicows licence):

&quot;(d) you do not permit further redistribution of the Redistributable Components
by your end-user customers;&quot;

We just can&apos;t live with that restriction for Firefox builds. (c), which is about
a click-wrap license, is bad too.

Gerv
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2200895</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2004-07-12 10:18:05 -0700</bug_when>
            <thetext>This issue of the Unicows license is really a big sticking point and seems to be
the main thing holding us back. I have already suggested at the start of all
this, that maybe two versions of Mozilla for Windows might be the best approach,
in the same way that there was a MacOS 9 and MacOS X version (MacOS 9 support
now being discontinued). The first version would be rated 95-NT, and the other
version would be Windows 2000 upwards. This had been rejected, but I am
wondering whether that maybe now it would be the only way to go forward, maybe
as a temporary solution until we can get a complete MZLU finished?

Having a choice of two binaries is not something that is new many Windows users,
since there already a number of programs that a distributed in this way.

Something else:

Out of curosity, how much of the code actually has Windows API hooks that would
be affected by UTF8? I ask this since another approach would be to have two
shared libraries distrubted with the Windows version (one for UTF8 and the other
without) and then depending on the availibity of the Unicode API load the
appropriate shared library, based on an initialisation test.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2201381</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-12 17:31:57 -0700</bug_when>
            <thetext>Yes, it does seem to be a problem. 

How about this solution:

* create a separate product with minor functionality that installs a known
version of unicows.dll into a known location. It has a simple installer, is
completely optional and is licenced using MS happy terms:
  - click-wrap
  - non-redistributable

* Use of Mozilla on Windows 95/98/ME has a requirement that the MSLU must
already exist as &apos;unicows.dll&apos; version 1.0.4018.0 or greater in the windows
directory. 

* Users of Mozilla on 9x/ME have the option of installing IE, or the minimal app
above, or just download MSLU from the MS site itself and copy it to the windows
folder.

ajmas: two binaries won&apos;t really solve anything here. We are trying to get a
single binary that works on all platforms leveraging the Unicode API of NT/2K/XP
and yet falling back to ANSI codepages on 9x/ME. The solution needs to be final
rather than temporary. It should be soon to stop the cruft of ANSI/Unicode
wrappers that is not-so-slowly creeping into the code base all over the place.
UTF-8 is not used internally by Windows, but may be the representation used to
talk to the NSPR library.


Also, simply for interest&apos;s sake, here is the licence for VC.NET 2003:
http://msdn.microsoft.com/visualc/vctoolkit2003/eula.aspx</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2203551</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-14 13:46:23 -0700</bug_when>
            <thetext>&gt; maybe two versions of Mozilla for Windows might be the best approach,

We can&apos;t distribute MSLU with _any_ mozilla.org software, because MSLU forbids
redistribution by the people we give it to, and we can&apos;t (or won&apos;t) take the
steps they require us to take (clickwrap license etc.) to prevent that.

Also, doing such a thing is basically falling into the Java Trap, or something
like it:
http://www.gnu.org/philosophy/java-trap.html
Our software becomes non-free because it depends on a non-free component being
included.

&gt; create a separate product with minor functionality that installs a known
&gt; version of unicows.dll into a known location.

Note that the MSLU license says that anything that redistributes the DLLs must
add &quot;significant and primary functionality to the Redistributable Components&quot;.

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2203938</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-14 18:26:27 -0700</bug_when>
            <thetext>(In reply to comment #55)
&gt; Note that the MSLU license says that anything that redistributes the DLLs must
&gt; add &quot;significant and primary functionality to the Redistributable Components&quot;.

Yes, I&apos;m aware of that. Since MSLU only implements a Unicode API, any program 
that actually does something fulfils that clause. e.g. display the version of 
windows libraries, or run in the background and check a pop mail box. 

It seems like everyone here is acting in an adversarial manner. Instead lets 
work together to find a way to use this software.

Mozilla needs to use Unicode on Windows to solve a heap of problems that are 
plagueing those pesky people that don&apos;t use single byte character sets. For the 
reasons supplied in comment #48, the best way to do so is to use MSLU which is 
a non-free redistributable part of the OS, the same as the C runtime libraries.

My suggestions for how to avoid the licencing issue is that we just make MSLU a 
required part of the OS spec. To then make it easier for users, we supply a 
little non-free program (required by MSLU licence) which will add the 
appropriate files to their OS. Their use of the non-free program is optional, 
they can also use any of the MS non-free programs that use MSLU to install it. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2204259</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-07-15 02:20:04 -0700</bug_when>
            <thetext>(In reply to comment #55)

&gt; Also, simply for interest&apos;s sake, here is the licence for VC.NET 2003:
&gt; http://msdn.microsoft.com/visualc/vctoolkit2003/eula.aspx

This license seems as unsuitable for us as the MSLU license (in light of comment
#52). It has a similar provision for the redistribution. How about the license
of MSVC6 run-time libraries mentioned in comment #49? If it has a similar
provision, according to Gerv, we have to stop including it .....
 </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2204323</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-15 04:03:10 -0700</bug_when>
            <thetext>As far as I can tell, the Visual C++ 6 terms are different. I haven&apos;t found an
official copy yet, but I found:
http://technology.pitt.edu/software/userights/visual_studio.pdf

Section 3.1.1 of that document has an exception for people re-redistributing
your stuff, which probably covers us, and it doesn&apos;t require us to impose a
particular EULA on our customers. So we are probably OK with Visual C++ 6
redistributables.

The VC.NET license, as linked in comment 57, does have a redistribution exception:

&quot;You also agree not to permit further distribution of the Redistributables by
your end users except you may permit further redistribution of the
Redistributables by your distributors to your end-user customers if your
distributors only distribute the Redistributables in conjunction with, and as
part of, the Licensee Software and you and your distributors comply with all
other terms of this EULA.&quot;

But it&apos;s the last part of that sentence (which seems to tie back to the new
requirement to impose a EULA on your customers) which would present a problem.
We can&apos;t ensure that our distributors comply with all the other terms of the MS
EULA.

Time to start polishing up the mingw port? :-)

Gerv
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2204343</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-07-15 04:39:08 -0700</bug_when>
            <thetext>In reply to comment #56)

&gt; plagueing those pesky people that don&apos;t use single byte character sets. For 

Just to dispell any misunderstanding, I have to make it clear that the above is
not correct (I know Brodie knew that, but he oversimplified). It&apos;s not single
byte character encoding vs double/multibyte character encoding. It&apos;s about going
beyond the limit of a single _legacy_ character encoding  to take the full
advantage of Unicode support available on Win NT4/2k/XP (e.g. a Russian user
wanting to have a Greek filename)  while keeping Mozilla still usable (with all
the limit of a single legacy character encoding) on Win 9x/ME. 


&gt; My suggestions for how to avoid the licencing issue is that we just make 
&gt; MSLU a  required part of the OS spec. To then make it easier for users, 
&gt; we supply a  little non-free program (required by MSLU licence) which 
&gt; will add the appropriate files to their OS. Their use of the non-free program 
&gt; is optional,  they can also use any of the MS non-free programs that 
&gt;  use MSLU to install it.

As long as we make Mozilla and friends for Windows, we can&apos;t avoid &apos;Java trap&apos;
completely. That being the case, the above suggestion seems to be workable
although further developing MZLU and offering it to other open source developers
wouldn&apos;t be bad, either.


re comment #55:
&gt;&gt; maybe two versions of Mozilla for Windows might be the best approach,

&gt; We can&apos;t distribute MSLU with _any_ mozilla.org software, because MSLU 

Gerv, you misunderstood what ajmas suggested. He suggested that to _avoid_ the
licensing issue with MSLU, we make two separate binaries, one for Win 9x/ME that
uses &apos;A&apos; APIs and the other for Win NT4/2k/XP that uses &apos;W&apos; APIs. __Neither__ of
them depends on MSLU. In comment #3, I wrote that that&apos;s not a good idea because
it makes it very hard to manage and test the code with a lot of #ifdef&apos;s.  In
that case, we also need to set up two separate tinderboxes for each of our
products (one for &apos;A&apos; APIs and the other for &apos;W&apos; APIs) 

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2204362</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-15 05:03:42 -0700</bug_when>
            <thetext>&gt; Gerv, you misunderstood what ajmas suggested. He suggested that to _avoid_ the
&gt; licensing issue with MSLU, we make two separate binaries, one for Win 9x/ME that
&gt; uses &apos;A&apos; APIs and the other for Win NT4/2k/XP that uses &apos;W&apos; APIs.

Ah, right. Sorry about that. I thought he meant one with MSLU and one without.

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2205969</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2004-07-16 10:32:25 -0700</bug_when>
            <thetext>I was just doing yet another security update for MS-Windows and something struck
me. Users need to have Internet Explorer installed on their machine to be able
to run Windows update. If they don&apos;t have it then their machine is probably a
security nightmare. Windows update will work with nothing else.

Based on that I am wondering whether it is safe to assume that all users will
have Interner Explorer installed in some form. Given this I am wondering to what
extent they are likely to have the unicows.dll on their machine. I know am going
down the dangerous road of assumptions, but maybe a survey in this direction
might help us?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2207018</commentid>
            <who name="Jim diGriz">jimdigriz</who>
            <bug_when>2004-07-17 13:12:03 -0700</bug_when>
            <thetext>I think that in corporate/enterprise environments some sort of centralised push
solution is usually used to automatically distribute patches, updates and new
applications to the desktops (Zenworks comes to mind), so you can&apos;t assume that
IE is installed at all.

On the other hand in such environments older versions of Windows would have long
since been phased out.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2207123</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-07-17 15:24:27 -0700</bug_when>
            <thetext>Let&apos;s see what we can do:

 1.MZLU: Unlike Brodie, I&apos;m not worried that it&apos;s not so good as MSLU. It may
be, but we have it under our control so that if there&apos;s a problem, we can fix
it. The only downside with this approach is what Darin mentioned in comment #50.
Plugin authors could be impacted similarly. Perhaps, we have to put up a web
page for extension/plugin authors in which it&apos;s clearly mentioned what needs to
be done if they want to use &apos;W&apos; APIs for which there&apos;s no wrapper in MZLU. The
page also has to list all Win32 APIs with wrappers available in MZLU and their
naming scheme. 

 2. Shipping MSLU  seems to be out of question (comment #55, comment #52)

Gerv&gt; we can&apos;t (or won&apos;t) take the
Gerv&gt; steps they require us to take (clickwrap license etc.) to prevent that.

 3. Make it a requirement on Win9x/ME that MSLU be present (by installing
non-free programs that include it or by installing Win SDK kit?). A trouble with
this is that its location and name can vary (I can&apos;t find unicows.dll on Windows
ME although MS IE 5(?) is present). Adding details about this (where MSLU should
be present in what name) to the release notes (and perhaps some other very
prominent places)  might solve the problem, but it would be a hurdle for
non-technically oriented people (I wish they all had thrown away Win 9x/ME...). 

 Given all these, I&apos;m inclined to go with the first option. If we decide to go
with it, I&apos;ll volunteer to write a short document for extension(/plugin) authors
about using Win32 APIs. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2207135</commentid>
            <who name="Gervase Markham [:gerv]">gerv</who>
            <bug_when>2004-07-17 15:34:14 -0700</bug_when>
            <thetext>We could take option 3 by surveying where common apps put their copy (and what
they call it), and trying to load them all in turn. It&apos;s a bit hacky, but I
suspect we could get fairly good coverage. 

Gerv</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2208477</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2004-07-19 10:04:41 -0700</bug_when>
            <thetext>I like option #1 too.  I think it will give us fewer headaches, and at least we
have access to all the knobs.  If it&apos;s true that older versions of MSLU are
buggy, then I can only imagine that we are inevitably going to inherit some of
those bugs  in some cases until we eventually get it all ironed out :-(</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2208559</commentid>
            <who name="Christian :Biesinger (don&apos;t email me, ping me on IRC)">cbiesinger</who>
            <bug_when>2004-07-19 11:00:57 -0700</bug_when>
            <thetext>I also prefer option 1. forcing users to install a seemingly unrelated app just
so they can use mozilla seems like no good idea to me.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2210623</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-21 08:57:58 -0700</bug_when>
            <thetext>(In reply to comment #50)
&gt; consists of entry points for methods that Mozilla is using, then what happens
&gt; when my extension needs to use other Win32 APIs?

I guess they have to extend MZLU to implement their functions and then 
distribute an updated version of the MZLU DLL with their extension. Either they 
update our MZLU DLL with the new one (we need to add version info to the DLL to 
allow this) or implement MZLU such that they can run side by side with 
different DLL names and the extension somehow loads their version of the DLL 
(assuming that the extension calling Win32 API is a DLL this should be 
possible).

If we allow extension authors to upgrade the MZLU DLL then we need to ensure 
that there is only a single instance of that DLL to be upgraded (e.g. all bin, 
bin/components, GRE modules that link to it all load the same DLL). For 
instance by making it a file in Program Files/Common Files.

If going with option 1 (using MZLU) then we need to implement the NSPR 
dependency on MZLU somehow. Callbacks were mentioned in comment #36, but since 
the API of MZLU is already function pointers, this seems somewhat strange. 
Since the NSPR Unicode implementation will be a special mode or API to maintain 
backwards compatibility (currently it&apos;s a special API enabled via compile time 
defines), the user of NSPR will need to intentionally use the Unicode enabled 
functions. In this case surely a new library dependency shouldn&apos;t be a problem. 
wtc?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2211183</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-21 20:22:43 -0700</bug_when>
            <thetext>Since everyone seems to prefer using MZLU, and it would provide other
open-source projects with a free version of MSLU type functionality, I&apos;m happy
to continue and develop it. I need to know where to place it in the source tree.
It seems to me that it should be a top level component for the following reasons:

a) dependency from NSPR (when MOZILLA_UNICODE or similar defined)
b) dependency from rest of Mozilla
c) we want to provide it as a standalone project for others to use
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2211711</commentid>
            <who name="Brendan Eich [:brendan]">brendan</who>
            <bug_when>2004-07-22 09:08:57 -0700</bug_when>
            <thetext>Brodie: we could put it in mozilla/mzlu, on the theory that a big top-level is
best for finding things (tyranny-of-hierarchy makes any attempt to categorize
modules not scale well over time and people).  But we do try to group like
things, where we have a plurality of such things, or are likely to have a
plurality in due course, under top-levels such as db, gc, and parser.

So should we put this under mozilla/intl, or is that less a container of like
things, and more of a singular module?

Should we call the directory mzlu?

Give me some thoughts, and as top-level mkdir judge, I&apos;ll render a quick
verdict.  Thanks,

/be</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2211754</commentid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2004-07-22 09:59:07 -0700</bug_when>
            <thetext>I think we should decide the NSPR dependency before continuing. If NSPR were to
depend on MZLU, it should live in the NSPR build tree (and we should get rid of
those MOZ_UNICODE #ifdefs. At that point there is no reason I see not to just
integrate the MZLU dynamic loading directly into nspr4.dll instead of having a
separate library.

However, we could alternatively move the NSPR MOZ_UNICODE functions (such as
PR_OpenFileUTF16) into XPCOM or someplace where NSPR wouldn&apos;t have to depend on
MZLU.

Let&apos;s solve the link-time-dependency issue before settling on a tree location.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2211809</commentid>
            <who name="Brendan Eich [:brendan]">brendan</who>
            <bug_when>2004-07-22 10:48:01 -0700</bug_when>
            <thetext>We could also make NSPR depend on MZLU not at compile time at all, which is a
much better idea in my book, and probably in wtc&apos;s.

Why shouldn&apos;t NSPR call through a configurable set of callback functions,
default null, and be free of #ifdefs?  Is it too ugly, due to too many
callbacks?  Or too costly?

bsmedberg: I don&apos;t think MZLU is part of NSPR in any sense, so I don&apos;t see why
it should live under mozilla/nsprpub.  The source tree issue can be separated
from other build and runtime issues, and should be in general.  Build- and
run-time orders vary over time and across apps.  The tree does not.

/be</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2211825</commentid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2004-07-22 11:06:32 -0700</bug_when>
            <thetext>&gt; We could also make NSPR depend on MZLU not at compile time at all, which is a

NSPR should drop the FooUTF16 methods altogether, and not pretend to be
unicode-aware. Instead, move the unicode-aware methods into xpcom.dll, and have
xpcom.dll depend on or integrate-in MZLU.

--BDS</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2211847</commentid>
            <who name="Wan-Teh Chang">wtc</who>
            <bug_when>2004-07-22 11:24:26 -0700</bug_when>
            <thetext>Whether NSPR depends on MZLU or not is irrelevant.  MZLU
should be a stand-alone library.  Even if NSPR uses MZLU,
NSPR won&apos;t export the MZLU symbols.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2212784</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-23 09:53:36 -0700</bug_when>
            <thetext>Perhaps it should go into whatever location that the separate libraries get 
put. modules or lib? Where is expat? That&apos;s in the tree somewhere isn&apos;t it?

As for naming, I&apos;m not particularly attached to MZLU if there is some problem 
with it. Suggest another name if necessary. If not then I suggest that we stay 
with it. There won&apos;t be any naming issues with Microsoft would there? The full 
name is obviously not mistakable as MS software. The shortened form is arguable.

bsmedberg: I know that you are keen to reduce the DLL footprint of Mozilla and 
this is a good aim. I&apos;m not sure that mzlu can be successfully merged into any 
of the other libraries though. The closest fit might be NSPR, but wtc isn&apos;t 
keen for that. At the moment the DLL is only 60-80Kb with 90 functions 
implemented, but if we ever get to MSLU like coverage of 520+ functions, I 
epxect that it will grow to similar proportions of MSLU, about 300-400Kb. 
Perhaps then the overhead of a separate DLL file isn&apos;t so important?

In my local copy (after 0.3) I&apos;ve changed the exported names of the functions 
to match the MSLU DLL (i.e. using xxxW function names instead of xxxWrapped). 
This allows us in future to possible use mzlu as a drop in replacement for the 
MSLU DLL. Combined with the libunicows loader noted above we have a full open-
source mslu replacement.

The static lib that NSPR would link with to provide the unicode API provides a 
number of function pointers implementing the &apos;W&apos; version of the Windows API. 
This either calls directly into the Windows NT native W API, or it redirects it 
into the wrapped versions implemented by the mzlu DLL when running on 9x 
platforms. If the mzlu library isn&apos;t initialized then all of these function 
pointers are NULL. This is already very similar to the callback idea. The major 
difference is that the function pointers etc are the mzlu static library and 
not straight NSPR. Of course NSPR could reimplement the functionality of the 
mzlu static library (or copy it into NSPR code) too, removing the build 
dependency but adding a maintenance dependency.

Similar to bsmedberg, I think that it would be best if the Windows NSPR got rid 
of the UTF16 versions of the functions, and instead implemented a single 
function which switches the meaning of the char* parameters from native to utf8 
encoded. utf8 to/from wchar_t conversions are simple and pretty much foolproof. 
The same API is used, with the difference being the interpretation of the char* 
arguments. When put into Unicode/utf8 mode, NSPR would have to call the W API 
implemented by mzlu. Otherwise it would continue to call the A API natively 
supported on all platforms.

Finally, a note regarding my availability. I have quit my job and will be on an 
extended vacation (anywhere from 1 to 4 months) away from all software 
development in a couple of weeks. It would be good to get some of this 
finalized before I leave if possible, otherwise I&apos;m sure that jshin and others 
can keep moving it along even if it doesn&apos;t.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2212943</commentid>
            <who name="Brendan Eich [:brendan]">brendan</who>
            <bug_when>2004-07-23 12:05:23 -0700</bug_when>
            <thetext>lib is gone, or should be -- an AT&amp;T Unix-ish holdover from the old Netscape tree.

modules is deprecated -- please don&apos;t add to it, unless you can convince me that
it is not just a useless container for stuff better located elsewhere, possibly
at top-level.

Again I urge folks to avoid mixing build options, which might do very desirable
things such as combine libraries to cut down on DSO overhead, with source tree
layout.  Source trees don&apos;t age or scale well if you try to subsume directories
based on current library and program build bundling.  The source tree should be
more of a module catalog, and at sufficient scale, alphabetical ls listing is
your friend, not any particular non-categorical hierarchy.

/be

/be</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2214034</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-24 18:54:28 -0700</bug_when>
            <thetext>The scope of the mzlu project is providing a unicode wrapper around the Win32 
ANSI code-page API used by Windows 9x/ME. It doesn&apos;t provide any international 
functionality other than converting text in/out function parameters between 
unicode and the current system codepage. The goal of the project is eventually 
to provide a complete open-source replacement for MSLU, but in the short term 
it is specifically focused on Mozilla&apos;s needs.

I am not personally concerned if it exists in the intl directory or at top 
level, however perhaps top-level is more appropriate since 
a) an mzlu-like project will only be created once for Windows (no other 
platforms require it)
b) it is only a character encoding wrapper around an api
c) it is eventually intended for a wider audience then just mozilla

Unless anyone has specific concerns about calling it mzlu (Mozilla Layer for 
Unicode), I suggest that we stay with mzlu as the project name and also use 
that as the main directory name in the build tree. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2214038</commentid>
            <who name="Brendan Eich [:brendan]">brendan</who>
            <bug_when>2004-07-24 19:20:58 -0700</bug_when>
            <thetext>Only categorical hierarchy thought that comes to mind: is there any point in a 
mozilla/unicode container?  If not, top-level mzlu is ok with me.  I&apos;m cc&apos;ing 
smontagu.

/be</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2214688</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-25 17:56:59 -0700</bug_when>
            <thetext>What would go into the unicode container other than mzlu? Is it just for future
use? Again, I have no preference for where the library is located.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2215081</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-26 07:53:38 -0700</bug_when>
            <thetext>I&apos;ve been chatting with Vaclav Slavik, the author of the MIT-licenced 
libunicows (http://sourceforge.net/projects/libunicows/) about how we might use 
libunicows with mzlu. 

In summary, they fit together perfectly - if we write mzlu as a drop in 
replacement for the MSLU library &quot;unicows.dll&quot; (i.e. all implemented functions 
use the same export names) then libunicows can load our DLL automatically if it 
can&apos;t find the real unicows.dll library. Vaclav is happy to modify libunicows 
to fit any mzlu special requirements as long as it keeps libunicows fully 
interchangeable with the real unicows.dll

In order to use the libunicows/mzlu combination in Mozilla we need to build 
with UNICODE defined (or explicitly call the W functions), link to the 
libunicows static lib (ensuring libunicows comes first in the link list) and 
distribute mzlu.dll with the application. 

What I intend to do now is rewrite the mzlu project so that it is designed 
specifically to work with libunicows. I will get rid of the custom loader that 
I had written and will instead write only the DLL. libunicows will be a 
requirement for use of mzlu. This is a good thing because libunicows is smaller 
and faster than my basic loader. Licencing shouldn&apos;t be a problem as the MIT 
licence basically permits anything (Gerv?).

I&apos;ll post (with permission) some of the emails that I have exchanged with 
Vaclav.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2215085</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-26 07:57:30 -0700</bug_when>
            <thetext>Extract from Vaclav&apos;s reply to my first email explaining the project and asking 
whether we could use libunicows with our own implementation of mzlu. The app 
that he mentions in the email is http://poedit.sf.net

Brodie Thiesfield wrote:
&gt;&gt; My question is: is it possible to use your libunicows loader to
&gt;&gt; load our mzlu.dll

(Why not unicows.dll? That would make it easier to be a complete 
replacement...)

&gt;&gt; instead of the unicows.dll EVEN if we only 
&gt;&gt; have a subset of implemented functionality? i.e. can I use
&gt;&gt; libunicows to load the current mzlu DLL? If so, what would
&gt;&gt; happen to callers that try to call a function not
&gt;&gt; implemented/exported from MZLU?

I think it should work out of the box. You can already change 
UnicowsDllName variable to point to mzlu.dll instead of unicows.dll, 
but it requires special code in the app, which is a Bad Thing (the 
rest of libunicows is completely transparent to the programmer -- the 
*only* thing you have to care about is linking it in, no 
initialization is required (unlike MZLU, I gather?)). But if you 
decide on using mzlu.dll name instead of unicows.dll, I would 
certainly like to include its support directly in libunicows, e.g. by 
trying it if unicows.dll couldn&apos;t be found (or the other way around).

As for subset of functionality, it shouldn&apos;t be a problem at all. Each 
function is handled separately in libunicows, there aren&apos;t 
dependencies an overything (such that ibunicows would, for example, 
try to load all 520+ symbols from unicows.dll). If you don&apos;t use FooW 
function, its loader code doesn&apos;t get linked into your executable at 
all. If your app uses FooW but MZLU doesn&apos;t support it, then loading 
the symbol will fail (on 9x, unicows.dll/mzlu.dll would not be even 
looked at all on NT/2k/XP), libunicows will display error message and 
terminate the app. This is no worse than if native FooW would be 
called (it would return error code and GetLastError would return &quot;not 
implemented&quot; or something), but if this behaviour would be unsuitable 
for you, you can change the UnicowsImportError pointer to point to a 
function that does something better. It&apos;s not currently possible to 
use UnicowsImportError callback to provide a replacement no-op 
version of unimplemented function, but if it would be needed, I can 
easily add such a callback to libunicows, it&apos;s just that I didn&apos;t 
need it myself yet.

So in short, I believe there shouldn&apos;t be any problems, and if 
something shows up, I&apos;m more than willing to help with fixing it so 
that you can use libunicows instead of wasting your time reinventing 
the wheel.

(I&apos;ll a little selfish here, too -- I use embedded Gecko in my app and 
would like to make sure MZLU won&apos;t interfere with NT-only or MSLU 
builds, which it won&apos;t if you&apos;d use libunicows  ;-) </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2215089</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-26 08:01:42 -0700</bug_when>
            <thetext>Extract from my reply:

&gt;&gt;&gt;&gt;My question is: is it possible to use your libunicows loader to
&gt;&gt;&gt;&gt;load our mzlu.dll
&gt;
&gt;&gt; 
&gt;&gt; (Why not unicows.dll? That would make it easier to be a complete 
&gt;&gt; replacement...)

I&apos;ll leave it up to the user if they want to rename it to unicows.dll,
but I&apos;ll release it under mzlu.dll. That avoids any problems with name
clashes and makes it a bit clearer if it is the moz version or the MS
version.

&gt;&gt;&gt;&gt;instead of the unicows.dll EVEN if we only 
&gt;&gt;&gt;&gt;have a subset of implemented functionality? i.e. can I use
&gt;&gt;&gt;&gt;libunicows to load the current mzlu DLL? If so, what would
&gt;&gt;&gt;&gt;happen to callers that try to call a function not
&gt;&gt;&gt;&gt;implemented/exported from MZLU?
&gt;
&gt;&gt; 
&gt;&gt; I think it should work out of the box. You can already change 
&gt;&gt; UnicowsDllName variable to point to mzlu.dll instead of unicows.dll, 
&gt;&gt; but it requires special code in the app, which is a Bad Thing (the 
&gt;&gt; rest of libunicows is completely transparent to the programmer -- the 
&gt;&gt; *only* thing you have to care about is linking it in, no 
&gt;&gt; initialization is required (unlike MZLU, I gather?)). But if you 

My current version is all pretty basic, hence the reason that I was
wanting to use your loader. That would mean that I only need to write
the DLL.

One thing that I could do with the way I was writing mzlu was to wrap
functions that don&apos;t seem to be wrapped by mslu (and so aren&apos;t supported
by your loader). Things like some CRT functions which I find useful
(e.g. _wgetdcwd).

There are also the IME functions (Imm*) which are natively supported in
Unicode on Win98+ but not on Win95, but don&apos;t seem to be wrapped by
MSLU. I don&apos;t know if I need to yet, but I was thinking of wrapping them
on Win95 to make them available on all platforms.

&gt;&gt; decide on using mzlu.dll name instead of unicows.dll, I would 
&gt;&gt; certainly like to include its support directly in libunicows, e.g. by 
&gt;&gt; trying it if unicows.dll couldn&apos;t be found (or the other way around).

Yes, that would be nice. Probably unicows.dll first since it is a
complete implementation.

&gt;&gt; As for subset of functionality, it shouldn&apos;t be a problem at all. Each 
&gt;&gt; function is handled separately in libunicows, there aren&apos;t 
&gt;&gt; dependencies an overything (such that ibunicows would, for example, 
&gt;&gt; try to load all 520+ symbols from unicows.dll). If you don&apos;t use FooW 
&gt;&gt; function, its loader code doesn&apos;t get linked into your executable at 
&gt;&gt; all. If your app uses FooW but MZLU doesn&apos;t support it, then loading 
&gt;&gt; the symbol will fail (on 9x, unicows.dll/mzlu.dll would not be even 
&gt;&gt; looked at all on NT/2k/XP), 

Does this mean I don&apos;t need to add code to the DLL to ensure that we
pass the function call through to the system if someone calls an MZLU
function on NT? I don&apos;t have it at the moment, but MSLU does this so I
was thinking that I probably should too.

&gt;&gt; libunicows will display error message and 
&gt;&gt; terminate the app. This is no worse than if native FooW would be 
&gt;&gt; called (it would return error code and GetLastError would return &quot;not 
&gt;&gt; implemented&quot; or something), but if this behaviour would be unsuitable 
&gt;&gt; for you, you can change the UnicowsImportError pointer to point to a 
&gt;&gt; function that does something better. It&apos;s not currently possible to 
&gt;&gt; use UnicowsImportError callback to provide a replacement no-op 
&gt;&gt; version of unimplemented function, but if it would be needed, I can 
&gt;&gt; easily add such a callback to libunicows, it&apos;s just that I didn&apos;t 
&gt;&gt; need it myself yet.

Personally I feel that bailing out of the app with a message identifying
the missing function is a little drastic. The function may not be
completely necessary, so it would be nice if users were able to call it
and detect if it is implemented in that version of mzlu or not. Not
strictly necessary, just nice.

&gt;&gt; So in short, I believe there shouldn&apos;t be any problems, and if 
&gt;&gt; something shows up, I&apos;m more than willing to help with fixing it so 
&gt;&gt; that you can use libunicows instead of wasting your time reinventing 
&gt;&gt; the wheel.

Great to hear. Thanks for the support.

In summary, it seems that as long as I write to the spec and name all of
the exports the same as MSLU, and for the moment set the UnicowsDllName
variable we should be able to use MZLU now right out of the box. In
future we should be able to use it without setting UnicowsDllName.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2215094</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-26 08:10:19 -0700</bug_when>
            <thetext>Vaclav&apos;s reply:

&gt;&gt; One thing that I could do with the way I was writing mzlu was to
&gt;&gt; wrap functions that don&apos;t seem to be wrapped by mslu (and so aren&apos;t
&gt;&gt; supported by your loader). Things like some CRT functions which I
&gt;&gt; find useful (e.g. _wgetdcwd).
&gt;&gt;
&gt;&gt; There are also the IME functions (Imm*) which are natively
&gt;&gt; supported in Unicode on Win98+ but not on Win95, but don&apos;t seem to
&gt;&gt; be wrapped by MSLU. 

Again, I certainly don&apos;t mind extending libunicows to do more than MS 
version  ;)  I was hit by missing wrappers for CRT functions myself, so 
if you support them, great! In that case, libunicows should try to 
use both unicows.dll _and_ mzlu.dll for best results.

&gt;&gt; Does this mean I don&apos;t need to add code to the DLL to ensure that
&gt;&gt; we pass the function call through to the system if someone calls an
&gt;&gt; MZLU function on NT? 

Yes, exactly.

&gt;&gt; I don&apos;t have it at the moment, but MSLU does 
&gt;&gt; this so I was thinking that I probably should too.

MSLU does it in unicows.lib. Unicows.dll is only used on win9x 
platforms and unicows.lib (or libunicows) is not a &quot;normal&quot; import 
library; instead, it dynamically loads the symbols when they are 
first used (from unicows.dll on win9x and from system DLLs on 
NT/2k/XP). So you don&apos;t have to concern yourself with NT at all in 
mzlu.dll.

&gt;&gt; Personally I feel that bailing out of the app with a message
&gt;&gt; identifying the missing function is a little drastic. 

Right. It&apos;s better than outright crash, though.

&gt;&gt; The function 
&gt;&gt; may not be completely necessary, so it would be nice if users were
&gt;&gt; able to call it and detect if it is implemented in that version of
&gt;&gt; mzlu or not. 

I can see two ways to do it: 

1) Introduce libunicows-specific function that would check 
availability. The biggest problem with this is that it&apos;s no longer 
interchangable with MS&apos; version of unicows.lib.

2) Let the app check by loading the symbol dynamically using 
GetProcAddress. Unicows.dll hijacks GetProcAddress too, so that when 
you call (pseudocode) GetProcAddress(kernel32.dll, FooW) and FooW is 
implemented in unicows.dll, it returns pointer to (working) FooW 
version from unicows.dll instead of (not working stub only) FooW from 
kernel32.dll. So if mzlu.dll returned NULL from GetProcAdress for 
functions that it knows it should wrap, but doesn&apos;t, the apps would 
have a way to recognize this situation while still being compatible 
with MSVC7&apos;s standard unicows.lib. There&apos;s no harm in returning NULL 
because the function that OS&apos; &quot;real&quot; GetProcAddress would return 
would be useless stub anyway.

The best would be to have both ways, of course.

&gt;&gt; In summary, it seems that as long as I write to the spec and name
&gt;&gt; all of the exports the same as MSLU, and for the moment set the
&gt;&gt; UnicowsDllName variable we should be able to use MZLU now right out
&gt;&gt; of the box. In future we should be able to use it without setting
&gt;&gt; UnicowsDllName.

Yes, exactly. 
(MSLU export names are exactly same as native libs&apos; names, so exported 
names should match names of symbols in system DLLs (e.g. 
&quot;DrawTextW@20&quot; from user32.dll -- see symbols.txt in libunicows). I 
think that you can do some tricks in .def file to export functions 
under different names than what you use in source code...)


--

So basically, assuming that we implement mzlu, we have pretty simple way to 
include Unicode API support into Mozilla already implemented for us. Of course 
there are other problems that need to be sorted out, but this is a very good 
start.

Comments about using libunicows? Are there problems with this that I am naively 
overlooking?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2215115</commentid>
            <who name="neil@parkwaycc.co.uk">neil</who>
            <bug_when>2004-07-26 08:40:26 -0700</bug_when>
            <thetext>Will this make bug 218242 any easier or harder to implement?
It will want to pass a custom common dialog hook procedure...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2215126</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-26 09:03:24 -0700</bug_when>
            <thetext>It shouldn&apos;t make it any harder. You only need to implement the single Unicode 
(W api) version so it should be easier. Microsoft&apos;s unicows library supports 
the hook function, so we should be able to as well. However I don&apos;t think that 
I support the hook function in the current implementation of these functions in 
mzlu.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2215855</commentid>
              <attachid>154440</attachid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-27 01:03:09 -0700</bug_when>
            <thetext>Created attachment 154440
MZLU 0.4

MZLU as a drop in replacement DLL for unicows.dll. Currently implementing about
130 functions of the 520 odd that unicows does. Requires the use of the
libunicows loader. Still has the diff and Makefile.in files to build under
xpcom (until a final location has been decided on).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2217484</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-28 09:07:01 -0700</bug_when>
            <thetext>Comments anyone?
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2218614</commentid>
              <attachid>154663</attachid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-07-29 08:41:47 -0700</bug_when>
            <thetext>Created attachment 154663
MZLU 0.5

This version of MZLU does actually work as a drop-in replacement for
unicows.dll for simple console Win32 programs. The included test program does a
simple FindFirstFileW/FindNextFileW through the current directory. 

The included unicows.lib static library is a custom build of libunicows to
force it to load unicows.dll even on NT platforms (to allow me to test on my XP
development machine). This is still very much development version and there are
definitely a myriad of bugs, but it is now at the stage where it should be able
to be used and tested if anyone has the desire.

I&apos;m starting an extended vacation soon (for a couple of months), so this will
be my last update of MZLU until I get back. If anyone else wants to keep
developing it in the meantime then go ahead. Similarly if anyone wants to
finish the discussion on CVS location, dependencies, etc.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2218647</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2004-07-29 09:07:03 -0700</bug_when>
            <thetext>I agree that we should try to eliminate the ifdef MOZ_UNICODE methods in NSPR
and invent a UTF-8 mode for NSPR (unless this proves to be too inefficient).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2226961</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-08-07 12:11:28 -0700</bug_when>
            <thetext>I stumbled upon a couple of problems while trying to compile attachment 1546638. 

Firstly, MSVC complained that &apos;_stat64&apos; is not found in the global namespace
(MSDN says that it&apos;s available even on Win9x and it&apos;s in Win64/sys/stat.h of my
copy of MS SDK). This may be due to a problem in my copy of MS SDK... 

The other problem is that &apos;mzlu.def&apos; (DEFFILE) is not found at the link time
because my build tree is separate from my source tree. I was able to fix this
problem defining &apos;DEFFILE&apos; as &apos;$(srdcdir)/mzlu.def&apos; instead of &apos;mzlu.def&apos;.

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2227389</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-08-08 08:51:26 -0700</bug_when>
            <thetext>I&apos;ve uploaded two patches (one to bug 250255 and the other to bug 251897) that
&apos;rely&apos; on MZLU. While making patches, I identified a couple of functions to add
to MZLU. One of them is EnumPrintersW, which may be a little tough to implement
(apparently MSLU doesn&apos;t support this, yet) </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2340632</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-11-24 05:26:04 -0800</bug_when>
            <thetext>Brendan: any chance of getting the &quot;unicode&quot; and &quot;unicode/mzlu&quot; directories
added to the tree? I&apos;ve started working on this again and it would be good to be
able to check it in.

The question of using the http://libunicows.sf.net/ library is still open. The
other option is to write a DIY wrapper which is 100% mozilla code which
duplicates the exact same functionality.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2345512</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-11-29 11:00:40 -0800</bug_when>
            <thetext>In order to get MZLU building with VC6, it seems that I need to use the Platform
SDK. This is because MZLU covers some newer API which isn&apos;t included in the
standard VC6 distribution. It doesn&apos;t appear that this is a requirement of
Mozilla at the moment. Would requiring the Platform SDK as a requirement for
building MZLU be a problem? It is a big download, but it guarantees the latest
header files, libraries, etc.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2371983</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2004-12-28 23:23:10 -0800</bug_when>
            <thetext>Brodie, what platform SDKs do I have to install? Even after installing Win2003
SDK, I&apos;m still getting an error with &apos;_stat64&apos;. Do I have to install platform
SDKs for Win XP SP2? 

 </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2372773</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2004-12-30 03:25:13 -0800</bug_when>
            <thetext>I shifted development to http://opencow.sourceforge.net/ so that I had CVS and 
so that it is more accessible to non-Mozilla projects. You can download the 
latest version there which has that problem fixed. I&apos;m working on a patch for 
Mozilla to add the libunicows static lib in build time and use the opencow DLL.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2374774</commentid>
            <who name="Nicholas Allen">nallen</who>
            <bug_when>2005-01-02 09:35:03 -0800</bug_when>
            <thetext>A new release of MSLU has been made in response to these EULA problems.  The
licensing terms for MSLU should now be the same as the ones used for the C runtime.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2374886</commentid>
              <attachid>170096</attachid>
            <who name="Brodie">bmo</who>
            <bug_when>2005-01-02 13:35:29 -0800</bug_when>
            <thetext>Created attachment 170096
MSLU 1.1.3790.0 licence.txt

This is the licence.txt file for the latest MSLU download (released
10-Dec-2004). If anything it seems that this licence is more restrictive.
Products should only work with Windows, still need the click-wrap/shrink-wrap
EULA acceptance, and still cannot be further redistributed. It really is a pain
in the ass.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2376915</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2005-01-04 20:08:04 -0800</bug_when>
            <thetext>Licence text for MSLU 1.1.379.0 is also readable in a better format online at
http://blogs.msdn.com/michkap/articles/345289.aspx</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2378256</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2005-01-06 10:03:13 -0800</bug_when>
            <thetext>Comments from Kaplan on the MSLU EULA.
http://weblogs.asp.net/michkap/archive/2005/01/02/345389.aspx#FeedBack

The problems and possible solutions that I see with the licence are the following:

3.1(iii) + 3.1 last paragraph
Requires an addition to the click-wrap licence in the Windows installer such
that redistribution of the Windows software also implies acceptance of the MSLU
EULA.

3.2
Means that anyone wanting to use the Mozilla source code under Windows with MSLU
must be using the MPL (GPL is invalid under this clause). Use of the GPL licence
on Windows is fine if MSLU is not used.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2418500</commentid>
            <who name="Roy Yokoyama">tetsuroy</who>
            <bug_when>2005-02-18 11:16:56 -0800</bug_when>
            <thetext>It looks like we lost track of this bug. (no activities for a month)  
Can someone enlighten me on what&apos;s going on now?
MZLU, MSLU or other?  Do we have a patch?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2418581</commentid>
            <who name="Brodie">bmo</who>
            <bug_when>2005-02-18 12:34:37 -0800</bug_when>
            <thetext>opencow is there to be used, and it must be used with the libunicows wrapper. I
haven&apos;t had time and won&apos;t have time to work on getting the patch working for
this though. MSLU does a hell of a lot that opencow doesn&apos;t and never will. 

I still think that we should work on a solution for using MSLU. Mozilla on
non-Windows and Windows NT platforms doesn&apos;t require MSLU and so no licence is
required to be accepted there. 

Perhaps the installer for Mozilla on Win9x/ME can download and install MSLU with
the user accepting the licence similar to installing plugins.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2434281</commentid>
            <who name="Roy Yokoyama">tetsuroy</who>
            <bug_when>2005-03-04 11:41:10 -0800</bug_when>
            <thetext>Brodie:  Do you have a latest patch for MZLU? (patch format not zip, plz)
         Is MZLU 0.1 good enough? I&apos;d love to give a code review. Thanks</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2635886</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2005-09-27 07:03:20 -0700</bug_when>
            <thetext>Status Request: This is a critical bug for the MS-Windows platform and I see no
activity since March 2005. Could someone please indicate the current status and
how long before we can expect to see this in a release of some sort?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2647345</commentid>
              <attachid>198586</attachid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2005-10-05 09:35:27 -0700</bug_when>
            <thetext>Created attachment 198586
Add --enable-unicode and XPCOM beginnings</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2647406</commentid>
              <attachid>198586</attachid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2005-10-05 10:49:45 -0700</bug_when>
            <thetext>Comment on attachment 198586
Add --enable-unicode and XPCOM beginnings

needs work</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2647664</commentid>
              <attachid>198586</attachid>
            <who name="Christian :Biesinger (don&apos;t email me, ping me on IRC)">cbiesinger</who>
            <bug_when>2005-10-05 13:52:30 -0700</bug_when>
            <thetext>Comment on attachment 198586
Add --enable-unicode and XPCOM beginnings

&lt;biesi&gt; +    nsString&amp; path = mWorkingPath;
&lt;biesi&gt; +#else
&lt;biesi&gt;      // work in unicode for ease
&lt;biesi&gt;      nsAutoString path;
&lt;biesi&gt;      NS_CopyNativeToUnicode(mWorkingPath, path);
&lt;biesi&gt; bsmedberg, that seems scary
&lt;biesi&gt; bsmedberg, in one of these codepaths, modifying |path| will change
mWorkingPath, and in the other it doesn&apos;t</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2647668</commentid>
              <attachid>198586</attachid>
            <who name="Christian :Biesinger (don&apos;t email me, ping me on IRC)">cbiesinger</who>
            <bug_when>2005-10-05 13:53:26 -0700</bug_when>
            <thetext>Comment on attachment 198586
Add --enable-unicode and XPCOM beginnings

er, nevermind that - the non-unicode codepath copies back the changes anyway.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2648363</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2005-10-06 06:00:14 -0700</bug_when>
            <thetext>So, has it been decided that we would build two binaries for Windows, one for
Windows 9x/ME and the other for Windows NT4/2k/XP? 

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2648383</commentid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2005-10-06 06:17:52 -0700</bug_when>
            <thetext>jshin: nothing has been decided, this is merely a first step to allow a
full-unicode binary. In fact, I think that two binaries is a bad idea, and we
should drop win9x without MSLU support. Adding MSLU linkage would be a secondary
step.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2648889</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2005-10-06 14:43:05 -0700</bug_when>
            <thetext>I would be tempted to have Win9x version simply in maintance mode and then concentrate on building a 
version for all current platforms. At the same time it has already been mentioned several times that two 
binaries is unpopular. An extra observation,  from my part, is the number of poorer countries where 
Windows 98 can still be found installed, so supporting this would be useful, since ironically these are the 
guys who would benefit more from a browser which doesn&apos;t open up their computer to worms and 
spyware.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2649080</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2005-10-06 18:11:38 -0700</bug_when>
            <thetext>(In reply to comment #108)
&gt; jshin: nothing has been decided, this is merely a first step to allow a
&gt; full-unicode binary.

&gt; In fact, I think that two binaries is a bad idea, and we
&gt; should drop win9x without MSLU support. 

That&apos;s why I asked. I think keeping two separate binaries would be a lot of
hassle. That being the case, I wonder why you&apos;re introducing two code paths
(with #ifdef). Is it  a temporary measure until you introduce MSLU linkage?
Wouldn&apos;t it be better to do all the necessary things in a single step without a
lot of &apos;#ifdef&apos;s even if they&apos;re temporary? 



</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2649081</commentid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2005-10-06 18:14:28 -0700</bug_when>
            <thetext>There is not a chance that I could convert the entire codebase to the unicode
APIs at once, and I want to be able to provide test-builds of unicode before
actually making everyone switch over.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2649105</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2005-10-06 18:51:53 -0700</bug_when>
            <thetext>bsmedberg: can you write up a design doc for this?  i&apos;m very interested in
reviewing your approach here, and it seems like we should agree on the approach
before cutting code.  how about something on wiki.mozilla.org?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2695811</commentid>
            <who name="Syophone">oueki</who>
            <bug_when>2005-11-12 04:37:10 -0800</bug_when>
            <thetext>But ... when will be firefox support Unicode API?
Because there is much trouble in CJK Windows Unicode Platform using ANIS Program....</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2696526</commentid>
            <who name="Wily Yuen">zero0w</who>
            <bug_when>2005-11-13 06:59:42 -0800</bug_when>
            <thetext>Let me see if I understand this right, according to Comment #63, to support Windows 98 we either create MZLU, or use MSLU which requires a shrink-wrap, non-redistributable license. 

Apart from that, Comment #111 suggests moving to entire Unicode API needs to be done in stages, not all at once.

If I understand it, are we going to use MSLU and start moving to Unicode API first, then worry about finishing MZLU / opencows later? That is, refer to Comment #63, we implement solution 3 first and then migrate to solution 1 if licensing or other reasons make it necessary to do so, am I correct? 

I think it is a more pragmatic approach right now because we can start the move to Unicode API and get more testing first. If there are enough demands we may see more hackers contributing to opencows in order to continue Win9x support, i.e. if enough users really stick with Win9x.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2726980</commentid>
            <who name="Michael A. Puls II">shadow2531</who>
            <bug_when>2005-12-18 07:43:47 -0800</bug_when>
            <thetext>This out of my league and perhaps slightly off-topic, but I recently posted on this subject at http://forums.mozillazine.org/viewtopic.php?t=347673

I noticed mention here of breakage of building with mingw.

In addition to loading files in unicode paths from within Firefox for example, you also need to be able to do:

Firefox.exe unicode_path_to_file

I&apos;m not sure if mingw and the windows api headers you get from mingw.org have a winmain() that accepts unicode command line arguments.  I do know that mingw&apos;s main() does not; even if you define _UNICODE. Plus mingw doesn&apos;t have a wmain() for unicode argv support. (Either does STLPORT)

To get around the lack of wmain support in mingw, you have to of course define _UNICODE first and then do this instead:

int argc;
wchar_t** argv = CommandLineToArgvW( GetCommandLineW(), &amp;argc);

Now I know Firefox isn&apos;t a command line progam and probably uses winmain either directly or indirectly, but I figured I&apos;d mention the need to pass unicode arguments to the exe and I know little on if you guys forsee a problem implementing that or not, but it&apos;s best to bring it up as it&apos;s possible.  </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2727063</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2005-12-18 10:51:57 -0800</bug_when>
            <thetext>NSPR has a method named PR_ImportFile that can be used to create a PRFileDesc from a HANDLE.  This means that we could develop a nsILocalFile implementation for Windows that took care to call either CreateFileW or CreateFileA depending the OS.  In other words, I believe that we could solve this bug without changing NSPR and without introducing dependencies on MZLU or MSLU.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2727152</commentid>
            <who name="neil@parkwaycc.co.uk">neil</who>
            <bug_when>2005-12-18 13:35:45 -0800</bug_when>
            <thetext>(In reply to comment #115)
&gt;wchar_t** argv = CommandLineToArgvW( GetCommandLineW(), &amp;argc);
CommandLineToArgvW isn&apos;t supported on 9x/Me</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2729579</commentid>
            <who name="Mark">mozilla0K2TY</who>
            <bug_when>2005-12-21 07:54:40 -0800</bug_when>
            <thetext>As a belated comment on the extra observation from comment #109, my personal experience is that the &quot;poorer countries&quot; also tend to have nearly free versions of Windows XP etc widely available.  Hence there are fewer Window 9x systems in use in these countries than you think these days.

What HAS been surprising to me though, living in China, is the number of websites that require IE.  Way more than in the US.  My wife wont even touch firefox because of the confusion.  Well, I was surprised until I started using some public database machines with html interfaces.  Got tired of IE real quick, installed firefox from my usb flash, and then found out one reason why.  Everyone uses Chinese (unicode) filenames and directories.  Bug #162361 is the one I really care about and is probably why almost noone I talk to here knows about much less uses firefox.  But that bug seems to depend on this one.  Dont lose the biggest market for browsers in the world just to keep a few Win9x users!</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2729624</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2005-12-21 09:05:34 -0800</bug_when>
            <thetext>A few questions:

 - are we at a point yet where Firefox works with the &apos;W&apos; APIs, if I were to
   compile it from source?

 - where are we with MZLU functionality?

 - has the Mozilla legal team considered contacting Microsoft for a more liberal
   license, with regards to Unicows, that would resolve the &quot;non-redistributable&quot;
   issue?

I would want to have this issue resolved by Firefox 2.0 if possible.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2729638</commentid>
            <who name="Christian :Biesinger (don&apos;t email me, ping me on IRC)">cbiesinger</who>
            <bug_when>2005-12-21 09:22:09 -0800</bug_when>
            <thetext>(In reply to comment #119)
&gt;  - are we at a point yet where Firefox works with the &apos;W&apos; APIs, if I were to
&gt;    compile it from source?

Not at all. The parts that can use W apis probably do so already, w/ fallback to A apis. so, it seems to me that this&apos;d be the major part of the work required for this bug.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2729682</commentid>
            <who name="Jungshik Shin">jshin1987</who>
            <bug_when>2005-12-21 10:11:31 -0800</bug_when>
            <thetext>(In reply to comment #116)
&gt; NSPR has a method named PR_ImportFile that can be used to create a PRFileDesc
&gt; from a HANDLE.  This means that we could develop a nsILocalFile implementation
&gt; for Windows that took care to call either CreateFileW or CreateFileA depending
&gt; the OS.  In other words, I believe that we could solve this bug without
&gt; changing NSPR and without introducing dependencies on MZLU or MSLU.

Darin, that&apos;s a very neat idea. I&apos;ll try to give it a shot for bug 162361 after December 31st. However, it&apos;s to be noted that although file handling is a very big part of this bug, there are other issues to deal with here. As cbie noted, in many places, we use a &apos;hand-made custom MSLU-equivalent&apos;. That may not be so bad, but there are some places where we didn&apos;t bother to do that expecting this bug to be fixed.  

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2729714</commentid>
            <who name="Darin Fisher">darin.moz</who>
            <bug_when>2005-12-21 10:40:20 -0800</bug_when>
            <thetext>&gt; there are some places where we didn&apos;t bother to do that expecting this bug to be fixed.

Perhaps an early task should be to enumerate those spots in the code and decide which course of action to take: 1) keep using custom failover code, or 2) unify everything behind something like MSLU.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>2876997</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2006-06-08 08:16:26 -0700</bug_when>
            <thetext>Will the descision to drop pre-Windows 2000 support have any effect on this issue?

See /. article: http://developers.slashdot.org/article.pl?sid=06/06/08/1240239&amp;threshold=1</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3577250</commentid>
            <who name="Masayuki Nakano [:masayuki] (he/him)(JST, +0900)">masayuki</who>
            <bug_when>2008-04-12 16:22:37 -0700</bug_when>
            <thetext>Cannot we close this? The pre Win2k was dropped already. And new gfx uses Uniscribe now. So, this bug can fix nothing on current trunk, I think.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3577835</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2008-04-13 07:36:41 -0700</bug_when>
            <thetext>Does Firefox 3 now provide proper Unicode support when interacting with the OS? If it does then I agree we could properly close this bug.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3577854</commentid>
            <who name="(not currently active) Ted Mielczarek">ted</who>
            <bug_when>2008-04-13 08:01:10 -0700</bug_when>
            <thetext>We fixed a lot of bugs, but there&apos;s still bug 413171, for example.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3578164</commentid>
            <who name="neil@parkwaycc.co.uk">neil</who>
            <bug_when>2008-04-13 15:15:15 -0700</bug_when>
            <thetext>We still generate icons (moz-icon:) using ANSI path names.

We still read version information from plugins in ANSI.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3578200</commentid>
            <who name="Masayuki Nakano [:masayuki] (he/him)(JST, +0900)">masayuki</who>
            <bug_when>2008-04-13 15:54:33 -0700</bug_when>
            <thetext>Yeah, we are still using ANSI APIs in some points. They should be replaced to W APIs. However, that is not this bug.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3578223</commentid>
            <who name="neil@parkwaycc.co.uk">neil</who>
            <bug_when>2008-04-13 16:21:58 -0700</bug_when>
            <thetext>Ah, so this bug is saying &quot;Mozilla should compile with -DUNICODE&quot;?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3578235</commentid>
            <who name="Masayuki Nakano [:masayuki] (he/him)(JST, +0900)">masayuki</who>
            <bug_when>2008-04-13 16:36:40 -0700</bug_when>
            <thetext>(In reply to comment #129)
&gt; Ah, so this bug is saying &quot;Mozilla should compile with -DUNICODE&quot;?

And this wants to use MSLU. See:
http://www.microsoft.com.nsatc.net/globaldev/handson/dev/mslu_announce.mspx</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3578245</commentid>
            <who name="Andre-John Mas">andrejohn.mas</who>
            <bug_when>2008-04-13 16:45:04 -0700</bug_when>
            <thetext>If versions of Windows that don&apos;t support Unicode natively are no longer part
of the picture, the we should default the Unicode API.

Most of the discussion in this bug was around how to deal with versions of
Windows where Unicode was not available without an extra library. If Windows
2000 support has been dropped, then most of the backwards-compatibility issues
can be ignored and the make Unicode support of Windows default.

The original requirement of this bug was to make a Mozilla binary with support
of the Windows W API, which is the Windows unicode library. I had suggested
this as a separate build, but now if it is not already done in should be made
the default build.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>3578319</commentid>
            <who name="Benjamin Smedberg">benjamin</who>
            <bug_when>2008-04-13 18:04:45 -0700</bug_when>
            <thetext>ok, I&apos;m going to claim that this bug has outlived its usefulness. We are using the W APIs in many places now, and will continue to excize A APIs for moz2. There still may be a couple places where we continue to use A APIs for compatibility reasons.</thetext>
          </long_desc>

          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>151916</attachid>
            <date>2004-06-28 19:26:13 -0700</date>
            <delta_ts>2004-06-28 19:26:13 -0700</delta_ts>
            <desc>Unicows licence</desc>
            <filename>License.Txt</filename>
            <type>text/plain</type>
            <size>17702</size>
            <attacher>bmo</attacher>
            
              <data encoding="base64">RU5ELVVTRVIgTElDRU5TRSBBR1JFRU1FTlQgDQpNSUNST1NPRlQgUExBVEZPUk0gU09GVFdBUkUg
REVWRUxPUE1FTlQgS0lUDQpJTVBPUlRBTlSXUkVBRCBDQVJFRlVMTFk6ICBUaGlzIEVuZC1Vc2Vy
IExpY2Vuc2UgQWdyZWVtZW50ICgiRVVMQSIpIGlzIGEgbGVnYWwgYWdyZWVtZW50IA0KYmV0d2Vl
biB5b3UgKGVpdGhlciBhbiBpbmRpdmlkdWFsIG9yIGEgc2luZ2xlIGVudGl0eSkgYW5kIE1pY3Jv
c29mdCBDb3Jwb3JhdGlvbiBmb3IgdGhlIE1pY3Jvc29mdCBzb2Z0d2FyZSANCnByb2R1Y3QgaWRl
bnRpZmllZCBhYm92ZSwgd2hpY2ggaW5jbHVkZXMgY29tcHV0ZXIgc29mdHdhcmUgYW5kIG1heSBp
bmNsdWRlIGFzc29jaWF0ZWQgbWVkaWEsIHByaW50ZWQgDQptYXRlcmlhbHMsIGFuZCAib25saW5l
IiBvciBlbGVjdHJvbmljIGRvY3VtZW50YXRpb24gKCJTT0ZUV0FSRSBQUk9EVUNUIikuICBBbiBh
bWVuZG1lbnQgb3IgDQphZGRlbmR1bSB0byB0aGlzIEVVTEEgbWF5IGFjY29tcGFueSB0aGUgU09G
VFdBUkUgUFJPRFVDVC4gIFlPVSBBR1JFRSBUTyBCRSBCT1VORCANCkJZIFRIRSBURVJNUyBPRiBU
SElTIEVVTEEgQlkgSU5TVEFMTElORywgQ09QWUlORywgT1IgT1RIRVJXSVNFIFVTSU5HIFRIRSAN
ClNPRlRXQVJFIFBST0RVQ1QuICBJRiBZT1UgRE8gTk9UIEFHUkVFLCBETyBOT1QgSU5TVEFMTCBP
UiBVU0UgVEhFIA0KU09GVFdBUkUgUFJPRFVDVDsgWU9VIE1BWSBSRVRVUk4gSVQgVE8gWU9VUiBQ
TEFDRSBPRiBQVVJDSEFTRSBGT1IgQSANCkZVTEwgUkVGVU5ELg0KDQoxLiBHUkFOVCBPRiBMSUNF
TlNFLiAgTWljcm9zb2Z0IGdyYW50cyB5b3UgdGhlIGZvbGxvd2luZyByaWdodHMgcHJvdmlkZWQg
eW91IGNvbXBseSB3aXRoIGFsbCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIA0KRVVMQToN
CiogU09GVFdBUkUgUFJPRFVDVC4gIFlvdSBtYXkgaW5zdGFsbCBhbmQgdXNlIGFuIHVubGltaXRl
ZCBudW1iZXIgb2YgY29waWVzIG9mIHRoZSBTT0ZUV0FSRSBQUk9EVUNUIG9uIA0KY29tcHV0ZXJz
LCBpbmNsdWRpbmcgd29ya3N0YXRpb25zLCB0ZXJtaW5hbHMgb3Igb3RoZXIgZGlnaXRhbCBlbGVj
dHJvbmljIGRldmljZXMgcmVzaWRpbmcgb24geW91ciBwcmVtaXNlcyAoIkNvbXB1dGVycyIpIHRv
IA0KZGVzaWduLCBkZXZlbG9wLCBhbmQgdGVzdCB5b3VyIHNvZnR3YXJlIGFwcGxpY2F0aW9uKHMp
ICgiQXBwbGljYXRpb24iKSBmb3IgdXNlIHdpdGggYW55IHZlcnNpb24gb3IgZWRpdGlvbiBvZiBN
aWNyb3NvZnQgDQpXaW5kb3dzIDk1LCBXaW5kb3dzIDk4LCBXaW5kb3dzIE5UIDQuMCwgV2luZG93
cyAyMDAwIG9wZXJhdGluZyBzeXN0ZW0gcHJvZHVjdHMgYW5kL29yIGFueSB2ZXJzaW9uIG9yIGVk
aXRpb24gb2YgYW55IA0KTWljcm9zb2Z0IG9wZXJhdGluZyBzeXN0ZW0gcHJvZHVjdCB0aGF0IGlz
IGEgc3VjY2Vzc29yIHRvIHRoZSBmb3JlZ29pbmcgYW5kL29yIGFueSBNaWNyb3NvZnQgcHJvZHVj
dCBzdWl0ZSB0aGF0IGNvbnRhaW5zIGFueSANCm9mIHRoZSBmb3JlZ29pbmcgKGVhY2ggYSAiTWlj
cm9zb2Z0IE9wZXJhdGluZyBTeXN0ZW0gUHJvZHVjdCIpLiAgDQoqIFNhbXBsZSBDb2RlLiAgWW91
IG1heSBtb2RpZnkgdGhlIHNhbXBsZSBzb3VyY2UgY29kZSBsb2NhdGVkIGluIHRoZSBTT0ZUV0FS
RSBQUk9EVUNUJ3MgInNhbXBsZXMiIGRpcmVjdG9yaWVzIA0KKCJTYW1wbGUgQ29kZSIpIHRvIGRl
c2lnbiwgZGV2ZWxvcCwgYW5kIHRlc3QgeW91ciBBcHBsaWNhdGlvbiBzb2xlbHkgZm9yIHVzZSB3
aXRoIGEgTWljcm9zb2Z0IE9wZXJhdGluZyBTeXN0ZW0gUHJvZHVjdC4gIFlvdSANCm1heSBhbHNv
IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSB0aGUgU2FtcGxlIENvZGUgaW4gb2JqZWN0IGNvZGUg
Zm9ybSBhbG9uZyB3aXRoIGFueSBtb2RpZmljYXRpb25zIHlvdSBtYWtlIHRvIHRoZSBTYW1wbGUg
DQpDb2RlLCBwcm92aWRlZCB0aGF0IHlvdSBjb21wbHkgd2l0aCB0aGUgRGlzdHJpYnV0aW9uIFRl
cm1zIGRlc2NyaWJlZCBiZWxvdy4gIEZvciBwdXJwb3NlcyBvZiB0aGlzIHNlY3Rpb24sICJtb2Rp
ZmljYXRpb25zIiANCnNoYWxsIG1lYW4gZW5oYW5jZW1lbnRzIHRvIHRoZSBmdW5jdGlvbmFsaXR5
IG9mIHRoZSBTYW1wbGUgQ29kZS4NCiogUmVkaXN0cmlidXRhYmxlIENvZGUuICBQb3J0aW9ucyBv
ZiB0aGUgU09GVFdBUkUgUFJPRFVDVCBhcmUgZGVzaWduYXRlZCBhcyAiUmVkaXN0cmlidXRhYmxl
IENvZGUuIiAgVGhlIHRleHQgZmlsZSwgDQpcTElDRU5TRVxSRURJU1QuVFhULCBsaXN0cyB0aGUg
UmVkaXN0cmlidXRhYmxlIGNvZGUgYW5kIGRlc2NyaWJlcyBkaXN0cmlidXRpb24gcmlnaHRzIGFz
c29jaWF0ZWQgd2l0aCB0aGUgUmVkaXN0cmlidXRhYmxlIA0KQ29kZSwgc3ViamVjdCBmdXJ0aGVy
IHRvIHRoZSBEaXN0cmlidXRpb24gVGVybXMgc3BlY2lmaWVkIGJlbG93Lg0KKiBEaXN0cmlidXRp
b24gVGVybXMuICBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBhbiB1bmxpbWl0ZWQg
bnVtYmVyIG9mIGNvcGllcyBvZiB0aGUgU2FtcGxlIENvZGUgYW5kL29yIA0KUmVkaXN0cmlidXRh
YmxlIENvZGUgKGNvbGxlY3RpdmVseSAiUmVkaXN0cmlidXRhYmxlIENvbXBvbmVudHMiKSBhcyBk
ZXNjcmliZWQgYWJvdmUgaW4gb2JqZWN0IGNvZGUgZm9ybSwgcHJvdmlkZWQgdGhhdCAoYSkgDQp5
b3UgZGlzdHJpYnV0ZSB0aGUgUmVkaXN0cmlidXRhYmxlIENvbXBvbmVudHMgb25seSBpbiBjb25q
dW5jdGlvbiB3aXRoIGFuZCBhcyBhIHBhcnQgb2YgeW91ciBBcHBsaWNhdGlvbiBzb2xlbHkgZm9y
IHVzZSB3aXRoIGEgDQpNaWNyb3NvZnQgT3BlcmF0aW5nIFN5c3RlbSBQcm9kdWN0OyAoYikgeW91
ciBBcHBsaWNhdGlvbiBhZGRzIHNpZ25pZmljYW50IGFuZCBwcmltYXJ5IGZ1bmN0aW9uYWxpdHkg
dG8gdGhlIFJlZGlzdHJpYnV0YWJsZSANCkNvbXBvbmVudHM7IChjKSB5b3UgZGlzdHJpYnV0ZSB5
b3VyIEFwcGxpY2F0aW9uIGNvbnRhaW5pbmcgdGhlIFJlZGlzdHJpYnV0YWJsZSBDb21wb25lbnRz
IHB1cnN1YW50IHRvIGFuIEVuZC1Vc2VyIExpY2Vuc2UgDQpBZ3JlZW1lbnQgKHdoaWNoIG1heSBi
ZSAiYnJlYWstdGhlLXNlYWwiLCAiY2xpY2std3JhcCIgb3Igc2lnbmVkKSwgd2l0aCB0ZXJtcyBu
byBsZXNzIHByb3RlY3RpdmUgdGhhbiB0aG9zZSBjb250YWluZWQgaGVyZWluOyANCihkKSB5b3Ug
ZG8gbm90IHBlcm1pdCBmdXJ0aGVyIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBSZWRpc3RyaWJ1dGFi
bGUgQ29tcG9uZW50cyBieSB5b3VyIGVuZC11c2VyIGN1c3RvbWVyczsgKGUpIHlvdSBkbyBub3Qg
dXNlIA0KTWljcm9zb2Z0J3MgbmFtZSwgbG9nbywgb3IgdHJhZGVtYXJrcyB0byBtYXJrZXQgeW91
ciBBcHBsaWNhdGlvbjsgKGYpIHlvdSBpbmNsdWRlIGEgdmFsaWQgY29weXJpZ2h0IG5vdGljZSBv
biB5b3VyIA0KQXBwbGljYXRpb247IGFuZCAoZykgeW91IGFncmVlIHRvIGluZGVtbmlmeSwgaG9s
ZCBoYXJtbGVzcywgYW5kIGRlZmVuZCBNaWNyb3NvZnQgZnJvbSBhbmQgYWdhaW5zdCBhbnkgY2xh
aW1zIG9yIGxhd3N1aXRzLCANCmluY2x1ZGluZyBhdHRvcm5leXMnIGZlZXMsIHRoYXQgYXJpc2Ug
b3IgcmVzdWx0IGZyb20gdGhlIHVzZSBvciBkaXN0cmlidXRpb24gb2YgeW91ciBBcHBsaWNhdGlv
bi4gIENvbnRhY3QgTWljcm9zb2Z0IGZvciB0aGUgDQphcHBsaWNhYmxlIGxpY2Vuc2luZyB0ZXJt
cyBmb3IgYWxsIG90aGVyIHVzZXMgYW5kL29yIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUmVkaXN0cmli
dXRhYmxlIENvbXBvbmVudHMuDQoqIFJlc2VydmF0aW9uIG9mIFJpZ2h0cy4gIE1pY3Jvc29mdCBy
ZXNlcnZlcyBhbGwgcmlnaHRzIG5vdCBleHByZXNzbHkgZ3JhbnRlZCB0byB5b3UgaW4gdGhpcyBF
VUxBLg0KKiBQcmUtcmVsZWFzZSBjb2RlLiAgVGhlIFNPRlRXQVJFIFBST0RVQ1QgbWF5IGNvbnRh
aW4gcHJlcmVsZWFzZSBjb2RlIHRoYXQgaXMgbm90IGF0IHRoZSBsZXZlbCBvZiBwZXJmb3JtYW5j
ZSBhbmQgDQpjb21wYXRpYmlsaXR5IG9mIHRoZSBmaW5hbCwgZ2VuZXJhbGx5IGF2YWlsYWJsZSwg
cHJvZHVjdCBvZmZlcmluZy4gIFRoZXNlIHBvcnRpb25zIG9mIHRoZSBTT0ZUV0FSRSBQUk9EVUNU
IG1heSBub3QgDQpvcGVyYXRlIGNvcnJlY3RseSBhbmQgbWF5IGJlIHN1YnN0YW50aWFsbHkgbW9k
aWZpZWQgcHJpb3IgdG8gZmlyc3QgY29tbWVyY2lhbCBzaGlwbWVudC4gIE1pY3Jvc29mdCBpcyBu
b3Qgb2JsaWdhdGVkIHRvIG1ha2UgDQp0aGlzIG9yIGFueSBsYXRlciB2ZXJzaW9uIG9mIHRoZSBT
T0ZUV0FSRSBQUk9EVUNUIGNvbW1lcmNpYWxseSBhdmFpbGFibGUuICBNaWNyb3NvZnQgZ3JhbnRz
IHlvdSB0aGUgcmlnaHQgdG8gZGlzdHJpYnV0ZSANCnRlc3QgdmVyc2lvbiBvZiB5b3VyIEFwcGxp
Y2F0aW9uIGNyZWF0ZWQgdXNpbmcgdGhlIFBSRVJFTEVBU0UgQ09ERSBwcm92aWRlZCB5b3UgY29t
cGx5IHdpdGggdGhlIERpc3RyaWJ1dGlvbiANClJlcXVpcmVtZW50cyBkZXNjcmliZWQgaW4gU2Vj
dGlvbiAxIGFuZCB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgcHJvdmlzaW9uczogKGEpIHlvdSBt
dXN0IG1hcmsgdGhlIHRlc3QgdmVyc2lvbiBvZiB5b3VyIA0KQXBwbGljYXRpb24gIkJFVEEiIGFu
ZCAoYikgeW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIHlvdXIgY3VzdG9t
ZXJzIHdpdGggdmVyc2lvbnMgb2YgeW91ciBBcHBsaWNhdGlvbiB0aGF0IA0Kb3BlcmF0ZSBzYXRp
c2ZhY3RvcmlseSB3aXRoIHRoZSBmaW5hbCBjb21tZXJjaWFsIHJlbGVhc2Ugb2YgdGhlIFBSRVJF
TEVBU0UgQ09ERS4gIA0KDQoyLiBDT05GSURFTlRJQUxJVFkgT0YgUFJFUkVMRUFTRSBDT0RFLiAg
VGhlIFBSRVJFTEVBU0UgQ09ERSwgIGluY2x1ZGluZyBpdHMgZmVhdHVyZXMsIGlzIHByb3ByaWV0
YXJ5IGFuZCBjb25maWRlbnRpYWwgDQppbmZvcm1hdGlvbiB0byBNaWNyb3NvZnQgYW5kIGl0cyBz
dXBwbGllcnMuICB5b3UgYWdyZWUgbm90IHRvIGRpc2Nsb3NlIG9yIHByb3ZpZGUgdGhlIFBSRVJF
TEVBU0UgQ09ERSwgZG9jdW1lbnRhdGlvbiwgb3IgYW55IA0KaW5mb3JtYXRpb24gcmVsYXRpbmcg
dG8gdGhlIFBSRVJFTEVBU0UgQ09ERSAoaW5jbHVkaW5nIGZlYXR1cmVzIG9yIHRoZSByZXN1bHRz
IG9mIHVzZSBvciB0ZXN0aW5nKSB0byBhbnkgdGhpcmQgcGFydHkgZXhjZXB0IGFzIA0KZXhwcmVz
c2x5IHByb3ZpZGVkIGhlcmVpbiB3aXRob3V0IE1pY3Jvc29mdCdzIGV4cHJlc3Mgd3JpdHRlbiBw
ZXJtaXNzaW9uLiAgSG93ZXZlciwgeW91IG1heSBkaXNjbG9zZSBjb25maWRlbnRpYWwgaW5mb3Jt
YXRpb24gaW4gDQphY2NvcmRhbmNlIHdpdGgganVkaWNpYWwgb3Igb3RoZXIgZ292ZXJubWVudGFs
IG9yZGVyLCBwcm92aWRlZCB5b3Ugc2hhbGwgZ2l2ZSBNaWNyb3NvZnQgcmVhc29uYWJsZSBub3Rp
Y2UgcHJpb3IgdG8gc3VjaCBkaXNjbG9zdXJlIA0KYW5kIHNoYWxsIGNvbXBseSB3aXRoIGFueSBh
cHBsaWNhYmxlIHByb3RlY3RpdmUgb3JkZXIgb3IgZXF1aXZhbGVudC4gIFlvdSBzaGFsbCBub3Qg
YmUgbGlhYmxlIHRvIE1pY3Jvc29mdCBmb3Igc3VjaCBpbmZvcm1hdGlvbiB3aGljaCANCnlvdSBj
YW4gcHJvdmUgKDEpIGlzIGFscmVhZHkga25vd24gdG8geW91OyAoMikgYmVjb21lcyBwdWJsaWNs
eSBrbm93biB0aHJvdWdoIG5vIHdyb25nZnVsIGFjdCBvZiB5b3U7ICgzKSBpcyByaWdodGZ1bGx5
IHJlY2VpdmVkIGZyb20gDQphIHRoaXJkIHBhcnR5IHdpdGhvdXQgc2ltaWxhciByZXN0cmljdGlv
biBhbmQgd2l0aG91dCBicmVhY2ggb2YgdGhpcyBBZ3JlZW1lbnQ7IG9yICg0KSBpcyBpbmRlcGVu
ZGVudGx5IGRldmVsb3BlZCBieSB5b3UuICBUaGlzIA0KcHJvdmlzaW9uIHNoYWxsIHN1cnZpdmUg
dGhlIHRlcm1pbmF0aW9uIG9yIGV4cGlyYXRpb24gb2YgdGhpcyBBZ3JlZW1lbnQuICANCjMuIFRS
QU5TRkVSl0ludGVybmFsLiAgWW91IG1heSBtb3ZlIHRoZSBTT0ZUV0FSRSBQUk9EVUNUIHRvIGEg
ZGlmZmVyZW50IENvbXB1dGVyLiAgVHJhbnNmZXIgdG8gVGhpcmQgUGFydHkuICBUaGUgaW5pdGlh
bCANCnVzZXIgb2YgdGhlIFNPRlRXQVJFIFBST0RVQ1QgbWF5IG1ha2UgYSBvbmUtdGltZSB0cmFu
c2ZlciBvZiB0aGUgU09GVFdBUkUgUFJPRFVDVCB0byBhbm90aGVyIGVuZCB1c2VyLiAgVGhlIHRy
YW5zZmVyIA0KaGFzIHRvIGluY2x1ZGUgYWxsIGNvbXBvbmVudCBwYXJ0cywgbWVkaWEsIHByaW50
ZWQgbWF0ZXJpYWxzLCB0aGlzIEVVTEEsIGFuZCBpZiBhcHBsaWNhYmxlLCB0aGUgQ2VydGlmaWNh
dGUgb2YgQXV0aGVudGljaXR5LiAgVGhlIA0KdHJhbnNmZXIgbWF5IG5vdCBiZSBhbiBpbmRpcmVj
dCB0cmFuc2Zlciwgc3VjaCBhcyBhIGNvbnNpZ25tZW50LiAgUHJpb3IgdG8gdGhlIHRyYW5zZmVy
LCB0aGUgZW5kIHVzZXIgcmVjZWl2aW5nIHRoZSB0cmFuc2ZlcnJlZCANClNPRlRXQVJFIFBST0RV
Q1QgbXVzdCBhZ3JlZSB0byBhbGwgdGhlIEVVTEEgdGVybXMuICAgTm8gUmVudGFsLiAgWW91IG1h
eSBub3QgcmVudCwgbGVhc2UsIG9yIGxlbmQgdGhlIFNPRlRXQVJFIA0KUFJPRFVDVC4NCjQuIExJ
TUlUQVRJT04gT04gUkVWRVJTRSBFTkdJTkVFUklORywgREVDT01QSUxBVElPTiwgQU5EIERJU0FT
U0VNQkxZLiAgWW91IG1heSBub3QgcmV2ZXJzZSBlbmdpbmVlciwgDQpkZWNvbXBpbGUsIG9yIGRp
c2Fzc2VtYmxlIHRoZSBTT0ZUV0FSRSBQUk9EVUNULCBleGNlcHQgYW5kIG9ubHkgdG8gdGhlIGV4
dGVudCB0aGF0IGl0IGlzIGV4cHJlc3NseSBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSANCmxhdyBu
b3R3aXRoc3RhbmRpbmcgdGhpcyBsaW1pdGF0aW9uLiANCjUuIFRFUk1JTkFUSU9OLiAgV2l0aG91
dCBwcmVqdWRpY2UgdG8gYW55IG90aGVyIHJpZ2h0cywgTWljcm9zb2Z0IG1heSBjYW5jZWwgdGhp
cyBFVUxBIGlmIHlvdSBkbyBub3QgYWJpZGUgYnkgdGhlIHRlcm1zIGFuZCANCmNvbmRpdGlvbnMg
b2YgdGhpcyBFVUxBLCBpbiB3aGljaCBjYXNlIHlvdSBtdXN0IGRlc3Ryb3kgYWxsIGNvcGllcyBv
ZiB0aGUgU09GVFdBUkUgUFJPRFVDVCBhbmQgYWxsIG9mIGl0cyBjb21wb25lbnQgcGFydHMuIA0K
Ni4gQ09OU0VOVCBUTyBVU0UgT0YgREFUQS4gIFlvdSBhZ3JlZSB0aGF0IE1pY3Jvc29mdCBhbmQg
aXRzIGFmZmlsaWF0ZXMgbWF5IGNvbGxlY3QgYW5kIHVzZSB0ZWNobmljYWwgaW5mb3JtYXRpb24g
eW91IHByb3ZpZGUgDQphcyBhIHBhcnQgb2Ygc3VwcG9ydCBzZXJ2aWNlcyByZWxhdGVkIHRvIHRo
ZSBTT0ZUV0FSRSBQUk9EVUNULiAgTWljcm9zb2Z0IGFncmVlcyBub3QgdG8gdXNlIHRoaXMgaW5m
b3JtYXRpb24gaW4gYSBmb3JtIHRoYXQgDQpwZXJzb25hbGx5IGlkZW50aWZpZXMgeW91LiAgIA0K
Ny4gTk9UIEZPUiBSRVNBTEUgU09GVFdBUkUuICBTT0ZUV0FSRSBQUk9EVUNUIGlkZW50aWZpZWQg
YXMgIk5vdCBmb3IgUmVzYWxlIiBvciAiTkZSLCIgbWF5IG5vdCBiZSByZXNvbGQsIA0KdHJhbnNm
ZXJyZWQgb3IgdXNlZCBmb3IgYW55IHB1cnBvc2Ugb3RoZXIgdGhhbiBkZW1vbnN0cmF0aW9uLCB0
ZXN0IG9yIGV2YWx1YXRpb24uDQo4LiBBQ0FERU1JQyBFRElUSU9OIFNPRlRXQVJFLiAgVG8gdXNl
IFNPRlRXQVJFIFBST0RVQ1QgaWRlbnRpZmllZCBhcyAiQWNhZGVtaWMgRWRpdGlvbiIgb3IgIkFF
LCIgeW91IG11c3QgYmUgYSANCiJRdWFsaWZpZWQgRWR1Y2F0aW9uYWwgVXNlci4iICBGb3IgcXVh
bGlmaWNhdGlvbi1yZWxhdGVkIHF1ZXN0aW9ucywgcGxlYXNlIGNvbnRhY3QgdGhlIE1pY3Jvc29m
dCBTYWxlcyBJbmZvcm1hdGlvbiBDZW50ZXIvT25lIA0KTWljcm9zb2Z0IFdheS9SZWRtb25kLCBX
QSA5ODA1Mi02Mzk5IG9yIHRoZSBNaWNyb3NvZnQgc3Vic2lkaWFyeSBzZXJ2aW5nIHlvdXIgY291
bnRyeS4NCjkuIEVYUE9SVCBSRVNUUklDVElPTlMuICBZb3UgYWNrbm93bGVkZ2UgdGhhdCB0aGUg
U09GVFdBUkUgUFJPRFVDVCBpcyBvZiBVLlMuIG9yaWdpbi4gIFlvdSBhZ3JlZSB0byBjb21wbHkg
d2l0aCBhbGwgDQphcHBsaWNhYmxlIGludGVybmF0aW9uYWwgYW5kIG5hdGlvbmFsIGxhd3MgdGhh
dCBhcHBseSB0byB0aGUgU09GVFdBUkUgUFJPRFVDVCwgaW5jbHVkaW5nIHRoZSBVLlMuIEV4cG9y
dCBBZG1pbmlzdHJhdGlvbiANClJlZ3VsYXRpb25zLCBhcyB3ZWxsIGFzIGVuZC11c2VyLCBlbmQt
dXNlIGFuZCBkZXN0aW5hdGlvbiByZXN0cmljdGlvbnMgaXNzdWVkIGJ5IFUuUy4gYW5kIG90aGVy
IGdvdmVybm1lbnRzLiAgRm9yIGFkZGl0aW9uYWwgDQppbmZvcm1hdGlvbiwgc2VlIDxodHRwOi8v
d3d3Lm1pY3Jvc29mdC5jb20vZXhwb3J0aW5nLz4uDQoxMC4gRElTQ0xBSU1FUiBPRiBXQVJSQU5U
SUVTLiAgVG8gdGhlIG1heGltdW0gZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdywg
TWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzIHByb3ZpZGUgDQp0byB5b3UgdGhlIFNPRlRXQVJF
IFBST0RVQ1QsIGFuZCBhbnkgKGlmIGFueSkgc3VwcG9ydCBzZXJ2aWNlcyByZWxhdGluZyB0byB0
aGUgU09GVFdBUkUgUFJPRFVDVCAoIlN1cHBvcnQgDQpTZXJ2aWNlcyIpIEFTIElTIEFORCBXSVRI
IEFMTCBGQVVMVFM7IGFuZCBNaWNyb3NvZnQgYW5kIGl0cyBzdXBwbGllcnMgaGVyZWJ5IGRpc2Ns
YWltIHdpdGggcmVzcGVjdCB0byB0aGUgU09GVFdBUkUgDQpQUk9EVUNUIGFuZCBTdXBwb3J0IFNl
cnZpY2VzIGFsbCB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCB3aGV0aGVyIGV4cHJlc3MsIGlt
cGxpZWQgb3Igc3RhdHV0b3J5LCBpbmNsdWRpbmcsIGJ1dCBub3QgDQpsaW1pdGVkIHRvLCBhbnkg
KGlmIGFueSkgd2FycmFudGllcywgZHV0aWVzIG9yIGNvbmRpdGlvbnMgb2Ygb3IgcmVsYXRlZCB0
bzogIG1lcmNoYW50YWJpbGl0eSwgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UsIGxh
Y2sgDQpvZiB2aXJ1c2VzLCBhY2N1cmFjeSBvciBjb21wbGV0ZW5lc3Mgb2YgcmVzcG9uc2VzLCBy
ZXN1bHRzLCB3b3JrbWFubGlrZSBlZmZvcnQgYW5kIGxhY2sgb2YgbmVnbGlnZW5jZS4gIEFMU08g
VEhFUkUgSVMgTk8gDQpXQVJSQU5UWSwgRFVUWSBPUiBDT05ESVRJT04gT0YgVElUTEUsIFFVSUVU
IEVOSk9ZTUVOVCwgUVVJRVQgUE9TU0VTU0lPTiwgQ09SUkVTUE9OREVOQ0UgVE8gDQpERVNDUklQ
VElPTiBPUiBOT04tSU5GUklOR0VNRU5ULiAgVEhFIEVOVElSRSBSSVNLIEFSSVNJTkcgT1VUIE9G
IFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSEUgDQpTT0ZUV0FSRSBQUk9EVUNUIEFORCBBTlkgU1VQ
UE9SVCBTRVJWSUNFUyBSRU1BSU5TIFdJVEggWU9VLg0KMTEuIEVYQ0xVU0lPTiBPRiBJTkNJREVO
VEFMLCBDT05TRVFVRU5USUFMIEFORCBDRVJUQUlOIE9USEVSIERBTUFHRVMuICBUTyBUSEUgTUFY
SU1VTSBFWFRFTlQgDQpQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcsIElOIE5PIEVWRU5UIFNI
QUxMIE1JQ1JPU09GVCBPUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUws
IA0KSU5DSURFTlRBTCwgSU5ESVJFQ1QsIFBVTklUSVZFIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyBXSEFUU09FVkVSIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCANClRPLCBEQU1BR0VTIEZP
UjogIExPU1MgT0YgUFJPRklUUywgTE9TUyBPRiBDT05GSURFTlRJQUwgT1IgT1RIRVIgSU5GT1JN
QVRJT04sIEJVU0lORVNTIA0KSU5URVJSVVBUSU9OLCBQRVJTT05BTCBJTkpVUlksIExPU1MgT0Yg
UFJJVkFDWSwgRkFJTFVSRSBUTyBNRUVUIEFOWSBEVVRZIChJTkNMVURJTkcgT0YgR09PRCBGQUlU
SCANCk9SIE9GIFJFQVNPTkFCTEUgQ0FSRSksIE5FR0xJR0VOQ0UsIEFORCBBTlkgT1RIRVIgUEVD
VU5JQVJZIE9SIE9USEVSIExPU1MgV0hBVFNPRVZFUikgQVJJU0lORyANCk9VVCBPRiBPUiBJTiBB
TlkgV0FZIFJFTEFURUQgVE8gVEhFIFVTRSBPRiBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBTT0ZU
V0FSRSBQUk9EVUNUIE9SIFRIRSANClNVUFBPUlQgU0VSVklDRVMsIE9SIFRIRSBQUk9WSVNJT04g
T0YgT1IgRkFJTFVSRSBUTyBQUk9WSURFIFNVUFBPUlQgU0VSVklDRVMsIE9SIE9USEVSV0lTRSBV
TkRFUiANCk9SIElOIENPTk5FQ1RJT04gV0lUSCBBTlkgUFJPVklTSU9OIE9GIFRISVMgRVVMQSwg
RVZFTiBJRiBNSUNST1NPRlQgT1IgQU5ZIFNVUFBMSUVSIEhBUyBCRUVOIA0KQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLiAgDQoxMi4gTElNSVRBVElPTiBPRiBMSUFC
SUxJVFkgQU5EIFJFTUVESUVTLiAgTm90d2l0aHN0YW5kaW5nIGFueSBkYW1hZ2VzIHRoYXQgeW91
IG1pZ2h0IGluY3VyIGZvciBhbnkgcmVhc29uIA0Kd2hhdHNvZXZlciAgKGluY2x1ZGluZywgd2l0
aG91dCBsaW1pdGF0aW9uLCBhbGwgZGFtYWdlcyByZWZlcmVuY2VkIGFib3ZlIGFuZCBhbGwgZGly
ZWN0IG9yIGdlbmVyYWwgZGFtYWdlcyksIHRoZSBlbnRpcmUgbGlhYmlsaXR5IA0Kb2YgTWljcm9z
b2Z0IGFuZCBhbnkgb2YgaXRzIHN1cHBsaWVycyB1bmRlciBhbnkgcHJvdmlzaW9uIG9mIHRoaXMg
RVVMQSBhbmQgeW91ciBleGNsdXNpdmUgcmVtZWR5IGZvciBhbGwgb2YgdGhlIGZvcmVnb2luZyBz
aGFsbCANCmJlIGxpbWl0ZWQgdG8gdGhlIGdyZWF0ZXIgb2YgdGhlIGFtb3VudCBhY3R1YWxseSBw
YWlkIGJ5IHlvdSBmb3IgdGhlIFNPRlRXQVJFIFBST0RVQ1Qgb3IgVS5TLiQ1LjAwLiAgVGhlIGZv
cmVnb2luZyANCmxpbWl0YXRpb25zLCBleGNsdXNpb25zIGFuZCBkaXNjbGFpbWVycyBzaGFsbCBh
cHBseSB0byB0aGUgbWF4aW11bSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LCBl
dmVuIGlmIGFueSByZW1lZHkgDQpmYWlscyBpdHMgZXNzZW50aWFsIHB1cnBvc2UuDQoxMy4gTk9U
RSBPTiBKQVZBIFNVUFBPUlQuICBUSEUgU09GVFdBUkUgUFJPRFVDVCBNQVkgQ09OVEFJTiBTVVBQ
T1JUIEZPUiBQUk9HUkFNUyBXUklUVEVOIElOIEpBVkEuICANCkpBVkEgVEVDSE5PTE9HWSBJUyBO
T1QgRkFVTFQgVE9MRVJBTlQgQU5EIElTIE5PVCBERVNJR05FRCwgTUFOVUZBQ1RVUkVELCBPUiBJ
TlRFTkRFRCBGT1IgVVNFIE9SIA0KUkVTQUxFIEFTIE9OTElORSBDT05UUk9MIEVRVUlQTUVOVCBJ
TiBIQVpBUkRPVVMgRU5WSVJPTk1FTlRTIFJFUVVJUklORyBGQUlMLVNBRkUgUEVSRk9STUFOQ0Us
IA0KU1VDSCBBUyBJTiBUSEUgT1BFUkFUSU9OIE9GIE5VQ0xFQVIgRkFDSUxJVElFUywgQUlSQ1JB
RlQgTkFWSUdBVElPTiBPUiBDT01NVU5JQ0FUSU9OIFNZU1RFTVMsIEFJUiANClRSQUZGSUMgQ09O
VFJPTCwgRElSRUNUIExJRkUgU1VQUE9SVCBNQUNISU5FUywgT1IgV0VBUE9OUyBTWVNURU1TLCBJ
TiBXSElDSCBUSEUgRkFJTFVSRSBPRiBKQVZBIA0KVEVDSE5PTE9HWSBDT1VMRCBMRUFEIERJUkVD
VExZIFRPIERFQVRILCBQRVJTT05BTCBJTkpVUlksIE9SIFNFVkVSRSBQSFlTSUNBTCBPUiBFTlZJ
Uk9OTUVOVEFMIA0KREFNQUdFLiAgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBoYXMgY29udHJhY3R1
YWxseSBvYmxpZ2F0ZWQgTWljcm9zb2Z0IHRvIG1ha2UgdGhpcyBkaXNjbGFpbWVyLg0KMTQuIFUu
Uy4gR09WRVJOTUVOVCBMSUNFTlNFIFJJR0hUUy4gIEFsbCBTT0ZUV0FSRSBQUk9EVUNUIHByb3Zp
ZGVkIHRvIHRoZSBVLlMuIEdvdmVybm1lbnQgcHVyc3VhbnQgdG8gc29saWNpdGF0aW9ucyANCmlz
c3VlZCBvbiBvciBhZnRlciBEZWNlbWJlciAxLCAxOTk1IGlzIHByb3ZpZGVkIHdpdGggdGhlIGNv
bW1lcmNpYWwgbGljZW5zZSByaWdodHMgYW5kIHJlc3RyaWN0aW9ucyBkZXNjcmliZWQgZWxzZXdo
ZXJlIGhlcmVpbi4gIA0KQWxsIFNPRlRXQVJFIFBST0RVQ1QgcHJvdmlkZWQgdG8gdGhlIFUuUy4g
R292ZXJubWVudCBwdXJzdWFudCB0byBzb2xpY2l0YXRpb25zIGlzc3VlZCBwcmlvciB0byBEZWNl
bWJlciAxLCAxOTk1IGlzIA0KcHJvdmlkZWQgd2l0aCAiUmVzdHJpY3RlZCBSaWdodHMiIGFzIHBy
b3ZpZGVkIGZvciBpbiBGQVIsIDQ4IENGUiA1Mi4yMjctMTQgKEpVTkUgMTk4Nykgb3IgREZBUiwg
NDggQ0ZSIDI1Mi4yMjctNzAxMyAoT0NUIA0KMTk4OCksIGFzIGFwcGxpY2FibGUuIA0KMTUuIEFQ
UExJQ0FCTEUgTEFXLiAgSWYgeW91IGFjcXVpcmVkIHRoaXMgU09GVFdBUkUgUFJPRFVDVCBpbiB0
aGUgVW5pdGVkIFN0YXRlcywgdGhpcyBFVUxBIGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRo
ZSANClN0YXRlIG9mIFdhc2hpbmd0b24uICBJZiB5b3UgYWNxdWlyZWQgdGhpcyBTT0ZUV0FSRSBQ
Uk9EVUNUIGluIENhbmFkYSwgdW5sZXNzIGV4cHJlc3NseSBwcm9oaWJpdGVkIGJ5IGxvY2FsIGxh
dywgdGhpcyBFVUxBIA0KaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3MgaW4gZm9yY2UgaW4gdGhlIFBy
b3ZpbmNlIG9mIE9udGFyaW8sIENhbmFkYTsgYW5kLCBpbiByZXNwZWN0IG9mIGFueSBkaXNwdXRl
IHdoaWNoIG1heSBhcmlzZSBoZXJldW5kZXIsIHlvdSANCmNvbnNlbnQgdG8gdGhlIGp1cmlzZGlj
dGlvbiBvZiB0aGUgZmVkZXJhbCBhbmQgcHJvdmluY2lhbCBjb3VydHMgc2l0dGluZyBpbiBUb3Jv
bnRvLCBPbnRhcmlvLiAgSWYgdGhpcyBTT0ZUV0FSRSBQUk9EVUNUIHdhcyANCmFjcXVpcmVkIG91
dHNpZGUgdGhlIFVuaXRlZCBTdGF0ZXMsIHRoZW4gbG9jYWwgbGF3IG1heSBhcHBseS4NCjE2LiBF
TlRJUkUgQUdSRUVNRU5ULiAgVGhpcyBFVUxBIChpbmNsdWRpbmcgYW55IGFkZGVuZHVtIG9yIGFt
ZW5kbWVudCB0byB0aGlzIEVVTEEgd2hpY2ggaXMgaW5jbHVkZWQgd2l0aCB0aGUgDQpTT0ZUV0FS
RSBQUk9EVUNUKSBhcmUgdGhlIGVudGlyZSBhZ3JlZW1lbnQgYmV0d2VlbiB5b3UgYW5kIE1pY3Jv
c29mdCByZWxhdGluZyB0byB0aGUgU09GVFdBUkUgUFJPRFVDVCBhbmQgdGhlIA0Kc3VwcG9ydCBz
ZXJ2aWNlcyAoaWYgYW55KSBhbmQgdGhleSBzdXBlcnNlZGUgYWxsIHByaW9yIG9yIGNvbnRlbXBv
cmFuZW91cyBvcmFsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbnMsIHByb3Bvc2FscyBhbmQgDQpy
ZXByZXNlbnRhdGlvbnMgd2l0aCByZXNwZWN0IHRvIHRoZSBTT0ZUV0FSRSBQUk9EVUNUIG9yIGFu
eSBvdGhlciBzdWJqZWN0IG1hdHRlciBjb3ZlcmVkIGJ5IHRoaXMgRVVMQS4gIFRvIHRoZSBleHRl
bnQgDQp0aGUgdGVybXMgb2YgYW55IE1pY3Jvc29mdCBwb2xpY2llcyBvciBwcm9ncmFtcyBmb3Ig
c3VwcG9ydCBzZXJ2aWNlcyBjb25mbGljdCB3aXRoIHRoZSB0ZXJtcyBvZiB0aGlzIEVVTEEsIHRo
ZSB0ZXJtcyBvZiB0aGlzIA0KRVVMQSBzaGFsbCBjb250cm9sLg0KMTcuIFRoZSBTT0ZUV0FSRSBQ
Uk9EVUNUIGlzIHByb3RlY3RlZCBieSBjb3B5cmlnaHQgYW5kIG90aGVyIGludGVsbGVjdHVhbCBw
cm9wZXJ0eSBsYXdzIGFuZCB0cmVhdGllcy4gIE1pY3Jvc29mdCBvciBpdHMgc3VwcGxpZXJzIA0K
b3duIHRoZSB0aXRsZSwgY29weXJpZ2h0LCBhbmQgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5
IHJpZ2h0cyBpbiB0aGUgU09GVFdBUkUgUFJPRFVDVC4gIFRoZSBTT0ZUV0FSRSBQUk9EVUNUIGlz
IA0KbGljZW5zZWQsIG5vdCBzb2xkLg0KDQoNClNpIHZvdXMgYXZleiBhY3F1aXMgdm90cmUgUFJP
RFVJVCBMT0dJQ0lFTCBNaWNyb3NvZnQgYXUgQ0FOQURBLCBsYSBnYXJhbnRpZSBsaW1pdOllIHN1
aXZhbnRlIHZvdXMgY29uY2VybmUgOg0KRMlOSSBERSBHQVJBTlRJRS4gICBEQU5TIExBIE1FU1VS
RSBNQVhJTUFMRSBQRVJNSVNFIFBBUiBMRVMgTE9JUyBBUFBMSUNBQkxFUywgTUlDUk9TT0ZUIEVU
IFNFUyANCkZPVVJOSVNTRVVSUyBWT1VTIEZPVVJOSVNTRU5UIExFIFBST0RVSVQgTE9HSUNJRUwg
RVQgTEVTIFNFUlZJQ0VTIERFIFNPVVRJRU4gVEVDSE5JUVVFIFBPVVIgTEUgDQpQUk9EVUlUIExP
R0lDSUVMIChMRVMgIlNFUlZJQ0VTIERFIFNPVVRJRU4iKSwgTEUgQ0FTIMlDSMlBTlQsIFRFTCBR
VUVMIEVUIEFWRUMgVE9VUyBMRVMgRMlGQVVUUzsgDQpNSUNST1NPRlQgRVQgU0VTIEZPVVJOSVNT
RVVSUywgUEFSIExFUyBQUslTRU5URVMsIETJTklFTlQgVE9VVEVTIEFVVFJFUyBHQVJBTlRJRVMg
RVQgQ09ORElUSU9OUyANCkVYUFJFU1NFUywgSU1QTElDSVRFUyBPVSBFTiBWRVJUVSBERSBMQSBM
T0ksIFJFTEFUSVZFTUVOVCBBVSBQUk9EVUlUIExPR0lDSUVMIEVUIEFVWCBTRVJWSUNFUyBERSAN
ClNPVVRJRU4sIE5PVEFNTUVOVCAoTEUgQ0FTIMlDSMlBTlQpIExFUyBHQVJBTlRJRVMsIERFVk9J
UlMgT1UgQ09ORElUSU9OUyBERSwgT1UgRU4gTUFUSchSRSBERSwgDQpRVUFMSVTJIE1BUkNIQU5E
RSwgRCdBREFQVEFUSU9OIMAgVU4gVVNBR0UgUEFSVElDVUxJRVIsIEQnQUJTRU5DRSBERSBWSVJV
UywgRCdFWEFDVElUVURFIE9VIA0KRCdFWEhBVVNUSVZJVMkgREVTIFLJUE9OU0VTLCBERVMgUslT
VUxUQVRTLCBERVMgRUZGT1JUUyBEyVBMT1nJUyBTRUxPTiBMRVMgUshHTEVTIERFIEwnQVJUIEVU
IA0KRCdBQlNFTkNFIERFIE7JR0xJR0VOQ0UuICBQQVIgQUlMTEVVUlMsIElMIE4nWSBBIEFVQ1VO
RSBHQVJBTlRJRSwgREVWT0lSIE9VIENPTkRJVElPTiBRVUFOVCBBVSANClRJVFJFIERFIFBST1BS
SclUySwgwCBMQSBKT1VJU1NBTkNFIE9VIMAgTEEgUE9TU0VTU0lPTiBQQUlTSUJMRSwgwCBMQSBD
T05DT1JEQU5DRSDAIFVORSBERVNDUklQVElPTiANCk5JIFFVQU5UIMAgVU5FIEFCU0VOQ0UgREUg
Q09OVFJFRkHHT04gQ09OQ0VSTkFOVCBMRSBQUk9EVUlUIExPR0lDSUVMIE9VIExFUyBTRVJWSUNF
UyBERSANClNPVVRJRU4uICBWT1VTIEFDQ0VQVEVaIFRPVVMgTEVTIFJJU1FVRVMgUkVMQVRJVkVN
RU5UIMAgTCdVVElMSVNBVElPTiBEVSBQUk9EVUlUIExPR0lDSUVMIEVUIERFUyANClNFUlZJQ0VT
IERFIFNPVVRJRU4gREUgTcpNRSBRVUUgUkVMQVRJVkVNRU5UIMAgTEEgUEVSRk9STUFOQ0UgRFUg
UFJPRFVJVCBMT0dJQ0lFTCBFVCDAIExBIA0KUFJFU1RBVElPTiBERVMgU0VSVklDRVMgREUgU09V
VElFTi4NCkVYQ0xVU0lPTiBERVMgRE9NTUFHRVMgQUNDRVNTT0lSRVMsIElORElSRUNUUyBFVCBE
RSBDRVJUQUlOUyBBVVRSRVMgRE9NTUFHRVMuICBEQU5TIExBIE1FU1VSRSANCk1BWElNQUxFIFBF
Uk1JU0UgUEFSIExFUyBMT0lTIEFQUExJQ0FCTEVTLCBFTiBBVUNVTiBDQVMgTUlDUk9TT0ZUIE9V
IFNFUyBGT1VSTklTU0VVUlMgTkUgU0VST05UIA0KUkVTUE9OU0FCTEVTIERFUyBET01NQUdFUyBT
UMlDSUFVWCwgQUNDRVNTT0lSRVMsIElORElSRUNUUyBPVSBDT05TyUNVVElGUyBERSBRVUVMUVVF
IE5BVFVSRSANClFVRSBDRSBTT0lUIChOT1RBTU1FTlQsIExFUyBET01NQUdFUyDAIEwnyUdBUkQg
REUgTEEgUEVSVEUgREUgUFJPRklUUyBPVSDAIExBIFBFUlRFIERFIA0KUkVOU0VJR05FTUVOVFMg
Q09ORklERU5USUVMUyBPVSBBVVRSRVMsIERFIEwnSU5URVJSVVBUSU9OIERFUyBBRkZBSVJFUywg
REUgQkxFU1NVUkVTIENPUlBPUkVMTEVTLCANCkRFIExBIFZJT0xBVElPTiBERSBMQSBWSUUgUFJJ
VslFLCBERSBMJ09NSVNTSU9OIERFIFJFTVBMSVIgVE9VVCBERVZPSVIsIFkgQ09NUFJJUyBEJ0FH
SVIgREUgQk9OTkUgDQpGT0kgT1UgRCdFWEVSQ0VSIFVOIFNPSU4gUkFJU09OTkFCTEUsIERFIExB
IE7JR0xJR0VOQ0UgRVQgREUgVE9VVEUgQVVUUkUgUEVSVEUgUMlDVU5JQUlSRSBPVSANCkFVVFJF
IFBFUlRFIERFIFFVRUxRVUUgTkFUVVJFIFFVRSBDRSBTT0lUKSBTRSBSQVBQT1JUQU5UIERFIFFV
RUxRVUUgTUFOSchSRSBRVUUgQ0UgU09JVCDAIA0KTCdVVElMSVNBVElPTiBEVSBQUk9EVUlUIExP
R0lDSUVMIE9VIMAgTCdJTkNBUEFDSVTJIERFIFMnRU4gU0VSVklSLCDAIExBIFBSRVNUQVRJT04g
T1UgwCBMJ09NSVNTSU9OIA0KRCdVTkUgUFJFU1RBVElPTiBERVMgU0VSVklDRVMgREUgU09VVElF
TiBPVSBBVVRSRU1FTlQgQVVYIFRFUk1FUyBERSBUT1VURSBESVNQT1NJVElPTiBERSBDRSBDTFVG
LCANCk9VIFJFTEFUSVZFTUVOVCDAIFVORSBURUxMRSBESVNQT1NJVElPTiwgTcpNRSBFTiBDQVMg
REUgRkFVVEUsIERFIETJTElUIENJVklMIChZIENPTVBSSVMgTEEgDQpOyUdMSUdFTkNFLCBERSBS
RVNQT05TQUJJTElUySBTVFJJQ1RFLCBERSBWSU9MQVRJT04gREUgQ09OVFJBVCBPVSBERSBWSU9M
QVRJT04gREUgR0FSQU5USUUgREUgDQpNSUNST1NPRlQgT1UgREUgVE9VVCBGT1VSTklTU0VVUiwg
RVQgQ0UgTcpNRSBTSSBNSUNST1NPRlQgT1UgVE9VVCBGT1VSTklTU0VVUiBBIMlUySBBVklTySBE
RSBMQSANClBPU1NJQklMSVTJIERFIFRFTFMgRE9NTUFHRVMuDQoNCkxJTUlUQVRJT04gREUgUkVT
UE9OU0FCSUxJVMkgRVQgUkVDT1VSUy4gIE1BTEdSySBMRVMgRE9NTUFHRVMgUVVFIFZPVVMgUFVJ
U1NJRVogU1VCSVIgUE9VUiANClFVRUxRVUUgTU9USUYgUVVFIENFIFNPSVQgKE5PVEFNTUVOVCwg
VE9VUyBMRVMgRE9NTUFHRVMgU1VTLU1FTlRJT05OyVMgRVQgVE9VUyBMRVMgRE9NTUFHRVMgDQpE
SVJFQ1RTIE9VIEfJTslSQVVYKSwgTCdPQkxJR0FUSU9OIElOVMlHUkFMRSBERSBNSUNST1NPRlQg
RVQgREUgTCdVTiBPVSBMJ0FVVFJFIERFIFNFUyANCkZPVVJOSVNTRVVSUyBBVVggVEVSTUVTIERF
IFRPVVRFIERJU1BPU0lUSU9OIERFIENFIENMVUYgRVQgVk9UUkUgUkVDT1VSUyBFWENMVVNJRiDA
IEwnyUdBUkQgREUgDQpUT1VUIERFIFFVSSBQUslDyERFIFNFIExJTUlURU5UIEFVWCBET01NQUdF
UyBSyUVMUyBRVUUgVk9VUyBBVkVaIFNVQklTIEVOIFZPVVMgRk9OREFOVCBTVVIgVU5FIA0KRVhQ
RUNUQVRJVkUgUkFJU09OTkFCTEUsIEpVU1FVJ0FVIFBMVVMgyUxFVskgRU5UUkUgTEVTIE1PTlRB
TlRTIFNVSVZBTlRTIDogIExFIE1PTlRBTlQgUVVFIFZPVVMgDQpBVkVaIFLJRUxMRU1FTlQgUEFZ
ySBQT1VSIExFIFBST0RVSVQgTE9HSUNJRUwgT1UgJDUuMDAgVS5TLiAgTEVTIExJTUlURVMsIEVY
Q0xVU0lPTlMgRVQgRMlOSVMgUVVJIA0KUFLJQ8hERU5UIFMnQVBQTElRVUVOVCBEQU5TIExBIE1F
U1VSRSBNQVhJTUFMRSBQRVJNSVNFIFBBUiBMRVMgTE9JUyBBUFBMSUNBQkxFUyBNyk1FIFNJIFRP
VVQgDQpSRUNPVVJTIE4nQVRURUlOVCBQQVMgU09OIEJVVCBFU1NFTlRJRUwuDQpMYSBwculzZW50
ZSBDb252ZW50aW9uIGVzdCBy6WdpZSBwYXIgbGVzIGxvaXMgZGUgbGEgcHJvdmluY2UgZCdPbnRh
cmlvLCBDYW5hZGEuICBDaGFjdW5lIGRlcyBwYXJ0aWVzIOAgbGEgcHLpc2VudGUgcmVjb25uYe50
IA0KaXJy6XZvY2FibGVtZW50IGxhIGNvbXDpdGVuY2UgZGVzIHRyaWJ1bmF1eCBkZSBsYSBwcm92
aW5jZSBkJ09udGFyaW8gZXQgY29uc2VudCDgIGluc3RpdHVlciB0b3V0IGxpdGlnZSBxdWkgcG91
cnJhaXQgZOljb3VsZXIgZGUgbGEgDQpwculzZW50ZSBhdXBy6HMgZGVzIHRyaWJ1bmF1eCBzaXR1
6XMgZGFucyBsZSBkaXN0cmljdCBqdWRpY2lhaXJlIGRlIFlvcmssIHByb3ZpbmNlIGQnT250YXJp
by4NCkF1IGNhcyBv+SB2b3VzIGF1cmlleiBkZXMgcXVlc3Rpb25zIGNvbmNlcm5hbnQgY2V0dGUg
bGljZW5jZSBvdSBxdWUgdm91cyBk6XNpcmlleiB2b3VzIG1ldHRyZSBlbiByYXBwb3J0IGF2ZWMg
TWljcm9zb2Z0IHBvdXIgDQpxdWVscXVlIHJhaXNvbiBxdWUgY2Ugc29pdCwgdmV1aWxsZXogY29u
dGFjdGVyIGxhIHN1Y2N1cnNhbGUgTWljcm9zb2Z0IGRlc3NlcnZhbnQgdm90cmUgcGF5cywgZG9u
dCBsJ2FkcmVzc2UgZXN0IGZvdXJuaWUgZGFucyBjZSANCnByb2R1aXQsIG91IOljcml2ZXog4CA6
IE1pY3Jvc29mdCBTYWxlcyBJbmZvcm1hdGlvbiBDZW50ZXIsIE9uZSBNaWNyb3NvZnQgV2F5LCBS
ZWRtb25kLCBXYXNoaW5ndG9uIDk4MDUyLTYzOTkuDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152021</attachid>
            <date>2004-06-30 08:33:58 -0700</date>
            <delta_ts>2004-06-30 23:56:06 -0700</delta_ts>
            <desc>MZLU 0.1 (by Brodie)</desc>
            <filename>mzlu.v01</filename>
            <type>text/plain</type>
            <size>77154</size>
            <attacher>jshin1987</attacher>
            
              <data encoding="base64">SW5kZXg6IG16bHUvbXpsdS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IG16bHUvbXpsdS5jCmRpZmYg
LU4gbXpsdS9temx1LmMKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisr
KyBtemx1L216bHUuYwkzMCBKdW4gMjAwNCAxNToyOTozNiAtMDAwMApAQCAtMCwwICsxLDI4NCBA
QAorLyogKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKg0KKyAqIFZlcnNpb246IE1QTCAx
LjEvR1BMIDIuMC9MR1BMIDIuMQ0KKyAqDQorICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBh
cmUgc3ViamVjdCB0byB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uDQorICogMS4x
ICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZSB3aXRoDQorICogdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdA0KKyAqIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBMLw0KKyAqDQorICog
U29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24g
YW4gIkFTIElTIiBiYXNpcywNCisgKiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UNCisgKiBmb3IgdGhlIHNwZWNp
ZmljIGxhbmd1YWdlIGdvdmVybmluZyByaWdodHMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZQ0K
KyAqIExpY2Vuc2UuDQorICoNCisgKiBUaGUgT3JpZ2luYWwgQ29kZSBpcyB2ZXJ5IHByZXR0eS4N
CisgKg0KKyAqIFRoZSBJbml0aWFsIERldmVsb3BlciBvZiB0aGUgT3JpZ2luYWwgQ29kZSBpcw0K
KyAqIEJyb2RpZSBUaGllc2ZpZWxkLg0KKyAqIFBvcnRpb25zIGNyZWF0ZWQgYnkgdGhlIEluaXRp
YWwgRGV2ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDIwMDQNCisgKiB0aGUgSW5pdGlhbCBEZXZl
bG9wZXIuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQorICoNCisgKiBDb250cmlidXRvcihzKToNCisg
Kg0KKyAqIEFsdGVybmF0aXZlbHksIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5IGJlIHVz
ZWQgdW5kZXIgdGhlIHRlcm1zIG9mDQorICogZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBWZXJzaW9uIDIgb3IgbGF0ZXIgKHRoZSAiR1BMIiksIG9yDQorICogdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMSBvciBsYXRlciAodGhlICJM
R1BMIiksDQorICogaW4gd2hpY2ggY2FzZSB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgR1BMIG9yIHRo
ZSBMR1BMIGFyZSBhcHBsaWNhYmxlIGluc3RlYWQNCisgKiBvZiB0aG9zZSBhYm92ZS4gSWYgeW91
IHdpc2ggdG8gYWxsb3cgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgb25seQ0KKyAq
IHVuZGVyIHRoZSB0ZXJtcyBvZiBlaXRoZXIgdGhlIEdQTCBvciB0aGUgTEdQTCwgYW5kIG5vdCB0
byBhbGxvdyBvdGhlcnMgdG8NCisgKiB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIE1QTCwgaW5kaWNhdGUgeW91cg0KKyAqIGRlY2lzaW9uIGJ5IGRl
bGV0aW5nIHRoZSBwcm92aXNpb25zIGFib3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbm90
aWNlDQorICogYW5kIG90aGVyIHByb3Zpc2lvbnMgcmVxdWlyZWQgYnkgdGhlIEdQTCBvciB0aGUg
TEdQTC4gSWYgeW91IGRvIG5vdCBkZWxldGUNCisgKiB0aGUgcHJvdmlzaW9ucyBhYm92ZSwgYSBy
ZWNpcGllbnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyDQorICogdGhl
IHRlcm1zIG9mIGFueSBvbmUgb2YgdGhlIE1QTCwgdGhlIEdQTCBvciB0aGUgTEdQTC4NCisgKg0K
KyAqICoqKioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqICovDQorDQorI2luY2x1ZGUgPHdpbmRv
d3MuaD4NCisjaW5jbHVkZSA8d2NoYXIuaD4NCisjaW5jbHVkZSA8ZGlyZWN0Lmg+DQorI2luY2x1
ZGUgPHNobG9iai5oPg0KKw0KKyNpbmNsdWRlICJtemx1LmgiDQorDQorDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KKy8vIEZ1bmN0aW9uIFBvaW50ZXIgRGVmaW5pdGlvbnMNCisNCisjZGVmaW5l
IERFQ0xBUkVfRlVOQ19QVFIoZnVuYykgIGV4dGVybiBmcCMjZnVuYyMjVyBmdW5jIyNNeiA9IE5V
TEwNCisNCisvLyBhcHBlbmQgbmV3IGZ1bmN0aW9uIGRlZmluaXRpb25zIHRvIHRoZSBlbmQNCitE
RUNMQVJFX0ZVTkNfUFRSKF93Z2V0ZGN3ZCk7DQorREVDTEFSRV9GVU5DX1BUUihDb3B5RmlsZSk7
DQorREVDTEFSRV9GVU5DX1BUUihDcmVhdGVEaXJlY3RvcnkpOw0KK0RFQ0xBUkVfRlVOQ19QVFIo
Q3JlYXRlRmlsZSk7DQorREVDTEFSRV9GVU5DX1BUUihEZWxldGVGaWxlKTsNCitERUNMQVJFX0ZV
TkNfUFRSKEdldERpc2tGcmVlU3BhY2UpOw0KK0RFQ0xBUkVfRlVOQ19QVFIoR2V0RGlza0ZyZWVT
cGFjZUV4KTsgIC8vIERZTkFNSUMhIFtXaW45NSBPU1IyLCBXaW5OVCA0XQ0KK0RFQ0xBUkVfRlVO
Q19QVFIoR2V0RmlsZUF0dHJpYnV0ZXMpOw0KK0RFQ0xBUkVfRlVOQ19QVFIoR2V0TG9naWNhbERy
aXZlU3RyaW5ncyk7DQorREVDTEFSRV9GVU5DX1BUUihHZXRUZW1wUGF0aCk7DQorREVDTEFSRV9G
VU5DX1BUUihNb3ZlRmlsZSk7DQorREVDTEFSRV9GVU5DX1BUUihSZW1vdmVEaXJlY3RvcnkpOw0K
K0RFQ0xBUkVfRlVOQ19QVFIoU2hlbGxFeGVjdXRlKTsNCitERUNMQVJFX0ZVTkNfUFRSKENoYXJV
cHBlcik7DQorREVDTEFSRV9GVU5DX1BUUihDaGFyVXBwZXJCdWZmKTsNCitERUNMQVJFX0ZVTkNf
UFRSKERvY3VtZW50UHJvcGVydGllcyk7DQorREVDTEFSRV9GVU5DX1BUUihEZWZXaW5kb3dQcm9j
KTsNCitERUNMQVJFX0ZVTkNfUFRSKENhbGxXaW5kb3dQcm9jKTsNCitERUNMQVJFX0ZVTkNfUFRS
KFNldFdpbmRvd0xvbmdQdHIpOw0KK0RFQ0xBUkVfRlVOQ19QVFIoR2V0V2luZG93TG9uZ1B0cik7
DQorREVDTEFSRV9GVU5DX1BUUihTZW5kTWVzc2FnZSk7DQorREVDTEFSRV9GVU5DX1BUUihEaXNw
YXRjaE1lc3NhZ2UpOw0KK0RFQ0xBUkVfRlVOQ19QVFIoR2V0TWVzc2FnZSk7DQorREVDTEFSRV9G
VU5DX1BUUihQZWVrTWVzc2FnZSk7DQorREVDTEFSRV9GVU5DX1BUUihHZXRPcGVuRmlsZU5hbWUp
Ow0KK0RFQ0xBUkVfRlVOQ19QVFIoR2V0U2F2ZUZpbGVOYW1lKTsNCitERUNMQVJFX0ZVTkNfUFRS
KEdldENsYXNzTmFtZSk7DQorREVDTEFSRV9GVU5DX1BUUihDcmVhdGVXaW5kb3dFeCk7DQorREVD
TEFSRV9GVU5DX1BUUihSZWdpc3RlckNsYXNzKTsNCitERUNMQVJFX0ZVTkNfUFRSKFVucmVnaXN0
ZXJDbGFzcyk7DQorREVDTEFSRV9GVU5DX1BUUihTSEdldFBhdGhGcm9tSURMaXN0KTsNCitERUNM
QVJFX0ZVTkNfUFRSKFNIQnJvd3NlRm9yRm9sZGVyKTsNCitERUNMQVJFX0ZVTkNfUFRSKFJlZ2lz
dGVyQ2xpcGJvYXJkRm9ybWF0KTsNCitERUNMQVJFX0ZVTkNfUFRSKEdldENsaXBib2FyZEZvcm1h
dE5hbWUpOw0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBBUEkNCisNCitzdGF0aWMg
aW50ICBnX25QbGF0Zm9ybSA9IE1aX05PVF9JTklUSUFMSVpFRDsNCitleHRlcm4gaW50ICBNekdl
dFBsYXRmb3JtKCkgICAgICB7IHJldHVybiBnX25QbGF0Zm9ybTsgfQ0KK2V4dGVybiBCT09MIE16
SXNOYXRpdmVVbmljb2RlKCkgIHsgcmV0dXJuIChnX25QbGF0Zm9ybSA+IDApID8gVFJVRSA6IEZB
TFNFOyB9DQorDQorc3RhdGljIEJPT0wNCitTZXRVbmljb2RlKCkNCit7DQorI2RlZmluZSBTRVRf
RlVOQ19VTklDT0RFKGZ1bmMpICAgICAgICAgICAgICBmdW5jIyNNeiA9IGZ1bmMjI1cNCisjZGVm
aW5lIFNFVF9GVU5DX1VOSUNPREVfTkFNRUQoZnVuYyxuYW1lKSAgIGZ1bmMjI016ID0gbmFtZQ0K
Kw0KKyAgICAvLyBhcHBlbmQgbmV3IGZ1bmN0aW9uIGRlZmluaXRpb25zIHRvIHRoZSBlbmQNCisg
ICAgU0VUX0ZVTkNfVU5JQ09ERV9OQU1FRChfd2dldGRjd2QsIF93Z2V0ZGN3ZCk7DQorICAgIFNF
VF9GVU5DX1VOSUNPREUoQ29weUZpbGUpOw0KKyAgICBTRVRfRlVOQ19VTklDT0RFKENyZWF0ZURp
cmVjdG9yeSk7DQorICAgIFNFVF9GVU5DX1VOSUNPREUoQ3JlYXRlRmlsZSk7DQorICAgIFNFVF9G
VU5DX1VOSUNPREUoRGVsZXRlRmlsZSk7DQorICAgIFNFVF9GVU5DX1VOSUNPREUoR2V0RGlza0Zy
ZWVTcGFjZSk7DQorICAgIFNFVF9GVU5DX1VOSUNPREUoR2V0RmlsZUF0dHJpYnV0ZXMpOw0KKyAg
ICBTRVRfRlVOQ19VTklDT0RFKEdldExvZ2ljYWxEcml2ZVN0cmluZ3MpOw0KKyAgICBTRVRfRlVO
Q19VTklDT0RFKEdldFRlbXBQYXRoKTsNCisgICAgU0VUX0ZVTkNfVU5JQ09ERShNb3ZlRmlsZSk7
DQorICAgIFNFVF9GVU5DX1VOSUNPREUoUmVtb3ZlRGlyZWN0b3J5KTsNCisgICAgU0VUX0ZVTkNf
VU5JQ09ERShTaGVsbEV4ZWN1dGUpOw0KKyAgICBTRVRfRlVOQ19VTklDT0RFKENoYXJVcHBlcik7
DQorICAgIFNFVF9GVU5DX1VOSUNPREUoQ2hhclVwcGVyQnVmZik7DQorICAgIFNFVF9GVU5DX1VO
SUNPREUoRG9jdW1lbnRQcm9wZXJ0aWVzKTsNCisgICAgU0VUX0ZVTkNfVU5JQ09ERShEZWZXaW5k
b3dQcm9jKTsNCisgICAgU0VUX0ZVTkNfVU5JQ09ERShDYWxsV2luZG93UHJvYyk7DQorICAgIFNF
VF9GVU5DX1VOSUNPREUoU2V0V2luZG93TG9uZ1B0cik7DQorICAgIFNFVF9GVU5DX1VOSUNPREUo
R2V0V2luZG93TG9uZ1B0cik7DQorICAgIFNFVF9GVU5DX1VOSUNPREUoU2VuZE1lc3NhZ2UpOw0K
KyAgICBTRVRfRlVOQ19VTklDT0RFKERpc3BhdGNoTWVzc2FnZSk7DQorICAgIFNFVF9GVU5DX1VO
SUNPREUoR2V0TWVzc2FnZSk7DQorICAgIFNFVF9GVU5DX1VOSUNPREUoUGVla01lc3NhZ2UpOw0K
KyAgICBTRVRfRlVOQ19VTklDT0RFKEdldE9wZW5GaWxlTmFtZSk7DQorICAgIFNFVF9GVU5DX1VO
SUNPREUoR2V0U2F2ZUZpbGVOYW1lKTsNCisgICAgU0VUX0ZVTkNfVU5JQ09ERShHZXRDbGFzc05h
bWUpOw0KKyAgICBTRVRfRlVOQ19VTklDT0RFKENyZWF0ZVdpbmRvd0V4KTsNCisgICAgU0VUX0ZV
TkNfVU5JQ09ERShSZWdpc3RlckNsYXNzKTsNCisgICAgU0VUX0ZVTkNfVU5JQ09ERShVbnJlZ2lz
dGVyQ2xhc3MpOw0KKyAgICBTRVRfRlVOQ19VTklDT0RFKFNIR2V0UGF0aEZyb21JRExpc3QpOw0K
KyAgICBTRVRfRlVOQ19VTklDT0RFKFNIQnJvd3NlRm9yRm9sZGVyKTsNCisgICAgU0VUX0ZVTkNf
VU5JQ09ERShSZWdpc3RlckNsaXBib2FyZEZvcm1hdCk7DQorICAgIFNFVF9GVU5DX1VOSUNPREUo
R2V0Q2xpcGJvYXJkRm9ybWF0TmFtZSk7DQorDQorICAgIC8vIFtEWU5BTUlDXSBzZXQgYWxsIGR5
bmFtaWNhbGx5IGxvYWRlZCBpdGVtcw0KKyAgICBHZXREaXNrRnJlZVNwYWNlRXhNeiA9IChmcEdl
dERpc2tGcmVlU3BhY2VFeFcpDQorICAgICAgICBHZXRQcm9jQWRkcmVzcyhHZXRNb2R1bGVIYW5k
bGUoImtlcm5lbDMyLmRsbCIpLCAiR2V0RGlza0ZyZWVTcGFjZUV4VyIpOw0KKw0KKyN1bmRlZiBT
RVRfRlVOQ19VTklDT0RFDQorDQorICAgIHJldHVybiBUUlVFOw0KK30NCisNCitzdGF0aWMgQk9P
TA0KK1NldFdyYXBwZWQoKQ0KK3sNCisgICAgSE1PRFVMRSAgICAgICAgIGhNb2R1bGU7DQorDQor
ICAgIC8vIExvYWQgb3VyIERMTCB0aGF0IGltcGxlbWVudHMgYWxsIG9mIHRoZSB3cmFwcGVyIGZ1
bmN0aW9ucyBhbmQgc2V0IHNldCBhbGwgb2YgDQorICAgIC8vIHRoZSBmdW5jdGlvbnMgdG8gcG9p
bnQgdG8gaXQuIE5vdGUgdGhhdCB3ZSBuZXZlciBjYWxsIEZyZWVMaWJyYXJ5IG9uIHRoaXMgDQor
ICAgIC8vIGhhbmRsZSBhbmQgc28gaXQgd2lsbCBiZSBsZWFrZWQsIGJ1dCB0aGUgT1Mgd2lsbCBj
bGVhbiB1cCBhZnRlciB1cy4NCisgICAgaE1vZHVsZSA9IExvYWRMaWJyYXJ5QSgibXpsdWEuZGxs
Iik7DQorICAgIGlmIChoTW9kdWxlID09IE5VTEwpDQorICAgICAgICByZXR1cm4gRkFMU0U7DQor
DQorI2RlZmluZSBTRVRfRlVOQ19XUkFQUEVEKGZ1bmMpIFwNCisgICAgZnVuYyMjTXogPSAoZnAj
I2Z1bmMjI1cpIEdldFByb2NBZGRyZXNzKGhNb2R1bGUsICNmdW5jICJXcmFwcGVkIik7IFwNCisg
ICAgaWYgKCFmdW5jIyNNeikgcmV0dXJuIEZBTFNFDQorDQorICAgIC8vIGFwcGVuZCBuZXcgZnVu
Y3Rpb24gZGVmaW5pdGlvbnMgdG8gdGhlIGVuZA0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKF93Z2V0
ZGN3ZCk7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQoQ29weUZpbGUpOw0KKyAgICBTRVRfRlVOQ19X
UkFQUEVEKENyZWF0ZURpcmVjdG9yeSk7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQoQ3JlYXRlRmls
ZSk7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQoRGVsZXRlRmlsZSk7DQorICAgIFNFVF9GVU5DX1dS
QVBQRUQoR2V0RGlza0ZyZWVTcGFjZSk7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQoR2V0RmlsZUF0
dHJpYnV0ZXMpOw0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKEdldExvZ2ljYWxEcml2ZVN0cmluZ3Mp
Ow0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKEdldFRlbXBQYXRoKTsNCisgICAgU0VUX0ZVTkNfV1JB
UFBFRChNb3ZlRmlsZSk7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQoUmVtb3ZlRGlyZWN0b3J5KTsN
CisgICAgU0VUX0ZVTkNfV1JBUFBFRChTaGVsbEV4ZWN1dGUpOw0KKyAgICBTRVRfRlVOQ19XUkFQ
UEVEKENoYXJVcHBlcik7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQoQ2hhclVwcGVyQnVmZik7DQor
ICAgIFNFVF9GVU5DX1dSQVBQRUQoRG9jdW1lbnRQcm9wZXJ0aWVzKTsNCisgICAgU0VUX0ZVTkNf
V1JBUFBFRChEZWZXaW5kb3dQcm9jKTsNCisgICAgU0VUX0ZVTkNfV1JBUFBFRChDYWxsV2luZG93
UHJvYyk7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQoU2V0V2luZG93TG9uZ1B0cik7DQorICAgIFNF
VF9GVU5DX1dSQVBQRUQoR2V0V2luZG93TG9uZ1B0cik7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQo
U2VuZE1lc3NhZ2UpOw0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKERpc3BhdGNoTWVzc2FnZSk7DQor
ICAgIFNFVF9GVU5DX1dSQVBQRUQoR2V0TWVzc2FnZSk7DQorICAgIFNFVF9GVU5DX1dSQVBQRUQo
UGVla01lc3NhZ2UpOw0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKEdldE9wZW5GaWxlTmFtZSk7DQor
ICAgIFNFVF9GVU5DX1dSQVBQRUQoR2V0U2F2ZUZpbGVOYW1lKTsNCisgICAgU0VUX0ZVTkNfV1JB
UFBFRChHZXRDbGFzc05hbWUpOw0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKENyZWF0ZVdpbmRvd0V4
KTsNCisgICAgU0VUX0ZVTkNfV1JBUFBFRChSZWdpc3RlckNsYXNzKTsNCisgICAgU0VUX0ZVTkNf
V1JBUFBFRChVbnJlZ2lzdGVyQ2xhc3MpOw0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKFNIR2V0UGF0
aEZyb21JRExpc3QpOw0KKyAgICBTRVRfRlVOQ19XUkFQUEVEKFNIQnJvd3NlRm9yRm9sZGVyKTsN
CisgICAgU0VUX0ZVTkNfV1JBUFBFRChSZWdpc3RlckNsaXBib2FyZEZvcm1hdCk7DQorICAgIFNF
VF9GVU5DX1dSQVBQRUQoR2V0Q2xpcGJvYXJkRm9ybWF0TmFtZSk7DQorDQorICAgIC8vIFtEWU5B
TUlDXSBzZXQgYWxsIGR5bmFtaWNhbGx5IGxvYWRlZCBpdGVtcw0KKyAgICBpZiAoR2V0UHJvY0Fk
ZHJlc3MoR2V0TW9kdWxlSGFuZGxlKCJrZXJuZWwzMi5kbGwiKSwgIkdldERpc2tGcmVlU3BhY2VF
eEEiKSkNCisgICAgICAgIFNFVF9GVU5DX1dSQVBQRUQoR2V0RGlza0ZyZWVTcGFjZUV4KTsNCisN
CisjdW5kZWYgU0VUX0ZVTkNfV1JBUFBFRA0KKw0KKyAgICAvLyB3ZSBhcmUgbm93IHJ1bm5pbmcg
d2l0aCB3cmFwcGVkIGZ1bmN0aW9uIGNhbGxzDQorICAgIHJldHVybiBUUlVFOw0KK30NCisNCitz
dGF0aWMgQk9PTA0KK1NldFBsYXRmb3JtVHlwZSgpDQorew0KKyAgICBPU1ZFUlNJT05JTkZPQSBv
c3ZpOw0KKyAgICBaZXJvTWVtb3J5KCZvc3ZpLCBzaXplb2Yob3N2aSkpOw0KKyAgICBvc3ZpLmR3
T1NWZXJzaW9uSW5mb1NpemUgPSBzaXplb2Yob3N2aSk7DQorICAgIGlmICghR2V0VmVyc2lvbkV4
QSgmb3N2aSkpDQorICAgICAgICByZXR1cm4gRkFMU0U7DQorDQorICAgIHN3aXRjaCAob3N2aS5k
d01ham9yVmVyc2lvbikNCisgICAgew0KKyAgICBjYXNlIDM6DQorICAgICAgICBnX25QbGF0Zm9y
bSA9IE1aX1BMQVRGT1JNX05UMzU7DQorICAgICAgICBicmVhazsNCisNCisgICAgY2FzZSA0Og0K
KyAgICAgICAgc3dpdGNoIChvc3ZpLmR3TWlub3JWZXJzaW9uKQ0KKyAgICAgICAgew0KKyAgICAg
ICAgY2FzZSAwOg0KKyAgICAgICAgICAgIGlmIChvc3ZpLmR3UGxhdGZvcm1JZCA9PSBWRVJfUExB
VEZPUk1fV0lOMzJfTlQpDQorICAgICAgICAgICAgICAgIGdfblBsYXRmb3JtID0gTVpfUExBVEZP
Uk1fTlQ0Ow0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAg
ICAgIGlmIChvc3ZpLnN6Q1NEVmVyc2lvblswXSA9PSAnQycpDQorICAgICAgICAgICAgICAgICAg
ICBnX25QbGF0Zm9ybSA9IE1aX1BMQVRGT1JNXzk1X09TUjI7DQorICAgICAgICAgICAgICAgIGVs
c2UNCisgICAgICAgICAgICAgICAgICAgIGdfblBsYXRmb3JtID0gTVpfUExBVEZPUk1fOTU7DQor
ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGJyZWFrOw0KKw0KKyAgICAgICAgY2FzZSAxMDoN
CisgICAgICAgICAgICBpZiAob3N2aS5zekNTRFZlcnNpb25bMF0gPT0gJ0EnKQ0KKyAgICAgICAg
ICAgICAgICBnX25QbGF0Zm9ybSA9IE1aX1BMQVRGT1JNXzk4X1NFOw0KKyAgICAgICAgICAgIGVs
c2UNCisgICAgICAgICAgICAgICAgZ19uUGxhdGZvcm0gPSBNWl9QTEFURk9STV85ODsNCisgICAg
ICAgICAgICBicmVhazsNCisNCisgICAgICAgIGNhc2UgOTA6DQorICAgICAgICAgICAgZ19uUGxh
dGZvcm0gPSBNWl9QTEFURk9STV9NRTsNCisgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKw0K
KyAgICBjYXNlIDU6DQorICAgICAgICBzd2l0Y2ggKG9zdmkuZHdNaW5vclZlcnNpb24pDQorICAg
ICAgICB7DQorICAgICAgICBjYXNlIDA6DQorICAgICAgICAgICAgZ19uUGxhdGZvcm0gPSBNWl9Q
TEFURk9STV8ySzsNCisgICAgICAgICAgICBicmVhazsNCisNCisgICAgICAgIGNhc2UgMToNCisg
ICAgICAgICAgICBnX25QbGF0Zm9ybSA9IE1aX1BMQVRGT1JNX1hQOw0KKyAgICAgICAgICAgIGJy
ZWFrOw0KKw0KKyAgICAgICAgY2FzZSAyOg0KKyAgICAgICAgICAgIGdfblBsYXRmb3JtID0gTVpf
UExBVEZPUk1fMkszOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgfQ0KKyAgICB9DQor
DQorICAgIHJldHVybiBUUlVFOyANCit9DQorDQorZXh0ZXJuIEJPT0wgDQorTXpJbml0TGlicmFy
eSgpDQorew0KKyAgICAvLyBpZiB0aGUgbGlicmFyeSBpcyBhbHJlYWR5IGluaXRpYWxpemVkIHRo
ZW4gd2UgYXJlIGRvbmUNCisgICAgaWYgKGdfblBsYXRmb3JtICE9IE1aX05PVF9JTklUSUFMSVpF
RCkNCisgICAgICAgIHJldHVybiBUUlVFOw0KKw0KKyAgICAvLyBlcnJvciBpZiB3ZSBjYW4ndCBk
ZXRlcm1pbmUgdGhlIE9TDQorICAgIGlmICghU2V0UGxhdGZvcm1UeXBlKCkpDQorICAgICAgICBy
ZXR1cm4gRkFMU0U7DQorDQorICAgIC8vIGlmIG5hdGl2ZSBVbmljb2RlIHBsYXRmb3JtIHRoZW4g
c2V0IGFsbCBvZiB0aGUgZnVuY3Rpb25zIHRvIFVuaWNvZGUNCisgICAgaWYgKGdfblBsYXRmb3Jt
ID4gMCkNCisgICAgICAgIHJldHVybiBTZXRVbmljb2RlKCk7DQorDQorICAgIC8vIGlmIHRoaXMg
Y2FsbCBmYWlscyB0aGVuIHRoZSBmdW5jdGlvbnMgYXJlIGluIGFuDQorICAgIC8vIHVua25vd24g
c3RhdGUgKHNvbWUgbWF5IGJlIHNldCwgb3RoZXJzIG1heSBub3QgYmUpLg0KKyAgICByZXR1cm4g
U2V0V3JhcHBlZCgpOw0KK30NCkluZGV4OiBtemx1L216bHUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBtemx1L216bHUuaApkaWZmIC1OIG16bHUvbXpsdS5oCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3
MCAwMDowMDowMCAtMDAwMAorKysgbXpsdS9temx1LmgJMzAgSnVuIDIwMDQgMTU6Mjk6MzYgLTAw
MDAKQEAgLTAsMCArMSwxMTcgQEAKKy8qICoqKioqIEJFR0lOIExJQ0VOU0UgQkxPQ0sgKioqKioN
CisgKiBWZXJzaW9uOiBNUEwgMS4xL0dQTCAyLjAvTEdQTCAyLjENCisgKg0KKyAqIFRoZSBjb250
ZW50cyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIE1vemlsbGEgUHVibGljIExpY2Vu
c2UgVmVyc2lvbg0KKyAqIDEuMSAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aA0KKyAqIHRoZSBMaWNlbnNlLiBZb3UgbWF5
IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiBodHRwOi8vd3d3Lm1vemlsbGEu
b3JnL01QTC8NCisgKg0KKyAqIFNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsDQorICogV0lUSE9VVCBXQVJSQU5U
WSBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNl
DQorICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcmlnaHRzIGFuZCBsaW1p
dGF0aW9ucyB1bmRlciB0aGUNCisgKiBMaWNlbnNlLg0KKyAqDQorICogVGhlIE9yaWdpbmFsIENv
ZGUgaXMgdmVyeSBwcmV0dHkuDQorICoNCisgKiBUaGUgSW5pdGlhbCBEZXZlbG9wZXIgb2YgdGhl
IE9yaWdpbmFsIENvZGUgaXMNCisgKiBCcm9kaWUgVGhpZXNmaWVsZC4NCisgKiBQb3J0aW9ucyBj
cmVhdGVkIGJ5IHRoZSBJbml0aWFsIERldmVsb3BlciBhcmUgQ29weXJpZ2h0IChDKSAyMDA0DQor
ICogdGhlIEluaXRpYWwgRGV2ZWxvcGVyLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KKyAqDQorICog
Q29udHJpYnV0b3Iocyk6DQorICoNCisgKiBBbHRlcm5hdGl2ZWx5LCB0aGUgY29udGVudHMgb2Yg
dGhpcyBmaWxlIG1heSBiZSB1c2VkIHVuZGVyIHRoZSB0ZXJtcyBvZg0KKyAqIGVpdGhlciB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyIG9yIGxhdGVyICh0aGUgIkdQTCIp
LCBvcg0KKyAqIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAy
LjEgb3IgbGF0ZXIgKHRoZSAiTEdQTCIpLA0KKyAqIGluIHdoaWNoIGNhc2UgdGhlIHByb3Zpc2lv
bnMgb2YgdGhlIEdQTCBvciB0aGUgTEdQTCBhcmUgYXBwbGljYWJsZSBpbnN0ZWFkDQorICogb2Yg
dGhvc2UgYWJvdmUuIElmIHlvdSB3aXNoIHRvIGFsbG93IHVzZSBvZiB5b3VyIHZlcnNpb24gb2Yg
dGhpcyBmaWxlIG9ubHkNCisgKiB1bmRlciB0aGUgdGVybXMgb2YgZWl0aGVyIHRoZSBHUEwgb3Ig
dGhlIExHUEwsIGFuZCBub3QgdG8gYWxsb3cgb3RoZXJzIHRvDQorICogdXNlIHlvdXIgdmVyc2lv
biBvZiB0aGlzIGZpbGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNUEwsIGluZGljYXRlIHlvdXIN
CisgKiBkZWNpc2lvbiBieSBkZWxldGluZyB0aGUgcHJvdmlzaW9ucyBhYm92ZSBhbmQgcmVwbGFj
ZSB0aGVtIHdpdGggdGhlIG5vdGljZQ0KKyAqIGFuZCBvdGhlciBwcm92aXNpb25zIHJlcXVpcmVk
IGJ5IHRoZSBHUEwgb3IgdGhlIExHUEwuIElmIHlvdSBkbyBub3QgZGVsZXRlDQorICogdGhlIHBy
b3Zpc2lvbnMgYWJvdmUsIGEgcmVjaXBpZW50IG1heSB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMg
ZmlsZSB1bmRlcg0KKyAqIHRoZSB0ZXJtcyBvZiBhbnkgb25lIG9mIHRoZSBNUEwsIHRoZSBHUEwg
b3IgdGhlIExHUEwuDQorICoNCisgKiAqKioqKiBFTkQgTElDRU5TRSBCTE9DSyAqKioqKiAqLw0K
Kw0KKyNpZm5kZWYgSU5DTFVERURfTVpMVQ0KKyNkZWZpbmUgSU5DTFVERURfTVpMVQ0KKyNwcmFn
bWEgb25jZQ0KKw0KKy8vIGZ1bmN0aW9uIHBvaW50ZXIgZGVmaW5pdGlvbnMgb2YgV0lOMzIgYW5k
IENSVCBBUEkNCisjaW5jbHVkZSAibXpsdV9mcC5oIg0KKw0KKyNpZmRlZiBfX2NwbHVzcGx1cw0K
K2V4dGVybiAiQyIgew0KKyNlbmRpZg0KKw0KKy8vIEluaXRpYWxpemUgdGhlIGxpYnJhcnkgZm9y
IHVzZS4gVGhpcyBzaG91bGQgYmUgZG9uZSBiZWZvcmUgYW55IG90aGVyIA0KKy8vIE1aTFUgZnVu
Y3Rpb25zIGFyZSBjYWxsZWQuDQorZXh0ZXJuIEJPT0wgTXpJbml0TGlicmFyeSgpOw0KK2V4dGVy
biBCT09MIE16SXNOYXRpdmVVbmljb2RlKCk7DQorZXh0ZXJuIGludCAgTXpHZXRQbGF0Zm9ybSgp
Ow0KKw0KK2VudW0gTXpQbGF0Zm9ybVR5cGUgDQoreyANCisgICAgTVpfTk9UX0lOSVRJQUxJWkVE
ICA9IDAsIA0KKw0KKyAgICAvLyBNeklzTmF0aXZlVW5pY29kZSgpID09IEZBTFNFDQorICAgIE1a
X1BMQVRGT1JNXzk1ICAgICAgPSAtMSwgDQorICAgIE1aX1BMQVRGT1JNXzk1X09TUjIgPSAtMiwg
DQorICAgIE1aX1BMQVRGT1JNXzk4ICAgICAgPSAtMywgDQorICAgIE1aX1BMQVRGT1JNXzk4X1NF
ICAgPSAtNCwgDQorICAgIE1aX1BMQVRGT1JNX01FICAgICAgPSAtNSwgDQorDQorICAgIC8vIE16
SXNOYXRpdmVVbmljb2RlKCkgPT0gVFJVRQ0KKyAgICBNWl9QTEFURk9STV9OVDM1ICAgID0gMSwN
CisgICAgTVpfUExBVEZPUk1fTlQ0ICAgICA9IDIsIA0KKyAgICBNWl9QTEFURk9STV8ySyAgICAg
ID0gMywNCisgICAgTVpfUExBVEZPUk1fWFAgICAgICA9IDQsDQorICAgIE1aX1BMQVRGT1JNXzJL
MyAgICAgPSA1DQorfTsNCisNCisvLyBhZGQgbmV3IGZ1bmN0aW9uIGRlZmluaXRpb25zIGluIGFs
cGhhYmV0aWMgb3JkZXINCisNCisvLyBXSU4zMiBBUEkNCitleHRlcm4gZnBDb3B5RmlsZVcgICAg
ICAgICAgICAgICAgICBDb3B5RmlsZU16Ow0KK2V4dGVybiBmcENyZWF0ZURpcmVjdG9yeVcgICAg
ICAgICAgIENyZWF0ZURpcmVjdG9yeU16Ow0KK2V4dGVybiBmcENyZWF0ZUZpbGVXICAgICAgICAg
ICAgICAgIENyZWF0ZUZpbGVNejsNCitleHRlcm4gZnBEZWxldGVGaWxlVyAgICAgICAgICAgICAg
ICBEZWxldGVGaWxlTXo7DQorZXh0ZXJuIGZwR2V0RGlza0ZyZWVTcGFjZVcgICAgICAgICAgR2V0
RGlza0ZyZWVTcGFjZU16Ow0KK2V4dGVybiBmcEdldERpc2tGcmVlU3BhY2VFeFcgICAgICAgIEdl
dERpc2tGcmVlU3BhY2VFeE16OyAgLy8gRFlOQU1JQyEgW1dpbjk1IE9TUjIsIFdpbk5UNF0NCitl
eHRlcm4gZnBHZXRGaWxlQXR0cmlidXRlc1cgICAgICAgICBHZXRGaWxlQXR0cmlidXRlc016Ow0K
K2V4dGVybiBmcEdldFRlbXBQYXRoVyAgICAgICAgICAgICAgIEdldFRlbXBQYXRoTXo7DQorZXh0
ZXJuIGZwR2V0TG9naWNhbERyaXZlU3RyaW5nc1cgICAgR2V0TG9naWNhbERyaXZlU3RyaW5nc016
Ow0KK2V4dGVybiBmcE1vdmVGaWxlVyAgICAgICAgICAgICAgICAgIE1vdmVGaWxlTXo7DQorZXh0
ZXJuIGZwUmVtb3ZlRGlyZWN0b3J5VyAgICAgICAgICAgUmVtb3ZlRGlyZWN0b3J5TXo7DQorZXh0
ZXJuIGZwU2hlbGxFeGVjdXRlVyAgICAgICAgICAgICAgU2hlbGxFeGVjdXRlTXo7DQorZXh0ZXJu
IGZwQ2hhclVwcGVyVyAgICAgICAgICAgICAgICAgQ2hhclVwcGVyTXo7DQorZXh0ZXJuIGZwQ2hh
clVwcGVyQnVmZlcgICAgICAgICAgICAgQ2hhclVwcGVyQnVmZk16Ow0KK2V4dGVybiBmcERvY3Vt
ZW50UHJvcGVydGllc1cgICAgICAgIERvY3VtZW50UHJvcGVydGllc016Ow0KK2V4dGVybiBmcERl
ZldpbmRvd1Byb2NXICAgICAgICAgICAgIERlZldpbmRvd1Byb2NNejsNCitleHRlcm4gZnBDYWxs
V2luZG93UHJvY1cgICAgICAgICAgICBDYWxsV2luZG93UHJvY016Ow0KK2V4dGVybiBmcFNldFdp
bmRvd0xvbmdQdHJXICAgICAgICAgIFNldFdpbmRvd0xvbmdQdHJNejsNCitleHRlcm4gZnBHZXRX
aW5kb3dMb25nUHRyVyAgICAgICAgICBHZXRXaW5kb3dMb25nUHRyTXo7DQorZXh0ZXJuIGZwU2Vu
ZE1lc3NhZ2VXICAgICAgICAgICAgICAgU2VuZE1lc3NhZ2VNejsNCitleHRlcm4gZnBEaXNwYXRj
aE1lc3NhZ2VXICAgICAgICAgICBEaXNwYXRjaE1lc3NhZ2VNejsNCitleHRlcm4gZnBHZXRNZXNz
YWdlVyAgICAgICAgICAgICAgICBHZXRNZXNzYWdlTXo7DQorZXh0ZXJuIGZwUGVla01lc3NhZ2VX
ICAgICAgICAgICAgICAgUGVla01lc3NhZ2VNejsNCitleHRlcm4gZnBHZXRPcGVuRmlsZU5hbWVX
ICAgICAgICAgICBHZXRPcGVuRmlsZU5hbWVNejsNCitleHRlcm4gZnBHZXRTYXZlRmlsZU5hbWVX
ICAgICAgICAgICBHZXRTYXZlRmlsZU5hbWVNejsNCitleHRlcm4gZnBHZXRDbGFzc05hbWVXICAg
ICAgICAgICAgICBHZXRDbGFzc05hbWVNejsNCitleHRlcm4gZnBDcmVhdGVXaW5kb3dFeFcgICAg
ICAgICAgICBDcmVhdGVXaW5kb3dFeE16Ow0KK2V4dGVybiBmcFJlZ2lzdGVyQ2xhc3NXICAgICAg
ICAgICAgIFJlZ2lzdGVyQ2xhc3NNejsNCitleHRlcm4gZnBVbnJlZ2lzdGVyQ2xhc3NXICAgICAg
ICAgICBVbnJlZ2lzdGVyQ2xhc3NNejsNCitleHRlcm4gZnBTSEdldFBhdGhGcm9tSURMaXN0VyAg
ICAgICBTSEdldFBhdGhGcm9tSURMaXN0TXo7DQorZXh0ZXJuIGZwU0hCcm93c2VGb3JGb2xkZXJX
ICAgICAgICAgU0hCcm93c2VGb3JGb2xkZXJNejsNCitleHRlcm4gZnBSZWdpc3RlckNsaXBib2Fy
ZEZvcm1hdFcgICBSZWdpc3RlckNsaXBib2FyZEZvcm1hdE16Ow0KK2V4dGVybiBmcEdldENsaXBi
b2FyZEZvcm1hdE5hbWVXICAgIEdldENsaXBib2FyZEZvcm1hdE5hbWVNejsNCisNCisvLyBDUlQN
CitleHRlcm4gZnBfd2dldGRjd2RXICAgICAgICAgICAgICAgICBfd2dldGRjd2RNejsNCisNCisj
aWZkZWYgX19jcGx1c3BsdXMNCit9DQorI2VuZGlmDQorDQorI2VuZGlmIC8vIElOQ0xVREVEX01a
TFUNCkluZGV4OiBtemx1L216bHUuc2xuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IG16bHUvbXpsdS5z
bG4KZGlmZiAtTiBtemx1L216bHUuc2xuCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDow
MCAtMDAwMAorKysgbXpsdS9temx1LnNsbgkzMCBKdW4gMjAwNCAxNToyOTozNiAtMDAwMApAQCAt
MCwwICsxLDM0IEBACitNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3Jt
YXQgVmVyc2lvbiA3LjAwDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBD
OTFCQzk0Mn0iKSA9ICJtemx1IiwgIm16bHUudmNwcm9qIiwgInswRjJFNDU4Mi0xNDhBLTQwREYt
QkI3MC0yNkJGQjQ3QjFBQTV9Ig0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIm16bHVhIiwgIm16bHVhXG16bHVhLnZjcHJv
aiIsICJ7NDA4M0ZDNTAtNUEzMi00MDZDLUE0QTctQTYwQTU5MkJDQkUxfSINCitFbmRQcm9qZWN0
DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ0
ZXN0IiwgInRlc3RcdGVzdC52Y3Byb2oiLCAiezI2QzZFRTU4LTY2ODgtNDcwNi05QjlELTAzMzI0
NzU3Njc0Rn0iDQorRW5kUHJvamVjdA0KK0dsb2JhbA0KKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9u
Q29uZmlndXJhdGlvbikgPSBwcmVTb2x1dGlvbg0KKwkJQ29uZmlnTmFtZS4wID0gRGVidWcNCisJ
CUNvbmZpZ05hbWUuMSA9IFJlbGVhc2UNCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0
aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFNvbHV0aW9uDQorCQl7MjZDNkVFNTgtNjY4
OC00NzA2LTlCOUQtMDMzMjQ3NTc2NzRGfS4wID0gezBGMkU0NTgyLTE0OEEtNDBERi1CQjcwLTI2
QkZCNDdCMUFBNX0NCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKFByb2plY3RD
b25maWd1cmF0aW9uKSA9IHBvc3RTb2x1dGlvbg0KKwkJezBGMkU0NTgyLTE0OEEtNDBERi1CQjcw
LTI2QkZCNDdCMUFBNX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXswRjJFNDU4
Mi0xNDhBLTQwREYtQkI3MC0yNkJGQjQ3QjFBQTV9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4z
Mg0KKwkJezBGMkU0NTgyLTE0OEEtNDBERi1CQjcwLTI2QkZCNDdCMUFBNX0uUmVsZWFzZS5BY3Rp
dmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7MEYyRTQ1ODItMTQ4QS00MERGLUJCNzAtMjZCRkI0
N0IxQUE1fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7NDA4M0ZDNTAtNUEz
Mi00MDZDLUE0QTctQTYwQTU5MkJDQkUxfS5EZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0K
KwkJezQwODNGQzUwLTVBMzItNDA2Qy1BNEE3LUE2MEE1OTJCQ0JFMX0uRGVidWcuQnVpbGQuMCA9
IERlYnVnfFdpbjMyDQorCQl7NDA4M0ZDNTAtNUEzMi00MDZDLUE0QTctQTYwQTU5MkJDQkUxfS5S
ZWxlYXNlLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXs0MDgzRkM1MC01QTMyLTQwNkMt
QTRBNy1BNjBBNTkyQkNCRTF9LlJlbGVhc2UuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXsy
NkM2RUU1OC02Njg4LTQ3MDYtOUI5RC0wMzMyNDc1NzY3NEZ9LkRlYnVnLkFjdGl2ZUNmZyA9IERl
YnVnfFdpbjMyDQorCQl7MjZDNkVFNTgtNjY4OC00NzA2LTlCOUQtMDMzMjQ3NTc2NzRGfS5EZWJ1
Zy5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXsyNkM2RUU1OC02Njg4LTQ3MDYtOUI5RC0wMzMy
NDc1NzY3NEZ9LlJlbGVhc2UuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezI2QzZFRTU4
LTY2ODgtNDcwNi05QjlELTAzMzI0NzU3Njc0Rn0uUmVsZWFzZS5CdWlsZC4wID0gUmVsZWFzZXxX
aW4zMg0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oRXh0ZW5zaWJpbGl0eUds
b2JhbHMpID0gcG9zdFNvbHV0aW9uDQorCUVuZEdsb2JhbFNlY3Rpb24NCisJR2xvYmFsU2VjdGlv
bihFeHRlbnNpYmlsaXR5QWRkSW5zKSA9IHBvc3RTb2x1dGlvbg0KKwlFbmRHbG9iYWxTZWN0aW9u
DQorRW5kR2xvYmFsDQpJbmRleDogbXpsdS9temx1LnZjcHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBtemx1L216bHUudmNwcm9qCmRpZmYgLU4gbXpsdS9temx1LnZjcHJvagotLS0gL2Rldi9udWxs
CTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIG16bHUvbXpsdS52Y3Byb2oJMzAgSnVuIDIw
MDQgMTU6Mjk6MzYgLTAwMDAKQEAgLTAsMCArMSwxMDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2RpbmcgPSAic2hpZnRfamlzIj8+DQorPFZpc3VhbFN0dWRpb1Byb2plY3QNCisJUHJvamVj
dFR5cGU9IlZpc3VhbCBDKysiDQorCVZlcnNpb249IjcuMDAiDQorCU5hbWU9Im16bHUiDQorCVBy
b2plY3RHVUlEPSJ7MEYyRTQ1ODItMTQ4QS00MERGLUJCNzAtMjZCRkI0N0IxQUE1fSINCisJS2V5
d29yZD0iV2luMzJQcm9qIj4NCisJPFBsYXRmb3Jtcz4NCisJCTxQbGF0Zm9ybQ0KKwkJCU5hbWU9
IldpbjMyIi8+DQorCTwvUGxhdGZvcm1zPg0KKwk8Q29uZmlndXJhdGlvbnM+DQorCQk8Q29uZmln
dXJhdGlvbg0KKwkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCU91dHB1dERpcmVjdG9yeT0iRGVi
dWciDQorCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJEZWJ1ZyINCisJCQlDb25maWd1cmF0aW9u
VHlwZT0iNCINCisJCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCU9wdGltaXphdGlvbj0iMCINCisJCQkJUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM9IldJTjMyO19ERUJVRztfTElCIg0KKwkJCQlNaW5pbWFsUmVidWlsZD0iVFJV
RSINCisJCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIzIg0KKwkJCQlSdW50aW1lTGlicmFyeT0iNSIN
CisJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiDQorCQkJCVdhcm5pbmdMZXZlbD0iMyINCisJ
CQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIg0KKwkJCQlEZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PSI0Ii8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRv
b2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0xpYnJhcmlhblRvb2wiDQorCQkJCU91dHB1
dEZpbGU9IiQoT3V0RGlyKS9temx1LmxpYiIvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDTUlE
TFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0K
KwkJCTxUb29sDQorCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCisJCQk8VG9vbA0K
KwkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJW
Q1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNXZWJTZXJ2
aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQorCQk8L0NvbmZpZ3VyYXRpb24+DQorCQk8Q29uZmln
dXJhdGlvbg0KKwkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJT3V0cHV0RGlyZWN0b3J5PSJS
ZWxlYXNlIg0KKwkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iUmVsZWFzZSINCisJCQlDb25maWd1
cmF0aW9uVHlwZT0iNCINCisJCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KKwkJCTxUb29sDQorCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCU9wdGltaXphdGlvbj0iMiINCisJCQkJSW5saW5l
RnVuY3Rpb25FeHBhbnNpb249IjEiDQorCQkJCU9taXRGcmFtZVBvaW50ZXJzPSJUUlVFIg0KKwkJ
CQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7TkRFQlVHO19MSUIiDQorCQkJCVN0cmlu
Z1Bvb2xpbmc9IlRSVUUiDQorCQkJCVJ1bnRpbWVMaWJyYXJ5PSI0Ig0KKwkJCQlFbmFibGVGdW5j
dGlvbkxldmVsTGlua2luZz0iVFJVRSINCisJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiDQor
CQkJCVdhcm5pbmdMZXZlbD0iMyINCisJCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1z
PSJUUlVFIg0KKwkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIi8+DQorCQkJPFRvb2wNCisJ
CQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0xp
YnJhcmlhblRvb2wiDQorCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKS9temx1LmxpYiIvPg0KKwkJ
CTxUb29sDQorCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJW
Q1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDUHJlQnVpbGRF
dmVudFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4N
CisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQorCQkJPFRv
b2wNCisJCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQorCQk8L0Nv
bmZpZ3VyYXRpb24+DQorCTwvQ29uZmlndXJhdGlvbnM+DQorCTxGaWxlcz4NCisJCTxGaWx0ZXIN
CisJCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQorCQkJRmlsdGVyPSJjcHA7YztjeHg7ZGVmO29kbDtp
ZGw7aHBqO2JhdDthc20iPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0ibXpsdS5jIj4N
CisJCQk8L0ZpbGU+DQorCQk8L0ZpbHRlcj4NCisJCTxGaWx0ZXINCisJCQlOYW1lPSJIZWFkZXIg
RmlsZXMiDQorCQkJRmlsdGVyPSJoO2hwcDtoeHg7aG07aW5sO2luYyI+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSJtemx1LmgiPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Im16bHVfZnAuaCI+DQorCQkJPC9GaWxlPg0KKwkJPC9GaWx0ZXI+DQorCTwv
RmlsZXM+DQorCTxHbG9iYWxzPg0KKwk8L0dsb2JhbHM+DQorPC9WaXN1YWxTdHVkaW9Qcm9qZWN0
Pg0KSW5kZXg6IG16bHUvbXpsdV9mcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IG16bHUvbXpsdV9m
cC5oCmRpZmYgLU4gbXpsdS9temx1X2ZwLmgKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAw
OjAwIC0wMDAwCisrKyBtemx1L216bHVfZnAuaAkzMCBKdW4gMjAwNCAxNToyOTozNiAtMDAwMApA
QCAtMCwwICsxLDM0NSBAQAorLyogKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKg0KKyAq
IFZlcnNpb246IE1QTCAxLjEvR1BMIDIuMC9MR1BMIDIuMQ0KKyAqDQorICogVGhlIGNvbnRlbnRz
IG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSBW
ZXJzaW9uDQorICogMS4xICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoDQorICogdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIGh0dHA6Ly93d3cubW96aWxsYS5vcmcv
TVBMLw0KKyAqDQorICogU29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBiYXNpcywNCisgKiBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UNCisg
KiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyByaWdodHMgYW5kIGxpbWl0YXRp
b25zIHVuZGVyIHRoZQ0KKyAqIExpY2Vuc2UuDQorICoNCisgKiBUaGUgT3JpZ2luYWwgQ29kZSBp
cyB2ZXJ5IHByZXR0eS4NCisgKg0KKyAqIFRoZSBJbml0aWFsIERldmVsb3BlciBvZiB0aGUgT3Jp
Z2luYWwgQ29kZSBpcw0KKyAqIEJyb2RpZSBUaGllc2ZpZWxkLg0KKyAqIFBvcnRpb25zIGNyZWF0
ZWQgYnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDIwMDQNCisgKiB0
aGUgSW5pdGlhbCBEZXZlbG9wZXIuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQorICoNCisgKiBDb250
cmlidXRvcihzKToNCisgKg0KKyAqIEFsdGVybmF0aXZlbHksIHRoZSBjb250ZW50cyBvZiB0aGlz
IGZpbGUgbWF5IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1zIG9mDQorICogZWl0aGVyIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIgb3IgbGF0ZXIgKHRoZSAiR1BMIiksIG9y
DQorICogdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMSBv
ciBsYXRlciAodGhlICJMR1BMIiksDQorICogaW4gd2hpY2ggY2FzZSB0aGUgcHJvdmlzaW9ucyBv
ZiB0aGUgR1BMIG9yIHRoZSBMR1BMIGFyZSBhcHBsaWNhYmxlIGluc3RlYWQNCisgKiBvZiB0aG9z
ZSBhYm92ZS4gSWYgeW91IHdpc2ggdG8gYWxsb3cgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlz
IGZpbGUgb25seQ0KKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiBlaXRoZXIgdGhlIEdQTCBvciB0aGUg
TEdQTCwgYW5kIG5vdCB0byBhbGxvdyBvdGhlcnMgdG8NCisgKiB1c2UgeW91ciB2ZXJzaW9uIG9m
IHRoaXMgZmlsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1QTCwgaW5kaWNhdGUgeW91cg0KKyAq
IGRlY2lzaW9uIGJ5IGRlbGV0aW5nIHRoZSBwcm92aXNpb25zIGFib3ZlIGFuZCByZXBsYWNlIHRo
ZW0gd2l0aCB0aGUgbm90aWNlDQorICogYW5kIG90aGVyIHByb3Zpc2lvbnMgcmVxdWlyZWQgYnkg
dGhlIEdQTCBvciB0aGUgTEdQTC4gSWYgeW91IGRvIG5vdCBkZWxldGUNCisgKiB0aGUgcHJvdmlz
aW9ucyBhYm92ZSwgYSByZWNpcGllbnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxl
IHVuZGVyDQorICogdGhlIHRlcm1zIG9mIGFueSBvbmUgb2YgdGhlIE1QTCwgdGhlIEdQTCBvciB0
aGUgTEdQTC4NCisgKg0KKyAqICoqKioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqICovDQorDQor
I2lmbmRlZiBJTkNMVURFRF9NWkxVX0ZQDQorI2RlZmluZSBJTkNMVURFRF9NWkxVX0ZQDQorI3By
YWdtYSBvbmNlDQorDQorLy8gaW5jbHVkZSByZXF1aXJlbWVudHM6DQorLy8gIDx3aW5kb3dzLmg+
DQorLy8gIDxzaGxvYmouaD4NCisNCisvLyBTdGVwcyB0byBhZGQgYSBuZXcgU1RBVElDQUxMWSBs
aW5rZWQgQVBJIGZ1bmN0aW9uIHRvIHRoaXMgbGlicmFyeToNCisvLyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisvLyBB
IHN0YXRpYyBsaW5rZWQgZnVuY3Rpb24gaXMgYW55IGZ1bmN0aW9uIHdoaWNoIGlzIGd1YXJhbnRl
ZWQgdG8gYmUgDQorLy8gYXZhaWxhYmxlIG9uIGV2ZXJ5IHBsYXRmb3JtIGZyb20gV2luZG93cyA5
NSBhbmQgV2luZG93cyBOVCA0LjANCisvLw0KKy8vIG16bHVfZnAuaA0KKy8vIC0tLS0tLS0tLQ0K
Ky8vICAqIEZpbmQgdGhlIGRlZmluaXRpb24gb2YgdGhlIFdJTjMyIHdpZGUtY2hhciBmdW5jdGlv
biwgZS5nLiBHZXRUZW1wUGF0aFcNCisvLyAgKiBDb3B5IGl0IGFuZCBwYXN0ZSBpdCBpbnRvIHRo
ZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGhlcmUNCisvLyAgKiBUdXJuIGl0IGludG8gYSBmdW5jdGlv
biBwb2ludGVyIGRlZmluaXRpb24gYnkgYWRkaW5nICd0eXBlZGVmJyBhbmQgcHJlZml4aW5nDQor
Ly8gICAgdGhlIG5hbWUgd2l0aCAnKmZwJy4gRm9sbG93IHRoZSBleGlzdGluZyBlbnRyaWVzLiAN
CisvLw0KKy8vIG16bHUuaA0KKy8vIC0tLS0tLQ0KKy8vICAqIEFkZCBhbiBleHRlcm4gdmFyaWFi
bGUgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5jdGlvbiBpbiBhbHBoYWJldGljIG9yZGVyLiANCisv
LyAgICAoVGhpcyBpcyB0aGUgb25seSBwbGFjZSB0aGF0IGFscGhhYmV0aWMgb3JkZXIgaXMgdXNl
ZCwgYWxsIG90aGVyIGxvY2F0aW9ucw0KKy8vICAgIHNob3VsZCBqdXN0IGJlIGFwcGVuZGVkKS4g
Rm9sbG93IHRoZSBzYW1lIG5hbWluZyBzY2hlbWUgYXMgdGhlIGV4aXN0aW5nIA0KKy8vICAgIGRl
Y2xhcmF0aW9ucy4gDQorLy8NCisvLyBtemx1LmMNCisvLyAtLS0tLS0NCisvLyAgKiBBZGQgYW4g
REVDTEFSRV9GVU5DX1BUUiBlbnRyeSB0byB0aGUgZnVuY3Rpb24gcG9pbnRlciBkZWZpbml0aW9u
cw0KKy8vICAqIEFkZCBhIFNFVF9GVU5DX1VOSUNPREUgZW50cnkgdG8gU2V0VW5pY29kZQ0KKy8v
ICAqIEFkZCBhIFNFVF9GVU5DX1dSQVBQRUQgZW50cnkgdG8gU2V0V3JhcHBlZA0KKy8vIA0KKy8v
IG16bHVhLmNwcA0KKy8vIC0tLS0tLS0tLQ0KKy8vICAqIEFkZCBhIFdyYXBwZWQgdmVyc2lvbiBv
ZiB0aGUgZnVuY3Rpb24gdG8gdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24uIA0KKy8vICAqIFRoZSBm
dW5jdGlvbiBuYW1lIG11c3QgZm9sbG93IHRoZSBzYW1lIG5hbWluZyBzY2hlbWUgYXMgdGhlIGV4
aXN0aW5nDQorLy8gICAgZnVuY3Rpb25zIHRvIGVuc3VyZSBubyBsb2FkIGVycm9ycy4NCisvLyAg
KiBFbnN1cmUgdGhhdCB0aGUgYmVoYXZpb3VyIG9mIHRoZSB3cmFwcGVkIGZ1bmN0aW9uIGNvbXBs
ZXRlbHkgZm9sbG93cyANCisvLyAgICB0aGUgQVBJIHNwZWNpZmljYXRpb24gZnJvbSBNU0ROLg0K
Ky8vDQorLy8gbXpsdWEuZGVmDQorLy8gLS0tLS0tLS0tDQorLy8gICogQXBwZW5kIGFuIGVudHJ5
IGZvciB0aGUgV3JhcHBlZCBmdW5jdGlvbiB0byB0aGUgZW5kIG9mIHRoZSBFWFBPUlRTIGxpc3Qu
DQorDQorDQorLy8gU3RlcHMgdG8gYWRkIGEgbmV3IERZTkFNSUNBTExZIGxpbmtlZCBBUEkgZnVu
Y3Rpb24gdG8gdGhpcyBsaWJyYXJ5Og0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisvLyBBIGR5bmFtaWMgZnVu
Y3Rpb24gaXMgYW55IGZ1bmN0aW9uIHRoYXQgZG9lc24ndCBtZWV0IHRoZSBzdGF0aWMgZnVuY3Rp
b24NCisvLyByZXF1aXJlbWVudCBhYm92ZS4gVGhlc2UgZnVuY3Rpb25zIGFyZSBkeW5hbWljYWxs
eSBsb2FkZWQgYXQgbGlicmFyeSANCisvLyBpbml0aWFsaXphdGlvbiB1c2luZyBMb2FkTGlicmFy
eSB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgYXZhaWxhYmxlIG9yIA0KKy8vIG5vdCBhbmQgd2ls
bCBiZSBOVUxMIHdoZW4gbm90IGF2YWlsYWJsZS4NCisvLw0KKy8vIG16bHVfZnAuaA0KKy8vIC0t
LS0tLS0tLQ0KKy8vICAqIHNhbWUgYXMgYWJvdmUNCisvLw0KKy8vIG16bHUuaA0KKy8vIC0tLS0t
LQ0KKy8vICAqIEFkZCBhbiBleHRlcm4gdmFyaWFibGUgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5j
dGlvbiBpbiBhbHBoYWJldGljIG9yZGVyLiANCisvLyAgICBGb2xsb3cgdGhlIHNhbWUgbmFtaW5n
IHNjaGVtZSBhcyB0aGUgZXhpc3RpbmcgZGVjbGFyYXRpb25zLiANCisvLyAgICBBZGQgYSBjb21t
ZW50IHRvIHRoZSBkZWNsYXJhdGlvbiBsaWtlOiANCisvLyAgICAgICAgICAvLyBEWU5BTUlDISBb
YXZhaWxhYmxlIHBsYXRmb3Jtc10NCisvLyAgICBTZWUgR2V0RGlza0ZyZWVTcGFjZUV4TXogZm9y
IGFuIGV4YW1wbGUuDQorLy8NCisvLyBtemx1LmMNCisvLyAtLS0tLS0NCisvLyAgKiBBZGQgYW4g
REVDTEFSRV9GVU5DX1BUUiBlbnRyeSB0byB0aGUgZnVuY3Rpb24gcG9pbnRlciBkZWZpbml0aW9u
cw0KKy8vICAqIEluIGVhY2ggb2YgU2V0VW5pY29kZSgpIGFuZCBTZXRXcmFwcGVkKCksIG9ubHkg
c2V0IHRoZSBmdW5jdGlvbiBwb2ludGVyDQorLy8gICAgaWYgdGhlIGFwcHJvcHJpYXRlIGZ1bmN0
aW9uIGlzIGF2YWlsYWJsZS4gU2VlIEdldERpc2tGcmVlU3BhY2VFeE16IGZvciBhbiBleGFtcGxl
Lg0KKy8vIA0KKy8vIG16bHVhLmNwcA0KKy8vIC0tLS0tLS0tLQ0KKy8vICAqIHNhbWUgYXMgYWJv
dmUNCisvLw0KKy8vIG16bHVhLmRlZg0KKy8vIC0tLS0tLS0tLQ0KKy8vICAqIHNhbWUgYXMgYWJv
dmUNCisNCisjaWZkZWYgX19jcGx1c3BsdXMNCitleHRlcm4gIkMiIHsNCisjZW5kaWYNCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQVBJDQorDQordHlwZWRlZiB3Y2hhcl90ICogKF9f
Y2RlY2wgKmZwX3dnZXRkY3dkVykoDQorICAgIGludCwgd2NoYXJfdCAqLCBpbnQpOw0KKw0KK3R5
cGVkZWYgSEFORExFIChXSU5BUEkgKmZwQ3JlYXRlRmlsZVcpKA0KKyAgICBJTiBMUENXU1RSIGxw
RmlsZU5hbWUsDQorICAgIElOIERXT1JEIGR3RGVzaXJlZEFjY2VzcywNCisgICAgSU4gRFdPUkQg
ZHdTaGFyZU1vZGUsDQorICAgIElOIExQU0VDVVJJVFlfQVRUUklCVVRFUyBscFNlY3VyaXR5QXR0
cmlidXRlcywNCisgICAgSU4gRFdPUkQgZHdDcmVhdGlvbkRpc3Bvc2l0aW9uLA0KKyAgICBJTiBE
V09SRCBkd0ZsYWdzQW5kQXR0cmlidXRlcywNCisgICAgSU4gSEFORExFIGhUZW1wbGF0ZUZpbGUN
CisgICAgKTsNCisNCit0eXBlZGVmIEJPT0wgKFdJTkFQSSAqZnBDcmVhdGVEaXJlY3RvcnlXKSgN
CisgICAgSU4gTFBDV1NUUiBscFBhdGhOYW1lLA0KKyAgICBJTiBMUFNFQ1VSSVRZX0FUVFJJQlVU
RVMgbHBTZWN1cml0eUF0dHJpYnV0ZXMNCisgICAgKTsNCisNCit0eXBlZGVmIEJPT0wgKFdJTkFQ
SSAqZnBDb3B5RmlsZVcpKA0KKyAgICBJTiBMUENXU1RSIGxwRXhpc3RpbmdGaWxlTmFtZSwNCisg
ICAgSU4gTFBDV1NUUiBscE5ld0ZpbGVOYW1lLA0KKyAgICBJTiBCT09MIGJGYWlsSWZFeGlzdHMN
CisgICAgKTsNCisNCit0eXBlZGVmIEJPT0wgKFdJTkFQSSAqZnBNb3ZlRmlsZVcpKA0KKyAgICBJ
TiBMUENXU1RSIGxwRXhpc3RpbmdGaWxlTmFtZSwNCisgICAgSU4gTFBDV1NUUiBscE5ld0ZpbGVO
YW1lDQorICAgICk7DQorDQordHlwZWRlZiBCT09MIChXSU5BUEkgKmZwRGVsZXRlRmlsZVcpKA0K
KyAgICBJTiBMUENXU1RSIGxwRmlsZU5hbWUNCisgICAgKTsNCisNCit0eXBlZGVmIEJPT0wgKFdJ
TkFQSSAqZnBSZW1vdmVEaXJlY3RvcnlXKSgNCisgICAgSU4gTFBDV1NUUiBscFBhdGhOYW1lDQor
ICAgICk7DQorDQordHlwZWRlZiBEV09SRCAoV0lOQVBJICpmcEdldEZpbGVBdHRyaWJ1dGVzVyko
DQorICAgIElOIExQQ1dTVFIgbHBGaWxlTmFtZQ0KKyAgICApOw0KKw0KK3R5cGVkZWYgQk9PTCAo
V0lOQVBJICpmcEdldERpc2tGcmVlU3BhY2VFeEEpKA0KKyAgICBJTiBMUENTVFIgbHBEaXJlY3Rv
cnlOYW1lLA0KKyAgICBPVVQgUFVMQVJHRV9JTlRFR0VSIGxwRnJlZUJ5dGVzQXZhaWxhYmxlVG9D
YWxsZXIsDQorICAgIE9VVCBQVUxBUkdFX0lOVEVHRVIgbHBUb3RhbE51bWJlck9mQnl0ZXMsDQor
ICAgIE9VVCBQVUxBUkdFX0lOVEVHRVIgbHBUb3RhbE51bWJlck9mRnJlZUJ5dGVzDQorICAgICk7
DQordHlwZWRlZiBCT09MIChXSU5BUEkgKmZwR2V0RGlza0ZyZWVTcGFjZUV4VykoDQorICAgIElO
IExQQ1dTVFIgbHBEaXJlY3RvcnlOYW1lLA0KKyAgICBPVVQgUFVMQVJHRV9JTlRFR0VSIGxwRnJl
ZUJ5dGVzQXZhaWxhYmxlVG9DYWxsZXIsDQorICAgIE9VVCBQVUxBUkdFX0lOVEVHRVIgbHBUb3Rh
bE51bWJlck9mQnl0ZXMsDQorICAgIE9VVCBQVUxBUkdFX0lOVEVHRVIgbHBUb3RhbE51bWJlck9m
RnJlZUJ5dGVzDQorICAgICk7DQorDQordHlwZWRlZiBCT09MIChXSU5BUEkgKmZwR2V0RGlza0Zy
ZWVTcGFjZVcpKA0KKyAgICBJTiBMUENXU1RSIGxwUm9vdFBhdGhOYW1lLA0KKyAgICBPVVQgTFBE
V09SRCBscFNlY3RvcnNQZXJDbHVzdGVyLA0KKyAgICBPVVQgTFBEV09SRCBscEJ5dGVzUGVyU2Vj
dG9yLA0KKyAgICBPVVQgTFBEV09SRCBscE51bWJlck9mRnJlZUNsdXN0ZXJzLA0KKyAgICBPVVQg
TFBEV09SRCBscFRvdGFsTnVtYmVyT2ZDbHVzdGVycw0KKyAgICApOw0KKw0KK3R5cGVkZWYgSElO
U1RBTkNFIChXSU5BUEkgKmZwU2hlbGxFeGVjdXRlVykoDQorICAgIEhXTkQgaHduZCwgDQorICAg
IExQQ1dTVFIgbHBPcGVyYXRpb24sIA0KKyAgICBMUENXU1RSIGxwRmlsZSwgDQorICAgIExQQ1dT
VFIgbHBQYXJhbWV0ZXJzLCANCisgICAgTFBDV1NUUiBscERpcmVjdG9yeSwgDQorICAgIElOVCBu
U2hvd0NtZA0KKyAgICApOw0KKw0KK3R5cGVkZWYgRFdPUkQgKFdJTkFQSSAqZnBHZXRMb2dpY2Fs
RHJpdmVTdHJpbmdzVykoDQorICAgIElOIERXT1JEIG5CdWZmZXJMZW5ndGgsDQorICAgIE9VVCBM
UFdTVFIgbHBCdWZmZXINCisgICAgKTsNCisNCit0eXBlZGVmIERXT1JEIChXSU5BUEkgKmZwR2V0
VGVtcFBhdGhXKSgNCisgICAgSU4gRFdPUkQgbkJ1ZmZlckxlbmd0aCwNCisgICAgT1VUIExQV1NU
UiBscEJ1ZmZlcg0KKyAgICApOw0KKw0KK3R5cGVkZWYgTFBXU1RSIChXSU5BUEkgKmZwQ2hhclVw
cGVyVykoDQorICAgIElOIE9VVCBMUFdTVFIgbHBzeik7DQorDQordHlwZWRlZiBEV09SRCAoV0lO
QVBJICpmcENoYXJVcHBlckJ1ZmZXKSgNCisgICAgSU4gT1VUIExQV1NUUiBscHN6LA0KKyAgICBJ
TiBEV09SRCBjY2hMZW5ndGgpOw0KKw0KK3R5cGVkZWYgTE9ORyAoV0lOQVBJICpmcERvY3VtZW50
UHJvcGVydGllc1cpKA0KKyAgICBJTiBIV05EICAgICAgaFduZCwNCisgICAgSU4gSEFORExFICAg
IGhQcmludGVyLA0KKyAgICBJTiBMUFdTVFIgICBwRGV2aWNlTmFtZSwNCisgICAgT1VUIFBERVZN
T0RFVyBwRGV2TW9kZU91dHB1dCwNCisgICAgSU4gUERFVk1PREVXIHBEZXZNb2RlSW5wdXQsDQor
ICAgIElOIERXT1JEICAgICBmTW9kZQ0KKyAgICApOw0KKw0KK3R5cGVkZWYgTFJFU1VMVCAoV0lO
QVBJICpmcERlZldpbmRvd1Byb2NXKSgNCisgICAgSU4gSFdORCBoV25kLA0KKyAgICBJTiBVSU5U
IE1zZywNCisgICAgSU4gV1BBUkFNIHdQYXJhbSwNCisgICAgSU4gTFBBUkFNIGxQYXJhbQ0KKyAg
ICApOw0KKwordHlwZWRlZiBMUkVTVUxUIChXSU5BUEkgKmZwQ2FsbFdpbmRvd1Byb2NXKSgNCisg
ICAgSU4gV05EUFJPQyBscFByZXZXbmRGdW5jLA0KKyAgICBJTiBIV05EIGhXbmQsDQorICAgIElO
IFVJTlQgTXNnLA0KKyAgICBJTiBXUEFSQU0gd1BhcmFtLA0KKyAgICBJTiBMUEFSQU0gbFBhcmFt
DQorICAgICk7DQorCisjaWZkZWYgX1dJTjY0DQorDQordHlwZWRlZiBMT05HX1BUUiAoV0lOQVBJ
ICpmcFNldFdpbmRvd0xvbmdQdHJXKSgNCisgICAgSU4gSFdORCBoV25kLA0KKyAgICBJTiBpbnQg
bkluZGV4LA0KKyAgICBJTiBMT05HX1BUUiBkd05ld0xvbmcNCisgICAgKTsNCit0eXBlZGVmIExP
TkdfUFRSIChXSU5BUEkgKmZwR2V0V2luZG93TG9uZ1B0clcpKA0KKyAgICBJTiBIV05EIGhXbmQs
DQorICAgIElOIGludCBuSW5kZXgpOw0KKworI2Vsc2UgLyogX1dJTjY0ICovCisNCit0eXBlZGVm
IExPTkcgKFdJTkFQSSAqZnBTZXRXaW5kb3dMb25nUHRyVykoDQorICAgIElOIEhXTkQgaFduZCwN
CisgICAgSU4gaW50IG5JbmRleCwNCisgICAgSU4gTE9ORyBkd05ld0xvbmcNCisgICAgKTsNCit0
eXBlZGVmIExPTkcgKFdJTkFQSSAqZnBHZXRXaW5kb3dMb25nUHRyVykoDQorICAgIElOIEhXTkQg
aFduZCwNCisgICAgSU4gaW50IG5JbmRleCk7DQorDQorI2VuZGlmIC8qIF9XSU42NCAqLworCit0
eXBlZGVmIExSRVNVTFQgKFdJTkFQSSAqZnBTZW5kTWVzc2FnZVcpKA0KKyAgICBJTiBIV05EIGhX
bmQsDQorICAgIElOIFVJTlQgTXNnLA0KKyAgICBJTiBXUEFSQU0gd1BhcmFtLA0KKyAgICBJTiBM
UEFSQU0gbFBhcmFtDQorICAgICk7DQorCit0eXBlZGVmIExSRVNVTFQgKFdJTkFQSSAqZnBEaXNw
YXRjaE1lc3NhZ2VXKSgNCisgICAgSU4gQ09OU1QgTVNHICpscE1zZw0KKyAgICApOw0KKwordHlw
ZWRlZiBCT09MIChXSU5BUEkgKmZwR2V0TWVzc2FnZVcpKA0KKyAgICBPVVQgTFBNU0cgbHBNc2cs
DQorICAgIElOIEhXTkQgaFduZCwNCisgICAgSU4gVUlOVCB3TXNnRmlsdGVyTWluLA0KKyAgICBJ
TiBVSU5UIHdNc2dGaWx0ZXJNYXgNCisgICAgKTsNCisKK3R5cGVkZWYgQk9PTCAoV0lOQVBJICpm
cFBlZWtNZXNzYWdlVykoDQorICAgIE9VVCBMUE1TRyBscE1zZywNCisgICAgSU4gSFdORCBoV25k
LA0KKyAgICBJTiBVSU5UIHdNc2dGaWx0ZXJNaW4sDQorICAgIElOIFVJTlQgd01zZ0ZpbHRlck1h
eCwNCisgICAgSU4gVUlOVCB3UmVtb3ZlTXNnDQorICAgICk7DQorCit0eXBlZGVmIEJPT0wgKEFQ
SUVOVFJZICpmcEdldE9wZW5GaWxlTmFtZVcpKA0KKyAgICBMUE9QRU5GSUxFTkFNRVcgbHBvZm4N
CisgICAgKTsNCisKK3R5cGVkZWYgQk9PTCAoQVBJRU5UUlkgKmZwR2V0U2F2ZUZpbGVOYW1lVyko
DQorICAgIExQT1BFTkZJTEVOQU1FVyBscG9mbg0KKyAgICApOw0KKwordHlwZWRlZiBpbnQgKFdJ
TkFQSSAqZnBHZXRDbGFzc05hbWVXKSgNCisgICAgSU4gSFdORCBoV25kLA0KKyAgICBPVVQgTFBX
U1RSIGxwQ2xhc3NOYW1lLA0KKyAgICBJTiBpbnQgbk1heENvdW50DQorICAgICk7DQorCit0eXBl
ZGVmIEhXTkQgKFdJTkFQSSAqZnBDcmVhdGVXaW5kb3dFeFcpKA0KKyAgICBJTiBEV09SRCBkd0V4
U3R5bGUsDQorICAgIElOIExQQ1dTVFIgbHBDbGFzc05hbWUsDQorICAgIElOIExQQ1dTVFIgbHBX
aW5kb3dOYW1lLA0KKyAgICBJTiBEV09SRCBkd1N0eWxlLA0KKyAgICBJTiBpbnQgWCwNCisgICAg
SU4gaW50IFksDQorICAgIElOIGludCBuV2lkdGgsDQorICAgIElOIGludCBuSGVpZ2h0LA0KKyAg
ICBJTiBIV05EIGhXbmRQYXJlbnQsDQorICAgIElOIEhNRU5VIGhNZW51LA0KKyAgICBJTiBISU5T
VEFOQ0UgaEluc3RhbmNlLA0KKyAgICBJTiBMUFZPSUQgbHBQYXJhbQ0KKyAgICApOw0KKwordHlw
ZWRlZiBBVE9NIChXSU5BUEkgKmZwUmVnaXN0ZXJDbGFzc1cpKA0KKyAgICBJTiBDT05TVCBXTkRD
TEFTU1cgKmxwV25kQ2xhc3MNCisgICAgKTsNCisKK3R5cGVkZWYgQk9PTCAoV0lOQVBJICpmcFVu
cmVnaXN0ZXJDbGFzc1cpKA0KKyAgICBJTiBMUENXU1RSIGxwQ2xhc3NOYW1lLA0KKyAgICBJTiBI
SU5TVEFOQ0UgaEluc3RhbmNlDQorICAgICk7DQorCit0eXBlZGVmIEJPT0wgKFNUREFQSUNBTExU
WVBFICpmcFNIR2V0UGF0aEZyb21JRExpc3RXKSgNCisgICAgTFBDSVRFTUlETElTVCBwaWRsLCAN
CisgICAgTFBXU1RSIHBzelBhdGgNCisgICAgKTsNCisKK3R5cGVkZWYgTFBJVEVNSURMSVNUIChT
VERBUElDQUxMVFlQRSAqZnBTSEJyb3dzZUZvckZvbGRlclcpKA0KKyAgICBMUEJST1dTRUlORk9X
IGxwYmkNCisgICAgKTsNCisKK3R5cGVkZWYgVUlOVCAoV0lOQVBJICpmcFJlZ2lzdGVyQ2xpcGJv
YXJkRm9ybWF0VykoDQorICAgIElOIExQQ1dTVFIgbHBzekZvcm1hdA0KKyAgICApOw0KKwordHlw
ZWRlZiBpbnQgKFdJTkFQSSAqZnBHZXRDbGlwYm9hcmRGb3JtYXROYW1lVykoDQorICAgIElOIFVJ
TlQgZm9ybWF0LA0KKyAgICBPVVQgTFBXU1RSIGxwc3pGb3JtYXROYW1lLA0KKyAgICBJTiBpbnQg
Y2NoTWF4Q291bnQpOw0KKworI2lmZGVmIF9fY3BsdXNwbHVzDQorfQ0KKyNlbmRpZg0KKw0KKyNl
bmRpZiAvLyBJTkNMVURFRF9NWkxVX0ZQDQpJbmRleDogbXpsdS9temx1YS9temx1YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogbXpsdS9temx1YS9temx1YS5jcHAKZGlmZiAtTiBtemx1L216bHVh
L216bHVhLmNwcAotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIG16
bHUvbXpsdWEvbXpsdWEuY3BwCTMwIEp1biAyMDA0IDE1OjI5OjM3IC0wMDAwCkBAIC0wLDAgKzEs
MTEwNCBAQAorLyogKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKg0KKyAqIFZlcnNpb246
IE1QTCAxLjEvR1BMIDIuMC9MR1BMIDIuMQ0KKyAqDQorICogVGhlIGNvbnRlbnRzIG9mIHRoaXMg
ZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uDQor
ICogMS4xICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZSB3aXRoDQorICogdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29w
eSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBMLw0KKyAq
DQorICogU29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4gIkFTIElTIiBiYXNpcywNCisgKiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UNCisgKiBmb3IgdGhl
IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyByaWdodHMgYW5kIGxpbWl0YXRpb25zIHVuZGVy
IHRoZQ0KKyAqIExpY2Vuc2UuDQorICoNCisgKiBUaGUgT3JpZ2luYWwgQ29kZSBpcyB2ZXJ5IHBy
ZXR0eS4NCisgKg0KKyAqIFRoZSBJbml0aWFsIERldmVsb3BlciBvZiB0aGUgT3JpZ2luYWwgQ29k
ZSBpcw0KKyAqIEJyb2RpZSBUaGllc2ZpZWxkLg0KKyAqIFBvcnRpb25zIGNyZWF0ZWQgYnkgdGhl
IEluaXRpYWwgRGV2ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDIwMDQNCisgKiB0aGUgSW5pdGlh
bCBEZXZlbG9wZXIuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQorICoNCisgKiBDb250cmlidXRvcihz
KToNCisgKg0KKyAqIEFsdGVybmF0aXZlbHksIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5
IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1zIG9mDQorICogZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBWZXJzaW9uIDIgb3IgbGF0ZXIgKHRoZSAiR1BMIiksIG9yDQorICogdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMSBvciBsYXRlciAo
dGhlICJMR1BMIiksDQorICogaW4gd2hpY2ggY2FzZSB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgR1BM
IG9yIHRoZSBMR1BMIGFyZSBhcHBsaWNhYmxlIGluc3RlYWQNCisgKiBvZiB0aG9zZSBhYm92ZS4g
SWYgeW91IHdpc2ggdG8gYWxsb3cgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgb25s
eQ0KKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiBlaXRoZXIgdGhlIEdQTCBvciB0aGUgTEdQTCwgYW5k
IG5vdCB0byBhbGxvdyBvdGhlcnMgdG8NCisgKiB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmls
ZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1QTCwgaW5kaWNhdGUgeW91cg0KKyAqIGRlY2lzaW9u
IGJ5IGRlbGV0aW5nIHRoZSBwcm92aXNpb25zIGFib3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0
aGUgbm90aWNlDQorICogYW5kIG90aGVyIHByb3Zpc2lvbnMgcmVxdWlyZWQgYnkgdGhlIEdQTCBv
ciB0aGUgTEdQTC4gSWYgeW91IGRvIG5vdCBkZWxldGUNCisgKiB0aGUgcHJvdmlzaW9ucyBhYm92
ZSwgYSByZWNpcGllbnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyDQor
ICogdGhlIHRlcm1zIG9mIGFueSBvbmUgb2YgdGhlIE1QTCwgdGhlIEdQTCBvciB0aGUgTEdQTC4N
CisgKg0KKyAqICoqKioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqICovDQorDQorI2luY2x1ZGUg
PHdpbmRvd3MuaD4NCisjaW5jbHVkZSA8d2NoYXIuaD4NCisjaW5jbHVkZSA8ZGlyZWN0Lmg+DQor
I2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgPGNydGRiZy5oPg0KKyNpbmNsdWRlIDxzaGxv
YmouaD4NCisNCisjaW5jbHVkZSAiLi4vbXpsdV9mcC5oIg0KKw0KKw0KKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisvLyBHbG9iYWxzDQorDQorc3RhdGljIEhJTlNUQU5DRSAgICAgICAgICAgICAg
ICBnX2hJbnN0YW5jZURMTCAgICAgICAgICA9IE5VTEw7DQorDQorLy8gW0RZTkFNSUNdDQorc3Rh
dGljIGZwR2V0RGlza0ZyZWVTcGFjZUV4QSAgICBnX0dldERpc2tGcmVlU3BhY2VFeEEgICA9IE5V
TEw7DQorDQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIERMTCBJbml0aWFsaXphdGlv
bg0KKw0KK0JPT0wgQVBJRU5UUlkgDQorRGxsTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlRExMLCBE
V09SRCBkd1JlYXNvbiwgTFBWT0lEIGxwUmVzZXJ2ZWQgKQ0KK3sNCisgICAgaWYgKGR3UmVhc29u
ID09IERMTF9QUk9DRVNTX0FUVEFDSCkNCisgICAgew0KKyAgICAgICAgZ19oSW5zdGFuY2VETEwg
PSBoSW5zdGFuY2VETEw7DQorDQorICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHRocmVhZCBub3Rp
ZmljYXRpb25zDQorICAgICAgICBEaXNhYmxlVGhyZWFkTGlicmFyeUNhbGxzKGhJbnN0YW5jZURM
TCk7DQorICAgIH0NCisNCisgICAgcmV0dXJuIFRSVUU7DQorfQ0KKw0KKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisvLyBNQkNTIDwtPiBVTklDT0RFIGNvbnZlcnNpb24gYW5kIGJ1ZmZlcg0KKw0K
K3RlbXBsYXRlPGludCBTVEFDS19TSVpFPg0KK2NsYXNzIENNYmNzQnVmZmVyDQorew0KK3B1Ymxp
YzoNCisgICAgQ01iY3NCdWZmZXIoKSANCisgICAgICAgIDogbUJ1ZmZlcihtU3RhY2tCdWZmZXIp
LA0KKyAgICAgICAgICBtQnVmZmVyU2l6ZShTVEFDS19TSVpFKSwNCisgICAgICAgICAgbUxlbmd0
aCgwKQ0KKyAgICB7IH0NCisNCisgICAgfkNNYmNzQnVmZmVyKCkNCisgICAgew0KKyAgICAgICAg
aWYgKG1CdWZmZXIgJiYgbUJ1ZmZlciAhPSBtU3RhY2tCdWZmZXIpDQorICAgICAgICAgICAgZnJl
ZShtQnVmZmVyKTsNCisgICAgfQ0KKw0KKyAgICBib29sIFNldENhcGFjaXR5KGludCBhTWluQ2Fw
YWNpdHkpDQorICAgIHsNCisgICAgICAgIGlmIChhTWluQ2FwYWNpdHkgPiBtQnVmZmVyU2l6ZSkN
CisgICAgICAgIHsNCisgICAgICAgICAgICBpZiAobUJ1ZmZlciAhPSBtU3RhY2tCdWZmZXIpDQor
ICAgICAgICAgICAgICAgIGZyZWUobUJ1ZmZlcik7DQorDQorICAgICAgICAgICAgbUxlbmd0aCA9
IDA7DQorICAgICAgICAgICAgbUJ1ZmZlclNpemUgPSAwOw0KKw0KKyAgICAgICAgICAgIG1CdWZm
ZXIgPSAoY2hhciAqKSBtYWxsb2MoYU1pbkNhcGFjaXR5KTsNCisgICAgICAgICAgICBpZiAoIW1C
dWZmZXIpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBTZXRMYXN0RXJyb3IoRVJS
T1JfTk9UX0VOT1VHSF9NRU1PUlkpOw0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQor
ICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgIG1CdWZmZXJTaXplID0gYU1pbkNhcGFjaXR5
Ow0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisNCisgICAg
Ym9vbCBGcm9tVW5pY29kZShMUENXU1RSIGFTdHJpbmcgPSAwLCBpbnQgYVN0cmluZ0xlbiA9IC0x
LCBpbnQgYU1pbkNhcGFjaXR5ID0gMCkNCisgICAgew0KKyAgICAgICAgaWYgKGFTdHJpbmcpDQor
ICAgICAgICB7DQorICAgICAgICAgICAgaWYgKGFTdHJpbmdMZW4gPT0gLTEpDQorICAgICAgICAg
ICAgICAgIGFTdHJpbmdMZW4gPSBsc3RybGVuVyhhU3RyaW5nKSArIDE7DQorDQorICAgICAgICAg
ICAgaW50IGFSZXF1aXJlZExlbiA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCBhU3Ry
aW5nLCBhU3RyaW5nTGVuLCBOVUxMLCAwLCBOVUxMLCBOVUxMKTsNCisgICAgICAgICAgICBpZiAo
YVJlcXVpcmVkTGVuIDwgMSkgDQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisNCisg
ICAgICAgICAgICBpZiAoYVJlcXVpcmVkTGVuID4gYU1pbkNhcGFjaXR5KQ0KKyAgICAgICAgICAg
ICAgICBhTWluQ2FwYWNpdHkgPSBhUmVxdWlyZWRMZW47DQorDQorICAgICAgICAgICAgbUxlbmd0
aCA9IGFSZXF1aXJlZExlbiAtIDE7IC8vIGRvbid0IGluY2x1ZGUgdGhlIG51bGwgYnl0ZQ0KKyAg
ICAgICAgfQ0KKw0KKyAgICAgICAgaWYgKCFTZXRDYXBhY2l0eShhTWluQ2FwYWNpdHkpKQ0KKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsNCisNCisgICAgICAgIGlmIChhU3RyaW5nKQ0KKyAgICAg
ICAgew0KKyAgICAgICAgICAgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCBhU3RyaW5n
LCBhU3RyaW5nTGVuLCBtQnVmZmVyLCBtQnVmZmVyU2l6ZSwgTlVMTCwgTlVMTCk7DQorICAgICAg
ICB9DQorDQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgfQ0KKw0KKyAgICBjaGFyICogZ2V0
KCkgeyByZXR1cm4gbUJ1ZmZlcjsgfQ0KKyAgICBvcGVyYXRvciBMUFNUUigpIHsgcmV0dXJuIG1C
dWZmZXI7IH0NCisgICAgaW50IEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtQnVmZmVyU2l6
ZTsgfQ0KKyAgICBpbnQgTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbUxlbmd0aDsgfQ0KKw0KK3By
aXZhdGU6DQorICAgIGNoYXIgICAgbVN0YWNrQnVmZmVyW1NUQUNLX1NJWkVdOw0KKyAgICBjaGFy
ICogIG1CdWZmZXI7DQorICAgIGludCAgICAgbUJ1ZmZlclNpemU7DQorICAgIGludCAgICAgbUxl
bmd0aDsNCit9Ow0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyB3cmFwcGVkIEFQSQ0K
Kw0KK3djaGFyX3QgKiBfX2NkZWNsIF93Z2V0ZGN3ZFdyYXBwZWQoIA0KKyAgIGludCBkcml2ZSwN
CisgICB3Y2hhcl90ICpidWZmZXIsDQorICAgaW50IG1heGxlbiANCispDQorew0KKyAgICBjaGFy
ICogbG9jYWxCdWZmZXIgPSBOVUxMOw0KKyAgICBjaGFyIHN0YWNrQnVmZmVyW01BWF9QQVRIXTsN
CisgICAgY2hhciAqIGN3ZDsNCisgICAgd2NoYXJfdCAqIG91dHB1dEJ1ZmZlcjsNCisgICAgaW50
IGJ5dGVMZW4sIGNoYXJMZW4sIG91dHB1dEJ1ZmZlckxlbjsNCisNCisgICAgLy8gdXNlIGEgc3Rh
Y2sgYnVmZmVyIGlmIHBvc3NpYmxlLCBvdGhlcndpc2Ugd2UgbGV0DQorICAgIC8vIHRoZSBDUlQg
YWxsb2NhdGUgaXQgZm9yIHVzDQorICAgIGlmIChidWZmZXIgJiYgbWF4bGVuIDw9IE1BWF9QQVRI
KQ0KKyAgICAgICAgbG9jYWxCdWZmZXIgPSBzdGFja0J1ZmZlcjsNCisNCisgICAgLy8gZ2V0IHRo
ZSBjdXJyZW50IGRyaXZlIHBhdGgsIHRoaXMgd2lsbCBhbGxvY2F0ZSB0aGUgYnVmZmVyIGlmDQor
ICAgIC8vIGxvY2FsQnVmZmVyIGlzIHN0aWxsIHNldCB0byBOVUxMLiBJZiB0aGVyZSBpcyBhbiBl
cnJvciB3ZSBjYW4gDQorICAgIC8vIGp1c3QgcmV0dXJuIGJlY2F1c2Ugd2UgaGF2ZW4ndCBhbGxv
Y2F0ZWQgYW55dGhpbmcgYW5kIHRoZSBlcnJubw0KKyAgICAvLyB3aWxsIGJlIHNldCBhcHByb3By
aWF0ZWx5Lg0KKyAgICBjd2QgPSBfZ2V0ZGN3ZChkcml2ZSwgbG9jYWxCdWZmZXIsIGxvY2FsQnVm
ZmVyID8gTUFYX1BBVEggOiAwKTsNCisgICAgaWYgKCFjd2QpDQorICAgICAgICByZXR1cm4gTlVM
TDsNCisgICAgYnl0ZUxlbiA9IChpbnQpIGxzdHJsZW5BKGN3ZCkgKyAxOyAvLyBieXRlIGxlbmd0
aCBpbmNsdWRpbmcgbnVsbCB0ZXJtaW5hdG9yDQorDQorICAgIC8vIGRldGVybWluZSB0aGUgc2l6
ZSBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlDQorICAg
IC8vIGVycm9yIGlmIHRoZXkgaGF2ZSBub3Qgc3VwcGxpZWQgYSBidWZmZXIgYmlnIGVub3VnaA0K
KyAgICBjaGFyTGVuID0gTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGN3ZCwgYnl0ZUxl
biwgMCwgMCk7DQorICAgIGlmIChjaGFyTGVuID09IDAgfHwgKGJ1ZmZlciAmJiBtYXhsZW4gPCBj
aGFyTGVuKSkNCisgICAgew0KKyAgICAgICAgaWYgKGN3ZCAhPSBsb2NhbEJ1ZmZlcikNCisgICAg
ICAgICAgICBmcmVlKGN3ZCk7DQorICAgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICAgIHJl
dHVybiBOVUxMOw0KKyAgICB9DQorDQorICAgIC8vIGFsbG9jYXRlIGFuIG91dHB1dCBidWZmZXIg
aWYgcmVxdWlyZWQNCisgICAgb3V0cHV0QnVmZmVyID0gYnVmZmVyOw0KKyAgICBvdXRwdXRCdWZm
ZXJMZW4gPSBtYXhsZW47DQorICAgIGlmICghb3V0cHV0QnVmZmVyKQ0KKyAgICB7DQorICAgICAg
ICBpZiAob3V0cHV0QnVmZmVyTGVuIDwgY2hhckxlbikNCisgICAgICAgICAgICBvdXRwdXRCdWZm
ZXJMZW4gPSBjaGFyTGVuOw0KKyAgICAgICAgb3V0cHV0QnVmZmVyID0gKHdjaGFyX3QqKSBtYWxs
b2Mob3V0cHV0QnVmZmVyTGVuICogc2l6ZW9mKHdjaGFyX3QpKTsNCisgICAgICAgIGlmICghb3V0
cHV0QnVmZmVyKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGlmIChjd2QgIT0gbG9jYWxCdWZm
ZXIpDQorICAgICAgICAgICAgICAgIGZyZWUoY3dkKTsNCisgICAgICAgICAgICBlcnJubyA9IEVO
T01FTTsNCisgICAgICAgICAgICByZXR1cm4gTlVMTDsNCisgICAgICAgIH0NCisgICAgfQ0KKw0K
KyAgICAvLyBjb252ZXJ0IHRoZSBNQkNTIHBhdGggdG8gd2lkZSBjaGFyLCB3ZSBhbHJlYWR5IGtu
b3cgdGhhdCB0aGlzDQorICAgIC8vIHdpbGwgbm90IGZhaWwgYmVjYXVzZSB3ZSBkZWZpbml0ZWx5
IGhhdmUgYSBidWZmZXIgYmlnIGVub3VnaA0KKyAgICAvLyBhbmQgaXQgaGFzIGFscmVhZHkgc2Nh
bm5lZCB0aGUgc3RyaW5nIGZvciBiYWQgY2hhcmFjdGVycy4NCisgICAgTXVsdGlCeXRlVG9XaWRl
Q2hhcihDUF9BQ1AsIDAsIGN3ZCwgYnl0ZUxlbiwgb3V0cHV0QnVmZmVyLCBvdXRwdXRCdWZmZXJM
ZW4pOw0KKyAgICBpZiAoY3dkICE9IGxvY2FsQnVmZmVyKQ0KKyAgICAgICAgZnJlZShjd2QpOw0K
KyAgICByZXR1cm4gb3V0cHV0QnVmZmVyOw0KK30NCisNCitIQU5ETEUgV0lOQVBJIA0KK0NyZWF0
ZUZpbGVXcmFwcGVkKA0KKyAgICBJTiBMUENXU1RSIGxwRmlsZU5hbWUsDQorICAgIElOIERXT1JE
IGR3RGVzaXJlZEFjY2VzcywNCisgICAgSU4gRFdPUkQgZHdTaGFyZU1vZGUsDQorICAgIElOIExQ
U0VDVVJJVFlfQVRUUklCVVRFUyBscFNlY3VyaXR5QXR0cmlidXRlcywNCisgICAgSU4gRFdPUkQg
ZHdDcmVhdGlvbkRpc3Bvc2l0aW9uLA0KKyAgICBJTiBEV09SRCBkd0ZsYWdzQW5kQXR0cmlidXRl
cywNCisgICAgSU4gSEFORExFIGhUZW1wbGF0ZUZpbGUNCisgICAgKQ0KK3sNCisgICAgQ01iY3NC
dWZmZXI8TUFYX1BBVEg+IG1iY3NGaWxlTmFtZTsNCisgICAgaWYgKCFtYmNzRmlsZU5hbWUuRnJv
bVVuaWNvZGUobHBGaWxlTmFtZSkpDQorICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFM
VUU7DQorDQorICAgIHJldHVybiBDcmVhdGVGaWxlQShtYmNzRmlsZU5hbWUsIGR3RGVzaXJlZEFj
Y2VzcywgZHdTaGFyZU1vZGUsIA0KKyAgICAgICAgbHBTZWN1cml0eUF0dHJpYnV0ZXMsIGR3Q3Jl
YXRpb25EaXNwb3NpdGlvbiwgZHdGbGFnc0FuZEF0dHJpYnV0ZXMsDQorICAgICAgICBoVGVtcGxh
dGVGaWxlKTsNCit9DQorDQorQk9PTCBXSU5BUEkNCitDcmVhdGVEaXJlY3RvcnlXcmFwcGVkKA0K
KyAgICBJTiBMUENXU1RSIGxwUGF0aE5hbWUsDQorICAgIElOIExQU0VDVVJJVFlfQVRUUklCVVRF
UyBscFNlY3VyaXR5QXR0cmlidXRlcw0KKyAgICApDQorew0KKyAgICBDTWJjc0J1ZmZlcjxNQVhf
UEFUSD4gbWJjc1BhdGhOYW1lOw0KKyAgICBpZiAoIW1iY3NQYXRoTmFtZS5Gcm9tVW5pY29kZShs
cFBhdGhOYW1lKSkNCisgICAgICAgIHJldHVybiBGQUxTRTsNCisNCisgICAgcmV0dXJuIENyZWF0
ZURpcmVjdG9yeUEobWJjc1BhdGhOYW1lLCBscFNlY3VyaXR5QXR0cmlidXRlcyk7DQorfQ0KKw0K
K0JPT0wgV0lOQVBJDQorQ29weUZpbGVXcmFwcGVkKA0KKyAgICBJTiBMUENXU1RSIGxwRXhpc3Rp
bmdGaWxlTmFtZSwNCisgICAgSU4gTFBDV1NUUiBscE5ld0ZpbGVOYW1lLA0KKyAgICBJTiBCT09M
IGJGYWlsSWZFeGlzdHMNCisgICAgKQ0KK3sNCisgICAgQ01iY3NCdWZmZXI8TUFYX1BBVEg+IG1i
Y3NFeGlzdGluZ0ZpbGVOYW1lOw0KKyAgICBpZiAoIW1iY3NFeGlzdGluZ0ZpbGVOYW1lLkZyb21V
bmljb2RlKGxwRXhpc3RpbmdGaWxlTmFtZSkpDQorICAgICAgICByZXR1cm4gRkFMU0U7DQorDQor
ICAgIENNYmNzQnVmZmVyPE1BWF9QQVRIPiBtYmNzTmV3RmlsZU5hbWU7DQorICAgIGlmICghbWJj
c05ld0ZpbGVOYW1lLkZyb21Vbmljb2RlKGxwTmV3RmlsZU5hbWUpKQ0KKyAgICAgICAgcmV0dXJu
IEZBTFNFOw0KKw0KKyAgICByZXR1cm4gQ29weUZpbGVBKG1iY3NFeGlzdGluZ0ZpbGVOYW1lLCBt
YmNzTmV3RmlsZU5hbWUsIGJGYWlsSWZFeGlzdHMpOw0KK30NCisNCitCT09MIFdJTkFQSQ0KK01v
dmVGaWxlV3JhcHBlZCgNCisgICAgSU4gTFBDV1NUUiBscEV4aXN0aW5nRmlsZU5hbWUsDQorICAg
IElOIExQQ1dTVFIgbHBOZXdGaWxlTmFtZQ0KKyAgICApDQorew0KKyAgICBDTWJjc0J1ZmZlcjxN
QVhfUEFUSD4gbWJjc0V4aXN0aW5nRmlsZU5hbWU7DQorICAgIGlmICghbWJjc0V4aXN0aW5nRmls
ZU5hbWUuRnJvbVVuaWNvZGUobHBFeGlzdGluZ0ZpbGVOYW1lKSkNCisgICAgICAgIHJldHVybiBG
QUxTRTsNCisNCisgICAgQ01iY3NCdWZmZXI8TUFYX1BBVEg+IG1iY3NOZXdGaWxlTmFtZTsNCisg
ICAgaWYgKCFtYmNzTmV3RmlsZU5hbWUuRnJvbVVuaWNvZGUobHBOZXdGaWxlTmFtZSkpDQorICAg
ICAgICByZXR1cm4gRkFMU0U7DQorDQorICAgIHJldHVybiBNb3ZlRmlsZUEobWJjc0V4aXN0aW5n
RmlsZU5hbWUsIG1iY3NOZXdGaWxlTmFtZSk7DQorfQ0KKw0KK0JPT0wgV0lOQVBJDQorRGVsZXRl
RmlsZVdyYXBwZWQoDQorICAgIElOIExQQ1dTVFIgbHBGaWxlTmFtZQ0KKyAgICApDQorew0KKyAg
ICBDTWJjc0J1ZmZlcjxNQVhfUEFUSD4gbWJjc0ZpbGVOYW1lOw0KKyAgICBpZiAoIW1iY3NGaWxl
TmFtZS5Gcm9tVW5pY29kZShscEZpbGVOYW1lKSkNCisgICAgICAgIHJldHVybiBGQUxTRTsNCisN
CisgICAgcmV0dXJuIERlbGV0ZUZpbGVBKG1iY3NGaWxlTmFtZSk7DQorfQ0KKw0KK0JPT0wgV0lO
QVBJDQorUmVtb3ZlRGlyZWN0b3J5V3JhcHBlZCgNCisgICAgSU4gTFBDV1NUUiBscFBhdGhOYW1l
DQorICAgICkNCit7DQorICAgIENNYmNzQnVmZmVyPE1BWF9QQVRIPiBtYmNzUGF0aE5hbWU7DQor
ICAgIGlmICghbWJjc1BhdGhOYW1lLkZyb21Vbmljb2RlKGxwUGF0aE5hbWUpKQ0KKyAgICAgICAg
cmV0dXJuIEZBTFNFOw0KKw0KKyAgICByZXR1cm4gUmVtb3ZlRGlyZWN0b3J5QShtYmNzUGF0aE5h
bWUpOw0KK30NCisNCitEV09SRCBXSU5BUEkNCitHZXRGaWxlQXR0cmlidXRlc1dyYXBwZWQoDQor
ICAgIElOIExQQ1dTVFIgbHBGaWxlTmFtZQ0KKyAgICApDQorew0KKyAgICBDTWJjc0J1ZmZlcjxN
QVhfUEFUSD4gbWJjc0ZpbGVOYW1lOw0KKyAgICBpZiAoIW1iY3NGaWxlTmFtZS5Gcm9tVW5pY29k
ZShscEZpbGVOYW1lKSkNCisgICAgICAgIHJldHVybiBJTlZBTElEX0ZJTEVfQVRUUklCVVRFUzsN
CisNCisgICAgcmV0dXJuIEdldEZpbGVBdHRyaWJ1dGVzQShtYmNzRmlsZU5hbWUpOw0KK30NCisN
CitCT09MIFdJTkFQSQ0KK0dldERpc2tGcmVlU3BhY2VFeFdyYXBwZWQoDQorICAgIElOIExQQ1dT
VFIgbHBEaXJlY3RvcnlOYW1lLA0KKyAgICBPVVQgUFVMQVJHRV9JTlRFR0VSIGxwRnJlZUJ5dGVz
QXZhaWxhYmxlVG9DYWxsZXIsDQorICAgIE9VVCBQVUxBUkdFX0lOVEVHRVIgbHBUb3RhbE51bWJl
ck9mQnl0ZXMsDQorICAgIE9VVCBQVUxBUkdFX0lOVEVHRVIgbHBUb3RhbE51bWJlck9mRnJlZUJ5
dGVzDQorICAgICkNCit7DQorICAgIC8vIGR5bmFtaWNhbGx5IGxvYWRlZCANCisgICAgaWYgKCFn
X0dldERpc2tGcmVlU3BhY2VFeEEpDQorICAgIHsNCisgICAgICAgIGdfR2V0RGlza0ZyZWVTcGFj
ZUV4QSA9IChmcEdldERpc2tGcmVlU3BhY2VFeEEpDQorICAgICAgICAgICAgR2V0UHJvY0FkZHJl
c3MoR2V0TW9kdWxlSGFuZGxlQSgia2VybmVsMzIuZGxsIiksICJHZXREaXNrRnJlZVNwYWNlRXhB
Iik7DQorICAgICAgICBpZiAoIWdfR2V0RGlza0ZyZWVTcGFjZUV4QSkNCisgICAgICAgICAgICBy
ZXR1cm4gRkFMU0U7DQorICAgIH0NCisNCisgICAgQ01iY3NCdWZmZXI8TUFYX1BBVEg+IG1iY3NE
aXJlY3RvcnlOYW1lOw0KKyAgICBpZiAoIW1iY3NEaXJlY3RvcnlOYW1lLkZyb21Vbmljb2RlKGxw
RGlyZWN0b3J5TmFtZSkpDQorICAgICAgICByZXR1cm4gRkFMU0U7DQorDQorICAgIHJldHVybiBn
X0dldERpc2tGcmVlU3BhY2VFeEEobWJjc0RpcmVjdG9yeU5hbWUsIGxwRnJlZUJ5dGVzQXZhaWxh
YmxlVG9DYWxsZXIsDQorICAgICAgICBscFRvdGFsTnVtYmVyT2ZCeXRlcywgbHBUb3RhbE51bWJl
ck9mRnJlZUJ5dGVzKTsNCit9DQorDQorQk9PTCBXSU5BUEkNCitHZXREaXNrRnJlZVNwYWNlV3Jh
cHBlZCgNCisgICAgSU4gTFBDV1NUUiBscFJvb3RQYXRoTmFtZSwNCisgICAgT1VUIExQRFdPUkQg
bHBTZWN0b3JzUGVyQ2x1c3RlciwNCisgICAgT1VUIExQRFdPUkQgbHBCeXRlc1BlclNlY3RvciwN
CisgICAgT1VUIExQRFdPUkQgbHBOdW1iZXJPZkZyZWVDbHVzdGVycywNCisgICAgT1VUIExQRFdP
UkQgbHBUb3RhbE51bWJlck9mQ2x1c3RlcnMNCisgICAgKQ0KK3sNCisgICAgQ01iY3NCdWZmZXI8
TUFYX1BBVEg+IG1iY3NSb290UGF0aE5hbWU7DQorICAgIGlmICghbWJjc1Jvb3RQYXRoTmFtZS5G
cm9tVW5pY29kZShscFJvb3RQYXRoTmFtZSkpDQorICAgICAgICByZXR1cm4gRkFMU0U7DQorDQor
ICAgIHJldHVybiBHZXREaXNrRnJlZVNwYWNlQShtYmNzUm9vdFBhdGhOYW1lLCBscFNlY3RvcnNQ
ZXJDbHVzdGVyLA0KKyAgICAgICAgbHBCeXRlc1BlclNlY3RvciwgbHBOdW1iZXJPZkZyZWVDbHVz
dGVycywgbHBUb3RhbE51bWJlck9mQ2x1c3RlcnMpOw0KK30NCisNCitISU5TVEFOQ0UgV0lOQVBJ
IA0KK1NoZWxsRXhlY3V0ZVdyYXBwZWQoDQorICAgIEhXTkQgaHduZCwgDQorICAgIExQQ1dTVFIg
bHBPcGVyYXRpb24sIA0KKyAgICBMUENXU1RSIGxwRmlsZSwgDQorICAgIExQQ1dTVFIgbHBQYXJh
bWV0ZXJzLCANCisgICAgTFBDV1NUUiBscERpcmVjdG9yeSwgDQorICAgIElOVCBuU2hvd0NtZA0K
KyAgICApDQorew0KKyAgICBDTWJjc0J1ZmZlcjwxMjg+IG1iY3NPcGVyYXRpb247DQorICAgIGlm
ICghbWJjc09wZXJhdGlvbi5Gcm9tVW5pY29kZShscE9wZXJhdGlvbikpDQorICAgICAgICByZXR1
cm4gMDsNCisNCisgICAgQ01iY3NCdWZmZXI8TUFYX1BBVEg+IG1iY3NGaWxlOw0KKyAgICBpZiAo
IW1iY3NGaWxlLkZyb21Vbmljb2RlKGxwRmlsZSkpDQorICAgICAgICByZXR1cm4gMDsNCisNCisg
ICAgQ01iY3NCdWZmZXI8TUFYX1BBVEg+IG1iY3NQYXJhbWV0ZXJzOw0KKyAgICBpZiAoIW1iY3NQ
YXJhbWV0ZXJzLkZyb21Vbmljb2RlKGxwUGFyYW1ldGVycykpDQorICAgICAgICByZXR1cm4gMDsN
CisNCisgICAgQ01iY3NCdWZmZXI8TUFYX1BBVEg+IG1iY3NEaXJlY3Rvcnk7DQorICAgIGlmICgh
bWJjc0RpcmVjdG9yeS5Gcm9tVW5pY29kZShscERpcmVjdG9yeSkpDQorICAgICAgICByZXR1cm4g
MDsNCisNCisgICAgcmV0dXJuIFNoZWxsRXhlY3V0ZUEoaHduZCwgDQorICAgICAgICBscE9wZXJh
dGlvbiA/IG1iY3NPcGVyYXRpb24uZ2V0KCkgOiAwLCANCisgICAgICAgIGxwRmlsZSA/IG1iY3NG
aWxlLmdldCgpIDogMCwgDQorICAgICAgICBscFBhcmFtZXRlcnMgPyBtYmNzUGFyYW1ldGVycy5n
ZXQoKSA6IDAsIA0KKyAgICAgICAgbHBEaXJlY3RvcnkgPyBtYmNzRGlyZWN0b3J5LmdldCgpIDog
MCwgDQorICAgICAgICBuU2hvd0NtZCk7DQorfQ0KKw0KK0RXT1JEIFdJTkFQSQ0KK0dldExvZ2lj
YWxEcml2ZVN0cmluZ3NXcmFwcGVkKA0KKyAgICBJTiBEV09SRCBuQnVmZmVyTGVuZ3RoLA0KKyAg
ICBPVVQgTFBXU1RSIGxwQnVmZmVyDQorICAgICkNCit7DQorICAgIENNYmNzQnVmZmVyPE1BWF9Q
QVRIPiBtYmNzRHJpdmVTdHJpbmdzOw0KKyAgICBpZiAoIW1iY3NEcml2ZVN0cmluZ3MuU2V0Q2Fw
YWNpdHkobkJ1ZmZlckxlbmd0aCkpDQorICAgICAgICByZXR1cm4gMDsNCisNCisgICAgaW50IGxl
biA9IEdldExvZ2ljYWxEcml2ZVN0cmluZ3NBKG1iY3NEcml2ZVN0cmluZ3MuQnVmZmVyU2l6ZSgp
LCBtYmNzRHJpdmVTdHJpbmdzKTsNCisgICAgaWYgKGxlbiA+IDAgJiYgbGVuIDwgbWJjc0RyaXZl
U3RyaW5ncy5CdWZmZXJTaXplKCkpDQorICAgIHsNCisgICAgICAgIC8vIGluY2x1ZGUgdGVybWlu
YXRpbmcgbnVsbCBjaGFyYWN0ZXIgYnkgdXNpbmcgbGVuICsgMQ0KKyAgICAgICAgaW50IG5SZXN1
bHQgPSBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgbWJjc0RyaXZlU3RyaW5ncywgDQor
ICAgICAgICAgICAgbGVuICsgMSwgbHBCdWZmZXIsIG5CdWZmZXJMZW5ndGgpOw0KKyAgICAgICAg
aWYgKG5SZXN1bHQgPT0gMCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBpZiAoR2V0TGFzdEVy
cm9yKCkgPT0gRVJST1JfSU5TVUZGSUNJRU5UX0JVRkZFUikNCisgICAgICAgICAgICAgICAgbGVu
ID0gTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIG1iY3NEcml2ZVN0cmluZ3MsIGxlbiAr
IDEsIDAsIDApOw0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgbGVuID0gMDsN
CisgICAgICAgIH0NCisgICAgICAgIGVsc2UNCisgICAgICAgICAgICBsZW4gPSBuUmVzdWx0IC0g
MTsgLy8gZG9uJ3QgaW5jbHVkZSB0aGUgTlVMTA0KKyAgICB9DQorDQorICAgIHJldHVybiBsZW47
DQorfQ0KKw0KK0RXT1JEIFdJTkFQSQ0KK0dldFRlbXBQYXRoV3JhcHBlZCgNCisgICAgSU4gRFdP
UkQgbkJ1ZmZlckxlbmd0aCwNCisgICAgT1VUIExQV1NUUiBscEJ1ZmZlcg0KKyAgICApDQorew0K
KyAgICAvLyBOT1RFOiBuQnVmZmVyTGVuZ3RoIG9mIHVuaWNvZGUgY2hhcmFjdGVycyBtYXkgYmUg
dXAgdG8gMiAqIG5CdWZmZXJMZW5ndGggb2YgTUJDUywNCisgICAgLy8gaG93ZXZlciBwYXRocyBp
biBNQkNTIFdpbmRvd3MgY2FuIG9ubHkgYmUgTUFYX1BBVEggbGVuZ3RoIGFueWhvdw0KKyAgICBD
TWJjc0J1ZmZlcjxNQVhfUEFUSD4gbWJjc1RlbXBQYXRoOw0KKw0KKyAgICBpbnQgbGVuID0gR2V0
VGVtcFBhdGhBKG1iY3NUZW1wUGF0aC5CdWZmZXJTaXplKCksIG1iY3NUZW1wUGF0aCk7DQorICAg
IGlmIChsZW4gPiAwICYmIGxlbiA8IG1iY3NUZW1wUGF0aC5CdWZmZXJTaXplKCkpDQorICAgIHsN
CisgICAgICAgIC8vIGluY2x1ZGUgdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyIGluIHRo
ZSBjb252ZXJzaW9uLg0KKyAgICAgICAgaW50IG5SZXN1bHQgPSBNdWx0aUJ5dGVUb1dpZGVDaGFy
KENQX0FDUCwgMCwgbWJjc1RlbXBQYXRoLCBsZW4gKyAxLCANCisgICAgICAgICAgICBscEJ1ZmZl
ciwgbkJ1ZmZlckxlbmd0aCk7DQorICAgICAgICBpZiAoblJlc3VsdCA9PSAwKQ0KKyAgICAgICAg
ew0KKyAgICAgICAgICAgIGlmIChHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9JTlNVRkZJQ0lFTlRf
QlVGRkVSKQ0KKyAgICAgICAgICAgICAgICBsZW4gPSBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FD
UCwgMCwgbWJjc1RlbXBQYXRoLCBsZW4gKyAxLCAwLCAwKTsNCisgICAgICAgICAgICBlbHNlDQor
ICAgICAgICAgICAgICAgIGxlbiA9IDA7DQorICAgICAgICB9DQorICAgICAgICBlbHNlDQorICAg
ICAgICAgICAgbGVuID0gblJlc3VsdCAtIDE7IC8vIGRvbid0IGluY2x1ZGUgdGhlIE5VTEwNCisg
ICAgfQ0KKw0KKyAgICByZXR1cm4gbGVuOw0KK30NCisNCitMUFdTVFIgV0lOQVBJIA0KK0NoYXJV
cHBlcldyYXBwZWQoDQorICAgIElOIE9VVCBMUFdTVFIgbHBzeikNCit7DQorICAgIGlmIChISVdP
UkQobHBzeikgPT0gMCkNCisgICAgew0KKyAgICAgICAgd2NoYXJfdCBjID0gTE9XT1JEKGxwc3op
Ow0KKyAgICAgICAgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKQ0KKyAgICAgICAgICAgIGMgPSAo
YyAtICdhJykgKyAnQSc7DQorICAgICAgICByZXR1cm4gKExQV1NUUikgYzsNCisgICAgfQ0KKyAg
ICBlbHNlDQorICAgIHsNCisgICAgICAgIHdjaGFyX3QgYzsNCisgICAgICAgIGZvciAod2NoYXJf
dCAqcFRlbXAgPSBscHN6OyAqcFRlbXA7ICsrcFRlbXApDQorICAgICAgICB7DQorICAgICAgICAg
ICAgYyA9ICpwVGVtcDsNCisgICAgICAgICAgICBpZiAoYyA+PSAnYScgJiYgYyA8PSAneicpDQor
ICAgICAgICAgICAgICAgICpwVGVtcCA9IGM7DQorICAgICAgICB9DQorICAgICAgICByZXR1cm4g
bHBzejsNCisgICAgfQ0KK30NCisNCitEV09SRCBXSU5BUEkgDQorQ2hhclVwcGVyQnVmZldyYXBw
ZWQoDQorICAgIElOIE9VVCBMUFdTVFIgbHBzeiwNCisgICAgSU4gRFdPUkQgY2NoTGVuZ3RoKQ0K
K3sNCisgICAgd2NoYXJfdCBjOw0KKyAgICBmb3IgKERXT1JEIGR3Q291bnQgPSAwOyBkd0NvdW50
IDwgY2NoTGVuZ3RoOyArK2R3Q291bnQpDQorICAgIHsNCisgICAgICAgIGMgPSBscHN6W2R3Q291
bnRdOw0KKyAgICAgICAgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKQ0KKyAgICAgICAgICAgIGxw
c3pbZHdDb3VudF0gPSBjOw0KKyAgICB9DQorICAgIHJldHVybiBjY2hMZW5ndGg7DQorfQ0KKw0K
K0xPTkcgV0lOQVBJDQorRG9jdW1lbnRQcm9wZXJ0aWVzV3JhcHBlZCgNCisgICAgSU4gSFdORCAg
ICAgIGhXbmQsDQorICAgIElOIEhBTkRMRSAgICBoUHJpbnRlciwNCisgICAgSU4gTFBXU1RSICAg
IHBEZXZpY2VOYW1lLA0KKyAgICBPVVQgUERFVk1PREVXIHBEZXZNb2RlT3V0cHV0LA0KKyAgICBJ
TiBQREVWTU9ERVcgcERldk1vZGVJbnB1dCwNCisgICAgSU4gRFdPUkQgICAgIGZNb2RlIA0KKyAg
ICApDQorew0KKyAgICBDTWJjc0J1ZmZlcjxDQ0hERVZJQ0VOQU1FPiBtYmNzRGV2aWNlTmFtZTsN
CisgICAgaWYgKCFtYmNzRGV2aWNlTmFtZS5Gcm9tVW5pY29kZShwRGV2aWNlTmFtZSkpDQorICAg
ICAgICByZXR1cm4gLTE7DQorDQorICAgIExQREVWTU9ERUEgcERldk1vZGVJbnB1dEEgPSAwOw0K
KyAgICBERVZNT0RFQSBkZXZNb2RlSW5wdXRBU3RhdGljOw0KKyAgICBpZiAoZk1vZGUgJiBETV9J
Tl9CVUZGRVIpDQorICAgIHsNCisgICAgICAgIGlmIChwRGV2TW9kZUlucHV0LT5kbURyaXZlckV4
dHJhID4gMCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBwRGV2TW9kZUlucHV0QSA9IChMUERF
Vk1PREVBKSBtYWxsb2Moc2l6ZW9mKERFVk1PREVBKSArIHBEZXZNb2RlSW5wdXQtPmRtRHJpdmVy
RXh0cmEpOw0KKyAgICAgICAgICAgIGlmICghcERldk1vZGVJbnB1dEEpDQorICAgICAgICAgICAg
ew0KKyAgICAgICAgICAgICAgICBTZXRMYXN0RXJyb3IoRVJST1JfTk9UX0VOT1VHSF9NRU1PUlkp
Ow0KKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAg
ICAgIENvcHlNZW1vcnkocERldk1vZGVJbnB1dEEgKyBzaXplb2YoREVWTU9ERUEpLCBwRGV2TW9k
ZUlucHV0ICsgcERldk1vZGVJbnB1dC0+ZG1TaXplLCANCisgICAgICAgICAgICAgICAgcERldk1v
ZGVJbnB1dC0+ZG1Ecml2ZXJFeHRyYSk7DQorICAgICAgICB9DQorICAgICAgICBlbHNlDQorICAg
ICAgICB7DQorICAgICAgICAgICAgcERldk1vZGVJbnB1dEEgPSAmZGV2TW9kZUlucHV0QVN0YXRp
YzsNCisgICAgICAgIH0NCisgICAgICAgIFplcm9NZW1vcnkocERldk1vZGVJbnB1dEEsIHNpemVv
ZihERVZNT0RFQSkpOyAvLyBkb24ndCB6ZXJvIHRoZSBleHRyYSBieXRlcw0KKw0KKyAgICAgICAg
cERldk1vZGVJbnB1dEEtPmRtU3BlY1ZlcnNpb24gPSBETV9TUEVDVkVSU0lPTjsNCisgICAgICAg
IHBEZXZNb2RlSW5wdXRBLT5kbVNpemUgPSBzaXplb2YoREVWTU9ERUEpOw0KKw0KKyAgICAgICAg
V2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIHBEZXZNb2RlSW5wdXQtPmRtRGV2aWNlTmFt
ZSwgLTEsIA0KKyAgICAgICAgICAgIChMUFNUUikgcERldk1vZGVJbnB1dEEtPmRtRGV2aWNlTmFt
ZSwgQ0NIREVWSUNFTkFNRSwgTlVMTCwgTlVMTCk7DQorICAgICAgICBwRGV2TW9kZUlucHV0QS0+
ZG1Ecml2ZXJWZXJzaW9uID0gcERldk1vZGVJbnB1dC0+ZG1Ecml2ZXJWZXJzaW9uOw0KKyAgICAg
ICAgcERldk1vZGVJbnB1dEEtPmRtRmllbGRzID0gcERldk1vZGVJbnB1dC0+ZG1GaWVsZHM7DQor
ICAgICAgICBpZiAocERldk1vZGVJbnB1dEEtPmRtRmllbGRzICYgRE1fUE9TSVRJT04pIA0KKyAg
ICAgICAgew0KKyAgICAgICAgICAgIHBEZXZNb2RlSW5wdXRBLT5kbVBvc2l0aW9uID0gcERldk1v
ZGVJbnB1dC0+ZG1Qb3NpdGlvbjsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2UNCisgICAgICAg
IHsNCisgICAgICAgICAgICBwRGV2TW9kZUlucHV0QS0+ZG1PcmllbnRhdGlvbiA9IHBEZXZNb2Rl
SW5wdXQtPmRtT3JpZW50YXRpb247DQorICAgICAgICAgICAgcERldk1vZGVJbnB1dEEtPmRtUGFw
ZXJTaXplID0gcERldk1vZGVJbnB1dC0+ZG1QYXBlclNpemU7DQorICAgICAgICAgICAgcERldk1v
ZGVJbnB1dEEtPmRtUGFwZXJMZW5ndGggPSBwRGV2TW9kZUlucHV0LT5kbVBhcGVyTGVuZ3RoOw0K
KyAgICAgICAgICAgIHBEZXZNb2RlSW5wdXRBLT5kbVBhcGVyV2lkdGggPSBwRGV2TW9kZUlucHV0
LT5kbVBhcGVyV2lkdGg7DQorICAgICAgICB9DQorICAgICAgICBwRGV2TW9kZUlucHV0QS0+ZG1T
Y2FsZSA9IHBEZXZNb2RlSW5wdXQtPmRtU2NhbGU7DQorICAgICAgICBwRGV2TW9kZUlucHV0QS0+
ZG1Db3BpZXMgPSBwRGV2TW9kZUlucHV0LT5kbUNvcGllczsNCisgICAgICAgIHBEZXZNb2RlSW5w
dXRBLT5kbURlZmF1bHRTb3VyY2UgPSBwRGV2TW9kZUlucHV0LT5kbURlZmF1bHRTb3VyY2U7DQor
ICAgICAgICBwRGV2TW9kZUlucHV0QS0+ZG1QcmludFF1YWxpdHkgPSBwRGV2TW9kZUlucHV0LT5k
bVByaW50UXVhbGl0eTsNCisgICAgICAgIHBEZXZNb2RlSW5wdXRBLT5kbUNvbG9yID0gcERldk1v
ZGVJbnB1dC0+ZG1Db2xvcjsNCisgICAgICAgIHBEZXZNb2RlSW5wdXRBLT5kbUR1cGxleCA9IHBE
ZXZNb2RlSW5wdXQtPmRtRHVwbGV4Ow0KKyAgICAgICAgcERldk1vZGVJbnB1dEEtPmRtWVJlc29s
dXRpb24gPSBwRGV2TW9kZUlucHV0LT5kbVlSZXNvbHV0aW9uOw0KKyAgICAgICAgcERldk1vZGVJ
bnB1dEEtPmRtVFRPcHRpb24gPSBwRGV2TW9kZUlucHV0LT5kbVRUT3B0aW9uOw0KKyAgICAgICAg
cERldk1vZGVJbnB1dEEtPmRtQ29sbGF0ZSA9IHBEZXZNb2RlSW5wdXQtPmRtQ29sbGF0ZTsNCisg
ICAgICAgIGlmIChwRGV2TW9kZUlucHV0QS0+ZG1GaWVsZHMgJiBETV9GT1JNTkFNRSkgDQorICAg
ICAgICB7DQorICAgICAgICAgICAgV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIHBEZXZN
b2RlSW5wdXQtPmRtRm9ybU5hbWUsIC0xLCANCisgICAgICAgICAgICAgICAgKExQU1RSKSBwRGV2
TW9kZUlucHV0QS0+ZG1Gb3JtTmFtZSwgQ0NIRk9STU5BTUUsIE5VTEwsIE5VTEwpOw0KKyAgICAg
ICAgfQ0KKyAgICAgICAgcERldk1vZGVJbnB1dEEtPmRtTG9nUGl4ZWxzID0gcERldk1vZGVJbnB1
dC0+ZG1Mb2dQaXhlbHM7DQorICAgICAgICBwRGV2TW9kZUlucHV0QS0+ZG1CaXRzUGVyUGVsID0g
cERldk1vZGVJbnB1dC0+ZG1CaXRzUGVyUGVsOw0KKyAgICAgICAgcERldk1vZGVJbnB1dEEtPmRt
UGVsc1dpZHRoID0gcERldk1vZGVJbnB1dC0+ZG1QZWxzV2lkdGg7DQorICAgICAgICBwRGV2TW9k
ZUlucHV0QS0+ZG1QZWxzSGVpZ2h0ID0gcERldk1vZGVJbnB1dC0+ZG1QZWxzSGVpZ2h0Ow0KKyAg
ICAgICAgcERldk1vZGVJbnB1dEEtPmRtRGlzcGxheUZsYWdzID0gcERldk1vZGVJbnB1dC0+ZG1E
aXNwbGF5RmxhZ3M7DQorICAgICAgICBwRGV2TW9kZUlucHV0QS0+ZG1EaXNwbGF5RnJlcXVlbmN5
ID0gcERldk1vZGVJbnB1dC0+ZG1EaXNwbGF5RnJlcXVlbmN5Ow0KKyAgICB9DQorDQorICAgIExQ
REVWTU9ERUEgcERldk1vZGVPdXRwdXRBID0gMDsNCisgICAgREVWTU9ERUEgZGV2TW9kZU91dHB1
dEFTdGF0aWM7DQorICAgIGlmIChmTW9kZSAmIERNX09VVF9CVUZGRVIpDQorICAgIHsNCisgICAg
ICAgIGlmIChwRGV2TW9kZU91dHB1dC0+ZG1Ecml2ZXJFeHRyYSA+IDApDQorICAgICAgICB7DQor
ICAgICAgICAgICAgcERldk1vZGVPdXRwdXRBID0gKExQREVWTU9ERUEpIG1hbGxvYyhzaXplb2Yo
REVWTU9ERUEpICsgcERldk1vZGVPdXRwdXQtPmRtRHJpdmVyRXh0cmEpOw0KKyAgICAgICAgICAg
IGlmICghcERldk1vZGVPdXRwdXRBKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
U2V0TGFzdEVycm9yKEVSUk9SX05PVF9FTk9VR0hfTUVNT1JZKTsNCisgICAgICAgICAgICAgICAg
cmV0dXJuIC0xOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGVsc2UNCisg
ICAgICAgIHsNCisgICAgICAgICAgICBwRGV2TW9kZU91dHB1dEEgPSAmZGV2TW9kZU91dHB1dEFT
dGF0aWM7DQorICAgICAgICB9DQorICAgICAgICBaZXJvTWVtb3J5KHBEZXZNb2RlT3V0cHV0QSwg
c2l6ZW9mKERFVk1PREVBKSArIHBEZXZNb2RlT3V0cHV0LT5kbURyaXZlckV4dHJhKTsNCisNCisg
ICAgICAgIHBEZXZNb2RlT3V0cHV0QS0+ZG1TcGVjVmVyc2lvbiA9IERNX1NQRUNWRVJTSU9OOw0K
KyAgICAgICAgcERldk1vZGVPdXRwdXRBLT5kbVNpemUgPSBzaXplb2YoREVWTU9ERUEpOw0KKyAg
ICAgICAgcERldk1vZGVPdXRwdXRBLT5kbURyaXZlckV4dHJhID0gcERldk1vZGVPdXRwdXQtPmRt
RHJpdmVyRXh0cmE7DQorICAgIH0NCisNCisgICAgTE9ORyBsUmVzdWx0ID0gRG9jdW1lbnRQcm9w
ZXJ0aWVzQShoV25kLCBoUHJpbnRlciwgbWJjc0RldmljZU5hbWUsDQorICAgICAgICBwRGV2TW9k
ZU91dHB1dEEsIHBEZXZNb2RlSW5wdXRBLCBmTW9kZSk7DQorICAgIA0KKyAgICBpZiAocERldk1v
ZGVJbnB1dEEgIT0gJmRldk1vZGVJbnB1dEFTdGF0aWMpDQorICAgICAgICBmcmVlKHBEZXZNb2Rl
SW5wdXRBKTsNCisNCisgICAgaWYgKGxSZXN1bHQgPT0gSURPSyAmJiBwRGV2TW9kZU91dHB1dEEp
DQorICAgIHsNCisgICAgICAgIGlmIChwRGV2TW9kZU91dHB1dEEtPmRtRHJpdmVyRXh0cmEgPiAw
KQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIENvcHlNZW1vcnkocERldk1vZGVPdXRwdXQgKyBw
RGV2TW9kZU91dHB1dC0+ZG1TaXplLCBwRGV2TW9kZU91dHB1dEEgKyBwRGV2TW9kZU91dHB1dEEt
PmRtU2l6ZSwgDQorICAgICAgICAgICAgICAgIHBEZXZNb2RlT3V0cHV0QS0+ZG1Ecml2ZXJFeHRy
YSk7DQorICAgICAgICB9DQorDQorICAgICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwg
MCwgKExQU1RSKSBwRGV2TW9kZU91dHB1dEEtPmRtRGV2aWNlTmFtZSwgLTEsIA0KKyAgICAgICAg
ICAgIChMUFdTVFIpIHBEZXZNb2RlT3V0cHV0LT5kbURldmljZU5hbWUsIENDSERFVklDRU5BTUUp
Ow0KKyAgICAgICAgcERldk1vZGVPdXRwdXQtPmRtRHJpdmVyVmVyc2lvbiA9IHBEZXZNb2RlT3V0
cHV0QS0+ZG1Ecml2ZXJWZXJzaW9uOw0KKyAgICAgICAgcERldk1vZGVPdXRwdXQtPmRtRmllbGRz
ID0gcERldk1vZGVPdXRwdXRBLT5kbUZpZWxkczsNCisgICAgICAgIGlmIChwRGV2TW9kZU91dHB1
dC0+ZG1GaWVsZHMgJiBETV9QT1NJVElPTikgDQorICAgICAgICB7DQorICAgICAgICAgICAgcERl
dk1vZGVPdXRwdXQtPmRtUG9zaXRpb24gPSBwRGV2TW9kZU91dHB1dEEtPmRtUG9zaXRpb247DQor
ICAgICAgICB9DQorICAgICAgICBlbHNlDQorICAgICAgICB7DQorICAgICAgICAgICAgcERldk1v
ZGVPdXRwdXQtPmRtT3JpZW50YXRpb24gPSBwRGV2TW9kZU91dHB1dEEtPmRtT3JpZW50YXRpb247
DQorICAgICAgICAgICAgcERldk1vZGVPdXRwdXQtPmRtUGFwZXJTaXplID0gcERldk1vZGVPdXRw
dXRBLT5kbVBhcGVyU2l6ZTsNCisgICAgICAgICAgICBwRGV2TW9kZU91dHB1dC0+ZG1QYXBlckxl
bmd0aCA9IHBEZXZNb2RlT3V0cHV0QS0+ZG1QYXBlckxlbmd0aDsNCisgICAgICAgICAgICBwRGV2
TW9kZU91dHB1dC0+ZG1QYXBlcldpZHRoID0gcERldk1vZGVPdXRwdXRBLT5kbVBhcGVyV2lkdGg7
DQorICAgICAgICB9DQorICAgICAgICBwRGV2TW9kZU91dHB1dC0+ZG1TY2FsZSA9IHBEZXZNb2Rl
T3V0cHV0QS0+ZG1TY2FsZTsNCisgICAgICAgIHBEZXZNb2RlT3V0cHV0LT5kbUNvcGllcyA9IHBE
ZXZNb2RlT3V0cHV0QS0+ZG1Db3BpZXM7DQorICAgICAgICBwRGV2TW9kZU91dHB1dC0+ZG1EZWZh
dWx0U291cmNlID0gcERldk1vZGVPdXRwdXRBLT5kbURlZmF1bHRTb3VyY2U7DQorICAgICAgICBw
RGV2TW9kZU91dHB1dC0+ZG1QcmludFF1YWxpdHkgPSBwRGV2TW9kZU91dHB1dEEtPmRtUHJpbnRR
dWFsaXR5Ow0KKyAgICAgICAgcERldk1vZGVPdXRwdXQtPmRtQ29sb3IgPSBwRGV2TW9kZU91dHB1
dEEtPmRtQ29sb3I7DQorICAgICAgICBwRGV2TW9kZU91dHB1dC0+ZG1EdXBsZXggPSBwRGV2TW9k
ZU91dHB1dEEtPmRtRHVwbGV4Ow0KKyAgICAgICAgcERldk1vZGVPdXRwdXQtPmRtWVJlc29sdXRp
b24gPSBwRGV2TW9kZU91dHB1dEEtPmRtWVJlc29sdXRpb247DQorICAgICAgICBwRGV2TW9kZU91
dHB1dC0+ZG1UVE9wdGlvbiA9IHBEZXZNb2RlT3V0cHV0QS0+ZG1UVE9wdGlvbjsNCisgICAgICAg
IHBEZXZNb2RlT3V0cHV0LT5kbUNvbGxhdGUgPSBwRGV2TW9kZU91dHB1dEEtPmRtQ29sbGF0ZTsN
CisgICAgICAgIGlmIChwRGV2TW9kZU91dHB1dC0+ZG1GaWVsZHMgJiBETV9GT1JNTkFNRSkgDQor
ICAgICAgICB7DQorICAgICAgICAgICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIChM
UFNUUikgcERldk1vZGVPdXRwdXRBLT5kbUZvcm1OYW1lLCAtMSwgDQorICAgICAgICAgICAgICAg
IChMUFdTVFIpIHBEZXZNb2RlT3V0cHV0LT5kbUZvcm1OYW1lLCBDQ0hGT1JNTkFNRSk7DQorICAg
ICAgICB9DQorICAgICAgICBwRGV2TW9kZU91dHB1dC0+ZG1Mb2dQaXhlbHMgPSBwRGV2TW9kZU91
dHB1dEEtPmRtTG9nUGl4ZWxzOw0KKyAgICAgICAgcERldk1vZGVPdXRwdXQtPmRtQml0c1BlclBl
bCA9IHBEZXZNb2RlT3V0cHV0QS0+ZG1CaXRzUGVyUGVsOw0KKyAgICAgICAgcERldk1vZGVPdXRw
dXQtPmRtUGVsc1dpZHRoID0gcERldk1vZGVPdXRwdXRBLT5kbVBlbHNXaWR0aDsNCisgICAgICAg
IHBEZXZNb2RlT3V0cHV0LT5kbVBlbHNIZWlnaHQgPSBwRGV2TW9kZU91dHB1dEEtPmRtUGVsc0hl
aWdodDsNCisgICAgICAgIHBEZXZNb2RlT3V0cHV0LT5kbURpc3BsYXlGbGFncyA9IHBEZXZNb2Rl
T3V0cHV0QS0+ZG1EaXNwbGF5RmxhZ3M7DQorICAgICAgICBwRGV2TW9kZU91dHB1dC0+ZG1EaXNw
bGF5RnJlcXVlbmN5ID0gcERldk1vZGVPdXRwdXRBLT5kbURpc3BsYXlGcmVxdWVuY3k7DQorICAg
IH0NCisNCisgICAgaWYgKHBEZXZNb2RlT3V0cHV0QSAhPSAmZGV2TW9kZU91dHB1dEFTdGF0aWMp
DQorICAgICAgICBmcmVlKHBEZXZNb2RlT3V0cHV0QSk7DQorICAgIHJldHVybiBsUmVzdWx0Ow0K
K30NCisNCitMUkVTVUxUIFdJTkFQSQ0KK0RlZldpbmRvd1Byb2NXcmFwcGVkKA0KKyAgICBJTiBI
V05EIGhXbmQsDQorICAgIElOIFVJTlQgTXNnLA0KKyAgICBJTiBXUEFSQU0gd1BhcmFtLA0KKyAg
ICBJTiBMUEFSQU0gbFBhcmFtKQ0KK3sNCisgICAgLy9UT0RPOiBpcyB0aGlzIHN1ZmZpY2llbnQ/
DQorICAgIHJldHVybiBEZWZXaW5kb3dQcm9jQShoV25kLCBNc2csIHdQYXJhbSwgbFBhcmFtKTsN
Cit9DQorDQorTFJFU1VMVCBXSU5BUEkNCitDYWxsV2luZG93UHJvY1dyYXBwZWQoDQorICAgIElO
IFdORFBST0MgbHBQcmV2V25kRnVuYywNCisgICAgSU4gSFdORCBoV25kLA0KKyAgICBJTiBVSU5U
IE1zZywNCisgICAgSU4gV1BBUkFNIHdQYXJhbSwNCisgICAgSU4gTFBBUkFNIGxQYXJhbSkNCit7
DQorICAgIC8vVE9ETzogaXMgdGhpcyBzdWZmaWNpZW50Pw0KKyAgICByZXR1cm4gQ2FsbFdpbmRv
d1Byb2NBKGxwUHJldlduZEZ1bmMsIGhXbmQsIE1zZywgd1BhcmFtLCBsUGFyYW0pOw0KK30NCisN
CitMT05HIFdJTkFQSQ0KK1NldFdpbmRvd0xvbmdQdHJXcmFwcGVkKA0KKyAgICBJTiBIV05EIGhX
bmQsDQorICAgIElOIGludCBuSW5kZXgsDQorICAgIElOIExPTkcgZHdOZXdMb25nKQ0KK3sNCisg
ICAgLy9UT0RPOiBpcyB0aGlzIHN1ZmZpY2llbnQ/DQorICAgIHJldHVybiBTZXRXaW5kb3dMb25n
UHRyQShoV25kLCBuSW5kZXgsIGR3TmV3TG9uZyk7DQorfQ0KKw0KK0xPTkcgV0lOQVBJDQorR2V0
V2luZG93TG9uZ1B0cldyYXBwZWQoDQorICAgIElOIEhXTkQgaFduZCwNCisgICAgSU4gaW50IG5J
bmRleCkNCit7DQorICAgIC8vVE9ETzogaXMgdGhpcyBzdWZmaWNpZW50Pw0KKyAgICByZXR1cm4g
R2V0V2luZG93TG9uZ1B0ckEoaFduZCwgbkluZGV4KTsNCit9DQorDQorTFJFU1VMVCBXSU5BUEkN
CitTZW5kTWVzc2FnZVdyYXBwZWQoDQorICAgIElOIEhXTkQgaFduZCwNCisgICAgSU4gVUlOVCBN
c2csDQorICAgIElOIFdQQVJBTSB3UGFyYW0sDQorICAgIElOIExQQVJBTSBsUGFyYW0pDQorew0K
KyAgICAvLyBvbmx5IHRoZSBmb2xsb3dpbmcgbWVzc2FnZSB0eXBlcyBoYXZlIGJlZW4gdmVyaWZp
ZWQsIGJlZm9yZSB1c2luZw0KKyAgICAvLyBvdGhlciBtZXNzYWdlIHR5cGVzIGVuc3VyZSB0aGF0
IHRoZXkgYXJlIGltcGxlbWVudGVkIGNvcnJlY3RseQ0KKyAgICBfQVNTRVJURSgKKyAgICAgICAg
TXNnID09IFdNX1NFVFRFWFQgfHwgCisgICAgICAgIE1zZyA9PSBXTV9TRVRJQ09OIHx8IAorICAg
ICAgICBNc2cgPT0gV01fU0VURk9OVCk7CisKKyAgICBpZiAoTXNnID09IFdNX1NFVFRFWFQpICAK
KyAgICB7CisgICAgICAgIENNYmNzQnVmZmVyPE1BWF9QQVRIPiBtYmNzU3RyaW5nOw0KKyAgICAg
ICAgaWYgKCFtYmNzU3RyaW5nLkZyb21Vbmljb2RlKChMUFdTVFIpbFBhcmFtKSkNCisgICAgICAg
ICAgICByZXR1cm4gU2VuZE1lc3NhZ2VBKGhXbmQsIFdNX1NFVFRFWFQsIDAsIDApOyAvLyBlcnJv
ciB2YWx1ZSBkZXBlbmRzIG9uIGhXbmQNCisNCisgICAgICAgIHJldHVybiBTZW5kTWVzc2FnZUEo
aFduZCwgV01fU0VUVEVYVCwgd1BhcmFtLCAoTFBBUkFNKSBtYmNzU3RyaW5nLmdldCgpKTsNCisg
ICAgfQ0KKw0KKyAgICByZXR1cm4gU2VuZE1lc3NhZ2VBKGhXbmQsIE1zZywgd1BhcmFtLCBsUGFy
YW0pOworfQ0KKw0KK0xSRVNVTFQgV0lOQVBJDQorRGlzcGF0Y2hNZXNzYWdlV3JhcHBlZCgNCisg
ICAgSU4gQ09OU1QgTVNHICpscE1zZykNCit7DQorICAgIC8vVE9ETzogaXMgdGhpcyBzdWZmaWNp
ZW50Pw0KKyAgICByZXR1cm4gRGlzcGF0Y2hNZXNzYWdlQShscE1zZyk7DQorfQ0KKw0KK0JPT0wg
V0lOQVBJDQorR2V0TWVzc2FnZVdyYXBwZWQoDQorICAgIE9VVCBMUE1TRyBscE1zZywNCisgICAg
SU4gSFdORCBoV25kLA0KKyAgICBJTiBVSU5UIHdNc2dGaWx0ZXJNaW4sDQorICAgIElOIFVJTlQg
d01zZ0ZpbHRlck1heCkNCit7DQorICAgIC8vVE9ETzogaXMgdGhpcyBzdWZmaWNpZW50Pw0KKyAg
ICByZXR1cm4gR2V0TWVzc2FnZUEobHBNc2csIGhXbmQsIHdNc2dGaWx0ZXJNaW4sIHdNc2dGaWx0
ZXJNYXgpOw0KK30NCisNCitCT09MIFdJTkFQSSANCitQZWVrTWVzc2FnZVdyYXBwZWQoDQorICAg
IE9VVCBMUE1TRyBscE1zZywNCisgICAgSU4gSFdORCBoV25kLA0KKyAgICBJTiBVSU5UIHdNc2dG
aWx0ZXJNaW4sDQorICAgIElOIFVJTlQgd01zZ0ZpbHRlck1heCwNCisgICAgSU4gVUlOVCB3UmVt
b3ZlTXNnKQ0KK3sNCisgICAgLy9UT0RPOiBpcyB0aGlzIHN1ZmZpY2llbnQ/DQorICAgIHJldHVy
biBQZWVrTWVzc2FnZUEobHBNc2csIGhXbmQsIHdNc2dGaWx0ZXJNaW4sIHdNc2dGaWx0ZXJNYXgs
IHdSZW1vdmVNc2cpOw0KK30NCisNCitzdGF0aWMgQk9PTCAKK09wZW5TYXZlRmlsZU5hbWVXcmFw
cGVkKAorICAgIExQT1BFTkZJTEVOQU1FVyBscG9mbiwgCisgICAgQk9PTCAgICAgICAgICAgIGFJ
c09wZW4pCit7DQorICAgIE9QRU5GSUxFTkFNRUEgb2ZuQTsKKyAgICBaZXJvTWVtb3J5KCZvZm5B
LCBzaXplb2Yob2ZuQSkpOworCisgICAgb2ZuQS5sU3RydWN0U2l6ZSA9IHNpemVvZihvZm5BKTsK
KyAgICBvZm5BLmh3bmRPd25lciA9IGxwb2ZuLT5od25kT3duZXI7CisgICAgb2ZuQS5oSW5zdGFu
Y2UgPSBscG9mbi0+aEluc3RhbmNlOworCisgICAgQ01iY3NCdWZmZXI8MjU2PiBtYmNzRmlsdGVy
OworICAgIGlmIChscG9mbi0+bHBzdHJGaWx0ZXIpCisgICAgeworICAgICAgICBpbnQgZmlsdGVy
TGVuID0gMDsKKyAgICAgICAgaW50IGxlbiA9IGxzdHJsZW5XKGxwb2ZuLT5scHN0ckZpbHRlcik7
CisgICAgICAgIHdoaWxlIChsZW4gPiAwKQorICAgICAgICB7CisgICAgICAgICAgICBmaWx0ZXJM
ZW4gKz0gbGVuICsgMTsKKyAgICAgICAgICAgIGxlbiA9IGxzdHJsZW5XKGxwb2ZuLT5scHN0ckZp
bHRlciArIGZpbHRlckxlbik7CisgICAgICAgIH0KKyAgICAgICAgKytmaWx0ZXJMZW47CisgICAg
ICAgIGlmICghbWJjc0ZpbHRlci5Gcm9tVW5pY29kZShscG9mbi0+bHBzdHJGaWx0ZXIsIGZpbHRl
ckxlbikpIAorICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICBvZm5BLmxwc3RyRmls
dGVyID0gbWJjc0ZpbHRlcjsKKyAgICB9CisKKyAgICBDTWJjc0J1ZmZlcjwyNTY+IG1iY3NDdXN0
b21GaWx0ZXI7CisgICAgaWYgKGxwb2ZuLT5scHN0ckN1c3RvbUZpbHRlcikKKyAgICB7CisgICAg
ICAgIGludCBjdXN0b21GaWx0ZXJMZW4gPSAwOw0KKyAgICAgICAgY3VzdG9tRmlsdGVyTGVuID0g
bHN0cmxlblcobHBvZm4tPmxwc3RyQ3VzdG9tRmlsdGVyKSArIDE7DQorICAgICAgICBjdXN0b21G
aWx0ZXJMZW4gKz0gbHN0cmxlblcobHBvZm4tPmxwc3RyQ3VzdG9tRmlsdGVyICsgY3VzdG9tRmls
dGVyTGVuKSArIDE7DQorCisgICAgICAgIC8vIGRvdWJsZSB0aGUgYnVmZmVyIHNwYWNlIHJlcXVl
c3RlZCBiZWNhdXNlIE1CQ1MgY2FuIGNvbnN1bWUgZG91YmxlIHRoYXQgb2YgVW5pY29kZSAoaW4g
Y2hhcnMpCisgICAgICAgIGlmICghbWJjc0N1c3RvbUZpbHRlci5Gcm9tVW5pY29kZShscG9mbi0+
bHBzdHJDdXN0b21GaWx0ZXIsIGN1c3RvbUZpbHRlckxlbiwgbHBvZm4tPm5NYXhDdXN0RmlsdGVy
ICogMikpIAorICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICBvZm5BLmxwc3RyQ3Vz
dG9tRmlsdGVyID0gbWJjc0N1c3RvbUZpbHRlcjsKKyAgICAgICAgb2ZuQS5uTWF4Q3VzdEZpbHRl
ciA9IG1iY3NDdXN0b21GaWx0ZXIuQnVmZmVyU2l6ZSgpOworICAgIH0KKworICAgIG9mbkEubkZp
bHRlckluZGV4ID0gbHBvZm4tPm5GaWx0ZXJJbmRleDsKKworICAgIENNYmNzQnVmZmVyPE1BWF9Q
QVRIPiBtYmNzRmlsZTsKKyAgICBpZiAoIW1iY3NGaWxlLkZyb21Vbmljb2RlKGxwb2ZuLT5scHN0
ckZpbGUpKSAKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIG9mbkEubHBzdHJGaWxlID0gbWJj
c0ZpbGU7CisgICAgb2ZuQS5uTWF4RmlsZSA9IG1iY3NGaWxlLkJ1ZmZlclNpemUoKTsKKworICAg
IENNYmNzQnVmZmVyPE1BWF9QQVRIPiBtYmNzRmlsZVRpdGxlOworICAgIGlmIChscG9mbi0+bHBz
dHJGaWxlVGl0bGUpCisgICAgeworICAgICAgICBpZiAoIW1iY3NGaWxlVGl0bGUuRnJvbVVuaWNv
ZGUobHBvZm4tPmxwc3RyRmlsZVRpdGxlLCAtMSwgbHBvZm4tPm5NYXhGaWxlVGl0bGUgKiAyKSkg
CisgICAgICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgICAgIG9mbkEubHBzdHJGaWxlVGl0bGUg
PSBtYmNzRmlsZVRpdGxlOworICAgICAgICBvZm5BLm5NYXhGaWxlVGl0bGUgPSBtYmNzRmlsZVRp
dGxlLkJ1ZmZlclNpemUoKTsKKyAgICB9CisKKyAgICBDTWJjc0J1ZmZlcjxNQVhfUEFUSD4gbWJj
c0luaXRpYWxEaXI7CisgICAgaWYgKGxwb2ZuLT5scHN0ckluaXRpYWxEaXIpCisgICAgeworICAg
ICAgICBpZiAoIW1iY3NJbml0aWFsRGlyLkZyb21Vbmljb2RlKGxwb2ZuLT5scHN0ckluaXRpYWxE
aXIpKSAKKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICAgICAgb2ZuQS5scHN0ckluaXRp
YWxEaXIgPSBtYmNzSW5pdGlhbERpcjsKKyAgICB9CisKKyAgICBDTWJjc0J1ZmZlcjw2ND4gbWJj
c1RpdGxlOworICAgIGlmIChscG9mbi0+bHBzdHJUaXRsZSkKKyAgICB7CisgICAgICAgIGlmICgh
bWJjc1RpdGxlLkZyb21Vbmljb2RlKGxwb2ZuLT5scHN0clRpdGxlKSkgCisgICAgICAgICAgICBy
ZXR1cm4gRkFMU0U7CisgICAgICAgIG9mbkEubHBzdHJUaXRsZSA9IG1iY3NUaXRsZTsKKyAgICB9
CisgICAgCisgICAgb2ZuQS5GbGFncyA9IGxwb2ZuLT5GbGFnczsKKyAgICAvLyBuRmlsZU9mZnNl
dAorICAgIC8vIG5GaWxlRXh0ZW5zaW9uCisgICAgCisgICAgQ01iY3NCdWZmZXI8MTY+IG1iY3NE
ZWZFeHQ7CisgICAgaWYgKGxwb2ZuLT5scHN0ckRlZkV4dCkKKyAgICB7CisgICAgICAgIGlmICgh
bWJjc0RlZkV4dC5Gcm9tVW5pY29kZShscG9mbi0+bHBzdHJEZWZFeHQpKSAKKyAgICAgICAgICAg
IHJldHVybiBGQUxTRTsKKyAgICAgICAgb2ZuQS5scHN0ckRlZkV4dCA9IG1iY3NEZWZFeHQ7Cisg
ICAgfQorCisgICAgb2ZuQS5sQ3VzdERhdGEgPSBscG9mbi0+bEN1c3REYXRhOworICAgIG9mbkEu
bHBmbkhvb2sgPSBscG9mbi0+bHBmbkhvb2s7CisKKyAgICBDTWJjc0J1ZmZlcjw2ND4gbWJjc1Rl
bXBsYXRlTmFtZTsKKyAgICBpZiAobHBvZm4tPmxwVGVtcGxhdGVOYW1lKQorICAgIHsKKyAgICAg
ICAgaWYgKCFtYmNzVGVtcGxhdGVOYW1lLkZyb21Vbmljb2RlKGxwb2ZuLT5scFRlbXBsYXRlTmFt
ZSkpIAorICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICBvZm5BLmxwVGVtcGxhdGVO
YW1lID0gbWJjc1RlbXBsYXRlTmFtZTsKKyAgICB9CisKKyAgICBCT09MIHN1Y2Nlc3M7CisgICAg
aWYgKGFJc09wZW4pCisgICAgICAgIHN1Y2Nlc3MgPSBHZXRPcGVuRmlsZU5hbWVBKCZvZm5BKTsK
KyAgICBlbHNlCisgICAgICAgIHN1Y2Nlc3MgPSBHZXRTYXZlRmlsZU5hbWVBKCZvZm5BKTsKKyAg
ICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBzdWNjZXNzOworCisgICAgaWYgKG9mbkEu
bHBzdHJGaWxlKSAKKyAgICB7CisgICAgICAgIGludCBmaWxlTGVuID0gbHN0cmxlbkEob2ZuQS5s
cHN0ckZpbGUpOworICAgICAgICBpZiAoZmlsZUxlbiA+IDAgJiYgKG9mbkEuRmxhZ3MgJiBPRk5f
QUxMT1dNVUxUSVNFTEVDVCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGxwc3RyRmlsZSBj
b250YWlucyB0aGUgZGlyZWN0b3J5IGFuZCBmaWxlIG5hbWUgc3RyaW5ncyAKKyAgICAgICAgICAg
IC8vIHdoaWNoIGFyZSBOVUxMIHNlcGFyYXRlZCwgd2l0aCBhbiBleHRyYSBOVUxMIGNoYXJhY3Rl
ciBhZnRlciB0aGUgbGFzdCBmaWxlIG5hbWUuIAorICAgICAgICAgICAgaW50IHRvdGFsTGVuID0g
MDsKKyAgICAgICAgICAgIHdoaWxlIChmaWxlTGVuID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB0b3RhbExlbiArPSBmaWxlTGVuICsgMTsKKyAgICAgICAgICAgICAgICBmaWxl
TGVuID0gbHN0cmxlbkEob2ZuQS5scHN0ckZpbGUgKyB0b3RhbExlbik7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBmaWxlTGVuID0gdG90YWxMZW47CisgICAgICAgIH0KKyAgICAgICAgKytm
aWxlTGVuOyAvLyBhZGQgbnVsbCBjaGFyYWN0ZXIKKworICAgICAgICAvLyBlbnN1cmUgb3VyIGJ1
ZmZlciBpcyBiaWcgZW5vdWdoCisgICAgICAgIGludCBsZW5SZXF1aXJlZCA9IE11bHRpQnl0ZVRv
V2lkZUNoYXIoQ1BfQUNQLCAwLCBvZm5BLmxwc3RyRmlsZSwgZmlsZUxlbiwgMCwgMCk7CisgICAg
ICAgIGlmIChscG9mbi0+bk1heEZpbGUgPCAoRFdPUkQpIGxlblJlcXVpcmVkKQorICAgICAgICAg
ICAgcmV0dXJuIEZBTFNFOyAvLyBkb2Vzbid0IGhhdmUgZW5vdWdoIGFsbG9jYXRlZCBzcGFjZQor
CisgICAgICAgIC8vIHJldHVybiB0aGVzZSBmaWxlcworICAgICAgICBNdWx0aUJ5dGVUb1dpZGVD
aGFyKENQX0FDUCwgMCwgb2ZuQS5scHN0ckZpbGUsIGZpbGVMZW4sIGxwb2ZuLT5scHN0ckZpbGUs
IGxwb2ZuLT5uTWF4RmlsZSk7CisgICAgfQorCisgICAgbHBvZm4tPm5GaWx0ZXJJbmRleCA9IG9m
bkEubkZpbHRlckluZGV4OworCisgICAgLy9UT0RPOiB0aGVzZSBzaG91bGQgYmUgc2V0IGNvcnJl
Y3RseQorICAgIGxwb2ZuLT5uRmlsZU9mZnNldCA9IDA7CisgICAgbHBvZm4tPm5GaWxlRXh0ZW5z
aW9uID0gMDsKKworICAgIHJldHVybiBUUlVFOworfQ0KKw0KK0JPT0wgQVBJRU5UUlkgDQorR2V0
T3BlbkZpbGVOYW1lV3JhcHBlZCgNCisgICAgTFBPUEVORklMRU5BTUVXIGxwb2ZuKQ0KK3sNCisg
ICAgcmV0dXJuIE9wZW5TYXZlRmlsZU5hbWVXcmFwcGVkKGxwb2ZuLCBUUlVFKTsNCit9DQorCitC
T09MIEFQSUVOVFJZIA0KK0dldFNhdmVGaWxlTmFtZVdyYXBwZWQoDQorICAgIExQT1BFTkZJTEVO
QU1FVyBscG9mbikNCit7DQorICAgIHJldHVybiBPcGVuU2F2ZUZpbGVOYW1lV3JhcHBlZChscG9m
biwgRkFMU0UpOw0KK30NCisNCitpbnQgV0lOQVBJIA0KK0dldENsYXNzTmFtZVdyYXBwZWQoDQor
ICAgIElOIEhXTkQgaFduZCwNCisgICAgT1VUIExQV1NUUiBscENsYXNzTmFtZSwNCisgICAgSU4g
aW50IG5NYXhDb3VudCkNCit7DQorICAgIENNYmNzQnVmZmVyPDEyOD4gbWJjc0NsYXNzTmFtZTsN
CisgICAgaWYgKCFtYmNzQ2xhc3NOYW1lLlNldENhcGFjaXR5KG5NYXhDb3VudCoyKSkNCisgICAg
ICAgIHJldHVybiAwOw0KKw0KKyAgICBpbnQgbkxlbiA9IEdldENsYXNzTmFtZUEoaFduZCwgbWJj
c0NsYXNzTmFtZSwgbWJjc0NsYXNzTmFtZS5CdWZmZXJTaXplKCkpOw0KKyAgICBpZiAobkxlbiA8
IDEpDQorICAgICAgICByZXR1cm4gbkxlbjsNCisNCisgICAgLy8gdHJ1bmNhdGUgdGhlIHJldHVy
bmVkIHN0cmluZyBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyDQorICAgICsrbkxlbjsNCisgICAgaW50
IG5SZXN1bHQ7DQorICAgIGRvDQorICAgIHsNCisgICAgICAgIG5SZXN1bHQgPSBNdWx0aUJ5dGVU
b1dpZGVDaGFyKENQX0FDUCwgMCwgbWJjc0NsYXNzTmFtZSwgbkxlbi0tLCBscENsYXNzTmFtZSwg
bk1heENvdW50KTsNCisgICAgfQ0KKyAgICB3aGlsZSAobkxlbiA+IDAgJiYgblJlc3VsdCA9PSAw
ICYmIEdldExhc3RFcnJvcigpID09IEVSUk9SX0lOU1VGRklDSUVOVF9CVUZGRVIpOw0KKw0KKyAg
ICByZXR1cm4gblJlc3VsdDsNCit9DQorDQorSFdORCBXSU5BUEkgDQorQ3JlYXRlV2luZG93RXhX
cmFwcGVkKA0KKyAgICBJTiBEV09SRCBkd0V4U3R5bGUsDQorICAgIElOIExQQ1dTVFIgbHBDbGFz
c05hbWUsDQorICAgIElOIExQQ1dTVFIgbHBXaW5kb3dOYW1lLA0KKyAgICBJTiBEV09SRCBkd1N0
eWxlLA0KKyAgICBJTiBpbnQgWCwNCisgICAgSU4gaW50IFksDQorICAgIElOIGludCBuV2lkdGgs
DQorICAgIElOIGludCBuSGVpZ2h0LA0KKyAgICBJTiBIV05EIGhXbmRQYXJlbnQsDQorICAgIElO
IEhNRU5VIGhNZW51LA0KKyAgICBJTiBISU5TVEFOQ0UgaEluc3RhbmNlLA0KKyAgICBJTiBMUFZP
SUQgbHBQYXJhbSkNCit7DQorICAgIC8vIGNsYXNzIG5hbWUgaXMgb25seSBhIHN0cmluZyBpZiB0
aGUgSElXT1JEIGlzIG5vdCAwDQorICAgIENNYmNzQnVmZmVyPDEyOD4gbWJjc0NsYXNzTmFtZTsN
CisgICAgTFBDU1RSIHBtYmNzQ2xhc3NOYW1lID0gKExQQ1NUUikgbHBDbGFzc05hbWU7DQorICAg
IGlmIChISVdPUkQobHBDbGFzc05hbWUpICE9IDApDQorICAgIHsNCisgICAgICAgIGlmICghbWJj
c0NsYXNzTmFtZS5Gcm9tVW5pY29kZShscENsYXNzTmFtZSkpDQorICAgICAgICAgICAgcmV0dXJu
IE5VTEw7DQorICAgICAgICBwbWJjc0NsYXNzTmFtZSA9IG1iY3NDbGFzc05hbWUuZ2V0KCk7DQor
ICAgIH0NCisNCisgICAgQ01iY3NCdWZmZXI8MTI4PiBtYmNzV2luZG93TmFtZTsNCisgICAgaWYg
KCFtYmNzV2luZG93TmFtZS5Gcm9tVW5pY29kZShscFdpbmRvd05hbWUpKQ0KKyAgICAgICAgcmV0
dXJuIE5VTEw7DQorDQorICAgIHJldHVybiBDcmVhdGVXaW5kb3dFeEEoZHdFeFN0eWxlLCBwbWJj
c0NsYXNzTmFtZSwgbWJjc1dpbmRvd05hbWUsDQorICAgICAgICBkd1N0eWxlLCBYLCBZLCBuV2lk
dGgsIG5IZWlnaHQsIGhXbmRQYXJlbnQsIGhNZW51LCBoSW5zdGFuY2UsIGxwUGFyYW0pOw0KK30N
CisNCitBVE9NIFdJTkFQSQ0KK1JlZ2lzdGVyQ2xhc3NXcmFwcGVkKA0KKyAgICBJTiBDT05TVCBX
TkRDTEFTU1cgKmxwV25kQ2xhc3MpDQorew0KKyAgICBXTkRDTEFTU0Egd25kQ2xhc3NBOw0KKyAg
ICBaZXJvTWVtb3J5KCZ3bmRDbGFzc0EsIHNpemVvZih3bmRDbGFzc0EpKTsNCisNCisgICAgd25k
Q2xhc3NBLnN0eWxlICAgICAgICAgPSBscFduZENsYXNzLT5zdHlsZTsNCisgICAgd25kQ2xhc3NB
LmxwZm5XbmRQcm9jICAgPSBscFduZENsYXNzLT5scGZuV25kUHJvYzsNCisgICAgd25kQ2xhc3NB
LmNiQ2xzRXh0cmEgICAgPSBscFduZENsYXNzLT5jYkNsc0V4dHJhOw0KKyAgICB3bmRDbGFzc0Eu
Y2JXbmRFeHRyYSAgICA9IGxwV25kQ2xhc3MtPmNiV25kRXh0cmE7DQorICAgIHduZENsYXNzQS5o
SW5zdGFuY2UgICAgID0gbHBXbmRDbGFzcy0+aEluc3RhbmNlOw0KKyAgICB3bmRDbGFzc0EuaElj
b24gICAgICAgICA9IGxwV25kQ2xhc3MtPmhJY29uOw0KKyAgICB3bmRDbGFzc0EuaEN1cnNvciAg
ICAgICA9IGxwV25kQ2xhc3MtPmhDdXJzb3I7DQorICAgIHduZENsYXNzQS5oYnJCYWNrZ3JvdW5k
ID0gbHBXbmRDbGFzcy0+aGJyQmFja2dyb3VuZDsNCisNCisgICAgQ01iY3NCdWZmZXI8MTI4PiBt
YmNzTWVudU5hbWU7DQorICAgIGlmIChscFduZENsYXNzLT5scHN6TWVudU5hbWUpDQorICAgIHsN
CisgICAgICAgIGlmICghbWJjc01lbnVOYW1lLkZyb21Vbmljb2RlKGxwV25kQ2xhc3MtPmxwc3pN
ZW51TmFtZSkpDQorICAgICAgICAgICAgcmV0dXJuIDA7DQorICAgICAgICB3bmRDbGFzc0EubHBz
ek1lbnVOYW1lID0gbWJjc01lbnVOYW1lOw0KKyAgICB9DQorDQorICAgIC8vIGNsYXNzIG5hbWUg
aXMgb25seSBhIHN0cmluZyBpZiB0aGUgSElXT1JEIGlzIG5vdCAwDQorICAgIENNYmNzQnVmZmVy
PDEyOD4gbWJjc0NsYXNzTmFtZTsNCisgICAgd25kQ2xhc3NBLmxwc3pDbGFzc05hbWUgPSAoTFBD
U1RSKSBscFduZENsYXNzLT5scHN6Q2xhc3NOYW1lOw0KKyAgICBpZiAoSElXT1JEKGxwV25kQ2xh
c3MtPmxwc3pDbGFzc05hbWUpICE9IDApDQorICAgIHsNCisgICAgICAgIGlmICghbWJjc0NsYXNz
TmFtZS5Gcm9tVW5pY29kZShscFduZENsYXNzLT5scHN6Q2xhc3NOYW1lKSkNCisgICAgICAgICAg
ICByZXR1cm4gTlVMTDsNCisgICAgICAgIHduZENsYXNzQS5scHN6Q2xhc3NOYW1lID0gbWJjc0Ns
YXNzTmFtZTsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gUmVnaXN0ZXJDbGFzc0EoJnduZENsYXNz
QSk7DQorfQ0KKw0KK0JPT0wgV0lOQVBJDQorVW5yZWdpc3RlckNsYXNzV3JhcHBlZCgNCisgICAg
SU4gTFBDV1NUUiBscENsYXNzTmFtZSwNCisgICAgSU4gSElOU1RBTkNFIGhJbnN0YW5jZSkNCit7
DQorICAgIC8vIGNsYXNzIG5hbWUgaXMgb25seSBhIHN0cmluZyBpZiB0aGUgSElXT1JEIGlzIG5v
dCAwDQorICAgIENNYmNzQnVmZmVyPDEyOD4gbWJjc0NsYXNzTmFtZTsNCisgICAgTFBDU1RSIHBt
YmNzQ2xhc3NOYW1lID0gKExQQ1NUUikgbHBDbGFzc05hbWU7DQorICAgIGlmIChISVdPUkQobHBD
bGFzc05hbWUpICE9IDApDQorICAgIHsNCisgICAgICAgIGlmICghbWJjc0NsYXNzTmFtZS5Gcm9t
VW5pY29kZShscENsYXNzTmFtZSkpDQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7DQorICAgICAg
ICBwbWJjc0NsYXNzTmFtZSA9IG1iY3NDbGFzc05hbWUuZ2V0KCk7DQorICAgIH0NCisNCisgICAg
cmV0dXJuIFVucmVnaXN0ZXJDbGFzc0EocG1iY3NDbGFzc05hbWUsIGhJbnN0YW5jZSk7DQorfQ0K
Kw0KK0JPT0wgU1REQVBJQ0FMTFRZUEUgDQorU0hHZXRQYXRoRnJvbUlETGlzdFdyYXBwZWQoDQor
ICAgIExQQ0lURU1JRExJU1QgcGlkbCwgDQorICAgIExQV1NUUiBwc3pQYXRoKQ0KK3sNCisgICAg
Y2hhciBtYmNzUGF0aFtNQVhfUEFUSF07DQorICAgIEJPT0wgc3VjY2VzcyA9IFNIR2V0UGF0aEZy
b21JRExpc3RBKHBpZGwsIG1iY3NQYXRoKTsNCisgICAgaWYgKCFzdWNjZXNzKQ0KKyAgICAgICAg
cmV0dXJuIEZBTFNFOw0KKw0KKyAgICBpbnQgblJlc3VsdCA9IE11bHRpQnl0ZVRvV2lkZUNoYXIo
Q1BfQUNQLCAwLCBtYmNzUGF0aCwgLTEsIHBzelBhdGgsIE1BWF9QQVRIKTsNCisgICAgaWYgKG5S
ZXN1bHQgPCAxKQ0KKyAgICAgICAgcmV0dXJuIEZBTFNFOw0KKw0KKyAgICByZXR1cm4gVFJVRTsN
Cit9DQorCitMUElURU1JRExJU1QgU1REQVBJQ0FMTFRZUEUgDQorU0hCcm93c2VGb3JGb2xkZXJX
cmFwcGVkKA0KKyAgICBMUEJST1dTRUlORk9XIGxwYmkpDQorew0KKyAgICBjaGFyIG1iY3NEaXNw
bGF5TmFtZVtNQVhfUEFUSF07DQorDQorICAgIEJST1dTRUlORk9BIGJpQTsNCisgICAgWmVyb01l
bW9yeSgmYmlBLCBzaXplb2YoYmlBKSk7DQorDQorICAgIGJpQS5od25kT3duZXIgICAgICAgPSBs
cGJpLT5od25kT3duZXI7DQorICAgIGJpQS5waWRsUm9vdCAgICAgICAgPSBscGJpLT5waWRsUm9v
dDsNCisgICAgYmlBLnVsRmxhZ3MgICAgICAgICA9IGxwYmktPnVsRmxhZ3M7DQorICAgIGJpQS5s
cGZuICAgICAgICAgICAgPSBscGJpLT5scGZuOw0KKyAgICBiaUEubFBhcmFtICAgICAgICAgID0g
bHBiaS0+bFBhcmFtOw0KKyAgICBiaUEuaUltYWdlICAgICAgICAgID0gbHBiaS0+aUltYWdlOw0K
KyAgICBiaUEucHN6RGlzcGxheU5hbWUgID0gbWJjc0Rpc3BsYXlOYW1lOw0KKw0KKyAgICBDTWJj
c0J1ZmZlcjwxMjg+IG1iY3NUaXRsZTsNCisgICAgaWYgKCFtYmNzVGl0bGUuRnJvbVVuaWNvZGUo
bHBiaS0+bHBzelRpdGxlKSkNCisgICAgICAgIHJldHVybiBOVUxMOw0KKw0KKyAgICBMUElURU1J
RExJU1QgcmVzdWx0ID0gU0hCcm93c2VGb3JGb2xkZXJBKCZiaUEpOw0KKyAgICBpZiAoIXJlc3Vs
dCkNCisgICAgICAgIHJldHVybiBOVUxMOw0KKw0KKyAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQ
X0FDUCwgMCwgbWJjc0Rpc3BsYXlOYW1lLCAtMSwgbHBiaS0+cHN6RGlzcGxheU5hbWUsIE1BWF9Q
QVRIKTsNCisgICAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorVUlOVCBXSU5BUEkgDQorUmVnaXN0
ZXJDbGlwYm9hcmRGb3JtYXRXcmFwcGVkKA0KKyAgICBJTiBMUENXU1RSIGxwc3pGb3JtYXQpDQor
ew0KKyAgICBDTWJjc0J1ZmZlcjwxMjg+IG1iY3NGb3JtYXQ7DQorICAgIGlmICghbWJjc0Zvcm1h
dC5Gcm9tVW5pY29kZShscHN6Rm9ybWF0KSkNCisgICAgICAgIHJldHVybiAwOw0KKw0KKyAgICBy
ZXR1cm4gUmVnaXN0ZXJDbGlwYm9hcmRGb3JtYXRBKG1iY3NGb3JtYXQpOw0KK30NCisNCitpbnQg
V0lOQVBJDQorR2V0Q2xpcGJvYXJkRm9ybWF0TmFtZVdyYXBwZWQoDQorICAgIElOIFVJTlQgZm9y
bWF0LA0KKyAgICBPVVQgTFBXU1RSIGxwc3pGb3JtYXROYW1lLA0KKyAgICBJTiBpbnQgY2NoTWF4
Q291bnQpDQorew0KKyAgICBDTWJjc0J1ZmZlcjwyNTY+IG1iY3NGb3JtYXROYW1lOw0KKyAgICBp
ZiAoIW1iY3NGb3JtYXROYW1lLlNldENhcGFjaXR5KGNjaE1heENvdW50KSkNCisgICAgICAgIHJl
dHVybiAwOw0KKw0KKyAgICBpbnQgbkxlbiA9IEdldENsaXBib2FyZEZvcm1hdE5hbWVBKGZvcm1h
dCwgbWJjc0Zvcm1hdE5hbWUsIG1iY3NGb3JtYXROYW1lLkJ1ZmZlclNpemUoKSk7DQorICAgIGlm
IChuTGVuIDwgMSkNCisgICAgICAgIHJldHVybiBuTGVuOw0KKw0KKyAgICAvLyB0cnVuY2F0ZSB0
aGUgcmV0dXJuZWQgc3RyaW5nIGludG8gdGhlIG91dHB1dCBidWZmZXINCisgICAgKytuTGVuOw0K
KyAgICBpbnQgblJlc3VsdDsNCisgICAgZG8NCisgICAgew0KKyAgICAgICAgblJlc3VsdCA9IE11
bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBtYmNzRm9ybWF0TmFtZSwgbkxlbi0tLCBscHN6
Rm9ybWF0TmFtZSwgY2NoTWF4Q291bnQpOw0KKyAgICB9DQorICAgIHdoaWxlIChuTGVuID4gMCAm
JiBuUmVzdWx0ID09IDAgJiYgR2V0TGFzdEVycm9yKCkgPT0gRVJST1JfSU5TVUZGSUNJRU5UX0JV
RkZFUik7DQorDQorICAgIHJldHVybiBuUmVzdWx0Ow0KK30NCkluZGV4OiBtemx1L216bHVhL216
bHVhLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBtemx1L216bHVhL216bHVhLmRlZgpkaWZmIC1O
IG16bHUvbXpsdWEvbXpsdWEuZGVmCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAt
MDAwMAorKysgbXpsdS9temx1YS9temx1YS5kZWYJMzAgSnVuIDIwMDQgMTU6Mjk6MzcgLTAwMDAK
QEAgLTAsMCArMSw3NSBAQAorOyAqKioqKiBCRUdJTiBMSUNFTlNFIEJMT0NLICoqKioqDQorOyBW
ZXJzaW9uOiBNUEwgMS4xL0dQTCAyLjAvTEdQTCAyLjENCis7DQorOyBUaGUgY29udGVudHMgb2Yg
dGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNp
b24NCis7IDEuMSAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhj
ZXB0IGluIGNvbXBsaWFuY2Ugd2l0aA0KKzsgdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEg
Y29weSBvZiB0aGUgTGljZW5zZSBhdA0KKzsgaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvDQor
Ow0KKzsgU29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4gIkFTIElTIiBiYXNpcywNCis7IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZQ0KKzsgZm9yIHRoZSBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcmlnaHRzIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0
aGUNCis7IExpY2Vuc2UuDQorOw0KKzsgVGhlIE9yaWdpbmFsIENvZGUgaXMgdmVyeSBwcmV0dHku
DQorOw0KKzsgVGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9mIHRoZSBPcmlnaW5hbCBDb2RlIGlzDQor
OyBCcm9kaWUgVGhpZXNmaWVsZC4NCis7IFBvcnRpb25zIGNyZWF0ZWQgYnkgdGhlIEluaXRpYWwg
RGV2ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDIwMDQNCis7IHRoZSBJbml0aWFsIERldmVsb3Bl
ci4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCis7DQorOyBDb250cmlidXRvcihzKToNCis7DQorOyBB
bHRlcm5hdGl2ZWx5LCB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIG1heSBiZSB1c2VkIHVuZGVy
IHRoZSB0ZXJtcyBvZg0KKzsgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBW
ZXJzaW9uIDIgb3IgbGF0ZXIgKHRoZSAiR1BMIiksIG9yDQorOyB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4xIG9yIGxhdGVyICh0aGUgIkxHUEwiKSwNCis7
IGluIHdoaWNoIGNhc2UgdGhlIHByb3Zpc2lvbnMgb2YgdGhlIEdQTCBvciB0aGUgTEdQTCBhcmUg
YXBwbGljYWJsZSBpbnN0ZWFkDQorOyBvZiB0aG9zZSBhYm92ZS4gSWYgeW91IHdpc2ggdG8gYWxs
b3cgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgb25seQ0KKzsgdW5kZXIgdGhlIHRl
cm1zIG9mIGVpdGhlciB0aGUgR1BMIG9yIHRoZSBMR1BMLCBhbmQgbm90IHRvIGFsbG93IG90aGVy
cyB0bw0KKzsgdXNlIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBNUEwsIGluZGljYXRlIHlvdXINCis7IGRlY2lzaW9uIGJ5IGRlbGV0aW5nIHRoZSBwcm92
aXNpb25zIGFib3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbm90aWNlDQorOyBhbmQgb3Ro
ZXIgcHJvdmlzaW9ucyByZXF1aXJlZCBieSB0aGUgR1BMIG9yIHRoZSBMR1BMLiBJZiB5b3UgZG8g
bm90IGRlbGV0ZQ0KKzsgdGhlIHByb3Zpc2lvbnMgYWJvdmUsIGEgcmVjaXBpZW50IG1heSB1c2Ug
eW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlcg0KKzsgdGhlIHRlcm1zIG9mIGFueSBvbmUg
b2YgdGhlIE1QTCwgdGhlIEdQTCBvciB0aGUgTEdQTC4NCis7DQorOyAqKioqKiBFTkQgTElDRU5T
RSBCTE9DSyAqKioqKg0KKw0KK0xJQlJBUlkJbXpsdWENCisNCis7IERvIG5vdCBjaGFuZ2UgdGhl
IGV4aXN0aW5nIG9yZGVyISANCis7IE5ldyBlbnRyaWVzIG11c3QgYmUgQVBQRU5ERUQhDQorRVhQ
T1JUUw0KKyAgICBfd2dldGRjd2RXcmFwcGVkDQorICAgIENvcHlGaWxlV3JhcHBlZA0KKyAgICBD
cmVhdGVEaXJlY3RvcnlXcmFwcGVkDQorICAgIENyZWF0ZUZpbGVXcmFwcGVkDQorICAgIERlbGV0
ZUZpbGVXcmFwcGVkDQorICAgIEdldERpc2tGcmVlU3BhY2VFeFdyYXBwZWQNCisgICAgR2V0RGlz
a0ZyZWVTcGFjZVdyYXBwZWQNCisgICAgR2V0RmlsZUF0dHJpYnV0ZXNXcmFwcGVkDQorICAgIEdl
dExvZ2ljYWxEcml2ZVN0cmluZ3NXcmFwcGVkDQorICAgIEdldFRlbXBQYXRoV3JhcHBlZA0KKyAg
ICBNb3ZlRmlsZVdyYXBwZWQNCisgICAgUmVtb3ZlRGlyZWN0b3J5V3JhcHBlZA0KKyAgICBTaGVs
bEV4ZWN1dGVXcmFwcGVkDQorICAgIENoYXJVcHBlcldyYXBwZWQNCisgICAgQ2hhclVwcGVyQnVm
ZldyYXBwZWQNCisgICAgRG9jdW1lbnRQcm9wZXJ0aWVzV3JhcHBlZA0KKyAgICBEZWZXaW5kb3dQ
cm9jV3JhcHBlZA0KKyAgICBDYWxsV2luZG93UHJvY1dyYXBwZWQNCisgICAgU2V0V2luZG93TG9u
Z1B0cldyYXBwZWQNCisgICAgR2V0V2luZG93TG9uZ1B0cldyYXBwZWQNCisgICAgU2VuZE1lc3Nh
Z2VXcmFwcGVkDQorICAgIERpc3BhdGNoTWVzc2FnZVdyYXBwZWQNCisgICAgR2V0TWVzc2FnZVdy
YXBwZWQNCisgICAgUGVla01lc3NhZ2VXcmFwcGVkDQorICAgIEdldE9wZW5GaWxlTmFtZVdyYXBw
ZWQNCisgICAgR2V0U2F2ZUZpbGVOYW1lV3JhcHBlZA0KKyAgICBHZXRDbGFzc05hbWVXcmFwcGVk
DQorICAgIENyZWF0ZVdpbmRvd0V4V3JhcHBlZA0KKyAgICBSZWdpc3RlckNsYXNzV3JhcHBlZA0K
KyAgICBVbnJlZ2lzdGVyQ2xhc3NXcmFwcGVkDQorICAgIFNIR2V0UGF0aEZyb21JRExpc3RXcmFw
cGVkDQorICAgIFNIQnJvd3NlRm9yRm9sZGVyV3JhcHBlZA0KKyAgICBSZWdpc3RlckNsaXBib2Fy
ZEZvcm1hdFdyYXBwZWQNCisgICAgR2V0Q2xpcGJvYXJkRm9ybWF0TmFtZVdyYXBwZWQKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBtemx1L216bHVhL216bHVhLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiBtemx1L216bHVhL216bHVhLnZjcHJvagpkaWZmIC1OIG16bHUvbXps
dWEvbXpsdWEudmNwcm9qCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor
KysgbXpsdS9temx1YS9temx1YS52Y3Byb2oJMzAgSnVuIDIwMDQgMTU6Mjk6MzcgLTAwMDAKQEAg
LTAsMCArMSwxMzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2RpbmcgPSAic2hpZnRfamlz
Ij8+DQorPFZpc3VhbFN0dWRpb1Byb2plY3QNCisJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQor
CVZlcnNpb249IjcuMDAiDQorCU5hbWU9Im16bHVhIg0KKwlQcm9qZWN0R1VJRD0iezQwODNGQzUw
LTVBMzItNDA2Qy1BNEE3LUE2MEE1OTJCQ0JFMX0iDQorCUtleXdvcmQ9IldpbjMyUHJvaiI+DQor
CTxQbGF0Zm9ybXM+DQorCQk8UGxhdGZvcm0NCisJCQlOYW1lPSJXaW4zMiIvPg0KKwk8L1BsYXRm
b3Jtcz4NCisJPENvbmZpZ3VyYXRpb25zPg0KKwkJPENvbmZpZ3VyYXRpb24NCisJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiINCisJCQlPdXRwdXREaXJlY3Rvcnk9Ii4uXERlYnVnIg0KKwkJCUludGVybWVk
aWF0ZURpcmVjdG9yeT0iLi5cRGVidWciDQorCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQorCQkJ
Q2hhcmFjdGVyU2V0PSIyIj4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQlPcHRpbWl6YXRpb249IjAiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJX
SU4zMjtfREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtNWkxVQV9FWFBPUlRTIg0KKwkJCQlNaW5pbWFs
UmVidWlsZD0iVFJVRSINCisJCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIzIg0KKwkJCQlSdW50aW1l
TGlicmFyeT0iMSINCisJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiDQorCQkJCVdhcm5pbmdM
ZXZlbD0iMyINCisJCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIg0KKwkJ
CQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSI0Ii8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkND
dXN0b21CdWlsZFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQor
CQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKS9temx1YS5kbGwiDQorCQkJCUxpbmtJbmNyZW1lbnRh
bD0iMiINCisJCQkJTW9kdWxlRGVmaW5pdGlvbkZpbGU9Im16bHVhLmRlZiINCisJCQkJR2VuZXJh
dGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KKwkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91
dERpcikvbXpsdWEucGRiIg0KKwkJCQlTdWJTeXN0ZW09IjIiDQorCQkJCUltcG9ydExpYnJhcnk9
IiQoT3V0RGlyKS9temx1YS5saWIiDQorCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCisJCQk8VG9v
bA0KKwkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNQb3N0
QnVpbGRFdmVudFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRU
b29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQorCQkJ
PFRvb2wNCisJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KKwkJCTxUb29sDQor
CQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KKwkJCTxUb29sDQor
CQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCisJCTwvQ29uZmlndXJhdGlvbj4NCisJ
CTxDb25maWd1cmF0aW9uDQorCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQlPdXRwdXREaXJl
Y3Rvcnk9Ii4uXFJlbGVhc2UiDQorCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuLlxSZWxlYXNl
Ig0KKwkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KKwkJCUNoYXJhY3RlclNldD0iMiI+DQorCQkJ
PFRvb2wNCisJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJT3B0aW1pemF0aW9uPSIy
Ig0KKwkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCisJCQkJT21pdEZyYW1lUG9pbnRl
cnM9IlRSVUUiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtOREVCVUc7X1dJ
TkRPV1M7X1VTUkRMTDtNWkxVQV9FWFBPUlRTIg0KKwkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0K
KwkJCQlSdW50aW1lTGlicmFyeT0iMCINCisJCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9
IlRSVUUiDQorCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KKwkJCQlXYXJuaW5nTGV2ZWw9
IjMiDQorCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCisJCQkJRGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD0iMyIvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQ3VzdG9t
QnVpbGRUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KKwkJCQlP
dXRwdXRGaWxlPSIkKE91dERpcikvbXpsdWEuZGxsIg0KKwkJCQlMaW5rSW5jcmVtZW50YWw9IjEi
DQorCQkJCU1vZHVsZURlZmluaXRpb25GaWxlPSJtemx1YS5kZWYiDQorCQkJCUdlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj0iVFJVRSINCisJCQkJU3ViU3lzdGVtPSIyIg0KKwkJCQlPcHRpbWl6ZVJl
ZmVyZW5jZXM9IjIiDQorCQkJCUVuYWJsZUNPTURBVEZvbGRpbmc9IjIiDQorCQkJCUltcG9ydExp
YnJhcnk9IiQoT3V0RGlyKS9temx1YS5saWIiDQorCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCisJ
CQk8VG9vbA0KKwkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0i
VkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1ByZUJ1aWxk
RXZlbnRUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+
DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KKwkJCTxU
b29sDQorCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KKwkJCTxU
b29sDQorCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCisJCTwvQ29uZmlndXJhdGlv
bj4NCisJPC9Db25maWd1cmF0aW9ucz4NCisJPEZpbGVzPg0KKwkJPEZpbHRlcg0KKwkJCU5hbWU9
IlNvdXJjZSBGaWxlcyINCisJCQlGaWx0ZXI9ImNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0
O2FzbSI+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSJtemx1YS5jcHAiPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIj4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlPYmplY3RGaWxlPSIkKElu
dERpcikvJChJbnB1dE5hbWUpMS5vYmoiLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIj4NCisJCQkJ
CTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlPYmplY3RGaWxl
PSIkKEludERpcikvJChJbnB1dE5hbWUpMS5vYmoiLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSJtemx1YS5kZWYi
Pg0KKwkJCTwvRmlsZT4NCisJCTwvRmlsdGVyPg0KKwk8L0ZpbGVzPg0KKwk8R2xvYmFscz4NCisJ
PC9HbG9iYWxzPg0KKzwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCkluZGV4OiBtemx1L3Rlc3QvbXps
dVRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IG16bHUvdGVzdC9temx1VGVzdC5jcHAKZGlm
ZiAtTiBtemx1L3Rlc3QvbXpsdVRlc3QuY3BwCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDow
MDowMCAtMDAwMAorKysgbXpsdS90ZXN0L216bHVUZXN0LmNwcAkzMCBKdW4gMjAwNCAxNToyOToz
NyAtMDAwMApAQCAtMCwwICsxLDU5IEBACisvKiAqKioqKiBCRUdJTiBMSUNFTlNFIEJMT0NLICoq
KioqDQorICogVmVyc2lvbjogTVBMIDEuMS9HUEwgMi4wL0xHUEwgMi4xDQorICoNCisgKiBUaGUg
Y29udGVudHMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBNb3ppbGxhIFB1YmxpYyBM
aWNlbnNlIFZlcnNpb24NCisgKiAxLjEgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgNCisgKiB0aGUgTGljZW5zZS4gWW91
IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogaHR0cDovL3d3dy5tb3pp
bGxhLm9yZy9NUEwvDQorICoNCisgKiBTb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGlj
ZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLA0KKyAqIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGlj
ZW5zZQ0KKyAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHJpZ2h0cyBhbmQg
bGltaXRhdGlvbnMgdW5kZXIgdGhlDQorICogTGljZW5zZS4NCisgKg0KKyAqIFRoZSBPcmlnaW5h
bCBDb2RlIGlzIHZlcnkgcHJldHR5Lg0KKyAqDQorICogVGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9m
IHRoZSBPcmlnaW5hbCBDb2RlIGlzDQorICogQnJvZGllIFRoaWVzZmllbGQuDQorICogUG9ydGlv
bnMgY3JlYXRlZCBieSB0aGUgSW5pdGlhbCBEZXZlbG9wZXIgYXJlIENvcHlyaWdodCAoQykgMjAw
NA0KKyAqIHRoZSBJbml0aWFsIERldmVsb3Blci4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCisgKg0K
KyAqIENvbnRyaWJ1dG9yKHMpOg0KKyAqDQorICogQWx0ZXJuYXRpdmVseSwgdGhlIGNvbnRlbnRz
IG9mIHRoaXMgZmlsZSBtYXkgYmUgdXNlZCB1bmRlciB0aGUgdGVybXMgb2YNCisgKiBlaXRoZXIg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMiBvciBsYXRlciAodGhlICJH
UEwiKSwgb3INCisgKiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFZlcnNp
b24gMi4xIG9yIGxhdGVyICh0aGUgIkxHUEwiKSwNCisgKiBpbiB3aGljaCBjYXNlIHRoZSBwcm92
aXNpb25zIG9mIHRoZSBHUEwgb3IgdGhlIExHUEwgYXJlIGFwcGxpY2FibGUgaW5zdGVhZA0KKyAq
IG9mIHRob3NlIGFib3ZlLiBJZiB5b3Ugd2lzaCB0byBhbGxvdyB1c2Ugb2YgeW91ciB2ZXJzaW9u
IG9mIHRoaXMgZmlsZSBvbmx5DQorICogdW5kZXIgdGhlIHRlcm1zIG9mIGVpdGhlciB0aGUgR1BM
IG9yIHRoZSBMR1BMLCBhbmQgbm90IHRvIGFsbG93IG90aGVycyB0bw0KKyAqIHVzZSB5b3VyIHZl
cnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTVBMLCBpbmRpY2F0ZSB5
b3VyDQorICogZGVjaXNpb24gYnkgZGVsZXRpbmcgdGhlIHByb3Zpc2lvbnMgYWJvdmUgYW5kIHJl
cGxhY2UgdGhlbSB3aXRoIHRoZSBub3RpY2UNCisgKiBhbmQgb3RoZXIgcHJvdmlzaW9ucyByZXF1
aXJlZCBieSB0aGUgR1BMIG9yIHRoZSBMR1BMLiBJZiB5b3UgZG8gbm90IGRlbGV0ZQ0KKyAqIHRo
ZSBwcm92aXNpb25zIGFib3ZlLCBhIHJlY2lwaWVudCBtYXkgdXNlIHlvdXIgdmVyc2lvbiBvZiB0
aGlzIGZpbGUgdW5kZXINCisgKiB0aGUgdGVybXMgb2YgYW55IG9uZSBvZiB0aGUgTVBMLCB0aGUg
R1BMIG9yIHRoZSBMR1BMLg0KKyAqDQorICogKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKiog
Ki8NCisNCisjaW5jbHVkZSA8d2luZG93cy5oPg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNs
dWRlIDxzaGxvYmouaD4NCisNCisjaW5jbHVkZSAiLi4vbXpsdS5oIg0KKw0KK2ludCBtYWluKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pDQorew0KKyAgICBpZiAoIU16SW5pdExpYnJhcnkoKSkNCisg
ICAgew0KKyAgICAgICAgcHJpbnRmKCJtekdldFRlbXBQYXRoVyBmYWlsZWRcbiIpOw0KKyAgICAg
ICAgcmV0dXJuIDE7DQorICAgIH0NCisNCisgICAgd2NoYXJfdCBzelRlbXBQYXRoW01BWF9QQVRI
XTsNCisgICAgaWYgKCFHZXRUZW1wUGF0aE16KE1BWF9QQVRILCBzelRlbXBQYXRoKSkNCisgICAg
ew0KKyAgICAgICAgcHJpbnRmKCJHZXRUZW1wUGF0aE16IGZhaWxlZFxuIik7DQorICAgICAgICBy
ZXR1cm4gMTsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gMDsNCit9DQpJbmRleDogbXpsdS90ZXN0
L3Rlc3QudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IG16bHUvdGVzdC90ZXN0LnZjcHJvagpk
aWZmIC1OIG16bHUvdGVzdC90ZXN0LnZjcHJvagotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6
MDA6MDAgLTAwMDAKKysrIG16bHUvdGVzdC90ZXN0LnZjcHJvagkzMCBKdW4gMjAwNCAxNToyOToz
NyAtMDAwMApAQCAtMCwwICsxLDExNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZyA9
ICJzaGlmdF9qaXMiPz4NCis8VmlzdWFsU3R1ZGlvUHJvamVjdA0KKwlQcm9qZWN0VHlwZT0iVmlz
dWFsIEMrKyINCisJVmVyc2lvbj0iNy4wMCINCisJTmFtZT0idGVzdCINCisJUHJvamVjdEdVSUQ9
InsyNkM2RUU1OC02Njg4LTQ3MDYtOUI5RC0wMzMyNDc1NzY3NEZ9Ig0KKwlLZXl3b3JkPSJXaW4z
MlByb2oiPg0KKwk8UGxhdGZvcm1zPg0KKwkJPFBsYXRmb3JtDQorCQkJTmFtZT0iV2luMzIiLz4N
CisJPC9QbGF0Zm9ybXM+DQorCTxDb25maWd1cmF0aW9ucz4NCisJCTxDb25maWd1cmF0aW9uDQor
CQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJT3V0cHV0RGlyZWN0b3J5PSIuLlxEZWJ1ZyINCisJ
CQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii4uXERlYnVnIg0KKwkJCUNvbmZpZ3VyYXRpb25UeXBl
PSIxIg0KKwkJCUNoYXJhY3RlclNldD0iMiI+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJT3B0aW1pemF0aW9uPSIwIg0KKwkJCQlQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz0iV0lOMzI7X0RFQlVHO19DT05TT0xFIg0KKwkJCQlNaW5pbWFsUmVidWlsZD0iVFJV
RSINCisJCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIzIg0KKwkJCQlSdW50aW1lTGlicmFyeT0iNSIN
CisJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiDQorCQkJCVdhcm5pbmdMZXZlbD0iMyINCisJ
CQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIg0KKwkJCQlEZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PSI0Ii8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRv
b2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQorCQkJCU91dHB1dEZp
bGU9IiQoT3V0RGlyKS90ZXN0LmV4ZSINCisJCQkJTGlua0luY3JlbWVudGFsPSIyIg0KKwkJCQlH
ZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQorCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9
IiQoT3V0RGlyKS90ZXN0LnBkYiINCisJCQkJU3ViU3lzdGVtPSIxIg0KKwkJCQlUYXJnZXRNYWNo
aW5lPSIxIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KKwkJCTxUb29s
DQorCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFt
ZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDUHJlTGlu
a0V2ZW50VG9vbCIvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRv
b2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRv
b2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQorCQk8
L0NvbmZpZ3VyYXRpb24+DQorCQk8Q29uZmlndXJhdGlvbg0KKwkJCU5hbWU9IlJlbGVhc2V8V2lu
MzIiDQorCQkJT3V0cHV0RGlyZWN0b3J5PSIuLlxSZWxlYXNlIg0KKwkJCUludGVybWVkaWF0ZURp
cmVjdG9yeT0iLi5cUmVsZWFzZSINCisJCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCisJCQlDaGFy
YWN0ZXJTZXQ9IjIiPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCU9wdGltaXphdGlvbj0iMiINCisJCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQor
CQkJCU9taXRGcmFtZVBvaW50ZXJzPSJUUlVFIg0KKwkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz0iV0lOMzI7TkRFQlVHO19DT05TT0xFIg0KKwkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KKwkJ
CQlSdW50aW1lTGlicmFyeT0iNCINCisJCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRS
VUUiDQorCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KKwkJCQlXYXJuaW5nTGV2ZWw9IjMi
DQorCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCisJCQkJRGVidWdJ
bmZvcm1hdGlvbkZvcm1hdD0iMyIvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQ3VzdG9tQnVp
bGRUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KKwkJCQlPdXRw
dXRGaWxlPSIkKE91dERpcikvdGVzdC5leGUiDQorCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCisJ
CQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KKwkJCQlTdWJTeXN0ZW09IjEiDQor
CQkJCU9wdGltaXplUmVmZXJlbmNlcz0iMiINCisJCQkJRW5hYmxlQ09NREFURm9sZGluZz0iMiIN
CisJCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDTUlETFRv
b2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KKwkJ
CTxUb29sDQorCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJ
CQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1Jl
c291cmNlQ29tcGlsZXJUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNXZWJTZXJ2aWNl
UHJveHlHZW5lcmF0b3JUb29sIi8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNXZWJEZXBsb3lt
ZW50VG9vbCIvPg0KKwkJPC9Db25maWd1cmF0aW9uPg0KKwk8L0NvbmZpZ3VyYXRpb25zPg0KKwk8
RmlsZXM+DQorCQk8RmlsdGVyDQorCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KKwkJCUZpbHRlcj0i
Y3BwO2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtIj4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Im16bHVUZXN0LmNwcCI+DQorCQkJPC9GaWxlPg0KKwkJPC9GaWx0ZXI+DQorCQk8
RmlsdGVyDQorCQkJTmFtZT0iSGVhZGVyIEZpbGVzIg0KKwkJCUZpbHRlcj0iaDtocHA7aHh4O2ht
O2lubDtpbmMiPg0KKwkJPC9GaWx0ZXI+DQorCTwvRmlsZXM+DQorCTxHbG9iYWxzPg0KKwk8L0ds
b2JhbHM+DQorPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>152095</attachid>
            <date>2004-06-30 23:56:06 -0700</date>
            <delta_ts>2004-07-06 23:20:20 -0700</delta_ts>
            <desc>MZLU 0.2</desc>
            <filename>mzlu.zip</filename>
            <type>application/octet-stream</type>
            <size>27122</size>
            <attacher>bmo</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>152484</attachid>
            <date>2004-07-06 23:20:19 -0700</date>
            <delta_ts>2004-07-27 01:03:09 -0700</delta_ts>
            <desc>MZLU 0.3</desc>
            <filename>mzlu.zip</filename>
            <type>application/octet-stream</type>
            <size>30476</size>
            <attacher>bmo</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAACx45zAAAAAAAAAAAAAAAAAFAAAAbXpsdS9QSwMEFAACAAgAtY3eMPhXCccnBAAA
tggAABAAAABtemx1L01ha2VmaWxlLmlujVVtj+I2EP5MfsVo96QuFQ3lPvW2qnTZkOWiywYa4O5W
qoRMYsCtsVPbWZb79R075mV3qVq+ENvPPDPzzIx9HVzDj/YHd8kozSFL4ySfJnCXjePP7QkivlCl
mRS38DDJYBAO+iP8fx/+3M/aj0FwjajZhkIphaHCaJArMBumYcU4BaIo6Gb5Jy0NGIkHFB7kd8Y5
gUmz5KyEjJVUaHrwhGzoBm4s8sqfXXV/hb1sYEv2IKSBBuEnF/S5pLUBJjCEbc0ZESWFHTMbpLIs
niSER08hl4YgmiC+3rfhHlFADJptjKlv+/3dbhdu22hDqdZ91KDv8p3KldnZ1CqmjWLLxtAKGlFR
9YILIzwHSPQp4CqaQjq9giXRTPeQ7Gs6+zSez+BrVBRRPnuE8T1E+SN8TvNhDygmgrT0uVZUo7gK
mE2SViFMKT13h1Qr2Qaga1qyFYrLiVg3ZE1hLZ+oEkysQbH1BqtERAWcbZkhBlXXp+iR5qDYsbZj
NGKCcIhl5dI6UwVVrM6gqWCGIXJInyiXNXJ6gV9zID6nRpekpri13TaClT6WWKpaKrdAYphI1e6X
ihIr5HLvGN+6siWJsaguR7iJuzD48OEX3wdv4CFEnEPR6lFQTdUTyuoyibGZXdmkutHdW7cXcYMS
YlRovu85yss9b3tsSW2XnjcFGm8tEJl8Tb0wo3wOIyqowtguzwS8t3XnmLvyg4HDd9W1zeMLbjky
7A8E/BcVDtcrsuzIhlOx27ByAyXRbW/VSj4x7dQ/hItz7726O8BqTmpsyZIsMXkmtKGksqFZvLQj
tcTmCyFduSHeMb2xVwHhXO7cKEt3oODJh/hCTCn4Hsne6nhQ8UJMPdfd9qY4+pEWq3FtudDnvzu8
4MndWpaWico2aWuOTBWOmWPAjqwop8YO2CvZXPYuIEVrTkqn69ZdUA6KYWKJkMxCXJjn1or+3TB1
6vlXmR5VraTL1wVBfcO/DgJlQb6S1Qx71nXp/1DCcx21IAKvTEFfyHIpMDcy7fuS5MOLr0swTCaz
T53ObxCG/TAMjKy1KiumcOcjLhbt6mPgd+32YevLJGpNjzsBEyVv8Gp5d+N4u32czhVb9wlOsf0M
t38FwcN4OM8Sa/hc43MRfJukw2zhd/3mYvudN0GW3hVR8bjIo4eXJwsdjIrkZDMIiuT3eVokU1y8
u8nnWdYNhmkxtV6sAQmCeFrEx3VYwh9Bp3OABsm3ybiYnY437ti5WtV+5cGdTucMf2v9karCp2HF
nvG71aLb7+G3R3XRwTXs8KmS4gcDO4Kld0/Ehti24mzZA7znLKI9k/YVabu0vXB9XxDQ9q0orUkY
3I+LOFlMZ9EsjRcoFVgd0NG9s/VTPUljD5xPkwWunFpnhTpW/Fgs1XCqXaWwUaJskeZxNh86aX9K
sUf+AVBLAwQUAAIACADldecwuknX3PwNAADLQQAACwAAAG16bHUvbXpsdS5jtZxtb9s4EsffB8h3
YB3gahfZJE1bYNugd3BtpzXqp4uc5rrdIpAlOuZGlryUFNdZ9LvfDPVgSiIpda+XN02sH4fD4eP8
TfX0GXmGP+Td4P1wQkbD3mBiDci70bT3MXlyeECekU+Uhyzw35DxbESenzw/fQ//np+cnY6SX54j
Jcj5ihIn8CPqRyEJliRasZAsmUeJzSkJ48Uf1IlIFMADSsbBI/M8m8zihcccMmIO9UOa1SbsQWWk
jWwrfdrqXJBdEJO1vSN+EJEYCuwrod8cuokI88GJ9cZjtu9QsmXRShhDO6mZE/I5NRIsIht4G0ps
donLOUXsSBRcRdHmzenpdrs9WSc+nwT87hSicZq33AqW0RYb6bIw4mwRR9Qlse9SXrAInspAADX7
pNW1yNBqkYUdsvBYmLsZzj9Mr+fkpnt11Z3MP5PpJelOPpOPw0n/mFBoEhim3zachhBoThg2l7on
xKJUrlAYWwaJE+GGOmwJofZs/y627yi5Cx4o95l/Rzi7W0Gf2b5LPLZmkR1BH4T7FghDWfQK/T2F
osy3PdILXNFAMLkj4FkU7Yrk0GcRA7BPH6gXbMBwGu+yCVHiHQ9cRqEgo+GSUc8Vxsgs4IlrDqc2
xnCxEzaqxrE3etCrommk3euQ87Ozl/lQqBQ4IV3PI1dJIK5oSPkDdfct6MG4Fv0W8HbYeZN/3vUi
iCHEC8zsjoVp9RTA4bagOGTlkQGF1wgKW2nH4ufvJ9fkPfUpBxfVM4ScY897EASeThKYjq3OMXya
NxKtjGCMAFJnDKZaydwosSeMwRzZrpizIo4dJiNsw4MHFoquSLsRV4N0qImVATvA3sDAdOwFtJ/5
YURtV5gTJQKcYgsYgidkuBTTesvCFS4PtucFWzG5A/GA46ASbhYiGvjeTpirhrMQyqJfx2KU4+qR
1xQgG8LfiTWoV1+poi6xmqFh5rvQ2CgpLmy5MOWEDRimLvVohJOtFD4RA+EUpxvPdkR812LhEii4
Cp0lzCEknJXLc/pnzPh+KpTam0fXDUSrhRs0HyJlRyA8YNFhGwZDWAzaBvHIreUxsX1YTn1aCI/K
uXweJTvRYNJX7UPkGSy1hwdHzHe8GNaI1vrRi09WLfzw8OD0lPzyE3+EwcvYd3ChgQWH+Tgn+nTJ
cMmAQKV14prW2y+muLwS+JXbwFMYTSs7SuK0hT0Dp/4j5QFhybrDHqkLAybCFXMBayXGEGzCkPSo
DcMBnti4HidLu4NgVlCszYTb6QAHBnYCwXg7suVMjDEGe9eRiz5T0h/0Rt2rwe3l9aR3O5tftZfQ
uA4hy83REf56dHRDkn/Hj9i2Cn+7vaOR62zdzoXiaQ8m0Q0M/WA744GjRlY2v97AImt++i5eLtUE
rOOXMNrUD8VO0Icp4MDivGvCDL4ZqMEDjHzD8xpH8PEY1j3oBQM1tpkXeoGpnjGcEUx+YrRhbTcQ
Fl3bm1XATe4mPacJCAz6mp7ti9VEG5I+Czd25KzG4ChMEjUTOPEaQg51wBiIYL9XYoNvG1j+Bv4D
44GPvAX7sX+nhi/B60vGw0jrGRIT+s0AcEob1vaeRj3PDsOJvaZ6gG0Wgc3dy4Cv7ciIxpxDjeYR
DRwE9x69tDawaTSCsJsJgXWm/3nSHQ97T8gX6N/Xr8jUujo/JvD7ZE5eftVY4nDGme822qqaR0si
P9mc4flAh2L/dKP0yKw1eBl73gxWRFNYR8Ed7M6eaEaNf6PAv6szZxrS+DhwY09MDKMRQX2Aga2P
wHRD/To7FuwZtQysBFFdq6zI5lG8GfrLQIvs4CC3rh2dCZYsH2EtPafrTV0DkEH/dc+TukTfRdwM
1Tg0Cmx3xBbcrn+uWTnHwYN+VcQe1e8yWX+bNhFk9PsDPjWv/dM42sRRny7iu2QqKKkZpfemYX5F
7yAt8iGQ8BvmtTstJvaaj7Qe0MQTkGSrMdhIgE+2F2vdHfjx2mAhfaz3AQFjBRAFysVmUEMUdgMd
i+PM4C72c/1jfWv+HUOujlPdYEQwxibvCX1NV0lmY6gHMm6YjiYC17j6x3ofLBoZ25E911u49s0d
soZJb15YLOq7phklPZ+zNQ3iSIM1OyRYzbdaq9FWm1JiK9Eu1VaTpdj68I7DOkxhAlwGnqtJDawV
9bzBN+qARxozsKbjpnDJg/WwP4LZpeSufV6enP+fxLE7G6LpECU0B5K2iJC7W3/m2dESpjqcvoo/
UCLL8CB7OxNJMqeAQs782+1kOr8dTobzYXc0/G3Q15q1KH9gDp3Zzv2FyuzhAZx0KfeTguNHjFla
tN0p+PMXJP9RDGTB6e8GA1LdaEtloODe3ta76XQEtoZwbkb57NpnTuBSyaHcVlsyRv5JzjrkX2R+
dT0gb8hld2QNhFUp7Gj58ADGYW7z8OCvfUJsDebJyLieDHvT/iBLiOWfLCEmb9Nfb/Tlb+EwPegL
K8c+zopiefwInUs7BrZ1igoU3QpIZPPuXl3I9HFgkiKa2vKk/JgU8nNVEUWOrsbkPN1MZLm6mpLy
dTVQzdmbcMnSbCDzU5WBaeBY6fhlIOU83oRlZzUDI+XzBqpwrjNwcl6vxCq5vYaS83s1Us3x1Zwy
z1eiplxfWaCS72spOedXQ9q8X4mXc389pMz/tbhie9exFR1AC8oZvA76sbZrjhc6vHrE0JKljF7H
abJ6PV7M7HVc3WBWZvhmcp/l67hypq/jytm+litn/FqwmPVrsWrmb0ZVybauRFkBMHGZCqBjKsdP
M9jAwZIiUMcY1l1ZGVACBXVASzTZogoqgZao31GUaoGSLCkGSkatGmhRWTmohQxxLysIZijPFHWY
pCTUIGafCoqCDiomLjVURVnQ8VIyq0MkhaEGMbeyrDQYudpwlBUHHVdUHfSUrDzoKEl9qEHMPskq
RB1jtlRQIzRQRZFQciVVoo6RlAkN2vz4Yv3YEcJqfIRQKRU6sNl2oVQs1GRJtdCYUyoXSlapXqTp
5Jf0u5yvJKQRXmgg7g4yTjwUQervwRChLmGwGYdJkep3QiJJbS831Sc3naRMWg4zha7r4q2j8rGm
3bqHlJ56L85PXM/DaygthblW4vkRXhpYVpqZNSpN+jHBB/y7Kq+/4ZhFu2lej4U+jKf969Egz99X
iXdypHC6ELzI0B+Nkq/nUSOha3FXBwOXXlbYCuM8z86Te1EY3SzCAOZWscSehOR9gzcG8BcWnZBJ
ENGkri2FlP8BzGLHEIxKelbAa2DinkBuciVCmtSKZvIbBB617/HeAAz95OaUlTxy4IFP4g2xl3hX
IQ5PEltpEKB7pbNJty2uT9hJR6VDji1JO6ffksn1aCT1fdojidYierCshNxcdWezVAPpkN+TopIG
0pYuG3TKYymt+JgIgrTS3sXbfr/v3XuSmesU/PkZykrmvV5IyYgaISXHtEJKhVAKKTmlE1JyoEZI
0XCKnaVIqg+gRaaBY6ZTapHUCiklTHmcLTI6IaVI6Y+9RU4rpGSYWUjZU1ohJUdqhJScqxdSMrSx
kJIVMAspMqUVUnKomZCS4UYhpQDVCykyXncSkVizkCKDWiFFgn6s7U1OQRJecwqSSZOQInFNhJQC
bhBSJK5uMNcLKRVSI6RInFFIkTijkCJzRiFFBg1CiozVCCkVtFankEoYhZQSpxRSJMZ8Mq6ADRw0
CSkKxrDuaoWUDNALKTLRZIvSCykyUb+j1AspGWkSUjKmgZAio1ohRQUZ4m4UUiqQOtmVMJ2QUkXM
PumFFAkyCClVyiykSLwuD5cQnZBSRcytNAopZa42HEYhReIMQkqB0gopEqUTUqqI2SetkKJgzJb0
QsoeMgspGWcSUhSMTkjZo82PL9aPHSGsxkeIWiFFApttF/VCSk6ahJS9uXohJWN/ppCCOelPEEW6
rY6UadceS5OhXNVQUl5qzzZ57c4PtoTHvnjNS7xTksgb7j5FxgaGddILahqHB3ggke57JIUcyK0j
4kBCi6+opG8U7ZWZ1IBEhY+SkS9fyVvSSj8g+AlpXRRKYtVSgUm8XlA+XS6xm96SkD3SYNku2OyQ
X8hzSdmAvdF31pt25txx0YVjnflOVQM5uyhEKrP4RWPhK3jy9OypTsfKLrVgLiGJWVPr0+DKGk4n
w8nltEuC8IGl1f5GeTCG1Yjv2v/Aj4+z9uMfnWzc4x8n7hbMJN7hhmEBtw+XwKUIPYGeTWEYkont
jkkBEv0D48lZkXZa3dj+I+D77hc3eNIRgm+NvXizNyff53mLN51mo+78cno1vp3MX7y6UIJShKFM
aSQKF8LHntXPHJCMLOBUc597LZx5KTlTbgbzy82QmpJbOJMsZFFMLWQeD13U0qAr9827GU5enEMj
O8XCfxX/rAvRywsj//cjhT/fi39ST7xH+nedff1K4WseK9mPL2dfMVxPe0871RLGFp5f4HqH7zAY
W1IcBnlHPi/3pKExv15oOl3VkK6qITWNeP0rKpoNvH7d3OvxQPL6u3FavPrp00Lv1vnHi2b909ji
f2bNLJ7/gI8vNCYV8fyfZ+B31TcgJN065EuThwfjR3yBOU2SpZ0DL34m32J46bcLDL/bAKfdnfzu
ISJ+dkRwA5/utwI5Gk/eKq6hVreF9LyQu0A5x7fSl1iBY/tP8a1TfDUUvzJIvreQdp7KNli37SRt
TN65JukNT7LJXBYNk76oqXw/k5ZQNxgvl1aqly+SlrwQX9yIb3SWKGAntRerxAjj/zHg5+Vi/x5O
Zb4431A4nQTr/PVwcPw4ex85+18OFrRzUhgX8hdgycniv1BLAwQUAAIACABsd+cwchnaNTwBAAAw
AgAADgAAAG16bHUvbXpsdS5kaWZmpZDfa8IwEMefW+j/cA8+KG1sIzq1IPirbB1awSqDMRA1qQuL
TZdW5/zrl1oVh3vbEbi7b+5zd4kfE3pw4ZCsxdYeLz9oxDitstjQO/83Q58OQsg7umCv96kUIrO3
4sg4X9p3I629oUuaSUb3LN6AVC5lIgZcrbUNnbAoApQAmrcAyVyDX+sihO5foeEW9BIJNcepA667
uOViDMhRphVtTdP8A2vC844XlNNwG20XtwvK0LtdQI2mhR/AzF0TlDD0p6GmdeDN0EHTsndJlyQ9
Z5JGnK6zc5ZIcfg+x6sd4+TCCMEvRKkczEejiorVYRH9hHKpPAkXvengqWK9+EEwU5dmMdTswPbI
d6dKQiMYT14XQ68/f1TKteKLxWS1IXyjRBqrn7zxV9ILev2Rt5h54Sy8hU9LZTTNTvv9AFBLAwQU
AAIACACldecw+SwEgs4IAACRHwAACwAAAG16bHUvbXpsdS5ojZldb9s6EobvA+Q/zGYvtim8TpO0
wNkWvXBsJzXqr42cetvFIqAl2uZWIrUUFcc5OP99h5QsSySVUwNBbL18hsPhcEhJF2/hrf7AzfBu
NIXxqD+cBkO4Gc/6Xwvl9ATewjcqMyb4R5jMx3DZvby4w/9X3XcX4+LLpW5lWi62FELBFeUqA7EG
tWUZrFlMgUgKWb76Lw0VKIEChYl4YXFMYJ6vYhbCmIWUZ/TQm7GHncEb3fasVM/OP8Fe5JCQPXCh
IEfg2Al9DmmqgHF0IkljRnhIYcfU1hjTdkozXfheGhErRbA9QSLdFy5XrYAoA26VSj9eXOx2u25S
+NwVcnOB0bioRh6ItdrpQUYsU5KtckUjyHlEZcMielpvILBnDme9AEbBGaxIxrKOMbccLb7MHhaw
7N3f96aL7zC7hd70O3wdTQcdoDgkNEyfU0kzDLQEpodLoy4ElNY7NMbWonAiS2nI1hjqmPBNTjYU
NuKJSs74BiTbbHHOCI8gZglTROEcZMcRGEOH6DXme4Yo4ySGvojMANHkHtAzpfbNliPOFMOGA/pE
Y5Gi4TLetglD3EgRMYogo9ma0TgyxmAuZOFaKCnRMVztjQ3XuJ6NPs6qGRq86Z/D1bt376tUcIAu
9OIY7otA3NOMyicaHUfQx7w28ybkm+z8Y3W9FyuMIcYLzew7xrR/Ceh0W1GdsvXMQDjRDY2tcmL1
9bvpA9xRTiW66F8hcKVnPsYgyHKR4HI8O+/g1WqQ2soYcwSb/JkxXGqWuXFhzxjDNbLbsnALIcmK
DEuleGKZmYpyGnU1KFPNVAY9ASTFxAzJCsfPeKYoiYw5Qwi9xFaYgl0Yrc2y3rFsq8sDiWOxM4tb
GEHqpDJuNiIqeLw35txwNkLZ9KtjslxXj6onodtm+Luwhv22d+rpy1QzbZjxCAerCtzYinDJGRuY
phGNqdKLzQqfiYFxStI0JqGJb2IKl2mKruJkGXO6kXG2zkv6v5zJ41KwxltFNxJm1MYNWqWI7QiG
By2GLGWYwiZpfyEelbUqJoRjOeW0ER6fc9U6Knai4XTg24fgLZba05O/sjX2tobRtD9+GAwHj5Mf
4we8jNcY9mVfTiXZJATd0NE7Pbm4gHXOQ10+IBWM60w3JFOHNF6OptdXJsr9+wX05iPdJw/jHOvS
WfIS54/rtLs9K33Rrjw+hmmcZ/rv9IQ+61oAZ/0z+B1bUEyHddlzWW7YS7F6YraSBOukrs253pAW
OqDZVuRxpKtEpGO3oijTIpRm0o0lPbhqIJlZZSGmsalVpQM3s9kYJi+6z3HR0ZvzT46aTU3VeuAs
xLpbb4GxAWxxR9UcCwI6kbyuBlgrMUXnJPyJDUEPmfI8wUaHFot9SvH67/gH+Jn8eJzOFo+j6Wgx
6o1HP4YDgM/wrmNQ3UCP0/UQPn+G2944GFZW5uPe4nZ2P3n8xwcwn8/w98tOYQAvYftgjmZnwf1V
8ePKg/5WoVcH9LcKxURsAyfDCrz+FdcX9w8ez6eL6w+FlcuOT31f9nHVAVe++npw4doD/2t+UN93
fOx1qX44PfnjU5moJMLiSHfHpVJfIvqoFKdbssJCFuI6Nku/Sox1+rjbUBWFu2gJ9qeSJi+fakQf
U3eJdVPs5lKEDawpWdiWyIcUd+2bfL1udtaQWijXvUqyCDxA3GKZcwE4SBZgjiUDrMchnhT2w+cj
6UivkvUeLcnHDZ+wXNte1iQfY7zHHRr3JNvLmtRGOiGpkR5kQlicxaLpY1PyYnhQfvaPy0g+RqcL
HnqWHqaUfFRAE5JuseC6ka8kH1ek6PDZM7CD1MQGdN2S8dCQbEpv297AHyULYVlKVLid4IjxuF/n
LMniRJgnmDPoBC4IhQfwCnWlJjp8TnH3HPInJgXXDQM8NPONNtAmNQ3c4vBvmcyUO9KG5FJT/OUJ
T12yIEmp11OEvFITx/2vH5MMC31i91mXPBBLV4LI6Bb3RaIq3C+5eC4luuTUCY/ksDjrP/XQghRP
mbWMdSVEzU42+D7tTUb9v8C/MS9xQ9UbaQfwO+5L/3nF+LIRjIbkeiVxo9QHBDeKleRALRMHXuk1
+huRTN+fLF36IDm4zqWeKm/ja3XGkVwyj+M5UVs7aSzJ4cZig3cWsYlHfbx+yYPzTUu3dcnhPJXj
wHkrh74uojw2xajZmSO1kF+wSMS2k3XJ4WYp5W5/hqtLDheQJ9rC1SWXw51AeaJpSy6oiFR5OuJr
sbSiWZNcbI83zol7MHClFrTYUrKahVbJsbCgSdoSpLrk5XQglm7mHCSHKZwxCalkM7ANqQXMfDXx
9QGOBYnKOyRrA4eG1ErZw6tJTWYinmjLQfIgNQGdut5DHUAluYT3SFcQrUc6LXqPWQXnOWbpy97j
UkG0HJdmuUpzNaCrfFPUqSPpSE1yTunPllJUk5rMPd30Bec46/hNP3M9zpUruag5v32ldlo0pXbM
crMuOVBxfPNCldQCfSNxTpdeyEgONsTbcndUBqukNshJj6PkRVznKsTvHE4FlebgtLSho9RGNU5O
ywbVkBxeL9mW0ZWSg+gkb4liJbVBvn5KyUH+mVO513uCxVmSnzMxbrpoSa9wzgQcJYe6L55aOmNr
SB4qw3rcQh0kh9Ibc0vkK6kN8kW+lFyEKk/8CqSSWqmlp6NScpgH7k/AumRDCe4Y3gcFltTkAsqj
lipak1qZBUuoyI/bkSvZaOu9SvBn9ypB+xE9+IUjetB+RA9eP6KXsjnHWUceW3LAtuNL8OrxJfhy
I/GAQrE63Yo4qj+bciSL3NI4Hj7TEIdhTWhdsrvTz23x9HUrRTIajLFEVrPiSk32gcu2Im1JhjOP
E9WWZhTKx6D6iXr5KjhNMYw0gsObM/3yQt9iPpun75Hgf1PF425OsdVOFgcX3SrPurCkIGn51N+8
IsH5MM/SQ8Ez7QYP9bsQkW+23eP7AX2LLJIEOxjjz8mLfct+1JZHqHZ1IXpy81TjHG3Z9mbgj/rr
gOKbvr223lj8H1BLAwQUAAIACAA2fOEwkHaHctABAAA4BwAADQAAAG16bHUvbXpsdS5zbG6tlM1v
mzAYxs+NlP8BceqkGtlgjDnsYBuYdtg0LdJ66YUEJ/Lk4IiPalvX/30mH2uaNKvZdsH4feF5fjy2
+aAWjWnNsvO+qLYvtTfr+koZb2Z03ylTe4XS8sYrTLMu7TOyaYdiEkA4nXxqzFe56K79B8pFKnJO
AeWYAYQyCGiGEICQQZEi28Xho//Ge+v56x+69292Y3C/2FiNYfoAizDHMQ0BwpQBDLMCcJ5AEBJe
cJxwxFj86E8neV3tff8BoDwQlHfb6zEIhjQqRAxBzKLQghABGGYJYASyOA254Dn6LyCdbLvBcRjv
hssxRUgEyfOYAkIoBTiBBKQ8zQCMohAncUISXJxSvNNmXurp5Gp3M7NFu1jXh6UUpl6qVd+Uw2Qg
2DTy0LMvXe36H8u1DKDtZnLer07qyNY/Sy3LVtqO9X7mdOa8J8vkRtaVrBdKtltf03bHxm4fu4Vy
2yYj2M5DOYVzcgy2aQXMat9LsVwd8vt5q+ooHK3De6Wrp1UYrbJfo2c8+9pfaz0xnSs5nRmHjMbo
XM7ITcUto3Faf8rIbZO/ntEYncsZuam4ZTRO63JGr57Z/Fsn61bNlVbd913rpR/KOB1WVe9rN5nf
lenkF1BLAwQUAAIACACNm9AwJuRd4AgDAADrCQAAEAAAAG16bHUvbXpsdS52Y3Byb2rtVktv2kAQ
PidS/gOyemgV8QiQh2TcKOZVVJIgyOMYLWaIN1nvWus1hbT9751dLwInhKSXtoceELuz38x8Mzuf
7cbpPGKFGciECu45B6WKUwAeiAnl9wWv4CQhnaq7B5o4p5/3dhs3NEkJG6l0QsVAigcI1N7ujl1d
LWLwnAxSaO7vO3h0s4x8XKpUtOGCRAiKnljqrDy7172W53yvdKrt+uFJtXhQPzkr1iutTtH3jyvF
6pHf8evH/sHZ2eFP7fYVFt+EnHjOLeW1qg7iILudxoARNRUySvRutdUbm9g4OGWDLufgjabgU3qf
SqKQsI2Qs62FacE4vf+RBTPmy1TFqWpRidUIubCI7KzHFcgIJpQo2IzIpcnaWLcnIZEkQP8RKM+p
mjKR15UQzKwsn5tms98UUUwZSH2WOe9cxopG9MmE9ZyKtQ4kxFIEkCRCtmBKOTUVY3N6F7Wqe9dq
+9dd967f863DOUIiwoZImDLs+tXwum2PfJLQYJhyzAPNEIJHDFOzZ9bcp2NJdMGH1n6dAFIIMrqT
L0AmIFfsbonkOHx9mAFbxWqBwr4d1X2qBkIqMqaMqgXe/JhBlOQomb72uL5YU3jHLHRHy693L02U
iHxdnmnf68isGkr4epvN5XewGs/58PHSzMGnsp7xEqPjLcHOe63+G/kGIlGGV3sGXL0FlvA72D7l
j++BDiERqQwgN2Gvw29hPAI5owFes5gvusABJ1usuzXKuZHfLrYhMCAJbJWbxWwVXA7zZyRn6SIj
Rjl0Uh5oe3seE24fuEu3iKqOxMADQTX7/Ei/odiLF4odKYkaGiAt/MuFei5KW/ROmxOU0pKhUZ8e
j+fuf0m7tf/a/Ze1+8yUvU91T+1rFJc402uSHhlOBQPJLiKDeE4Qx27gBvO5O4GpKybMpfgL4wd3
TJRLkmipR+1rRxrwPU5nMCAqzD4tSsESVdYwSztL8QqjbJQ3MQoxe+yGyCiMXMqREA/eRSJ8SWK7
x9003uS0zjwzZw3uMjEmLFuXV5tGecNXGtp/AVBLAwQKAAAAAAAUeOcwAAAAAAAAAAAAAAAACwAA
AG16bHUvbXpsdWEvUEsDBBQAAgAIADuT3jD55doNMQQAAJAIAAAWAAAAbXpsdS9temx1YS9NYWtl
ZmlsZS5pbo1VbW/iOBD+3PyKUbsfyh4Xrr0vuz1V2jSkNGoaUAK7V+kkZBIDvnXsrO2Usr/+xk6g
tOV0hxD4ZfzMzDPP2GfeGXy0H7iJRnEKSRxGaR7BTTIO79sdtPhKlWZSXMHDJIEL/2Iwwv9L/7dB
0g4uvDO0mq4pFFIYKowGuQSzZhqWjFMgioJuFn/TwoCRuEHhQf5knBOYNAvOCkhYQYWmO0+Ihm7g
3FqednunvT9gKxuoyBaENNCg+YsL+lzQ2gATGEJVc0ZEQWHDzBqhLEoH4sNjByEXhqA1Qft624a7
twJi8NjamPpqMNhsNn7VRutLtRogBwOXby6XZmNTK5k2ii0aQ0toREnVKyyM8NBAok8Bp0EOcX4K
C6KZ7iPYt3h6N55N4VuQZUE6fYTxLQTpI9zH6bAPFBNBWPpcK6qRXAXMJklLH3JKD90h1FK2Aeia
FmyJ5HIiVg1ZUVjJJ6oEEytQbLXGKhFRAmcVM8Qg6/oleoTZMbav7RgPMUE4hLJ0aR2wgiyWB6ax
YIah5ZA+US5rxOwIfouB9ik1uiA1xaWqagQrulhCqWqp3ASBYSJVu14oSiyRi61DfO/KliTEoroc
4TzswcXnz586Hbwz9yHgHLKWj4xqqp6QVpdJiGJ2ZZPqXPeu3FrADVKIUeHxbd9BHte81diCWpUe
igIPV9YQkbqadsSM0hmMqKAKYzveE3Bp684xd9U1Bjbfac+Kpyu4xUhQH2jwX1DYXG/Akj0adsVm
zYo1FES32qqVfGLasb8LF/u+8+ruAMs5qVGSBVlg8kxoQ0lpQ7P20rbUAsXnQ7x0Tbxhem2vAsK5
3LhWlm5DwVMX4isypeBbBHvP447FIzH1nbrtTbH3I62txrnFQp//7vCIJ3drWVgmSivS9jgildhm
DgEVWVJOjW2wN7S57F1AitacFI7Xyl1QzhTDxBIhmDVxYR6eVvRHw9SL5t9kume1lC5fFwTtBP82
CKQF8QpWM9SsU+n/YKLD2nNBBF6Zgr6i5VhgrmXa9yVKh0dfF28YTaZ3JyfX4PsD9/WMrLUqSqZw
8QtO5u3si9et2uXd0tdJ0J7er3hMFLzB2+XDuYPuDbBBl2w1INjIduhX3z3vYTycJZE9+Fzji+El
8U0WZI/zNHiIcLH6yRvi5XfjbDrHrVer3iiL5t35a7jwJkF4H4yi+W2cRNAZ+fX3leeFk0mehbn1
8pd3ctLuFHXtZh/O01mS9DxvnFsXaPXLNcZcoFQh+nMSpMOd57590wrDf7+0g5KvcNA0DIXCKQ4t
mF5TbvdxBdPEwapk+MuqCn832I61lBzQ2RncSlXQXctN4tC7HWdhNJ/l0RxnNiPwXL1RAfglfEO2
GvQaW7zsg8B7U4G2D0bRnczvgixywYKl44D/fSH3NVANp9oVACUQJPM4DZPZMMrR7a8xlv4fUEsD
BBQAAgAIADV25zAtIZ1+0S8AALspAQAUAAAAbXpsdS9temx1YS9temx1YS5jcHDsPWtvGkm23yPl
P9T4SgnExHFy946u4jgrAthGg4ELeLzZ0Qg1TWF603RzuxtjZzb72/ecelf1A+wks6PV8iExXadO
nVedRz2aVy/IC/yQD53zbp/0uq1Of9whH3qD1k+85ekT8oL8TJM0iKO35HLYI6+PXr86h//fHB2/
6vE/XiMUg5wsKfHjKKNRlpJ4QbJlkJJFEFLiJZSkm9nfqJ+RLIYGSi7jz0EYemS4mYWBT3qBT6OU
ytEYPhiM1BD2QLQe1E/IfbwhK++eRHFGNtBBD0LvfLrOSBABEat1GHiRT8k2yJYMGeIRaI7IR4Ek
nmUewHvQY33PSVZQxMtYx2WWrd++erXdbo9WnOajOLl5BdJ4pTgfx4tsi0zOgzRLgtkmo3OyieY0
sTACpSZADCNH5KA5Jt3xAZl5aZA2GLrr7uRicDUh183RqNmffCSDM9LsfyQ/dfvtBqHAEiCmd+uE
piDohATILp0fkTGl5oAM2SLmRKRr6gcLEHXoRTcb74aSm/iWJlEQ3ZAkuFmCzrxoTsJgFWReBjpI
NQcMkZSepe8BdA0iLySteM4YBJT3BCjLsnsbshsFWQCAbXpLw3gNiIW8XRSsx4ckngcUOgY0XQQ0
nDNkZBgnnDQ/oR7KcHbPcOSRozZaoFXGGqm16uTN8fGflCnkOhyRZhiSERfEiKY0uaVzzUEL7Jrp
LU5qaf2tet4MM5AhyAvQ3DcY6uIpgOY2o2iypmVA5xUCMlxCsfj8vH9FzmlEEyCxeIaQN6j5EISQ
iEkC0/Gg3oCniknE0gMbAZBdyGCqOeh6HB9DBnNkuwz8JfG9lFvYOolvg5SpQqgRvYEwNeYZUAHe
GgzT92bAfxClGfXmDB3rEeMUm4EJHpHugk3rbZAu0T14YRhv2eSOWUOCRsXItCQaR+E9Q5cXpyVK
m64Gs3L0HmqkGGFT+M6xwbjlgxaMxbwZIg6iOTCb8e4M1xymHMMBZjqnIc1wsjniYzJgRCV0HXo+
k++KOS4GCqSCshg6BGLEmv0T+v+bINFTweFXSXceM64ZGVSZiEsIiAcw+sE6ABNmRruHPBQ2JRMv
AncaUUs8RcSpecQjUaffLopD5AW42qdP/iuI/HADPuIdTZIoPlq+N5/5STaf3dgPD46OXq0+h5vp
Yn20PEAcT5+8ekVefsMPQ3gexjMvTBF9is7TJxfd/njS7Lc6xPncTJddmAoYnNq9nn5+SvpXvd6J
oPCX9sd+87Lb+lUhXKzPadYO0k9nCaXjNdhJ567JERY3GAi/D9NIvnCjwWcWMXCkD4NBjzSH3U5/
MvpInj5ph+ElxNiaFojJf4O0rwejNplvR9RL46hBesOfB902CdfSB5P60ye/gY3AJ1iQmoQkp6dI
wXQ4GrQ64/G0OZk0Wxd1DijgC+R9ag3PpCMhgaUtRPA4ep6RiMLA2RKCDPMVGDd5TNTgIHJ0bBMG
1AtmiZfct8ChpDVzhPoJ7/FFjgSRcZNEZDK66kDTl++lnMsPrTF59/I9uep3W4N2B6OSnMDoRmab
xQIn7tMnGYXsAbzWuwAmPKio9dN03P1rB6aRH3qQX7QuZ376QYCDYNcsgrzl3BiNtTrRwnlLVuLp
apx5/if+hUUT9REQ4+AzrelxHZgejW6yZe1YKlYL8h/W2Dm9o62IEcizZ3Iw8sMpsSgyByNkAVNI
9sppbhbHIWRYWcuDSRZk9zUUmHcZRPJBMREmBHlvcm0M/ptNh0l8NcVFVNsQQoRg+ccnTosmRbQW
tkNbzV96CXlRh4AAEdO3eKqf5Gn/QVLjMoYfEGHPS7NOkkAu1RmNBqNpfzCZdvqDq/OL6WXncjD6
6CI1Zs4CHC11mr+UkC5YM8k1elq9BPYs2VBX8TCdAh7HUoiDEKAxhYdADjEQXSy2ROg6tlAcSDzY
0IAvN14yD1maLjBAYgx9FWLMzk3ydDLkoXUBhhScKyZQfMbywTAmm5ZYl+nVkWGqZ0m8uooCH7Lq
Wm/Yuh5PRsQbc9JB3ZivZPIB2Ag8e/laPDRNFkCLDfsH0TenZKCsvwnDmqvEvIhzWmATxiAJaXIs
3qI4BFWENLquKVoOyWvLkBk/I5Ej8U7XwZy2wKAn8eUmzIIP9xmttYbTZmvYQLEIVA1jpIbQ57H8
A/812WN0m6O8I69Nf1hgvxWd3xe5FcW/rRyzo4VVz3sL90uQDxoej3MyUWKJJugMkkhMDh1Fm6Zm
UVbfk8PHSFxM4YY5l8vEXzF5b+Ngri3y+4UJ02HyfO4432K4WldNdh9FPne85IZmMMmNz2+SZ4H5
BLtgA9ayHlSpkEjBhNedSjvgBDEicR0zhTTLd8BWq5MIzaqDPQpvPeGcrJPgFlKMtwZPyLoh4V90
BvDricW6IliP7EjUbRFDQ3Z18r3Sq20CpS2kiJDo4hD0DlcByEHrgEynUPSFuNhSm4chvVvHSQbm
s0VuphnwM536CEGmW1Dq3N/OrzmuGncXyMUcxEV5HqT6cfffUDAr7w4cH/uqE2QhMgjRXqiCtygD
VHtqSP2y+ZfpsDm5cGQOVIkHmu54k603WU4X6DDYfEVA9ocJaDolEBvGLY8TIOMZTMB1nKYBhLgG
L263AUBBOIU6VXVE/9QaTVjBzkrsIGOhc5PqymCmZzGTDXl3SiR/xgS2hWMIwyQUVMPXcjZJQqVG
yNrLlg1e/LJYr6hBUMWPQmKOBF3SDPuklK08oFJYrEeO2cKZFxGKKRGy7sMXheZvG5hdYlrNqO9t
uHiW3i1FFy6JmGPRDbRBdMcEH0liZbLCw0iesRQEF2aSGGYl9AvvRdIASgeBTIVV1rgRmkxYX8if
lXAh2z+WbpDFC+hezzlnwwyFzWBiCSZUl1G8WcOOLIIjvQgFRsC8I49TyBuLUrjOEETo5gydzSl/
zNWRoqsVSZdQjVop4YstPGQsqSkMhYyrgqd990zWbPUk3azZUitYsUA6C24IjeLNzVLPIM6bCnWT
WMY/M+gBrw09e+CBJUOFBmIC+fvfi6xbDlWvuwENNQkRzNBWUQBDYRuBiBkLkN0ZNfvnnZMq/ZmZ
sZoDYLJ85hszW0pchCbDMcBAM9OVOE4DmjmbplmZMDmeXQRaPDbr+YEEnMGxQ2hNOEFd/7hIXjBz
ixcSsu7mhuW0762zMr1ZuusPoH4qTrsN/QkduqrkSwTc8bH1A/R36Ky2YL5MTA10PF6IKx735FMU
bwHWy5hHtN0MzpWFF4Smw5rTRRAF6HD4fCqdQmhVMEPBxS+9VA2XglOMKHdsogDDCDDz5ow0z4fZ
nwpX9qCpZ6omF72sOVmlIlc1QupO1PyyX7Zw0ey3ex1y3e1DggGRoMV2O86CkMpkgQ+C23aisgvX
2Nz3ViJxwDa5ttaGIhJmYdP3oRLNN49BPPQSysSGgXXcaV2NupOPuLA26n64mnTGMMaYQkSEzL+Z
iV2sAnSM2CCO2kEKkT3AP/NAZ6F3kzajeREiwf1yIlamkDHeqDMdY/HnnYxDh6/fkxU8loIwfYf5
/MisjLXc6vmY1e3/3Ox121NO0RS+sFU7S8NaN82aOUojJ3hL1EZxWCjWEkFWiQ4/ltDq+1scW7bl
9ibNrQ2k+xBi7ytsbggewra5/S3nISqV47gqlc8dlcrHBSo9a/bGJTpUDHNFKt4Kqf9Gsu3cVUhX
6lJBNwqA+nRb2P491JAjyNVHDsBRTK59p4aqyDFZdykx2xwizKZHWkjnjttIXkM5wr6x+cTr+x1x
oHMXpLjGmI8HltHkm9lAszMI290FQ/Ig23CHdRXitjtKcZu/1jDKyDCa8max9+DSKoQ2uDHkBO/S
0rCl+1gbuIxv6be1gf/ouVrPUuJ76vmxim2zvfk907x/TUZUKB5Nt50CPVYOI7oCgT8k//gD5RIO
8XYu8QCJ8ExZiuScZky+KoD8YS1E5sxnXciYde7hiinH0LcxnfxZiApBKSUZLhLP3Q2ves3ReWfa
7U865x0mUsCH9WTavAUHzvb9Y9zslyuyJd0mceaF/c1qRpPBgvXfH1wN6aoRl7ruI28VQBkKtXQY
e3Moiw29FZ4IqduHIorOjJySWuEpE2chAiCGSew353M8f1iDr1DQbEJ6AUU7eoCDT6AwGv73myPQ
Ep5IOyjAeZBbISmmunApQ847awGjyrotRbsmbjU6dm617esBCjmp5YZq7GNXvD4ssKNSc/lWM6di
3oziOHMqPzTo3pD7LJbvApfpkCatcJNm1izRUIxcgOHQhSAmdwJVWghoyUJCPsQBmjy5FmK2OQZi
Nu1rH66kuW1YQq2QIbcIR3ZloiqTzAOMRB/cUstR4yUNw84dFDWZYyYX1/02WW6juVzf0EYzYBuT
bA3DbUKnn3869BIQBWfDbTOqK2mfExKNl/G2tZpXqf31m//l+lbkuMpWDY6m1fMCNR/vla0im0Xx
tSC2PnoMLbR8eiNbcgmObHj0qKVVeFkJXlV/H7vzxTS3Zo1bl6WphhJvwxFCwyavoWzkaxKxXnyD
sbeNG2T8wEI+G+OdIrWOfJMtLb8l7Fieq9vfT5mj5qRttB2ZhzYsOipFjlu6IdsWKWZUxDFzIPPw
QCNHo7mAHrKzLce4icV3sCpxWRkLnsGSZ1XE5p/aDVTL/3gEepPic0R/SF7bx4CiEU03YbZ7a84l
q+Gc5BHYG0qBDVvTbm6jBsazVEWbP+fmkbg6wvFzceB6r87Oui08TTv9AH92RgW7QuE+2415nhQX
5t6j2lEKU1o20nF+G0l2cZnjHST/5WePcHOqfG9KWCnfDtxz1oopprdQQB5XMEeT3FS1JmT62Z2M
qJ+LLk7nGjbX81qUZyR8YLU30JCOFfjk/Sl57j1H8/fxcMLzz88dbfrsrCXICcBwI/x583l+I7bG
ia0TX6fARfJXZBkocMesps50sOVYPEUH1J6Iryfk8JD9kTNUJE7AFGxf7mYOP2pIv9iGpKaRIMXc
I/y0qXCcmbuU7m5Q+f6ST2XXGlyhMoGqna94E2Vsgqgv7zQqlKx4bMnWFxr4RTT++nC7sbob0v1i
zR9Nyf6zaNA/18tTsb9Z0QirPxBrFhQsQrD8j29EXUOYdrf08PkQ3I/OZlldwdQAn3Wb3gY+davx
dufny0G7c83acfNswDZVNYY8RDeyALiCmL6wlVQF3FbrAtDhJZTmZUfEXEVWLuKqFivBMRgpiLYv
9QnVniS9aZPeNNysgpibAGN2LcSgh3P2jLQvIWzIYOGekrAGefl+vmIhIencZYmHoTk36XNU1TTJ
6jiEOPygnx+SqoEKT4zbA32Pg+NM7M6pcfMrLuZf0hWkiTWH60PictiwGSximJ9XzVOzr2R2RNac
Yp6Vm4eD7q80iQsZbeT4rBvx+jN048fKmLXM+NqURmvjYiIAdyJvGMpbTmCe42Gn9XNnNO4O+ieV
3fEIl/U5zRFYiYBL1qTgtEz8AqgS3RneQ01tenLoOFAlnkGCl+tY5VKOxwCqRDb01uJccQVRCmg3
KuM4cjkqFUZ2IINEVOEqRcaAqg0BihBKdgieAVWigQkOMWsHGg5UbVZ04UE6O+aXQcrMygSqlhQG
xP/beCEe6C+VlAG0g8kwTshOJgGomsfNGrKAHWg4UCWej5D6x+Gm2tYNoEpkk8lgbWAqRiaBdkkJ
t+13SgmBKhFBiTwM7sBBVyFSQJWoPgQZrugNaViBSgNV2xQMZk2+QpuSQDtRXVB2i74aFQeqtqog
XYfePTvBVG5VBtBe2PCUKY38+0psEugh91IKJrXKT9llKTsk19iVi3qhx9D9rPyy6j5RaQBiOd7Z
YHSJGHKZ0kN5OouTVRlH1VzpnsCTpKeMI7emL8h8eVpflfoKiKrcFyqGXckvx/KQ7FdT9sD0t3Co
yvxXDPV7J8B7ZptaEM8qVLI73xS98gnnPrLL+wSBzs0598g2zZ78ctYeGabRybSg02rS3Q1LVluH
ak0yX103a6yI1iWzU4w2Silzpjl8ZzNE8qInjlNF/FBcRrjHnJ1aTS8e4xqvXuvstgc/4aJFlWnn
52Vzn4lZUKvx3oX2w0sx14YPy4ygqmorprFedp+1zCCKa5Ic8vKqRCOsqkoMhKV1icZUVZcYmKor
E42uqjIx0FXVJg6yktrERVZanTjoSqoTF11ZimTYV0V9YtpWSYWiEVVVKAai0hrFMLOKGsU0sx1V
iiGxiirFlFh1nWKyWl6nWKwWVyoGpxWVislpWa2iMVXVKgam6mpFo6uqVgx0FfWKJa3SesWWVknF
olFVVSwGqqqaRSOrqlkMZJVVi2FjFVWLaWMVdYuNrKxucZCVVi6GlVVULqaVVdcueXxFtUsBvsLq
ZceOn5u4W9N+Rx1zXdCzspApK15ycaq6eHk8S3uUMWVMFdYxVbVLQdJipk5WSlyWO8lkyL4uJrKn
B2zQjDrjq97EOEK8uA6iebzFI3rF2zP2zswVnpy5TG/0k+thc9S8JFt2isLcpmGPQ/Y4fyZxMmgP
3uI9ZnY9Ot0sFoGPecKfnZPCBnkyv8XR5XACf/3xEsDjcxUiAAngK6PwfFFCb2H8s03kN/44ErLJ
b9ZsOsk3kZi5qQc1JR+uF0c3wyzZx2bYYYpuNKd3BvOIdL7tU4bosdy71EgTEaPpAR7L7vlXsftY
ts4r2foKYx/TaH5J09S7ob/nZGfvXmR7QQvIOOItHrlZcTJIdr+GFJbd8J1RGuFrA4NFQPHGLV3E
CeUndDQm9j5DuzON0k1C5d1ies/eJYkvOaVYINM58eMET3Sx9z/CZ9ocjzujSaemQ2N6gxXoNZT/
ncmk85cJ3qEvbu22Bv3y1rNBH/uWIO72z1sXeF2e1E+eqNCQGxzCnEJQdbaLH81xD0brFmuPWQY0
Mf2LT0ob9iFtTpMlT/7o9x3ceuEGL2qvoVuK76fFLgVvydqBVnqmGjejusHcEXuTjfFutRKpKcn+
C2RndNKvshIH79lOaCreDsKvoT9AOoqrh8nIcZE57IXh4Bu4lEmwovEm+36exem/2LDE2Xm6EWRY
R0LwQMd0yE7v4BshMWn6j5v6d3BTQtll3qootZdmoy3FsIqvdG8V5OycwS6tO+gsKDL+LX1isUgf
4hq/TrA7KSpwpw0973YM9ujCDSp9L/OXZdkcTP8xeNjxOXkRroHCR1dg9jhYYAC2r7g0VEgwP16J
1DL0u+urLUCdBfgy9csgKm/zviYFt1mWtZQ9sj3Y48QC1jmk9NPvLBi3jd9D/QpLMXh4gMgaxshK
fOId1kxGTwbgfscev1CNyy5SQGJbeDDs9PHuKC7CXIOU4kUkZh/rbr4Js4tXQCLOnuTO7N4k0Ll5
8sTZhHyGT9XWI36py7iIX45C8DUbP7P3AxnYiQbCayiDbcReEMWIfPlePTLB5LugDTD5SIxpevA3
//OjuiuUSURsW433DdfgX3mbGQSwQl2wpz1xQt9qCu13pRbg0vDbJb7WXV7VMAdhzk8NcngqLxCc
FJz4rxgLuigsxrhf1F+Hh6r9JB+5OBLnOpE7RsMYok7Kr5DqN34xvRtEnua08KVCW61NmsWrKp2Z
EK7mfKOtl7thkW8tFK49AH8LbhmKwz1wAAqnm8Rq3smZxxt8N7Hxkr0UbzSyF7/RlP1Ah3gBGHuh
GL7XEN8WullR3RWy53hBhDLxjYDsQk9az+vepK/UAkyghstDQ07CCFwVQgpmX5A3DzUUS1inJWag
ujjj5eGtq0+WxfH+HIqtF2lXYj4t8CaFFxB33j+0JhM1xZIXiTVvqJ411GhG1p1Wh9m9CJ8EWSH1
7HklCwyC7wsY2lctrvJ3cck7nRYRZvFbCPdQzsUPLLSDxGFdN5TyrkH2ZU/3EHSbw+do/fFP4q1Q
BZqp1gpr3ZcoU47GUBqKb8qpScE332ThjlOEDhYLqE+sRx3I6CI8XKGRWfeEf5RXPxYAeeLe+sCH
pdzx5n3Z49CCPzmcAYNOou1lnmZQPbJQLaKLOP5kQIknVYoTb69iN1uKX+RVcOVdYDch9uLV7CDV
aRGgk7x0w96Yp2kSqZ6OCQKC31PFJplNNnl6J1wonmUr7mNmoHYfJgMBW3fZUpQpUNs5FGRl1Ira
TbeDneNIeHFNtmYY+DMyOOtPm73e4PoSKsfuuNPrtCZ1TaKdquELiJVjxt+k8oIoZZF6Lq9Ds9ds
sp/xiVAnvHRPiYuG//QTLm6xnztI6RpK4gyXytiPFOGLi9lBLdaqL+N6i0z8VFLopZke58geAKWU
4TsKcqmrkY4aYnFTUvyo/pDZSNBcZiry12p1QDeJrG53//KkGJEEL01lEY4tQnnzuXNh2cqlxHIi
/tTSTL00Wr8b1c3o5Uv9d1/9tTlsSNrl8r9lf06AJO/E7ca6OWS9PFHiSSFNcUmILa5y4o23VLME
0WJcv4r5n+09XXMbOY7vVzX/ofcla8XKXLJ3T+vLTCm2MuMay/ZaziS+2qqULLVtVeSWrluKk9zO
f1+CnyAI9pdkx8koL7GaJAiCIAiCICD0RECuqOviEB0ZVQGCnd9XsRh1SpA1ULz0qjcHaIVwcTNf
zSYmsLY1+VK4eg9yHI7L7GakioNEQY2MECj5EpGNvimCPWpTY4HGInZm18dzQFIf9tthycHeOJaS
QxuYdGChWYuOQHIf8iGFGDLGG+91sW1GbpThRAAPdmuFK7FA6AtUW+AHfDDAn/6tMtxDdmTiPVhY
xhLqdUB++rEaEFqZyX8S9JuRdADLfJXZ+PmqDggInV0n05lCvajiqu3ubuYidqPQDvrLZI79ihqF
fUCjhS6ePet6M+hmreM/sdb7VIb2bhz1AX43CfJAQ6BkTf2CJEeS+NHKBYGJiGber/c/DZefZ2yw
SIaJXaECzMeeJhBhst75Py/IupCufeSb8tBjrKWnQi3JcMGgf/wmuRmk2Qp9DHPP4WHohHMxXweV
Bk1qSNNCXSmOLJOqBAMqPgQUQ+Dz5w3WsSAi0HDhlal3JvvSXQ2Rfo8JSGELO+CB9jzwrScywtfk
XeNOnZDxAZLcgNh4bHb4jlOoHHMlBElX0IkmlWBC9Rpm7+04viYj6BKU0HsKw7eCVwV/Gp60fIhZ
TzMbYi3DSw22mt75yQCFv7yeQpQuiWjkIkjw//5Rbzh8C9dBAhlZlzKvqdRL7nSNniY7tobbMmsS
t186ThDZbz8WQBnkoev6f/aTLNujLeAoCgTL5+OgBSoL2o0v92eFegQStHNlTDNRLdrMlAXNnKk+
bOZs9mGrMXLxpq3G1q8btdhf5YX1fSctVFnY5jJ/NRp/uM7F1jOhbXDZXunyA04li8+fi+KLqcJL
ElNK1ygPgpcq2LiNecQ11KKFYOulqrhPmewjFZHK/pBLZXSkahuJHQNVS37Hx1UqyG1cWySVekhs
tL07fpPlpYKuVPlgtvTt1r2prVvDIBPU26HbpyV9UxYYnh8IFtjvHR2dX5z2IaLkrxBVdrS8gVEe
HhyJXukxcP/wvD8QRYdi91tMJzMXFFJyieBoaE+ZQCY0MxGYg3Rn2NgoiMJgIQYt+zIgvDxXxkhY
Efazcew56EjdV+hRdV0iM3zQ0jDZsxYbedRlHa4VQQ1RnJmxV/n8rkhfz/PX89mExlU7On11dvJ2
2D88fn0Ch/bLaXRm9BsXYClvgvQUWTC95HLK6S/iq9VcxN9IZxG/0D29228vp/iy3tWFqYYwrAmp
a76jqqsZegqEqurvqCYoOP7rNFUTvuNqUmVkqsnvqOL08BZcEIOK6jseTfEFkTYxNwzuU7muoK5a
fqi+1lGDKb7oS53SxG9TtfeEVzouLABiutysmYDZenLavcWoKlccEeoESXQEMneGkgc8aoYLUveW
NzynS18de053e+x0cTkf5RN4mjRalmyNxRdVpZYRSVUNQtDKr2RSDdw68VkjWOuA7gpMG6ubNrp5
QFnzm3IeluWcAc6MJbTBjcc3daxwzivHwuGJGNjhUAeN7HDBmHs7enwED/r7+7TK4fE6s5w3r3gu
v6ptTvu6Qd5hla6nt5y/tbui4Oz/+tv714fHB+8Peue9nox+nU3gNrfXjVR6iyq9pXyKip79NLnz
cyrIzcHCD8v3GBhXS5N3DPxb9QaDYPjlPASgpUp6JmEEEPzyOIy3+XSZKjRYGLacAyGvPWAh/Dq9
vknCgXjlpQCO5ndJGQBRvsfOhuCMNP+YTp4nXHtUXt78RUXzF15cj4r15MEYuxw2/rNZDxNUC297
LbrrwV1aptPTVffLVH/x352WeRR/+A8A/XqaSy+sBpkU9WbCL0qoC+g+wgSFgay5MjOhOzaJFrV3
lkcemszwiW2MdxXd9CWLSEN0rax0XXUJkYmydaMj6rexPgDYY9GGZQVHGNX3OoxQOQsq7drQnkIx
Zr0dh0NkCkxLRO3mlDRAWi8tZXQfiE2FS7jD5yKUtbkEoIoi2vdMHtLY/GUNUxyxWcKY9GBNbxrU
MHbC8ZAhWCTaCzC44OZpXJHq1VD0JhU7pkrU8zhJakcI9zYkfSrBfwP0VBPY/5hmy9pcK2vHuXYw
ylYjCOOQLiMMDXEh0sfM0GqEO+FQ/dGRAW2IvfnJ+J7YW5P3wdh7mN6OFjfzPK3N4rYFx+YqbJ2e
enncomXiGDa9Xd3SskfH526YO/yYyTDJyDbE8PHp+Z6YHtH6wRgfdJ2BoOk0uy7R8GY1klcjSPHM
51ez03y+TMfL0AlG8405bJZWEIfJx7xoMCmU+t+NEgiRJMG+FZQcIQE2tLbKOOB7Wl3epNzL+hqc
HLxBxD2ajyZH08t8VJqdVdRok4sUNaOkQkWEYqikJuHQGNRhF4PYCGlKk4+i3roVYsmwqrxaetyU
NJku8ej0cMwA1km9pjKN8p7C0vtPzcWNqsddBkDbjPFUzED0NDXiZBEjThb44wL00hsA41QOzvPI
8q5jVtBcWer2dJ6D08LPPyMMAhoJIa2J4WHt//JvDWpc+ZhHAXVs97ZHdZnmfiuitF9pJPNsyVpT
1ZrKIdeKzrErIWvHFdRcOkH2XB98W98atVeDU11a6lnTWyxm07G05lPnXuN7M7+9FagdTbMaepLu
kD02RJqc3whUJ2VWILR3FaFMNJcRJHKQ9ertZx+n+Ty7TfmzyP4qBy9OlyESI3zeOzt/c2pcGMQx
N1+uFofZ1dwTLBBOsD8cvod6Z4Pe+eHJsSMF1IY7KoFhE9Yj80L5jxQTJiSllWlpyxBB0x+8PHBF
1DnJlazXOZmcAANSTtEgxZW4oAnvJYWbbs7rBBdb9xP80d6+4o8/ji8jGY28plzLyd27hPqRIJaE
+6B3fLuLqnYXkf5I8O6wPxS2m/ZZ1fYi3vadPF/DXlJE+nUVIr1XQbiogiB2qZkVShwEr0IERuAh
RGEgVyGv7R1kqVWO6XxbVIFrfzNcTlRiskjftkKstY6mH2+tKsSay4v0ss5lBVYImMfJ4hDzYTlf
hBn35Gey1D34s4WuVLLgA6xtI/sS23T/Q8XD9xouUgS9mKdUCXJxjynvdG424B1ml+hSge7fu4Z7
N7c7Bxuyd7D3N2Oy+7IiHb25ICKV20IbqENy+0eaIpoCLiJTfK9n3IrvIDogvJeWnh7KBaZIBFlS
G+5ExgO8XRVLeBgqdPjpRKYKBf19PBJo5s7dZi6BqdfSArJ8NWvcbn5MerNi3oXvHzIhDFyswTsh
f6TLsjgJZNepBXclGE92AYDl/w6laQF+zlNHT/20+25UJNdplspX3YlxJoMXy46DDEMmS3DHgIfj
4DKdfhRIKwwmqmuBXPajZWFJn/lcIHFoYkkIsQ8vGK5GswLJTahocqveFV/06nP+oKLF/yfPkz+i
LeSiqKof3eBJdbmYfZQ992yfn3q+NoAjh1ecj3gJpE5Kjgqhs2Fz0CgGiiEWDzaYqGW+ChzEkSLk
68VGm8HLySpCRA5SVcjpQl5rvjHVhqAx0SJiDS8qGl5Ee/QTUr5k9aVorxWNL8oa+xoR03OgzpRp
PHz/1SB8nSgEwalEvM5TQgesE8WVHrZxqBTFtJ5I71Qriqo98eaeWhTTe0q69/UikEO8jOjgrZvX
fgR4J0P2ogCVMlICzqgeRm6sYb5D6sDvo3w6uiy12oQuWOq70sIaG/CsG/R6NnhnCzMmCOvJatz4
ys606jPrEgvIWGg/WRuba+Wb6WjuDDsWXRnbH3emkHTcRintRHPEPY9lskLD5CdS6ZxO0dSzVDkM
Gp7WIln6eNB37W1ANeyerApIPBjXsIO9om2wZ6H3rUAtgth2TJgWz/tZhUvRgSRr2EoNzRBmu8kL
E6gFOXNLkC42i9dVyLJstSZvImJ42bXobLm+YzQiwLPkBUombQza0pjdzsY5XEOeeN9/BxP7A0iO
uOHLdiBRoT3Ij6QL+a1T89nXsNaCVSDbSvf+p4U4FKBuVMDmMuPzMB9z4v2gWDaW7faFhoBJySc+
0eN4Pq4kXSvhLlBvKtlFk5piHWrem0yPTZ9iEpgpg223HP17FOexvqSwFYWMIBdfH16KSyIZhB6F
/A4xUsusWmxLkR3cPrazwijd+CC9XF0r7iqRDaruEAWTr1j4uAGVALiMiAJcFMoE711FgL5iMQ/C
GrqxOLzk8vExe7NtKCOfPcksQiMbJAdJT1lsIVExCq9uxzev0JOtmm4Eur/Ah0B/D94OmoLNq892
bE3lrG1YU9q6+vepR3uTrj0nzOT6aHfrjOYehW95j1JS2iqMILZlDy+OEQl9FFnRbBfIA4rncgz9
Je1WcE1tWxqJ20vwQE4Z/qwWU1QOUTlFxNjaYorKBmYtU0Hl2HLjkooIzdqCygrVenLKVr9PMYXn
nKznbuILreqh3KOQKu1QvbHWNRgRZTetB5dQjnoefo9GPpXh5y3khxZOWprwFkb2AAoKKZUpMqls
stD1AwOXPQl54SZM9cpX/ec4tnHw2t9yoIW3xz5a9wSAg7n7UgHy8z3EYItqtil5I7+7a0to3Bo1
cQpkBbOYjrquH+bwg0FCRAI8tNd5mnK0p+ThJYQfEcgwgIrJpLL/3spAxD4OT23cO3Wd2GEn+u3G
8WxDTItN15sa010dtLyFaeG1fUbLdsjoBcbmoyrQJagi0YVLSqZMnlGiBtGM2tgO5eN92MV4T+LI
+xBruzItGysonA3RFlBDlfnewNLnjcs+0fB6WfdhzWA0nRWz+bK2rVVb8QajTzqhFGwDtHh2lo4m
fq7H0jdq41UudB3nm/JwzzBKn7H7b4M1pbCtlZLBHzg7tE6rgEJyQzzIpx/T88+LMsM4xLYy6l0T
KuJ2lJq4jFAVFzHUPTg7/L3//s3xb8cnb48Zf2k7IkVUD1p7Og0/F8v01volcT5CketHlaSUs1D/
iS8ICTnxtdr2SvA+rgRXj+5KcNXgSnDTRgpILANCIfLqb4X2H2Ztb9exXceGkL2dCiwxV2wX8HYB
N1vAdDcGtou+8nOKi9n3OQ39NE+vpp/UyYFu1kIX+b8VKwBwx01UoZgaFFGBStSf57yHgL7mwqMK
+kJltD9UVNqnfFdYfMFkCKLmKhpOqZhwLw7xwLsB2l1Lf9KRtxqmKEJfGcJVbrBeD+YNov8tEsrT
oNBep1S+iMVWqdzQZkTpudUqt5vSA25K6kyzXdT3cVLcLu3t0n7ApU2NwfRZWg2d8+tohzGrLx2A
r4St45dUSZrtkbqZwAunanu03oq6h7ONvV7NZpUOPEEQ5LoLPSx5qmCdjvLl1wmS/Cd9sSOP8k8h
hYwh/15MJGGWoIGfGwinbvIE9bYVVd+XqLIEgzTGQC2Z0XshZjpZzAVZINm3yg1xmV5PswzSRcyv
bE3/Ebt7/i6fzZuX8qOkmI2KG0Fl2W4heDIp5rfpHdTqij/VK/bZfL5I7uRDonyVWVjzqyu+/wL5
kStXA8ukeE2a5+Ri0ZhyGb1CO1ztMiIaNVYM+9Q1/cvL5Oiv//znXwm/P3u2YBYkkpKiT1rjjzDn
xEOoxX62iBabBU048XU2gDJXCYcbFXwU9wZKtIyDazJcy7Q++/MsE+qeSpVTer4YjMY304zGBfyt
f5Hc/JZ+Rtvrqfy4uPmgJGSjyGaujyC0mSuisc1cCUNjlS/l+OT8ff/45M0vv74f9AcnZxdMriBC
Ch3yDI1aDdSNbD3CSz8MATB08SE09f17Vpcbo7aCFfj8yK/U4Ud+XI+8ZsC9HUVH19nGacoEuKxP
VSskTBoTLvocJBsMhcrJAkKSoIKz/i/D3iApRrc69mkbB6L4bHtKrfZWWkzuICHYvJg2De72EPxQ
GlYNiMrmkeeSTG6GGSEuaMiOduYdXl00vSi2EJpZfu7QZNG5WYvXD9JZ2lp+PF4pYYcVTssGyCWf
EjcjmGzS1K5mG7FPppk9zH7fAPEkLEw+B3wdCvaz1W1NdjPi8DCbpJ+4Izmnko0vNxaz2st0d9mS
rCpngD2NOgoY0prxJf5z9dJsdwbeX0wit+GbfQjSCbnegjKBTl/m5gmRn9kr4NonKnzPrDPTXeLb
7QDyupxSbxNuyCv+VqdGgJetKQn3bg8o2b8pVFwst93Xh0f988NBX5SSDG8bZ9inZlj3vLtqIkjO
M0MuyfUc4hjswrUQRaaUdFakuEOvr+PVbLbTocdMwy1AH23kYNfcnl9dQkX1VS9Mg+iid3oCs+yf
OIS6OGARq0bYP5OfoaFD7e/yUNwNWewhBIg0H6koXC/rSxM0bitVHP9qtO0HAVl3wcdcycSUJ0Lc
3E6z0XKe42BTlmj+e6MGCFslzhK8a+VAgvjZN33or40x52wjG5KstXWYSslq9YK4IGSqRGWs3xYc
4b2CVxfnID4hyVu8v6YZC2soWoHcWkfXKg2yInD35KvMZ8dKVCgJEZP1NyxPTU/l4hQmi4hMSyVl
rPZpWiJqoUPXRHZfW856mqsnZx0fgszEuEUE7hM1qC68sAPO6zh0rtMlXA88sbjWka+bl6BoSGRE
3tJMCM9ioWq/riFZ1UrteFIPvgiQli98ORyytRj5DPDO9ufZxzTXAW+eYSt0cTddjm/g3kR2h5uP
R4Jtz/q/vO+/O+0dH7wf/u/fmULvqxL+uDM/uo7E0H97KmOIilP/hz0G+ODN0flhVRfPCbRZpOM9
r5Y2v8/sc9ngvgz3svtSggXUg3qR/hQ/wyWAg0Nw+MP7tbuLau7xd3QQXOfKRv0d6WwfkKQaogWP
VXOJEcTVRRV1Om6I8asq+dIPj5W+Hm66o8udBI8a22XMP/N29mnH7D0JErb/GXlg62kAUNMuMC/u
kL7EQBQ0f1JRbLKf2uC0ChUqkwKRxCFiK+0FXeONQC1uPVCMSxmse9BZIAlP1G4g/vGGF8Yoi4rg
AuRbsmzqfMDBdRFzVdSiZ8GRjs49makHhD9cGs9hlc7FgpR3opDeppD3nRN1IarWaGHtxHBXucqL
dPYxLdSl5miJFreoXkyLZZrBziI44Wo0TiMODHwMIffm1/8rai+xEP8neZH8619J5No9hLGGFc0Q
krELm77WMqRBYrQ/0b2PHu793froDjZz57Oa1b7D+RZngb/ucIP27jM2Mz3/WKX5Z4jZXIfn2xrp
6p9Lx2rQBV94ORh9UhXc0YKpIruO1pBqeUkHzPElVitew1w1idka59OF0Oo3b6/8rkyGa9gAMQvj
9VPTosefUBErhpwXMBriKy87SshQAf+Us4sC08LiGEz8zL2MI+ZHYBhnwWM0WzRSqZRaEu6VHLu9
WY4bCZuey78LQ6Hk2Ba3nYGa4RsLfWF8KvtNnKHwW1LJaURrE7qaFWcq0jVvSdy0OLN98eJMSSdZ
CQkz1ai+MAvuiLGGq6Y6eeJ62ZCFzCNneCaVn8HEYfutv/zbGN+6qCdrdMMGt9DYxtsBIua1+1jO
TbXcjRjwrfL1tWz4m3OW+PMY8Nsa4jGvsV4kXU+NQXnSHt7kvrVfb+3Xj8p+3XQf2tqwvwkb9lm6
mI3GaZkZu5Ud+zi94wM5QqaB2eRbM3Pr4QQuTuozjWGovm4YBU21INOC+kyTLKivaxnWHGvE1Gkz
yRi/znrcWAgts7nvr89qJqa5Tm3X9AXM/V1nYNqagWLaKmJqtNci5FDI/DWpeD9hQB+KwJoAIXXX
DPbJkDpdrmuOQC5N/tnE1fcPJsavuOmB5GuLUXIOcQcOv2962qh10rC7JqP3MfyhZ40TbUbbd2qM
3qc3wSYbOObG3vDwPLR/cjw8T+DY8nRjfPQYD7Z4nAvDCgvCcYo4YMj1jjXqAhYXcd/MWaTk4IxH
vaMnsWP0SUXnQKttc6z2GN72LjTF6+XNDj1gGWrsIBLRI2xEw/QYN3Jmdidms3AWG1s1b7J2ThaP
/zmQHdmGnwPpja+pmGm791NZ8mg1LkuXeipBN/GVsH8DUEsDBBQAAgAIAOF84TA+1U0u1AMAABQN
AAAXAAAAbXpsdS9temx1YS9temx1YS52Y3Byb2rtV1Fv4kYQfuak+w/I6kNPpwAJJHeVoSewIUWF
gDAkVVUJre0BNrf2Wus1hbT97ze7XkLMhSOnSr176ANiPfvNeOab2Y+l+WETsfIaREp53LLOKzWr
DHHAQxovy62yla7oQs7vaWp9+Pn1q+YtTTPCPJmFlI8Fv4dAvn5VMqvpNoGWlUPKztu3Fm7d7iK/
q9RqynBDIgRFDywj1t71etZ3W9Zfjdr7es+5rJ1dtusXZ43alXPWbrTfnbWvau3Lny46Tqd7/o9y
+xW2f3IRtqw7GtcvVBAL0ys1x4zIBRdRqp72j+rBvFk7WFWNrhbgTYfHC7rMBJGYsYlQsD0J44Kf
Lf/Og2nzKJNJJl0qsBouti2rUvlDg/LtfixBRBBSIuEoqPCynE0T3VkRQQIM4YFURp1cqTnlnOmV
yerWcQYOjxLKQKi93Lk0SiSN6IMO27JqxjoWkAgeQJpy4cKCxlTXjRT1b+oX9tztdmbX9hyf3NGd
Z89n3sQdDOzh74NZe979bTyaTD0TaojOEWETLIUy7Mp0MuuarQ5JaTDJYswAnBUEH/EFdbNnzAPq
C6LYODf2WQqYXJAXEv4CJASxz/uOiBincwBrYPtYLkgk9arRoXLMhSQ+ZVRucTJ8BlFaSEkz3o9V
4zUlPb1oWY18LJ7nNUsljzqqPE3sceSAxh+L7OvJ6GEpLeuHH0d6SN5U9QmohGyHUm79OBAQQSwJ
e+x8acjDjMG+QXkgs3kNMQg1UgclFepFEpaCRC5BVkgKz2eShL6Be5nvbVMJ0T6HfpQgp499OvRl
dOc7JWIJckiCFY1BNfQ4T8O+OzhB5ZinUlPeXSMpp8ACvgar+H4JdAIpz0QAhWN1HH4HvgdiTQOc
YL7Zmv7wF7i5kDC+jYoZNasFTfiyJk2AAfb3lCoZ2CldKsD+G2Xanf9+zHB8elkcKHt3k5A4LQB6
ZM2FRx9gJLwEINxP6iiisofDDmNOVWnpwUn4ouTdfIXkeVKgCI2xFPwqvORQ1Xa61Y0JatGuKi1f
aggP3b+R+NW/K/E7/3fi12sPvO5xOTNTBxNYgMDbDqT7vbxLzmjotqc9zkLdnt0mznj+G5ZFBVL/
18fvRx8PTPnVTs2NudHhEnXhiWx6Ov+yhuRtyiEtK0gSO7CDzcYOYWHzkNkUP6vk3vaJtEka7dRO
+ZrDD3ilpGsYE7ky19wKhjHAHPm5fj93qzQeT9k4IaY42L66TO9OG2q7HkK1wkOofN+cV7h/vyMa
ufosn5clWvyp+aap5htmGvLO5WPw2PPmNeM+Yfm6un9oVp/5O4P2T1BLAwQUAAIACACcdecwMFru
BIQQAABdSQAADgAAAG16bHUvbXpsdV9mcC5o1Rxtj+LG+Xuk/Ifp9cPtrjbsJU0r9dJWYsHsoYCh
2BzdVhUy9gCTM7Zjj5flqv73Ps+MbTz2GLwvl1NRTjlmnnne3+aFu7kiV/ght8bd0CSjYc8wLYPc
jia9n+XMt9+QK/KRxgkLg/dkPB2R7zvf39zB/3/ovLsZyb98j1AC0t5S4oYBpwFPSLgmfMsSsmY+
JU5MSZKufqEuJzyECUrG4Wfm+w6ZpiufuWTEXBokNKcm8AExcoGwb7LZN5c/kUOYkp1zIEHISQoL
jkToo0sjTlgATOwinzmBS8me8a1AhngyNB1ynyEJV9wBeAdWRAfJcgFFHC4WbjmP3t/c7Pf7zk7y
3AnjzQ1o46aQ3ArXfI9CeizhMVulnHokDTwaKxiB0zJACJQD8qZrkaH1hqychCXXAt1iaH+YzG2y
6M5mXdO+J5MB6Zr35Oeh2b8mFEQCxPQximkCio4JQ3Gp1yEWpWWCAtk6lEwkEXXZGlTtO8EmdTaU
bMIHGgcs2JCYbbZgMyfwiM92jDscbJAcJRCIcu0p9p7AUhY4PumFnhAQUB4IcMb5QYUcBowzAOzT
B+qHESDO9F1FIVbcxqHHKCxkNFkz6nsCGZmGsWTNjamDOlwdBI46crRGD6wqRCMXvUvyw7t3Pxau
UFvQIV3fJzOpiBlNaPxAvaMEPfBrYbcwvkgu3xfjXZ+DDkFfgOZwLVDrQwDdbUXRZcueAYt3CChw
ZYbF8TtzTu5oQGNgUR8h5Ae0vA9KiLMggXB8c3kNo4WQiGUEPgIg55BBqFXQjSQ+gQxiZL9l7pa4
TiI9LIrDB5YIU2RmxGyQuZrIDGgAJwLHdJ0VyM+ChFPHE+jEihBDbAUu2CHDtQjrPUu2mB4c3w/3
IrhDMRGjUwk2FY2GgX8Q6OrqVFSp8nUtvByzR0EpRNgEvktsQLeZqIaWyGaImAUeCMvlcoHLg5AT
OMBNPepTjsFWUZ/QgWAqppHvuEK/O5G4BCiwCsYS6BBIMFteH9NfUxYfQ6Eib6FdLxRSCzZo4SJV
RkA9gNFlEQMXFk7bQh8FtkInTgDpNKCKenTMFXEkK5Fh9nV1iFxBqv32m9+zNVBbk6HZG837Rn85
/udovhxMYQaGGZDTzESxs9k5wAzq8Ihj/M+lOVlm8BaMg/VcP4UE9Jc92DHcJ53t39Rhd+vE1UEP
NO/y6miy9cPVL9VRqEo7z9/UgSnUlIjV6EHERGHoa8ZjmmGh4HFrFOvmhlicRolwas8DIwZ0Tyy7
aw973dHoHtJ68Al8pDsdknUauJhEZSUGQ/psFTvx4b1A89cXfwSaLkmwirg54YIoS4RzFN9lXoFR
qEmxA5kTgIExSJUCj/PgMF8kEIClsrhAloKitiPrONyRhbQW+fMfRXjkX02b/Nh5hygEmt1nP12u
o85WfPsu/4hv4H0DWCWcUvgR44WbU6jF5h9+gGj06HfoAAXjUIc7mw7kVW7TXTR1+HaRY8OyQxgX
/EQOpD38woKs8YGcGIdRzDBRJFQqAUKa5qvtNA6KBc5RUVEIIxD6JRYh4sHYmFPe8kNEYeatJBoD
zCOMS5xE5hFnJ9sh8vZqHb3tkEEosh/O0UdoSxAPxSpHkw5RNKeoLeezi24GNnnEAkgeHJAIzQQp
zwdDCv7y1uNofOh4/GjrrCi6Rhh7WHdzJi9sdEb4D5dgcid5OnR4bRnCYS29xhyeJUU/dGXjkmNM
tmHqe+SXNOHoUKB5CBjqXSqyJ6gXUA6Kn7iQegEwUbWS4yvJVlOR26yivtEbdWfGcjA3e8upPRNa
PuSN8AkDJwoiYhm2xDE3h71J3zjisSifB8yF/qlhxWLWnU6NvrJiEaNCPLGikMPpuFGkDxKJMlul
VgNaSSpaL88tLdvBYoHwyx2aaP0Uo+Q2yfGI1Ac9TRpjyQRfcDxC4ziMk05O1pCzwp8Q1YpunQeG
pS0TYp/JVvAmNhJQLsEXJXMJKYcUZtO8rc48HlPS2OqbnbLWENbH+vQ2i5Y3vTdkuUR3wuUXnu9D
Nw+t7eVbYAqihio6LUgWAgoRMEckRC5EppE0LuuPRqgsh/QKDB2sEU1Von9vdse/fZnI64R3QDu7
zRVCCOuFNAneQkdCqTReVl4UHWWt0A5bl6y1BFdLaMlJxCZNUoTEcRB+AgIDhUw8aWAmtwfsszRr
mqAjjgB2lEGBUjyK7Q6alQn3OciW91iwYokLuy7MynvYO2IaMudgoP2WBnImh++0LVYiNpysX/sK
efppubOeMxGHzCXYEaGtspxRZslnn+j7Alx+4O+Zr/6O/Ouo57wfSP6dg+M2GApznyWfBjGlVgRl
xHgcfxaCCl04GNed3zCDD4GqA40OZJpjsr64FI5xzMUXuH/DypdkXl5FnUsoPU7Jskr8FE71JF20
KgMV9xMtNXbUy6Ub+WmCf779ppTn/lPpU797xY9MIdMhos46ICL69CUHTi+AJfQpAv3Ocr+h3HP3
3uLyAjYcqMKAXx+BcffGL38qI/rQNfsjg1xAB4j5EJD0xKHDAPY9BRY8OJv2Fhb4hB/hjAnquS7m
+ovJrE+8fZ8muEfrui5sx+vTFnBBx+AR1yWsltGbz4b2/bJr27Ph7dw2LKBhUTeNGT90eXaOpEEn
+ARXAKNHYSIcsQ408J1N0g08HaJM9C22tn4mspxUVXQ7mYzqCuqLTVEYH/Rawl5Z1VJ7WZ/BhPGo
ZyOXrQC81gCZdK+df1V+YbvQ7FNGlkjrvqVwWZ8WZFYDSATDtUDSipkxBPWrMdOGYF+cR5yPqTa4
ZnQH7Ld0Px1CGRsljJA5kYGjQV/OZD0Zd1WcEmUhRUnPeCY8nUMlujOWQ9M27gxBHDDdHoC3bp71
7bAHzQ2NTy6zQ+74Zrpb0XiyFuvbgxckjwK3F1evwv83edtLrJd3Foa8kgmRkdFU+qBIJqCOZErj
HpRUrkh3hBJcAYyE1oKUhchQJVpAReQcUifxh6Fp2V2zpxRHC8+xjEdIgfwo8oeF2SfbfQD7dDlw
VMAkorLXq09hONVHp9Ab7qjgvjZ3TNIk17VNAmsb7ns7r22kj8IN7gr6MXugFgR8sFHCXS4JbtP1
msYjGmz4VlFjxoqc19HMQMqpH+r+HBq/uExHwZZ8PsN3gQLpnkBTbQBcdytlqPA4Me+U9By6Kfbo
0xgvSThTM6Awr/hsF2Djav+A49NYNK7lSiF4IgRS/wNzaTXe+8bH8aRvLMQ89kSTlEcpPyKoQwwD
BUAKKA4HxuJIRGOKmWHNR7ZaiNby8BBEdWtCqvLN0b3GyeY4sph2Z90x2QsnLQsrhn0xfGTkFB+Y
yvSMAB/T2aSHoRDTB2BoAC3/9RflM+/tgb0//Vj1E7ETKmcA2McIxkdhsJny+IwSwS9IMAw8+lji
I0fr7aGPQDz1CqMjffdc0lJK6ieU3FxlcpKrmxMR8UpSnpPw1aTLt1+qfKc80AL4MexTnA39inFQ
4sJmOxqm/IswU1m/TsW+qDKaZhwoeQqzjPBDP/L2M5qkPm+bamBf5nB3q1FybwKllYytO3LlRyCM
RleafqOKSOZ+xCKQnM8Re4CCqguJesyC5jnnsQU/U0o//XYMVefkHuCU5oBNw7Rn95nuoA8J8v69
4Hc0nUwNczAcGWZ3DJXGj8J10Baj5cg91LMwYvCqxu35TpIouDR6U6p9saKSE0BdvTANuIaswFfb
RMuso7bs+fmB8Wjxg6/dAmroHyclTv0xSQUjMv0P9et9RaQF84o2LB/7QPEVh8bHIOChlSlNjA1z
TiAMg7Q0WDS322GQcHxFVBbj42TYz5tRjR679mSsbkk3DPtooZJ6oANnvVHXshYY7sChAGsRY3O8
A9YjPmkGjXCN1Cy7D9TwXsC+nxoiJX8Ad8RNyyAOd8P+CBgo+XdvaBtjGB2CXBHz/GOXLviBHhSX
6pL/tLRSS/Y2DvcJHYTxIPS9Urc8mt7OJgvLGJqDCYbUimnQi7ygNQmLVqETe4B353C9DpPPcrZl
pCoYqzErC4yY0kVtTqoeuNCr56GrBm3thBIvsgcsTnjrQ8qMBbzlXg6GZn/Z79rdhYBDVD7tO9xp
4ZEIbtLHGuH8KDFH90KyTYeyY9h1Vk4W9Gd0AlB35inPy7J3YZN9oO5ZitMt5ZTnBFtYVmpMnTkO
zlnY0pjxD07g6dNrax6kaowHSHptVCMAm1UzdoLU8fFpHG/QmsWB3Iu1VuP3q2jNojsn2oYxbaO5
AlinPdHN+5mKRBBX5yC42S7dVeeepz4t419FhRjGYyeKWLDRZwS/xR1ACUnzlcfah70ypy6vtxSZ
bi32mX6AtuAkwCjcv1j9DUJ/WQOMJ/25ykrprlpfBmCyfmrdEmPTGW4J5/UZcyu3UBoGdOdz49BL
/XpnLRo5ye5WguiqKy4LNE1ngIZvp4GCBWkgvQ4kRINa9VdVeM5Dm5q4rnxCiwel1Y46b/PC3Q4Y
GrGgRThltLR5qmGJvQUuvVMls+S1J24jKxvropU2ggcWh8GO6pNfL42xa9dfw9ndmT2f5u0f1J+Y
p9EwWIeKC+CpmWFZS4Sbjbv2cGIeVYHQ2HbJXx3Utu+CSdUJSmQqG9xmftqeQZeU8TF7qqH3i3oL
Vz5+PuPlzZcX1vNYUMY/On7a7nrNeIzAa0oENcfuR7xW7Ook7ie8tbhVa8qz5T5dpRtJWk9ZgkmI
tpa0oAYXNzxNmwtxoOfoLhLEdIFDc7gNm4Lmqwb99YakdYqfKsEqQxV+W/NTv/pQfb1qd7RTG3fF
O61z7oOUW7o+FgmhglqBaehZCtfMF2mvy5r2LA7zEz/kbaIr82toVrKjNfTw6jQ0546nHlW++LVC
dfeMt5t4QWbD/PmbzZYYrQNsyHf1i/uTmU2ezDZFui4Cipfar3mrpxEH6ejalNNvYIo58XpbunJV
2nnAfk21eb9MsyWb2Vv5V1V7o3G/BDFNBFe7hdd5A3IK64sdSPvoJPX907m66a1ZS0bqM1cS5xRa
lidky7YvYzSdv7JaWzTENVj5cH1GN70wCMAI8hCvyb5jx91CO1zZiPxs3JPtz/RQvsURg9H204n7
Gy0XIoEDLqVIVAioFSJdvTJpdRfWnnhhg/xXjro9BR4d1202icSj1uPEzLizumN8E5ptbF/wgFGj
FO0zFdhEH981tlabfGf2dIs9kYDofVuTENBNiUhLxQjS3XkhcnuV752VJKALSXf1HE7OeuETeVFt
LXkqqy6fqTtv/QqsGWt5WvgdXszZw7EBs2s+chK+AB8VF89PUkgb859VSOEVzfxrQBpVU3nkBSIo
E7f3NkqN5+3N9NTT+DOKwJMinY/icyBtIGgyVGmq6fGxljYewX2VtJwRfnFSTv3WSfYl7P49pfEB
DybOKOu5QdXeIV2pB/2TRHcFOx4JAB1NM4gg3QghouUEgSKaTtIQUM0QeV0DG7kxi9TXmK+RX4TJ
nlZfat6t5hjVlFNBlRzzyzM4e4L7v0oKK7zw9bPYTP4avyGRPSuTZU/jtXMT33tSogMNgYs9qaHR
ncCT+hn8GcL4uuX5VF92GKFniPIXREWpIKt+VXpcrDhV3iw9yZlyHl8WH01tu14A+cIEA+PqdYSY
B0+u7E/uojPveoKenutfVWXUokD3u7b/ln/Mlr+rvNH8uxP/A1BLAwQKAAAAAABji94wAAAAAAAA
AAAAAAAACgAAAG16bHUvdGVzdC9QSwMEFAACAAgAe3bnMOsA8D3jAwAAIQkAABYAAABtemx1L3Rl
c3QvbXpsdVRlc3QuY3BwpVVRb9tGDH4PkP/AuS92YMhJsad0G+A4WWrUdozYXRZ0RXGSKOu68512
d4pqD/vv41GKYjvp1mF6scwjP378jqQGJ3ASHri4uh7PYDIeXc0WV3AxuRm9q0+Oj+AEfkHrpNHn
MJ1P4Cw6G1zT7+vodDCpX86CF3suc4TEaI/aOzAZ+Fw6yKRCEBbBlfFnTDx4QwcIU7OVSgmYl7GS
CUxkgtrhYzbGo2TQDb6d5rTTewMbU8JabEAbDyUFPCXBLwkWHqQmEutCSaEThEr6nMECTgMTwX0D
YmIvyF9QRLGpKbdeIDwH5t4X54NBVVXRuuYcGbsakBqDtvKFyXwVikyl81bGpccUSp2i3UMkprsO
hjJr6AwXMF50IBZOuj7D3Y2Xb2/eL+FueHs7nC3v4eZnGM7u4d14dtkHpJIIGL8UFh0JbUGGcjGN
YIG4m5DBMlOTcAUmMiOpldCrUqwQVuYBrZZ6BVaucrozoVNQci298HQH7qkCBnpUb+++byhUaqFg
ZFIukCA3QMy83+x7jrX0khwv8QGVKQi40fsQgiMurEklUqBEl0lUKYPB3NiaWmJRBA3jDWM8Bw+3
MaJb5dKgO+rB69PT79tWeBYQwVApuK2FuEWH9gHTpwpG1Nd8b8Z2Xe+8tQ+VJw1JL4LZ9Bn65REI
7RZjaNndzqDgdXBkrOZig/169h6uUaMlii9PCLwON69IBNsMCY1jp9cna1tkQJlQj5DLv4HRqB3A
TWo8BqMZqXKZ5JAIV3dYYc2DdHwVzTWGbdC0Gm+GcAGioMZMREz1S+08ipThOMKEEYupBSMYZzzW
lXR5WA9CKVPxcBs+sKGpmOaeokarDcM9l3NPyn1efe7ysD3aTCb4Ovpfo1Heryd9IRdvswAsdUrF
+jqcsVIaOcagNk1RoQ/DdiAfa8CkLBZKJKzvmhcXuxJVuiyGC05Mdjfe4h+ltE+jcFBvq25quGqm
gW2LHBIheQgxkYWkFuam/QY9WrRWE6FpnWrck+clcu0c1V+iq9nlS98hOKFVe3z0SupElbQjfqhI
alO5KP9p1+p8Ks2hLVcm/szGHXMnigbrrSqjvBPskkuVuhtehF0lfUhyYeGE3h8+fOwdH/1JJOmp
gvmTB7dd4rqYC59/mA5//TQfLt9+fFNnyOCs9qW37nfTbVg0ExlbYTfdXq8+atDCU1jKmXU76+01
+kfQO8gEiZv+pumL9+RLS7W0Gs4a018hIWci1sbBjzANIHMaYtr56+5jaDh2xeHxghYc9dVcJL+z
5w7pHSbTbfexwP5O1f9QyF7wt9bxCml0sq+RuPsfHP6bko39lOxk+xtQSwMEFAACAAgAWIzQMLc+
K0N2AwAAJwsAABUAAABtemx1L3Rlc3QvdGVzdC52Y3Byb2rtVlFvGjkQfk6l/ge0uoc7VQECBFIt
e9XBQg4dCQhI8lIpMrsDOPXaK9vLQdv77zf2mtKl0LQv7T3cQ5Td8Tfjb8bffrj9ZpOw0hqkooIH
3kW56pWARyKmfFkKSp5a0YV+fKLKe/P7yxfte6oywqY6i6kYS/EEkX754sw9zbYpBF4OKXVfvfJw
6X5XuVWuVk3gliQI0qC0t8+8vhuEgfeh1uw2e73Lq/Nm8+rqvNGqNs9fd16H59V6vdZoXbaarUb/
H5P2F2z/FjIOvAfK6zVTxEN2Z+0xI3ohZKLM2/7VvLiNbYJXsehKAd7uCr6gy0wSjYRdhULsszIh
zLPlx7yYDY8ynWY6pBK7EXIbeOXyWwvKlwdcg0wgpkTDSVBhs3yYF25lRSSJsMQUdODVbLPIbiYE
s0+O1X23O+yKJKUMpFnLk89GqaYJfW/LBl7VRccSUikiUErIEBaUU9s3jmhwW6/5j2Gvc3ftP3ZH
t9PRsOeSbhCWEDZB0pTh/GeTu91ShygaTTKOe0F3BdE7LFV3ay48pHNJTN+XLn6nAGlEOeX4TyAx
yD3DByI5ynAIa2D7WiFoHF+z0aF6LKQmc8qo3qIG5gwSVaBkZzvg5oht8337EHiNXADHJ5gpLZKO
ac+O8DRySPm74pytBvrYSuD98uvIyuG3ipF6GTbgQCZrwCMJCXBNmDnNfOEaOEgjjwPShY6wzaUk
SUiwb6Lg6F5pPHfoaTafbpWG5JOQzmZELkHfkGhFudXX6f5uBuHwmRGMhdJ2VL01dvMcWML3YM2g
vgU6ASUyGUFB+KfhDzCfglzTCJUnNls3dfENaSGkTGyTIqN2pfDVft01JsAAT+0533Cw55yjAPsx
3rHT6oAzlE8/45GJ9zYp4e73Y5eWUN1HocJYUNOAOlDxV63n9qj1TLVEMxgjNfxXKHfoLg0X73GC
nrBjaW3EiOow/SeZUP2/ZEIX32NCR2zFyQQmsACJ9wdQe7Hkx9Ad3YR/zPqCxXb+tf/96Ef50UEo
v+wYgbg7Dj7iF/qZTU0t/5KF5MeUQwIvSlM/8qPNxo9h4YuY+RT/VumTPyfaJyrZuYvJdR8n4CWL
rmFM9CrwkvcsmxktYqUdtmLAjny+0Qle+ad5jNcKOaT+CnmtEp9ypMUj74uS+U55/9dMzAnLnyv7
l3blyA0X4/8CUEsBAhQACgAAAAAALHjnMAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAQAMBBAAAAAG16
bHUvUEsBAhQAFAACAAgAtY3eMPhXCccnBAAAtggAABAAAAAAAAAAAQAgAICBIwAAAG16bHUvTWFr
ZWZpbGUuaW5QSwECFAAUAAIACADldecwuknX3PwNAADLQQAACwAAAAAAAAABACAAgIF4BAAAbXps
dS9temx1LmNQSwECFAAUAAIACABsd+cwchnaNTwBAAAwAgAADgAAAAAAAAABACAAgIGdEgAAbXps
dS9temx1LmRpZmZQSwECFAAUAAIACACldecw+SwEgs4IAACRHwAACwAAAAAAAAABACAAgIEFFAAA
bXpsdS9temx1LmhQSwECFAAUAAIACAA2fOEwkHaHctABAAA4BwAADQAAAAAAAAABACAAgIH8HAAA
bXpsdS9temx1LnNsblBLAQIUABQAAgAIAI2b0DAm5F3gCAMAAOsJAAAQAAAAAAAAAAEAIACAgfce
AABtemx1L216bHUudmNwcm9qUEsBAhQACgAAAAAAFHjnMAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAQ
AMBBLSIAAG16bHUvbXpsdWEvUEsBAhQAFAACAAgAO5PeMPnl2g0xBAAAkAgAABYAAAAAAAAAAQAg
AICBViIAAG16bHUvbXpsdWEvTWFrZWZpbGUuaW5QSwECFAAUAAIACAA1ducwLSGdftEvAAC7KQEA
FAAAAAAAAAABACAAgIG7JgAAbXpsdS9temx1YS9temx1YS5jcHBQSwECFAAUAAIACADhfOEwPtVN
LtQDAAAUDQAAFwAAAAAAAAABACAAgIG+VgAAbXpsdS9temx1YS9temx1YS52Y3Byb2pQSwECFAAU
AAIACACcdecwMFruBIQQAABdSQAADgAAAAAAAAABACAAgIHHWgAAbXpsdS9temx1X2ZwLmhQSwEC
FAAKAAAAAABji94wAAAAAAAAAAAAAAAACgAAAAAAAAAAABAAwEF3awAAbXpsdS90ZXN0L1BLAQIU
ABQAAgAIAHt25zDrAPA94wMAACEJAAAWAAAAAAAAAAEAIACAgZ9rAABtemx1L3Rlc3QvbXpsdVRl
c3QuY3BwUEsBAhQAFAACAAgAWIzQMLc+K0N2AwAAJwsAABUAAAAAAAAAAQAgAICBtm8AAG16bHUv
dGVzdC90ZXN0LnZjcHJvalBLBQYAAAAADwAPAJcDAABfcwAAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>154440</attachid>
            <date>2004-07-27 01:03:09 -0700</date>
            <delta_ts>2004-07-29 08:41:48 -0700</delta_ts>
            <desc>MZLU 0.4</desc>
            <filename>mzlu.zip</filename>
            <type>application/octet-stream</type>
            <size>44951</size>
            <attacher>bmo</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>154663</attachid>
            <date>2004-07-29 08:41:47 -0700</date>
            <delta_ts>2005-01-02 13:35:29 -0800</delta_ts>
            <desc>MZLU 0.5</desc>
            <filename>mzlu.zip</filename>
            <type>application/octet-stream</type>
            <size>106270</size>
            <attacher>bmo</attacher>
            
              <data encoding="base64">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
eV375nXtm9e0b17TvnlN++Y17ZvXtG9e0755TfvmNe2b17RvXtO+eVX75lXtm1e1b17VvnlV++ZV
7ZtXtW9e1b55VfvmVe2bB9o3D7RvHmjfPNC+eaB980D75oH2zQPtmwfaNw+0b+5r39zXvrmvfXNf
++a+9s197Zv72jf3tW/ua9/c1765p31zT/vmnvbNPe2be9o397Rv7mnf3NO+uad9c0/75hXtm1e0
b17RvrmWw1W1HK6q5XBVLYerajlcVcvhqloOF2g5XKDlcIGWwwVaDhdoOVyg5XCBlsMFWg4XaDlc
oOVwgZbDBVoOF2g5XKDlcIGWwwVaDhdoOVyg5XCBlsMFWg4XaDlcoOVwgZbDBVoOF2g5XKDlcIGW
wwVaDhdoOVyg5XCBlsMFWg4XaDlcoOVwgZbDBVoOF2g5XKDlcIGWwwVaDhdoOVyg5XCBlsMFWg4X
aDlcoOVwgZbDBVoOF2g5XKDlcIGWwwVaDhdoOVyg5XCBlsMFWg4XaDlcoOVwgZbDBVoOF2g5XKDl
cIGWwwVaDhdoOVyg5XCBlsMFWg4XaDlcoOVwgZbDBVoOF2g5XKDlcIGWwwVaDhdoOVyg5XCBlsMF
Wg4XaDlcoOVwgZbDBVoOF2g5XKDlcIGWwwVaDhdoOVyg5XCBlsMFWg4XaDlcoOVwgZbDBVoOF2g5
XKDlcIGWwwVaDudrOZyv5XC+lsP5Wg7nazmcr+VwvpbD+VoO52s5nK/lcL6Ww/laDudrOZyv5XC+
lsP5Wg7nazmcr+VwvpbD+VoO52s5nK/lcL6Ww/laDudrOZyv5XC+lsP5Wg7nazmcr+VwvpbD+VoO
52s5nK/lcL6Ww/laDudrOZyv5XC+lsP5Wg7nazmcr+VwvpbD+VoO52s5nK/lcL6Ww/laDudrOZyv
5XC+lsP5Wg7nazmcr+VwvpbD+VoO52s5nK/lcL6Ww/laDudrOZyv5XC+lsP5Wg7nazmcr+VwvpbD
+VoO52s5nK/lcL6Ww/laDudrOZyv5XC+lsP5Wg7nazmcr+VwvpbD+VoO52s5nK/lcL6Ww/laDudr
OZyv5XC+lsP5Wg7nazmcr+VwvpbD+VoO52s5nK/lcL6Ww/laDudrOZyv5XC+lsP5Wg7naTmcp+Vw
npbDeVoO52k5nKflcJ6Ww3laDudpOZyn5XCelsN5Wg7naTmcp+VwnpbDeVoO52k5nKflcJ6Ww3la
DudpOZyn5XCelsN5Wg7naTmcp+VwnpbDeVoO52k5nKflcJ6Ww3laDudpOZyn5XCelsN5Wg7naTmc
p+VwnpbDeVoO52k5nKflcJ6Ww3laDudpOZyn5XCelsN5Wg7naTmcp+VwnpbDeVoO52k5nKflcJ6W
w3laDudpOZyn5XCelsN5Wg7naTmcp+VwnpbDeVoO52k5nKflcJ6Ww3laDudpOZyn5XCelsN5Wg7n
aTmcp+VwnpbDeVoO52k5nKflcJ6Ww3laDudpOZyn5XCelsN5Wg7naTmcp+VwnpbDeVoO52k5nKfl
cJ6Ww3laDudpOZyn5XCelsN5Wg7naTmcp+VwnpbDeVoOV9FyuIqWw1W0HK6i5XAVLYeraDlcRcvh
KloOV9FyuIqWw1W0HK6i5XAVLYeraDlcRcvhKloOV9FyuIqWw1W0HK6i5XAVLYeraDlcRcvhKloO
V9FyuIqWw1W0HK6i5XAVLYeraDlcRcvhKloOV9FyuIqWw1W0HK6i5XAVLYeraDlcRcvhKloOV9Fy
uIqWw1W0HK6i5XAVLYeraDlcRcvhKloOV9FyuIqWw1W0HK6i5XAVLYeraDlcRcvhKloOV9FyuIqW
w1W0HK6i5XAVLYeraDlcRcvhKloOV9FyuIqWw1W0HK6i5XAVLYeraDlcRcvhKloOV9FyuIqWw1W0
HK6i5XAVLYeraDlcRcvhKloOV9FyuIqWw1W0HK6i5XAVLYeraDlcRcvhKloOV9FyuIqWw1W0HK6i
5XAVLYeraDlcRcvhKloOV9FyuIqWw1WyHO7AbOXS1nh48W9R/eDBYC7ILPccOHbZ5TP//n9etfDm
mZmZAzPp/26IyznNuP89Nfq3Hv37yez48ujfwZmVe25Ybw1amR7/78ro35uif28G587PVB70Hnzt
I+LX1z44+B8f//3k5WXRv49fmZ1z1czjilexcEO8cDU7/39/e2bmzGU3kPUnrS34GeNzrrjsqdkn
c//LP1/+ma+47MoZ+r8bWqe2ep3tpKlvR+91RfFN8pbTNp8S/Xsssvxj2PLMQvRfcas1cWe17DCt
+5gaD8wGFdNfsdGozrm/4vcnf8UfjgL5+uLbx1U0zoXFN43/gleRr3/g6sgvrkt23WpuemX07/3E
b37m6kM3nNragrYfmeH/e8XM/IMw6vH/Tkb//tF3zcy8/LvS4ycl7UV+fez4mOjf0UeS9726Mk/9
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
UEsFBgAAAAAaABoAUwYAALWYAQAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>170096</attachid>
            <date>2005-01-02 13:35:29 -0800</date>
            <delta_ts>2005-01-02 13:35:29 -0800</delta_ts>
            <desc>MSLU 1.1.3790.0 licence.txt</desc>
            <filename>license.txt</filename>
            <type>text/plain</type>
            <size>28027</size>
            <attacher>bmo</attacher>
            
              <data encoding="base64">RU5ELVVTRVIgTElDRU5TRSBBR1JFRU1FTlQgRk9SIE1JQ1JPU09GVCBTT0ZUV0FSRToNCk1pY3Jv
c29mdCBMYXllciBmb3IgVW5pY29kZSBvbiBXaW5kb3dzIDk1LCA5OCwgYW5kIE1lIFN5c3RlbXMs
IA0KVmVyc2lvbiBOby4gMS4xLjM3OTAuMA0KDQpJTVBPUlRBTlSXUkVBRCBDQVJFRlVMTFk6IFRo
aXMgRW5kLVVzZXIgTGljZW5zZSBBZ3JlZW1lbnQgKJNFVUxBlCkgaXMgYSBsZWdhbCBhZ3JlZW1l
bnQgYmV0d2VlbiB5b3UgKGVpdGhlciBhbiBpbmRpdmlkdWFsIG9yIGEgc2luZ2xlIGVudGl0eSkg
YW5kIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbiBmb3IgdGhlIE1pY3Jvc29mdCBzb2Z0d2FyZSBwcm9k
dWN0IGlkZW50aWZpZWQgYWJvdmUsIHdoaWNoIGluY2x1ZGVzIGNvbXB1dGVyIHNvZnR3YXJlIGFu
ZCBtYXkgaW5jbHVkZSBhc3NvY2lhdGVkIG1lZGlhLCBwcmludGVkIG1hdGVyaWFscywgk29ubGlu
ZZQgb3IgZWxlY3Ryb25pYyBkb2N1bWVudGF0aW9uLCBhbmQgSW50ZXJuZXQtYmFzZWQgc2Vydmlj
ZXMgKJNQcm9kdWN0lCkuICBBbiBhbWVuZG1lbnQgb3IgYWRkZW5kdW0gdG8gdGhpcyBFVUxBIG1h
eSBhY2NvbXBhbnkgdGhlIFByb2R1Y3QuICBZT1UgQUdSRUUgVE8gQkUgQk9VTkQgQlkgVEhFIFRF
Uk1TIE9GIFRISVMgRVVMQSBCWSBJTlNUQUxMSU5HLCBDT1BZSU5HLCBPUiBPVEhFUldJU0UgVVNJ
TkcgVEhFIFBST0RVQ1QuIElGIFlPVSBETyBOT1QgQUdSRUUsIERPIE5PVCBJTlNUQUxMLCBDT1BZ
LCBPUiBVU0UgVEhFIFBST0RVQ1Q7IFlPVSBNQVkgUkVUVVJOIElUIFRPIFlPVVIgUExBQ0UgT0Yg
UFVSQ0hBU0UgRk9SIEEgRlVMTCBSRUZVTkQsIElGIEFQUExJQ0FCTEUuDQpTT0ZUV0FSRSBQUk9E
VUNUIExJQ0VOU0UNCg0KMS4JR1JBTlRTIE9GIExJQ0VOU0UuIE1pY3Jvc29mdCBncmFudHMgeW91
IHRoZSByaWdodHMgZGVzY3JpYmVkIGluIHRoaXMgRVVMQSBwcm92aWRlZCB0aGF0IHlvdSBjb21w
bHkgd2l0aCBhbGwgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBFVUxBLiAgIA0KICAgMS4x
CUdlbmVyYWwgTGljZW5zZSBHcmFudC4gWW91IG1heSBpbnN0YWxsIGFuZCB1c2UgYW4gdW5saW1p
dGVkIG51bWJlciBvZiBjb3BpZXMgb2YgdGhlIFByb2R1Y3Qgb24gY29tcHV0ZXJzLCBpbmNsdWRp
bmcgd29ya3N0YXRpb25zLCB0ZXJtaW5hbHMgb3Igb3RoZXIgZGlnaXRhbCBlbGVjdHJvbmljIGRl
dmljZXMgcmVzaWRpbmcgb24geW91ciBwcmVtaXNlcyAoIkNvbXB1dGVycyIpIHRvIGRlc2lnbiwg
ZGV2ZWxvcCwgYW5kIHRlc3QgeW91ciBzb2Z0d2FyZSBhcHBsaWNhdGlvbihzKSAoIkxpY2Vuc2Vl
IFByb2R1Y3RzIikgZm9yIHVzZSB3aXRoIGFueSB2ZXJzaW9uIG9yIGVkaXRpb24gb2YgTWljcm9z
b2Z0IFdpbmRvd3MgOTUsIFdpbmRvd3MgOTgsIFdpbmRvd3MgTlQgNC4wLCBXaW5kb3dzIDIwMDAg
b3BlcmF0aW5nIHN5c3RlbSBwcm9kdWN0cyBhbmQvb3IgYW55IHZlcnNpb24gb3IgZWRpdGlvbiBv
ZiBhbnkgTWljcm9zb2Z0IG9wZXJhdGluZyBzeXN0ZW0gcHJvZHVjdCB0aGF0IGlzIGEgc3VjY2Vz
c29yIHRvIHRoZSBmb3JlZ29pbmcgYW5kL29yIGFueSBNaWNyb3NvZnQgcHJvZHVjdCBzdWl0ZSB0
aGF0IGNvbnRhaW5zIGFueSBvZiB0aGUgZm9yZWdvaW5nIChlYWNoIGEgIk1pY3Jvc29mdCBPcGVy
YXRpbmcgU3lzdGVtKS4gIA0KMS4yCURvY3VtZW50YXRpb24uICBZb3UgbWF5IG1ha2UgYW5kIHVz
ZSBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGNvcGllcyBvZiBhbnkgZG9jdW1lbnRhdGlvbiwgcHJv
dmlkZWQgdGhhdCBzdWNoIGNvcGllcyBzaGFsbCBiZSB1c2VkIG9ubHkgZm9yIHBlcnNvbmFsIHB1
cnBvc2VzIGFuZCBhcmUgbm90IHRvIGJlIHJlcHVibGlzaGVkIG9yIGRpc3RyaWJ1dGVkIChlaXRo
ZXIgaW4gaGFyZCBjb3B5IG9yIGVsZWN0cm9uaWMgZm9ybSkgYmV5b25kIHlvdXIgcHJlbWlzZXMu
DQoxLjMJU3RvcmFnZS9OZXR3b3JrIFVzZS4gWW91IG1heSBhbHNvIHN0b3JlIG9yIGluc3RhbGwg
YSBjb3B5IG9mIHRoZSBQcm9kdWN0IG9uIGEgc3RvcmFnZSBkZXZpY2UsIHN1Y2ggYXMgYSBuZXR3
b3JrIHNlcnZlciwgdXNlZCBvbmx5IHRvIGluc3RhbGwgb3IgcnVuIHRoZSBQcm9kdWN0IG9uIGNv
bXB1dGVycyB1c2VkIGJ5IGEgbGljZW5zZWQgZW5kIHVzZXIgaW4gYWNjb3JkYW5jZSB3aXRoIFNl
Y3Rpb24gMS4xLiAgQSBzaW5nbGUgbGljZW5zZSBmb3IgdGhlIFByb2R1Y3QgbWF5IG5vdCBiZSBz
aGFyZWQgb3IgdXNlZCBjb25jdXJyZW50bHkgYnkgbXVsdGlwbGUgZW5kIHVzZXJzLg0KMi4JQURE
SVRJT05BTCBMSUNFTlNFIFJJR0hUUyAtLSBSRURJU1RSSUJVVEFCTEUgQ09ERS4gIEluIGFkZGl0
aW9uIHRvIHRoZSByaWdodHMgZ3JhbnRlZCBpbiBTZWN0aW9uIDEsIGNlcnRhaW4gcG9ydGlvbnMg
b2YgdGhlIFByb2R1Y3QsIGFzIGRlc2NyaWJlZCBpbiB0aGlzIFNlY3Rpb24gMiwgYXJlIHByb3Zp
ZGVkIHRvIHlvdSB3aXRoIGFkZGl0aW9uYWwgbGljZW5zZSByaWdodHMuICBUaGVzZSBhZGRpdGlv
bmFsIGxpY2Vuc2UgcmlnaHRzIGFyZSBjb25kaXRpb25lZCB1cG9uIHlvdXIgY29tcGxpYW5jZSB3
aXRoIHRoZSBkaXN0cmlidXRpb24gcmVxdWlyZW1lbnRzIGFuZCBsaWNlbnNlIHJlc3RyaWN0aW9u
cyBkZXNjcmliZWQgaW4gU2VjdGlvbiAzLg0KMi4xCVNhbXBsZSBDb2RlLiBNaWNyb3NvZnQgZ3Jh
bnRzIHlvdSB0aGUgcmlnaHQgdG8gdXNlIGFuZCBtb2RpZnkgdGhlIHNvdXJjZSBjb2RlIHZlcnNp
b24gb2YgdGhvc2UgcG9ydGlvbnMgb2YgdGhlIFByb2R1Y3QgaWRlbnRpZmllZCBhcyCTU2FtcGxl
c5QgaW4gUkVESVNULlRYVCBvciBlbHNld2hlcmUgaW4gdGhlIFByb2R1Y3QgKJNTYW1wbGUgQ29k
ZZQpIGZvciB0aGUgc29sZSBwdXJwb3NlcyBvZiBkZXNpZ25pbmcsIGRldmVsb3BpbmcsIGFuZCB0
ZXN0aW5nIHlvdXIgcHJvZHVjdChzKSwgYW5kIHRvIHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSB0
aGUgU2FtcGxlIENvZGUsIGFsb25nIHdpdGggYW55IG1vZGlmaWNhdGlvbnMgdGhlcmVvZiwgaW4g
b2JqZWN0IGFuZC9vciBzb3VyY2UgY29kZSBmb3JtLiAgRm9yIGFwcGxpY2FibGUgcmVkaXN0cmli
dXRpb24gcmVxdWlyZW1lbnRzIGZvciBTYW1wbGUgQ29kZSwgc2VlIFNlY3Rpb24gMy4xIGJlbG93
Lg0KMi4yCVJlZGlzdHJpYnV0YWJsZSBDb2Rll0dlbmVyYWwuIE1pY3Jvc29mdCBncmFudHMgeW91
IGEgbm9uZXhjbHVzaXZlLCByb3lhbHR5LWZyZWUgcmlnaHQgdG8gcmVwcm9kdWNlIGFuZCBkaXN0
cmlidXRlIHRoZSBvYmplY3QgY29kZSBmb3JtIG9mIGFueSBwb3J0aW9uIG9mIHRoZSBQcm9kdWN0
IGxpc3RlZCBpbiBSRURJU1QuVFhUICiTUmVkaXN0cmlidXRhYmxlIENvZGWUKS4gIEZvciBnZW5l
cmFsIHJlZGlzdHJpYnV0aW9uIHJlcXVpcmVtZW50cyBmb3IgUmVkaXN0cmlidXRhYmxlIENvZGUs
IHNlZSBTZWN0aW9uIDMuMSwgYmVsb3cuICANCjMuCUxJQ0VOU0UgUkVTVFJJQ1RJT05TIC0tIERJ
U1RSSUJVVElPTiBSRVFVSVJFTUVOVFMuICBJZiB5b3UgY2hvb3NlIHRvIGV4ZXJjaXNlIHlvdXIg
cmlnaHRzIHVuZGVyIFNlY3Rpb24gMiwgYW55IHJlZGlzdHJpYnV0aW9uIGJ5IHlvdSBpcyBzdWJq
ZWN0IHRvIHlvdXIgY29tcGxpYW5jZSB3aXRoIHRoZSBmb2xsb3dpbmcgdGVybXMuIA0KMy4xCUlm
IHlvdSBhcmUgYXV0aG9yaXplZCBhbmQgY2hvb3NlIHRvIHJlZGlzdHJpYnV0ZSBTYW1wbGUgQ29k
ZSwgb3IgUmVkaXN0cmlidXRhYmxlIENvZGUgKGNvbGxlY3RpdmVseSwgdGhlIJNSZWRpc3RyaWJ1
dGFibGVzlCkgYXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gMiwgeW91IGFncmVlOiAgKGkpIGV4Y2Vw
dCBhcyBvdGhlcndpc2Ugbm90ZWQgaW4gU2VjdGlvbiAyLjEgKFNhbXBsZSBDb2RlKSwgdG8gZGlz
dHJpYnV0ZSB0aGUgUmVkaXN0cmlidXRhYmxlcyBvbmx5IGluIG9iamVjdCBjb2RlIGZvcm0gYW5k
IGluIGNvbmp1bmN0aW9uIHdpdGggYW5kIGFzIGEgcGFydCBvZiB0aGUgTGljZW5zZWUgUHJvZHVj
dHMgZGV2ZWxvcGVkIGJ5IHlvdSB0aGF0IGFkZHMgc2lnbmlmaWNhbnQgYW5kIHByaW1hcnkgZnVu
Y3Rpb25hbGl0eSB0byB0aGUgUmVkaXN0cmlidXRhYmxlczsgKGlpKSB0aGF0IHRoZSBSZWRpc3Ry
aWJ1dGFibGVzIG9ubHkgb3BlcmF0ZSBpbiBjb25qdW5jdGlvbiB3aXRoIE1pY3Jvc29mdCBXaW5k
b3dzIHBsYXRmb3JtczsgKGlpaSkgdG8gZGlzdHJpYnV0ZSB0aGUgTGljZW5zZWUgUHJvZHVjdCBj
b250YWluaW5nIHRoZSBSZWRpc3RyaWJ1dGFibGVzIHB1cnN1YW50IHRvIGFuIGVuZCB1c2VyIGxp
Y2Vuc2UgYWdyZWVtZW50ICh3aGljaCBtYXkgYmUgk2JyZWFrLXRoZS1zZWFslCwgk2NsaWNrLXdy
YXCUIG9yIHNpZ25lZCksIHdpdGggdGVybXMgbm8gbGVzcyBwcm90ZWN0aXZlIHRoYW4gdGhvc2Ug
Y29udGFpbmVkIGluIHRoaXMgRVVMQTsgKGl2KSBub3QgdG8gdXNlIE1pY3Jvc29mdJJzIG5hbWUs
IGxvZ28sIG9yIHRyYWRlbWFya3MgdG8gbWFya2V0IHRoZSBMaWNlbnNlZSBQcm9kdWN0OyAodikg
dG8gZGlzcGxheSB5b3VyIG93biB2YWxpZCBjb3B5cmlnaHQgbm90aWNlIHdoaWNoIHNoYWxsIGJl
IHN1ZmZpY2llbnQgdG8gcHJvdGVjdCBNaWNyb3NvZnSScyBjb3B5cmlnaHQgaW4gdGhlIFByb2R1
Y3Q7ICh2aSkgbm90IHRvIHJlbW92ZSBvciBvYnNjdXJlIGFueSBjb3B5cmlnaHQsIHRyYWRlbWFy
ayBvciBwYXRlbnQgbm90aWNlcyB0aGF0IGFwcGVhciBvbiB0aGUgUHJvZHVjdCBhcyBkZWxpdmVy
ZWQgdG8geW91OyAodmlpKSB0byBpbmRlbW5pZnksIGhvbGQgaGFybWxlc3MsIGFuZCBkZWZlbmQg
TWljcm9zb2Z0IGZyb20gYW5kIGFnYWluc3QgYW55IGNsYWltcyBvciBsYXdzdWl0cywgaW5jbHVk
aW5nIGF0dG9ybmV5knMgZmVlcywgdGhhdCBhcmlzZSBvciByZXN1bHQgZnJvbSB0aGUgdXNlIG9y
IGRpc3RyaWJ1dGlvbiBvZiB0aGUgTGljZW5zZWUgUHJvZHVjdDsgKHZpaWkpIG90aGVyd2lzZSBj
b21wbHkgd2l0aCB0aGUgdGVybXMgb2YgdGhpcyBFVUxBOyBhbmQgKGl4KSBhZ3JlZSB0aGF0IE1p
Y3Jvc29mdCByZXNlcnZlcyBhbGwgcmlnaHRzIG5vdCBleHByZXNzbHkgZ3JhbnRlZC4gIA0KWW91
IGFsc28gYWdyZWUgbm90IHRvIHBlcm1pdCBmdXJ0aGVyIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUmVk
aXN0cmlidXRhYmxlcyBieSB5b3VyIGVuZCB1c2VycyBleGNlcHQgeW91IG1heSBwZXJtaXQgZnVy
dGhlciByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUmVkaXN0cmlidXRhYmxlcyBieSB5b3VyIGRpc3Ry
aWJ1dG9ycyB0byB5b3VyIGVuZC11c2VyIGN1c3RvbWVycyBpZiB5b3VyIGRpc3RyaWJ1dG9ycyBv
bmx5IGRpc3RyaWJ1dGUgdGhlIFJlZGlzdHJpYnV0YWJsZXMgaW4gY29uanVuY3Rpb24gd2l0aCwg
YW5kIGFzIHBhcnQgb2YsIHRoZSBMaWNlbnNlZSBQcm9kdWN0IGFuZCB5b3UgYW5kIHlvdXIgZGlz
dHJpYnV0b3JzIGNvbXBseSB3aXRoIGFsbCBvdGhlciB0ZXJtcyBvZiB0aGlzIEVVTEEuIA0KMy4y
CUlmIHlvdSB1c2UgdGhlIFJlZGlzdHJpYnV0YWJsZXMsIHRoZW4gaW4gYWRkaXRpb24gdG8geW91
ciBjb21wbGlhbmNlIHdpdGggdGhlIGFwcGxpY2FibGUgZGlzdHJpYnV0aW9uIHJlcXVpcmVtZW50
cyBkZXNjcmliZWQgZm9yIHRoZSBSZWRpc3RyaWJ1dGFibGVzLCB0aGUgZm9sbG93aW5nIGFsc28g
YXBwbGllcy4gIFlvdXIgbGljZW5zZSByaWdodHMgdG8gdGhlIFJlZGlzdHJpYnV0YWJsZXMgYXJl
IGNvbmRpdGlvbmVkIHVwb24geW91ciAoaSkgbm90IGluY29ycG9yYXRpbmcgSWRlbnRpZmllZCBQ
cm9kdWN0IGludG8gb3IgY29tYmluaW5nIElkZW50aWZpZWQgUHJvZHVjdCB3aXRoIHRoZSBSZWRp
c3RyaWJ1dGFibGVzIG9yIGEgZGVyaXZhdGl2ZSB3b3JrIHRoZXJlb2Y7IChpaSkgbm90IGRpc3Ry
aWJ1dGluZyBJZGVudGlmaWVkIFByb2R1Y3QgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgUmVkaXN0
cmlidXRhYmxlcyBvciBhIGRlcml2YXRpdmUgd29yayB0aGVyZW9mOyBhbmQgKGlpaSkgbm90IHVz
aW5nIElkZW50aWZpZWQgUHJvZHVjdCBpbiB0aGUgZGV2ZWxvcG1lbnQgb2YgYSBkZXJpdmF0aXZl
IHdvcmsgb2YgdGhlIFJlZGlzdHJpYnV0YWJsZXMuICCTSWRlbnRpZmllZCBQcm9kdWN0lCBtZWFu
cyBQcm9kdWN0IHdoaWNoIGlzIGxpY2Vuc2VkIHB1cnN1YW50IHRvIHRlcm1zIHRoYXQgZGlyZWN0
bHkgb3IgaW5kaXJlY3RseSAoQSkgY3JlYXRlLCBvciBwdXJwb3J0IHRvIGNyZWF0ZSwgb2JsaWdh
dGlvbnMgZm9yIE1pY3Jvc29mdCB3aXRoIHJlc3BlY3QgdG8gdGhlIFJlZGlzdHJpYnV0YWJsZXMg
b3IgZGVyaXZhdGl2ZSB3b3JrIHRoZXJlb2Ygb3IgKEIpIGdyYW50LCBvciBwdXJwb3J0IHRvIGdy
YW50LCB0byBhbnkgdGhpcmQgcGFydHkgYW55IHJpZ2h0cyBvciBpbW11bml0aWVzIHVuZGVyIE1p
Y3Jvc29mdJJzIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvciBwcm9wcmlldGFyeSByaWdodHMgaW4g
dGhlIFJlZGlzdHJpYnV0YWJsZXMgb3IgZGVyaXZhdGl2ZSB3b3JrIHRoZXJlb2YuICBJZGVudGlm
aWVkIFByb2R1Y3QgaW5jbHVkZXMsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IFByb2R1Y3QgdGhh
dCByZXF1aXJlcyBhcyBhIGNvbmRpdGlvbiBvZiBpdHMgdXNlLCBtb2RpZmljYXRpb24gYW5kL29y
IGRpc3RyaWJ1dGlvbiwgdGhhdCBhbnkgb3RoZXIgUHJvZHVjdCBpbmNvcnBvcmF0ZWQgaW50bywg
ZGVyaXZlZCBmcm9tIG9yIGRpc3RyaWJ1dGVkIHdpdGggc3VjaCBQcm9kdWN0IG11c3QgYWxzbyBi
ZSAoMSkgZGlzY2xvc2VkIG9yIGRpc3RyaWJ1dGVkIGluIHNvdXJjZSBjb2RlIGZvcm07ICgyKSBs
aWNlbnNlZCBmb3IgdGhlIHB1cnBvc2Ugb2YgbWFraW5nIGRlcml2YXRpdmUgd29ya3M7IG9yICgz
KSByZWRpc3RyaWJ1dGFibGUgYXQgbm8gY2hhcmdlLiAgDQo0LglERVNDUklQVElPTiBPRiBPVEhF
UiBSSUdIVFMgQU5EIExJTUlUQVRJT05TDQo1LglSRVNFUlZBVElPTiBPRiBSSUdIVFMuICBNaWNy
b3NvZnQgcmVzZXJ2ZXMgYWxsIHJpZ2h0cyBub3QgZXhwcmVzc2x5IGdyYW50ZWQgdG8geW91IGlu
IHRoaXMgRVVMQS4NCjYuCVVQR1JBREVTLiBUbyB1c2UgYSBQcm9kdWN0IGlkZW50aWZpZWQgYXMg
YW4gdXBncmFkZSwgeW91IG11c3QgZmlyc3QgYmUgbGljZW5zZWQgZm9yIHRoZSBwcm9kdWN0IGlk
ZW50aWZpZWQgYnkgTWljcm9zb2Z0IGFzIGVsaWdpYmxlIGZvciB0aGUgdXBncmFkZS4gQWZ0ZXIg
dXBncmFkaW5nLCB5b3UgbWF5IG5vIGxvbmdlciB1c2UgdGhlIHByb2R1Y3QgdGhhdCBmb3JtZWQg
dGhlIGJhc2lzIGZvciB5b3VyIHVwZ3JhZGUgZWxpZ2liaWxpdHkuWW91IG1heSB1c2UgdGhlIHJl
c3VsdGluZyB1cGdyYWRlZCBwcm9kdWN0IG9ubHkgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSB0ZXJt
cyBvZiB0aGlzIEVVTEEuIElmIHRoZSBQcm9kdWN0IGlzIGFuIHVwZ3JhZGUgb2YgYSBjb21wb25l
bnQgb2YgYSBwYWNrYWdlIG9mIHNvZnR3YXJlIHByb2dyYW1zIHRoYXQgeW91IGxpY2Vuc2VkIGFz
IGEgc2luZ2xlIHByb2R1Y3QsIHRoZSBQcm9kdWN0IG1heSBiZSB1c2VkIGFuZCB0cmFuc2ZlcnJl
ZCBvbmx5IGFzIHBhcnQgb2YgdGhhdCBzaW5nbGUgcHJvZHVjdCBwYWNrYWdlIGFuZCBtYXkgbm90
IGJlIHNlcGFyYXRlZCBmb3IgdXNlIGJ5IG1vcmUgdGhhbiBvbmUgZW5kIHVzZXIuDQo3LglET1dO
R1JBREVTLiAgSW5zdGVhZCBvZiBpbnN0YWxsaW5nIGFuZCB1c2luZyB0aGUgUHJvZHVjdCwgeW91
IG1heSBpbnN0YWxsIGFuZCB1c2Ugb25lIGNvcHkgb2YgYW4gZWFybGllciB2ZXJzaW9uIG9mIHRo
ZSBQcm9kdWN0LCBwcm92aWRlZCB0aGF0IHlvdSBjb21wbGV0ZWx5IHJlbW92ZSBzdWNoIGVhcmxp
ZXIgdmVyc2lvbiBhbmQgaW5zdGFsbCB0aGUgb3JpZ2luYWwgUHJvZHVjdCB3aXRoaW4gYSByZWFz
b25hYmxlIHRpbWUuICBZb3VyIHVzZSBvZiBzdWNoIGVhcmxpZXIgdmVyc2lvbiBzaGFsbCBiZSBn
b3Zlcm5lZCBieSB0aGlzIEVVTEEsIGFuZCB5b3VyIHJpZ2h0cyB0byB1c2Ugc3VjaCBlYXJsaWVy
IHZlcnNpb24gc2hhbGwgdGVybWluYXRlIHdoZW4geW91IGluc3RhbGwgdGhlIG9yaWdpbmFsIFBy
b2R1Y3QuDQo4LglMSU1JVEFUSU9OUyBPTiBSRVZFUlNFIEVOR0lORUVSSU5HLCBERUNPTVBJTEFU
SU9OLCBBTkQgRElTQVNTRU1CTFkuICBZb3UgbWF5IG5vdCByZXZlcnNlIGVuZ2luZWVyLCBkZWNv
bXBpbGUsIG9yIGRpc2Fzc2VtYmxlIHRoZSBQcm9kdWN0LCBleGNlcHQgYW5kIG9ubHkgdG8gdGhl
IGV4dGVudCB0aGF0IHN1Y2ggYWN0aXZpdHkgaXMgZXhwcmVzc2x5IHBlcm1pdHRlZCBieSBhcHBs
aWNhYmxlIGxhdyBub3R3aXRoc3RhbmRpbmcgdGhpcyBsaW1pdGF0aW9uLg0KOS4JUkVOVEFMLiBZ
b3UgbWF5IG5vdCByZW50LCBsZWFzZSBvciBsZW5kIHRoZSBQcm9kdWN0Lg0KMTAuCVRSQURFTUFS
S1MuIFRoaXMgRVVMQSBkb2VzIG5vdCBncmFudCB5b3UgYW55IHJpZ2h0cyBpbiBjb25uZWN0aW9u
IHdpdGggYW55IHRyYWRlbWFya3Mgb3Igc2VydmljZSBtYXJrcyBvZiBNaWNyb3NvZnQuDQoxMS4J
Tk9UIEZPUiBSRVNBTEUgU09GVFdBUkUuICAgSWYgdGhlIFByb2R1Y3QgaXMgbGFiZWxlZCCTTm90
IEZvciBSZXNhbGWUIG9yIJNORlIslCB0aGVuIHlvdSBtYXkgbm90IHJlc2VsbCwgb3Igb3RoZXJ3
aXNlIHRyYW5zZmVyIGZvciB2YWx1ZSwgdGhlIFByb2R1Y3QuDQoxMi4JQUNBREVNSUMgRURJVElP
TiBTT0ZUV0FSRS4gIFRvIHVzZSBQcm9kdWN0IGlkZW50aWZpZWQgYXMgk0FjYWRlbWljIEVkaXRp
b26UIG9yIJNBRSyUIHlvdSBtdXN0IGJlIGEgk1F1YWxpZmllZCBFZHVjYXRpb25hbCBVc2VyLpQg
ICBGb3IgcXVhbGlmaWNhdGlvbi1yZWxhdGVkIHF1ZXN0aW9ucywgcGxlYXNlIGNvbnRhY3QgdGhl
IE1pY3Jvc29mdCBTYWxlcyBJbmZvcm1hdGlvbiBDZW50ZXIvT25lIE1pY3Jvc29mdCBXYXkvUmVk
bW9uZCwgV0EgOTgwNTItNjM5OSBvciB0aGUgTWljcm9zb2Z0IHN1YnNpZGlhcnkgc2VydmluZyB5
b3VyIGNvdW50cnkuDQoxMy4JQ09OU0VOVCBUTyBVU0UgT0YgREFUQS4gIFlvdSBhZ3JlZSB0aGF0
IE1pY3Jvc29mdCBhbmQgaXRzIGFmZmlsaWF0ZXMgbWF5IGNvbGxlY3QgYW5kIHVzZSB0ZWNobmlj
YWwgaW5mb3JtYXRpb24gZ2F0aGVyZWQgYXMgcGFydCBvZiB0aGUgcHJvZHVjdCBzdXBwb3J0IHNl
cnZpY2VzIHByb3ZpZGVkIHRvIHlvdSwgaWYgYW55LCByZWxhdGVkIHRvIHRoZSBQcm9kdWN0LiAg
TWljcm9zb2Z0IG1heSB1c2UgdGhpcyBpbmZvcm1hdGlvbiBzb2xlbHkgdG8gaW1wcm92ZSBvdXIg
cHJvZHVjdHMgb3IgdG8gcHJvdmlkZSBjdXN0b21pemVkIHNlcnZpY2VzIG9yIHRlY2hub2xvZ2ll
cyB0byB5b3UgYW5kIHdpbGwgbm90IGRpc2Nsb3NlIHRoaXMgaW5mb3JtYXRpb24gaW4gYSBmb3Jt
IHRoYXQgcGVyc29uYWxseSBpZGVudGlmaWVzIHlvdS4gICANCjE0LglMSU5LUyBUTyBUSElSRCBQ
QVJUWSBTSVRFUy4gIFlvdSBtYXkgbGluayB0byB0aGlyZCBwYXJ0eSBzaXRlcyB0aHJvdWdoIHRo
ZSB1c2Ugb2YgdGhlIFByb2R1Y3QuICBUaGUgdGhpcmQgcGFydHkgc2l0ZXMgYXJlIG5vdCB1bmRl
ciB0aGUgY29udHJvbCBvZiBNaWNyb3NvZnQsIGFuZCBNaWNyb3NvZnQgaXMgbm90IHJlc3BvbnNp
YmxlIGZvciB0aGUgY29udGVudHMgb2YgYW55IHRoaXJkIHBhcnR5IHNpdGVzLCBhbnkgbGlua3Mg
Y29udGFpbmVkIGluIHRoaXJkIHBhcnR5IHNpdGVzLCBvciBhbnkgY2hhbmdlcyBvciB1cGRhdGVz
IHRvIHRoaXJkIHBhcnR5IHNpdGVzLiAgTWljcm9zb2Z0IGlzIG5vdCByZXNwb25zaWJsZSBmb3Ig
d2ViY2FzdGluZyBvciBhbnkgb3RoZXIgZm9ybSBvZiB0cmFuc21pc3Npb24gcmVjZWl2ZWQgZnJv
bSBhbnkgdGhpcmQgcGFydHkgc2l0ZXMuICBNaWNyb3NvZnQgaXMgcHJvdmlkaW5nIHRoZXNlIGxp
bmtzIHRvIHRoaXJkIHBhcnR5IHNpdGVzIHRvIHlvdSBvbmx5IGFzIGEgY29udmVuaWVuY2UsIGFu
ZCB0aGUgaW5jbHVzaW9uIG9mIGFueSBsaW5rIGRvZXMgbm90IGltcGx5IGFuIGVuZG9yc2VtZW50
IGJ5IE1pY3Jvc29mdCBvZiB0aGUgdGhpcmQgcGFydHkgc2l0ZS4NCjE1LglVLlMuIEdPVkVSTk1F
TlQgTElDRU5TRSBSSUdIVFMuIEFsbCBQcm9kdWN0IHByb3ZpZGVkIHRvIHRoZSBVLlMuIEdvdmVy
bm1lbnQgcHVyc3VhbnQgdG8gc29saWNpdGF0aW9ucyBpc3N1ZWQgb24gb3IgYWZ0ZXIgRGVjZW1i
ZXIgMSwgMTk5NSBpcyBwcm92aWRlZCB3aXRoIHRoZSBjb21tZXJjaWFsIGxpY2Vuc2UgcmlnaHRz
IGFuZCByZXN0cmljdGlvbnMgZGVzY3JpYmVkIGVsc2V3aGVyZSBoZXJlaW4uICBBbGwgUHJvZHVj
dCBwcm92aWRlZCB0byB0aGUgVS5TLiBHb3Zlcm5tZW50IHB1cnN1YW50IHRvIHNvbGljaXRhdGlv
bnMgaXNzdWVkIHByaW9yIHRvIERlY2VtYmVyIDEsIDE5OTUgaXMgcHJvdmlkZWQgd2l0aCCTUmVz
dHJpY3RlZCBSaWdodHOUIGFzIHByb3ZpZGVkIGZvciBpbiBGQVIsIDQ4IENGUiA1Mi4yMjctMTQg
KEpVTkUgMTk4Nykgb3IgREZBUiwgNDggQ0ZSIDI1Mi4yMjctNzAxMyAoT0NUIDE5ODgpLCBhcyBh
cHBsaWNhYmxlLiANCjE2LglFWFBPUlQgUkVTVFJJQ1RJT05TLiAgWW91IGFja25vd2xlZGdlIHRo
YXQgdGhlIFByb2R1Y3QgaXMgc3ViamVjdCB0byBVLlMuIGV4cG9ydCBqdXJpc2RpY3Rpb24uICBZ
b3UgYWdyZWUgdG8gY29tcGx5IHdpdGggYWxsIGFwcGxpY2FibGUgaW50ZXJuYXRpb25hbCBhbmQg
bmF0aW9uYWwgbGF3cyB0aGF0IGFwcGx5IHRvIHRoZSBQcm9kdWN0LCBpbmNsdWRpbmcgdGhlIFUu
Uy4gRXhwb3J0IEFkbWluaXN0cmF0aW9uIFJlZ3VsYXRpb25zLCBhcyB3ZWxsIGFzIGVuZC11c2Vy
LCBlbmQtdXNlLCBhbmQgZGVzdGluYXRpb24gcmVzdHJpY3Rpb25zIGlzc3VlZCBieSBVLlMuIGFu
ZCBvdGhlciBnb3Zlcm5tZW50cy4gICBGb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBzZWUgPGh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9leHBvcnRpbmcvPi4NCjE3LglBRERJVElPTkFMIFNPRlRX
QVJFL1NFUlZJQ0VTLiAgVGhpcyBFVUxBIGFwcGxpZXMgdG8gdXBkYXRlcywgc3VwcGxlbWVudHMs
IGFkZC1vbiBjb21wb25lbnRzLCBvciBJbnRlcm5ldC1iYXNlZCBzZXJ2aWNlcyBjb21wb25lbnRz
LCBvZiB0aGUgUHJvZHVjdCB0aGF0IE1pY3Jvc29mdCBtYXkgcHJvdmlkZSB0byB5b3Ugb3IgbWFr
ZSBhdmFpbGFibGUgdG8geW91IGFmdGVyIHRoZSBkYXRlIHlvdSBvYnRhaW4geW91ciBpbml0aWFs
IGNvcHkgb2YgdGhlIFByb2R1Y3QsIHVubGVzcyB3ZSBwcm92aWRlIG90aGVyIHRlcm1zIGFsb25n
IHdpdGggdGhlIHVwZGF0ZSwgc3VwcGxlbWVudCwgYWRkLW9uIGNvbXBvbmVudCwgb3IgSW50ZXJu
ZXQtYmFzZWQgc2VydmljZXMgY29tcG9uZW50LiAgTWljcm9zb2Z0IHJlc2VydmVzIHRoZSByaWdo
dCB0byBkaXNjb250aW51ZSBhbnkgSW50ZXJuZXQtYmFzZWQgc2VydmljZXMgcHJvdmlkZWQgdG8g
eW91IG9yIG1hZGUgYXZhaWxhYmxlIHRvIHlvdSB0aHJvdWdoIHRoZSB1c2Ugb2YgdGhlIFByb2R1
Y3QuICANCjE4LglTT0ZUV0FSRSBUUkFOU0ZFUi4gIFRoZSBpbml0aWFsIHVzZXIgb2YgdGhlIFBy
b2R1Y3QgbWF5IG1ha2UgYSBvbmUtdGltZSBwZXJtYW5lbnQgdHJhbnNmZXIgb2YgdGhpcyBFVUxB
IGFuZCBQcm9kdWN0IHRvIGFub3RoZXIgZW5kIHVzZXIuICBUaGlzIHRyYW5zZmVyIG11c3QgaW5j
bHVkZSBhbGwgb2YgdGhlIFByb2R1Y3QgKGluY2x1ZGluZyBhbGwgY29tcG9uZW50IHBhcnRzLCB0
aGUgbWVkaWEgYW5kIHByaW50ZWQgbWF0ZXJpYWxzLCBhbnkgdXBncmFkZXMsIHRoaXMgRVVMQSwg
YW5kLCBpZiBhcHBsaWNhYmxlLCB0aGUgQ2VydGlmaWNhdGUgb2YgQXV0aGVudGljaXR5KS4gIFRo
ZSB0cmFuc2ZlciBtYXkgbm90IGJlIGFuIGluZGlyZWN0IHRyYW5zZmVyLCBzdWNoIGFzIGEgY29u
c2lnbm1lbnQuICBQcmlvciB0byB0aGUgdHJhbnNmZXIsIHRoZSBlbmQgdXNlciByZWNlaXZpbmcg
dGhlIFNvZnR3YXJlICBtdXN0IGFncmVlIHRvIGFsbCB0aGUgRVVMQSB0ZXJtcy4NCjE5LglURVJN
SU5BVElPTi4gIFdpdGhvdXQgcHJlanVkaWNlIHRvIGFueSBvdGhlciByaWdodHMsIE1pY3Jvc29m
dCBtYXkgdGVybWluYXRlIHRoaXMgRVVMQSBpZiB5b3UgZmFpbCB0byBjb21wbHkgd2l0aCB0aGUg
dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBFVUxBLiBJbiBzdWNoIGV2ZW50LCB5b3UgbXVz
dCBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIFByb2R1Y3QgYW5kIGFsbCBvZiBpdHMgY29tcG9u
ZW50IHBhcnRzLg0KMjAuCUFQUExJQ0FCTEUgTEFXLiAgSWYgeW91IGFjcXVpcmVkIHRoaXMgUHJv
ZHVjdCBpbiB0aGUgVW5pdGVkIFN0YXRlcywgdGhpcyBFVUxBIGlzIGdvdmVybmVkIGJ5IHRoZSBs
YXdzIG9mIHRoZSBTdGF0ZSBvZiBXYXNoaW5ndG9uLiAgSWYgeW91IGFjcXVpcmVkIHRoaXMgUHJv
ZHVjdCBpbiBDYW5hZGEsIHVubGVzcyBleHByZXNzbHkgcHJvaGliaXRlZCBieSBsb2NhbCBsYXcs
IHRoaXMgRVVMQSBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBpbiBmb3JjZSBpbiB0aGUgUHJvdmlu
Y2Ugb2YgT250YXJpbywgQ2FuYWRhOyBhbmQsIGluIHJlc3BlY3Qgb2YgYW55IGRpc3B1dGUgd2hp
Y2ggbWF5IGFyaXNlIGhlcmV1bmRlciwgeW91IGNvbnNlbnQgdG8gdGhlIGp1cmlzZGljdGlvbiBv
ZiB0aGUgZmVkZXJhbCBhbmQgcHJvdmluY2lhbCBjb3VydHMgc2l0dGluZyBpbiBUb3JvbnRvLCBP
bnRhcmlvLiBJZiB0aGlzIFByb2R1Y3Qgd2FzIGFjcXVpcmVkIG91dHNpZGUgdGhlIFVuaXRlZCBT
dGF0ZXMsIHRoZW4gbG9jYWwgbGF3IG1heSBhcHBseS4gDQoyMS4JVGhlIFByb2R1Y3QgaXMgcHJv
dGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mg
YW5kIHRyZWF0aWVzLiBNaWNyb3NvZnQgb3IgaXRzIHN1cHBsaWVycyBvd24gdGhlIHRpdGxlLCBj
b3B5cmlnaHQsIGFuZCBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGluIHRoZSBQ
cm9kdWN0LiAgVGhlIFByb2R1Y3QgaXMgbGljZW5zZWQsIG5vdCBzb2xkLg0KDQoyMi4gTElNSVRF
RCBXQVJSQU5UWSBGT1IgUFJPRFVDVCBBQ1FVSVJFRCBJTiBUSEUgVVMgQU5EIENBTkFEQS4gIA0K
RXhjZXB0IHdpdGggcmVzcGVjdCB0byB0aGUgUmVkaXN0cmlidXRhYmxlcywgd2hpY2ggYXJlIHBy
b3ZpZGVkIJNBUyBJUyyUIHdpdGhvdXQgd2FycmFudHkgb2YgYW55IGtpbmQsIE1pY3Jvc29mdCB3
YXJyYW50cyB0aGF0IHRoZSBQcm9kdWN0IHdpbGwgcGVyZm9ybSBzdWJzdGFudGlhbGx5IGluIGFj
Y29yZGFuY2Ugd2l0aCB0aGUgYWNjb21wYW55aW5nICBtYXRlcmlhbHMgZm9yIGEgcGVyaW9kIG9m
IG5pbmV0eSBkYXlzIGZyb20gdGhlIGRhdGUgb2YgcmVjZWlwdC4gDQpJZiBhbiBpbXBsaWVkIHdh
cnJhbnR5IG9yIGNvbmRpdGlvbiBpcyBjcmVhdGVkIGJ5IHlvdXIgc3RhdGUvanVyaXNkaWN0aW9u
IGFuZCBmZWRlcmFsIG9yIHN0YXRlL3Byb3ZpbmNpYWwgbGF3IHByb2hpYml0cyBkaXNjbGFpbWVy
IG9mIGl0LCB5b3UgYWxzbyBoYXZlIGFuIGltcGxpZWQgd2FycmFudHkgb3IgY29uZGl0aW9uLCBC
VVQgT05MWSBBUyBUTyBERUZFQ1RTIERJU0NPVkVSRUQgRFVSSU5HIFRIRSBQRVJJT0QgT0YgVEhJ
UyBMSU1JVEVEIFdBUlJBTlRZIChOSU5FVFkgREFZUykuIEFTIFRPIEFOWSBERUZFQ1RTIERJU0NP
VkVSRUQgQUZURVIgVEhFIE5JTkVUWSAoOTApIERBWSBQRVJJT0QsIFRIRVJFIElTIE5PIFdBUlJB
TlRZIE9SIENPTkRJVElPTiBPRiBBTlkgS0lORC4gIFNvbWUgc3RhdGVzL2p1cmlzZGljdGlvbnMg
ZG8gbm90IGFsbG93IGxpbWl0YXRpb25zIG9uIGhvdyBsb25nIGFuIGltcGxpZWQgd2FycmFudHkg
b3IgY29uZGl0aW9uIGxhc3RzLCBzbyB0aGUgYWJvdmUgbGltaXRhdGlvbiBtYXkgbm90IGFwcGx5
IHRvIHlvdS4NCkFueSBzdXBwbGVtZW50cyBvciB1cGRhdGVzIHRvIHRoZSBQcm9kdWN0LCBpbmNs
dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgKGlmIGFueSkgc2VydmljZSBwYWNrcyBvciBo
b3QgZml4ZXMgcHJvdmlkZWQgdG8geW91IGFmdGVyIHRoZSBleHBpcmF0aW9uIG9mIHRoZSBuaW5l
dHkgZGF5IExpbWl0ZWQgV2FycmFudHkgcGVyaW9kIGFyZSBub3QgY292ZXJlZCBieSBhbnkgd2Fy
cmFudHkgb3IgY29uZGl0aW9uLCBleHByZXNzLCBpbXBsaWVkIG9yIHN0YXR1dG9yeS4NCkxJTUlU
QVRJT04gT04gUkVNRURJRVM7IE5PIENPTlNFUVVFTlRJQUwgT1IgT1RIRVIgREFNQUdFUy4gWW91
ciBleGNsdXNpdmUgcmVtZWR5IGZvciBhbnkgYnJlYWNoIG9mIHRoaXMgTGltaXRlZCBXYXJyYW50
eSBpcyBhcyBzZXQgZm9ydGggYmVsb3cuICBFeGNlcHQgZm9yIGFueSByZWZ1bmQgZWxlY3RlZCBi
eSBNaWNyb3NvZnQsIFlPVSBBUkUgTk9UIEVOVElUTEVEIFRPIEFOWSBEQU1BR0VTLCBJTkNMVURJ
TkcgQlVUIE5PVCBMSU1JVEVEIFRPIENPTlNFUVVFTlRJQUwgREFNQUdFUywgaWYgdGhlIFByb2R1
Y3QgZG9lcyBub3QgbWVldCBNaWNyb3NvZnSScyBMaW1pdGVkIFdhcnJhbnR5LCBhbmQsIHRvIHRo
ZSBtYXhpbXVtIGV4dGVudCBhbGxvd2VkIGJ5IGFwcGxpY2FibGUgbGF3LCBldmVuIGlmIGFueSBy
ZW1lZHkgZmFpbHMgb2YgaXRzIGVzc2VudGlhbCBwdXJwb3NlLiAgVGhlIHRlcm1zIG9mIFNlY3Rp
b24gMjUgYmVsb3cgKJNFeGNsdXNpb24gb2YgSW5jaWRlbnRhbCwgQ29uc2VxdWVudGlhbCBhbmQg
Q2VydGFpbiBPdGhlciBEYW1hZ2VzlCkgIGFyZSBhbHNvIGluY29ycG9yYXRlZCBpbnRvIHRoaXMg
TGltaXRlZCBXYXJyYW50eS4gU29tZSBzdGF0ZXMvanVyaXNkaWN0aW9ucyBkbyBub3QgYWxsb3cg
dGhlIGV4Y2x1c2lvbiBvciBsaW1pdGF0aW9uIG9mIGluY2lkZW50YWwgb3IgY29uc2VxdWVudGlh
bCBkYW1hZ2VzLCBzbyB0aGUgYWJvdmUgbGltaXRhdGlvbiBvciBleGNsdXNpb24gbWF5IG5vdCBh
cHBseSB0byB5b3UuICBUaGlzIExpbWl0ZWQgV2FycmFudHkgZ2l2ZXMgeW91IHNwZWNpZmljIGxl
Z2FsIHJpZ2h0cy4gIFlvdSBtYXkgaGF2ZSBvdGhlcnMgd2hpY2ggdmFyeSBmcm9tIHN0YXRlL2p1
cmlzZGljdGlvbiB0byBzdGF0ZS9qdXJpc2RpY3Rpb24uIFlPVVIgRVhDTFVTSVZFIFJFTUVEWS4g
IE1pY3Jvc29mdJJzIGFuZCBpdHMgc3VwcGxpZXJzkiBlbnRpcmUgbGlhYmlsaXR5IGFuZCB5b3Vy
IGV4Y2x1c2l2ZSByZW1lZHkgc2hhbGwgYmUsIGF0IE1pY3Jvc29mdJJzIG9wdGlvbiBmcm9tIHRp
bWUgdG8gdGltZSBleGVyY2lzZWQgc3ViamVjdCB0byBhcHBsaWNhYmxlIGxhdywgKGEpIHJldHVy
biBvZiB0aGUgcHJpY2UgcGFpZCAoaWYgYW55KSBmb3IgdGhlIFByb2R1Y3QsIG9yIChiKSByZXBh
aXIgb3IgcmVwbGFjZW1lbnQgb2YgdGhlIFByb2R1Y3QsIHRoYXQgZG9lcyBub3QgbWVldCB0aGlz
IExpbWl0ZWQgV2FycmFudHkgYW5kIHRoYXQgaXMgcmV0dXJuZWQgdG8gTWljcm9zb2Z0IHdpdGgg
YSBjb3B5IG9mIHlvdXIgcmVjZWlwdC4gWW91IHdpbGwgcmVjZWl2ZSB0aGUgcmVtZWR5IGVsZWN0
ZWQgYnkgTWljcm9zb2Z0IHdpdGhvdXQgY2hhcmdlLCBleGNlcHQgdGhhdCB5b3UgYXJlIHJlc3Bv
bnNpYmxlIGZvciBhbnkgZXhwZW5zZXMgeW91IG1heSBpbmN1ciAoZS5nLiBjb3N0IG9mIHNoaXBw
aW5nIHRoZSBQcm9kdWN0IHRvIE1pY3Jvc29mdCkuICBUaGlzIExpbWl0ZWQgV2FycmFudHkgaXMg
dm9pZCBpZiBmYWlsdXJlIG9mIHRoZSBQcm9kdWN0IGhhcyByZXN1bHRlZCBmcm9tIGFjY2lkZW50
LCBhYnVzZSwgbWlzYXBwbGljYXRpb24sIGFibm9ybWFsIHVzZSBvciBhIHZpcnVzLiBBbnkgcmVw
bGFjZW1lbnQgUHJvZHVjdCB3aWxsIGJlIHdhcnJhbnRlZCBmb3IgdGhlIHJlbWFpbmRlciBvZiB0
aGUgb3JpZ2luYWwgd2FycmFudHkgcGVyaW9kIG9yIHRoaXJ0eSAoMzApIGRheXMsIHdoaWNoZXZl
ciBpcyBsb25nZXIuIE91dHNpZGUgdGhlIFVuaXRlZCBTdGF0ZXMgb3IgQ2FuYWRhLCBuZWl0aGVy
IHRoZXNlIHJlbWVkaWVzIG5vciBhbnkgcHJvZHVjdCBzdXBwb3J0IHNlcnZpY2VzIG9mZmVyZWQg
YnkgTWljcm9zb2Z0IGFyZSBhdmFpbGFibGUgd2l0aG91dCBwcm9vZiBvZiBwdXJjaGFzZSBmcm9t
IGFuIGF1dGhvcml6ZWQgaW50ZXJuYXRpb25hbCBzb3VyY2UuICBUbyBleGVyY2lzZSB5b3VyIHJl
bWVkeSwgY29udGFjdDogIE1pY3Jvc29mdCwgQXR0bi4gTWljcm9zb2Z0IFNhbGVzIEluZm9ybWF0
aW9uIENlbnRlci9PbmUgTWljcm9zb2Z0IFdheS9SZWRtb25kLCBXQSA5ODA1Mi02Mzk5LCBvciB0
aGUgTWljcm9zb2Z0IHN1YnNpZGlhcnkgc2VydmluZyB5b3VyIGNvdW50cnkuICAgDQoNCkxJTUlU
RUQgV0FSUkFOVFkgRk9SIFBST0RVQ1QgQUNRVUlSRUQgT1VUU0lERSBUSEUgVVMgT1IgQ0FOQURB
LiANCkZPUiBUSEUgTElNSVRFRCBXQVJSQU5USUVTIEFORCBTUEVDSUFMIFBST1ZJU0lPTlMgUEVS
VEFJTklORyBUTyBZT1VSIFBBUlRJQ1VMQVIgSlVSSVNESUNUSU9OLCBQTEVBU0UgUkVGRVIgVE8g
WU9VUiBXQVJSQU5UWSBCT09LTEVUIElOQ0xVREVEIFdJVEggVEhJUyBQQUNLQUdFIE9SIFBST1ZJ
REVEIFdJVEggVEhFIFNPRlRXQVJFIFBST0RVQ1QgUFJJTlRFRCBNQVRFUklBTFMuDQoNCjIzLglE
SVNDTEFJTUVSIE9GIFdBUlJBTlRJRVMuIFRoZSBMaW1pdGVkIFdhcnJhbnR5IHRoYXQgYXBwZWFy
cyBhYm92ZSBpcyB0aGUgb25seSBleHByZXNzIHdhcnJhbnR5IG1hZGUgdG8geW91IGFuZCBpcyBw
cm92aWRlZCBpbiBsaWV1IG9mIGFueSBvdGhlciBleHByZXNzIHdhcnJhbnRpZXMgKGlmIGFueSkg
Y3JlYXRlZCBieSBhbnkgZG9jdW1lbnRhdGlvbiwgcGFja2FnaW5nLCBvciBvdGhlciBjb21tdW5p
Y2F0aW9ucy4gIEV4Y2VwdCBmb3IgdGhlIExpbWl0ZWQgV2FycmFudHkgYW5kIHRvIHRoZSBtYXhp
bXVtIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcsIE1pY3Jvc29mdCBhbmQgaXRz
IHN1cHBsaWVycyBwcm92aWRlIHRoZSBQcm9kdWN0IGFuZCBzdXBwb3J0IHNlcnZpY2VzIChpZiBh
bnkpIEFTIElTIEFORCBXSVRIIEFMTCBGQVVMVFMsIGFuZCBoZXJlYnkgZGlzY2xhaW0gYWxsIG90
aGVyIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGVpdGhlciBleHByZXNzLCBpbXBsaWVkIG9y
IHN0YXR1dG9yeSwgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sIGFueSAoaWYgYW55KSBp
bXBsaWVkIHdhcnJhbnRpZXMsIGR1dGllcyBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0
eSwgb2YgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UsIG9mIHJlbGlhYmlsaXR5IG9y
IGF2YWlsYWJpbGl0eSwgb2YgYWNjdXJhY3kgb3IgY29tcGxldGVuZXNzIG9mIHJlc3BvbnNlcywg
b2YgcmVzdWx0cywgb2Ygd29ya21hbmxpa2UgZWZmb3J0LCBvZiBsYWNrIG9mIHZpcnVzZXMsIGFu
ZCBvZiBsYWNrIG9mIG5lZ2xpZ2VuY2UsIGFsbCB3aXRoIHJlZ2FyZCB0byB0aGUgUHJvZHVjdCwg
YW5kIHRoZSBwcm92aXNpb24gb2Ygb3IgZmFpbHVyZSB0byBwcm92aWRlIHN1cHBvcnQgb3Igb3Ro
ZXIgc2VydmljZXMsIGluZm9ybWF0aW9uLCBzb2Z0d2FyZSwgYW5kIHJlbGF0ZWQgY29udGVudCB0
aHJvdWdoIHRoZSBQcm9kdWN0IG9yIG90aGVyd2lzZSBhcmlzaW5nIG91dCBvZiB0aGUgdXNlIG9m
IHRoZSBQcm9kdWN0LiAgQUxTTywgVEhFUkUgSVMgTk8gV0FSUkFOVFkgT1IgQ09ORElUSU9OIE9G
IFRJVExFLCBRVUlFVCBFTkpPWU1FTlQsIFFVSUVUIFBPU1NFU1NJT04sIENPUlJFU1BPTkRFTkNF
IFRPIERFU0NSSVBUSU9OIE9SIE5PTi1JTkZSSU5HRU1FTlQgV0lUSCBSRUdBUkQgVE8gVEhFIFBS
T0RVQ1QuDQoyNC4JRVhDTFVTSU9OIE9GIElOQ0lERU5UQUwsIENPTlNFUVVFTlRJQUwgQU5EIENF
UlRBSU4gT1RIRVIgREFNQUdFUy4gIFRPIFRIRSBNQVhJTVVNIEVYVEVOVCBQRVJNSVRURUQgQlkg
QVBQTElDQUJMRSBMQVcsIElOIE5PIEVWRU5UIFNIQUxMIE1JQ1JPU09GVCBPUiBJVFMgU1VQUExJ
RVJTIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElOQ0lERU5UQUwsIFBVTklUSVZFLCBJTkRJ
UkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIFdIQVRTT0VWRVIgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBEQU1BR0VTIEZPUiBMT1NTIE9GIFBST0ZJVFMgT1IgQ09ORklERU5U
SUFMIE9SIE9USEVSIElORk9STUFUSU9OLCBGT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBGT1Ig
UEVSU09OQUwgSU5KVVJZLCBGT1IgTE9TUyBPRiBQUklWQUNZLCBGT1IgRkFJTFVSRSBUTyBNRUVU
IEFOWSBEVVRZIElOQ0xVRElORyBPRiBHT09EIEZBSVRIIE9SIE9GIFJFQVNPTkFCTEUgQ0FSRSwg
Rk9SIE5FR0xJR0VOQ0UsIEFORCBGT1IgQU5ZIE9USEVSIFBFQ1VOSUFSWSBPUiBPVEhFUiBMT1NT
IFdIQVRTT0VWRVIpIEFSSVNJTkcgT1VUIE9GIE9SIElOIEFOWSBXQVkgUkVMQVRFRCBUTyBUSEUg
VVNFIE9GIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0RVQ1QsIFRIRSBQUk9WSVNJT04gT0Yg
T1IgRkFJTFVSRSBUTyBQUk9WSURFIFNVUFBPUlQgT1IgT1RIRVIgU0VSVklDRVMsIElORk9STUFU
T04sIFNPRlRXQVJFLCBBTkQgUkVMQVRFRCBDT05URU5UIFRIUk9VR0ggVEhFIFBST0RVQ1QgT1Ig
T1RIRVJXSVNFIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT0YgVEhFIFBST0RVQ1QsIE9SIE9USEVS
V0lTRSBVTkRFUiBPUiBJTiBDT05ORUNUSU9OIFdJVEggQU5ZIFBST1ZJU0lPTiBPRiBUSElTIEVV
TEEsIEVWRU4gSU4gVEhFIEVWRU5UIE9GIFRIRSBGQVVMVCwgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UpLCBTVFJJQ1QgTElBQklMSVRZLCBCUkVBQ0ggT0YgQ09OVFJBQ1QgT1IgQlJFQUNIIE9G
IFdBUlJBTlRZIE9GIE1JQ1JPU09GVCBPUiBBTlkgU1VQUExJRVIsIEFORCBFVkVOIElGIE1JQ1JP
U09GVCBPUiBBTlkgU1VQUExJRVIgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0VTLiANCjI1LglMSU1JVEFUSU9OIE9GIExJQUJJTElUWSBBTkQgUkVNRURJ
RVMuIE5vdHdpdGhzdGFuZGluZyBhbnkgZGFtYWdlcyB0aGF0IHlvdSBtaWdodCBpbmN1ciBmb3Ig
YW55IHJlYXNvbiB3aGF0c29ldmVyIChpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYWxs
IGRhbWFnZXMgcmVmZXJlbmNlZCBhYm92ZSBhbmQgYWxsIGRpcmVjdCBvciBnZW5lcmFsIGRhbWFn
ZXMpLCB0aGUgZW50aXJlIGxpYWJpbGl0eSBvZiBNaWNyb3NvZnQgYW5kIGFueSBvZiBpdHMgc3Vw
cGxpZXJzIHVuZGVyIGFueSBwcm92aXNpb24gb2YgdGhpcyBFVUxBIGFuZCB5b3VyIGV4Y2x1c2l2
ZSByZW1lZHkgZm9yIGFsbCBvZiB0aGUgZm9yZWdvaW5nIChleGNlcHQgZm9yIGFueSByZW1lZHkg
b2YgcmVwYWlyIG9yIHJlcGxhY2VtZW50IGVsZWN0ZWQgYnkgTWljcm9zb2Z0IHdpdGggcmVzcGVj
dCB0byBhbnkgYnJlYWNoIG9mIHRoZSBMaW1pdGVkIFdhcnJhbnR5KSBzaGFsbCBiZSBsaW1pdGVk
IHRvIHRoZSBncmVhdGVyIG9mIHRoZSBhbW91bnQgYWN0dWFsbHkgcGFpZCBieSB5b3UgZm9yIHRo
ZSBQcm9kdWN0IG9yIFUuUy4kNS4wMC4gIFRoZSBmb3JlZ29pbmcgbGltaXRhdGlvbnMsIGV4Y2x1
c2lvbnMgYW5kIGRpc2NsYWltZXJzIChpbmNsdWRpbmcgU2VjdGlvbnMgMjIsIDIzLCBhbmQgMjQg
YWJvdmUpIHNoYWxsIGFwcGx5IHRvIHRoZSBtYXhpbXVtIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBw
bGljYWJsZSBsYXcsIGV2ZW4gaWYgYW55IHJlbWVkeSBmYWlscyBpdHMgZXNzZW50aWFsIHB1cnBv
c2UuDQoyNi4JRU5USVJFIEFHUkVFTUVOVC4gIFRoaXMgRVVMQSAoaW5jbHVkaW5nIGFueSBhZGRl
bmR1bSBvciBhbWVuZG1lbnQgdG8gdGhpcyBFVUxBIHdoaWNoIGlzIGluY2x1ZGVkIHdpdGggdGhl
IFByb2R1Y3QpIGFyZSB0aGUgZW50aXJlIGFncmVlbWVudCBiZXR3ZWVuIHlvdSBhbmQgTWljcm9z
b2Z0IHJlbGF0aW5nIHRvIHRoZSBQcm9kdWN0IGFuZCB0aGUgc3VwcG9ydCBzZXJ2aWNlcyAoaWYg
YW55KSBhbmQgdGhleSBzdXBlcnNlZGUgYWxsIHByaW9yIG9yIGNvbnRlbXBvcmFuZW91cyBvcmFs
IG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbnMsICBwcm9wb3NhbHMgYW5kIHJlcHJlc2VudGF0aW9u
cyB3aXRoIHJlc3BlY3QgdG8gdGhlIFByb2R1Y3Qgb3IgYW55IG90aGVyIHN1YmplY3QgbWF0dGVy
IGNvdmVyZWQgYnkgdGhpcyBFVUxBLiAgVG8gdGhlIGV4dGVudCB0aGUgdGVybXMgb2YgYW55IE1p
Y3Jvc29mdCBwb2xpY2llcyBvciBwcm9ncmFtcyBmb3Igc3VwcG9ydCBzZXJ2aWNlcyBjb25mbGlj
dCB3aXRoIHRoZSB0ZXJtcyBvZiB0aGlzIEVVTEEsIHRoZSB0ZXJtcyBvZiB0aGlzIEVVTEEgc2hh
bGwgY29udHJvbC4NCg0KU2kgdm91cyBhdmV6IGFjcXVpcyB2b3RyZSBwcm9kdWl0IE1pY3Jvc29m
dCBhdSBDQU5BREEsIGxhIGdhcmFudGllIGxpbWl06WUgc3VpdmFudGUgdm91cyBjb25jZXJuZSA6
DQpHQVJBTlRJRSBMSU1JVMlFDQpTYXVmIHB1ciBjZWxsZXMgZHUgk1JlZGlzdHJpYnV0YWJsZXMs
lCBxdWkgc29udCBmb3VybmllcyCTY29tbWUgdGVsbGVzLJQgTWljcm9zb2Z0IGdhcmFudGl0IHF1
ZSBsZSBQcm9kdWl0IGZvbmN0aW9ubmVyYSBjb25mb3Jt6W1lbnQgYXV4IGRvY3VtZW50cyBpbmNs
dXMgcGVuZGFudCB1bmUgcOlyaW9kZSBkZSA5MCBqb3VycyBzdWl2YW50IGxhIGRhdGUgZGUgculj
ZXB0aW9uLg0KU2kgdW5lIGdhcmFudGllIG91IGNvbmRpdGlvbiBpbXBsaWNpdGUgZXN0IGNy6ell
IHBhciB2b3RyZSDJdGF0IG91IHZvdHJlIHRlcnJpdG9pcmUgZXQgcXWSdW5lIGxvaSBm6WTpcmFs
ZSBvdSBwcm92aW5jaWFsZSBvdSDJdGF0IGVuIGludGVyZGl0IGxlIGTpbmksIHZvdXMgam91aXNz
ZXog6WdhbGVtZW50IGSSdW5lIGdhcmFudGllIG91IGNvbmRpdGlvbiBpbXBsaWNpdGUsIE1BSVMg
VU5JUVVFTUVOVCBQT1VSIExFUyBEyUZBVVRTIETJQ09VVkVSVFMgRFVSQU5UIExBIFDJUklPREUg
REUgTEEgUFLJU0VOVEUgR0FSQU5USUUgTElNSVTJRSAoUVVBVFJFLVZJTkdULURJWCBKT1VSUyku
IElMIE6SWSBBIEFVQ1VORSBHQVJBTlRJRSBPVSBDT05ESVRJT04gREUgUVVFTFFVRSBOQVRVUkUg
UVVFIENFIFNPSVQgUVVBTlQgQVVYIETJRkFVVFMgRMlDT1VWRVJUUyBBUFLIUyBDRVRURSBQyVJJ
T0RFIERFIFFVQVRSRS1WSU5HVC1ESVggSk9VUlMuIENlcnRhaW5zIMl0YXRzIG91IHRlcnJpdG9p
cmVzIG5lIHBlcm1ldHRlbnQgcGFzIGRlIGxpbWl0ZXIgbGEgZHVy6WUgZJJ1bmUgZ2FyYW50aWUg
b3UgY29uZGl0aW9uIGltcGxpY2l0ZSBkZSBzb3J0ZSBxdWUgbGEgbGltaXRhdGlvbiBjaa1kZXNz
dXMgcGV1dCBuZSBwYXMgc5JhcHBsaXF1ZXIg4CB2b3VzLg0KVG91cyBsZXMgc3VwcGzpbWVudHMg
b3UgdG91dGVzIGxlcyBtaXNlcyDgIGpvdXIgcmVsYXRpZnMgYXUgUHJvZHVpdCwgbm90YW1tZW50
LCBsZXMgZW5zZW1ibGVzIGRlIHNlcnZpY2VzIG91IGxlcyBy6XBhcmF0aW9ucyDgIGNoYXVkIChs
ZSBjYXMg6WNo6WFudCkgcXVpIHZvdXMgc29udCBmb3VybmlzIGFwcuhzIGySZXhwaXJhdGlvbiBk
ZSBsYSBw6XJpb2RlIGRlIHF1YXRyZS12aW5ndC1kaXggam91cnMgZGUgbGEgZ2FyYW50aWUgbGlt
aXTpZSBuZSBzb250IHBhcyBjb3V2ZXJ0cyBwYXIgcXVlbHF1ZSBnYXJhbnRpZSBvdSBjb25kaXRp
b24gcXVlIGNlIHNvaXQsIGV4cHJlc3NlIG91IGltcGxpY2l0ZS4NCkxJTUlUQVRJT04gREVTIFJF
Q09VUlM7IEFCU0VOQ0UgREUgRE9NTUFHRVMgSU5ESVJFQ1RTIE9VIEFVVFJFUy4gVm90cmUgcmVj
b3VycyBleGNsdXNpZiBwb3VyIHRvdXRlIHZpb2xhdGlvbiBkZSBsYSBwculzZW50ZSBnYXJhbnRp
ZSBsaW1pdOllIGVzdCBk6WNyaXQgY2mtYXBy6HMuIFNhdWYgcG91ciB0b3V0IHJlbWJvdXJzZW1l
bnQgYXUgY2hvaXggZGUgTWljcm9zb2Z0LCBzaSBsZSBQcm9kdWl0IG5lIHJlc3BlY3RlIHBhcyBs
YSBnYXJhbnRpZSBsaW1pdOllIGRlIE1pY3Jvc29mdCBldCwgZGFucyBsYSBtZXN1cmUgbWF4aW1h
bGUgcGVybWlzZSBwYXIgbGVzIGxvaXMgYXBwbGljYWJsZXMsIG3qbWUgc2kgdG91dCByZWNvdXJz
IG6SYXR0ZWludCBwYXMgc29uIGJ1dCBlc3NlbnRpZWwsIFZPVVMgTpJBVkVaIERST0lUIMAgQVVD
VU5TIERPTU1BR0VTLCBOT1RBTU1FTlQgREVTIERPTU1BR0VTIElORElSRUNUUy4gTGVzIG1vZGFs
aXTpcyBkZSBsYSBjbGF1c2Ugq0V4Y2x1c2lvbiBkZXMgZG9tbWFnZXMgYWNjZXNzb2lyZXMsIGlu
ZGlyZWN0cyBldCBkZSBjZXJ0YWlucyBhdXRyZXMgZG9tbWFnZXMguyBzb250IOlnYWxlbWVudCBp
bnTpZ3LpZXMg4CBsYSBwculzZW50ZSBnYXJhbnRpZSBsaW1pdOllLiBDZXJ0YWlucyDJdGF0cyBv
dSB0ZXJyaXRvaXJlcyBuZSBwZXJtZXR0ZW50IHBhcyBskmV4Y2x1c2lvbiBvdSBsYSBsaW1pdGF0
aW9uIGRlcyBkb21tYWdlcyBpbmRpcmVjdHMgb3UgYWNjZXNzb2lyZXMgZGUgc29ydGUgcXVlIGxh
IGxpbWl0YXRpb24gb3UgbJJleGNsdXNpb24gY2mtZGVzc3VzIHBldXQgbmUgcGFzIHOSYXBwbGlx
dWVyIOAgdm91cy4gTGEgcHLpc2VudGUgZ2FyYW50aWUgbGltaXTpZSB2b3VzIGRvbm5lIGRlcyBk
cm9pdHMgbOlnYXV4IHNw6WNpZmlxdWVzLiBWb3VzIHBvdXZleiBhdm9pciBkkmF1dHJlcyBkcm9p
dHMgcXVpIHBldXZlbnQgdmFyaWVyIGSSdW4gdGVycml0b2lyZSBvdSBkknVuIMl0YXQg4CB1biBh
dXRyZS4gVk9UUkUgUkVDT1VSUyBFWENMVVNJRi4gTJJvYmxpZ2F0aW9uIGludOlncmFsZSBkZSBN
aWNyb3NvZnQgZXQgZGUgc2VzIGZvdXJuaXNzZXVycyBldCB2b3RyZSByZWNvdXJzIGV4Y2x1c2lm
IHNlcm9udCwgc2Vsb24gbGUgY2hvaXggZGUgTWljcm9zb2Z0IGRlIHRlbXBzIOAgYXV0cmUgc291
cyBy6XNlcnZlIGRlIHRvdXRlIGxvaSBhcHBsaWNhYmxlLCBhKSBsZSByZW1ib3Vyc2VtZW50IGR1
IHByaXggcGF56SwgbGUgY2FzIOljaOlhbnQsIHBvdXIgbGUgUHJvZHVpdCBvdSBiKSBsYSBy6XBh
cmF0aW9uIG91IGxlIHJlbXBsYWNlbWVudCBkdSBQcm9kdWl0IHF1aSBuZSByZXNwZWN0ZSBwYXMg
bGEgcHLpc2VudGUgZ2FyYW50aWUgbGltaXTpZSBldCBxdWkgZXN0IHJldG91cm7pIOAgTWljcm9z
b2Z0IGF2ZWMgdW5lIGNvcGllIGRlIHZvdHJlIHJl53UuIFZvdXMgcmVjZXZyZXogbGEgY29tcGVu
c2F0aW9uIGNob2lzaWUgcGFyIE1pY3Jvc29mdCwgc2FucyBmcmFpcywgc2F1ZiBxdWUgdm91cyDq
dGVzIHJlc3BvbnNhYmxlIGRlcyBk6XBlbnNlcyBxdWUgdm91cyBwb3VycmlleiBlbmdhZ2VyIChw
LiBleC4sIGxlcyBmcmFpcyBkkmVudm9pIGR1IFByb2R1aXQg4CBNaWNyb3NvZnQpLiBMYSBwculz
ZW50ZSBnYXJhbnRpZSBsaW1pdOllIGVzdCBudWxsZSBzaSBsYSBk6WZlY3R1b3NpdOkgZHUgUHJv
ZHVpdCBlc3QgY2F1c+llIHBhciB1biBhY2NpZGVudCwgdW4gdXNhZ2UgYWJ1c2lmLCB1bmUgbWF1
dmFpc2UgYXBwbGljYXRpb24sIHVuIHVzYWdlIGFub3JtYWwgb3UgdW4gdmlydXMuIFRvdXQgUHJv
ZHVpdCBkZSByZW1wbGFjZW1lbnQgc2VyYSBnYXJhbnRpIHBvdXIgbGUgcmVzdGUgZGUgbGEgcOly
aW9kZSBkZSBnYXJhbnRpZSBpbml0aWFsZSBvdSBwZW5kYW50IHRyZW50ZSAoMzApIGpvdXJzLCBz
ZWxvbiBsYSBwbHVzIGxvbmd1ZSBlbnRyZSBjZXMgZGV1eCBw6XJpb2Rlcy4gwCBskmV4dOlyaWV1
ciBkZXMgyXRhdHMtVW5pcyBvdSBkdSBDYW5hZGEsIGNlcyByZWNvdXJzIG91IGySdW4gcXVlbGNv
bnF1ZSBkZXMgc2VydmljZXMgZGUgc291dGllbiB0ZWNobmlxdWUgb2ZmZXJ0cyBwYXIgTWljcm9z
b2Z0IG5lIHNvbnQgcGFzIGRpc3BvbmlibGVzIHNhbnMgcHJldXZlIGSSYWNoYXQgZJJ1bmUgc291
cmNlIGludGVybmF0aW9uYWxlIGF1dG9yaXPpZS4gUG91ciBleGVyY2VyIHZvdHJlIHJlY291cnMs
IHZvdXMgZGV2ZXogY29tbXVuaXF1ZXIgYXZlYyBNaWNyb3NvZnQgZXQgdm91cyBhZHJlc3NlciBh
dSBNaWNyb3NvZnQgU2FsZXMgSW5mb3JtYXRpb24gQ2VudGVyL09uZSBNaWNyb3NvZnQgV2F5L1Jl
ZG1vbmQsIFdBIDk4MDUyLTYzOTksIG91IOAgbGEgZmlsaWFsZSBkZSBNaWNyb3NvZnQgZGUgdm90
cmUgcGF5cy4NCg0KRMlOSSBERSBHQVJBTlRJRVMuIExhIGdhcmFudGllIGxpbWl06WUgbWVudGlv
bm7pZSBjaS1kZXNzdXMgY29uc3RpdHVlIGxhIHNldWxlIGdhcmFudGllIGV4cHJlc3NlIHF1aSB2
b3VzIGVzdCBkb25u6WUgZXQgcmVtcGxhY2UgdG91dGVzIGF1dHJlcyBnYXJhbnRpZXMgZXhwcmVz
c2VzIChzkmlsIGVuIGVzdCkgbWVudGlvbm7pZXMgZGFucyB1biBkb2N1bWVudCBvdSBzdXIgdW4g
ZW1iYWxsYWdlLiBTYXVmIGVuIGNlIHF1aSBhIHRyYWl0IOAgbGEgZ2FyYW50aWUgbGltaXTpZSBl
dCBkYW5zIGxhIG1lc3VyZSBtYXhpbWFsZSBwZXJtaXNlIHBhciBsZXMgbG9pcyBhcHBsaWNhYmxl
cywgbGUgUHJvZHVpdCBldCBsZXMgc2VydmljZXMgZGUgc291dGllbiB0ZWNobmlxdWUgKGxlIGNh
cyDpY2jpYW50KSBzb250IGZvdXJuaXMgVEVMUyBRVUVMUyBFVCBBVkVDIFRPVVMgTEVTIETJRkFV
VFMgcGFyIE1pY3Jvc29mdCBldCBzZXMgZm91cm5pc3NldXJzLCBsZXNxdWVscyBwYXIgbGVzIHBy
6XNlbnRlcyBk6W5pZW50IHRvdXRlcyBhdXRyZXMgZ2FyYW50aWVzIGV0IGNvbmRpdGlvbnMgZXhw
cmVzc2VzLCBpbXBsaWNpdGVzIG91IGVuIHZlcnR1IGRlIGxhIGxvaSwgbm90YW1tZW50IChsZSBj
YXMg6WNo6WFudCkgbGVzIGdhcmFudGllcywgZGV2b2lycyBvdSBjb25kaXRpb25zIGltcGxpY2l0
ZXMgZGUgcXVhbGl06SBtYXJjaGFuZGUsIGSSYWRhcHRhdGlvbiDgIHVuIHVzYWdlIHBhcnRpY3Vs
aWVyLCBkkmV4YWN0aXR1ZGUgb3UgZJJleGhhdXN0aXZpdOkgZGVzIHLpcG9uc2VzLCBkZXMgculz
dWx0YXRzLCBkZXMgZWZmb3J0cyBk6XBsb3npcyBzZWxvbiBsZXMgcuhnbGVzIGRlIGySYXJ0LCBk
kmFic2VuY2UgZGUgdmlydXMgZXQgZGUgbulnbGlnZW5jZSwgbGUgdG91dCDgIGyS6WdhcmQgZHUg
UHJvZHVpdCBldCBkZSBsYSBwcmVzdGF0aW9uIGRlcyBzZXJ2aWNlcyBkZSBzb3V0aWVuIHRlY2hu
aXF1ZSBvdSBkZSBskm9taXNzaW9uIGSSdW5lIHRlbGxlIHByZXN0YXRpb24uIFBBUiBBSUxMRVVS
UywgSUwgTpJZIEEgQVVDVU5FIEdBUkFOVElFIE9VIENPTkRJVElPTiBRVUFOVCBBVSBUSVRSRSBE
RSBQUk9QUknJVMksIMAgTEEgSk9VSVNTQU5DRSBPVSBMQSBQT1NTRVNTSU9OIFBBSVNJQkxFLCDA
IExBIENPTkNPUkRBTkNFIMAgVU5FIERFU0NSSVBUSU9OIE5JIFFVQU5UIMAgVU5FIEFCU0VOQ0Ug
REUgQ09OVFJFRkHHT04gQ09OQ0VSTkFOVCBMRSBQUk9EVUlULg0KRVhDTFVTSU9OIERFUyBET01N
QUdFUyBBQ0NFU1NPSVJFUywgSU5ESVJFQ1RTIEVUIERFIENFUlRBSU5TIEFVVFJFUyBET01NQUdF
Uy4gREFOUyBMQSBNRVNVUkUgTUFYSU1BTEUgUEVSTUlTRSBQQVIgTEVTIExPSVMgQVBQTElDQUJM
RVMsIEVOIEFVQ1VOIENBUyBNSUNST1NPRlQgT1UgU0VTIEZPVVJOSVNTRVVSUyBORSBTRVJPTlQg
UkVTUE9OU0FCTEVTIERFUyBET01NQUdFUyBTUMlDSUFVWCwgQ09OU8lDVVRJRlMsIEFDQ0VTU09J
UkVTIE9VIElORElSRUNUUyBERSBRVUVMUVVFIE5BVFVSRSBRVUUgQ0UgU09JVCAoTk9UQU1NRU5U
LCBMRVMgRE9NTUFHRVMgwCBMkslHQVJEIERVIE1BTlFVRSDAIEdBR05FUiBPVSBERSBMQSBESVZV
TEdBVElPTiBERSBSRU5TRUlHTkVNRU5UUyBDT05GSURFTlRJRUxTIE9VIEFVVFJFUywgREUgTEEg
UEVSVEUgRJJFWFBMT0lUQVRJT04sIERFIEJMRVNTVVJFUyBDT1JQT1JFTExFUywgREUgTEEgVklP
TEFUSU9OIERFIExBIFZJRSBQUklWyUUsIERFIEyST01JU1NJT04gREUgUkVNUExJUiBUT1VUIERF
Vk9JUiwgWSBDT01QUklTIESSQUdJUiBERSBCT05ORSBGT0kgT1UgRJJFWEVSQ0VSIFVOIFNPSU4g
UkFJU09OTkFCTEUsIERFIExBIE7JR0xJR0VOQ0UgRVQgREUgVE9VVEUgQVVUUkUgUEVSVEUgUMlD
VU5JQUlSRSBPVSBBVVRSRSBQRVJURSBERSBRVUVMUVVFIE5BVFVSRSBRVUUgQ0UgU09JVCkgU0Ug
UkFQUE9SVEFOVCBERSBRVUVMUVVFIE1BTknIUkUgUVVFIENFIFNPSVQgwCBMklVUSUxJU0FUSU9O
IERVIFBST0RVSVQgT1UgwCBMkklOQ0FQQUNJVMkgREUgU5JFTiBTRVJWSVIsIMAgTEEgUFJFU1RB
VElPTiBPVSDAIEyST01JU1NJT04gRJJVTkUgVEVMTEUgUFJFU1RBVElPTiBERSBTRVJWSUNFUyBE
RSBTT1VUSUVOIFRFQ0hOSVFVRSBPVSBBVVRSRU1FTlQgQVVYIFRFUk1FUyBERSBUT1VURSBESVNQ
T1NJVElPTiBEVSBQUslTRU5UIEVVTEEgT1UgUkVMQVRJVkVNRU5UIMAgVU5FIFRFTExFIERJU1BP
U0lUSU9OLCBNyk1FIEVOIENBUyBERSBGQVVURSwgREUgRMlMSVQgQ0lWSUwgKFkgQ09NUFJJUyBM
QSBOyUdMSUdFTkNFKSwgREUgUkVTUE9OU0FCSUxJVMkgU1RSSUNURSwgREUgVklPTEFUSU9OIERF
IENPTlRSQVQgT1UgREUgVklPTEFUSU9OIERFIEdBUkFOVElFIERFIE1JQ1JPU09GVCBPVSBERSBU
T1VUIEZPVVJOSVNTRVVSIEVUIE3KTUUgU0kgTUlDUk9TT0ZUIE9VIFRPVVQgRk9VUk5JU1NFVVIg
QSDJVMkgQVZJU8kgREUgTEEgUE9TU0lCSUxJVMkgREUgVEVMUyBET01NQUdFUy4NCkxJTUlUQVRJ
T04gREUgUkVTUE9OU0FCSUxJVMkgRVQgUkVDT1VSUy4gTWFsZ3LpIGxlcyBkb21tYWdlcyBxdWUg
dm91cyBwdWlzc2lleiBzdWJpciBwb3VyIHF1ZWxxdWUgbW90aWYgcXVlIGNlIHNvaXQgKG5vdGFt
bWVudCwgdG91cyBsZXMgZG9tbWFnZXMgc3VzbWVudGlvbm7pcyBldCB0b3VzIGxlcyBkb21tYWdl
cyBkaXJlY3RzIG91IGfpbulyYXV4KSwgbJJvYmxpZ2F0aW9uIGludOlncmFsZSBkZSBNaWNyb3Nv
ZnQgZXQgZGUgbJJ1biBvdSBskmF1dHJlIGRlIHNlcyBmb3Vybmlzc2V1cnMgYXV4IHRlcm1lcyBk
ZSB0b3V0ZSBkaXNwb3NpdGlvbiBkdSBwculzZW50IEVVTEEgZXQgdm90cmUgcmVjb3VycyBleGNs
dXNpZiDgIGyS6WdhcmQgZGUgdG91dCBjZSBxdWkgcHLpY+hkZSAoc2F1ZiBlbiBjZSBxdWkgY29u
Y2VybmUgdG91dCByZWNvdXJzIGRlIHLpcGFyYXRpb24gb3UgZGUgcmVtcGxhY2VtZW50IGNob2lz
aSBwYXIgTWljcm9zb2Z0IOAgbJLpZ2FyZCBkZSB0b3V0IG1hbnF1ZW1lbnQg4CBsYSBnYXJhbnRp
ZSBsaW1pdOllKSBzZSBsaW1pdGUgYXUgcGx1cyDpbGV26SBlbnRyZSBsZXMgbW9udGFudHMgc3Vp
dmFudHMgOiBsZSBtb250YW50IHF1ZSB2b3VzIGF2ZXogcullbGxlbWVudCBwYXnpIHBvdXIgbGUg
UHJvZHVpdCBvdSA1LDAwICRVUy4gTGVzIGxpbWl0ZXMsIGV4Y2x1c2lvbnMgZXQgZOluaXMgcXVp
IHBy6WPoZGVudCAoeSBjb21wcmlzIGxlcyBjbGF1c2VzIGNpLWRlc3N1cyksIHOSYXBwbGlxdWVu
dCBkYW5zIGxhIG1lc3VyZSBtYXhpbWFsZSBwZXJtaXNlIHBhciBsZXMgbG9pcyBhcHBsaWNhYmxl
cywgbeptZSBzaSB0b3V0IHJlY291cnMgbpJhdHRlaW50IHBhcyBzb24gYnV0IGVzc2VudGllbC4N
CkxhIHBy6XNlbnRlIENvbnZlbnRpb24gZXN0IHLpZ2llIHBhciBsZXMgbG9pcyBkZSBsYSBwcm92
aW5jZSBkkk9udGFyaW8sIENhbmFkYS4gQ2hhY3VuZSBkZXMgcGFydGllcyDgIGxhIHBy6XNlbnRl
IHJlY29ubmHudCBpcnLpdm9jYWJsZW1lbnQgbGEgY29tcOl0ZW5jZSBkZXMgdHJpYnVuYXV4IGRl
IGxhIHByb3ZpbmNlIGSST250YXJpbyBldCBjb25zZW50IOAgaW5zdGl0dWVyIHRvdXQgbGl0aWdl
IHF1aSBwb3VycmFpdCBk6WNvdWxlciBkZSBsYSBwculzZW50ZSBhdXBy6HMgZGVzIHRyaWJ1bmF1
eCBzaXR16XMgZGFucyBsZSBkaXN0cmljdCBqdWRpY2lhaXJlIGRlIFlvcmssIHByb3ZpbmNlIGSS
T250YXJpby4NCkF1IGNhcyBv+SB2b3VzIGF1cmlleiBkZXMgcXVlc3Rpb25zIGNvbmNlcm5hbnQg
Y2V0dGUgbGljZW5jZSBvdSBxdWUgdm91cyBk6XNpcmlleiB2b3VzIG1ldHRyZSBlbiByYXBwb3J0
IGF2ZWMgTWljcm9zb2Z0IHBvdXIgcXVlbHF1ZSByYWlzb24gcXVlIGNlIHNvaXQsIHZldWlsbGV6
IGNvbnRhY3RlciBsYSBzdWNjdXJzYWxlIE1pY3Jvc29mdCBkZXNzZXJ2YW50IHZvdHJlIHBheXMs
IGRvbnQgbJJhZHJlc3NlIGVzdCBmb3VybmllIGRhbnMgY2UgcHJvZHVpdCwgb3Ug6WNyaXZleiDg
IDogTWljcm9zb2Z0IFNhbGVzIEluZm9ybWF0aW9uIENlbnRlciwgT25lIE1pY3Jvc29mdCBXYXks
IFJlZG1vbmQsIFdhc2hpbmd0b24gOTgwNTItNjM5OS4NCg0KDQoNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198586</attachid>
            <date>2005-10-05 09:35:27 -0700</date>
            <delta_ts>2005-10-05 10:49:45 -0700</delta_ts>
            <desc>Add --enable-unicode and XPCOM beginnings</desc>
            <filename>bug239279.patch</filename>
            <type>text/plain</type>
            <size>114887</size>
            <attacher>benjamin</attacher>
            
              <data encoding="base64">PyB4cGNvbS9iYXNlL25zaWQucGF0Y2gKPyB4cGNvbS90ZXN0cy9UZXN0R1JFRmluZGVyLmNwcApJ
bmRleDogY29uZmlndXJlLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L21vemlsbGEv
Y29uZmlndXJlLmluLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE1MzAKZGlmZiAtdSAtMSAtMiAt
cCAtZCAtcjEuMTUzMCBjb25maWd1cmUuaW4KLS0tIGNvbmZpZ3VyZS5pbgkxNiBTZXAgMjAwNSAw
MjoyNTozNCAtMDAwMAkxLjE1MzAKKysrIGNvbmZpZ3VyZS5pbgk1IE9jdCAyMDA1IDE2OjMwOjMx
IC0wMDAwCkBAIC0zOTg2LDI0ICszOTg2LDI1IEBAIE1PWl9QWVRIT05fRExMX1NVRkZJWD0KIE1P
Wl9QWVRIT05fSU5DTFVERVM9CiBNT1pfUFlUSE9OX0xJQlM9CiBNT1pfUFlUSE9OX1BSRUZJWD0K
IE1PWl9QWVRIT05fVkVSPQogTU9aX1BZVEhPTl9WRVJfRE9UVEVEPQogTU9aX1JFRkxPV19QRVJG
PQogTU9aX1JFT1JERVI9CiBNT1pfU0lOR0xFX1BST0ZJTEU9CiBNT1pfU1RBVElDX0NPTVBPTkVO
VF9MSUJTPQogTU9aX1NUQVRJQ19NQUlMX0JVSUxEPQogTU9aX1RJTUVMSU5FPQogTU9aX1VJX0xP
Q0FMRT1lbi1VUworTU9aX1VOSUNPREU9CiBNT1pfVVNFX05BVElWRV9VQ09OVj0KIE1PWl9WMV9T
VFJJTkdfQUJJPTEKIE1PWl9WSUVXX1NPVVJDRT0xCiBNT1pfWFBGRV9DT01QT05FTlRTPTEKIE1P
Wl9YUElOU1RBTEw9MQogTU9aX1hURj0xCiBNT1pfWFVMPTEKIE5TX1BSSU5USU5HPTEKIE5FQ0tP
X0NPT0tJRVM9MQogTkVDS09fRElTS19DQUNIRT0xCiBORUNLT19QUk9UT0NPTFNfREVGQVVMVD0i
YWJvdXQgZGF0YSBmaWxlIGZ0cCBnb3BoZXIgaHR0cCBrZXl3b3JkIHJlcyB2aWV3c291cmNlIgog
TkVDS09fU01BTExfQlVGRkVSUz0KQEAgLTQyMDIsMjQgKzQyMDMsMzYgQEAgZG5sID0gCiBkbmwg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
IE1PWl9BUkdfSEVBREVSKENvbXBvbmVudHMgYW5kIEZlYXR1cmVzKQogCiBkbmwgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGRubCA9IExv
Y2FsaXphdGlvbgogZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CiBNT1pfQVJHX0VOQUJMRV9TVFJJTkcodWktbG9jYWxlLAogWyAgLS1l
bmFibGUtdWktbG9jYWxlPWFiLUNECiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCB0
aGUgdXNlciBpbnRlcmZhY2UgbG9jYWxlIChkZWZhdWx0OiBlbi1VUyldLAogICAgIE1PWl9VSV9M
T0NBTEU9JGVuYWJsZXZhbCApCiBBQ19TVUJTVChNT1pfVUlfTE9DQUxFKQogCitkbmwgPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2RubCA9
IFdpbmRvd3MgVW5pY29kZSBBUElzCitkbmwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KK01PWl9BUkdfRU5BQkxFX0JPT0wodW5pY29kZSwK
K1sgIC0tZW5hYmxlLXVuaWNvZGUgICAgICAgIEVuYWJsZSB3aW5kb3dzIHVuaWNvZGUgQVBJcy5d
LAorICAgIE1PWl9VTklDT0RFPTEsCisgICAgTU9aX1VOSUNPREU9ICkKK2lmIHRlc3QgIiRPU19B
UkNIIiA9PSAiV0lOTlQiIC1hICIkTU9aX1VOSUNPREUiOyB0aGVuCisgICBBQ19ERUZJTkUoVU5J
Q09ERSkKKyAgIEFDX0RFRklORShfVU5JQ09ERSkKK2ZpCisKIGRubCA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGRubCA9IENhbGVuZGFy
IGNsaWVudAogZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQogTU9aX0FSR19FTkFCTEVfQk9PTChjYWxlbmRhciwKIFsgIC0tZW5hYmxl
LWNhbGVuZGFyICAgICAgIEVuYWJsZSBidWlsZGluZyBvZiB0aGUgY2FsZW5kYXIgY2xpZW50XSwK
ICAgICBNT1pfQ0FMRU5EQVI9MSwKICAgICBNT1pfQ0FMRU5EQVI9ICkKIEFDX1NVQlNUKE1PWl9D
QUxFTkRBUikKIAogZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogZG5sID0gTWFpbCAmIE5ld3MKIGRubCA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IHhwY29tL2Jh
c2UvTWFrZWZpbGUuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvbW96aWxsYS94cGNv
bS9iYXNlL01ha2VmaWxlLmluLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjY3CmRpZmYgLXUgLTEg
LTIgLXAgLWQgLXIxLjY3IE1ha2VmaWxlLmluCi0tLSB4cGNvbS9iYXNlL01ha2VmaWxlLmluCTkg
QXVnIDIwMDUgMTM6Mzk6MTEgLTAwMDAJMS42NworKysgeHBjb20vYmFzZS9NYWtlZmlsZS5pbgk1
IE9jdCAyMDA1IDE2OjMwOjMxIC0wMDAwCkBAIC03MSwyNCArNzEsMjUgQEAgUkVRVUlSRVMJKz0g
Ym9laG0KIGVuZGlmCiAKIEVYUE9SVFMJCT0gXAogCQluc0FnZy5oIFwKIAkJbnNBdXRvUHRyLmgg
XAogCQluc0NvbS5oIFwKIAkJbnNEZWJ1Z0ltcGwuaCBcCiAJCW5zSUFsbG9jYXRvci5oIFwKIAkJ
bnNJSUQuaCBcCiAJCW5zSVN1cHBvcnRzT2Jzb2xldGUuaCBcCiAJCW5zVHJhY2VSZWZjbnRJbXBs
LmggXAogCQluc1dlYWtQdHIuaCBcCisJCW5zV2luZG93c1VuaWNvZGUuaCBcCiAJCW5zSW50ZXJm
YWNlUmVxdWVzdG9yQWdnLmggXAogCQkkKE5VTEwpCiAKIGlmZXEgKCQoT1NfQVJDSCksV0lOTlQp
CiBpZmRlZiBNT1pfREVCVUcKIENTUkNTCQkrPSBwdXJlX2FwaS5jCiBFWFBPUlRTCQkrPSBwdXJl
LmgKIGVuZGlmCiBDUFBTUkNTCQkrPSBuc1N0YWNrRnJhbWVXaW4uY3BwCiBlbmRpZgogCiBpZm5l
cSAoJChPU19BUkNIKSxXSU5OVCkKSW5kZXg6IHhwY29tL2Jhc2UvbnNEZWJ1Z0ltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L21vemlsbGEveHBjb20vYmFzZS9uc0RlYnVnSW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDMuMTMKZGlmZiAtdSAtMSAtMiAtcCAtZCAtcjMu
MTMgbnNEZWJ1Z0ltcGwuY3BwCi0tLSB4cGNvbS9iYXNlL25zRGVidWdJbXBsLmNwcAkxNCBTZXAg
MjAwNSAyMTowMDozNyAtMDAwMAkzLjEzCisrKyB4cGNvbS9iYXNlL25zRGVidWdJbXBsLmNwcAk1
IE9jdCAyMDA1IDE2OjMwOjMyIC0wMDAwCkBAIC0zNywyNCArMzcsMjUgQEAKICAqCiAgKiAqKioq
KiBFTkQgTElDRU5TRSBCTE9DSyAqKioqKiAqLwogCiAjaW5jbHVkZSAibnNEZWJ1Z0ltcGwuaCIK
ICNpbmNsdWRlICJuc0RlYnVnLmgiCiAjaW5jbHVkZSAicHJwcmYuaCIKICNpbmNsdWRlICJwcmxv
Zy5oIgogI2luY2x1ZGUgInByaW5pdC5oIgogI2luY2x1ZGUgInBsc3RyLmgiCiAjaW5jbHVkZSAi
bnNFcnJvci5oIgogI2luY2x1ZGUgInByZXJyb3IuaCIKICNpbmNsdWRlICJwcmVyci5oIgorI2lu
Y2x1ZGUgIm5zU3RyaW5nLmgiCiAKICNpZiBkZWZpbmVkKFhQX0JFT1MpCiAvKiBGb3IgREVCVUdH
RVIgbWFjcm9zICovCiAjaW5jbHVkZSA8RGVidWcuaD4KICNlbmRpZgogCiAjaWYgZGVmaW5lZChY
UF9VTklYKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChYUF9PUzIpIHx8IGRlZmluZWQo
WFBfQkVPUykKIC8qIGZvciBhYm9ydCgpIGFuZCBnZXRlbnYoKSAqLwogI2luY2x1ZGUgPHN0ZGxp
Yi5oPgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYmICFkZWZpbmVkKFVOSVhfQ1JB
U0hfT05fQVNTRVJUKQpAQCAtODQsNDAgKzg1LDQxIEBACiAgICNpbmNsdWRlIDxzdHJpbmcuaD4K
ICAgCiAgICNpZiBkZWZpbmVkKERFQlVHKQogICAgICNkZWZpbmUgRGVidWdCcmVhaygpIHsgYXNt
KCJpbnQgJDMiKTsgfQogICAjZWxzZQogICAgICNkZWZpbmUgRGVidWdCcmVhaygpCiAgICNlbmRp
ZiAvKiBERUJVRyAqLwogI2VuZGlmIC8qIFhQX09TMiAqLwogCiAjaWYgZGVmaW5lZChfV0lOMzIp
CiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHRj
aGFyLmg+CiAjZWxpZiBkZWZpbmVkKFhQX1VOSVgpCiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjZW5k
aWYKIAogLyoKICAqIERldGVybWluZSBpZiBkZWJ1Z2dlciBpcyBwcmVzZW50IGluIHdpbmRvd3Mu
CiAgKi8KICNpZiBkZWZpbmVkIChfV0lOMzIpCiAKIHR5cGVkZWYgV0lOQkFTRUFQSSBCT09MIChX
SU5BUEkqIExQRk5JU0RFQlVHR0VSUFJFU0VOVCkoKTsKIFBSQm9vbCBJbkRlYnVnZ2VyKCkKIHsK
ICNpZm5kZWYgV0lOQ0UKICAgIFBSQm9vbCBmUmV0dXJuID0gUFJfRkFMU0U7CiAgICBMUEZOSVNE
RUJVR0dFUlBSRVNFTlQgbHBmbklzRGVidWdnZXJQcmVzZW50ID0gTlVMTDsKLSAgIEhJTlNUQU5D
RSBoS2VybmVsID0gTG9hZExpYnJhcnkoIktlcm5lbDMyLmRsbCIpOworICAgSElOU1RBTkNFIGhL
ZXJuZWwgPSBMb2FkTGlicmFyeShfVCgiS2VybmVsMzIuZGxsIikpOwogCiAgICBpZihoS2VybmVs
KQogICAgICAgewogICAgICAgbHBmbklzRGVidWdnZXJQcmVzZW50ID0gCiAgICAgICAgICAoTFBG
TklTREVCVUdHRVJQUkVTRU5UKUdldFByb2NBZGRyZXNzKGhLZXJuZWwsICJJc0RlYnVnZ2VyUHJl
c2VudCIpOwogICAgICAgaWYobHBmbklzRGVidWdnZXJQcmVzZW50KQogICAgICAgICAgewogICAg
ICAgICAgZlJldHVybiA9ICgqbHBmbklzRGVidWdnZXJQcmVzZW50KSgpOwogICAgICAgICAgfQog
ICAgICAgRnJlZUxpYnJhcnkoaEtlcm5lbCk7CiAgICAgICB9CiAKQEAgLTE4Myw0MCArMTg1LDQx
IEBAIG5zRGVidWdJbXBsOjpBc3NlcnRpb24oY29uc3QgY2hhciAqYVN0ciwKICAgIH0KICAgIGlm
KChpZ25vcmVEZWJ1Z2dlciA9PSAyKSB8fCAhSW5EZWJ1Z2dlcigpKQogICAgICAgewogICAgICAg
RFdPUkQgY29kZSA9IElEUkVUUlk7CiAKICAgICAgIC8qIENyZWF0ZSB0aGUgZGVidWcgZGlhbG9n
IG91dCBvZiBwcm9jZXNzIHRvIGF2b2lkIHRoZSBjcmFzaGVzIGNhdXNlZCBieSAKICAgICAgICAq
IFdpbmRvd3MgZXZlbnRzIGxlYWtpbmcgaW50byBvdXIgZXZlbnQgbG9vcCBmcm9tIGFuIGluIHBy
b2Nlc3MgZGlhbG9nLgogICAgICAgICogV2UgZG8gdGhpcyBieSBsYXVuY2hpbmcgd2luZGJnZGxn
LmV4ZSAoYnVpbHQgaW4geHBjb20vd2luZGJnZGxnKS4KICAgICAgICAqIFNlZSBodHRwOi8vYnVn
emlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTU0NzkyCiAgICAgICAgKi8KICAgICAg
IFBST0NFU1NfSU5GT1JNQVRJT04gcGk7CiAgICAgICBTVEFSVFVQSU5GTyBzaTsKLSAgICAgIGNo
YXIgZXhlY3V0YWJsZVtNQVhfUEFUSF07Ci0gICAgICBjaGFyKiBwTmFtZTsKKyAgICAgIFRDSEFS
IGV4ZWN1dGFibGVbTUFYX1BBVEhdOworICAgICAgVENIQVIqIHBOYW1lOwogCiAgICAgICBtZW1z
ZXQoJnBpLCAwLCBzaXplb2YocGkpKTsKIAogICAgICAgbWVtc2V0KCZzaSwgMCwgc2l6ZW9mKHNp
KSk7CiAgICAgICBzaS5jYiAgICAgICAgICA9IHNpemVvZihzaSk7CiAgICAgICBzaS53U2hvd1dp
bmRvdyA9IFNXX1NIT1c7CiAKLSAgICAgIGlmKEdldE1vZHVsZUZpbGVOYW1lKEdldE1vZHVsZUhh
bmRsZSgieHBjb20uZGxsIiksIGV4ZWN1dGFibGUsIE1BWF9QQVRIKSAmJgotICAgICAgICAgTlVM
TCAhPSAocE5hbWUgPSBzdHJyY2hyKGV4ZWN1dGFibGUsICdcXCcpKSAmJgotICAgICAgICAgTlVM
TCAhPSBzdHJjcHkocE5hbWUrMSwgIndpbmRiZ2RsZy5leGUiKSAmJgorICAgICAgaWYoR2V0TW9k
dWxlRmlsZU5hbWUoR2V0TW9kdWxlSGFuZGxlKF9UKCJ4cGNvbS5kbGwiKSksIGV4ZWN1dGFibGUs
IE1BWF9QQVRIKSAmJgorICAgICAgICAgTlVMTCAhPSAocE5hbWUgPSBfdGNzcmNocihleGVjdXRh
YmxlLCAnXFwnKSkgJiYKKyAgICAgICAgIE5VTEwgIT0gX3Rjc2NweShwTmFtZSsxLCBfVCgid2lu
ZGJnZGxnLmV4ZSIpKSAmJgogI2lmZGVmIERFQlVHX2piYW5kCiAgICAgICAgICAocHJpbnRmKCJM
YXVuY2hpbmcgJXNcbiIsIGV4ZWN1dGFibGUpLCBQUl9UUlVFKSAmJgogI2VuZGlmICAgICAgICAg
Ci0gICAgICAgICBDcmVhdGVQcm9jZXNzKGV4ZWN1dGFibGUsIGJ1ZiwgTlVMTCwgTlVMTCwgUFJf
RkFMU0UsCisgICAgICAgICBDcmVhdGVQcm9jZXNzKGV4ZWN1dGFibGUsIChUQ0hBUiopIE5TX0Nv
bnZlcnRVVEY4dG9VVEYxNihidWYpLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICBOVUxM
LCBOVUxMLCBQUl9GQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgREVUQUNIRURfUFJPQ0VT
UyB8IE5PUk1BTF9QUklPUklUWV9DTEFTUywKICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg
TlVMTCwgJnNpLCAmcGkpICYmCiAgICAgICAgICBXQUlUX09CSkVDVF8wID09IFdhaXRGb3JTaW5n
bGVPYmplY3QocGkuaFByb2Nlc3MsIElORklOSVRFKSAmJgogICAgICAgICAgR2V0RXhpdENvZGVQ
cm9jZXNzKHBpLmhQcm9jZXNzLCAmY29kZSkpCiAgICAgICB7CiAgICAgICAgIENsb3NlSGFuZGxl
KHBpLmhQcm9jZXNzKTsKICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgCiAKICAgICAg
IHN3aXRjaChjb2RlKQogICAgICAgICAgewogICAgICAgICAgY2FzZSBJREFCT1JUOgogICAgICAg
ICAgICAgLy9UaGlzIHNob3VsZCBleGl0IHVzCkluZGV4OiB4cGNvbS9iYXNlL25zU3RhY2tGcmFt
ZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvbW96aWxsYS94cGNvbS9iYXNl
L25zU3RhY2tGcmFtZVdpbi5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC11IC0x
IC0yIC1wIC1kIC1yMS44IG5zU3RhY2tGcmFtZVdpbi5jcHAKLS0tIHhwY29tL2Jhc2UvbnNTdGFj
a0ZyYW1lV2luLmNwcAkyIEF1ZyAyMDA1IDIyOjE3OjU5IC0wMDAwCTEuOAorKysgeHBjb20vYmFz
ZS9uc1N0YWNrRnJhbWVXaW4uY3BwCTUgT2N0IDIwMDUgMTY6MzA6MzIgLTAwMDAKQEAgLTMwLDI4
ICszMCwzMCBAQAogICogaW4gd2hpY2ggY2FzZSB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgR1BMIG9y
IHRoZSBMR1BMIGFyZSBhcHBsaWNhYmxlIGluc3RlYWQKICAqIG9mIHRob3NlIGFib3ZlLiBJZiB5
b3Ugd2lzaCB0byBhbGxvdyB1c2Ugb2YgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBvbmx5CiAg
KiB1bmRlciB0aGUgdGVybXMgb2YgZWl0aGVyIHRoZSBHUEwgb3IgdGhlIExHUEwsIGFuZCBub3Qg
dG8gYWxsb3cgb3RoZXJzIHRvCiAgKiB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIE1QTCwgaW5kaWNhdGUgeW91cgogICogZGVjaXNpb24gYnkgZGVs
ZXRpbmcgdGhlIHByb3Zpc2lvbnMgYWJvdmUgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3Rp
Y2UKICAqIGFuZCBvdGhlciBwcm92aXNpb25zIHJlcXVpcmVkIGJ5IHRoZSBHUEwgb3IgdGhlIExH
UEwuIElmIHlvdSBkbyBub3QgZGVsZXRlCiAgKiB0aGUgcHJvdmlzaW9ucyBhYm92ZSwgYSByZWNp
cGllbnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyCiAgKiB0aGUgdGVy
bXMgb2YgYW55IG9uZSBvZiB0aGUgTVBMLCB0aGUgR1BMIG9yIHRoZSBMR1BMLgogICoKICAqICoq
KioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqICovCiAKICNpbmNsdWRlICJuc2NvcmUuaCIKLSNp
bmNsdWRlICJ3aW5kb3dzLmgiCi0jaW5jbHVkZSAic3RkaW8uaCIKICNpbmNsdWRlICJuc1N0YWNr
RnJhbWVXaW4uaCIKIAorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgor
I2luY2x1ZGUgPHRjaGFyLmg+CisKIC8vIERlZmluZSB0aGVzZSBhcyBzdGF0aWMgcG9pbnRlcnMg
c28gdGhhdCB3ZSBjYW4gbG9hZCB0aGUgRExMIG9uIHRoZQogLy8gZmx5IChhbmQgbm90IGludHJv
ZHVjZSBhIGxpbmstdGltZSBkZXBlbmRlbmN5IG9uIGl0KS4gVGlwIG8nIHRoZQogLy8gaGF0IHRv
IE1hdHQgUGlldHJpY2sgZm9yIHRoaXMgaWRlYS4gU2VlOgogLy8KIC8vICAgaHR0cDovL21zZG4u
bWljcm9zb2Z0LmNvbS9saWJyYXJ5L3BlcmlvZGljL3BlcmlvZDk3L0YxL0QzL1MyNDVDNi5odG0K
IC8vCiAKIAogUFJfQkVHSU5fRVhURVJOX0MKIAogU1lNU0VUT1BUSU9OU1BST0MgX1N5bVNldE9w
dGlvbnM7CiAKQEAgLTE1MiwyNyArMTU0LDI3IEBAIEVuc3VyZUltYWdlSGxwSW5pdGlhbGl6ZWQo
KQogCiAgICAgLy8gQ3JlYXRlIGEgbXV0ZXggd2l0aCBubyBpbml0aWFsIG93bmVyLgogICAgIGhT
dGFja1dhbGtNdXRleCA9IENyZWF0ZU11dGV4KAogICAgICAgTlVMTCwgICAgICAgICAgICAgICAg
ICAgICAgIC8vIGRlZmF1bHQgc2VjdXJpdHkgYXR0cmlidXRlcwogICAgICAgRkFMU0UsICAgICAg
ICAgICAgICAgICAgICAgIC8vIGluaXRpYWxseSBub3Qgb3duZWQKICAgICAgIE5VTEwpOyAgICAg
ICAgICAgICAgICAgICAgICAvLyB1bm5hbWVkIG11dGV4CiAKICAgICBpZiAoaFN0YWNrV2Fsa011
dGV4ID09IE5VTEwpIHsKICAgICAgICAgUHJpbnRFcnJvcigiQ3JlYXRlTXV0ZXgiLCBOVUxMKTsK
ICAgICAgICAgcmV0dXJuIFBSX0ZBTFNFOwogICAgIH0KIAotICAgIEhNT0RVTEUgbW9kdWxlID0g
OjpMb2FkTGlicmFyeSgiREJHSEVMUC5ETEwiKTsKKyAgICBITU9EVUxFIG1vZHVsZSA9IDo6TG9h
ZExpYnJhcnkoX1QoIkRCR0hFTFAuRExMIikpOwogICAgIGlmICghbW9kdWxlKSB7Ci0gICAgICAg
IG1vZHVsZSA9IDo6TG9hZExpYnJhcnkoIklNQUdFSExQLkRMTCIpOworICAgICAgICBtb2R1bGUg
PSA6OkxvYWRMaWJyYXJ5KF9UKCJJTUFHRUhMUC5ETEwiKSk7CiAgICAgICAgIGlmICghbW9kdWxl
KSByZXR1cm4gUFJfRkFMU0U7CiAgICAgfQogCiAgICAgX1N5bVNldE9wdGlvbnMgPSAoU1lNU0VU
T1BUSU9OU1BST0MpIDo6R2V0UHJvY0FkZHJlc3MobW9kdWxlLCAiU3ltU2V0T3B0aW9ucyIpOwog
ICAgIGlmICghX1N5bVNldE9wdGlvbnMpIHJldHVybiBQUl9GQUxTRTsKIAogICAgIF9TeW1Jbml0
aWFsaXplID0gKFNZTUlOSVRJQUxJWkVQUk9DKSA6OkdldFByb2NBZGRyZXNzKG1vZHVsZSwgIlN5
bUluaXRpYWxpemUiKTsKICAgICBpZiAoIV9TeW1Jbml0aWFsaXplKSByZXR1cm4gUFJfRkFMU0U7
CiAKICAgICBfU3ltQ2xlYW51cCA9IChTWU1DTEVBTlVQUFJPQylHZXRQcm9jQWRkcmVzcyhtb2R1
bGUsICJTeW1DbGVhbnVwIik7CiAgICAgaWYgKCFfU3ltQ2xlYW51cCkgcmV0dXJuIFBSX0ZBTFNF
OwogCkBAIC0yNTIsMjUgKzI1NCwyNSBAQCBzdGF0aWMgQk9PTCBDQUxMQkFDSyBjYWxsYmFja0Vz
cGVjaWFsKAogICAgICAqLwogICAgIGlmIChhZGRyZXNzSW5jcmVhc2VzCiAgICAgICAgPyAoYWRk
ciA+PSBhTW9kdWxlQmFzZSAmJiBhZGRyIDw9IChhTW9kdWxlQmFzZSArIGFNb2R1bGVTaXplKSkK
ICAgICAgICA6IChhZGRyIDw9IGFNb2R1bGVCYXNlICYmIGFkZHIgPj0gKGFNb2R1bGVCYXNlIC0g
YU1vZHVsZVNpemUpKQogICAgICAgICApIHsKICAgICAgICAgcmV0dmFsID0gX1N5bUxvYWRNb2R1
bGUoR2V0Q3VycmVudFByb2Nlc3MoKSwgTlVMTCwgYU1vZHVsZU5hbWUsIE5VTEwsIGFNb2R1bGVC
YXNlLCBhTW9kdWxlU2l6ZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJldHZhbDsKIH0KIAogc3Rh
dGljIEJPT0wgQ0FMTEJBQ0sgY2FsbGJhY2tFc3BlY2lhbDY0KAotICBQVFNUUiBhTW9kdWxlTmFt
ZSwKKyAgUFNUUiBhTW9kdWxlTmFtZSwKICAgRFdPUkQ2NCBhTW9kdWxlQmFzZSwKICAgVUxPTkcg
YU1vZHVsZVNpemUsCiAgIFBWT0lEIGFVc2VyQ29udGV4dCkKIHsKICNpZmRlZiBVU0lOR19XWFBf
VkVSU0lPTgogICAgIEJPT0wgcmV0dmFsID0gVFJVRTsKICAgICBEV09SRDY0IGFkZHIgPSAqKERX
T1JENjQqKWFVc2VyQ29udGV4dDsKIAogICAgIC8qCiAgICAgICogWW91J2xsIHdhbnQgdG8gY29u
dHJvbCB0aGlzIGlmIHdlIGFyZSBydW5uaW5nIG9uIGFuCiAgICAgICogIGFyY2hpdGVjdHVyZSB3
aGVyZSB0aGUgYWRkcmVzc2VzIGdvIHRoZSBvdGhlciBkaXJlY3Rpb24uCiAgICAgICogTm90IHN1
cmUgdGhpcyBpcyBldmVuIGEgcmVhbGlzdGljIGNvbnNpZGVyYXRpb24uCkluZGV4OiB4cGNvbS9i
YXNlL25zU3RhY2tGcmFtZVdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L21vemls
bGEveHBjb20vYmFzZS9uc1N0YWNrRnJhbWVXaW4uaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x
MQpkaWZmIC11IC0xIC0yIC1wIC1kIC1yMS4xMSBuc1N0YWNrRnJhbWVXaW4uaAotLS0geHBjb20v
YmFzZS9uc1N0YWNrRnJhbWVXaW4uaAkxIEp1bCAyMDA1IDA1OjIxOjAyIC0wMDAwCTEuMTEKKysr
IHhwY29tL2Jhc2UvbnNTdGFja0ZyYW1lV2luLmgJNSBPY3QgMjAwNSAxNjozMDozMiAtMDAwMApA
QCAtMzEsMjUgKzMxLDI0IEBACiAgKiBvZiB0aG9zZSBhYm92ZS4gSWYgeW91IHdpc2ggdG8gYWxs
b3cgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgb25seQogICogdW5kZXIgdGhlIHRl
cm1zIG9mIGVpdGhlciB0aGUgR1BMIG9yIHRoZSBMR1BMLCBhbmQgbm90IHRvIGFsbG93IG90aGVy
cyB0bwogICogdXNlIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBNUEwsIGluZGljYXRlIHlvdXIKICAqIGRlY2lzaW9uIGJ5IGRlbGV0aW5nIHRoZSBwcm92
aXNpb25zIGFib3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbm90aWNlCiAgKiBhbmQgb3Ro
ZXIgcHJvdmlzaW9ucyByZXF1aXJlZCBieSB0aGUgR1BMIG9yIHRoZSBMR1BMLiBJZiB5b3UgZG8g
bm90IGRlbGV0ZQogICogdGhlIHByb3Zpc2lvbnMgYWJvdmUsIGEgcmVjaXBpZW50IG1heSB1c2Ug
eW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlcgogICogdGhlIHRlcm1zIG9mIGFueSBvbmUg
b2YgdGhlIE1QTCwgdGhlIEdQTCBvciB0aGUgTEdQTC4KICAqCiAgKiAqKioqKiBFTkQgTElDRU5T
RSBCTE9DSyAqKioqKiAqLwogI2lmbmRlZiBuc1N0YWNrRnJhbWVXaW5faF9fXwogI2RlZmluZSBu
c1N0YWNrRnJhbWVXaW5faF9fXwogCi0KICNpZiBkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQo
X01fSVg4NikgfHwgZGVmaW5lZChfTV9BTUQ2NCkgfHwgZGVmaW5lZChfTV9JQTY0KSkKIC8vIFdJ
TjMyIHg4NiBzdGFjayB3YWxraW5nIGNvZGUKICNpbmNsdWRlICJuc3ByLmgiCiAjaW5jbHVkZSA8
d2luZG93cy5oPgogI2lmZGVmIF9NX0lYODYKICNpbmNsdWRlIDxpbWFnZWhscC5oPgogLy8gV2Ug
bmVlZCBhIHdheSB0byBrbm93IGlmIHdlIGFyZSBidWlsZGluZyBmb3IgV1hQIChvciBsYXRlciks
IGFzIGlmIHdlIGFyZSwgd2UKIC8vIG5lZWQgdG8gdXNlIHRoZSBuZXdlciA2NC1iaXQgQVBJcy4g
QVBJX1ZFUlNJT05fTlVNQkVSIHNlZW1zIHRvIGZpdCB0aGUgYmlsbC4KIC8vIEEgdmFsdWUgb2Yg
OSBpbmRpY2F0ZXMgd2Ugd2FudCB0byB1c2UgdGhlIG5ldyBBUElzLgogI2lmIEFQSV9WRVJTSU9O
X05VTUJFUiA+PSA5CiAjZGVmaW5lIFVTSU5HX1dYUF9WRVJTSU9OIDEKICNlbmRpZgpJbmRleDog
eHBjb20vYmFzZS9uc1dpbmRvd3NVbmljb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogeHBjb20v
YmFzZS9uc1dpbmRvd3NVbmljb2RlLmgKZGlmZiAtTiB4cGNvbS9iYXNlL25zV2luZG93c1VuaWNv
ZGUuaAotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHhwY29tL2Jh
c2UvbnNXaW5kb3dzVW5pY29kZS5oCTUgT2N0IDIwMDUgMTY6MzA6MzIgLTAwMDAKQEAgLTAsMCAr
MSw5MiBAQAorLyogKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKgorICogVmVyc2lvbjog
TVBMIDEuMS9HUEwgMi4wL0xHUEwgMi4xCisgKgorICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmls
ZSBhcmUgc3ViamVjdCB0byB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uCisgKiAx
LjEgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBj
b21wbGlhbmNlIHdpdGgKKyAqIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2Yg
dGhlIExpY2Vuc2UgYXQKKyAqIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBMLworICoKKyAqIFNv
ZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFu
ICJBUyBJUyIgYmFzaXMsCisgKiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UKKyAqIGZvciB0aGUgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHJpZ2h0cyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlCisgKiBM
aWNlbnNlLgorICoKKyAqIFRoZSBPcmlnaW5hbCBDb2RlIGlzIE1vemlsbGEgWFBDT00uCisgKgor
ICogVGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9mIHRoZSBPcmlnaW5hbCBDb2RlIGlzCisgKiBCZW5q
YW1pbiBTbWVkYmVyZyA8YmVuamFtaW5Ac21lZGJlcmdzLnVzPgorICoKKyAqIFBvcnRpb25zIGNy
ZWF0ZWQgYnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDIwMDUKKyAq
IHRoZSBNb3ppbGxhIEZvdW5kYXRpb24gPGh0dHA6Ly93d3cubW96aWxsYS5vcmcvPi4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBDb250cmlidXRvcihzKToKKyAqCisgKiBBbHRlcm5hdGl2
ZWx5LCB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIG1heSBiZSB1c2VkIHVuZGVyIHRoZSB0ZXJt
cyBvZgorICogZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIg
b3IgbGF0ZXIgKHRoZSAiR1BMIiksIG9yCisgKiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIFZlcnNpb24gMi4xIG9yIGxhdGVyICh0aGUgIkxHUEwiKSwKKyAqIGluIHdoaWNo
IGNhc2UgdGhlIHByb3Zpc2lvbnMgb2YgdGhlIEdQTCBvciB0aGUgTEdQTCBhcmUgYXBwbGljYWJs
ZSBpbnN0ZWFkCisgKiBvZiB0aG9zZSBhYm92ZS4gSWYgeW91IHdpc2ggdG8gYWxsb3cgdXNlIG9m
IHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgb25seQorICogdW5kZXIgdGhlIHRlcm1zIG9mIGVp
dGhlciB0aGUgR1BMIG9yIHRoZSBMR1BMLCBhbmQgbm90IHRvIGFsbG93IG90aGVycyB0bworICog
dXNlIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNUEws
IGluZGljYXRlIHlvdXIKKyAqIGRlY2lzaW9uIGJ5IGRlbGV0aW5nIHRoZSBwcm92aXNpb25zIGFi
b3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbm90aWNlCisgKiBhbmQgb3RoZXIgcHJvdmlz
aW9ucyByZXF1aXJlZCBieSB0aGUgR1BMIG9yIHRoZSBMR1BMLiBJZiB5b3UgZG8gbm90IGRlbGV0
ZQorICogdGhlIHByb3Zpc2lvbnMgYWJvdmUsIGEgcmVjaXBpZW50IG1heSB1c2UgeW91ciB2ZXJz
aW9uIG9mIHRoaXMgZmlsZSB1bmRlcgorICogdGhlIHRlcm1zIG9mIGFueSBvbmUgb2YgdGhlIE1Q
TCwgdGhlIEdQTCBvciB0aGUgTEdQTC4KKyAqCisgKiAqKioqKiBFTkQgTElDRU5TRSBCTE9DSyAq
KioqKiAqLworCisjaWZuZGVmIG5zV2luZG93c1VuaWNvZGVfaF9fCisjZGVmaW5lIG5zV2luZG93
c1VuaWNvZGVfaF9fCisKKyNpZmRlZiBfVU5JQ09ERQorIyAgZGVmaW5lIG5zQVdUU3RyaW5nICAg
ICAgICAgICAgbnNBU3RyaW5nCisjICBkZWZpbmUgbnNXVFN0cmluZyAgICAgICAgICAgICBuc1N0
cmluZworIyAgZGVmaW5lIG5zV1RBdXRvU3RyaW5nICAgICAgICAgbnNBdXRvU3RyaW5nCisjICBk
ZWZpbmUgbnNBRmxhdFdUU3RyaW5nICAgICAgICBuc0FGbGF0U3RyaW5nCisjICBkZWZpbmUgbnNX
VERlcGVuZGVudFN0cmluZyAgICBuc0RlcGVuZGVudFN0cmluZworIyAgZGVmaW5lIFRvTmV3V1RT
dHJpbmcgICAgICAgICAgVG9OZXdVbmljb2RlCisjICBkZWZpbmUgRW1wdHlXVFN0cmluZyAgICAg
ICAgICBFbXB0eVN0cmluZworIyAgZGVmaW5lIE5TX05ld1dUTG9jYWxGaWxlICAgICAgTlNfTmV3
TG9jYWxGaWxlCisjICBkZWZpbmUgd3RzdHJjaHIgICAgICAgICAgICAgICB3Y3NjaHIKKyMgIGRl
ZmluZSB3dHN0cnN0ciAgICAgICAgICAgICAgIHdjc3N0cgorIyAgZGVmaW5lIHd0c3RybmNtcCAg
ICAgICAgICAgICAgd2NzbmNtcAorIyAgZGVmaW5lIHd0c3RycmNociAgICAgICAgICAgICAgd2Nz
cmNocgorIyAgZGVmaW5lIHd0c3RyaWNtcCAgICAgICAgICAgICAgX3djc2ljbXAKKyMgIGRlZmlu
ZSBHZXRXVFBhdGggICAgICAgICAgICAgIEdldFBhdGgKKyMgIGRlZmluZSBNb3ZlVG9XVCAgICAg
ICAgICAgICAgIE1vdmVUbworIyAgZGVmaW5lIENvcHlUb1dUICAgICAgICAgICAgICAgQ29weVRv
CisjICBkZWZpbmUgQ29weVRvRm9sbG93aW5nTGlua3NXVCBDb3B5VG9Gb2xsb3dpbmdMaW5rcwor
IyAgZGVmaW5lIEdldFRhcmdldFdUICAgICAgICAgICAgR2V0VGFyZ2V0CisjICBkZWZpbmUgR2V0
V1RMZWFmTmFtZSAgICAgICAgICBHZXRMZWFmTmFtZQorIyAgZGVmaW5lIEFwcGVuZFdUICAgICAg
ICAgICAgICAgQXBwZW5kCisjICBkZWZpbmUgSW5pdFdpdGhXVFBhdGggICAgICAgICBJbml0V2l0
aFBhdGgKKyMgIGRlZmluZSBTQUZFX01CQ0FTVChwKSAgICAgICAgIChwKQorIyAgZGVmaW5lIFNB
RkVfVENBU1QocCkgICAgICAgICAgKHApCisjZWxzZQorIyAgZGVmaW5lIG5zQVdUU3RyaW5nICAg
ICAgICAgICAgbnNBQ1N0cmluZworIyAgZGVmaW5lIG5zV1RTdHJpbmcgICAgICAgICAgICAgbnND
U3RyaW5nCisjICBkZWZpbmUgbnNXVEF1dG9TdHJpbmcgICAgICAgICBuc0NBdXRvU3RyaW5nCisj
ICBkZWZpbmUgbnNBRmxhdFdUU3RyaW5nICAgICAgICBuc0FGbGF0Q1N0cmluZworIyAgZGVmaW5l
IG5zV1REZXBlbmRlbnRTdHJpbmcgICAgbnNEZXBlbmRlbnRDU3RyaW5nCisjICBkZWZpbmUgVG9O
ZXdXVFN0cmluZyAgICAgICAgICBUb05ld0NTdHJpbmcKKyMgIGRlZmluZSBFbXB0eVdUU3RyaW5n
ICAgICAgICAgIEVtcHR5Q1N0cmluZworIyAgZGVmaW5lIE5TX05ld1dUTG9jYWxGaWxlICAgICAg
TlNfTmV3TmF0aXZlTG9jYWxGaWxlCisjICBkZWZpbmUgd3RzdHJjaHIgICAgICAgICAgICAgICBf
bWJzY2hyCisjICBkZWZpbmUgd3RzdHJzdHIgICAgICAgICAgICAgICBfbWJzc3RyCisjICBkZWZp
bmUgd3RzdHJuY21wICAgICAgICAgICAgICBfbWJzbmNtcAorIyAgZGVmaW5lIHd0c3RycmNociAg
ICAgICAgICAgICAgX21ic3JjaHIKKyMgIGRlZmluZSB3dHN0cmljbXAgICAgICAgICAgICAgIF9t
YnNpY21wCisjICBkZWZpbmUgR2V0V1RQYXRoICAgICAgICAgICAgICBHZXROYXRpdmVQYXRoCisj
ICBkZWZpbmUgTW92ZVRvV1QgICAgICAgICAgICAgICBNb3ZlVG9OYXRpdmUKKyMgIGRlZmluZSBD
b3B5VG9XVCAgICAgICAgICAgICAgIENvcHlUb05hdGl2ZQorIyAgZGVmaW5lIENvcHlUb0ZvbGxv
d2luZ0xpbmtzV1QgQ29weVRvRm9sbG93aW5nTGlua3NOYXRpdmUKKyMgIGRlZmluZSBHZXRUYXJn
ZXRXVCAgICAgICAgICAgIEdldE5hdGl2ZVRhcmdldAorIyAgZGVmaW5lIEdldFdUTGVhZk5hbWUg
ICAgICAgICAgR2V0TmF0aXZlTGVhZk5hbWUKKyMgIGRlZmluZSBBcHBlbmRXVCAgICAgICAgICAg
ICAgIEFwcGVuZE5hdGl2ZQorIyAgZGVmaW5lIEluaXRXaXRoV1RQYXRoICAgICAgICAgSW5pdFdp
dGhOYXRpdmVQYXRoCisjICBkZWZpbmUgU0FGRV9NQkNBU1QocCkgICAgICAgICByZWludGVycHJl
dF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4ocCkp
CisjICBkZWZpbmUgU0FGRV9UQ0FTVChwKSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KHN0YXRpY19jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihwKSkKKyNlbmRpZgorCisj
ZW5kaWYgLy8gbnNXaW5kb3dzVW5pY29kZV9oX18KKwpJbmRleDogeHBjb20vZ2x1ZS9uc0dSRUds
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L21vemlsbGEveHBjb20vZ2x1ZS9u
c0dSRUdsdWUuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYgLXUgLTEgLTIgLXAg
LWQgLXIxLjEzIG5zR1JFR2x1ZS5jcHAKLS0tIHhwY29tL2dsdWUvbnNHUkVHbHVlLmNwcAkxNSBT
ZXAgMjAwNSAxNzo0OTo1MSAtMDAwMAkxLjEzCisrKyB4cGNvbS9nbHVlL25zR1JFR2x1ZS5jcHAJ
NSBPY3QgMjAwNSAxNjozMDozMyAtMDAwMApAQCAtMzA2LDM4ICszMDYsMzggQEAgR1JFX0dldEdS
RVBhdGhXaXRoUHJvcGVydGllcyhjb25zdCBHUkVWZQogICAgIAogICAvLyBBIGNvdXBsZSBvZiBr
ZXkgcG9pbnRzIGhlcmU6CiAgIC8vIDEuIE5vdGUgdGhlIHVzYWdlIG9mIHRoZSAiU29mdHdhcmVc
XE1vemlsbGFcXEdSRSIgc3Via2V5IC0gdGhpcyBhbGxvd3MKICAgLy8gICAgdXMgdG8gaGF2ZSBt
dWx0aXBsZSB2ZXJzaW9ucyBvZiBHUkVzIG9uIHRoZSBzYW1lIG1hY2hpbmUgYnkgaGF2aW5nCiAg
IC8vICAgIHN1YmtleXMgc3VjaCBhcyAxLjAsIDEuMSwgMi4wIGV0Yy4gdW5kZXIgaXQuCiAgIC8v
IDIuIEluIHRoaXMgc2FtcGxlIGJlbG93IHdlJ3JlIGxvb2tpbmcgZm9yIHRoZSBsb2NhdGlvbiBv
ZiBHUkUgdmVyc2lvbiAxLjIKICAgLy8gICAgaS5lLiB3ZSdyZSBjb21wYXRpYmxlIHdpdGggR1JF
IDEuMiBhbmQgd2UncmUgdHJ5aW5nIHRvIGZpbmQgaXQncyBpbnN0YWxsCiAgIC8vICAgIGxvY2F0
aW9uLgogICAvLwogICAvLyBQbGVhc2Ugc2VlIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvcHJvamVj
dHMvZW1iZWRkaW5nL0dSRS5odG1sIGZvcgogICAvLyBtb3JlIGluZm8uCiAgIC8vCi0gIGlmICg6
OlJlZ09wZW5LZXlFeChIS0VZX0NVUlJFTlRfVVNFUiwgR1JFX1dJTl9SRUdfTE9DLCAwLAotICAg
ICAgICAgICAgICAgICAgICAgS0VZX1JFQUQsICZoUmVnS2V5KSA9PSBFUlJPUl9TVUNDRVNTKSB7
CisgIGlmICg6OlJlZ09wZW5LZXlFeEEoSEtFWV9DVVJSRU5UX1VTRVIsIEdSRV9XSU5fUkVHX0xP
QywgMCwKKyAgICAgICAgICAgICAgICAgICAgICBLRVlfUkVBRCwgJmhSZWdLZXkpID09IEVSUk9S
X1NVQ0NFU1MpIHsKICAgICBQUkJvb2wgb2sgPSBHUkVfR2V0UGF0aEZyb21SZWdLZXkoaFJlZ0tl
eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbnMsIHZlcnNp
b25zTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0
aWVzLCBwcm9wZXJ0aWVzTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhQnVmZmVyLCBhQnVmTGVuKTsKICAgICA6OlJlZ0Nsb3NlS2V5KGhSZWdLZXkpOwogCiAg
ICAgaWYgKG9rKQogICAgICAgcmV0dXJuIE5TX09LOwogICB9CiAKLSAgaWYgKDo6UmVnT3Blbktl
eUV4KEhLRVlfTE9DQUxfTUFDSElORSwgR1JFX1dJTl9SRUdfTE9DLCAwLAotICAgICAgICAgICAg
ICAgICAgICAgS0VZX0VOVU1FUkFURV9TVUJfS0VZUywgJmhSZWdLZXkpID09IEVSUk9SX1NVQ0NF
U1MpIHsKKyAgaWYgKDo6UmVnT3BlbktleUV4QShIS0VZX0xPQ0FMX01BQ0hJTkUsIEdSRV9XSU5f
UkVHX0xPQywgMCwKKyAgICAgICAgICAgICAgICAgICAgICBLRVlfRU5VTUVSQVRFX1NVQl9LRVlT
LCAmaFJlZ0tleSkgPT0gRVJST1JfU1VDQ0VTUykgewogICAgIFBSQm9vbCBvayA9IEdSRV9HZXRQ
YXRoRnJvbVJlZ0tleShoUmVnS2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJzaW9ucywgdmVyc2lvbnNMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByb3BlcnRpZXMsIHByb3BlcnRpZXNMZW5ndGgsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFCdWZmZXIsIGFCdWZMZW4pOwogICAgIDo6UmVnQ2xv
c2VLZXkoaFJlZ0tleSk7CiAKICAgICBpZiAob2spCiAgICAgICByZXR1cm4gTlNfT0s7CiAgIH0K
ICNlbmRpZgogCiAgIHJldHVybiBOU19FUlJPUl9GQUlMVVJFOwpAQCAtNTM4LDI1ICs1MzgsMjUg
QEAgc3RhdGljIFBSQm9vbAogQ29weVdpdGhFbnZFeHBhbnNpb24oY2hhciogYURlc3QsIGNvbnN0
IGNoYXIqIGFTb3VyY2UsIFBSVWludDMyIGFCdWZMZW4sCiAgICAgICAgICAgICAgICAgICAgICBE
V09SRCBhVHlwZSkKIHsKICAgc3dpdGNoIChhVHlwZSkgewogICBjYXNlIFJFR19TWjoKICAgICBp
ZiAoc3RybGVuKGFTb3VyY2UpID49IGFCdWZMZW4pCiAgICAgICByZXR1cm4gUFJfRkFMU0U7CiAK
ICAgICBzdHJjcHkoYURlc3QsIGFTb3VyY2UpOwogICAgIHJldHVybiBQUl9UUlVFOwogCiAgIGNh
c2UgUkVHX0VYUEFORF9TWjoKLSAgICBpZiAoRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKGFTb3Vy
Y2UsIGFEZXN0LCBhQnVmTGVuKSA+IGFCdWZMZW4pCisgICAgaWYgKEV4cGFuZEVudmlyb25tZW50
U3RyaW5nc0EoYVNvdXJjZSwgYURlc3QsIGFCdWZMZW4pID4gYUJ1ZkxlbikKICAgICAgIHJldHVy
biBQUl9GQUxTRTsKIAogICAgIHJldHVybiBQUl9UUlVFOwogICB9OwogCiAgIC8vIFdob29wcyEg
V2UgZXhwZWN0ZWQgUkVHX1NaIG9yIFJFR19FWFBBTkRfU1osIHdoYXQgaGFwcGVuZWQgaGVyZT8K
IAogICByZXR1cm4gUFJfRkFMU0U7CiB9CiAKIFBSQm9vbAogR1JFX0dldFBhdGhGcm9tUmVnS2V5
KEhLRVkgYVJlZ0tleSwKQEAgLTU4MCw2MiArNTgwLDYyIEBAIEdSRV9HZXRQYXRoRnJvbVJlZ0tl
eShIS0VZIGFSZWdLZXksCiAgIC8vIFdoZW4gYSBHUkUgaXMgYmVpbmcgcmVnaXN0ZXJlZCwgaXQg
c2hvdWxkIHRyeSB0byByZWdpc3RlciBpdHNlbGYgYXQKICAgLy8gSEtMTS9Tb2Z0d2FyZS9Nb3pp
bGxhL0dSRS88VmVyc2lvbj4gZmlyc3QsIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkKICAgLy8g
d2l0aCBvbGRlciBnbHVlLiBJZiB0aGlzIGtleSBpcyBhbHJlYWR5IHRha2VuIChpLmUuIHRoZXJl
IGlzIG1vcmUgdGhhbgogICAvLyBvbmUgR1JFIG9mIHRoYXQgdmVyc2lvbiBpbnN0YWxsZWQpLCBp
dCBzaG91bGQgYXBwZW5kIGEgdW5pcXVlIG51bWJlciB0bwogICAvLyB0aGUgdmVyc2lvbiwgZm9y
IGV4YW1wbGU6CiAgIC8vICAgMS4xIChhbHJlYWR5IGluIHVzZSksIDEuMV8xLCAxLjFfMiwgZXRj
Li4uCiAKICAgRFdPUkQgaSA9IDA7CiAKICAgd2hpbGUgKFBSX1RSVUUpIHsKICAgICBjaGFyIG5h
bWVbTUFYUEFUSExFTiArIDFdOwogICAgIERXT1JEIG5hbWVMZW4gPSBNQVhQQVRITEVOOwotICAg
IGlmICg6OlJlZ0VudW1LZXlFeChhUmVnS2V5LCBpLCBuYW1lLCAmbmFtZUxlbiwgTlVMTCwgTlVM
TCwgTlVMTCwgTlVMTCkgIT0KKyAgICBpZiAoOjpSZWdFbnVtS2V5RXhBKGFSZWdLZXksIGksIG5h
bWUsICZuYW1lTGVuLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKSAhPQogICAgICAgICBFUlJPUl9T
VUNDRVNTKSB7CiAgICAgICBicmVhazsKICAgICB9CiAKICAgICBIS0VZIHN1YktleSA9IE5VTEw7
Ci0gICAgaWYgKDo6UmVnT3BlbktleUV4KGFSZWdLZXksIG5hbWUsIDAsIEtFWV9RVUVSWV9WQUxV
RSwgJnN1YktleSkgIT0KKyAgICBpZiAoOjpSZWdPcGVuS2V5RXhBKGFSZWdLZXksIG5hbWUsIDAs
IEtFWV9RVUVSWV9WQUxVRSwgJnN1YktleSkgIT0KICAgICAgICAgRVJST1JfU1VDQ0VTUykgewog
ICAgICAgY29udGludWU7CiAgICAgfQogCiAgICAgY2hhciB2ZXJzaW9uWzQwXTsKICAgICBEV09S
RCB2ZXJzaW9ubGVuID0gNDA7CiAgICAgY2hhciBwYXRoYnVmW01BWFBBVEhMRU5dOwogICAgIERX
T1JEIHBhdGhsZW47CiAgICAgRFdPUkQgcGF0aHR5cGU7CiAKICAgICBQUkJvb2wgb2sgPSBQUl9G
QUxTRTsKIAotICAgIGlmICg6OlJlZ1F1ZXJ5VmFsdWVFeChzdWJLZXksICJWZXJzaW9uIiwgTlVM
TCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUqKSB2ZXJzaW9uLCAmdmVy
c2lvbmxlbikgPT0gRVJST1JfU1VDQ0VTUyAmJgorICAgIGlmICg6OlJlZ1F1ZXJ5VmFsdWVFeEEo
c3ViS2V5LCAiVmVyc2lvbiIsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoQllURSopIHZlcnNpb24sICZ2ZXJzaW9ubGVuKSA9PSBFUlJPUl9TVUNDRVNTICYmCiAgICAg
ICAgIENoZWNrVmVyc2lvbih2ZXJzaW9uLCB2ZXJzaW9ucywgdmVyc2lvbnNMZW5ndGgpKSB7CiAK
ICAgICAgIG9rID0gUFJfVFJVRTsKICAgICAgIGNvbnN0IEdSRVByb3BlcnR5ICpwcm9wcyA9IHBy
b3BlcnRpZXM7CiAgICAgICBjb25zdCBHUkVQcm9wZXJ0eSAqcHJvcHNFbmQgPSBwcm9wZXJ0aWVz
ICsgcHJvcGVydGllc0xlbmd0aDsKICAgICAgIGZvciAoOyBvayAmJiBwcm9wcyA8IHByb3BzRW5k
OyArK3Byb3BzKSB7CiAgICAgICAgIHBhdGhsZW4gPSBzaXplb2YocGF0aGJ1Zik7Ci0gICAgICAg
IGlmICghOjpSZWdRdWVyeVZhbHVlRXgoc3ViS2V5LCBwcm9wcy0+cHJvcGVydHksIE5VTEwsICZw
YXRodHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSopIHBhdGhidWYs
ICZwYXRobGVuKSB8fAorICAgICAgICBpZiAoITo6UmVnUXVlcnlWYWx1ZUV4QShzdWJLZXksIHBy
b3BzLT5wcm9wZXJ0eSwgTlVMTCwgJnBhdGh0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoQllURSopIHBhdGhidWYsICZwYXRobGVuKSB8fAogICAgICAgICAgICAgc3RyY21w
KHBhdGhidWYsIHByb3BzLT52YWx1ZSkpCiAgICAgICAgICAgb2sgPSBQUl9GQUxTRTsKICAgICAg
IH0KIAogICAgICAgcGF0aGxlbiA9IHNpemVvZihwYXRoYnVmKTsKICAgICAgIGlmIChvayAmJgot
ICAgICAgICAgICghOjpSZWdRdWVyeVZhbHVlRXgoc3ViS2V5LCAiR3JlSG9tZSIsIE5VTEwsICZw
YXRodHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKikgcGF0aGJ1Ziwg
JnBhdGhsZW4pID09IEVSUk9SX1NVQ0NFU1MgfHwKKyAgICAgICAgICAoITo6UmVnUXVlcnlWYWx1
ZUV4QShzdWJLZXksICJHcmVIb21lIiwgTlVMTCwgJnBhdGh0eXBlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChCWVRFKikgcGF0aGJ1ZiwgJnBhdGhsZW4pID09IEVSUk9SX1NVQ0NF
U1MgfHwKICAgICAgICAgICAgISpwYXRoYnVmIHx8CiAgICAgICAgICAgICFDb3B5V2l0aEVudkV4
cGFuc2lvbihhQnVmZmVyLCBwYXRoYnVmLCBhQnVmTGVuLCBwYXRodHlwZSkpKSB7CiAgICAgICAg
IG9rID0gUFJfRkFMU0U7CiAgICAgICB9CiAgICAgICBlbHNlIGlmICghc2FmZV9zdHJuY2F0KGFC
dWZmZXIsICJcXCIgWFBDT01fRExMLCBhQnVmTGVuKSB8fAogICAgICAgICAgICAgICAgYWNjZXNz
KGFCdWZmZXIsIFJfT0spKSB7CiAgICAgICAgIG9rID0gUFJfRkFMU0U7CiAgICAgICB9CiAgICAg
fQogCiAgICAgUmVnQ2xvc2VLZXkoc3ViS2V5KTsKIApJbmRleDogeHBjb20vZ2x1ZS9zdGFuZGFs
b25lL25zR1JFRGlyU2VydmljZVByb3ZpZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
cm9vdC9tb3ppbGxhL3hwY29tL2dsdWUvc3RhbmRhbG9uZS9uc0dSRURpclNlcnZpY2VQcm92aWRl
ci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDIKZGlmZiAtdSAtMSAtMiAtcCAtZCAtcjEu
NDIgbnNHUkVEaXJTZXJ2aWNlUHJvdmlkZXIuY3BwCi0tLSB4cGNvbS9nbHVlL3N0YW5kYWxvbmUv
bnNHUkVEaXJTZXJ2aWNlUHJvdmlkZXIuY3BwCTMwIFNlcCAyMDA1IDE0OjM1OjI0IC0wMDAwCTEu
NDIKKysrIHhwY29tL2dsdWUvc3RhbmRhbG9uZS9uc0dSRURpclNlcnZpY2VQcm92aWRlci5jcHAJ
NSBPY3QgMjAwNSAxNjozMDozMyAtMDAwMApAQCAtMTIzLDI1ICsxMjMsMjUgQEAgbnNHUkVEaXJT
ZXJ2aWNlUHJvdmlkZXI6OkdldEZpbGUoY29uc3QgYwogfQogCiAvLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCiAvLyBJbXBsZW1lbnRhdGlvbnMgZnJvbSBuc1hQQ09NR2x1ZS5oIGFuZCBoZWxwZXIgZnVu
Y3Rpb25zLgogLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCiBQUkJvb2wKIEdSRV9HZXRDdXJyZW50
UHJvY2Vzc0RpcmVjdG9yeShjaGFyKiBidWZmZXIpCiB7CiAgICAgKmJ1ZmZlciA9ICdcMCc7CiAK
ICNpZmRlZiBYUF9XSU4KLSAgICBEV09SRCBidWZMZW5ndGggPSA6OkdldE1vZHVsZUZpbGVOYW1l
KDAsIGJ1ZmZlciwgTUFYUEFUSExFTik7CisgICAgRFdPUkQgYnVmTGVuZ3RoID0gOjpHZXRNb2R1
bGVGaWxlTmFtZUEoMCwgYnVmZmVyLCBNQVhQQVRITEVOKTsKICAgICBpZiAoYnVmTGVuZ3RoID09
IDAgfHwgYnVmTGVuZ3RoID09IE1BWFBBVEhMRU4pCiAgICAgICAgIHJldHVybiBQUl9GQUxTRTsK
ICAgICAvLyBjaG9wIG9mIHRoZSBleGVjdXRhYmxlIG5hbWUgYnkgZmluZGluZyB0aGUgcmlnaHRt
b3N0IGJhY2tzbGFzaAogICAgIHVuc2lnbmVkIGNoYXIqIGxhc3RTbGFzaCA9IF9tYnNyY2hyKCh1
bnNpZ25lZCBjaGFyKikgYnVmZmVyLCAnXFwnKTsKICAgICBpZiAobGFzdFNsYXNoKSB7CiAgICAg
ICAgICoobGFzdFNsYXNoKSA9ICdcMCc7CiAgICAgICAgIHJldHVybiBQUl9UUlVFOwogICAgIH0K
IAogI2VsaWYgZGVmaW5lZChYUF9NQUNPU1gpCiAgICAgLy8gV29ya3MgZXZlbiBpZiB3ZSdyZSBu
b3QgYnVuZGxlZC4KICAgICBDRkJ1bmRsZVJlZiBhcHBCdW5kbGUgPSBDRkJ1bmRsZUdldE1haW5C
dW5kbGUoKTsKSW5kZXg6IHhwY29tL2dsdWUvc3RhbmRhbG9uZS9uc0dsdWVMaW5raW5nV2luLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9tb3ppbGxhL3hwY29tL2dsdWUvc3RhbmRh
bG9uZS9uc0dsdWVMaW5raW5nV2luLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xCmRpZmYg
LXUgLTEgLTIgLXAgLWQgLXIxLjEgbnNHbHVlTGlua2luZ1dpbi5jcHAKLS0tIHhwY29tL2dsdWUv
c3RhbmRhbG9uZS9uc0dsdWVMaW5raW5nV2luLmNwcAkxNCBKdWwgMjAwNSAxODo0Mjo1OCAtMDAw
MAkxLjEKKysrIHhwY29tL2dsdWUvc3RhbmRhbG9uZS9uc0dsdWVMaW5raW5nV2luLmNwcAk1IE9j
dCAyMDA1IDE2OjMwOjMzIC0wMDAwCkBAIC01NywyNSArNTcsMjUgQEAgQXBwZW5kRGVwZW5kZW50
TGliKEhJTlNUQU5DRSBsaWJIYW5kbGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGQtPm5leHQg
PSBzVG9wOwogICAgIGQtPmxpYkhhbmRsZSA9IGxpYkhhbmRsZTsKIAogICAgIHNUb3AgPSBkOwog
fQogCiBzdGF0aWMgdm9pZAogUmVhZERlcGVuZGVudENCKGNvbnN0IGNoYXIgKmFEZXBlbmRlbnRM
aWIpCiB7CiAgICAgSElOU1RBTkNFIGggPQotICAgICAgICBMb2FkTGlicmFyeUV4KGFEZXBlbmRl
bnRMaWIsIE5VTEwsIExPQURfV0lUSF9BTFRFUkVEX1NFQVJDSF9QQVRIKTsKKyAgICAgICAgTG9h
ZExpYnJhcnlFeEEoYURlcGVuZGVudExpYiwgTlVMTCwgTE9BRF9XSVRIX0FMVEVSRURfU0VBUkNI
X1BBVEgpOwogICAgIGlmICghaCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQXBwZW5kRGVwZW5k
ZW50TGliKGgpOwogfQogCiAvLyBsaWtlIHN0cnBicmsgYnV0IGZpbmRzIHRoZSAqbGFzdCogY2hh
ciwgbm90IHRoZSBmaXJzdAogc3RhdGljIGNoYXIqCiBuc19zdHJycGJyayhjaGFyICpzdHJpbmcs
IGNvbnN0IGNoYXIgKnN0ckNoYXJTZXQpCiB7CiAgICAgY2hhciAqZm91bmQgPSBOVUxMOwogICAg
IGZvciAoOyAqc3RyaW5nOyArK3N0cmluZykgewpAQCAtMTAxLDI1ICsxMDEsMjUgQEAgWFBDT01H
bHVlTG9hZChjb25zdCBjaGFyICp4cGNvbUZpbGUpCiAgICAgICAgIGNoYXIgeHBjb21EaXJbTUFY
UEFUSExFTl07CiAKICAgICAgICAgX2Z1bGxwYXRoKHhwY29tRGlyLCB4cGNvbUZpbGUsIHNpemVv
Zih4cGNvbURpcikpOwogICAgICAgICBjaGFyICpsYXN0U2xhc2ggPSBuc19zdHJycGJyayh4cGNv
bURpciwgIi9cXCIpOwogICAgICAgICBpZiAobGFzdFNsYXNoKSB7CiAgICAgICAgICAgICAqbGFz
dFNsYXNoID0gJ1wwJzsKIAogICAgICAgICAgICAgWFBDT01HbHVlTG9hZERlcGVuZGVudExpYnMo
eHBjb21EaXIsIFJlYWREZXBlbmRlbnRDQik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBISU5T
VEFOQ0UgaCA9Ci0gICAgICAgIExvYWRMaWJyYXJ5RXgoeHBjb21GaWxlLCBOVUxMLCBMT0FEX1dJ
VEhfQUxURVJFRF9TRUFSQ0hfUEFUSCk7CisgICAgICAgIExvYWRMaWJyYXJ5RXhBKHhwY29tRmls
ZSwgTlVMTCwgTE9BRF9XSVRIX0FMVEVSRURfU0VBUkNIX1BBVEgpOwogCiAgICAgaWYgKCFoKQog
ICAgICAgICByZXR1cm4gbnNudWxsOwogCiAgICAgQXBwZW5kRGVwZW5kZW50TGliKGgpOwogCiAg
ICAgR2V0RnJvemVuRnVuY3Rpb25zRnVuYyBzeW0gPQogICAgICAgICAoR2V0RnJvemVuRnVuY3Rp
b25zRnVuYykgR2V0UHJvY0FkZHJlc3MoaCwgIk5TX0dldEZyb3plbkZ1bmN0aW9ucyIpOwogCiAg
ICAgaWYgKCFzeW0pCiAgICAgICAgIFhQQ09NR2x1ZVVubG9hZCgpOwogCkluZGV4OiB4cGNvbS9n
bHVlL3N0YW5kYWxvbmUvbnNYUENPTUdsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNy
b290L21vemlsbGEveHBjb20vZ2x1ZS9zdGFuZGFsb25lL25zWFBDT01HbHVlLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4zOApkaWZmIC11IC0xIC0yIC1wIC1kIC1yMS4zOCBuc1hQQ09NR2x1
ZS5jcHAKLS0tIHhwY29tL2dsdWUvc3RhbmRhbG9uZS9uc1hQQ09NR2x1ZS5jcHAJOSBBdWcgMjAw
NSAyMToyMjo1OCAtMDAwMAkxLjM4CisrKyB4cGNvbS9nbHVlL3N0YW5kYWxvbmUvbnNYUENPTUds
dWUuY3BwCTUgT2N0IDIwMDUgMTY6MzA6MzMgLTAwMDAKQEAgLTQ2NiwzNCArNDY2LDM0IEBAIG5z
cmVzdWx0IEdSRV9TdGFydHVwKCkKICAgICAgICAgTlNfV0FSTklORygiZ3JlOiBYUENPTUdsdWVT
dGFydHVwIGZhaWxlZCIpOwogICAgICAgICByZXR1cm4gcnY7CiAgICAgfQogCiAjaWZkZWYgWFBf
V0lOCiAgICAgLy8gT24gd2luZG93cyB3ZSBoYXZlIGxlZ2FjeSBHUkUgY29kZSB0aGF0IGRvZXMg
bm90IGxvYWQgdGhlIEdSRSBkZXBlbmRlbnQKICAgICAvLyBsaWJzIChzZWFtb25rZXkgR1JFLCBu
b3QgbGlieHVsKS4uLiBhZGQgdGhlIEdSRSB0byB0aGUgUEFUSC4KICAgICAvLyBTZWUgYnVnIDMw
MTA0My4KIAogICAgIGNvbnN0IGNoYXIgKmxhc3RTbGFzaCA9IHN0cnJjaHIoeHBjb21Mb2NhdGlv
biwgJ1xcJyk7CiAgICAgaWYgKGxhc3RTbGFzaCkgewogICAgICAgICBpbnQgeHBjb21QYXRoTGVu
ID0gbGFzdFNsYXNoIC0geHBjb21Mb2NhdGlvbjsKLSAgICAgICAgRFdPUkQgcGF0aExlbiA9IEdl
dEVudmlyb25tZW50VmFyaWFibGUoIlBBVEgiLCBuc251bGwsIDApOworICAgICAgICBEV09SRCBw
YXRoTGVuID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEoIlBBVEgiLCBuc251bGwsIDApOwogCiAg
ICAgICAgIGNoYXIgKm5ld1BhdGggPSAoY2hhciopIF9hbGxvY2EoeHBjb21QYXRoTGVuICsgcGF0
aExlbiArIDEpOwogICAgICAgICBzdHJuY3B5KG5ld1BhdGgsIHhwY29tTG9jYXRpb24sIHhwY29t
UGF0aExlbik7CiAgICAgICAgIC8vIGluIGNhc2UgR2V0RW52aXJvbm1lbnRWYXJpYWJsZSBmYWls
cwogICAgICAgICBuZXdQYXRoW3hwY29tUGF0aExlbl0gPSAnOyc7CiAgICAgICAgIG5ld1BhdGhb
eHBjb21QYXRoTGVuICsgMV0gPSAnXDAnOwogCi0gICAgICAgIEdldEVudmlyb25tZW50VmFyaWFi
bGUoIlBBVEgiLCBuZXdQYXRoICsgeHBjb21QYXRoTGVuICsgMSwgcGF0aExlbik7Ci0gICAgICAg
IFNldEVudmlyb25tZW50VmFyaWFibGUoIlBBVEgiLCBuZXdQYXRoKTsKKyAgICAgICAgR2V0RW52
aXJvbm1lbnRWYXJpYWJsZUEoIlBBVEgiLCBuZXdQYXRoICsgeHBjb21QYXRoTGVuICsgMSwgcGF0
aExlbik7CisgICAgICAgIFNldEVudmlyb25tZW50VmFyaWFibGVBKCJQQVRIIiwgbmV3UGF0aCk7
CiAgICAgfQogI2VuZGlmCiAKICAgICBuc0dSRURpclNlcnZpY2VQcm92aWRlciAqcHJvdmlkZXIg
PSBuZXcgbnNHUkVEaXJTZXJ2aWNlUHJvdmlkZXIoKTsKICAgICBpZiAoICFwcm92aWRlciApIHsK
ICAgICAgICAgTlNfV0FSTklORygiR1JFX1N0YXJ0dXAgZmFpbGVkIik7CiAgICAgICAgIFhQQ09N
R2x1ZVNodXRkb3duKCk7CiAgICAgICAgIHJldHVybiBOU19FUlJPUl9PVVRfT0ZfTUVNT1JZOwog
ICAgIH0KIAogICAgIG5zQ09NUHRyPG5zSVNlcnZpY2VNYW5hZ2VyPiBzZXJ2TWFuOwogICAgIE5T
X0FERFJFRiggcHJvdmlkZXIgKTsKSW5kZXg6IHhwY29tL2lvL1NwZWNpYWxTeXN0ZW1EaXJlY3Rv
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L21vemlsbGEveHBjb20vaW8vU3Bl
Y2lhbFN5c3RlbURpcmVjdG9yeS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjIKZGlmZiAt
dSAtMSAtMiAtcCAtZCAtcjEuMjIgU3BlY2lhbFN5c3RlbURpcmVjdG9yeS5jcHAKLS0tIHhwY29t
L2lvL1NwZWNpYWxTeXN0ZW1EaXJlY3RvcnkuY3BwCTYgSnVsIDIwMDUgMDE6MjM6MTAgLTAwMDAJ
MS4yMgorKysgeHBjb20vaW8vU3BlY2lhbFN5c3RlbURpcmVjdG9yeS5jcHAJNSBPY3QgMjAwNSAx
NjozMDozNCAtMDAwMApAQCAtMzMsMzMgKzMzLDM1IEBACiAgKiB1bmRlciB0aGUgdGVybXMgb2Yg
ZWl0aGVyIHRoZSBHUEwgb3IgdGhlIExHUEwsIGFuZCBub3QgdG8gYWxsb3cgb3RoZXJzIHRvCiAg
KiB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1Q
TCwgaW5kaWNhdGUgeW91cgogICogZGVjaXNpb24gYnkgZGVsZXRpbmcgdGhlIHByb3Zpc2lvbnMg
YWJvdmUgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3RpY2UKICAqIGFuZCBvdGhlciBwcm92
aXNpb25zIHJlcXVpcmVkIGJ5IHRoZSBHUEwgb3IgdGhlIExHUEwuIElmIHlvdSBkbyBub3QgZGVs
ZXRlCiAgKiB0aGUgcHJvdmlzaW9ucyBhYm92ZSwgYSByZWNpcGllbnQgbWF5IHVzZSB5b3VyIHZl
cnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyCiAgKiB0aGUgdGVybXMgb2YgYW55IG9uZSBvZiB0aGUg
TVBMLCB0aGUgR1BMIG9yIHRoZSBMR1BMLgogICoKICAqICoqKioqIEVORCBMSUNFTlNFIEJMT0NL
ICoqKioqICovCiAKICNpbmNsdWRlICJTcGVjaWFsU3lzdGVtRGlyZWN0b3J5LmgiCiAjaW5jbHVk
ZSAibnNTdHJpbmcuaCIKICNpbmNsdWRlICJuc0RlcGVuZGVudFN0cmluZy5oIgorI2luY2x1ZGUg
Im5zV2luZG93c1VuaWNvZGUuaCIKIAogI2lmIGRlZmluZWQoWFBfV0lOKQogCiAjaW5jbHVkZSA8
d2luZG93cy5oPgogI2luY2x1ZGUgPHNobG9iai5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8ZGlyZWN0Lmg+
CisjaW5jbHVkZSA8dGNoYXIuaD4KIAogLy8gVGhpcyBpcyBub3QgZGVmaW5lZCBieSBWQzYuIAog
I2lmbmRlZiBDU0lETF9MT0NBTF9BUFBEQVRBCiAjZGVmaW5lIENTSURMX0xPQ0FMX0FQUERBVEEg
ICAgICAgICAgICAgMHgwMDFDCiAjZW5kaWYKIAogI2VsaWYgZGVmaW5lZChYUF9PUzIpCiAKICNk
ZWZpbmUgTUFYX1BBVEggX01BWF9QQVRICiAjZGVmaW5lIElOQ0xfV0lOV09SS1BMQUNFCiAjZGVm
aW5lIElOQ0xfRE9TTUlTQwogI2RlZmluZSBJTkNMX0RPU01PRFVMRU1HUgpAQCAtOTksNDMgKzEw
MSw1MSBAQAogI2lmZGVmIE1BWF9QQVRICiAjZGVmaW5lIE1BWFBBVEhMRU4gTUFYX1BBVEgKICNl
bGlmIGRlZmluZWQoX01BWF9QQVRIKQogI2RlZmluZSBNQVhQQVRITEVOIF9NQVhfUEFUSAogI2Vs
aWYgZGVmaW5lZChDQ0hNQVhQQVRIKQogI2RlZmluZSBNQVhQQVRITEVOIENDSE1BWFBBVEgKICNl
bHNlCiAjZGVmaW5lIE1BWFBBVEhMRU4gMTAyNAogI2VuZGlmCiAjZW5kaWYKIAogI2lmIGRlZmlu
ZWQgKFhQX1dJTikKLXR5cGVkZWYgQk9PTCAoV0lOQVBJICogR2V0U3BlY2lhbFBhdGhQcm9jKSAo
SFdORCBod25kT3duZXIsIExQU1RSIGxwc3pQYXRoLCBpbnQgbkZvbGRlciwgQk9PTCBmQ3JlYXRl
KTsKKwordHlwZWRlZiBCT09MIChXSU5BUEkgKiBHZXRTcGVjaWFsUGF0aFByb2MpIChIV05EIGh3
bmRPd25lciwgTFBUU1RSIGxwc3pQYXRoLCBpbnQgbkZvbGRlciwgQk9PTCBmQ3JlYXRlKTsKKwor
I2lmZGVmIF9VTklDT0RFCisjZGVmaW5lIEdFVFNQRUNJQUxQQVRIUFJPQ05BTUUgIlNIR2V0U3Bl
Y2lhbEZvbGRlclBhdGhXIgorI2Vsc2UKKyNkZWZpbmUgR0VUU1BFQ0lBTFBBVEhQUk9DTkFNRSAi
U0hHZXRTcGVjaWFsRm9sZGVyUGF0aFciCisjZW5kaWYKKwogR2V0U3BlY2lhbFBhdGhQcm9jIGdH
ZXRTcGVjaWFsUGF0aFByb2MgPSBOVUxMOwogc3RhdGljIEhJTlNUQU5DRSBnU2hlbGwzMkRMTElu
c3QgPSBOVUxMOwogI2VuZGlmCiBOU19DT00gdm9pZCBTdGFydHVwU3BlY2lhbFN5c3RlbURpcmVj
dG9yeSgpCiB7CiAjaWYgZGVmaW5lZCAoWFBfV0lOKSAmJiAhZGVmaW5lZCAoV0lOQ0UpCiAgICAg
LyogT24gd2luZG93cywgdGhlIG9sZCBtZXRob2QgdG8gZ2V0IGZpbGUgbG9jYXRpb25zIGlzIGlu
Y3JlZGlibHkgc2xvdy4KICAgICAgICBBcyBvZiB0aGlzIHdyaXRpbmcsIDMgY2FsbHMgdG8gR2V0
V2luZG93c0ZvbGRlciBhY2NvdW50cyBmb3IgMyUgb2YgbW96aWxsYQogICAgICAgIHN0YXJ0dXAu
IFJlcGxhY2luZyB0aGVzZSBvbGRlciBjYWxscyB3aXRoIGEgc2luZ2xlIGNhbGwgdG8gU0hHZXRT
cGVjaWFsRm9sZGVyUGF0aAogICAgICAgIGVmZmVjdGl2ZWx5IHJlbW92ZXMgdGhlc2UgY2FsbHMg
ZnJvbSB0aGUgcGVyZm9ybWFjZSByYWRhci4gIFdlIG5lZWQgdG8gCiAgICAgICAgc3VwcG9ydCB0
aGUgb2xkZXIgd2F5IG9mIGZpbGUgbG9jYXRpb24gbG9va3VwIG9uIHN5c3RlbXMgdGhhdCBkbyBu
b3QgaGF2ZQogICAgICAgIElFNC4gKE5vdGU6IGdldHMgdGhlIGFuc2kgdmVyc2lvbjogU0hHZXRT
cGVjaWFsRm9sZGVyUGF0aEEpLgogICAgICovIAotICAgIGdTaGVsbDMyRExMSW5zdCA9IExvYWRM
aWJyYXJ5KCJTaGVsbDMyLmRsbCIpOworICAgIGdTaGVsbDMyRExMSW5zdCA9IExvYWRMaWJyYXJ5
KF9UKCJTaGVsbDMyLmRsbCIpKTsKICAgICBpZihnU2hlbGwzMkRMTEluc3QpCiAgICAgewogICAg
ICAgICBnR2V0U3BlY2lhbFBhdGhQcm9jICA9IChHZXRTcGVjaWFsUGF0aFByb2MpIEdldFByb2NB
ZGRyZXNzKGdTaGVsbDMyRExMSW5zdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNIR2V0U3BlY2lhbEZvbGRlclBh
dGhBIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0VUU1BFQ0lBTFBBVEhQUk9DTkFNRSk7CiAgICAgfQogI2VuZGlm
CiB9CiAKIE5TX0NPTSB2b2lkIFNodXRkb3duU3BlY2lhbFN5c3RlbURpcmVjdG9yeSgpCiB7CiAj
aWYgZGVmaW5lZCAoWFBfV0lOKQogICAgaWYgKGdTaGVsbDMyRExMSW5zdCkKICAgIHsKICAgICAg
ICBGcmVlTGlicmFyeShnU2hlbGwzMkRMTEluc3QpOwogICAgICAgIGdTaGVsbDMyRExMSW5zdCA9
IE5VTEw7CiAgICAgICAgZ0dldFNwZWNpYWxQYXRoUHJvYyA9IE5VTEw7CkBAIC0xNDgsNjcgKzE1
OCw2NyBAQCBOU19DT00gdm9pZCBTaHV0ZG93blNwZWNpYWxTeXN0ZW1EaXJlY3RvCiAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0YXRpYyBuc3Jlc3VsdCBHZXRXaW5kb3dzRm9s
ZGVyKGludCBmb2xkZXIsIG5zSUxvY2FsRmlsZSoqIGFGaWxlKQogLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiB7CiAgICAgaWYgKGdHZXRTcGVjaWFsUGF0aFByb2MpIHsKICAgICAg
ICAgVENIQVIgcGF0aFtNQVhfUEFUSF07CiAgICAgICAgIEhSRVNVTFQgcmVzdWx0ID0gZ0dldFNw
ZWNpYWxQYXRoUHJvYyhOVUxMLCBwYXRoLCBmb2xkZXIsIHRydWUpOwogICAgICAgICAKICAgICAg
ICAgaWYgKCFTVUNDRUVERUQocmVzdWx0KSkgCiAgICAgICAgICAgICByZXR1cm4gTlNfRVJST1Jf
RkFJTFVSRTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHRyYWlsaW5nIHNsYXNoCi0gICAgICAg
IGludCBsZW4gPSBzdHJsZW4ocGF0aCk7CisgICAgICAgIGludCBsZW4gPSBfdGNzY2xlbihwYXRo
KTsKICAgICAgICAgaWYgKGxlbj4xICYmIHBhdGhbbGVuLTFdICE9ICdcXCcpIAogICAgICAgICB7
CiAgICAgICAgICAgICBwYXRoW2xlbl0gICA9ICdcXCc7CiAgICAgICAgICAgICBwYXRoW2xlbiAr
IDFdID0gJ1wwJzsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBOU19OZXdOYXRpdmVMb2Nh
bEZpbGUobnNEZXBlbmRlbnRDU3RyaW5nKHBhdGgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUl9UUlVFLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhRmlsZSk7CisgICAgICAgIHJldHVybiBOU19OZXdXVExvY2FsRmlsZShuc1dURGVwZW5k
ZW50U3RyaW5nKHBhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJfVFJV
RSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFGaWxlKTsKICAgICB9CiAKICAg
ICBuc3Jlc3VsdCBydiA9IE5TX0VSUk9SX0ZBSUxVUkU7CiAgICAgTFBNQUxMT0MgcE1hbGxvYyA9
IE5VTEw7Ci0gICAgTFBTVFIgcEJ1ZmZlciA9IE5VTEw7CisgICAgTFBUU1RSIHBCdWZmZXIgPSBO
VUxMOwogICAgIExQSVRFTUlETElTVCBwSXRlbUlETGlzdCA9IE5VTEw7CiAgICAgaW50IGxlbjsK
ICAKICAgICAvLyBHZXQgdGhlIHNoZWxsJ3MgYWxsb2NhdG9yLiAKICAgICBpZiAoIVNVQ0NFRURF
RChTSEdldE1hbGxvYygmcE1hbGxvYykpKSAKICAgICAgICAgcmV0dXJuIE5TX0VSUk9SX0ZBSUxV
UkU7CiAKICAgICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlcgotICAgIGlmICgocEJ1ZmZlciA9IChMUFNU
UikgcE1hbGxvYy0+QWxsb2MoTUFYX1BBVEggKyAyKSkgPT0gTlVMTCkgCisgICAgaWYgKChwQnVm
ZmVyID0gKExQVFNUUikgcE1hbGxvYy0+QWxsb2MoTUFYX1BBVEggKyAyKSkgPT0gTlVMTCkgCiAg
ICAgICAgIHJldHVybiBOU19FUlJPUl9GQUlMVVJFOwogIAogICAgIC8vIEdldCB0aGUgUElETCBm
b3IgdGhlIGZvbGRlci4gCiAgICAgaWYgKCFTVUNDRUVERUQoU0hHZXRTcGVjaWFsRm9sZGVyTG9j
YXRpb24oIAogICAgICAgICAgICAgTlVMTCwgZm9sZGVyLCAmcEl0ZW1JRExpc3QpKSkKICAgICAg
ICAgZ290byBDbGVhbjsKICAKICAgICBpZiAoIVNVQ0NFRURFRChTSEdldFBhdGhGcm9tSURMaXN0
KHBJdGVtSURMaXN0LCBwQnVmZmVyKSkpCiAgICAgICAgIGdvdG8gQ2xlYW47CiAKICAgICAvLyBB
cHBlbmQgdGhlIHRyYWlsaW5nIHNsYXNoCi0gICAgbGVuID0gc3RybGVuKHBCdWZmZXIpOworICAg
IGxlbiA9IF90Y3NjbGVuKHBCdWZmZXIpOwogICAgIHBCdWZmZXJbbGVuXSAgID0gJ1xcJzsKICAg
ICBwQnVmZmVyW2xlbiArIDFdID0gJ1wwJzsKIAogICAgIC8vIEFzc2lnbiB0aGUgZGlyZWN0b3J5
Ci0gICAgcnYgPSBOU19OZXdOYXRpdmVMb2NhbEZpbGUobnNEZXBlbmRlbnRDU3RyaW5nKHBCdWZm
ZXIpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUl9UUlVFLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhRmlsZSk7CisgICAgcmV0dXJuIE5TX05ld1dUTG9jYWxG
aWxlKG5zV1REZXBlbmRlbnRTdHJpbmcocEJ1ZmZlciksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBSX1RSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFGaWxlKTsKIAog
Q2xlYW46CiAgICAgLy8gQ2xlYW4gdXAuIAogICAgIGlmIChwSXRlbUlETGlzdCkKICAgICAgICAg
cE1hbGxvYy0+RnJlZShwSXRlbUlETGlzdCk7IAogICAgIGlmIChwQnVmZmVyKQogICAgICAgICBw
TWFsbG9jLT5GcmVlKHBCdWZmZXIpOyAKIAogCXBNYWxsb2MtPlJlbGVhc2UoKTsKICAgICAKICAg
ICByZXR1cm4gcnY7CiB9IApAQCAtMjU2LDg1ICsyNjYsODkgQEAgR2V0VW5peEhvbWVEaXIobnNJ
TG9jYWxGaWxlKiogYUZpbGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJfVFJVRSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUZpbGUpOwog
ICAgIH0KICNlbHNlCiAgICAgcmV0dXJuIE5TX05ld05hdGl2ZUxvY2FsRmlsZShuc0RlcGVuZGVu
dENTdHJpbmcoUFJfR2V0RW52KCJIT01FIikpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBSX1RSVUUsIGFGaWxlKTsKICNlbmRpZgogfQogI2VuZGlmCiAKIG5zcmVzdWx0CiBH
ZXRTcGVjaWFsU3lzdGVtRGlyZWN0b3J5KFN5c3RlbURpcmVjdG9yaWVzIGFTeXN0ZW1TeXN0ZW1E
aXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgbnNJTG9jYWxGaWxlKiogYUZpbGUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIG5zSUxvY2FsRmlsZSoqIGFGaWxlKQogewotICAg
IGNoYXIgcGF0aFtNQVhQQVRITEVOXTsKKyNpZmRlZiBYUF9XSU4KKyAgICBUQ0hBUiBwYXRoW01B
WFBBVEhMRU5dOworI2Vsc2UKKyAgIGNoYXIgcGF0aFtNQVhQQVRITEVOXTsKKyNlbmRpZgogCiAg
ICAgc3dpdGNoIChhU3lzdGVtU3lzdGVtRGlyZWN0b3J5KQogICAgIHsKICAgICAgICAgY2FzZSBP
U19DdXJyZW50V29ya2luZ0RpcmVjdG9yeToKICNpZiBkZWZpbmVkKFhQX1dJTikKLSAgICAgICAg
ICAgIGlmICghX2dldGN3ZChwYXRoLCBNQVhQQVRITEVOKSkKKyAgICAgICAgICAgIGlmICghX3Rn
ZXRjd2QocGF0aCwgTlNfQVJSQVlfTEVOR1RIKHBhdGgpKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gTlNfRVJST1JfRkFJTFVSRTsKICNlbGlmIGRlZmluZWQoWFBfT1MyKQogICAgICAgICAgICAg
aWYgKERvc1F1ZXJ5UGF0aEluZm8oICIuIiwgRklMX1FVRVJZRlVMTE5BTUUsIHBhdGgsIE1BWFBB
VEhMRU4pKQogICAgICAgICAgICAgICAgIHJldHVybiBOU19FUlJPUl9GQUlMVVJFOwogI2Vsc2UK
ICAgICAgICAgICAgIGlmKCFnZXRjd2QocGF0aCwgTUFYUEFUSExFTikpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE5TX0VSUk9SX0ZBSUxVUkU7CiAjZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBO
U19OZXdOYXRpdmVMb2NhbEZpbGUobnNEZXBlbmRlbnRDU3RyaW5nKHBhdGgpLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJfVFJVRSwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFGaWxlKTsKKyAgICAgICAgICAgIHJldHVybiBO
U19OZXdXVExvY2FsRmlsZShuc1dURGVwZW5kZW50U3RyaW5nKHBhdGgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBSX1RSVUUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYUZpbGUpOwogCiAgICAgICAgIGNhc2UgT1NfRHJpdmVEaXJlY3Rvcnk6
CiAjaWYgZGVmaW5lZCAoWFBfV0lOKQogICAgICAgICB7Ci0gICAgICAgICAgICBQUkludDMyIGxl
biA9IEdldFdpbmRvd3NEaXJlY3RvcnkoIHBhdGgsIF9NQVhfUEFUSCApOworICAgICAgICAgICAg
UFJJbnQzMiBsZW4gPSBHZXRXaW5kb3dzRGlyZWN0b3J5KHBhdGgsIE5TX0FSUkFZX0xFTkdUSChw
YXRoKSk7CiAgICAgICAgICAgICBpZiAobGVuKQogICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgIGlmICggcGF0aFsxXSA9PSAnOicgJiYgcGF0aFsyXSA9PSAnXFwnICkKICAgICAgICAgICAg
ICAgICAgICAgcGF0aFszXSA9IDA7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJldHVy
biBOU19OZXdOYXRpdmVMb2NhbEZpbGUobnNEZXBlbmRlbnRDU3RyaW5nKHBhdGgpLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJfVFJVRSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFGaWxlKTsKKyAgICAgICAgICAgIHJldHVy
biBOU19OZXdXVExvY2FsRmlsZShuc1dURGVwZW5kZW50U3RyaW5nKHBhdGgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSX1RSVUUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYUZpbGUpOwogICAgICAgICB9CiAjZWxpZiBkZWZpbmVkKFhQX09T
MikKICAgICAgICAgewogICAgICAgICAgICAgVUxPTkcgdWxCb290RHJpdmUgPSAwOwogICAgICAg
ICAgICAgY2hhciAgYnVmZmVyW10gPSAiIDpcXE9TMlxcIjsKICAgICAgICAgICAgIERvc1F1ZXJ5
U3lzSW5mbyggUVNWX0JPT1RfRFJJVkUsIFFTVl9CT09UX0RSSVZFLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmdWxCb290RHJpdmUsIHNpemVvZiB1bEJvb3REcml2ZSk7CiAgICAgICAg
ICAgICBidWZmZXJbMF0gPSAnQScgLSAxICsgdWxCb290RHJpdmU7IC8vIGR1aCwgMS1iYXNlZCBp
bmRleC4uLgogCiAgICAgICAgICAgICByZXR1cm4gTlNfTmV3TmF0aXZlTG9jYWxGaWxlKG5zRGVw
ZW5kZW50Q1N0cmluZyhidWZmZXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQUl9UUlVFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYUZpbGUpOwogICAgICAgICB9CiAjZWxzZQogICAgICAgICByZXR1cm4gTlNfTmV3TmF0aXZl
TG9jYWxGaWxlKG5zRGVwZW5kZW50Q1N0cmluZygiLyIpLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUl9UUlVFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhRmlsZSk7CiAKICNlbmRpZgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgT1Nf
VGVtcG9yYXJ5RGlyZWN0b3J5OgogI2lmIGRlZmluZWQgKFhQX1dJTikgJiYgIWRlZmluZWQgKFdJ
TkNFKQogICAgICAgICB7CiAgICAgICAgICAgICBEV09SRCBsZW4gPSBHZXRUZW1wUGF0aChfTUFY
X1BBVEgsIHBhdGgpOwotICAgICAgICAgICAgcmV0dXJuIE5TX05ld05hdGl2ZUxvY2FsRmlsZShu
c0RlcGVuZGVudENTdHJpbmcocGF0aCksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQUl9UUlVFLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYUZpbGUpOworICAgICAgICAgICAgcmV0dXJuIE5TX05ld1dUTG9jYWxGaWxlKG5zV1RE
ZXBlbmRlbnRTdHJpbmcocGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJfVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhRmlsZSk7
CiAgICAgICAgIH0KICNlbGlmIGRlZmluZWQgKFdJTkNFKQogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gTlNfTmV3TmF0aXZlTG9jYWxGaWxlKE5TX0xJVEVSQUxfQ1NUUklORygiXFxUZW1w
IiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUl9UUlVFLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUZpbGUpOwogICAgICAg
ICB9CiAjZWxpZiBkZWZpbmVkKFhQX09TMikKICAgICAgICAgewogICAgICAgICAgICAgY2hhciBi
dWZmZXJbQ0NITUFYUEFUSF0gPSAiIjsKICAgICAgICAgICAgIGNoYXIgKmMgPSBnZXRlbnYoICJU
TVAiKTsKICAgICAgICAgICAgIGlmKCBjKSBzdHJjcHkoIGJ1ZmZlciwgYyk7CkBAIC0zNjksODgg
KzM4Myw4OCBAQCBHZXRTcGVjaWFsU3lzdGVtRGlyZWN0b3J5KFN5c3RlbURpcmVjdG9yCiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIE5TX05ld05h
dGl2ZUxvY2FsRmlsZShuc0RlcGVuZGVudENTdHJpbmcodFBhdGgpLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJfVFJVRSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFGaWxlKTsKICAgICAgICAgfQogI2Vsc2UKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYgICAgICAgICAgICAKICNpZiBkZWZpbmVkIChYUF9XSU4pCiAgICAgICAg
IGNhc2UgV2luX1N5c3RlbURpcmVjdG9yeToKICAgICAgICAgeyAgICAKLSAgICAgICAgICAgIFBS
SW50MzIgbGVuID0gR2V0U3lzdGVtRGlyZWN0b3J5KCBwYXRoLCBfTUFYX1BBVEggKTsKKyAgICAg
ICAgICAgIFBSSW50MzIgbGVuID0gR2V0U3lzdGVtRGlyZWN0b3J5KHBhdGgsIE5TX0FSUkFZX0xF
TkdUSChwYXRoKSk7CiAgICAgICAgIAogICAgICAgICAgICAgLy8gTmVlZCBlbm91Z2ggc3BhY2Ug
dG8gYWRkIHRoZSB0cmFpbGluZyBiYWNrc2xhc2gKICAgICAgICAgICAgIGlmIChsZW4gPiBfTUFY
X1BBVEgtMikKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIHBhdGhbbGVuXSAg
ID0gJ1xcJzsKICAgICAgICAgICAgIHBhdGhbbGVuKzFdID0gJ1wwJzsKIAotICAgICAgICAgICAg
cmV0dXJuIE5TX05ld05hdGl2ZUxvY2FsRmlsZShuc0RlcGVuZGVudENTdHJpbmcocGF0aCksIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUl9UUlVFLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUZpbGUpOworICAgICAgICAgICAg
cmV0dXJuIE5TX05ld1dUTG9jYWxGaWxlKG5zV1REZXBlbmRlbnRTdHJpbmcocGF0aCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJfVFJVRSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhRmlsZSk7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNl
IFdpbl9XaW5kb3dzRGlyZWN0b3J5OgogICAgICAgICB7ICAgIAotICAgICAgICAgICAgUFJJbnQz
MiBsZW4gPSBHZXRXaW5kb3dzRGlyZWN0b3J5KCBwYXRoLCBfTUFYX1BBVEggKTsKKyAgICAgICAg
ICAgIFBSSW50MzIgbGVuID0gR2V0V2luZG93c0RpcmVjdG9yeShwYXRoLCBOU19BUlJBWV9MRU5H
VEgocGF0aCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBOZWVkIGVub3VnaCBzcGFj
ZSB0byBhZGQgdGhlIHRyYWlsaW5nIGJhY2tzbGFzaAogICAgICAgICAgICAgaWYgKGxlbiA+IF9N
QVhfUEFUSC0yKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBwYXRoW2xlbl0gICA9ICdcXCc7CiAgICAgICAgICAgICBwYXRoW2xlbisxXSA9ICdcMCc7
CiAKLSAgICAgICAgICAgIHJldHVybiBOU19OZXdOYXRpdmVMb2NhbEZpbGUobnNEZXBlbmRlbnRD
U3RyaW5nKHBhdGgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJfVFJVRSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFGaWxl
KTsKKyAgICAgICAgICAgIHJldHVybiBOU19OZXdXVExvY2FsRmlsZShuc1dURGVwZW5kZW50U3Ry
aW5nKHBhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSX1RSVUUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUZpbGUpOwogICAgICAgICB9
CiAKICAgICAgICAgY2FzZSBXaW5fSG9tZURpcmVjdG9yeToKICAgICAgICAgeyAgICAKLSAgICAg
ICAgICAgIGlmIChHZXRFbnZpcm9ubWVudFZhcmlhYmxlKFRFWFQoIkhPTUUiKSwgcGF0aCwgX01B
WF9QQVRIKSA+IDApCisgICAgICAgICAgICBpZiAoR2V0RW52aXJvbm1lbnRWYXJpYWJsZShfVCgi
SE9NRSIpLCBwYXRoLCBOU19BUlJBWV9MRU5HVEgocGF0aCkpID4gMCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBQUkludDMyIGxlbiA9IHN0cmxlbihwYXRoKTsKKyAgICAgICAgICAg
ICAgICBQUkludDMyIGxlbiA9IF90Y3NjbGVuKHBhdGgpOwogICAgICAgICAgICAgICAgIC8vIE5l
ZWQgZW5vdWdoIHNwYWNlIHRvIGFkZCB0aGUgdHJhaWxpbmcgYmFja3NsYXNoCiAgICAgICAgICAg
ICAgICAgaWYgKGxlbiA+IF9NQVhfUEFUSCAtIDIpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgcGF0aFtsZW5dICAgPSAnXFwnOwog
ICAgICAgICAgICAgICAgIHBhdGhbbGVuKzFdID0gJ1wwJzsKIAotICAgICAgICAgICAgICAgIHJl
dHVybiBOU19OZXdOYXRpdmVMb2NhbEZpbGUobnNEZXBlbmRlbnRDU3RyaW5nKHBhdGgpLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSX1RSVUUsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUZpbGUpOworICAgICAg
ICAgICAgICAgIHJldHVybiBOU19OZXdXVExvY2FsRmlsZShuc1dURGVwZW5kZW50U3RyaW5nKHBh
dGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUl9UUlVFLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhRmlsZSk7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGlmIChHZXRFbnZpcm9ubWVudFZhcmlhYmxlKFRFWFQoIkhP
TUVEUklWRSIpLCBwYXRoLCBfTUFYX1BBVEgpID4gMCkKKyAgICAgICAgICAgIGlmIChHZXRFbnZp
cm9ubWVudFZhcmlhYmxlKF9UKCJIT01FRFJJVkUiKSwgcGF0aCwgTlNfQVJSQVlfTEVOR1RIKHBh
dGgpKSA+IDApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2hhciB0ZW1wW19NQVhf
UEFUSF07Ci0gICAgICAgICAgICAgICAgaWYgKEdldEVudmlyb25tZW50VmFyaWFibGUoVEVYVCgi
SE9NRVBBVEgiKSwgdGVtcCwgX01BWF9QQVRIKSA+IDApCi0gICAgICAgICAgICAgICAgICAgc3Ry
bmNhdChwYXRoLCB0ZW1wLCBfTUFYX1BBVEgpOworICAgICAgICAgICAgICAgIFRDSEFSIHRlbXBb
X01BWF9QQVRIXTsKKyAgICAgICAgICAgICAgICBpZiAoR2V0RW52aXJvbm1lbnRWYXJpYWJsZShf
VCgiSE9NRVBBVEgiKSwgdGVtcCwgTlNfQVJSQVlfTEVOR1RIKHRlbXApKSA+IDApCisgICAgICAg
ICAgICAgICAgICAgX3Rjc25jYXQocGF0aCwgdGVtcCwgX01BWF9QQVRIKTsKICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgUFJJbnQzMiBsZW4gPSBzdHJsZW4ocGF0aCk7CisgICAgICAgICAgICAg
ICAgUFJJbnQzMiBsZW4gPSBfdGNzY2xlbihwYXRoKTsKIAogICAgICAgICAgICAgICAgIC8vIE5l
ZWQgZW5vdWdoIHNwYWNlIHRvIGFkZCB0aGUgdHJhaWxpbmcgYmFja3NsYXNoCiAgICAgICAgICAg
ICAgICAgaWYgKGxlbiA+IF9NQVhfUEFUSCAtIDIpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgcGF0aFtsZW5dICAgPSAnXFwnOwogICAg
ICAgICAgICAgICAgIHBhdGhbbGVuKzFdID0gJ1wwJzsKICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICByZXR1cm4gTlNfTmV3TmF0aXZlTG9jYWxGaWxlKG5zRGVwZW5kZW50Q1N0cmlu
ZyhwYXRoKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Ul9UUlVFLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFG
aWxlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlNfTmV3V1RMb2NhbEZpbGUobnNXVERlcGVu
ZGVudFN0cmluZyhwYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJfVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUZp
bGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2luX0Rlc2t0b3A6
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBHZXRXaW5kb3dzRm9sZGVyKENTSURMX0RF
U0tUT1AsIGFGaWxlKTsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdpbl9Qcm9ncmFtczoKICAg
ICAgICAgewogICAgICAgICAgICAgcmV0dXJuIEdldFdpbmRvd3NGb2xkZXIoQ1NJRExfUFJPR1JB
TVMsIGFGaWxlKTsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdpbl9Db250cm9sczoKICAgICAg
ICAgewpJbmRleDogeHBjb20vaW8vbnNEaXJlY3RvcnlTZXJ2aWNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3Zzcm9vdC9tb3ppbGxhL3hwY29tL2lvL25zRGlyZWN0b3J5U2VydmljZS5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODUKZGlmZiAtdSAtMSAtMiAtcCAtZCAtcjEuODUgbnNE
aXJlY3RvcnlTZXJ2aWNlLmNwcAotLS0geHBjb20vaW8vbnNEaXJlY3RvcnlTZXJ2aWNlLmNwcAkx
NSBTZXAgMjAwNSAyMzoxNzoxNiAtMDAwMAkxLjg1CisrKyB4cGNvbS9pby9uc0RpcmVjdG9yeVNl
cnZpY2UuY3BwCTUgT2N0IDIwMDUgMTY6MzA6MzUgLTAwMDAKQEAgLTUyLDI0ICs1MiwyNSBAQAog
CiAjaWYgZGVmaW5lZChYUF9NQUMpCiAjaW5jbHVkZSA8Rm9sZGVycy5oPgogI2luY2x1ZGUgPEZp
bGVzLmg+CiAjaW5jbHVkZSA8TWVtb3J5Lmg+CiAjaW5jbHVkZSA8UHJvY2Vzc2VzLmg+CiAjaW5j
bHVkZSA8R2VzdGFsdC5oPgogI2VsaWYgZGVmaW5lZChYUF9XSU4pCiAjaW5jbHVkZSA8d2luZG93
cy5oPgogI2luY2x1ZGUgPHNobG9iai5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUg
PHN0ZGlvLmg+CisjaW5jbHVkZSA8dGNoYXIuaD4KICNlbGlmIGRlZmluZWQoWFBfVU5JWCkgfHwg
ZGVmaW5lZChYUF9NQUNPU1gpCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3RkbGli
Lmg+CiAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAjaW5jbHVkZSAicHJlbnYuaCIKICNpZmRlZiBY
UF9NQUNPU1gKICNpbmNsdWRlIDxDb3JlU2VydmljZXMvQ29yZVNlcnZpY2VzLmg+CiAjaW5jbHVk
ZSA8Rm9sZGVycy5oPgogI2luY2x1ZGUgPEZpbGVzLmg+CiAjaW5jbHVkZSA8TWVtb3J5Lmg+CiAj
aW5jbHVkZSA8UHJvY2Vzc2VzLmg+CiAjaW5jbHVkZSA8R2VzdGFsdC5oPgpAQCAtMTQ3LDMyICsx
NDgsMzYgQEAgbnNEaXJlY3RvcnlTZXJ2aWNlOjpHZXRDdXJyZW50UHJvY2Vzc0RpcgogICAgICAg
fQogICAgIH0KIAogICAgIG5zTG9jYWxGaWxlKiBsb2NhbEZpbGUgPSBuZXcgbnNMb2NhbEZpbGU7
CiAKICAgICBpZiAobG9jYWxGaWxlID09IG5zbnVsbCkKICAgICAgICAgcmV0dXJuIE5TX0VSUk9S
X09VVF9PRl9NRU1PUlk7CiAgICAgTlNfQUREUkVGKGxvY2FsRmlsZSk7CiAKIAogCiAjaWZkZWYg
WFBfV0lOCi0gICAgY2hhciBidWZbTUFYX1BBVEhdOworICAgIFRDSEFSIGJ1ZltNQVhfUEFUSF07
CiAgICAgaWYgKCA6OkdldE1vZHVsZUZpbGVOYW1lKDAsIGJ1Ziwgc2l6ZW9mKGJ1ZikpICkgewog
ICAgICAgICAvLyBjaG9wIG9mIHRoZSBleGVjdXRhYmxlIG5hbWUgYnkgZmluZGluZyB0aGUgcmln
aHRtb3N0IGJhY2tzbGFzaAotICAgICAgICBjaGFyKiBsYXN0U2xhc2ggPSBQTF9zdHJyY2hyKGJ1
ZiwgJ1xcJyk7CisgICAgICAgIFRDSEFSKiBsYXN0U2xhc2ggPSBfdGNzcmNocihidWYsICdcXCcp
OwogICAgICAgICBpZiAobGFzdFNsYXNoKQogICAgICAgICAgICAgKihsYXN0U2xhc2ggKyAxKSA9
ICdcMCc7CiAgICAgICAgIAorI2lmZGVmIF9VTklDT0RFCisgICAgICAgIGxvY2FsRmlsZS0+SW5p
dFdpdGhQYXRoKG5zRGVwZW5kZW50U3RyaW5nKGJ1ZikpOworI2Vsc2UKICAgICAgICAgbG9jYWxG
aWxlLT5Jbml0V2l0aE5hdGl2ZVBhdGgobnNEZXBlbmRlbnRDU3RyaW5nKGJ1ZikpOworI2VuZGlm
CiAgICAgICAgICphRmlsZSA9IGxvY2FsRmlsZTsKICAgICAgICAgcmV0dXJuIE5TX09LOwogICAg
IH0KIAogI2VsaWYgZGVmaW5lZChYUF9NQUMpCiAgICAgLy8gZ2V0IGluZm8gZm9yIHRoZSB0aGUg
Y3VycmVudCBwcm9jZXNzIHRvIGRldGVybWluZSB0aGUgZGlyZWN0b3J5CiAgICAgLy8gaXRzIGxv
Y2F0ZWQgaW4KICAgICBPU0VyciBlcnI7CiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwc24gPSB7
a05vUHJvY2Vzcywga0N1cnJlbnRQcm9jZXNzfTsKICAgICBQcm9jZXNzSW5mb1JlYyBwSW5mbzsK
ICAgICBGU1NwZWMgICAgICAgICB0ZW1wU3BlYzsKIApJbmRleDogeHBjb20vaW8vbnNMb2NhbEZp
bGVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L21vemlsbGEveHBjb20vaW8v
bnNMb2NhbEZpbGVXaW4uY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE0NgpkaWZmIC11IC0x
IC0yIC1wIC1kIC1yMS4xNDYgbnNMb2NhbEZpbGVXaW4uY3BwCi0tLSB4cGNvbS9pby9uc0xvY2Fs
RmlsZVdpbi5jcHAJMTMgU2VwIDIwMDUgMjI6MDg6NTIgLTAwMDAJMS4xNDYKKysrIHhwY29tL2lv
L25zTG9jYWxGaWxlV2luLmNwcAk1IE9jdCAyMDA1IDE2OjMwOjM2IC0wMDAwCkBAIC01NywyNCAr
NTcsMjUgQEAKICNpbmNsdWRlICJuc1JlYWRhYmxlVXRpbHMuaCIKIAogI2luY2x1ZGUgPGRpcmVj
dC5oPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAogI2luY2x1ZGUgInNoZWxsYXBpLmgiCiAjaW5j
bHVkZSAic2hsZ3VpZC5oIgogCiAjaW5jbHVkZSAgPGlvLmg+CiAjaW5jbHVkZSAgPHN0ZGlvLmg+
CiAjaW5jbHVkZSAgPHN0ZGxpYi5oPgogI2luY2x1ZGUgIDxtYnN0cmluZy5oPgorI2luY2x1ZGUg
IDx0Y2hhci5oPgogCiAjaW5jbHVkZSAibnNYUElETFN0cmluZy5oIgogI2luY2x1ZGUgInBycHJv
Y2VzLmgiCiAjaW5jbHVkZSAibnNJVGltZWxpbmVTZXJ2aWNlLmgiCiAKICNpbmNsdWRlICJuc0F1
dG9Mb2NrLmgiCiAjaW5jbHVkZSAiU3BlY2lhbFN5c3RlbURpcmVjdG9yeS5oIgogCiAvLyBfbWJz
c3RyIGlzbid0IGRlY2xhcmVkIGluIHczMmFwaSBoZWFkZXJzIGJ1dCBpdCdzIHRoZXJlIGluIHRo
ZSBsaWJzCiAjaWZkZWYgX19NSU5HVzMyX18KIGV4dGVybiAiQyIgewogdW5zaWduZWQgY2hhciAq
X21ic3N0ciggY29uc3QgdW5zaWduZWQgY2hhciAqc3RyLApAQCAtODcsNDEgKzg4LDQxIEBAIGNs
YXNzIG5zRHJpdmVFbnVtZXJhdG9yIDogcHVibGljIG5zSVNpbXAKIHB1YmxpYzoKICAgICBuc0Ry
aXZlRW51bWVyYXRvcigpOwogICAgIHZpcnR1YWwgfm5zRHJpdmVFbnVtZXJhdG9yKCk7CiAgICAg
TlNfREVDTF9JU1VQUE9SVFMKICAgICBOU19ERUNMX05TSVNJTVBMRUVOVU1FUkFUT1IKICAgICBu
c3Jlc3VsdCBJbml0KCk7CiBwcml2YXRlOgogICAgIC8qIG1Ecml2ZXMgYW5kIG1MZXR0ZXIgc2hh
cmUgZGF0YQogICAgICAqIEluaXQgc2V0cyB0aGVtLgogICAgICAqIEhhc01vcmVFbGVtZW50cyBy
ZWFkcyBtTGV0dGVyLgogICAgICAqIEdldE5leHQgYWR2YW5jZXMgbUxldHRlci4KICAgICAgKi8K
LSAgICBuc0NTdHJpbmcgbURyaXZlczsKLSAgICBjb25zdCBjaGFyICptTGV0dGVyOworICAgIG5z
V1RTdHJpbmcgbURyaXZlczsKKyAgICBjb25zdCBUQ0hBUiAqbUxldHRlcjsKIH07CiAKIC8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogLy8gc2hvcnQgY3V0IHJlc29sdmVyCiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICNpZm5kZWYgV0lOQ0UKIGNsYXNzIFNob3J0Y3V0UmVzb2x2ZXIKIHsKIHB1YmxpYzoK
ICAgICBTaG9ydGN1dFJlc29sdmVyKCk7CiAgICAgLy8gbm9udmlydHVhbCBzaW5jZSB3ZSdyZSBu
b3Qgc3ViY2xhc3NlZAogICAgIH5TaG9ydGN1dFJlc29sdmVyKCk7CiAKICAgICBuc3Jlc3VsdCBJ
bml0KCk7Ci0gICAgbnNyZXN1bHQgUmVzb2x2ZShjb25zdCBXQ0hBUiogaW4sIGNoYXIqIG91dCk7
CisgICAgbnNyZXN1bHQgUmVzb2x2ZShjb25zdCBXQ0hBUiogaW4sIFRDSEFSKiBvdXQpOwogCiBw
cml2YXRlOgogICAgIFBSTG9jayogICAgICAgbUxvY2s7CiAgICAgSVBlcnNpc3RGaWxlKiBtUGVy
c2lzdEZpbGU7CiAgICAgSVNoZWxsTGluayogICBtU2hlbGxMaW5rOwogfTsKIAogU2hvcnRjdXRS
ZXNvbHZlcjo6U2hvcnRjdXRSZXNvbHZlcigpCiB7CiAgICAgbUxvY2sgPSBuc251bGw7CiAgICAg
bVBlcnNpc3RGaWxlID0gbnNudWxsOwogICAgIG1TaGVsbExpbmsgICA9IG5zbnVsbDsKQEAgLTE2
MiwyNSArMTYzLDI1IEBAIFNob3J0Y3V0UmVzb2x2ZXI6OkluaXQoKQogICAgICAgICAvLyBHZXQg
YSBwb2ludGVyIHRvIHRoZSBJUGVyc2lzdEZpbGUgaW50ZXJmYWNlLgogICAgICAgICBocmVzID0g
bVNoZWxsTGluay0+UXVlcnlJbnRlcmZhY2UoSUlEX0lQZXJzaXN0RmlsZSwgKHZvaWQqKikmbVBl
cnNpc3RGaWxlKTsKICAgICB9CiAKICAgICBpZiAobVBlcnNpc3RGaWxlID09IG5zbnVsbCB8fCBt
U2hlbGxMaW5rID09IG5zbnVsbCkKICAgICAgICAgcmV0dXJuIE5TX0VSUk9SX0ZBSUxVUkU7CiAK
ICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIC8vIHxvdXR8IG11c3QgYmUgYW4gYWxsb2NhdGVkIGJ1
ZmZlciBvZiBzaXplIE1BWF9QQVRICiBuc3Jlc3VsdAotU2hvcnRjdXRSZXNvbHZlcjo6UmVzb2x2
ZShjb25zdCBXQ0hBUiogaW4sIGNoYXIqIG91dCkKK1Nob3J0Y3V0UmVzb2x2ZXI6OlJlc29sdmUo
Y29uc3QgV0NIQVIqIGluLCBUQ0hBUiogb3V0KQogewogICAgIG5zQXV0b0xvY2sgbG9jayhtTG9j
ayk7CiAKICAgICAvLyBzZWUgaWYgd2UgY2FuIExvYWQgdGhlIHBhdGguCiAgICAgSFJFU1VMVCBo
cmVzID0gbVBlcnNpc3RGaWxlLT5Mb2FkKGluLCBTVEdNX1JFQUQpOwogCiAgICAgaWYgKEZBSUxF
RChocmVzKSkKICAgICAgICAgcmV0dXJuIE5TX0VSUk9SX0ZBSUxVUkU7CiAKICAgICAvLyBSZXNv
bHZlIHRoZSBsaW5rLgogICAgIGhyZXMgPSBtU2hlbGxMaW5rLT5SZXNvbHZlKG5zbnVsbCwgU0xS
X05PX1VJICk7CiAKQEAgLTI4NiwzMiArMjg3LDMzIEBAIE15RmlsZVNlZWs2NChIQU5ETEUgYUhh
bmRsZSwgX19pbnQ2NCBhRGkKIAogICAgIGxpLlF1YWRQYXJ0ID0gYURpc3RhbmNlOwogICAgIGxp
Lkxvd1BhcnQgPSBTZXRGaWxlUG9pbnRlcihhSGFuZGxlLCBsaS5Mb3dQYXJ0LCAmbGkuSGlnaFBh
cnQsIGFNb3ZlTWV0aG9kKTsKICAgICBpZiAobGkuTG93UGFydCA9PSBJTlZBTElEX1NFVF9GSUxF
X1BPSU5URVIgJiYgR2V0TGFzdEVycm9yKCkgIT0gTk9fRVJST1IpCiAgICAgewogICAgICAgICBs
aS5RdWFkUGFydCA9IC0xOwogICAgIH0KIAogICAgIHJldHVybiBsaS5RdWFkUGFydDsKIH0KIAog
c3RhdGljIFBSQm9vbAotSXNTaG9ydGN1dFBhdGgoY29uc3QgY2hhciAqcGF0aCkKK0lzU2hvcnRj
dXRQYXRoKGNvbnN0IFRDSEFSICpwYXRoKQogewogICAgIC8vIFVuZGVyIFdpbmRvd3MsIHRoZSBz
aG9ydGN1dHMgYXJlIGp1c3QgZmlsZXMgd2l0aCBhICIubG5rIiBleHRlbnNpb24uIAogICAgIC8v
IE5vdGUgYWxzbyB0aGF0IHdlIGRvbid0IHJlc29sdmUgbGlua3MgaW4gdGhlIG1pZGRsZSBvZiBw
YXRocy4KICAgICAvLyBpLmUuICJjOlxmb28ubG5rXGJhci50eHQiIGlzIGludmFsaWQuCiAgICAg
TlNfQUJPUlRfSUZfRkFMU0UocGF0aCwgImRvbid0IHBhc3MgbnVsbHMiKTsKLSAgICBjb25zdCBj
aGFyICogZXh0ID0gKGNvbnN0IGNoYXIgKikgX21ic3JjaHIoKGNvbnN0IHVuc2lnbmVkIGNoYXIg
KilwYXRoLCAnLicpOwotICAgIGlmICghZXh0IHx8IDAgIT0gc3RyaWNtcChleHQgKyAxLCAibG5r
IikpCisKKyAgICBjb25zdCBUQ0hBUiAqIGV4dCA9IFNBRkVfVENBU1Qod3RzdHJyY2hyKFNBRkVf
TUJDQVNUKHBhdGgpLCAnLicpKTsKKyAgICBpZiAoIWV4dCB8fCAwICE9IF90Y3NpY21wKGV4dCAr
IDEsIF9UKCJsbmsiKSkpCiAgICAgICAgIHJldHVybiBQUl9GQUxTRTsKICAgICByZXR1cm4gUFJf
VFJVRTsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gbnNEaXJFbnVtZXJhdG9yCiAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGNsYXNzIG5zRGlyRW51bWVyYXRvciA6IHB1YmxpYyBu
c0lTaW1wbGVFbnVtZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIG5zSURp
cmVjdG9yeUVudW1lcmF0b3IKIHsKICAgICBwdWJsaWM6CkBAIC00OTQsMzUgKzQ5NiwzOSBAQCBu
c0xvY2FsRmlsZTo6bnNMb2NhbEZpbGUoY29uc3QgbnNMb2NhbEZpCiB9CiAKIC8vIFJlc29sdmUg
dGhlIHNob3J0Y3V0IGZpbGUgZnJvbSBtV29ya2luZ1BhdGggYW5kIHdyaXRlIHRoZSBwYXRoIAog
Ly8gaXQgcG9pbnRzIHRvIGludG8gbVJlc29sdmVkUGF0aC4KIG5zcmVzdWx0CiBuc0xvY2FsRmls
ZTo6UmVzb2x2ZVNob3J0Y3V0KCkKIHsKICNpZm5kZWYgV0lOQ0UKICAgICAvLyB3ZSBjYW4ndCBk
byBhbnl0aGluZyB3aXRob3V0IHRoZSByZXNvbHZlcgogICAgIGlmICghZ1Jlc29sdmVyKQogICAg
ICAgICByZXR1cm4gTlNfRVJST1JfRkFJTFVSRTsKIAotICAgIC8vIGFsbG9jYXRlIHRoZSBtZW1v
cnkgZm9yIHRoZSByZXN1bHQgb2YgdGhlIHJlc29sdXRpb24KKyNpZmRlZiBfVU5JQ09ERQorICAg
IG5zU3RyaW5nJiB1Y3NCdWYgPSBtV29ya2luZ1BhdGg7CisjZWxzZQogICAgIG5zQXV0b1N0cmlu
ZyB1Y3NCdWY7CiAgICAgTlNfQ29weU5hdGl2ZVRvVW5pY29kZShtV29ya2luZ1BhdGgsIHVjc0J1
Zik7CisjZW5kaWYKIAorICAgIC8vIGFsbG9jYXRlIHRoZSBtZW1vcnkgZm9yIHRoZSByZXN1bHQg
b2YgdGhlIHJlc29sdXRpb24KICAgICBtUmVzb2x2ZWRQYXRoLlNldExlbmd0aChNQVhfUEFUSCk7
Ci0gICAgY2hhciAqcmVzb2x2ZWRQYXRoID0gbVJlc29sdmVkUGF0aC5CZWdpbldyaXRpbmcoKTsK
KyAgICBUQ0hBUiAqcmVzb2x2ZWRQYXRoID0gbVJlc29sdmVkUGF0aC5CZWdpbldyaXRpbmcoKTsK
IAogICAgIC8vIHJlc29sdmUgdGhpcyBzaG9ydGN1dAogICAgIG5zcmVzdWx0IHJ2ID0gZ1Jlc29s
dmVyLT5SZXNvbHZlKHVjc0J1Zi5nZXQoKSwgcmVzb2x2ZWRQYXRoKTsKIAotICAgIHNpemVfdCBs
ZW4gPSBOU19GQUlMRUQocnYpID8gMCA6IHN0cmxlbihyZXNvbHZlZFBhdGgpOworICAgIHNpemVf
dCBsZW4gPSBOU19GQUlMRUQocnYpID8gMCA6IF90Y3NjbGVuKHJlc29sdmVkUGF0aCk7CiAgICAg
bVJlc29sdmVkUGF0aC5TZXRMZW5ndGgobGVuKTsKIAogICAgIHJldHVybiBydjsKICNlbHNlCiAg
ICAgcmV0dXJuIE5TX09LOwogI2VuZGlmCiB9CiAKIC8vIFJlc29sdmUgYW55IHNob3J0Y3V0cyBh
bmQgc3RhdCB0aGUgcmVzb2x2ZWQgcGF0aC4gQWZ0ZXIgYSBzdWNjZXNzZnVsIHJldHVybgogLy8g
dGhlIHBhdGggaXMgZ3VhcmFudGVlZCB2YWxpZCBhbmQgdGhlIG1lbWJlcnMgb2YgbUZpbGVJbmZv
NjQgY2FuIGJlIHVzZWQuCiBuc3Jlc3VsdAogbnNMb2NhbEZpbGU6OlJlc29sdmVBbmRTdGF0KCkK
QEAgLTUzMCw2NCArNTM2LDY0IEBAIG5zTG9jYWxGaWxlOjpSZXNvbHZlQW5kU3RhdCgpCiAgICAg
Ly8gaWYgd2UgYXJlbid0IGRpcnR5IHRoZW4gd2UgYXJlIGFscmVhZHkgZG9uZQogICAgIGlmICgh
bURpcnR5KQogICAgICAgICByZXR1cm4gTlNfT0s7CiAKICAgICAvLyB3ZSBjYW4ndCByZXNvbHZl
L3N0YXQgYW55dGhpbmcgdGhhdCBpc24ndCBhIHZhbGlkIE5TUFIgYWRkcmVzc2FibGUgcGF0aAog
ICAgIGlmIChtV29ya2luZ1BhdGguSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gTlNfRVJST1Jf
RklMRV9JTlZBTElEX1BBVEg7CiAKICAgICAvLyB0aGlzIGlzIHVzdWFsbHkgY29ycmVjdAogICAg
IG1SZXNvbHZlZFBhdGguQXNzaWduKG1Xb3JraW5nUGF0aCk7CiAKICAgICAvLyBzbHV0dHkgaGFj
ayBkZXNpZ25lZCB0byB3b3JrIGFyb3VuZCBidWcgMTM0Nzk2IHVudGlsIGl0IGlzIGZpeGVkCi0g
ICAgY2hhciB0ZW1wWzRdOwotICAgIGNvbnN0IGNoYXIgKm5zcHJQYXRoID0gbVdvcmtpbmdQYXRo
LmdldCgpOworICAgIFRDSEFSIHRlbXBbNF07CisgICAgY29uc3QgVENIQVIgKnN0YXRQYXRoID0g
bVdvcmtpbmdQYXRoLmdldCgpOwogICAgIGlmIChtV29ya2luZ1BhdGguTGVuZ3RoKCkgPT0gMiAm
JiBtV29ya2luZ1BhdGguQ2hhckF0KDEpID09ICc6JykgCiAgICAgewogICAgICAgICB0ZW1wWzBd
ID0gbVdvcmtpbmdQYXRoWzBdOwogICAgICAgICB0ZW1wWzFdID0gbVdvcmtpbmdQYXRoWzFdOwog
ICAgICAgICB0ZW1wWzJdID0gJ1xcJzsKICAgICAgICAgdGVtcFszXSA9ICdcMCc7Ci0gICAgICAg
IG5zcHJQYXRoID0gdGVtcDsKKyAgICAgICAgc3RhdFBhdGggPSB0ZW1wOwogICAgIH0KIAogICAg
IC8vIGZpcnN0IHdlIHdpbGwgc2VlIGlmIHRoZSB3b3JraW5nIHBhdGggZXhpc3RzLiBJZiBpdCBk
b2Vzbid0IHRoZW4KICAgICAvLyB0aGVyZSBpcyBub3RoaW5nIG1vcmUgdGhhdCBjYW4gYmUgZG9u
ZQotICAgIFBSU3RhdHVzIHN0YXR1cyA9IFBSX0dldEZpbGVJbmZvNjQobnNwclBhdGgsICZtRmls
ZUluZm82NCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQUl9TVUNDRVNTKQorICAgIGludCBzdGF0dXMg
PSBfdHN0YXRpNjQoc3RhdFBhdGgsICZtRmlsZUluZm82NCk7CisgICAgaWYgKHN0YXR1cyAhPSAw
KQogICAgICAgICByZXR1cm4gTlNfRVJST1JfRklMRV9OT1RfRk9VTkQ7CiAKICAgICAvLyBpZiB0
aGlzIGlzbid0IGEgc2hvcnRjdXQgZmlsZSBvciB3ZSBhcmVuJ3QgZm9sbG93aW5nIHN5bWxpbmtz
IHRoZW4gd2UncmUgZG9uZSAKICAgICBpZiAoIW1Gb2xsb3dTeW1saW5rcyAKLSAgICAgICAgfHwg
bUZpbGVJbmZvNjQudHlwZSAhPSBQUl9GSUxFX0ZJTEUgCisgICAgICAgIHx8IG1GaWxlSW5mbzY0
LnN0X21vZGUgIT0gX1NfSUZSRUcKICAgICAgICAgfHwgIUlzU2hvcnRjdXRQYXRoKG1Xb3JraW5n
UGF0aC5nZXQoKSkpCiAgICAgewogICAgICAgICBtRGlydHkgPSBQUl9GQUxTRTsKICAgICAgICAg
cmV0dXJuIE5TX09LOwogICAgIH0KIAogICAgIC8vIHdlIG5lZWQgdG8gcmVzb2x2ZSB0aGlzIHNo
b3J0Y3V0IHRvIHdoYXQgaXQgcG9pbnRzIHRvLCB0aGlzIHdpbGwKICAgICAvLyBzZXQgbVJlc29s
dmVkUGF0aC4gRXZlbiBpZiBpdCBmYWlscyB3ZSBuZWVkIHRvIGhhdmUgdGhlIHJlc29sdmVkCiAg
ICAgLy8gcGF0aCBlcXVhbCB0byB3b3JraW5nIHBhdGggZm9yIHRob3NlIGZ1bmN0aW9ucyB0aGF0
IGFsd2F5cyB1c2UKICAgICAvLyB0aGUgcmVzb2x2ZWQgcGF0aC4KICAgICBuc3Jlc3VsdCBydiA9
IFJlc29sdmVTaG9ydGN1dCgpOwogICAgIGlmIChOU19GQUlMRUQocnYpKQogICAgIHsKICAgICAg
ICAgbVJlc29sdmVkUGF0aC5Bc3NpZ24obVdvcmtpbmdQYXRoKTsKICAgICAgICAgcmV0dXJuIHJ2
OwogICAgIH0KIAogICAgIC8vIGdldCB0aGUgZGV0YWlscyBvZiB0aGUgcmVzb2x2ZWQgcGF0aAot
ICAgIHN0YXR1cyA9IFBSX0dldEZpbGVJbmZvNjQobVJlc29sdmVkUGF0aC5nZXQoKSwgJm1GaWxl
SW5mbzY0KTsKLSAgICBpZiAoc3RhdHVzICE9IFBSX1NVQ0NFU1MpCisgICAgc3RhdHVzID0gX3Rz
dGF0aTY0KG1SZXNvbHZlZFBhdGguZ2V0KCksICZtRmlsZUluZm82NCk7CisgICAgaWYgKHN0YXR1
cyAhPSAwKQogICAgICAgICByZXR1cm4gTlNfRVJST1JfRklMRV9OT1RfRk9VTkQ7CiAKICAgICBt
RGlydHkgPSBQUl9GQUxTRTsKICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIAogLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogLy8gbnNMb2NhbEZpbGU6Om5zSUZpbGUsbnNJTG9jYWxGaWxlCiAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKIE5TX0lNRVRIT0RJTVAKQEAgLTU5NSw5OSArNjAxLDE0NiBAQCBu
c0xvY2FsRmlsZTo6Q2xvbmUobnNJRmlsZSAqKmZpbGUpCiB7CiAgICAgLy8gSnVzdCBjb3B5LWNv
bnN0cnVjdCBvdXJzZWx2ZXMKICAgICAqZmlsZSA9IG5ldyBuc0xvY2FsRmlsZSgqdGhpcyk7CiAg
ICAgaWYgKCEqZmlsZSkKICAgICAgIHJldHVybiBOU19FUlJPUl9PVVRfT0ZfTUVNT1JZOwogCiAg
ICAgTlNfQUREUkVGKCpmaWxlKTsKICAgICAKICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIE5TX0lN
RVRIT0RJTVAKKyNpZmRlZiBfVU5JQ09ERQorbnNMb2NhbEZpbGU6OkluaXRXaXRoUGF0aChjb25z
dCBuc0FTdHJpbmcgJmZpbGVQYXRoKQorI2Vsc2UKIG5zTG9jYWxGaWxlOjpJbml0V2l0aE5hdGl2
ZVBhdGgoY29uc3QgbnNBQ1N0cmluZyAmZmlsZVBhdGgpCisjZW5kaWYKIHsKICAgICBNYWtlRGly
dHkoKTsKIAotICAgIG5zQUNTdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGJlZ2luLCBlbmQ7CisgICAg
bnNBV1RTdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGJlZ2luLCBlbmQ7CiAgICAgZmlsZVBhdGguQmVn
aW5SZWFkaW5nKGJlZ2luKTsKICAgICBmaWxlUGF0aC5FbmRSZWFkaW5nKGVuZCk7CiAKICAgICAv
LyBpbnB1dCBzdHJpbmcgbXVzdCBub3QgYmUgZW1wdHkKICAgICBpZiAoYmVnaW4gPT0gZW5kKQog
ICAgICAgICByZXR1cm4gTlNfRVJST1JfRkFJTFVSRTsKIAotICAgIGNoYXIgZmlyc3RDaGFyID0g
KmJlZ2luOwotICAgIGNoYXIgc2Vjb25kQ2hhciA9ICooKytiZWdpbik7CisgICAgVENIQVIgZmly
c3RDaGFyID0gKmJlZ2luOworICAgIFRDSEFSIHNlY29uZENoYXIgPSAqKCsrYmVnaW4pOwogCiAg
ICAgLy8ganVzdCBkbyBhIHNhbml0eSBjaGVjay4gIGlmIGl0IGhhcyBhbnkgZm9yd2FyZCBzbGFz
aGVzLCBpdCBpcyBub3QgYSBOYXRpdmUgcGF0aAogICAgIC8vIG9uIHdpbmRvd3MuICBBbHNvLCBp
dCBtdXN0IGhhdmUgYSBjb2xvbiBhdCBhZnRlciB0aGUgZmlyc3QgY2hhci4KIAotICAgIGNoYXIg
KnBhdGggPSBuc251bGw7CisgICAgVENIQVIgKnBhdGggPSBuc251bGw7CiAgICAgUFJJbnQzMiBw
YXRoTGVuID0gMDsKIAogICAgIGlmICggKCAoc2Vjb25kQ2hhciA9PSAnOicpICYmICFGaW5kQ2hh
ckluUmVhZGFibGUoJy8nLCBiZWdpbiwgZW5kKSApIHx8ICAvLyBub3JtYWwgcGF0aAogI2lmZGVm
IFdJTkNFCiAgICAgICAgICAoIChmaXJzdENoYXIgPT0gJ1xcJykgKSAgIC8vIHdpbmNlIGFic29s
dXRlIHBhdGggb3IgbmV0d29yayBwYXRoCiAjZWxzZQogICAgICAgICAgKCAoZmlyc3RDaGFyID09
ICdcXCcpICYmIChzZWNvbmRDaGFyID09ICdcXCcpICkgICAvLyBuZXR3b3JrIHBhdGgKICNlbmRp
ZgogICAgICAgICAgKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyBhIG5hdGl2ZSBwYXRoCi0g
ICAgICAgIHBhdGggPSBUb05ld0NTdHJpbmcoZmlsZVBhdGgpOworICAgICAgICBwYXRoID0gVG9O
ZXdXVFN0cmluZyhmaWxlUGF0aCk7CiAgICAgICAgIHBhdGhMZW4gPSBmaWxlUGF0aC5MZW5ndGgo
KTsKICAgICB9CiAKICAgICBpZiAocGF0aCA9PSBuc251bGwpIHsKICAgICAgICAgcmV0dXJuIE5T
X0VSUk9SX0ZJTEVfVU5SRUNPR05JWkVEX1BBVEg7CiAgICAgfQogCiAgICAgLy8ga2lsbCBhbnkg
dHJhaWxpbmcgJ1wnIHByb3ZpZGVkIGl0IGlzbid0IHRoZSBzZWNvbmQgY2hhciBvZiBEQkNTCiAg
ICAgUFJJbnQzMiBsZW4gPSBwYXRoTGVuIC0gMTsKLSAgICBpZiAocGF0aFtsZW5dID09ICdcXCcg
JiYKKyAgICBpZiAocGF0aFtsZW5dID09ICdcXCcKKyNpZm5kZWYgX1VOSUNPREUKKyAgICAgICAg
JiYKICAgICAgICAgKCE6OklzREJDU0xlYWRCeXRlKHBhdGhbbGVuLTFdKSB8fAotICAgICAgICAg
X21ic3JjaHIoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilwYXRoLCAnXFwnKSA9PSAoY29uc3QgdW5z
aWduZWQgY2hhciAqKXBhdGgrbGVuKSkKKyAgICAgICAgIF9tYnNyY2hyKChjb25zdCB1bnNpZ25l
ZCBjaGFyICopcGF0aCwgJ1xcJykgPT0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilwYXRoK2xlbikK
KyNlbmRpZgorICAgICAgICApCiAgICAgewogICAgICAgICBwYXRoW2xlbl0gPSAnXDAnOwogICAg
ICAgICBwYXRoTGVuID0gbGVuOwogICAgIH0KIAogICAgIG1Xb3JraW5nUGF0aC5BZG9wdChwYXRo
LCBwYXRoTGVuKTsKICAgICByZXR1cm4gTlNfT0s7CiB9CiAKKyNpZmRlZiBfVU5JQ09ERQorTlNf
SU1FVEhPRElNUAorbnNMb2NhbEZpbGU6OkluaXRXaXRoTmF0aXZlUGF0aChjb25zdCBuc0FDU3Ry
aW5nICZmaWxlUGF0aCkKK3sKKyAgICBuc0F1dG9TdHJpbmcgdG1wOworICAgIG5zcmVzdWx0IHJ2
ID0gTlNfQ29weU5hdGl2ZVRvVW5pY29kZShmaWxlUGF0aCwgdG1wKTsKKyAgICBpZiAoTlNfU1VD
Q0VFREVEKHJ2KSkKKyAgICAgICAgcmV0dXJuIEluaXRXaXRoUGF0aCh0bXApOworCisgICAgcmV0
dXJuIHJ2OworfQorI2Vsc2UKK05TX0lNRVRIT0RJTVAKK25zTG9jYWxGaWxlOjpJbml0V2l0aFBh
dGgoY29uc3QgbnNBU3RyaW5nICZmaWxlUGF0aCkKK3sKKyAgICBuc0NBdXRvU3RyaW5nIHRtcDsK
KyAgICBuc3Jlc3VsdCBydiA9IE5TX0NvcHlVbmljb2RlVG9OYXRpdmUoZmlsZVBhdGgsIHRtcCk7
CisgICAgaWYgKE5TX1NVQ0NFRURFRChydikpCisgICAgICAgIHJldHVybiBJbml0V2l0aE5hdGl2
ZVBhdGgodG1wKTsKKworICAgIHJldHVybiBydjsKK30KKyNlbmRpZgorCiBOU19JTUVUSE9ESU1Q
CiBuc0xvY2FsRmlsZTo6T3Blbk5TUFJGaWxlRGVzYyhQUkludDMyIGZsYWdzLCBQUkludDMyIG1v
ZGUsIFBSRmlsZURlc2MgKipfcmV0dmFsKQogewogICAgIG5zcmVzdWx0IHJ2ID0gUmVzb2x2ZUFu
ZFN0YXQoKTsKICAgICBpZiAoTlNfRkFJTEVEKHJ2KSAmJiBydiAhPSBOU19FUlJPUl9GSUxFX05P
VF9GT1VORCkKICAgICAgICAgcmV0dXJuIHJ2OwogCi0gICAgKl9yZXR2YWwgPSBQUl9PcGVuKG1S
ZXNvbHZlZFBhdGguZ2V0KCksIGZsYWdzLCBtb2RlKTsKKyNpZmRlZiBfVU5JQ09ERQorICAgIC8v
IFhYWGJzbWVkYmVyZzogVGhpcyBpcyB0aGUgY3J1eCBvZiB0aGUgcHJvYmxlbSEKKyAgICBuc0NB
dXRvU3RyaW5nIG5hdGl2ZVJlc29sdmVkOworICAgIE5TX0NvcHlVbmljb2RlVG9OYXRpdmUobVJl
c29sdmVkUGF0aCwgbmF0aXZlUmVzb2x2ZWQpOworI2Vsc2UKKyAgICBuc0NTdHJpbmcmIG5hdGl2
ZVJlc29sdmVkID0gbVJlc29sdmVkUGF0aDsKKyNlbmRpZgorCisgICAgKl9yZXR2YWwgPSBQUl9P
cGVuKG5hdGl2ZVJlc29sdmVkLmdldCgpLCBmbGFncywgbW9kZSk7CiAgICAgaWYgKCpfcmV0dmFs
KQogICAgICAgICByZXR1cm4gTlNfT0s7CiAKICAgICByZXR1cm4gTlNfRXJyb3JBY2NvcmRpbmdU
b05TUFIoKTsKIH0KIAogCiBOU19JTUVUSE9ESU1QCiBuc0xvY2FsRmlsZTo6T3BlbkFOU0lGaWxl
RGVzYyhjb25zdCBjaGFyICptb2RlLCBGSUxFICogKl9yZXR2YWwpCiB7CiAgICAgbnNyZXN1bHQg
cnYgPSBSZXNvbHZlQW5kU3RhdCgpOwogICAgIGlmIChOU19GQUlMRUQocnYpICYmIHJ2ICE9IE5T
X0VSUk9SX0ZJTEVfTk9UX0ZPVU5EKQogICAgICAgICByZXR1cm4gcnY7CiAKLSAgICAqX3JldHZh
bCA9IGZvcGVuKG1SZXNvbHZlZFBhdGguZ2V0KCksIG1vZGUpOworI2lmZGVmIF9VTklDT0RFCisg
ICAgTlNfQ29udmVydFVURjh0b1VURjE2IG1vZGVzdHIobW9kZSk7CisgICAgY29uc3QgVENIQVIg
Km1vZGVwID0gbW9kZXN0ci5nZXQoKTsKKyNlbHNlCisgICAgY29uc3QgY2hhciAqbW9kZXAgPSBt
b2RlOworI2VuZGlmCisKKyAgICAqX3JldHZhbCA9IF90Zm9wZW4obVJlc29sdmVkUGF0aC5nZXQo
KSwgbW9kZXApOwogICAgIGlmICgqX3JldHZhbCkKICAgICAgICAgcmV0dXJuIE5TX09LOwogCiAg
ICAgcmV0dXJuIE5TX0VSUk9SX0ZBSUxVUkU7CiB9CiAKIAogCiBOU19JTUVUSE9ESU1QCiBuc0xv
Y2FsRmlsZTo6Q3JlYXRlKFBSVWludDMyIHR5cGUsIFBSVWludDMyIGF0dHJpYnV0ZXMpCiB7CiAg
ICAgaWYgKHR5cGUgIT0gTk9STUFMX0ZJTEVfVFlQRSAmJiB0eXBlICE9IERJUkVDVE9SWV9UWVBF
KQpAQCAtNzI5LDEyNiArNzgyLDE4NyBAQCBuc0xvY2FsRmlsZTo6Q3JlYXRlKFBSVWludDMyIHR5
cGUsIFBSVWluCiAgICAgdW5zaWduZWQgY2hhciogc2xhc2ggPSBfbWJzY2hyKHBhdGgsICdcXCcp
OwogCiAgICAgaWYgKHNsYXNoKQogICAgIHsKICAgICAgICAgLy8gc2tpcCB0aGUgZmlyc3QgJ1xc
JwogICAgICAgICArK3NsYXNoOwogICAgICAgICBzbGFzaCA9IF9tYnNjaHIoc2xhc2gsICdcXCcp
OwogCiAgICAgICAgIHdoaWxlIChzbGFzaCkKICAgICAgICAgewogICAgICAgICAgICAgKnNsYXNo
ID0gJ1wwJzsKIAotICAgICAgICAgICAgaWYgKCFDcmVhdGVEaXJlY3RvcnlBKG1SZXNvbHZlZFBh
dGguZ2V0KCksIE5VTEwpKSB7CisgICAgICAgICAgICBpZiAoIUNyZWF0ZURpcmVjdG9yeShtUmVz
b2x2ZWRQYXRoLmdldCgpLCBOVUxMKSkgewogICAgICAgICAgICAgICAgIHJ2ID0gQ29udmVydFdp
bkVycm9yKEdldExhc3RFcnJvcigpKTsKICAgICAgICAgICAgICAgICAvLyBwZXJoYXBzIHRoZSBi
YXNlIHBhdGggYWxyZWFkeSBleGlzdHMsIG9yIHBlcmhhcHMgd2UgZG9uJ3QgaGF2ZQogICAgICAg
ICAgICAgICAgIC8vIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5LiAgTk9URTog
YWNjZXNzIGRlbmllZCBjb3VsZAogICAgICAgICAgICAgICAgIC8vIG9jY3VyIG9uIGEgcGFyZW50
IGRpcmVjdG9yeSBldmVuIHRob3VnaCBpdCBleGlzdHMuCiAgICAgICAgICAgICAgICAgaWYgKHJ2
ICE9IE5TX0VSUk9SX0ZJTEVfQUxSRUFEWV9FWElTVFMgJiYKICAgICAgICAgICAgICAgICAgICAg
cnYgIT0gTlNfRVJST1JfRklMRV9BQ0NFU1NfREVOSUVEKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcnY7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAqc2xhc2ggPSAnXFwnOwogICAg
ICAgICAgICAgKytzbGFzaDsKICAgICAgICAgICAgIHNsYXNoID0gX21ic2NocihzbGFzaCwgJ1xc
Jyk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodHlwZSA9PSBOT1JNQUxfRklMRV9UWVBF
KQogICAgIHsKLSAgICAgICAgUFJGaWxlRGVzYyogZmlsZSA9IFBSX09wZW4obVJlc29sdmVkUGF0
aC5nZXQoKSwgUFJfUkRPTkxZIHwgUFJfQ1JFQVRFX0ZJTEUgfCBQUl9BUFBFTkQgfCBQUl9FWENM
LCBhdHRyaWJ1dGVzKTsKLSAgICAgICAgaWYgKCFmaWxlKSByZXR1cm4gTlNfRVJST1JfRklMRV9B
TFJFQURZX0VYSVNUUzsKKyAgICAgICAgSEFORExFIG5ld0ZpbGUgPSBDcmVhdGVGaWxlKG1SZXNv
bHZlZFBhdGguZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRU5F
UklDX1dSSVRFLCAwLCBOVUxMLCBDUkVBVEVfTkVXLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRklMRV9BVFRSSUJVVEVfTk9STUFMLCBOVUxMKTsKKyAgICAgICAgaWYgKCFu
ZXdGaWxlKQorICAgICAgICAgICAgcmV0dXJuIENvbnZlcnRXaW5FcnJvcihHZXRMYXN0RXJyb3Io
KSk7CiAKLSAgICAgICAgUFJfQ2xvc2UoZmlsZSk7CisgICAgICAgIENsb3NlSGFuZGxlKG5ld0Zp
bGUpOwogICAgICAgICByZXR1cm4gTlNfT0s7CiAgICAgfQogCiAgICAgaWYgKHR5cGUgPT0gRElS
RUNUT1JZX1RZUEUpCiAgICAgewotICAgICAgICBpZiAoIUNyZWF0ZURpcmVjdG9yeUEobVJlc29s
dmVkUGF0aC5nZXQoKSwgTlVMTCkpCisgICAgICAgIGlmICghQ3JlYXRlRGlyZWN0b3J5KG1SZXNv
bHZlZFBhdGguZ2V0KCksIE5VTEwpKQogICAgICAgICAgICAgcmV0dXJuIENvbnZlcnRXaW5FcnJv
cihHZXRMYXN0RXJyb3IoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBOU19P
SzsKKworICAgICAgICByZXR1cm4gTlNfT0s7CiAgICAgfQogCiAgICAgcmV0dXJuIE5TX0VSUk9S
X0ZJTEVfVU5LTk9XTl9UWVBFOwogfQogCituc3Jlc3VsdAorbnNMb2NhbEZpbGU6OkFwcGVuZChj
b25zdCBuc0FTdHJpbmcgJm5vZGUpCit7CisjaWZkZWYgX1VOSUNPREUKKyAgICByZXR1cm4gQXBw
ZW5kSW50ZXJuYWwoUHJvbWlzZUZsYXRTdHJpbmcobm9kZSksIFBSX0ZBTFNFKTsKKyNlbHNlCisg
ICAgbnNDQXV0b1N0cmluZyB0bXA7CisgICAgbnNyZXN1bHQgcnYgPSBOU19Db3B5VW5pY29kZVRv
TmF0aXZlKG5vZGUsIHRtcCk7CisgICAgaWYgKE5TX0ZBSUxFRChydikpCisgICAgICAgIHJldHVy
biBydjsKKworICAgIHJldHVybiBBcHBlbmRJbnRlcm5hbCh0bXAsIFBSX0ZBTFNFKTsKKyNlbmRp
ZgorfQorCiBOU19JTUVUSE9ESU1QCiBuc0xvY2FsRmlsZTo6QXBwZW5kTmF0aXZlKGNvbnN0IG5z
QUNTdHJpbmcgJm5vZGUpCiB7CiAgICAgLy8gYXBwZW5kIHRoaXMgcGF0aCwgbXVsdGlwbGUgY29t
cG9uZW50cyBhcmUgbm90IHBlcm1pdHRlZAotICAgIHJldHVybiBBcHBlbmROYXRpdmVJbnRlcm5h
bChQcm9taXNlRmxhdENTdHJpbmcobm9kZSksIFBSX0ZBTFNFKTsKKyNpZmRlZiBfVU5JQ09ERQor
ICAgIG5zQXV0b1N0cmluZyB0bXA7CisgICAgbnNyZXN1bHQgcnYgPSBOU19Db3B5TmF0aXZlVG9V
bmljb2RlKG5vZGUsIHRtcCk7CisgICAgaWYgKE5TX0ZBSUxFRChydikpCisgICAgICAgIHJldHVy
biBydjsKKworICAgIHJldHVybiBBcHBlbmRJbnRlcm5hbCh0bXAsIFBSX0ZBTFNFKTsKKyNlbHNl
CisgICAgcmV0dXJuIEFwcGVuZEludGVybmFsKFByb21pc2VGbGF0Q1N0cmluZyhub2RlKSwgUFJf
RkFMU0UpOworI2VuZGlmCit9CisKK25zcmVzdWx0Cituc0xvY2FsRmlsZTo6QXBwZW5kUmVsYXRp
dmVQYXRoKGNvbnN0IG5zQVN0cmluZyAmbm9kZSkKK3sKKyNpZmRlZiBfVU5JQ09ERQorICAgIHJl
dHVybiBBcHBlbmRJbnRlcm5hbChQcm9taXNlRmxhdFN0cmluZyhub2RlKSwgUFJfVFJVRSk7Cisj
ZWxzZQorICAgIG5zQ0F1dG9TdHJpbmcgdG1wOworICAgIG5zcmVzdWx0IHJ2ID0gTlNfQ29weVVu
aWNvZGVUb05hdGl2ZShub2RlLCB0bXApOworICAgIGlmIChOU19GQUlMRUQocnYpKQorICAgICAg
ICByZXR1cm4gcnY7CisKKyAgICByZXR1cm4gQXBwZW5kSW50ZXJuYWwodG1wLCBQUl9UUlVFKTsK
KyNlbmRpZgogfQogCiBOU19JTUVUSE9ESU1QCiBuc0xvY2FsRmlsZTo6QXBwZW5kUmVsYXRpdmVO
YXRpdmVQYXRoKGNvbnN0IG5zQUNTdHJpbmcgJm5vZGUpCiB7CiAgICAgLy8gYXBwZW5kIHRoaXMg
cGF0aCwgbXVsdGlwbGUgY29tcG9uZW50cyBhcmUgcGVybWl0dGVkCi0gICAgcmV0dXJuIEFwcGVu
ZE5hdGl2ZUludGVybmFsKFByb21pc2VGbGF0Q1N0cmluZyhub2RlKSwgUFJfVFJVRSk7CisjaWZk
ZWYgX1VOSUNPREUKKyAgICBuc0F1dG9TdHJpbmcgdG1wOworICAgIG5zcmVzdWx0IHJ2ID0gTlNf
Q29weU5hdGl2ZVRvVW5pY29kZShub2RlLCB0bXApOworICAgIGlmIChOU19GQUlMRUQocnYpKQor
ICAgICAgICByZXR1cm4gcnY7CisKKyAgICByZXR1cm4gQXBwZW5kSW50ZXJuYWwodG1wLCBQUl9U
UlVFKTsKKyNlbHNlCisgICAgcmV0dXJuIEFwcGVuZEludGVybmFsKFByb21pc2VGbGF0Q1N0cmlu
Zyhub2RlKSwgUFJfVFJVRSk7CisjZW5kaWYKIH0KIAogbnNyZXN1bHQKLW5zTG9jYWxGaWxlOjpB
cHBlbmROYXRpdmVJbnRlcm5hbChjb25zdCBuc0FGbGF0Q1N0cmluZyAmbm9kZSwgUFJCb29sIG11
bHRpcGxlQ29tcG9uZW50cykKK25zTG9jYWxGaWxlOjpBcHBlbmRJbnRlcm5hbChjb25zdCBuc0FG
bGF0V1RTdHJpbmcgJm5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJCb29sIG11
bHRpcGxlQ29tcG9uZW50cykKIHsKICAgICBpZiAobm9kZS5Jc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBOU19PSzsKIAogICAgIC8vIGNoZWNrIHRoZSByZWxhdGl2ZSBwYXRoIGZvciB2YWxpZGl0
eQotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBub2RlUGF0aCA9IChjb25zdCB1bnNpZ25lZCBj
aGFyICopIG5vZGUuZ2V0KCk7CisgICAgY29uc3QgVENIQVIgKiBub2RlUGF0aCA9IChjb25zdCBU
Q0hBUiAqKSBub2RlLmdldCgpOwogICAgIGlmICgqbm9kZVBhdGggPT0gJ1xcJyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbid0IHN0YXJ0IHdpdGggYW4gJ1wnCi0g
ICAgICAgIHx8IF9tYnNjaHIobm9kZVBhdGgsICcvJykgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gY2FuJ3QgY29udGFpbiAvCi0gICAgICAgIHx8IG5vZGUuRXF1YWxzKCIuLiIpKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FuJ3QgYmUgLi4KKyAgICAgICAg
fHwgd3RzdHJjaHIoU0FGRV9NQkNBU1Qobm9kZVBhdGgpLCAnLycpICAgICAgICAgICAgICAgICAv
LyBjYW4ndCBjb250YWluIC8KKyAgICAgICAgfHwgbm9kZS5FcXVhbHNMaXRlcmFsKCIuLiIpKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4ndCBiZSAuLgogICAgICAgICByZXR1cm4g
TlNfRVJST1JfRklMRV9VTlJFQ09HTklaRURfUEFUSDsKIAogI2lmbmRlZiBXSU5DRSAgLy8gd2hv
IGNhcmVzPwogICAgIGlmIChtdWx0aXBsZUNvbXBvbmVudHMpCiAgICAgewogICAgICAgICAvLyBj
YW4ndCBjb250YWluIC4uIGFzIGEgcGF0aCBjb21wb25lbnQuIEVuc3VyZSB0aGF0IHRoZSB2YWxp
ZCBjb21wb25lbnRzIAogICAgICAgICAvLyAiZm9vLi5mb28iLCAiLi5mb28iLCBhbmQgImZvby4u
IiBhcmUgbm90IGZhbHNlbHkgZGV0ZWN0ZWQsIGJ1dCB0aGUgaW52YWxpZAogICAgICAgICAvLyBw
YXRocyAiLi5cIiwgImZvb1wuLiIsICJmb29cLi5cZm9vIiwgIi4uXGZvbyIsIGV0YyBhcmUuCi0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBkb3VibGVEb3QgPSBfbWJzc3RyKG5vZGVQYXRo
LCAoY29uc3QgdW5zaWduZWQgY2hhciAqKSJcXC4uIik7CisgICAgICAgIGNvbnN0IFRDSEFSICog
ZG91YmxlRG90ID0gU0FGRV9UQ0FTVCh3dHN0cnN0cihTQUZFX01CQ0FTVChub2RlUGF0aCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQUZF
X01CQ0FTVChfVCgiXFwuLiIpKSkpOwogICAgICAgICB3aGlsZSAoZG91YmxlRG90KQogICAgICAg
ICB7CiAgICAgICAgICAgICBkb3VibGVEb3QgKz0gMzsKICAgICAgICAgICAgIGlmICgqZG91Ymxl
RG90ID09ICdcMCcgfHwgKmRvdWJsZURvdCA9PSAnXFwnKQogICAgICAgICAgICAgICAgIHJldHVy
biBOU19FUlJPUl9GSUxFX1VOUkVDT0dOSVpFRF9QQVRIOwotICAgICAgICAgICAgZG91YmxlRG90
ID0gX21ic3N0cihkb3VibGVEb3QsICh1bnNpZ25lZCBjaGFyICopIlxcLi4iKTsKKyAgICAgICAg
ICAgIGRvdWJsZURvdCA9IFNBRkVfVENBU1Qod3RzdHJzdHIoU0FGRV9NQkNBU1QoZG91YmxlRG90
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0FGRV9NQkNB
U1QoX1QoIlxcLi4iKSkpKTsKICAgICAgICAgfQotICAgICAgICBpZiAoMCA9PSBfbWJzbmNtcChu
b2RlUGF0aCwgKHVuc2lnbmVkIGNoYXIgKikiLi5cXCIsIDMpKSAgLy8gY2F0Y2hlcyB0aGUgcmVt
YWluaW5nIGNhc2VzIG9mIHByZWZpeGVzIAorICAgICAgICBpZiAoMCA9PSB3dHN0cm5jbXAoU0FG
RV9NQkNBU1Qobm9kZVBhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU0FGRV9NQkNB
U1QoX1QoIi4uXFwiKSksIDMpKQorICAgICAgICAgICAgLy8gY2F0Y2hlcyB0aGUgcmVtYWluaW5n
IGNhc2VzIG9mIHByZWZpeGVzIAogICAgICAgICAgICAgcmV0dXJuIE5TX0VSUk9SX0ZJTEVfVU5S
RUNPR05JWkVEX1BBVEg7CiAgICAgfQotICAgIGVsc2UgaWYgKF9tYnNjaHIobm9kZVBhdGgsICdc
XCcpKSAgIC8vIHNpbmdsZSBjb21wb25lbnRzIGNhbid0IGNvbnRhaW4gJ1wnCisgICAgZWxzZSBp
ZiAod3RzdHJjaHIoU0FGRV9NQkNBU1Qobm9kZVBhdGgpLCAnXFwnKSkgICAvLyBzaW5nbGUgY29t
cG9uZW50cyBjYW4ndCBjb250YWluICdcJwogICAgICAgICByZXR1cm4gTlNfRVJST1JfRklMRV9V
TlJFQ09HTklaRURfUEFUSDsKICNlbmRpZgogCiAgICAgTWFrZURpcnR5KCk7Ci0gICAgCi0gICAg
bVdvcmtpbmdQYXRoLkFwcGVuZChOU19MSVRFUkFMX0NTVFJJTkcoIlxcIikgKyBub2RlKTsKKwor
ICAgIG1Xb3JraW5nUGF0aC5BcHBlbmQoJ1xcJyk7CisgICAgbVdvcmtpbmdQYXRoLkFwcGVuZChu
b2RlKTsKICAgICAKICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIE5TX0lNRVRIT0RJTVAKIG5zTG9j
YWxGaWxlOjpOb3JtYWxpemUoKQogewogI2lmbmRlZiBXSU5DRQogICAgIC8vIFhYWCBTZWUgYnVn
IDE4Nzk1NyBjb21tZW50IDE4IGZvciBwb3NzaWJsZSBwcm9ibGVtcyB3aXRoIHRoaXMgaW1wbGVt
ZW50YXRpb24uCiAgICAgCiAgICAgaWYgKG1Xb3JraW5nUGF0aC5Jc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBOU19PSzsKIAorI2lmZGVmIF9VTklDT0RFCisgICAgbnNTdHJpbmcmIHBhdGggPSBt
V29ya2luZ1BhdGg7CisjZWxzZQogICAgIC8vIHdvcmsgaW4gdW5pY29kZSBmb3IgZWFzZQogICAg
IG5zQXV0b1N0cmluZyBwYXRoOwogICAgIE5TX0NvcHlOYXRpdmVUb1VuaWNvZGUobVdvcmtpbmdQ
YXRoLCBwYXRoKTsKKyNlbmRpZgogCiAgICAgLy8gZmluZCB0aGUgaW5kZXggb2YgdGhlIHJvb3Qg
YmFja3NsYXNoIGZvciB0aGUgcGF0aC4gRXZlcnl0aGluZyBiZWZvcmUgCiAgICAgLy8gdGhpcyBp
cyBjb25zaWRlcmVkIGZ1bGx5IG5vcm1hbGl6ZWQgYW5kIGNhbm5vdCBiZSBhc2NlbmRlZCBiZXlv
bmQgCiAgICAgLy8gdXNpbmcgIi4uIiAgRm9yIGEgbG9jYWwgZHJpdmUgdGhpcyBpcyB0aGUgZmly
c3Qgc2xhc2ggKGUuZy4gImM6XCIpLgogICAgIC8vIEZvciBhIFVOQyBwYXRoIGl0IGlzIHRoZSBz
bGFzaCBmb2xsb3dpbmcgdGhlIHNoYXJlIG5hbWUgCiAgICAgLy8gKGUuZy4gIlxcc2VydmVyXHNo
YXJlXCIpLgogICAgIFBSSW50MzIgcm9vdElkeCA9IDI7ICAgICAgICAvLyBkZWZhdWx0IHRvIGxv
Y2FsIGRyaXZlCiAgICAgaWYgKHBhdGguRmlyc3QoKSA9PSAnXFwnKSAgIC8vIGlmIGEgc2hhcmUg
dGhlbiBjYWxjdWxhdGUgdGhlIHJvb3RJZHgKICAgICB7CiAgICAgICAgIHJvb3RJZHggPSBwYXRo
LkZpbmRDaGFyKCdcXCcsIDIpOyAgIC8vIHNraXAgXFwgaW4gZnJvbnQgb2YgdGhlIHNlcnZlciAK
ICAgICAgICAgaWYgKHJvb3RJZHggPT0ga05vdEZvdW5kKQogICAgICAgICAgICAgcmV0dXJuIE5T
X09LOyAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IG5vcm1hbGl6ZWQKQEAgLTk1OCwyNjAg
KzEwNzIsMzQyIEBAIG5zTG9jYWxGaWxlOjpOb3JtYWxpemUoKQogCiAgICAgICAgIC8vIGFkZCB0
aGUgY3VycmVudCBjb21wb25lbnQgdG8gdGhlIHBhdGgsIGluY2x1ZGluZyB0aGUgcHJlY2VkaW5n
IGJhY2tzbGFzaAogICAgICAgICBub3JtYWwuQXBwZW5kKHBhdGhCdWZmZXIgKyBiZWdpbiAtIDEs
IGxlbiArIDEpOwogICAgIH0KIAogICAgIC8vIGtpbGwgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2Vz
LgogICAgIFBSSW50MzIgZmlsZVBhdGhMZW4gPSBub3JtYWwuTGVuZ3RoKCkgLSAxOwogICAgIHdo
aWxlKGZpbGVQYXRoTGVuID4gMCAmJiAobm9ybWFsW2ZpbGVQYXRoTGVuXSA9PSAnICcgfHwgbm9y
bWFsW2ZpbGVQYXRoTGVuXSA9PSAnLicpKQogICAgIHsKICAgICAgICAgbm9ybWFsLlRydW5jYXRl
KGZpbGVQYXRoTGVuLS0pOwogICAgIH0gCiAKKyNpZm5kZWYgX1VOSUNPREUKICAgICBOU19Db3B5
VW5pY29kZVRvTmF0aXZlKG5vcm1hbCwgbVdvcmtpbmdQYXRoKTsKKyNlbmRpZgorCiAgICAgTWFr
ZURpcnR5KCk7CiAjZWxzZSAvLyBXSU5DRQogICAgIC8vIFdJTkNFIEZJWAogI2VuZGlmIAogICAg
IHJldHVybiBOU19PSzsKIH0KIAogTlNfSU1FVEhPRElNUAorI2lmZGVmIF9VTklDT0RFCituc0xv
Y2FsRmlsZTo6R2V0TGVhZk5hbWUobnNBU3RyaW5nICZhTGVhZk5hbWUpCisjZWxzZQogbnNMb2Nh
bEZpbGU6OkdldE5hdGl2ZUxlYWZOYW1lKG5zQUNTdHJpbmcgJmFMZWFmTmFtZSkKKyNlbmRpZgog
ewotICAgIGFMZWFmTmFtZS5UcnVuY2F0ZSgpOwotCi0gICAgY29uc3QgY2hhciogdGVtcCA9IG1X
b3JraW5nUGF0aC5nZXQoKTsKLSAgICBpZih0ZW1wID09IG5zbnVsbCkKKyAgICBpZiAobVdvcmtp
bmdQYXRoLkxlbmd0aCgpID09IDApCiAgICAgICAgIHJldHVybiBOU19FUlJPUl9GSUxFX1VOUkVD
T0dOSVpFRF9QQVRIOwogCi0gICAgY29uc3QgY2hhciogbGVhZiA9IChjb25zdCBjaGFyKikgX21i
c3JjaHIoKGNvbnN0IHVuc2lnbmVkIGNoYXIqKSB0ZW1wLCAnXFwnKTsKLQotICAgIC8vIGlmIHRo
ZSB3b3JraW5nIHBhdGggaXMganVzdCBhIG5vZGUgd2l0aG91dCBhbnkgbGFzaGVzLgotICAgIGlm
IChsZWFmID09IG5zbnVsbCkKLSAgICAgICAgbGVhZiA9IHRlbXA7CisgICAgUFJJbnQzMiBsZWFm
ID0gbVdvcmtpbmdQYXRoLlJGaW5kQ2hhcignXFwnKTsKKyAgICBpZiAobGVhZiA9PSBrTm90Rm91
bmQpCisgICAgICAgIGFMZWFmTmFtZS5Bc3NpZ24obVdvcmtpbmdQYXRoKTsKICAgICBlbHNlCi0g
ICAgICAgIGxlYWYrKzsKKyAgICAgICAgYUxlYWZOYW1lLkFzc2lnbihTdWJzdHJpbmcobVdvcmtp
bmdQYXRoLCBsZWFmICsgMSkpOwogCi0gICAgYUxlYWZOYW1lLkFzc2lnbihsZWFmKTsKICAgICBy
ZXR1cm4gTlNfT0s7CiB9CiAKKyNpZmRlZiBfVU5JQ09ERQorTlNfSU1FVEhPRElNUAorbnNMb2Nh
bEZpbGU6OkdldE5hdGl2ZUxlYWZOYW1lKG5zQUNTdHJpbmcgJmFMZWFmTmFtZSkKK3sKKyAgICBu
c0F1dG9TdHJpbmcgdG1wOworICAgIG5zcmVzdWx0IHJ2ID0gR2V0TGVhZk5hbWUodG1wKTsKKyAg
ICBpZiAoTlNfU1VDQ0VFREVEKHJ2KSkKKyAgICAgICAgcnYgPSBOU19Db3B5VW5pY29kZVRvTmF0
aXZlKHRtcCwgYUxlYWZOYW1lKTsKKworICAgIHJldHVybiBydjsKK30KKyNlbHNlCiBOU19JTUVU
SE9ESU1QCituc0xvY2FsRmlsZTo6R2V0TGVhZk5hbWUobnNBU3RyaW5nICZhTGVhZk5hbWUpCit7
CisgICAgbnNDQXV0b1N0cmluZyB0bXA7CisgICAgbnNyZXN1bHQgcnYgPSBHZXROYXRpdmVMZWFm
TmFtZSh0bXApOworICAgIGlmIChOU19TVUNDRUVERUQocnYpKQorICAgICAgICBydiA9IE5TX0Nv
cHlOYXRpdmVUb1VuaWNvZGUodG1wLCBhTGVhZk5hbWUpOworCisgICAgcmV0dXJuIHJ2OworfQor
I2VuZGlmCisKK05TX0lNRVRIT0RJTVAKKyNpZmRlZiBfVU5JQ09ERQorbnNMb2NhbEZpbGU6OlNl
dExlYWZOYW1lKGNvbnN0IG5zQVN0cmluZyAmYUxlYWZOYW1lKQorI2Vsc2UKIG5zTG9jYWxGaWxl
OjpTZXROYXRpdmVMZWFmTmFtZShjb25zdCBuc0FDU3RyaW5nICZhTGVhZk5hbWUpCisjZW5kaWYK
IHsKICAgICBNYWtlRGlydHkoKTsKIAotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHRlbXAgPSAo
Y29uc3QgdW5zaWduZWQgY2hhciopIG1Xb3JraW5nUGF0aC5nZXQoKTsKKyAgICBjb25zdCBUQ0hB
UiogdGVtcCA9IG1Xb3JraW5nUGF0aC5nZXQoKTsKICAgICBpZih0ZW1wID09IG5zbnVsbCkKICAg
ICAgICAgcmV0dXJuIE5TX0VSUk9SX0ZJTEVfVU5SRUNPR05JWkVEX1BBVEg7CiAKICAgICAvLyBj
YW5ub3QgdXNlIG5zQ1N0cmluZzo6UkZpbmRDaGFyKCkgZHVlIHRvIDB4NWMgcHJvYmxlbQotICAg
IFBSSW50MzIgb2Zmc2V0ID0gKFBSSW50MzIpIChfbWJzcmNocih0ZW1wLCAnXFwnKSAtIHRlbXAp
OworICAgIFBSSW50MzIgb2Zmc2V0ID0gKFBSSW50MzIpCisgICAgICAgIChTQUZFX1RDQVNUKHd0
c3RycmNocihTQUZFX01CQ0FTVCh0ZW1wKSwgJ1xcJykpIC0gdGVtcCk7CiAgICAgaWYgKG9mZnNl
dCkKICAgICB7CiAgICAgICAgIG1Xb3JraW5nUGF0aC5UcnVuY2F0ZShvZmZzZXQrMSk7CiAgICAg
fQogICAgIG1Xb3JraW5nUGF0aC5BcHBlbmQoYUxlYWZOYW1lKTsKIAogICAgIHJldHVybiBOU19P
SzsKIH0KIAorI2lmZGVmIF9VTklDT0RFCitOU19JTUVUSE9ESU1QCituc0xvY2FsRmlsZTo6U2V0
TmF0aXZlTGVhZk5hbWUoY29uc3QgbnNBQ1N0cmluZyAmYUxlYWZOYW1lKQoreworICAgIG5zQXV0
b1N0cmluZyB0bXA7CisgICAgbnNyZXN1bHQgcnYgPSBOU19Db3B5TmF0aXZlVG9Vbmljb2RlKGFM
ZWFmTmFtZSwgdG1wKTsKKyAgICBpZiAoTlNfU1VDQ0VFREVEKHJ2KSkKKyAgICAgICAgcmV0dXJu
IFNldExlYWZOYW1lKHRtcCk7CisKKyAgICByZXR1cm4gcnY7Cit9CisjZWxzZQorTlNfSU1FVEhP
RElNUAorbnNMb2NhbEZpbGU6OlNldExlYWZOYW1lKGNvbnN0IG5zQVN0cmluZyAmYUxlYWZOYW1l
KQoreworICAgIG5zQ0F1dG9TdHJpbmcgdG1wOworICAgIG5zcmVzdWx0IHJ2ID0gTlNfQ29weVVu
aWNvZGVUb05hdGl2ZShhTGVhZk5hbWUsIHRtcCk7CisgICAgaWYgKE5TX1NVQ0NFRURFRChydikp
CisgICAgICAgIHJldHVybiBTZXROYXRpdmVMZWFmTmFtZSh0bXApOworCisgICAgcmV0dXJuIHJ2
OworfQorI2VuZGlmCisKK25zcmVzdWx0Cituc0xvY2FsRmlsZTo6R2V0UGF0aChuc0FTdHJpbmcg
Jl9yZXR2YWwpCit7CisjaWZkZWYgX1VOSUNPREUKKyAgICBfcmV0dmFsID0gbVdvcmtpbmdQYXRo
OworICAgIHJldHVybiBOU19PSzsKKyNlbHNlCisgICAgcmV0dXJuIE5TX0NvcHlOYXRpdmVUb1Vu
aWNvZGUobVdvcmtpbmdQYXRoLCBfcmV0dmFsKTsKKyNlbmRpZgorfQogCiBOU19JTUVUSE9ESU1Q
CiBuc0xvY2FsRmlsZTo6R2V0TmF0aXZlUGF0aChuc0FDU3RyaW5nICZfcmV0dmFsKQogeworI2lm
ZGVmIF9VTklDT0RFCisgICAgcmV0dXJuIE5TX0NvcHlVbmljb2RlVG9OYXRpdmUobVdvcmtpbmdQ
YXRoLCBfcmV0dmFsKTsKKyNlbHNlCiAgICAgX3JldHZhbCA9IG1Xb3JraW5nUGF0aDsKICAgICBy
ZXR1cm4gTlNfT0s7CisjZW5kaWYKIH0KIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFdPUkQgd0xh
bmd1YWdlOwogICAgIFdPUkQgd0NvZGVQYWdlOwogfSBMQU5HQU5EQ09ERVBBR0U7CiAKIE5TX0lN
RVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpHZXRWZXJzaW9uSW5mb0ZpZWxkKGNvbnN0IGNoYXIqIGFG
aWVsZCwgbnNBU3RyaW5nJiBfcmV0dmFsKQogewogICAgIG5zcmVzdWx0IHJ2ID0gUmVzb2x2ZUFu
ZFN0YXQoKTsKICAgICBpZiAoTlNfRkFJTEVEKHJ2KSkKICAgICAgICAgcmV0dXJuIHJ2OwogCiAg
ICAgcnYgPSBOU19FUlJPUl9GQUlMVVJFOwogCisjaWZkZWYgX1VOSUNPREUKKyAgICAgICAgICAg
ICAgICBOU19Db252ZXJ0VVRGOHRvVVRGMTYgZmllbGRzdHIoYUZpZWxkKTsKKyAgICAgICAgICAg
ICAgICBjb25zdCBUQ0hBUiogZmllbGQgPSBmaWVsZHN0ci5nZXQoKTsKKyNlbHNlCisgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogZmllbGQgPSBhRmllbGQ7CisjZW5kaWYKKwogICAgIC8vIENh
c3QgYXdheSBjb25zdC1uZXNzIGhlcmUgYmVjYXVzZSBXaW5BUEkgZnVuY3Rpb25zIGRvbid0IHVu
ZGVyc3RhbmQgaXQsIAogICAgIC8vIHRoZSBwYXRoIGlzIHVzZWQgZm9yIFtpbl0gcGFyYW1ldGVy
cyBvbmx5IGhvd2V2ZXIgc28gaXQncyBzYWZlLiAKLSAgICBjaGFyICpwYXRoID0gTlNfQ09OU1Rf
Q0FTVChjaGFyKiwgbUZvbGxvd1N5bWxpbmtzID8gbVJlc29sdmVkUGF0aC5nZXQoKSAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbVdvcmtp
bmdQYXRoLmdldCgpKTsKKyAgICBUQ0hBUiAqcGF0aCA9IE5TX0NPTlNUX0NBU1QoVENIQVIqLCBt
Rm9sbG93U3ltbGlua3MgPyBtUmVzb2x2ZWRQYXRoLmdldCgpIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG1Xb3JraW5nUGF0aC5nZXQo
KSk7CiAKICAgICAvLyBQZXIgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9saWJyYXJ5L2RlZmF1
bHQuYXNwP3VybD0vbGlicmFyeS9lbi11cy93aW51aS93aW51aS93aW5kb3dzdXNlcmludGVyZmFj
ZS9yZXNvdXJjZXMvdmVyc2lvbmluZm9ybWF0aW9uL3ZlcnNpb25pbmZvcm1hdGlvbnJlZmVyZW5j
ZS92ZXJzaW9uaW5mb3JtYXRpb25mdW5jdGlvbnMvZ2V0ZmlsZXZlcnNpb25pbmZvc2l6ZS5hc3AK
ICAgICAvLyBpZiB0aGUgInNob3J0IiB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBuYW1lIGlzID4gMTI1
IGNoYXJhY3RlcnMsIAogICAgIC8vIEdldEZpbGVWZXJzaW9uSW5mb1NpemUgd2lsbCBub3Qgd29y
ayAoZm9yIFdpbjl4IGNvbXBhdGliaWxpdHkpCi0gICAgY2hhciBzaG9ydFBhdGhbMTI2XTsKKyAg
ICBUQ0hBUiBzaG9ydFBhdGhbMTI2XTsKICAgICA6OkdldFNob3J0UGF0aE5hbWUocGF0aCwgc2hv
cnRQYXRoLCBzaXplb2Yoc2hvcnRQYXRoKSk7CiAKICAgICBEV09SRCBkdW1teTsKICAgICBEV09S
RCBzaXplID0gOjpHZXRGaWxlVmVyc2lvbkluZm9TaXplKHNob3J0UGF0aCwgJmR1bW15KTsKICAg
ICBpZiAoIXNpemUpCiAgICAgICAgIHJldHVybiBydjsKIAotICAgIHZvaWQqIHZlciA9IGNhbGxv
YyhzaXplLCAxKTsKKyAgICB2b2lkKiB2ZXIgPSBjYWxsb2Moc2l6ZSwgc2l6ZW9mKFRDSEFSKSk7
CiAgICAgaWYgKCF2ZXIpCiAgICAgICAgIHJldHVybiBOU19FUlJPUl9PVVRfT0ZfTUVNT1JZOwog
CiAgICAgaWYgKDo6R2V0RmlsZVZlcnNpb25JbmZvKHBhdGgsIDAsIHNpemUsIHZlcikpIAogICAg
IHsKICAgICAgICAgTEFOR0FORENPREVQQUdFKiB0cmFuc2xhdGUgPSBuc251bGw7CiAgICAgICAg
IFVJTlQgcGFnZUNvdW50OwotICAgICAgICBCT09MIHF1ZXJ5UmVzdWx0ID0gOjpWZXJRdWVyeVZh
bHVlKHZlciwgIlxcVmFyRmlsZUluZm9cXFRyYW5zbGF0aW9uIiwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKiopJnRyYW5zbGF0ZSwgJnBhZ2VDb3Vu
dCk7CisgICAgICAgIEJPT0wgcXVlcnlSZXN1bHQgPQorICAgICAgICAgICAgOjpWZXJRdWVyeVZh
bHVlKHZlciwgX1QoIlxcVmFyRmlsZUluZm9cXFRyYW5zbGF0aW9uIiksIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh2b2lkKiopJnRyYW5zbGF0ZSwgJnBhZ2VDb3VudCk7CiAgICAgICAg
IGlmIChxdWVyeVJlc3VsdCAmJiB0cmFuc2xhdGUpIAogICAgICAgICB7CiAgICAgICAgICAgICBm
b3IgKFBSSW50MzIgaSA9IDA7IGkgPCAyOyArK2kpIAotICAgICAgICAgICAgeyAKLSAgICAgICAg
ICAgICAgICBjaGFyIHN1YkJsb2NrW01BWF9QQVRIXTsKLSAgICAgICAgICAgICAgICBQUl9zbnBy
aW50ZihzdWJCbG9jaywgc2l6ZW9mKHN1YkJsb2NrKSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlxcU3RyaW5nRmlsZUluZm9cXCUwNHglMDR4XFwlcyIsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpID09IDAgPyB0cmFuc2xhdGVbMF0ud0xhbmd1YWdlIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiA6OkdldFVzZXJEZWZhdWx0TGFuZ0lEKCkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVswXS53Q29kZVBhZ2UsIGFGaWVs
ZCk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgVENIQVIgc3ViQmxvY2tbTUFYX1BB
VEhdOworICAgICAgICAgICAgICAgIF9zbnRwcmludGYoc3ViQmxvY2ssIE5TX0FSUkFZX0xFTkdU
SChzdWJCbG9jayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBfVCgiXFxTdHJpbmdGaWxl
SW5mb1xcJTA0eCUwNHhcXCVzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaSA9PSAw
ID8gdHJhbnNsYXRlWzBdLndMYW5ndWFnZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6
IDo6R2V0VXNlckRlZmF1bHRMYW5nSUQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0
cmFuc2xhdGVbMF0ud0NvZGVQYWdlLCBmaWVsZCk7CiAKICAgICAgICAgICAgICAgICBMUFZPSUQg
dmFsdWUgPSBuc251bGw7CiAgICAgICAgICAgICAgICAgVUlOVCBzaXplOwogICAgICAgICAgICAg
ICAgIHF1ZXJ5UmVzdWx0ID0gOjpWZXJRdWVyeVZhbHVlKHZlciwgc3ViQmxvY2ssICZ2YWx1ZSwg
JnNpemUpOwogICAgICAgICAgICAgICAgIGlmIChxdWVyeVJlc3VsdCAmJiB2YWx1ZSkKICAgICAg
ICAgICAgICAgICB7CisjaWZkZWYgX1VOSUNPREUKKyAgICAgICAgICAgICAgICAgICAgX3JldHZh
bCA9IG5zRGVwZW5kZW50U3RyaW5nKChjb25zdCBUQ0hBUiopIHZhbHVlKTsKKyNlbHNlCiAgICAg
ICAgICAgICAgICAgICAgIE5TX0NvcHlOYXRpdmVUb1VuaWNvZGUobnNEZXBlbmRlbnRDU3RyaW5n
KChjb25zdCBjaGFyKil2YWx1ZSksIF9yZXR2YWwpOworI2VuZGlmCiAgICAgICAgICAgICAgICAg
ICAgIGlmICghX3JldHZhbC5Jc0VtcHR5KCkpIAogICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBydiA9IE5TX09LOwogICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgZnJlZSh2ZXIpOwogICAgIAogICAgIHJldHVy
biBydjsKIH0KICAKIG5zcmVzdWx0Ci1uc0xvY2FsRmlsZTo6Q29weVNpbmdsZUZpbGUobnNJRmls
ZSAqc291cmNlRmlsZSwgbnNJRmlsZSAqZGVzdFBhcmVudCwgY29uc3QgbnNBQ1N0cmluZyAmbmV3
TmFtZSwgCituc0xvY2FsRmlsZTo6Q29weVNpbmdsZUZpbGUobnNJRmlsZSAqc291cmNlRmlsZSwg
bnNJRmlsZSAqZGVzdFBhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBu
c0FXVFN0cmluZyAmbmV3TmFtZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJCb29s
IGZvbGxvd1N5bWxpbmtzLCBQUkJvb2wgbW92ZSkKIHsKICAgICBuc3Jlc3VsdCBydjsKLSAgICBu
c0NBdXRvU3RyaW5nIGZpbGVQYXRoOworICAgIG5zV1RBdXRvU3RyaW5nIGZpbGVQYXRoOwogCiAg
ICAgLy8gZ2V0IHRoZSBwYXRoIHRoYXQgd2UgYXJlIGdvaW5nIHRvIGNvcHkgdG8uCiAgICAgLy8g
U2luY2Ugd2luZG93cyBkb2VzIG5vdCBrbm93IGhvdyB0byBhdXRvCiAgICAgLy8gcmVzb2x2ZSBz
aG9ydGN1dHMsIHdlIG11c3Qgd29yayB3aXRoIHRoZQogICAgIC8vIHRhcmdldC4KLSAgICBuc0NB
dXRvU3RyaW5nIGRlc3RQYXRoOwotICAgIGRlc3RQYXJlbnQtPkdldE5hdGl2ZVRhcmdldChkZXN0
UGF0aCk7CisgICAgbnNXVEF1dG9TdHJpbmcgZGVzdFBhdGg7CisgICAgZGVzdFBhcmVudC0+R2V0
VGFyZ2V0V1QoZGVzdFBhdGgpOwogCi0gICAgZGVzdFBhdGguQXBwZW5kKCJcXCIpOworICAgIGRl
c3RQYXRoLkFwcGVuZCgnXFwnKTsKIAogICAgIGlmIChuZXdOYW1lLklzRW1wdHkoKSkKICAgICB7
Ci0gICAgICAgIG5zQ0F1dG9TdHJpbmcgYUZpbGVOYW1lOwotICAgICAgICBzb3VyY2VGaWxlLT5H
ZXROYXRpdmVMZWFmTmFtZShhRmlsZU5hbWUpOworICAgICAgICBuc1dUQXV0b1N0cmluZyBhRmls
ZU5hbWU7CisgICAgICAgIHNvdXJjZUZpbGUtPkdldFdUTGVhZk5hbWUoYUZpbGVOYW1lKTsKICAg
ICAgICAgZGVzdFBhdGguQXBwZW5kKGFGaWxlTmFtZSk7CiAgICAgfQogICAgIGVsc2UKICAgICB7
CiAgICAgICAgIGRlc3RQYXRoLkFwcGVuZChuZXdOYW1lKTsKICAgICB9CiAKIAogICAgIGlmIChm
b2xsb3dTeW1saW5rcykKICAgICB7Ci0gICAgICAgIHJ2ID0gc291cmNlRmlsZS0+R2V0TmF0aXZl
VGFyZ2V0KGZpbGVQYXRoKTsKKyAgICAgICAgcnYgPSBzb3VyY2VGaWxlLT5HZXRUYXJnZXRXVChm
aWxlUGF0aCk7CiAgICAgICAgIGlmIChmaWxlUGF0aC5Jc0VtcHR5KCkpCi0gICAgICAgICAgICBy
diA9IHNvdXJjZUZpbGUtPkdldE5hdGl2ZVBhdGgoZmlsZVBhdGgpOworICAgICAgICAgICAgcnYg
PSBzb3VyY2VGaWxlLT5HZXRXVFBhdGgoZmlsZVBhdGgpOwogICAgIH0KICAgICBlbHNlCiAgICAg
ewotICAgICAgICBydiA9IHNvdXJjZUZpbGUtPkdldE5hdGl2ZVBhdGgoZmlsZVBhdGgpOworICAg
ICAgICBydiA9IHNvdXJjZUZpbGUtPkdldFdUUGF0aChmaWxlUGF0aCk7CiAgICAgfQogCiAgICAg
aWYgKE5TX0ZBSUxFRChydikpCiAgICAgICAgIHJldHVybiBydjsKIAogICAgIGludCBjb3B5T0s7
CiAKICAgICBpZiAoIW1vdmUpCiAgICAgICAgIGNvcHlPSyA9IENvcHlGaWxlKGZpbGVQYXRoLmdl
dCgpLCBkZXN0UGF0aC5nZXQoKSwgUFJfVFJVRSk7CiAgICAgZWxzZQogICAgIHsKICAgICAgICAg
Ly8gV2hhdCB3ZSBoYXZlIHRvIGRvIGlzIGNoZWNrIHRvIHNlZSBpZiB0aGUgZGVzdFBhdGggZXhp
c3RzLiAgSWYgaXQKICAgICAgICAgLy8gZG9lcywgd2UgaGF2ZSB0byBtb3ZlIGl0IG91dCBvZiB0
aGUgc2F5IHNvIHRoYXQgTW92ZUZpbGUgd2lsbAogICAgICAgICAvLyBzdWNjZWVkLiAgSG93ZXZl
ciwgd2UgZG9uJ3Qgd2FudCB0byBqdXN0IHJlbW92ZSBpdCBzaW5jZSBNb3ZlRmlsZQogICAgICAg
ICAvLyBjYW4gZmFpbCBsZWF2aW5nIHVzIHdpdGhvdXQgYSBmaWxlLgogCi0gICAgICAgIG5zQ0F1
dG9TdHJpbmcgYmFja3VwOwotICAgICAgICBQUkZpbGVJbmZvNjQgZmlsZUluZm82NDsKLSAgICAg
ICAgUFJTdGF0dXMgc3RhdHVzID0gUFJfR2V0RmlsZUluZm82NChkZXN0UGF0aC5nZXQoKSwgJmZp
bGVJbmZvNjQpOwotICAgICAgICBpZiAoc3RhdHVzID09IFBSX1NVQ0NFU1MpCisgICAgICAgIG5z
V1RBdXRvU3RyaW5nIGJhY2t1cDsKKyAgICAgICAgc3RydWN0IF9zdGF0aTY0IGZpbGVJbmZvNjQ7
CisgICAgICAgIGludCBzdGF0dXMgPSBfdHN0YXRpNjQoZGVzdFBhdGguZ2V0KCksICZmaWxlSW5m
bzY0KTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSAwKQogICAgICAgICB7CiAKICAgICAgICAgICAg
IC8vIHRoZSBmaWxlIGV4aXN0cy4gIENoZWNrIHRvIG1ha2Ugc3VyZSBpdCBpcyBub3QgYSBkaXJl
Y3RvcnksCiAgICAgICAgICAgICAvLyB0aGVuIG1vdmUgaXQgb3V0IG9mIHRoZSB3YXkuCi0gICAg
ICAgICAgICBpZiAoZmlsZUluZm82NC50eXBlID09IFBSX0ZJTEVfRklMRSkKKyAgICAgICAgICAg
IGlmIChmaWxlSW5mbzY0LnN0X21vZGUgPT0gX1NfSUZSRUcpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgYmFja3VwLkFwcGVuZChkZXN0UGF0aCk7Ci0gICAgICAgICAgICAgICAgYmFj
a3VwLkFwcGVuZCgiLm1venRtcCIpOworICAgICAgICAgICAgICAgIGJhY2t1cC5BcHBlbmRMaXRl
cmFsKCIubW96dG1wIik7CiAKICAgICAgICAgICAgICAgICAvLyByZW1vdmUgYW55IGV4aXN0aW5n
IGJhY2t1cCBmaWxlIHRoYXQgd2UgbWF5IGFscmVhZHkgaGF2ZS4KICAgICAgICAgICAgICAgICAv
LyBtYXliZSB3ZSBzaG91bGQgYmUgZG9pbmcgc29tZSBraW5kIG9mIHVuaXF1ZSBuYW1pbmcgaGVy
ZSwKICAgICAgICAgICAgICAgICAvLyBidXQgd2h5IGJvdGhlci4KLSAgICAgICAgICAgICAgICBy
ZW1vdmUoYmFja3VwLmdldCgpKTsKKyAgICAgICAgICAgICAgICBfdHJlbW92ZShiYWNrdXAuZ2V0
KCkpOwogCiAgICAgICAgICAgICAgICAgLy8gbW92ZSBkZXN0aW5hdGlvbiBmaWxlIHRvIGJhY2t1
cCBmaWxlCiAgICAgICAgICAgICAgICAgY29weU9LID0gTW92ZUZpbGUoZGVzdFBhdGguZ2V0KCks
IGJhY2t1cC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb3B5T0spCiAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAvLyBJIGd1ZXNzIHdlIGNhbid0IGRvIHRoZSBi
YWNrdXAgY29weSwgc28gcmV0dXJuLgogICAgICAgICAgICAgICAgICAgICBydiA9IENvbnZlcnRX
aW5FcnJvcihHZXRMYXN0RXJyb3IoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBydjsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgLy8g
bW92ZSBzb3VyY2UgZmlsZSB0byBkZXN0aW5hdGlvbiBmaWxlCiAgICAgICAgIGNvcHlPSyA9IE1v
dmVGaWxlKGZpbGVQYXRoLmdldCgpLCBkZXN0UGF0aC5nZXQoKSk7CiAKICAgICAgICAgaWYgKCFi
YWNrdXAuSXNFbXB0eSgpKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoY29weU9LKQogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgYmFja3VwIGNvcHkuCi0g
ICAgICAgICAgICAgICAgcmVtb3ZlKGJhY2t1cC5nZXQoKSk7CisgICAgICAgICAgICAgICAgX3Ry
ZW1vdmUoYmFja3VwLmdldCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvLyByZXN0b3JlIGJhY2t1cAogICAgICAgICAg
ICAgICAgIGludCBiYWNrdXBPayA9IE1vdmVGaWxlKGJhY2t1cC5nZXQoKSwgZGVzdFBhdGguZ2V0
KCkpOwogICAgICAgICAgICAgICAgIE5TX0FTU0VSVElPTihiYWNrdXBPaywgIm1vdmUgYmFja3Vw
IGZhaWxlZCIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGlmICghY29w
eU9LKSAgLy8gQ29weUZpbGUgYW5kIE1vdmVGaWxlIHJldHVybnMgbm9uLXplcm8gaWYgc3VjY2Vl
ZHMgKGJhY2t3YXJkIGlmIHlvdSBhc2sgbWUpLgogICAgICAgICBydiA9IENvbnZlcnRXaW5FcnJv
cihHZXRMYXN0RXJyb3IoKSk7CiAKICAgICByZXR1cm4gcnY7CiB9CiAKIAogbnNyZXN1bHQKLW5z
TG9jYWxGaWxlOjpDb3B5TW92ZShuc0lGaWxlICphUGFyZW50RGlyLCBjb25zdCBuc0FDU3RyaW5n
ICZuZXdOYW1lLCBQUkJvb2wgZm9sbG93U3ltbGlua3MsIFBSQm9vbCBtb3ZlKQorbnNMb2NhbEZp
bGU6OkNvcHlNb3ZlKG5zSUZpbGUgKmFQYXJlbnREaXIsIGNvbnN0IG5zQVdUU3RyaW5nICZuZXdO
YW1lLAorICAgICAgICAgICAgICAgICAgICAgIFBSQm9vbCBmb2xsb3dTeW1saW5rcywgUFJCb29s
IG1vdmUpCiB7CiAgICAgbnNDT01QdHI8bnNJRmlsZT4gbmV3UGFyZW50RGlyID0gYVBhcmVudERp
cjsKICAgICAvLyBjaGVjayB0byBzZWUgaWYgdGhpcyBleGlzdHMsIG90aGVyd2lzZSByZXR1cm4g
YW4gZXJyb3IuCiAgICAgLy8gd2Ugd2lsbCBjaGVjayB0aGlzIGJ5IHJlc29sdmluZy4gIElmIHRo
ZSB1c2VyIHdhbnRzIHVzCiAgICAgLy8gdG8gZm9sbG93IGxpbmtzLCB0aGVuIHdlIGFyZSB0YWxr
aW5nIGFib3V0IHRoZSB0YXJnZXQsCiAgICAgLy8gaGVuY2Ugd2UgY2FuIHVzZSB0aGUgfGZvbGxv
d1N5bWxpbmtzfCBwYXJhbWV0ZXIuCiAgICAgbnNyZXN1bHQgcnYgID0gUmVzb2x2ZUFuZFN0YXQo
KTsKICAgICBpZiAoTlNfRkFJTEVEKHJ2KSkKICAgICAgICAgcmV0dXJuIHJ2OwogCiAgICAgaWYg
KCFuZXdQYXJlbnREaXIpCiAgICAgewpAQCAtMTI5MSw0OSArMTQ4Nyw1MCBAQCBuc0xvY2FsRmls
ZTo6Q29weU1vdmUobnNJRmlsZSAqYVBhcmVudERpCiAgICAgfQogICAgIAogICAgIC8vIE5vdCBh
YmxlIHRvIGNvcHkgb3IgbW92ZSBkaXJlY3RseSwgc28gZW51bWVyYXRlIGl0CiAgICAgaWYgKCFk
b25lKQogICAgIHsKICAgICAgICAgLy8gY3JlYXRlIGEgbmV3IHRhcmdldCBkZXN0aW5hdGlvbiBp
biB0aGUgbmV3IHBhcmVudERpcjsKICAgICAgICAgbnNDT01QdHI8bnNJRmlsZT4gdGFyZ2V0Owog
ICAgICAgICBydiA9IG5ld1BhcmVudERpci0+Q2xvbmUoZ2V0dGVyX0FkZFJlZnModGFyZ2V0KSk7
CiAKICAgICAgICAgaWYgKE5TX0ZBSUxFRChydikpCiAgICAgICAgICAgICByZXR1cm4gcnY7CiAK
LSAgICAgICAgbnNDQXV0b1N0cmluZyBhbGxvY2F0ZWROZXdOYW1lOworICAgICAgICBuc1dUQXV0
b1N0cmluZyBhbGxvY2F0ZWROZXdOYW1lOwogICAgICAgICBpZiAobmV3TmFtZS5Jc0VtcHR5KCkp
CiAgICAgICAgIHsKICAgICAgICAgICAgIFBSQm9vbCBpc0xpbms7CiAgICAgICAgICAgICBJc1N5
bWxpbmsoJmlzTGluayk7CiAgICAgICAgICAgICBpZiAoaXNMaW5rKQogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIG5zQ0F1dG9TdHJpbmcgdGVtcDsKLSAgICAgICAgICAgICAgICBHZXRO
YXRpdmVUYXJnZXQodGVtcCk7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhciogbGVhZiA9IChj
b25zdCBjaGFyKikgX21ic3JjaHIoKGNvbnN0IHVuc2lnbmVkIGNoYXIqKSB0ZW1wLmdldCgpLCAn
XFwnKTsKKyAgICAgICAgICAgICAgICBuc1dUQXV0b1N0cmluZyB0ZW1wOworICAgICAgICAgICAg
ICAgIEdldFRhcmdldFdUKHRlbXApOworICAgICAgICAgICAgICAgIGNvbnN0IFRDSEFSKiBsZWFm
ID0KKyAgICAgICAgICAgICAgICAgICAgU0FGRV9UQ0FTVCh3dHN0cnJjaHIoU0FGRV9NQkNBU1Qo
dGVtcC5nZXQoKSksICdcXCcpKTsKICAgICAgICAgICAgICAgICBpZiAobGVhZlswXSA9PSAnXFwn
KQogICAgICAgICAgICAgICAgICAgICBsZWFmKys7CiAgICAgICAgICAgICAgICAgYWxsb2NhdGVk
TmV3TmFtZSA9IGxlYWY7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgR2V0TmF0aXZlTGVhZk5hbWUoYWxsb2NhdGVkTmV3TmFt
ZSk7Ly8gdGhpcyBzaG91bGQgYmUgdGhlIGxlYWYgbmFtZSBvZiB0aGUKKyAgICAgICAgICAgICAg
ICBHZXRXVExlYWZOYW1lKGFsbG9jYXRlZE5ld05hbWUpOy8vIHRoaXMgc2hvdWxkIGJlIHRoZSBs
ZWFmIG5hbWUgb2YgdGhlCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZQog
ICAgICAgICB7CiAgICAgICAgICAgICBhbGxvY2F0ZWROZXdOYW1lID0gbmV3TmFtZTsKICAgICAg
ICAgfQogCi0gICAgICAgIHJ2ID0gdGFyZ2V0LT5BcHBlbmROYXRpdmUoYWxsb2NhdGVkTmV3TmFt
ZSk7CisgICAgICAgIHJ2ID0gdGFyZ2V0LT5BcHBlbmRXVChhbGxvY2F0ZWROZXdOYW1lKTsKICAg
ICAgICAgaWYgKE5TX0ZBSUxFRChydikpCiAgICAgICAgICAgICByZXR1cm4gcnY7CiAKICAgICAg
ICAgYWxsb2NhdGVkTmV3TmFtZS5UcnVuY2F0ZSgpOwogCiAgICAgICAgIC8vIGNoZWNrIGlmIHRo
ZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMKICAgICAgICAgdGFyZ2V0LT5F
eGlzdHMoJmV4aXN0cyk7CiAgICAgICAgIGlmICghZXhpc3RzKQogICAgICAgICB7CiAgICAgICAg
ICAgICAvLyBpZiB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGNhbm5vdCBiZSBjcmVhdGVkLCBy
ZXR1cm4gYW4gZXJyb3IKICAgICAgICAgICAgIHJ2ID0gdGFyZ2V0LT5DcmVhdGUoRElSRUNUT1JZ
X1RZUEUsIDA2NDQpOyAgLy8gVE9ETywgd2hhdCBwZXJtaXNzaW9ucyBzaG91bGQgd2UgdXNlCiAg
ICAgICAgICAgICBpZiAoTlNfRkFJTEVEKHJ2KSkKQEAgLTEzNzYsMTEyICsxNTczLDE4OCBAQCBu
c0xvY2FsRmlsZTo6Q29weU1vdmUobnNJRmlsZSAqYVBhcmVudERpCiAgICAgICAgICAgICBpZiAo
ZmlsZSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBQUkJvb2wgaXNEaXIsIGlzTGlu
azsKIAogICAgICAgICAgICAgICAgIGZpbGUtPklzRGlyZWN0b3J5KCZpc0Rpcik7CiAgICAgICAg
ICAgICAgICAgZmlsZS0+SXNTeW1saW5rKCZpc0xpbmspOwogCiAgICAgICAgICAgICAgICAgaWYg
KG1vdmUpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpZiAoZm9sbG93
U3ltbGlua3MpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNfRVJST1JfRkFJTFVS
RTsKIAotICAgICAgICAgICAgICAgICAgICBydiA9IGZpbGUtPk1vdmVUb05hdGl2ZSh0YXJnZXQs
IEVtcHR5Q1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgcnYgPSBmaWxlLT5Nb3ZlVG9X
VCh0YXJnZXQsIEVtcHR5V1RTdHJpbmcoKSk7CiAgICAgICAgICAgICAgICAgICAgIE5TX0VOU1VS
RV9TVUNDRVNTKHJ2LHJ2KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGZvbGxvd1N5bWxp
bmtzKQotICAgICAgICAgICAgICAgICAgICAgICAgcnYgPSBmaWxlLT5Db3B5VG9Gb2xsb3dpbmdM
aW5rc05hdGl2ZSh0YXJnZXQsIEVtcHR5Q1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJ2ID0gZmlsZS0+Q29weVRvRm9sbG93aW5nTGlua3NXVCh0YXJnZXQsIEVtcHR5V1RTdHJp
bmcoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJ2ID0gZmlsZS0+Q29weVRvTmF0aXZlKHRhcmdldCwgRW1wdHlDU3RyaW5nKCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgcnYgPSBmaWxlLT5Db3B5VG9XVCh0YXJnZXQsIEVtcHR5V1RTdHJp
bmcoKSk7CiAgICAgICAgICAgICAgICAgICAgIE5TX0VOU1VSRV9TVUNDRVNTKHJ2LHJ2KTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgLy8gd2Un
dmUgZmluaXNoZWQgbW92aW5nIGFsbCB0aGUgY2hpbGRyZW4gb2YgdGhpcyBkaXJlY3RvcnkKICAg
ICAgICAgLy8gaW4gdGhlIG5ldyBkaXJlY3RvcnkuICBzbyBub3cgZGVsZXRlIHRoZSBkaXJlY3Rv
cnkKICAgICAgICAgLy8gbm90ZSwgd2UgZG9uJ3QgbmVlZCB0byBkbyBhIHJlY3Vyc2l2ZSBkZWxl
dGUuCiAgICAgICAgIC8vIE1vdmVUbygpIGlzIHJlY3Vyc2l2ZS4gIEF0IHRoaXMgcG9pbnQsCiAg
ICAgICAgIC8vIHdlJ3ZlIGFscmVhZHkgbW92ZWQgdGhlIGNoaWxkcmVuIG9mIHRoZSBjdXJyZW50
IGZvbGRlcgogICAgICAgICAvLyB0byB0aGUgbmV3IGxvY2F0aW9uLiAgbm90aGluZyBzaG91bGQg
YmUgbGVmdCBpbiB0aGUgZm9sZGVyLgogICAgICAgICBpZiAobW92ZSkKICAgICAgICAgewogICAg
ICAgICAgIHJ2ID0gUmVtb3ZlKFBSX0ZBTFNFIC8qIHJlY3Vyc2l2ZSAqLyk7CiAgICAgICAgICAg
TlNfRU5TVVJFX1NVQ0NFU1MocnYscnYpOwogICAgICAgICB9CiAgICAgfQogCiAKICAgICAvLyBJ
ZiB3ZSBtb3ZlZCwgd2Ugd2FudCB0byBhZGp1c3QgdGhpcy4KICAgICBpZiAobW92ZSkKICAgICB7
CiAgICAgICAgIE1ha2VEaXJ0eSgpOwogCi0gICAgICAgIG5zQ0F1dG9TdHJpbmcgbmV3UGFyZW50
UGF0aDsKLSAgICAgICAgbmV3UGFyZW50RGlyLT5HZXROYXRpdmVQYXRoKG5ld1BhcmVudFBhdGgp
OworICAgICAgICBuc1dUQXV0b1N0cmluZyBuZXdQYXJlbnRQYXRoOworICAgICAgICBuZXdQYXJl
bnREaXItPkdldFdUUGF0aChuZXdQYXJlbnRQYXRoKTsKIAogICAgICAgICBpZiAobmV3UGFyZW50
UGF0aC5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gTlNfRVJST1JfRkFJTFVSRTsKIAog
ICAgICAgICBpZiAobmV3TmFtZS5Jc0VtcHR5KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG5z
Q0F1dG9TdHJpbmcgYUZpbGVOYW1lOwotICAgICAgICAgICAgR2V0TmF0aXZlTGVhZk5hbWUoYUZp
bGVOYW1lKTsKKyAgICAgICAgICAgIG5zV1RBdXRvU3RyaW5nIGFGaWxlTmFtZTsKKyAgICAgICAg
ICAgIEdldFdUTGVhZk5hbWUoYUZpbGVOYW1lKTsKIAotICAgICAgICAgICAgSW5pdFdpdGhOYXRp
dmVQYXRoKG5ld1BhcmVudFBhdGgpOwotICAgICAgICAgICAgQXBwZW5kTmF0aXZlKGFGaWxlTmFt
ZSk7CisgICAgICAgICAgICBJbml0V2l0aFdUUGF0aChuZXdQYXJlbnRQYXRoKTsKKyAgICAgICAg
ICAgIEFwcGVuZFdUKGFGaWxlTmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAg
ICB7Ci0gICAgICAgICAgICBJbml0V2l0aE5hdGl2ZVBhdGgobmV3UGFyZW50UGF0aCk7Ci0gICAg
ICAgICAgICBBcHBlbmROYXRpdmUobmV3TmFtZSk7CisgICAgICAgICAgICBJbml0V2l0aFdUUGF0
aChuZXdQYXJlbnRQYXRoKTsKKyAgICAgICAgICAgIEFwcGVuZFdUKG5ld05hbWUpOwogICAgICAg
ICB9CiAgICAgfQogCiAgICAgcmV0dXJuIE5TX09LOwogfQogCiBOU19JTUVUSE9ESU1QCisjaWZk
ZWYgX1VOSUNPREUKK25zTG9jYWxGaWxlOjpDb3B5VG8obnNJRmlsZSAqbmV3UGFyZW50RGlyLCBj
b25zdCBuc0FTdHJpbmcgJm5ld05hbWUpCisjZWxzZQogbnNMb2NhbEZpbGU6OkNvcHlUb05hdGl2
ZShuc0lGaWxlICpuZXdQYXJlbnREaXIsIGNvbnN0IG5zQUNTdHJpbmcgJm5ld05hbWUpCisjZW5k
aWYKIHsKICAgICByZXR1cm4gQ29weU1vdmUobmV3UGFyZW50RGlyLCBuZXdOYW1lLCBQUl9GQUxT
RSwgUFJfRkFMU0UpOwogfQogCiBOU19JTUVUSE9ESU1QCisjaWZkZWYgX1VOSUNPREUKK25zTG9j
YWxGaWxlOjpDb3B5VG9OYXRpdmUobnNJRmlsZSAqbmV3UGFyZW50RGlyLCBjb25zdCBuc0FDU3Ry
aW5nICZuZXdOYW1lKQoreworICAgIG5zQXV0b1N0cmluZyBjb252ZXJ0ZWQ7CisgICAgTlNfQ29w
eU5hdGl2ZVRvVW5pY29kZShuZXdOYW1lLCBjb252ZXJ0ZWQpOworCisgICAgcmV0dXJuIENvcHlN
b3ZlKG5ld1BhcmVudERpciwgY29udmVydGVkLCBQUl9GQUxTRSwgUFJfRkFMU0UpOworfQorI2Vs
c2UKK25zTG9jYWxGaWxlOjpDb3B5VG8obnNJRmlsZSAqbmV3UGFyZW50RGlyLCBjb25zdCBuc0FT
dHJpbmcgJm5ld05hbWUpCit7CisgICAgbnNDQXV0b1N0cmluZyBjb252ZXJ0ZWQ7CisgICAgTlNf
Q29weVVuaWNvZGVUb05hdGl2ZShuZXdOYW1lLCBjb252ZXJ0ZWQpOworCisgICAgcmV0dXJuIENv
cHlNb3ZlKG5ld1BhcmVudERpciwgY29udmVydGVkLCBQUl9GQUxTRSwgUFJfRkFMU0UpOworfQor
I2VuZGlmCisKK05TX0lNRVRIT0RJTVAKKyNpZmRlZiBfVU5JQ09ERQorbnNMb2NhbEZpbGU6OkNv
cHlUb0ZvbGxvd2luZ0xpbmtzKG5zSUZpbGUgKm5ld1BhcmVudERpciwgY29uc3QgbnNBU3RyaW5n
ICZuZXdOYW1lKQorI2Vsc2UKIG5zTG9jYWxGaWxlOjpDb3B5VG9Gb2xsb3dpbmdMaW5rc05hdGl2
ZShuc0lGaWxlICpuZXdQYXJlbnREaXIsIGNvbnN0IG5zQUNTdHJpbmcgJm5ld05hbWUpCisjZW5k
aWYKIHsKICAgICByZXR1cm4gQ29weU1vdmUobmV3UGFyZW50RGlyLCBuZXdOYW1lLCBQUl9UUlVF
LCBQUl9GQUxTRSk7CiB9CiAKIE5TX0lNRVRIT0RJTVAKKyNpZmRlZiBfVU5JQ09ERQorbnNMb2Nh
bEZpbGU6OkNvcHlUb0ZvbGxvd2luZ0xpbmtzTmF0aXZlKG5zSUZpbGUgKm5ld1BhcmVudERpciwg
Y29uc3QgbnNBQ1N0cmluZyAmbmV3TmFtZSkKK3sKKyAgICBuc0F1dG9TdHJpbmcgY29udmVydGVk
OworICAgIE5TX0NvcHlOYXRpdmVUb1VuaWNvZGUobmV3TmFtZSwgY29udmVydGVkKTsKKworICAg
IHJldHVybiBDb3B5TW92ZShuZXdQYXJlbnREaXIsIGNvbnZlcnRlZCwgUFJfVFJVRSwgUFJfRkFM
U0UpOworfQorI2Vsc2UKK25zTG9jYWxGaWxlOjpDb3B5VG9Gb2xsb3dpbmdMaW5rcyhuc0lGaWxl
ICpuZXdQYXJlbnREaXIsIGNvbnN0IG5zQVN0cmluZyAmbmV3TmFtZSkKK3sKKyAgICBuc0NBdXRv
U3RyaW5nIGNvbnZlcnRlZDsKKyAgICBOU19Db3B5VW5pY29kZVRvTmF0aXZlKG5ld05hbWUsIGNv
bnZlcnRlZCk7CisKKyAgICByZXR1cm4gQ29weU1vdmUobmV3UGFyZW50RGlyLCBjb252ZXJ0ZWQs
IFBSX1RSVUUsIFBSX0ZBTFNFKTsKK30KKyNlbmRpZgorCitOU19JTUVUSE9ESU1QCisjaWZkZWYg
X1VOSUNPREUKK25zTG9jYWxGaWxlOjpNb3ZlVG8obnNJRmlsZSAqbmV3UGFyZW50RGlyLCBjb25z
dCBuc0FTdHJpbmcgJm5ld05hbWUpCisjZWxzZQogbnNMb2NhbEZpbGU6Ok1vdmVUb05hdGl2ZShu
c0lGaWxlICpuZXdQYXJlbnREaXIsIGNvbnN0IG5zQUNTdHJpbmcgJm5ld05hbWUpCisjZW5kaWYK
IHsKICAgICByZXR1cm4gQ29weU1vdmUobmV3UGFyZW50RGlyLCBuZXdOYW1lLCBQUl9GQUxTRSwg
UFJfVFJVRSk7CiB9CiAKKyNpZmRlZiBfVU5JQ09ERQorTlNfSU1FVEhPRElNUAorbnNMb2NhbEZp
bGU6Ok1vdmVUb05hdGl2ZShuc0lGaWxlICpuZXdQYXJlbnREaXIsIGNvbnN0IG5zQUNTdHJpbmcg
Jm5ld05hbWUpCit7CisgICAgbnNBdXRvU3RyaW5nIGNvbnZlcnRlZDsKKyAgICBOU19Db3B5TmF0
aXZlVG9Vbmljb2RlKG5ld05hbWUsIGNvbnZlcnRlZCk7CisgICAgcmV0dXJuIENvcHlNb3ZlKG5l
d1BhcmVudERpciwgY29udmVydGVkLCBQUl9GQUxTRSwgUFJfVFJVRSk7Cit9CisjZWxzZQorTlNf
SU1FVEhPRElNUAorbnNMb2NhbEZpbGU6Ok1vdmVUbyhuc0lGaWxlICpuZXdQYXJlbnREaXIsIGNv
bnN0IG5zQVN0cmluZyAmbmV3TmFtZSkKK3sKKyAgICBuc0NBdXRvU3RyaW5nIGNvbnZlcnRlZDsK
KyAgICBOU19Db3B5VW5pY29kZVRvTmF0aXZlKG5ld05hbWUsIGNvbnZlcnRlZCk7CisgICAgcmV0
dXJuIENvcHlNb3ZlKG5ld1BhcmVudERpciwgY29udmVydGVkLCBQUl9GQUxTRSwgUFJfVFJVRSk7
Cit9CisjZW5kaWYKKwogTlNfSU1FVEhPRElNUAogbnNMb2NhbEZpbGU6OkxvYWQoUFJMaWJyYXJ5
ICogKl9yZXR2YWwpCiB7CiAgICAgUFJCb29sIGlzRmlsZTsKICAgICBuc3Jlc3VsdCBydiA9IElz
RmlsZSgmaXNGaWxlKTsKIAogICAgIGlmIChOU19GQUlMRUQocnYpKQogICAgICAgICByZXR1cm4g
cnY7CiAKICAgICBpZiAoISBpc0ZpbGUpCiAgICAgICAgIHJldHVybiBOU19FUlJPUl9GSUxFX0lT
X0RJUkVDVE9SWTsKIAogICAgIE5TX1RJTUVMSU5FX1NUQVJUX1RJTUVSKCJQUl9Mb2FkTGlicmFy
eSIpOwotICAgICpfcmV0dmFsID0gIFBSX0xvYWRMaWJyYXJ5KG1SZXNvbHZlZFBhdGguZ2V0KCkp
OworI2lmZGVmIF9VTklDT0RFCisgICAgLy8gWFhYYnNtZWRiZXJnOiBOZWVkIE5TUFIgbG92ZSEK
KyAgICBuc0NBdXRvU3RyaW5nIG5hdGl2ZVBhdGg7CisgICAgTlNfQ29weVVuaWNvZGVUb05hdGl2
ZShtUmVzb2x2ZWRQYXRoLCBuYXRpdmVQYXRoKTsKKyNlbHNlCisgICAgbnNDU3RyaW5nJiBuYXRp
dmVQYXRoID0gbVJlc29sdmVkUGF0aDsKKyNlbmRpZgorCisgICAgKl9yZXR2YWwgPSAgUFJfTG9h
ZExpYnJhcnkobmF0aXZlUGF0aC5nZXQoKSk7CiAgICAgTlNfVElNRUxJTkVfU1RPUF9USU1FUigi
UFJfTG9hZExpYnJhcnkiKTsKICAgICBOU19USU1FTElORV9NQVJLX1RJTUVSMSgiUFJfTG9hZExp
YnJhcnkiLCBtUmVzb2x2ZWRQYXRoLmdldCgpKTsKIAogICAgIGlmICgqX3JldHZhbCkKICAgICAg
ICAgcmV0dXJuIE5TX09LOwogICAgIHJldHVybiBOU19FUlJPUl9OVUxMX1BPSU5URVI7CiB9CiAK
IE5TX0lNRVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpSZW1vdmUoUFJCb29sIHJlY3Vyc2l2ZSkKIHsK
ICAgICAvLyBOT1RFOgpAQCAtMTUyOSw3NyArMTgwMiw3MyBAQCBuc0xvY2FsRmlsZTo6UmVtb3Zl
KFBSQm9vbCByZWN1cnNpdmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJ2OwogCiAgICAgICAg
ICAgICBQUkJvb2wgbW9yZTsKICAgICAgICAgICAgIHdoaWxlIChOU19TVUNDRUVERUQoZGlyRW51
bS5IYXNNb3JlRWxlbWVudHMoJm1vcmUpKSAmJiBtb3JlKQogICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgIG5zQ09NUHRyPG5zSVN1cHBvcnRzPiBpdGVtOwogICAgICAgICAgICAgICAgIGRp
ckVudW0uR2V0TmV4dChnZXR0ZXJfQWRkUmVmcyhpdGVtKSk7CiAgICAgICAgICAgICAgICAgbnND
T01QdHI8bnNJRmlsZT4gZmlsZSA9IGRvX1F1ZXJ5SW50ZXJmYWNlKGl0ZW0pOwogICAgICAgICAg
ICAgICAgIGlmIChmaWxlKQogICAgICAgICAgICAgICAgICAgICBmaWxlLT5SZW1vdmUocmVjdXJz
aXZlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBydiA9IHJtZGlyKG1Xb3Jr
aW5nUGF0aC5nZXQoKSk7CisgICAgICAgIHJ2ID0gX3RybWRpcihtV29ya2luZ1BhdGguZ2V0KCkp
OwogICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICBydiA9IHJlbW92ZShtV29ya2luZ1Bh
dGguZ2V0KCkpOworICAgICAgICBydiA9IF90cmVtb3ZlKG1Xb3JraW5nUGF0aC5nZXQoKSk7CiAg
ICAgfQogCiAgICAgLy8gZml4dXAgZXJyb3IgY29kZSBpZiBuZWNlc3NhcnkuLi4KICAgICBpZiAo
cnYgPT0gKG5zcmVzdWx0KS0xKQogICAgICAgICBydiA9IE5TUkVTVUxUX0ZPUl9FUlJOTygpOwog
ICAgIAogICAgIE1ha2VEaXJ0eSgpOwogICAgIHJldHVybiBydjsKIH0KIAogTlNfSU1FVEhPRElN
UAogbnNMb2NhbEZpbGU6OkdldExhc3RNb2RpZmllZFRpbWUoUFJJbnQ2NCAqYUxhc3RNb2RpZmll
ZFRpbWUpCiB7CiAgICAgTlNfRU5TVVJFX0FSRyhhTGFzdE1vZGlmaWVkVGltZSk7CiAgCiAgICAg
Ly8gZ2V0IHRoZSBtb2RpZmllZCB0aW1lIG9mIHRoZSB0YXJnZXQgYXMgZGV0ZXJtaW5lZCBieSBt
Rm9sbG93U3ltbGlua3MKICAgICAvLyBJZiBQUl9UUlVFLCB0aGVuIHRoaXMgd2lsbCBiZSBmb3Ig
dGhlIHRhcmdldCBvZiB0aGUgc2hvcnRjdXQgZmlsZSwgCiAgICAgLy8gb3RoZXJ3aXNlIGl0IHdp
bGwgYmUgZm9yIHRoZSBzaG9ydGN1dCBmaWxlIGl0c2VsZiAoaS5lLiB0aGUgc2FtZSAKICAgICAv
LyByZXN1bHRzIGFzIEdldExhc3RNb2RpZmllZFRpbWVPZkxpbmspCiAKICAgICBuc3Jlc3VsdCBy
diA9IFJlc29sdmVBbmRTdGF0KCk7CiAgICAgaWYgKE5TX0ZBSUxFRChydikpCiAgICAgICAgIHJl
dHVybiBydjsKIAotICAgIC8vIG1pY3Jvc2Vjb25kcyAtPiBtaWxsaXNlY29uZHMKLSAgICBQUklu
dDY0IHVzZWNQZXJNc2VjOwotICAgIExMX0kyTCh1c2VjUGVyTXNlYywgUFJfVVNFQ19QRVJfTVNF
Qyk7Ci0gICAgTExfRElWKCphTGFzdE1vZGlmaWVkVGltZSwgbUZpbGVJbmZvNjQubW9kaWZ5VGlt
ZSwgdXNlY1Blck1zZWMpOworICAgIC8vIHNlY29uZHMgLT4gbWlsbGlzZWNvbmRzCisgICAgKmFM
YXN0TW9kaWZpZWRUaW1lID0gbUZpbGVJbmZvNjQuc3RfbXRpbWUgKiAxMDAwOwogICAgIHJldHVy
biBOU19PSzsKIH0KIAogCiBOU19JTUVUSE9ESU1QCiBuc0xvY2FsRmlsZTo6R2V0TGFzdE1vZGlm
aWVkVGltZU9mTGluayhQUkludDY0ICphTGFzdE1vZGlmaWVkVGltZSkKIHsKICAgICBOU19FTlNV
UkVfQVJHKGFMYXN0TW9kaWZpZWRUaW1lKTsKICAKICAgICAvLyBUaGUgY2FsbGVyIGlzIGFzc3Vt
ZWQgdG8gaGF2ZSBhbHJlYWR5IGNhbGxlZCBJc1N5bWxpbmsgCiAgICAgLy8gYW5kIHRvIGhhdmUg
Zm91bmQgdGhhdCB0aGlzIGZpbGUgaXMgYSBsaW5rLiAKIAotICAgIFBSRmlsZUluZm82NCBpbmZv
OwotICAgIGlmIChQUl9HZXRGaWxlSW5mbzY0KG1Xb3JraW5nUGF0aC5nZXQoKSwgJmluZm8pICE9
IFBSX1NVQ0NFU1MpCisgICAgc3RydWN0IF9zdGF0aTY0IGluZm87CisgICAgaWYgKF90c3RhdGk2
NChtV29ya2luZ1BhdGguZ2V0KCksICZpbmZvKSAhPSAwKQogICAgICAgICByZXR1cm4gTlNSRVNV
TFRfRk9SX0VSUk5PKCk7CiAKLSAgICAvLyBtaWNyb3NlY29uZHMgLT4gbWlsbGlzZWNvbmRzCi0g
ICAgUFJJbnQ2NCB1c2VjUGVyTXNlYzsKLSAgICBMTF9JMkwodXNlY1Blck1zZWMsIFBSX1VTRUNf
UEVSX01TRUMpOwotICAgIExMX0RJVigqYUxhc3RNb2RpZmllZFRpbWUsIGluZm8ubW9kaWZ5VGlt
ZSwgdXNlY1Blck1zZWMpOworICAgIC8vIHNlY29uZHMgLT4gbWlsbGlzZWNvbmRzCisgICAgKmFM
YXN0TW9kaWZpZWRUaW1lID0gaW5mby5zdF9tdGltZSAqIDEwMDA7CiAgICAgcmV0dXJuIE5TX09L
OwogfQogCiAKIE5TX0lNRVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpTZXRMYXN0TW9kaWZpZWRUaW1l
KFBSSW50NjQgYUxhc3RNb2RpZmllZFRpbWUpCiB7CiAgICAgbnNyZXN1bHQgcnYgPSBSZXNvbHZl
QW5kU3RhdCgpOwogICAgIGlmIChOU19GQUlMRUQocnYpKQogICAgICAgICByZXR1cm4gcnY7CiAK
ICAgICAvLyBzZXQgdGhlIG1vZGlmaWVkIHRpbWUgb2YgdGhlIHRhcmdldCBhcyBkZXRlcm1pbmVk
IGJ5IG1Gb2xsb3dTeW1saW5rcwpAQCAtMTYyMCwyNSArMTg4OSwyNSBAQCBuc0xvY2FsRmlsZTo6
U2V0TGFzdE1vZGlmaWVkVGltZU9mTGluayhQCiB7CiAgICAgLy8gVGhlIGNhbGxlciBpcyBhc3N1
bWVkIHRvIGhhdmUgYWxyZWFkeSBjYWxsZWQgSXNTeW1saW5rIAogICAgIC8vIGFuZCB0byBoYXZl
IGZvdW5kIHRoYXQgdGhpcyBmaWxlIGlzIGEgbGluay4gCiAKICAgICBuc3Jlc3VsdCBydiA9IFNl
dE1vZERhdGUoYUxhc3RNb2RpZmllZFRpbWUsIG1Xb3JraW5nUGF0aC5nZXQoKSk7CiAgICAgaWYg
KE5TX1NVQ0NFRURFRChydikpCiAgICAgICAgIE1ha2VEaXJ0eSgpOwogCiAgICAgcmV0dXJuIHJ2
OwogfQogCiBuc3Jlc3VsdAotbnNMb2NhbEZpbGU6OlNldE1vZERhdGUoUFJJbnQ2NCBhTGFzdE1v
ZGlmaWVkVGltZSwgY29uc3QgY2hhciAqZmlsZVBhdGgpCituc0xvY2FsRmlsZTo6U2V0TW9kRGF0
ZShQUkludDY0IGFMYXN0TW9kaWZpZWRUaW1lLCBjb25zdCBUQ0hBUiAqZmlsZVBhdGgpCiB7CiAg
ICAgSEFORExFIGZpbGUgPSBDcmVhdGVGaWxlKGZpbGVQYXRoLCAgICAgICAgICAvLyBwb2ludGVy
IHRvIG5hbWUgb2YgdGhlIGZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VORVJJ
Q19XUklURSwgICAgIC8vIGFjY2VzcyAod3JpdGUpIG1vZGUKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCwgICAgICAgICAgICAgICAgIC8vIHNoYXJlIG1vZGUKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgIC8vIHBvaW50ZXIgdG8gc2VjdXJpdHkg
YXR0cmlidXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUEVOX0VYSVNUSU5HLCAg
ICAgLy8gaG93IHRvIGNyZWF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAg
ICAgICAgICAgICAgLy8gZmlsZSBhdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwpOwogCiAgICAgaWYgKGZpbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCiAgICAg
ewogICAgICAgICByZXR1cm4gQ29udmVydFdpbkVycm9yKEdldExhc3RFcnJvcigpKTsKQEAgLTE3
MjgsNzcgKzE5OTcsNzcgQEAgbnNMb2NhbEZpbGU6OlNldFBlcm1pc3Npb25zKFBSVWludDMyIGFQ
ZQogICAgIC8vIHJlc3VsdHMgYXMgU2V0UGVybWlzc2lvbnNPZkxpbmspCiAgICAgbnNyZXN1bHQg
cnYgPSBSZXNvbHZlQW5kU3RhdCgpOwogICAgIGlmIChOU19GQUlMRUQocnYpKQogICAgICAgICBy
ZXR1cm4gcnY7CiAKICAgICAvLyB3aW5kb3dzIG9ubHkga25vd3MgYWJvdXQgdGhlIGZvbGxvd2lu
ZyBwZXJtaXNzaW9ucwogICAgIGludCBtb2RlID0gMDsKICAgICBpZiAoYVBlcm1pc3Npb25zICYg
KFBSX0lSVVNSfFBSX0lSR1JQfFBSX0lST1RIKSkgICAgLy8gYW55IHJlYWQKICAgICAgICAgbW9k
ZSB8PSBfU19JUkVBRDsKICAgICBpZiAoYVBlcm1pc3Npb25zICYgKFBSX0lXVVNSfFBSX0lXR1JQ
fFBSX0lXT1RIKSkgICAgLy8gYW55IHdyaXRlCiAgICAgICAgIG1vZGUgfD0gX1NfSVdSSVRFOwog
Ci0gICAgaWYgKGNobW9kKG1SZXNvbHZlZFBhdGguZ2V0KCksIG1vZGUpID09IC0xKQorICAgIGlm
IChfdGNobW9kKG1SZXNvbHZlZFBhdGguZ2V0KCksIG1vZGUpID09IC0xKQogICAgICAgICByZXR1
cm4gTlNfRVJST1JfRkFJTFVSRTsKIAogICAgIHJldHVybiBOU19PSzsKIH0KIAogTlNfSU1FVEhP
RElNUAogbnNMb2NhbEZpbGU6OlNldFBlcm1pc3Npb25zT2ZMaW5rKFBSVWludDMyIGFQZXJtaXNz
aW9ucykKIHsKICAgICAvLyBUaGUgY2FsbGVyIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGNh
bGxlZCBJc1N5bWxpbmsgCiAgICAgLy8gYW5kIHRvIGhhdmUgZm91bmQgdGhhdCB0aGlzIGZpbGUg
aXMgYSBsaW5rLiAKIAogICAgIC8vIHdpbmRvd3Mgb25seSBrbm93cyBhYm91dCB0aGUgZm9sbG93
aW5nIHBlcm1pc3Npb25zCiAgICAgaW50IG1vZGUgPSAwOwogICAgIGlmIChhUGVybWlzc2lvbnMg
JiAoUFJfSVJVU1J8UFJfSVJHUlB8UFJfSVJPVEgpKSAgICAvLyBhbnkgcmVhZAogICAgICAgICBt
b2RlIHw9IF9TX0lSRUFEOwogICAgIGlmIChhUGVybWlzc2lvbnMgJiAoUFJfSVdVU1J8UFJfSVdH
UlB8UFJfSVdPVEgpKSAgICAvLyBhbnkgd3JpdGUKICAgICAgICAgbW9kZSB8PSBfU19JV1JJVEU7
CiAKLSAgICBpZiAoY2htb2QobVdvcmtpbmdQYXRoLmdldCgpLCBtb2RlKSA9PSAtMSkKKyAgICBp
ZiAoX3RjaG1vZChtV29ya2luZ1BhdGguZ2V0KCksIG1vZGUpID09IC0xKQogICAgICAgICByZXR1
cm4gTlNfRVJST1JfRkFJTFVSRTsKIAogICAgIHJldHVybiBOU19PSzsKIH0KIAogCiBOU19JTUVU
SE9ESU1QCiBuc0xvY2FsRmlsZTo6R2V0RmlsZVNpemUoUFJJbnQ2NCAqYUZpbGVTaXplKQogewog
ICAgIE5TX0VOU1VSRV9BUkcoYUZpbGVTaXplKTsKIAogICAgIG5zcmVzdWx0IHJ2ID0gUmVzb2x2
ZUFuZFN0YXQoKTsKICAgICBpZiAoTlNfRkFJTEVEKHJ2KSkKICAgICAgICAgcmV0dXJuIHJ2Owog
Ci0gICAgKmFGaWxlU2l6ZSA9IG1GaWxlSW5mbzY0LnNpemU7CisgICAgKmFGaWxlU2l6ZSA9IG1G
aWxlSW5mbzY0LnN0X3NpemU7CiAgICAgcmV0dXJuIE5TX09LOwogfQogCiAKIE5TX0lNRVRIT0RJ
TVAKIG5zTG9jYWxGaWxlOjpHZXRGaWxlU2l6ZU9mTGluayhQUkludDY0ICphRmlsZVNpemUpCiB7
CiAgICAgTlNfRU5TVVJFX0FSRyhhRmlsZVNpemUpOwogCiAgICAgLy8gVGhlIGNhbGxlciBpcyBh
c3N1bWVkIHRvIGhhdmUgYWxyZWFkeSBjYWxsZWQgSXNTeW1saW5rIAogICAgIC8vIGFuZCB0byBo
YXZlIGZvdW5kIHRoYXQgdGhpcyBmaWxlIGlzIGEgbGluay4gCiAKLSAgICBQUkZpbGVJbmZvNjQg
aW5mbzsKLSAgICBpZiAoIVBSX0dldEZpbGVJbmZvNjQobVdvcmtpbmdQYXRoLmdldCgpLCAmaW5m
bykpCisgICAgc3RydWN0IF9zdGF0aTY0IGluZm87CisgICAgaWYgKCFfdHN0YXRpNjQobVdvcmtp
bmdQYXRoLmdldCgpLCAmaW5mbykpCiAgICAgICAgIHJldHVybiBOU19FUlJPUl9GSUxFX0lOVkFM
SURfUEFUSDsKIAotICAgICphRmlsZVNpemUgPSBpbmZvLnNpemU7CisgICAgKmFGaWxlU2l6ZSA9
IGluZm8uc3Rfc2l6ZTsKICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIE5TX0lNRVRIT0RJTVAKIG5z
TG9jYWxGaWxlOjpTZXRGaWxlU2l6ZShQUkludDY0IGFGaWxlU2l6ZSkKIHsKICAgICBuc3Jlc3Vs
dCBydiA9IFJlc29sdmVBbmRTdGF0KCk7CiAgICAgaWYgKE5TX0ZBSUxFRChydikpCiAgICAgICAg
IHJldHVybiBydjsKIAogICAgIEhBTkRMRSBoRmlsZSA9IENyZWF0ZUZpbGUobVJlc29sdmVkUGF0
aC5nZXQoKSwgICAgICAvLyBwb2ludGVyIHRvIG5hbWUgb2YgdGhlIGZpbGUKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdFTkVSSUNfV1JJVEUsICAgICAgICAgICAgLy8gYWNjZXNzICh3
cml0ZSkgbW9kZQpAQCAtMTgzMCw5NiArMjA5OSwxMTYgQEAgdHlwZWRlZiBCT09MIChXSU5BUEkg
KmZwR2V0RGlza0ZyZWVTcGFjZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFVMQVJHRV9JTlRFR0VSIGxwRnJlZUJ5dGVzQXZhaWxhYmxlVG9DYWxsZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQVUxBUkdFX0lOVEVH
RVIgbHBUb3RhbE51bWJlck9mQnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQVUxBUkdFX0lOVEVHRVIgbHBUb3RhbE51bWJlck9mRnJlZUJ5dGVzKTsK
IAogTlNfSU1FVEhPRElNUAogbnNMb2NhbEZpbGU6OkdldERpc2tTcGFjZUF2YWlsYWJsZShQUklu
dDY0ICphRGlza1NwYWNlQXZhaWxhYmxlKQogewogI2lmbmRlZiBXSU5DRQogICAgIE5TX0VOU1VS
RV9BUkcoYURpc2tTcGFjZUF2YWlsYWJsZSk7CiAKICAgICBSZXNvbHZlQW5kU3RhdCgpOwogCisj
aWZkZWYgX1VOSUNPREUKKyAgICBVTEFSR0VfSU5URUdFUiBsaUZyZWVCeXRlc0F2YWlsYWJsZVRv
Q2FsbGVyLCBsaVRvdGFsTnVtYmVyT2ZCeXRlczsKKworICAgIGlmICghR2V0RGlza0ZyZWVTcGFj
ZUV4KG1SZXNvbHZlZFBhdGguZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmxp
RnJlZUJ5dGVzQXZhaWxhYmxlVG9DYWxsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmxpVG90YWxOdW1iZXJPZkJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwp
KQorICAgICAgICByZXR1cm4gTlNfRVJST1JfRkFJTFVSRTsKKworICAgICphRGlza1NwYWNlQXZh
aWxhYmxlID0gbGlGcmVlQnl0ZXNBdmFpbGFibGVUb0NhbGxlci5RdWFkUGFydDsKKyAgICByZXR1
cm4gTlNfT0s7CisjZWxzZQogICAgIC8vIEF0dGVtcHQgdG8gY2hlY2sgZGlzayBzcGFjZSB1c2lu
ZyB0aGUgR2V0RGlza0ZyZWVTcGFjZUV4QSBmdW5jdGlvbi4gCiAgICAgLy8gLS0tIEZST00gTVNE
TiAtLS0KICAgICAvLyBUaGUgR2V0RGlza0ZyZWVTcGFjZUV4IGZ1bmN0aW9uIGlzIGF2YWlsYWJs
ZSBiZWdpbm5pbmcgd2l0aCBXaW5kb3dzIDk1IE9FTSBTZXJ2aWNlIAogICAgIC8vIFJlbGVhc2Ug
MiAoT1NSMikuIFRvIGRldGVybWluZSB3aGV0aGVyIEdldERpc2tGcmVlU3BhY2VFeCBpcyBhdmFp
bGFibGUsIGNhbGwgCiAgICAgLy8gR2V0TW9kdWxlSGFuZGxlIHRvIGdldCB0aGUgaGFuZGxlIHRv
IEtlcm5lbDMyLmRsbC4gVGhlbiB5b3UgY2FuIGNhbGwgR2V0UHJvY0FkZHJlc3MuIAogICAgIC8v
IEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2FsbCBMb2FkTGlicmFyeSBvbiBLZXJuZWwzMi5kbGwg
YmVjYXVzZSBpdCBpcyBhbHJlYWR5IGxvYWRlZCAKICAgICAvLyBpbnRvIGV2ZXJ5IHByb2Nlc3Mg
YWRkcmVzcyBzcGFjZS4KICAgICBmcEdldERpc2tGcmVlU3BhY2VFeEEgcEdldERpc2tGcmVlU3Bh
Y2VFeEEgPSAoZnBHZXREaXNrRnJlZVNwYWNlRXhBKQogICAgICAgICBHZXRQcm9jQWRkcmVzcyhH
ZXRNb2R1bGVIYW5kbGUoImtlcm5lbDMyLmRsbCIpLCAiR2V0RGlza0ZyZWVTcGFjZUV4QSIpOwog
ICAgIGlmIChwR2V0RGlza0ZyZWVTcGFjZUV4QSkKICAgICB7CiAgICAgICAgIFVMQVJHRV9JTlRF
R0VSIGxpRnJlZUJ5dGVzQXZhaWxhYmxlVG9DYWxsZXIsIGxpVG90YWxOdW1iZXJPZkJ5dGVzOwog
ICAgICAgICBpZiAocEdldERpc2tGcmVlU3BhY2VFeEEobVJlc29sdmVkUGF0aC5nZXQoKSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbGlGcmVlQnl0ZXNBdmFpbGFibGVUb0Nh
bGxlciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbGlUb3RhbE51bWJlck9m
Qnl0ZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpCiAgICAgICAg
IHsKICAgICAgICAgICAgICphRGlza1NwYWNlQXZhaWxhYmxlID0gbGlGcmVlQnl0ZXNBdmFpbGFi
bGVUb0NhbGxlci5RdWFkUGFydDsKICAgICAgICAgICAgIHJldHVybiBOU19PSzsKICAgICAgICAg
fQogICAgIH0KIAogICAgIC8vIHVzZSB0aGUgb2xkIG1ldGhvZCBvZiBnZXR0aW5nIGF2YWlsYWJs
ZSBkaXNrIHNwYWNlCi0gICAgY2hhciBhRHJpdmVbX01BWF9EUklWRSArIDJdOworICAgIFRDSEFS
IGFEcml2ZVtfTUFYX0RSSVZFICsgMl07CiAgICAgX3NwbGl0cGF0aCggbVJlc29sdmVkUGF0aC5n
ZXQoKSwgYURyaXZlLCBOVUxMLCBOVUxMLCBOVUxMKTsKICAgICBzdHJjYXQoYURyaXZlLCAiXFwi
KTsKIAogICAgIERXT1JEIGR3U2VjUGVyQ2x1cywgZHdCeXRlc1BlclNlYywgZHdGcmVlQ2x1cywg
ZHdUb3RhbENsdXM7CiAKICAgICBpZiAoR2V0RGlza0ZyZWVTcGFjZShhRHJpdmUsICZkd1NlY1Bl
ckNsdXMsICZkd0J5dGVzUGVyU2VjLCAmZHdGcmVlQ2x1cywgJmR3VG90YWxDbHVzKSkKICAgICB7
CiAgICAgICAgIF9faW50NjQgYnl0ZXMgPSBkd0ZyZWVDbHVzOwogICAgICAgICBieXRlcyAqPSBk
d1NlY1BlckNsdXM7CiAgICAgICAgIGJ5dGVzICo9IGR3Qnl0ZXNQZXJTZWM7CiAKICAgICAgICAg
KmFEaXNrU3BhY2VBdmFpbGFibGUgPSBieXRlczsKICAgICAgICAgcmV0dXJuIE5TX09LOwogICAg
IH0KLSNlbmRpZgorI2VuZGlmIC8vIF9VTklDT0RFCisjZWxzZQogICAgIC8vIFdJTkNFIEZJWAog
ICAgICphRGlza1NwYWNlQXZhaWxhYmxlID0gMDsKICAgICByZXR1cm4gTlNfT0s7CisjZW5kaWYK
IH0KIAogTlNfSU1FVEhPRElNUAogbnNMb2NhbEZpbGU6OkdldFBhcmVudChuc0lGaWxlICogKmFQ
YXJlbnQpCiB7CiAgICAgTlNfRU5TVVJFX0FSR19QT0lOVEVSKGFQYXJlbnQpOwogCi0gICAgbnND
QXV0b1N0cmluZyBwYXJlbnRQYXRoKG1Xb3JraW5nUGF0aCk7CisgICAgbnNXVEF1dG9TdHJpbmcg
cGFyZW50UGF0aChtV29ya2luZ1BhdGgpOwogCisjaWZkZWYgX1VOSUNPREUKKyAgICBQUkludDMy
IG9mZnNldCA9IHBhcmVudFBhdGguUkZpbmRDaGFyKCdcXCcpOworI2Vsc2UKICAgICAvLyBjYW5u
b3QgdXNlIG5zQ1N0cmluZzo6UkZpbmRDaGFyKCkgZHVlIHRvIDB4NWMgcHJvYmxlbQogICAgIFBS
SW50MzIgb2Zmc2V0ID0gKFBSSW50MzIpIChfbWJzcmNocigoY29uc3QgdW5zaWduZWQgY2hhciAq
KSBwYXJlbnRQYXRoLmdldCgpLCAnXFwnKQogICAgICAgICAgICAgICAgICAgICAgLSAoY29uc3Qg
dW5zaWduZWQgY2hhciAqKSBwYXJlbnRQYXRoLmdldCgpKTsKKyNlbmRpZgorCiAgICAgLy8gYWRk
aW5nIHRoaXMgb2Zmc2V0IGNoZWNrIHRoYXQgd2FzIHJlbW92ZWQgaW4gYnVnIDI0MTcwOCBmaXhl
cyBtYWlsCiAgICAgLy8gZGlyZWN0b3JpZXMgdGhhdCBhcmVuJ3QgcmVsYXRpdmUgdG8vdW5kZXJu
ZWF0aCB0aGUgcHJvZmlsZSBkaXIuCiAgICAgLy8gZS5nLiwgb24gYSBkaWZmZXJlbnQgZHJpdmUu
IEJlZm9yZSB5b3UgcmVtb3ZlIHRoZW0sIHBsZWFzZSBtYWtlCiAgICAgLy8gc3VyZSBsb2NhbCBt
YWlsIGRpcmVjdG9yaWVzIHRoYXQgYXJlbid0IHVuZGVybmVhdGggdGhlIHByb2ZpbGUgZGlyIHdv
cmsuCiAgICAgaWYgKG9mZnNldCA8IDApCiAgICAgICByZXR1cm4gTlNfRVJST1JfRklMRV9VTlJF
Q09HTklaRURfUEFUSDsKIAogICAgIGlmIChvZmZzZXQgPT0gMSAmJiBwYXJlbnRQYXRoWzBdID09
ICdcXCcpIHsKICAgICAgICAgKmFQYXJlbnQgPSBuc251bGw7CiAgICAgICAgIHJldHVybiBOU19P
SzsKICAgICB9CiAgICAgaWYgKG9mZnNldCA+IDApCiAgICAgICAgIHBhcmVudFBhdGguVHJ1bmNh
dGUob2Zmc2V0KTsKICAgICBlbHNlCiAgICAgICAgIHBhcmVudFBhdGguQXNzaWduTGl0ZXJhbCgi
XFxcXC4iKTsKIAogICAgIG5zQ09NUHRyPG5zSUxvY2FsRmlsZT4gbG9jYWxGaWxlOwotICAgIG5z
cmVzdWx0IHJ2ID0gTlNfTmV3TmF0aXZlTG9jYWxGaWxlKHBhcmVudFBhdGgsIG1Gb2xsb3dTeW1s
aW5rcywgZ2V0dGVyX0FkZFJlZnMobG9jYWxGaWxlKSk7CisgICAgbnNyZXN1bHQgcnYgPSBOU19O
ZXdXVExvY2FsRmlsZShwYXJlbnRQYXRoLCBtRm9sbG93U3ltbGlua3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnZXR0ZXJfQWRkUmVmcyhsb2NhbEZpbGUpKTsKIAogICAg
IGlmKE5TX1NVQ0NFRURFRChydikgJiYgbG9jYWxGaWxlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IENhbGxRdWVyeUludGVyZmFjZShsb2NhbEZpbGUsIGFQYXJlbnQpOwogICAgIH0KICAgICByZXR1
cm4gcnY7CiB9CiAKIE5TX0lNRVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpFeGlzdHMoUFJCb29sICpf
cmV0dmFsKQogewogICAgIE5TX0VOU1VSRV9BUkcoX3JldHZhbCk7CkBAIC0yMDcxLDExNyArMjM2
MCwxMTkgQEAgbnNMb2NhbEZpbGU6OklzRXhlY3V0YWJsZShQUkJvb2wgKl9yZXR2YQogfQogCiAK
IE5TX0lNRVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpJc0RpcmVjdG9yeShQUkJvb2wgKl9yZXR2YWwp
CiB7CiAgICAgTlNfRU5TVVJFX0FSRyhfcmV0dmFsKTsKIAogICAgIG5zcmVzdWx0IHJ2ID0gUmVz
b2x2ZUFuZFN0YXQoKTsKICAgICBpZiAoTlNfRkFJTEVEKHJ2KSkKICAgICAgICAgcmV0dXJuIHJ2
OwogCi0gICAgKl9yZXR2YWwgPSAobUZpbGVJbmZvNjQudHlwZSA9PSBQUl9GSUxFX0RJUkVDVE9S
WSk7IAorICAgICpfcmV0dmFsID0gKG1GaWxlSW5mbzY0LnN0X21vZGUgPT0gX1NfSUZESVIpOyAK
ICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIE5TX0lNRVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpJc0Zp
bGUoUFJCb29sICpfcmV0dmFsKQogewogICAgIE5TX0VOU1VSRV9BUkcoX3JldHZhbCk7CiAKICAg
ICBuc3Jlc3VsdCBydiA9IFJlc29sdmVBbmRTdGF0KCk7CiAgICAgaWYgKE5TX0ZBSUxFRChydikp
CiAgICAgICAgIHJldHVybiBydjsKIAotICAgICpfcmV0dmFsID0gKG1GaWxlSW5mbzY0LnR5cGUg
PT0gUFJfRklMRV9GSUxFKTsgCisgICAgKl9yZXR2YWwgPSAobUZpbGVJbmZvNjQuc3RfbW9kZSA9
PSBfU19JRlJFRyk7IAogICAgIHJldHVybiBOU19PSzsKIH0KIAogTlNfSU1FVEhPRElNUAogbnNM
b2NhbEZpbGU6OklzSGlkZGVuKFBSQm9vbCAqX3JldHZhbCkKIHsKICAgICByZXR1cm4gSGFzRmls
ZUF0dHJpYnV0ZShGSUxFX0FUVFJJQlVURV9ISURERU4sIF9yZXR2YWwpOwogfQogCiBuc3Jlc3Vs
dAogbnNMb2NhbEZpbGU6Okhhc0ZpbGVBdHRyaWJ1dGUoRFdPUkQgZmlsZUF0dHJpYiwgUFJCb29s
ICpfcmV0dmFsKQogewogICAgIE5TX0VOU1VSRV9BUkcoX3JldHZhbCk7CiAKICAgICBuc3Jlc3Vs
dCBydiA9IFJlc29sdmVBbmRTdGF0KCk7CiAgICAgaWYgKE5TX0ZBSUxFRChydikpCiAgICAgICAg
IHJldHVybiBydjsKIAogICAgIC8vIGdldCB0aGUgZmlsZSBhdHRyaWJ1dGVzIGZvciB0aGUgY29y
cmVjdCBpdGVtIGRlcGVuZGluZyBvbiBmb2xsb3dpbmcgc3ltbGlua3MKLSAgICBjb25zdCBjaGFy
ICpmaWxlUGF0aCA9IG1Gb2xsb3dTeW1saW5rcyA/IG1SZXNvbHZlZFBhdGguZ2V0KCkgOiBtV29y
a2luZ1BhdGguZ2V0KCk7CisgICAgY29uc3QgVENIQVIgKmZpbGVQYXRoID0gbUZvbGxvd1N5bWxp
bmtzID8gbVJlc29sdmVkUGF0aC5nZXQoKSA6IG1Xb3JraW5nUGF0aC5nZXQoKTsKICAgICBEV09S
RCB3b3JkID0gR2V0RmlsZUF0dHJpYnV0ZXMoZmlsZVBhdGgpOwogCiAgICAgKl9yZXR2YWwgPSAo
KHdvcmQgJiBmaWxlQXR0cmliKSAhPSAwKTsKICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIE5TX0lN
RVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpJc1N5bWxpbmsoUFJCb29sICpfcmV0dmFsKQogewogICAg
IE5TX0VOU1VSRV9BUkcoX3JldHZhbCk7CiAKICAgICAvLyB1bmxlc3MgaXQgaXMgYSB2YWxpZCBz
aG9ydGN1dCBwYXRoIGl0J3Mgbm90IGEgc3ltbGluawogICAgIGlmICghSXNTaG9ydGN1dFBhdGgo
bVdvcmtpbmdQYXRoLmdldCgpKSkKICAgICB7CiAgICAgICAgICpfcmV0dmFsID0gUFJfRkFMU0U7
CiAgICAgICAgIHJldHVybiBOU19PSzsKICAgICB9CiAKICAgICAvLyB3ZSBuZWVkIHRvIGtub3cg
aWYgdGhpcyBpcyBhIGZpbGUgb3IgZGlyZWN0b3J5CiAgICAgbnNyZXN1bHQgcnYgPSBSZXNvbHZl
QW5kU3RhdCgpOwogICAgIGlmIChOU19GQUlMRUQocnYpKQogICAgICAgICByZXR1cm4gcnY7CiAK
ICAgICAvLyBpdCdzIG9ubHkgYSBzaG9ydGN1dCBpZiBpdCBpcyBhIGZpbGUKLSAgICAqX3JldHZh
bCA9IChtRmlsZUluZm82NC50eXBlID09IFBSX0ZJTEVfRklMRSk7CisgICAgKl9yZXR2YWwgPSAo
bUZpbGVJbmZvNjQuc3RfbW9kZSA9PSBfU19JRlJFRyk7CiAgICAgcmV0dXJuIE5TX09LOwogfQog
CiBOU19JTUVUSE9ESU1QCiBuc0xvY2FsRmlsZTo6SXNTcGVjaWFsKFBSQm9vbCAqX3JldHZhbCkK
IHsKICAgICByZXR1cm4gSGFzRmlsZUF0dHJpYnV0ZShGSUxFX0FUVFJJQlVURV9TWVNURU0sIF9y
ZXR2YWwpOwogfQogCiBOU19JTUVUSE9ESU1QCiBuc0xvY2FsRmlsZTo6RXF1YWxzKG5zSUZpbGUg
KmluRmlsZSwgUFJCb29sICpfcmV0dmFsKQogewogICAgIE5TX0VOU1VSRV9BUkcoaW5GaWxlKTsK
ICAgICBOU19FTlNVUkVfQVJHKF9yZXR2YWwpOwogCi0gICAgbnNDQXV0b1N0cmluZyBpbkZpbGVQ
YXRoOwotICAgIGluRmlsZS0+R2V0TmF0aXZlUGF0aChpbkZpbGVQYXRoKTsKKyAgICBuc1dUQXV0
b1N0cmluZyBpbkZpbGVQYXRoOworICAgIGluRmlsZS0+R2V0V1RQYXRoKGluRmlsZVBhdGgpOwog
CiAgICAgLy8gTm9ybWFsaXplIGJvdGggcGF0aHMgdG8gdGhlIHNob3J0IGZvcm0sIGZhaWxpbmcg
YmFjayB0byBhIHN0cmluZwogICAgIC8vIGNvbXBhcmlzb24gb2YgdGhlIGxvbmcgZm9ybS4KIAot
ICAgIGNoYXIgdGhpc3Nob3J0W01BWF9QQVRIXTsKLSAgICBjaGFyIHRoYXRzaG9ydFtNQVhfUEFU
SF07CisgICAgVENIQVIgdGhpc3Nob3J0W01BWF9QQVRIXTsKKyAgICBUQ0hBUiB0aGF0c2hvcnRb
TUFYX1BBVEhdOwogCiAgICAgRFdPUkQgdGhpc3IgPSBHZXRTaG9ydFBhdGhOYW1lKG1Xb3JraW5n
UGF0aC5nZXQoKSwgdGhpc3Nob3J0LCBzaXplb2YodGhpc3Nob3J0KSk7CiAgICAgRFdPUkQgdGhh
dHIgPSBHZXRTaG9ydFBhdGhOYW1lKGluRmlsZVBhdGguZ2V0KCksIHRoYXRzaG9ydCwgc2l6ZW9m
KHRoYXRzaG9ydCkpOwogCi0gICAgaWYgKHRoaXNyICYmIHRoYXRyICYmIHRoaXNyIDwgc2l6ZW9m
KHRoaXNzaG9ydCkgJiYgdGhhdHIgPCBzaXplb2YodGhhdHNob3J0KSkgewotICAgICAgICAqX3Jl
dHZhbCA9IChfbWJzaWNtcCgodW5zaWduZWQgY2hhciopIHRoaXNzaG9ydCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIqKSB0aGF0c2hvcnQpID09IDApOworICAg
IGlmICh0aGlzciAmJiB0aGF0ciAmJgorICAgICAgICB0aGlzciA8IE5TX0FSUkFZX0xFTkdUSCh0
aGlzc2hvcnQpICYmCisgICAgICAgIHRoYXRyIDwgTlNfQVJSQVlfTEVOR1RIKHRoYXRzaG9ydCkp
IHsKKyAgICAgICAgKl9yZXR2YWwgPSAod3RzdHJpY21wKFNBRkVfTUJDQVNUKHRoaXNzaG9ydCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQUZFX01CQ0FTVCh0aGF0c2hvcnQpKSA9
PSAwKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgICpfcmV0dmFsID0gKF9tYnNpY21wKCh1
bnNpZ25lZCBjaGFyKikgaW5GaWxlUGF0aC5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHVuc2lnbmVkIGNoYXIqKSBtV29ya2luZ1BhdGguZ2V0KCkpID09IDApOworICAgICAg
ICAqX3JldHZhbCA9ICh3dHN0cmljbXAoU0FGRV9NQkNBU1QoaW5GaWxlUGF0aC5nZXQoKSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQUZFX01CQ0FTVChtV29ya2luZ1BhdGguZ2V0
KCkpKSA9PSAwKTsKICAgICB9CiAgICAgcmV0dXJuIE5TX09LOwogfQogCiBOU19JTUVUSE9ESU1Q
CiBuc0xvY2FsRmlsZTo6Q29udGFpbnMobnNJRmlsZSAqaW5GaWxlLCBQUkJvb2wgcmVjdXIsIFBS
Qm9vbCAqX3JldHZhbCkKIHsKICAgICAqX3JldHZhbCA9IFBSX0ZBTFNFOwogCiAgICAgbnNDQXV0
b1N0cmluZyBteUZpbGVQYXRoOwogICAgIGlmICggTlNfRkFJTEVEKEdldE5hdGl2ZVRhcmdldCht
eUZpbGVQYXRoKSkpCiAgICAgICAgIEdldE5hdGl2ZVBhdGgobXlGaWxlUGF0aCk7CkBAIC0yMjAx
LDQ1ICsyNDkyLDcyIEBAIG5zTG9jYWxGaWxlOjpDb250YWlucyhuc0lGaWxlICppbkZpbGUsIFAK
ICAgICAgICAgewogICAgICAgICAgICAgKl9yZXR2YWwgPSBQUl9UUlVFOwogICAgICAgICB9CiAK
ICAgICB9CiAKICAgICByZXR1cm4gTlNfT0s7CiB9CiAKIAogCiBOU19JTUVUSE9ESU1QCisjaWZk
ZWYgX1VOSUNPREUKK25zTG9jYWxGaWxlOjpHZXRUYXJnZXQobnNBU3RyaW5nICZfcmV0dmFsKQor
I2Vsc2UKIG5zTG9jYWxGaWxlOjpHZXROYXRpdmVUYXJnZXQobnNBQ1N0cmluZyAmX3JldHZhbCkK
KyNlbmRpZgogewogICAgIF9yZXR2YWwuVHJ1bmNhdGUoKTsKICNpZiBTVFJJQ1RfRkFLRV9TWU1M
SU5LUwogICAgIFBSQm9vbCBzeW1MaW5rOwogCiAgICAgbnNyZXN1bHQgcnYgPSBJc1N5bWxpbmso
JnN5bUxpbmspOwogICAgIGlmIChOU19GQUlMRUQocnYpKQogICAgICAgICByZXR1cm4gcnY7CiAK
ICAgICBpZiAoIXN5bUxpbmspCiAgICAgewogICAgICAgICByZXR1cm4gTlNfRVJST1JfRklMRV9J
TlZBTElEX1BBVEg7CiAgICAgfQogI2VuZGlmCiAgICAgUmVzb2x2ZUFuZFN0YXQoKTsKIAogICAg
IF9yZXR2YWwgPSBtUmVzb2x2ZWRQYXRoOwogICAgIHJldHVybiBOU19PSzsKIH0KIAorbnNyZXN1
bHQKKyNpZmRlZiBfVU5JQ09ERQorbnNMb2NhbEZpbGU6OkdldE5hdGl2ZVRhcmdldChuc0FDU3Ry
aW5nICZfcmV0dmFsKQoreworICAgIG5zQXV0b1N0cmluZyB0bXA7CisgICAgbnNyZXN1bHQgcnYg
PSBHZXRUYXJnZXQodG1wKTsKKyAgICBpZiAoTlNfU1VDQ0VFREVEKHJ2KSkKKyAgICAgICAgcnYg
PSBOU19Db3B5VW5pY29kZVRvTmF0aXZlKHRtcCwgX3JldHZhbCk7CisKKyAgICByZXR1cm4gcnY7
Cit9CisjZWxzZQorbnNMb2NhbEZpbGU6OkdldFRhcmdldChuc0FTdHJpbmcgJl9yZXR2YWwpCit7
CisgICAgbnNDQXV0b1N0cmluZyB0bXA7CisgICAgbnNyZXN1bHQgcnYgPSBHZXROYXRpdmVUYXJn
ZXQodG1wKTsKKyAgICBpZiAoTlNfU1VDQ0VFREVEKHJ2KSkKKyAgICAgICAgcnYgPSBOU19Db3B5
TmF0aXZlVG9Vbmljb2RlKHRtcCwgX3JldHZhbCk7CisKKyAgICByZXR1cm4gcnY7Cit9CisjZW5k
aWYKKwogCiAvKiBhdHRyaWJ1dGUgUFJCb29sIGZvbGxvd0xpbmtzOyAqLwogTlNfSU1FVEhPRElN
UAogbnNMb2NhbEZpbGU6OkdldEZvbGxvd0xpbmtzKFBSQm9vbCAqYUZvbGxvd0xpbmtzKQogewog
ICAgICphRm9sbG93TGlua3MgPSBtRm9sbG93U3ltbGlua3M7CiAgICAgcmV0dXJuIE5TX09LOwog
fQogTlNfSU1FVEhPRElNUAogbnNMb2NhbEZpbGU6OlNldEZvbGxvd0xpbmtzKFBSQm9vbCBhRm9s
bG93TGlua3MpCiB7CiAgICAgTWFrZURpcnR5KCk7CkBAIC0yMzA2LDYxICsyNjI0LDYwIEBAIE5T
X0lNRVRIT0RJTVAKIG5zTG9jYWxGaWxlOjpSZXZlYWwoKQogewogI2lmbmRlZiBXSU5DRQogICAg
IC8vIG1ha2Ugc3VyZSBtUmVzb2x2ZWRQYXRoIGlzIHNldAogICAgIG5zcmVzdWx0IHJ2ID0gUmVz
b2x2ZUFuZFN0YXQoKTsKICAgICBpZiAoTlNfRkFJTEVEKHJ2KSAmJiBydiAhPSBOU19FUlJPUl9G
SUxFX05PVF9GT1VORCkKICAgICAgICAgcmV0dXJuIHJ2OwogCiAgICAgLy8gdXNlIHRoZSBmdWxs
IHBhdGggdG8gZXhwbG9yZXIgZm9yIHNlY3VyaXR5CiAgICAgbnNDT01QdHI8bnNJTG9jYWxGaWxl
PiB3aW5EaXI7CiAgICAgcnYgPSBHZXRTcGVjaWFsU3lzdGVtRGlyZWN0b3J5KFdpbl9XaW5kb3dz
RGlyZWN0b3J5LCBnZXR0ZXJfQWRkUmVmcyh3aW5EaXIpKTsKICAgICBOU19FTlNVUkVfU1VDQ0VT
UyhydiwgcnYpOwotICAgIG5zQ0F1dG9TdHJpbmcgZXhwbG9yZXJQYXRoOwotICAgIHJ2ID0gd2lu
RGlyLT5HZXROYXRpdmVQYXRoKGV4cGxvcmVyUGF0aCk7ICAKKyAgICBuc1dUQXV0b1N0cmluZyBl
eHBsb3JlclBhdGg7CisgICAgcnYgPSB3aW5EaXItPkdldFdUUGF0aChleHBsb3JlclBhdGgpOyAg
CiAgICAgTlNfRU5TVVJFX1NVQ0NFU1MocnYsIHJ2KTsKLSAgICBleHBsb3JlclBhdGguQXBwZW5k
KCJcXGV4cGxvcmVyLmV4ZSIpOworICAgIGV4cGxvcmVyUGF0aC5BcHBlbmRMaXRlcmFsKCJcXGV4
cGxvcmVyLmV4ZSIpOwogCiAgICAgLy8gQWx3YXlzIG9wZW4gYSBuZXcgd2luZG93IGZvciBmaWxl
cyBiZWNhdXNlIFdpbjJLIGRvZXNuJ3QgYXBwZWFyIHRvIHNlbGVjdAogICAgIC8vIHRoZSBmaWxl
IGlmIGEgd2luZG93IHNob3dpbmcgdGhhdCBmb2xkZXIgd2FzIGFscmVhZHkgb3Blbi4gSWYgdGhl
IHJlc29sdmVkIAogICAgIC8vIHBhdGggaXMgYSBkaXJlY3RvcnkgdGhlbiBpbnN0ZWFkIG9mIG9w
ZW5pbmcgdGhlIHBhcmVudCBhbmQgc2VsZWN0aW5nIGl0LCAKICAgICAvLyB3ZSBvcGVuIHRoZSBk
aXJlY3RvcnkgaXRzZWxmLgotICAgIG5zQ0F1dG9TdHJpbmcgZXhwbG9yZXJQYXJhbXM7Ci0gICAg
aWYgKG1GaWxlSW5mbzY0LnR5cGUgIT0gUFJfRklMRV9ESVJFQ1RPUlkpIC8vIHZhbGlkIGJlY2F1
c2Ugd2UgUmVzb2x2ZUFuZFN0YXQgYWJvdmUKLSAgICAgICAgZXhwbG9yZXJQYXJhbXMuQXBwZW5k
KCIvbiwvc2VsZWN0LCIpOworICAgIG5zV1RBdXRvU3RyaW5nIGV4cGxvcmVyUGFyYW1zOworICAg
IGlmIChtRmlsZUluZm82NC5zdF9tb2RlICE9IF9TX0lGRElSKSAvLyB2YWxpZCBiZWNhdXNlIHdl
IFJlc29sdmVBbmRTdGF0IGFib3ZlCisgICAgICAgIGV4cGxvcmVyUGFyYW1zLkFwcGVuZExpdGVy
YWwoIi9uLC9zZWxlY3QsIik7CiAgICAgZXhwbG9yZXJQYXJhbXMuQXBwZW5kKCdcIicpOwogICAg
IGV4cGxvcmVyUGFyYW1zLkFwcGVuZChtUmVzb2x2ZWRQYXRoKTsKICAgICBleHBsb3JlclBhcmFt
cy5BcHBlbmQoJ1wiJyk7CiAKLSAgICBpZiAoOjpTaGVsbEV4ZWN1dGUoTlVMTCwgIm9wZW4iLCBl
eHBsb3JlclBhdGguZ2V0KCksIGV4cGxvcmVyUGFyYW1zLmdldCgpLCBOVUxMLCBTV19TSE9XTk9S
TUFMKSA8PSAoSElOU1RBTkNFKSAzMikKKyAgICBpZiAoOjpTaGVsbEV4ZWN1dGUoTlVMTCwgX1Qo
Im9wZW4iKSwgZXhwbG9yZXJQYXRoLmdldCgpLCBleHBsb3JlclBhcmFtcy5nZXQoKSwgTlVMTCwg
U1dfU0hPV05PUk1BTCkgPD0gKEhJTlNUQU5DRSkgMzIpCiAgICAgICAgIHJldHVybiBOU19FUlJP
Ul9GQUlMVVJFOwogI2VuZGlmCiAgCiAgICAgcmV0dXJuIE5TX09LOwogfQogCiAKIE5TX0lNRVRI
T0RJTVAKIG5zTG9jYWxGaWxlOjpMYXVuY2goKQogewotICAgIGNvbnN0IG5zQ1N0cmluZyAmcGF0
aCA9IG1Xb3JraW5nUGF0aDsKLQogICAgIC8vIHVzZSB0aGUgYXBwIHJlZ2lzdHJ5IG5hbWUgdG8g
bGF1bmNoIGEgc2hlbGwgZXhlY3V0ZS4uLi4KLSAgICBMT05HIHIgPSAoTE9ORykgOjpTaGVsbEV4
ZWN1dGUoIE5VTEwsIE5VTEwsIHBhdGguZ2V0KCksIE5VTEwsIE5VTEwsIFNXX1NIT1dOT1JNQUwp
OworICAgIExPTkcgciA9IChMT05HKSA6OlNoZWxsRXhlY3V0ZSggTlVMTCwgTlVMTCwgbVdvcmtp
bmdQYXRoLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg
TlVMTCwgU1dfU0hPV05PUk1BTCk7CiAKICAgICAvLyBpZiB0aGUgZmlsZSBoYXMgbm8gYXNzb2Np
YXRpb24sIHdlIGxhdW5jaCB3aW5kb3dzJyAid2hhdCBkbyB5b3Ugd2FudCB0byBkbyIgZGlhbG9n
CiAgICAgaWYgKHIgPT0gU0VfRVJSX05PQVNTT0MpIHsKLSAgICAgICAgbnNDQXV0b1N0cmluZyBz
aGVsbEFyZzsKLSAgICAgICAgc2hlbGxBcmcuQXNzaWduKE5TX0xJVEVSQUxfQ1NUUklORygic2hl
bGwzMi5kbGwsT3BlbkFzX1J1bkRMTCAiKSArIHBhdGgpOwotICAgICAgICByID0gKExPTkcpIDo6
U2hlbGxFeGVjdXRlKE5VTEwsIE5VTEwsICJSVU5ETEwzMi5FWEUiLCAgc2hlbGxBcmcuZ2V0KCks
CisgICAgICAgIG5zV1RBdXRvU3RyaW5nIHNoZWxsQXJnKF9UKCJzaGVsbDMyLmRsbCxPcGVuQXNf
UnVuRExMICIpKTsKKyAgICAgICAgc2hlbGxBcmcuQXBwZW5kKG1Xb3JraW5nUGF0aCk7CisgICAg
ICAgIHIgPSAoTE9ORykgOjpTaGVsbEV4ZWN1dGUoTlVMTCwgTlVMTCwgX1QoIlJVTkRMTDMyLkVY
RSIpLCAgc2hlbGxBcmcuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCwgU1dfU0hPV05PUk1BTCk7CiAgICAgfQogICAgIGlmIChyIDwgMzIpIHsKICAgICAgICAg
c3dpdGNoIChyKSB7CiAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgIGNhc2UgU0VfRVJSX09P
TToKICAgICAgICAgICAgIHJldHVybiBOU19FUlJPUl9PVVRfT0ZfTUVNT1JZOwogICAgICAgICAg
IGNhc2UgRVJST1JfRklMRV9OT1RfRk9VTkQ6CiAgICAgICAgICAgICByZXR1cm4gTlNfRVJST1Jf
RklMRV9OT1RfRk9VTkQ7CiAgICAgICAgICAgY2FzZSBFUlJPUl9QQVRIX05PVF9GT1VORDoKICAg
ICAgICAgICAgIHJldHVybiBOU19FUlJPUl9GSUxFX1VOUkVDT0dOSVpFRF9QQVRIOwogICAgICAg
ICAgIGNhc2UgRVJST1JfQkFEX0ZPUk1BVDoKQEAgLTIzOTgsMTUxICsyNzE1LDQ0IEBAIE5TX05l
d05hdGl2ZUxvY2FsRmlsZShjb25zdCBuc0FDU3RyaW5nICYKICAgICBpZiAoIXBhdGguSXNFbXB0
eSgpKSB7CiAgICAgICAgIG5zcmVzdWx0IHJ2ID0gZmlsZS0+SW5pdFdpdGhOYXRpdmVQYXRoKHBh
dGgpOwogICAgICAgICBpZiAoTlNfRkFJTEVEKHJ2KSkgewogICAgICAgICAgICAgTlNfUkVMRUFT
RShmaWxlKTsKICAgICAgICAgICAgIHJldHVybiBydjsKICAgICAgICAgfQogICAgIH0KIAogICAg
ICpyZXN1bHQgPSBmaWxlOwogICAgIHJldHVybiBOU19PSzsKIH0KIAotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLy8gVUNTMiBpbnRlcmZhY2UKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotbnNy
ZXN1bHQKLW5zTG9jYWxGaWxlOjpJbml0V2l0aFBhdGgoY29uc3QgbnNBU3RyaW5nICZmaWxlUGF0
aCkKLXsKLSAgICBuc0NBdXRvU3RyaW5nIHRtcDsKLSAgICBuc3Jlc3VsdCBydiA9IE5TX0NvcHlV
bmljb2RlVG9OYXRpdmUoZmlsZVBhdGgsIHRtcCk7Ci0gICAgaWYgKE5TX1NVQ0NFRURFRChydikp
Ci0gICAgICAgIHJldHVybiBJbml0V2l0aE5hdGl2ZVBhdGgodG1wKTsKLQotICAgIHJldHVybiBy
djsKLX0KLQotbnNyZXN1bHQKLW5zTG9jYWxGaWxlOjpBcHBlbmQoY29uc3QgbnNBU3RyaW5nICZu
b2RlKQotewotICAgIG5zQ0F1dG9TdHJpbmcgdG1wOwotICAgIG5zcmVzdWx0IHJ2ID0gTlNfQ29w
eVVuaWNvZGVUb05hdGl2ZShub2RlLCB0bXApOwotICAgIGlmIChOU19TVUNDRUVERUQocnYpKQot
ICAgICAgICByZXR1cm4gQXBwZW5kTmF0aXZlKHRtcCk7Ci0KLSAgICByZXR1cm4gcnY7Ci19Ci0K
LW5zcmVzdWx0Ci1uc0xvY2FsRmlsZTo6QXBwZW5kUmVsYXRpdmVQYXRoKGNvbnN0IG5zQVN0cmlu
ZyAmbm9kZSkKLXsKLSAgICBuc0NBdXRvU3RyaW5nIHRtcDsKLSAgICBuc3Jlc3VsdCBydiA9IE5T
X0NvcHlVbmljb2RlVG9OYXRpdmUobm9kZSwgdG1wKTsKLSAgICBpZiAoTlNfU1VDQ0VFREVEKHJ2
KSkKLSAgICAgICAgcmV0dXJuIEFwcGVuZFJlbGF0aXZlTmF0aXZlUGF0aCh0bXApOwotICAgIHJl
dHVybiBydjsKLX0KLQotbnNyZXN1bHQKLW5zTG9jYWxGaWxlOjpHZXRMZWFmTmFtZShuc0FTdHJp
bmcgJmFMZWFmTmFtZSkKLXsKLSAgICBuc0NBdXRvU3RyaW5nIHRtcDsKLSAgICBuc3Jlc3VsdCBy
diA9IEdldE5hdGl2ZUxlYWZOYW1lKHRtcCk7Ci0gICAgaWYgKE5TX1NVQ0NFRURFRChydikpCi0g
ICAgICAgIHJ2ID0gTlNfQ29weU5hdGl2ZVRvVW5pY29kZSh0bXAsIGFMZWFmTmFtZSk7Ci0KLSAg
ICByZXR1cm4gcnY7Ci19Ci0KIG5zcmVzdWx0Ci1uc0xvY2FsRmlsZTo6U2V0TGVhZk5hbWUoY29u
c3QgbnNBU3RyaW5nICZhTGVhZk5hbWUpCi17Ci0gICAgbnNDQXV0b1N0cmluZyB0bXA7Ci0gICAg
bnNyZXN1bHQgcnYgPSBOU19Db3B5VW5pY29kZVRvTmF0aXZlKGFMZWFmTmFtZSwgdG1wKTsKLSAg
ICBpZiAoTlNfU1VDQ0VFREVEKHJ2KSkKLSAgICAgICAgcmV0dXJuIFNldE5hdGl2ZUxlYWZOYW1l
KHRtcCk7Ci0KLSAgICByZXR1cm4gcnY7Ci19Ci0KLW5zcmVzdWx0Ci1uc0xvY2FsRmlsZTo6R2V0
UGF0aChuc0FTdHJpbmcgJl9yZXR2YWwpCi17Ci0gICAgcmV0dXJuIE5TX0NvcHlOYXRpdmVUb1Vu
aWNvZGUobVdvcmtpbmdQYXRoLCBfcmV0dmFsKTsKLX0KLQotbnNyZXN1bHQKLW5zTG9jYWxGaWxl
OjpDb3B5VG8obnNJRmlsZSAqbmV3UGFyZW50RGlyLCBjb25zdCBuc0FTdHJpbmcgJm5ld05hbWUp
Ci17Ci0gICAgaWYgKG5ld05hbWUuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gQ29weVRvTmF0
aXZlKG5ld1BhcmVudERpciwgRW1wdHlDU3RyaW5nKCkpOwotCi0gICAgbnNDQXV0b1N0cmluZyB0
bXA7Ci0gICAgbnNyZXN1bHQgcnYgPSBOU19Db3B5VW5pY29kZVRvTmF0aXZlKG5ld05hbWUsIHRt
cCk7Ci0gICAgaWYgKE5TX1NVQ0NFRURFRChydikpCi0gICAgICAgIHJldHVybiBDb3B5VG9OYXRp
dmUobmV3UGFyZW50RGlyLCB0bXApOwotCi0gICAgcmV0dXJuIHJ2OwotfQotCi1uc3Jlc3VsdAot
bnNMb2NhbEZpbGU6OkNvcHlUb0ZvbGxvd2luZ0xpbmtzKG5zSUZpbGUgKm5ld1BhcmVudERpciwg
Y29uc3QgbnNBU3RyaW5nICZuZXdOYW1lKQotewotICAgIGlmIChuZXdOYW1lLklzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuIENvcHlUb0ZvbGxvd2luZ0xpbmtzTmF0aXZlKG5ld1BhcmVudERpciwg
RW1wdHlDU3RyaW5nKCkpOwotCi0gICAgbnNDQXV0b1N0cmluZyB0bXA7Ci0gICAgbnNyZXN1bHQg
cnYgPSBOU19Db3B5VW5pY29kZVRvTmF0aXZlKG5ld05hbWUsIHRtcCk7Ci0gICAgaWYgKE5TX1NV
Q0NFRURFRChydikpCi0gICAgICAgIHJldHVybiBDb3B5VG9Gb2xsb3dpbmdMaW5rc05hdGl2ZShu
ZXdQYXJlbnREaXIsIHRtcCk7Ci0KLSAgICByZXR1cm4gcnY7Ci19Ci0KLW5zcmVzdWx0Ci1uc0xv
Y2FsRmlsZTo6TW92ZVRvKG5zSUZpbGUgKm5ld1BhcmVudERpciwgY29uc3QgbnNBU3RyaW5nICZu
ZXdOYW1lKQotewotICAgIGlmIChuZXdOYW1lLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIE1v
dmVUb05hdGl2ZShuZXdQYXJlbnREaXIsIEVtcHR5Q1N0cmluZygpKTsKLQotICAgIG5zQ0F1dG9T
dHJpbmcgdG1wOwotICAgIG5zcmVzdWx0IHJ2ID0gTlNfQ29weVVuaWNvZGVUb05hdGl2ZShuZXdO
YW1lLCB0bXApOwotICAgIGlmIChOU19TVUNDRUVERUQocnYpKQotICAgICAgICByZXR1cm4gTW92
ZVRvTmF0aXZlKG5ld1BhcmVudERpciwgdG1wKTsKLQotICAgIHJldHVybiBydjsKLX0KLQotbnNy
ZXN1bHQKLW5zTG9jYWxGaWxlOjpHZXRUYXJnZXQobnNBU3RyaW5nICZfcmV0dmFsKQorTlNfTmV3
TG9jYWxGaWxlKGNvbnN0IG5zQVN0cmluZyAmcGF0aCwgUFJCb29sIGZvbGxvd0xpbmtzLCBuc0lM
b2NhbEZpbGUqICpyZXN1bHQpCiB7Ci0gICAgbnNDQXV0b1N0cmluZyB0bXA7Ci0gICAgbnNyZXN1
bHQgcnYgPSBHZXROYXRpdmVUYXJnZXQodG1wKTsKLSAgICBpZiAoTlNfU1VDQ0VFREVEKHJ2KSkK
LSAgICAgICAgcnYgPSBOU19Db3B5TmF0aXZlVG9Vbmljb2RlKHRtcCwgX3JldHZhbCk7CisgICAg
bnNMb2NhbEZpbGUqIGZpbGUgPSBuZXcgbnNMb2NhbEZpbGUoKTsKKyAgICBpZiAoZmlsZSA9PSBu
c251bGwpCisgICAgICAgIHJldHVybiBOU19FUlJPUl9PVVRfT0ZfTUVNT1JZOworICAgIE5TX0FE
RFJFRihmaWxlKTsKIAotICAgIHJldHVybiBydjsKLX0KKyAgICBmaWxlLT5TZXRGb2xsb3dMaW5r
cyhmb2xsb3dMaW5rcyk7CiAKLW5zcmVzdWx0Ci1OU19OZXdMb2NhbEZpbGUoY29uc3QgbnNBU3Ry
aW5nICZwYXRoLCBQUkJvb2wgZm9sbG93TGlua3MsIG5zSUxvY2FsRmlsZSogKnJlc3VsdCkKLXsK
LSAgICBuc0NBdXRvU3RyaW5nIGJ1ZjsKLSAgICBuc3Jlc3VsdCBydiA9IE5TX0NvcHlVbmljb2Rl
VG9OYXRpdmUocGF0aCwgYnVmKTsKLSAgICBpZiAoTlNfRkFJTEVEKHJ2KSkgewotICAgICAgICAq
cmVzdWx0ID0gbnNudWxsOwotICAgICAgICByZXR1cm4gcnY7CisgICAgaWYgKCFwYXRoLklzRW1w
dHkoKSkgeworICAgICAgICBuc3Jlc3VsdCBydiA9IGZpbGUtPkluaXRXaXRoUGF0aChwYXRoKTsK
KyAgICAgICAgaWYgKE5TX0ZBSUxFRChydikpIHsKKyAgICAgICAgICAgIE5TX1JFTEVBU0UoZmls
ZSk7CisgICAgICAgICAgICByZXR1cm4gcnY7CisgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJu
IE5TX05ld05hdGl2ZUxvY2FsRmlsZShidWYsIGZvbGxvd0xpbmtzLCByZXN1bHQpOworCisgICAg
KnJlc3VsdCA9IGZpbGU7CisgICAgcmV0dXJuIE5TX09LOwogfQogCiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAvLyBuc0xvY2FsRmlsZSA8c3RhdGljIG1lbWJlcnM+CiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKIHZvaWQKIG5zTG9jYWxGaWxlOjpHbG9iYWxJbml0KCkKIHsKICNpZm5kZWYgV0lO
Q0UKICAgICBuc3Jlc3VsdCBydiA9IE5TX0NyZWF0ZVNob3J0Y3V0UmVzb2x2ZXIoKTsKICAgICBO
U19BU1NFUlRJT04oTlNfU1VDQ0VFREVEKHJ2KSwgIlNob3J0Y3V0IHJlc29sdmVyIGNvdWxkIG5v
dCBiZSBjcmVhdGVkIik7CkBAIC0yNjAwLDIyICsyODEwLDIyIEBAIE5TX0lNRVRIT0RJTVAgbnNE
cml2ZUVudW1lcmF0b3I6OkdldE5leHQKIHsKICNpZmRlZiBXSU5DRQogICAgIG5zSUxvY2FsRmls
ZSAqZmlsZTsKICAgICBuc3Jlc3VsdCBydiA9IE5TX05ld05hdGl2ZUxvY2FsRmlsZShuc0RlcGVu
ZGVudENTdHJpbmcoIlxcIiksIFBSX0ZBTFNFLCAmZmlsZSk7CiAgICAgKmFOZXh0ID0gZmlsZTsK
ICNlbHNlCiAgICAgLyogR2V0TG9naWNhbERyaXZlcyBzdG9yZWQgaW4gbUxldHRlciBpcyBhIGNv
bmNhdGVuYXRpb24KICAgICAgKiBvZiBudWxsIHRlcm1pbmF0ZWQgc3RyaW5ncywgZm9sbG93ZWQg
YnkgYSBudWxsIHRlcm1pbmF0b3IuICovCiAgICAgaWYgKCEqbUxldHRlcikgewogICAgICAgICAq
YU5leHQgPSBuc251bGw7CiAgICAgICAgIHJldHVybiBOU19PSzsKICAgICB9Ci0gICAgY29uc3Qg
Y2hhciAqZHJpdmUgPSBtTGV0dGVyOwotICAgIG1MZXR0ZXIgKz0gc3RybGVuKGRyaXZlKSArIDE7
CisgICAgY29uc3QgVENIQVIgKmRyaXZlID0gbUxldHRlcjsKKyAgICBtTGV0dGVyICs9IF90Y3Nj
bGVuKGRyaXZlKSArIDE7CiAgICAgbnNJTG9jYWxGaWxlICpmaWxlOwogICAgIG5zcmVzdWx0IHJ2
ID0gCi0gICAgICAgIE5TX05ld05hdGl2ZUxvY2FsRmlsZShuc0RlcGVuZGVudENTdHJpbmcoZHJp
dmUpLCBQUl9GQUxTRSwgJmZpbGUpOworICAgICAgICBOU19OZXdXVExvY2FsRmlsZShuc1dURGVw
ZW5kZW50U3RyaW5nKGRyaXZlKSwgUFJfRkFMU0UsICZmaWxlKTsKIAogICAgICphTmV4dCA9IGZp
bGU7CiAjZW5kaWYKICAgICByZXR1cm4gcnY7CiB9CkluZGV4OiB4cGNvbS9pby9uc0xvY2FsRmls
ZVdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L21vemlsbGEveHBjb20vaW8vbnNM
b2NhbEZpbGVXaW4uaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMgpkaWZmIC11IC0xIC0yIC1w
IC1kIC1yMS4yMiBuc0xvY2FsRmlsZVdpbi5oCi0tLSB4cGNvbS9pby9uc0xvY2FsRmlsZVdpbi5o
CTI1IEZlYiAyMDA1IDA5OjAwOjQ1IC0wMDAwCTEuMjIKKysrIHhwY29tL2lvL25zTG9jYWxGaWxl
V2luLmgJNSBPY3QgMjAwNSAxNjozMDozNiAtMDAwMApAQCAtNDAsMjUgKzQwLDMwIEBACiAKICNp
Zm5kZWYgX25zTG9jYWxGaWxlV0lOX0hfCiAjZGVmaW5lIF9uc0xvY2FsRmlsZVdJTl9IXwogCiAj
aW5jbHVkZSAibnNjb3JlLmgiCiAjaW5jbHVkZSAibnNFcnJvci5oIgogI2luY2x1ZGUgIm5zU3Ry
aW5nLmgiCiAjaW5jbHVkZSAibnNDUlQuaCIKICNpbmNsdWRlICJuc0lGaWxlLmgiCiAjaW5jbHVk
ZSAibnNJRmFjdG9yeS5oIgogI2luY2x1ZGUgIm5zSUxvY2FsRmlsZVdpbi5oIgogCi0jaW5jbHVk
ZSAid2luZG93cy5oIgorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDx0Y2hhci5oPgor
I2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNpbmNsdWRl
ICJuc1dpbmRvd3NVbmljb2RlLmgiCiAKIC8vIEZvciBvbGRlciB2ZXJzaW9uICg8Ni4wKSBvZiB0
aGUgVkMgQ29tcGlsZXIKICNpZiAoX01TQ19WRVIgPT0gMTEwMCkKICNpbmNsdWRlIDxvYmpiYXNl
Lmg+CiBERUZJTkVfT0xFR1VJRChJSURfSVBlcnNpc3RGaWxlLCAweDAwMDAwMTBCTCwgMCwgMCk7
CiAjZW5kaWYKIAogI2luY2x1ZGUgInNobG9iai5oIgogCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4K
IAogY2xhc3MgbnNMb2NhbEZpbGUgOiBwdWJsaWMgbnNJTG9jYWxGaWxlV2luCkBAIC04NSwzMyAr
OTAsMzMgQEAgcHVibGljOgogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIEdsb2JhbEluaXQoKTsK
ICAgICBzdGF0aWMgdm9pZCBHbG9iYWxTaHV0ZG93bigpOwogCiBwcml2YXRlOgogICAgIG5zTG9j
YWxGaWxlKGNvbnN0IG5zTG9jYWxGaWxlJiBvdGhlcik7CiAgICAgfm5zTG9jYWxGaWxlKCkge30K
IAogICAgIFBSUGFja2VkQm9vbCBtRGlydHk7ICAgICAgICAgICAgLy8gY2FjaGVkIGluZm9ybWF0
aW9uIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiB0aGlzIGlzIFBSX0ZBTFNFCiAgICAgUFJQYWNrZWRC
b29sIG1Gb2xsb3dTeW1saW5rczsgICAvLyBzaG91bGQgd2UgZm9sbG93IHN5bWxpbmtzIHdoZW4g
d29ya2luZyBvbiB0aGlzIGZpbGUKICAgICAKICAgICAvLyB0aGlzIHN0cmluZyB3aWxsIGFsd2F5
cyBiZSBpbiBuYXRpdmUgZm9ybWF0IQotICAgIG5zQ1N0cmluZyBtV29ya2luZ1BhdGg7CisgICAg
bnNXVFN0cmluZyBtV29ya2luZ1BhdGg7CiAgICAgCiAgICAgLy8gdGhpcyB3aWxsIGJlIHRoZSBy
ZXNvbHZlZCBwYXRoIG9mIHNob3J0Y3V0cywgaXQgd2lsbCAqTkVWRVIqIGJlIHJldHVybmVkIHRv
IHRoZSB1c2VyCi0gICAgbnNDU3RyaW5nIG1SZXNvbHZlZFBhdGg7CisgICAgbnNXVFN0cmluZyBt
UmVzb2x2ZWRQYXRoOwogICAgIAotICAgIFBSRmlsZUluZm82NCBtRmlsZUluZm82NDsKKyAgICBz
dHJ1Y3QgX3N0YXRpNjQgbUZpbGVJbmZvNjQ7CiAKICAgICB2b2lkIE1ha2VEaXJ0eSgpIHsgbURp
cnR5ID0gUFJfVFJVRTsgfQogCiAgICAgbnNyZXN1bHQgUmVzb2x2ZUFuZFN0YXQoKTsKICAgICBu
c3Jlc3VsdCBSZXNvbHZlU2hvcnRjdXQoKTsKICAgICAKLSAgICBuc3Jlc3VsdCBDb3B5TW92ZShu
c0lGaWxlICpuZXdQYXJlbnREaXIsIGNvbnN0IG5zQUNTdHJpbmcgJm5ld05hbWUsIFBSQm9vbCBm
b2xsb3dTeW1saW5rcywgUFJCb29sIG1vdmUpOwotICAgIG5zcmVzdWx0IENvcHlTaW5nbGVGaWxl
KG5zSUZpbGUgKnNvdXJjZSwgbnNJRmlsZSogZGVzdCwgY29uc3QgbnNBQ1N0cmluZyAmbmV3TmFt
ZSwgUFJCb29sIGZvbGxvd1N5bWxpbmtzLCBQUkJvb2wgbW92ZSk7CisgICAgbnNyZXN1bHQgQ29w
eU1vdmUobnNJRmlsZSAqbmV3UGFyZW50RGlyLCBjb25zdCBuc0FXVFN0cmluZyAmbmV3TmFtZSwg
UFJCb29sIGZvbGxvd1N5bWxpbmtzLCBQUkJvb2wgbW92ZSk7CisgICAgbnNyZXN1bHQgQ29weVNp
bmdsZUZpbGUobnNJRmlsZSAqc291cmNlLCBuc0lGaWxlKiBkZXN0LCBjb25zdCBuc0FXVFN0cmlu
ZyAmbmV3TmFtZSwgUFJCb29sIGZvbGxvd1N5bWxpbmtzLCBQUkJvb2wgbW92ZSk7CiAKLSAgICBu
c3Jlc3VsdCBTZXRNb2REYXRlKFBSSW50NjQgYUxhc3RNb2RpZmllZFRpbWUsIGNvbnN0IGNoYXIg
KmZpbGVQYXRoKTsKKyAgICBuc3Jlc3VsdCBTZXRNb2REYXRlKFBSSW50NjQgYUxhc3RNb2RpZmll
ZFRpbWUsIGNvbnN0IFRDSEFSICpmaWxlUGF0aCk7CiAgICAgbnNyZXN1bHQgSGFzRmlsZUF0dHJp
YnV0ZShEV09SRCBmaWxlQXR0cmliLCBQUkJvb2wgKl9yZXR2YWwpOwotICAgIG5zcmVzdWx0IEFw
cGVuZE5hdGl2ZUludGVybmFsKGNvbnN0IG5zQUZsYXRDU3RyaW5nICZub2RlLCBQUkJvb2wgbXVs
dGlwbGVDb21wb25lbnRzKTsKKyAgICBuc3Jlc3VsdCBBcHBlbmRJbnRlcm5hbChjb25zdCBuc0FG
bGF0V1RTdHJpbmcgJm5vZGUsIFBSQm9vbCBtdWx0aXBsZUNvbXBvbmVudHMpOwogfTsKIAogI2Vu
ZGlmCkluZGV4OiB4cGNvbS90aHJlYWRzL25zUHJvY2Vzc0NvbW1vbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2c3Jvb3QvbW96aWxsYS94cGNvbS90aHJlYWRzL25zUHJvY2Vzc0NvbW1vbi5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTgKZGlmZiAtdSAtMSAtMiAtcCAtZCAtcjEuMTgg
bnNQcm9jZXNzQ29tbW9uLmNwcAotLS0geHBjb20vdGhyZWFkcy9uc1Byb2Nlc3NDb21tb24uY3Bw
CTIgU2VwIDIwMDUgMTg6MDA6MjMgLTAwMDAJMS4xOAorKysgeHBjb20vdGhyZWFkcy9uc1Byb2Nl
c3NDb21tb24uY3BwCTUgT2N0IDIwMDUgMTY6MzA6MzcgLTAwMDAKQEAgLTUyLDI0ICs1MiwyNyBA
QAogI2luY2x1ZGUgInByaW8uaCIKICNpbmNsdWRlICJwcmVudi5oIgogI2luY2x1ZGUgIm5zQ1JU
LmgiCiAKICNpbmNsdWRlIDxzdGRsaWIuaD4KIAogI2lmIGRlZmluZWQoWFBfV0lOKQogI2luY2x1
ZGUgInBybWVtLmgiCiAjaW5jbHVkZSAibnNTdHJpbmcuaCIKICNpbmNsdWRlICJuc0xpdGVyYWxT
dHJpbmcuaCIKICNpbmNsdWRlICJuc1JlYWRhYmxlVXRpbHMuaCIKICNpbmNsdWRlIDx3aW5kb3dz
Lmg+CisjaW5jbHVkZSA8dGNoYXIuaD4KKyNpbmNsdWRlICJuc1dpbmRvd3NVbmljb2RlLmgiCisj
aW5jbHVkZSAibnNOYXRpdmVDaGFyc2V0VXRpbHMuaCIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChY
UF9NQUNPU1gpCiAjaW5jbHVkZSA8UHJvY2Vzc2VzLmg+CiAjaW5jbHVkZSAibnNJTG9jYWxGaWxl
TWFjLmgiCiAjZW5kaWYKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KIC8vIG5zSVByb2Nlc3MgaW1wbGVtZW50
YXRpb24KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS8vCiBOU19JTVBMX0lTVVBQT1JUUzEobnNQcm9jZXNzLCBuc0lQ
cm9jZXNzKQogCkBAIC05Nyw2NSArMTAwLDc1IEBAIG5zUHJvY2Vzczo6SW5pdChuc0lGaWxlKiBl
eGVjdXRhYmxlKQogICAgIC8vR2V0IHRoZSBwYXRoIGJlY2F1c2UgaXQgaXMgbmVlZGVkIGJ5IHRo
ZSBOU1BSIHByb2Nlc3MgY3JlYXRpb24KICNpZmRlZiBYUF9XSU4gCiAgICAgcnYgPSBtRXhlY3V0
YWJsZS0+R2V0TmF0aXZlVGFyZ2V0KG1UYXJnZXRQYXRoKTsKICAgICBpZiAoTlNfRkFJTEVEKHJ2
KSB8fCBtVGFyZ2V0UGF0aC5Jc0VtcHR5KCkgKQogI2VuZGlmCiAgICAgICAgIHJ2ID0gbUV4ZWN1
dGFibGUtPkdldE5hdGl2ZVBhdGgobVRhcmdldFBhdGgpOwogCiAgICAgcmV0dXJuIHJ2OwogfQog
CiAKICNpZiBkZWZpbmVkKFhQX1dJTikKLXN0YXRpYyBpbnQgYXNzZW1ibGVDbWRMaW5lKGNoYXIg
KmNvbnN0ICphcmd2LCBjaGFyICoqY21kTGluZSkKK3N0YXRpYyBpbnQgYXNzZW1ibGVDbWRMaW5l
KGNoYXIgKmNvbnN0ICphcmd2LCBUQ0hBUiAqKmNtZExpbmUpCiB7CiAgICAgY2hhciAqY29uc3Qg
KmFyZzsKLSAgICBjaGFyICpwLCAqcTsKKyAgICBUQ0hBUiAqcDsKKyAgICBjb25zdCBUQ0hBUiAq
cTsKICAgICBpbnQgY21kTGluZVNpemU7CiAgICAgaW50IG51bUJhY2tzbGFzaGVzOwogICAgIGlu
dCBpOwogICAgIGludCBhcmdOZWVkUXVvdGVzOwogCiAgICAgLyoKICAgICAgKiBGaW5kIG91dCBo
b3cgbGFyZ2UgdGhlIGNvbW1hbmQgbGluZSBidWZmZXIgc2hvdWxkIGJlLgogICAgICAqLwogICAg
IGNtZExpbmVTaXplID0gMDsKICAgICBmb3IgKGFyZyA9IGFyZ3Y7ICphcmc7IGFyZysrKSB7CiAg
ICAgICAgIC8qCiAgICAgICAgICAqIFwgYW5kICIgbmVlZCB0byBiZSBlc2NhcGVkIGJ5IGEgXC4g
IEluIHRoZSB3b3JzdCBjYXNlLAogICAgICAgICAgKiBldmVyeSBjaGFyYWN0ZXIgaXMgYSBcIG9y
ICIsIHNvIHRoZSBzdHJpbmcgb2YgbGVuZ3RoCiAgICAgICAgICAqIG1heSBkb3VibGUuICBJZiB3
ZSBxdW90ZSBhbiBhcmd1bWVudCwgdGhhdCBuZWVkcyB0d28gIi4KICAgICAgICAgICogRmluYWxs
eSwgd2UgbmVlZCBhIHNwYWNlIGJldHdlZW4gYXJndW1lbnRzLCBhbmQKICAgICAgICAgICogYSBu
dWxsIGJ5dGUgYXQgdGhlIGVuZCBvZiBjb21tYW5kIGxpbmUuCiAgICAgICAgICAqLwotICAgICAg
ICBjbWRMaW5lU2l6ZSArPSAyICogc3RybGVuKCphcmcpICAvKiBcIGFuZCAiIG5lZWQgdG8gYmUg
ZXNjYXBlZCAqLwotICAgICAgICAgICAgICAgICsgMiAgICAgICAgICAgICAgICAgICAgICAvKiB3
ZSBxdW90ZSBldmVyeSBhcmd1bWVudCAqLwotICAgICAgICAgICAgICAgICsgMTsgICAgICAgICAg
ICAgICAgICAgICAvKiBzcGFjZSBpbiBiZXR3ZWVuLCBvciBmaW5hbCBudWxsICovCisgICAgICAg
IGNtZExpbmVTaXplICs9CisgICAgICAgICAgICAoMiAqIHN0cmxlbigqYXJnKSArIC8qIFwgYW5k
ICIgbmVlZCB0byBiZSBlc2NhcGVkICovCisgICAgICAgICAgICAgMiArICAgICAgICAgICAgICAg
IC8qIHdlIHF1b3RlIGV2ZXJ5IGFyZ3VtZW50ICovCisgICAgICAgICAgICAgKyAxKSAqICAgICAg
ICAgICAgIC8qIHNwYWNlIGluIGJldHdlZW4sIG9yIGZpbmFsIG51bGwgKi8KKyAgICAgICAgICAg
IHNpemVvZihUQ0hBUik7CiAgICAgfQotICAgIHAgPSAqY21kTGluZSA9IChjaGFyICopIFBSX01B
TExPQyhjbWRMaW5lU2l6ZSk7CisgICAgcCA9ICpjbWRMaW5lID0gKFRDSEFSICopIFBSX01BTExP
QyhjbWRMaW5lU2l6ZSk7CiAgICAgaWYgKHAgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gLTE7
CiAgICAgfQogCiAgICAgZm9yIChhcmcgPSBhcmd2OyAqYXJnOyBhcmcrKykgewogICAgICAgICAv
KiBBZGQgYSBzcGFjZSB0byBzZXBhcmF0ZXMgdGhlIGFyZ3VtZW50cyAqLwogICAgICAgICBpZiAo
YXJnICE9IGFyZ3YpIHsKICAgICAgICAgICAgICpwKysgPSAnICc7IAogICAgICAgICB9CisjaWZk
ZWYgX1VOSUNPREUKKyAgICAgICAgbnNBdXRvU3RyaW5nIGFyZ0NvbnZlcnRlZDsKKyAgICAgICAg
TlNfQ29weU5hdGl2ZVRvVW5pY29kZShuc0RlcGVuZGVudENTdHJpbmcoKmFyZyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXJnQ29udmVydGVkKTsKKyAgICAgICAgcSA9IGFyZ0Nv
bnZlcnRlZC5nZXQoKTsKKyNlbHNlCiAgICAgICAgIHEgPSAqYXJnOworI2VuZGlmCiAgICAgICAg
IG51bUJhY2tzbGFzaGVzID0gMDsKICAgICAgICAgYXJnTmVlZFF1b3RlcyA9IDA7CiAKICAgICAg
ICAgLyogSWYgdGhlIGFyZ3VtZW50IGNvbnRhaW5zIHdoaXRlIHNwYWNlLCBpdCBuZWVkcyB0byBi
ZSBxdW90ZWQuICovCi0gICAgICAgIGlmIChzdHJwYnJrKCphcmcsICIgXGZcblxyXHRcdiIpKSB7
CisgICAgICAgIGlmIChfdGNzcGJyayhxLCBfVCgiIFxmXG5cclx0XHYiKSkpIHsKICAgICAgICAg
ICAgIGFyZ05lZWRRdW90ZXMgPSAxOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGFyZ05lZWRR
dW90ZXMpIHsKICAgICAgICAgICAgICpwKysgPSAnIic7CiAgICAgICAgIH0KICAgICAgICAgd2hp
bGUgKCpxKSB7CiAgICAgICAgICAgICBpZiAoKnEgPT0gJ1xcJykgewogICAgICAgICAgICAgICAg
IG51bUJhY2tzbGFzaGVzKys7CiAgICAgICAgICAgICAgICAgcSsrOwogICAgICAgICAgICAgfSBl
bHNlIGlmICgqcSA9PSAnIicpIHsKICAgICAgICAgICAgICAgICBpZiAobnVtQmFja3NsYXNoZXMp
IHsKQEAgLTIzMSwyNSArMjQ0LDI1IEBAIG5zUHJvY2Vzczo6UnVuKFBSQm9vbCBibG9ja2luZywg
Y29uc3QgY2gKICAgICBmb3IgKGk9MDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgbXlfYXJn
dltpKzFdID0gTlNfQ09OU1RfQ0FTVChjaGFyKiwgYXJnc1tpXSk7CiAgICAgfQogICAgIC8vIHdl
IG5lZWQgdG8gc2V0IGFyZ3ZbMF0gdG8gdGhlIHByb2dyYW0gbmFtZS4KICAgICBteV9hcmd2WzBd
ID0gbVRhcmdldFBhdGguQmVnaW5Xcml0aW5nKCk7CiAgICAgLy8gbnVsbCB0ZXJtaW5hdGUgdGhl
IGFycmF5CiAgICAgbXlfYXJndltjb3VudCsxXSA9IE5VTEw7CiAKICNpZiBkZWZpbmVkKFhQX1dJ
TikgJiYgIWRlZmluZWQgKFdJTkNFKSAvKiB3aW5jZSB1c2VzIG5zcHIgKi8KICAgICBTVEFSVFVQ
SU5GTyBzdGFydHVwSW5mbzsKICAgICBQUk9DRVNTX0lORk9STUFUSU9OIHByb2NJbmZvOwogICAg
IEJPT0wgcmV0VmFsOwotICAgIGNoYXIgKmNtZExpbmU7CisgICAgVENIQVIgKmNtZExpbmU7CiAK
ICAgICBpZiAoYXNzZW1ibGVDbWRMaW5lKG15X2FyZ3YsICZjbWRMaW5lKSA9PSAtMSkgewogICAg
ICAgICBuc01lbW9yeTo6RnJlZShteV9hcmd2KTsKICAgICAgICAgcmV0dXJuIE5TX0VSUk9SX0ZJ
TEVfRVhFQ1VUSU9OX0ZBSUxFRDsgICAgCiAgICAgfQogCiAgICAgWmVyb01lbW9yeSgmc3RhcnR1
cEluZm8sIHNpemVvZihzdGFydHVwSW5mbykpOwogICAgIHN0YXJ0dXBJbmZvLmNiID0gc2l6ZW9m
KHN0YXJ0dXBJbmZvKTsKIAogICAgIHJldFZhbCA9IENyZWF0ZVByb2Nlc3MoTlVMTCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIE5TX0NPTlNUX0NBU1QoY2hhciosIG1UYXJnZXRQYXRo
LmdldCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZExpbmUsCkluZGV4OiB4cGNv
bS93aW5kYmdkbGcvd2luZGJnZGxnLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9t
b3ppbGxhL3hwY29tL3dpbmRiZ2RsZy93aW5kYmdkbGcuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjYKZGlmZiAtdSAtMSAtMiAtcCAtZCAtcjEuNiB3aW5kYmdkbGcuY3BwCi0tLSB4cGNvbS93
aW5kYmdkbGcvd2luZGJnZGxnLmNwcAkzMSBBdWcgMjAwNSAxNzoyMDowOCAtMDAwMAkxLjYKKysr
IHhwY29tL3dpbmRiZ2RsZy93aW5kYmdkbGcuY3BwCTUgT2N0IDIwMDUgMTY6MzA6MzcgLTAwMDAK
QEAgLTUwLDQyICs1MCw0MiBAQCBXaW5NYWluKEhJTlNUQU5DRSAgaEluc3RhbmNlLCBISU5TVEFO
Q0UgCiAgICAgLyogc3VwcG9ydCBmb3IgYXV0byBhbnN3ZXJpbmcgYmFzZWQgb24gd29yZHMgaW4g
dGhlIGFzc2VydGlvbi4KICAgICAgKiB0aGUgYXNzZXJ0aW9uIG1lc3NhZ2UgaXMgc2VudCBhcyBh
IHNlcmllcyBvZiBhcmd1ZW1lbnRzICh3b3JkcykgdG8gdGhlIGNvbW1hbmRsaW5lLgogICAgICAq
IHNldCBhICJ3b3JkIiB0byAweGZmZmZmZmZmIHRvIGxldCB0aGUgd29yZCBub3QgYWZmZWN0IHRo
aXMgY29kZS4KICAgICAgKiBzZXQgYSAid29yZCIgdG8gMHhmZmZmZmZmZSB0byBzaG93IHRoZSBk
aWFsb2cuCiAgICAgICogc2V0IGEgIndvcmQiIHRvIDB4NSB0byBpZ25vcmUgKHByb2dyYW0gc2hv
dWxkIGNvbnRpbnVlKS4KICAgICAgKiBzZXQgYSAid29yZCIgdG8gMHg0IHRvIHJldHJ5IChzaG91
bGQgZmFsbCBpbnRvIGRlYnVnZ2VyKS4KICAgICAgKiBzZXQgYSAid29yZCIgdG8gMHgzIHRvIGFi
b3J0IChkaWUpLgogICAgICAqLwogICAgIERXT1JEIHJlZ1R5cGU7CiAgICAgRFdPUkQgcmVnVmFs
dWUgPSAtMTsKICAgICBEV09SRCByZWdMZW5ndGggPSBzaXplb2YgcmVnVmFsdWU7CiAgICAgSEtF
WSBoa2V5Q1UsIGhrZXlMTTsKLSAgICBSZWdPcGVuS2V5RXgoSEtFWV9DVVJSRU5UX1VTRVIsICJT
b2Z0d2FyZVxcbW96aWxsYS5vcmdcXHdpbmRiZ2RsZyIsIDAsIEtFWV9SRUFELCAmaGtleUNVKTsK
LSAgICBSZWdPcGVuS2V5RXgoSEtFWV9MT0NBTF9NQUNISU5FLCAiU29mdHdhcmVcXG1vemlsbGEu
b3JnXFx3aW5kYmdkbGciLCAwLCBLRVlfUkVBRCwgJmhrZXlMTSk7CisgICAgUmVnT3BlbktleUV4
QShIS0VZX0NVUlJFTlRfVVNFUiwgIlNvZnR3YXJlXFxtb3ppbGxhLm9yZ1xcd2luZGJnZGxnIiwg
MCwgS0VZX1JFQUQsICZoa2V5Q1UpOworICAgIFJlZ09wZW5LZXlFeEEoSEtFWV9MT0NBTF9NQUNI
SU5FLCAiU29mdHdhcmVcXG1vemlsbGEub3JnXFx3aW5kYmdkbGciLCAwLCBLRVlfUkVBRCwgJmhr
ZXlMTSk7CiAgICAgY29uc3QgY2hhciAqIGNvbnN0ICogYXJndiA9IF9fYXJndjsKICAgICBmb3Ig
KGludCBpID0gX19hcmdjIC0gMTsgcmVnVmFsdWUgPT0gKERXT1JEKS0xICYmIGk7IC0taSkgewog
ICAgICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgICAgIGlmIChoa2V5Q1UpCi0gICAgICAgICAg
ICBvayA9IFJlZ1F1ZXJ5VmFsdWVFeChoa2V5Q1UsIGFyZ3ZbaV0sIDAsICZyZWdUeXBlLCAoTFBC
WVRFKSZyZWdWYWx1ZSwgJnJlZ0xlbmd0aCkgPT0gRVJST1JfU1VDQ0VTUzsKKyAgICAgICAgICAg
IG9rID0gUmVnUXVlcnlWYWx1ZUV4QShoa2V5Q1UsIGFyZ3ZbaV0sIDAsICZyZWdUeXBlLCAoTFBC
WVRFKSZyZWdWYWx1ZSwgJnJlZ0xlbmd0aCkgPT0gRVJST1JfU1VDQ0VTUzsKICAgICAgICAgaWYg
KCFvayAmJiBoa2V5TE0pCi0gICAgICAgICAgICBvayA9IFJlZ1F1ZXJ5VmFsdWVFeChoa2V5TE0s
IGFyZ3ZbaV0sIDAsICZyZWdUeXBlLCAoTFBCWVRFKSZyZWdWYWx1ZSwgJnJlZ0xlbmd0aCkgPT0g
RVJST1JfU1VDQ0VTUzsKKyAgICAgICAgICAgIG9rID0gUmVnUXVlcnlWYWx1ZUV4QShoa2V5TE0s
IGFyZ3ZbaV0sIDAsICZyZWdUeXBlLCAoTFBCWVRFKSZyZWdWYWx1ZSwgJnJlZ0xlbmd0aCkgPT0g
RVJST1JfU1VDQ0VTUzsKICAgICAgICAgaWYgKCFvaykKICAgICAgICAgICAgIHJlZ1ZhbHVlID0g
LTE7CiAgICAgfQogICAgIGlmIChoa2V5Q1UpCiAgICAgICAgIFJlZ0Nsb3NlS2V5KGhrZXlDVSk7
CiAgICAgaWYgKGhrZXlMTSkKICAgICAgICAgUmVnQ2xvc2VLZXkoaGtleUxNKTsKICAgICBpZiAo
cmVnVmFsdWUgIT0gKERXT1JEKS0xICYmIHJlZ1ZhbHVlICE9IChEV09SRCktMikKICAgICAgICAg
cmV0dXJuIHJlZ1ZhbHVlOwogICAgIHN0YXRpYyBjaGFyIG1zZ1s0MDQ4XTsKIAotICAgIHdzcHJp
bnRmKG1zZywKKyAgICB3c3ByaW50ZkEobXNnLAogICAgICAgICAgICAgICIlc1xuXG5DbGljayBB
Ym9ydCB0byBleGl0IHRoZSBBcHBsaWNhdGlvbi5cbiIKICAgICAgICAgICAgICAiQ2xpY2sgUmV0
cnkgdG8gRGVidWcgdGhlIEFwcGxpY2F0aW9uLi5cbiIKICAgICAgICAgICAgICAiQ2xpY2sgSWdu
b3JlIHRvIGNvbnRpbnVlIHJ1bm5pbmcgdGhlIEFwcGxpY2F0aW9uLiIsIAogICAgICAgICAgICAg
IGxwc3pDbWRMaW5lKTsKICAgICAgICAgICAgICAKLSAgICByZXR1cm4gTWVzc2FnZUJveChOVUxM
LCBtc2csICJOU0dsdWVfQXNzZXJ0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICBNQl9JQ09O
U1RPUCB8IE1CX1NZU1RFTU1PREFMfCAKLSAgICAgICAgICAgICAgICAgICAgICBNQl9BQk9SVFJF
VFJZSUdOT1JFIHwgTUJfREVGQlVUVE9OMyk7CisgICAgcmV0dXJuIE1lc3NhZ2VCb3hBKE5VTEws
IG1zZywgIk5TR2x1ZV9Bc3NlcnRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICBNQl9JQ09O
U1RPUCB8IE1CX1NZU1RFTU1PREFMfCAKKyAgICAgICAgICAgICAgICAgICAgICAgTUJfQUJPUlRS
RVRSWUlHTk9SRSB8IE1CX0RFRkJVVFRPTjMpOwogfQo=
</data>

          </attachment>


    </bug>

</bugzilla>