ELF4-4 (4444444"4"4"44d p"pp``HHH Ptd!Qtd/lib/ld-linux.so.2GNU  @ Jѐ !ZDi:HE W` qPPA Ӄ(P*D$ A!" C &J! `B0     "&(*,-1348:;=?@BCDFGHJKMOQRTUJZ|7WKU0ZpέAKy؆@ir Pghᐛօ  &B\qGJYp,7X"|߱x7EQI*LC+{X*Jf!*B*Y@tA.'sD-vw{Oejs:)Sp!dnsW~pA` 1J?jnc>uW~g.aIE k8x[`8t9[oQ[~md%Ңh8{#H2E{ۡdf/y\dk԰dTZ<qX{)wpQZ>7q[>Q&QLcPQ&Q !7<+( ,!0{!!5 Sc@;H!`05 `e #&#!x!p(!% oe" A @ "0libkdeui.so.4_ZN7QWidget8reparentEPS_jRK6QPointb_ZN7QWidget22windowActivationChangeEb_ZN7QWidgetD2Ev_ZTI7QWidget_ZN7QWidget7setNameEPKc_ZN6QGListD1Ev_ZN7QWidget10paintEventEP11QPaintEvent_ZNK10QTabWidget16currentPageIndexEv_ZN12QPaintDevice13setResolutionEi_ZN7QWidget13dragMoveEventEP14QDragMoveEvent_ZN7QWidget13setFocusProxyEPS__ZN18QMetaObjectCleanUpD1Ev_ZN7QWidget9showEventEP10QShowEvent_ZN7QWidget14setFocusPolicyENS_11FocusPolicyE_ZN7QPixmap4fillERK6QColor_ZN7QWidget16staticMetaObjectEv_ZN7QWidget9qt_invokeEiP8QUObject_ZN7QWidget5closeEb_ZN11QGridLayoutC1EP7QLayoutiiiPKc_ZN6QBrushD1Ev_Z8qWarningPKcz_ZN7QWidget14setMaximumSizeEii_ZNK9QTextEdit4fontEv_ZN14QPtrCollection7newItemEPv_ZN7QStringC1EPKc_ZN7QWidget11styleChangeER6QStyle_ZN11QGridLayout7addItemEP11QLayoutItemii_ZNK9QLineEdit4textEv_ZN7QWidget17mouseReleaseEventEP11QMouseEvent_ZNK9QComboBox11currentItemEv_ZN7QObject10childEventEP11QChildEvent_ZN8QPainter8drawTextEiiRK7QStringiNS_13TextDirectionEqApp_ZN7QWidget13keyPressEventEP9QKeyEvent_ZN7QWidget9setCursorERK7QCursor_ZN7QWidget18setBackgroundColorERK6QColor_ZN8QPainterD1Ev_ZN7QWidget5eventEP6QEvent_ZN7QWidget10updateMaskEv_ZN7QObject7connectEPKS_PKcS1_S3__ZN7QWidget14setAcceptDropsEb_ZN7QWidget14dragEnterEventEP15QDragEnterEvent_ZNK7QString5asciiEv_ZN7QObject10timerEventEP11QTimerEvent_ZN6QColorC1ERKS__ZN11QMetaObject14new_metaobjectEPKcPS_PK9QMetaDataiS5_iPK13QMetaPropertyiPK9QMetaEnumiPK10QClassInfoi_ZN8QPainter8drawLineEiiii_ZN7QWidget8setFocusEv_ZN7QWidget16setSizeIncrementEii_ZN7QWidget7qt_emitEiP8QUObject_ZN10QTabWidget9changeTabEP7QWidgetRK7QString_ZN7QWidget7setIconERK7QPixmap_ZN7QWidget11qt_propertyEiiP8QVariant__gmon_start___ZN7QWidget13setSizePolicyE11QSizePolicy_ZN7QWidget7setMaskERK7QRegion_ZN6QColor6setRgbEiii_ZN11QHBoxLayoutC1EP7QLayoutiPKc_ZN7QWidget10leaveEventEP6QEvent_ZN7QWidget12imStartEventEP8QIMEvent_ZN7QWidget4hideEv_ZN7QWidget8x11EventEP7_XEvent_ZNK7QWidget8sizeHintEv_ZNK7QWidget15minimumSizeHintEv_ZN10KAboutDataD1Ev_ZN8QPainterC1Ev_ZN7QWidget21mouseDoubleClickEventEP11QMouseEvent_ZN7QWidget11resizeEventEP12QResizeEvent_ZN7QWidget17setMicroFocusHintEiiiibP5QFont_ZN7QWidget10setPaletteERK8QPalette_ZN11QGridLayout18addMultiCellWidgetEP7QWidgetiiiii_ZNK7QWidget10sizePolicyEv_ZN7QWidgetC2EPS_PKcj_ZN7QWidget11unsetCursorEv_ZN7QObject11setPropertyEPKcRK8QVariant_ZNK12QPaintDevice7fontInfEP5QFonti_ZN7QObject13connectNotifyEPKc_ZN9QComboBoxC1EbP7QWidgetPKc_ZN7QWidget4showEv_Z6bitBltP12QPaintDeviceiiPKS_iiiiN2Qt8RasterOpEb_ZN7QWidget10wheelEventEP11QWheelEvent_ZN7QWidget18focusNextPrevChildEb_ZN7QObject11removeChildEPS__ZN7QWidget6resizeEii_ZN12QButtonGroupC1EP7QWidgetPKc_ZN7QWidget9dropEventEP10QDropEvent_ZN6QBrushC1ERK6QColorN2Qt10BrushStyleE_ZN12QKeySequenceD1Ev_ZN7QWidget10imEndEventEP8QIMEvent_ZN8QPainter7setFontERK5QFont_ZN7QWidget7qt_castEPKc_ZNK7QWidget6metricEi_ZN7QWidget15setActiveWindowEv_ZNK7QObject8propertyEPKc_ZN7QWidget17setKeyCompressionEb_ZN7QPixmapD1Ev_Jv_RegisterClasses_ZN7QWidget9hideEventEP10QHideEvent_ZN18QMetaObjectCleanUp13setMetaObjectERP11QMetaObject_ZN10QWhatsThis15whatsThisButtonEP7QWidget_ZN7QWidget10showNormalEv_ZN7QWidget13enabledChangeEb_ZN7QString4nullE_ZNK6QGList5writeER11QDataStreamPv_ZN12QPaintDevice3cmdEiP8QPainterP13QPDevCmdParam_ZN7QWidget13setEraseColorERK6QColor_ZNK12QPaintDevice7fontMetEP5QFontiPKci_ZN10QTabWidgetC1EP7QWidgetPKcj_ZN11QHBoxLayoutC1EP7QWidgetiiPKc_ZN11QPushButtonC1EP7QWidgetPKc_ZN7QWidget13showMinimizedEv_ZN7QString8fromUtf8EPKci_ZN6QLabelC1EP7QWidgetPKcj_ZN7QPixmapC1EPPKc_ZN12QApplication13processEventsEv_ZN12QPaintDevice10setX11DataEPK19QPaintDeviceX11Data_ZN8QPainter8fillRectEiiiiRK6QBrush_ZN7QWidget16contextMenuEventEP17QContextMenuEvent_ZN7QWidget10enterEventEP6QEvent_ZN7QWidget10fontChangeERK5QFont_ZN11QGridLayoutC1EP7QWidgetiiiiPKc_ZN7QWidget11setGeometryEiiii_ZNK12QPaintDevice6handleEv_ZThn40_NK7QWidget6metricEi_ZN11QGridLayout9addLayoutEP7QLayoutii_Z4i18nPKc_ZN10QTabWidget14setCurrentPageEi_ZN7QWidget14dragLeaveEventEP15QDragLeaveEvent_ZNK7QWidget14heightForWidthEi_ZN8QPainter5beginEPK12QPaintDeviceb_ZN9QLineEditC1EP7QWidgetPKc_ZN9QGroupBoxC1EP7QWidgetPKc_ZN7QWidget13showMaximizedEv_ZN12QRadioButtonC1EP7QWidgetPKc_ZTI14QPtrCollection_ZN7QWidget16setMouseTrackingEb_ZN7QWidget13focusOutEventEP11QFocusEvent_ZN7QWidget10closeEventEP11QCloseEvent_ZN7QWidget10setCaptionERK7QString_ZN7QWidget15keyReleaseEventEP9QKeyEvent_ZN7QWidget14imComposeEventEP8QIMEvent_ZN7QObject11eventFilterEPS_P6QEvent_ZN7QWidget11setAutoMaskEb_ZN11QGridLayout9addWidgetEP7QWidgetiii_ZN6QGList5clearEv_ZN7QString11shared_nullE_ZN8QToolTip3addEP7QWidgetRK7QString_ZN6QGList12compareItemsEPvS0__ZN7QWidget11setIconTextERK7QString_ZNK12QPaintDevice10resolutionEv_ZN11QStringData10deleteSelfEv_ZTV11QSpacerItem_ZN9QComboBox10insertItemERK7QStringi_ZN7QWidget10adjustSizeEv_ZN18QMetaObjectCleanUpC1EPKcPFP11QMetaObjectvE_ZN7QWidget14setErasePixmapERK7QPixmap_ZNK12QPaintDevice15x11RenderHandleEv_ZN7QObject11insertChildEPS__ZN10QWhatsThis3addEP7QWidgetRK7QString_ZN7QWidget4moveEii_ZN7QWidget11tabletEventEP12QTabletEvent_ZN7QString10fromLatin1EPKci_ZNK7QWidget15customWhatsThisEv_ZN7QWidget7setMaskERK7QBitmap_ZN7QPixmapC1EiiiNS_12OptimizationE_ZN7QWidget6polishEv_ZN9QComboBox5clearEv_ZN5QFontD1Ev_ZN7QObject16disconnectNotifyEPKc_ZN7QWidget17setBackgroundModeEN2Qt14BackgroundModeE_ZN7QObject11customEventEP12QCustomEvent_ZN10QBoxLayout9addWidgetEP7QWidgetii_ZN7QWidget15mousePressEventEP11QMouseEvent_ZN9QCheckBoxC1EP7QWidgetPKc_ZN7QWidget12focusInEventEP11QFocusEvent_ZN7QObject16checkConnectArgsEPKcPKS_S1__ZN5QFontC1ERK7QStringiib_ZN6QGList4readER11QDataStreamRPv_ZN7QWidget14updateGeometryEv_ZN7QWidget14setMinimumSizeEii_ZN7QWidget6createEmbb_ZN6QGListD0Ev_ZN7QWidget25setPaletteBackgroundColorERK6QColor_ZN7QWidgetC1EPS_PKcj_ZN7QWidget14mouseMoveEventEP11QMouseEvent_ZN7QWidget7destroyEbb_ZN7QWidget19setBackgroundPixmapERK7QPixmap_ZN8QPainter6setPenERK6QColor_ZN7QWidget19setBackgroundOriginENS_16BackgroundOriginE_ZN7QWidget10setEnabledEb_ZN7QWidget13paletteChangeERK8QPalette_ZN7QWidget9moveEventEP10QMoveEvent_ZN7QWidget7setFontERK5QFont_ZN8QPainter3endEv_ZN7QWidget26setPaletteBackgroundPixmapERK7QPixmap_ZN7QWidget17setUpdatesEnabledEb_init_ZN7QWidget11setGeometryERK5QRect_ZNK6QGList5countEv_fini_ZTI6QGList_ZN7QWidget9setWFlagsEj_ZTS6QGList_ZTV6QGList_ZN7QWidget9setWStateEjlibkdecore.so.4_ZNK7QWidget1yEv_ZN5QFont9setFamilyERK7QString_ZNK7QWidget1xEv_ZN12QApplication13setMainWidgetEP7QWidget_ZN12QApplication4beepEv_ZNK7QThread7runningEv_ZN7QThreadC2Ev_ZN7QThread5startEv_ZN7QThreadD2Ev_ZTI7QThread_ZN10KAboutDataC1EPKcS1_S1_S1_iS1_S1_S1_S1__ZN12KCmdLineArgs5clearEv_ZN10KAboutData9addAuthorEPKcS1_S1_S1__ZN12KApplicationD1Ev_ZN12KCmdLineArgs4initEiPPcPK10KAboutDatab_ZN12KCmdLineArgs10parsedArgsEPKc_ZN12KCmdLineArgs17addCmdLineOptionsEPK15KCmdLineOptionsPKcS4_S4__ZN12KApplicationC1EbblibDCOP.so.4libdl.so.2libresolv.so.2libutil.so.1libkdefx.so.4libqt-mt.so.3_ZN10QBoxLayout12insertWidgetEiP7QWidgetii_ZN10QTabWidget14setTabPositionENS_11TabPositionE_ZN7QThread4waitEm_ZNK12QApplication9translateEPKcS1_S1_NS_8EncodingE_ZN12QTextBrowserC1EP7QWidgetPKc_ZN8QPainter12boundingRectERK5QRectiRK7QStringiPP10QTextParag_ZN12QApplication6unlockEb_ZN12QKeySequenceC1ERK7QString_ZN7QStringC1ERKSs_ZN7QLayout6removeEP7QWidget_ZN12QApplication4execEv_ZN12QApplication4lockEv_ZN10QTabWidget11setTabShapeENS_8TabShapeElibz.so.1libXext.so.6libX11.so.6libSM.so.6libICE.so.6libpthread.so.0closelibXrender.so.1libstdc++.so.6_ZSt20__throw_out_of_rangePKc_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv_Znwj_ZN9__gnu_cxx18__exchange_and_addEPVii_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE_ZNSs4_Rep9_S_createEjjRKSaIcE_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6__ZNSsC1ERKSs_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev_ZSt19__throw_logic_errorPKc_ZNSsC1IPcEET_S1_RKSaIcE_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode_ZNSs6assignERKSs_ZSt20__throw_length_errorPKc_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6__ZNSt8ios_baseD2Ev_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE_ZTVN10__cxxabiv120__si_class_type_infoE_ZNSs9_M_mutateEjjj_ZNSs7reserveEj_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8__ZTVSt14basic_ofstreamIcSt11char_traitsIcEE_Znaj_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc_ZNSolsEb_ZNSolsEd_ZNSolsEi__cxa_pure_virtual_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE_ZTVSt15basic_streambufIcSt11char_traitsIcEE_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS__ZNSsC1EPKcjRKSaIcE_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE_ZNKSs7compareEPKc_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE_ZNKSs16find_last_not_ofEPKcjj_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE_ZNSsC1EPKcRKSaIcE_ZSt17__throw_bad_allocv_ZNSt8ios_base4InitC1Ev_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4__ZNSt6localeC1Ev_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE_ZNSs4_Rep20_S_empty_rep_storageE_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E_ZNSsD1Ev_ZTVSt13basic_filebufIcSt11char_traitsIcEE_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev_ZNSsC1ERKSsjj_ZdlPv_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E_ZTVSt9basic_iosIcSt11char_traitsIcEE_ZNKSs17find_first_not_ofEPKcjj_ZNSt8ios_baseC2Ev_ZNSs6appendEPKcj_ZTVN10__cxxabiv121__vmi_class_type_infoE_ZNSt8ios_base4InitD1Ev_ZNSt6localeD1Ev_ZNSirsERb_ZNSirsERd_ZNSirsERi_ZNKSs4findEPKcjj_ZNSs4_Rep10_M_destroyERKSaIcE_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base_ZNSs6assignEPKcj_ZNSs6appendERKSs_ZNSt12__basic_fileIcED1Evlibm.so.6sinlog2atan2powfloorsinflogceillibgcc_s.so.1libc.so.6_IO_stdin_usedmkdirfgetsstrlen__cxa_atexitftimememcpygetenvsscanfstderrioctlfwritefdopen__libc_start_mainrandom_edata__bss_start_end/usr/lib:/usr/lib/qt-3.3/libGLIBC_2.0GLIBC_2.1GLIBC_2.1.3CXXABI_1.3GLIBCXX_3.4  ii *)0ii *ii *T)@si %*ii *ii *ӯk1*t)<*г=,( @P`Jh9O غܺ1(hpPHIH; D  $( ,:0 4 8 <@DHLPTX\`dhlptx| S!-"#$%&'(Ĵȴ̴)д*Դشܴ+B,-8./0123 456 7$8(9,:0;4.8<<=@"D>H?LP@TAXB\C`DdTh4lptxE|FGHIJK= LMNOPQĵQȵ̵Rе+ԵSصTܵUUVWXYMZ [\]^ _$(`,a0048b<@DcHeLPfTgX\N`hdihjl<pktx |lmnopqrst)uvĶwȶ#̶жxԶyضzܶ{C|}~  $$(,F04G8<'@DHLP?TX\E`d6hlpAtx|ķȷ̷зԷطܷKL  $(,!0487<@D3HLPT%X \`dh2lpVtx|>U!h5س%ܳ%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@% hX0%h` %hh%hp%hx% h%$h%(h%,h%0h%4h%8h%<hp%@h`%DhP%Hh@%Lh0%Ph %Th%Xh%\h%`h%dh%hh%lh%ph %th(%xh0%|h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%ĴhP%ȴh@%̴h0%дh %Դh%شh%ܴh%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@% hX0%h` %hh%hp%hx% h%$h%(h%,h%0h%4h%8h%<hp%@h`%DhP%Hh@%Lh0%Ph %Th%Xh%\h%`h%dh%hh%lh%ph %th(%xh0%|h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%ĵhP%ȵh@%̵h0%еh %Եh%صh%ܵh%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@% hX0%h` %hh%hp%hx% h%$h%(h%,h%0h%4h%8h%<hp%@h`%DhP%Hh@%Lh0%Ph %Th%Xh%\h%`h%dh%hh%lh%ph %th(%xh0%|h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%ĶhP%ȶh@%̶h0%жh %Զh%ضh%ܶh%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@% hX0%h` %hh%hp%hx% h%$h%(h%,h%0h%4h%8h%<hp%@h`%DhP%Hh@%Lh0%Ph %Th%Xh%\h%`h%dh%hh%lh%ph %th(%xh0%|h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%ķhP%ȷh@%̷h0%зh %Էh%طh%ܷh%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@% hX0%h` %hh%hp%hx% h%$h%(h%,h%0h%4h%8h%<hp%@h`%DhP%Hh@%Lh0%Ph %Th%Xh%\h%`h %dh %hh %lh %ph %th( %xh0 %|h8 p%h@ `%hH P%hP @%hX 0%h` %hh 1^PTRh;h<QVhUS[tJX[ÐUS=\u?h-dXX9v&XdX9w\[]Ít&'Ultt $lÐU1UB]ÐU1UB]ÐUU MBA]Ðv'UU MBA]Ðv'UE UEB]Ð&UE UEB]Ð&UU MBA]Ðv'UUE B]USE U]@b]E"D$ED$$]z؃[]USE E]@]$ED$ED$]=؃[]fUEU @BX]ÍUEU "@bX]ÍUEU @JX]ÍUEE HX]Ð&UE]@Ð&UE@\$$6]Ev<]EÐUE]@ÐU1U v B]ÍUUS1ۋM vۃ w[]Ð&UE]@Ðt&UE]@ Ðt&UWVS|}E Eue[^_]ÍEȉ$$}]E^E1EOEERP,$ <$]|]E <]E$U]uHEEE;r}f\1ېGD$G $9we[^_]]E]EE;E]EEE4G E0EH]EHEE]̉D$E؉$%E؉D$G D$EЉ$EЃD$G 0$QEȉD$E$ED$G $EEEu]9VEE9EEMEEEMEMEME]E]<]fUS]{u[]ËC$C E[]&'UWVSE }]D$<$E 9G1G@RP,$==_E $u Et1$j;u uEGE $M ɉG t21ېt&E \$<$D$O W;] uՃ[^_]áܺGD$&D$D$ $<T[^_]É<$;&'UE D$D$E$Í&'UUE D$D$$zÐ&UUE D$D$$JÐ&U]U]UE]@$Ðt&UtÍvu$`,D$<D$$  Í&'U]UE`]`UEE]&'UWVS,ufEEFt|M9N$~tF0~m1ۍ}t&D$|$F0$FtO`$4t?FuE =UM уUu,[^_]ËFE =EU ƒ,[1^_]ÐUW1VSuFt{9~$~vV0~o1E:ED$D$F0$tR`$stBFuE%=U =u[^_]ËFE%=E =[1^_]Ív'UW1VSuF9~$N0~}1E:ED$D$F0$t$`$tNFuE$PE $ =Fs[^_]E$謮PE $ =[1^_]Ð&'UP$5(=ÍUWVSL}_w$1t&9w$V$G,݃\<]݃d <$]]EܻlEMU$E <$?GU %0=܈thL[^_]UWVS<}_G$1t&9w$V$G,݃\ <$]/]݃d <E$E ܋lM<$xGU %0=܈tq<[^_]Ð&UVS Eu ]@D$P4$<=EED$UD$P4$EED$9E9t$D$@4$D$ P} =E fEEm]mD$ [^]US]C(9C$tDC$C$0C$$S$҉C~K$1ҍvD9[]Ít&U]E ]u}C\{ C \C$D$Ɖ$93C0C4<$D$D$̅C$C]u}]ÍUWVS,]E C(D$$UC,CE؋EU؉D$$@C|tyC EԋC @EEC@9EE܉EwtEUԋ2U9ɋ:ucE9Eu[C0~1D$$ C4C,D$C0$D$C,UC(C,[ <[,[^_]ÍE늋U؋EԉT$$C0~$'UD$D$$C0_fU]E ]u}C\{ C \C$D$Ɖ$y3C0C4<$D$D$̅C$C]u}]ÍUWVS}X$t$EEEBEEE(LEDž,Dž(ĹDžXعDž00Dž4Dž8Dž<Dž@DžDDžH$0XDž0DžPDžT\D$$GDž;G$O0~y1v`$tdG4D$4$D$t͍ED$D$8=4$FE EЋGq(E4$1D$D$8=U E¡`$TPDž(ĹDžXعDž0 9ueLDž00$(@Dž,(XDžX$e[^_]ÍCD$$ ED$$pfUUM B0~Bt~$tIt&t.1ÉL$$NÅuL$$ Ít&L$$ÉL$$Í&'U]]u}$C|tzC0C4C$D$%tCth$s$~K1D9uD$$)}t7C$D$Cu‹]u}]Ðt&C$D$1ِv'UVS uF0$ FF0$(t$ $^ Pu^P 9u/ [^]ÍCD$$ӍED$$CD$$ED$$멍&'UVS uF0$JFF0$ht$J$R^ Pu^P 9u/ [^]ÍCD$$+ӍED$$CD$$ED$$멐UE]@ÐU]Ðv'U]Ðv'U]Ðv'U]Ðv'UEiU ]Í&'U(E$ED$ED$ED$ E$ÐUEƀ]ÐUED$$RTÐ&'U=]ÍU1]Ð&UE]UE]UED$ ED$E D$E$*Ðt&UED$E D$E$1ÍU8tD$,D$(D$$D$ D$D$D$D$D$ D$PD$$=D$$Ív'U]]uu I+P,t1~mtHt&ttEt$$D$k]u]Ë$]u]Ít&$]u]Íu$뢋$]u]US$`]M t9D$E$L$ D$=D$T$؋]$D$L$؋]US$`]M t9D$E$L$ D$=D$T$؋]$D$L$؋]Uuu]<$#t]u]Ðt&Ɔu]]]&U(tÍvu$D$<D$$ED$D$$dD$<D$$ED$D$=$hD$<D$$@ED$D$=$lED$D$=$plED$D$=$tQED$D$B$x6ED$D$̅$|D$<D$$D$`D$=$SD$<D$$Ðt&U]]UE ]]u}EuE]u]}E ]u =8tu=u<]u}]Ít&UWVS1ۃu}ݖlƆXTݞtdžPdžL džDDdž\dž`@@džddžhY@džH@Ɔ|Ɔ}D$D$=$Ol<$D$D$|$$Uu;ht $AlD$̅$udž[^_]US$h Pu$[]ÍCD$$?ED$$ҍv'US$d Pu$[]ÍCD$$ED$$ҍv'U(u|}P]& 9uhu]u}]ÍCD$$|эED$$YUWVSED$$D$8B\$4$D$tB!at$$D$Ba\$4$D$B`t$$D$ C`\$D$dC4$`D$Ct$<$`$D$=|$`\$$U\$$u;ht $t& PO P 9 P 9 P 9 P 9 P 9: P 9 P 9 E84D$$D$C\$04$D$(D>_t$,$D$tD!_\$(4$D$D_t$$$D$D^\$ 4$D$8E^t$$D$E^\$4$D$E^t$$D$Es^\$ D$0F4$V^D$tFt$<$?^$D$F|$(^\$$sU\$$~u;ht$m P 9P 9P 9lP 9P 9T P 9$P 9(P 9,P 9@0P 9 4P 9 8P 9W EXTD$$D$F2\$P4$D$t$YX\$]$U\$$Uu;ht $t&]P 9]P 9M]P 9Eč]uD$$D$ L:\$]D$XL4$W$D$Lt$W\$]$U\$$Uu;ht$&]P 9Q]P 9]P 9Eō]uD$$D$Lj\$]D$`M4$V$D$Mt$V\$]$ U\$$Uu;ht$&]P 9]P 9]P 9Qe[^_]ÍCD$$ yEЉD$$eCD$$4EωD$$ CD$$5E͉D$$!CD$$ẺD$$XCD$$PEˉD$$)CD$$!fEʉD$$RCD$$3EΉD$$CD$$ED$$CD$$RED$$m>CD$$eED$$>CD$$6eEɉD$$QCD$$ EȉD$$ CD$$EljD$$CD$$EƉD$$CD$$zED$$SCD$$KVED$$$BCD$$`ED$$LCD$$ED$$CD$$ZED$$FCD$$ED$$hCD$$`ED$$9CD$$1ED$$ wCD$$fED$$RCD$$$ED$$CD$$lED$$}XCD$$u'ED$$NCD$$FGED$$3CD$$HED$$4CD$$ED$$CD$$ED$$CD$$lED$$cXCD$$[EىD$$4zCD$$,EۉD$$CD$$[EډD$$GCD$$E߉D$$CD$$UEމD$$xACD$$pE݉D$$ICD$$AE܉D$$CD$$/E؉D$$CD$$E׉D$$CD$$E։D$$CD$$`EՉD$$^LCD$$VEԉD$$/CD$$'EӉD$$CD$$E҉D$$}CD$$LEщD$$8UWVSu(N<F(Pdž<4PƆED$$ͼt$Pt$Pt$Pt$Pt$$t$Pt$v$P 9uA 9T 9uKE$4$4$t[^_]ÍCD$$iED$$F뗍CD$$AED$$덍CD$$eED$$QUWVSu(N<F(Pdž<4PƆED$$t$Pt$Pt$Pt$Pt$$;t$Pt$u$P 9u5 9uxT 9uCE$4$[^_]ÍCD$$ED$$룍CD$$ED$$z땍CD$$umED$$NY&UWVSu(N<F(Pdž<4PƆED$$}t$Pt$Pt$Pt$Pt$S$蛾t$Pt$gs$oP 9u5 9uxT 9uCE$h4$@[^_]ÍCD$$%ED$$룍CD$$ED$$땍CD$$mED$$Y&UWVS}u]$z<$ս<$Et$D$%>E$R\$D$*>$RE<$D$ED$WLB+GLEB +Bt$D$/>E$uR\$]D$5>$XRE<$D$ED$LD$D$;>$RDD$D$E>$QED$$D$P>\$4$OÍ0$sEEE EEEBEDžDž $$DžĹDž0عDž0DžDžDžDžDž QED$ DžDž(BT$,$D$,Dž(D$ D$D$$蹼0T$$A] P T$uĉD$,$DžĹDž0عDž$$Dž0Dž0$Dž0PD$D$[>$OED$4$D$f>t$$M$D$D$踿4$u-XD$$$D$D$o>$OED$4$D$x>t$$LÍ0$EEEEEE$$EDžDžĹDž0عDž0Dž DžDžDžDžDž yED$ DžDž(BT$,$D$C,Dž(D$ D$D$$0T$$i4$un\$D$$ED$4$D$>ht$$\K0$EEEEEE$$EDžDžĹDž0عDž0Dž DžDžDžDžDž ںED$ DžDž(BT$,$D$褵,Dž(D$ D$D$$B0T$$ʳ4$ud$D$g$yED$4$D$>t$$I0$MEEEEEE$$EDžDžĹDž0عDž0Dž DžDžDžDžDž ;ED$ ]DžDž(BT$,$D$,Dž(D$ D$D$$蠶0T$$(4$0l$D$ȿ$ڼED$$D$>*\$4$H0$讻EEEEEE$$EDžDžĹDž0عDž0Dž DžDžDžDžDž 蜷ED$ DžDž(BT$,$D$f,Dž(D$ D$D$$0T$$茰]ԺP 9tD$$u,$DžĹDž0عDžB$$Dž0Dž0$Dž0gED$4$D$>t$$]E$D$D$4$薼|D$$~$@ED$$D$>萼\$4$0~EÍ0$EEEEEE$$EDžDžĹDž0عDž0Dž DžDžDžDžDž ED$ DžDž(BT$,$D$Ư,Dž(D$ D$D$$dT$4$]ܺP 9}D$$ײ,DžĹع$Dž诺$$Dž0臷Dž0$Dž0ԲHD$D$>$dE[^_]ÍCD$$ƷED$$蟶CD$$藷ED$$pCD$$h'ED$$AUWVSl}u-`D$$`$Ѭ$t$Eċ@@o@@@@w]$D$诧uP$UMUĉ\$$L$ MT$ <T$L$\$D$$] P:]$D$0P$UlUċM\$$D$UĉL$ D$T$ UD$D$?D$T$$Y]P 9fCD$$sKED$$L7&l[^_]Ë]$D$`P$UыMЉT$ Uĉ\$$L$<T$T$ \$D$$衃] PCD$$輴ED$$蕳]$D$踥P$UщT$ Uĉ\$$D$D$UD$D$?T$ ỦD$T$$߂] PCD$$ED$$ӲCD$$˳ED$$褲&'U]WUWVS }]@| X@|}@||D$$QT| $D$QT$D$$訧̅t $藧E܉D$ET$$YD$ƅDžƅ DžDžDžBDžDžDž 8$DžĹDžDعDž0Dž$Dž(Dž,Dž0Dž4购UE݉D$ DžDž<BT$@$D$}@Dž<D$ D$D$4$!Dt$$详] P Uu;ht$߯DT$]$γD$D$H$D$$蛥̅t $芥E߉D$ET$$RUBT$D$@$覱< @1҉T$ D$D$4$]P 9n Uu;ht$&HD$$]ղD$D$O$D$$袤̅t $葤ED$ET$$YUBT$D$@$議< @1҉T$ D$D$4$]P 9F Uu;ht$\D$$]3D$D$] $D$$谣̅t $蟣ED$ET$$gUBT$D$@$軯<@1҉T$ D$D$4$-]P 9 Uu;ht$dD$$]AD$D$k$D$ $辢̅t $譢ED$ET$$uUBT$D$@$ɮ<@1҉T$ D$D$4$;]P 9| Uu;ht$ lD$$]OD݇l5Nݟl$D$g$D$$躡̅t $詡ED$ET$$qUBT$D$@$ŭ<@1҉T$ D$D$4$7]P 9IUu;ht$tD$$]ED݇t5Nݟt$D$]$D$$谠̅t $蟠ED$ET$$gUBT$D$@$軬<p@1҉T$ D$D$4$-]P 9Uu;ht$LD$$L=~L]P$$ݝN$ܽ$\$N$膟ٽ f ٭ ۟L٭$LƅlDžhƅmPPDžpDžtDžx$Dž|DžtDžDž0DžDžDžDžDžDžĥT$$DžDžDž\L$D$6D$$&\$]$\$$֋Uu;ht$&]P 9]čT$F$D$$]蠝UډT$$D$m\$4$]P 9:Uċu;ht$@]ȉ$t$\$ T$LD$$]ȸP 9$*$$$$D$JEۉD$Ẻ$D$̅耪ŰBT$D$$Ԩ{1҉D$T$ D$$@]̺P 9D]ԉD$$T$$\$]Љ$谥\$$֋UЋu;ht $賥v]ԸP 9d$D$RT$٘@$DžĹDžDعDž8$Dž0եDžDDžD$#e[^_]ËP@P@Pr@P_f@P]f@P[f@PRCD$$ϥ:ED$$訤&CD$$蠥@ED$$y,CD$$qED$$JCD$$B ED$$CD$$ED$$CD$$wED$$轣cCD$$赤PEމD$$莣X$螌\$4$D$ޖt$u<$D$d4$$(st$|$É$;EP] 9{]ܸP 99]ĉ$uD$茐U\$$݊$]D$ӈD$d4$:$D$ht$s\$]$qE\$$肒Uu;ht $tt&]P 9]P 9$8^UT$É$荥E$X8UD$D$D$D$ D$Ë$D$ُE$XUD$D$D$D$ D$Ë$D$腏E$X萌UD$D$D$D$ D$Ë$D$1E$XD$ T$Ë$D$tE\$D$D$ D$$貐$vD$D$>D$ ËED$$D$ctE\$D$D$ D$$@$D$D$>D$ ËED$$D$sE\$D$D$ D$$Ώ$蒊D$D$>D$ ËED$$D$sE\$D$D$ D$$\$ D$D$ ËED$$D$1ED$D$ D$\$$UB|D$$芁EP|t$PU$݊UD$D$ D$D$$@E$5U$E$U$E$UǂǂǂƂe[^_]ÍCD$$&ED$$CD$$jED$$ЎVCD$$ȏED$$衎CD$$虏ED$$rUWVSLE}܉D$ ED$E D$E$E<$U(NB(Pƀǂ<4PǂT\ǂ\ǂ\$>H$莅\$4$D$Ώt$u<$D$d4$$(ct$|$É$3EP] 9{]ܸP 99]ĉ$uD$|U\$$̓$]D$ӈD$d4$*$D$ht$c\$]$aE\$$rUu;ht $dt&]P 9]P 9$8NUT$É$}E$X(UD$D$D$D$ D$Ë$D$ɈE$XԅUD$D$D$D$ D$Ë$D$uE$X者UD$D$D$D$ D$Ë$D$!E$X,UD$D$D$D$ D$Ë$D$͇E$؄UD$D$>D$ T$Ë$D$mE\$D$D$ D$$袉$fD$D$>D$ ËED$$D$SmE\$D$D$ D$$0$D$D$>D$ ËED$$D$lE\$D$D$ D$$辈$肃D$D$>D$ ËED$$D$olE\$D$D$ D$$L$D$D$ ËED$$D$*ED$D$ D$\$$UB|D$$zzEP|t$PU$̓UD$D$ D$D$$0E$%U$E$U$E$UǂǂǂƂe[^_]ÍCD$$ED$$CD$$jED$$VCD$$踈ED$$葇CD$$艈ED$$bUWVS Eu$薀UD$%>D$$IE$辈UD$*>D$$!]ULC+BLD$/>D$$C U+CD$5>]D$$ULD$;>D$$UDD$E>D$$E$TD$xE0$kLLEE BPEEE$$EEDžtDž0Dž0Dž DžDžDžDžDž Q0T$$DžDž(Dž,\{$\$]&D$4$}ED$$D$P>蚈\$<$t$$]P 9]P 9,PDžtDž0Dž 96$$Dž0LP0Dž0$]P 90Uuȋ$vUD$[>D$$#EX$D$:}\$]ĉ$BxT$4$P|ED$$D$f>&\$<$t$$莀$Ɔ4$辆$`vUD$o>D$$]E݀\\$D$x>$E݀d\$D$>$E݀l\$D$>$E݀t\$D$>$E0|$ÂEEEPEEE$$EDžtDž0Dž0Dž DžDžDžDžDž ~0T$$DžDž(Dž,\w$\$ vE\9ED$ ]؍}ЉT$$D$:\$<$^~]ظP 9E]̉D$$D$>豄F\$$ |$$~]̸P 93]кP 9O,PDžtDž0Dž 9$$uDž0рLP0$Dž0)|U}$D$y$\$]tD$4$xED$$D$>|\$<$p t$$|$4$$rUHD$>D$$U$#e[^_]ÍED$ ]ԍ}ЉL$$D$7\$<$[|]ԺP 9CD$$%ED$$~,}ЉD$<$|CD$$ED$$~CD$$ED$$~CD$$~ED$$W~CD$$OED$$(~CD$$ LED$$}8CD$$~ED$$}CD$$~ED$$}CD$$~PED$$l}<UEƀ$E @ ÐU(U uu]}B J>)ȉD$B\$4$L$)؉D$ ]u}]ÐUUE B@]ÐUUE BD]ÐU]gUE 9E}\]utMUt`ƋE+uD$D$4$qÍx t/Et$<$D$TpC37]u}]ËUC $AmUD$ ED$ED$E $MUÐU]E ]uuD$$m4$wst$$D$Gp؋u]]US]E $D$mE$D$(y؃[]U8ME ]uɉ}Xtt$tƃt$U$T$MmED$F$8mE\$ t$<$D$a|U EB0]u}];]tuMuBEEF@9EE܉Ew2E9֋9(…uE+E17-E̐UWVSLU BMEȋ AMĉEMȋAtYEȋM̋UȉMMȃAXE9]̉]vE:u9(…uE)؉uMȋA uEȄ҉E؉EukMԋUԋA@EЉEEċXE9]Љ]2}9(…tLxQEU@Ee[^_]M M؋U M;J tpM؉ $/qEԋEEoE)؅yUE܉T$MD$L$ U $T$E܋MEAe[^_]EDUEL$ D$T$M $L$UEUEBe[^_]UWVS E PE؅tnEEԋ@E5t&E2}9(…uE+E܅x)]؋[t&CS@EEE9EEvE볋[ uڋE؋U [^_]UWVSE ;E]MU RM E| M|x@YEE9؉]Eu|9(…uE)؅E U;P E$9oPEEJUEMZM9ى]׋u9(…r"Ur nUEЉT$ML$ L$U $T$hEЋMEe[^_]ExUE9؉E]E|}9(…uE)؅M E9AE$vUEJUPEMZM9ى]vE׋u9(…uE)؅EX 7UET$ML$ L$U $T$`EMvE!UEEe[^_]vE)EWE xtePJlUAptEUX9t]vU Njp9(…ut)؅!MEL$U $T$EMEe[^_]UEȉT$M $L$_EȋMME؉T$ T$L$U $T$.E؋MMEԉT$ D$L$U $T$EԋMUEĉT$MD$L$ U $T$EċMqUET$M $L$EMHME܉L$lD$T$ M $L$]E܋U UET$MD$L$ U $T$%EMUWVSLU EЉ$T$UT$EЉEȋE;EtRE UȋUĉEPEĉUUPEZ9]]׋u9(…yxU ]ܿP$E\T$dED$E$dUȍẺ\$ $T$UT$]ũ 9]܃ 9uc]uă 9u(Eče[^_]fE)؅yjfE=CD$$5suąED$$ru몍CD$$sED$$qrCD$$rMED$$q9D$D$D$飩D$閩UWVSED$E ]$dD$tE\$$4$iq=EEG0GEEE4X$EEDž8Dž4ĹDždعDž<0Dž@DžDDžHDžLDžPDžTMmED$ <Dž<Dž\BT$`$D$h`$Dž\D$ D$D$j\$4$If] PED$4$s`Dž4Ĺع$Dž< sX$Dž<0o04Dž844$?k[^_]ÍCD$$QpRED$$*o>D$郼UWVPSEPݝ<$$"oLLEE BPEEE$D$EEDž$tDžPDž(0Dž,Dž0Dž4Dž8Dž<Dž@ k(D$Dž(DžHDžL\<$Kd$݅\$k] P1MMP;PE]T$u$D$ D$HU \$4$T$]P 9G;GtwtUT$$EGG;GtFt t$$EG]P 9]P 9e[^_]t$D$<$ 뼍ML$D$<$ $PMCD$$SEED$$R1CD$$SED$$~RCD$$vSHED$$OR4CD$$GSED$$ Rv'U(uu]}PVB$D$ ^ 9u.^ 9^ 9uf 9u5]u}]ÍCD$$RED$$Q몍CD$$RED$$aQ룍CD$$\RED$$9QoCD$$1RJED$$ Q6t&U(uu]}PVB$D$ ^ 9u.^ 9^ 9uf 9u5]u}]ÍCD$$QED$$yP몍CD$$tQED$$QP룍CD$$LQED$$)PoCD$$!QJED$$O6t&UWVSEU@@@B BE8$OEEE EEEBEDž$DžDž8к M8T$$cED$\$$N D$$QE\]܃ D$ $iO\$D$$D DEuD$D$4$Q\$]$@E\$] $t$ \$]P 9]P 9J}ċU)t?;t3P 9E9uE$F]$T$\$9tcB􉅌E؋CXE;]9֋9(…]̉$E\D$99] ut |$$!9MCEy9} t5ƋE &؅t D$4$89uEuxU9tfPƃ 9u>F9uUt$h?ME؋UE܉QA,[^_]ú? CD$$?GED$$F뚍CD$$GED$$Ey$?J8UWVS] tEC {D$E$wC PEu$7 Pu?$>]u[^_]ÍFD$$pFōED$4$ME봍FD$$HFED$4$%E뙐UVS]u 9tgC$D$/CCVC CCt:T$D$$‰C‹BuS S‹B uFSC[^]ÐUtÍvu$DD$<D$$pAÍ&'U]UE]?L$qU8EMu1}]Y$D$$D$ D$D$D$D$4D$ 0D$=D$=:E$D$D$ D$D$%4ED$D$ \$4$9D$ D$D$$)AD$D$<$A74u[$|;$؋]UVSutX~1ۋ${69䋆$e6$W6dždž[^]ÍUS]$X1$D$ ݛ[]US]$(1$D$ݛ[]UWVS3D$ӈ$.\$$.E\D<9ED$ @]T$$D$U\$$>2]P 9TPDž,tDž0 90L$Dž005,P,4$z0E[^_]1`݅Ƀݝu0ҋxED$ @]L$$D$U\$$:1]P 9CD$$5ED$$3UTD$$0^ؐCD$$4ED$$3CD$$y4VED$$R3BUWVS}u EH]E$1]d$1}$,\$d$(E}E fEm]mEP$5dUE]D$D$D$\$ <$ D$\$ D$D$?<$ED$\$ D$D$?<$EEE]t&E 4$D$Q5ED$ <$D$EuU\$}4$ËE\$ \$D$ED$'E$|$E\$E\$E$D$4$4ED$E$<%ED$ED$EЉ$EEEED$D$D$ t$%Uu;ht$0ED$E$x0ED$ ED$D$4$D$E؃+EЉ)Ӊ\$*%Uu;ht$L0] Pu6EEUEge[^_]ËH]LCD$$U1ED$$20UWVSL}E(EݝE ݝt e[^_]Ít&U Ƈ<$T$ GxLH݇ݝ)ыPH )ыt;u;t`$P$C)D$D$ T$É$L$e0]EIETRIDD$ D$D$$&\$$!T $&D$D$T$&,XE,uD$r]ĉ4$D$EIETRID$D$ D$D$X%T$\$]1$D$!*D$D$ ꋅ\$]Љ$)‰T$U0T$\$C($;/Uԋu;ht$]-E̍]؉$D$[!UETEEEED$$D$D$\$D$ L$!U؋u;ht$,]܉t$$,D$D$\$ D$E+UTD$$&!U܋K]̃ P8T$d0GxD$$D$ P(!‰L$ $D$D$D$D$D$D$%`$f(TƇ$!e[^_]ÍTD$ $3/E F3E܍ݝ D$D$ ݅\$<$)ۇ==,ݝ8݅ ݝDž0Dž4Dž@v@U‹@9M݇܍܅D$ D$݅ܵ <$\$ݝ`D$Ƌ D$ ݅\$<$:Ë@u4Dž01,9~ÍUD$D$$$M؉L$+,D$09}+0TD$ ,D$0 $T$i&E$@ۅ@ݕ݅ 840n@$0݅8ɋ@9M[i;h$(\$Tt$ 4T$0$L$#u]D$ļ4$D$$Tt$\$݇\$T$ D$<$L$r @M $/}݅8U\$@$D$.EJCD$$W)ED$$0(v'UWVS] EXݝ4$:(=LPEEGGEEE,L$EEDž,tDžXDž00Dž4Dž8Dž<Dž@DžDDžH($0Dž0DžPDžT\D$4$hO1݅H`r uً,\$$p$D$ӈ$ \$$U\D<9ED$ @]T$$D$OE\$$p#]P 9TPDž,tDž0 90L$Dž00E&,P,4$!E[^_]1݅H`ʃtuED$ @]L$$D$PE\$$q"]P 9CD$$;&ED$$%0ҋx+TD$E$"ԍCD$$%ED$$$CD$$%VED$$$B&'U8]E] uu}}D$$I\$4$\$ut$D$<$C] Pu]u}]CD$$$؍ED$$#ǐ&UWVS|E}u]D$ E |$D$E$a+UǂHH]B(BtƂǂǂƂƂǂǂ|$$UBt\$$֋Uu;ht$"E]D$$vU\$$G#UHE]D$$D$`&\$]$$D$tD$Љ\$]$!U\$$"U]P 9T] 9E]̉D$$D$%\$]ȉ$$D$D$\\$]ĉ$-!U\$$8"Uċu;ht$*!]ȃ P]̃ P,E]D$$D$|$\$]܉$m$D$qD$\$]؉$F$D$pD$d\$]ԉ$$D$gD$،g\$]Љ$8 U\$B|$F!UЋu;ht$8 ]ԃ 9]؃ 9-]܃ 9] 9|[^_]Í]D$H$E\$$ UDE]D$$D$#\$]$+$D$tD$Љs\$]$DU\$$O U]P 9] 9CD$$y dED$$RP;h$t&;h$P] 9P&;hW$P] 9OO&;h$lCD$$ED$$}CD$$ED$$^CD$$VAED$$/-CD$$'ED$$CD$$fED$$RCD$$IED$$5CD$$2ED$$sCD$$kED$$DCD$$<ED$$UWVS|E}u]D$ E |$D$E$$UǂHH]B(BtƂǂǂƂƂǂǂ|$$UBt\$$֋Uu;ht$E]D$$U\$$UHE]D$$D$`k\$]$ $D$tD$ЉD\$]$U\$$ U]P 9T] 9E]̉D$$D$\$]ȉ$d $D$D$\$]ĉ$}U\$$Uċu;ht$z]ȃ P]̃ P,E]D$$D$|,\$]܉$ $D$qD$\$]؉$ $D$pD$d\$]ԉ$o $D$gD$،\$]Љ$U\$B|$UЋu;ht$]ԃ 9]؃ 9-]܃ 9] 9|[^_]Í]D$H$E E\$$UDE]D$$D$\$]${ $D$tD$Љ \$]$U\$$U]P 9] 9CD$$dED$$P;h$9t&;h$P] 9P&;hW$P] 9OO&;h$CD$$ED$$}CD$$ED$$CD$$AED$$-CD$$wED$$PCD$$HfED$$!RCD$$IED$$5CD$$2ED$$CD$$ED$$CD$$ED$$eUWPVSEX,D$E $4$ݝcLLEE BPEEE,L$EEDž,tDžXDž00Dž4Dž8Dž<Dž@DžDDžHL0D$Dž0DžPDžT\4$ D$Ɉ$|݅\$$E\DC<9ED$ @]T$$D$ŘU\$$] 9ATDž,tDž0 9L$Dž00L,P,4$&E[^_]ED$ @]L$$D$E\$$!] 9;CD$$ ED$$ t&UTD$$CD$$ED$$|CD$$tED$$M&UWVSD$|$É$_t$D$D$Gt@l$D$RXGt@l$D$RTGtpl$XD$t$D$D$ D$É$S(C($D$R@$xD$ D$ËGt$D$E܉_x\$]$E܋Wx%%$D$֋Gxpt$D$ D$D$EIETRIDGx\$$D$D$D$D$ D$GxD$$D$D$ËGt$D$_|\$D$D$ D$$r$$6P@@@ @GBB B@D$ D$D$$$xD$ ËGt$D$D$P\$D$D$ D$$$xdD$ ˔ËGtD$$D$D$D$ D$\$$CD$D$ D$GtD$$<$.EЉ$|$MԋUЉȃ?D$}?D$<$g@|$D$ ؔD$$|$D$ D$$|$D$ D$G|$e[^_]D$$<$|&'UWVSLE}]D$ E <$\$D$G(o$XD$D$D$D$ D$É$|$`$nD$|$É$(_t$D$D$Gt@l$D$RXGt@l$D$RTGtpl$XD$t$D$D$ D$É$S(C($D$R@$D$ D$ËGt$D$E܉_x\$]$E܋Wx%%$D$֋Gxpt$D$ D$D$EIETRIDMGx\$$D$D$D$D$ D$GxD$$t$D$ËGt$D$_|\$D$D$ D$$$$fP@@@ @GBB B@D$ D$D$$$xD$ ËGt$D$D$\$D$D$ D$$$xD$ ˔ËGtD$$D$#D$D$ D$\$$sD$D$ D$GtD$$F<$^EЉ$|$MԋUЉȃ?D$}?D$<$g@|$D$ ؔD$$ |$D$ D$$|$D$ D$G|$e[^_]D$$<$|U]D$D$U]Ðv'U]Ðv'U]Ðv'U]Ðv'U`]ÍU1]Ð&UtÍvuD$D$`$D$<D$$@Í&'U]UE]UED$ ED$E D$E$Ðt&UED$E D$E$1ÍUE ]]u}EuE]u]}E ]:u `u҉؋u]}]ÐU8t*D$,D$(D$$D$ D$D$D$D$D$ D$D$$` D$$Ív'U]]uu I+P,w$Et$$D$]u]Ë$]u]Ë$]u]Ë$]u]Ë$]u]Ë$]u]ÍUS$`]M t9D$E$L$ D$`D$T$R؋]$D$L$؋]US$`]M t9D$E$L$ D$`D$T$؋]$D$L$,؋]US]C(|$][]t&UE@(|]UE@(|]gUWVS}D$$\$<$֋u;ht$&GtD$j$Gt$\$֋u;ht$Gt $D$q.\$$Gt\$$։$% u;ht $dt&$D$w$\$Gt$$u;ht$&Gx(D$$oGx$\$֋(u;ht$Gx0$D$\$,$yGx\$$։$0u;ht $Tt&4D$8$\$Gx$4u;ht$&G|8D$$_G|$\$֋8u;ht$G|<$D$غ~G|\$$։$@D$$$\$֋@u;ht $#vH$D$|\$D$\$$։$pHu;ht$LD$$\$$Lu;ht $cvD$غP$D$ɘ$\$D$$Pu;ht $t&TD$>$Z\$D$${Tu;ht$XD$Θ$\$D$$%Xu;ht $Dt&\D$Ә$$\$֋\u;ht$`D$$E$\$֋`u;ht $fdD$$$\$֋du;ht$9hD$d$\$$~hu;ht$lD$$W\$$2lu;ht $pD$$$\$֋pu;ht$ItD$A$$\$֋tu;ht $fxD$$Z\$$5xu;ht $t&|D$$$\$֋|u;ht$I]D$$\$$Uu;ht $v]D$$_$\$֋Uu;ht$]D$$\$$Uu;ht$i]D$a$$\$֋Uu;ht$]D$*$w$\$֋Uu;ht$&]D$@$-\$$Uu;ht$z]D$3$$\$֋Uu;ht$)]D$`$\$$qUu;ht $v]D$<$?$\$֋Uu;ht$]D$L$$\$֋Uu;ht$>]D$$\$$Uu;ht$]D$Q$W$\$֋Uu;ht$&]D$$ \$$Uu;ht$Z]D$X$$\$֋Uu;ht$ ]D$h$h$\$֋Uu;ht$]D${$$\$֋Uu;ht$g&]D$$$\$֋Uu;ht$]D$О$|\$$WUċu;ht$]D$$6\$$Uȋu;ht $v]D$($\$$Űu;ht$:]ЋD$$$\$֋UЋu;ht$]ԋD$$H$\$֋Uԋu;ht$]؋D$$$\$֋U؋u;ht$G&]D$$\$$U܋u;ht$]D$ݙ$Y$\$֋Uu;ht$]D$$\$$Uu;ht $cv]D$d$\$ $Uu;ht$]D$Ә$\$D$$Uu;ht$]D$$7\$D$$XUu;ht$ze[^_]fUWVSE}]D$ E <$\$D$dG(|$XCD$D$D$ D$ D$É$|$$\D$ D$ D$D$É$$D$|$É$_t\$D$ D$$$xD$ |$É$_x\$D$ D$$=$$1P@@<@ @GBB B@ $D$Ql$D$+|$É$_|\$D$ D$$$D$7|$É$\$D$ D$$GD$ D$D$$_$xD$ D$B|$É$$D$D$$$tD$ D$JË$D$]܋D$D$̅$zD$ \$$D$֋U܋u;ht$$tD$ D$SË$D$(]D$D$̅$D$ \$$D$֋Uu;ht$g&$ttD$ D$aË$D$]D$D$̅$1D$ \$$D$֋Uu;ht$$tD$ D$jË$D$$XD$|D$D$ D$ D$Ë$D$A $OD$Ë$D$$D$D$@l$D$RX@l$D$RTpl$XD$t$D$D$ D$É$S(C($$D$R@$wD$Ë$D$+$D$D$@l$D$RX@l$D$RTpl$XD$t$D$D$ D$É$S(C(($D$R@$D$ D$Ë$D$\$D$D$ D$(${$?D$Ë$D$E\$$E%%D$$֋$D$D$RXD$D$ D$D$($$D$ÚË$D$&E\$$E%%$D$D$D$ D$D$($$D$ D$њË$D$\$D$D$D$D$ D$($/$sD$ݚË$D$\$D$D$D$D$ D$($$ D$ D$Ë$D$G\$D$D$ D$($$D$Ë$D$OE\$$E%%$D$D$D$ D$D$($H$ D$Ë$D$\$D$D$ D$($D$D$ D$D$$$$\D$D$ D$D$É$z,$HD$Ë$D$\$D$$D$$D$D$@l$D$RX@l$D$RTpl$\D$ t$D$É$S(C(0$D$R@$ND$/Ë$D$b\$D$ D$0$ $D$CË$D$\$D$ D$0$D$ D$D$,$$D$WË$D$:$D$D$@l$D$RX@l$D$RTpl$\D$ t$D$É$4S(C(4$D$R@$D$ D$iË$D$\$D$ D$4$r$fD$uË$D$ E\$$E%%$D$D$ D$D$4$$D$ D$ɐË$D$ \$D$ D$4$$xwD$ Ë$D$D$\$D$ D$4$+D$ D$D$,$D$ D$,D$$$$D$Ë$D$$D$D$@l$D$RX@l$D$RTpl$XKD$t$D$D$ D$É$MS(C(8$D$R@$D$ D$Ë$D$3\$D$D$ D$8$$D$ D$Ë$D$\$D$D$ D$8$s$7D$ D$Ë$D$s\$D$D$ D$8$$D$̛Ë$D${E\$$E%%$D$D$D$ D$D$8$t$8D$Ë$D$E\$$E%%$D$D$D$ D$D$8$$D$Ë$D$=E\$$E%%$D$D$D$ D$D$8$6$D$ D$Ë$D$6\$D$D$ D$8$$D$Ë$D$$D$$D$$@D$Ë$D$TE EED$$E<E*$D$$Ë$D$EFEẺD$$EԁE(D$D$D$D$ D$D$8$$DD$-Ë$D$E \$]$E %%$D$D$D$ D$ D$8$D$D$ D$D$$$D$D$ D$D$ $~D$D$̅$8D$ \$$D$֋Uu;ht$$tD$ D$EË$D$]D$D$̅$D$ \$$D$֋Uu;ht$D$D$ D$D$$?<$gE$|$MUȃcdVD$}VD$<$g@|$D$ ND$Gt$|$D$ ^D$Gx$|$D$ mD$$Ǻ|$D$ vD$$襺|$D$ vD$$胺|$D$ D$$a|$D$ D$$?|$D$ D$$|$D$ vD$$|$D$ vD$$ٹ|$D$ vD$$跹|$D$ D$$蕹|$D$ D$$s|$D$ D$$Q|$D$ D$ $/|$D$ vD$$ |$D$ vD$$|$D$ vD$"$ɸ|$D$ vD$"$觸|$D$ vD$"$腸|$D$ vD$" $c|$D$ vD$"$A|$D$ vD$"$|$D$ vD$"$|$D$ D$$۷|$D$ vD$"$蹷e[^_]D$`<$UWVSE}]D$ E <$\$D$G(|$XӻD$D$D$ D$ D$É$|$}$\苻D$ D$ D$D$É$聽$OD$|$É$i_t\$D$ D$$$D$ |$É$"_x\$D$ D$$$$P@@<@ @GBB B@ $D$Ql$\D$+|$É$v_|\$D$ D$$!$D$7|$É$/\$D$ D$$D$ D$D$$$x裹D$ D$B|$É$腻$D$/D$$Y$tMD$ D$JË$D$Y]܋D$D$̅$ D$ \$$D$֋U܋u;ht$蘾$t謸D$ D$SË$D$]D$D$̅$iD$ \$$D$֋Uu;ht$&$tD$ D$aË$D$]D$D$̅$D$ \$$D$֋Uu;ht$O$tcD$ D$jË$D$o$X-D$|D$D$ D$ D$Ë$D$ѹ $߶D$Ë$D$蓺$D$D$@l$D$RX@l$D$RTpl$X[D$t$D$D$ D$É$]S(C($$D$R@$D$Ë$D$軹$D$D$@l$D$RX@l$D$RTpl$X胵D$t$D$D$ D$É$腮S(C(($D$R@$/D$ D$Ë$D$k\$D$D$ D$($ $ϴD$Ë$D$sE\$$E%%D$$֋$D$D$RXD$D$ D$D$($N$D$ÚË$D$趷E\$$E%%$D$D$D$ D$D$($诸$sD$ D$њË$D$诵\$D$D$D$D$ D$($迱$D$ݚË$D$\$D$D$D$D$ D$($W$蛲D$ D$Ë$D$״\$D$D$ D$($w$;D$Ë$D$ߵE\$$E%%$D$D$D$ D$D$($ض$蜱D$Ë$D$蠹\$D$D$ D$($耶D$D$ D$D$$$P$\D$D$ D$D$É$ ,$ذD$Ë$D$$D$$D$$D$D$@l$D$RX@l$D$RTpl$\"D$ t$D$É$TS(C(0$D$R@$ޯD$/Ë$D$\$D$ D$0$蚷$莯D$CË$D$袳\$D$ D$0$JD$ D$D$,$"$D$WË$D$ʲ$D$D$@l$D$RX@l$D$RTpl$\蒮D$ t$D$É$īS(C(4$D$R@$ND$ D$iË$D$芰\$D$ D$4$$D$uË$D$蚱E\$$E%%$D$D$ D$D$4$k$_D$ D$ɐË$D$蛯\$D$ D$4$$xD$ Ë$D$D$蓬\$D$ D$4$軴D$ D$D$,$蓴D$ D$,D$$$諯$_D$Ë$D$$D$D$@l$D$RX@l$D$RTpl$X۫D$t$D$D$ D$É$ݤS(C(8$D$R@$臫D$ D$Ë$D$í\$D$D$ D$8$c$'D$ D$Ë$D$c\$D$D$ D$8$$ǪD$ D$Ë$D$\$D$D$ D$8$裯$gD$̛Ë$D$ E\$$E%%$D$D$D$ D$D$8$$ȩD$Ë$D$lE\$$E%%$D$D$D$ D$D$8$e$)D$Ë$D$ͬE\$$E%%$D$D$D$ D$D$8$ƭ$芨D$ D$Ë$D$ƪ\$D$D$ D$8$f$*D$Ë$D$>$D$$D$$ЧD$Ë$D$E EED$$E<E*$rD$$Ë$D$膫EFEẺD$$EԁE(D$D$D$D$ D$D$8$营$ԦD$-Ë$D$xE \$]$E %%$D$D$D$ D$ D$8$nD$D$ D$D$$$>D$D$ D$D$ $D$D$̅$ȬD$ \$$D$֋Uu;ht$V$tdD$ D$EË$D$p]D$D$̅$!D$ \$$D$֋Uu;ht$诪D$D$ D$D$$ϩ<$E$|$舢MUȃcdVD$}VD$<$g@|$D$ ND$Gt$蘟|$D$ ^D$Gx$y|$D$ mD$$W|$D$ vD$$5|$D$ vD$$|$D$ D$$|$D$ D$$Ϟ|$D$ D$$譞|$D$ vD$$苞|$D$ vD$$i|$D$ vD$$G|$D$ D$$%|$D$ D$$|$D$ D$$|$D$ D$ $违|$D$ vD$$蝝|$D$ vD$${|$D$ vD$"$Y|$D$ vD$"$7|$D$ vD$"$|$D$ vD$" $|$D$ vD$"$ќ|$D$ vD$"$诜|$D$ vD$"$荜|$D$ D$$k|$D$ vD$"$Ie[^_]D$`<$葘U]GD$醷D$馷U]Ít&'UWVS^w诗`E`)E}Ut+1ƍED$E D$E$9}u߃[^_]Ë$ÐUS\\t Ћu[]US[0wpY[-DT!@?Error: array size is not a power of 2 ?8GHA?%lf=@  6QGList=fftexplorer2.016-bit Unsigned16-bit Signed8-bit Mu-law EncodedQThread/dev/dsphighest available rate.for more on this topic).PosXPosYSizeXSizeYArraySizeSampleRateDataSourceCurrentTabUseGridsDataTypeCarrierFrequencyModulationFrequencyModulationLevelNoiseLevelExternalSourceAMModTypeMovingAveragePeriodHOMETime DisplayFrequency Display20 20 25 1 c black. c #323232X c #003250o c #005000O c #007325+ c #004A73@ c #730025# c #5B5B5B$ c #626262% c #006296& c #007AB9* c #00B93D= c #00DC49- c #0092DC; c #00AAFF: c #48B8FF> c #6BC6FF, c #800000< c #9600311 c #DC00492 c #FF48733 c #8ED4FF4 c #B1E2FF5 c #FFB1C76 c None66666666666666666666666666 66666666666 . . 666666666 ooOOoo 6666666 O*==**OO 66666 O*******O$ 666# %XO*****O$<< #66 +&%XO***O$<2<@ 66 .%4>%XO*O$<221@. 66 &33;%XO$<2511< 66 &;:3;%X<25111< 66 .%;::3;%X<1111@. 66 +-;::3;%X<11<@ 66# &-;::3;%X<<< #666 &-;::3;%X< 66666 &-;;;;&% 6666666 +%&&%+ 6666666666# #666666StopDisplayStartDisplayenableApplyapplyPressedbasic_string::_S_construct NULL not validPlain Text Floating-Point ValuesThis control accepts a sample rate, the number of samples collected per second. Remember that higher sample rates produce faster display refresh times, and many sound cards will provide rates higher than CD-quality sound (44100 samples per second). The highest frequency that FFTExplorer can resolve is 1/2 this sample rate. If you enter a sample rate that is too high, the program will automatically adjust to the This control is used to set the FFT array size, which in turn determines the resolution of the frequency display. Larger arrays offer more resolution, but in exchange the FFT computation takes longer. The array size must be a power of two (1024, 2048, 4096, etc.) but do not worry about this -- the program will automatically compute an appropriate power of two for you when you enter an approximate value. Regardless of your computer's speed, the minimum time (seconds) required to acquire a sound card sample is equal to the array size divided by the selected samples per second. Example: for an array size of 8192 and 44100 samples per second, the sample acquisition time cannot be shorter than 186 milliseconds, or roughly five samples per second.This control accepts a file path to a data source, example /dev/dsp (the default digital signal processor port). This source can be something other than the sound card's DSP port. It can be the path to a sound file, or it can be a named pipe created with the command "mkfifo". Such a named pipe is an easy way to connect FFTExplorer to an arbitrary data source, such as a program that generates user-defined waveforms.This drop-down list allows you to choose the format of the input signal. Most of the choices are typical sound formats, but the "Plain Text Floating-Point Values" choice is included to allow many different kinds of programs to provide data to FFTExplorer in a simple text format. This option is normally used in connection with a named pipe created with "mkfifo" as the input source (see the help file for more on this topic). Just make sure the floating-point values are separated by linefeeds, and FFTExplorer will read them correctly.Choose this option to enable an internal signal source that is useful for experimenting with the relationship between time and frequency displays.Choose this option to allow FFTExplorer to read external data sources, such as digital signal processors, sound files, and named pipes (see the help file This set of controls allows the user to set up the internal signal source. This internal signal source is useful for calibration and experimentation with FFT methods. These controls are discussed more fully in the help file.This control sets the size of the moving average feature used by the data displays. Larger values provide more noise rejection but require more memory. This feature requires a great deal of memory and will degrade the performance of a system that doesn't have a lot of RAM.@Y@`Pe0p@0`p`0 P@Pp@@@ 0 pPppe@p@pP`P 0P@e `` 00@ 0`ee`p@0`P qq0 @``Pqps11fftexplorer(@P<_POPPwPAAAAHelpWidgetbasic_string::substr[PROGDIR],S0pyzzzPzPp@0`p`0 P@Pp@@@ 0 pPppe@p@pP`P 0P0 `` 00@ 0`ee`p|,SP@0 @`10HelpWidgetS*** Help for FFTExplorer FFTExplorer is (c) Copyright 2004, P. Lutus. FFTExplorer is released under the GPL (the GNU General Public License). Additionally, it is CareWare (no money, now or ever). Visit the CareWare Page at www.arachnoid.com/careware. For recent revisions and further information, visit the FFTExplorer Home Page at http://www.arachnoid.com/FFTExplorer. *** Introduction FFTExplorer is a Linux-specific C++ program meant to provide a spectrum analysis tool in an easy-to use form. It relies on a mathematical method known as a "Fast Fourier Transform." The Fast Fourier Transform (hereafter FFT) converts a time-varying signal into a frequency-domain dataset, so that a typical time-varying signal is converted into a set of spectral lines that describe the original signal in terms of its frequency components. The operation of FFTExplorer can be described in these steps: 1. Collect time-varying data, from a sound card's digital signal processor, or a sound file, or a named pipe whose purpose it is to provide an interface to any arbitrary source of program data (more on this later). 2. Using the FFT method, convert the time-varying data into a frequency spectrum. 3. Display the result. Each of these steps has several variations and options. One can choose the number of samples per second, information that is passed along to a sound card if that is the data source, and one can choose the size of the FFT array, which increases the resolution of the result as the array becomes larger (in exchange for more processing time). *** Sound card data source When one uses a sound card as a data source, for example while using a microphone, one may wish to maximize the speed of the display. To do this, it is best to choose a relatively small FFT array size and a relatively high sampling rate, because this specific kind of data acquisition takes place in real time. The defaults are a sampling rate of 44100 samples per second, the quality level for music CDs, and an FFT array size of 8192 data points. It is important to realize about these choices that we are trading resolution for update speed. If update speed were not an issue, we would choose an FFT array size roughly equal to the sampling rate, but this would obviously mean a display update time of something greater than one second. The user should experiment with the sample rate and the FFT array size to get a satisfactory compromise between update speed and spectrum resolution. Remember that the FFT array size must be a power of 2, e.g. 2048, 8192, 16384, etc.. These values are automatically created by FFTExplorer based on the number you enter (so it is not necessary to memorize a lot of powers of 2). Sound card levels are typically low, so if you don't see the microphone output as expected, be sure to experiment with raising the display vertical amplitude setting to, say, 100. It is also important to point out that many modern PC sound cards can acquire data at a higher sampling rate than the music-CD standard of 44,100 samples per second. I find most current sound cards can operate at 192,000 samples per second. If you enter a very large number for samples per second, the program will inquire with the sound card and reply with the highest acceptable speed. I usually set the samples per second figure at the highest practical rate of 192,000 and choose an FFT array size of 8192 data points. On the fastest PCs the display update rate is somewhat slower than the FFT array size divided by the sampling rate, or, in this example: 8192 / 192000 = 42.6 milliseconds This estimate doesn't take into account the time required to convert and display the sample. In this case it is likely the total time required is about 100 milliseconds, or ten conversions and displays per second. One may wish to accept a slower conversion rate in exchange for greater spectral resolution. For this scenario, choose a larger FFT array size. *** Other data sources FFTExplorer can use its own internal signal source, useful for experimentation and technique development, various sound file types, or a named pipe as an easy interface to various software data sources. Here is an example using the internal signal source. Go to the configuration tab and choose Source ... Internal. Make the following settings: Sampling rate: 32768 samples per second FFT array size: 32768 data points Carrier frequency: 1000 Hz Modulation Frequency: 100 Hz Modulation Level: 100 % Noise level: 100 % Remember after making these settings to click the "Accept" button if it is is enabled, to allow your changes to take effect. Then press the "Start" button at the lower left of the program window, click the tab marked "both", and make these settings in the display window that will appear: Time display (top): Time Span: 20 ms Amplitude: 0.5 Frequency dispay (bottom): Frequency Span: 1.6384 KHz Amplitude: 1 These settings will provide a reasonable-looking time-varying waveform in the top display and a frequency specrum consisting of three lines in the bottom display, plus some noise in both displays, added just to imitate reality. Unless your computer is very slow, you will notice the update rate is higher now than it was for the sound card example, because, even though the sampling rate is 32768 samples per second, the program is most likely sampling and displaying at much better than real-time. To put it another way, the program is not tied to a real-time clock, and is therefore free to generate and display the data as fast as it can. Experiment with the display controls. Try raising the noise level to see what effect this has. Then, while using a noise level of 5000 % (yes!), select the "Averaging" feature of the lower (frequency) display. This is a moving-average feature that rejects random noise very effectively, while reinforcing the desired signal. If you have plenty of RAM, you may want to increase the "Moving Average Period" to 64 or 128 to see how this improves the noise rejection. At this point I ask that you stop and think about what is happening. We have created a rather typical case of a signal thoroughly buried in noise (as you can see from the top display), then we apply two methods: a Fast Fourier Transform to convert the time-varying waveform into a frequency spectrum, then we apply a moving average to greatly reduce the noise and allow the signal to reappear. This is the essence of spectrum analysis, and it is why these methods are so effective and popular in analyzing and cleaning up noisy signals. It is why this method is the primary search technique used by the SETI (Search for ExtraTerrestrial Intelligence) project, a project that listens for alien broadcasts. There may well be no one out there sending any signals for us to hear, but in carrying out this example one can see that the right tools are being applied. Also, the signal created in this example by the internal source is more or less that of an AM radio transmitter with a carrier frequency and two sidebands. The resulting spectrum is a simplified version of what one would see if one analyzed the spectrum of a normal AM radio transmitter. *** Named Pipe as source While designing this program, I wanted to allow any data source to provide input to the spectrum analyzer. I realized a named pipe would provide an easy interface. A "named pipe" is a feature of Linux and other Unices that allows one program to send data to a specified "file" that is in fact a pipe (or, if you will, a stream) and another program to read the data flowing though the pipe. Here is a step-by-step procedure: 1. Open a command shell and create the pipe: $ mkfifo /tmp/FFTPipe The name and location is not important, but it should be placed somewhere convenient. This command creates the named pipe. 2. Run FFTExplorer, choose the configuration tab, choose Source ... External, type in the path to the named pipe: "/tmp/FFTPipe". Using the "format" drop-down list, select a format of "Plain Text Floating-Point Values". 3. Choose a sample rate of 32768 and an FFT array size also of 32768. 4. Press the "Start" button, click the "both" display tab and you will see a message saying "No data from source /tmp/FFTPipe". This means all is well, and FFTExplorer is waiting for data. 5. At this point, you can use any program that comes to hand that can create a signal with a specified number of samples per second. If you have some file handling skills and are willing to experiment, use the C++ program below: ****************************************************** #include #include int main(int argc, char **argv) { FILE *fp = fopen("/tmp/FFTPipe","w"); double durationSeconds = 100000; double samplesPerSecond = 32768; double f = 1000.0; double step = 1.0/samplesPerSecond; for(double t = 0;t < durationSeconds;t += step) { double v = sin(2 * M_PI * f * t); fprintf(fp,"%lf\n",v); } fclose(fp); return 0; } ****************************************************** Put the above content in a file named "simple_source.cpp", put the file in any convenient location, and enter these commands to a command shell: $ make simple_source $ ./simple_source The first command will build the program, the second will run it. If you have FFTExplorer running with the settings specified earlier, it will show a single spectral line at 1000 Hz. Remember about examples like this, unlike the earlier sound-card example, that they typically run much faster than real-time. Notice about the example program above that the simplest format accepted by FFTExplorer is a plain-text stream of floating-point values, each delimited by a linefeed. There are other acceptable data formats, but this is the easiest to write into a generator or data converter program. Here are some rules for external-source data acquisition: 1. Make sure the samples per second selection in FFTExplorer and your source are in agreement. 2. In most cases (except while using a sound card), using a power of 2 for the FFT array size and the samples per second is the best arrangement, and these entered values should in most cases be the same number. Using a power of 2 as the samples-per-second value also helps synchronize the source with the spectrum analyzer, an important factor when using the signal averaging feature to extract weak signals from noisy sources (more on this below). *** Signal averaging FFTExplorer uses a moving-average method to help reduce noise levels from real-world signal sources. Selecting a larger value for "Moving Average Period" improves the performance of this feature, but at the cost of greater memory usage. The amount of memory required for this feature is: FFT array size * Moving Average Period * 8 (size of double) * 2 (number of required arrays) bytes. So, using a Moving Average Period of 64 and an FFT Array size of 8192, one needs 8.4 megabytes of RAM for each display that uses the averaging feature. This feature obviously is meant to be used on systems with plenty of RAM. There are some technical aspects to the moving a