ELF@@8 @@@@88800!ppTTTDDPtd  QtdRtdPP/lib/ld-linux-aarch64.so.1GNUf$x[pZn   Mk zs" 0 L q'64AU o Y   # 4 C.@!wcGBY /= QXjr O|j< : l1 +<L XE2qN   "]57 s`] g=#0;Mb aw G,G#)u 1Hl N q!g_param_spec_objectg_input_stream_readg_cancellable_disconnectg_intern_static_stringg_byte_array_set_sizeg_byte_array_newg_task_get_task_datag_ptr_array_new_with_free_funcg_error_new__gmon_start__g_object_unrefg_param_spec_enumg_strcmp0g_strdupg_clear_errorg_value_get_enumg_array_newg_list_free_fullg_object_class_install_propertyg_array_unrefg_enum_register_staticg_task_return_booleang_string_newg_strndupg_task_propagate_boolean_ITM_deregisterTMCloneTableg_task_return_new_errorg_ptr_array_addg_assertion_message_exprg_object_newg_object_refg_string_append_len_ITM_registerTMCloneTableg_strdup_printfg_string_freeg_array_insert_valsg_cancellable_connectg_propagate_errorg_object_getg_value_set_enumg_return_if_fail_warningg_set_errorg_byte_array_unrefg_error_matchesg_slice_allocg_task_return_errorg_task_get_source_objectg_signal_handler_disconnectg_strchompg_type_check_instance_is_ag_array_sized_newg_list_appendg_value_dup_objectg_task_newg_task_set_task_datag_type_nameg_strchugg_signal_connect_datag_io_error_quarkg_type_instance_get_privateg_task_propagate_pointerg_type_register_static_simpleg_string_insert_leng_array_set_clear_funcg_file_get_typeg_malloc0g_value_set_objectg_once_init_enterg_strerrorg_file_get_pathg_warn_messageg_error_freeg_strfreevg_ptr_array_unrefg_file_new_for_pathg_task_return_pointerg_task_get_cancellableg_once_init_leaveg_type_add_interface_staticg_prefix_errorg_cancellable_newg_type_class_add_privateg_slice_free1g_array_append_valsg_type_class_peek_parentg_string_append_printfg_logg_type_class_adjust_private_offsetg_cancellable_cancelg_ascii_strcasecmpqmi_message_dms_set_boot_image_download_mode_output_unrefqmi_client_dms_set_firmware_id_finishqmi_client_dms_set_operating_modeqmi_message_dms_set_boot_image_download_mode_output_get_resultqmi_message_dms_get_revision_output_get_revisionqmi_message_dms_set_operating_mode_output_get_resultqmi_message_dms_set_operating_mode_input_unrefqmi_client_dms_get_revisionqmi_message_dms_set_firmware_preference_input_newqmi_message_dms_swi_get_current_firmware_output_get_carrier_idqmi_message_dms_set_operating_mode_input_newqmi_message_dms_set_boot_image_download_mode_input_set_modeqmi_device_open_finishqmi_message_dms_swi_get_current_firmware_output_get_sku_idqmi_message_dms_list_stored_images_output_get_resultqmi_message_dms_set_firmware_preference_input_set_modem_storage_indexqmi_client_dms_set_boot_image_download_mode_finishqmi_client_dms_get_firmware_preference_finishqmi_device_openqmi_client_dms_set_operating_mode_finishqmi_message_dms_swi_get_current_firmware_output_unrefqmi_message_dms_swi_get_current_firmware_output_get_resultqmi_message_dms_set_firmware_id_output_get_resultqmi_message_dms_get_revision_output_unrefqmi_message_dms_swi_get_current_firmware_output_get_modelqmi_device_allocate_clientqmi_client_dms_list_stored_imagesqmi_message_dms_set_firmware_preference_output_get_resultqmi_device_close_finishqmi_message_dms_set_firmware_preference_output_get_image_download_listqmi_client_dms_get_revision_finishqmi_client_dms_set_firmware_idqmi_client_dms_swi_get_current_firmware_finishqmi_message_dms_list_stored_images_output_get_listqmi_message_dms_get_firmware_preference_output_get_listqmi_client_dms_set_boot_image_download_modeqmi_utils_set_traces_enabledqmi_dms_firmware_image_type_get_stringqmi_message_dms_swi_get_current_firmware_output_get_config_versionqmi_message_dms_set_operating_mode_input_set_modeqmi_device_newqmi_client_dms_swi_get_current_firmwareqmi_client_dms_set_firmware_preference_finishqmi_message_dms_list_stored_images_output_unrefqmi_message_dms_set_firmware_preference_output_unrefqmi_message_dms_swi_get_current_firmware_output_get_boot_versionqmi_message_dms_swi_get_current_firmware_output_get_package_idqmi_message_dms_get_revision_output_get_resultqmi_message_dms_swi_get_current_firmware_output_get_carrierqmi_message_dms_set_operating_mode_output_unrefqmi_device_release_clientqmi_device_release_client_finishqmi_message_dms_set_firmware_preference_input_set_listqmi_message_dms_swi_get_current_firmware_output_get_pri_versionqmi_device_close_asyncqmi_message_dms_set_firmware_preference_input_set_download_overrideqmi_message_dms_set_firmware_preference_input_unrefqmi_message_dms_get_firmware_preference_output_refqmi_device_new_finishqmi_message_dms_set_boot_image_download_mode_input_unrefqmi_message_dms_set_firmware_id_output_unrefqmi_client_dms_get_firmware_preferenceqmi_client_dms_set_firmware_preferenceqmi_client_dms_list_stored_images_finishqmi_message_dms_swi_get_current_firmware_output_get_amss_versionqmi_message_dms_get_firmware_preference_output_unrefqmi_message_dms_get_firmware_preference_output_get_resultqmi_device_allocate_client_finishqmi_message_dms_swi_get_current_firmware_output_refqmi_message_dms_set_boot_image_download_mode_input_newg_usleepg_ascii_tableg_snprintfg_regex_match_fullg_strdelimitg_timeout_add_secondsg_option_context_add_main_entriesg_list_sortg_list_freeg_regex_matchg_main_loop_rung_match_info_freeg_main_loop_unrefg_option_group_add_entriesg_ptr_array_newg_printg_main_loop_newg_build_filenameg_strsplitg_fprintfg_unix_signal_addg_timer_resetg_option_context_set_help_enabledg_timer_destroyg_match_info_get_match_countg_option_group_newg_variant_unrefg_option_context_add_groupg_option_context_newg_main_loop_is_runningg_option_context_freeg_timer_newg_option_context_parseg_strv_lengthg_match_info_matchesg_main_loop_quitg_match_info_unrefg_ptr_array_freeg_log_set_handlerg_format_sizeg_match_info_fetchg_timer_elapsedg_list_prependg_source_removeg_regex_newg_str_has_prefixg_regex_unrefg_option_context_get_helpg_list_delete_linkg_option_context_set_descriptiong_idle_addg_array_set_sizeg_printerrg_type_interface_peek_parentg_file_readg_seekable_tellg_file_info_get_sizeg_initable_newg_task_return_error_if_cancelledg_file_input_stream_get_typeg_file_query_infog_seekable_seekg_bus_get_syncg_cancellable_set_error_if_cancelledg_file_get_basenameg_cancellable_is_cancelledg_dbus_connection_call_syncg_file_new_for_commandline_argg_file_info_get_display_nameg_initable_get_typembim_utils_set_traces_enabledg_udev_device_get_propertyg_udev_device_get_nameg_udev_device_get_driverg_udev_device_get_sysfs_attrg_udev_device_get_parentg_udev_client_query_by_subsystem_and_nameg_udev_device_get_devtypeg_udev_client_newg_udev_device_get_sysfs_pathg_udev_client_query_by_subsystemcfmakerawfopen64__stack_chk_fail__fdelt_chkrealpathfflushmemmovestrtolstrlenstrstrstdoutstrftime__libc_start_mainstderrmemchrcfsetospeed__cxa_finalizelocaltimesetlocalecfsetispeedfclosememsettcgetattr__snprintf_chktcsetattrstrtoulmemcpyselectstrcmp__errno_locationwriteabortstrncmp__stack_chk_guardlibqmi-glib.so.5libglib-2.0.so.0libgio-2.0.so.0libgobject-2.0.so.0libmbim-glib.so.4libgudev-1.0.so.0libc.so.6ld-linux-aarch64.so.1GLIBC_2.17GLIBC_2.34$ORIGIN/../libqmi-glib:/usr/lib  ̉xX(h0p@HX`px08PXp X8 x0P8pHP`hx0Ph0P8@P8XXhhp(Ph@(X0x@HX`px0Hpx 08@7`hx0@h0Hp (8@0PHXphp 0Xp(P(h0@HX`p(xHXx(Hx 088HPPx`hxHh(X H(P0p80@8P6X6`6h7p7x876H7`77767778(888P8`8x888889 90i8`@mH@lPxXk`hL|pxL(kjhfMdddeeedddL$@ H`h pxpaP0@Ƚ`  @,P@0HXĪpL  @]p  X (p8XDx0`\H/ 1̼ ( _8@@h x̊p0X`@xī_`ahV(_P Xdh.px,H[(Hphx @D0`/@H` `[('(0'8'@(X`(hP(pP`($H($0 %0%HP%X%`&x&%8&@&`&p&&&& '8@0'HX'P`'hpp'h%x(x0 %p|$0\0\8"H" `"0"HP"`"x"#(#h###t# $8p@$PX$hhph$x$$\$$`$$d$@HPhXhphxhHh   ( 0 8@PX` !" #($0%8&@'H(P)X*`+h,p-x./0123456789:;<= >(?0@8AHBPCXDhEpFxGHIJKLMNOPQRSTUV W(X0Y8ZH[P\X]`^h_p`xabcdefghijk l(m8n@oPq`rhsxtuvwxyz{|}~ (08@HPX`hx 0@HP`hp0HPX`p (8@HPhp 08@H` 08@PX`h    ( 8 PXhpx%p {r{_{A    A" AB Ab CѢBC{ RSB[0cCrFA@ҢBD6G@?֡!F ?BG!@?!` ??D?!@ ?ց??! @?ց ??!` ?ց ??! `?ց ??֣cTC`?֢BGR@?֤DCs?` 4B@5@5@ 5@D)cE`?ւE)ZF)A  + TqT+`T@'B +aT+TBJ)\@a ! ?q$T`@qfS5B5D52B4@A5(@A50@5,@&4@!C ?*E?ֳ!xB ?ָ!B ?0@!@BC@?@!F ?֠E?ֳ!xB ?RnB?=?` ?@&?`2?֠E?ֳ!xB ?4R!Cq@"@cATC@{DSE[FcGC_=!C ?֠E?!lB@ ?֠E?3cGR`?BlB !@?֡!A ?֠E?s =BNyFD@y@)?`R@t5BE@?4/@`4C`??֠E?n242SG?@@TBlE@?ր4BG*@?*E?3!xB ?LG?X@@TBlE@?4Bf@?qiT!C@ ?֠E?ֳ!xB ?R*G?x @@TBlE@? 4BBE@@?*E?@9*G@B@M) F?*E?!CR ?@>9@>@C?!@?@!F ?nD?֠C@@BTCc c!`ҢZRҠ?֠C@@BҡTCc c!`URҠ?֠C@@BATCc c!`XRҠ?֠C@@BTCc c!`bYRҠ?             @#GҥB@_      `!`?T!Ca_`!`!"A !ABDb_{ `bZ9@7!C@ ? R`b9 @{¨_          {StȠ`RCSA{¨_֡!F ?4!B - ?֢B8C!@?B,G@?`RCSA{¨_*Т!@`- @"@!`_kaT_{St"s`@SA{¨_֡!F ?4!B-s ?֢B8C!!@?B,G@?`@SA{¨_ ա!*!@- @"@!`_kaT_  {StBs` @SA{¨_֡!F ?4!B-s ?֢B8C!!@?B,G@?` @SA{¨_ ա!*!@ . @"@!`_kaT_  {Stbs`@SA{¨_֡!F ?4!B`.s ?֢B8C!! @?B,G@?`@SA{¨_ ա!*! @ . @"@!`_kaT_  {Sts`@SA{¨_֡!F ?4!B.s ?֢B8C!!@?B,G@?`@SA{¨_ ա!*!@. @"@!`_kaT_  {Sts`@SA{¨_֡!F ?4!B@/s ?֢B8C!!`@?B,G@?`@SA{¨_ ա!*!`@/ @"@!`_kaT_  !0_ѠС!C@7{"@ҡ!B ?FRRRc ?=B ?c@G`?֠C@@BT{B@_֠D?ѣcC{[B\CSa@/#@?ր4!A ?@ R!`@@@6BxD@?R!C/@"@cҡT{FSG[H_֡!LG ?`@@`@!F@K֒G ?a@ҢB7#@R?֢B\GA Rw@@?a@ @ 7#@RB8?C`@BXF@@?ր 7B)@НR! r@ R*RD B )D!*c  R%R)9Oy?ARBE@?@5BFAR@?@ 5`@cGR@`?֠ 7K@E?*!F@ ?ЄB*RB:?K@qE?*D?@!F ?ЄB*RB8?K@[E?*D?@!F ?ЄB*RB@9?K@EE?*!F@ ?ЄB*RB:?K@2E?*!F@ ?ЄB*RB;?K@DK?   {!G  ?֢A@@h @5BhG@?`PFB!a?ХAdRB@`=[D =<____=?}a@'Jkh)@ւC ɚ _CGk( ?*?ր 5qT`T0F?ր5`@bҼМE@! ?,T`@"!@?!DOGE `@____?d= =?}i@'Jkh)@  ɚ Gk(?*?@5qk T T`@@ @@A@B@`?K!TT`@ @@џk58Ahu8?4q$JzTџk58U@?ր5[NcOkP[NcOkPR!C_@"@cҡT{LSMsQ_֠E?*ЄDRc>?ִДC!`? R!? E?*ЄDRc?T@9?4q$Jz@T@?5 @ @?4O.UT[N/cOkPE?*Dec@R?[NcOkPc@ХХG c@RB`Ҡ?:@?4c@@c@BRҠ?E?*c?RЄD?[NcOkP{E?*ЄDRc?oE?*D?@!F ?*c ?RХD?[NcOkPWE?*D?@!F ?*cRE?*D?@!F ?*c RE?*c@RE?*c RE?*D?@!F ?*cRE?*D?@!F ?*cRD[ck? @@_  {SPF?3`@@TBlE@?4@SA{èc<^E֣cDҢB!`?@SA{è_֡!B{` ?{FRc@RR {!G  ?֢A@t @5BhG@?` @{¨_֢BG! @?{S @ @!D ?a@ @A?`@@?`@@?`@@?֡SA!tC{¨!@{k**S*!F[G ?A@B$@R?B@*cE*B@`? s*cF;AC7B?@?RҠ?S?֜@|BC֢B@? ?֢B RҠ??cCsESA[BkD{Ȩ_ր@7@ ?A@;@!xb?@@?֠5@!C ??֢BRҠ??s?cCsESA[BkD{Ȩ_֡!BBC@?RҢB ?SA[BkD{Ȩ_cCsEcC{CB8Ba@@?BBc G`?֡!B ?֠C@@BaT@{A_@B E@?D?{StBs` @SA{¨_֡!F ?4sB,G@?` @SA{¨_ { BE@?` @{¨_  "R**R  {S*!F[kR ?!@Ҷ֒G$@B R?"@*cERB@`? ҵcFsA{B?֜@\@?R?֔!@!@`?5@!C ??֜@\  4cCsESA[BkD{ƨ_?֢B R??֡!BBC@?cCsESA[BkD{ƨERB ?SA[BkD{ƨ_ հE   հE   {ES?@SA!RB B*{¨B    {SE*?@@*B BSA {èRB{s\<rqkS?[ + Tq Tc*d<*oBCҸB@?a@3?3@ a@3?3@qx@ @zo@ #y'y)T BLF@?t@@BD@?u@!F@ ?֠cCSA[BkDsE{Ǩ_֥|G****?E?*DRc ?[BSAkDsE{Ǩ_֠E?*DRc ?!B ?cCCc !B#RҠ?     {?iTR9!ExR ?GRҢB?`{_֥Cc! BRҠ?{S?aT@9qAT!E ?GRҢB?*SA{¨_֠E?*D%Rc?RSA{¨_֥Ccc@!  RҠ? ա!< X`_֡!RҠ?րC@@B!TХCc Ёc  2!-RҠ?րC@@BTХCc Ёc  3!-RҠ?րC@@BaTХCc Ёc 2!-RҠ?RR.Rm  RR{ @3`@@TBlE@?4`@ @@{¨_փcD! !B+`? @{¨_ { 3`@@TBlE@?4`@ @@{¨_փcD! !`B+`? @{¨_{ 3`@@TBlE@?4`@ @ @{¨_փcD! !B+`? @{¨_  {SPF?֓`@@TBlE@? 4@SA{è8^Ec<RփcD! !B`?@SA{è_    CфЄC{CS[#@PF?ֳ `@@TBlE@?@ 4!BG ?! :?4!`:?ր5Є0CR?!A ?րC@@B! T#@{ASB[CC_քЄ0CR?!:?@5Є0CR?clD`?@RЄGc@B:?@!F ?րE?*ЄDbRc;?ָC@@BҁTХCЁЄc!@9RҠ?րD?    CрC{CS*[:Gc@'# 4@!B# ?!pB ?Є`CB<Ҁ?qTqlT"q`TBqT @s"<2qT@ 3DЗcb<=?ր@!`D ?րDsb<@=?րC'@@Bҡ T{ESF[GcHC_qTqA T @`s<3D=?ր@!`D ?ր@4B@!B# ?!pB ?Є`CB<Ҁ?qT @ @4И3Ds03DЗЪ @ 4ЗИ3Ds< @ 4ЗИ3Ds"<@s0C'@@BaTХCЁc!=Ң RҠ?րD?   Ձ! R"@5 @_րHG_{q$@zTSt*a:BG!?@?րДVF[0aҀ?a?`@a5@!E R ?s0 a?`@`5`@!B R ?SA R[B{è_ց!C> ?R{è_րD?@!F ?BC ?@?RSA   ՀCE_ {! Sc8F`?@ @a @E?*Dc R?R!F ?@*SA{è_֕FRҠ?_Ta@@yRҠ?_T4R yFE?*d@DRc ?E?*d@DRc?CЄ@c !`RҠ?{S! c8F[`?@ a@!a @E?*DcR?R!F ?*SA[B{è_֕FBR?"{_(T`@v"ATBRҠ?{_(T4R XFE?*@DRc?E?*d@DRc@?Cc Ёc@@!` RҠ?     уcC{Cd@cG`?֠5@BC#!@@?@!F ?a@BFTB@?րC@@BҡT@{A_ց!lB@$ ? R`D? { @!G ?ր4`@!8E ?֠5 @R{¨_ց!C% ?`@!TB ?!C% ?`@!G ? @ R{¨_C*cC{S[d@҃cE`?F?ֳ `@@?TBlE@?@4BCRC@?dGB?@R? R?R?@|EB?@!PG ?@@?@!F ?@?րC@@B!T{B*SC[DC_րC@@BҁTC&c!& RҠ?րD?       тBC{S[c3@@pD? @@TBlE@?@ 4BCRsC@?.dG?@R`? R`?R`?֠@@2ERւEҔ??Zt @DEc)?ւBCsB@?@!PG ?@@`?@!F ?ց!C@@"@cT3@{BSC[DcE_C@@BTC(c@!'B RҠ?րC@@BҁTC`'c@!'" RҠ?րD?уcC{CSd@cG`?@5@C)!@?րE@?*cER`?5@!F ?@a@BFTB@?րC@@B!T{ASB_ց!lB@* ? R`@)?D?{ @!G ?ր4`@!8E ?֠5 @R{¨_ց!C% ?`@!TB ?!C% ?`@!G ? @ R{¨_*{C**@9S;@F?!B* ?*{ASB_օCc@c``'!'R? {S@! D ?!B* ?*SA{¨_օCc@c`'!'R?{SnBc@+E[k*?*?*?@9`5c +?E,?*?*?@95c +E`,?*?*?@9 5c +sC,?*?*?@9 5c + -?RBE*SE@?*-?ִ?**9BkT ?ֿkT?**kTSA[BcCkD{ƨ_փcD*s[-`?.@?*lA?*?sE*?*?t*?*?с!C{[@"@!C!?`E?*eDc;R?bBXG!`<@?kNcM`E?*ks8*ky8Rc; *fD?`E?*dDcRc@?`CO@@B TeCcЁc:!6 RҠ?`E?*dDRc9?kN`E?*dDcRc ?ֶ`E?*`D?@a!F ?eD*cRc?֡`E?*`D?@a!F ?eD*cRc?֌`E?*dDRc7?kNc k`D?`CO@@BTeCcЁc`8!61RҠ?`CO@@BҁTeCcЁc8!61RҠ?ccC{[bB\CSc #a@/@?֠4a!A ?@ R!`@@`6bBxD@?Ra!C/@"@cҡ!T{FSG[HcI_a!LG ?`@@k `@a!F@xG ?R҂B=?bB\Gy@A R@? `@@` 7R҂B@>?c`@bBXF@@?ր 7a!E ?`@ccGR@`?ր7s C`@ bBC@ @!@@?a@$R!@*!@ T @@@9q`T4q T{{E`?*D@9eDRc ??E`E?*`D?@a!F ?dB*bRB;?kJj`E?*`D?@a!F ?dB*bRB8?kJT`E?*`D?@a!F ?dB*bRB@9?kJ>{{E@`?ccE*R`?@5kJsK0ccG`?֠4zZBR{{/E `@*@ @!@@?a@$R!@*!@T @`?ր5qT`E?*dDRc?kJsKR҂B?a!B ?*҂RB?`@ kJsKcc,D`?ֵ`Dk s ?  {StBs` @SA{¨_a!F ?4jsbB,G@?` @SA{¨_   {S[bBEu2B@?`?b@ t.BAR@@r?v@?@R`@[BSA{è @   C{CS[e@`C@@ePD @!@?a@$R!@*!@m@T@`@94q`Tq T`E#wC?v@9**?`@9?fD**Rc@?#@   `C@@BAT{ARSB[CC_`C@@cҡT{A[CSBCpD`C@@cҡT{A[CSBCpGe-`D#?{S[V<f@`C@@fB* @y!@ ?֠a@C!@RR!@T @`@94q TqT`E+wC?v@9**?@`@9?fD**Rc?+@Ra!C@"@cT{BSC[D_d?`@@a!LG ?`@@{S`PF?3`@@TbBlE@?4b@SAc{ècRҠ?{AR9a!CR ?dGR҂B? {_       a!B{$ ?{pF<Rc@RR {a!G  ?bA@ @5bBhG@?` @{¨_bBG! @?{ @  @?a!B ?a@ @?a!B ?a @!C{¨!@{S@a!B ?a@!` @b"@gD_qCR?`@a!B ?` @eBARҠ?` @a!B ?`@tCa!B?`@a!B?SA{¨pnGeC %c!`%bRҠ? {SssFC`?`?@SA{èpFFa!C{CS[kzZ[B"@@?@c@@w*G@?ccxE`?4ccGR҂B'`?bB?u`E?*`D?@a!F ?eD*cRc?_`E?*`D?@a!F ?eD*cRc?I`E?*dDcRc@?<`D?`CO@@BTeC3c!!`4RҠ? {S @q@TITqTccGR҂B8`?ր@bBA@ @!@@?ց@`@` @SA@{¨_֠5ccGR҂B`6`?ր@bBB@ @!@ccGR҂B 7`?ր@RccE@ @!@`? QxrTeCc!c`!`4wRҠ?SA{¨_ѿq{ Cc dCS [ *k s@{@G @7?k`TzZG*R҂B9@?`B{{C?bRC`?!`T @a!G ?ր5#@B@?Ҡa!pG ? @CRHT`GC@?bBC!2@? `XD`C33`C//@@?@R3@`?@@?@D @?a!B ?@R!3`?@@?ր @4bBC@?bBDDR@? @RA @@?![|a?@a!F ??@ kTa!A ?@<kT`E?ccBRB:`??a!D ??@@R҂B;@?@?@bBxD@?Ra!CG@"@ca T{@{ISJ[KcLkMsN_҂RB<@? RA!A ?A!B ??3G7@@?`4BBDD!R@?Ҡ@E?CcBbaRB@;`??@CG@@BҡTECc!dac9!`4B/RҠ?@D?{A!G  ?bA@ @ @5BBhG@?0 `@PFB !a?EAdRBAB@`?`@BB C@ @!@@?`@ @@{¨@_CCcC{Sa@CCc4B#`?ր5A!C@"@c!T{BSCC_@#UBa! ??ր5 @ ?5@`EG +bRB@?Ҡ?@E?*@bFDB +c`ER?@SsA`? @`?#@ R@D#?CDC{S[BBC@C@? 5#!`4@5@BBxD@? @RDG҂B? @A!A ?3R@C@@BT{B*SC[DC_CcGRB@`? RCcGR҂B `?A!B ?@D?DC{S[BBCcC@@?ր5#*84@ BBxD@?@C@@BT{B*SC[DcE_ @Cc8F! `?A!C ?qTA!F ? @RDG҂B? @A!A ?3RBBPC@?`4@C4DG҂RB?@@@ qTR3R@x?qT3R`@TbEUE?ր?`@?ր?`@TG!@?ր4`@!?5`@BRCcHF`?CcGRB@3R`?֊@E?*ED@Rc?ּ`@BRCcHF`? @D?CcC{ CBB\CS[ca@g7@?֠4A!A ?7@ R!`@@`6@BBxD@?RA!Cg@"@cABT{MSN[OcP_A!LG ?`@7@k`@A!F@ZZG ?R҂B@?BB\Gt@A R@?ր `@@ ,7R҂B @?#`@BBXF@@?@-7A!E ?`@CcGR@`?7sR҂B@?RA!F4R ?R҂B @?ր A!G'@G@`F@`B@E#@F+@D/@ ?(5`@R@@;@@B@`?֟qTqT qT`@#@@ @!@@?҂`@@@cRtTq T(T;@@*T@,qThTq TqTCcF`?֠4@E?*DDRc?kQsR4@E?*@D?@A!F ?DB*BRB;?7kQkQsR8q TR҂B @?+@`? 4R;LTkTR*9?qT@E?*DDRc?kQsRҌ`@@@ @!@@?`@@@ @!@@?w/@`?ր4҂RB @?@R@E?*ED@Rc ?kQsR'@R@?`R@E?*DDRc ?kQsRBBLER;@B@h`8@x`x06 HT*R҂B@?R҂B@?[c@B!,FRR `4{@a 4`@@!4 w@4@A!|$_kTA5@Cg@@B!TEХCc!dac@!`4ƒRҠ?@E?*@D?@A!F ?DЄB*BRB8?7kQN@E?*@D?@A!F ?DЄB*BRB@9?7kQ8@E?*DЄDcbRc@;?kQsR*@E?*DЄDcRc?kQsRRbRB @?`@R@E?*FDcc` R?kQsR@E?*FDcRc ?kQsRRbRB @?`@R h@E?*DЄDcRc?kQsRks@D?@Cg@@BTEХCc!dac@!`4RҠ?CDЄC{S[BBC@C@?5*a#!2@4@BBxD@? @RDЄGbB? @A!A ?3R@C@@BAT{B*SC[DC_CcGbRB@`? R @D?CDЄC{S[BBC@C@?5*#@4@BBxD@? @RDЄGbB? @A!A ?3R@C@@BAT{B*SC[DC_CcGbRB@`? R@D?{SStB BsB ` @SA{¨_A!F ?4sB BB,G@?` @SA{¨_{SBBE@?@0Ba ?ւ@` P.BRSA{¨@@EХC{S[3@A!C ?@%@!$@ Ś Ԅ?ԀSuSsGRbB`?փ@RbBc @`?փ@RbB`c@`?@RbB`?փ@RbB`d@c$@d`?*RbB@`?_cЄcB ! FReRA!C@"@cT3@{CSD[E_@D?  {cDЄGS[*k*+RbB?ց@ @"$@@_k"T@*Y9GR ?ց@:$@A!C~ ?ց@ $@ T(@TsT;R#T$@GF@@?ր@"$@_k T @7S5+@ RSA[BcCkD{ƨ_!@!@h5CcXG*a!``?R+@SA[BcCkD{ƨ_ր@@R@@ ?ր@@@@b7@H 5BBXGa!@?RRCcXG*a!`?R@E?*DЄDCRc>?EХCc!dac!`4RRҠ?@E?*DЄDCRc>?EХCc!dac`!`4MRҠ?EХCc!dac`!`4"PRҠ?A!CC{%R%@B/A!C@"@cҁT{B_@D?FRCcCC{e@҄  *cB! A!C@"@cҁT{B_@D?   {S@PF?3`@@TBBlE@?45@SAC{èch=?D=_EХC{c%dac &! # RҠ??, T?DR_EХC{c%dac&! #BRҠ?{S?< T@8qTA!GTG ?RbB?c @RbB'?c@RbB(? RSA{è_@E?*FD@CcR?RSA{è_ECc%dac`)! #"RҠ?   ?, T?DR_EC{c%dac *! #bRҠ? {S?<T[@q! TA!E @* ?A!G*UG ?RbB?c @bRB`+Ҡ?bRB@-? R5@[BSA{Ĩ_*bRB-? R4@E?*EDcRc.?[BR@SA{Ĩ_@E?*FDCcR?RECc%dac,! #RҠ?A!B{`/ ?{%PFRc@ RR {A!G  ?BA @ @5BBhG@?!0` @{¨_BBG! @?{S @TA@?`@ @?`@@?ASA!D{¨!@{ @  @?A!B ?A @!D{¨!@   {S@A!C ?`.@A!C ?`@A!D ?`*@A!D ?`"@TA?`@?`F@?`J@?`N@?a>@`:@GDCR"R?`>@A!B ?`:@EBARҠ?`:@A!B ?`@A!B ?`V@A!BV ?`Z@A!BZ ?`@A!B ?`6@A!B6 ?`2@A!BBBC@?SA{¨PnGECdaЄ %c(!@/RҠ?  {SSsC`?`?@KSA{è_{A!XBS[ ?A!(GuZG ?GDCR"R?`>@>PBSA[B{èSA[B{è_ CcC{CS[a@A!XB ?CcF`?5@RDGc@bB0?@A!F ?A!(G:@ ?EBARc(?ր:@A!B: ?@C@@BT{ASB[C_CcGbRB0`?@D?{A!XBS ?A!(E ?a@RCclB!a`@1`?CcGbRB 2`?s@@5(@A!(G ?*@SA#R{è*P^F6ECc(dac`3!@/@@@CcEB(@`?A!(G ?D|EB6?@SA{èPBA!(G>@ ?@SAB,{èP&GECc(dac :!@/bRҠ?A!C{CS[ck s "@'A!XB ?A!(E ? @dA@"SsnB`VvE;`?`[{?D<`?`<`?`=`?"RR*R?cRRbB=`?@REDZZD3R?`=@?*R*R3?A!pG ?*R`?@R@?XwG`=@?CRRRR#?*c?*?@B?Cc@C`?V.C?ր@0@ 5@9 5SsGRbB=`?BRbB>@`?CRbB?@`?ր@d:cc:R0@bBqc`?@A!(G<@ ?FƤDBRЄ?@SsA?@`?@?#@`?A! G ?@C'@@B!T{ESF[GcHkIsJ_@H@w9@C'@@B TECc(dac@;!@/bRҠ?CcG`?֕CcG*`?ր@@D@x@C'@@BTECc(dac:!@/BRҠ?@L@@C'@@B!TECc(Dac!@/RҠ?@L@@L@7@H@Xy@L@Y@D?   A!C{C3#@'Cc(F#`?CclC#`?CcCC`?CcCc`?CcE`?CcF`?CcC`?CcD`?CcG`?@CclBa`!@``?@CclBa`!@`? @CclBa`!@`?@CclBa`!@``?@CclBa`!@`?@CclBa`!@`?#@CclBa`!@``?@C'@@BҡT3@{E_@D?CcC{Cd@CcF`?@@@ 4cwBXAkZZ#FsY9oB[v[{/FRSS@|@`?`jtb@? @ ??@@@kcTSB[CcDkEsF@C@@BT{A_DGcbc@BRҀ?@DS[cks?{UZBS?A!HB ? 5@?8qHTBB@SA{èAXaCcGbBR`??@ A!(E ? @@q Tqa TUnB`?ւ@!!-`_!?ր@`?ր@@``?ր@]"@!!-`_ !?ր.@` ?ր.@*@`` ?ր*@GJ@5N@5`?!RBB@V֢B`>?`:@A!C ?a:@:?`@`?`2@s@?s3,EBAR?@SA[B{Ĩ?bR" CCcC{CS[#WZBa@?Cc4F`?5@RDGc@bB`?@A!F ?֔@?"TBBF@?@C@@BT#@{ASB[CC_CcGbRB`?@D?CcC{CS[VZBa@?CctC`?4CcGbB`R`?֔@?"TBBF@?@C@@BT{ASB[C_@BB E@?A!B ?@D?{[VZBS?4@a2@BBXE @`6@?`6@a2A!A ?`6@A!C ?EGbBRҠ?s@?sPFS"SA[B{èECc(dac  !@/eRҠ?ECc(dac !@/eRҠ?CCcC{CS[VZBa@?CcG`?4CcGbB@R`?֔@?"TBBF@?@C@@BT{ASB[CC_BBXG#a!@?@BB E@?A!B ?#@@D#?{UZBS?@B@F_qIT?@4s@?s"SBBF@?@RSA{è_A!lB`` ??4 R@SA{è_d@RrCcRcBK|` !c! KaxaCclB`? R   CCcC{CS[c6ZBa@?@@ #cG`?ր!!F ?$GRbB?!!A ?!!lB` ?֔@?"T"BF@? C@@BT{ASB[CcDC_"BXGa!@?@"B E@?!!B ? D? C@@BT%Ccc(dac!@/mRҠ?{5ZBS?4@`!!B6 ?`2@?R@C0F"SA{è#cGbB`R`?s@?s@S0F"SA{è%Ccc(dac!@/BPRҠ?!!C{CS[5ZB"@?@6T@`Z@ c8+G?#cpE`?`Z@s@?s"S"BF@? C@@B TcD{ASB[C_@kb99GB #@R6B ??z@?#cG`?`V`kE@bBRc@ ??`V@`Z@` E?*$CRcc?!!B ?kE C@@BckaT%Ccc(dac!@/hRҠ? C@@BckT%Ccc(dac`!@/hRҠ?k D? C@@BckT%Ccc(dac!@/hRҠ?#cC{S[+7ZBa@ ?!!(E ?a:@! `>@` (DCagfedcbba?@4@`@9!@9?kHTs@?s"S"BF@? C@@BA T+@{BSC[D_ E?*@e@9R&ưCc@9c?!!B ? @"B E@?!!B ? C@@BT%Ccc(dac!@/"RҠ? C@@BҡT%Ccc(dac !@/RҠ? D?C"BXB{!!CS[c k s c#@/+;{oB@?!!(G ? B?6@ !!C ?!!DG ?6@!!@B ?!!$D ?6@!!A ?``?!!A ?֘V@#cDC6@`?4@$E?4@!!xG ?<r T!!!!!F 6֮FRg ?kT@*?@49_kTҠ?@ @J@"BB@?@4 ,@ 4#@bF@R%ХGBҠ?@  @`N@"BB@?@4 ,@4#@bN@R%ХGBҠ?@ @` @ @C@s ?"S"BF@?7@ ?F@ ?J@ ?N@C R ?cR"C"BF@?F@ E?*$ЄDcRc?J@ E?*$ЄDcRc ? E?*@F@D@c&Dc@<R?#@"B E@@?!!B ? E?*@J@D @ E?*@N@cD@c&DR?N@ E?*$ЄDcRc? E?*F@&DcRc1?kIsJ E?*J@&DcRc`5?kIsJ E?*N@&DcRc9?kIsJ Dk s ?#cC{S[c5еZBa@?#cD`?"BG@?@4#c@E@`?ր5!!B ??"V"BF@? C@@BT{DSE[FcG_@@ 4!!XCs `0 ?@ @`4 $F  C C7"F 8sGk&@"T?)T@`?ր@Ch#8@ @Q_kT@_ T@Rah x@?h 8@ @{k T @x{? ?@B_T@?"BXGa!@?@"B E@?!!B ?!!B ?֋7nB` ?` ?` ?3@!!B"BC@?3j"BXGa!@?@"B E@?!!B ?h @`?֜@bCB ?{@ @kTkHR@$ЄGbB ?"B D!R@?sI8#cHG`?w#cC`?@@ @Q_k TaB! `?@ @x Dks ?{[6ZBS?!!(E ?a@ `V@#cGRbB`?!!(GwV@ ?#cG`?`V@!!BV ?`@!!B ?!!lB` ?֠@@qTs@?s@S0FSA"[B{Ĩ`Z@#cGRbB``?!!(GwZ@ ?#cG`?`Z@!!BZ ??R@C0F"SA[B{Ĩ%ХCcc(dAc@!@/"LRҠ?%ХCcc(Ac@!@/҂MRҠ?  C#cC{S[5еZBa@ ?8@"<@` (DC`b gBf2d"cba?5 @`@#@0qT$ЄGbB RҀ??R"C"BF@? @!!F ? C@@BT{BSC[DC_s@?s"S"BF@?$ЄGbB`RҀ?s@?s"S"BF@? D? C@@BT%ХCcc(dAc!@/7RҠ? C@@BҁT%ХCcc(dAc !@/b7RҠ?  {S3t Bs ` @SA{¨_!!F ?4s "B,G@?` @SA{¨_   { "BE@?` @{¨_ 0C   %C{CS[ck@A!!E ?O$EZ~~~~~*=?#cE6ֺF8EB`?`@? 2@?s@2"BdE!@?"@A@2?q`T?q! T@@R"BhF@?ր@ C@@BAT{ASB[CcDkE_@@!!B ?ր@ E?*cc`R$C?!!B ?@"B E@?!!B ? E?*cc R D? C@@BT%Ccc(dAc@ !@/RҠ? C@@BҁT%Ccc(Ac@!@/RҠ?{+ GS[c**k*?`@@T"BlE@?֠4"BC@?!R{@a!!C ?g@`(!!B ?g@!!B ?g@ !!B ?g@)9c@+@8SA[BcCkD{ƨ_%Ccc(DAc!@/ÀRҠ?{S G?`@@T"BlE@?ր4"BC@?AR@a!!C ?aSA{¨_%Ccc(DAc!@/bƀRҠ?    { !!A ?b @B{¨R0G{!!XBS ?!!(G" ?a@"BA@?`@a@"B4E@? E?*d @%CRcc?!!B ?RSA{¨_ {S!!XB ?!!(G ?a@"BA@?!!E`"@ ?"`@a@"B4E@? E?*d @%CbRcc?SA{¨0B {S @5`@@`@`@!!B4A ?` @?`@?SA{¨0nG%Cdca c0!9RҠ?%Cdcac0!":RҠ?%Cdca`c0!:RҠ?{S[ksCy3@A?yY?7@A?\Z_5D?@t6֢Bc8C7B??;??*59!!B ?!!B ? :"BGa!@?#cFBR`? TiT R@;@"BBa!@@?#cFR`?HTy3@"BBa!@?#cFR`?HTy7@4"BBa!@?#cFBR`?@hT<<"BBa!@?#cFBR`?@hT<?cC RSA[BkDsE{Ȩ_cC E?*?@c$Dc@R?R;@@R@T   $C{S*[*3cҁ@C 4 @ 4 7B?@ 5@k Tk99Ds ?@x;{C:ZB ?@?ֳ`??֠5!!(D ?!!B ?@?55a!? 5!!A ?b@"BD@?!!G ?3sA`?kFsG E?*$DcRcҀ?kFsG3sA`?`? C@@BҁT{BSC[DcE_qTa!@?4a!?@4kFsG3sAks D? C@@BT%Ccc0ac!Ң0RҠ?{[!!XBc7FFS ?a!?`4a!?4a! ? 5kc @a @)*99A8G!!F`@ ? ?RbB?`@a@"B4E@?!!(G ?a@"BA@?!!E`"@ ?"#c G3sB`?kDSA[BcC{Ũ`@#cFa!@:ZA`?"B\D@?@?a @)99A ?d@8GBB`R?@?kDSA[BcC{Ũ_  'C{)[</s |<@/"BC@? A ;{BCS@c k 3# @ykT@ ?`?s@s@t@yy )+4+@5/@4@ykT;@4K@kT?@4O@kaT @ 4 B  ՠ@@xw@?֠4 @kT"BC@?`?s@SGcIkJ@!!B ? C/@@BT{F[HsK_ DSc k ?   "BC{C[+A@!!B ?!!B ?!!pG ? TSRc@y_k TT@`R`r?kTSBcD E?*$DCRc ?!!A ?ֶ!!B ?@ C@@B T+@{A[C_ E?*$DRCc?!!A ? @yR?k!T@9qT8C7DR[t?  @5!!A ?!!B ?SBcD @98?qT@%GRBB?!!A ? E?*$DRCc`?!!A ?SBcD DSc?{k:<!!dBs< AS*[*cW ?!!B ?!!XC0 ?54@0$G?@ BA*! ?4@0$G?@ BA*!@ ?4@0$GBB A*! ?֠@7"CbB @****n@` @` 47GV!   e@@RxtҔ?b @_kT4_qT`@!!B@ ?!!F ?"B D!R@?!!B ?SA[BcCkDsE{ƨ_****1@#cG*A!`?} E?*@&DCd @c@"R? E?*@%DCRc !?ֽ%Ccc0DAc !%RҠ?{[*!!BS*s ?c74qAT;{{Ca@! Ck7B;99wFR B? F@?`   Հ@** ?@?֜@|?@Z ?a[zkD7@?cCSA[BsE{Ȩ_;{a@!7B%Ckcc0Ac`!4RҠ?0E   {c**!!ES[k ?4Bwb)?a ?`a@4?qaT!!B @ ?d$EҀ?#cEB`?`@&ERAB8! #?d$@D!?c#cDR!`?`"SA[BcCkD{Ũ_!!B  ?%Ccc0Ac!JRҠ?{!!B @ ? @{¨0nG {!!E ?!! !!B ?`&ERAB! #? @{¨_   {DC%D #c#BB$? @{¨0rG{_qR&ƠD DEC#c#BB %? @{¨0rG{DC%D #c#BB (? @{¨0rG(D{**G*#CBc#B) ? @{¨0rG{DC%D #c#BB+? @{¨0rG   #cC{C$BS[`@R@@,R?$|BR?5R@!!xF ?!!B ? C@@BT{A*SB[C_@!!hB ?֠4@!R"BE@?֠@!!PB ?qT4R@AR"BE@?ր4R!!C@"@caT%CdcAc@3!-BR? D?"BC{C$BSR@@R@.? |BR?5R@!xF ?!B ?C@@BҡT@*{ASB_@!hB ?֠4@!RBE@?֠4RD?!C@"@cTCCc@3DAc!-R?BC{CBSR@@R@@/?`|BR?5R@!xF ?!B ?C@@BT@*{ASB_@!hB ?֠45@!RBE@?cHFBR`?֠!A ?4RD?!C@"@cTCCc@3DAc !-BR?      cC{CS[a@!XB ?BtD@?`GRBB1?b @AC!0c0@_z0c_yDЄ1RBB 2?a @u@32!(G ?G*,R?C@@BT{ASB[C_BXGA! 1@?@B E@?!B ?D?{!XBS ? @!Q a7cGRBB3`?!(Gs@ ?SA{¨ FBCRRARCDCAЄ3c@5!@4?RҠ?CcC{CS[a@!XB ?cB`?ր cGBRB6`?ր@` 4*G @?B 9BR?֖ @?hC@4BR?֖ @?dD0BR?֔ @?4D1BR?C@@BT{ASB[CC_ց@a5BXG#A!5@?@B E@?!B ?#@@BGB5#@R?@!F ?BB6RҀ?DBk   @z@@?@*R?@`ky9c ?@RҀ? @RҀ?C @R@Ҁ?@ ?@@?kTkHsI:BRB>Ҁ?֍Dks ?   ADЄ@5R  @8!J!ax" BJAT"*<_R_ХC{C+ЄBS[cR@@?R? !pG ?4CRR?*@4@!RBE@?7@!PB ?q T6@!PB ? qT4R@!`G ?!B ?C@@BT+@*{ASB[CcD_E?*ХDCRc@?@ARBE@?@aRBE@?!C@"@cҁTХCCc@5DAc !@4R?D?{k/@SBC[c@?5SA[BcCkD{Ũ_!XB ?@!C ?@` @!C ? `@!B ?w`.@v`@99u`:@`"@!F ?ր+@`*@!HC ?+@ SA R[BcCkD{Ũ_{c*!ES[*#* ?OЄE~v^)u~~?cEB`?cGRBB `?!(G ?#@[BcCSAB {ŨCC {S!E[ ?!C~ ?dЄEҀ?cEB0 `?@[BSA{ĨBC{S+A@` cF R`?MCDCABЄc!B 'R?!Ra! F ?!B ? R!C@"@cҁT+@{CSD_@RЄGBc@B ?@!F ?BXGA!@?RD?!C@"@cTХCCc@5DAc` !@4"[R? {{_QfuDloadCmdackQfuImageTypeunknownQfuQdlCmdhello-reqQfuSaharaCmdQfuSaharaModeimage-tx-pendingQfuSaharaStatussuccessQFU_SAHARA_STATUS_SUCCESSQFU_SAHARA_STATUS_INVALID_COMMANDinvalid-commandQFU_SAHARA_STATUS_PROTOCOL_MISMATCHprotocol-mismatchQFU_SAHARA_STATUS_INVALID_TARGET_PROTOCOLinvalid-target-protocolQFU_SAHARA_STATUS_INVALID_HOST_PROTOCOLinvalid-host-protocolQFU_SAHARA_STATUS_INVALID_PACKET_SIZEinvalid-packet-sizeQFU_SAHARA_STATUS_UNEXPECTED_IMAGE_IDunexpected-image-idQFU_SAHARA_STATUS_INVALID_HEADER_SIZEinvalid-header-sizeQFU_SAHARA_STATUS_INVALID_DATA_SIZEinvalid-data-sizeQFU_SAHARA_STATUS_INVALID_IMAGE_TYPEinvalid-image-typeQFU_SAHARA_STATUS_INVALID_TX_LENGTHinvalid-tx-lengthQFU_SAHARA_STATUS_INVALID_RX_LENGTHinvalid-rx-lengthQFU_SAHARA_STATUS_TX_RX_ERRORtx-rx-errorQFU_SAHARA_STATUS_READ_DATA_ERRORread-data-errorQFU_SAHARA_STATUS_UNSUPPORTED_NUM_PHDRSunsupported-num-phdrsQFU_SAHARA_STATUS_INVALID_PHDR_SIZEinvalid-phdr-sizeQFU_SAHARA_STATUS_MULTIPLE_SHARED_SEGmultiple-shared-segQFU_SAHARA_STATUS_UNINIT_PHDR_LOCuninit-phdr-locQFU_SAHARA_STATUS_INVALID_DEST_ADDRESSinvalid-dest-addressQFU_SAHARA_STATUS_INVALID_IMAGE_HEADER_SIZEinvalid-image-header-sizeQFU_SAHARA_STATUS_INVALID_ELF_HEADERinvalid-elf-headerQFU_SAHARA_STATUS_UNKNOWN_ERRORunknown-errorQFU_SAHARA_STATUS_TIMEOUT_RXtimeout-rxQFU_SAHARA_STATUS_TIMEOUT_TXtimeout-txQFU_SAHARA_STATUS_INVALID_MODEinvalid-modeQFU_SAHARA_STATUS_INVALID_MEMORY_READinvalid-memory-readQFU_SAHARA_STATUS_INVALID_DATA_SIZE_REQUESTinvalid-data-size-requestQFU_SAHARA_STATUS_MEMORY_DEBUG_NOT_SUPPORTEDmemory-debug-not-supportedQFU_SAHARA_STATUS_INVALID_MODE_SWITCHinvalid-mode-switchQFU_SAHARA_STATUS_EXEC_FAILUREexec-failureQFU_SAHARA_STATUS_EXEC_CMD_INVALID_PARAMexec-cmd-invalid-paramQFU_SAHARA_STATUS_EXEC_CMD_UNSUPPORTEDexec-cmd-unsupportedQFU_SAHARA_STATUS_EXEC_DATA_INVALIDexec-data-invalidQFU_SAHARA_STATUS_HASH_TABLE_AUTH_FAILUREhash-table-auth-failureQFU_SAHARA_STATUS_HASH_VERIFICATION_FAILUREhash-verification-failureQFU_SAHARA_STATUS_HASH_TABLE_NOT_FOUNDhash-table-not-foundQFU_SAHARA_STATUS_TARGET_INIT_FAILUREtarget-init-failureQFU_SAHARA_STATUS_IMAGE_AUTH_FAILUREimage-auth-failureQFU_SAHARA_STATUS_INVALID_IMG_HASH_TABLE_SIZEinvalid-img-hash-table-sizeQFU_SAHARA_MODE_IMAGE_TX_PENDINGQFU_SAHARA_MODE_IMAGE_TX_COMPLETEimage-tx-completeQFU_SAHARA_MODE_MEMORY_DEBUGQFU_SAHARA_MODE_COMMANDQFU_SAHARA_CMD_HELLO_REQQFU_SAHARA_CMD_HELLO_RSPhello-rspQFU_SAHARA_CMD_COMMAND_READ_DATAcommand-read-dataQFU_SAHARA_CMD_COMMAND_END_IMAGE_TRANSFERcommand-end-image-transferQFU_SAHARA_CMD_COMMAND_DONEcommand-doneQFU_SAHARA_CMD_COMMAND_DONE_RESPONSEcommand-done-responseQFU_SAHARA_CMD_COMMAND_RESETcommand-resetQFU_SAHARA_CMD_COMMAND_RESET_RESPONSEcommand-reset-responseQFU_SAHARA_CMD_COMMAND_MEMORY_DEBUGcommand-memory-debugQFU_SAHARA_CMD_COMMAND_MEMORY_READcommand-memory-readQFU_SAHARA_CMD_COMMAND_READYcommand-readyQFU_SAHARA_CMD_COMMAND_SWITCH_MODEcommand-switch-modeQFU_SAHARA_CMD_COMMAND_EXECUTE_REQcommand-execute-reqQFU_SAHARA_CMD_COMMAND_EXECUTE_RSPcommand-execute-rspQFU_SAHARA_CMD_COMMAND_EXECUTE_DATAcommand-execute-dataQFU_SAHARA_CMD_COMMAND_MEMORY_DEBUG_64command-memory-debug-64QFU_SAHARA_CMD_COMMAND_MEMORY_READ_64command-memory-read-64QFU_QDL_CMD_HELLO_REQQFU_QDL_CMD_HELLO_RSPQFU_QDL_CMD_ERRORQFU_QDL_CMD_OPEN_UNFRAMED_REQopen-unframed-reqQFU_QDL_CMD_OPEN_UNFRAMED_RSPopen-unframed-rspQFU_QDL_CMD_WRITE_UNFRAMED_REQwrite-unframed-reqQFU_QDL_CMD_WRITE_UNFRAMED_RSPwrite-unframed-rspQFU_QDL_CMD_CLOSE_UNFRAMED_REQclose-unframed-reqQFU_QDL_CMD_CLOSE_UNFRAMED_RSPclose-unframed-rspQFU_QDL_CMD_DOWNLOAD_REQdownload-reqQFU_QDL_CMD_RESET_REQreset-reqQFU_QDL_CMD_GET_IMAGE_PREF_REQget-image-pref-reqQFU_QDL_CMD_GET_IMAGE_PREF_RSPget-image-pref-rspQFU_IMAGE_TYPE_UNKNOWNQFU_IMAGE_TYPE_AMSS_MODEMamss-modemQFU_IMAGE_TYPE_AMSS_APPLICATIONamss-applicationQFU_IMAGE_TYPE_AMSS_UQCNamss-uqcnQFU_IMAGE_TYPE_DBLdblQFU_IMAGE_TYPE_OSBLosblQFU_IMAGE_TYPE_CWEcweQFU_DLOAD_CMD_ACKQFU_DLOAD_CMD_NOPnopQFU_DLOAD_CMD_SDPsdpQfuAtDevice[qfu-at-device,%s] opening TTYerror opening serial device: %s[qfu-at-device,%s] setting up serial port...error getting serial port attributes: %sfailed to set serial port input speed: %sfailed to set serial port output speed: %serror setting serial port attributes: %sFile objectFilefileproperty../libqmi/src/qmi-firmware-update/qfu-at-device.c%s:%d: invalid %s id %u for "%s" of type '%s' in '%s'device is closederror waiting to write: %stimed out waiting to writeAT!BOOTHOLD[qfu-at-device,%s] >> %serror writting: %serror writing: only %li/%lu bytes written error writting : %serror waiting to read response: %stimed out waiting for the responsecouldn't read response: %scouldn't read response: HUP detected[qfu-at-device,%s] << %sOKunknown commandunknown errorG_IS_FILE (file)QfuDeviceSelection[qfu,device-selection] single %s device requested in sysfs path '%s'[qfu,device-selection] device found: %s[qfu,device-selection] using preferred device: %s[qfu,device-selection] using automatically selected device: %s[qfu,device-selection] couldn't find any device to use[qfu,device-selection] multiple %s devices requested in sysfs path '%s'[qfu,device-selection] using only preferred device: %sNo device selectedOnly one device selection option may be provided../libqmi/src/qmi-firmware-update/qfu-device-selection.c[qfu,dload-message] sent %s:buffer_len >= sizeof (DloadSdpReq)../libqmi/src/qmi-firmware-update/qfu-dload-message.cmessage size mismatch: %lu != %lu[qfu,dload-message] received %s:rsp->cmd == QFU_DLOAD_CMD_ACKpeerport[qfu-helpers] peer port for '%s' found: %smodemdownloadttycdc-wdmQfuImageType of firmware imageImage typeInput stream objectInput streaminput-stream../libqmi/src/qmi-firmware-update/qfu-image.cdata_size <= ((goffset) G_MAXUINT16 * (goffset) QFU_IMAGE_CHUNK_SIZE)QFU_IS_IMAGE (self)remaining_size >= 0[qfu-image] reading [%li-%li]buffer too small to fit read size: %lucouldn't seek input stream: couldn't read data at offset %licouldn't read expected data size: %lu (%li bytes read)[qfu-image] data at offset %li successfully read[qfu-image] loading file info...standard::display-name,standard::sizeself->priv->fileimage is too short[qfu-image] opening file for reading...chunk_i < n_chunkschunk_size > 0[qfu-image] reading chunk #%uinvalid chunk index %u[qfu-image] chunk #%u size: %lu bytesbuffer too small to fit chunk size: %lu[qfu-image] chunk #%u offset: %li bytescouldn't read chunk %ucouldn't read expected chunk %u size: %lu (%li bytes read)[qfu-image] chunk #%u successfully readQfuImageCwebuffer too small to read headercouldn't read file header: CWE firmware image file is too short: full header not availableinvalid image sizeembedded image out of parent image boundsinvalid strings given in image[qfu-image-cwe] %simage offset range: [%li,%li]%s [qfu-image-cwe] %simage at offset %li is validcouldn't seek after image: QFU_IS_IMAGE_CWE (self)self->priv->imagesembedded_i < self->priv->images->lenG_IS_FILE_INPUT_STREAM (input_stream)../libqmi/src/qmi-firmware-update/qfu-image-cwe.c[qfu-image-cwe] reading image headers...[qfu-image-cwe] validating data size...CWE image file size mismatch (expected size: %u bytes, real size: %li bytes)[qfu-image-cwe] preloading firmware/config/carrier...!self->priv->firmware_version!self->priv->config_version!self->priv->carrier[qfu-image-cwe] couldn't parse internal version string '%s': %s[qfu-image-cwe] couldn't parse filename '%s': %sBOOT[qfu-image-cwe] couldn't parse BOOT version '%s': %sNVUP[qfu-image-cwe] couldn't parse NVUP version '%s': %s[qfu-image-cwe] firmware version: %s[qfu-image-cwe] config version: %s[qfu-image-cwe] carrier: %s../libqmi/src/qmi-firmware-update/qfu-image-factory.camss.mbnapps.mbnuqcn.mbn[qfu-image-factory] not a CWE file: %sunknown firmware image file[Debug]-Warning **-Error **%d %b %Y, %H:%M:%S../libqmi/src/qmi-firmware-update/qfu-log.c[%s] %s %s error: cannot specify --verbose and --silent at the same time werror: cannot open verbose log file for writing: %s QmiMbimstrv[0]../libqmi/src/qmi-firmware-update/qfu-main.cinvalid vid-pid string: too many fieldsinvalid product id: %sinvalid vendor id: %sinvalid busnum-devnum string: too many fieldsinvalid bus number: %sinvalid dev number: %s- Update firmware in QMI devices *************************************************************************** Warning! *************************************************************************** Use this program with caution. The authors take *no* responsibility if any device gets broken as a result of using this program. Please report issues to the libqmi mailing list at: libqmi-devel@lists.freedesktop.org Generic device selection options:selectionUpdate options (normal mode):updateReset options (normal mode):Update options (download mode):update-downloadVerify options:verifyerror: couldn't parse option context: %s qmi-firmware-update 1.34.0 Copyright (C) 2016-2022 Aleksander Morgado Copyright (C) 2022 VMware, Inc. Copyright (C) 2016-2019 Bjørn Mork Copyright (C) 2016-2018 Zodiac Inflight Innovations License GPLv2+: GNU GPL version 2 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ******************************************************************************** Example: Updating a Sierra Wireless MC7354. (or other 9x15 or 9x30 devices, like the MC7304, MC7330, MC7455... ). The MC7354 is a 9x15 device which requires the firmware updater to specify the firmware version string, the config version string and the carrier string, so that they are included as identifiers of the firmware images downloaded. The core logic in the application will try to automatically detect these strings, although the user can also use specific options to override them or if the automatic detection failed. While in normal operation, the device will expose multiple cdc-wdm ports, and the updater application just needs one of those cdc-wdm ports to start the operation. The user can explicitly specify the cdc-wdm port to use, or otherwise use the generic device selection options (i.e. --busnum-devnum or --vid-pid) to do that automatically. Note that the firmware for the MC7354 is usually composed of a core system image (.cwe) and a carrier-specific image (.nvu). These two images need to be flashed on the same operation, unless upgrading the carrier-specific image on a device which already has the matching firmware version. The two images may be given combined into a single image (.spk) file. a) An update operation specifying the vid:pid of the device (fails if multiple devices with the same vid:pid are found): $ sudo qmi-firmware-update \ --update \ -d 1199:68c0 \ SWI9X15C_05.05.58.00.cwe \ SWI9X15C_05.05.58.00_Generic_005.025_002.nvu b) An update operation specifying an explicit QMI cdc-wdm device: $ sudo qmi-firmware-update \ --update \ --cdc-wdm /dev/cdc-wdm0 \ SWI9X15C_05.05.58.00.cwe \ SWI9X15C_05.05.58.00_Generic_005.025_002.nvu c) An update operation specifying explicit firmware, config and carrier strings: $ sudo qmi-firmware-update \ --update \ -d 1199:68c0 \ --firmware-version 05.05.58.00 \ --config-version 005.025_002 \ --carrier Generic \ SWI9X15C_05.05.58.00.cwe \ SWI9X15C_05.05.58.00_Generic_005.025_002.nvu d) An update operation with a combined image containing both system and carrier specific images:: $ sudo qmi-firmware-update \ --update \ -d 1199:68c0 \ 9999999_9902574_SWI9X15C_05.05.66.00_00_GENNA-UMTS_005.028_000-field.spk ******************************************************************************** Example: Updating a Sierra Wireless MC7700. (or other 9200 devices, like the MC7710). The MC7700 is a 9200 device which doesn't require the explicit firmware, config and carrier strings. Unlike the MC7354, which would reboot itself into QDL download mode once these previous strings were configured, the MC7700 requires a specific "boot and hold" command to be sent (either via QMI or AT) to request the reset in QDL download mode. a) An update operation specifying the vid:pid of the device (fails if multiple devices with the same vid:pid are found): $ sudo qmi-firmware-update \ --update \ -d 1199:68a2 \ 9999999_9999999_9200_03.05.14.00_00_generic_000.000_001_SPKG_MC.cwe b) An update operation specifying an explicit QMI cdc-wdm device: $ sudo qmi-firmware-update \ --update \ --cdc-wdm /dev/cdc-wdm0 \ 9999999_9999999_9200_03.05.14.00_00_generic_000.000_001_SPKG_MC.cwe ******************************************************************************** Example: Manual process to update a Sierra Wireless MC7354. (or other 9x15 or 9x30 devices, like the MC7304, MC7330, MC7455... ). The upgrade of devices from the 9x15 and 9x30 families is triggered via a 'firmware preference' setting. If the device accepts the setting, the user can request a device power cycle, which will boot in QDL download mode: a) Set firmware preference setting: $ sudo qmicli \ -d /dev/cdc-wdm0 \ --dms-set-firmware-preference="firmware-version=05.05.58.00, \ config-version=005.025_002, \ carrier=Generic" The --override-download and --modem-storage-index=[INDEX] options that are supported in automatic mode may be used in manual mode by passing the additional 'override-download=yes' and 'modem-storage-index=[INDEX]' keys to the --dms-set-firmware-preference operation. b) Request power cycle: $ sudo qmicli \ -d /dev/cdc-wdm0 \ --dms-set-operating-mode=offline $ sudo qmicli \ -d /dev/cdc-wdm0 \ --dms-set-operating-mode=reset c) Wait for the /dev/ttyUSB device to appear. d) Run updater operation while in QDL download mode: $ sudo qmi-firmware-update \ -t /dev/ttyUSB0 \ --update-download \ SWI9X15C_05.05.58.00.cwe \ SWI9X15C_05.05.58.00_Generic_005.025_002.nvu d) Now wait for the device to fully reboot, may take up to several minutes. ******************************************************************************** Example: Manual process to update a Sierra Wireless MC7700. (or other 9200 devices, like the MC7710). Instead of setting a 'firmware preference', the devices from the 9200 family can just be rebooted in QDL mode: a) Request device to go into QDL download mode: $ sudo qmi-firmware-update \ -d 1199:68a2 \ --reset b) Wait for the /dev/ttyUSB device to appear. c) Run updater operation while in QDL download mode: $ sudo qmi-firmware-update \ -d 1199:68a2 \ --update-download \ 9999999_9999999_9200_03.05.14.00_00_generic_000.000_001_SPKG_MC.cwe d) Now wait for the device to fully reboot, may take up to several minutes. ******************************************************************************** Example: Verify firmware images. a) Verify several images at once: $ qmi-firmware-update \ --verify \ SWI9X15C_05.05.58.00.cwe \ SWI9X15C_05.05.58.00_Generic_005.025_002.nvu b) Verify all .cwe, .nvu and .spk images inside a directory: $ find . -regex ".*\.\(nvu\|spk\|cwe\)" -exec qmi-firmware-update -v -z {} \; c) Image files may be given within .exe files; extract them with 7-Zip: $ 7z x SWI9200M_3.5-Release13-SWI9200X_03.05.29.03.exe $ ls *.{cwe,nvu,spk} 2>/dev/null 9999999_9999999_9200_03.05.29.03_00_generic_000.000_001_SPKG_MC.cwe error: no actions specified error: too many actions specified error: no firmware images specified error: couldn't select device:: %s error: couldn't check if ModemManager running: %s error: ModemManager is running: cannot perform firmware upgrade operation at the same time Note: in order to do a clean firmware upgrade, ModemManager must NOT be running; please stop it and retry. On a 'systemd' based system this may be done as follows: # systemctl stop ModemManager You can also ignore this runtime check (at your own risk) using --ignore-mm-runtime-check. error: cannot specify multiple mode flags to open device QFU_IS_DEVICE_SELECTION (device_selection)error: invalid modem storage index FILE1 FILE2...device-open-proxyRequest to use the 'qmi-proxy' proxy.device-open-qmiOpen a cdc-wdm device explicitly in QMI modedevice-open-mbimOpen a cdc-wdm device explicitly in MBIM modedevice-open-autoOpen a cdc-wdm device in either QMI or MBIM mode (default)ignore-mm-runtime-checkIgnore ModemManager runtime checkverboseRun action with verbose messages in standard output, including the debug ones.silentRun action with no messages in standard output; not even the error ones.verbose-logWrite verbose messages to an output file.[PATH]versionPrint version.helpShow help.help-examplesShow help examples.Analyze and verify firmware images.Launch firmware update process while in download (boot & hold) mode.Reset device into download mode.Launch firmware update process.firmware-versionFirmware version (e.g. '05.05.58.00').[VERSION]config-versionConfig version (e.g. '005.025_002').carrierCarrier name (e.g. 'Generic').[CARRIER]ignore-version-errorsRun update operation even with version string errors.override-downloadDownload images even if module says it already has them.modem-storage-indexIndex storage for the modem image.[INDEX]skip-validationDon't wait to validate the running firmware after update.busnum-devnumSelect device by bus and device number (in decimal).[BUS:]DEVvid-pidSelect device by device vendor and product id (in hexadecimal).VID[:PID]Select device by QMI/MBIM cdc-wdm device path (e.g. /dev/cdc-wdm0).Select device by serial device path (e.g. /dev/ttyUSB2).error: reseter operation finished: %s reseter operation finished successfully cancelling the operation... cancelling the main loop... QFU_IS_RESETER (reseter)../libqmi/src/qmi-firmware-update/qfu-operation-reset.cimages../libqmi/src/qmi-firmware-update/qfu-operation-update.cQFU_IS_UPDATER (updater)error: %s note: you can ignore this error using --ignore-version-errors firmware update operation finished successfully n/a%s------------------------------------- %s[cwe %s] type: %s %s[cwe %s] product: %s %s[cwe %s] version: %s %s[cwe %s] date: %s %s[cwe %s] size: %u %s.%u%s error: couldn't detect image type: %s Firmware image: filename: %s detected type: %s size: %li bytes header: %li bytes data: %li bytes data chunks: %hu (%lu bytes/chunk) [cwe] detected firmware version: %s [cwe] detected config version: %s [cwe] detected carrier: %s 0 QfuQdlDevice[qfu-qdl-device] >> %s%s [%lu][qfu-qdl-device] >> %s%s [%lu, unframed](j + 1) < outlen../libqmi/src/qmi-firmware-update/qfu-qdl-device.cframed_size > 0[qfu-qdl-device] << %s%s [%lu]HDLC trailing control character not foundframe_size >= 0frame_size <= rlenminimum HDLC frame size not received[qfu-qdl-device] received %li trailing bytes after HDLC frame (ignored)j < outlenunescaping failed: too few bytes as output: %lucrc check failed: 0x%04x != 0x%04x error unframing message: [qfu-qdl-device] << %s%s [%lu, unframed][qfu-qdl-device] opening TTY: %s[qfu-qdl-device] setting terminal in raw mode...unexpected response received in dload sdp: 0x%02x[qfu-qdl-device] error (ignored): DLOAD SDP not supported[qfu-qdl-device] QDL version detected: %ucouldn't detect QDL versionunexpected response received in ufopen: 0x%02x (%s)received ack for chunk #%hu instead of chunk #%huunexpected response received in ufwrite: 0x%02x (%s)unexpected response received in ufclose: 0x%02x (%s)self->priv->qdl_version > 0unexpected response received in hello: 0x%02x (%s)buffer_len >= sizeof (QdlMsg)../libqmi/src/qmi-firmware-update/qfu-qdl-message.c[qfu,qdl-message] sent %s:buffer_len >= sizeof (QdlHelloReq)[qfu,qdl-message] magic: %.*s[qfu,qdl-message] maximum version: %u[qfu,qdl-message] minimum version: %u[qfu,qdl-message] features: 0x%02x[qfu,qdl-message] received %s:rsp->cmd == QFU_QDL_CMD_HELLO_RSPUnknown[qfu,qdl-message] received %s[qfu,qdl-message] error: %u[qfu,qdl-message] errortxt: %ursp->cmd == QFU_QDL_CMD_ERRORbuffer_len >= sizeof (QdlUfopenReq)couldn't read image header: [qfu,qdl-message] type: %u[qfu,qdl-message] length: %u[qfu,qdl-message] window size: %u[qfu,qdl-message] chunk size: %u[qfu,qdl-message] status: %hursp->cmd == QFU_QDL_CMD_OPEN_UNFRAMED_RSPoperation returned an error status: %hubuffer_len >= sizeof (QdlUfwriteReq)couldn't read image chunk #%u: [qfu,qdl-message] sequence: %hu[qfu,qdl-message] chunk size: %u[qfu,qdl-message] status: %hu[qfu,qdl-message] sequence: %hursp->cmd == QFU_QDL_CMD_WRITE_UNFRAMED_RSP[qfu,qdl-message] errortxt: %ursp->cmd == QFU_QDL_CMD_CLOSE_UNFRAMED_RSPNoneReservedInvalid destination addressInvalid lengthUnexpected end of packetInvalid commandOperation failedInvalid flash intelligent IDInvalid programming voltageWrite verify failedInvalid security codePower-down failedNAND flash programming not supportedCommand out of sequenceClose failedInvalid feature bitsOut of spaceInvalid security modeMulti-image NAND not supportedPower-off command not supportedCommand not supportedInvalid CRCCommand received in invalid stateReceive timeoutImage authentication errorQfuReseterctx->qmi_device../libqmi/src/qmi-firmware-update/qfu-reseter.cNo devices found to run reset operationctx->current[qfu-reseter] error: %scouldn't run reset operation[qfu-reseter] successfully run 'at boothold' operationctx->qmi_client || self->priv->qmi_client[qfu-reseter] error: couldn't allocate QMI client: %s[qfu-reseter] skipping QMI-based boothold[qfu-reseter] trying boot image download mode...[qfu-reseter] successfully run 'set firmware id' operation[qfu-reseter] error: couldn't run 'set firmware id' operation: %s[qfu-reseter] successfully run 'set boot image download mode' operation[qfu-reseter] error: couldn't run 'set boot image download mode' operation: %s[qfu-reseter] error: couldn't power cycle: %s[qfu-reseter] reset requested successfully...QfuSaharaDevice[qfu-sahara-device] >> %s%s [%lu]> %s(guint)rlen <= self->priv->buffer->len - 1../libqmi/src/qmi-firmware-update/qfu-sahara-device.c[qfu-sahara-device] << %s%s [%lu][qfu-sahara-device] << %s[qfu-sahara-device] sending firehose ping...[qfu-sahara-device] sending firehose configure...[qfu-sahara-device] sending firehose storage info request...[qfu-sahara-device] running firehose operation...(max_retries && init_retry) || (!max_retries && !init_retry)operation timed outoperation cancelled[qfu-sahara-device] firehose operation failed: %s[qfu-sahara-device] firehose operation finished successfully[qfu-sahara-device] sending firehose program request...[qfu-sahara-device] sending firehose reset...ACK[qfu-sahara-device] firehose response received: value=%s, rawmode=%sunexpected firehose response received: value=%s, rawmode=%sfalse[qfu-sahara-device] firehose log: %s[qfu-sahara-device] ignoring additional response message detected[qfu-sahara-device] unknown firehose message received=sector_size_in_bytespages_in_block[qfu-sahara-device] firehose requested max payload size: %u bytesunexpected max payload size: %u[qfu-sahara-device] opening TTY: %s[qfu-sahara-device] setting terminal in raw mode...[qfu-sahara-device] waiting time for device to boot properly...[qfu-sahara-device] initializing sahara protocol...no sahara response receivedsahara header not fully received: %li < %lusahara message not fully received: %li < %lu[qfu-sahara-device] sahara hello request received[qfu-sahara-device] module is ready for commands[qfu-sahara-device] request to switch to firehose acceptedunexpected sahara messageunsupported sahara message: '0x%08x'too many attempts[qfu-sahara-device] using default sector size (%u bytes)[qfu-sahara-device] using default pages in block (%u)unknown max payload sizeself->priv->transfer_block_size <= self->priv->max_payload_size_to_target_in_bytesself->priv->transfer_block_size > 0invalid confirmation data[qfu-sahara-device] sahara initialization finished: %.*s[qfu-sahara-device] initializing firehose protocol...trueSetting up firehose download for %li bytes image... pages in block: %u sector size: %u num partition sectors: %u transfer block size: %u (%u sectors/transfer) num transfers: %u[qfu-sahara-device] writing block %u...self->priv->transfer_block_size < self->priv->buffer->lensize <= self->priv->transfer_block_sizecouldn't read transfer block %u(guint)reqlen <= self->priv->transfer_block_sizecouldn't send transfer block %ucouldn't send last end-of-transfer block[qfu,sahara-message] received %s:[qfu,sahara-message] version: %u[qfu,sahara-message] compatible: %u[qfu,sahara-message] max length: %umsg->header.cmd == GUINT32_FROM_LE (QFU_SAHARA_CMD_HELLO_REQ)../libqmi/src/qmi-firmware-update/qfu-sahara-message.c[qfu,sahara-message] mode: %s[qfu,sahara-message] mode: unknown (0x%08x)unsupported sahara version (%u > %u)buffer_len >= sizeof (SaharaHelloResponse)buffer_len >= sizeof (SaharaCommandExecuteRequest)[qfu,sahara-message] execute: 0x%08x[qfu,sahara-message] expected data length: %umsg->header.cmd == GUINT32_FROM_LE (QFU_SAHARA_CMD_COMMAND_EXECUTE_RSP)buffer_len >= sizeof (SaharaCommandExecuteDataRequest)[qfu,sahara-message] file: %umsg->header.cmd == GUINT32_FROM_LE (QFU_SAHARA_CMD_COMMAND_END_IMAGE_TRANSFER)[qfu,sahara-message] status: %s[qfu,sahara-message] status: unknown (0x%08x)operation failed: %sQfuUpdater../libqmi/src/qmi-firmware-update/qfu-updater.c[qfu-updater] couldn't release client: %s[qfu-updater] client releasedloading device information after the update (%u/%u)... [qfu-updater] creating QMI DMS client after upgrade...ctx->cdc_wdm_fileloading device information before the update... [qfu-updater] creating QMI DMS client...[qfu-updater] waiting some time (%us) before accessing the cdc-wdm device...waiting some time for the device to boot... (*-----)%s %u[qfu-updater] now waiting for cdc-wdm device...rebooting in download mode... [qfu-updater] reset requested, now waiting for serial device...[qfu-updater] power cycling...ctx->pending_images != NULLyesnofirmware_versionconfig_versionsetting firmware preference: firmware version: '%s' config version: '%s' carrier: '%s' ?_?%s_?%s_%s[qfu-updater] setting firmware preference...[qfu-updater] modem image: unique id '%.16s', build id '%s'[qfu-updater] pri image: unique id '%.16s', build id '%s'[qfu-updater] override download: %s %sModel: %s %sBoot version: %s %sAMSS version: %s %sSKU ID: %s %sPackage ID: %s %sCarrier ID: %s %sConfig version: %s %simage '%s': unique id '%s', build id '%s' %sno preference specified [qfu-updater] operation finishedctx ------------------------------------------------------------------------ original firmware revision was: %s original running firmware details: original firmware preference details: new firmware revision is: %s new running firmware details: new firmware preference details: NOTE: this device supports stored image management with qmicli operations: --dms-list-stored-images --dms-select-stored-image --dms-delete-stored-image NOTE: this device supports firmware preference management with qmicli operations: --dms-get-firmware-preference --dms-set-firmware-preference ------------------------------------------------------------------------ [qfu-updater] cleaning up QMI device...[qfu-updater] couldn't close device: %s[qfu-updater] closed[qfu-updater] reset requested successfully...!ctx->current_imagectx->pending_images[qfu-updater] selected file '%s' (%li bytes)boothold reseter operation failed: [qfu-updater] boothold reset requested successfully... %s %u !ctx->serial_fileerror waiting for serial device in download mode: [qfu-updater] serial device in download mode found: %sdownload mode detected ctx->current_image[qfu-updater] no more files to downloadctx->serial_file!ctx->qdl_device!ctx->sahara_device[qfu-updater] sahara device creation failed: %s[qfu-updater] qdl device creation failed: %sunsupported download protocol!ctx->qmi_device!ctx->qmi_clientmodem storage index out of bounds (%u > %u)downloading %s image: %s (%s)... couldn't send greetings to device: couldn't open session: [qfu-updater] all chunks ack-ed %s %04.1lf%% finalizing download... (may take more than one minute, be patient) couldn't write in session: couldn't close session: [qfu-updater] qdl/sdp download finished[qfu-updater] all blocks downloadedcouldn't prepare download:  finalizing download... (may take several minutes, be patient) couldn't teardown download: [qfu-updater] sahara/firehose download finishederror downloading image: successfully downloaded in %.2lfs (%s/s) !ctx->cdc_wdm_fileerror waiting for cdc-wdm: [qfu-updater] cdc-wdm device found: %snormal mode detected ------------------------------------------------------------------------ NOTE: in order to validate which is the firmware running in the module, the program will wait for a complete boot; this process may take some time and several retries. ------------------------------------------------------------------------ setting firmware/config/carrier is not supported by this devicecouldn't detect firmware version: firmware version strings don't match on specified images: '%s' != '%s'firmware version strings don't match on specified images: '%s' != '%s' (IGNORED with --ignore-version-errors)couldn't detect config version: config version strings don't match on specified images: '%s' != '%s'[qfu-updater] config version strings don't match on specified images: '%s' != '%s' (IGNORED with --ignore-version-errors)couldn't detect carrier: carrier strings don't match on specified images: '%s' != '%s'[qfu-updater] carrier strings don't match on specified images: '%s' != '%s' (IGNORED with --ignore-version-errors)error validating firmware version: user provided firmware version doesn't match the one in the specified images: '%s' != '%s'[qfu-updater] user provided firmware version doesn't match the one in the specified images: '%s' != '%s' (IGNORED with --ignore-version-errors)[qfu-updater] user provided config version doesn't match the one in the specified images: '%s' != '%s' (IGNORED with --ignore-version-errors)error validating carrier: user provided carrier doesn't match the one in the specified images: '%s' != '%s'[qfu-updater] user provided carrier doesn't match the one in the specified images: '%s' != '%s' (IGNORED with --ignore-version-errors)firmware version requiredconfig version requiredcarrier requiredQMI operation failed, couldn't set firmware preference: couldn't set firmware preference: device already contains the given firmware/config version: no download needed forcing the download may be requested with the --override-download option now power cycling to apply the new firmware preference... [qfu-updater] need to download the following images: %s, [qfu-updater] QDL reset[qfu-updater] firehose resetrebooting in normal mode... couldn't create DMS client after upgrade: %scouldn't create DMS client after upgrade: %s (will retry)image_file_listNo cdc-wdm device found to run update operationNo serial device in download mode found to run QDL update operation(-*----)(--*---)(---*--)(----*-)(-----*)[qfu-udev] event: %s %swaiting for device at '%s' timed outwaiting for device at '%s' cancelled!ctx->timeout_id../libqmi/src/qmi-firmware-update/qfu-helpers-udev.c!ctx->uevent_id!ctx->cancellable_idusb_devicecouldn't find parent physical USB devicebNumInterfacesID_VENDOR_IDID_MODEL_IDBUSNUMDEVNUMcouldn't find parent interface USB deviceusb_interfaceqcserialqmi_wwancdc_mbim/dev/%saddmovechangedevice[qfu-udev] peer lookup for %s: %s => %s[qfu-udev] waiting device (%s) matched: %scouldn't get filenameunknown device file type[qfu-udev] sysfs path for '%s' found: %sdevice not foundvid 0x%04x%spid 0x%04x%sbus %03u%sdev %03umatch_str->len > 0no device found with matching criteria: %s[%s] sysfs path: %smultiple devices (%u) found with matching criteria: %sueventusbmiscusbnet %s%s%s%s%s%s%s%s%s%s\s*\s*../libqmi/src/qmi-firmware-update/qfu-firehose-message.c\s*\s*\s*\s*withwithoutmbimqmicouldn't create QMI device: [qfu,utils] QMI device created[qfu,utils] opening QMI device (%s proxy, %s mode)...[qfu,utils] allocating new DMS QMI client...ctx->qmi_client_retries >= 0../libqmi/src/qmi-firmware-update/qfu-utils.ccouldn't allocate DMS QMI client: [qfu,utils] DMS QMI client allocation failed: %s[qfu,utils] retrying...[qfu,utils] DMS QMI client allocatedQMI operation failed: couldn't set operating mode: couldn't set operating mode: [qfu,utils] operating mode set successfully...couldn't open QMI device: [qfu,utils] QMI device open[qfu,utils] current revision loaded: %s%02Xunique_id->len <= UNIQUE_ID_LEN[qfu,utils] current firmware preference loaded:[qfu,utils] [image %u][qfu,utils] Image type: '%s'[qfu,utils] Unique ID: '%s'[qfu,utils] Build ID: '%s'[qfu,utils] no images specified(?:.*)_([0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9])(?:(?:.*)_([a-zA-Z\-]+)_([0-9][0-9][0-9]\.[0-9][0-9][0-9]_[0-9][0-9][0-9]))?regexcouldn't parse CWE version string '%s': didn't match[qfu,utils] creating QMI device...mm_runningCouldn't get system bus: Pingorg.freedesktop.DBus.Peer/org/freedesktop/ModemManager1org.freedesktop.ModemManager1[qfu-utils] couldn't ping ModemManager: %s0qfu_at_device_newqfu_device_selection_newqfu_dload_request_sdp_buildqfu_dload_response_ack_parseqfu_image_get_n_data_chunksqfu_image_get_image_typeqfu_image_get_display_nameqfu_image_get_sizeqfu_image_readqfu_image_get_header_sizeinitable_initqfu_image_read_headerqfu_image_get_data_sizeqfu_image_get_data_chunk_sizeqfu_image_read_data_chunkqfu_image_newqfu_image_cwe_get_n_embedded_headersqfu_image_cwe_embedded_header_get_parent_indexqfu_image_cwe_embedded_header_get_typeqfu_image_cwe_embedded_header_get_productqfu_image_cwe_embedded_header_get_versionqfu_image_cwe_embedded_header_get_dateqfu_image_cwe_embedded_header_get_image_sizeinitable_initparse_firmware_config_carrierqfu_image_cwe_get_parsed_firmware_versionqfu_image_cwe_get_parsed_config_versionqfu_image_cwe_get_parsed_carrierqfu_image_cwe_newqfu_image_factory_buildlog_handlerparse_vid_pidparse_busnum_devnummainoperation_reseter_runoperation_update_runqfu_operation_update_runqfu_operation_update_download_runescapesend_framed_requestreceive_responseunescapeqfu_qdl_device_helloqfu_qdl_device_newqdl_message_generic_buildQCOM high speed protocol hst0qfu_qdl_request_hello_buildqfu_qdl_response_hello_parseqfu_qdl_response_error_parseqfu_qdl_request_ufopen_buildqfu_qdl_response_ufopen_parseqfu_qdl_request_ufwrite_buildqfu_qdl_response_ufwrite_parseqfu_qdl_response_ufclose_parserun_context_freerun_context_step_atrun_context_step_qmi_firmware_idrun_context_step_qmi_boot_image_download_modereceive_responsefirehose_init_prepare_requestfirehose_operation_runsahara_device_firehose_initqfu_sahara_device_firehose_write_blockqfu_sahara_device_new  qfu_sahara_request_hello_parseqfu_sahara_response_hello_buildqfu_sahara_request_switch_buildqfu_sahara_response_switch_parseqfu_sahara_request_switch_data_buildqfu_sahara_response_end_image_transfer_parserun_context_freerun_context_step_qmi_client_afterrun_context_step_qmi_clientrun_context_step_power_cyclerun_context_step_set_firmware_preferencerun_context_step_lastrun_context_step_select_imagewait_for_tty_readyrun_context_step_cleanup_imagerun_context_step_select_devicenew_client_dms_readyrun_context_step_download_imagewait_for_cdc_wdm_readyrun_context_step_cleanup_devicenew_client_dms_after_readyqfu_updater_runqfu_updater_newqfu_updater_new_downloadwait_for_device_context_freedevice_matchesqfu_helpers_udev_find_by_device_infoqfu_helpers_udev_list_devicesqfu_helpers_udev_wait_for_deviceqfu_firehose_message_parse_response_ackqfu_firehose_message_parse_logqfu_firehose_message_parse_response_configureretry_allocate_qmi_clientpower_cycle_stepqfu_utils_get_firmware_image_unique_id_printable#2$FW6etHZӾl~3"V,Gu>dɜ@ۿRdv!0&gv4DUJüXџn|ك1 w.fT@R+:dN_vm|$ÿ6H ;Z*^lO}~l .ǟ䩐 2ZLKy^hh ?z.ĕ*8FkzTHYb-p|>X?`?X@@(@LxApABB8H HP(ItIJKL0MdNOV\WpWW W(WWDXXDYx\8_\_h_`X`pbXd8e0e\gXj|k$l0lXXm$psHs\twd<?<A<B<@D =EH=xG=H=@H=`I>J4>K\>XL>M>@N>O ?|Pd?Q?S?HT?V4@W|@X@X@|Y@zRx 4A,0@,< TTHA BNx,A BG A W4, A BI A Y|8,A BI A YD8,XDA BI A Y8,A BI A YP8,|A BI A Y8$$8A@EBk A P`ACBDd A MTAR A U A U A R A RD hA Dg C $ A Cb4 A@ABB_ A Q<4L A@ABD[BA@E,t tA BI A O  hA BU\ AA BB LCC AAA AAAL A fU BAA N AAA fAAMU AAA ZCAA|L 0LA0BEV E LPCF tA DQ A XA BZ,dABD D TC t ADA bBDA PA AA$A0DB_ A ,tA BI A O `8A BJ@| Tt phtA` B EZCf ADA TADC`  I TA DK$(4lA0BDP`Px@Ap BDH F{ EA IR A MF A hAT A 4A BT A Q A  p l 4lTA BQ(XA0I[ $A@EBk A (A0DBS A H  A@ABM D D D D D AZB L A CZHp LA@ABO A AZBA@H 4C, tA BI A O  X<A BJ(( tA BR A L(T A BQ D L( < A BQ D L 4A BG@ XA` B BCCBC A , "A BS A L<D H#hA@BEt A P A < x$A@BCB[ A N, %A BS A L$ h%A BW A < (&AP BCBBb A \ (DAL C 4| (A0BEY F M )$ |)A@CBq A L*<A DI  h*4A BI 8 *A DY A \ + CD | +pA BV L+A O A H +A` D CBCDM `FA , 1tA BI A O <`1pA BW(`1A BT A K$2A B[ A 02A B[ A L A 03A B[ A L A 04A B[ A L A 0PX5A B[ A L A 0(6A B\ A L A 7 AD C BV A YkCyA\AgNAAACGAAH=\=p|=x=l=(`=A BR A L(=A BR A L($>A BR A L00>A0BEV H M4d8?PAPCBBC| A 4`AACBCCO A HD$XD DPDdA0EQfBAA0GA0ODxE(\EA0EE\ A ,FA0EE\ A 8$AC ECD A $HHA0CBe A (IA BO A V0H|IAPECX A 8|@KApC DBl A 4M$A@CBQQP A HDC(pNA BO A V$NA0FET A $DxOA BQ A @lOA` B FEq A DZۀXRAC BW CCCBBAJA  LE AAA4hU$HdUA@EBk A 4pVBABEBn A <XAP BDCBr B 8[A Dg C [A Cb<0p\A@ABD[BA@I<p\A@ABD[BA@El]AC BBH~bCsAKA ABeMSBAPL_wLAAAThdAC BE Cd A IrjU A U A UAL AA t AA S AA FCA,htA BI A O( 0iA0BB^\8iAPBBChUO A M C MCPCC84kA`BBCkUL A _CC\lAPABCo C CUL A MCPCC`4hn4APABBjUL A M C MCPCACG4DpA0BIXEA0T0 qA0BEV E Mq4C$q$A By A @Dr\A0Cp A CNCA0C4stA0Ct A W A 8 F@@No(9(96[o`;`;Pj;;hCtBH~``yP([@((@@Ǥ   8@ ppp 0Q