实例介绍
蘑菇街 TeamTalk IM 多平台聊天工具 源代码
【实例截图】
【核心代码】
20e54c9c-88eb-4582-8f89-a90e88c996cd
└── TeamTalk-master
├── android
│ ├── app
│ │ ├── build.gradle
│ │ ├── libs
│ │ │ ├── android-async-http-1.4.6.jar
│ │ │ ├── netty-3.6.6.Final.jar
│ │ │ └── universal-image-loader-1.9.3.jar
│ │ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ └── mogujie
│ │ │ └── tt
│ │ │ ├── app
│ │ │ │ ├── IMApplication.java
│ │ │ │ └── UpdateDetection.java
│ │ │ ├── config
│ │ │ │ ├── DBConstant.java
│ │ │ │ ├── HandlerConstant.java
│ │ │ │ ├── IntentConstant.java
│ │ │ │ ├── MessageConstant.java
│ │ │ │ ├── packageInfo
│ │ │ │ ├── SysConstant.java
│ │ │ │ └── UrlConstant.java
│ │ │ ├── DB
│ │ │ │ ├── dao
│ │ │ │ │ ├── DaoMaster.java
│ │ │ │ │ ├── DaoSession.java
│ │ │ │ │ ├── DepartmentDao.java
│ │ │ │ │ ├── GroupDao.java
│ │ │ │ │ ├── MessageDao.java
│ │ │ │ │ ├── SessionDao.java
│ │ │ │ │ └── UserDao.java
│ │ │ │ ├── DBInterface.java
│ │ │ │ ├── entity
│ │ │ │ │ ├── DepartmentEntity.java
│ │ │ │ │ ├── GroupEntity.java
│ │ │ │ │ ├── MessageEntity.java
│ │ │ │ │ ├── PeerEntity.java
│ │ │ │ │ ├── SessionEntity.java
│ │ │ │ │ └── UserEntity.java
│ │ │ │ └── sp
│ │ │ │ ├── ConfigurationSp.java
│ │ │ │ ├── LoginSp.java
│ │ │ │ └── SystemConfigSp.java
│ │ │ ├── imservice
│ │ │ │ ├── callback
│ │ │ │ │ ├── IMListener.java
│ │ │ │ │ ├── ListenerQueue.java
│ │ │ │ │ └── Packetlistener.java
│ │ │ │ ├── entity
│ │ │ │ │ ├── AudioMessage.java
│ │ │ │ │ ├── ImageMessage.java
│ │ │ │ │ ├── MixMessage.java
│ │ │ │ │ ├── MsgAnalyzeEngine.java
│ │ │ │ │ ├── RecentInfo.java
│ │ │ │ │ ├── SearchElement.java
│ │ │ │ │ ├── TextMessage.java
│ │ │ │ │ ├── TimeTileMessage.java
│ │ │ │ │ └── UnreadEntity.java
│ │ │ │ ├── event
│ │ │ │ │ ├── AudioEvent.java
│ │ │ │ │ ├── GroupEvent.java
│ │ │ │ │ ├── ImageMsgEvent.java
│ │ │ │ │ ├── LoginEvent.java
│ │ │ │ │ ├── MessageEvent.java
│ │ │ │ │ ├── PriorityEvent.java
│ │ │ │ │ ├── ReconnectEvent.java
│ │ │ │ │ ├── RefreshHistoryMsgEvent.java
│ │ │ │ │ ├── SelectEvent.java
│ │ │ │ │ ├── SessionEvent.java
│ │ │ │ │ ├── SocketEvent.java
│ │ │ │ │ ├── UnreadEvent.java
│ │ │ │ │ └── UserInfoEvent.java
│ │ │ │ ├── manager
│ │ │ │ │ ├── IMContactManager.java
│ │ │ │ │ ├── IMGroupManager.java
│ │ │ │ │ ├── IMHeartBeatManager.java
│ │ │ │ │ ├── IMLoginManager.java
│ │ │ │ │ ├── IMManager.java
│ │ │ │ │ ├── IMMessageManager.java
│ │ │ │ │ ├── IMNotificationManager.java
│ │ │ │ │ ├── IMPacketDispatcher.java
│ │ │ │ │ ├── IMReconnectManager.java
│ │ │ │ │ ├── IMSessionManager.java
│ │ │ │ │ ├── IMSocketManager.java
│ │ │ │ │ ├── IMStackManager.java
│ │ │ │ │ └── IMUnreadMsgManager.java
│ │ │ │ ├── network
│ │ │ │ │ ├── MsgServerHandler.java
│ │ │ │ │ └── SocketThread.java
│ │ │ │ ├── service
│ │ │ │ │ ├── IMService.java
│ │ │ │ │ ├── LoadImageService.java
│ │ │ │ │ └── PushReceiver.java
│ │ │ │ └── support
│ │ │ │ ├── audio
│ │ │ │ │ ├── AudioFileWriter.java
│ │ │ │ │ ├── OggCrc.java
│ │ │ │ │ ├── OggSpeexWriter.java
│ │ │ │ │ ├── SpeexDecoder.java
│ │ │ │ │ ├── SpeexEncoder.java
│ │ │ │ │ ├── Speex.java
│ │ │ │ │ ├── SpeexWriteClient.java
│ │ │ │ │ └── SpeexWriter.java
│ │ │ │ ├── IMServiceConnector.java
│ │ │ │ └── SequenceNumberMaker.java
│ │ │ ├── protobuf
│ │ │ │ ├── base
│ │ │ │ │ ├── DataBuffer.java
│ │ │ │ │ ├── DefaultHeader.java
│ │ │ │ │ └── Header.java
│ │ │ │ ├── helper
│ │ │ │ │ ├── EntityChangeEngine.java
│ │ │ │ │ ├── Java2ProtoBuf.java
│ │ │ │ │ └── ProtoBuf2JavaBean.java
│ │ │ │ ├── IMBaseDefine.java
│ │ │ │ ├── IMBuddy.java
│ │ │ │ ├── IMFile.java
│ │ │ │ ├── IMGroup.java
│ │ │ │ ├── IMLogin.java
│ │ │ │ ├── IMMessage.java
│ │ │ │ ├── IMOther.java
│ │ │ │ └── IMSwitchService.java
│ │ │ ├── Security.java
│ │ │ ├── ui
│ │ │ │ ├── activity
│ │ │ │ │ ├── ChatFragmentActivity.java
│ │ │ │ │ ├── ContactFragmentActivity.java
│ │ │ │ │ ├── DetailPortraitActivity.java
│ │ │ │ │ ├── GroupManagermentActivity.java
│ │ │ │ │ ├── GroupMemberSelectActivity.java
│ │ │ │ │ ├── ImageGridActivity.java
│ │ │ │ │ ├── LoginActivity.java
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ ├── MessageActivity.java
│ │ │ │ │ ├── PickPhotoActivity.java
│ │ │ │ │ ├── PreviewActivity.java
│ │ │ │ │ ├── PreviewGifActivity.java
│ │ │ │ │ ├── PreviewMessageImagesActivity.java
│ │ │ │ │ ├── PreviewTextActivity.java
│ │ │ │ │ ├── SearchActivity.java
│ │ │ │ │ ├── SettingActivity.java
│ │ │ │ │ ├── UserInfoActivity.java
│ │ │ │ │ └── WebViewFragmentActivity.java
│ │ │ │ ├── adapter
│ │ │ │ │ ├── album
│ │ │ │ │ │ ├── AlbumHelper.java
│ │ │ │ │ │ ├── BitmapCache.java
│ │ │ │ │ │ ├── ImageBucketAdapter.java
│ │ │ │ │ │ ├── ImageBucket.java
│ │ │ │ │ │ ├── ImageGridAdapter.java
│ │ │ │ │ │ └── ImageItem.java
│ │ │ │ │ ├── ChatAdapter.java
│ │ │ │ │ ├── ContactAdapter.java
│ │ │ │ │ ├── DeptAdapter.java
│ │ │ │ │ ├── EmoGridViewAdapter.java
│ │ │ │ │ ├── GroupManagerAdapter.java
│ │ │ │ │ ├── GroupSelectAdapter.java
│ │ │ │ │ ├── InternalAdapter.java
│ │ │ │ │ ├── MessageAdapter.java
│ │ │ │ │ ├── SearchAdapter.java
│ │ │ │ │ ├── ViewPageAdapter.java
│ │ │ │ │ └── YayaEmoGridViewAdapter.java
│ │ │ │ ├── base
│ │ │ │ │ ├── TTBaseActivity.java
│ │ │ │ │ ├── TTBaseFragmentActivity.java
│ │ │ │ │ └── TTBaseFragment.java
│ │ │ │ ├── fragment
│ │ │ │ │ ├── ChatFragment.java
│ │ │ │ │ ├── ContactFragment.java
│ │ │ │ │ ├── GroupManagerFragment.java
│ │ │ │ │ ├── GroupMemberSelectFragment.java
│ │ │ │ │ ├── InternalFragment.java
│ │ │ │ │ ├── MainFragment.java
│ │ │ │ │ ├── MessageImageFragment.java
│ │ │ │ │ ├── MyFragment.java
│ │ │ │ │ ├── SearchFragment.java
│ │ │ │ │ ├── SettingFragment.java
│ │ │ │ │ ├── UserInfoFragment.java
│ │ │ │ │ └── WebviewFragment.java
│ │ │ │ ├── helper
│ │ │ │ │ ├── AudioPlayerHandler.java
│ │ │ │ │ ├── AudioRecordHandler.java
│ │ │ │ │ ├── BubbleImageHelper.java
│ │ │ │ │ ├── CheckboxConfigHelper.java
│ │ │ │ │ ├── CircleBitmapDisplayer.java
│ │ │ │ │ ├── Emoparser.java
│ │ │ │ │ ├── GifAnimationDrawable.java
│ │ │ │ │ ├── GifDecoder.java
│ │ │ │ │ ├── listener
│ │ │ │ │ │ └── OnDoubleClickListener.java
│ │ │ │ │ └── PhotoHelper.java
│ │ │ │ └── widget
│ │ │ │ ├── BubbleImageView.java
│ │ │ │ ├── CustomEditView.java
│ │ │ │ ├── CustomViewPager.java
│ │ │ │ ├── DrawableCenterEditText.java
│ │ │ │ ├── EmoGridView.java
│ │ │ │ ├── GifDecoder.java
│ │ │ │ ├── GifLoadTask.java
│ │ │ │ ├── GifView.java
│ │ │ │ ├── GroupManagerGridView.java
│ │ │ │ ├── IMBaseImageView.java
│ │ │ │ ├── IMGroupAvatar.java
│ │ │ │ ├── message
│ │ │ │ │ ├── AudioRenderView.java
│ │ │ │ │ ├── BaseMsgRenderView.java
│ │ │ │ │ ├── EmojiRenderView.java
│ │ │ │ │ ├── GifImageRenderView.java
│ │ │ │ │ ├── ImageRenderView.java
│ │ │ │ │ ├── MessageOperatePopup.java
│ │ │ │ │ ├── RenderType.java
│ │ │ │ │ ├── TextRenderView.java
│ │ │ │ │ └── TimeRenderView.java
│ │ │ │ ├── MGDialog.java
│ │ │ │ ├── MGProgressbar.java
│ │ │ │ ├── NaviTabButton.java
│ │ │ │ ├── PinkToast.java
│ │ │ │ ├── SearchEditText.java
│ │ │ │ ├── SortSideBar.java
│ │ │ │ ├── SpeekerToast.java
│ │ │ │ ├── TopTabButton.java
│ │ │ │ ├── YayaEmoGridView.java
│ │ │ │ └── ZoomableImageView.java
│ │ │ └── utils
│ │ │ ├── CharacterParser.java
│ │ │ ├── CommonUtil.java
│ │ │ ├── DateUtil.java
│ │ │ ├── DumpUtils.java
│ │ │ ├── FileUtil.java
│ │ │ ├── ImageLoaderUtil.java
│ │ │ ├── ImageUtil.java
│ │ │ ├── IMUIHelper.java
│ │ │ ├── Logger.java
│ │ │ ├── MoGuHttpClient.java
│ │ │ ├── NetworkUtil.java
│ │ │ ├── packageInfo
│ │ │ ├── pinyin
│ │ │ │ ├── HanziToPinyin3.java
│ │ │ │ └── PinYin.java
│ │ │ └── ScreenUtil.java
│ │ ├── jni
│ │ │ ├── Android.mk
│ │ │ ├── Application.mk
│ │ │ ├── include
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ └── speex
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── speex_bits.h
│ │ │ │ ├── speex_buffer.h
│ │ │ │ ├── speex_callbacks.h
│ │ │ │ ├── speex_config_types.h
│ │ │ │ ├── speex_config_types.h.in
│ │ │ │ ├── speex_echo.h
│ │ │ │ ├── speex.h
│ │ │ │ ├── speex_header.h
│ │ │ │ ├── speex_jitter.h
│ │ │ │ ├── speex_preprocess.h
│ │ │ │ ├── speex_resampler.h
│ │ │ │ ├── speex_stereo.h
│ │ │ │ └── speex_types.h
│ │ │ ├── libspeex
│ │ │ │ ├── arch.h
│ │ │ │ ├── bits.c
│ │ │ │ ├── buffer.c
│ │ │ │ ├── cb_search_arm4.h
│ │ │ │ ├── cb_search_bfin.h
│ │ │ │ ├── cb_search.c
│ │ │ │ ├── cb_search.h
│ │ │ │ ├── cb_search_sse.h
│ │ │ │ ├── echo_diagnostic.m
│ │ │ │ ├── exc_10_16_table.c
│ │ │ │ ├── exc_10_32_table.c
│ │ │ │ ├── exc_20_32_table.c
│ │ │ │ ├── exc_5_256_table.c
│ │ │ │ ├── exc_5_64_table.c
│ │ │ │ ├── exc_8_128_table.c
│ │ │ │ ├── fftwrap.c
│ │ │ │ ├── fftwrap.h
│ │ │ │ ├── filterbank.c
│ │ │ │ ├── filterbank.h
│ │ │ │ ├── filters_arm4.h
│ │ │ │ ├── filters_bfin.h
│ │ │ │ ├── filters.c
│ │ │ │ ├── filters.h
│ │ │ │ ├── filters_sse.h
│ │ │ │ ├── fixed_arm4.h
│ │ │ │ ├── fixed_arm5e.h
│ │ │ │ ├── fixed_bfin.h
│ │ │ │ ├── fixed_debug.h
│ │ │ │ ├── fixed_generic.h
│ │ │ │ ├── gain_table.c
│ │ │ │ ├── gain_table_lbr.c
│ │ │ │ ├── hexc_10_32_table.c
│ │ │ │ ├── hexc_table.c
│ │ │ │ ├── high_lsp_tables.c
│ │ │ │ ├── jitter.c
│ │ │ │ ├── kiss_fft.c
│ │ │ │ ├── _kiss_fft_guts.h
│ │ │ │ ├── kiss_fft.h
│ │ │ │ ├── kiss_fftr.c
│ │ │ │ ├── kiss_fftr.h
│ │ │ │ ├── lpc_bfin.h
│ │ │ │ ├── lpc.c
│ │ │ │ ├── lpc.h
│ │ │ │ ├── lsp_bfin.h
│ │ │ │ ├── lsp.c
│ │ │ │ ├── lsp.h
│ │ │ │ ├── lsp_tables_nb.c
│ │ │ │ ├── ltp_arm4.h
│ │ │ │ ├── ltp_bfin.h
│ │ │ │ ├── ltp.c
│ │ │ │ ├── ltp.h
│ │ │ │ ├── ltp_sse.h
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── math_approx.h
│ │ │ │ ├── mdf.c
│ │ │ │ ├── misc_bfin.h
│ │ │ │ ├── modes.c
│ │ │ │ ├── modes.h
│ │ │ │ ├── modes_wb.c
│ │ │ │ ├── nb_celp.c
│ │ │ │ ├── nb_celp.h
│ │ │ │ ├── os_support.h
│ │ │ │ ├── preprocess.c
│ │ │ │ ├── pseudofloat.h
│ │ │ │ ├── quant_lsp_bfin.h
│ │ │ │ ├── quant_lsp.c
│ │ │ │ ├── quant_lsp.h
│ │ │ │ ├── resample.c
│ │ │ │ ├── resample_sse.h
│ │ │ │ ├── sb_celp.c
│ │ │ │ ├── sb_celp.h
│ │ │ │ ├── scal.c
│ │ │ │ ├── smallft.c
│ │ │ │ ├── smallft.h
│ │ │ │ ├── speex.c
│ │ │ │ ├── speex_callbacks.c
│ │ │ │ ├── speex_header.c
│ │ │ │ ├── stack_alloc.h
│ │ │ │ ├── stereo.c
│ │ │ │ ├── testdenoise.c
│ │ │ │ ├── testecho.c
│ │ │ │ ├── testenc.c
│ │ │ │ ├── testenc_uwb.c
│ │ │ │ ├── testenc_wb.c
│ │ │ │ ├── testjitter.c
│ │ │ │ ├── vbr.c
│ │ │ │ ├── vbr.h
│ │ │ │ ├── vorbis_psy.h
│ │ │ │ ├── vq_arm4.h
│ │ │ │ ├── vq_bfin.h
│ │ │ │ ├── vq.c
│ │ │ │ ├── vq.h
│ │ │ │ ├── vq_sse.h
│ │ │ │ └── window.c
│ │ │ └── speex_jni.cpp
│ │ ├── jniLibs
│ │ │ ├── armeabi
│ │ │ │ ├── libsecurity.so
│ │ │ │ └── libspeex.so
│ │ │ └── armeabi-v7a
│ │ │ ├── libsecurity.so
│ │ │ └── libspeex.so
│ │ └── res
│ │ ├── anim
│ │ │ ├── login_splash.xml
│ │ │ ├── tt_album_enter.xml
│ │ │ ├── tt_album_exit.xml
│ │ │ ├── tt_image_enter.xml
│ │ │ ├── tt_image_exit.xml
│ │ │ ├── tt_image_left_enter.xml
│ │ │ ├── tt_image_left_exit.xml
│ │ │ ├── tt_speeker_in.xml
│ │ │ ├── tt_speeker_out.xml
│ │ │ ├── tt_stay.xml
│ │ │ ├── tt_stay_x.xml
│ │ │ ├── tt_voice_play_mine.xml
│ │ │ └── tt_voice_play_other.xml
│ │ ├── color
│ │ │ ├── checkbox_background.xml
│ │ │ ├── toggle_checkbox_background.xml
│ │ │ ├── tt_dialog_negative_text_color.xml
│ │ │ └── tt_positive_text_color.xml
│ │ ├── drawable
│ │ │ ├── tab_bg_selector.xml
│ │ │ ├── tt_bgd_relatly_line.xml
│ │ │ ├── tt_bt_nobgd.xml
│ │ │ ├── tt_default_emo_dots.xml
│ │ │ ├── tt_dialog_bg.xml
│ │ │ ├── tt_dialog_negative_btn_bg.xml
│ │ │ ├── tt_dialog_positive_btn_bg.xml
│ │ │ ├── tt_list_item_bk.xml
│ │ │ ├── tt_message_cursor.xml
│ │ │ ├── tt_message_image_border.xml
│ │ │ ├── tt_mine_item_bg.xml
│ │ │ ├── tt_other_item_bg.xml
│ │ │ ├── tt_panel_circle.xml
│ │ │ ├── tt_panel_edt_focused.xml
│ │ │ ├── tt_panel_edt_msg_bk.xml
│ │ │ ├── tt_panel_voice_forward.xml
│ │ │ ├── tt_pannel_edt_normal.xml
│ │ │ ├── tt_pickimage_item_bg.xml
│ │ │ ├── tt_popup_background.xml
│ │ │ ├── tt_progressbar.xml
│ │ │ ├── tt_search_edt_bk.xml
│ │ │ ├── tt_send_voice_btn_bg.xml
│ │ │ ├── tt_show_emo_btn.xml
│ │ │ └── tt_text_while.xml
│ │ ├── drawable-hdpi
│ │ │ └── tt_loading_circle.png
│ │ ├── drawable-xhdpi
│ │ │ ├── check_box.png
│ │ │ ├── check.png
│ │ │ ├── discussion_group_default.png
│ │ │ ├── group_avatar_bk.png
│ │ │ ├── group_default.png
│ │ │ ├── pc_notify.png
│ │ │ ├── seleted.png
│ │ │ ├── tele.png
│ │ │ ├── tt_album_arrow.png
│ │ │ ├── tt_album_arrow_sel.png
│ │ │ ├── tt_album_bottom_bar.png
│ │ │ ├── tt_album_img_selected.png
│ │ │ ├── tt_album_img_select_nor.png
│ │ │ ├── tt_album_item_sel_bk.png
│ │ │ ├── tt_back_btn.png
│ │ │ ├── tt_bg_popup_left_nomal.png
│ │ │ ├── tt_bg_popup_left_pressed.png
│ │ │ ├── tt_bg_popup_normal.9.png
│ │ │ ├── tt_bg_popup_pressed.9.png
│ │ │ ├── tt_bg_popup_right_nomal.png
│ │ │ ├── tt_bg_popup_right_pressed.png
│ │ │ ├── tt_chatting_biaoqing_btn_normal.png
│ │ │ ├── tt_clear_bar.png
│ │ │ ├── tt_clock_icon.png
│ │ │ ├── tt_contact_side_search.png
│ │ │ ├── tt_contact_top_left_nor.png
│ │ │ ├── tt_contact_top_left_sel.png
│ │ │ ├── tt_contact_top_right_nor.png
│ │ │ ├── tt_contact_top_right_sel.png
│ │ │ ├── tt_default_album_grid_image.png
│ │ │ ├── tt_default_arrow.png
│ │ │ ├── tt_default_btn_bk.png
│ │ │ ├── tt_default_dot_down.png
│ │ │ ├── tt_default_dot_up.png
│ │ │ ├── tt_default_emo_back_normal.png
│ │ │ ├── tt_default_image_error.png
│ │ │ ├── tt_default_image.png
│ │ │ ├── tt_default_message_error_image.png
│ │ │ ├── tt_default_message_image.png
│ │ │ ├── tt_default_user_portrait_corner.png
│ │ │ ├── tt_delete_bar.png
│ │ │ ├── tt_dialog_navigative_btn_bg_normal.9.png
│ │ │ ├── tt_dialog_navigative_btn_bg_pressed.9.png
│ │ │ ├── tt_dialog_positive_btn_bg_normal.9.png
│ │ │ ├── tt_dialog_positive_btn_bg_pressed.9.png
│ │ │ ├── tt_divide_line.png
│ │ │ ├── tt_e0.png
│ │ │ ├── tt_e10.png
│ │ │ ├── tt_e11.png
│ │ │ ├── tt_e12.png
│ │ │ ├── tt_e13.png
│ │ │ ├── tt_e14.png
│ │ │ ├── tt_e15.png
│ │ │ ├── tt_e16.png
│ │ │ ├── tt_e17.png
│ │ │ ├── tt_e18.png
│ │ │ ├── tt_e19.png
│ │ │ ├── tt_e1.png
│ │ │ ├── tt_e20.png
│ │ │ ├── tt_e21.png
│ │ │ ├── tt_e22.png
│ │ │ ├── tt_e23.png
│ │ │ ├── tt_e24.png
│ │ │ ├── tt_e25.png
│ │ │ ├── tt_e26.png
│ │ │ ├── tt_e27.png
│ │ │ ├── tt_e28.png
│ │ │ ├── tt_e29.png
│ │ │ ├── tt_e2.png
│ │ │ ├── tt_e30.png
│ │ │ ├── tt_e31.png
│ │ │ ├── tt_e32.png
│ │ │ ├── tt_e33.png
│ │ │ ├── tt_e34.png
│ │ │ ├── tt_e35.png
│ │ │ ├── tt_e36.png
│ │ │ ├── tt_e37.png
│ │ │ ├── tt_e38.png
│ │ │ ├── tt_e39.png
│ │ │ ├── tt_e3.png
│ │ │ ├── tt_e40.png
│ │ │ ├── tt_e41.png
│ │ │ ├── tt_e42.png
│ │ │ ├── tt_e43.png
│ │ │ ├── tt_e44.png
│ │ │ ├── tt_e45.png
│ │ │ ├── tt_e4.png
│ │ │ ├── tt_e5.png
│ │ │ ├── tt_e6.png
│ │ │ ├── tt_e7.png
│ │ │ ├── tt_e8.png
│ │ │ ├── tt_e9.png
│ │ │ ├── tt_empty_default_icon.png
│ │ │ ├── tt_empty_no_contact_icon.png
│ │ │ ├── tt_group_manager_add_user.png
│ │ │ ├── tt_group_manager_delete_user.png
│ │ │ ├── tt_group_tag_admin.png
│ │ │ ├── tt_ic_launcher.png
│ │ │ ├── tt_internal_page_logo.png
│ │ │ ├── tt_login_logo2.png
│ │ │ ├── tt_login_logo.png
│ │ │ ├── tt_login_pwd.png
│ │ │ ├── tt_login_user.png
│ │ │ ├── tt_logo2.png
│ │ │ ├── tt_logo.png
│ │ │ ├── tt_message_botify_no_disturb.png
│ │ │ ├── tt_message_image_default.png
│ │ │ ├── tt_message_image_error.png
│ │ │ ├── tt_message_notify.9.png
│ │ │ ├── tt_message_notify_single.png
│ │ │ ├── tt_message_text_bg.9.png
│ │ │ ├── tt_message_title_time_bg.9.png
│ │ │ ├── tt_mine_image_bk.png
│ │ │ ├── tt_mine_image_default_bk.png
│ │ │ ├── tt_mine_image_horizontal_bk.png
│ │ │ ├── tt_mine_image_vertical_bk.9.png
│ │ │ ├── tt_mine_item_bg_normal.9.png
│ │ │ ├── tt_mine_item_bg_pressed.9.png
│ │ │ ├── tt_msg_tip.png
│ │ │ ├── tt_my_message_bkgnd.9.png
│ │ │ ├── tt_new_msg_bk.png
│ │ │ ├── tt_no_disturb_image.png
│ │ │ ├── tt_other_default_image_bk.9.png
│ │ │ ├── tt_other_image_bk.png
│ │ │ ├── tt_other_image_default_bk.png
│ │ │ ├── tt_other_image_horizontal_bk.png
│ │ │ ├── tt_other_image_vertical_bk.9.png
│ │ │ ├── tt_other_item_bg_normal.9.png
│ │ │ ├── tt_other_item_bg_pressed.9.png
│ │ │ ├── tt_other_text_background.png
│ │ │ ├── tt_page_item_bk.9.png
│ │ │ ├── tt_page_my_setting.png
│ │ │ ├── tt_pannel_bk.9.png
│ │ │ ├── tt_pannel_btn_voiceforward_normal.9.png
│ │ │ ├── tt_pannel_btn_voiceforward_pressed.9.png
│ │ │ ├── tt_preview_dot_down.png
│ │ │ ├── tt_preview_dot_up.png
│ │ │ ├── tt_search.png
│ │ │ ├── tt_send_btn_bg.9.png
│ │ │ ├── tt_send_message_btn_bg.9.png
│ │ │ ├── tt_send_voice_btn_bg.9.png
│ │ │ ├── tt_send_voice_btn_bg_normal.9.png
│ │ │ ├── tt_send_voice_btn_btn_pressed.9.png
│ │ │ ├── tt_show_add_photo_btn.png
│ │ │ ├── tt_show_head_toast_bg.9.png
│ │ │ ├── tt_small_icon.png
│ │ │ ├── tt_sound_volume_01.png
│ │ │ ├── tt_sound_volume_02.png
│ │ │ ├── tt_sound_volume_03.png
│ │ │ ├── tt_sound_volume_04.png
│ │ │ ├── tt_sound_volume_05.png
│ │ │ ├── tt_sound_volume_06.png
│ │ │ ├── tt_sound_volume_07.png
│ │ │ ├── tt_sound_volume_cancel_bk.png
│ │ │ ├── tt_sound_volume_default_bk.png
│ │ │ ├── tt_sound_volume_short_tip_bk.png
│ │ │ ├── tt_speeker_tip_bg.png
│ │ │ ├── tt_splash.jpg
│ │ │ ├── tt_switch_to_keyboard_btn.png
│ │ │ ├── tt_tab_bk.png
│ │ │ ├── tt_tab_chat_nor.png
│ │ │ ├── tt_tab_chat_sel.png
│ │ │ ├── tt_tab_contact_nor.png
│ │ │ ├── tt_tab_contact_sel.png
│ │ │ ├── tt_tab_internal_nor.png
│ │ │ ├── tt_tab_internal_select.png
│ │ │ ├── tt_tab_me_nor.png
│ │ │ ├── tt_tab_me_sel.png
│ │ │ ├── tt_take_camera_btn_bg.png
│ │ │ ├── tt_take_photo_btn_bg.png
│ │ │ ├── tt_top_back.png
│ │ │ ├── tt_top_default_bk.png
│ │ │ ├── tt_top_right_group_manager.png
│ │ │ ├── tt_top_search_bg.9.png
│ │ │ ├── tt_top_search.png
│ │ │ ├── tt_unread_message_notify_bg.png
│ │ │ ├── tt_voice_btn_btn.png
│ │ │ ├── tt_voice_node_mine_playing001.png
│ │ │ ├── tt_voice_node_mine_playing002.png
│ │ │ ├── tt_voice_node_mine_playing003.png
│ │ │ ├── tt_voice_node_mine.png
│ │ │ ├── tt_voice_node_other_playing001.png
│ │ │ ├── tt_voice_node_other_playing002.png
│ │ │ ├── tt_voice_node_other_playing003.png
│ │ │ ├── tt_voice_node_other.png
│ │ │ ├── tt_waterfall_refresh_bg.9.png
│ │ │ ├── tt_yaya_e10.gif
│ │ │ ├── tt_yaya_e11.gif
│ │ │ ├── tt_yaya_e12.gif
│ │ │ ├── tt_yaya_e13.gif
│ │ │ ├── tt_yaya_e14.gif
│ │ │ ├── tt_yaya_e15.gif
│ │ │ ├── tt_yaya_e16.gif
│ │ │ ├── tt_yaya_e17.gif
│ │ │ ├── tt_yaya_e18.gif
│ │ │ ├── tt_yaya_e19.gif
│ │ │ ├── tt_yaya_e1.gif
│ │ │ ├── tt_yaya_e2.gif
│ │ │ ├── tt_yaya_e3.gif
│ │ │ ├── tt_yaya_e4.gif
│ │ │ ├── tt_yaya_e5.gif
│ │ │ ├── tt_yaya_e6.gif
│ │ │ ├── tt_yaya_e7.gif
│ │ │ ├── tt_yaya_e8.gif
│ │ │ ├── tt_yaya_e9.gif
│ │ │ ├── uncheck_box.png
│ │ │ ├── uncheck.png
│ │ │ ├── warning.png
│ │ │ ├── wifi.png
│ │ │ ├── xiaoxia.9.png
│ │ │ └── xiaoxian.9.png
│ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── layout
│ │ │ ├── activity_preview_message_images.xml
│ │ │ ├── fragment_message_image.xml
│ │ │ ├── fragment_preview_message_images.xml
│ │ │ ├── mogujie_notification.xml
│ │ │ ├── tt_activity_base.xml
│ │ │ ├── tt_activity_detail_portrait.xml
│ │ │ ├── tt_activity_groupmanage.xml
│ │ │ ├── tt_activity_group_member_select.xml
│ │ │ ├── tt_activity_image_grid.xml
│ │ │ ├── tt_activity_login.xml
│ │ │ ├── tt_activity_main.xml
│ │ │ ├── tt_activity_message.xml
│ │ │ ├── tt_activity_pick_photo.xml
│ │ │ ├── tt_activity_preview_gif.xml
│ │ │ ├── tt_activity_preview_text.xml
│ │ │ ├── tt_activity_preview.xml
│ │ │ ├── tt_custom_dialog.xml
│ │ │ ├── tt_dialog_call.xml
│ │ │ ├── tt_display_image_layout.xml
│ │ │ ├── tt_fragment_activity_chat.xml
│ │ │ ├── tt_fragment_activity_contact.xml
│ │ │ ├── tt_fragment_activity_search.xml
│ │ │ ├── tt_fragment_activity_setting.xml
│ │ │ ├── tt_fragment_activity_userinfo.xml
│ │ │ ├── tt_fragment_activity_webview.xml
│ │ │ ├── tt_fragment_base.xml
│ │ │ ├── tt_fragment_chat.xml
│ │ │ ├── tt_fragment_contact.xml
│ │ │ ├── tt_fragment_group_manage.xml
│ │ │ ├── tt_fragment_group_member_select.xml
│ │ │ ├── tt_fragment_internal.xml
│ │ │ ├── tt_fragment_my.xml
│ │ │ ├── tt_fragment_search.xml
│ │ │ ├── tt_fragment_setting.xml
│ │ │ ├── tt_fragment_user_detail.xml
│ │ │ ├── tt_fragment_webview.xml
│ │ │ ├── tt_group_manage_grid_item.xml
│ │ │ ├── tt_history_divider_item.xml
│ │ │ ├── tt_image_loadding_layout.xml
│ │ │ ├── tt_item_chat_group.xml
│ │ │ ├── tt_item_chat.xml
│ │ │ ├── tt_item_contact_group.xml
│ │ │ ├── tt_item_contact.xml
│ │ │ ├── tt_item_image_grid.xml
│ │ │ ├── tt_item_image_pick.xml
│ │ │ ├── tt_item_internalitem.xml
│ │ │ ├── tt_messagelist_header.xml
│ │ │ ├── tt_message_title_time.xml
│ │ │ ├── tt_mine_audio_message_item.xml
│ │ │ ├── tt_mine_emoji_message_item.xml
│ │ │ ├── tt_mine_gifimage_message_item.xml
│ │ │ ├── tt_mine_image_message_item.xml
│ │ │ ├── tt_mine_text_message_item.xml
│ │ │ ├── tt_navi_tab_button.xml
│ │ │ ├── tt_other_audio_message_item.xml
│ │ │ ├── tt_other_emoji_message_item.xml
│ │ │ ├── tt_other_gifimage_message_item.xml
│ │ │ ├── tt_other_image_message_item.xml
│ │ │ ├── tt_other_text_message_item.xml
│ │ │ ├── tt_popup_item_view.xml
│ │ │ ├── tt_popup_list.xml
│ │ │ ├── tt_progress_ly.xml
│ │ │ ├── tt_progress.xml
│ │ │ ├── tt_sound_volume_dialog.xml
│ │ │ ├── tt_speeker_layout.xml
│ │ │ ├── tt_top_tab_button.xml
│ │ │ ├── tt_top_tab.xml
│ │ │ ├── tt_update_progress.xml
│ │ │ ├── tt_view_dialog_base.xml
│ │ │ └── tt_voicetip.xml
│ │ ├── values
│ │ │ ├── attrs.xml
│ │ │ ├── biv_attrs.xml
│ │ │ ├── tt_arrays.xml
│ │ │ ├── tt_color.xml
│ │ │ ├── tt_dimens.xml
│ │ │ ├── tt_ptr_dimens.xml
│ │ │ ├── tt_pull_refresh_strings.xml
│ │ │ ├── tt_strings_activity_contact.xml
│ │ │ ├── tt_strings_activity_login.xml
│ │ │ ├── tt_strings_activity_message.xml
│ │ │ ├── tt_strings_main_page.xml
│ │ │ ├── tt_strings.xml
│ │ │ └── tt_styles.xml
│ │ ├── values-sw600dp
│ │ │ └── dimens.xml
│ │ ├── values-sw720dp-land
│ │ │ └── dimens.xml
│ │ └── values-w820dp
│ │ └── im_dimens.xml
│ ├── build.gradle
│ ├── daogenerator
│ │ ├── build.gradle
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── mogujie
│ │ └── GreenDaoGenerator.java
│ ├── mgimlibs
│ │ ├── build.gradle
│ │ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ ├── handmark
│ │ │ │ └── pulltorefresh
│ │ │ │ └── library
│ │ │ │ ├── extras
│ │ │ │ │ ├── PullToRefreshWebView2.java
│ │ │ │ │ └── SoundPullEventListener.java
│ │ │ │ ├── ILoadingLayout.java
│ │ │ │ ├── internal
│ │ │ │ │ ├── EmptyViewMethodAccessor.java
│ │ │ │ │ ├── FlipLoadingLayout.java
│ │ │ │ │ ├── IndicatorLayout.java
│ │ │ │ │ ├── LoadingLayout.java
│ │ │ │ │ ├── RotateLoadingLayout.java
│ │ │ │ │ ├── Utils.java
│ │ │ │ │ └── ViewCompat.java
│ │ │ │ ├── IPullToRefresh.java
│ │ │ │ ├── LoadingLayoutProxy.java
│ │ │ │ ├── OverscrollHelper.java
│ │ │ │ ├── PullToRefreshAdapterViewBase.java
│ │ │ │ ├── PullToRefreshBase.java
│ │ │ │ ├── PullToRefreshExpandableListView.java
│ │ │ │ ├── PullToRefreshGridView.java
│ │ │ │ ├── PullToRefreshHorizontalScrollView.java
│ │ │ │ ├── PullToRefreshListViewForNoneHeaderDivider.java
│ │ │ │ ├── PullToRefreshListView.java
│ │ │ │ ├── PullToRefreshScrollView.java
│ │ │ │ └── PullToRefreshWebView.java
│ │ │ ├── mogujie
│ │ │ │ └── tools
│ │ │ │ ├── EncryptTools.java
│ │ │ │ ├── FileIOTools.java
│ │ │ │ ├── MGAutoUpdate.java
│ │ │ │ ├── MGJNotify.java
│ │ │ │ ├── ScreenTools.java
│ │ │ │ ├── StringTools.java
│ │ │ │ ├── SysInfo.java
│ │ │ │ └── TimeTools.java
│ │ │ └── polites
│ │ │ └── android
│ │ │ ├── Animation.java
│ │ │ ├── Animator.java
│ │ │ ├── FlingAnimation.java
│ │ │ ├── FlingAnimationListener.java
│ │ │ ├── FlingListener.java
│ │ │ ├── GestureImageView.java
│ │ │ ├── GestureImageViewListener.java
│ │ │ ├── GestureImageViewTouchListener.java
│ │ │ ├── MathUtils.java
│ │ │ ├── MoveAnimation.java
│ │ │ ├── MoveAnimationListener.java
│ │ │ ├── VectorF.java
│ │ │ ├── ZoomAnimation.java
│ │ │ └── ZoomAnimationListener.java
│ │ └── res
│ │ ├── anim
│ │ │ ├── slide_in_from_bottom.xml
│ │ │ ├── slide_in_from_top.xml
│ │ │ ├── slide_out_to_bottom.xml
│ │ │ └── slide_out_to_top.xml
│ │ ├── drawable
│ │ │ ├── captcha_lib_image_layout_shape.xml
│ │ │ ├── indicator_bg_bottom.xml
│ │ │ ├── indicator_bg_top.xml
│ │ │ └── pull_to_refresh_indicator_bg.xml
│ │ ├── drawable-xhdpi
│ │ │ ├── default_ptr_flip.png
│ │ │ ├── default_ptr_rotate.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── indicator_arrow.png
│ │ │ ├── pull_to_refresh_indicator.png
│ │ │ ├── shadow_bottom.png
│ │ │ ├── shadow_left.png
│ │ │ └── shadow_right.png
│ │ ├── layout
│ │ │ ├── picutre_borad.xml
│ │ │ ├── pull_refresh_scroll_view.xml
│ │ │ ├── pull_to_refresh_header_horizontal.xml
│ │ │ └── pull_to_refresh_header_vertical.xml
│ │ └── values
│ │ ├── lib_attrs.xml
│ │ ├── prs_dimens.xml
│ │ ├── prs_strings.xml
│ │ ├── prs_styles.xml
│ │ ├── ptr_attrs.xml
│ │ ├── ptr_dimens.xml
│ │ ├── ptr_ids.xml
│ │ ├── pull_refresh_strings.xml
│ │ └── strings.xml
│ ├── README.md
│ └── settings.gradle
├── auto_setup
│ ├── gcc_setup
│ │ ├── gcc_setup.sh
│ │ └── termcap-1.3.1.tar.gz
│ ├── im_server
│ │ ├── conf
│ │ │ ├── dbproxyserver.conf
│ │ │ ├── fileserver.conf
│ │ │ ├── httpmsgserver.conf
│ │ │ ├── loginserver.conf
│ │ │ ├── msfs.conf
│ │ │ ├── msgserver.conf
│ │ │ ├── pushserver.conf
│ │ │ └── routeserver.conf
│ │ └── setup.sh
│ ├── im_web
│ │ ├── conf
│ │ │ ├── config.php
│ │ │ ├── database.php
│ │ │ └── im.com.conf
│ │ └── setup.sh
│ ├── INSTALL.md
│ ├── mariadb
│ │ ├── conf
│ │ │ └── ttopen.sql
│ │ └── setup.sh
│ ├── nginx_php
│ │ ├── nginx
│ │ │ └── setup.sh
│ │ └── php
│ │ ├── conf
│ │ │ ├── php-fpm.conf
│ │ │ └── php.ini
│ │ └── setup.sh
│ ├── README.md
│ ├── redis
│ │ ├── conf
│ │ │ └── redis.conf
│ │ └── setup.sh
│ └── setup.sh
├── doc
│ ├── http接口定义.md
│ ├── README.md
│ ├── RELEASE.md
│ └── 协议文件说明.md
├── ios
│ ├── Podfile
│ ├── Podfile.lock
│ ├── TeamTalk
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── Base.lproj
│ │ │ └── LaunchScreen.xib
│ │ ├── Category
│ │ │ ├── DDRuntimeSwizzle.h
│ │ │ ├── DDRuntimeSwizzle.m
│ │ │ ├── NSData+Conversion.h
│ │ │ ├── NSData+Conversion.m
│ │ │ ├── NSDate+DDAddition.h
│ │ │ ├── NSDate+DDAddition.m
│ │ │ ├── NSDictionary+JSON.h
│ │ │ ├── NSDictionary+JSON.m
│ │ │ ├── NSDictionary+Safe.h
│ │ │ ├── NSDictionary+Safe.m
│ │ │ ├── NSIndexSet+AQIndexesOutsideSet.h
│ │ │ ├── NSIndexSet+AQIndexesOutsideSet.m
│ │ │ ├── NSIndexSet+AQIsSetContiguous.h
│ │ │ ├── NSIndexSet+AQIsSetContiguous.m
│ │ │ ├── NSObject+Block.h
│ │ │ ├── NSObject+Block.m
│ │ │ ├── NSString+Additions.h
│ │ │ ├── NSString+Additions.m
│ │ │ ├── NSString+DDPath.h
│ │ │ ├── NSString+DDPath.m
│ │ │ ├── NSString+JSMessagesView.h
│ │ │ ├── NSString+JSMessagesView.m
│ │ │ ├── NSURL+SafeURL.h
│ │ │ ├── NSURL+SafeURL.m
│ │ │ ├── UIAlertView+Block.h
│ │ │ ├── UIAlertView+Block.m
│ │ │ ├── UIButton+JSMessagesView.h
│ │ │ ├── UIButton+JSMessagesView.m
│ │ │ ├── UIColor+AQGridView.h
│ │ │ ├── UIColor+AQGridView.m
│ │ │ ├── UIColor+JSMessagesView.h
│ │ │ ├── UIColor+JSMessagesView.m
│ │ │ ├── UIImage+JSMessagesView.h
│ │ │ ├── UIImage+JSMessagesView.m
│ │ │ ├── UIImage+Rotate_Flip.h
│ │ │ ├── UIImage+Rotate_Flip.m
│ │ │ ├── UIImage+UIImageAddition.h
│ │ │ ├── UIImage+UIImageAddition.m
│ │ │ ├── UILabel+VerticalAlign.h
│ │ │ ├── UILabel+VerticalAlign.m
│ │ │ ├── UIScrollView+PullToLoadMore.h
│ │ │ ├── UIScrollView+PullToLoadMore.m
│ │ │ ├── UITabBar+SubView.h
│ │ │ ├── UITabBar+SubView.m
│ │ │ ├── UIView+Addition.h
│ │ │ ├── UIView+Addition.m
│ │ │ ├── UIView+AnimationOptionsForCurve.h
│ │ │ ├── UIView+AnimationOptionsForCurve.m
│ │ │ ├── UIView+PointBadge.h
│ │ │ └── UIView+PointBadge.m
│ │ ├── Config
│ │ │ ├── MTTConfig.h
│ │ │ ├── MTTConstant.h
│ │ │ ├── MTTConstant.m
│ │ │ └── MTTPinyinConstant.h
│ │ ├── Control
│ │ │ ├── MTTAvatarImageView.h
│ │ │ ├── MTTAvatarImageView.m
│ │ │ ├── MTTAvatarManager.h
│ │ │ ├── MTTAvatarManager.m
│ │ │ ├── MTTLogoAnimateView.h
│ │ │ ├── MTTLogoAnimateView.m
│ │ │ ├── TouchDownGestureRecognizer.h
│ │ │ └── TouchDownGestureRecognizer.m
│ │ ├── Entity
│ │ │ ├── MTTBaseEntity.h
│ │ │ ├── MTTBaseEntity.m
│ │ │ ├── MTTDepartment.h
│ │ │ ├── MTTDepartment.m
│ │ │ ├── MTTGroupEntity.h
│ │ │ ├── MTTGroupEntity.m
│ │ │ ├── MTTMessageEntity.h
│ │ │ ├── MTTMessageEntity.mm
│ │ │ ├── MTTSessionEntity.h
│ │ │ ├── MTTSessionEntity.m
│ │ │ ├── MTTUserEntity.h
│ │ │ └── MTTUserEntity.m
│ │ ├── Exist
│ │ │ ├── AQGridView
│ │ │ │ ├── AQGridViewAnimatorItem.h
│ │ │ │ ├── AQGridViewAnimatorItem.m
│ │ │ │ ├── AQGridViewCell+AQGridViewCellPrivate.h
│ │ │ │ ├── AQGridViewCell.h
│ │ │ │ ├── AQGridView+CellLayout.h
│ │ │ │ ├── AQGridView+CellLocationDelegation.h
│ │ │ │ ├── AQGridViewCell.m
│ │ │ │ ├── AQGridViewController.h
│ │ │ │ ├── AQGridViewController.m
│ │ │ │ ├── AQGridViewData.h
│ │ │ │ ├── AQGridViewData.m
│ │ │ │ ├── AQGridView.h
│ │ │ │ ├── AQGridView.m
│ │ │ │ ├── AQGridViewUpdateInfo.h
│ │ │ │ ├── AQGridViewUpdateInfo.m
│ │ │ │ ├── AQGridViewUpdateItem.h
│ │ │ │ └── AQGridViewUpdateItem.m
│ │ │ ├── AvatarBrowser
│ │ │ │ ├── SJAvatarBrowser.h
│ │ │ │ └── SJAvatarBrowser.m
│ │ │ ├── JSMessage
│ │ │ │ ├── JSDismissiveTextView.h
│ │ │ │ ├── JSDismissiveTextView.m
│ │ │ │ ├── JSMessageInputView.h
│ │ │ │ ├── JSMessageInputView.m
│ │ │ │ ├── JSMessageTextView.h
│ │ │ │ └── JSMessageTextView.m
│ │ │ ├── LCActionSheet
│ │ │ │ ├── Image
│ │ │ │ │ ├── bgImage_HL@2x.png
│ │ │ │ │ └── cellLine@2x.png
│ │ │ │ ├── LCActionSheet.h
│ │ │ │ └── LCActionSheet.m
│ │ │ ├── ProtocolBuffers
│ │ │ │ ├── IMBaseDefine.pb.h
│ │ │ │ ├── IMBaseDefine.pb.m
│ │ │ │ ├── IMBuddy.pb.h
│ │ │ │ ├── IMBuddy.pb.m
│ │ │ │ ├── IMFile.pb.h
│ │ │ │ ├── IMFile.pb.m
│ │ │ │ ├── IMGroup.pb.h
│ │ │ │ ├── IMGroup.pb.m
│ │ │ │ ├── IMInternal.pb.h
│ │ │ │ ├── IMInternal.pb.m
│ │ │ │ ├── IMLogin.pb.h
│ │ │ │ ├── IMLogin.pb.m
│ │ │ │ ├── IMMessage.pb.h
│ │ │ │ ├── IMMessage.pb.m
│ │ │ │ ├── IMOther.pb.h
│ │ │ │ ├── IMOther.pb.m
│ │ │ │ ├── IMServer.pb.h
│ │ │ │ ├── IMServer.pb.m
│ │ │ │ ├── IMSwitchService.pb.h
│ │ │ │ └── IMSwitchService.pb.m
│ │ │ ├── Reachability
│ │ │ │ ├── DDReachability.h
│ │ │ │ └── DDReachability.m
│ │ │ ├── Security
│ │ │ │ ├── libsecurity.a
│ │ │ │ └── security.h
│ │ │ └── Voice
│ │ │ ├── Code
│ │ │ │ └── Libs
│ │ │ │ ├── config.h
│ │ │ │ ├── libogg
│ │ │ │ │ ├── bitwise.c
│ │ │ │ │ ├── framing.c
│ │ │ │ │ └── ogg
│ │ │ │ │ ├── ogg.h
│ │ │ │ │ └── os_types.h
│ │ │ │ └── libspeex
│ │ │ │ ├── arch.h
│ │ │ │ ├── bits.c
│ │ │ │ ├── buffer.c
│ │ │ │ ├── cb_search_arm4.h
│ │ │ │ ├── cb_search_bfin.h
│ │ │ │ ├── cb_search.c
│ │ │ │ ├── cb_search.h
│ │ │ │ ├── cb_search_sse.h
│ │ │ │ ├── exc_10_16_table.c
│ │ │ │ ├── exc_10_32_table.c
│ │ │ │ ├── exc_20_32_table.c
│ │ │ │ ├── exc_5_256_table.c
│ │ │ │ ├── exc_5_64_table.c
│ │ │ │ ├── exc_8_128_table.c
│ │ │ │ ├── fftwrap.c
│ │ │ │ ├── fftwrap.h
│ │ │ │ ├── filterbank.c
│ │ │ │ ├── filterbank.h
│ │ │ │ ├── filters_arm4.h
│ │ │ │ ├── filters_bfin.h
│ │ │ │ ├── filters.c
│ │ │ │ ├── filters.h
│ │ │ │ ├── filters_sse.h
│ │ │ │ ├── fixed_arm4.h
│ │ │ │ ├── fixed_arm5e.h
│ │ │ │ ├── fixed_bfin.h
│ │ │ │ ├── fixed_debug.h
│ │ │ │ ├── fixed_generic.h
│ │ │ │ ├── gain_table.c
│ │ │ │ ├── gain_table_lbr.c
│ │ │ │ ├── hexc_10_32_table.c
│ │ │ │ ├── hexc_table.c
│ │ │ │ ├── high_lsp_tables.c
│ │ │ │ ├── jitter.c
│ │ │ │ ├── kiss_fft.c
│ │ │ │ ├── _kiss_fft_guts.h
│ │ │ │ ├── kiss_fft.h
│ │ │ │ ├── kiss_fftr.c
│ │ │ │ ├── kiss_fftr.h
│ │ │ │ ├── lpc_bfin.h
│ │ │ │ ├── lpc.c
│ │ │ │ ├── lpc.h
│ │ │ │ ├── lsp_bfin.h
│ │ │ │ ├── lsp.c
│ │ │ │ ├── lsp.h
│ │ │ │ ├── lsp_tables_nb.c
│ │ │ │ ├── ltp_arm4.h
│ │ │ │ ├── ltp_bfin.h
│ │ │ │ ├── ltp.c
│ │ │ │ ├── ltp.h
│ │ │ │ ├── ltp_sse.h
│ │ │ │ ├── math_approx.h
│ │ │ │ ├── mdf.c
│ │ │ │ ├── misc_bfin.h
│ │ │ │ ├── modes.c
│ │ │ │ ├── modes.h
│ │ │ │ ├── modes_wb.c
│ │ │ │ ├── nb_celp.c
│ │ │ │ ├── nb_celp.h
│ │ │ │ ├── os_support.h
│ │ │ │ ├── preprocess.c
│ │ │ │ ├── pseudofloat.h
│ │ │ │ ├── quant_lsp_bfin.h
│ │ │ │ ├── quant_lsp.c
│ │ │ │ ├── quant_lsp.h
│ │ │ │ ├── resample.c
│ │ │ │ ├── resample_sse.h
│ │ │ │ ├── sb_celp.c
│ │ │ │ ├── sb_celp.h
│ │ │ │ ├── scal.c
│ │ │ │ ├── smallft.c
│ │ │ │ ├── smallft.h
│ │ │ │ ├── speex
│ │ │ │ │ ├── speex_bits.h
│ │ │ │ │ ├── speex_buffer.h
│ │ │ │ │ ├── speex_callbacks.h
│ │ │ │ │ ├── speex_config_types.h
│ │ │ │ │ ├── speex_config_types.h.in
│ │ │ │ │ ├── speex_echo.h
│ │ │ │ │ ├── speex.h
│ │ │ │ │ ├── speex_header.h
│ │ │ │ │ ├── speex_jitter.h
│ │ │ │ │ ├── speex_preprocess.h
│ │ │ │ │ ├── speex_resampler.h
│ │ │ │ │ ├── speex_stereo.h
│ │ │ │ │ └── speex_types.h
│ │ │ │ ├── speex.c
│ │ │ │ ├── speex_callbacks.c
│ │ │ │ ├── speex_header.c
│ │ │ │ ├── stack_alloc.h
│ │ │ │ ├── stereo.c
│ │ │ │ ├── vbr.c
│ │ │ │ ├── vbr.h
│ │ │ │ ├── vorbis_psy.h
│ │ │ │ ├── vq_arm4.h
│ │ │ │ ├── vq_bfin.h
│ │ │ │ ├── vq.c
│ │ │ │ ├── vq.h
│ │ │ │ ├── vq_sse.h
│ │ │ │ └── window.c
│ │ │ ├── manager
│ │ │ │ ├── AQRecorder.h
│ │ │ │ ├── AQRecorder.mm
│ │ │ │ ├── Codec
│ │ │ │ │ ├── SpeexAllHeaders.h
│ │ │ │ │ ├── SpeexCodec.h
│ │ │ │ │ └── SpeexCodec.m
│ │ │ │ ├── Decapsulator.h
│ │ │ │ ├── Decapsulator.m
│ │ │ │ ├── Encapsulator.h
│ │ │ │ ├── Encapsulator.m
│ │ │ │ ├── PlayerManager.h
│ │ │ │ ├── PlayerManager.m
│ │ │ │ ├── PublicUtility
│ │ │ │ │ ├── CADebugMacros.cpp
│ │ │ │ │ ├── CADebugMacros.h
│ │ │ │ │ ├── CAMath.h
│ │ │ │ │ ├── CAStreamBasicDescription.cpp
│ │ │ │ │ ├── CAStreamBasicDescription.h
│ │ │ │ │ ├── CAXException.cpp
│ │ │ │ │ └── CAXException.h
│ │ │ │ ├── RawAudioDataPlayer.h
│ │ │ │ ├── RawAudioDataPlayer.m
│ │ │ │ ├── RecorderManager.h
│ │ │ │ └── RecorderManager.mm
│ │ │ └── SpeexAllHeaders.h
│ │ ├── GlobalData
│ │ │ ├── RuntimeStatus
│ │ │ │ ├── RuntimeStatus.h
│ │ │ │ └── RuntimeStatus.m
│ │ │ └── StateMaintance
│ │ │ ├── DDClientState.h
│ │ │ ├── DDClientState.m
│ │ │ ├── DDClientStateMaintenanceManager.h
│ │ │ └── DDClientStateMaintenanceManager.m
│ │ ├── Images.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── 29px@1x.png
│ │ │ │ ├── 29px@2x.png
│ │ │ │ ├── 40px@2x.png
│ │ │ │ ├── 57px@1x.png
│ │ │ │ ├── 57px@2x.png
│ │ │ │ ├── 60px@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── Find
│ │ │ │ ├── openSource.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── logo@2x.png
│ │ │ │ │ └── logo.png
│ │ │ │ ├── top_back.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── top_back@2x.png
│ │ │ │ │ └── top_back.png
│ │ │ │ └── wifi.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── wifi@2x.png
│ │ │ │ └── wifi.png
│ │ │ ├── Image.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── launchimage.png
│ │ │ ├── launchimage.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── launchimage@2x.png
│ │ │ │ └── launchimage@3x.png
│ │ │ ├── left_bottom.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── left_bottom.png
│ │ │ ├── left_top.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── left_top.png
│ │ │ ├── navigation
│ │ │ │ └── contacts.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── user@2x.png
│ │ │ │ └── user.png
│ │ │ ├── navigationbar_back.imageset
│ │ │ │ ├── btn_navigationbar_back@2x.png
│ │ │ │ ├── btn_navigationbar_back.png
│ │ │ │ └── Contents.json
│ │ │ ├── right_bottom.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── right_bottom.png
│ │ │ ├── right_top.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── right_top.png
│ │ │ ├── tabbar
│ │ │ │ ├── tabBar_contacts_selected.imageset
│ │ │ │ │ ├── contact_tabbar_selected@2x.png
│ │ │ │ │ ├── contact_tabbar_selected.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── tabBar_finder.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── nav1@2x.png
│ │ │ │ │ └── nav1.png
│ │ │ │ ├── tabBar_finder_selected.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── nav_active1@2x.png
│ │ │ │ │ └── nav_active1.png
│ │ │ │ ├── tab_nav.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── tab_nav@2x.png
│ │ │ │ │ └── tab_nav.png
│ │ │ │ └── tab_nav_selected.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── tab_nav_select@2x.png
│ │ │ │ └── tab_nav_select.png
│ │ │ ├── tt_group_manager_add_user.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── tt_group_manager_add_user@2x.png
│ │ │ │ ├── tt_group_manager_add_user@3x.png
│ │ │ │ └── tt_group_manager_add_user.png
│ │ │ ├── tt_group_manager_delete_user.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── tt_group_manager_delete_user@2x.png
│ │ │ │ ├── tt_group_manager_delete_user@3x.png
│ │ │ │ └── tt_group_manager_delete_user.png
│ │ │ └── user_placeholder.imageset
│ │ │ ├── avatar_50.png
│ │ │ ├── avatar.png
│ │ │ └── Contents.json
│ │ ├── Info.plist
│ │ ├── main.m
│ │ ├── Module
│ │ │ ├── Bubble
│ │ │ │ ├── MTTBubbleModule.h
│ │ │ │ └── MTTBubbleModule.m
│ │ │ ├── Chatting
│ │ │ │ ├── ChattingEditModule.h
│ │ │ │ ├── ChattingEditModule.m
│ │ │ │ ├── ChattingModule.h
│ │ │ │ └── ChattingModule.m
│ │ │ ├── Contacts
│ │ │ │ ├── ContactsModule.h
│ │ │ │ └── ContactsModule.m
│ │ │ ├── Emotions
│ │ │ │ ├── EmotionsModule.h
│ │ │ │ └── EmotionsModule.m
│ │ │ ├── Group
│ │ │ │ ├── DDGroupModule.h
│ │ │ │ └── DDGroupModule.m
│ │ │ ├── Login
│ │ │ │ ├── DDHttpServer.h
│ │ │ │ ├── DDHttpServer.m
│ │ │ │ ├── DDMsgServer.h
│ │ │ │ ├── DDMsgServer.m
│ │ │ │ ├── DDTcpServer.h
│ │ │ │ ├── DDTcpServer.m
│ │ │ │ ├── LoginModule.h
│ │ │ │ └── LoginModule.m
│ │ │ ├── Messages
│ │ │ │ ├── DDMessageModule.h
│ │ │ │ ├── DDMessageModule.m
│ │ │ │ ├── DDMessageSendManager.h
│ │ │ │ ├── DDMessageSendManager.mm
│ │ │ │ ├── UnAckMessageManager.h
│ │ │ │ └── UnAckMessageManager.m
│ │ │ ├── PhotosCache
│ │ │ │ ├── MTTPhotosCache.h
│ │ │ │ └── MTTPhotosCache.m
│ │ │ ├── Search
│ │ │ │ ├── DDSearch.h
│ │ │ │ ├── DDSearch.m
│ │ │ │ ├── SpellLibrary.h
│ │ │ │ └── SpellLibrary.m
│ │ │ ├── Session
│ │ │ │ ├── SessionModule.h
│ │ │ │ └── SessionModule.m
│ │ │ ├── TCPAPI
│ │ │ │ ├── BigBrotherIsWatchingYouAPI.h
│ │ │ │ ├── BigBrotherIsWatchingYouAPI.m
│ │ │ │ ├── ClientManager
│ │ │ │ │ ├── DDTcpClientManager.h
│ │ │ │ │ └── DDTcpClientManager.m
│ │ │ │ ├── DDAddMemberToGroupAPI.h
│ │ │ │ ├── DDAddMemberToGroupAPI.m
│ │ │ │ ├── DDAllUserAPI.h
│ │ │ │ ├── DDAllUserAPI.m
│ │ │ │ ├── DDAPISchedule.h
│ │ │ │ ├── DDAPISchedule.m
│ │ │ │ ├── DDAPIScheduleProtocol.h
│ │ │ │ ├── DDAPIUnrequestScheduleProtocol.h
│ │ │ │ ├── DDCreateGroupAPI.h
│ │ │ │ ├── DDCreateGroupAPI.m
│ │ │ │ ├── DDDeleteMemberFromGroupAPI.h
│ │ │ │ ├── DDDeleteMemberFromGroupAPI.m
│ │ │ │ ├── DDDepartmentAPI.h
│ │ │ │ ├── DDDepartmentAPI.m
│ │ │ │ ├── DDFixedGroupAPI.h
│ │ │ │ ├── DDFixedGroupAPI.m
│ │ │ │ ├── DDGroupMsgReceivedACKAPI.h
│ │ │ │ ├── DDGroupMsgReceivedACKAPI.m
│ │ │ │ ├── DDReceiveGroupAddMemberAPI.h
│ │ │ │ ├── DDReceiveGroupAddMemberAPI.m
│ │ │ │ ├── DDSendBuffer.h
│ │ │ │ ├── DDSendBuffer.m
│ │ │ │ ├── DDSuperAPI.h
│ │ │ │ ├── DDSuperAPI.m
│ │ │ │ ├── DDTcpProtocolHeader.h
│ │ │ │ ├── DDTcpProtocolHeader.m
│ │ │ │ ├── DDUnrequestSuperAPI.h
│ │ │ │ ├── DDUnrequestSuperAPI.m
│ │ │ │ ├── DDUserDetailInfoAPI.h
│ │ │ │ ├── DDUserDetailInfoAPI.m
│ │ │ │ ├── GetLatestMsgId.h
│ │ │ │ ├── GetLatestMsgId.m
│ │ │ │ ├── GetMsgByMsgIDsAPI.h
│ │ │ │ ├── GetMsgByMsgIDsAPI.m
│ │ │ │ ├── GetRecentSession.h
│ │ │ │ ├── GetRecentSession.mm
│ │ │ │ ├── LogoutAPI.h
│ │ │ │ ├── LogoutAPI.m
│ │ │ │ ├── MsgReadACKAPI.h
│ │ │ │ ├── MsgReadACKAPI.m
│ │ │ │ ├── MTTChangeNightModeAPI.h
│ │ │ │ ├── MTTChangeNightModeAPI.m
│ │ │ │ ├── MTTKickPCClientAPI.h
│ │ │ │ ├── MTTKickPCClientAPI.m
│ │ │ │ ├── MTTNightModeAPI.h
│ │ │ │ ├── MTTNightModeAPI.m
│ │ │ │ ├── MTTShakeAPI.h
│ │ │ │ ├── MTTShakeAPI.m
│ │ │ │ ├── MTTSignatureAPI.h
│ │ │ │ ├── MTTSignatureAPI.m
│ │ │ │ ├── MTTUsersStatAPI.h
│ │ │ │ ├── MTTUsersStatAPI.m
│ │ │ │ ├── RemoveSessionAPI.h
│ │ │ │ ├── RemoveSessionAPI.m
│ │ │ │ ├── RequestAPI
│ │ │ │ │ ├── Login
│ │ │ │ │ │ ├── HeartbeatAPI.h
│ │ │ │ │ │ ├── HeartbeatAPI.m
│ │ │ │ │ │ ├── LoginAPI.h
│ │ │ │ │ │ └── LoginAPI.mm
│ │ │ │ │ ├── Msg
│ │ │ │ │ │ ├── DDSendPhotoMessageAPI.h
│ │ │ │ │ │ ├── DDSendPhotoMessageAPI.m
│ │ │ │ │ │ ├── GetMessageQueueAPI.h
│ │ │ │ │ │ ├── GetMessageQueueAPI.m
│ │ │ │ │ │ ├── GetUnreadMessagesAPI.h
│ │ │ │ │ │ ├── GetUnreadMessagesAPI.m
│ │ │ │ │ │ ├── SendMessageAPI.h
│ │ │ │ │ │ └── SendMessageAPI.m
│ │ │ │ │ └── Users
│ │ │ │ │ ├── GetGroupInfoAPi.h
│ │ │ │ │ └── GetGroupInfoAPi.m
│ │ │ │ ├── SendPushTokenAPI.h
│ │ │ │ ├── SendPushTokenAPI.m
│ │ │ │ ├── ShieldGroupMessageAPI.h
│ │ │ │ ├── ShieldGroupMessageAPI.m
│ │ │ │ ├── Stream
│ │ │ │ │ ├── DataOutputStream+Addition.h
│ │ │ │ │ ├── DataOutputStream+Addition.m
│ │ │ │ │ ├── DDDataInputStream.h
│ │ │ │ │ ├── DDDataInputStream.m
│ │ │ │ │ ├── DDDataOutputStream.h
│ │ │ │ │ ├── DDDataOutputStream.m
│ │ │ │ │ ├── NSStream+NSStreamAddition.h
│ │ │ │ │ └── NSStream+NSStreamAddition.m
│ │ │ │ └── UnrequestAPI
│ │ │ │ ├── Kickoff
│ │ │ │ │ ├── ReceiveKickoffAPI.h
│ │ │ │ │ └── ReceiveKickoffAPI.m
│ │ │ │ ├── Msg
│ │ │ │ │ ├── DDReceiveMessageACKAPI.h
│ │ │ │ │ ├── DDReceiveMessageACKAPI.m
│ │ │ │ │ ├── DDReceiveMessageAPI.h
│ │ │ │ │ ├── DDReceiveMessageAPI.m
│ │ │ │ │ ├── MsgReadNotify.h
│ │ │ │ │ └── MsgReadNotify.m
│ │ │ │ ├── PcLogin
│ │ │ │ │ ├── MTTPCLoginStatusNotifyAPI.h
│ │ │ │ │ └── MTTPCLoginStatusNotifyAPI.m
│ │ │ │ └── Signature
│ │ │ │ ├── MTTSignNotifyAPI.h
│ │ │ │ └── MTTSignNotifyAPI.m
│ │ │ └── Users
│ │ │ ├── DDUserModule.h
│ │ │ └── DDUserModule.m
│ │ ├── Resource
│ │ │ ├── Bundle
│ │ │ │ ├── bubble.bundle
│ │ │ │ │ ├── default_blue
│ │ │ │ │ │ ├── config.json
│ │ │ │ │ │ ├── picBubble@2x.png
│ │ │ │ │ │ ├── picLeftBubble@2x.png
│ │ │ │ │ │ ├── textBubble@2x.png
│ │ │ │ │ │ ├── textLeftBubble@2x.png
│ │ │ │ │ │ └── thumb@2x.png
│ │ │ │ │ └── default_white
│ │ │ │ │ ├── config.json
│ │ │ │ │ ├── picBubble@2x.png
│ │ │ │ │ ├── picLeftBubble@2x.png
│ │ │ │ │ ├── textBubble@2x.png
│ │ │ │ │ ├── textLeftBubble@2x.png
│ │ │ │ │ └── thumb@2x.png
│ │ │ │ └── emotions.bundle
│ │ │ │ ├── 221@2x.gif
│ │ │ │ ├── 221.gif
│ │ │ │ ├── 222@2x.gif
│ │ │ │ ├── 222.gif
│ │ │ │ ├── 223@2x.gif
│ │ │ │ ├── 223.gif
│ │ │ │ ├── 224@2x.gif
│ │ │ │ ├── 224.gif
│ │ │ │ ├── 225@2x.gif
│ │ │ │ ├── 225.gif
│ │ │ │ ├── 226@2x.gif
│ │ │ │ ├── 226.gif
│ │ │ │ ├── 227@2x.gif
│ │ │ │ ├── 227.gif
│ │ │ │ ├── 228@2x.gif
│ │ │ │ ├── 228.gif
│ │ │ │ ├── 229@2x.gif
│ │ │ │ ├── 229.gif
│ │ │ │ ├── 230@2x.gif
│ │ │ │ ├── 230.gif
│ │ │ │ ├── 231@2x.gif
│ │ │ │ ├── 231.gif
│ │ │ │ ├── 232@2x.gif
│ │ │ │ ├── 232.gif
│ │ │ │ ├── 233@2x.gif
│ │ │ │ ├── 233.gif
│ │ │ │ ├── 234@2x.gif
│ │ │ │ ├── 234.gif
│ │ │ │ ├── 235@2x.gif
│ │ │ │ ├── 235.gif
│ │ │ │ ├── 236@2x.gif
│ │ │ │ ├── 236.gif
│ │ │ │ ├── 237@2x.gif
│ │ │ │ ├── 237.gif
│ │ │ │ ├── 238@2x.gif
│ │ │ │ ├── 238.gif
│ │ │ │ ├── 239@2x.gif
│ │ │ │ ├── 239.gif
│ │ │ │ ├── 240@2x.gif
│ │ │ │ └── 240.gif
│ │ │ ├── Image
│ │ │ │ ├── add@2x.png
│ │ │ │ ├── add.png
│ │ │ │ ├── chat@2x.png
│ │ │ │ ├── chatBg@2x.png
│ │ │ │ ├── chatBg.png
│ │ │ │ ├── chat_bubble_incomming@2x.png
│ │ │ │ ├── chat_bubble_incomming@3x.png
│ │ │ │ ├── chat_bubble_outgoing@2x.png
│ │ │ │ ├── chat_bubble_outgoing@3x.png
│ │ │ │ ├── chat_bubble_pre_image@2x.png
│ │ │ │ ├── chat_img_bubble_outgoing@2x.png
│ │ │ │ ├── chat_img_bubble_outgoing@3x.png
│ │ │ │ ├── chat_pick_photo@2x.png
│ │ │ │ ├── chat.png
│ │ │ │ ├── chat_shake_pc@2x.png
│ │ │ │ ├── chat_take_photo@2x.png
│ │ │ │ ├── connect_alert_mac@2x.png
│ │ │ │ ├── contact@2x.png
│ │ │ │ ├── contact.png
│ │ │ │ ├── contact_selected@2x.png
│ │ │ │ ├── contact_selected.png
│ │ │ │ ├── conversation@2x.png
│ │ │ │ ├── conversation.png
│ │ │ │ ├── conversation_selected@2x.png
│ │ │ │ ├── conversation_selected.png
│ │ │ │ ├── dd_album@2x.png
│ │ │ │ ├── dd_album.png
│ │ │ │ ├── dd_cancel_send_record@2x.png
│ │ │ │ ├── dd_cancel_send_record.png
│ │ │ │ ├── dd_emoji_delete@2x.png
│ │ │ │ ├── dd_emoji_delete.png
│ │ │ │ ├── dd_emotion@2x.png
│ │ │ │ ├── dd_emotion.png
│ │ │ │ ├── dd_has_unread_message@2x.png
│ │ │ │ ├── dd_has_unread_message.png
│ │ │ │ ├── dd_image_send@2x.png
│ │ │ │ ├── dd_image_send.png
│ │ │ │ ├── dd_input_normal@2x.png
│ │ │ │ ├── dd_input_normal.png
│ │ │ │ ├── dd_left_voice_one@2x.png
│ │ │ │ ├── dd_left_voice_one.png
│ │ │ │ ├── dd_left_voice_three@2x.png
│ │ │ │ ├── dd_left_voice_three.png
│ │ │ │ ├── dd_left_voice_two@2x.png
│ │ │ │ ├── dd_left_voice_two.png
│ │ │ │ ├── dd_photo_back@2x.png
│ │ │ │ ├── dd_photo_back.png
│ │ │ │ ├── dd_press_to_say_normal@2x.png
│ │ │ │ ├── dd_press_to_say_normal.png
│ │ │ │ ├── dd_preview_select@2x.png
│ │ │ │ ├── dd_preview_select.png
│ │ │ │ ├── dd_recent_contacts@2x.png
│ │ │ │ ├── dd_recent_contacts.png
│ │ │ │ ├── dd_recording@2x.png
│ │ │ │ ├── dd_recording.png
│ │ │ │ ├── dd_record_normal@2x.png
│ │ │ │ ├── dd_record_normal.png
│ │ │ │ ├── dd_record_release_end@2x.png
│ │ │ │ ├── dd_record_release_end.png
│ │ │ │ ├── dd_record_too_short@2x.png
│ │ │ │ ├── dd_record_too_short.png
│ │ │ │ ├── dd_right_voice_one@2x.png
│ │ │ │ ├── dd_right_voice_one.png
│ │ │ │ ├── dd_right_voice_three@2x.png
│ │ │ │ ├── dd_right_voice_three.png
│ │ │ │ ├── dd_right_voice_two@2x.png
│ │ │ │ ├── dd_right_voice_two.png
│ │ │ │ ├── dd_selected_photo@2x.png
│ │ │ │ ├── dd_selected_photo.png
│ │ │ │ ├── dd_send_failed@2x.png
│ │ │ │ ├── dd_send_failed.png
│ │ │ │ ├── dd_shake@2x.png
│ │ │ │ ├── dd_take-photo@2x.png
│ │ │ │ ├── dd_take-photo.png
│ │ │ │ ├── dd_utility@2x.png
│ │ │ │ ├── dd_utility.png
│ │ │ │ ├── dd_volumn@2x.png
│ │ │ │ ├── dd_volumn.png
│ │ │ │ ├── Default@2x.png
│ │ │ │ ├── Default-568h@2x.png
│ │ │ │ ├── Default.png
│ │ │ │ ├── delete@2x.png
│ │ │ │ ├── delete.png
│ │ │ │ ├── delImage@2x.png
│ │ │ │ ├── delImage.png
│ │ │ │ ├── edit@2x.png
│ │ │ │ ├── edit.png
│ │ │ │ ├── email@2x.png
│ │ │ │ ├── email.png
│ │ │ │ ├── group_default@2x.png
│ │ │ │ ├── group_default.png
│ │ │ │ ├── jiantou@2x.png
│ │ │ │ ├── jiantou.png
│ │ │ │ ├── left@2x.png
│ │ │ │ ├── left.png
│ │ │ │ ├── line@2x.png
│ │ │ │ ├── loginlogo.jpg
│ │ │ │ ├── loginlogo.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── mac_logined@2x.png
│ │ │ │ ├── myprofile@2x.png
│ │ │ │ ├── myprofile.png
│ │ │ │ ├── myprofile_selected@2x.png
│ │ │ │ ├── myprofile_selected.png
│ │ │ │ ├── password@2x.png
│ │ │ │ ├── password.png
│ │ │ │ ├── phone@2x.png
│ │ │ │ ├── phone.png
│ │ │ │ ├── pick_bg@2x.png
│ │ │ │ ├── QRCodeScanLine@2x.png
│ │ │ │ ├── right@2x.png
│ │ │ │ ├── right.png
│ │ │ │ ├── ScanQR1@2x.png
│ │ │ │ ├── ScanQR2@2x.png
│ │ │ │ ├── ScanQR3@2x.png
│ │ │ │ ├── ScanQR4@2x.png
│ │ │ │ ├── search_back@2x.png
│ │ │ │ ├── search_bar@2x.png
│ │ │ │ ├── search_bar.png
│ │ │ │ ├── search_chat@2x.png
│ │ │ │ ├── search_department@2x.png
│ │ │ │ ├── search_group@2x.png
│ │ │ │ ├── search_icon@2x.png
│ │ │ │ ├── search_user@2x.png
│ │ │ │ ├── select@2x.png
│ │ │ │ ├── select.png
│ │ │ │ ├── setting@2x.png
│ │ │ │ ├── setting.png
│ │ │ │ ├── shielded@2x.png
│ │ │ │ ├── shielded.png
│ │ │ │ ├── star@2x.png
│ │ │ │ ├── star.png
│ │ │ │ ├── TeamTalk.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── tel@2x.png
│ │ │ │ ├── tel.png
│ │ │ │ ├── unselected@2x.png
│ │ │ │ ├── unselected.png
│ │ │ │ ├── username@2x.png
│ │ │ │ ├── username.png
│ │ │ │ ├── x@2x.png
│ │ │ │ └── x.png
│ │ │ └── Voice
│ │ │ └── msg.caf
│ │ ├── TeamTalk-Prefix.pch
│ │ ├── Util
│ │ │ ├── Http
│ │ │ │ ├── MTTAFNetworkingClient.h
│ │ │ │ └── MTTAFNetworkingClient.m
│ │ │ ├── MTTDatabaseUtil.h
│ │ │ ├── MTTDatabaseUtil.m
│ │ │ ├── MTTUtil.h
│ │ │ ├── MTTUtil.m
│ │ │ ├── Notification
│ │ │ │ ├── MTTNotification.h
│ │ │ │ └── MTTNotification.m
│ │ │ ├── SundriesCenter
│ │ │ │ ├── MTTSundriesCenter.h
│ │ │ │ └── MTTSundriesCenter.m
│ │ │ └── URLProtocal
│ │ │ ├── MTTURLProtocal.h
│ │ │ └── MTTURLProtocal.m
│ │ └── ViewController
│ │ ├── Album
│ │ │ ├── AlbumViewController.h
│ │ │ ├── AlbumViewController.m
│ │ │ ├── Cells
│ │ │ │ ├── ImageGridViewCell.h
│ │ │ │ └── ImageGridViewCell.m
│ │ │ ├── Control
│ │ │ │ ├── AlbumDetailsBottomBar.h
│ │ │ │ └── AlbumDetailsBottomBar.m
│ │ │ ├── DDAlbumDetailsViewControll.h
│ │ │ └── DDAlbumDetailsViewControll.m
│ │ ├── Base
│ │ │ ├── MTTBaseScrollViewController.h
│ │ │ ├── MTTBaseScrollViewController.m
│ │ │ ├── MTTBaseViewController.h
│ │ │ ├── MTTBaseViewController.m
│ │ │ ├── MTTPullScrollViewController.h
│ │ │ └── MTTPullScrollViewController.m
│ │ ├── Chatting
│ │ │ ├── Chatting
│ │ │ │ ├── Cells
│ │ │ │ │ ├── DDChatBaseCell.h
│ │ │ │ │ ├── DDChatBaseCell.m
│ │ │ │ │ ├── DDChatCellProtocol.h
│ │ │ │ │ ├── DDChatImageCell.h
│ │ │ │ │ ├── DDChatImageCell.m
│ │ │ │ │ ├── DDChatTextCell.h
│ │ │ │ │ ├── DDChatTextCell.m
│ │ │ │ │ ├── DDChatVoiceCell.h
│ │ │ │ │ ├── DDChatVoiceCell.m
│ │ │ │ │ ├── DDEmotionCell.h
│ │ │ │ │ ├── DDEmotionCell.m
│ │ │ │ │ ├── DDPromptCell.h
│ │ │ │ │ └── DDPromptCell.m
│ │ │ │ ├── ChattingMainViewController.h
│ │ │ │ ├── ChattingMainViewController.m
│ │ │ │ ├── ChattingMainViewController.xib
│ │ │ │ ├── ChatUtilityViewController.h
│ │ │ │ ├── ChatUtilityViewController.m
│ │ │ │ ├── Control
│ │ │ │ │ ├── MenuImageView.h
│ │ │ │ │ ├── MenuImageView.m
│ │ │ │ │ ├── RecordingView.h
│ │ │ │ │ └── RecordingView.m
│ │ │ │ ├── DDChatImagePreviewViewController.h
│ │ │ │ ├── DDChatImagePreviewViewController.m
│ │ │ │ ├── EmotionsViewController.h
│ │ │ │ └── EmotionsViewController.m
│ │ │ ├── ChattingEdit
│ │ │ │ ├── Cell
│ │ │ │ │ ├── DDPersonEditCollectionCell.h
│ │ │ │ │ ├── DDPersonEditCollectionCell.m
│ │ │ │ │ ├── MTTGroupInfoCell.h
│ │ │ │ │ └── MTTGroupInfoCell.m
│ │ │ │ ├── DDChattingEditViewController.h
│ │ │ │ └── DDChattingEditViewController.m
│ │ │ └── Group
│ │ │ ├── Cells
│ │ │ │ ├── EditContactsCell.h
│ │ │ │ ├── EditContactsCell.m
│ │ │ │ ├── EditGroupViewCell.h
│ │ │ │ └── EditGroupViewCell.m
│ │ │ ├── EditGroupViewController.h
│ │ │ ├── EditGroupViewController.m
│ │ │ └── EditGroupViewController.xib
│ │ ├── Contacts
│ │ │ ├── Cells
│ │ │ │ ├── DDContactsCell.h
│ │ │ │ ├── DDContactsCell.m
│ │ │ │ ├── MTTBaseCell.h
│ │ │ │ ├── MTTBaseCell.m
│ │ │ │ ├── MTTSearchResultCell.h
│ │ │ │ ├── MTTSearchResultCell.m
│ │ │ │ ├── MTTSearchShowMoreCell.h
│ │ │ │ ├── MTTSearchShowMoreCell.m
│ │ │ │ ├── MTTUserInfoCell.h
│ │ │ │ ├── MTTUserInfoCell.m
│ │ │ │ ├── PublicProfileCell.h
│ │ │ │ └── PublicProfileCell.m
│ │ │ ├── ContactsViewController.h
│ │ │ ├── ContactsViewController.m
│ │ │ ├── Control
│ │ │ │ ├── ContactAvatarTools.h
│ │ │ │ └── ContactAvatarTools.m
│ │ │ ├── MTTEditSignViewController.h
│ │ │ ├── MTTEditSignViewController.m
│ │ │ ├── PublicProfileViewControll.h
│ │ │ ├── PublicProfileViewControll.m
│ │ │ ├── SearchContentViewController.h
│ │ │ └── SearchContentViewController.m
│ │ ├── Find
│ │ │ ├── FinderViewController.h
│ │ │ └── FinderViewController.m
│ │ ├── Login
│ │ │ ├── MTTLoginViewController.h
│ │ │ ├── MTTLoginViewController.m
│ │ │ └── MTTLoginViewController.xib
│ │ ├── My
│ │ │ ├── MTTBubbleCollectionViewCell.h
│ │ │ ├── MTTBubbleCollectionViewCell.m
│ │ │ ├── MTTBubbleShowViewControll.h
│ │ │ ├── MTTBubbleShowViewControll.m
│ │ │ ├── MTTMyViewController.h
│ │ │ ├── MTTMyViewController.m
│ │ │ └── MTTMyViewController.xib
│ │ ├── RecentContacts
│ │ │ ├── Cells
│ │ │ │ ├── MTTPCStatusCell.h
│ │ │ │ ├── MTTPCStatusCell.m
│ │ │ │ ├── RecentUserCell.h
│ │ │ │ └── RecentUserCell.m
│ │ │ ├── MTTPCLoginViewController.h
│ │ │ ├── MTTPCLoginViewController.m
│ │ │ ├── RecentUsersViewController.h
│ │ │ ├── RecentUsersViewController.m
│ │ │ └── RecentUsersViewController.xib
│ │ ├── Root
│ │ │ ├── MTTRootViewController.h
│ │ │ └── MTTRootViewController.m
│ │ ├── ScanQR
│ │ │ ├── ScanQRCodePage.h
│ │ │ ├── ScanQRCodePage.m
│ │ │ └── ScanQRCodePage.xib
│ │ ├── Search
│ │ │ ├── MTTDetailSearchViewControll.h
│ │ │ ├── MTTDetailSearchViewControll.m
│ │ │ ├── MTTSearchDetailViewControll.h
│ │ │ └── MTTSearchDetailViewControll.m
│ │ └── Web
│ │ ├── MTTWebViewController.h
│ │ └── MTTWebViewController.m
│ ├── TeamTalkTests
│ │ ├── Info.plist
│ │ └── TeamTalkTests.m
│ ├── TeamTalk.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata
│ │ │ │ └── TeamTalk.xccheckout
│ │ │ └── xcuserdata
│ │ │ └── scorpio.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ ├── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── TeamTalk.xcscheme
│ │ └── xcuserdata
│ │ └── scorpio.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
│ └── TeamTalk.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── TeamTalk.xccheckout
│ └── xcuserdata
│ └── scorpio.xcuserdatad
│ ├── UserInterfaceState.xcuserstate
│ ├── WorkspaceSettings.xcsettings
│ └── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
├── LICENSE
├── mac
│ ├── CrashReporter.framework
│ │ ├── CrashReporter
│ │ ├── Headers
│ │ ├── Resources
│ │ └── Versions
│ │ ├── A
│ │ │ ├── CrashReporter
│ │ │ ├── Headers
│ │ │ │ ├── CrashReporter.h
│ │ │ │ ├── PLCrashFeatureConfig.h
│ │ │ │ ├── PLCrashNamespace.h
│ │ │ │ ├── PLCrashReportApplicationInfo.h
│ │ │ │ ├── PLCrashReportBinaryImageInfo.h
│ │ │ │ ├── PLCrashReporterConfig.h
│ │ │ │ ├── PLCrashReporter.h
│ │ │ │ ├── PLCrashReportExceptionInfo.h
│ │ │ │ ├── PLCrashReportFormatter.h
│ │ │ │ ├── PLCrashReport.h
│ │ │ │ ├── PLCrashReportMachExceptionInfo.h
│ │ │ │ ├── PLCrashReportMachineInfo.h
│ │ │ │ ├── PLCrashReportProcessInfo.h
│ │ │ │ ├── PLCrashReportProcessorInfo.h
│ │ │ │ ├── PLCrashReportRegisterInfo.h
│ │ │ │ ├── PLCrashReportSignalInfo.h
│ │ │ │ ├── PLCrashReportStackFrameInfo.h
│ │ │ │ ├── PLCrashReportSymbolInfo.h
│ │ │ │ ├── PLCrashReportSystemInfo.h
│ │ │ │ ├── PLCrashReportTextFormatter.h
│ │ │ │ └── PLCrashReportThreadInfo.h
│ │ │ └── Resources
│ │ │ └── Info.plist
│ │ └── Current
│ ├── html
│ │ ├── css
│ │ │ ├── hook.css
│ │ │ ├── main.css
│ │ │ └── pure-min.css
│ │ ├── js
│ │ │ ├── hook.min.js
│ │ │ ├── jquery-2.1.1.min.js
│ │ │ ├── mousewheel.js
│ │ │ ├── msg.js
│ │ │ └── template.js
│ │ └── message.html
│ ├── libsecurity.a
│ ├── Podfile
│ ├── README
│ ├── Sparkle.framework
│ │ ├── Headers
│ │ ├── Resources
│ │ ├── Sparkle
│ │ └── Versions
│ │ ├── A
│ │ │ ├── Headers
│ │ │ │ ├── Sparkle.h
│ │ │ │ ├── SUAppcast.h
│ │ │ │ ├── SUAppcastItem.h
│ │ │ │ ├── SUUpdater.h
│ │ │ │ └── SUVersionComparisonProtocol.h
│ │ │ ├── Resources
│ │ │ │ ├── de.lproj
│ │ │ │ │ ├── Sparkle.strings
│ │ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── en.lproj
│ │ │ │ │ ├── Sparkle.strings
│ │ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── es.lproj
│ │ │ │ │ ├── Sparkle.strings
│ │ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── fr_CA.lproj
│ │ │ │ ├── fr.lproj
│ │ │ │ │ ├── fr.lproj
│ │ │ │ │ ├── Sparkle.strings
│ │ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── Info.plist
│ │ │ │ ├── it.lproj
│ │ │ │ │ ├── Sparkle.strings
│ │ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── License.txt
│ │ │ │ ├── nl.lproj
│ │ │ │ │ ├── Sparkle.strings
│ │ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── relaunch
│ │ │ │ ├── ru.lproj
│ │ │ │ │ ├── Sparkle.strings
│ │ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ │ ├── classes.nib
│ │ │ │ │ │ ├── info.nib
│ │ │ │ │ │ └── keyedobjects.nib
│ │ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── SUModelTranslation.plist
│ │ │ │ ├── SUStatus.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ └── sv.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ │ ├── classes.nib
│ │ │ │ │ ├── info.nib
│ │ │ │ │ └── keyedobjects.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ │ ├── classes.nib
│ │ │ │ ├── info.nib
│ │ │ │ └── keyedobjects.nib
│ │ │ └── Sparkle
│ │ └── Current
│ ├── StyleSettings.plist
│ ├── TeamTalk
│ │ ├── 221.gif
│ │ ├── 222.gif
│ │ ├── 223.gif
│ │ ├── 224.gif
│ │ ├── 225.gif
│ │ ├── 226.gif
│ │ ├── 227.gif
│ │ ├── 228.gif
│ │ ├── 229.gif
│ │ ├── 230.gif
│ │ ├── 231.gif
│ │ ├── 232.gif
│ │ ├── 233.gif
│ │ ├── 234.gif
│ │ ├── 235.gif
│ │ ├── 236.gif
│ │ ├── 237.gif
│ │ ├── 238.gif
│ │ ├── 239.gif
│ │ ├── 240.gif
│ │ ├── API
│ │ │ ├── APIGroup
│ │ │ │ ├── DDAllUserAPI.h
│ │ │ │ ├── DDAllUserAPI.m
│ │ │ │ ├── DDCreateGroupAPI.h
│ │ │ │ ├── DDCreateGroupAPI.m
│ │ │ │ ├── DDDepartmentInfoAPI.h
│ │ │ │ ├── DDDepartmentInfoAPI.m
│ │ │ │ ├── DDFileLoginAPI.h
│ │ │ │ ├── DDFileLoginAPI.m
│ │ │ │ ├── DDFileSendAPI.h
│ │ │ │ ├── DDFileSendAPI.m
│ │ │ │ ├── DDFileSendResponseAPI.h
│ │ │ │ ├── DDFileSendResponseAPI.m
│ │ │ │ ├── DDFixedGroupAPI.h
│ │ │ │ ├── DDFixedGroupAPI.m
│ │ │ │ ├── DDGetLastMessageIDAPI.h
│ │ │ │ ├── DDGetLastMessageIDAPI.m
│ │ │ │ ├── DDGetOfflineFileAPI.h
│ │ │ │ ├── DDGetOfflineFileAPI.m
│ │ │ │ ├── DDGroupInfoAPI.h
│ │ │ │ ├── DDGroupInfoAPI.m
│ │ │ │ ├── DDGroupMsgReadACKAPI.h
│ │ │ │ ├── DDGroupMsgReadACKAPI.m
│ │ │ │ ├── DDGroupMsgReceivedACKAPI.h
│ │ │ │ ├── DDGroupMsgReceivedACKAPI.m
│ │ │ │ ├── DDHeartBeatAPI.h
│ │ │ │ ├── DDHeartBeatAPI.m
│ │ │ │ ├── DDHistoryMessageApi.h
│ │ │ │ ├── DDHistoryMessageApi.m
│ │ │ │ ├── DDLoginAPI.h
│ │ │ │ ├── DDLoginAPI.mm
│ │ │ │ ├── DDModifyUserAvatarAPI.h
│ │ │ │ ├── DDModifyUserAvatarAPI.m
│ │ │ │ ├── DDMsgReadACKAPI.h
│ │ │ │ ├── DDMsgReadACKAPI.m
│ │ │ │ ├── DDOfflineFileUploadFinishedAPI.h
│ │ │ │ ├── DDOfflineFileUploadFinishedAPI.m
│ │ │ │ ├── DDReadyReceiveFileAPI.h
│ │ │ │ ├── DDReadyReceiveFileAPI.m
│ │ │ │ ├── DDRemoveSessionAPI.h
│ │ │ │ ├── DDRemoveSessionAPI.m
│ │ │ │ ├── DDSendMessageAPI.h
│ │ │ │ ├── DDSendMessageAPI.mm
│ │ │ │ ├── DDSendOffLineFileAPI.h
│ │ │ │ ├── DDSendOffLineFileAPI.m
│ │ │ │ ├── DDSendP2PCmdAPI.h
│ │ │ │ ├── DDSendP2PCmdAPI.m
│ │ │ │ ├── DDUnreadMessageAPI.h
│ │ │ │ ├── DDUnreadMessageAPI.m
│ │ │ │ ├── DDUserDetailInfoAPI.h
│ │ │ │ ├── DDUserDetailInfoAPI.m
│ │ │ │ ├── DDUserMsgReceivedACKAPI.h
│ │ │ │ ├── DDUserMsgReceivedACKAPI.m
│ │ │ │ ├── DDUserOnlineStateAPI.h
│ │ │ │ ├── DDUserOnlineStateAPI.m
│ │ │ │ ├── MTGroupChangeMemberAPI.h
│ │ │ │ └── MTGroupChangeMemberAPI.m
│ │ │ ├── DataOutputStream+Addition.h
│ │ │ ├── DataOutputStream+Addition.m
│ │ │ ├── DDAPISchedule.h
│ │ │ ├── DDAPISchedule.m
│ │ │ ├── DDAPIScheduleProtocol.h
│ │ │ ├── DDAPIUnrequestScheduleProtocol.h
│ │ │ ├── DDRecentConactsAPI.h
│ │ │ ├── DDRecentConactsAPI.m
│ │ │ ├── DDSeqNoManager.h
│ │ │ ├── DDSeqNoManager.m
│ │ │ ├── DDSuperAPI.h
│ │ │ ├── DDSuperAPI.m
│ │ │ ├── DDUnrequestSuperAPI.h
│ │ │ ├── DDUnrequestSuperAPI.m
│ │ │ └── UnrequestAPI
│ │ │ ├── DDAbortFileSendAPI.h
│ │ │ ├── DDAbortFileSendAPI.m
│ │ │ ├── DDAddOfflineFileAPI.h
│ │ │ ├── DDAddOfflineFileAPI.m
│ │ │ ├── DDDeleteOfflineFileAPI.h
│ │ │ ├── DDDeleteOfflineFileAPI.m
│ │ │ ├── DDOnlineUserListAPI.h
│ │ │ ├── DDOnlineUserListAPI.m
│ │ │ ├── DDOtherFileResponseAPI.h
│ │ │ ├── DDOtherFileResponseAPI.m
│ │ │ ├── DDOtherLinkFileServerAPI.h
│ │ │ ├── DDOtherLinkFileServerAPI.m
│ │ │ ├── DDOtherSendOfflineFileAPI.h
│ │ │ ├── DDOtherSendOfflineFileAPI.m
│ │ │ ├── DDReceiveAbortFileSendAPI.h
│ │ │ ├── DDReceiveAbortFileSendAPI.m
│ │ │ ├── DDReceiveGroupMemberChangedAPI.h
│ │ │ ├── DDReceiveGroupMemberChangedAPI.m
│ │ │ ├── DDReceiveKickAPI.h
│ │ │ ├── DDReceiveKickAPI.m
│ │ │ ├── DDReceiveMessageAPI.h
│ │ │ ├── DDReceiveMessageAPI.m
│ │ │ ├── DDReceiveOtherOfflineFileUploadFinishedAPI.h
│ │ │ ├── DDReceiveOtherOfflineFileUploadFinishedAPI.m
│ │ │ ├── DDReceiveOtherReadyAcceptFileAPI.h
│ │ │ ├── DDReceiveOtherReadyAcceptFileAPI.m
│ │ │ ├── DDReceiveOtherResponseAPI.h
│ │ │ ├── DDReceiveOtherResponseAPI.m
│ │ │ ├── DDReceiveOtherSendFileAPI.h
│ │ │ ├── DDReceiveOtherSendFileAPI.m
│ │ │ ├── DDReceiveP2PMessageAPI.h
│ │ │ ├── DDReceiveP2PMessageAPI.m
│ │ │ ├── DDReceiveStateChangedAPI.h
│ │ │ ├── DDReceiveStateChangedAPI.m
│ │ │ └── Message
│ │ │ ├── DDReceiveMsgDataReadNotifyAPI.h
│ │ │ └── DDReceiveMsgDataReadNotifyAPI.m
│ │ ├── Base.lproj
│ │ │ └── MainMenu.xib
│ │ ├── Category
│ │ │ ├── NSDictionary+Safe.h
│ │ │ ├── NSDictionary+Safe.m
│ │ │ ├── NSImage+Addition.h
│ │ │ ├── NSImage+Addition.m
│ │ │ ├── NSImageView+MTAddition.h
│ │ │ ├── NSImageView+MTAddition.m
│ │ │ ├── NSString+Additions.h
│ │ │ ├── NSString+Additions.m
│ │ │ ├── NSView+LayerAddition.h
│ │ │ ├── NSView+LayerAddition.m
│ │ │ ├── NSWindow+Addition.h
│ │ │ ├── NSWindow+Addition.m
│ │ │ ├── NSWindow+Animation.h
│ │ │ └── NSWindow+Animation.m
│ │ ├── ColorfulView
│ │ │ ├── DDAppBackgroundColorView.h
│ │ │ ├── DDAppBackgroundColorView.m
│ │ │ ├── DDCornerRadiusTextField.h
│ │ │ ├── DDCornerRadiusTextField.m
│ │ │ ├── DDCustomWindow.h
│ │ │ ├── DDCustomWindow.m
│ │ │ ├── DDGridBackgroundView.h
│ │ │ └── DDGridBackgroundView.m
│ │ ├── contacts&chats
│ │ │ ├── DDListGroup.h
│ │ │ ├── DDListGroup.m
│ │ │ ├── DDListObject.h
│ │ │ ├── DDListObject.m
│ │ │ ├── DDProxyListObject.h
│ │ │ ├── DDProxyListObject.m
│ │ │ ├── ESObjectWithProperties.h
│ │ │ └── ESObjectWithProperties.m
│ │ ├── CrashReport
│ │ │ ├── CrashReportManager.h
│ │ │ └── CrashReportManager.m
│ │ ├── DDAppDelegate.h
│ │ ├── DDAppDelegate.m
│ │ ├── DDApplication.h
│ │ ├── DDApplication.m
│ │ ├── DDChattingContactListCell.h
│ │ ├── DDChattingContactListCell.m
│ │ ├── DDChattingContactListModule.h
│ │ ├── DDChattingContactListModule.m
│ │ ├── DDChattingContactListViewController.h
│ │ ├── DDChattingContactListViewController.m
│ │ ├── DDChattingMyLine.h
│ │ ├── DDChattingMyLine.m
│ │ ├── DDChattingViewModule.h
│ │ ├── DDChattingViewModule.m
│ │ ├── DDCornerView.h
│ │ ├── DDCornerView.m
│ │ ├── DDDuoduoProtocol.h
│ │ ├── DDGroupViewController.xib
│ │ ├── DDIntranentViewController.xib
│ │ ├── DDIntranetCell.h
│ │ ├── DDIntranetCell.m
│ │ ├── DDIntranetContentViewController.h
│ │ ├── DDIntranetContentViewController.m
│ │ ├── DDIntranetContentViewController.xib
│ │ ├── DDIntranetEntity.h
│ │ ├── DDIntranetEntity.m
│ │ ├── DDIntranetModule.h
│ │ ├── DDIntranetModule.m
│ │ ├── DDIntranetViewController.h
│ │ ├── DDIntranetViewController.m
│ │ ├── DDLogic
│ │ │ ├── DDLogic.h
│ │ │ ├── DDLogic.m
│ │ │ ├── DDLogicProtocol.h
│ │ │ ├── module
│ │ │ │ ├── DDModuleDataManager.h
│ │ │ │ ├── DDModuleDataManager.m
│ │ │ │ ├── DDModuleID.h
│ │ │ │ ├── DDModuleManager.h
│ │ │ │ ├── DDModuleManager.m
│ │ │ │ ├── DDWatch.h
│ │ │ │ └── DDWatch.m
│ │ │ └── task
│ │ │ ├── DDTask.h
│ │ │ ├── DDTaskManager.h
│ │ │ ├── DDTaskManager.m
│ │ │ ├── DDTaskOperation.h
│ │ │ └── DDTaskOperation.m
│ │ ├── DDRecentContactRowView.h
│ │ ├── DDRecentContactRowView.m
│ │ ├── DDSearchResultCell.xib
│ │ ├── DDSetting.h
│ │ ├── DDSetting.m
│ │ ├── DDSetting+OffLineReadMsgManager.h
│ │ ├── DDSetting+OffLineReadMsgManager.m
│ │ ├── DDSharedDuoduo.h
│ │ ├── DDSharedDuoduo.m
│ │ ├── DDTcpClientManager.h
│ │ ├── DDTcpClientManager.m
│ │ ├── dsa_pub.pem
│ │ ├── EGOImageLoader
│ │ │ ├── EGOCache.h
│ │ │ ├── EGOCache.m
│ │ │ ├── EGOImageLoadConnection.h
│ │ │ ├── EGOImageLoadConnection.m
│ │ │ ├── EGOImageLoader.h
│ │ │ ├── EGOImageLoader.m
│ │ │ ├── EGOImageView.h
│ │ │ └── EGOImageView.m
│ │ ├── en.lproj
│ │ │ ├── Credits.rtf
│ │ │ └── InfoPlist.strings
│ │ ├── FileTransfer
│ │ │ ├── GCDAsyncSocket.h
│ │ │ └── GCDAsyncSocket.m
│ │ ├── Frameworks
│ │ │ └── ShortcutRecorder.framework
│ │ │ ├── Headers
│ │ │ ├── Resources
│ │ │ ├── ShortcutRecorder
│ │ │ └── Versions
│ │ │ ├── A
│ │ │ │ ├── Headers
│ │ │ │ │ ├── ShortcutRecorder.h
│ │ │ │ │ ├── SRCommon.h
│ │ │ │ │ ├── SRKeyCodeTransformer.h
│ │ │ │ │ ├── SRRecorderCell.h
│ │ │ │ │ ├── SRRecorderControl.h
│ │ │ │ │ └── SRValidator.h
│ │ │ │ ├── Resources
│ │ │ │ │ ├── ca.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── cs.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── da.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── de.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── el.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── en.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── es.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── es-MX.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── fr.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── it.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ja.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ko.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── nb.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── nl.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pl.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pt-BR.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pt.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pt-PT.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ro.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ru.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── sk.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── SRRemoveShortcutPressed.tif
│ │ │ │ │ ├── SRRemoveShortcutRollover.tif
│ │ │ │ │ ├── SRRemoveShortcut.tif
│ │ │ │ │ ├── SRSnapback.tiff
│ │ │ │ │ ├── sv.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── th.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── zh-Hans.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ └── zh-Hant.lproj
│ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ └── ShortcutRecorder
│ │ │ └── Current
│ │ ├── HelpLib
│ │ │ ├── DDPathHelp.h
│ │ │ ├── DDPathHelp.m
│ │ │ ├── DDSundriesCenter.h
│ │ │ ├── DDSundriesCenter.m
│ │ │ └── ImageCache
│ │ │ ├── MTImageCache.h
│ │ │ ├── MTImageCache.m
│ │ │ ├── MTImageDownload.h
│ │ │ └── MTImageDownload.m
│ │ ├── html
│ │ │ ├── bg.jpg
│ │ │ ├── big.cur
│ │ │ ├── blbb.png
│ │ │ ├── blb.png
│ │ │ ├── brwb.png
│ │ │ ├── brw.png
│ │ │ ├── gifffer.js
│ │ │ ├── highlight.default.css
│ │ │ ├── highlight.min.js
│ │ │ ├── highlight.pack.js
│ │ │ ├── hook.css
│ │ │ ├── hook.min.js
│ │ │ ├── hook-spinner.gif
│ │ │ ├── iscroll.js
│ │ │ ├── iscroll-probe.js
│ │ │ ├── jquery-2.1.1.min.js
│ │ │ ├── jquery.scrollz.css
│ │ │ ├── jquery.scrollz.min.js
│ │ │ ├── main.css
│ │ │ ├── message.html
│ │ │ ├── moment-with-locales.min.js
│ │ │ ├── mousewheel.js
│ │ │ ├── msgfail.png
│ │ │ ├── msg.js
│ │ │ ├── PullToLoadHistory.js
│ │ │ ├── pure-min.css
│ │ │ ├── scrollbar.css
│ │ │ ├── solarized_dark.css
│ │ │ ├── solarized_light.css
│ │ │ ├── template.js
│ │ │ ├── voice_me.gif
│ │ │ ├── voice_me.png
│ │ │ ├── voice_other.gif
│ │ │ └── voice_other.png
│ │ ├── http
│ │ │ ├── DDHttpUtil.h
│ │ │ └── DDHttpUtil.m
│ │ ├── Images.xcassets
│ │ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── interface
│ │ │ ├── altertWindow
│ │ │ │ ├── DDAlertWindowController.h
│ │ │ │ ├── DDAlertWindowController.m
│ │ │ │ └── DDAlertWindowController.xib
│ │ │ ├── cells
│ │ │ │ ├── DDListCell.h
│ │ │ │ └── DDListCell.m
│ │ │ ├── chat
│ │ │ │ ├── addChatGroup
│ │ │ │ │ ├── DDAddChatGroupCell.h
│ │ │ │ │ ├── DDAddChatGroupCell.m
│ │ │ │ │ ├── DDAddChatGroup.h
│ │ │ │ │ ├── DDAddChatGroup.m
│ │ │ │ │ ├── DDAddChatGroupModel.h
│ │ │ │ │ ├── DDAddChatGroupModel.m
│ │ │ │ │ ├── DDAddChatGroupWindowController.h
│ │ │ │ │ ├── DDAddChatGroupWindowController.m
│ │ │ │ │ ├── DDAddChatGroupWindowController.xib
│ │ │ │ │ ├── DDAddGroupSelectedCell.h
│ │ │ │ │ ├── DDAddGroupSelectedCell.m
│ │ │ │ │ ├── DDClickCell.h
│ │ │ │ │ ├── DDClickCell.m
│ │ │ │ │ └── tree support
│ │ │ │ │ ├── BaseNode.h
│ │ │ │ │ ├── BaseNode.m
│ │ │ │ │ ├── ChildNode.h
│ │ │ │ │ └── ChildNode.m
│ │ │ │ ├── DDAddChatGroupWindowController.xib
│ │ │ │ ├── DDChattingHeadViewController.h
│ │ │ │ ├── DDChattingHeadViewController.m
│ │ │ │ ├── DDChattingInputView.h
│ │ │ │ ├── DDChattingInputView.m
│ │ │ │ ├── DDChattingViewController.h
│ │ │ │ ├── DDChattingViewController.m
│ │ │ │ ├── DDChattingView.xib
│ │ │ │ ├── DDEmotionAttachment.h
│ │ │ │ ├── DDEmotionAttachment.m
│ │ │ │ ├── DDImageMessage.h
│ │ │ │ ├── DDImageMessage.m
│ │ │ │ ├── DDSendingTextView.h
│ │ │ │ ├── DDSendingTextView.m
│ │ │ │ ├── DDTableView.h
│ │ │ │ ├── DDTableView.m
│ │ │ │ ├── ImageAndTextCell.h
│ │ │ │ └── ImageAndTextCell.m
│ │ │ ├── contactList
│ │ │ │ ├── contactList
│ │ │ │ │ ├── DDAbstractListController.h
│ │ │ │ │ ├── DDAbstractListController.m
│ │ │ │ │ ├── DDAnimatingListOutlineView.h
│ │ │ │ │ ├── DDAnimatingListOutlineView.m
│ │ │ │ │ ├── DDContactListWindowController.h
│ │ │ │ │ ├── DDContactListWindowController.m
│ │ │ │ │ ├── DDListController.h
│ │ │ │ │ ├── DDListController.m
│ │ │ │ │ ├── DDListOutlineView.h
│ │ │ │ │ ├── DDListOutlineView.m
│ │ │ │ │ ├── DDListWindowController.h
│ │ │ │ │ ├── DDListWindowController.m
│ │ │ │ │ ├── MainWindowSegmentedControl.h
│ │ │ │ │ └── MainWindowSegmentedControl.m
│ │ │ │ ├── ContactListWindow.xib
│ │ │ │ ├── standardWindow
│ │ │ │ │ ├── DDContactListNameButton.h
│ │ │ │ │ ├── DDContactListNameButton.m
│ │ │ │ │ ├── DDHoveringPopUpButtonCell.h
│ │ │ │ │ ├── DDHoveringPopUpButtonCell.m
│ │ │ │ │ ├── DDHoveringPopUpButton.h
│ │ │ │ │ ├── DDHoveringPopUpButton.m
│ │ │ │ │ ├── DDStandardListWindowController.h
│ │ │ │ │ └── DDStandardListWindowController.m
│ │ │ │ └── userIconChanging
│ │ │ │ ├── ContactListChangeUserPictureMenu.xib
│ │ │ │ ├── DDContactListImagePicker.h
│ │ │ │ ├── DDContactListImagePicker.m
│ │ │ │ ├── DDContactListUserPictureMenuController.h
│ │ │ │ ├── DDContactListUserPictureMenuController.m
│ │ │ │ └── IKRecentPicture.h
│ │ │ ├── DDInterfaceController.h
│ │ │ ├── DDInterfaceController.m
│ │ │ ├── DDMainWindow.h
│ │ │ ├── DDMainWindow.m
│ │ │ ├── DDWindowController.h
│ │ │ ├── DDWindowController.m
│ │ │ ├── emotion
│ │ │ │ ├── EmotionCellView.h
│ │ │ │ ├── EmotionCellView.m
│ │ │ │ ├── emotionList.xml
│ │ │ │ ├── EmotionListXmlParser.h
│ │ │ │ ├── EmotionListXmlParser.m
│ │ │ │ ├── EmotionPopover.xib
│ │ │ │ ├── EmotionViewController.h
│ │ │ │ └── EmotionViewController.m
│ │ │ ├── login window
│ │ │ │ ├── DDLoginWindowController.h
│ │ │ │ ├── DDLoginWindowController.m
│ │ │ │ ├── DDLoginWindow.h
│ │ │ │ ├── DDLoginWindow.m
│ │ │ │ └── LoginSelect.xib
│ │ │ ├── mainWindow
│ │ │ │ ├── DDImageSpreadView.h
│ │ │ │ ├── DDImageSpreadView.m
│ │ │ │ ├── DDImageView.h
│ │ │ │ ├── DDImageView.m
│ │ │ │ ├── DDMainUIController.h
│ │ │ │ ├── DDMainUIController.m
│ │ │ │ ├── DDMainWindowController.h
│ │ │ │ ├── DDMainWindowController.m
│ │ │ │ ├── DDMainWindow.xib
│ │ │ │ ├── DDSplitView.h
│ │ │ │ ├── DDSplitView.m
│ │ │ │ ├── DDTabItemView.h
│ │ │ │ ├── DDTabItemView.m
│ │ │ │ ├── FMSearchTokenField.h
│ │ │ │ ├── FMSearchTokenField.m
│ │ │ │ └── searchField
│ │ │ │ ├── DDMainSearchField.h
│ │ │ │ ├── DDMainSearchField.m
│ │ │ │ ├── DDNinePartImage.h
│ │ │ │ ├── DDNinePartImage.m
│ │ │ │ ├── DDSearchFieldCell.h
│ │ │ │ ├── DDSearchFieldCell.m
│ │ │ │ ├── DDSearchFieldController.h
│ │ │ │ ├── DDSearchFieldController.m
│ │ │ │ ├── DDSearchFieldEditorDelegate.h
│ │ │ │ ├── DDSearchFieldEditorDelegate.m
│ │ │ │ ├── DDSearchFieldResultCell.h
│ │ │ │ ├── DDSearchFieldResultCell.m
│ │ │ │ ├── FMSearchTokenAttachmentCell.h
│ │ │ │ ├── FMSearchTokenAttachmentCell.m
│ │ │ │ ├── FMSearchTokenFieldCell.h
│ │ │ │ ├── FMSearchTokenFieldCell.m
│ │ │ │ ├── SpellLibrary.h
│ │ │ │ └── SpellLibrary.m
│ │ │ └── UserData
│ │ │ ├── DDGroupDataModule.h
│ │ │ ├── DDGroupDataModule.m
│ │ │ ├── DDGroupDataWindow.h
│ │ │ ├── DDGroupDataWindow.m
│ │ │ ├── DDGroupDataWindow.xib
│ │ │ ├── DDGroupInfoCell.h
│ │ │ ├── DDGroupInfoCell.m
│ │ │ ├── DDGroupInfoManager.h
│ │ │ ├── DDGroupInfoManager.m
│ │ │ ├── DDUserDataModel.h
│ │ │ ├── DDUserDataModel.m
│ │ │ ├── DDUserDataWindowController.h
│ │ │ ├── DDUserDataWindowController.m
│ │ │ ├── DDUserInfoManager.h
│ │ │ ├── DDUserInfoManager.m
│ │ │ ├── DDUserInfoPanel.h
│ │ │ ├── DDUserInfoPanel.m
│ │ │ └── DDUserInfoPanel.xib
│ │ ├── Libraries
│ │ │ ├── libsecurity
│ │ │ │ └── security.h
│ │ │ ├── Log4Cocoa
│ │ │ │ ├── L4AppenderAttachable.h
│ │ │ │ ├── L4AppenderAttachable.m
│ │ │ │ ├── L4AppenderProtocols.h
│ │ │ │ ├── L4AppenderSkeleton.h
│ │ │ │ ├── L4AppenderSkeleton.m
│ │ │ │ ├── L4BasicConfigurator.h
│ │ │ │ ├── L4BasicConfigurator.m
│ │ │ │ ├── L4ConsoleAppender.h
│ │ │ │ ├── L4ConsoleAppender.m
│ │ │ │ ├── L4DailyRollingFileAppender.h
│ │ │ │ ├── L4DailyRollingFileAppender.m
│ │ │ │ ├── L4DenyAllFilter.h
│ │ │ │ ├── L4DenyAllFilter.m
│ │ │ │ ├── L4FileAppender.h
│ │ │ │ ├── L4FileAppender.m
│ │ │ │ ├── L4Filter.h
│ │ │ │ ├── L4Filter.m
│ │ │ │ ├── L4JSONLayout.h
│ │ │ │ ├── L4JSONLayout.m
│ │ │ │ ├── L4Layout.h
│ │ │ │ ├── L4Layout.m
│ │ │ │ ├── L4Level.h
│ │ │ │ ├── L4Level.m
│ │ │ │ ├── L4LevelMatchFilter.h
│ │ │ │ ├── L4LevelMatchFilter.m
│ │ │ │ ├── L4LevelRangeFilter.h
│ │ │ │ ├── L4LevelRangeFilter.m
│ │ │ │ ├── L4LogEvent.h
│ │ │ │ ├── L4LogEvent.m
│ │ │ │ ├── L4Logger.h
│ │ │ │ ├── L4Logger.m
│ │ │ │ ├── L4LoggerNameMatchFilter.h
│ │ │ │ ├── L4LoggerNameMatchFilter.m
│ │ │ │ ├── L4LoggerProtocols.h
│ │ │ │ ├── L4LoggerStore.h
│ │ │ │ ├── L4LoggerStore.m
│ │ │ │ ├── L4Logging.h
│ │ │ │ ├── L4Logging.m
│ │ │ │ ├── L4LogLog.h
│ │ │ │ ├── L4LogLog.m
│ │ │ │ ├── L4PatternLayout.h
│ │ │ │ ├── L4PatternLayout.m
│ │ │ │ ├── L4Properties.h
│ │ │ │ ├── L4Properties.m
│ │ │ │ ├── L4PropertyConfigurator.h
│ │ │ │ ├── L4PropertyConfigurator.m
│ │ │ │ ├── L4RollingFileAppender.h
│ │ │ │ ├── L4RollingFileAppender.m
│ │ │ │ ├── L4RootLogger.h
│ │ │ │ ├── L4RootLogger.m
│ │ │ │ ├── L4SimpleLayout.h
│ │ │ │ ├── L4SimpleLayout.m
│ │ │ │ ├── L4StringMatchFilter.h
│ │ │ │ ├── L4StringMatchFilter.m
│ │ │ │ ├── L4WriterAppender.h
│ │ │ │ ├── L4WriterAppender.m
│ │ │ │ ├── L4XMLLayout.h
│ │ │ │ ├── L4XMLLayout.m
│ │ │ │ ├── Log4CocoaDefines.h
│ │ │ │ ├── Log4Cocoa.h
│ │ │ │ ├── Log4Cocoa-Prefix.pch
│ │ │ │ ├── NSObject+Log4Cocoa.h
│ │ │ │ └── NSObject+Log4Cocoa.m
│ │ │ ├── Reachability
│ │ │ │ ├── Reachability.h
│ │ │ │ └── Reachability.m
│ │ │ └── Speex
│ │ │ ├── speexdec
│ │ │ └── speexenc
│ │ ├── main.m
│ │ ├── MD5.h
│ │ ├── MD5.m
│ │ ├── MessageReview
│ │ │ ├── DDMessageReviewContactsCellView.h
│ │ │ ├── DDMessageReviewContactsCellView.m
│ │ │ ├── DDMessageReviewContactsViewController.h
│ │ │ ├── DDMessageReviewContactsViewController.m
│ │ │ ├── DDMessageReviewModule.h
│ │ │ ├── DDMessageReviewModule.m
│ │ │ ├── DDMessageReviewTextView.h
│ │ │ ├── DDMessageReviewTextView.m
│ │ │ ├── DDMessageReviewWindowController.h
│ │ │ ├── DDMessageReviewWindowController.m
│ │ │ ├── DDMessageReviewWindow.xib
│ │ │ ├── DDMessagesReviewContentModule.h
│ │ │ ├── DDMessagesReviewContentModule.m
│ │ │ ├── DDMessagesReviewContentViewController.h
│ │ │ ├── DDMessagesReviewContentViewController.m
│ │ │ ├── DDMessagesReviewWindow.h
│ │ │ └── DDMessagesReviewWindow.m
│ │ ├── modules
│ │ │ ├── Chatting
│ │ │ │ ├── DDAtUserListViewController.h
│ │ │ │ ├── DDAtUserListViewController.m
│ │ │ │ ├── DDAtUserListViewController.xib
│ │ │ │ ├── DDChangableAttactment.h
│ │ │ │ ├── DDChangableAttactment.m
│ │ │ │ ├── DDImageUploader.h
│ │ │ │ ├── DDImageUploader.m
│ │ │ │ ├── DDMessageSendManager.h
│ │ │ │ ├── DDMessageSendManager.m
│ │ │ │ ├── DDMessageTextView.h
│ │ │ │ ├── DDMessageTextView.m
│ │ │ │ ├── DrawView.h
│ │ │ │ ├── DrawView.m
│ │ │ │ ├── EmotionManager.h
│ │ │ │ ├── EmotionManager.m
│ │ │ │ ├── MessageShowView.h
│ │ │ │ ├── MessageShowView.m
│ │ │ │ ├── MessageViewFactory.h
│ │ │ │ ├── MessageViewFactory.m
│ │ │ │ ├── NSAttributedString+Message.h
│ │ │ │ ├── NSAttributedString+Message.m
│ │ │ │ ├── NSImage+Scale.h
│ │ │ │ ├── NSImage+Scale.m
│ │ │ │ ├── NSTextView+Rect.h
│ │ │ │ ├── NSTextView+Rect.m
│ │ │ │ ├── WhiteBackgroundView.h
│ │ │ │ └── WhiteBackgroundView.m
│ │ │ ├── common
│ │ │ │ ├── DDCommonModule.h
│ │ │ │ └── DDCommonModule.m
│ │ │ ├── DB
│ │ │ │ ├── MTDatabaseUtil.h
│ │ │ │ └── MTDatabaseUtil.m
│ │ │ ├── dbmanager
│ │ │ │ ├── DDDatabaseUtil.h
│ │ │ │ └── DDDatabaseUtil.m
│ │ │ ├── DDRootModule.h
│ │ │ ├── DDRootModule.m
│ │ │ ├── Http
│ │ │ │ ├── DDHttpEntity.h
│ │ │ │ ├── DDHttpEntity.m
│ │ │ │ ├── DDHttpModule.h
│ │ │ │ └── DDHttpModule.m
│ │ │ ├── login
│ │ │ │ ├── DDHttpServer.h
│ │ │ │ ├── DDHttpServer.m
│ │ │ │ ├── DDLoginManager.h
│ │ │ │ ├── DDLoginManager.m
│ │ │ │ ├── DDLoginServer.h
│ │ │ │ ├── DDLoginServer.m
│ │ │ │ ├── DDLoginWindowControllerModule.h
│ │ │ │ ├── DDLoginWindowControllerModule.m
│ │ │ │ ├── DDMsgServer.h
│ │ │ │ ├── DDMsgServer.m
│ │ │ │ ├── DDTcpServer.h
│ │ │ │ └── DDTcpServer.m
│ │ │ ├── Main
│ │ │ │ ├── AvatorImageView.h
│ │ │ │ ├── AvatorImageView.m
│ │ │ │ ├── DDChattingWindowManager.h
│ │ │ │ ├── DDChattingWindowManager.m
│ │ │ │ ├── DDContactsRowView.h
│ │ │ │ ├── DDContactsRowView.m
│ │ │ │ ├── DDGroupCell.h
│ │ │ │ ├── DDGroupCell.m
│ │ │ │ ├── DDGroupVCModule.h
│ │ │ │ ├── DDGroupVCModule.m
│ │ │ │ ├── DDGroupViewController.h
│ │ │ │ ├── DDGroupViewController.m
│ │ │ │ ├── DDLeftBarItem.h
│ │ │ │ ├── DDLeftBarItem.m
│ │ │ │ ├── DDLeftBarViewController.h
│ │ │ │ ├── DDLeftBarViewController.m
│ │ │ │ ├── DDMainModule.h
│ │ │ │ ├── DDMainModule.m
│ │ │ │ ├── DDMainWindowControllerModule.h
│ │ │ │ ├── DDMainWindowControllerModule.m
│ │ │ │ ├── DDRecentContactsCell.h
│ │ │ │ ├── DDRecentContactsCell.m
│ │ │ │ ├── DDRecentContactsModule.h
│ │ │ │ ├── DDRecentContactsModule.m
│ │ │ │ ├── DDRecentContactsViewController.h
│ │ │ │ ├── DDRecentContactsViewController.m
│ │ │ │ ├── DDRecentContactsViewController.xib
│ │ │ │ ├── DDSearchResultCell.h
│ │ │ │ ├── DDSearchResultCell.m
│ │ │ │ ├── DDSearchViewController.h
│ │ │ │ ├── DDSearchViewController.m
│ │ │ │ ├── HoverTableRowView.h
│ │ │ │ └── HoverTableRowView.m
│ │ │ ├── message
│ │ │ │ ├── MTLastMessageManager.h
│ │ │ │ ├── MTLastMessageManager.m
│ │ │ │ ├── MTMessageEntity.h
│ │ │ │ ├── MTMessageEntity.mm
│ │ │ │ ├── MTMessageModule.h
│ │ │ │ └── MTMessageModule.m
│ │ │ ├── OriginEntity
│ │ │ │ ├── DDOriginEntity.h
│ │ │ │ ├── DDOriginEntity.m
│ │ │ │ ├── Grouyp
│ │ │ │ │ ├── MTGroupEntity.h
│ │ │ │ │ └── MTGroupEntity.m
│ │ │ │ └── User
│ │ │ │ ├── MTDepartmentEntity.h
│ │ │ │ ├── MTDepartmentEntity.m
│ │ │ │ ├── MTUserEntity.h
│ │ │ │ └── MTUserEntity.m
│ │ │ ├── OriginModule
│ │ │ │ ├── DDOriginModuleProtocol.h
│ │ │ │ ├── GroupModule
│ │ │ │ │ ├── MTGroupModule.h
│ │ │ │ │ └── MTGroupModule.m
│ │ │ │ └── UserModule
│ │ │ │ ├── MTDepartmentManager.h
│ │ │ │ ├── MTDepartmentManager.m
│ │ │ │ ├── MTUserModule.h
│ │ │ │ └── MTUserModule.m
│ │ │ ├── pb
│ │ │ │ ├── IMBaseDefine.pb.h
│ │ │ │ ├── IMBaseDefine.pb.m
│ │ │ │ ├── IMBuddy.pb.h
│ │ │ │ ├── IMBuddy.pb.m
│ │ │ │ ├── IMFile.pb.h
│ │ │ │ ├── IMFile.pb.m
│ │ │ │ ├── IMGroup.pb.h
│ │ │ │ ├── IMGroup.pb.m
│ │ │ │ ├── IMInternal.pb.h
│ │ │ │ ├── IMInternal.pb.m
│ │ │ │ ├── IMLogin.pb.h
│ │ │ │ ├── IMLogin.pb.m
│ │ │ │ ├── IMMessage.pb.h
│ │ │ │ ├── IMMessage.pb.m
│ │ │ │ ├── IMOther.pb.h
│ │ │ │ ├── IMOther.pb.m
│ │ │ │ ├── IMServer.pb.h
│ │ │ │ ├── IMServer.pb.m
│ │ │ │ ├── IMSwitchService.pb.h
│ │ │ │ ├── IMSwitchService.pb.m
│ │ │ │ ├── IMXIAOT.pb.h
│ │ │ │ └── IMXIAOT.pb.m
│ │ │ ├── session
│ │ │ │ ├── DDAddGroupMemberDepartmentCell.h
│ │ │ │ ├── DDAddGroupMemberDepartmentCell.m
│ │ │ │ ├── DDAddGroupMemberDepartmentRowView.h
│ │ │ │ ├── DDAddGroupMemberDepartmentRowView.m
│ │ │ │ ├── DDMultiSelectedOutlineView.h
│ │ │ │ ├── DDMultiSelectedOutlineView.m
│ │ │ │ ├── MTChattingInputView.h
│ │ │ │ ├── MTChattingInputView.m
│ │ │ │ ├── _SessionEntity.h
│ │ │ │ └── _SessionEntity.m
│ │ │ ├── Session1
│ │ │ │ ├── Entity
│ │ │ │ │ ├── MTSessionEntity.h
│ │ │ │ │ └── MTSessionEntity.m
│ │ │ │ └── Module
│ │ │ │ ├── MTSessionModule.h
│ │ │ │ └── MTSessionModule.m
│ │ │ └── SysConfig
│ │ │ ├── Entity
│ │ │ │ ├── MTSysConfigEntity.h
│ │ │ │ └── MTSysConfigEntity.m
│ │ │ └── Module
│ │ │ ├── MTSysConfigModule.h
│ │ │ └── MTSysConfigModule.m
│ │ ├── MTDraftManager.h
│ │ ├── MTDraftManager.m
│ │ ├── MTInputHistoryManager.h
│ │ ├── MTInputHistoryManager.m
│ │ ├── MTPreviewItem.h
│ │ ├── MTPreviewItem.m
│ │ ├── MTUnreadMessageManager.h
│ │ ├── MTUnreadMessageManager.m
│ │ ├── net
│ │ │ └── mtalk
│ │ │ ├── data
│ │ │ │ ├── DDBaseEntity.h
│ │ │ │ ├── DDBaseEntity.m
│ │ │ │ ├── DDepartment.h
│ │ │ │ ├── DDepartment.m
│ │ │ │ ├── DDIntranetMessageEntity.h
│ │ │ │ ├── DDIntranetMessageEntity.m
│ │ │ │ ├── FileTransferEntity.h
│ │ │ │ ├── FileTransferEntity.m
│ │ │ │ ├── _GroupEntity.h
│ │ │ │ ├── _GroupEntity.m
│ │ │ │ ├── LoginEntity.h
│ │ │ │ ├── LoginEntity.m
│ │ │ │ ├── MessageDate.h
│ │ │ │ ├── MessageDate.m
│ │ │ │ ├── MessageEntity.h
│ │ │ │ ├── MessageEntity.m
│ │ │ │ ├── MGJEntity.h
│ │ │ │ ├── MGJEntity.m
│ │ │ │ ├── _UserEntity.h
│ │ │ │ └── _UserEntity.m
│ │ │ ├── DataInputStream.h
│ │ │ ├── DataInputStream.m
│ │ │ ├── DataOutputStream.h
│ │ │ ├── DataOutputStream.m
│ │ │ ├── handlers
│ │ │ │ ├── MGJMTalkIMessageHanlder.h
│ │ │ │ ├── TcpProtocolHeader.h
│ │ │ │ └── TcpProtocolHeader.m
│ │ │ ├── mac
│ │ │ │ ├── NSStream+NSStreamAddition.h
│ │ │ │ └── NSStream+NSStreamAddition.m
│ │ │ └── util
│ │ │ ├── SendBuffer.h
│ │ │ └── SendBuffer.m
│ │ ├── NotificationHelp.h
│ │ ├── NotificationHelp.m
│ │ ├── perference
│ │ │ ├── DDPreferenceWinController.h
│ │ │ ├── DDPreferenceWinController.m
│ │ │ └── DDPreferenceWinController.xib
│ │ ├── PFMoveApplication.h
│ │ ├── PFMoveApplication.m
│ │ ├── preference
│ │ │ ├── DDOptionsBase.h
│ │ │ ├── DDOptionsBase.m
│ │ │ ├── DDPreferenceWinController.h
│ │ │ ├── DDPreferenceWinController.m
│ │ │ ├── DDPreferenceWinController.xib
│ │ │ ├── DDUserPreferences.h
│ │ │ └── DDUserPreferences.m
│ │ ├── protocol
│ │ │ ├── DDContactObserverManager.h
│ │ │ └── DDMainWindowControllerProtocol.h
│ │ ├── resource
│ │ │ ├── aio_recentsession_unreadmsg@2x.png
│ │ │ ├── aio_recentsession_unreadmsg.png
│ │ │ ├── aio_recentsession_unreadmsg_selected@2x.png
│ │ │ ├── aio_recentsession_unreadmsg_selected.png
│ │ │ ├── aio_recentsession_unreadmsg_selected_wide@2x.png
│ │ │ ├── aio_recentsession_unreadmsg_selected_wide.png
│ │ │ ├── aio_recentsession_unreadmsg_wide@2x.png
│ │ │ ├── aio_recentsession_unreadmsg_wide.png
│ │ │ ├── avatar_default.jpg_48x48.jpg
│ │ │ ├── bubble_left@2x.png
│ │ │ ├── bubble_left.png
│ │ │ ├── bubble_right@2x.png
│ │ │ ├── bubble_right.png
│ │ │ ├── dd_modisy_avatar@2x.png
│ │ │ ├── dd_modisy_avatar.png
│ │ │ ├── duoduo.png
│ │ │ ├── emotions
│ │ │ │ ├── 0.gif
│ │ │ │ ├── 100.gif
│ │ │ │ ├── 101.gif
│ │ │ │ ├── 102.gif
│ │ │ │ ├── 103.gif
│ │ │ │ ├── 104.gif
│ │ │ │ ├── 105.gif
│ │ │ │ ├── 106.gif
│ │ │ │ ├── 107.gif
│ │ │ │ ├── 108.gif
│ │ │ │ ├── 109.gif
│ │ │ │ ├── 10.gif
│ │ │ │ ├── 110.gif
│ │ │ │ ├── 111.gif
│ │ │ │ ├── 112.gif
│ │ │ │ ├── 113.gif
│ │ │ │ ├── 114.gif
│ │ │ │ ├── 115.gif
│ │ │ │ ├── 116.gif
│ │ │ │ ├── 117.gif
│ │ │ │ ├── 118.gif
│ │ │ │ ├── 119.gif
│ │ │ │ ├── 11.gif
│ │ │ │ ├── 120.gif
│ │ │ │ ├── 121.gif
│ │ │ │ ├── 122.gif
│ │ │ │ ├── 123.gif
│ │ │ │ ├── 124.gif
│ │ │ │ ├── 125.gif
│ │ │ │ ├── 126.gif
│ │ │ │ ├── 127.gif
│ │ │ │ ├── 128.gif
│ │ │ │ ├── 129.gif
│ │ │ │ ├── 12.gif
│ │ │ │ ├── 130.gif
│ │ │ │ ├── 131.gif
│ │ │ │ ├── 132.gif
│ │ │ │ ├── 133.gif
│ │ │ │ ├── 134.gif
│ │ │ │ ├── 135.gif
│ │ │ │ ├── 136.gif
│ │ │ │ ├── 137.gif
│ │ │ │ ├── 138.gif
│ │ │ │ ├── 139.gif
│ │ │ │ ├── 13.gif
│ │ │ │ ├── 140.gif
│ │ │ │ ├── 141.gif
│ │ │ │ ├── 142.gif
│ │ │ │ ├── 143.gif
│ │ │ │ ├── 144.gif
│ │ │ │ ├── 145.gif
│ │ │ │ ├── 146.gif
│ │ │ │ ├── 147.gif
│ │ │ │ ├── 148.gif
│ │ │ │ ├── 149.gif
│ │ │ │ ├── 14.gif
│ │ │ │ ├── 150.gif
│ │ │ │ ├── 151.gif
│ │ │ │ ├── 152.gif
│ │ │ │ ├── 153.gif
│ │ │ │ ├── 154.gif
│ │ │ │ ├── 155.gif
│ │ │ │ ├── 156.gif
│ │ │ │ ├── 157.gif
│ │ │ │ ├── 158.gif
│ │ │ │ ├── 159.gif
│ │ │ │ ├── 15.gif
│ │ │ │ ├── 160.gif
│ │ │ │ ├── 161.gif
│ │ │ │ ├── 162.gif
│ │ │ │ ├── 163.gif
│ │ │ │ ├── 164.gif
│ │ │ │ ├── 165.gif
│ │ │ │ ├── 166.gif
│ │ │ │ ├── 167.gif
│ │ │ │ ├── 168.gif
│ │ │ │ ├── 169.gif
│ │ │ │ ├── 16.gif
│ │ │ │ ├── 170.gif
│ │ │ │ ├── 171.gif
│ │ │ │ ├── 172.gif
│ │ │ │ ├── 173.gif
│ │ │ │ ├── 174.gif
│ │ │ │ ├── 175.gif
│ │ │ │ ├── 176.gif
│ │ │ │ ├── 177.gif
│ │ │ │ ├── 178.gif
│ │ │ │ ├── 179.gif
│ │ │ │ ├── 17.gif
│ │ │ │ ├── 180.gif
│ │ │ │ ├── 181.gif
│ │ │ │ ├── 182.gif
│ │ │ │ ├── 183.gif
│ │ │ │ ├── 184.gif
│ │ │ │ ├── 185.gif
│ │ │ │ ├── 186.gif
│ │ │ │ ├── 187.gif
│ │ │ │ ├── 188.gif
│ │ │ │ ├── 189.gif
│ │ │ │ ├── 18.gif
│ │ │ │ ├── 190.gif
│ │ │ │ ├── 191.gif
│ │ │ │ ├── 192.gif
│ │ │ │ ├── 193.gif
│ │ │ │ ├── 194.gif
│ │ │ │ ├── 195.gif
│ │ │ │ ├── 196.gif
│ │ │ │ ├── 197.gif
│ │ │ │ ├── 198.gif
│ │ │ │ ├── 199.gif
│ │ │ │ ├── 19.gif
│ │ │ │ ├── 1.gif
│ │ │ │ ├── 200.gif
│ │ │ │ ├── 201.gif
│ │ │ │ ├── 202.gif
│ │ │ │ ├── 203.gif
│ │ │ │ ├── 204.gif
│ │ │ │ ├── 205.gif
│ │ │ │ ├── 206.gif
│ │ │ │ ├── 207.gif
│ │ │ │ ├── 208.gif
│ │ │ │ ├── 209.gif
│ │ │ │ ├── 20.gif
│ │ │ │ ├── 210.gif
│ │ │ │ ├── 211.gif
│ │ │ │ ├── 212.gif
│ │ │ │ ├── 213.gif
│ │ │ │ ├── 214.gif
│ │ │ │ ├── 215.gif
│ │ │ │ ├── 216.gif
│ │ │ │ ├── 217.gif
│ │ │ │ ├── 218.gif
│ │ │ │ ├── 219.gif
│ │ │ │ ├── 21.gif
│ │ │ │ ├── 220.gif
│ │ │ │ ├── 22.gif
│ │ │ │ ├── 23.gif
│ │ │ │ ├── 24.gif
│ │ │ │ ├── 25.gif
│ │ │ │ ├── 26.gif
│ │ │ │ ├── 27.gif
│ │ │ │ ├── 28.gif
│ │ │ │ ├── 29.gif
│ │ │ │ ├── 2.gif
│ │ │ │ ├── 30.gif
│ │ │ │ ├── 31.gif
│ │ │ │ ├── 32.gif
│ │ │ │ ├── 33.gif
│ │ │ │ ├── 34.gif
│ │ │ │ ├── 35.gif
│ │ │ │ ├── 36.gif
│ │ │ │ ├── 37.gif
│ │ │ │ ├── 38.gif
│ │ │ │ ├── 39.gif
│ │ │ │ ├── 3.gif
│ │ │ │ ├── 40.gif
│ │ │ │ ├── 41.gif
│ │ │ │ ├── 42.gif
│ │ │ │ ├── 43.gif
│ │ │ │ ├── 44.gif
│ │ │ │ ├── 45.gif
│ │ │ │ ├── 46.gif
│ │ │ │ ├── 47.gif
│ │ │ │ ├── 48.gif
│ │ │ │ ├── 49.gif
│ │ │ │ ├── 4.gif
│ │ │ │ ├── 50.gif
│ │ │ │ ├── 51.gif
│ │ │ │ ├── 52.gif
│ │ │ │ ├── 53.gif
│ │ │ │ ├── 54.gif
│ │ │ │ ├── 55.gif
│ │ │ │ ├── 56.gif
│ │ │ │ ├── 57.gif
│ │ │ │ ├── 58.gif
│ │ │ │ ├── 59.gif
│ │ │ │ ├── 5.gif
│ │ │ │ ├── 60.gif
│ │ │ │ ├── 61.gif
│ │ │ │ ├── 62.gif
│ │ │ │ ├── 63.gif
│ │ │ │ ├── 64.gif
│ │ │ │ ├── 65.gif
│ │ │ │ ├── 66.gif
│ │ │ │ ├── 67.gif
│ │ │ │ ├── 68.gif
│ │ │ │ ├── 69.gif
│ │ │ │ ├── 6.gif
│ │ │ │ ├── 70.gif
│ │ │ │ ├── 71.gif
│ │ │ │ ├── 72.gif
│ │ │ │ ├── 73.gif
│ │ │ │ ├── 74.gif
│ │ │ │ ├── 75.gif
│ │ │ │ ├── 76.gif
│ │ │ │ ├── 77.gif
│ │ │ │ ├── 78.gif
│ │ │ │ ├── 79.gif
│ │ │ │ ├── 7.gif
│ │ │ │ ├── 80.gif
│ │ │ │ ├── 81.gif
│ │ │ │ ├── 82.gif
│ │ │ │ ├── 83.gif
│ │ │ │ ├── 84.gif
│ │ │ │ ├── 85.gif
│ │ │ │ ├── 86.gif
│ │ │ │ ├── 87.gif
│ │ │ │ ├── 88.gif
│ │ │ │ ├── 89.gif
│ │ │ │ ├── 8.gif
│ │ │ │ ├── 90.gif
│ │ │ │ ├── 91.gif
│ │ │ │ ├── 92.gif
│ │ │ │ ├── 93.gif
│ │ │ │ ├── 94.gif
│ │ │ │ ├── 95.gif
│ │ │ │ ├── 96.gif
│ │ │ │ ├── 97.gif
│ │ │ │ ├── 98.gif
│ │ │ │ ├── 99.gif
│ │ │ │ └── 9.gif
│ │ │ ├── fileTransfer
│ │ │ │ ├── filetransfer_avatar_receive@2x.png
│ │ │ │ ├── filetransfer_avatar_receive.png
│ │ │ │ ├── filetransfer_avatar_send@2x.png
│ │ │ │ ├── filetransfer_avatar_send.png
│ │ │ │ ├── filetransfer_close@2x.png
│ │ │ │ ├── filetransfer_close.png
│ │ │ │ ├── filetransfer_offline@2x.png
│ │ │ │ ├── filetransfer_offline.png
│ │ │ │ ├── filetransfer_receiver@2x.png
│ │ │ │ ├── filetransfer_receiver.png
│ │ │ │ ├── filetransfer_refuse@2x.png
│ │ │ │ ├── filetransfer_refuse.png
│ │ │ │ ├── filetransfer_search@2x.png
│ │ │ │ └── filetransfer_search.png
│ │ │ ├── group_placeholder@2x.png
│ │ │ ├── group_placeholder.png
│ │ │ ├── icon_addcontacts_disable_theme_gray@2x.png
│ │ │ ├── icon_addcontacts_disable_theme_gray.png
│ │ │ ├── icon_addcontacts_highlight_theme_gray@2x.png
│ │ │ ├── icon_addcontacts_highlight_theme_gray.png
│ │ │ ├── icon_addcontacts_theme_gray@2x.png
│ │ │ ├── icon_addcontacts_theme_gray.png
│ │ │ ├── icon_away@2x.png
│ │ │ ├── icon_away.png
│ │ │ ├── icon_check_empty@2x.png
│ │ │ ├── icon_check_empty.png
│ │ │ ├── icon_check_filled@2x.png
│ │ │ ├── icon_check_filled.png
│ │ │ ├── icon_close.png
│ │ │ ├── icon_conversation_highlight_theme_gray@2x.png
│ │ │ ├── icon_conversation_highlight_theme_gray.png
│ │ │ ├── icon_conversation_theme_gray@2x.png
│ │ │ ├── icon_conversation_theme_gray.png
│ │ │ ├── icon_fav@2x.png
│ │ │ ├── icon_fav.png
│ │ │ ├── icon_folder@2x.png
│ │ │ ├── icon_folder_h21@2x.png
│ │ │ ├── icon_folder_h21.png
│ │ │ ├── icon_folder.png
│ │ │ ├── icon_go@2x.png
│ │ │ ├── icon_go.png
│ │ │ ├── icon.icns
│ │ │ ├── icon_image_normal@2x.png
│ │ │ ├── icon_image_normal.png
│ │ │ ├── icon_offline@2x.png
│ │ │ ├── icon_offline.png
│ │ │ ├── icon_online@2x.png
│ │ │ ├── icon_online.png
│ │ │ ├── icon_organization_click_theme_gray@2x.png
│ │ │ ├── icon_organization_click_theme_gray.png
│ │ │ ├── icon_organization_highlight_theme_gray@2x.png
│ │ │ ├── icon_organization_highlight_theme_gray.png
│ │ │ ├── icon_refresh_arrow@2x.png
│ │ │ ├── icon_refresh_arrow_down@2x.png
│ │ │ ├── icon_refresh_arrow_down.png
│ │ │ ├── icon_refresh_arrow.png
│ │ │ ├── icon_screenshot@2x.png
│ │ │ ├── icon_screenshot_highlight@2x.png
│ │ │ ├── icon_screenshot_highlight.png
│ │ │ ├── icon_screenshot.png
│ │ │ ├── icon_send_file_gray@2x.png
│ │ │ ├── icon_send_file_gray.png
│ │ │ ├── icon_send_file_highlight@2x.png
│ │ │ ├── icon_send_file_highlight.png
│ │ │ ├── icon_smile@2x.png
│ │ │ ├── icon_smile_highlight@2x.png
│ │ │ ├── icon_smile_highlight.png
│ │ │ ├── icon_smile.png
│ │ │ ├── icon_statusbar_blue@2x.png
│ │ │ ├── icon_statusbar_blue.png
│ │ │ ├── icon_statusbar.tif
│ │ │ ├── icon_statusbar.tiff
│ │ │ ├── icon_unread_red@2x.png
│ │ │ ├── icon_unread_red.png
│ │ │ ├── icon_unread_red_wide@2x.png
│ │ │ ├── icon_unread_red_wide.png
│ │ │ ├── icon_user_away_h28@2x.png
│ │ │ ├── icon_user_away_h28.png
│ │ │ ├── icon_user_female_away_h28@2x.png
│ │ │ ├── icon_user_female_away_h28.png
│ │ │ ├── icon_user_female_h28@2x.png
│ │ │ ├── icon_user_female_h28.png
│ │ │ ├── icon_user_h28@2x.png
│ │ │ ├── icon_user_h28.png
│ │ │ ├── icon_user_h51@2x.png
│ │ │ ├── icon_user_h51.png
│ │ │ ├── icon_user_offline_h28@2x.png
│ │ │ ├── icon_user_offline_h28.png
│ │ │ ├── intranet_back@2x.png
│ │ │ ├── intranet_back.png
│ │ │ ├── intranet_forward@2x.png
│ │ │ ├── intranet_forward.png
│ │ │ ├── intranet_home@2x.png
│ │ │ ├── intranet_home.png
│ │ │ ├── intranet_icon@2x.png
│ │ │ ├── intranet_icon.png
│ │ │ ├── intranet_refresh@2x.png
│ │ │ ├── intranet_refresh.png
│ │ │ ├── intranet_selected@2x.png
│ │ │ ├── intranet_selected.png
│ │ │ ├── intranet_unselected@2x.png
│ │ │ ├── intranet_unselected.png
│ │ │ ├── lady_placeholder@2x.png
│ │ │ ├── lady_placeholder.png
│ │ │ ├── mainpanel_searchbar_active@2x.png
│ │ │ ├── mainpanel_searchbar_active.png
│ │ │ ├── mainpanel_searchbar_normal@2x.png
│ │ │ ├── mainpanel_searchbar_normal.png
│ │ │ ├── man_placeholder@2x.png
│ │ │ ├── man_placeholder.png
│ │ │ ├── message.mp3
│ │ │ ├── message.wav
│ │ │ ├── new resource
│ │ │ │ ├── addgroummember-unselected@2x.png
│ │ │ │ ├── addgroummember-unselected.png
│ │ │ │ ├── add-group-member@2x.png
│ │ │ │ ├── addgroupmember-arrow@2x.png
│ │ │ │ ├── addgroupmember-arrow.png
│ │ │ │ ├── addgroupmember-cancel2@2x.png
│ │ │ │ ├── addgroupmember-cancel2.png
│ │ │ │ ├── addgroupmember-cancel@2x.png
│ │ │ │ ├── addgroupmember-cancel.png
│ │ │ │ ├── add-group-member.png
│ │ │ │ ├── addgroupmember-search-background@2x.png
│ │ │ │ ├── addgroupmember-search-background.png
│ │ │ │ ├── addgroupmember-selected@2x.png
│ │ │ │ ├── addgroupmember-selected.png
│ │ │ │ ├── addgroupmember-sure@2x.png
│ │ │ │ ├── addgroupmember-sure.png
│ │ │ │ ├── almance@2x.png
│ │ │ │ ├── almance.png
│ │ │ │ ├── background@2x.png
│ │ │ │ ├── background.png
│ │ │ │ ├── bang@2x.png
│ │ │ │ ├── bang.png
│ │ │ │ ├── close@2x.png
│ │ │ │ ├── close.png
│ │ │ │ ├── emotion@2x.png
│ │ │ │ ├── emotion.png
│ │ │ │ ├── file-transmit-background@2x.png
│ │ │ │ ├── file-transmit-background.png
│ │ │ │ ├── file-transmit-cancel@2x.png
│ │ │ │ ├── file-transmit-cancel.png
│ │ │ │ ├── file-transmit-look@2x.png
│ │ │ │ ├── file-transmit-look.png
│ │ │ │ ├── file-transmit-update@2x.png
│ │ │ │ ├── file-transmit-update.png
│ │ │ │ ├── group-info-background@2x.png
│ │ │ │ ├── group-info-background.png
│ │ │ │ ├── group-info-line@2x.png
│ │ │ │ ├── group-info-line.png
│ │ │ │ ├── group-selected@2x.png
│ │ │ │ ├── group-selected.png
│ │ │ │ ├── group-unselected@2x.png
│ │ │ │ ├── group-unselected.png
│ │ │ │ ├── input-background@2x.png
│ │ │ │ ├── input-background.png
│ │ │ │ ├── left-bar-avatar@2x.png
│ │ │ │ ├── left-bar-avatar.png
│ │ │ │ ├── left-bar-selected-background@2x.png
│ │ │ │ ├── left-bar-selected-background.png
│ │ │ │ ├── login-account@2x.png
│ │ │ │ ├── login-account.png
│ │ │ │ ├── login-avatar-background@2x.png
│ │ │ │ ├── login-avatar-background.png
│ │ │ │ ├── login-background@2x.png
│ │ │ │ ├── login-background.png
│ │ │ │ ├── login-input-background@2x.png
│ │ │ │ ├── login-input-background.png
│ │ │ │ ├── login-logining@2x.png
│ │ │ │ ├── login-logining.png
│ │ │ │ ├── login-password@2x.png
│ │ │ │ ├── login-password.png
│ │ │ │ ├── message-review-double-lastpage@2x.png
│ │ │ │ ├── message-review-double-lastpage.png
│ │ │ │ ├── message-review-double-nextpage@2x.png
│ │ │ │ ├── message-review-double-nextpage.png
│ │ │ │ ├── message-review-last-page@2x.png
│ │ │ │ ├── message-review-last-page.png
│ │ │ │ ├── message-review-nextpage@2x.png
│ │ │ │ ├── message-review-nextpage.png
│ │ │ │ ├── No-File-transfor@2x.png
│ │ │ │ ├── No-File-transfor.png
│ │ │ │ ├── person-info-background@2x.png
│ │ │ │ ├── person-info-background.png
│ │ │ │ ├── person-info-chat@2x.png
│ │ │ │ ├── person-info-chat.png
│ │ │ │ ├── Recent-cell-background@2x.png
│ │ │ │ ├── Recent-cell-background.png
│ │ │ │ ├── recent-chat-selected@2x.png
│ │ │ │ ├── recent-chat-selected.png
│ │ │ │ ├── recent-chat-unselected@2x.png
│ │ │ │ ├── recent-chat-unselected.png
│ │ │ │ ├── recent-contacts-cell-background@2x.png
│ │ │ │ ├── recent-contacts-cell-background.png
│ │ │ │ ├── screen-shot@2x.png
│ │ │ │ ├── screen-shot.png
│ │ │ │ ├── search-background@2x.png
│ │ │ │ ├── search-background.png
│ │ │ │ ├── setting@2x.png
│ │ │ │ ├── setting.png
│ │ │ │ ├── shake-window@2x.png
│ │ │ │ ├── shake-window.png
│ │ │ │ ├── shield@2x.png
│ │ │ │ ├── shield.png
│ │ │ │ ├── state-background@2x.png
│ │ │ │ ├── state-background.png
│ │ │ │ ├── state-leave@2x.png
│ │ │ │ ├── state-leave.png
│ │ │ │ ├── state-offline@2x.png
│ │ │ │ ├── state-offline.png
│ │ │ │ ├── state-online@2x.png
│ │ │ │ ├── state-online.png
│ │ │ │ ├── Teamtalk-bottom@2x.png
│ │ │ │ ├── Teamtalk-bottom.png
│ │ │ │ ├── TeamTalk-Top@2x.png
│ │ │ │ ├── TeamTalk-Top.png
│ │ │ │ ├── top@2x.png
│ │ │ │ ├── top.png
│ │ │ │ ├── top-session@2x.png
│ │ │ │ ├── top-session.png
│ │ │ │ ├── transport-file@2x.png
│ │ │ │ ├── transport-file.png
│ │ │ │ ├── unread-count-background@2x.png
│ │ │ │ ├── unread-count-background.png
│ │ │ │ ├── window-titleBar-background@2x.png
│ │ │ │ ├── window-titleBar-background.png
│ │ │ │ ├── 形状-477@2x.png
│ │ │ │ └── 形状-477.png
│ │ │ ├── panel_bg_theme_gray@2x.png
│ │ │ ├── panel_bg_theme_gray.png
│ │ │ ├── preference_divider@2x.png
│ │ │ ├── preference_divider.png
│ │ │ ├── pull-to-refresh-arrow.png
│ │ │ ├── release-to-refresh.png
│ │ │ ├── ScreenCapture_toolbar_cancel.png
│ │ │ ├── ScreenCapture_toolbar_ellipse@2x.png
│ │ │ ├── ScreenCapture_toolbar_ellipse.png
│ │ │ ├── ScreenCapture_toolbar_ok.png
│ │ │ ├── ScreenCapture_toolbar_rect@2x.png
│ │ │ ├── ScreenCapture_toolbar_rect.png
│ │ │ ├── seperator_left@2x.png
│ │ │ ├── seperator_left.png
│ │ │ ├── seperator_right@2x.png
│ │ │ ├── seperator_right.png
│ │ │ ├── shield_gray@2x.png
│ │ │ ├── shield_gray.png
│ │ │ ├── shield_red@2x.png
│ │ │ ├── shield_red.png
│ │ │ ├── tabbar_bg_theme_gray@2x.png
│ │ │ ├── tabbar_bg_theme_gray.png
│ │ │ ├── tab_bg.png
│ │ │ ├── token_field_clear_btn@2x.png
│ │ │ ├── token_field_clear_btn.png
│ │ │ ├── toolbar_bg_theme_gray@2x.png
│ │ │ └── toolbar_bg_theme_gray.png
│ │ ├── SBJson
│ │ │ ├── NSObject+SBJson.h
│ │ │ ├── NSObject+SBJson.m
│ │ │ ├── SBJson.h
│ │ │ ├── SBJsonParser.h
│ │ │ ├── SBJsonParser.m
│ │ │ ├── SBJsonStreamParserAccumulator.h
│ │ │ ├── SBJsonStreamParserAccumulator.m
│ │ │ ├── SBJsonStreamParserAdapter.h
│ │ │ ├── SBJsonStreamParserAdapter.m
│ │ │ ├── SBJsonStreamParser.h
│ │ │ ├── SBJsonStreamParser.m
│ │ │ ├── SBJsonStreamParserState.h
│ │ │ ├── SBJsonStreamParserState.m
│ │ │ ├── SBJsonStreamWriterAccumulator.h
│ │ │ ├── SBJsonStreamWriterAccumulator.m
│ │ │ ├── SBJsonStreamWriter.h
│ │ │ ├── SBJsonStreamWriter.m
│ │ │ ├── SBJsonStreamWriterState.h
│ │ │ ├── SBJsonStreamWriterState.m
│ │ │ ├── SBJsonTokeniser.h
│ │ │ ├── SBJsonTokeniser.m
│ │ │ ├── SBJsonUTF8Stream.h
│ │ │ ├── SBJsonUTF8Stream.m
│ │ │ ├── SBJsonWriter.h
│ │ │ └── SBJsonWriter.m
│ │ ├── ScreenCapture
│ │ │ ├── BackgroudView.h
│ │ │ ├── BackgroudView.m
│ │ │ ├── CaptureView.h
│ │ │ ├── CaptureView.m
│ │ │ ├── CaptureWindow.h
│ │ │ ├── CaptureWindow.m
│ │ │ ├── MTScreenCaptureModule.h
│ │ │ └── MTScreenCaptureModule.m
│ │ ├── ServiceAccount
│ │ │ ├── DDServiceAccountModule.h
│ │ │ └── DDServiceAccountModule.m
│ │ ├── Services
│ │ │ ├── DDApplicationUpdate.h
│ │ │ ├── DDApplicationUpdate.m
│ │ │ ├── DDSearch.h
│ │ │ └── DDSearch.m
│ │ ├── shortcut
│ │ │ ├── MASShortcut.h
│ │ │ ├── MASShortcut.m
│ │ │ ├── MASShortcut+Monitoring.h
│ │ │ ├── MASShortcut+Monitoring.m
│ │ │ ├── MASShortcut+UserDefaults.h
│ │ │ ├── MASShortcut+UserDefaults.m
│ │ │ ├── MASShortcutView.h
│ │ │ ├── MASShortcutView.m
│ │ │ ├── MASShortcutView+UserDefaults.h
│ │ │ └── MASShortcutView+UserDefaults.m
│ │ ├── ShortcutRecorder.framework
│ │ │ ├── Headers
│ │ │ ├── Resources
│ │ │ ├── ShortcutRecorder
│ │ │ └── Versions
│ │ │ ├── A
│ │ │ │ ├── Headers
│ │ │ │ │ ├── ShortcutRecorder.h
│ │ │ │ │ ├── SRCommon.h
│ │ │ │ │ ├── SRKeyCodeTransformer.h
│ │ │ │ │ ├── SRRecorderCell.h
│ │ │ │ │ ├── SRRecorderControl.h
│ │ │ │ │ └── SRValidator.h
│ │ │ │ ├── Resources
│ │ │ │ │ ├── ca.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── cs.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── da.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── de.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── el.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── en.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── es.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── es-MX.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── fr.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── it.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ja.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ko.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── nb.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── nl.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pl.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pt-BR.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pt.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── pt-PT.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ro.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── ru.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── sk.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── SRRemoveShortcutPressed.tif
│ │ │ │ │ ├── SRRemoveShortcutRollover.tif
│ │ │ │ │ ├── SRRemoveShortcut.tif
│ │ │ │ │ ├── SRSnapback.tiff
│ │ │ │ │ ├── sv.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── th.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ ├── zh-Hans.lproj
│ │ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ │ └── zh-Hant.lproj
│ │ │ │ │ └── ShortcutRecorder.strings
│ │ │ │ └── ShortcutRecorder
│ │ │ └── Current
│ │ ├── StateMaintenance
│ │ │ ├── DDClientState.h
│ │ │ ├── DDClientState.m
│ │ │ ├── DDClientStateMaintenanceManager.h
│ │ │ ├── DDClientStateMaintenanceManager.m
│ │ │ ├── DDCurrentUserState.h
│ │ │ ├── DDCurrentUserState.m
│ │ │ ├── StateMaintenanceManager.h
│ │ │ └── StateMaintenanceManager.m
│ │ ├── TeamTalk-Info.plist
│ │ ├── TeamTalk-Prefix.pch
│ │ └── utilities
│ │ ├── additions
│ │ │ ├── AIAttributedStringAdditions.h
│ │ │ ├── AIAttributedStringAdditions.m
│ │ │ ├── AIBezierPathAdditions.h
│ │ │ ├── AIBezierPathAdditions.m
│ │ │ ├── AIColorAdditions.h
│ │ │ ├── AIColorAdditions.m
│ │ │ ├── AIFileManagerAdditions.h
│ │ │ ├── AIFileManagerAdditions.m
│ │ │ ├── AIFontManagerAdditions.h
│ │ │ ├── AIFontManagerAdditions.m
│ │ │ ├── AIImageAdditions.h
│ │ │ ├── AIImageAdditions.m
│ │ │ ├── AIImageDrawingAdditions.h
│ │ │ ├── AIImageDrawingAdditions.m
│ │ │ ├── AIMathCompatibility.h
│ │ │ ├── AIParagraphStyleAdditions.h
│ │ │ ├── AIParagraphStyleAdditions.m
│ │ │ ├── AIPasteboardAdditions.h
│ │ │ ├── AIPasteboardAdditions.m
│ │ │ ├── AIStringUtilities.h
│ │ │ ├── AITextAttachmentAdditions.h
│ │ │ ├── AITextAttachmentAdditions.m
│ │ │ ├── AITextAttachmentExtension.h
│ │ │ ├── AITextAttachmentExtension.m
│ │ │ ├── AITextAttributes.h
│ │ │ ├── AITextAttributes.m
│ │ │ ├── AIWindowControllerAdditions.h
│ │ │ ├── AIWindowControllerAdditions.m
│ │ │ ├── DDDictionaryAdditions.h
│ │ │ ├── DDDictionaryAdditions.m
│ │ │ ├── DDSharedWriterQueue.h
│ │ │ ├── DDSharedWriterQueue.m
│ │ │ ├── DDWindowAdditions.h
│ │ │ ├── DDWindowAdditions.m
│ │ │ ├── NSEvent+DDEventAdditions.h
│ │ │ ├── NSEvent+DDEventAdditions.m
│ │ │ ├── NSFileManager+DDFileManagerAdditions.h
│ │ │ ├── NSFileManager+DDFileManagerAdditions.m
│ │ │ ├── NSString+DDStringAdditions.h
│ │ │ └── NSString+DDStringAdditions.m
│ │ ├── Constant
│ │ │ └── CONSTANT.h
│ │ ├── DDCommonApi.h
│ │ ├── DDCommonApi.m
│ │ ├── DDSound.h
│ │ ├── DDSound.m
│ │ ├── Extensions
│ │ │ ├── NSData+NSJSONSerialization.h
│ │ │ ├── NSData+NSJSONSerialization.m
│ │ │ ├── NSDictionary+MGJ.h
│ │ │ ├── NSDictionary+MGJ.m
│ │ │ ├── NSNotification+DDLogic.h
│ │ │ └── NSNotification+DDLogic.m
│ │ ├── funNewClasses
│ │ │ ├── DDMutableOwnerArray.h
│ │ │ └── DDMutableOwnerArray.m
│ │ ├── funNewControls
│ │ │ └── gridIphotoStyleView
│ │ │ ├── DDImageCollectionView.h
│ │ │ └── DDImageCollectionView.m
│ │ ├── keychainAccess
│ │ │ ├── DDKeychain.h
│ │ │ └── DDKeychain.m
│ │ ├── NSImage+Stretchable.h
│ │ ├── NSImage+Stretchable.m
│ │ ├── NSView+Addition.h
│ │ ├── NSView+Addition.m
│ │ ├── scrollbarAutoHidding
│ │ │ ├── DDAutoScrollView.h
│ │ │ └── DDAutoScrollView.m
│ │ └── ScrollToRefresh
│ │ ├── PullToRefreshClipView.h
│ │ ├── PullToRefreshClipView.m
│ │ ├── PullToRefreshDelegate.h
│ │ ├── PullToRefreshScrollView.h
│ │ └── PullToRefreshScrollView.m
│ ├── TeamTalkTests
│ │ ├── en.lproj
│ │ │ └── InfoPlist.strings
│ │ ├── TeamTalkTests-Info.plist
│ │ └── TeamTalkTests.m
│ ├── TeamTalk.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata
│ │ │ │ └── TeamTalk.xccheckout
│ │ │ └── xcuserdata
│ │ │ └── scorpio.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ └── scorpio.xcuserdatad
│ │ └── xcschemes
│ │ ├── TeamTalk.xcscheme
│ │ └── xcschememanagement.plist
│ └── TeamTalk.xcworkspace
│ └── contents.xcworkspacedata
├── pb
│ ├── create.sh
│ ├── IM.BaseDefine.proto
│ ├── IM.Buddy.proto
│ ├── IM.File.proto
│ ├── IM.Group.proto
│ ├── IM.Login.proto
│ ├── IM.Message.proto
│ ├── IM.Other.proto
│ ├── IM.Server.proto
│ ├── IM.SwitchService.proto
│ └── sync.sh
├── php
│ ├── application
│ │ ├── cache
│ │ │ └── index.html
│ │ ├── config
│ │ │ ├── autoload.php
│ │ │ ├── config.php
│ │ │ ├── constants.php
│ │ │ ├── database.php
│ │ │ ├── doctypes.php
│ │ │ ├── foreign_chars.php
│ │ │ ├── hooks.php
│ │ │ ├── index.html
│ │ │ ├── migration.php
│ │ │ ├── mimes.php
│ │ │ ├── profiler.php
│ │ │ ├── routes.php
│ │ │ ├── smileys.php
│ │ │ └── user_agents.php
│ │ ├── controllers
│ │ │ ├── api.php
│ │ │ ├── auth.php
│ │ │ ├── config.php
│ │ │ ├── depart.php
│ │ │ ├── discovery.php
│ │ │ ├── group.php
│ │ │ ├── home.php
│ │ │ ├── index.html
│ │ │ └── user.php
│ │ ├── core
│ │ │ ├── index.html
│ │ │ ├── TT_Controller.php
│ │ │ └── TT_Model.php
│ │ ├── errors
│ │ │ ├── error_404.php
│ │ │ ├── error_db.php
│ │ │ ├── error_general.php
│ │ │ ├── error_php.php
│ │ │ └── index.html
│ │ ├── helpers
│ │ │ └── index.html
│ │ ├── hooks
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── language
│ │ │ ├── english
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── libraries
│ │ │ ├── image_moo.php
│ │ │ └── index.html
│ │ ├── logs
│ │ │ └── index.html
│ │ ├── models
│ │ │ ├── admin_model.php
│ │ │ ├── config_model.php
│ │ │ ├── depart_model.php
│ │ │ ├── discovery_model.php
│ │ │ ├── group_model.php
│ │ │ ├── grouprelation_model.php
│ │ │ ├── index.html
│ │ │ └── user_model.php
│ │ ├── third_party
│ │ │ └── index.html
│ │ └── views
│ │ ├── auth
│ │ │ └── login.php
│ │ ├── base
│ │ │ ├── depart.php
│ │ │ ├── discovery.php
│ │ │ ├── footer.php
│ │ │ ├── group.php
│ │ │ ├── header.php
│ │ │ ├── home.php
│ │ │ ├── system.php
│ │ │ └── user.php
│ │ ├── index.html
│ │ └── welcome_message.php
│ ├── download
│ │ ├── 1427520718.jpg
│ │ ├── 1427520748.jpg
│ │ ├── 1427520832.jpg
│ │ ├── 1427521158.jpg
│ │ ├── 1427521169.jpg
│ │ ├── 1427521192.jpg
│ │ ├── 1427521202.jpg
│ │ ├── 1427521685.jpg
│ │ ├── 1427521757.jpg
│ │ ├── 1427522826.jpg
│ │ ├── 1427523084.jpg
│ │ ├── 1427523217.jpg
│ │ ├── 1428048002.png
│ │ ├── 1428048014.jpg
│ │ ├── 1428048238.jpg
│ │ ├── 1428048244.jpg
│ │ ├── 1428048250.png
│ │ ├── 1428048274.png
│ │ ├── 1428048305.png
│ │ ├── 1428048339.png
│ │ ├── 1428048381.jpg
│ │ ├── 1428048406.png
│ │ ├── 1428049085.png
│ │ ├── 1.jpg
│ │ └── logo.png
│ ├── index.php
│ ├── license.txt
│ ├── system
│ │ ├── core
│ │ │ ├── Benchmark.php
│ │ │ ├── CodeIgniter.php
│ │ │ ├── Common.php
│ │ │ ├── Config.php
│ │ │ ├── Controller.php
│ │ │ ├── Exceptions.php
│ │ │ ├── Hooks.php
│ │ │ ├── index.html
│ │ │ ├── Input.php
│ │ │ ├── Lang.php
│ │ │ ├── Loader.php
│ │ │ ├── Model.php
│ │ │ ├── Output.php
│ │ │ ├── Router.php
│ │ │ ├── Security.php
│ │ │ ├── URI.php
│ │ │ └── Utf8.php
│ │ ├── database
│ │ │ ├── DB_active_rec.php
│ │ │ ├── DB_cache.php
│ │ │ ├── DB_driver.php
│ │ │ ├── DB_forge.php
│ │ │ ├── DB.php
│ │ │ ├── DB_result.php
│ │ │ ├── DB_utility.php
│ │ │ ├── drivers
│ │ │ │ ├── cubrid
│ │ │ │ │ ├── cubrid_driver.php
│ │ │ │ │ ├── cubrid_forge.php
│ │ │ │ │ ├── cubrid_result.php
│ │ │ │ │ ├── cubrid_utility.php
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ ├── mssql
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── mssql_driver.php
│ │ │ │ │ ├── mssql_forge.php
│ │ │ │ │ ├── mssql_result.php
│ │ │ │ │ └── mssql_utility.php
│ │ │ │ ├── mysql
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── mysql_driver.php
│ │ │ │ │ ├── mysql_forge.php
│ │ │ │ │ ├── mysql_result.php
│ │ │ │ │ └── mysql_utility.php
│ │ │ │ ├── mysqli
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── mysqli_driver.php
│ │ │ │ │ ├── mysqli_forge.php
│ │ │ │ │ ├── mysqli_result.php
│ │ │ │ │ └── mysqli_utility.php
│ │ │ │ ├── oci8
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── oci8_driver.php
│ │ │ │ │ ├── oci8_forge.php
│ │ │ │ │ ├── oci8_result.php
│ │ │ │ │ └── oci8_utility.php
│ │ │ │ ├── odbc
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── odbc_driver.php
│ │ │ │ │ ├── odbc_forge.php
│ │ │ │ │ ├── odbc_result.php
│ │ │ │ │ └── odbc_utility.php
│ │ │ │ ├── pdo
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── pdo_driver.php
│ │ │ │ │ ├── pdo_forge.php
│ │ │ │ │ ├── pdo_result.php
│ │ │ │ │ └── pdo_utility.php
│ │ │ │ ├── postgre
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── postgre_driver.php
│ │ │ │ │ ├── postgre_forge.php
│ │ │ │ │ ├── postgre_result.php
│ │ │ │ │ └── postgre_utility.php
│ │ │ │ ├── sqlite
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── sqlite_driver.php
│ │ │ │ │ ├── sqlite_forge.php
│ │ │ │ │ ├── sqlite_result.php
│ │ │ │ │ └── sqlite_utility.php
│ │ │ │ └── sqlsrv
│ │ │ │ ├── index.html
│ │ │ │ ├── sqlsrv_driver.php
│ │ │ │ ├── sqlsrv_forge.php
│ │ │ │ ├── sqlsrv_result.php
│ │ │ │ └── sqlsrv_utility.php
│ │ │ └── index.html
│ │ ├── fonts
│ │ │ ├── index.html
│ │ │ └── texb.ttf
│ │ ├── helpers
│ │ │ ├── array_helper.php
│ │ │ ├── captcha_helper.php
│ │ │ ├── cookie_helper.php
│ │ │ ├── date_helper.php
│ │ │ ├── directory_helper.php
│ │ │ ├── download_helper.php
│ │ │ ├── email_helper.php
│ │ │ ├── file_helper.php
│ │ │ ├── form_helper.php
│ │ │ ├── html_helper.php
│ │ │ ├── index.html
│ │ │ ├── inflector_helper.php
│ │ │ ├── language_helper.php
│ │ │ ├── number_helper.php
│ │ │ ├── path_helper.php
│ │ │ ├── security_helper.php
│ │ │ ├── smiley_helper.php
│ │ │ ├── string_helper.php
│ │ │ ├── text_helper.php
│ │ │ ├── typography_helper.php
│ │ │ ├── url_helper.php
│ │ │ └── xml_helper.php
│ │ ├── index.html
│ │ ├── language
│ │ │ ├── english
│ │ │ │ ├── calendar_lang.php
│ │ │ │ ├── date_lang.php
│ │ │ │ ├── db_lang.php
│ │ │ │ ├── email_lang.php
│ │ │ │ ├── form_validation_lang.php
│ │ │ │ ├── ftp_lang.php
│ │ │ │ ├── imglib_lang.php
│ │ │ │ ├── index.html
│ │ │ │ ├── migration_lang.php
│ │ │ │ ├── number_lang.php
│ │ │ │ ├── profiler_lang.php
│ │ │ │ ├── unit_test_lang.php
│ │ │ │ └── upload_lang.php
│ │ │ └── index.html
│ │ └── libraries
│ │ ├── Cache
│ │ │ ├── Cache.php
│ │ │ ├── drivers
│ │ │ │ ├── Cache_apc.php
│ │ │ │ ├── Cache_dummy.php
│ │ │ │ ├── Cache_file.php
│ │ │ │ ├── Cache_memcached.php
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Calendar.php
│ │ ├── Cart.php
│ │ ├── Driver.php
│ │ ├── Email.php
│ │ ├── Encrypt.php
│ │ ├── Form_validation.php
│ │ ├── Ftp.php
│ │ ├── Image_lib.php
│ │ ├── index.html
│ │ ├── javascript
│ │ │ ├── index.html
│ │ │ └── Jquery.php
│ │ ├── Javascript.php
│ │ ├── Log.php
│ │ ├── Migration.php
│ │ ├── Pagination.php
│ │ ├── Parser.php
│ │ ├── Profiler.php
│ │ ├── Session.php
│ │ ├── Sha1.php
│ │ ├── Table.php
│ │ ├── Trackback.php
│ │ ├── Typography.php
│ │ ├── Unit_test.php
│ │ ├── Upload.php
│ │ ├── User_agent.php
│ │ ├── Xmlrpc.php
│ │ ├── Xmlrpcs.php
│ │ └── Zip.php
│ └── ui
│ ├── css
│ │ ├── bootstrap.min.css
│ │ ├── font-awesome.min.css
│ │ ├── ionicons.min.css
│ │ ├── Jcrop.gif
│ │ ├── jquery.Jcrop.css
│ │ ├── jquery.Jcrop.min.css
│ │ ├── main.css
│ │ └── simplemodal.css
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ └── glyphicons-halflings-regular.woff
│ └── js
│ ├── bootstrap.min.js
│ ├── jquery-1.11.1.min.js
│ ├── jquery.color.js
│ ├── jquery.Jcrop.js
│ ├── jquery.Jcrop.min.js
│ ├── jquery.min.js
│ ├── juicer.js
│ └── simple-modal.js
├── README.md
├── server
│ ├── run
│ │ ├── monitor.sh
│ │ └── restart.sh
│ └── src
│ ├── base
│ │ ├── atomic.h
│ │ ├── Base64.cpp
│ │ ├── Base64.h
│ │ ├── BaseSocket.cpp
│ │ ├── BaseSocket.h
│ │ ├── cmake_install.cmake
│ │ ├── CMakeLists.txt
│ │ ├── Condition.cpp
│ │ ├── Condition.h
│ │ ├── ConfigFileReader.cpp
│ │ ├── ConfigFileReader.h
│ │ ├── EncDec.cpp
│ │ ├── EncDec.h
│ │ ├── EventDispatch.cpp
│ │ ├── EventDispatch.h
│ │ ├── HttpClient.cpp
│ │ ├── HttpClient.h
│ │ ├── http_parser.cpp
│ │ ├── http_parser.h
│ │ ├── HttpParserWrapper.cpp
│ │ ├── HttpParserWrapper.h
│ │ ├── imconn.cpp
│ │ ├── imconn.h
│ │ ├── im_conn_util.cpp
│ │ ├── im_conn_util.h
│ │ ├── ImPduBase.cpp
│ │ ├── ImPduBase.h
│ │ ├── impdu.h
│ │ ├── jsoncpp
│ │ │ ├── json
│ │ │ │ ├── assertions.h
│ │ │ │ ├── autolink.h
│ │ │ │ ├── config.h
│ │ │ │ ├── features.h
│ │ │ │ ├── forwards.h
│ │ │ │ ├── json.h
│ │ │ │ ├── reader.h
│ │ │ │ ├── value.h
│ │ │ │ └── writer.h
│ │ │ ├── json_batchallocator.h
│ │ │ ├── json_internalarray.inl
│ │ │ ├── json_internalmap.inl
│ │ │ ├── json_reader.cpp
│ │ │ ├── json_tool.h
│ │ │ ├── json_value.cpp
│ │ │ ├── json_valueiterator.inl
│ │ │ └── json_writer.cpp
│ │ ├── libbase.a
│ │ ├── Lock.cpp
│ │ ├── Lock.h
│ │ ├── log4z.cpp
│ │ ├── log4z.h
│ │ ├── netlib.cpp
│ │ ├── netlib.h
│ │ ├── ostype.h
│ │ ├── pb
│ │ │ └── protocol
│ │ │ ├── IM.BaseDefine.pb.cc
│ │ │ ├── IM.BaseDefine.pb.h
│ │ │ ├── IM.Buddy.pb.cc
│ │ │ ├── IM.Buddy.pb.h
│ │ │ ├── IM.File.pb.cc
│ │ │ ├── IM.File.pb.h
│ │ │ ├── IM.Group.pb.cc
│ │ │ ├── IM.Group.pb.h
│ │ │ ├── IM.Login.pb.cc
│ │ │ ├── IM.Login.pb.h
│ │ │ ├── IM.Message.pb.cc
│ │ │ ├── IM.Message.pb.h
│ │ │ ├── IM.Other.pb.cc
│ │ │ ├── IM.Other.pb.h
│ │ │ ├── IM.Server.pb.cc
│ │ │ ├── IM.Server.pb.h
│ │ │ ├── IM.SwitchService.pb.cc
│ │ │ └── IM.SwitchService.pb.h
│ │ ├── public_define.h
│ │ ├── security
│ │ │ ├── lib
│ │ │ │ ├── linux
│ │ │ │ │ └── libsecurity.a
│ │ │ │ └── mac
│ │ │ │ └── libsecurity.a
│ │ │ └── security.h
│ │ ├── ServInfo.cpp
│ │ ├── ServInfo.h
│ │ ├── singleton.h
│ │ ├── slog
│ │ │ └── slog_api.h
│ │ ├── Task.h
│ │ ├── Thread.cpp
│ │ ├── Thread.h
│ │ ├── ThreadPool.cpp
│ │ ├── ThreadPool.h
│ │ ├── TokenValidator.cpp
│ │ ├── TokenValidator.h
│ │ ├── util.cpp
│ │ ├── util.h
│ │ ├── UtilPdu.cpp
│ │ ├── UtilPdu.h
│ │ └── version.h
│ ├── build.sh
│ ├── build_ubuntu.sh
│ ├── db_proxy_server
│ │ ├── async.h
│ │ ├── AutoPool.cpp
│ │ ├── AutoPool.h
│ │ ├── business
│ │ │ ├── AudioModel.cpp
│ │ │ ├── AudioModel.h
│ │ │ ├── Common.h
│ │ │ ├── DepartAction.cpp
│ │ │ ├── DepartAction.h
│ │ │ ├── DepartModel.cpp
│ │ │ ├── DepartModel.h
│ │ │ ├── ExterLogin.cpp
│ │ │ ├── ExterLogin.h
│ │ │ ├── FileAction.cpp
│ │ │ ├── FileAction.h
│ │ │ ├── FileModel.cpp
│ │ │ ├── FileModel.h
│ │ │ ├── GroupAction.cpp
│ │ │ ├── GroupAction.h
│ │ │ ├── GroupMessageModel.cpp
│ │ │ ├── GroupMessageModel.h
│ │ │ ├── GroupModel.cpp
│ │ │ ├── GroupModel.h
│ │ │ ├── InterLogin.cpp
│ │ │ ├── InterLogin.h
│ │ │ ├── Login.cpp
│ │ │ ├── Login.h
│ │ │ ├── LoginStrategy.h
│ │ │ ├── MessageContent.cpp
│ │ │ ├── MessageContent.h
│ │ │ ├── MessageCounter.cpp
│ │ │ ├── MessageCounter.h
│ │ │ ├── MessageModel.cpp
│ │ │ ├── MessageModel.h
│ │ │ ├── RecentSession.cpp
│ │ │ ├── RecentSession.h
│ │ │ ├── RelationModel.cpp
│ │ │ ├── RelationModel.h
│ │ │ ├── SessionModel.cpp
│ │ │ ├── SessionModel.h
│ │ │ ├── UserAction.cpp
│ │ │ ├── UserAction.h
│ │ │ ├── UserModel.cpp
│ │ │ └── UserModel.h
│ │ ├── CachePool.cpp
│ │ ├── CachePool.h
│ │ ├── CMakeLists.txt
│ │ ├── DBPool.cpp
│ │ ├── DBPool.h
│ │ ├── dbproxyserver.conf
│ │ ├── db_proxy_server.cpp
│ │ ├── HandlerMap.cpp
│ │ ├── HandlerMap.h
│ │ ├── hiredis.h
│ │ ├── libhiredis.a
│ │ ├── log4cxx.properties
│ │ ├── ProxyConn.cpp
│ │ ├── ProxyConn.h
│ │ ├── ProxyTask.cpp
│ │ ├── ProxyTask.h
│ │ ├── read.h
│ │ ├── README
│ │ ├── sds.h
│ │ ├── SyncCenter.cpp
│ │ └── SyncCenter.h
│ ├── file_server
│ │ ├── CMakeLists.txt
│ │ ├── config_util.cpp
│ │ ├── config_util.h
│ │ ├── file_client_conn.cpp
│ │ ├── file_client_conn.h
│ │ ├── file_msg_server_conn.cpp
│ │ ├── file_msg_server_conn.h
│ │ ├── fileserver.conf
│ │ ├── file_server.cpp
│ │ ├── file_server_util.h
│ │ ├── log4cxx.properties
│ │ ├── offline_file_util.h
│ │ ├── transfer_task.cpp
│ │ ├── transfer_task.h
│ │ ├── transfer_task_manager.cpp
│ │ └── transfer_task_manager.h
│ ├── hiredis
│ │ └── hiredis-master.zip
│ ├── http_msg_server
│ │ ├── AttachData.cpp
│ │ ├── AttachData.h
│ │ ├── CMakeLists.txt
│ │ ├── DBServConn.cpp
│ │ ├── DBServConn.h
│ │ ├── HttpConn.cpp
│ │ ├── HttpConn.h
│ │ ├── httpmsgserver.conf
│ │ ├── http_msg_server.cpp
│ │ ├── HttpPdu.cpp
│ │ ├── HttpPdu.h
│ │ ├── HttpQuery.cpp
│ │ ├── HttpQuery.h
│ │ ├── log4cxx.properties
│ │ ├── RouteServConn.cpp
│ │ └── RouteServConn.h
│ ├── lib
│ │ └── libbase.a
│ ├── libsecurity
│ │ ├── android
│ │ │ ├── build.sh
│ │ │ └── jni
│ │ │ ├── aes_core.cpp
│ │ │ ├── aes.h
│ │ │ ├── aes_locl.h
│ │ │ ├── Android.mk
│ │ │ ├── Application.mk
│ │ │ ├── base64.cpp
│ │ │ ├── base64.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── md5.cpp
│ │ │ ├── md5.h
│ │ │ └── security.cpp
│ │ ├── include
│ │ │ └── security.h
│ │ ├── ios
│ │ │ └── security.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcshareddata
│ │ │ │ │ └── security.xccheckout
│ │ │ │ └── xcuserdata
│ │ │ │ └── lanhu.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcuserdata
│ │ │ ├── lanhu.xcuserdatad
│ │ │ │ ├── xcdebugger
│ │ │ │ │ └── Breakpoints_v2.xcbkptlist
│ │ │ │ └── xcschemes
│ │ │ │ ├── security.xcscheme
│ │ │ │ └── xcschememanagement.plist
│ │ │ └── liuxueyuan.xcuserdatad
│ │ │ └── xcschemes
│ │ │ ├── security.xcscheme
│ │ │ └── xcschememanagement.plist
│ │ ├── lib
│ │ │ ├── android
│ │ │ │ └── src
│ │ │ │ └── com
│ │ │ │ └── mogujie
│ │ │ │ └── tt
│ │ │ │ └── Security.java
│ │ │ ├── ios
│ │ │ │ ├── devices
│ │ │ │ │ └── README
│ │ │ │ └── simulator
│ │ │ │ └── README
│ │ │ ├── linux
│ │ │ │ └── README
│ │ │ ├── mac
│ │ │ │ └── README
│ │ │ ├── unix
│ │ │ │ └── README
│ │ │ └── win
│ │ │ ├── debug
│ │ │ │ ├── README
│ │ │ │ └── security.lib
│ │ │ └── release
│ │ │ ├── README
│ │ │ └── security.lib
│ │ ├── src
│ │ │ ├── aes_core.cpp
│ │ │ ├── aes.h
│ │ │ ├── aes_locl.h
│ │ │ ├── Android.mk
│ │ │ ├── Application.mk
│ │ │ ├── base64.cpp
│ │ │ ├── base64.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── md5.cpp
│ │ │ ├── md5.h
│ │ │ └── security.cpp
│ │ ├── unix
│ │ │ └── build.sh
│ │ └── win
│ │ └── build.bat
│ ├── log4cxx
│ │ ├── console.cpp
│ │ ├── inputstreamreader.cpp
│ │ └── socketoutputstream.cpp
│ ├── login_server
│ │ ├── CMakeLists.txt
│ │ ├── HttpConn.cpp
│ │ ├── HttpConn.h
│ │ ├── ipparser.cpp
│ │ ├── ipparser.h
│ │ ├── log4cxx.properties
│ │ ├── LoginConn.cpp
│ │ ├── LoginConn.h
│ │ ├── loginserver.conf
│ │ └── login_server.cpp
│ ├── make_hiredis.sh
│ ├── make_log4cxx.sh
│ ├── make_mariadb.sh
│ ├── make_protobuf.sh
│ ├── msfs
│ │ ├── CMakeLists.txt
│ │ ├── CriticalSection.h
│ │ ├── FileLin.cpp
│ │ ├── FileLin.h
│ │ ├── FileManager.cpp
│ │ ├── FileManager.h
│ │ ├── HttpConn.cpp
│ │ ├── HttpConn.h
│ │ ├── main.cpp
│ │ ├── msfs.conf.example
│ │ ├── Portable.h
│ │ ├── README
│ │ ├── StringUtils.cpp
│ │ └── StringUtils.h
│ ├── msg_server
│ │ ├── AttachData.cpp
│ │ ├── AttachData.h
│ │ ├── CMakeLists.txt
│ │ ├── DBServConn.cpp
│ │ ├── DBServConn.h
│ │ ├── FileHandler.cpp
│ │ ├── FileHandler.h
│ │ ├── FileServConn.cpp
│ │ ├── FileServConn.h
│ │ ├── GroupChat.cpp
│ │ ├── GroupChat.h
│ │ ├── ImUser.cpp
│ │ ├── ImUser.h
│ │ ├── jsonxx.cpp
│ │ ├── jsonxx.h
│ │ ├── log4cxx.properties
│ │ ├── LoginServConn.cpp
│ │ ├── LoginServConn.h
│ │ ├── MsgConn.cpp
│ │ ├── MsgConn.h
│ │ ├── msgserver.conf
│ │ ├── msg_server.cpp
│ │ ├── policy.xml
│ │ ├── PushServConn.cpp
│ │ ├── PushServConn.h
│ │ ├── RouteServConn.cpp
│ │ └── RouteServConn.h
│ ├── protobuf
│ │ └── protobuf-2.6.1.tar.gz
│ ├── push_server
│ │ ├── apns_client.cpp
│ │ ├── apns_client.h
│ │ ├── apns_client_handler.cpp
│ │ ├── apns_client_handler.h
│ │ ├── apns_feedback_handler.cpp
│ │ ├── apns_feedback_handler.h
│ │ ├── apns_msg.cpp
│ │ ├── apns_msg.h
│ │ ├── bufferloop
│ │ │ └── buffer_loop.hpp
│ │ ├── byte_stream.cpp
│ │ ├── byte_stream.h
│ │ ├── CMakeLists.txt
│ │ ├── ConfigFileReader.cpp
│ │ ├── ConfigFileReader.h
│ │ ├── jsonxx.cpp
│ │ ├── jsonxx.h
│ │ ├── log4cxx.properties
│ │ ├── main.cpp
│ │ ├── pdu_msg.cpp
│ │ ├── pdu_msg.h
│ │ ├── push_app.cpp
│ │ ├── push_app_define.h
│ │ ├── push_app.h
│ │ ├── push_define.h
│ │ ├── pushserver.conf
│ │ ├── push_server.cpp
│ │ ├── push_server.h
│ │ ├── push_server_handler.cpp
│ │ ├── push_server_handler.h
│ │ ├── push_session.cpp
│ │ ├── push_session.h
│ │ ├── push_session_handler.cpp
│ │ ├── push_session_handler.h
│ │ ├── session_manager.cpp
│ │ ├── session_manager.h
│ │ ├── sigslot
│ │ │ └── sigslot.h
│ │ ├── socket
│ │ │ ├── base_handler.hpp
│ │ │ ├── base_io_stream.cpp
│ │ │ ├── base_io_stream.h
│ │ │ ├── base_msg.h
│ │ │ ├── base_socket.hpp
│ │ │ ├── base_thread.hpp
│ │ │ ├── epoll_io_loop.cpp
│ │ │ ├── epoll_io_loop.h
│ │ │ ├── io_loop.cpp
│ │ │ ├── io_loop.h
│ │ │ ├── socket_io_define.h
│ │ │ ├── socket_io.h
│ │ │ ├── ssl_client_async.cpp
│ │ │ ├── ssl_client_async.h
│ │ │ ├── tcp_client_async.cpp
│ │ │ ├── tcp_client_async.h
│ │ │ ├── tcp_server.cpp
│ │ │ ├── tcp_server.h
│ │ │ ├── tcp_session_async.cpp
│ │ │ └── tcp_session_async.h
│ │ ├── thread
│ │ │ └── base_thread.hpp
│ │ ├── timer
│ │ │ └── Timer.hpp
│ │ └── type
│ │ └── base_type.h
│ ├── README.md
│ ├── route_server
│ │ ├── CMakeLists.txt
│ │ ├── log4cxx.properties
│ │ ├── RouteConn.cpp
│ │ ├── RouteConn.h
│ │ ├── routeserver.conf
│ │ ├── route_server.cpp
│ │ ├── UserInfo.cpp
│ │ └── UserInfo.h
│ ├── slog
│ │ ├── CMakeLists.txt
│ │ ├── log4cxx.properties
│ │ ├── slog_api.cpp
│ │ └── slog_api.h
│ ├── sync_lib_for_zip.sh
│ ├── sync_lib.sh
│ ├── test
│ │ ├── ClientConn.cpp
│ │ ├── ClientConn.h
│ │ ├── Client.cpp
│ │ ├── Client.h
│ │ ├── Common.h
│ │ ├── IPacketCallback.h
│ │ ├── liblog4cxx.dylib
│ │ ├── libslog.dylib
│ │ ├── log4cxx.properties
│ │ ├── Makefile
│ │ ├── message.wav
│ │ ├── playsound.h
│ │ ├── playsound.mm
│ │ ├── SeqAlloctor.cpp
│ │ ├── SeqAlloctor.h
│ │ └── test_client.cpp
│ └── tools
│ ├── daeml.cpp
│ ├── Makefile
│ └── monitor.sh
└── win-client
├── 3rdParty
│ ├── cximage600_full.zip
│ ├── httpclient-master.zip
│ ├── include
│ │ │ └── protobuf
│ │ │ ├── compiler
│ │ │ │ ├── code_generator.h
│ │ │ │ ├── command_line_interface.h
│ │ │ │ ├── cpp
│ │ │ │ │ └── cpp_generator.h
│ │ │ │ ├── importer.h
│ │ │ │ ├── java
│ │ │ │ │ └── java_generator.h
│ │ │ │ ├── parser.h
│ │ │ │ ├── plugin.h
│ │ │ │ └── python
│ │ │ │ └── python_generator.h
│ │ │ ├── descriptor_database.h
│ │ │ ├── descriptor.h
│ │ │ ├── descriptor.pb.h
│ │ │ ├── dynamic_message.h
│ │ │ ├── extension_set.h
│ │ │ ├── generated_enum_reflection.h
│ │ │ ├── generated_message_reflection.h
│ │ │ ├── generated_message_util.h
│ │ │ ├── io
│ │ │ │ ├── coded_stream.h
│ │ │ │ ├── gzip_stream.h
│ │ │ │ ├── printer.h
│ │ │ │ ├── strtod.h
│ │ │ │ ├── tokenizer.h
│ │ │ │ ├── zero_copy_stream.h
│ │ │ │ ├── zero_copy_stream_impl.h
│ │ │ │ └── zero_copy_stream_impl_lite.h
│ │ │ ├── message.h
│ │ │ ├── message_lite.h
│ │ │ ├── reflection_ops.h
│ │ │ ├── repeated_field.h
│ │ │ ├── service.h
│ │ │ ├── stubs
│ │ │ │ ├── atomicops.h
│ │ │ │ ├── atomicops_internals_x86_msvc.h
│ │ │ │ ├── common.h
│ │ │ │ ├── once.h
│ │ │ │ ├── platform_macros.h
│ │ │ │ ├── stl_util.h
│ │ │ │ ├── template_util.h
│ │ │ │ └── type_traits.h
│ │ │ ├── text_format.h
│ │ │ ├── unknown_field_set.h
│ │ │ ├── wire_format.h
│ │ │ ├── wire_format_lite.h
│ │ │ └── wire_format_lite_inl.h
│ │ ├── security.h
│ │ └── sqlite3
│ │ └── sqlite3.h
│ ├── jsoncpp-master.zip
│ ├── lib
│ │ ├── debug
│ │ │ ├── libprotobuf.lib
│ │ │ ├── libprotobuf-lite.lib
│ │ │ └── security.lib
│ │ ├── release
│ │ │ ├── libprotobuf.lib
│ │ │ ├── libprotobuf-lite.lib
│ │ │ └── security.lib
│ │ └── sqlite3.lib
│ ├── libogg-1.3.2.zip
│ ├── protobuf-2.6.1.zip
│ ├── readme.txt
│ ├── src
│ │ ├── cxImage
│ │ │ ├── cxImage
│ │ │ │ ├── xfile.h
│ │ │ │ ├── ximabmp.cpp
│ │ │ │ ├── ximabmp.h
│ │ │ │ ├── ximacfg.h
│ │ │ │ ├── ximadef.h
│ │ │ │ ├── ximaenc.cpp
│ │ │ │ ├── ximaexif.cpp
│ │ │ │ ├── ximage.cpp
│ │ │ │ ├── ximage.h
│ │ │ │ ├── ximagif.cpp
│ │ │ │ ├── ximagif.h
│ │ │ │ ├── ximainfo.cpp
│ │ │ │ ├── ximaiter.h
│ │ │ │ ├── ximajpg.cpp
│ │ │ │ ├── ximajpg.h
│ │ │ │ ├── ximalpha.cpp
│ │ │ │ ├── ximalyr.cpp
│ │ │ │ ├── ximapal.cpp
│ │ │ │ ├── ximapng.cpp
│ │ │ │ ├── ximapng.h
│ │ │ │ ├── ximath.h
│ │ │ │ ├── ximatran.cpp
│ │ │ │ ├── ximawbmp.cpp
│ │ │ │ ├── ximawbmp.h
│ │ │ │ ├── ximawnd.cpp
│ │ │ │ ├── xiofile.h
│ │ │ │ ├── xmemfile.cpp
│ │ │ │ └── xmemfile.h
│ │ │ ├── jpeg
│ │ │ │ ├── change.log
│ │ │ │ ├── filelist.txt
│ │ │ │ ├── jcapimin.c
│ │ │ │ ├── jcapistd.c
│ │ │ │ ├── jccoefct.c
│ │ │ │ ├── jccolor.c
│ │ │ │ ├── jcdctmgr.c
│ │ │ │ ├── jchuff.c
│ │ │ │ ├── jchuff.h
│ │ │ │ ├── jcinit.c
│ │ │ │ ├── jcmainct.c
│ │ │ │ ├── jcmarker.c
│ │ │ │ ├── jcmaster.c
│ │ │ │ ├── jcomapi.c
│ │ │ │ ├── jconfig.h
│ │ │ │ ├── jcparam.c
│ │ │ │ ├── jcphuff.c
│ │ │ │ ├── jcprepct.c
│ │ │ │ ├── jcsample.c
│ │ │ │ ├── jctrans.c
│ │ │ │ ├── jdapimin.c
│ │ │ │ ├── jdapistd.c
│ │ │ │ ├── jdatadst.c
│ │ │ │ ├── jdatasrc.c
│ │ │ │ ├── jdcoefct.c
│ │ │ │ ├── jdcolor.c
│ │ │ │ ├── jdct.h
│ │ │ │ ├── jddctmgr.c
│ │ │ │ ├── jdhuff.c
│ │ │ │ ├── jdhuff.h
│ │ │ │ ├── jdinput.c
│ │ │ │ ├── jdmainct.c
│ │ │ │ ├── jdmarker.c
│ │ │ │ ├── jdmaster.c
│ │ │ │ ├── jdmerge.c
│ │ │ │ ├── jdphuff.c
│ │ │ │ ├── jdpostct.c
│ │ │ │ ├── jdsample.c
│ │ │ │ ├── jdtrans.c
│ │ │ │ ├── jerror.c
│ │ │ │ ├── jerror.h
│ │ │ │ ├── jfdctflt.c
│ │ │ │ ├── jfdctfst.c
│ │ │ │ ├── jfdctint.c
│ │ │ │ ├── jidctflt.c
│ │ │ │ ├── jidctfst.c
│ │ │ │ ├── jidctint.c
│ │ │ │ ├── jidctred.c
│ │ │ │ ├── jinclude.h
│ │ │ │ ├── jmemmgr.c
│ │ │ │ ├── jmemnobs.c
│ │ │ │ ├── jmemsys.h
│ │ │ │ ├── jmorecfg.h
│ │ │ │ ├── Jpeg.dsp
│ │ │ │ ├── Jpeg.dsw
│ │ │ │ ├── jpegint.h
│ │ │ │ ├── jpeglib.h
│ │ │ │ ├── jquant1.c
│ │ │ │ ├── jquant2.c
│ │ │ │ ├── jutils.c
│ │ │ │ ├── jversion.h
│ │ │ │ └── Readme.txt
│ │ │ ├── png
│ │ │ │ ├── ANNOUNCE
│ │ │ │ ├── CHANGES
│ │ │ │ ├── INSTALL
│ │ │ │ ├── KNOWNBUG
│ │ │ │ ├── libpng-1.2.24.txt
│ │ │ │ ├── LICENSE
│ │ │ │ ├── png.c
│ │ │ │ ├── pngconf.h
│ │ │ │ ├── png.dsp
│ │ │ │ ├── png.dsw
│ │ │ │ ├── pngerror.c
│ │ │ │ ├── pnggccrd.c
│ │ │ │ ├── pngget.c
│ │ │ │ ├── png.h
│ │ │ │ ├── pngmem.c
│ │ │ │ ├── pngpread.c
│ │ │ │ ├── pngread.c
│ │ │ │ ├── pngrio.c
│ │ │ │ ├── pngrtran.c
│ │ │ │ ├── pngrutil.c
│ │ │ │ ├── pngset.c
│ │ │ │ ├── pngtrans.c
│ │ │ │ ├── pngvcrd.c
│ │ │ │ ├── pngwio.c
│ │ │ │ ├── pngwrite.c
│ │ │ │ ├── pngwtran.c
│ │ │ │ ├── pngwutil.c
│ │ │ │ ├── README
│ │ │ │ ├── TODO
│ │ │ │ └── Y2KINFO
│ │ │ └── zlib
│ │ │ ├── adler32.c
│ │ │ ├── algorithm.txt
│ │ │ ├── ChangeLog
│ │ │ ├── compress.c
│ │ │ ├── crc32.c
│ │ │ ├── crc32.h
│ │ │ ├── deflate.c
│ │ │ ├── deflate.h
│ │ │ ├── FAQ
│ │ │ ├── gzio.c
│ │ │ ├── infback.c
│ │ │ ├── inffast.c
│ │ │ ├── inffast.h
│ │ │ ├── inffixed.h
│ │ │ ├── inflate.c
│ │ │ ├── inflate.h
│ │ │ ├── inftrees.c
│ │ │ ├── inftrees.h
│ │ │ ├── README
│ │ │ ├── trees.c
│ │ │ ├── trees.h
│ │ │ ├── uncompr.c
│ │ │ ├── zconf.h
│ │ │ ├── zconf.in.h
│ │ │ ├── zlib.dsp
│ │ │ ├── zlib.dsw
│ │ │ ├── zlib.h
│ │ │ ├── zutil.c
│ │ │ └── zutil.h
│ │ ├── http
│ │ │ ├── httpclient
│ │ │ │ ├── base64.cpp
│ │ │ │ ├── base64.h
│ │ │ │ ├── dll_init.cpp
│ │ │ │ ├── file_reader.cpp
│ │ │ │ ├── file_reader.h
│ │ │ │ ├── file_writer.cpp
│ │ │ │ ├── file_writer.h
│ │ │ │ ├── global_defs.h
│ │ │ │ ├── http_client.cpp
│ │ │ │ ├── http_client.h
│ │ │ │ ├── httpclient.vcproj
│ │ │ │ ├── httpclient.vcxproj
│ │ │ │ ├── httpclient.vcxproj.filters
│ │ │ │ ├── http_delegate.h
│ │ │ │ ├── http_global.h
│ │ │ │ ├── http.h
│ │ │ │ ├── http_header_parser.cpp
│ │ │ │ ├── http_header_parser.h
│ │ │ │ ├── http_pool.cpp
│ │ │ │ ├── http_pool.h
│ │ │ │ ├── http_post_file.cpp
│ │ │ │ ├── http_post_file.h
│ │ │ │ ├── http_request.cpp
│ │ │ │ ├── http_request.h
│ │ │ │ ├── http_response.cpp
│ │ │ │ ├── http_response.h
│ │ │ │ ├── http_response_receiver.cpp
│ │ │ │ ├── http_response_receiver.h
│ │ │ │ ├── http_thread.cpp
│ │ │ │ ├── http_thread.h
│ │ │ │ ├── lock.h
│ │ │ │ ├── proxy_config.h
│ │ │ │ ├── proxy_socket .cpp
│ │ │ │ ├── proxy_socket.h
│ │ │ │ ├── socket_helper.cpp
│ │ │ │ ├── socket_helper.h
│ │ │ │ ├── standard_header.h
│ │ │ │ ├── streaming_socket.cpp
│ │ │ │ ├── streaming_socket.h
│ │ │ │ ├── thread.cpp
│ │ │ │ ├── thread.h
│ │ │ │ ├── url_parser.cpp
│ │ │ │ ├── url_parser.h
│ │ │ │ ├── util.cpp
│ │ │ │ └── util.h
│ │ │ ├── httpclient.sln
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── test
│ │ │ ├── main.cpp
│ │ │ └── test.vcproj
│ │ ├── json
│ │ │ ├── amalgamate.py
│ │ │ ├── AUTHORS
│ │ │ ├── CMakeLists.txt
│ │ │ ├── devtools
│ │ │ │ ├── agent_vmw7.json
│ │ │ │ ├── agent_vmxp.json
│ │ │ │ ├── antglob.py
│ │ │ │ ├── batchbuild.py
│ │ │ │ ├── fixeol.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── licenseupdater.py
│ │ │ │ └── tarball.py
│ │ │ ├── doc
│ │ │ │ ├── doxyfile.in
│ │ │ │ ├── footer.html
│ │ │ │ ├── header.html
│ │ │ │ ├── jsoncpp.dox
│ │ │ │ ├── readme.txt
│ │ │ │ └── roadmap.dox
│ │ │ ├── doxybuild.py
│ │ │ ├── include
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── json
│ │ │ │ ├── assertions.h
│ │ │ │ ├── autolink.h
│ │ │ │ ├── config.h
│ │ │ │ ├── features.h
│ │ │ │ ├── forwards.h
│ │ │ │ ├── json.h
│ │ │ │ ├── reader.h
│ │ │ │ ├── value.h
│ │ │ │ └── writer.h
│ │ │ ├── LICENSE
│ │ │ ├── makefiles
│ │ │ │ └── vs71
│ │ │ │ ├── jsoncpp.sln
│ │ │ │ ├── jsontest.vcproj
│ │ │ │ ├── lib_json.vcproj
│ │ │ │ └── test_lib_json.vcproj
│ │ │ ├── makerelease.py
│ │ │ ├── NEWS.txt
│ │ │ ├── README.md
│ │ │ ├── scons-tools
│ │ │ │ ├── globtool.py
│ │ │ │ ├── srcdist.py
│ │ │ │ ├── substinfile.py
│ │ │ │ └── targz.py
│ │ │ ├── SConstruct
│ │ │ ├── src
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── jsontestrunner
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── main.cpp
│ │ │ │ │ └── sconscript
│ │ │ │ ├── lib_json
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── json_batchallocator.h
│ │ │ │ │ ├── json_internalarray.inl
│ │ │ │ │ ├── json_internalmap.inl
│ │ │ │ │ ├── json_reader.cpp
│ │ │ │ │ ├── json_tool.h
│ │ │ │ │ ├── json_value.cpp
│ │ │ │ │ ├── json_valueiterator.inl
│ │ │ │ │ ├── json_writer.cpp
│ │ │ │ │ ├── sconscript
│ │ │ │ │ └── version.h.in
│ │ │ │ └── test_lib_json
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── jsontest.cpp
│ │ │ │ ├── jsontest.h
│ │ │ │ ├── main.cpp
│ │ │ │ └── sconscript
│ │ │ ├── test
│ │ │ │ ├── cleantests.py
│ │ │ │ ├── data
│ │ │ │ │ ├── fail_test_array_01.json
│ │ │ │ │ ├── test_array_01.expected
│ │ │ │ │ ├── test_array_01.json
│ │ │ │ │ ├── test_array_02.expected
│ │ │ │ │ ├── test_array_02.json
│ │ │ │ │ ├── test_array_03.expected
│ │ │ │ │ ├── test_array_03.json
│ │ │ │ │ ├── test_array_04.expected
│ │ │ │ │ ├── test_array_04.json
│ │ │ │ │ ├── test_array_05.expected
│ │ │ │ │ ├── test_array_05.json
│ │ │ │ │ ├── test_array_06.expected
│ │ │ │ │ ├── test_array_06.json
│ │ │ │ │ ├── test_array_07.expected
│ │ │ │ │ ├── test_array_07.json
│ │ │ │ │ ├── test_basic_01.expected
│ │ │ │ │ ├── test_basic_01.json
│ │ │ │ │ ├── test_basic_02.expected
│ │ │ │ │ ├── test_basic_02.json
│ │ │ │ │ ├── test_basic_03.expected
│ │ │ │ │ ├── test_basic_03.json
│ │ │ │ │ ├── test_basic_04.expected
│ │ │ │ │ ├── test_basic_04.json
│ │ │ │ │ ├── test_basic_05.expected
│ │ │ │ │ ├── test_basic_05.json
│ │ │ │ │ ├── test_basic_06.expected
│ │ │ │ │ ├── test_basic_06.json
│ │ │ │ │ ├── test_basic_07.expected
│ │ │ │ │ ├── test_basic_07.json
│ │ │ │ │ ├── test_basic_08.expected
│ │ │ │ │ ├── test_basic_08.json
│ │ │ │ │ ├── test_basic_09.expected
│ │ │ │ │ ├── test_basic_09.json
│ │ │ │ │ ├── test_comment_01.expected
│ │ │ │ │ ├── test_comment_01.json
│ │ │ │ │ ├── test_comment_02.expected
│ │ │ │ │ ├── test_comment_02.json
│ │ │ │ │ ├── test_complex_01.expected
│ │ │ │ │ ├── test_complex_01.json
│ │ │ │ │ ├── test_integer_01.expected
│ │ │ │ │ ├── test_integer_01.json
│ │ │ │ │ ├── test_integer_02.expected
│ │ │ │ │ ├── test_integer_02.json
│ │ │ │ │ ├── test_integer_03.expected
│ │ │ │ │ ├── test_integer_03.json
│ │ │ │ │ ├── test_integer_04.expected
│ │ │ │ │ ├── test_integer_04.json
│ │ │ │ │ ├── test_integer_05.expected
│ │ │ │ │ ├── test_integer_05.json
│ │ │ │ │ ├── test_integer_06_64bits.expected
│ │ │ │ │ ├── test_integer_06_64bits.json
│ │ │ │ │ ├── test_integer_07_64bits.expected
│ │ │ │ │ ├── test_integer_07_64bits.json
│ │ │ │ │ ├── test_integer_08_64bits.expected
│ │ │ │ │ ├── test_integer_08_64bits.json
│ │ │ │ │ ├── test_large_01.expected
│ │ │ │ │ ├── test_large_01.json
│ │ │ │ │ ├── test_object_01.expected
│ │ │ │ │ ├── test_object_01.json
│ │ │ │ │ ├── test_object_02.expected
│ │ │ │ │ ├── test_object_02.json
│ │ │ │ │ ├── test_object_03.expected
│ │ │ │ │ ├── test_object_03.json
│ │ │ │ │ ├── test_object_04.expected
│ │ │ │ │ ├── test_object_04.json
│ │ │ │ │ ├── test_preserve_comment_01.expected
│ │ │ │ │ ├── test_preserve_comment_01.json
│ │ │ │ │ ├── test_real_01.expected
│ │ │ │ │ ├── test_real_01.json
│ │ │ │ │ ├── test_real_02.expected
│ │ │ │ │ ├── test_real_02.json
│ │ │ │ │ ├── test_real_03.expected
│ │ │ │ │ ├── test_real_03.json
│ │ │ │ │ ├── test_real_04.expected
│ │ │ │ │ ├── test_real_04.json
│ │ │ │ │ ├── test_real_05.expected
│ │ │ │ │ ├── test_real_05.json
│ │ │ │ │ ├── test_real_06.expected
│ │ │ │ │ ├── test_real_06.json
│ │ │ │ │ ├── test_real_07.expected
│ │ │ │ │ ├── test_real_07.json
│ │ │ │ │ ├── test_real_08.expected
│ │ │ │ │ ├── test_real_08.json
│ │ │ │ │ ├── test_real_09.expected
│ │ │ │ │ ├── test_real_09.json
│ │ │ │ │ ├── test_real_10.expected
│ │ │ │ │ ├── test_real_10.json
│ │ │ │ │ ├── test_real_11.expected
│ │ │ │ │ ├── test_real_11.json
│ │ │ │ │ ├── test_real_12.expected
│ │ │ │ │ ├── test_real_12.json
│ │ │ │ │ ├── test_string_01.expected
│ │ │ │ │ ├── test_string_01.json
│ │ │ │ │ ├── test_string_02.expected
│ │ │ │ │ ├── test_string_02.json
│ │ │ │ │ ├── test_string_03.expected
│ │ │ │ │ ├── test_string_03.json
│ │ │ │ │ ├── test_string_04.expected
│ │ │ │ │ ├── test_string_04.json
│ │ │ │ │ ├── test_string_05.expected
│ │ │ │ │ ├── test_string_05.json
│ │ │ │ │ ├── test_string_unicode_01.expected
│ │ │ │ │ ├── test_string_unicode_01.json
│ │ │ │ │ ├── test_string_unicode_02.expected
│ │ │ │ │ ├── test_string_unicode_02.json
│ │ │ │ │ ├── test_string_unicode_03.expected
│ │ │ │ │ ├── test_string_unicode_03.json
│ │ │ │ │ ├── test_string_unicode_04.expected
│ │ │ │ │ ├── test_string_unicode_04.json
│ │ │ │ │ ├── test_string_unicode_05.expected
│ │ │ │ │ └── test_string_unicode_05.json
│ │ │ │ ├── generate_expected.py
│ │ │ │ ├── jsonchecker
│ │ │ │ │ ├── fail10.json
│ │ │ │ │ ├── fail11.json
│ │ │ │ │ ├── fail12.json
│ │ │ │ │ ├── fail13.json
│ │ │ │ │ ├── fail14.json
│ │ │ │ │ ├── fail15.json
│ │ │ │ │ ├── fail16.json
│ │ │ │ │ ├── fail17.json
│ │ │ │ │ ├── fail18.json
│ │ │ │ │ ├── fail19.json
│ │ │ │ │ ├── fail1.json
│ │ │ │ │ ├── fail20.json
│ │ │ │ │ ├── fail21.json
│ │ │ │ │ ├── fail22.json
│ │ │ │ │ ├── fail23.json
│ │ │ │ │ ├── fail24.json
│ │ │ │ │ ├── fail25.json
│ │ │ │ │ ├── fail26.json
│ │ │ │ │ ├── fail27.json
│ │ │ │ │ ├── fail28.json
│ │ │ │ │ ├── fail29.json
│ │ │ │ │ ├── fail2.json
│ │ │ │ │ ├── fail30.json
│ │ │ │ │ ├── fail31.json
│ │ │ │ │ ├── fail32.json
│ │ │ │ │ ├── fail33.json
│ │ │ │ │ ├── fail3.json
│ │ │ │ │ ├── fail4.json
│ │ │ │ │ ├── fail5.json
│ │ │ │ │ ├── fail6.json
│ │ │ │ │ ├── fail7.json
│ │ │ │ │ ├── fail8.json
│ │ │ │ │ ├── fail9.json
│ │ │ │ │ ├── pass1.json
│ │ │ │ │ ├── pass2.json
│ │ │ │ │ ├── pass3.json
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── pyjsontestrunner.py
│ │ │ │ ├── runjsontests.py
│ │ │ │ └── rununittests.py
│ │ │ └── version
│ │ ├── libogg
│ │ │ ├── include
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ └── ogg
│ │ │ │ ├── config_types.h.in
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── ogg.h
│ │ │ │ └── os_types.h
│ │ │ ├── libogg_dynamic.vcproj
│ │ │ ├── libogg_dynamic.vcxproj
│ │ │ ├── libogg_dynamic.vcxproj.filters
│ │ │ ├── ogg.def
│ │ │ └── src
│ │ │ ├── bitwise.c
│ │ │ ├── framing.c
│ │ │ ├── Makefile.am
│ │ │ └── Makefile.in
│ │ ├── libspeex
│ │ │ ├── config.h
│ │ │ ├── DDlog.h
│ │ │ ├── include
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ └── speex
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── speex_bits.h
│ │ │ │ ├── speex_buffer.h
│ │ │ │ ├── speex_callbacks.h
│ │ │ │ ├── speex_config_types.h.in
│ │ │ │ ├── speex_echo.h
│ │ │ │ ├── speex.h
│ │ │ │ ├── speex_header.h
│ │ │ │ ├── speex_jitter.h
│ │ │ │ ├── speex_preprocess.h
│ │ │ │ ├── speex_resampler.h
│ │ │ │ ├── speex_stereo.h
│ │ │ │ └── speex_types.h
│ │ │ ├── libspeex
│ │ │ │ ├── arch.h
│ │ │ │ ├── bits.c
│ │ │ │ ├── buffer.c
│ │ │ │ ├── cb_search_arm4.h
│ │ │ │ ├── cb_search_bfin.h
│ │ │ │ ├── cb_search.c
│ │ │ │ ├── cb_search.h
│ │ │ │ ├── cb_search_sse.h
│ │ │ │ ├── echo_diagnostic.m
│ │ │ │ ├── exc_10_16_table.c
│ │ │ │ ├── exc_10_32_table.c
│ │ │ │ ├── exc_20_32_table.c
│ │ │ │ ├── exc_5_256_table.c
│ │ │ │ ├── exc_5_64_table.c
│ │ │ │ ├── exc_8_128_table.c
│ │ │ │ ├── fftwrap.c
│ │ │ │ ├── fftwrap.h
│ │ │ │ ├── filterbank.c
│ │ │ │ ├── filterbank.h
│ │ │ │ ├── filters_arm4.h
│ │ │ │ ├── filters_bfin.h
│ │ │ │ ├── filters.c
│ │ │ │ ├── filters.h
│ │ │ │ ├── filters_sse.h
│ │ │ │ ├── fixed_arm4.h
│ │ │ │ ├── fixed_arm5e.h
│ │ │ │ ├── fixed_bfin.h
│ │ │ │ ├── fixed_debug.h
│ │ │ │ ├── fixed_generic.h
│ │ │ │ ├── gain_table.c
│ │ │ │ ├── gain_table_lbr.c
│ │ │ │ ├── hexc_10_32_table.c
│ │ │ │ ├── hexc_table.c
│ │ │ │ ├── high_lsp_tables.c
│ │ │ │ ├── jitter.c
│ │ │ │ ├── kiss_fft.c
│ │ │ │ ├── _kiss_fft_guts.h
│ │ │ │ ├── kiss_fft.h
│ │ │ │ ├── kiss_fftr.c
│ │ │ │ ├── kiss_fftr.h
│ │ │ │ ├── libspeex.vcproj
│ │ │ │ ├── libspeex.vcxproj
│ │ │ │ ├── libspeex.vcxproj.filters
│ │ │ │ ├── libspeex.vcxproj.user
│ │ │ │ ├── lpc_bfin.h
│ │ │ │ ├── lpc.c
│ │ │ │ ├── lpc.h
│ │ │ │ ├── lsp_bfin.h
│ │ │ │ ├── lsp.c
│ │ │ │ ├── lsp.h
│ │ │ │ ├── lsp_tables_nb.c
│ │ │ │ ├── ltp_arm4.h
│ │ │ │ ├── ltp_bfin.h
│ │ │ │ ├── ltp.c
│ │ │ │ ├── ltp.h
│ │ │ │ ├── ltp_sse.h
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── math_approx.h
│ │ │ │ ├── mdf.c
│ │ │ │ ├── misc_bfin.h
│ │ │ │ ├── modes.c
│ │ │ │ ├── modes.h
│ │ │ │ ├── modes_wb.c
│ │ │ │ ├── nb_celp.c
│ │ │ │ ├── nb_celp.h
│ │ │ │ ├── os_support.h
│ │ │ │ ├── preprocess.c
│ │ │ │ ├── pseudofloat.h
│ │ │ │ ├── quant_lsp_bfin.h
│ │ │ │ ├── quant_lsp.c
│ │ │ │ ├── quant_lsp.h
│ │ │ │ ├── resample.c
│ │ │ │ ├── resample_sse.h
│ │ │ │ ├── sb_celp.c
│ │ │ │ ├── sb_celp.h
│ │ │ │ ├── scal.c
│ │ │ │ ├── smallft.c
│ │ │ │ ├── smallft.h
│ │ │ │ ├── speex.c
│ │ │ │ ├── speex_callbacks.c
│ │ │ │ ├── speex_header.c
│ │ │ │ ├── stack_alloc.h
│ │ │ │ ├── stereo.c
│ │ │ │ ├── testdenoise.c
│ │ │ │ ├── testecho.c
│ │ │ │ ├── testenc.c
│ │ │ │ ├── testenc_uwb.c
│ │ │ │ ├── testenc_wb.c
│ │ │ │ ├── testjitter.c
│ │ │ │ ├── vbr.c
│ │ │ │ ├── vbr.h
│ │ │ │ ├── vorbis_psy.h
│ │ │ │ ├── vq_arm4.h
│ │ │ │ ├── vq_bfin.h
│ │ │ │ ├── vq.c
│ │ │ │ ├── vq.h
│ │ │ │ ├── vq_sse.h
│ │ │ │ └── window.c
│ │ │ ├── libspeex.def
│ │ │ ├── libspeexdsp.def
│ │ │ ├── speexdec
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── speexdec.vcproj
│ │ │ │ ├── speexdec.vcxproj
│ │ │ │ ├── speexdec.vcxproj.filters
│ │ │ │ └── speexdec.vcxproj.user
│ │ │ ├── speexenc
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── speexenc.vcproj
│ │ │ │ ├── speexenc.vcxproj
│ │ │ │ ├── speexenc.vcxproj.filters
│ │ │ │ └── speexenc.vcxproj.user
│ │ │ └── src
│ │ │ ├── getopt1.c
│ │ │ ├── getopt.c
│ │ │ ├── getopt_win.h
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── skeleton.c
│ │ │ ├── skeleton.h
│ │ │ ├── speexdec.1
│ │ │ ├── speexdec.c
│ │ │ ├── speexdec_multiThread.c
│ │ │ ├── speexenc.1
│ │ │ ├── speexenc.c
│ │ │ ├── wave_out.c
│ │ │ ├── wave_out.h
│ │ │ ├── wave_out_multiThread.c
│ │ │ ├── wav_io.c
│ │ │ └── wav_io.h
│ │ └── yaolog
│ │ ├── yaolog.cpp
│ │ └── yaolog.h
│ └── yaolog.zip
├── bin
│ └── teamtalk
│ ├── chinese.ini
│ ├── data
│ │ ├── avatar
│ │ │ ├── default.png
│ │ │ ├── DiscussionGroups.png
│ │ │ ├── gray_default.png
│ │ │ └── Groups.png
│ │ ├── Emotion
│ │ │ ├── add_emotion.png
│ │ │ ├── bg.png
│ │ │ ├── bottom.png
│ │ │ ├── btn_hot.png
│ │ │ ├── btn_push.png
│ │ │ ├── emotion.xml
│ │ │ ├── export_emotion.png
│ │ │ ├── Face
│ │ │ │ ├── 000.gif
│ │ │ │ ├── 001.gif
│ │ │ │ ├── 002.gif
│ │ │ │ ├── 003.gif
│ │ │ │ ├── 004.gif
│ │ │ │ ├── 005.gif
│ │ │ │ ├── 006.gif
│ │ │ │ ├── 007.gif
│ │ │ │ ├── 008.gif
│ │ │ │ ├── 009.gif
│ │ │ │ ├── 010.gif
│ │ │ │ ├── 011.gif
│ │ │ │ ├── 012.gif
│ │ │ │ ├── 013.gif
│ │ │ │ ├── 014.gif
│ │ │ │ ├── 015.gif
│ │ │ │ ├── 016.gif
│ │ │ │ ├── 017.gif
│ │ │ │ ├── 018.gif
│ │ │ │ ├── 019.gif
│ │ │ │ ├── 020.gif
│ │ │ │ ├── 021.gif
│ │ │ │ ├── 022.gif
│ │ │ │ ├── 023.gif
│ │ │ │ ├── 024.gif
│ │ │ │ ├── 025.gif
│ │ │ │ ├── 026.gif
│ │ │ │ ├── 027.gif
│ │ │ │ ├── 028.gif
│ │ │ │ ├── 029.gif
│ │ │ │ ├── 030.gif
│ │ │ │ ├── 031.gif
│ │ │ │ ├── 032.gif
│ │ │ │ ├── 033.gif
│ │ │ │ ├── 034.gif
│ │ │ │ ├── 035.gif
│ │ │ │ ├── 036.gif
│ │ │ │ ├── 037.gif
│ │ │ │ ├── 038.gif
│ │ │ │ ├── 039.gif
│ │ │ │ ├── 040.gif
│ │ │ │ ├── 041.gif
│ │ │ │ ├── 042.gif
│ │ │ │ ├── 043.gif
│ │ │ │ ├── 044.gif
│ │ │ │ ├── 045.gif
│ │ │ │ ├── 046.gif
│ │ │ │ ├── 047.gif
│ │ │ │ ├── 048.gif
│ │ │ │ ├── 049.gif
│ │ │ │ ├── 050.gif
│ │ │ │ ├── 051.gif
│ │ │ │ ├── 052.gif
│ │ │ │ ├── 053.gif
│ │ │ │ ├── 054.gif
│ │ │ │ ├── 055.gif
│ │ │ │ ├── 056.gif
│ │ │ │ ├── 057.gif
│ │ │ │ ├── 058.gif
│ │ │ │ ├── 059.gif
│ │ │ │ ├── 060.gif
│ │ │ │ ├── 067.gif
│ │ │ │ ├── 071.gif
│ │ │ │ ├── 081.gif
│ │ │ │ ├── 082.gif
│ │ │ │ ├── 086.gif
│ │ │ │ ├── 094.gif
│ │ │ │ ├── 096.gif
│ │ │ │ ├── 097.gif
│ │ │ │ ├── 106.gif
│ │ │ │ ├── 107.gif
│ │ │ │ ├── 108.gif
│ │ │ │ ├── 113.gif
│ │ │ │ ├── 116.gif
│ │ │ │ ├── 121.gif
│ │ │ │ ├── 122.gif
│ │ │ │ ├── 123.gif
│ │ │ │ ├── 124.gif
│ │ │ │ ├── 125.gif
│ │ │ │ ├── 126.gif
│ │ │ │ ├── 127.gif
│ │ │ │ ├── 128.gif
│ │ │ │ ├── 129.gif
│ │ │ │ ├── 130.gif
│ │ │ │ ├── 131.gif
│ │ │ │ ├── 132.gif
│ │ │ │ ├── 133.gif
│ │ │ │ ├── 134.gif
│ │ │ │ ├── 135.gif
│ │ │ │ ├── 136.gif
│ │ │ │ ├── 137.gif
│ │ │ │ ├── 138.gif
│ │ │ │ ├── 139.gif
│ │ │ │ ├── 140.gif
│ │ │ │ ├── 141.gif
│ │ │ │ ├── 142.gif
│ │ │ │ ├── 143.gif
│ │ │ │ ├── 144.gif
│ │ │ │ ├── 145.gif
│ │ │ │ ├── 146.gif
│ │ │ │ ├── 147.gif
│ │ │ │ ├── 148.gif
│ │ │ │ ├── 149.gif
│ │ │ │ ├── 150.gif
│ │ │ │ ├── 151.gif
│ │ │ │ ├── 152.gif
│ │ │ │ ├── 153.gif
│ │ │ │ ├── 154.gif
│ │ │ │ ├── 155.gif
│ │ │ │ ├── 156.gif
│ │ │ │ ├── 157.gif
│ │ │ │ ├── 159.gif
│ │ │ │ ├── 160.gif
│ │ │ │ ├── 162.gif
│ │ │ │ ├── 163.gif
│ │ │ │ ├── 164.gif
│ │ │ │ ├── 165.gif
│ │ │ │ ├── 166.gif
│ │ │ │ ├── 167.gif
│ │ │ │ ├── 168.gif
│ │ │ │ ├── 169.gif
│ │ │ │ ├── 173.gif
│ │ │ │ ├── 174.gif
│ │ │ │ ├── 175.gif
│ │ │ │ ├── 176.gif
│ │ │ │ ├── 177.gif
│ │ │ │ ├── 178.gif
│ │ │ │ ├── 179.gif
│ │ │ │ ├── 180.gif
│ │ │ │ ├── 181.gif
│ │ │ │ ├── 182.gif
│ │ │ │ ├── 183.gif
│ │ │ │ ├── 185.gif
│ │ │ │ ├── 186.gif
│ │ │ │ ├── 187.gif
│ │ │ │ ├── 188.gif
│ │ │ │ ├── 190.gif
│ │ │ │ ├── 191.gif
│ │ │ │ ├── 192.gif
│ │ │ │ ├── 193.gif
│ │ │ │ ├── 194.gif
│ │ │ │ ├── 195.gif
│ │ │ │ ├── 196.gif
│ │ │ │ ├── 197.gif
│ │ │ │ ├── 198.gif
│ │ │ │ ├── 199.gif
│ │ │ │ ├── 200.gif
│ │ │ │ ├── 201.gif
│ │ │ │ ├── 202.gif
│ │ │ │ ├── 203.gif
│ │ │ │ ├── 204.gif
│ │ │ │ ├── 205.gif
│ │ │ │ ├── 206.gif
│ │ │ │ ├── 207.gif
│ │ │ │ ├── 208.gif
│ │ │ │ ├── 209.gif
│ │ │ │ ├── 210.gif
│ │ │ │ ├── 211.gif
│ │ │ │ ├── 212.gif
│ │ │ │ ├── 213.gif
│ │ │ │ ├── 214.gif
│ │ │ │ ├── 215.gif
│ │ │ │ ├── 216.gif
│ │ │ │ ├── 217.gif
│ │ │ │ ├── 218.gif
│ │ │ │ ├── 219.gif
│ │ │ │ ├── 220.gif
│ │ │ │ ├── 221.gif
│ │ │ │ ├── 222.gif
│ │ │ │ ├── 223.gif
│ │ │ │ ├── 224.gif
│ │ │ │ ├── 225.gif
│ │ │ │ ├── 226.gif
│ │ │ │ ├── 227.gif
│ │ │ │ ├── 228.gif
│ │ │ │ ├── 229.gif
│ │ │ │ ├── 230.gif
│ │ │ │ ├── 231.gif
│ │ │ │ ├── 232.gif
│ │ │ │ ├── 233.gif
│ │ │ │ ├── 234.gif
│ │ │ │ ├── 235.gif
│ │ │ │ ├── 236.gif
│ │ │ │ ├── 237.gif
│ │ │ │ ├── 238.gif
│ │ │ │ ├── 239.gif
│ │ │ │ └── 240.gif
│ │ │ ├── IDB_BKGND.bmp
│ │ │ ├── import_emotion.png
│ │ │ ├── list_bk.png
│ │ │ ├── QSBFace.xml
│ │ │ └── sysemots.ini
│ │ ├── icons
│ │ │ ├── logo.ico
│ │ │ └── offline.ico
│ │ ├── logconfig.ini
│ │ ├── module
│ │ │ ├── css
│ │ │ │ ├── img
│ │ │ │ │ └── default
│ │ │ │ │ ├── bc.png
│ │ │ │ │ ├── split.png
│ │ │ │ │ ├── split_white.png
│ │ │ │ │ ├── unread.png
│ │ │ │ │ ├── voice_node.png
│ │ │ │ │ └── voice_play.gif
│ │ │ │ └── module-content.css
│ │ │ ├── js
│ │ │ │ ├── lib
│ │ │ │ │ ├── jquery.min.js
│ │ │ │ │ ├── json2.min.js
│ │ │ │ │ └── underscore.min.js
│ │ │ │ └── module-msgview.js
│ │ │ └── module-content.html
│ │ └── Sound
│ │ ├── callmsg.wav
│ │ ├── dingdong.wav
│ │ ├── keyboard.wav
│ │ ├── message.wav
│ │ └── system.wav
│ ├── Debug
│ │ ├── sqlite3.dll
│ │ └── ttlogconfig.ini
│ ├── gui
│ │ ├── border.png
│ │ ├── btn_hot.png
│ │ ├── btn_push.png
│ │ ├── CreateDiscussionGrpDialog
│ │ │ ├── ChangeDiscussionMemberDialog.xml
│ │ │ ├── CreateDiscussionGrpDialog.xml
│ │ │ ├── ListCreatFromItem.xml
│ │ │ └── ListGroupMembersItem.xml
│ │ ├── EmotionDialog
│ │ │ ├── add_emotion.png
│ │ │ ├── bg.png
│ │ │ ├── btn_hot.png
│ │ │ ├── btn_push.png
│ │ │ ├── Dui63.tmp
│ │ │ ├── emotion.xml
│ │ │ ├── export_emotion.png
│ │ │ ├── import_emotion.png
│ │ │ ├── list_bk.png
│ │ │ └── QSBFace.xml
│ │ ├── FileTransferDialog
│ │ │ ├── FileTransferDialog.xml
│ │ │ ├── FileTransferListItem.xml
│ │ │ ├── sendfailed.png
│ │ │ └── sendsucceed.png
│ │ ├── FloatDialog
│ │ │ └── FloatDialog.xml
│ │ ├── LoginDialog
│ │ │ ├── border.png
│ │ │ ├── btn.png
│ │ │ ├── card_user.png
│ │ │ ├── checked.png
│ │ │ ├── close_h.png
│ │ │ ├── close.png
│ │ │ ├── close_p.png
│ │ │ ├── LoginBtnBack.png
│ │ │ ├── LoginDialog.xml
│ │ │ ├── minimize_h.png
│ │ │ ├── minimize.png
│ │ │ ├── minimize_p.png
│ │ │ ├── setting_h.png
│ │ │ ├── setting.png
│ │ │ └── unchecked.png
│ │ ├── MainDialog
│ │ │ ├── border.png
│ │ │ ├── btn_hot.png
│ │ │ ├── cancel_btn.png
│ │ │ ├── cancel_btn_red.png
│ │ │ ├── close_h.png
│ │ │ ├── close.png
│ │ │ ├── close_p.png
│ │ │ ├── creatGroup.png
│ │ │ ├── DiscussionGroup.png
│ │ │ ├── eaUserListItem.xml
│ │ │ ├── Face.png
│ │ │ ├── groupListItem.xml
│ │ │ ├── Groups.png
│ │ │ ├── icon_a.png
│ │ │ ├── list_icon_a.png
│ │ │ ├── list_icon_b.png
│ │ │ ├── MainDialog.xml
│ │ │ ├── minimize_h.png
│ │ │ ├── minimize.png
│ │ │ ├── minimize_p.png
│ │ │ ├── offline.png
│ │ │ ├── online_green.png
│ │ │ ├── online.png
│ │ │ ├── recentlyListItem.xml
│ │ │ ├── scrollbar.png
│ │ │ ├── search_btn.png
│ │ │ ├── setting_h.png
│ │ │ ├── setting.png
│ │ │ ├── tab_btn.png
│ │ │ ├── unrreadcntbk.png
│ │ │ └── UserDetailInfoDialog.xml
│ │ ├── menu
│ │ │ ├── inner.png
│ │ │ ├── lineStatus.xml
│ │ │ ├── menu_bk.png
│ │ │ ├── offline.png
│ │ │ ├── online.png
│ │ │ ├── SendFile.xml
│ │ │ ├── TrayIconMenu.xml
│ │ │ └── userListMenu.xml
│ │ ├── ScreenCapture
│ │ │ ├── sc_toolbar_hover.png
│ │ │ ├── sc_toolbar_normal.png
│ │ │ └── sc_toolbar_select.png
│ │ ├── SessionDialog
│ │ │ ├── adduser.png
│ │ │ ├── blackbtn_bg.png
│ │ │ ├── border.png
│ │ │ ├── btn_bg.png
│ │ │ ├── btn_hot.png
│ │ │ ├── btn_push.png
│ │ │ ├── close_h.png
│ │ │ ├── close.png
│ │ │ ├── group_creator.png
│ │ │ ├── groupMembersListItem.xml
│ │ │ ├── max_h.png
│ │ │ ├── max.png
│ │ │ ├── minimize_h.png
│ │ │ ├── minimize.png
│ │ │ ├── restore_h.png
│ │ │ ├── restore.png
│ │ │ ├── scrollbar.png
│ │ │ ├── SessionDialog.xml
│ │ │ └── toolbtn.png
│ │ └── SysConfigDialog
│ │ ├── border_black.png
│ │ ├── radio_checked.png
│ │ ├── radio_unchecked.png
│ │ ├── ServerConfigDialog.xml
│ │ └── SysConfigDialog.xml
│ └── Release
│ ├── sqlite3.dll
│ └── ttlogconfig.ini
├── core
│ ├── DuiLib
│ │ ├── CMakeLists.txt
│ │ ├── Control
│ │ │ ├── observer_impl_base.hpp
│ │ │ ├── UIActiveX.cpp
│ │ │ ├── UIActiveX.h
│ │ │ ├── UIButton.cpp
│ │ │ ├── UIButton.h
│ │ │ ├── UICheckBox.cpp
│ │ │ ├── UICheckBox.h
│ │ │ ├── UIComboBox.cpp
│ │ │ ├── UIComboBox.h
│ │ │ ├── UICombo.cpp
│ │ │ ├── UICombo.h
│ │ │ ├── UIDateTime.cpp
│ │ │ ├── UIDateTime.h
│ │ │ ├── UIEdit.cpp
│ │ │ ├── UIEdit.h
│ │ │ ├── UIFlash.cpp
│ │ │ ├── UIFlash.h
│ │ │ ├── UIGifAnim.cpp
│ │ │ ├── UIGifAnim.h
│ │ │ ├── UILabel bak.cpp
│ │ │ ├── UILabel bak.h
│ │ │ ├── UILabel.cpp
│ │ │ ├── UILabel.h
│ │ │ ├── UIList.cpp
│ │ │ ├── UIList.h
│ │ │ ├── UIMenu.cpp
│ │ │ ├── UIMenu.h
│ │ │ ├── UIOption.cpp
│ │ │ ├── UIOption.h
│ │ │ ├── UIProgress.cpp
│ │ │ ├── UIProgress.h
│ │ │ ├── UIRichEdit.cpp
│ │ │ ├── UIRichEdit.h
│ │ │ ├── UIScrollBar.cpp
│ │ │ ├── UIScrollBar.h
│ │ │ ├── UISlider.cpp
│ │ │ ├── UISlider.h
│ │ │ ├── UIText.cpp
│ │ │ ├── UIText.h
│ │ │ ├── UITreeView.cpp
│ │ │ ├── UITreeView.h
│ │ │ ├── UIWebBrowser.cpp
│ │ │ └── UIWebBrowser.h
│ │ ├── Core
│ │ │ ├── UIBase.cpp
│ │ │ ├── UIBase.h
│ │ │ ├── UIContainer.cpp
│ │ │ ├── UIContainer.h
│ │ │ ├── UIControl.cpp
│ │ │ ├── UIControl.h
│ │ │ ├── UIDefine.h
│ │ │ ├── UIDlgBuilder.cpp
│ │ │ ├── UIDlgBuilder.h
│ │ │ ├── UIManager.cpp
│ │ │ ├── UIManager.h
│ │ │ ├── UIMarkup.cpp
│ │ │ ├── UIMarkup.h
│ │ │ ├── UIRender.cpp
│ │ │ └── UIRender.h
│ │ ├── DuiLib.vcproj
│ │ ├── DuiLib.vcxproj
│ │ ├── DuiLib.vcxproj.filters
│ │ ├── Layout
│ │ │ ├── UIChildLayout.cpp
│ │ │ ├── UIChildLayout.h
│ │ │ ├── UIHorizontalLayout.cpp
│ │ │ ├── UIHorizontalLayout.h
│ │ │ ├── UITabLayout.cpp
│ │ │ ├── UITabLayout.h
│ │ │ ├── UITileLayout.cpp
│ │ │ ├── UITileLayout.h
│ │ │ ├── UIVerticalLayout.cpp
│ │ │ └── UIVerticalLayout.h
│ │ ├── StdAfx.cpp
│ │ ├── StdAfx.h
│ │ ├── UIlib.cpp
│ │ ├── UIlib.h
│ │ └── Utils
│ │ ├── DialogManager.cpp
│ │ ├── DialogManager.h
│ │ ├── downloadmgr.h
│ │ ├── Flash11.tlb
│ │ ├── flash11.tlh
│ │ ├── FlashEventHandler.h
│ │ ├── stb_image.c
│ │ ├── UIDelegate.cpp
│ │ ├── UIDelegate.h
│ │ ├── UIShadow.cpp
│ │ ├── UIShadow.h
│ │ ├── Utils.cpp
│ │ ├── Utils.h
│ │ ├── WebBrowserEventHandler.h
│ │ ├── WinImplBase.cpp
│ │ ├── WinImplBase.h
│ │ ├── WndShadow.cpp
│ │ ├── WndShadow.h
│ │ └── XUnzip.cpp
│ ├── network
│ │ ├── BaseSocket.cpp
│ │ ├── BaseSocket.h
│ │ ├── dllmain.cpp
│ │ ├── EventDispatch.cpp
│ │ ├── EventDispatch.h
│ │ ├── imconn.cpp
│ │ ├── ImCore.cpp
│ │ ├── Lock.cpp
│ │ ├── netlib.cpp
│ │ ├── network.cpp
│ │ ├── network.vcxproj
│ │ ├── network.vcxproj.filters
│ │ ├── Operation.cpp
│ │ ├── OperationManager.cpp
│ │ ├── OperationManager.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ ├── targetver.h
│ │ ├── TcpSocketsManager.cpp
│ │ ├── TcpSocketsManager.h
│ │ ├── TTPBHeader.cpp
│ │ ├── util.cpp
│ │ └── UtilPdu.cpp
│ └── utility
│ ├── CppSQLite3.cpp
│ ├── IniOperation.cpp
│ ├── md5.cpp
│ ├── md5.h
│ ├── Multilingual.cpp
│ ├── res
│ │ └── utility.rc2
│ ├── Resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── TTThread.cpp
│ ├── utilCommonAPI.cpp
│ ├── utility.cpp
│ ├── utility.def
│ ├── utility.h
│ ├── utility.rc
│ ├── utility.vcxproj
│ ├── utility.vcxproj.filters
│ ├── utilStrCodingAPI.cpp
│ └── XZip.cpp
├── directui license.txt
├── duilib license.txt
├── include
│ ├── DuilibEx
│ │ └── DuilibExDll.h
│ ├── GifSmiley
│ │ └── GifSmiley.h
│ ├── GlobalConfig.h
│ ├── GlobalDefine.h
│ ├── Modules
│ │ ├── IDatabaseModule.h
│ │ ├── IEmotionModule.h
│ │ ├── IEvent.h
│ │ ├── IFileTransferModule.h
│ │ ├── IGroupListModule.h
│ │ ├── IHttpPoolModule.h
│ │ ├── ILoginModule.h
│ │ ├── IMessageModule.h
│ │ ├── IMiscModule.h
│ │ ├── IModuleInterface.h
│ │ ├── IP2PCmdModule.h
│ │ ├── IScreenCaptureModule.h
│ │ ├── ISessionModule.h
│ │ ├── ISysConfigModule.h
│ │ ├── ITcpClientModule.h
│ │ ├── IUserListModule.h
│ │ ├── MessageEntity.h
│ │ ├── ModuleBase.h
│ │ ├── ModuleDll.h
│ │ ├── ModuleObserver.h
│ │ ├── ModuleSubject.h
│ │ ├── UI
│ │ │ ├── MainListLayout.h
│ │ │ ├── SearchLayout.h
│ │ │ ├── SessionDialog.h
│ │ │ ├── SessionLayout.h
│ │ │ ├── UIEAUserTreelist.h
│ │ │ ├── UIGroupsTreelist.h
│ │ │ ├── UIIMListCommonDefine.h
│ │ │ ├── UIIMList.h
│ │ │ ├── UIRecentSessionList.h
│ │ │ └── UserDetailInfoDialog.h
│ │ └── UIEventManager.h
│ ├── network
│ │ ├── ErrorCode.h
│ │ ├── Exception.h
│ │ ├── imconn.h
│ │ ├── ImCore.h
│ │ ├── IOperation.h
│ │ ├── Lock.h
│ │ ├── netlib.h
│ │ ├── networkdll.h
│ │ ├── Operation.h
│ │ ├── ostype.h
│ │ ├── TTPBHeader.h
│ │ ├── util.h
│ │ └── UtilPdu.h
│ ├── ProtocolBuffer
│ │ ├── IM.BaseDefine.pb.cc
│ │ ├── IM.BaseDefine.pb.h
│ │ ├── IM.Buddy.pb.cc
│ │ ├── IM.Buddy.pb.h
│ │ ├── IM.File.pb.cc
│ │ ├── IM.File.pb.h
│ │ ├── IM.Group.pb.cc
│ │ ├── IM.Group.pb.h
│ │ ├── IM.Login.pb.cc
│ │ ├── IM.Login.pb.h
│ │ ├── IM.Message.pb.cc
│ │ ├── IM.Message.pb.h
│ │ ├── IM.Other.pb.cc
│ │ ├── IM.Other.pb.h
│ │ ├── IM.Server.pb.cc
│ │ ├── IM.Server.pb.h
│ │ ├── IM.SwitchService.pb.cc
│ │ └── IM.SwitchService.pb.h
│ ├── utility
│ │ ├── CppSQLite3.h
│ │ ├── IniOperation.h
│ │ ├── Multilingual.h
│ │ ├── TTThread.h
│ │ ├── utilCommonAPI.h
│ │ ├── utilityDll.h
│ │ ├── utilStrCodingAPI.h
│ │ └── XZip.h
│ └── versioninfo.h
├── solution
│ └── teamtalk.sln
├── src
│ ├── DuiLibEx
│ │ ├── DuiLibEx.cpp
│ │ ├── DuiLibEx.def
│ │ ├── DuiLibEx.h
│ │ ├── DuiLibEx.rc
│ │ ├── DuiLibEx.vcxproj
│ │ ├── DuiLibEx.vcxproj.filters
│ │ ├── res
│ │ │ └── DuiLibEx.rc2
│ │ ├── Resource.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ └── targetver.h
│ ├── GifSmiley
│ │ ├── GifSmiley2003.vcxproj
│ │ ├── GifSmiley2003.vcxproj.filters
│ │ ├── GifSmiley.cpp
│ │ ├── GifSmileyCtrl.cpp
│ │ ├── GifSmileyCtrl.h
│ │ ├── GifSmileyps.def
│ │ ├── GifSmiley.rc
│ │ ├── GifSmiley.rgs
│ │ ├── mAniImage.cpp
│ │ ├── m_anismiley.h
│ │ ├── Resource.h
│ │ ├── stdafx.cpp
│ │ └── stdafx.h
│ ├── Modules
│ │ ├── Base
│ │ │ ├── ModuleBase.cpp
│ │ │ ├── ModuleObserver.cpp
│ │ │ ├── ModuleSubject.cpp
│ │ │ ├── Observer.cpp
│ │ │ └── UIEventManager.cpp
│ │ ├── Database
│ │ │ ├── DatabaseModule_DepartmentInfoDB_Impl.cpp
│ │ │ ├── DatabaseModule_FileTransferHistory_Impl.cpp
│ │ │ ├── DatabaseModule_GroupInfoDB_Impl.cpp
│ │ │ ├── DatabaseModule_ImageDB_Impl.cpp
│ │ │ ├── DatabaseModule_Impl.cpp
│ │ │ ├── DatabaseModule_Impl.h
│ │ │ ├── DatabaseModule_MessageDB_Impl.cpp
│ │ │ ├── DatabaseModule_RecentSessionDB_Impl.cpp
│ │ │ └── DatabaseModule_UserInfoDB_Impl.cpp
│ │ ├── Emotion
│ │ │ ├── EmoCfgParseTool.cpp
│ │ │ ├── EmoCfgParseTool.h
│ │ │ ├── EmotionButton.cpp
│ │ │ ├── EmotionButton.h
│ │ │ ├── EmotionDialog.cpp
│ │ │ ├── EmotionDialog.h
│ │ │ ├── EmotionModule_Impl.cpp
│ │ │ └── EmotionModule_Impl.h
│ │ ├── FileTransfer
│ │ │ ├── FileTransferDialog.cpp
│ │ │ ├── FileTransferDialog.h
│ │ │ ├── FileTransferModule_Impl.cpp
│ │ │ ├── FileTransferModule_Impl.h
│ │ │ ├── FileTransferSocket.cpp
│ │ │ ├── FileTransferSocket.h
│ │ │ ├── FileTransferUIThread.cpp
│ │ │ ├── FileTransferUIThread.h
│ │ │ ├── TransferFile.cpp
│ │ │ ├── TransferFile.h
│ │ │ ├── TransferManager.cpp
│ │ │ └── TransferManager.h
│ │ ├── GroupList
│ │ │ ├── CreateDiscussionGrpDialog.cpp
│ │ │ ├── CreateDiscussionGrpDialog.h
│ │ │ ├── GroupListModule_Impl.cpp
│ │ │ ├── GroupListModule_Impl.h
│ │ │ └── UI
│ │ │ ├── ChangeDiscussionGrpMemberDialog.cpp
│ │ │ ├── ChangeDiscussionGrpMemberDialog.h
│ │ │ ├── CreateDiscussionGrpDialog.cpp
│ │ │ ├── CreateDiscussionGrpDialog.h
│ │ │ ├── ListCreatFrom.cpp
│ │ │ ├── ListCreatFrom.h
│ │ │ ├── ListGroupMembers.cpp
│ │ │ └── ListGroupMembers.h
│ │ ├── HttpPool
│ │ │ ├── HttpPoolModule_Impl.cpp
│ │ │ └── HttpPoolModule_Impl.h
│ │ ├── Login
│ │ │ ├── DoLoginServerHttpOperation.cpp
│ │ │ ├── DoLoginServerHttpOperation.h
│ │ │ ├── GetServConfigHttpOperation.cpp
│ │ │ ├── GetServConfigHttpOperation.h
│ │ │ ├── LoginDialog.cpp
│ │ │ ├── LoginDialog.h
│ │ │ ├── LoginModule_Impl.cpp
│ │ │ ├── LoginModule_Impl.h
│ │ │ ├── LoginOperation.cpp
│ │ │ ├── LoginOperation.h
│ │ │ ├── ReloginManager.cpp
│ │ │ └── ReloginManager.h
│ │ ├── Message
│ │ │ ├── MessageEntity.cpp
│ │ │ ├── MessageModule_Impl.cpp
│ │ │ ├── MessageModule_Impl.h
│ │ │ ├── ReceiveMsgManage.cpp
│ │ │ ├── ReceiveMsgManage.h
│ │ │ ├── SendMsgManage.cpp
│ │ │ └── SendMsgManage.h
│ │ ├── Misc
│ │ │ ├── MiscModule_Impl.cpp
│ │ │ └── MiscModule_Impl.h
│ │ ├── Modules.cpp
│ │ ├── Modules.def
│ │ ├── Modules.h
│ │ ├── Modules.rc
│ │ ├── Modules.vcxproj
│ │ ├── Modules.vcxproj.filters
│ │ ├── P2PCmd
│ │ │ ├── P2PCmdModule_Impl.cpp
│ │ │ └── P2PCmdModule_Impl.h
│ │ ├── res
│ │ │ └── Modules.rc2
│ │ ├── Resource.h
│ │ ├── ScreenCapture
│ │ │ ├── ScreenCapture
│ │ │ │ ├── CaptureMode
│ │ │ │ │ ├── AutoSelectMode.cpp
│ │ │ │ │ ├── AutoSelectMode.h
│ │ │ │ │ ├── CaptureMode.cpp
│ │ │ │ │ ├── CaptureMode.h
│ │ │ │ │ ├── ManalEditMode.cpp
│ │ │ │ │ ├── ManalEditMode.h
│ │ │ │ │ ├── ManalSelectMode.cpp
│ │ │ │ │ ├── ManalSelectMode.h
│ │ │ │ │ └── ModeComm.h
│ │ │ │ ├── Common.h
│ │ │ │ ├── ScreenCapture.cpp
│ │ │ │ ├── ScreenCapture.h
│ │ │ │ ├── ScreenSnapshot.cpp
│ │ │ │ ├── ScreenSnapshot.h
│ │ │ │ └── UI
│ │ │ │ ├── BkgroundUI.cpp
│ │ │ │ ├── BkgroundUI.h
│ │ │ │ ├── DlgBase.cpp
│ │ │ │ ├── Dlgbase.h
│ │ │ │ ├── EditToolbar.cpp
│ │ │ │ ├── EditToolbarUI.h
│ │ │ │ ├── UIMgr.cpp
│ │ │ │ └── UIMgr.h
│ │ │ ├── ScreenCaptureModule_Impl.cpp
│ │ │ └── ScreenCaptureModule_Impl.h
│ │ ├── Session
│ │ │ ├── ISessionModule.cpp
│ │ │ ├── Operation
│ │ │ │ ├── DownloadAvatarHttpOperation.cpp
│ │ │ │ ├── DownloadAvatarHttpOperation.h
│ │ │ │ ├── SendImgHttpOperation.cpp
│ │ │ │ ├── SendImgHttpOperation.h
│ │ │ │ ├── SyncTimerTimer.cpp
│ │ │ │ └── SyncTimerTimer.h
│ │ │ ├── SessionManager.cpp
│ │ │ ├── SessionManager.h
│ │ │ ├── SessionModule_Impl.cpp
│ │ │ ├── SessionModule_Impl.h
│ │ │ └── UI
│ │ │ ├── MainListLayout.cpp
│ │ │ ├── MainListLayout_Event.cpp
│ │ │ ├── SearchLayout.cpp
│ │ │ ├── SessionDialog.cpp
│ │ │ ├── SessionLayout.cpp
│ │ │ ├── SessionLayout_Event.cpp
│ │ │ ├── SessionLayout_Function.cpp
│ │ │ ├── UIEAUserTreelist.cpp
│ │ │ ├── UIGroupsTreelist.cpp
│ │ │ ├── UIIMEdit.cpp
│ │ │ ├── UIIMEdit.h
│ │ │ ├── UIIMListCommonDefine.cpp
│ │ │ ├── UIIMList.cpp
│ │ │ ├── UIRecentSessionList.cpp
│ │ │ └── UserDetailInfoDialog.cpp
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ ├── SysConfig
│ │ │ ├── ServerConfigDialog.cpp
│ │ │ ├── ServerConfigDialog.h
│ │ │ ├── SysConfigDialog.cpp
│ │ │ ├── SysConfigDialog.h
│ │ │ ├── SysConfigModule_Impl.cpp
│ │ │ └── SysConfigModule_Impl.h
│ │ ├── targetver.h
│ │ ├── TcpClient
│ │ │ ├── TcpClientModule_Impl.cpp
│ │ │ └── TcpClientModule_Impl.h
│ │ └── UserList
│ │ ├── IUserListModule.cpp
│ │ ├── UserListModule_Impl.cpp
│ │ └── UserListModule_Impl.h
│ └── teamtalk
│ ├── res
│ │ ├── teamtalk.ico
│ │ └── teamtalk.rc2
│ ├── Resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── teamtalk.cpp
│ ├── teamtalk.h
│ ├── teamtalk.rc
│ ├── teamtalk.vcxproj
│ ├── teamtalk.vcxproj.filters
│ └── UI
│ ├── main.cpp
│ ├── MainDialog.cpp
│ ├── MainDialog_Event.cpp
│ ├── MainDialog.h
│ ├── MainDialog_TrayIcon.cpp
│ ├── main_frame.cpp
│ ├── main_frame_event.cpp
│ └── main_frame.hpp
└── tools
├── depends
│ ├── gdiplus.dll
│ ├── mfc120u.dll
│ ├── msvcp120.dll
│ └── msvcr120.dll
├── docs
│ ├── gc
│ └── gh
└── protobuf-2.6.1
├── make_PB_Files.bat
├── protoc.exe
└── readme.txt
691 directories, 5155 files
标签:
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论