From 63f822db2ba84d43b2276d614c3d247eeec02d9d Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Wed, 1 Jan 2020 22:29:34 +0500 Subject: [PATCH] merged with master --- js/app.js | 21 +++++++++++---------- service_worker.js | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/js/app.js b/js/app.js index 202f1fcd..d06fc640 100644 --- a/js/app.js +++ b/js/app.js @@ -64,16 +64,17 @@ controller:"UserModalController",scope:a,windowClass:"user_modal_window mobile_m n.push(t)}),n.length&&i.open({templateUrl:templateUrl("report_msgs_modal"),controller:"ReportMessagesModalController",windowClass:"md_simple_modal_window mobile_modal",scope:e.$new()}).result.then(function(e){L(),d.reportMessages(n,e).then(function(){var e=r.pop({type:"info",body:o("confirm_modal_report_success"),bodyOutputType:"trustedHtml",clickHandler:function(){r.clear(e)},showCloseButton:!1})})})}function V(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(L(),e.$broadcast("reply_selected",t))}function q(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(L(),e.$broadcast("edit_selected",t))}function z(){e.historyState.selectActions?L():(e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"))}function W(t){return"search"==t?void a.$broadcast("history_search",e.curDialog.peerID):(e.historyFilter.mediaType=t||!1,t&&(e.curDialog.messageID=!1),Y.messages=[],Y.ids=[],e.state.empty=!0,void E())}function G(){e.historyFilter.mediaType?W():e.curDialog.messageID?a.$broadcast("history_focus",{peerString:e.curDialog.peer}):E(!0)}e.$watchCollection("curDialog",y),p.attach(),m.start(),h.start(),e.peerHistories=[],e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,e.historyState.botActions=!1,e.historyState.channelActions=!1,e.historyState.canDelete=!1,e.historyState.canReply=!1,e.historyState.missedCount=0,e.historyState.skipped=!1,e.state={},e.toggleMessage=O,e.selectedDelete=U,e.selectedForward=H,e.selectedReply=V,e.selectedEdit=q,e.selectedCancel=L,e.selectedFlush=F,e.selectedReport=j,e.selectInlineBot=N,e.startBot=x,e.cancelBot=P,e.joinChannel=D,e.togglePeerMuted=R,e.toggleEdit=z,e.toggleMedia=W,e.returnToRecent=G,e.$on("history_edit_toggle",z),e.$on("history_edit_flush",F),e.$on("history_media_toggle",function(e,t){W(t)}),e.$on("history_return_recent",G);var K,Y=!1,X=!1,J=!1,Z=!1,Q=0,ee=0,te=!1,ne={photos:"inputMessagesFilterPhotos",video:"inputMessagesFilterVideo",documents:"inputMessagesFilterDocument",audio:"inputMessagesFilterVoice",round:"inputMessagesFilterRoundVideo",music:"inputMessagesFilterMusic",urls:"inputMessagesFilterUrl",mentions:"inputMessagesFilterMyMentions"},ie=0,ae=0,re=!1,oe=!1,se=0,le=!1,ce=!1;e.$on("history_update",angular.noop);var de=!1;e.$on("stateSynchronized",function(){de&&(de==e.curDialog.peerID&&E(),de=!1)}),e.$on("reply_button_press",function(t,n){var i=e.historyState.replyKeyboard;if(i){var a={replyToMsgID:K<0&&i.mid};switch(n._){case"keyboardButtonRequestPhone":_.confirm({type:"BOT_ACCESS_PHONE"}).then(function(){var e=l.getSelf();d.sendOther(K,{_:"inputMediaContact",phone_number:e.phone,first_name:e.first_name,last_name:e.last_name},a)});break;case"keyboardButtonRequestGeoLocation":_.confirm({type:"BOT_ACCESS_GEO"}).then(function(){return v.getPosition().then(function(e){d.sendOther(K,{_:"inputMediaGeoPoint",geo_point:{_:"inputGeoPoint",lat:e.lat,"long":e["long"]}},a)},function(e){_.alert(o("error_modal_bad_request_title_raw"),o("error_modal_gelocation_na_raw"))})});break;default:d.sendText(K,n.text,a)}}}),e.$on("history_reload",function(t,n){n==e.curDialog.peerID&&E()}),e.$on("history_forbidden",function(n,i){i==e.curDialog.peerID&&t.url("/im"),k(i)}),e.$on("dialog_migrate",function(t,n){if(n.migrateFrom==e.curDialog.peerID){var i=u.getPeerString(n.migrateTo);a.$broadcast("history_focus",{peerString:i})}k(n.migrateFrom)}),e.$on("notify_settings",function(t,n){n.peerID==e.curDialog.peerID&&A()}),e.$on("channel_settings",function(t,n){n.channelID==-e.curDialog.peerID&&A()});var ue={};e.$on("history_append",function(t,i){var r=w(i.peerID);if(r){var o=i.peerID==e.curDialog.peerID;if(o){if(e.historyFilter.mediaType||e.historyState.skipped)return void(i.my?G():e.historyState.missedCount++);e.curDialog.messageID&&i.my&&G(),delete e.state.empty}var s=d.wrapForHistory(i.messageID);r.messages.push(s),r.ids.push(i.messageID),d.regroupWrappedHistory(r.messages,-3)&&e.$broadcast("messages_regroup"),o&&(e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_history_append_new",{my:i.my,idleScroll:X&&!s.pFlags.out&&a.idle.isIDLE}),i.my&&e.historyUnreadAfter&&(delete e.historyUnreadAfter,e.$broadcast("messages_unread_after")),a.idle.isIDLE?!s.pFlags.unread||s.pFlags.out||(r.messages[r.messages.length-2]||{}).pFlags.unread||(e.historyUnreadAfter=s.mid,X=!0,e.$broadcast("messages_unread_after")):n(function(){d.readHistory(e.curDialog.peerID)}),S(),A())}}),e.$on("history_multiappend",function(t,i){var r=!1,o=!1,s=a.idle.isIDLE;angular.forEach(i,function(t,i){var a=w(i);if(a){var l=i==e.curDialog.peerID,c=a.messages.length,u=t.length;if(l){if(e.historyFilter.mediaType||e.historyState.skipped)return void(e.historyState.missedCount+=u);delete e.state.empty}if((!l||s)&&c>(u>10?10:100))return console.warn(dT(),"Drop too many messages",u,c,s,l,i),void(l?(ee=a.messages[c-1].mid,e.historyState.skipped=Z=ee>0,Z&&(de=i,e.$broadcast("ui_history_append"))):k(i));var p,f,m=!1,h=!1,g=a.messages[a.messages.length-1],_=!g||!g.pFlags.unread;for(f=0;f0&&p0){e=g.parseEmojis(e);var t={replyToMsgID:n.draftMessage.replyToMsgID,clearDraft:!0};do p.sendText(n.curDialog.peerID,e.substr(0,4096),t),e=e.substr(4096),t=angular.copy(t),delete t.clearDraft;while(e.length)}I(),j==n.curDialog.peer&&(j=!1),k(),n.$broadcast("ui_message_send")}function y(){var e=n.draftMessage.text;e=g.parseEmojis(e),p.editMessage(V,e).then(function(){V=!1,k(),n.$broadcast("ui_message_send"),i(function(){n.$broadcast("ui_peer_reply")})})}function b(){var e=n.curDialog.peerID;if(!e)return safeReplaceObject(n.mentions,{}),void n.$broadcast("mentions_update");var i,a=[],r=SearchIndexManager.createIndex(),s=f.getPopularBots().then(function(e){var t=[];return angular.forEach(e,function(e){t.push(e.id)}),t});e<0&&!c.isBroadcast(e)?(i=c.isChannel(e)?o.getChannelParticipants(-e):o.getChatFull(-e).then(function(e){return(e.participants||{}).participants||[]}),i=i.then(function(e){var t=[];return angular.forEach(e,function(e){t.push(e.user_id)}),t})):i=t.when([]),t.all({pop:s,chat:i}).then(function(e){var t={},i=e.pop.concat(e.chat);angular.forEach(i,function(e){t[e]||(t[e]=!0,a.push(l.getUser(e)),SearchIndexManager.indexObject(e,l.getUserSearchText(e),r))}),safeReplaceObject(n.mentions,{users:a,index:r}),n.$broadcast("mentions_update")})}function w(){var e=n.curDialog.peerID;return e?void o.getPeerBots(e).then(function(t){if(!t.length)return safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update");var i=e<0,a=[],r=SearchIndexManager.createIndex();angular.forEach(t,function(e){var t="";if(i){var n=l.getUser(e.id);n&&n.username&&(t+="@"+n.username)}var o=l.getUserSearchText(e.id);angular.forEach(e.commands,function(n,i){var s="/"+i+t;a.push({botID:e.id,value:s,rDescription:g.wrapRichText(n,{noLinks:!0,noLineBreaks:!0})}),SearchIndexManager.indexObject(s,o+" "+i+" "+n,r)})}),safeReplaceObject(n.commands,{list:a,index:r}),n.$broadcast("mentions_update")}):(safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update"))}function k(e,t){var a=t?c.getPeerID(t):0;if(e!=t&&a)return n.$broadcast("ui_message_before_send"),void i(function(){h.syncDraft(a),k()});if(V=!1,b(),w(),$(),P(),delete n.draftMessage.inlineProgress,n.$broadcast("inline_results",!1),j){if(j==n.curDialog.peer)return n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),void n.$broadcast("ui_peer_draft");j=!1}E(),M()}function M(){if(n.curDialog.peerID){var e;e=V?p.getMessageEditData(V).then(function(e){return e.replyToMsgID=V,e},function(e){return console.warn(e),V=!1,M(),t.reject()}):h.getDraft(n.curDialog.peerID),e.then(function(e){if(n.draftMessage.type=V?"edit":"new",n.draftMessage.text=e?e.text:"",n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),e.replyToMsgID){var t=e.replyToMsgID;A(t)}else $();n.$broadcast("ui_peer_draft")})}else n.draftMessage.text="",n.$broadcast("ui_peer_draft")}function S(e,t){if(console.log(dT(),"apply draft attach",t),t&&t._)if("share_url"==t._){var a=t.url,r=t.text||" ";j=n.curDialog.peer,i(function(){n.draftMessage.text=a+"\n"+r,n.$broadcast("ui_peer_draft",{customSelection:[a+"\n",r,""]})},1e3)}else if("fwd_messages"==t._)j=n.curDialog.peer,i(function(){n.draftMessage.fwdMessages=t.id,n.$broadcast("ui_peer_reply")},100);else if("inline_query"==t._){var o=t.mention,s=t.query;j=n.curDialog.peer,i(function(){n.draftMessage.text=o+" "+s,n.$broadcast("ui_peer_draft",{customSelection:[o+" "+s,"",""]})},1e3)}}function A(e,t){return V&&t?void $():(n.draftMessage.replyToMsgID=e,n.$broadcast("ui_peer_reply"),H=!1,void(t&&!V&&h.changeDraft(n.curDialog.peerID,{text:n.draftMessage.text,replyToMsgID:e})))}function C(e){V=e,M()}function T(){return!(V||!n.curDialog.peerID)&&void p.getHistory(n.curDialog.peerID).then(function(e){for(var t,n=0;n0,t.nav.hasPrev=b||n<_.length-1,t.canForward=t.canDelete=t.messageID>0}function p(n){var i=_.indexOf(t.messageID),o=i>=0?i+n:0,s=++w,l=o>=_.length?f():e.when();l.then(function(){if(s==w){var e=_[o],i=r.getMessage(e),l=i&&i.media&&(i.media.photo&&i.media.photo.id||i.media.webpage&&i.media.webpage.photo&&i.media.webpage.photo.id);if(!l)return void console.error("Invalid photo message",o,_,e,i);t.messageID=e,t.photoID=l,t.photo=a.wrapForFull(t.photoID),v[t.messageID]=!0,u(),n>0&&b&&_.indexOf(e)+1>=_.length?f():d(n)}})}function f(){return k?k:k=r.getSearch(m,h,g,y).then(function(t){return t.history.length?(y=t.history[t.history.length-1],_=_.concat(t.history),b=_.length=0&&(_=e.history,y=_[_.length-1],u(),d(1)),f()},f);var w=0,k=!1}}]).controller("UserpicModalController",["$q","$scope","$rootScope","$modalInstance","MtpApiManager","AppPhotosManager","AppUsersManager","AppPeersManager","AppMessagesManager","ApiUpdatesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u){function p(n,i){var a=g.indexOf(t.photoID),o=a>=0?a+n:0,s=++w,l=o>=g.length?m():e.when();l.then(function(){if(s==w){t.photoID=g[o],t.photo=r.wrapForFull(t.photoID),t.photo.thumb={location:r.choosePhotoSize(t.photo,0,0).location};var e;i&&(g.splice(a,1),e=t.count-1),h(e),v[t.photoID]=!0,h(),n>0&&b&&g.indexOf(t.photoID)+1>=g.length?m():f(n)}})}function f(e){var n=e<0?[-1,-2]:[1,2],i=g.indexOf(t.photoID);angular.forEach(n,function(e){var t=g[i+e];void 0!==t&&void 0===v[t]&&(v[t]=!0,r.preloadPhoto(t))})}function m(){return k?k:k=r.getUserPhotos(t.userID,_).then(function(t){return t.photos.length?(_=t.photos[t.photos.length-1],g=g.concat(t.photos),b=g.length0,t.nav.hasPrev=b||n=0&&(g=e.photos,_=g[g.length-1]),b=g.length=200,(Config.Modes.test||Config.Modes.debug)&&(e.needMigrate=!0),p.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void p.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,p.updatePeerSettings(-e.chatID,n)})})})}),e.leaveGroup=function(){_.confirm({type:"HISTORY_LEAVE_AND_FLUSH"}).then(function(){d.invokeApi("messages.deleteChatUser",{chat_id:s.getChatInput(e.chatID),user_id:{_:"inputUserSelf"}}).then(function(i){h.processUpdateMessage(i),f.flushHistory(-e.chatID).then(function(){t.close(),n.url("/im")})})})},e.inviteToGroup=function(){var t=[];angular.forEach(e.chatFull.participants.participants,function(e){t.push(e.user_id)}),g.selectContacts({disabled:t}).then(function(t){angular.forEach(t,function(t){d.invokeApi("messages.addChatUser",{chat_id:s.getChatInput(e.chatID),user_id:o.getUserInput(t),fwd_limit:100}).then(function(e){h.processUpdateMessage(e)})}),a.$broadcast("history_focus",{peerString:e.chatFull.peerString})})},e.migrateToSuperGroup=function(){_.confirm({type:"SUPERGROUP_MIGRATE"}).then(function(){d.invokeApi("messages.migrateChat",{chat_id:s.getChatInput(e.chatID)}).then(v)})},e.kickFromGroup=function(t){d.invokeApi("messages.deleteChatUser",{chat_id:s.getChatInput(e.chatID),user_id:o.getUserInput(t)}).then(v)},e.flushHistory=function(i){_.confirm({type:i?"HISTORY_FLUSH":"HISTORY_FLUSH_AND_DELETE"}).then(function(){f.flushHistory(-e.chatID,i).then(function(){i?a.$broadcast("history_focus",{ peerString:e.chatFull.peerString}):(t.close(),n.url("/im"))})})},e.inviteViaLink=function(){var t=a.$new();t.chatID=e.chatID,r.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:t,windowClass:"md_simple_modal_window"})},e.photo={},e.$watch("photo.file",y),e.deletePhoto=function(){e.photo.updating=!0,d.invokeApi("messages.editChatPhoto",{chat_id:s.getChatInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(v)["finally"](function(){e.photo.updating=!1})},e.editTitle=function(){var t=a.$new();t.chatID=e.chatID,r.open({templateUrl:templateUrl("chat_edit_modal"),controller:"ChatEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.hasRights=function(t){return s.hasRights(e.chatID,t)}}]).controller("ChannelModalController",["$scope","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","AppProfileManager","AppPhotosManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h){function g(t){f.processUpdateMessage(t),n.$broadcast("history_focus",{peerString:e.chatFull.peerString}),t&&t.updates&&t.updates.length&&r.isChannel(e.chatID)&&o.invalidateChannelParticipants(e.chatID)}function _(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,c.uploadFile(t).then(function(t){return l.invokeApi("channels.editPhoto",{channel:r.getChannelInput(e.chatID),photo:{_:"inputChatUploadedPhoto",file:t}}).then(g)})["finally"](function(){e.photo.updating=!1}))}e.chatFull=r.wrapForFull(e.chatID,{}),e.settings={notifications:!0},e.isMegagroup=r.isMegagroup(e.chatID),o.getChannelFull(e.chatID,!0).then(function(t){e.chatFull=r.wrapForFull(e.chatID,t),e.$broadcast("ui_height"),d.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void d.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,d.updatePeerSettings(-e.chatID,n)})})}),e.chatFull.chat&&e.chatFull.chat.pFlags.creator&&e.chatFull.exported_invite&&"chatInviteEmpty"==e.chatFull.exported_invite._&&o.getChatInviteLink(e.chatID,!0).then(function(t){e.chatFull.exported_invite={_:"chatInviteExported",link:t}})}),o.getChannelParticipants(e.chatID).then(function(t){e.participants=r.wrapParticipants(e.chatID,t),e.$broadcast("ui_height")}),e.leaveChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_LEAVE":"CHANNEL_LEAVE"}).then(function(){l.invokeApi("channels.leaveChannel",{channel:r.getChannelInput(e.chatID)}).then(g)})},e.deleteChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_DELETE":"CHANNEL_DELETE"}).then(function(){l.invokeApi("channels.deleteChannel",{channel:r.getChannelInput(e.chatID)}).then(g)})},e.flushHistory=function(){h.confirm({type:"HISTORY_FLUSH"}).then(function(){u.flushHistory(-e.chatID).then(function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})})})},e.joinChannel=function(){l.invokeApi("channels.joinChannel",{channel:r.getChannelInput(e.chatID)}).then(g)},e.inviteToChannel=function(){var t=[];angular.forEach((e.chatFull.participants||{}).participants||[],function(e){t.push(e.user_id)}),m.selectContacts({disabled:t}).then(function(t){var n=[];angular.forEach(t,function(e){n.push(a.getUserInput(e))}),l.invokeApi("channels.inviteToChannel",{channel:r.getChannelInput(e.chatID),users:n}).then(g)})},e.kickFromChannel=function(t){l.invokeApi("channels.editBanned",{channel:r.getChannelInput(e.chatID),user_id:a.getUserInput(t),banned_rights:{_:"channelBannedRights",flags:1,until_date:0}}).then(g)},e.shareLink=function(t){var a=n.$new();return a.chatID=e.chatID,i.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:a,windowClass:"md_simple_modal_window"}),cancelEvent(t)},e.photo={},e.$watch("photo.file",_),e.deletePhoto=function(){e.photo.updating=!0,l.invokeApi("channels.editPhoto",{channel:r.getChannelInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(g)["finally"](function(){e.photo.updating=!1})},e.editChannel=function(){var t=n.$new();t.chatID=e.chatID,i.open({templateUrl:templateUrl(e.isMegagroup?"megagroup_edit_modal":"channel_edit_modal"),controller:"ChannelEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.goToHistory=function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})},e.hasRights=function(t){return r.hasRights(e.chatID,t)}}]).controller("SettingsModalController",["$rootScope","$scope","$timeout","$modal","AppUsersManager","AppChatsManager","AppPhotosManager","MtpApiManager","Storage","NotificationsManager","MtpApiFileManager","PasswordManager","ApiUpdatesManager","ChangelogNotifyService","LayoutSwitchService","WebPushApiManager","AppRuntimeManager","ErrorService","_",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v){function y(){n.cancel(k),k=!1,u.getState().then(function(e){t.password=e,"account.noPassword"==e._&&e.email_unconfirmed_pattern&&!M&&(k=n(y,5e3))})}function b(e){e&&e.type&&0===e.type.indexOf("image")&&(t.photo.updating=!0,d.uploadFile(e).then(function(e){s.invokeApi("photos.uploadProfilePhoto",{file:e,caption:"",geo_point:{_:"inputGeoPointEmpty"}}).then(function(e){a.saveApiUsers(e.users),s.getUserID().then(function(n){o.savePhoto(e.photo,{user_id:n}),p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:a.getUser(n).photo,previous:!0}}),t.photo={}})})})["finally"](function(){delete t.photo.updating}))}t.profile={},t.photo={},t.version=Config.App.version,s.getUserID().then(function(e){t.profile=a.getUser(e)});var w=s.invokeApi("users.getFullUser",{id:{_:"inputUserSelf"}}).then(function(e){a.saveApiUser(e.user),e.profile_photo&&o.savePhoto(e.profile_photo,{user_id:e.user.id})});t.contentSettings={notReady:!0};s.invokeApi("account.getContentSettings",{}).then(function(e){t.contentSettings=e});t.toggleContentSettings=function(){return t.contentSettings.pFlags&&t.contentSettings.pFlags.sensitive_enabled?(delete t.contentSettings.pFlags.sensitive_enabled,void s.invokeApi("account.setContentSettings",{flags:0})):_.confirm({type:"CONTENT_SETTINGS_SENSITIVE"}).then(function(){t.contentSettings.pFlags.sensitive_enabled=!0,s.invokeApi("account.setContentSettings",{flags:1})})},t.notify={volume:.5},t.send={},t.$watch("photo.file",b),t.password={_:"account.noPassword"},y();var k=!1,M=!1;t.openUserPic=function(){w.then(function(){t.openPhoto(t.profile.photo.photo_id,{p:t.profile.id})})},t.changePassword=function(n){if(n=n||{},"cancel_email"==n.action)return _.confirm({type:"PASSWORD_ABORT_SETUP"}).then(function(){u.updateSettings(t.password,{email:""}).then(y)});var a=e.$new();a.password=t.password,angular.extend(a,n);var r=i.open({scope:a,templateUrl:templateUrl("password_update_modal"),controller:"PasswordUpdateModalController",windowClass:"md_simple_modal_window mobile_modal"});r.result["finally"](y)},t.showSessions=function(){i.open({templateUrl:templateUrl("sessions_list_modal"),controller:"SessionsListModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.$on("$destroy",function(){n.cancel(k),M=!0}),t.deletePhoto=function(){t.photo.updating=!0,s.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"}}).then(function(e){s.getUserID().then(function(n){p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:e,previous:!0}}),t.photo={}})})["finally"](function(){delete t.photo.updating})},t.editProfile=function(){i.open({templateUrl:templateUrl("profile_edit_modal"),controller:"ProfileEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.changeUsername=function(){i.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.terminateSessions=function(){_.confirm({type:"TERMINATE_SESSIONS"}).then(function(){s.invokeApi("auth.resetAuthorizations",{})})},l.get("notify_nodesktop","send_ctrlenter","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(i){t.notify.desktop=!i[0],t.send.enter=i[1]?"":"1",t.notify.pushAvailable=h.isAvailable,t.notify.push=!i[5],i[2]!==!1?t.notify.volume=i[2]>0&&i[2]<=1?i[2]:0:t.notify.volume=.5,t.notify.canVibrate=c.getVibrateSupport(),t.notify.vibrate=!i[3],t.notify.preview=!i[4],t.notify.volumeOf4=function(){return 1+Math.ceil((t.notify.volume-.1)/.33)},t.toggleSound=function(){t.notify.volume?t.notify.volume=0:t.notify.volume=.5};var a;t.$watch("notify.volume",function(t,i){t!==i&&(l.set({notify_volume:t}),e.$broadcast("settings_changed"),c.clear(),a&&n.cancel(a),a=n(function(){c.testSound(t)},500))}),t.toggleDesktop=function(){t.notify.desktop=!t.notify.desktop,t.notify.desktop?l.remove("notify_nodesktop"):l.set({notify_nodesktop:!0}),e.$broadcast("settings_changed")},t.togglePush=function(){t.notify.push=!t.notify.push,t.notify.push?l.remove("notify_nopush"):l.set({notify_nopush:!0}),e.$broadcast("settings_changed")},t.togglePreview=function(){t.notify.preview=!t.notify.preview,t.notify.preview?l.remove("notify_nopreview"):l.set({notify_nopreview:!0}),e.$broadcast("settings_changed")},t.toggleVibrate=function(){t.notify.vibrate=!t.notify.vibrate,t.notify.vibrate?l.remove("notify_novibrate"):l.set({notify_novibrate:!0}),e.$broadcast("settings_changed")},t.toggleCtrlEnter=function(n){t.send.enter=n,t.send.enter?l.remove("send_ctrlenter"):l.set({send_ctrlenter:!0}),e.$broadcast("settings_changed")}}),t.openChangelog=function(){f.showChangelog(!1)},t.logOut=function(){_.confirm({type:"LOGOUT"}).then(function(){s.logOut().then(function(){location.hash="/login",g.reload()})})},t.switchBackToDesktop=Config.Mobile&&!Config.Navigator.mobile,t.switchToDesktop=function(){m.switchLayout(!1)}}]).controller("ChangelogModalController",["$scope","$modal",function(e,t){if(e.currentVersion=Config.App.version,!e.lastVersion){var n=e.currentVersion.split(".");e.lastVersion=n[0]+"."+n[1]+"."+Math.max(0,n[2]-1)}e.changelogHidden=!1,e.changelogShown=!1,e.canShowVersion=function(t){if(e.changelogShown)return!0;var n=versionCompare(t,e.lastVersion)>=0;return n||(e.changelogHidden=!0),n},e.showAllVersions=function(){e.changelogShown=!0,e.changelogHidden=!1,e.$emit("ui_height"),e.$broadcast("ui_height")},e.changeUsername=function(){t.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})}}]).controller("ReportMessagesModalController",["$scope","$modalInstance",function(e,t){e.reason={_:"inputReportReasonSpam",text:""},e.toggleReportReason=function(t){e.reason={_:t},"inputReportReasonOther"==t&&onContentLoaded(function(){e.$broadcast("ui_reason_text_focus")})}}]).controller("ProfileEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,i){e.profile={},e.error={},i.getUserID().then(function(t){var i=n.getUser(t);e.profile={first_name:i.first_name,last_name:i.last_name}}),e.updateProfile=function(){e.profile.updating=!0;var a=3;i.invokeApi("account.updateProfile",{flags:a,first_name:e.profile.first_name||"",last_name:e.profile.last_name||""}).then(function(i){e.error={},n.saveApiUser(i),t.close()},function(n){switch(n.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},n.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},n.handled=!0;break;case"NAME_NOT_MODIFIED":n.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})}}]).controller("UsernameEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,i){e.profile={},e.error={},i.getUserID().then(function(t){var i=n.getUser(t);e.profile={username:i.username}}),e.updateUsername=function(){e.profile.updating=!0,i.invokeApi("account.updateUsername",{username:e.profile.username||""}).then(function(i){e.checked={},n.saveApiUser(i),t.close()},function(e){switch(e.type){case"USERNAME_NOT_MODIFIED":e.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})},e.$watch("profile.username",function(t){return t&&t.length?void i.invokeApi("account.checkUsername",{username:t}).then(function(n){e.profile.username===t&&(n?e.checked={success:!0}:e.checked={error:!0})},function(n){if(e.profile.username===t)switch(n.type){case"USERNAME_INVALID":e.checked={error:!0},n.handled=!0}}):void(e.checked={})})}]).controller("SessionsListModalController",["$scope","$q","$timeout","_","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,i,a,r,o){function s(){n.cancel(l),a.invokeApi("account.getAuthorizations").then(function(t){e.sessionsLoaded=!0,e.authorizations=t.authorizations;for(var i,a=0,r=e.authorizations.length;a=2&&n(function(){i==p&&r.invokeApi("contacts.search",{q:t,limit:10}).then(function(t){if(s.saveApiUsers(t.users),i==p){var n=t.my_results.length,r=t.my_results.concat(t.results);angular.forEach(r,function(t,i){var r=o.getPeerID(t);r<=0||a.indexOf(r)!=-1||e.contacts.push({userID:r,user:s.getUser(r),peerString:s.getUserString(r),found:i>=n})})}},function(e){400==e.code&&(e.handled=!0)})},500)}e.contacts=[],e.foundPeers=[],e.search={},e.slice={limit:20,limitDelta:20};var u,p=0;if(c(),e.disabledContacts={},e.disabled)for(u=0;u0){var t=[];return angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),a.close(t)}},e.deleteSelected=function(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),s.deleteContacts(t).then(function(){e.toggleEdit(!1)})}},e.importContact=function(){s.openImportContact().then(function(e){e&&t.$broadcast("history_focus",{peerString:s.getUserString(e)})})}}]).controller("PeerSelectController",["$scope","$modalInstance","$q","AppPeersManager","ErrorService",function(e,t,n,i,a){e.selectedPeers={},e.selectedPeerIDs=[],e.selectedCount=0,e.shareLinkPromise&&(e.shareLink={loading:!0},e.shareLinkPromise.then(function(t){e.shareLink={url:t}},function(){delete e.shareLink})),e.dialogMultiSelect=function(t,n){var a=i.getPeerID(t);if(e.multiSelect=void 0==e.selectedPeers[a]||void 0!=e.selectedPeers[a]&&Object.keys(e.selectedPeers).length>1,e.selectedPeers[a]){delete e.selectedPeers[a],e.selectedCount--;var r=e.selectedPeerIDs.indexOf(a);r>=0&&e.selectedPeerIDs.splice(r,1)}else e.selectedPeers[a]=i.getPeer(a),e.selectedCount++,e.selectedPeerIDs.unshift(a);cancelEvent(n)},e.isSelected=function(t){var n=i.getPeerID(t);return void 0!=e.selectedPeers[n]},e.dialogSelect=function(r){var o;if(!e.multiSelect){var s;if(e.confirm_type){o=i.getPeerID(r);var l=i.getPeer(o);s=a.confirm({type:e.confirm_type,peer_id:o,peer_data:l})}else s=n.when();return void s.then(function(){t.close(r)})}if(o=i.getPeerID(r),e.selectedPeers[o]){delete e.selectedPeers[o],e.selectedCount--;var c=e.selectedPeerIDs.indexOf(o);c>=0&&e.selectedPeerIDs.splice(c,1)}else e.selectedPeers[o]=i.getPeer(o),e.selectedCount++,e.selectedPeerIDs.unshift(o)},e.submitSelected=function(){if(e.selectedCount>0){var n=[];return angular.forEach(e.selectedPeers,function(e,t){n.push(i.getPeerString(t))}),t.close(n)}},e.toggleSearch=function(){e.$broadcast("dialogs_search_toggle")}}]).controller("ChatCreateModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,i,a,r,o){e.group={name:""},e.createGroup=function(){if(e.group.name){e.group.creating=!0;var s=[];return angular.forEach(e.userIDs,function(e){s.push(a.getUserInput(e))}),i.invokeApi("messages.createChat",{title:e.group.name,users:s}).then(function(e){if(o.processUpdateMessage(e),e.updates&&e.updates.length){for(var i,a=0,s=e.updates.length;a5184e5?r=n?"mediumDate":"shortDate":a>432e5&&(r=n?"EEEE":"EEE"),t(i,r)}}]).filter("dateMedium",["$filter",function(e){var t=e("date");return function(e,n){var i=1e3*e;return t(i,"medium")}}]).filter("time",["$filter",function(e){var t={},n=e("date"),i=Config.Mobile?"shortTime":"mediumTime";return function(e){return t[e]?t[e]:t[e]=n(1e3*e,i)}}]).filter("myDate",["$filter",function(e){var t={},n=e("date");return function(e){return t[e]?t[e]:t[e]=n(1e3*e,"fullDate")}}]).filter("duration",[function(){return function(e){e=parseInt(e),isNaN(e)&&(e=0);var t=Math.floor(e/3600),n=Math.floor(e%3600/60),i=e%60,a=(t?t+":":"")+n+":"+i;return a=a.replace(/:(\d(?::|$))/g,":0$1")}}]).filter("durationRemains",["$filter",function(e){var t=e("duration");return function(e,n){return"-"+t(n-e)}}]).filter("phoneNumber",[function(){return function(e){var t=" ";return e=(e||"").replace(/\D/g,""),"7"===e.charAt(0)&&11===e.length?"+"+e.charAt(0)+t+"("+e.substr(1,3)+")"+t+e.substr(4,3)+"-"+e.substr(7,2)+"-"+e.substr(9,2):"+"+e}}]).filter("formatSize",[function(){return function(e,t){if(!e)return"0";if(e<1024)return e+" b";if(e<1048576)return Math.round(e/1024)+" KB";var n=e/1048576;return n=t?n.toFixed(1):Math.round(10*n)/10,n+" MB"}}]).filter("formatSizeProgress",["$filter","_",function(e,t){var n=e("formatSize");return function(e){if(!e.total)return"";var i=n(e.done,!0),a=i.split(" "),r=n(e.total),o=r.split(" ");return o[1]===a[1]?t("format_size_progress_mulitple",{done:a[0],total:o[0],parts:a[1]}):t("format_size_progress",{done:i,total:r})}}]).filter("formatShortNumber",[function(){return function(e){var t;return e?e<1e3?e.toString():e<9e5?(t=e>1e4?1:10,Math.round(e/1e3*t)/t+"K"):(t=e>1e7?1:10,Math.round(e/1e6*t)/t+"M"):"0"}}]).filter("nl2br",[function(){return function(e){return e.replace(/\n/g,"
")}}]).filter("shortUrl",[function(){return function(e){return"string"!=typeof e?e:e.replace(/^https?:\/\//,"").replace(/^www\./,"")}}]).filter("richText",["$filter",function(e){var t=e("linky");return function(e){return t(e,"_blank").replace(/\n| /g,"
")}}]).filter("relativeTime",["$filter","_",function(e,t){var n=t.pluralize("relative_time_pluralize_minutes_ago"),i=t.pluralize("relative_time_pluralize_hours_ago"),a=e("dateOrTime");return function(e){var r=Math.abs(tsNow(!0)-e);if(r<60)return t("relative_time_just_now");if(r<3600){var o=Math.floor(r/60);return n(o)}if(r<86400){var s=Math.floor(r/3600);return i(s)}return a(e,!0)}}]),angular.module("myApp.services").service("AppMessagesManager",["$q","$rootScope","$location","$filter","$timeout","$sce","ApiUpdatesManager","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","AppDocsManager","AppStickersManager","AppMessagesIDsManager","DraftsManager","AppWebPagesManager","AppGamesManager","MtpApiManager","MtpApiFileManager","ServerTimeManager","RichTextProcessor","NotificationsManager","Storage","AppProfileManager","TelegramMeWebService","ErrorService","StatusManager","_",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v,y,b,w,k,M,S,A,C,T){function $(t,n,i){var a=Ue,r=angular.isString(t)&&t.length; if(r){if(!i||Ke.query!==t){Ke.query=t;var o=SearchIndexManager.search(t,Ge);Ke.dialogs=[],angular.forEach(Ue.dialogs,function(e){o[e.peerID]&&Ke.dialogs.push(e)}),Ke.count=Ke.dialogs.length}a=Ke}else Ke.query=!1;var s=0;if(n>0)for(s=0;sa.dialogs[s].index);s++);return i=i||20,r||ot||a.dialogs.length>=s+i?e.when({dialogs:a.dialogs.slice(s,s+i)}):P(i).then(function(){if(s=0,n>0)for(s=0;sa.dialogs[s].index);s++);return{dialogs:a.dialogs.slice(s,s+i)}})}function E(t){var n=I(t);return n.length?e.when(n[0]):e.when({peerID:t,top_message:0,index:R(D()),pFlags:{}})}function I(e){for(var t=0;tg)&&(g=_.date)}var v=m.saveDraft(n,e.draft);v&&v.date>g&&(g=v.date),e.pFlags.pinned&&(g=D()),e.index=R(g),e.peerID=n,O(e,u);var y=d.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";if(d.mid&&d.mid>e[y]&&(d.pFlags.unread=!0),void 0===Fe[n]&&!d.deleted){var b={count:null,history:[],pending:[]};b[r>0?"history":"pending"].push(r),r<0&&d.pFlags.unread&&e.unread_count++,Fe[n]=b,V(b,d)&&t.$broadcast("history_reply_markup",{peerID:n})}if(w.savePeerSettings(n,e.notify_settings),i&&e.pts&&o.addChannelState(i,e.pts),Config.Modes.packed&&!i&&e.unread_count>0&&nt&&e.top_message>nt&&d.pFlags.unread&&!d.pFlags.out){var k=16&d.flags?d.from_id:n;w.getPeerMuted(k).then(function(e){e||$e(d)})}}function P(e){var n=Ue.dialogs,i=0,r=0,o=0,d=0,u=0;return st&&(i=st+y.serverTimeOffset,d=65536*st,u|=1),_.invokeApi("messages.getDialogs",{flags:u,offset_date:i,offset_id:f.getMessageLocalID(r),offset_peer:c.getInputPeerByID(o),limit:e},{timeout:300}).then(function(e){i||S.setAuthorized(!0),s.saveApiUsers(e.users),l.saveApiChats(e.chats),ie(e.messages);var r=!!i,o=!1;e.dialogs.reverse(),angular.forEach(e.dialogs,function(e){x(e),d&&e.index>d&&(ht[e.peerID]=e,o=!0),r||c.isChannel(c.getPeerID(e.peer))||(Te(e.top_message),r=!0)}),e.dialogs.reverse(),(!e.dialogs.length||!e.count||n.length>=e.count)&&(ot=!0),o&&!mt?mt=a(Ie,0):t.$broadcast("dialogs_multiupdate",{})})}function D(){return 2147483392+(255<++)}function R(e){return void 0===e&&(e=tsNow(!0)+y.serverTimeOffset),65536*e+(65535&++ct)}function O(e,t){var n=Ue.dialogs,i=I(e.peerID)[1];if(void 0!==i&&n.splice(i,1),t&&!e.pFlags.pinned&&(!st||t=n[0].index)n.unshift(e);else for(a=0;an[a].index){n.splice(a,0,e);break}}function N(t,n,i,a){var r=c.isChannel(t);r&&c.isMegagroup(t);return _.invokeApi("messages.getHistory",{peer:c.getInputPeerByID(t),offset_id:n?f.getMessageLocalID(n):0,add_offset:a||0,limit:i||0},{timeout:300,noErrorBox:!0}).then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ie(e.messages),r&&o.addChannelState(-t,e.pts);var n=e.messages.length;return n&&e.messages[n-1].deleted&&(e.messages.splice(n-1,1),n--,e.count--),t<0||!s.isBot(t)||n==i&&i0)for(o=0;oa.history[o]);o++);var s=a.history.length;a.history.splice(o,a.history.length-o),angular.forEach(r.messages,function(n){V(a,n)&&t.$broadcast("history_reply_markup",{peerID:e}),a.history.push(n.mid)});var l=a.history.length;i-=l-s;var c=dt[e],d=ut[e],u=void 0!==c||void 0!==d;if(u&&(a.count=Math.max(a.count,l)+1),i>0){if(n=a.history[l-1],u){if(!r.messages.length){if(!d)return a.count=l,!0;n=0,e=d}return L(e,n,i,a)}if(l=0;a--)if(r=Oe[n.history[a]],r&&!r.pFlags.out&&r.pFlags.unread){n.unreadOffset=a+1;break}}return e.when(n)}function U(e,n){if(!dt[e]&&!ut[n]&&l.hasChat(-n)){var i=l.getChat(-e);i&&i.migrated_to&&i.migrated_to.channel_id==-n&&(dt[e]=n,ut[n]=e,a(function(){var i=I(e);i.length&&(Ue.dialogs.splice(i[1],1),t.$broadcast("dialog_drop",{peerID:e})),t.$broadcast("dialog_migrate",{migrateFrom:e,migrateTo:n})},100))}}function B(e){if(dt[e])return dt[e]}function H(e,t,n,i,a){dt[e]&&(e=dt[e]);var r=Fe[e],o=0,s=!1,l=!1,c=!1;a=a?Math.min(50,a):0,void 0===r&&(r=Fe[e]={count:null,history:[],pending:[]}),t<0&&(t=0);var d=!1,u=e;if(ut[e]&&(d=!0,t&&t1){var m=p.unread_count;(c=m>50)?p.read_inbox_max_id?(t=p.read_inbox_max_id,i=16,l=16,n=4):(n=20,l=16,o=m-l):(n=Math.max(10,a,m+2),l=m)}else Config.Mobile&&(n=20)}if(t>0)for(s=!0,o=0;or.history[o]){s=!1;break}if(!s&&(null!==r.count&&r.history.length==r.count||r.history.length>=o+(n||1))){i?(i=Math.min(o,i),o=Math.max(0,o-i),n+=i):n=n||(o?20:a||5);var h=r.history.slice(o,o+n);return!t&&r.pending.length&&(h=r.pending.slice().concat(h)),F(e,{count:r.count,history:h,unreadOffset:l,unreadSkip:c})}return i||n||(n=a||20),s&&(o=0),i||c||t&&r.history.indexOf(t)==-1?(i&&(o=-i,n+=i),N(u,t,n,o).then(function(n){r.count=n.count||n.messages.length,d&&r.count++;var i=[];return angular.forEach(n.messages,function(e){i.push(e.mid)}),!t&&r.pending.length&&(i=r.pending.slice().concat(i)),F(e,{count:r.count,history:i,unreadOffset:l,unreadSkip:c})})):L(e,t,n,r).then(function(){if(o=0,t>0)for(o=0;or.history[o]);o++);var i=r.history.slice(o,o+n);return!t&&r.pending.length&&(i=r.pending.slice().concat(i)),F(e,{count:r.count,history:i,unreadOffset:l,unreadSkip:c})})}function j(e){return(Fe[e]||{}).reply_markup||!1}function V(e,t){if(!t.reply_markup&&!t.pFlags.out&&!t.action)return!1;if(t.reply_markup&&"replyInlineMarkup"==t.reply_markup._)return!1;var n=t.reply_markup,i=e.reply_markup;if(n)return!(i&&i.mid>=t.mid)&&(!(n.pFlags.selective&&!(16&t.flags))&&(e.maxOutID&&t.midi.mid||t.mid<0)&&t.message)return i.pFlags.hidden=!0,!0}else(!e.maxOutID||t.mid>e.maxOutID)&&(e.maxOutID=t.mid);return!(!t.action||"messageActionChatDeleteUser"!=t.action._||(i?t.action.user_id!=i.fromID:!s.isBot(t.action.user_id)))&&(e.reply_markup={_:"replyKeyboardHide",mid:t.mid,flags:0,pFlags:{}},!0)}function q(t,n,i,a,r){t=t?parseInt(t):0;var o=[],d=!n,u={peer:t,filter:i},p=d&&angular.equals(Ye,u);if(d&&!p&&(Ye=u,Xe=[]),t&&!a&&!n){var m=Fe[t];if(void 0!==m&&m.history.length){var h,g,v,b={},w=r||20;switch(i._){case"inputMessagesFilterPhotos":b.messageMediaPhoto=!0;break;case"inputMessagesFilterPhotoVideo":b.messageMediaPhoto=!0,b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterVideo":b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterDocument":b.messageMediaDocument=!0,h=!1;break;case"inputMessagesFilterVoice":b.messageMediaDocument=!0,h="voice";break;case"inputMessagesFilterRoundVideo":b.messageMediaDocument=!0,h="round";break;case"inputMessagesFilterMusic":b.messageMediaDocument=!0,h="audio";break;case"inputMessagesFilterUrl":b.url=!0;break;case"inputMessagesFilterMyMentions":b.mentioned=!0;break;default:return e.when({count:0,history:[]})}for(g=0;g=w)break}}if(o.length=w));g++);}if(o.length||1e3==r)return d&&(Xe=listMergeSorted(Xe,o)),e.when({count:null,history:o});var M;if(t||!n)M=_.invokeApi("messages.search",{flags:0,peer:c.getInputPeerByID(t),q:n||"",filter:i||{_:"inputMessagesFilterEmpty"},min_date:0,max_date:0,limit:r||20,offset_id:f.getMessageLocalID(a)||0,add_offset:0,max_id:0,min_id:0},{timeout:300,noErrorBox:!0});else{var S=0,A=0,C=0,T=a&&z(a);T&&T.date&&(S=T.date+y.serverTimeOffset,C=T.id,A=ge(T)),M=_.invokeApi("messages.searchGlobal",{q:n,offset_date:S,offset_peer:c.getInputPeerByID(A),offset_id:f.getMessageLocalID(C),limit:r||20},{timeout:300,noErrorBox:!0})}return M.then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ie(e.messages);var t=e.count||e.messages.length;return o=[],angular.forEach(e.messages,function(e){var t=ge(e);if(t<0){var n=l.getChat(-t);n.migrated_to&&U(t,-n.migrated_to.channel_id)}o.push(e.mid)}),d&&(!a||p&&Xe.indexOf(a)>=0)&&(Xe=listMergeSorted(Xe,o)),{count:t,history:o}},function(t){return 400==t.code&&(t.handled=!0),e.reject(t)})}function z(e){return Oe[e]||{_:"messageEmpty",deleted:!0,pFlags:{out:!1,unread:!1}}}function W(e){var t=["messageMediaPhoto","messageMediaDocument","messageMediaWebPage","messageMediaPending"];return!("message"!=e._||e.deleted||e.fwd_from||e.via_bot_id||e.media&&t.indexOf(e.media._)==-1||e.fromID&&s.isBot(e.fromID))&&(!e.media||"messageMediaDocument"!=e.media._||!e.media.document.sticker)}function G(e){if(!Oe[e])return!1;var t=Oe[e];return!(!t||!t.canBeEdited)&&(ge(t)==s.getSelf().id||!(t.date0){var s=l.getChat(t);if(!(s.pFlags.creator||s.pFlags.editor&&s.pFlags.megagroup)){var c=[];if((s.pFlags.editor||s.pFlags.megagroup)&&angular.forEach(e,function(e,n){var a=z(i.mids[t][n]);a.pFlags.out&&c.push(e)}),!c.length)return;e=c}r=_.invokeApi("channels.deleteMessages",{channel:l.getChannelInput(t),id:e}).then(function(n){o.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteChannelMessages",channel_id:t,messages:e,pts:n.pts,pts_count:n.pts_count}})})}else{var d=0;n&&(d|=1),r=_.invokeApi("messages.deleteMessages",{flags:d,id:e}).then(function(t){o.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:e,pts:t.pts,pts_count:t.pts_count}})})}a.push(r)}),e.all(a)}function Z(t){var n=f.getMessageIDInfo(t),i=n[0],a=n[1];if(!a)return e.reject();var r=z(t),o=l.getChat(a);return r&&r.pFlags&&r.pFlags.post&&o.username?_.invokeApi("channels.exportMessageLink",{channel:l.getChannelInput(a),id:i}).then(function(e){return e.link}):e.reject()}function Q(e){var n=c.isChannel(e),i=Fe[e],a=I(e)[0];if(!a||!a.unread_count){if(!i||!i.history.length)return!1;var r,s,d=!1;for(p=i.history.length;p>=0;p--)if(r=i.history[p],s=Oe[r],s&&!s.pFlags.out&&s.pFlags.unread){d=!0;break}if(!d)return!1}if(i.readPromise)return i.readPromise;var u;if(u=n?_.invokeApi("channels.readHistory",{channel:l.getChannelInput(-e),max_id:0}):_.invokeApi("messages.readHistory",{peer:c.getInputPeerByID(e),max_id:0}).then(function(e){o.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:e.pts,pts_count:e.pts_count}})}),i.readPromise=u.then(function(){a&&(a.unread_count=0,t.$broadcast("dialog_unread",{peerID:e,count:0}),t.$broadcast("messages_read"),i&&i.history.length&&(a.read_inbox_max_id=i.history[0]))})["finally"](function(){delete i.readPromise}),i&&i.history.length){var r,s,p,e,a;for(p=0;p0?_.invokeApi("channels.readMessageContents",{channel:l.getChannelInput(t),id:e}).then(function(){o.processUpdateMessage({_:"updateShort",update:{_:"updateChannelReadMessagesContents",channel_id:t,messages:e}})}):_.invokeApi("messages.readMessageContents",{id:e}).then(function(t){o.processUpdateMessage({_:"updateShort",update:{_:"updateReadMessagesContents",messages:e,pts:t.pts,pts_count:t.pts_count}})})})}function te(e,t){var n=0;return t&&(n|=1),_.invokeApi("messages.deleteHistory",{flags:n,peer:e,max_id:0}).then(function(n){return o.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:n.pts,pts_count:n.pts_count}}),!n.offset||te(e,t)})}function ne(e,n){return c.isChannel(e)?H(e,!1,1).then(function(t){var n=-e,i=f.getMessageLocalID(t.history[0]||0);return _.invokeApi("channels.deleteHistory",{channel:l.getChannelInput(n),max_id:i}).then(function(){return o.processUpdateMessage({_:"updateShort",update:{_:"updateChannelAvailableMessages",channel_id:n,available_min_id:i}}),!0})}):te(c.getInputPeerByID(e),n).then(function(){if(n)t.$broadcast("dialog_flush",{peerID:e});else{var i=I(e);i[0]&&Ue.dialogs.splice(i[1],1),delete Fe[e],t.$broadcast("dialog_drop",{peerID:e})}})}function ie(e,t){t=t||{},angular.forEach(e,function(e){if(void 0===e.pFlags&&(e.pFlags={}),e.pFlags.out||(e.pFlags.out=!1),e.pFlags.unread||(e.pFlags.unread=!1),"messageEmpty"!=e._){var n=ge(e),i="peerChannel"==e.to_id._,a=i?-n:0,r=i&&l.isBroadcast(a),o=f.getFullMessageID(e.id,a);e.mid=o;var p=I(n)[0];if(p&&o>0){var m=e.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";e.pFlags.unread=o>p[m]}else t.isNew&&(e.pFlags.unread=!0);e.reply_to_msg_id&&(e.reply_to_mid=f.getFullMessageID(e.reply_to_msg_id,a)),e.date-=y.serverTimeOffset,e.peerID=n,e.fromID=e.pFlags.post?n:e.from_id;var _=e.fwd_from;if(_){if(n==s.getSelf().id){if(_.saved_from_peer&&_.saved_from_msg_id){var v=c.getPeerID(_.saved_from_peer),w=f.getFullMessageID(_.saved_from_msg_id,c.isChannel(v)?-v:0);e.savedFrom=v+"_"+w}e.fromID=_.channel_id?-_.channel_id:_.from_id}else e.fwdFromID=_.channel_id?-_.channel_id:_.from_id,e.fwdPostID=_.channel_post;_.date-=y.serverTimeOffset}e.via_bot_id>0&&(e.viaBotID=e.via_bot_id);var k={user_id:e.fromID,date:e.date};if(e.media)switch(e.media._){case"messageMediaEmpty":delete e.media;break;case"messageMediaPhoto":e.media.ttl_seconds?e.media={_:"messageMediaUnsupportedWeb"}:d.savePhoto(e.media.photo,k);break;case"messageMediaDocument":e.media.ttl_seconds?e.media={_:"messageMediaUnsupportedWeb"}:u.saveDoc(e.media.document,k);break;case"messageMediaWebPage":h.saveWebPage(e.media.webpage,e.mid,k);break;case"messageMediaGame":g.saveGame(e.media.game,e.mid,k),e.media.handleMessage=!0;break;case"messageMediaInvoice":e.media={_:"messageMediaUnsupportedWeb"};break;case"messageMediaGeoLive":e.media._="messageMediaGeo"}if(e.action){var M,S;switch(e.action._){case"messageActionChatEditPhoto":d.savePhoto(e.action.photo,k),r&&(e.action._="messageActionChannelEditPhoto");break;case"messageActionChatEditTitle":r&&(e.action._="messageActionChannelEditTitle");break;case"messageActionChatDeletePhoto":r&&(e.action._="messageActionChannelDeletePhoto");break;case"messageActionChatAddUser":1==e.action.users.length?(e.action.user_id=e.action.users[0],e.fromID==e.action.user_id&&(i?e.action._="messageActionChatJoined":e.action._="messageActionChatReturn")):e.action.users.length>1&&(e.action._="messageActionChatAddUsers");break;case"messageActionChatDeleteUser":e.fromID==e.action.user_id&&(e.action._="messageActionChatLeave");break;case"messageActionChannelMigrateFrom":M=-e.action.chat_id,S=-a;break;case"messageActionChatMigrateTo":M=-a,S=-e.action.channel_id;break;case"messageActionHistoryClear":e.deleted=!0,e.clear_history=!0,e.pFlags.out=!1,e.pFlags.unread=!1;break;case"messageActionPhoneCall":delete e.fromID,e.action.type=(e.pFlags.out?"out_":"in_")+("phoneCallDiscardReasonMissed"==e.action.reason._||"phoneCallDiscardReasonBusy"==e.action.reason._?"missed":"ok")}M&&S&&!dt[M]&&!ut[S]&&U(M,S)}if(e.message&&e.message.length){var A=b.parseEntities(e.message),C=e.entities||[];e.totalEntities=b.mergeEntities(A,C,!e.pending)}e.canBeEdited=W(e),t.isEdited||(Oe[o]=e)}})}function ae(e,n,i){if(angular.isString(n)){e=c.getPeerMigratedTo(e)||e,i=i||{};var a=i.entities||[];if(i.viaBotID||(n=b.parseMarkdown(n,a)),n.length){var r,l=me(a),d=ze--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),h=Fe[e],g=0,v={},w=i.replyToMsgID,k=c.isChannel(e),M=k&&c.isMegagroup(e),S=!(!k||M);void 0===h&&(h=Fe[e]={count:null,history:[],pending:[]});var A=s.getSelf().id;e!=A&&(g|=2,v.out=!0,k||s.isBot(e)||(g|=1,v.unread=!0)),w&&(g|=8),S?(A=0,v.post=!0):g|=256,r={_:"message",id:d,from_id:A,to_id:c.getOutputPeer(e),flags:g,pFlags:v,date:tsNow(!0)+y.serverTimeOffset,message:n,random_id:p,reply_to_msg_id:w,via_bot_id:i.viaBotID,reply_markup:i.reply_markup,entities:a,views:S&&1,pending:!0};var C=function(e){var n=Ne[d];e?(r.error=!0,n&&(n.error=!0)):(delete r.error,n&&delete n.error),t.$broadcast("messages_pending")};r.send=function(){C(!1);var t={};je[e]&&(t.afterMessageID=je[e].messageID);var a=0;w&&(a|=1),S&&(a|=16),i.clearDraft&&(a|=128);var s;i.viaBotID?s=_.invokeApi("messages.sendInlineBotResult",{flags:a,peer:c.getInputPeerByID(e),random_id:u,reply_to_msg_id:f.getMessageLocalID(w),query_id:i.queryID,id:i.resultID},t):(l.length&&(a|=8),s=_.invokeApi("messages.sendMessage",{flags:a,peer:c.getInputPeerByID(e),message:n,random_id:u,reply_to_msg_id:f.getMessageLocalID(w),entities:l},t)),s.then(function(e){"updateShortSentMessage"==e._?(r.flags=e.flags,r.date=e.date,r.id=e.id,r.media=e.media,r.entities=e.entities,e={_:"updates",users:[],chats:[],seq:0,updates:[{_:"updateMessageID",random_id:p,id:e.id},{_:k?"updateNewChannelMessage":"updateNewMessage",message:r,pts:e.pts,pts_count:e.pts_count}]}):e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),o.processUpdateMessage(e)},function(e){C(!0)})["finally"](function(){je[e]===t&&delete je[e]}),je[e]=t},ie([r]),h.pending.unshift(d),t.$broadcast("history_append",{peerID:e,messageID:d,my:!0}),setZeroTimeout(r.send),i.clearDraft&&m.clearDraft(e),Be[p]=[e,d]}}}function re(n,i,a){n=c.getPeerMigratedTo(n)||n,a=a||{};var r,l,d=ze--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),m=Fe[n],h=0,g={},b=a.replyToMsgID,w=c.isChannel(n),k=w&&c.isMegagroup(n),M=!(!w||k);a.isMedia?["image/jpeg","image/png","image/bmp"].indexOf(i.type)>=0?(r="photo",l="photo."+i.type.split("/")[1]):"audio/"==i.type.substr(0,6)||["video/ogg"].indexOf(i.type)>=0?(r="audio",l="audio."+("ogg"==i.type.split("/")[1]?"ogg":"mp3")):"video/"==i.type.substr(0,6)?(r="video",l="video.mp4"):(r="document",l="document."+i.type.split("/")[1]):(r="document",l="document."+i.type.split("/")[1]),void 0===m&&(m=Fe[n]={count:null,history:[],pending:[]});var S=s.getSelf().id;n!=S&&(h|=2,g.out=!0,w||s.isBot(n)||(h|=1,g.unread=!0)),b&&(h|=8),M?(S=0,g.post=!0):h|=256;var A,C={_:"messageMediaPending",type:r,file_name:i.name||l,size:i.size,progress:{percent:1,total:i.size}},T={_:"message",id:d,from_id:S,to_id:c.getOutputPeer(n),flags:h,pFlags:g,date:tsNow(!0)+y.serverTimeOffset,message:"",media:C,random_id:p,reply_to_msg_id:b,views:M&&1,pending:!0},$=function(e){var n=Ne[d];e?(T.error=!0,n&&(n.error=!0)):(delete T.error,n&&delete n.error),t.$broadcast("messages_pending")},E=!1;T.send=function(){var a=e.defer();qe.then(function(){E&&!T.error||(E=!1,A=v.uploadFile(i)),A.then(function(e){e.name=l,E=!0;var t;switch(r){case"photo":t={_:"inputMediaUploadedPhoto",flags:0,file:e};break;case"document":default:t={_:"inputMediaUploadedDocument",file:e,mime_type:i.type,caption:"",attributes:[{_:"documentAttributeFilename",file_name:i.name}]}}var a=0;b&&(a|=1),M&&(a|=16),_.invokeApi("messages.sendMedia",{flags:a,peer:c.getInputPeerByID(n),media:t,random_id:u,reply_to_msg_id:f.getMessageLocalID(b)}).then(function(e){o.processUpdateMessage(e)},function(e){return"photo"!=r||400!=e.code||"PHOTO_INVALID_DIMENSIONS"!=e.type&&"PHOTO_SAVE_FILE_INVALID"!=e.type?void $(!0):(e.handled=!0,r="document",void T.send())})},function(e){$(!0)},function(e){C.progress.done=e.done,C.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update",{peerID:n})}),C.progress.cancel=function(){E||(a.resolve(),A.cancel(),ue(p))},A["finally"](function(){a.resolve()})}),qe=a.promise},ie([T]),m.pending.unshift(d),t.$broadcast("history_append",{peerID:n,messageID:d,my:!0}),setZeroTimeout(T.send),Be[p]=[n,d]}function oe(e,n,i){e=c.getPeerMigratedTo(e)||e,i=i||{};var a=ze--,r=[nextRandomInt(4294967295),nextRandomInt(4294967295)],l=bigint(r[0]).shiftLeft(32).add(bigint(r[1])).toString(),h=Fe[e],g=i.replyToMsgID,v=c.isChannel(e),b=v&&c.isMegagroup(e),w=!(!v||b);void 0===h&&(h=Fe[e]={count:null,history:[],pending:[]});var k,M=s.getSelf().id;switch(n._){case"inputMediaPhoto":k={_:"messageMediaPhoto",photo:d.getPhoto(n.id.id),caption:n.caption||""};break;case"inputMediaDocument":var S=u.getDoc(n.id.id);S.sticker&&S.stickerSetInput&&p.pushPopularSticker(S.id),k={_:"messageMediaDocument",document:S,caption:n.caption||""};break;case"inputMediaContact":k={_:"messageMediaContact",phone_number:n.phone_number,first_name:n.first_name,last_name:n.last_name,user_id:0};break;case"inputMediaGeoPoint":k={_:"messageMediaGeo",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]}};break;case"inputMediaVenue":k={_:"messageMediaVenue",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]},title:n.title,address:n.address,provider:n.provider,venue_id:n.venue_id};break;case"messageMediaPending":k=n}var A=0,C={};e!=M&&(A|=2,C.out=!0,s.isBot(e)||(A|=1,C.unread=!0)),g&&(A|=8),w?(M=0,C.post=!0):A|=256;var T={_:"message",id:a,from_id:M,to_id:c.getOutputPeer(e),flags:A,pFlags:C,date:tsNow(!0)+y.serverTimeOffset,message:"",media:k,random_id:l,reply_to_msg_id:g,via_bot_id:i.viaBotID,reply_markup:i.reply_markup,views:w&&1,pending:!0},$=function(e){var n=Ne[a];e?(T.error=!0,n&&(n.error=!0)):(delete T.error,n&&delete n.error),t.$broadcast("messages_pending")};T.send=function(){var t=0;g&&(t|=1),w&&(t|=16),i.clearDraft&&(t|=128);var a={};je[e]&&(a.afterMessageID=je[e].messageID);var s;s=i.viaBotID?_.invokeApi("messages.sendInlineBotResult",{flags:t,peer:c.getInputPeerByID(e),random_id:r,reply_to_msg_id:f.getMessageLocalID(g),query_id:i.queryID,id:i.resultID},a):_.invokeApi("messages.sendMedia",{flags:t,peer:c.getInputPeerByID(e),media:n,random_id:r,reply_to_msg_id:f.getMessageLocalID(g)},a),s.then(function(e){e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),o.processUpdateMessage(e)},function(e){$(!0)})["finally"](function(){je[e]===a&&delete je[e]}),je[e]=a},ie([T]),h.pending.unshift(a),t.$broadcast("history_append",{peerID:e,messageID:a,my:!0}),setZeroTimeout(T.send),i.clearDraft&&m.clearDraft(e),Be[l]=[e,a]}function se(t,n,i){t=c.getPeerMigratedTo(t)||t,n=n.sort(),i=i||{};var a=0,r=c.isChannel(t),s=r&&c.isMegagroup(t),l=!(!r||s);l&&(a|=16),i.withMyScore&&(a|=256);var d=f.splitMessageIDsByChannels(n),u=[];return angular.forEach(d.msgIDs,function(e,n){for(var i=e.length,r=[],s=0;s0&&i<=4)||e.pFlags&&e.pFlags.resize||(e.splitCount=i),e.wrapped=!0,angular.forEach(e.rows,function(e){angular.forEach(e.buttons,function(e){if(e.rText=b.wrapRichText(e.text,{noLinks:!0,noLinebreaks:!0}),"keyboardButtonUrl"==e._){var n=s.getUser(t),i=!(n&&n.pFlags&&n.pFlags.verified);e.pUrl=b.wrapUrl(e.url,i)}})}),e}function ke(e){var t=z(e),n=t.from_id&&s.getUser(t.from_id),i=n&&n.pFlags.bot&&n.username||!1,a=c.getPeerID(t.to_id),r=i||c.isBot(a)||c.isAnyGroup(a),o={noCommands:!r,fromBot:i,entities:t.totalEntities};if(t.pFlags.mentioned){var l=s.getSelf();l&&(o.highlightUsername=l.username)}return b.wrapRichText(t.message,o)}function Me(){if(Ze!==!1&&(clearTimeout(Ze),Ze=!1),Je.length){var e=Je.slice();Je=[];var n=f.splitMessageIDsByChannels(e);angular.forEach(n.msgIDs,function(e,i){ -var a;a=i>0?_.invokeApi("channels.getMessages",{channel:l.getChannelInput(i),id:e}):_.invokeApi("messages.getMessages",{id:e}),a.then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ie(e.messages),t.$broadcast("messages_downloaded",n.mids[i])})})}}function Se(){if(tt!==!1&&(clearTimeout(tt),tt=!1),et.length){var e=et.slice();et=[];var t=f.splitMessageIDsByChannels(e);angular.forEach(t.msgIDs,function(e,n){_.invokeApi("messages.getMessagesViews",{peer:c.getInputPeerByID(-n),id:e,increment:!0}).then(function(e){if(n){for(var i=t.mids[n],a=[],r=0;r0?p=Math.min(t,u):t<0&&(d=Math.max(0,p+t)),n=d;nnt))&&(k.set({max_seen_msg:e}),void _.invokeApi("messages.receivedMessages",{max_id:e}))}function $e(e,n){n=n||{};var i,a,r=ge(e),o={},c=!1,d=w.getNotifySettings();if(e.fwdFromID&&n.fwd_count)c=at(n.fwd_count);else if(e.message)c=d.nopreview?T("conversation_message_sent"):b.wrapPlainText(e.message);else if(e.media){var u=!1;switch(e.media._){case"messageMediaPhoto":c=T("conversation_media_photo_raw"),u="🖼";break;case"messageMediaDocument":switch(e.media.document.type){case"gif":c=T("conversation_media_gif_raw"),u="🎬";break;case"sticker":c=T("conversation_media_sticker");var p=e.media.document.stickerEmojiRaw;void 0!==p&&(c=b.wrapPlainText(p)+" "+c);break;case"video":c=T("conversation_media_video_raw"),u="📹";break;case"round":c=T("conversation_media_round_raw"),u="📹";break;case"voice":case"audio":c=T("conversation_media_audio_raw");break;default:e.media.document.file_name?c=b.wrapPlainText("📎 "+e.media.document.file_name):(c=T("conversation_media_document_raw"),u="📎")}break;case"messageMediaGeo":case"messageMediaVenue":c=T("conversation_media_location_raw"),u="📍";break;case"messageMediaContact":c=T("conversation_media_contact_raw");break;case"messageMediaGame":c=b.wrapPlainText("🎮 "+e.media.game.title);break;case"messageMediaUnsupported":c=T("conversation_media_unsupported_raw");break;default:c=T("conversation_media_attachment_raw")}u!==!1&&e.media.caption&&(c=b.wrapPlainText(u+" "+e.media.caption))}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":c=T("conversation_group_created_raw");break;case"messageActionChatEditTitle":c=T("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":c=T("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":c=T("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":case"messageActionChatAddUsers":c=T("conversation_invited_user_message_raw");break;case"messageActionChatReturn":c=T("conversation_returned_to_group_raw");break;case"messageActionChatJoined":c=T("conversation_joined_group_raw");break;case"messageActionChatDeleteUser":c=T("conversation_kicked_user_message_raw");break;case"messageActionChatLeave":c=T("conversation_left_group_raw");break;case"messageActionChatJoinedByLink":c=T("conversation_joined_by_link_raw");break;case"messageActionChannelCreate":c=T("conversation_created_channel_raw");break;case"messageActionChannelEditTitle":c=T("conversation_changed_channel_name_raw");break;case"messageActionChannelEditPhoto":c=T("conversation_changed_channel_photo_raw");break;case"messageActionChannelDeletePhoto":c=T("conversation_removed_channel_photo_raw");break;case"messageActionPinMessage":c=T("conversation_pinned_message_raw");break;case"messageActionGameScore":c=rt(e.action.score);break;case"messageActionPhoneCall":switch(e.action.type){case"out_missed":c=T("message_service_phonecall_canceled_raw");break;case"in_missed":c=T("message_service_phonecall_missed_raw");break;case"out_ok":c=T("message_service_phonecall_outgoing_raw");break;case"in_ok":c=T("message_service_phonecall_incoming_raw")}}if(r>0){var f=s.getUser(e.from_id),m=s.getUserPhoto(e.from_id);o.title=(f.first_name||"")+(f.first_name&&f.last_name?" ":"")+(f.last_name||""),o.title||(o.title=f.phone||T("conversation_unknown_user_raw")),a=m,i=s.getUserString(r)}else{if(o.title=l.getChat(-r).title||T("conversation_unknown_chat_raw"),e.from_id>0){var f=s.getUser(e.from_id);o.title=(f.first_name||f.last_name||T("conversation_unknown_user_raw"))+" @ "+o.title}a=l.getChatPhoto(-r),i=l.getChatString(-r)}o.title=b.wrapPlainText(o.title),o.onclick=function(){t.$broadcast("history_focus",{peerString:i,messageID:16&e.flags?e.mid:0})},o.message=c,o.key="msg"+e.mid,o.tag=i,o.silent=e.pFlags.silent||!1,a.location&&!a.location.empty?v.downloadSmallFile(a.location,a.size).then(function(t){e.pFlags.unread&&(o.image=t,w.notify(o))}):w.notify(o)}function Ee(){a.cancel(pt),pt=!1,t.$broadcast("history_multiappend",ft),ft={}}function Ie(){a.cancel(mt),mt=!1;var e=0;angular.forEach(ht,function(t,n){t.reload?(De(n),delete ht[n]):(O(t),c.isChannel(n)||(e=Math.max(e,t.top_message||0)))}),e!==!1&&Te(e),t.$broadcast("dialogs_multiupdate",ht),ht={}}function xe(){a.cancel(gt),gt=!1;var e=t.idle.isIDLE&&C.isOtherDeviceActive()?3e4:1e3;angular.forEach(_t,function(t){t.isMutedPromise.then(function(n){var i=t.top_message;!n&&i.pFlags.unread&&setTimeout(function(){i.pFlags.unread&&$e(i,{fwd_count:t.fwd_count})},e)})}),_t={}}function Pe(e){switch(e._){case"updateMessageID":var n=e.random_id,i=Be[n];if(i){var r=i[0],o=i[1],d=c.isChannel(r)?-r:0,u=f.getFullMessageID(e.id,d),p=Oe[u];if(p){var m=Fe[r],h=m.pending.indexOf(o);h!=-1&&m.pending.splice(h,1),delete Ne[o],delete Oe[o];var g={};g[o]=!0,t.$broadcast("history_delete",{peerID:r,msgs:g}),fe(o,finalMessage.mid)}else He[u]=n}break;case"updateNewMessage":case"updateNewChannelMessage":var p=e.message,r=ge(p),m=Fe[r],v=I(r);if(!v.length){ht[r]={reload:!0},mt||(mt=a(Ie,0)),void 0===vt[r]&&(vt[r]=[]),vt[r].push(e);break}if("updateNewChannelMessage"==e._){var b=l.getChat(-r);if(b.pFlags&&(b.pFlags.left||b.pFlags.kicked))break}ie([p],{isNew:!0}),void 0===m&&(m=Fe[r]={count:null,history:[],pending:[]});var k=p.mid>0?m.history:m.pending;if(k.indexOf(p.mid)!=-1)return!1;var M=k[0];k.unshift(p.mid),p.mid>0&&p.mid0&&null!==m.count&&m.count++,V(m,p)&&t.$broadcast("history_reply_markup",{peerID:r}),!p.pFlags.out&&p.from_id&&s.forceUserOnline(p.from_id);var S,n=He[p.mid];n&&((S=pe(n,p))&&t.$broadcast("history_update",{peerID:r}),delete He[p.mid]),S||(void 0===ft[r]&&(ft[r]=[]),ft[r].push(p.mid),pt||(pt=a(Ee,0)));var C=!p.pFlags.out&&p.pFlags.unread,T=v[0];if(T.top_message=p.mid,C&&T.unread_count++,T.pFlags.pinned&&T.index||(T.index=R(p.date)),ht[r]=T,mt||(mt=a(Ie,0)),C&&(t.selectedPeerID!=r||t.idle.isIDLE)){var $=16&p.flags?p.from_id:r,E=_t[$];void 0===E&&(E=_t[$]={isMutedPromise:w.getPeerMuted($),fwd_count:0,from_id:0}),E.from_id!=p.from_id&&(E.from_id=p.from_id,E.fwd_count=0),p.fwdFromID&&E.fwd_count++,E.top_message=p,gt||(gt=a(xe,1e3))}break;case"updateDialogPinned":var r=c.getPeerID(e.peer),v=I(r);if(!v.length||!e.pFlags.pinned){ht[r]={reload:!0},mt||(mt=a(Ie,0));break}var T=v[0];T.index=R(D()),T.pFlags.pinned=!0;break;case"updatePinnedDialogs":var x={};if(!e.order){_.invokeApi("messages.getPinnedDialogs",{}).then(function(e){e.dialogs.reverse(),Re(e),angular.forEach(e.dialogs,function(e){x[e.peerID]=!0}),angular.forEach(Ue.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!x[t]&&(ht[t]={reload:!0},mt||(mt=a(Ie,0)))})});break}e.order.reverse(),angular.forEach(e.order,function(e){var t=c.getPeerID(e);x[t]=!0;var n=I(t);if(!n.length)return ht[t]={reload:!0},void(mt||(mt=a(Ie,0)));var i=n[0];i.index=R(D()),i.pFlags.pinned=!0,ht[t]=i,mt||(mt=a(Ie,0))}),angular.forEach(Ue.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!x[t]&&(ht[t]={reload:!0},mt||(mt=a(Ie,0)))});break;case"updateEditMessage":case"updateEditChannelMessage":var p=e.message,r=ge(p),d="peerChannel"==p.to_id._?-r:0,u=f.getFullMessageID(p.id,d);if(void 0===Oe[u])break;ie([p],{isEdited:!0}),safeReplaceObject(Oe[u],p);var P=Ne[u];if(void 0!==P){delete Ne[u];var O=be(u);safeReplaceObject(P,O),Ne[u]=P}var v=I(r)[0],N=v&&v.top_message==u;if(p.clear_history)if(N)t.$broadcast("dialog_flush",{peerID:r});else{var g={};g[u]=!0,t.$broadcast("history_delete",{peerID:r,msgs:g})}else if(t.$broadcast("message_edit",{peerID:r,id:p.id,mid:u}),N){var L={};L[r]=v,t.$broadcast("dialogs_multiupdate",L)}break;case"updateReadHistoryInbox":case"updateReadHistoryOutbox":case"updateReadChannelInbox":case"updateReadChannelOutbox":var F,p,U,B="updateReadHistoryOutbox"==e._||"updateReadChannelOutbox"==e._,d=e.channel_id,H=f.getFullMessageID(e.max_id,d),r=d?-d:c.getPeerID(e.peer),v=I(r),k=(Fe[r]||{}).history||[],j=!1,q=k.length,W=!1;for(r>0&&B&&s.forceUserOnline(r),U=0;UH)&&(p=Oe[F],p.pFlags.out==B)){if(!p.pFlags.unread)break;p&&p.pFlags.unread&&(p.pFlags.unread=!1,Ne[F]&&(Ne[F].pFlags.unread=!1,W||(W=!0)),Le[F]&&(Le[F].pFlags.unread=!1),p.pFlags.out||(v[0]&&(j=--v[0].unread_count),w.cancel("msg"+F)))}if(v[0]){!B&&j&&v[0].top_message<=H&&(j=v[0].unread_count=0);var G=B?"read_outbox_max_id":"read_inbox_max_id";v[0][G]=H}j!==!1&&t.$broadcast("dialog_unread",{peerID:r,count:j}),W&&t.$broadcast("messages_read");break;case"updateChannelReadMessagesContents":var d=e.channel_id,K=[];angular.forEach(e.messages,function(e){K.push(f.getFullMessageID(e,d))}),e.messages=K;case"updateReadMessagesContents":var U,F,p,Y,X=e.messages,J=X.length;for(U=0;U0&&(i.count-=e.count,i.count<0&&(i.count=0));for(var o=0;o0,re="channel"==te._&&(te.username||!te.pFlags.left&&!te.pFlags.kicked)&&!0||!1,oe=void 0!==Fe[r];re!=oe&&(delete Fe[r],t.$broadcast("history_forbidden",r)),ae!=ne&&(ne?De(-d):v[0]&&(Ue.dialogs.splice(v[1],1),t.$broadcast("dialog_drop",{peerID:r})));break;case"updateChannelReload":var d=e.channel_id,r=-d,v=I(r);v[0]&&Ue.dialogs.splice(v[1],1),delete Fe[r],De(-d).then(function(){t.$broadcast("history_reload",r)});break;case"updateChannelMessageViews":var se=e.views,u=f.getFullMessageID(e.id,e.channel_id),p=z(u);p&&p.views&&p.viewsz(r).date)&&(e.top_message=r=o),r){var s=I(a).length>0;x(e),s?(ye(r),t.$broadcast("dialog_top",e)):(n[a]=e,i=!0)}else{var l=I(a);l.length&&(Ue.dialogs.splice(l[1],1),t.$broadcast("dialog_drop",{peerID:a}))}void 0!==vt[a]&&(angular.forEach(vt[a],function(e){Pe(e)}),delete vt[a])}),i&&t.$broadcast("dialogs_multiupdate",n)}var Oe={},Ne={},Le={},Fe={},Ue={count:null,dialogs:[]},Be={},He={},je={},Ve={},qe=e.when(),ze=-1,We={},Ge=SearchIndexManager.createIndex(),Ke={query:!1},Ye={},Xe=[],Je=[],Ze=!1,Qe={},et=[],tt=!1,nt=!1;k.get("max_seen_msg").then(function(e){e&&!f.getMessageIDInfo(e)[1]&&(nt=e)});var it=i("dateOrTime"),at=T.pluralize("conversation_forwarded_X_messages"),rt=T.pluralize("conversation_scored_X");w.start();var ot=!1,st=0,lt=0,ct=0,dt={},ut={},pt=!1,ft={},mt=!1,ht={},gt=!1,_t={},vt={};return t.$on("apiUpdate",function(e,t){Pe(t)}),t.$on("webpage_updated",function(e,n){angular.forEach(n.msgs,function(e){var i=Ne[e];i&&(i.media={_:"messageMediaWebPage",webpage:h.wrapForHistory(n.id)},t.$broadcast("message_edit",{peerID:ge(i),id:i.id,mid:e,justMedia:!0}))})}),t.$on("draft_updated",function(e,n){var i=n.peerID,a=n.draft,r=I(i)[0];if(r){var o;if(a&&a.date)o=a.date;else{var s=c.isChannel(i)?-i:0,o=z(r.top_message).date;if(s){var d=l.getChat(s);(!o||d.date&&d.date>o)&&(o=d.date)}}r.pFlags.pinned||(r.index=R(o)),O(r),t.$broadcast("dialog_draft",{peerID:i,draft:a,index:r.index})}}),{getConversations:$,getConversation:E,getHistory:H,getSearch:q,getMessage:z,getReplyKeyboard:j,readHistory:Q,readMessages:ee,flushHistory:ne,deleteMessages:J,sendText:ae,sendFile:re,sendOther:oe,forwardMessages:se,reportMessages:le,startBot:ce,shareGame:de,editMessage:he,convertMigratedPeer:B,getMessagePeer:ge,getMessageThumb:Ce,getMessageShareLink:Z,canMessageBeEdited:W,canEditMessage:G,canReportMessage:K,getMessageEditData:Y,canRevokeMessage:X,clearDialogCache:ye,wrapForDialog:_e,wrapForHistory:be,wrapReplyMarkup:we,wrapSingleMessage:ve,wrapMessageText:ke,regroupWrappedHistory:Ae}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var i=a[t];return i||(i=++o*s,r[i]=t,a[t]=i),i+e}function t(e){if(e\n\t\n\t \n\t\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t[ \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t]\n\t\t\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t
\n \n \n\t
\n\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t
\n\t \t
\n\t \t
\n\t
\n\t
\n\t
\n'),e.put("partials/desktop/changelog_modal.html",'
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
Telegram Web
\n
\n \n
\n
\n
\n
\n\n
\n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n
\n
\n\n
\n\n\n \n\n
\n\n
'),e.put("partials/desktop/channel_edit_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/channel_modal.html",'
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n \n\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n
\n
\n
\n
\n\n \n\n
\n \n\n \n \n \n \n\n
\n\n \n\n \n\n
\n\n
\n\n
\n\n
\n \n\n
\n\n
\n\n \n \n\n \n\n
\n \n
\n
\n
\n\n
\n\n
\n\n
\n
\n\n\n
\n'),e.put("partials/desktop/chat_create_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'), -e.put("partials/desktop/chat_edit_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_invite_link_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_modal.html",'
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n\n
\n\n \n\n \n\n
\n \n\n \n \n \n \n\n
\n\n \n\n \n\n
\n\n
\n\n
\n
\n

\n

\n
    \n
  • \n
  • \n
  • \n
  • \n
\n
\n
\n
\n\n
\n \n\n
\n\n
\n\n \n \n\n \n\n
\n \n
\n
\n
\n\n
\n\n
\n\n
\n
\n\n\n
\n'),e.put("partials/desktop/composer_dropdown.html",'
\n\n \n\n \n\n
    \n\n
    \n\n
    '),e.put("partials/desktop/confirm_modal.html",'
    \n\n
    \n\n
    \n \n \n \n \n \n \n \n\n \n \n \n \n
    \n \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n

    \n \n \n \n

    \n
    \n \n \n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n \n \n \n \n
    \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/contacts_modal.html",'
    \n\n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n \n
    \n
    \n\n
    \n\n \n\n
    \n\n
    \n
    \n\n
    \n {0}\n
    \n\n \n\n
    \n
    \n\n
    \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/country_select_modal.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n\n \n\n
    \n\n
    \n
    \n\n \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/dialog.html",'\n\n
    \n
    \n \n \n \n
    \n\n \n \n
    \n\n
    \n\n
    \n \n
    \n\n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n  \n
    \n\n
    \n \n \n \n :\n \n \n \n \n :\n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/document_modal.html",'\n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n'),e.put("partials/desktop/edit_contact_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '), -e.put("partials/desktop/embed_modal.html",'\n\n
    \n
    \n
    \n \n \n \n \n \n \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n'),e.put("partials/desktop/emoji_btn_tooltip.html",'
    \n\n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n\n \n \n \n\n
    '),e.put("partials/desktop/error_modal.html",'
    \n\n
    \n\n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

    \n

    \n \n \n \n

    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {0}\n \n\n \n \n \n \n \n \n \n {0}\n \n \n \n \n \n \n \n {0}\n \n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n \n \n {0}\n \n \n \n \n \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/footer.html",''),e.put("partials/desktop/forwarded_messages.html",'
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n
    '),e.put("partials/desktop/full_document.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    '),e.put("partials/desktop/full_gif.html",'\n\n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n
    [GIF]
    \n
    \n\n
    \n \n \n
    \n \n\n
    \n\n
    '),e.put("partials/desktop/full_photo.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/desktop/full_round.html",'\n\n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n \n
    \n
    \n\n
    \n \n \n
    \n \n\n
    \n\n
    '),e.put("partials/desktop/full_video.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/desktop/game_modal.html",'\n\n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n\n'),e.put("partials/desktop/head.html",'
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n
    \n\n
    \n\n \n\n \n \n \n\n \n \n \n \n \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n\n \n
    \n \n \n \n \n \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n'),e.put("partials/desktop/im.html",'
    \n\n
    \n\n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n
    \n\n
    \n

    \n

    \n \n \n
    \n\n \n\n \n\n \n\n
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n

    \n

    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n {{historyState.typing.length - 2}}\n \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n \n \n \n \n\n
    \n\n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n\n\n\n\n'), -e.put("partials/desktop/import_contact_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/inactive.html",'
    \n
    \n
    \n
    \n \n

    \n
    \n
    \n \n
    \n
    \n
    \n
    '),e.put("partials/desktop/inline_results.html",'\n\n'),e.put("partials/desktop/lang_footer.html",''),e.put("partials/desktop/login.html",'\n\n'),e.put("partials/desktop/media_modal_layout.html",''),e.put("partials/desktop/megagroup_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/message.html",'
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n \n \n \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n
    \n\n
    \n\n \n []  :\n \n\n\n \n\n
    \n \n \n
    \n   [\n \n \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n\n
    \n
    \n\n
    \n\n'),e.put("partials/desktop/message_attach_contact.html",'
    \n \n
    \n \n \n
    \n
    \n
    '),e.put("partials/desktop/message_attach_document.html",'
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n\n
    \n
    \n [ ]\n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n \n \n \n \n
    \n \n
    \n
    \n\n
    \n
    \n []\n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n'),e.put("partials/desktop/message_attach_game.html",'
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n'),e.put("partials/desktop/message_attach_geo.html",'\n \n'),e.put("partials/desktop/message_attach_pending.html",'
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n'), -e.put("partials/desktop/message_attach_photo.html",'\n \n\n
    '),e.put("partials/desktop/message_attach_venue.html",'
    \n\n \n \n \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n'),e.put("partials/desktop/message_attach_webpage.html",'
    \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n'),e.put("partials/desktop/message_media.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n
    '),e.put("partials/desktop/message_service.html",'\n \n \n \n «»\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n «»\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n\n \n\n \n\n \n \n\n \n \n \n\n'),e.put("partials/desktop/password_recovery_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/password_update_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/peer_pinned_message_bar.html",'
    \n \n \n
    '),e.put("partials/desktop/peer_select.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n \n\n \n\n
    \n'),e.put("partials/desktop/photo_modal.html",'\n\n\n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    \n\n\n\n'),e.put("partials/desktop/pinned_message.html",''),e.put("partials/desktop/profile_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/reply_markup.html",'
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    '),e.put("partials/desktop/reply_message.html",'
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    '),e.put("partials/desktop/report_msgs_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/send_form.html",'
    \n\n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n \n \n\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n\n
    \n \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n
    \n \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n'), -e.put("partials/desktop/sessions_list_modal.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n \n \n
    \n\n \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/settings_modal.html",'
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n \n\n \n \n \n \n\n
    \n
    \n
    \n\n
    \n\n
    \n \n\n \n\n
    \n\n \n\n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/short_message.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n'),e.put("partials/desktop/slider.html",'
    \n\t
    \n\t
    \n\t\t
    \n\t
    \n
    '),e.put("partials/desktop/stickerset_modal.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/user_modal.html",'
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n\n
    \n\n
    \n\n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n\n \n \n \n \n\n
    \n\n \n\n
    \n\n
    \n\n
    \n\n'),e.put("partials/desktop/username_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/video_modal.html",'\n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n\n'),e.put("partials/mobile/audio_player.html",'
    \n\t\n\t \n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t\t[ \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t]\n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\t
    \n \n \n\t
    \n\t
    \n\t\t
    \n\t\t \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t
    \n\t \t
    \n\t \t
    \n\t
    \n\t
    \n\t
    \n
    '),e.put("partials/mobile/changelog_modal.html",'
    \n\n \n\n \n\n
    \n'), +var a;a=i>0?_.invokeApi("channels.getMessages",{channel:l.getChannelInput(i),id:e}):_.invokeApi("messages.getMessages",{id:e}),a.then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ie(e.messages),t.$broadcast("messages_downloaded",n.mids[i])})})}}function Se(){if(tt!==!1&&(clearTimeout(tt),tt=!1),et.length){var e=et.slice();et=[];var t=f.splitMessageIDsByChannels(e);angular.forEach(t.msgIDs,function(e,n){_.invokeApi("messages.getMessagesViews",{peer:c.getInputPeerByID(-n),id:e,increment:!0}).then(function(e){if(n){for(var i=t.mids[n],a=[],r=0;r0?p=Math.min(t,u):t<0&&(d=Math.max(0,p+t)),n=d;nnt))&&(k.set({max_seen_msg:e}),void _.invokeApi("messages.receivedMessages",{max_id:e}))}function $e(e,n){n=n||{};var i,a,r=ge(e),o={},c=!1,d=w.getNotifySettings();if(e.fwdFromID&&n.fwd_count)c=at(n.fwd_count);else if(e.message)c=d.nopreview?T("conversation_message_sent"):b.wrapPlainText(e.message);else if(e.media){var u=!1;switch(e.media._){case"messageMediaPhoto":c=T("conversation_media_photo_raw"),u="🖼";break;case"messageMediaDocument":switch(e.media.document.type){case"gif":c=T("conversation_media_gif_raw"),u="🎬";break;case"sticker":c=T("conversation_media_sticker");var p=e.media.document.stickerEmojiRaw;void 0!==p&&(c=b.wrapPlainText(p)+" "+c);break;case"video":c=T("conversation_media_video_raw"),u="📹";break;case"round":c=T("conversation_media_round_raw"),u="📹";break;case"voice":case"audio":c=T("conversation_media_audio_raw");break;default:e.media.document.file_name?c=b.wrapPlainText("📎 "+e.media.document.file_name):(c=T("conversation_media_document_raw"),u="📎")}break;case"messageMediaGeo":case"messageMediaVenue":c=T("conversation_media_location_raw"),u="📍";break;case"messageMediaContact":c=T("conversation_media_contact_raw");break;case"messageMediaGame":c=b.wrapPlainText("🎮 "+e.media.game.title);break;case"messageMediaUnsupported":c=T("conversation_media_unsupported_raw");break;default:c=T("conversation_media_attachment_raw")}u!==!1&&e.media.caption&&(c=b.wrapPlainText(u+" "+e.media.caption))}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":c=T("conversation_group_created_raw");break;case"messageActionChatEditTitle":c=T("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":c=T("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":c=T("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":case"messageActionChatAddUsers":c=T("conversation_invited_user_message_raw");break;case"messageActionChatReturn":c=T("conversation_returned_to_group_raw");break;case"messageActionChatJoined":c=T("conversation_joined_group_raw");break;case"messageActionChatDeleteUser":c=T("conversation_kicked_user_message_raw");break;case"messageActionChatLeave":c=T("conversation_left_group_raw");break;case"messageActionChatJoinedByLink":c=T("conversation_joined_by_link_raw");break;case"messageActionChannelCreate":c=T("conversation_created_channel_raw");break;case"messageActionChannelEditTitle":c=T("conversation_changed_channel_name_raw");break;case"messageActionChannelEditPhoto":c=T("conversation_changed_channel_photo_raw");break;case"messageActionChannelDeletePhoto":c=T("conversation_removed_channel_photo_raw");break;case"messageActionPinMessage":c=T("conversation_pinned_message_raw");break;case"messageActionGameScore":c=rt(e.action.score);break;case"messageActionPhoneCall":switch(e.action.type){case"out_missed":c=T("message_service_phonecall_canceled_raw");break;case"in_missed":c=T("message_service_phonecall_missed_raw");break;case"out_ok":c=T("message_service_phonecall_outgoing_raw");break;case"in_ok":c=T("message_service_phonecall_incoming_raw")}}if(r>0){var f=s.getUser(e.from_id),m=s.getUserPhoto(e.from_id);o.title=(f.first_name||"")+(f.first_name&&f.last_name?" ":"")+(f.last_name||""),o.title||(o.title=f.phone||T("conversation_unknown_user_raw")),a=m,i=s.getUserString(r)}else{if(o.title=l.getChat(-r).title||T("conversation_unknown_chat_raw"),e.from_id>0){var f=s.getUser(e.from_id);o.title=(f.first_name||f.last_name||T("conversation_unknown_user_raw"))+" @ "+o.title}a=l.getChatPhoto(-r),i=l.getChatString(-r)}o.title=b.wrapPlainText(o.title),o.onclick=function(){t.$broadcast("history_focus",{peerString:i,messageID:16&e.flags?e.mid:0})},o.message=c,o.key="msg"+e.mid,o.tag=i,o.silent=e.pFlags.silent||!1,a.location&&!a.location.empty?v.downloadSmallFile(a.location,a.size).then(function(t){e.pFlags.unread&&(o.image=t,w.notify(o))}):w.notify(o)}function Ee(){a.cancel(pt),pt=!1,t.$broadcast("history_multiappend",ft),ft={}}function Ie(){a.cancel(mt),mt=!1;var e=0;angular.forEach(ht,function(t,n){t.reload?(De(n),delete ht[n]):(O(t),c.isChannel(n)||(e=Math.max(e,t.top_message||0)))}),e!==!1&&Te(e),t.$broadcast("dialogs_multiupdate",ht),ht={}}function xe(){a.cancel(gt),gt=!1;var e=t.idle.isIDLE&&C.isOtherDeviceActive()?3e4:1e3;angular.forEach(_t,function(t){t.isMutedPromise.then(function(n){var i=t.top_message;!n&&i.pFlags.unread&&setTimeout(function(){i.pFlags.unread&&$e(i,{fwd_count:t.fwd_count})},e)})}),_t={}}function Pe(e){switch(e._){case"updateMessageID":var n=e.random_id,i=Be[n];if(i){var r=i[0],o=i[1],d=c.isChannel(r)?-r:0,u=f.getFullMessageID(e.id,d),p=Oe[u];if(p){var m=Fe[r],h=m.pending.indexOf(o);h!=-1&&m.pending.splice(h,1),delete Ne[o],delete Oe[o];var g={};g[o]=!0,t.$broadcast("history_delete",{peerID:r,msgs:g}),fe(o,finalMessage.mid)}else He[u]=n}break;case"updateNewMessage":case"updateNewChannelMessage":var p=e.message,r=ge(p),m=Fe[r],v=I(r);if(!v.length){ht[r]={reload:!0},mt||(mt=a(Ie,0)),void 0===vt[r]&&(vt[r]=[]),vt[r].push(e);break}if("updateNewChannelMessage"==e._){var b=l.getChat(-r);if(b.pFlags&&(b.pFlags.left||b.pFlags.kicked))break}ie([p],{isNew:!0}),void 0===m&&(m=Fe[r]={count:null,history:[],pending:[]});var k=p.mid>0?m.history:m.pending;if(k.indexOf(p.mid)!=-1)return!1;var M=k[0];k.unshift(p.mid),p.mid>0&&p.mid0&&null!==m.count&&m.count++,V(m,p)&&t.$broadcast("history_reply_markup",{peerID:r}),!p.pFlags.out&&p.from_id&&s.forceUserOnline(p.from_id);var S,n=He[p.mid];n&&((S=pe(n,p))&&t.$broadcast("history_update",{peerID:r}),delete He[p.mid]),S||(void 0===ft[r]&&(ft[r]=[]),ft[r].push(p.mid),pt||(pt=a(Ee,0)));var C=!p.pFlags.out&&p.pFlags.unread,T=v[0];if(T.top_message=p.mid,C&&T.unread_count++,T.pFlags.pinned&&T.index||(T.index=R(p.date)),ht[r]=T,mt||(mt=a(Ie,0)),C&&(t.selectedPeerID!=r||t.idle.isIDLE)){var $=16&p.flags?p.from_id:r,E=_t[$];void 0===E&&(E=_t[$]={isMutedPromise:w.getPeerMuted($),fwd_count:0,from_id:0}),E.from_id!=p.from_id&&(E.from_id=p.from_id,E.fwd_count=0),p.fwdFromID&&E.fwd_count++,E.top_message=p,gt||(gt=a(xe,1e3))}break;case"updateDialogPinned":var r=c.getPeerID(e.peer),v=I(r);if(!v.length||!e.pFlags.pinned){ht[r]={reload:!0},mt||(mt=a(Ie,0));break}var T=v[0];T.index=R(D()),T.pFlags.pinned=!0;break;case"updatePinnedDialogs":var x={};if(!e.order){_.invokeApi("messages.getPinnedDialogs",{}).then(function(e){e.dialogs.reverse(),Re(e),angular.forEach(e.dialogs,function(e){x[e.peerID]=!0}),angular.forEach(Ue.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!x[t]&&(ht[t]={reload:!0},mt||(mt=a(Ie,0)))})});break}e.order.reverse(),angular.forEach(e.order,function(e){var t=c.getPeerID(e);x[t]=!0;var n=I(t);if(!n.length)return ht[t]={reload:!0},void(mt||(mt=a(Ie,0)));var i=n[0];i.index=R(D()),i.pFlags.pinned=!0,ht[t]=i,mt||(mt=a(Ie,0))}),angular.forEach(Ue.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!x[t]&&(ht[t]={reload:!0},mt||(mt=a(Ie,0)))});break;case"updateEditMessage":case"updateEditChannelMessage":var p=e.message,r=ge(p),d="peerChannel"==p.to_id._?-r:0,u=f.getFullMessageID(p.id,d);if(void 0===Oe[u])break;ie([p],{isEdited:!0}),safeReplaceObject(Oe[u],p);var P=Ne[u];if(void 0!==P){delete Ne[u];var O=be(u);safeReplaceObject(P,O),Ne[u]=P}var v=I(r)[0],N=v&&v.top_message==u;if(p.clear_history)if(N)t.$broadcast("dialog_flush",{peerID:r});else{var g={};g[u]=!0,t.$broadcast("history_delete",{peerID:r,msgs:g})}else if(t.$broadcast("message_edit",{peerID:r,id:p.id,mid:u}),N){var L={};L[r]=v,t.$broadcast("dialogs_multiupdate",L)}break;case"updateReadHistoryInbox":case"updateReadHistoryOutbox":case"updateReadChannelInbox":case"updateReadChannelOutbox":var F,p,U,B="updateReadHistoryOutbox"==e._||"updateReadChannelOutbox"==e._,d=e.channel_id,H=f.getFullMessageID(e.max_id,d),r=d?-d:c.getPeerID(e.peer),v=I(r),k=(Fe[r]||{}).history||[],j=!1,q=k.length,W=!1;for(r>0&&B&&s.forceUserOnline(r),U=0;UH)&&(p=Oe[F],p.pFlags.out==B)){if(!p.pFlags.unread)break;p&&p.pFlags.unread&&(p.pFlags.unread=!1,Ne[F]&&(Ne[F].pFlags.unread=!1,W||(W=!0)),Le[F]&&(Le[F].pFlags.unread=!1),p.pFlags.out||(v[0]&&(j=--v[0].unread_count),w.cancel("msg"+F)))}if(v[0]){!B&&j&&v[0].top_message<=H&&(j=v[0].unread_count=0);var G=B?"read_outbox_max_id":"read_inbox_max_id";v[0][G]=H}j!==!1&&t.$broadcast("dialog_unread",{peerID:r,count:j}),W&&t.$broadcast("messages_read");break;case"updateChannelReadMessagesContents":var d=e.channel_id,K=[];angular.forEach(e.messages,function(e){K.push(f.getFullMessageID(e,d))}),e.messages=K;case"updateReadMessagesContents":var U,F,p,Y,X=e.messages,J=X.length;for(U=0;U0&&(i.count-=e.count,i.count<0&&(i.count=0));for(var o=0;o0,re="channel"==te._&&(te.username||!te.pFlags.left&&!te.pFlags.kicked)&&!0||!1,oe=void 0!==Fe[r];re!=oe&&(delete Fe[r],t.$broadcast("history_forbidden",r)),ae!=ne&&(ne?De(-d):v[0]&&(Ue.dialogs.splice(v[1],1),t.$broadcast("dialog_drop",{peerID:r})));break;case"updateChannelReload":var d=e.channel_id,r=-d,v=I(r);v[0]&&Ue.dialogs.splice(v[1],1),delete Fe[r],De(-d).then(function(){t.$broadcast("history_reload",r)});break;case"updateChannelMessageViews":var se=e.views,u=f.getFullMessageID(e.id,e.channel_id),p=z(u);p&&p.views&&p.viewsz(r).date)&&(e.top_message=r=o),r){var s=I(a).length>0;x(e),s?(ye(r),t.$broadcast("dialog_top",e)):(n[a]=e,i=!0)}else{var l=I(a);l.length&&(Ue.dialogs.splice(l[1],1),t.$broadcast("dialog_drop",{peerID:a}))}void 0!==vt[a]&&(angular.forEach(vt[a],function(e){Pe(e)}),delete vt[a])}),i&&t.$broadcast("dialogs_multiupdate",n)}var Oe={},Ne={},Le={},Fe={},Ue={count:null,dialogs:[]},Be={},He={},je={},Ve={},qe=e.when(),ze=-1,We={},Ge=SearchIndexManager.createIndex(),Ke={query:!1},Ye={},Xe=[],Je=[],Ze=!1,Qe={},et=[],tt=!1,nt=!1;k.get("max_seen_msg").then(function(e){e&&!f.getMessageIDInfo(e)[1]&&(nt=e)});var it=i("dateOrTime"),at=T.pluralize("conversation_forwarded_X_messages"),rt=T.pluralize("conversation_scored_X");w.start();var ot=!1,st=0,lt=0,ct=0,dt={},ut={},pt=!1,ft={},mt=!1,ht={},gt=!1,_t={},vt={};return t.$on("apiUpdate",function(e,t){Pe(t)}),t.$on("webpage_updated",function(e,n){angular.forEach(n.msgs,function(e){var i=Ne[e];i&&(i.media={_:"messageMediaWebPage",webpage:h.wrapForHistory(n.id)},t.$broadcast("message_edit",{peerID:ge(i),id:i.id,mid:e,justMedia:!0}))})}),t.$on("draft_updated",function(e,n){var i=n.peerID,a=n.draft,r=I(i)[0];if(r){var o;if(a&&a.date)o=a.date;else{var s=c.isChannel(i)?-i:0,o=z(r.top_message).date;if(s){var d=l.getChat(s);(!o||d.date&&d.date>o)&&(o=d.date)}}r.pFlags.pinned||(r.index=R(o)),O(r),t.$broadcast("dialog_draft",{peerID:i,draft:a,index:r.index})}}),{getConversations:$,getConversation:E,getHistory:H,getSearch:q,getMessage:z,getReplyKeyboard:j,readHistory:Q,readMessages:ee,flushHistory:ne,deleteMessages:J,sendText:ae,sendFile:re,sendOther:oe,forwardMessages:se,reportMessages:le,startBot:ce,shareGame:de,editMessage:he,convertMigratedPeer:B,getMessagePeer:ge,getMessageThumb:Ce,getMessageShareLink:Z,canMessageBeEdited:W,canEditMessage:G,canReportMessage:K,getMessageEditData:Y,canRevokeMessage:X,clearDialogCache:ye,wrapForDialog:_e,wrapForHistory:be,wrapReplyMarkup:we,wrapSingleMessage:ve,wrapMessageText:ke,regroupWrappedHistory:Ae}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var i=a[t];return i||(i=++o*s,r[i]=t,a[t]=i),i+e}function t(e){if(e\n\t\n\t \n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t\t[ \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t]\n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\t
    \n \n \n\t
    \n\t
    \n\t\t
    \n\t\t \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t
    \n\t \t
    \n\t \t
    \n\t
    \n\t
    \n\t
    \n'),e.put("partials/mobile/changelog_modal.html",'
    \n\n \n\n \n\n
    \n'), e.put("partials/mobile/channel_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/chat_create_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/chat_edit_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/chat_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/contacts_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/country_select_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/dialog.html",'\n\n
    \n
    \n \n \n \n
    \n\n
    \n\n
    \n\n
    \n \n
    \n\n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n  \n
    \n\n
    \n \n \n \n :\n \n \n \n \n :\n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n'),e.put("partials/mobile/edit_contact_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/full_gif.html",'\n\n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n
    GIF
    \n
    \n\n
    \n \n \n
    \n \n\n
    \n\n
    '),e.put("partials/mobile/full_photo.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/mobile/full_video.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/mobile/game_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'), e.put("partials/mobile/head.html",'
    \n \n
    \n'),e.put("partials/mobile/im.html",'
    \n\n
    \n\n
    \n\n
    \n
    \n \n
    \n\n
    \n\n
    \n

    \n

    \n \n \n
    \n\n \n\n \n\n \n\n
    \n
    \n \n
    \n\n
    \n
    \n\n
    \n\n
    \n \n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n \n \n \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n\n\n'),e.put("partials/mobile/import_contact_modal.html",'
    \n\n
    \n \n
    \n\n \n
    '),e.put("partials/mobile/login.html",'
    \n \n
    \n\n\n\n\n'),e.put("partials/mobile/message.html",'
    \n\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n \n \n \n\n
    \n\n
    \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n\n \n \n \n\n \n\n
    \n \n \n \n \n
    \n\n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n\n'), e.put("partials/mobile/message_actions_modal.html",'
    \n\n
    \n \n \n \n \n \n \n \n
    \n\n
    \n'),e.put("partials/mobile/message_attach_contact.html",'
    \n \n
    \n \n \n
    \n
    \n
    '),e.put("partials/mobile/message_attach_document.html",'
    \n\n
    \n \n
    \n\n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n \n\n
    \n\n \n \n \n \n
    \n \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n'),e.put("partials/mobile/message_attach_geo.html",'\n \n'),e.put("partials/mobile/message_attach_pending.html",'
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n'),e.put("partials/mobile/message_attach_photo.html",'\n\n \n\n
    '),e.put("partials/mobile/message_attach_venue.html",'
    \n\n \n \n \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n'),e.put("partials/mobile/message_attach_webpage.html",'
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n\n
    \n
    \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n'),e.put("partials/mobile/message_service.html",'\n \n \n \n «»\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n «»\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n \n\n'),e.put("partials/mobile/password_recovery_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/password_update_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/peer_select.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/phonebook_modal.html",'
    \n\n
    \n \n
    \n\n \n\n \n\n
    \n'),e.put("partials/mobile/photo_modal.html",'
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n\n
    \n
    \n\n\n\n\n\n'),e.put("partials/mobile/profile_edit_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '), -e.put("partials/mobile/send_form.html",'
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n \n \n \n\n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n\n \n
    \n\n\n
    \n
    \n
    \n\n
    \n'),e.put("partials/mobile/sessions_list_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/settings_modal.html",'
    \n\n
    \n \n
    \n\n \n
    \n'),e.put("partials/mobile/stickerset_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/user_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/username_edit_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/video_modal.html",'
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n \n \n \n
    \n \n
    \n
    \n\n\n\n')}]),function(e,t,n,i){function a(e){ConfigStorage.get("emojis_popular",function(t){var n=[];if(t&&t.length){for(var i=0,a=t.length;i41&&(a=a.slice(0,41)),a.push([e,1])),ConfigStorage.set({emojis_popular:a})})}function o(){if(b===!1){b=SearchIndexManager.createIndex();var e;for(e in _)_.hasOwnProperty(e)&&SearchIndexManager.indexObject(_[e],e,b)}}function s(e){o();var t,n=SearchIndexManager.search(e,b),i=[];for(t in n)n.hasOwnProperty(t)&&i.push(t);return i}var l,c,d,u,p,f,m,h,g={},_={},v={},y={},b=!1,w="joy,kissing_heart,heart,heart_eyes,blush,grin,+1,relaxed,pensive,smile,sob,kiss,unamused,flushed,stuck_out_tongue_winking_eye,see_no_evil,wink,smiley,cry,stuck_out_tongue_closed_eyes,scream,rage,smirk,disappointed,sweat_smile,kissing_closed_eyes,speak_no_evil,relieved,grinning,yum,laughing,ok_hand,neutral_face,confused".split(",");for(l=0,m=n.length;l
    '+this.langpack.im_stickers_tab+'
    ';e=e.replace(/>\s+<");var t=this;this.tooltipEl=$(e).appendTo(document.body),this.tabsEl=$(".composer_emoji_tooltip_tabs",this.tooltipEl),this.categoriesEl=$(".composer_emoji_tooltip_categories",this.tooltipEl),this.stickersCategoriesEl=$(".composer_emoji_tooltip_tab_stickers_content .composer_emoji_tooltip_categories",this.tooltipEl),this.contentEl=$(".composer_emoji_tooltip_content",this.tooltipEl),this.emojiContentEl=$(".composer_emoji_tooltip_content_emoji",this.tooltipEl),this.stickersContentEl=$(".composer_emoji_tooltip_content_stickers",this.tooltipEl),angular.forEach(["emoji","stickers"],function(e,n){var i=$(".composer_emoji_tooltip_tab_"+e,t.tabsEl).on("mousedown",function(e){return t.selectTab(n),cancelEvent(e)});Config.Navigator.touch||i.on("mouseenter mouseleave",function(e){clearTimeout(t.selectTabTimeout),"mouseenter"==e.type&&(t.selectTabTimeout=setTimeout(function(){t.selectTab(n)},300))})});var n="mousedown";return Config.Navigator.touch||(n+=" mouseover mouseout"), -this.categoriesEl.on(n,function(e){e=e.originalEvent||e;var n=e.target;if("A"!=n.tagName&&(n=n.parentNode),"A"==n.tagName){var i=parseInt(n.getAttribute("data-category"));if("mousedown"==e.type)return t.selectCategory(i),cancelEvent(e);if(!t.tab){var a="mouseover"==e.type;a&&t.selectCategoryIndex==i||(clearTimeout(t.selectCategoryTimeout),delete t.selectCategoryTimeout,a?(t.selectCategoryIndex=i,t.selectCategoryTimeout=setTimeout(function(){delete t.selectCategoryIndex,delete t.selectCategoryTimeout,t.selectCategory(i)},300)):delete t.selectCategoryIndex)}}}),this.emojiScroller=new Scroller(this.emojiContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller=new Scroller(this.stickersContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller.onScroll(function(e,n){t.onStickersScroll(e,n)}),this.contentEl.on("mousedown",function(e){e=e.originalEvent||e;var n,i,a,r=$(e.target);return"A"!=r[0].tagName&&(r=$(r[0].parentNode)),(n=r.attr("data-code"))&&(t.onEmojiSelected&&t.onEmojiSelected(n),EmojiHelper.pushPopularEmoji(n)),(i=r.attr("data-sticker"))&&(t.onStickerSelected&&t.onStickerSelected(i),Config.Mobile&&t.hide()),(a=r.attr("data-stickerset"))&&(t.onStickersetSelected&&t.onStickersetSelected(a),t.hide()),cancelEvent(e)}),Config.Navigator.touch||this.tooltipEl.on("mouseenter mouseleave",function(e){"mouseenter"==e.type?t.onMouseEnter():t.onMouseLeave()}),this.selectTab(0),$(window).on("resize",this.updatePosition.bind(this)),!0},EmojiTooltip.prototype.selectCategory=function(e,t){return!(!this.tab&&this.cat===e&&!t)&&($(".active",this.categoriesEl).removeClass("active"),this.cat=e,void(this.tab?(this.activateStickerCategory(),this.updateStickersContents(t)):($(this.categoriesEl[this.tab].childNodes[e]).addClass("active"),this.updateEmojiContents())))},EmojiTooltip.prototype.selectTab=function(e,t){if(this.tab===e&&!t)return!1;this.tab=e,this.selectCategory(0,!0);var n=this;setTimeout(function(){$(n.tooltipEl).toggleClass("composer_emoji_tooltip_tabs_stickers_active",1==e)},0)},EmojiTooltip.prototype.updateEmojiContents=function(){var e=[],t=this,n=26,i=function(){t.emojiContentEl.html(e.join("")),t.emojiScroller.reinit()};if(this.cat>0){var a,r,o,s,l,c=this.cat-1,d=Config.EmojiCategories[c],u=Config.EmojiCategorySpritesheetDimens[c][1],p=d.length;for(o=0;o');i()}else EmojiHelper.getPopularEmoji(function(t){var a,r,o,s,l,c,d,u,p=t.length;for(c=0;c'));i()})},EmojiTooltip.prototype.updateStickersContents=function(e){var t=[],n=[],i=this,a=function(){var t=i.cat?i.stickersetPositions[i.cat][0]:0;i.stickersScroller.scrollTo(t,e?0:200)};if(!e&&i.stickersetPositions.length)return void a();var r=function(e){var r,o,s,l,c,d;for(s=0,c=e.length;s'),r.title&&t.push('',encodeEntities(r.title),""),r.id?n.push(''):n.push(''),l=0,d=r.docIDs.length;l');t.push("")}i.stickersContentEl.html(t.join("")),i.stickersCategoriesEl.html(n.join("")),i.stickersScroller.reinit();var u=[];$(".composer_stickerset_wrap",i.stickersContentEl).each(function(e,t){var n=t.offsetHeight,i=t.offsetTop;u.push([i,n])}),i.stickersetPositions=u,a();var p=[];i.contentEl.find(".composer_sticker_btn").each(function(e,t){e<12?i.replaceStickerImage(t):p.push([t.offsetTop,t])}),i.stickersPreload=p,i.stickersCategoriesEl.find(".composer_sticker_btn").each(function(e,t){i.replaceStickerImage(t)})};this.getStickers(r)},EmojiTooltip.prototype.replaceStickerImage=function(e){e=$(e),this.getStickerImage(e,e.attr("data-sticker"))},EmojiTooltip.prototype.onStickersScroll=function(e,t){var n,i,a=e.clientHeight,r=e.scrollHeight,o=this.stickersetPositions.length,s=!1;if(t<20)s=0;else if(t>r-a-20)s=o-1;else for(i=0;i=n[0]&&t=t&&n[0]<=t+a&&(this.replaceStickerImage(n[1]),this.stickersPreload.splice(i,1),i--,o--);this.cat!==s&&s!==!1&&($(".active",this.categoriesEl).removeClass("active"),this.cat=s,this.activateStickerCategory())},EmojiTooltip.prototype.onStickersChanged=function(){this.tab&&this.updateStickersContents(!0)},EmojiTooltip.prototype.activateStickerCategory=function(){var e=this.categoriesEl[1],t=e.childNodes[this.cat];if(t){$(t).addClass("active");var n=t.offsetLeft,i=t.offsetWidth,a=e.clientWidth;$(e).stop(!0).animate({scrollLeft:n-(a-i)/2},200)}},EmojiTooltip.prototype.updatePosition=function(){var e=this.btnEl.offset();this.tooltipEl.css({top:e.top,left:e.left})},EmojiTooltip.prototype.show=function(){this.updatePosition(),this.tab?this.updateStickersContents(!0):this.updateEmojiContents(),this.tooltipEl.addClass("composer_emoji_tooltip_shown"),this.btnEl.addClass("composer_emoji_insert_btn_on"),delete this.showTimeout,this.shown=!0},EmojiTooltip.prototype.hide=function(){this.tooltipEl&&(this.tooltipEl.removeClass("composer_emoji_tooltip_shown"),this.btnEl.removeClass("composer_emoji_insert_btn_on")),delete this.hideTimeout,delete this.shown},EmojiPanel.prototype.update=function(){var e=[],t=this,n=Config.Mobile?26:20;EmojiHelper.getPopularEmoji(function(i){var a,r,o,s,l,c,d,u,p=i.length;for(c=0;c'));t.containerEl.html(e.join(""))})},MessageComposer.autoCompleteRegEx=/(\s|^)(:|@|\/)([\S]*)$/,MessageComposer.prototype.setUpInput=function(){if(this.inlinePlaceholderWrap=$('
    ').prependTo(this.textareaEl[0].parentNode),this.inlinePlaceholderPrefixEl=$('').appendTo(this.inlinePlaceholderWrap),this.inlinePlaceholderEl=$('').appendTo(this.inlinePlaceholderWrap),"contentEditable"in document.body?this.setUpRich():this.setUpPlaintext(),!Config.Mobile){var e=getScrollWidth();e&&(this.richTextareaEl||this.textareaEl).css({left:-e,width:"calc(100% + "+2*e+"px)","padding-left":e+2,"padding-right":e+28})}},MessageComposer.prototype.setInlinePlaceholder=function(e,t){this.inlinePlaceholderPrefix=e,this.inlinePlaceholderPrefixEl.html(encodeEntities(e)),this.inlinePlaceholderEl.html(encodeEntities(t)),this.onChange()},MessageComposer.prototype.updateInlinePlaceholder=function(){var e=this.inlinePlaceholderPrefix;if(e){var t=this.textareaEl.val();this.inlinePlaceholderWrap.toggleClass("active",t==e)}},MessageComposer.prototype.setUpAutoComplete=function(){this.scroller=new Scroller(this.autoCompleteEl,{maxHeight:180});var e=this;this.autoCompleteEl.on("mousedown",function(t){t=t.originalEvent||t;for(var n,i,a,r,o=t.target;o&&"A"!=o.tagName;)o=o.parentNode;return o?(o=$(o),(i=o.attr("data-code"))&&(e.onEmojiSelected&&e.onEmojiSelected(i,!0),EmojiHelper.pushPopularEmoji(i)),n=t.altKey||!o.attr("data-username")?o.attr("data-user-id"):o.attr("data-username"),n&&e.onMentionSelected(n,o.attr("data-name")),(a=o.attr("data-command"))&&(e.onCommandSelected&&e.onCommandSelected(a),e.hideSuggestions()),(r=o.attr("data-inlineid"))&&(e.onInlineResultSend&&e.onInlineResultSend(r),e.hideSuggestions()),cancelEvent(t)):cancelEvent(t)})},MessageComposer.prototype.setUpRich=function(){this.textareaEl.hide(),this.richTextareaEl=$('
    '),this.textareaEl[0].parentNode.insertBefore(this.richTextareaEl[0],this.textareaEl[0]),this.richTextareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.richTextareaEl.on("focus blur",this.onFocusBlur.bind(this)),this.richTextareaEl.on("paste",this.onRichPaste.bind(this)),this.richTextareaEl.on("DOMNodeInserted",this.onRichPasteNode.bind(this)),$(document.body).on("keydown",this.backupSelection.bind(this))},MessageComposer.prototype.setUpPlaintext=function(){this.textareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.textareaEl.on("focus blur",this.onFocusBlur.bind(this))},MessageComposer.prototype.onKeyEvent=function(e){var t=this;if("keyup"==e.type){this.checkAutocomplete();var n=!1;if(this.richTextareaEl){clearTimeout(this.updateValueTO);var i=tsNow();void 0===this.keyupStarted&&(this.keyupStarted=i),i-this.keyupStarted>3e3,this.onChange()}if(this.onTyping){var i=tsNow();i-this.lastTyping>5e3&&(n===!1&&(n=(this.richTextareaEl?this.richTextareaEl[0].textContent:this.textareaEl[0].value).length),n!=this.lastLength&&(this.lastTyping=i,this.lastLength=n,this.onTyping()))}}if("keydown"==e.type){var a=!this.autocompleteShown;if(this.autocompleteShown){if(38==e.keyCode||40==e.keyCode){var r,o=40==e.keyCode,s=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active"),l=Array.prototype.slice.call($(this.autoCompleteEl).find("li"));if(s.length){var c=l.indexOf(s[0]),d=c+(o?1:-1);if(r=l[d],s.removeClass("composer_autocomplete_option_active"),r)return $(r).addClass("composer_autocomplete_option_active"),this.scroller.scrollToNode(r),cancelEvent(e)}return r=l[o?0:l.length-1],this.scroller.scrollToNode(r),$(r).addClass("composer_autocomplete_option_active"),cancelEvent(e)}if(13==e.keyCode||9==e.keyCode){var s=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active");s.length||9!=e.keyCode||(s=$(this.autoCompleteEl).find("li:first")),s=s.find("a:first");var u,p,f,m;if(u=s.attr("data-code"))return this.onEmojiSelected(u,!0),EmojiHelper.pushPopularEmoji(u),cancelEvent(e);if(p=e.altKey||!s.attr("data-username")?s.attr("data-user-id"):s.attr("data-username"))return this.onMentionSelected(p,s.attr("data-name")),cancelEvent(e);if(f=s.attr("data-command"))return this.onCommandSelected&&this.onCommandSelected(f,9==e.keyCode),cancelEvent(e);if(m=s.attr("data-inlineid"))return t.onInlineResultSend&&t.onInlineResultSend(m),t.hideSuggestions(),cancelEvent(e);a=!0}}if(a&&13==e.keyCode){var h=!1,g=!0;if(this.getSendOnEnter&&!this.getSendOnEnter()&&(g=!1),g&&!e.shiftKey?h=!0:g||!e.ctrlKey&&!e.metaKey||(h=!0),h)return this.onMessageSubmit(e),cancelEvent(e)}if([33,34,35,36,38,39].indexOf(e.keyCode)!=-1&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&this.richTextareaEl&&!this.richTextareaEl[0].textContent.length)return this.onDirectionKey(e)}},MessageComposer.prototype.backupSelection=function(){if(delete this.selection,this.isActive)if(window.getSelection){var e=window.getSelection();e.getRangeAt&&e.rangeCount&&(this.selection=e.getRangeAt(0))}else document.selection&&document.selection.createRange&&(this.selection=document.selection.createRange())},MessageComposer.prototype.restoreSelection=function(){if(!this.selection)return!1;var e=!1;if(window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(this.selection),e=!0}else document.selection&&this.selection.select&&(this.selection.select(),e=!0);return delete this.selection,e},MessageComposer.prototype.checkAutocomplete=function(e){var t,n;if(this.richTextareaEl){var i=this.richTextareaEl[0],a=getRichValueWithCaret(i),n=a[0],t=a[1]>=0?a[1]:n.length;t||this.cleanRichTextarea(n,!0)}else var i=this.textareaEl[0],t=getFieldSelection(i),n=i.value;if(n&&this.curInlineResults&&this.curInlineResults.text==n)return void this.showInlineSuggestions(this.curInlineResults);e||(n=n.substr(0,t));var r=n.match(MessageComposer.autoCompleteRegEx);if(r){if(this.previousQuery==r[0])return;this.previousQuery=r[0];var o=SearchIndexManager.cleanSearchText(r[3]);if("@"==r[2])if(this.mentions&&this.mentions.index){if(o.length)for(var s,l=SearchIndexManager.search(o,this.mentions.index),c=[],d=0,u=this.mentions.users.length;d=0)||(a.push(n),t.splice(i,1),t.length));r++);this.showEmojiSuggestions(a.concat(t))}else this.hideSuggestions()}else this.showEmojiSuggestions(e)}.bind(this))}}else if(this.commands&&this.commands.index){if(o.length)for(var p,l=SearchIndexManager.search(o,this.commands.index),f=[],d=0,u=this.commands.list.length;d0&&(this.richTextareaEl.html(""),this.lastLength=0,this.wasEmpty=!0,t))){var n=this;setZeroTimeout(function(){n.focus()})}},MessageComposer.prototype.onRichPasteNode=function(e){var t=(e.originalEvent||e).target,n=(t||{}).src||"",i=!1;if("data:"==n.substr(0,5)){i=!0;var a=dataUrlToBlob(n);this.onFilePaste(a),setZeroTimeout(function(){t.parentNode.replaceChild(document.createTextNode("   "),t)})}else if(n&&!n.match(/img\/blank\.gif/)){var r=document.createTextNode(" "+n+" ");setTimeout(function(){t.parentNode.replaceChild(r,t)},100)}},MessageComposer.prototype.onEmojiSelected=function(e,t){if(this.richTextareaEl){var n=this.richTextareaEl[0];if(this.isActive||this.restoreSelection()||setRichFocus(n),t){var i,a=getRichValueWithCaret(n),r=a[0],o=a[1]>=0?a[1]:r.length,s=r.substr(o),l=r.substr(0,o),c=l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];i=c&&c[0]?l.substr(0,c.index)+":"+d[1]+":":l+":"+d[1]+":",n.value=g;var u;s.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+' '+this.getRichHtml(s),this.richTextareaEl.html(u),setRichFocus(n,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(i)+" ",this.richTextareaEl.html(u),setRichFocus(n))}else{var u=this.getEmojiHtml(e);if(window.getSelection){var p=window.getSelection();if(p.getRangeAt&&p.rangeCount){var f=document.createElement("div");f.innerHTML=u;var m=f.firstChild,h=p.getRangeAt(0);h.deleteContents(),h.insertNode(document.createTextNode(" ")),h.insertNode(m),h.setStart(m,0),setTimeout(function(){h=document.createRange(),h.setStartAfter(m),h.collapse(!0),p.removeAllRanges(),p.addRange(h)},0)}}else document.selection&&"Control"!=document.selection.type&&document.selection.createRange().pasteHTML(u)}}else{var n=this.textareaEl[0],r=n.value,o=this.isActive?getFieldSelection(n):r.length,s=r.substr(o),l=r.substr(0,o),c=t&&l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];if(c&&c[0])var g=l.substr(0,c.index)+":"+d[1]+": "+s,_=c.index+d[1].length+3;else var g=l+":"+d[1]+": "+s,_=l.length+d[1].length+3;n.value=g,setFieldSelection(n,_)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onMentionsUpdated=function(e){delete this.previousQuery,this.isActive&&this.checkAutocomplete()},MessageComposer.prototype.onMentionSelected=function(e,t){var n=!0;if("#"==e.charAt(0)&&(n=!1,e=e.substr(1),t=t.replace(/\(\)@/,"")),this.richTextareaEl){var i=this.richTextareaEl[0];this.isActive||this.restoreSelection()||setRichFocus(i);var a,r=getRichValueWithCaret(i),o=r[0],s=r[1]>=0?r[1]:o.length,l=o.substr(s),c=o.substr(0,s),d=c.match(/@([\S]*)$/);a=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e;var u;n?l.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(a)+' '+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(i,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(a)+" ",this.richTextareaEl.html(u),setRichFocus(i)):(this.selId=(this.selId||0)+1,u=this.getRichHtml(a)+' ('+encodeEntities(t)+") "+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(i,$("#composer_sel"+this.selId)[0],!0))}else{var a,p,f,m,i=this.textareaEl[0],o=i.value,s=this.isActive?getFieldSelection(i):o.length,l=o.substr(s),c=o.substr(0,s),d=c.match(/@([\S]*)$/);a=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e,n?(p=a+"@"+e+" "+l,f=d.index+e.length+2):(p=a+"@"+e+" ("+t+") "+l,f=d.index+e.length+2,m=f+t.length),i.value=p,setFieldSelection(i,f,m)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onCommandSelected=function(e,t){if(t)if(this.richTextareaEl)this.richTextareaEl.html(encodeEntities(e)+" "),setRichFocus(this.richTextareaEl[0]);else{var n=this.textareaEl[0];n.value=e+" ",setFieldSelection(n)}else this.onCommandSend(e);this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onChange=function(e){if(this.richTextareaEl){delete this.keyupStarted;var t=getRichValue(this.richTextareaEl[0]);this.textareaEl.val(t).trigger("change")}this.updateInlinePlaceholder()},MessageComposer.prototype.getEmojiHtml=function(e,t){t=t||EmojiHelper.emojis[e];var n=20,i=EmojiHelper.spritesheetPositions[e],a=i[0],r=(i[1],n*i[3]),o=n*i[2];return':'+encodeEntities(t[1])+':'},MessageComposer.prototype.setValue=function(e){this.richTextareaEl?(this.richTextareaEl.html(this.getRichHtml(e)),this.lastLength=e.length,this.wasEmpty=!e.length,this.onKeyEvent({type:"keyup"})):this.textareaEl.val(e)},MessageComposer.prototype.setFocusedValue=function(e){var t=e[0],n=e[1],i=e[2];if(this.richTextareaEl){this.selId=(this.selId||0)+1;var a=this.getRichHtml(t)+''+this.getRichHtml(n)+""+this.getRichHtml(i);this.richTextareaEl.html(a),setRichFocus(this.richTextareaEl[0],$("#composer_sel"+this.selId)[0],!0)}else this.textareaEl.val(t+n+i),setFieldSelection(this.textareaEl[0],t.length,t.length+n.length)},MessageComposer.prototype.getRichHtml=function(e){var t=$("
    ").text(e).html();return t=t.replace(/\n/g,"
    "),t=t.replace(/:([A-Za-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?this.getEmojiHtml(n):e}.bind(this)),t=t.replace(/ /g,"  ").replace(/^ | $/g," ")},MessageComposer.prototype.focus=function(){this.richTextareaEl?setZeroTimeout(function(){setRichFocus(this.richTextareaEl[0])}.bind(this)):setFieldSelection(this.textareaEl[0])},MessageComposer.prototype.blur=function(){this.richTextareaEl?this.richTextareaEl[0].blur():this.textareaEl[0].blur()},MessageComposer.prototype.renderSuggestions=function(){this.autoCompleteWrapEl.show(),this.scroller.reinit(),this.updatePosition(),this.autocompleteShown=!0},MessageComposer.prototype.showEmojiSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="emoji",n.autoCompleteScope.emojiCodes=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showMentionSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="mentions",n.autoCompleteScope.mentionUsers=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showCommandsSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="commands",n.autoCompleteScope.commands=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showInlineSuggestions=function(e){if(!e||!e.results.length)return void this.hideSuggestions();var t=++this.renderToggleCnt,n=this;"inline"==n.autoCompleteScope.type&&n.autoCompleteScope.botResults==e&&n.autocompleteShown||setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="inline",n.autoCompleteScope.botResults=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.setInlineSuggestions=function(e){this.curInlineResults=e,this.checkAutocomplete()},MessageComposer.prototype.updatePosition=function(){var e=(this.richTextareaEl||this.textareaEl).offset(),t=this.scroller.updateHeight(),n=$((this.richTextareaEl||this.textareaEl)[0].parentNode).outerWidth();this.autoCompleteWrapEl.css({top:e.top-t,left:Config.Mobile?0:e.left,width:Config.Mobile?"100%":n-2}),this.scroller.update()},MessageComposer.prototype.hideSuggestions=function(){++this.renderToggleCnt;this.autoCompleteWrapEl.hide(),delete this.autocompleteShown},MessageComposer.prototype.resetTyping=function(){this.lastTyping=0,this.lastLength=0},MessageComposer.prototype.setPlaceholder=function(e){(this.richTextareaEl||this.textareaEl).attr("placeholder",e)},Scroller.prototype.setUpNano=function(){this.content.wrap('
    '),this.scrollable=$(this.content[0].parentNode),this.scroller=$(this.scrollable[0].parentNode),this.wrap=$(this.scroller[0].parentNode),this.scroller.nanoScroller({preventPageScrolling:!0,tabIndex:-1})},Scroller.prototype.setUpNative=function(){this.content.wrap('
    '),this.scrollable=$(this.content[0].parentNode),this.scrollable.css({overflow:"auto"}),this.maxHeight&&this.scrollable.css({maxHeight:this.maxHeight}),this.minHeight&&this.scrollable.css({minHeight:this.minHeight})},Scroller.prototype.onScroll=function(e){var t=this,n=this.scrollable[0];this.scrollable.on("scroll",function(i){t.isAnimatedScroll||e(n,n.scrollTop)})},Scroller.prototype.update=function(){this.useNano&&$(this.scroller).nanoScroller()},Scroller.prototype.reinit=function(){this.scrollTo(0),this.useNano&&setTimeout(function(){this.updateHeight()}.bind(this),100)},Scroller.prototype.updateHeight=function(){var e;return this.useNano?(this.maxHeight||this.minHeight?(e=this.content[0].offsetHeight,this.maxHeight&&e>this.maxHeight&&(e=this.maxHeight),this.minHeight&&e0){var i=this;this.isAnimatedScroll=!0,this.scrollable.animate({scrollTop:e},t,function(){delete i.isAnimatedScroll,i.useNano&&$(i.scroller).nanoScroller({flash:!0}),i.scrollable.trigger("scroll"),n&&n()})}else this.scrollable[0].scrollTop=e,this.useNano&&$(this.scroller).nanoScroller({flash:!0}),n&&n()},Scroller.prototype.scrollToNode=function(e){e=e[0]||e;var t=e.offsetTop-15,n=e.offsetHeight+30,i=this.scrollable[0].scrollTop,a=this.scrollable[0].clientHeight;i>t?this.scrollTo(t):i

    --- 
     ---
    ',r='
    '+t("unread_messages_split")+"
    ",o="im_message_selected",s="im_message_focus",l="im_message_unread",c="im_message_error",d="im_message_pending";return{templateUrl:templateUrl("message"),link:n}}]).directive("myMessageBody",["$compile","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesManager","AppInlineBotsManager","RichTextProcessor",function(e,t,n,i,a,r,o){function s(e,t,n){if(n.media&&n.media.handleMessage||"string"!=typeof n.message||!n.message.length)return void $(".im_message_text",t).hide();var i=a.wrapMessageText(n.mid);$(".im_message_text",t).html(i.valueOf())}function l(e,t,n){if(!n.media)return void $(".im_message_media",t).hide();var i=e.$new(!0);i.media=n.media,i.messageId=n.mid,f(i,function(e){$(".im_message_media",t).replaceWith(e)})}function c(e,t,n){var i=n.post_author||n.fwd_from&&n.fwd_from.post_author;if(!i)return void $(".im_message_sign",t).hide();var a=o.wrapRichText(i,{noLinks:!0,noLinebreaks:!0});$(".im_message_sign",t).html(''+a.valueOf()+"")}function d(e,t,n){if(!n.reply_markup||"replyInlineMarkup"!=n.reply_markup._)return void $(".im_message_keyboard",t).hide();var i=e.$new(!0);i.markup=a.wrapReplyMarkup(n.reply_markup,n.fromID),i.messageId=n.mid,m(i,function(e){$(".im_message_keyboard",t).replaceWith(e)}),i.$on("reply_inline_button_press",function(e,t){switch(t._){case"keyboardButtonSwitchInline":r.switchInlineButtonClick(n.mid,t);break;case"keyboardButtonCallback":r.callbackButtonClick(n.mid,t);break;case"keyboardButtonGame":r.gameButtonClick(n.mid)}})}function u(e,t,n){s(e,t,n),l(e,t,n),c(e,t,n),d(e,t,n)}function p(e,t,n){var i=e.message;i.dir=!0;var a=i.mid;if(u(e,t,i),i.pending)var r=e.$on("messages_pending",function(){i.mid!=a&&(u(e,t,i),r())});e.$on("message_edit",function(n,a){a.mid==i.mid&&(a.justMedia?l(e,t,i):u(e,t,i))})}var f=e('
    '),m=e('
    ');e('
    ');return{link:p,scope:{message:"=myMessageBody"}}}]).directive("myMessageViews",["$filter","AppMessagesManager",function(e,t){function n(e,t){t.html(a(e))}function i(e,i,a){var r=e.$eval(a.myMessageViews),o=t.getMessage(r).views||0;n(o,i),e.$on("message_views",function(e,t){t.mid==r&&n(t.views,i)})}var a=e("formatShortNumber");return{link:i}}]).directive("myReplyMarkup",function(){function e(e,t,n){var i=$(".reply_markup",t),a=new Scroller(i,{classPrefix:"reply_markup",maxHeight:170});e.buttonClick=function(t){e.$emit("reply_button_press",t)},e.$on("ui_keyboard_update",function(t,n){onContentLoaded(function(){a.updateHeight(),a.scrollTo(0),e.$emit("ui_panel_update",{blur:n&&n.enabled})})}),onContentLoaded(function(){a.updateHeight(),e.$emit("ui_panel_update")})}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myReplyMarkup"},link:e}}).directive("myMessageMedia",function(){return{scope:{media:"=myMessageMedia",messageId:"=messageId"},templateUrl:templateUrl("message_media")}}).directive("myMessagePhoto",["AppPhotosManager",function(e){return{scope:{media:"=myMessagePhoto",messageId:"=messageId"},templateUrl:templateUrl("message_attach_photo"),link:function(t,n,i){t.openPhoto=e.openPhoto,t.preloadPhoto=e.preloadPhoto}}}]).directive("myMessageDocument",["AppDocsManager",function(e){return{scope:{media:"=myMessageDocument",messageId:"=messageId"},templateUrl:templateUrl("message_attach_document"),link:function(t,n,i){if(e.updateDocDownloaded(t.media.document.id),t.docSave=function(){e.saveDocFile(t.media.document.id)},t.docOpen=function(){return t.media.document.withPreview?void e.openDoc(t.media.document.id,t.messageId):t.docSave()},t.videoOpen=function(){e.openVideo(t.media.document.id,t.messageId)},t.media.document.file_name){var a=t.media.document.file_name.split(".");a.length>1?(t.media_file_ext="."+a.pop(),t.media_file_name_without_ext=a.join("."),t.media_file_name_without_ext||(t.media_file_name_without_ext=t.media_file_ext,t.media_file_ext="")):(t.media_file_ext="",t.media_file_name_without_ext=a[0])}}}}]).directive("myMessageGeo",function(){return{scope:{media:"=myMessageGeo"},templateUrl:templateUrl("message_attach_geo")}}).directive("myMessageVenue",function(){return{scope:{media:"=myMessageVenue"},templateUrl:templateUrl("message_attach_venue")}}).directive("myMessageContact",function(){return{scope:{media:"=myMessageContact"},templateUrl:templateUrl("message_attach_contact")}}).directive("myMessageWebpage",["AppWebPagesManager","AppPhotosManager",function(e,t){return{scope:{media:"=myMessageWebpage",messageId:"=messageId"},templateUrl:templateUrl("message_attach_webpage"),link:function(n){n.openPhoto=t.openPhoto,n.openEmbed=function(t){if(n.media.webpage&&n.media.webpage.embed_url)return e.openEmbed(n.media.webpage.id,n.messageId),cancelEvent(t)},n.$on("webpage_updated",function(e,t){n.media.webpage&&n.media.webpage.id==t.id&&n.$emit("ui_height")})}}}]).directive("myMessageGame",["AppInlineBotsManager","AppMessagesManager",function(e,t){return{scope:{media:"=myMessageGame",messageId:"=messageId"},templateUrl:templateUrl("message_attach_game"), -link:function(n,i){function a(e){var a=t.getMessage(n.messageId);if(a.message){var r=t.wrapMessageText(n.messageId);$(".im_message_game_message",i).html(r.valueOf()).show(),$(".im_message_game_description",i).hide()}else $(".im_message_game_message",i).html("").hide(),$(".im_message_game_description",i).show()}n.openGame=function(){e.gameButtonClick(n.messageId)},n.$on("message_edit",function(e,t){t.mid==n.messageId&&a()}),a()}}}]).directive("myMessagePending",function(){function e(e,t,n){if(e.media.file_name){var i=e.media.file_name.split(".");i.length>1?(e.media_file_ext="."+i.pop(),e.media_file_name_without_ext=i.join("."),e.media_file_name_without_ext||(e.media_file_name_without_ext=e.media_file_ext,e.media_file_ext="")):(e.media_file_ext="",e.media_file_name_without_ext=i[0])}}return{scope:{media:"=myMessagePending"},templateUrl:templateUrl("message_attach_pending"),link:e}}).directive("myInlineReplyMarkup",function(){function e(e,t,n){e.buttonClick=function(t){e.$emit("reply_inline_button_press",t)}}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myInlineReplyMarkup"},link:e}}).directive("myServiceMessage",["ErrorService","AppMessagesManager",function(e,t){function n(n,i,a){n.phoneCallClick=function(n){var i=t.getMessage(n),a=t.getMessagePeer(i);e.show({error:{type:"PHONECALLS_NOT_SUPPORTED",userID:a}})}}return{templateUrl:templateUrl("message_service"),scope:{historyMessage:"=myServiceMessage"},link:n}}]).directive("myShortMessage",function(){return{scope:{message:"=myShortMessage"},templateUrl:templateUrl("short_message")}}).directive("myReplyMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function i(e,t,n){if(n.watch)e.$parent.$watch(n.myReplyMessage,function(i){var r=e.$parent.$eval(n.edit);a(e,t,i,r)});else{var i=e.$parent.$eval(n.myReplyMessage),r=e.$parent.$eval(n.edit);a(e,t,i,r)}}function a(t,n,i,a){var o=t.replyMessage=e.wrapSingleMessage(i);if(t.thumb=!1,t.isEdit=a||!1,o.loading)var s=t.$on("messages_downloaded",function(a,o){o.indexOf(i)!=-1&&(t.replyMessage=e.wrapForDialog(i),r(t,n),s())});else r(t,n)}function r(i,a){var r=i.replyMessage;return r&&!r.deleted&&r.to_id?(i.thumb=e.getMessageThumb(r,42,42),"A"==a[0].tagName&&a.on("click",function(){var i=e.getMessagePeer(r),a=t.getPeerString(i);n.$broadcast("history_focus",{peerString:a,messageID:r.mid})}),void onContentLoaded(function(){i.$emit("ui_height")})):void $(a).remove()}return{templateUrl:templateUrl("reply_message"),scope:{},link:i}}]).directive("myPinnedMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function i(t,n,i){var r=t.$parent.$eval(i.myPinnedMessage),o=t.pinnedMessage=e.wrapSingleMessage(r);if(o.loading)var s=t.$on("messages_downloaded",function(i,o){o.indexOf(r)!=-1&&(t.pinnedMessage=e.wrapForDialog(r),a(t,n),s())});else a(t,n)}function a(i,a){var r=i.pinnedMessage;return r&&!r.deleted&&r.to_id?("A"==a[0].tagName&&a.on("click",function(){var i=e.getMessagePeer(r),a=t.getPeerString(i);n.$broadcast("history_focus",{peerString:a,messageID:r.mid})}),void onContentLoaded(function(){i.$emit("ui_height")})):void $(a).remove()}return{templateUrl:templateUrl("pinned_message"),scope:{},link:i}}]).directive("myPeerPinnedMessageBar",["AppMessagesManager","AppPeersManager","AppProfileManager",function(e,t,n){function i(e,i,a){a&&(i.pinnedMessageID=0,i.$emit("ui_height"));var r=++i.jump;if(t.isChannel(e)){var o=-e;n.getChannelPinnedMessage(o).then(function(e){r==i.jump&&(i.pinnedMessageID=e||0,i.$emit("ui_height"))})}}function a(e,t,a){e.jump=0,e.$parent.$watch(a.myPeerPinnedMessageBar,function(t){e.peerID=t,i(t,e,!0)}),e.$on("peer_pinned_message",function(t,n){n==e.peerID&&i(e.peerID,e)}),e.$on("chat_full_update",function(t,n){n==-e.peerID&&i(e.peerID,e)}),e.hidePinned=function(){n.hideChannelPinnedMessage(-e.peerID,e.pinnedMessageID),e.pinnedMessageID=0,e.$emit("ui_height")}}return{templateUrl:templateUrl("peer_pinned_message_bar"),scope:{},link:a}}]).directive("myForwardedMessages",["AppPhotosManager","AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n,i){function a(e,t,n){n.watch?e.$watch("forwardMessages",function(){r(e,t)}):r(e,t)}function r(e,n){var i=e.forwardMessages,a=i.length,r=!1,o=1==a;e.thumb=!1,e.singleMessage=!1,angular.forEach(i,function(n){var i=t.getMessage(n);r===!1?r=i.fromID:r!==i.fromID&&(r=t.getMessagePeer(i)),o&&(e.thumb=t.getMessageThumb(i,42,42),e.singleMessage=t.wrapForDialog(n))}),e.fromID=r,e.count=a,onContentLoaded(function(){e.$emit("ui_height")})}return{templateUrl:templateUrl("forwarded_messages"),scope:{forwardMessages:"=myForwardedMessages"},link:a}}]).directive("myMessageEdited",["_","$timeout","AppMessagesManager",function(e,t,n){function i(e,t,n){var i=e.$parent.$eval(n.myMessageEdited);a(e,t,i)&&e.$on("message_edit",function(i,r){var o=e.$parent.$eval(n.myMessageEdited);r.mid==o&&a(e,t,o)})}function a(e,i,a){var o=n.getMessage(a);return o.canBeEdited?!o.edit_date||(i.html(r).show(),t(function(){e.$destroy()}),!1):(t(function(){e.$destroy(),i.remove()}),!1)}var r=e("message_edited");return{scope:{},link:i}}]).directive("myMessageAdminBadge",["_","AppPeersManager","AppMessagesManager","AppProfileManager",function(e,t,n,i){function a(e,a,o){var s=e.$parent.$eval(o.myMessageAdminBadge),l=s&&s.fromID,c=s&&n.getMessagePeer(s);if(!l||!t.isMegagroup(c))return void a.hide();var d=-c;i.getChannelParticipants(d,{_:"channelParticipantsAdmins"}).then(function(e){for(var t=!1,n=0,i=e.length;n=49&&n.keyCode<=57||Config.Navigator.osX&&n.ctrlKey&&n.shiftKey&&!n.metaKey&&!n.altKey&&n.keyCode>=49&&n.keyCode<=57){var o=n.keyCode-49;return r=$(l).find(".im_dialog_wrap"),a=r[o],a&&($(a).find("a").trigger("mousedown"),scrollToNode(l,a,s)),cancelEvent(n)}var d,f,m,h=Config.Modes.packed;if(40==n.keyCode||38==n.keyCode?(d=40==n.keyCode,f=!d,m=!n.shiftKey&&n.altKey):h&&9==n.keyCode&&n.ctrlKey&&!n.metaKey&&(d=!n.shiftKey,f=!d,m=!0),d||f){if(!m&&(!p||n.metaKey))return!0;i=!m&&$(l).find(".im_dialog_selected")[0]||$(l).find(".active a.im_dialog")[0];var g=i&&i.parentNode;if(g){if(a=i[d?"nextSibling":"previousSibling"],!a||!a.className||a.className.indexOf("im_dialog_wrap")==-1){r=$(l).find(".im_dialog_wrap");var _=r.index(i.parentNode),v=_+(d?1:-1);a=r[v]}}else r=$(l).find(".im_dialog_wrap"),a=d?r[0]:r[r.length-1];return m?a&&$(a).find("a").trigger("mousedown"):(g&&a&&$(g).find("a").removeClass("im_dialog_selected"),a&&$(a).find("a").addClass("im_dialog_selected")),a&&scrollToNode(l,a,s),cancelEvent(n)}}var s=$(".im_dialogs_wrap",a)[0],l=$(".im_dialogs_scrollable_wrap",a)[0],c=$(".im_dialogs_search_field",a)[0],d=$(".im_dialogs_panel",a)[0],u=$(".im_dialogs_search_clear",a)[0],p=!1;$(c).on("focus blur",function(e){p="focus"==e.type,p||($(l).find(".im_dialog_selected").removeClass("im_dialog_selected"),c.value||t.$emit("ui_dialogs_search_clear"))}),t.$on("dialogs_search_toggle",function(){$(d).addClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search"),$(n).scrollTop(0),i(function(){setFieldSelection(c)})}),t.$on("search_clear",function(){$(d).removeClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search")}),$(document).on("keydown",o),t.$on("$destroy",function(){$(document).off("keydown",o)}),t.$on("ui_dialogs_change",function(){onContentLoaded(function(){var e=$(l).find(".active a.im_dialog")[0];e&&scrollToNode(l,e.parentNode,s)})})}return{link:a}}]).directive("myDialogsList",["$window","$timeout",function(e,t){function n(n,i,a){function r(){if(u&&u.offsetHeight||(u=$(d)[0]),a.modal){var t=$(e).height()-(u?u.offsetHeight:49)-(Config.Mobile?46:100);return t=Math.min(Config.Mobile?350:450,t),$(i).css({height:t}),void m()}c&&c.offsetHeight||(c=$(".tg_page_head")[0]),p&&p.offsetHeight||(p=$(".footer_wrap")[0]),s&&s.offsetHeight||(s=$(".im_dialogs_col_wrap")[0]);var n=p?p.offsetHeight:0;n&&n++,$(i).css({height:$(e).height()-n-(c?c.offsetHeight:48)-(u?u.offsetHeight:58)-parseInt($(s).css("paddingBottom")||0)}),m()}var o=$(".im_dialogs_wrap",i)[0],s=$(".im_dialogs_col_wrap")[0],l=$(".im_dialogs_scrollable_wrap",i)[0],c=$(".tg_page_head")[0],d=Config.Mobile&&a.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",u=$(d)[0],p=$(".footer_wrap")[0],f=!1;onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0})});var m=function(){onContentLoaded(function(){$(o).nanoScroller()})};n.$on("ui_dialogs_prepend",m),n.$on("ui_dialogs_search",r),n.$on("ui_dialogs_update",r),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){m(),f=!1,t(function(){$(l).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){m(),f=!1,t(function(){$(l).trigger("scroll")})})}),$(l).on("scroll",function(e){i.is(":visible")&&!f&&l.scrollTop>=l.scrollHeight-l.clientHeight-300&&(n.$emit("dialogs_need_more"),f=!0)}),$(e).on("resize",r),r(),setTimeout(r,1e3)}return{link:n}}]).directive("myContactsList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(r&&r.offsetHeight||0)-(Config.Mobile?64:200)}),$(s).nanoScroller()}var r=$(".contacts_modal_search")[0],o=$(".contacts_modal_panel")[0],s=$(".contacts_wrap",n)[0];onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a),t.$on("contacts_change",function(){onContentLoaded(a)})}return{link:n}}]).directive("myCountriesList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(r&&r.offsetHeight||0)-(Config.Mobile?64:200)}),$(s).nanoScroller()}var r=$(".countries_modal_search")[0],o=$(".countries_modal_panel")[0],s=$(".countries_wrap",n)[0];onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a),t.$on("contacts_change",function(){onContentLoaded(a)})}return{link:n}}]).directive("mySessionsList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:Math.min(760,$(e).height()-(Config.Mobile?64:200))}),$(r).nanoScroller()}var r=$(".sessions_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a)}return{link:n}}]).directive("myStickersList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:Math.min(600,$(e).height()-(Config.Mobile?64:200))}),$(r).nanoScroller()}var r=$(".stickerset_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a)}return{link:n}}]).directive("myHistory",["$window","$timeout","$rootScope","$transition",function(e,t,n,i){function a(a,r,o){function s(e,n){var i,a,r,o=!1;if(!e&&(a=$(".im_message_focus:visible",p)[0])){var s=p.clientHeight,l=p.scrollTop,c=a.offsetTop,d=a.clientHeight;(!l||l+sc+d||n)&&(o=Math.max(0,c-Math.floor(s/2)+26)),I=!1,r=function(){var e=$(a).data("unfocus_promise");e&&(t.cancel(e),$(a).removeClass("im_message_focus_active")),t(function(){$(a).addClass("im_message_focus_active"),e=t(function(){$(a).removeClass("im_message_focus_active"),$(a).data("unfocus_promise",!1)},2800),$(a).data("unfocus_promise",e)})}}else(i=$(".im_message_unread_split:visible",p)[0])?(o=Math.max(0,i.offsetTop-52),I=!1):(o=p.scrollHeight,I=!0);if(o!==!1){var u=function(){S(),t(function(){$(p).trigger("scroll"),x=p.scrollTop}),r&&r()};n?$(p).animate({scrollTop:o},200,u):(p.scrollTop=o,u())}}function l(t){if(r.is(":visible")||$(r[0].parentNode.parentNode).is(":visible")){$(_).is(":visible")&&(b&&b.offsetHeight||(b=$(".im_send_form",r)[0]),$(_).css({height:$(b).height()})),v&&v.offsetHeight||(v=$(".tg_page_head")[0]),y&&y.offsetHeight||(y=$(".footer_wrap")[0]),h&&h.offsetHeight||(h=$(".im_history_pinned_panel",r)[0]);var n=y?y.offsetHeight:0;n&&n++;var i=h&&h.offsetHeight||0,a=$(e).height()-g.offsetHeight-(v?v.offsetHeight:48)-n-i;$(d).css({height:a}),c(),t!==!0&&(I&&onContentLoaded(function(){p.scrollTop=p.scrollHeight,S()}),S(100))}}function c(){$(u).css({marginTop:0});var e=p.offsetHeight-u.offsetHeight-m.offsetHeight-(Config.Mobile?0:39);u.offsetHeight>0&&e>0&&$(u).css({marginTop:e}),$(d).nanoScroller()}var d=$(".im_history_wrap",r)[0],u=$(".im_history_messages",r)[0],p=($(".im_history",r)[0],$(".im_history_scrollable_wrap",r)[0]),f=$(".im_history_scrollable",r)[0],m=$(".im_history_empty_wrap",r)[0],h=$(".im_history_pinned_panel",r)[0],g=$(".im_bottom_panel_wrap",r)[0],_=$(".im_send_form_wrap",r)[0],v=$(".tg_page_head")[0],y=$(".footer_wrap")[0],b=$(".im_send_form",r)[0],w=!1,k=!1;onContentLoaded(function(){p.scrollTop=p.scrollHeight}),$(d).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0});var M,S=function(e){t(function(){$(p).hasClass("im_history_to_bottom")||$(d).nanoScroller()},e||0)},A=!1,C=["transform","webkitTransform","MozTransform","msTransform","OTransform"];for(M=0;M0;if(r)a=p.scrollHeight;else{var o=parseInt($(p).css("paddingRight"));$(f).css({bottom:0,paddingRight:o}),$(p).addClass("im_history_to_bottom")}onContentLoaded(function(){if(r){E=!0,$(u).removeClass("im_history_appending"),p.scrollTop=p.scrollHeight,$(u).css(A,"translate(0px, "+(p.scrollHeight-a)+"px)"),$(d).nanoScroller();var e={};e[A]="translate(0px, 0px)",$(u).addClass("im_history_appending"),i($(u),e).then(function(){E=!1,$(u).removeClass("im_history_appending"),c()})}else $(p).removeClass("im_history_to_bottom"),$(f).css({bottom:"",paddingRight:0}),p.scrollTop=p.scrollHeight,c()})}),a.$on("history_direction_key",function(e,t){var n=!1;switch(console.warn("scroll top",t.keyCode),t.keyCode){case 33:n=p.scrollTop-p.clientHeight;break;case 34:n=p.scrollTop+p.clientHeight;break;case 36:n=0;break;case 35:n=p.scrollHeight}n!==!1&&$(p).stop().animate({scrollTop:n},200)}),a.$on("ui_history_change",function(){var e=parseInt($(p).css("paddingRight"));$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(f).css({bottom:0,paddingRight:e}),onContentLoaded(function(){$(p).removeClass("im_history_to_bottom"),$(f).css({bottom:"",paddingRight:""}),l(!0),w=!1,k=!1,s()})}),a.$on("ui_history_change_scroll",function(e,t){onContentLoaded(function(){s(!1,t)})}),a.$on("ui_history_focus",function(){I||(p.scrollTop=p.scrollHeight,S(),I=!0)}),a.$on("ui_history_prepend",function(){var e=p.scrollHeight,n=p.scrollTop,i=parseInt($(p).css("paddingRight")),r=p.clientHeight;$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(f).css({bottom:-(e-n-r),paddingRight:i});var o=function(){$(p).removeClass("im_history_to_bottom"),$(f).css({bottom:"",paddingRight:""}),x>=0?s():p.scrollTop=n+p.scrollHeight-e,c(),w=!1,t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")}),clearTimeout(l),d()},l=setTimeout(o,0),d=a.$on("$viewContentLoaded",o)}),a.$on("ui_history_append",function(){var e=p.scrollHeight;onContentLoaded(function(){I=!1,c(),k=!1,x>=0&&s(),t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")})})}),a.$on("ui_panel_update",function(e,n){l(),onContentLoaded(function(){l(),n&&n.blur?a.$broadcast("ui_message_blur"):getSelectedText()||a.$broadcast("ui_message_send"),t(function(){$(p).trigger("scroll")})})}),a.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),a.$on("ui_editor_resize",l),a.$on("ui_height",function(){onContentLoaded(l)});var I=!0,x=-1;$(p).on("scroll",function(e){if(r.is(":visible")&&!$(p).hasClass("im_history_to_bottom")&&!E){var t=p.scrollTop;I=t>=p.scrollHeight-p.clientHeight,x>=0&&x!=t&&(x=-1),!w&&t<=300?(w=!0,a.$emit("history_need_more")):!k&&t>=p.scrollHeight-p.clientHeight-300&&(k=!0,a.$emit("history_need_less"))}}),$(e).on("resize",l),l(),onContentLoaded(l)}return{link:a}}]).directive("mySendForm",["_","$q","$timeout","$interval","$window","$compile","$modalStack","$http","$interpolate","Storage","AppStickersManager","AppDocsManager","ErrorService","AppInlineBotsManager","FileManager","shouldFocusOnInteraction",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h){function g(s,l,g){function _(){return ne?void(q&&(q.stop(),q.removeEventListener("streamReady",Z),q.removeEventListener("start",J),q.audioContext&&(q.scriptProcessorNode&&q.scriptProcessorNode.disconnect(),q.clearStream(),q.audioContext.close(),q.audioContext=null))):void(ie=!0)}function v(){_(),s.voiceRecorder.recording&&(i.cancel(W),s.$apply(function(){s.voiceRecorder.recording=!1,s.voiceRecorder.duration=0}))}function y(){c.get("send_ctrlenter").then(function(e){ae=!e})}function b(e){return n(function(){M(),s.draftMessage.send(),Y.resetTyping(),K&&K.update(),Y.hideSuggestions()},h?0:100),cancelEvent(e)}function w(e){s.$apply(function(){s.draftMessage.inlineResultID=e})}function k(e){return 38==e.keyCode?(s.$emit("last_message_edit"),cancelEvent(e)):(s.$emit("history_direction_key",e),!0)}function M(){X&&(Y.onChange(),S())}function S(){var e=X.offsetHeight;re!=e&&(re=e,s.$emit("ui_editor_resize"))}function A(e){if(!(9!=e.keyCode||e.shiftKey||e.ctrlKey||e.metaKey||o.getTop()))return Y.focus(),cancelEvent(e)}function C(){onContentLoaded(function(){Y.focus()})}function T(e){var n=e.type||"",i=t.when(!1);["image/jpeg","image/gif","image/png","image/bmp"].indexOf(n)>=0&&(i=m.getFileCorrectUrl(e,n)),i.then(function(t){t=t||!1,p.confirm({type:"FILE_CLIPBOARD_PASTE",fileUrl:t}).then(function(){s.draftMessage.files=[e],s.draftMessage.isMedia=!0})})}function E(e){var t,n,i=(e.originalEvent||e).clipboardData,a=i&&i.items||[],r=[];for(t=0;t0){if(1==r.length)return T(r[0]);p.confirm({type:"FILES_CLIPBOARD_PASTE",files:r}).then(function(){s.draftMessage.files=r,s.draftMessage.isMedia=!0})}}function I(e){var t=!1;return x&&1!=x||(x=checkDragEvent(e)?2:1,t=!0),2==x&&(P&&setTimeout(function(){clearTimeout(P),P=!1},0),"dragenter"==e.type||"dragover"==e.type?t&&($(F).css({height:D.offsetHeight,width:D.offsetWidth}),l.addClass("im_send_form_dragging")):("drop"==e.type&&s.$apply(function(){s.draftMessage.files=Array.prototype.slice.call(e.originalEvent.dataTransfer.files),s.draftMessage.isMedia=!0}),P=setTimeout(function(){l.removeClass("im_send_form_dragging"),x=!1,P=!1},300))),cancelEvent(e)}var x,P,D=$(".im_send_field_wrap",l)[0],R=$("textarea",l)[0],O=$(".composer_emoji_insert_btn",l)[0],N=$(".composer_emoji_panel",l)[0],L=$("input",l),F=$(".im_send_dropbox_wrap",l)[0],U=$(".im_submit",l)[0],B=$(".im_voice_recorder_wrap",l)[0],H=$(".im_record",l)[0],j=r(''),V={},q=null,z=Recorder.isRecordingSupported(),W=null;z&&l.addClass("im_record_supported"),s.voiceRecorder={duration:0,recording:!1,processing:!1};var G=new EmojiTooltip(O,{getStickers:function(e){d.getStickers().then(e)},getStickerImage:function(e,t){var n=e.attr("data-category"),i=V[t];if(i&&!isInDOM(i[0]))return i.attr("data-category",n),void e.replaceWith(i);var a=s.$new(!0);a.document=u.getDoc(t),j(a,function(i){V[t]=i,i.attr("data-category",n),e.replaceWith(i)})},onStickersetSelected:function(e){d.openStickersetLink(e)},onEmojiSelected:function(e){s.$apply(function(){Y.onEmojiSelected(e)})},onStickerSelected:function(e){s.$apply(function(){s.draftMessage.sticker=e})},langpack:{im_emoji_tab:e("im_emoji_tab"),im_stickers_tab:e("im_stickers_tab")}});s.$on("stickers_changed",function(){G.onStickersChanged()});var K;N&&(K=new EmojiPanel(N,{onEmojiSelected:function(e){Y.onEmojiSelected(e)}}));var Y=new MessageComposer(R,{onTyping:function(){s.$emit("ui_typing")},getSendOnEnter:function(){return ae},dropdownDirective:function(e,t){var n=s.$new(!0);r("
    ")(n,function(n,i){e.replaceWith(n),t(i,n)})},mentions:s.mentions,commands:s.commands,onMessageSubmit:b,onDirectionKey:k,onInlineResultSend:w,onFilePaste:T,onCommandSend:function(e){s.$apply(function(){s.draftMessage.command=e})}}),X=Y.richTextareaEl&&Y.richTextareaEl[0];X&&$(X).on("keydown keyup",S),s.$on("inline_results",function(e,t){var n=Config.Mobile?$(window).width():(D.offsetWidth||382)-2,i=80;t&&f.regroupWrappedResults(t.results,n,i),setZeroTimeout(function(){Y.setInlineSuggestions(t)})}),s.$on("inline_placeholder",function(e,t){Y.setInlinePlaceholder(t.prefix,t.placeholder)}),L.on("change",function(){var e=this;s.$apply(function(){s.draftMessage.files=Array.prototype.slice.call(e.files),s.draftMessage.isMedia=$(e).hasClass("im_media_attach_input")||Config.Mobile,setTimeout(function(){try{e.value=""}catch(t){}},1e3)})}),$(H).on("contextmenu",cancelEvent);var J,Z,Q,ee=!!Config.Navigator.touch,te={start:ee?"touchstart":"mousedown",move:ee?"touchmove":"mousemove",stop:ee?"touchend blur":"mouseup blur"},ne=!1,ie=!1;$(H).on(te.start,function(e){if(!s.voiceRecorder.processing){q=new Recorder({monitorGain:0,numberOfChannels:1,bitRate:64e3,encoderSampleRate:48e3,encoderPath:"vendor/recorderjs/encoder_worker.js"}),ne=!1,ie=!1,J=function(e){var t=tsNow(!0);W=i(function(){s.voiceRecorder.duration=tsNow(!0)-t},1e3),s.$apply(function(){s.voiceRecorder.recording=!0})},q.addEventListener("start",J),Z=function(e){return ne=!0,ie?void _():void q.start()},q.addEventListener("streamReady",Z),q.initStream();var t=!1,n={},r=function(){var e=$(".im_bottom_panel_wrap"),t=e.offset();n={top:t.top,left:t.left,width:e.outerWidth(),height:e.outerHeight()}},o=function(e,i){var a=e.originalEvent||e,r=ee?a.changedTouches&&a.changedTouches[0]:a,o=r&&r.pageX>=n.left&&r.pageX<=n.left+n.width&&r.pageY>=n.top&&r.pageY<=n.top+n.height;return t!=o&&(l.toggleClass("im_send_form_hover",o),t=o),i&&o};r(),o(e),Q=function(e){$(a).off(te.move,o),$(a).off(te.stop,Q);var t="blur"!=e&&o(e,!0);s.voiceRecorder.duration>0&&t&&(s.voiceRecorder.processing=!0,q.addEventListener("dataAvailable",function(e){var t=blobConstruct([e.detail],"audio/ogg");console.warn(dT(),"got audio",t),s.$apply(function(){void 0!==t.size&&t.size>1024&&(s.draftMessage.files=[t],s.draftMessage.isMedia=!0),s.voiceRecorder.processing=!1})})),v()},Config.Mobile||$(B).css({height:D.offsetHeight,width:D.offsetWidth}),$(a).on(te.move,o),$(a).one(te.stop,Q)}});var ae=!0;s.$on("settings_changed",y),y(),$(U).on("mousedown touchstart",b);var re=X&&X.offsetHeight;$(document).on("keydown",A),$("body").on("dragenter dragleave dragover drop",I),$(document).on("paste",E),h&&(s.$on("ui_peer_change",C),s.$on("ui_history_focus",C),s.$on("ui_history_change",C)),s.$on("ui_peer_change",Y.resetTyping.bind(Y)),s.$on("ui_peer_draft",function(t,n){n=n||{};var i=s.draftMessage.isBroadcast;Y.setPlaceholder(e(i?"im_broadcast_field_placeholder_raw":"im_message_field_placeholder_raw")),n.customSelection?(Y.setFocusedValue(n.customSelection),S()):(X&&(Y.setValue(s.draftMessage.text||""),S()),(h||n&&n.focus)&&Y.focus()),onContentLoaded(function(){Y.checkAutocomplete(!0)}),G&&Config.Mobile&&G.hide()}),s.$on("ui_peer_reply",function(){onContentLoaded(function(){s.$emit("ui_editor_resize"),h&&Y.focus()})}),s.$on("mentions_update",function(){Y.onMentionsUpdated()}),s.$on("ui_message_before_send",function(){M()}),s.$on("ui_message_send",function(){h&&C()}),s.$on("ui_message_blur",function(){Y.blur()}),s.$on("$destroy",function(){$(document).off("paste",E),$(document).off("keydown",A),$("body").off("dragenter dragleave dragover drop",I),$(U).off("mousedown touchstart"),L.off("change")}),h&&C()}return{link:g,templateUrl:templateUrl("send_form"),scope:{draftMessage:"=",replyKeyboard:"=",mentions:"=",commands:"="}}}]).directive("myLoadThumb",["MtpApiFileManager","FileManager",function(e,t){function n(n,i,a){var r=0,o=e.getCachedFile(n.thumb&&n.thumb.location&&!n.thumb.location.empty&&n.thumb.location);o&&i.attr("src",t.getUrl(o,"image/jpeg")),n.thumb&&n.thumb.width&&n.thumb.height&&(i.attr("width",n.thumb.width),i.attr("height",n.thumb.height));var s=n.$watchCollection("thumb.location",function(a){n.thumb&&n.thumb.width&&n.thumb.height&&(i.attr("width",n.thumb.width),i.attr("height",n.thumb.height),n.$emit("ui_height"));var o=++r;if(!a||a.empty)return i.attr("src",n.thumb&&n.thumb.placeholder||"img/blank.gif"),void l();var s=e.getCachedFile(a);return s?(i.attr("src",t.getUrl(s,"image/jpeg")),void l()):(i.attr("src")||i.attr("src",n.thumb.placeholder||"img/blank.gif"),void e.downloadSmallFile(n.thumb.location).then(function(e){o==r&&(i.attr("src",t.getUrl(e,"image/jpeg")),l())},function(e){console.log("Download image failed",e,n.thumb.location,i[0]),o==r&&(i.attr("src",n.thumb.placeholder||"img/blank.gif"),l())}))}),l=a.watch?angular.noop:function(){setTimeout(function(){n.$destroy(),s()},0)}}return{link:n,scope:{thumb:"="}}}]).directive("myLoadFullPhoto",["MtpApiFileManager","FileManager","_",function(e,t,n){function i(i,a,r){var o=$("img",a)[0],s=$(".img_fullsize_with_progress_wrap",a).add(".img_fullsize_progress_wrap",a).add($(o)),l=function(){s.css({width:i.fullPhoto.width,height:i.fullPhoto.height}),i.$emit("ui_height",!0)},c=0;i.$watchCollection("fullPhoto.location",function(){var a=e.getCachedFile(i.thumbLocation),r=++c;if(a?(o.src=t.getUrl(a,"image/jpeg"),l()):o.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",i.fullPhoto.location){var s;if(i.fullPhoto.size){var d={_:"inputFileLocation",volume_id:i.fullPhoto.location.volume_id,local_id:i.fullPhoto.location.local_id,secret:i.fullPhoto.location.secret};s=e.downloadFile(i.fullPhoto.location.dc_id,d,i.fullPhoto.size)}else s=e.downloadSmallFile(i.fullPhoto.location);i.progress={enabled:!0,percent:0},s.then(function(e){r==c&&(i.progress.enabled=!1,o.src=t.getUrl(e,"image/jpeg"),l())},function(e){console.log("Download image failed",e,i.fullPhoto.location),i.progress.enabled=!1,e&&"FS_BROWSER_UNSUPPORTED"==e.type?i.error={html:n("error_browser_no_local_file_system_image_md",{"moz-link":'{1}',"chrome-link":'{1}',"telegram-link":'{1}'})}:i.error={text:n("error_image_download_failed"),error:e}},function(e){i.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))})}}),l()}return{link:i,transclude:!0,templateUrl:templateUrl("full_photo"),scope:{fullPhoto:"=",thumbLocation:"="}}}]).directive("myLoadVideo",["$sce","AppDocsManager","ErrorService","_",function(e,t,n,i){function a(e,a,r){var o=t.downloadDoc(e.video.id);o.then(function(){e.$emit("ui_height"),onContentLoaded(function(){var e=$("video",a)[0];if(e){var t=!1,i=function(e){t||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(t=!0,n.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};e.addEventListener("error",i,!0),$(e).on("$destroy",function(){t=!0,e.removeEventListener("error",i)})}})},function(t){console.log("Download video failed",t,e.video),t&&"FS_BROWSER_UNSUPPORTED"==t.type?e.error={html:i("error_browser_no_local_file_system_video_md",{"moz-link":'{1}',"chrome-link":'{1}',"telegram-link":'{1}'})}:e.error={text:i("error_video_download_failed"),error:t}}),e.$emit("ui_height"),e.$on("$destroy",function(){o.cancel()})}return{link:a,transclude:!0,templateUrl:templateUrl("full_video"),scope:{video:"="}}}]).directive("myLoadGif",["AppDocsManager","$timeout",function(e,t){function n(e,t){return r!==e&&(r&&(r.pause(),r.currentTime=0,o.isActive=!1),r=e,void(o=t))}function i(e,t){var i=$("video",t)[0];if(i){if(e.isActive){n(i,e);var a=i.play();a&&a.then&&a.then(function(){e.needClick=!1},function(){e.needClick=!0})}else i.pause(),i.currentTime=0;return i}return!1}function a(n,a,r){var o=$(".img_gif_image_wrap",a);o.css({width:n.document.thumb.width,height:n.document.thumb.height});var s=!1,l=!1;n.isActive=!1,n.toggle=function(r){if(r&&checkClick(r,!0))return e.saveDocFile(n.document.id),!1;if(n.document.url){if(n.needClick&&i(n,a))return;return n.isActive=!n.isActive,void onContentLoaded(function(){n.$emit("ui_height"),i(n,a)})}return s?(s.cancel(),void(s=!1)):(l=!1,s=e.downloadDoc(n.document.id),void s.then(function(){t(function(){l||(n.isActive=!0);var e=i(n,a);e&&$(e).on("ended",function(){n.isActive&&n.toggle()})},200)}))},n.$on("ui_history_change",function(){n.isActive&&n.toggle(),l=!0}),n.$on("$destroy",function(){s&&(s.cancel(),s=!1)})}var r=!1,o=!1;return{link:a,templateUrl:templateUrl("full_gif"),scope:{document:"="}}}]).directive("myLoadRound",["AppMessagesManager","AppDocsManager","$timeout",function(e,t,n){function i(e,t){return s!==e&&(s&&(s.pause(),s.currentTime=0,l.isActive=!1),s=e,void(l=t))}function a(t){t.message&&!t.message.pFlags.out&&t.message.pFlags.media_unread&&e.readMessages([t.message.mid])}function r(e,t){var n=$("video",t)[0];if(n){if(e.isActive){i(n,e);var r=n.play();r&&r.then?r.then(function(){e.needClick=!1,a(e)},function(){e.needClick=!0}):a(e)}else n.pause(),n.currentTime=0;return n}return!1}function o(i,a,o){var s=$(".img_round_image_wrap",a);s.css({width:i.document.thumb.width,height:i.document.thumb.height});var l=!1,c=!1;i.isActive=!1,i.$parent.messageId&&(i.message=e.wrapForHistory(i.$parent.messageId)),i.toggle=function(e){if(e&&checkClick(e,!0))return t.saveDocFile(i.document.id),!1;if(i.document.url){if(i.needClick&&r(i,a))return;return i.isActive=!i.isActive,void onContentLoaded(function(){i.$emit("ui_height"),r(i,a)})}return l?(l.cancel(),void(l=!1)):(c=!1,l=t.downloadDoc(i.document.id),void l.then(function(){n(function(){c||(i.isActive=!0);var e=r(i,a);e&&$(e).on("ended",function(){i.isActive&&i.toggle()})},200)}))},i.$on("ui_history_change",function(){i.isActive&&i.toggle(),c=!0}),i.$on("$destroy",function(){l&&(l.cancel(),l=!1)})}var s=!1,l=!1;return{link:o,templateUrl:templateUrl("full_round"),scope:{document:"="}}}]).directive("myLoadSticker",["_","MtpApiFileManager","FileManager","AppStickersManager",function(e,t,n,i){function a(a,o,s){var l=$("").addClass(s.imgClass),c=!1;l.attr("alt","["+(a.document.stickerEmojiRaw||"")+" "+e("conversation_media_sticker")+"]");var d=s.dim&&a.$parent.$eval(s.dim)||a.document.thumb;s.open&&a.document.stickerSetInput&&o.addClass("clickable").on("click",function(){i.openStickerset(a.document.stickerSetInput)});var u=function(e){l.attr("src",n.getUrl(e)),c||(c=!0,l.appendTo(o))};l.css({width:d.width,height:d.height}),o.css({width:d.width,height:d.height});var p=!1;a.document.thumb.location&&(p=angular.copy(a.document.thumb.location), -p.sticker=!0);var f={_:"inputDocumentFileLocation",id:a.document.id,access_hash:a.document.access_hash,dc_id:a.document.dc_id,file_name:a.document.file_name,version:a.document.version,sticker:!0},m=t.getCachedFile(f),h=!1;if(m?h=!0:m=t.getCachedFile(p),m){if(u(m),h)return}else c=!0,l.attr("src",r).appendTo(o);s.thumb&&p?t.downloadSmallFile(p).then(function(e){u(e)},function(e){console.log("Download sticker failed",e,f)}):t.downloadFile(a.document.dc_id,f,a.document.size).then(function(e){u(e)},function(e){console.log("Download sticker failed",e,f)})}var r="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";return{link:a,scope:{document:"="}}}]).directive("myLoadDocument",["MtpApiFileManager","AppDocsManager","FileManager",function(e,t,n){function i(e,t){for(;e&&!$(e).hasClass("modal-dialog");)e=e.parentNode;e&&$(e).width(t+(Config.Mobile?0:32))}function a(a,r,o){var s=$(".document_fullsize_with_progress_wrap",r),l=$(".document_fullsize_wrap",r),c=$(".document_fullsize_img",r),d=$(window).width()-(Config.Mobile?20:32),u=$(window).height()-150;d>800&&(d-=208),a.imageWidth=d,a.imageHeight=u;var p=a.document.thumb;if(p&&"photoSizeEmpty"!=p._){var f=calcImageInBox(p.width,p.height,d,u);a.imageWidth=f.w,a.imageHeight=f.h;var m=e.getCachedFile(p.location);m&&(a.thumbSrc=n.getUrl(m,"image/jpeg"))}a.frameWidth=Math.max(a.imageWidth,Math.min(600,d)),a.frameHeight=a.imageHeight,onContentLoaded(function(){a.$emit("ui_height")}),i(r[0],a.frameWidth);var h,g,_;t.downloadDoc(a.document.id).then(function(e){var t=n.getUrl(e,a.document.mime_type),i=new Image,r=100,o=function(e){if(i.height&&i.width||!--r){g=i.width,_=i.height,clearInterval(h);var n=calcImageInBox(i.width,i.height,d,u,!0),o={w:g,h:_};n.w>=o.w&&n.h>=o.h&&(o.w*=4,o.h*=4);var p=!0;a.toggleZoom=function(){p=!p;var e=(p?o:n).w,t=(p?o:n).h;c.css({width:e,height:t,marginTop:a.frameHeight>t?Math.floor((a.frameHeight-t)/2):0}),l.toggleClass("document_fullsize_zoomed",p)},a.toggleZoom(!1),c.attr("src",t),s.hide(),l.css({width:a.frameWidth,height:a.frameHeight}).show()}};h=setInterval(o,20),i.onload=o,i.src=t,setZeroTimeout(o)})}return{link:a,templateUrl:templateUrl("full_document"),scope:{document:"=myLoadDocument"}}}]).directive("myGeoPointMap",["ExternalResourcesManager",function(e){function t(t,n,i){var a,r=n.attr("width")||200,o=n.attr("height")||200,s=r>200?15:13,l=!1;if(l){var c=Config.ExtCredentials.gmaps.api_key,d=!0;a="https://maps.googleapis.com/maps/api/staticmap?sensor=false¢er="+t.point.lat+","+t.point["long"]+"&zoom="+s+"&size="+r+"x"+o+"&scale=2&markers=color:red|size:big|"+t.point.lat+","+t.point["long"],d&&(a+="&key="+c)}else a="https://static-maps.yandex.ru/1.x/?l=map&ll="+t.point["long"]+","+t.point.lat+"&z="+s+"&size="+r+","+o+"&scale=1&pt="+t.point["long"]+","+t.point.lat+",pm2rdm&lang=en_US";n.attr("src","img/blank.gif"),e.downloadByURL(a).then(function(e){n.attr("src",e.valueOf())})}return{link:t,scope:{point:"=myGeoPointMap"}}}]).directive("myLoadingDots",["$interval",function(e){function t(e,t,i){t.html(n(t[0])?'
    ':"...")}function n(e){if(void 0===i&&(i=void 0!==e.style.animationName,i===!1)){var t,n="Webkit Moz O ms Khtml".split(" ");for(t=0;t=i.scrollHeight-i.clientHeight-300&&(a=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){a=!1,$(t).nanoScroller()}))})}return{link:e,scope:!0}}).directive("myModalPosition",["$window","$timeout",function(e,t){function n(n,i,a){var r=function(){if(!Config.Mobile||!$(i[0].parentNode.parentNode.parentNode).hasClass("mobile_modal")){var e=i[0].parentNode.offsetHeight,n=i[0].parentNode.parentNode.parentNode,r=$(".media_modal_bottom_panel_wrap",n)[0],o=n.offsetHeight-(r&&r.offsetHeight||0);e1||1==n&&!r)&&(e=t("group_modal_participants",{total:e,online:u(n)}))}n||_||(e=""),o.html(e)};n.$watch(s.myChatStatus,function(e){m=e,y()}),e.$on("chat_full_update",function(e,t){m==t&&y()}),e.$on("user_update",function(e,t){v[t]&&b()}),c[h]=b,n.$on("$destroy",function(){delete c[h]})}var l=0,c={},d=t.pluralize("group_modal_pluralize_participants"),u=t.pluralize("group_modal_pluralize_online_participants"),p=t.pluralize("group_modal_pluralize_subscribers"),f=0;return n.getUserID().then(function(e){f=e}),setInterval(o,9e4),{link:s}}]).directive("myPeerMuted",["$rootScope","NotificationsManager",function(e,t){function n(t,n,a){var r=t.$eval(a.myPeerMuted),o=a.mutedClass||"muted",s=e.$on("notify_settings",function(e,t){t.peerID==r&&i(r,n,o)});i(r,n,o),t.$on("$destroy",s)}function i(e,n,i){t.getPeerMuted(e).then(function(e){n.toggleClass(i,e)})}return{link:n}}]).directive("myPeerLink",["_","$rootScope","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesIDsManager",function(e,t,n,i,a,r){function o(o,s,l){var c,d=l.userOverride&&o.$eval(l.userOverride)||{},u=l["short"]&&o.$eval(l["short"]),p=l.username&&o.$eval(l.username),f=l.forDialog&&o.$eval(l.forDialog),m=function(){if(s[0].className.indexOf("user_color_")!=-1&&(s[0].className=s[0].className.replace(/user_color_\d+/g,"")),c>0){var t=a.getUser(c);if(f&&t.pFlags.self)s.text(e("user_name_saved_msgs_raw"));else{var n=p?"@":"",r=p?"username":u?"rFirstName":"rFullName";s.html(n+(d[r]||t[r]||"").valueOf()+(l.verified&&t.pFlags&&t.pFlags.verified?' ':"")),l.color&&o.$eval(l.color)&&s.addClass("user_color_"+t.num)}}else{var m=i.getChat(-c);s.html((m.rTitle||"").valueOf()+(l.verified&&m.pFlags&&m.pFlags.verified?' ':""))}};"A"!=s[0].tagName||hasOnclick(s[0])||s.on("click",function(){if(c>0)a.openUser(c,d);else{var e=-c,s=l.postId&&o.$eval(l.postId),u=l.savedFrom&&o.$eval(l.savedFrom);if(s)t.$broadcast("history_focus",{peerString:i.getChatString(e),messageID:r.getFullMessageID(parseInt(s),e)});else if(u){var p=u.split("_");t.$broadcast("history_focus",{peerString:n.getPeerString(p[0]),messageID:p[1]})}else i.openChat(e)}}),l.peerWatch?o.$watch(l.myPeerLink,function(e){c=e,m()}):(c=o.$eval(l.myPeerLink),m()),l.noWatch||(o.$on("user_update",function(e,t){c==t&&m()}),o.$on("chat_update",function(e,t){c==-t&&m()}))}return{link:o}}]).directive("myPeerPhotolink",["AppPeersManager","AppUsersManager","AppChatsManager","MtpApiFileManager","FileManager",function(e,t,n,i,a){function r(r,o,s){o.addClass("peer_photo_init");var l,c,d,u=$(''),p=$(''),f=0,m=!1,h=s.forDialog&&r.$eval(s.forDialog),g=function(t){if(l==t)return!1;l=t,c=e.getPeer(l);var n="user_bgcolor_"+(c.num||1);return n!=m&&(m&&p.removeClass(m),p.addClass(n),m=n),_(),!0},_=function(){var e=++f;if(d=c.photo&&angular.copy(c.photo.photo_small),h&&c.pFlags&&c.pFlags.self)return p.remove(),void u.prependTo(o).attr("src","img/placeholders/Fave.png");var t=void 0!==d;if(t){var n=i.getCachedFile(c.photo.photo_small);if(n)return p.remove(),void u.prependTo(o).attr("src",a.getUrl(n,"image/jpeg"))}p.attr("data-content",c.initials||"").prependTo(o),u.remove(),t&&i.downloadSmallFile(c.photo.photo_small).then(function(t){e==f&&(p.remove(),u.prependTo(o).attr("src",a.getUrl(t,"image/jpeg")))},function(e){console.log("Download image failed",e,c.photo.photo_small,o[0])})};"A"!=o[0].tagName||s.noOpen||o.on("click",function(e){l>0?t.openUser(l,s.userOverride&&r.$eval(s.userOverride)):n.openChat(-l)}),r.$watch(s.myPeerPhotolink,g),g(r.$eval(s.myPeerPhotolink)),s.watch&&(r.$on("user_update",function(t,n){l==n&&(c=e.getPeer(l),angular.equals(c.photo&&c.photo.photo_small,d)&&d||_())}),r.$on("chat_update",function(e,t){l==-t&&(angular.equals(c.photo&&c.photo.photo_small,d)||_())}))}return{link:r}}]).directive("myOgvPlayer",["$compile",function(e){return{link:function(t,n,i){var a,r=t.audio;a="audio/ogg"==r.mime_type&&OGVCompat.hasWebAudio()&&OGVCompat.supported("OGVPlayer")?new OGVPlayer({debug:!1,worker:!1}):document.createElement("audio"),$(a).attr("media-player",i.myOgvPlayer),$(a).attr("src","{{::"+i.src+"}}"),e(a)(t),$(n).append(a)}}}]).directive("myAudioPlayer",["$timeout","$q","Storage","AppDocsManager","AppMessagesManager","ErrorService",function(e,t,n,i,a,r){function o(e){return e!==l&&(l&&!function(e){setZeroTimeout(function(){e.mediaPlayer.player.pause()})}(l),void(l=e))}function s(e,t,s){i.updateDocDownloaded(e.audio.id),e.volume=c,e.mediaPlayer={},e.$parent.messageId&&(e.message=a.wrapForHistory(e.$parent.messageId)),e.download=function(){i.saveDocFile(e.audio.id)},e.duration=function(){return e.mediaPlayer.player&&e.mediaPlayer.player.duration>0&&e.mediaPlayer.player.duration<1/0?e.mediaPlayer.player.duration:e.audio&&e.audio.duration||0},e.togglePlay=function(){e.audio.url?(o(e),setZeroTimeout(function(){e.mediaPlayer.player.playPause()})):e.audio.progress&&e.audio.progress.enabled||i.downloadDoc(e.audio.id).then(function(){onContentLoaded(function(){var n=$("audio, ogvjs",t)[0]||t[0];if(n){var i=!1,s=function(e){i||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(i=!0,r.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};n.addEventListener("error",s,!0),e.$on("$destroy",function(){i=!0,n.removeEventListener("error",s)})}setTimeout(function(){o(e),e.mediaPlayer.player.setVolume(c),e.mediaPlayer.player.play(),e.message&&!e.message.pFlags.out&&e.message.pFlags.media_unread&&a.readMessages([e.message.mid])},300)})})},e.seek=function(t){e.mediaPlayer&&e.mediaPlayer.player?e.mediaPlayer.player.seek(t):e.togglePlay()},e.setVolume=function(t){c=t,n.set({audio_volume:t}),e.mediaPlayer&&e.mediaPlayer.player&&e.mediaPlayer.player.setVolume(t)}}var l=!1,c=.5;n.get("audio_volume").then(function(e){e>0&&e<=1&&(c=e)});return{link:s,scope:{audio:"="},templateUrl:templateUrl("audio_player")}}]).directive("mySlider",["$window",function(e){function t(t,n,i){var a=$(".tg_slider_wrap",n),r=$(".tg_slider_track_fill",n),o=$(".tg_slider_thumb",n),s=a.width(),l=Math.ceil(o.width()),c=i.sliderModel,d=i.sliderOnchange,u=0,p=1,f=!1,m=!1;i.sliderMin&&t.$watch(i.sliderMin,function(e){u=e||0}),i.sliderMax&&t.$watch(i.sliderMax,function(e){p=e||1});var h=function(e){e=e.originalEvent||e;var n=(e.touches&&e.touches[0]?e.touches[0].pageX:e.pageX)-m;return n=Math.min(s,Math.max(0,n)),f=u+n/s*(p-u),d?t.$eval(d,{value:f}):t.$eval(c+"="+f),o.css("left",Math.max(0,n-l)),r.css("width",n),cancelEvent(e)},g=function(){$(e).off("mousemove touchmove",h),$(e).off("mouseup touchend touchcancel touchleave",g)};t.$watch(c,function(e){if(e!=f&&void 0!==e){var t=Math.max(0,(e-u)/(p-u));if(s){var n=Math.ceil(s*t);n=Math.min(s,Math.max(0,n)),o.css("left",Math.max(0,n-l)),r.css("width",n)}else o.css("left",100*t+"%"),r.css("width",100*t+"%");f=!1}}),n.on("dragstart selectstart",cancelEvent),n.on("mousedown touchstart",function(i){if(!s&&(s=a.width(),!s))return console.error("empty width"),cancelEvent(i);g(),i=i.originalEvent||i;var _;if(i.touches&&i.touches[0])m=n.position().left,_=i.touches[0].pageX-m;else if(void 0!==i.offsetX)_=i.offsetX,m=i.pageX-_;else{if(void 0===i.layerX)return cancelEvent(i);_=i.layerX,m=i.pageX-_}return f=u+_/s*(p-u),d?t.$eval(d,{value:f}):t.$eval(c+"="+f),o.css("left",Math.max(0,_-l)),r.css("width",_),$(e).on("mousemove touchmove",h),$(e).on("mouseup touchend touchcancel touchleave",g),cancelEvent(i)})}return{link:t,templateUrl:templateUrl("slider")}}]).directive("myLabeledInput",function(){function e(e,t,n){var i=$(".md-input:first",t),a=($(".md-input-label:first",t),i[0]&&"SPAN"==i[0].tagName),r=!1,o=function(){a?t.toggleClass("md-input-has-value",i.html().length>0):t.toggleClass("md-input-has-value",r||i.val().length>0)};o(),onContentLoaded(function(){o(),setZeroTimeout(function(){t.addClass("md-input-animated")})}),a||i.on("blur focus change",function(e){r="focus"==e.type,t.toggleClass("md-input-focused",r),o()}),e.$on("value_updated",function(){setZeroTimeout(function(){o()})})}return{link:e}}).directive("myCopyField",["toaster","_",function(e,t){function n(e,t,n){t.attr("readonly","true"),t[0].readonly=!0,t.on("click",function(){this.select()}),e.selectEvent&&e.$on(e.selectEvent,function(){setTimeout(function(){t[0].focus(),t[0].select()},100)})}return{scope:{selectEvent:"=myCopyField"},link:n}}]).directive("myCopyLink",["$compile","$timeout","_",function(e,t,n){function i(i,a,r){a.attr("tooltip","{{ttLabel}}"),a.removeAttr("my-copy-link"),a.removeAttr("data-my-copy-link");var o=!1,s=function(){t.cancel(o),o=!1,i.ttLabel=n("conversations_modal_share_url_copy_raw")};s(),e(a)(i);var l=new Clipboard(a[0]);l.on("success",function(e){t.cancel(o),i.$apply(function(){i.ttLabel=n("clipboard_copied_raw")}),o=t(s,2e3)}),l.on("error",function(e){t.cancel(o);var a=Config.Navigator.osX?"clipboard_press_cmd_c":"clipboard_press_ctrl_c";i.$apply(function(){i.ttLabel=n(a+"_raw")}),o=t(s,5e3)}),i.$on("$destroy",function(){l.destroy()})}return{restrict:"A",replace:!1,terminal:!0,priority:1e3,link:i}}]).directive("mySubmitOnEnter",function(){function e(e,t,n){t.on("keydown",function(e){if(13==e.keyCode)return t.trigger("submit"),cancelEvent(e)})}return{link:e}}).directive("myArcProgress",function(){function e(e,t,n){t=Math.max(0,Math.min(t,1));var i=.2;t=i+(1-i)*t,e.css({strokeDasharray:t*n+", "+(1-t)*n})}var t=' ',n=0;return{scope:{progress:"=myArcProgress"},link:function(i,a,r){var o=!r.myArcProgress,s=r.width||a.width()||40,l=r.stroke||s/2*.14,c=s/2,d=c-l/2,u=++n;a.html(t.replace("%id%",u)).addClass("progress-arc-wrap").addClass(o?"progress-arc-intermediate":"progress-arc-percent").css({width:s,height:s}),$(a[0].firstChild).attr("width",s).attr("height",s);var p=$(".progress-arc-bar",a);p.attr("cx",c).attr("cy",c).attr("r",d).css({strokeWidth:l});var f=2*Math.PI*d;o?(e(p,.3,f),p.css({stroke:"url(#grad_intermediate"+u+")"})):i.$watch("progress",function(t){e(p,t/100,f)})}}}).directive("myScrollToOn",function(){return{link:function(e,t,n){var i=n.myScrollToOn,a=function(){onContentLoaded(function(){$("html, body").animate({scrollTop:t.offset().top},200)})};"$init"==i?a():e.$on(i,a)}}}).directive("myComposerDropdown",function(){return{templateUrl:templateUrl("composer_dropdown")}}).directive("myEmojiSuggestions",function(){return{link:function(e,t,n){e.$watchCollection("emojiCodes",function(e){var n,i,a,r,o,s,l,c,d=[],u=Config.Mobile?26:20,p=Math.min(5,e.length);for(s=0;s:'+encodeEntities(i[1][0])+":"));t.html(d.join("")),console.log(dT(),"emoji done")})}}}).directive("myInlineResults",["AppPhotosManager","ExternalResourcesManager","AppDocsManager",function(e,t,n){return{templateUrl:templateUrl("inline_results"),scope:{botResults:"=myInlineResults"},link:function(i,a,r){i.$watch("botResults.results",function(i){angular.forEach(i,function(i){i.thumb_url&&!i.thumbUrl&&t.downloadByURL(i.thumb_url).then(function(e){i.thumbUrl=e}),"gif"==i.type&&i.content_url&&!i.contentUrl&&t.downloadByURL(i.content_url).then(function(e){i.contentUrl=e}),"gif"!=i.type&&"sticker"!=i.type||!i.document||n.downloadDoc(i.document.id);var a;if("photo"==i.type&&i.photo){a=e.choosePhotoSize(i.photo,i.thumbW,i.thumbH);var r=calcImageInBox(a.w,a.h,i.thumbW,i.thumbH);i.thumb={width:r.w,height:r.h,location:a.location,size:a.size}}"game"==i.type&&i.photo&&(a=e.choosePhotoSize(i.photo,100,100),i.thumb={location:a.location,size:a.size})})})}}}]).directive("myGameCommunication",["$window",function(e){function t(t,n,i){onContentLoaded(function(){var i=$("iframe, webview",n)[0],a=i.contentWindow,r=function(e){if(e=e.originalEvent||e,!e.source||e.source==a){var n=e.data;try{var i=JSON.parse(n)}catch(r){return}i&&i.eventType&&t.$emit("game_frame_event",i)}};$(e).on("message",r),t.$on("$destroy",function(){$(e).off("message",r)})})}return{link:t}}]).directive("myEmojiImage",["RichTextProcessor",function(e){function t(t,n,i){var a=i.myEmojiImage,r=e.wrapRichText(a,{noLinks:!0,noLinebreaks:!0});n.html(r.valueOf())}return{link:t}}]).directive("myExternalEmbed",function(){function e(e,s,l){var c=e.$eval(l.myExternalEmbed);if(c){var d,u="",p=!1;switch(c[0]){case"youtube":d=c[1],u='
    <'+o+' type="text/html" frameborder="0" src="https://www.youtube.com/embed/'+d+'?autoplay=0&controls=2" webkitallowfullscreen mozallowfullscreen allowfullscreen>
    ";break;case"vimeo":d=c[1],u='
    <'+o+' type="text/html" frameborder="0" src="https://player.vimeo.com/video/'+d+'?title=0&byline=0&portrait=0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
    ";break;case"instagram":var f=c[1];u='
    <'+o+' type="text/html" frameborder="0" src="https://instagram.com/p/'+f+'/embed/">
    ";break;case"vine":var m=c[1];u='
    <'+o+' type="text/html" frameborder="0" src="https://vine.co/v/'+m+'/embed/simple">
    ";break;case"soundcloud":var h=c[1];u='
    <'+o+' type="text/html" frameborder="0" src="https://w.soundcloud.com/player/?url='+encodeEntities(encodeURIComponent(h))+'&auto_play=false&hide_related=true&show_comments=false&show_user=true&show_reposts=false&visual=true">
    ";break;case"spotify":var g=c[1];u='
    <'+o+' type="text/html" frameborder="0" allowtransparency="true" src="https://embed.spotify.com/?uri=spotify:'+encodeEntities(encodeURIComponent(g))+'">
    ";break;case"twitter":u='
    ',p=function(){t?window.twttr&&twttr.widgets.load(s[0]):(t=!0,$("