Compare commits

..

652 Commits
214 ... 628

Author SHA1 Message Date
paweldomas
a2b43843b7 Updates app.bundle.js 2015-08-24 12:00:40 +02:00
paweldomas
2f03a0a7fe Fixes broken last-N 2015-08-24 11:53:13 +02:00
paweldomas
4c2f0d3600 Removed duplicated code for adding video thumbnail's hover handler. 2015-08-24 11:53:12 +02:00
paweldomas
a8a0945d73 Moves method for selecting thumbnail's video element from videolayout to SmallVideo. Fixes issue with muted audio in IE after switching between thumbnails. 2015-08-24 11:53:11 +02:00
paweldomas
a7048fba06 Implements HTTP POST query for fetching app configuration. 2015-08-24 11:53:10 +02:00
Boris Grozev
7b35dd89bb Updates the external api docs. 2015-08-20 15:00:56 -05:00
Boris Grozev
3561204bb5 Allows to overwrite config and interfaceConfig options through the
external API.
2015-08-20 14:57:05 -05:00
ibauersachs
ee50d07dc3 Commit from translate.jitsi.org by user ibauersachs.: 172 of 173 strings translated (0 fuzzy). 2015-08-19 19:58:21 +00:00
ibauersachs
9ec4bc91fc Commit from translate.jitsi.org by user ibauersachs.: 173 of 173 strings translated (0 fuzzy). 2015-08-19 19:58:06 +00:00
Ingo Bauersachs
88071e5258 Add Slovenian (sl) 2015-08-19 21:54:00 +02:00
paweldomas
e79d476d89 Updates app.bundle.js 2015-08-19 18:27:09 +02:00
paweldomas
0fe4999beb Use fadeTo instead of fadeIn/fadeOut to avoid having display: none on large video which causes issues when Temasys plugin is used. 2015-08-19 18:23:18 +02:00
paweldomas
ae96b9f365 Fixes issue in IE where click events on local video thumbnail are captured by local audio object created by Temasys plugin on stream attach. 2015-08-19 18:23:08 +02:00
paweldomas
922d0bd512 New adapter.js for Temasys plugin. 2015-08-19 18:22:07 +02:00
paweldomas
9a7bc4ebab Fixes issue with returning from shared document view. Calls show() before fadeOut() on large video to avoid situation when we end up with black screen and are unable to select new video. Updates app.bundle.js. 2015-08-19 10:55:35 +02:00
damencho
2081757ba1 Enables stats in FF. 2015-08-18 16:42:47 -05:00
jitsi-pootle
e9c9fc5e69 New files added from translate.jitsi.org based on templates 2015-08-18 12:50:42 +00:00
paweldomas
562761196d Updates app.bundle.js 2015-08-18 13:27:29 +02:00
paweldomas
420514b921 Temasys adapter.js ver 0.12.0 with fix for setInterval included 2015-08-18 13:22:17 +02:00
paweldomas
eb63b24a9a Fixes fadeIn/fadeOut large video transitions in Safari. Enables animation on video resize when switching between camera and screen video. 2015-08-18 13:19:54 +02:00
paweldomas
c8bbded994 Removes accidentally committed debug message. 2015-08-18 13:19:44 +02:00
damencho
2a2702c13a Adds params for enabling fake devices on firefox. 2015-08-17 17:05:03 -05:00
Boris Grozev
5fc868ee96 Updates app.bundle.js. 2015-08-17 16:17:47 -05:00
Boris Grozev
502eab7278 Only update the "start muted" settings on precense from a moderator. 2015-08-17 16:17:15 -05:00
Boris Grozev
332aafbe20 Documents some of the XMPP events. Renames some of them. 2015-08-17 16:17:03 -05:00
Boris Grozev
d5258e6197 Remove a double variable declaration. 2015-08-17 16:17:01 -05:00
Boris Grozev
9cc9e6132c Add RTCBrowserType.isAndroid(). 2015-08-17 16:16:34 -05:00
hristoterezov
f60c1d9751 Removes the minimum width and height of the external API iframe in "film strip only" mode. 2015-08-17 13:46:26 -05:00
Boris Grozev
5d32318d93 Updates app.bundle.js. 2015-08-14 10:49:13 -05:00
Boris Grozev
fee8482bae Updates sdp-transform to 1.4.1. 2015-08-14 10:48:21 -05:00
paweldomas
f2b5cdbfb8 Updates app.bundle.js. 2015-08-14 17:06:50 +02:00
paweldomas
60afe2d202 Fixes issue with display name event not being fired on Safari/IE 2015-08-14 17:04:30 +02:00
paweldomas
18f03e296b Fixes broken input fields in Safari. 2015-08-14 17:03:58 +02:00
paweldomas
5cd9db1b6a Missing semicolon... 2015-08-14 17:02:19 +02:00
bgrozev
f83404a99e Merge pull request #341 from pstros/fix-comment
Change the comment to fix npm install
2015-08-13 16:00:56 -05:00
Devin Wilson
7c1ba9242b Change the comment to fix npm install 2015-08-13 08:31:50 -06:00
ibauersachs
bfcc587047 Commit from translate.jitsi.org by user ibauersachs.: 172 of 172 strings translated (0 fuzzy). 2015-08-13 07:35:17 +00:00
Boris Grozev
e90d8f5531 Updates app.bundle.js. 2015-08-12 21:54:15 +02:00
Boris Grozev
59033aab28 Adds what will hopefully be treated as a comment by all npm versions to package.json. 2015-08-12 21:52:49 +02:00
Boris Grozev
7f1eb617c3 Uses npm packeges for socket.io and jsSHA. 2015-08-12 21:50:42 +02:00
hristoterezov
fd7e8c9162 Merge pull request #338 from gerges/issue/toolbar-refactor
Refactors toolbar
2015-08-12 13:55:50 -05:00
Issac Gerges
51e886142b Ensure hangup button selector is specific enough to apply red color and custom size 2015-08-12 13:36:24 -05:00
Issac Gerges
dcc206b2b4 Update non-container toolbar items to be set to inline-block when shown 2015-08-12 13:06:55 -05:00
Issac Gerges
da75e17ff5 Merge remote-tracking branch 'origin/master' into issue/toolbar-refactor 2015-08-12 13:05:20 -05:00
paweldomas
8fea9b76ee Updates app.bundle.js 2015-08-12 14:23:43 +02:00
paweldomas
cb024be2d6 Fixes locking at WaitForPluginReady with Temasys plugin install detection. 2015-08-12 14:21:08 +02:00
paweldomas
4c4e99c51a Updates Temasys adapter.screenshare.js. Browser restart is no longer required after plugin install. 2015-08-12 14:20:51 +02:00
paweldomas
4b8bc398dd Fixes issue with black video when new stream element is inserted after the old one. 2015-08-12 14:20:44 +02:00
paweldomas
466e7dcc91 Fixes crash in LocalSSRCReplacement when null localDescription is passed. 2015-08-12 14:20:37 +02:00
Issac Gerges
de30ce0f5c Merge remote-tracking branch 'origin/master' into issue/toolbar-refactor 2015-08-11 13:30:08 -05:00
Issac Gerges
fc6f5717cb Refactor toolbar to add separators via css and remove unneeded containers 2015-08-11 13:24:53 -05:00
paweldomas
b680ecd2ff Renames getLargeVideoJid to getLargeVideoResource and updates app.bundle.js. 2015-08-11 13:12:55 +02:00
Boris Grozev
2bea2eec74 Updates app.bundle.js. 2015-08-10 16:54:51 -05:00
Boris Grozev
f52b1380ee Continues to separate JingleSessionPC. 2015-08-10 16:38:35 -05:00
Boris Grozev
baf720c553 Starts to abstract JingleSession. 2015-08-10 15:58:50 -05:00
Boris Grozev
deaff6af5b Executes a local (git-ignored) script on "make deploy". 2015-08-10 13:25:21 -05:00
Boris Grozev
6ca1e131af Renames JingleSession to JingleSessionPC. 2015-08-10 13:22:05 -05:00
Boris Grozev
57b9aeb38c Inlines a method for clarity/simplicity. 2015-08-10 13:14:12 -05:00
Boris Grozev
cc20a4d776 Removes an unused variable. 2015-08-10 13:02:39 -05:00
Boris Grozev
fd404b8465 Supports setting interfaceConfig options via URL params. Renames config.filmStripOnly to interfaceConfig.filmStripOnly. 2015-08-10 12:59:12 -05:00
damencho
cc29df6376 Adds params for enabling rec on entering the conference. 2015-08-07 10:31:48 -05:00
paweldomas
44136e8a55 Updates app.bundle.js. 2015-08-07 12:59:43 +02:00
paweldomas
fb875423a9 Fixes SSRC=1 issue. Renames VideoSSRCHack to LocalSSRCReplacement. 2015-08-07 12:58:12 +02:00
paweldomas
ab4c29eddc Fixes video mute in Firefox. Disables VideoSSRCHack for Firefox by default. 2015-08-07 12:58:03 +02:00
paweldomas
95e964a089 Fixes bugs in VideoSSRCHack. Additional log messages. 2015-08-07 12:57:56 +02:00
paweldomas
c288aa6e84 Fixes issue with toggling video mute in FF caused by the fact that it has no 'onended' callback handling implemented. 2015-08-07 12:57:48 +02:00
paweldomas
e5d03d1d11 Fixes GUM failure with the latest FF nightly plus cleanup. 2015-08-07 12:57:43 +02:00
hristoterezov
59147f059d Adds a parameter to API constructor that enables film strip only mode. 2015-08-06 19:01:21 -05:00
hristoterezov
7793d65a99 Renames config.minimized to config.filmStripOnly . 2015-08-06 18:59:51 -05:00
hristoterezov
b77791f4b2 Implements minimized mode - only the thumbnails are visible. 2015-08-06 18:34:40 -05:00
damencho
4092d67853 Updates use of recording states, add some information texts and notifications. 2015-08-05 22:18:45 -05:00
paweldomas
2ea6be9b2c Updates app.bundle.js. 2015-08-05 14:12:10 +02:00
paweldomas
74e7507a73 Re-uses SSRC of the first video stream created for any streams created in future. Does video mute and switching to the screen stream without 'source-add'/'source-remove' signaling. Moves video type signaling from Jingle to MUC presence. 2015-08-05 14:10:08 +02:00
bgrozev
9a31fa3d63 Fixes a bug reported by Pawel Domas. 2015-08-04 09:26:16 -05:00
Дамян Минков
fd44cfa7a0 Typo. 2015-08-03 17:18:32 -05:00
yanas
ab570d63fa Fixes this reference. 2015-08-03 14:08:42 -05:00
Boris Grozev
b4983b2566 Merge branch 'rename-mute-to-toggle' 2015-08-03 11:46:55 -05:00
bgrozev
fdb470d22f Merge pull request #330 from jitsi/remove-rtcp-mux-from-config
Removes the useBundle and useRtcpMux options from config.js. These are
2015-08-03 11:32:43 -05:00
bgrozev
c163a22415 Merge pull request #331 from jitsi/enable-noice-reduction
Re-enables video noise reduction (removes a workaround for M37).
2015-08-03 11:32:38 -05:00
bgrozev
1dea41d3d4 Merge pull request #328 from jitsi/verify-full-jid-for-jingle
Verify full (and not bare) JID of the Jingle sender, since everyone i…
2015-08-03 11:32:32 -05:00
yanas
9d321df49e Adds javadoc for previous commit. 2015-08-03 11:21:56 -05:00
yanas
d92d8e8299 Some additional error handling. 2015-08-03 11:00:16 -05:00
bgrozev
6b48bf0d84 Merge pull request #299 from marclaporte/patch-3
Minor rewording, fixing typos, and improving grammar
2015-08-03 10:48:36 -05:00
bgrozev
de82a8e32b Merge pull request #310 from marclaporte/patch-4
fix typo
2015-08-03 10:46:49 -05:00
bgrozev
fe4661078e Update a license mention in README.md 2015-08-03 10:40:20 -05:00
bgrozev
46554f75a2 Merge pull request #313 from marclaporte/patch-6
fix typo and minor rewording
2015-08-03 10:39:27 -05:00
Boris Grozev
dbd68d2daa Updates app.bundle.js. 2015-07-31 15:26:03 -05:00
Boris Grozev
67a52e6f72 Cleanup and formatting fixes in the UI module. 2015-07-31 14:45:40 -05:00
Boris Grozev
2c790f86ad More formatting fixes. 2015-07-31 14:28:23 -05:00
Boris Grozev
fd5a739f3c Minor formatting fixes, avoid using a global variable. 2015-07-31 14:25:48 -05:00
Boris Grozev
35e46a2cfa Fix a typo. 2015-07-31 14:23:48 -05:00
Boris Grozev
24f9a1c8d1 Abstract browser type checks. 2015-07-31 14:23:36 -05:00
Boris Grozev
71229bdba9 Minor formatting fixes. 2015-07-31 14:23:27 -05:00
Boris Grozev
84a8d00234 Renames functions for the sake of clarity. 2015-07-31 14:22:42 -05:00
Boris Grozev
ee95e99f57 Cleanup: removes an unused function. 2015-07-31 14:22:32 -05:00
Boris Grozev
be6d7af377 Cleanup: fixes to style, typos and documentation. 2015-07-31 14:22:20 -05:00
paweldomas
b8548757b4 Updates app.bundle.js 2015-07-31 15:51:45 +02:00
paweldomas
df932bb89f Fixes typo in variable name(and a crash on undefined). 2015-07-31 15:50:02 +02:00
paweldomas
50e67a0658 Prevents from duplicating existing SSRCs with 'source-add' in remote description. 2015-07-31 15:49:53 +02:00
damencho
3289f6f68e Updates nginx detection during configuration. 2015-07-30 14:59:31 -05:00
damencho
a701821698 Fixes updates on distributions that are missing openjdk 8. 2015-07-30 14:36:44 -05:00
bgrozev
5588bcd167 Updates another call to setMute(). 2015-07-30 14:24:44 -05:00
bgrozev
a7058747ac Updates a call to setMute(). 2015-07-30 10:51:50 -05:00
paweldomas
5017fed28e Updates app.bundle.js. 2015-07-30 14:23:33 +02:00
paweldomas
8469a282c1 Fixes inconsistent local video muted status. 2015-07-30 14:21:32 +02:00
paweldomas
2ffe178456 Fixes issue with missing avatar for Jigasi user. Fixes issue with avatar not being displayed when user has no video. Removed duplicated logic for checking video muted status(removed from LargeVideo which exists in SmallVideo). 2015-07-30 14:21:31 +02:00
paweldomas
349f196664 "wait for remote video" loop no longer exists so no need to set 'removed' flag on video. 2015-07-30 14:21:31 +02:00
paweldomas
f2bd76ac93 Fixes issue with video thumbnail not being removed for users without camera and mic. 2015-07-30 14:21:30 +02:00
hristoterezov
baee96734c Moves LargeVideo html dependancies in LargeVideo.js 2015-07-29 14:39:09 -05:00
Boris Grozev
4cac7ac97f Re-enables video noise reduction (removes a workaround for M37). 2015-07-29 11:28:58 -05:00
Boris Grozev
46a17948d0 Renames the external API commands from "mute{Audio,Video}" to "toggle{Audio,Video}" since what they do is "toggle". 2015-07-29 11:28:37 -05:00
Boris Grozev
79ac1e800f Verify full (and not bare) JID of the Jingle sender, since everyone in the MUC has the same bare JID. 2015-07-29 11:27:12 -05:00
Boris Grozev
b0c81985d4 Removes the useBundle and useRtcpMux options from config.js. These are
now fully supported by jitsi-videobridge and all browsers which we
support (and if we need to enable them conditionally because of browser
compatibility in the future, we should do it based on run-time browser
detection.)
2015-07-29 11:26:50 -05:00
damencho
f8b7d048b0 Updates meet default installation. Removes nginx dependency and adds openjdk-8 in order to activate multiplexing inside jvb and use its jetty to serve meet. Updates will not touch current configuration which will continue using nginx. 2015-07-27 16:07:22 -05:00
paweldomas
dc19620edc Updates app.bundle 2015-07-23 11:25:39 +02:00
paweldomas
4aa6fbc4b9 Switches to the last visible video correctly when current speaker leaves the conference. 2015-07-23 11:24:13 +02:00
hristoterezov
03902de511 Merge pull request #323 from pstros/remove-ui-refs-from-xmpp-upstream
Remove UI refs from xmpp and RTC
2015-07-22 18:19:15 -05:00
Devin Wilson
d44aed2c11 Remove duplicate handler 2015-07-22 13:38:28 -06:00
Devin Wilson
9bbf17e541 Remove UI references from RTC 2015-07-22 13:37:34 -06:00
Devin Wilson
156b218bfc Remove UI references from xmpp-related modules
Conflicts:
	modules/xmpp/JingleSession.js
	service/xmpp/XMPPEvents.js
2015-07-22 13:37:34 -06:00
hristoterezov
ca5a1001a1 Fixes issue with parsing "extrernal" hash parameter. 2015-07-22 13:26:07 -05:00
paweldomas
1010a56899 Updates app.bundle.js. 2015-07-22 14:00:34 +02:00
paweldomas
0902cbb164 Fixes problems with Temasys plugin support in Safari. 2015-07-22 13:58:51 +02:00
paweldomas
9b4ee7c0c5 Fixes video switching issue. 'oldSmallVideo' field is no longer used as it is might be overwritten before fadeOut 'complete' callback of #largeVideo is called(and we miss UI update on it). 2015-07-22 13:58:39 +02:00
Boris Grozev
2545441def Updates app.bundle.js 2015-07-21 17:11:29 -05:00
Boris Grozev
9206b470ef Re-orders a=ssrc lines before calling SRD (fixes SRD failures when rtx/FID groups are in use). 2015-07-21 16:56:48 -05:00
Boris Grozev
cb7ff545b6 Abstracts unified and plan B checks. 2015-07-21 16:56:48 -05:00
bgrozev
c149b22ac2 Updates the license in package.json 2015-07-21 13:57:31 -05:00
paweldomas
2d522f735e Updates app.bundle 2015-07-21 10:17:59 +02:00
paweldomas
bc935eb5dc Fixes broken video in FF 2015-07-21 10:16:18 +02:00
paweldomas
c3548eb866 Fixes issues with invalid avatars and problems with switching between videos. 2015-07-20 19:32:04 +02:00
hristoterezov
a66459e206 Changes the conference id for callstats API. 2015-07-17 14:45:30 -05:00
Devin Wilson
829d8dab16 Fix CallStats require and initialize API commands and keyboard shortcuts in init method 2015-07-17 09:57:59 -06:00
Boris Grozev
072905b7cd Updates app.bundle.js. 2015-07-15 17:31:09 -05:00
Boris Grozev
7e1c7d19d6 Advertises RFC4588 support for browsers that support it. 2015-07-15 16:47:36 -05:00
hristoterezov
a3886cc56c Focuses the enter display name field. 2015-07-15 13:31:39 -05:00
paweldomas
b22ddea71c Updates app.bundle 2015-07-15 14:55:30 +02:00
paweldomas
b5135c455e Updates strophe.js to 1.2.2 2015-07-15 14:45:08 +02:00
paweldomas
7776bc92a4 Undefined method... 2015-07-15 14:44:16 +02:00
paweldomas
420bbe136c Fixes call to undefined method(which fixes crash on lastN switch and when clicking contact on the contactlist). 2015-07-15 14:01:36 +02:00
paweldomas
2b103288c2 Removes old hack 2015-07-15 12:16:04 +02:00
paweldomas
17f245df5e Fixes local video thumbnail being replaced with an avatar when lastN enabled. 2015-07-15 12:14:34 +02:00
paweldomas
61f4674a28 Fixes direct access to 'src' attribute of 'video' element. 2015-07-15 12:12:07 +02:00
paweldomas
879fb9a590 Adds getters for peer video selectors and simplifies the code a little bit. 2015-07-15 12:11:58 +02:00
paweldomas
a1b0677442 Moves SSRC owner signaling from MUC presence to Jingle. 2015-07-14 15:35:13 +02:00
paweldomas
d74a356a40 Removes extra separator from the toolbar when desktopsharing is not available. 2015-07-14 15:09:55 +02:00
Boris Grozev
609029bc93 Updates app.bundle.js 2015-07-10 22:40:23 +02:00
Boris Grozev
f29fc0f8e7 Fix building on a case-sensitive file system. 2015-07-10 22:39:09 +02:00
Boris Grozev
d430074ed8 Remove a superfluous var declaration. 2015-07-10 22:38:27 +02:00
paweldomas
ae759fab5b Adds IE support through Temasys WebRTC plugin. 2015-07-10 11:57:20 +02:00
ibauersachs
cd6928d770 Commit from translate.jitsi.org by user ibauersachs.: 168 of 168 strings translated (0 fuzzy). 2015-07-09 21:47:06 +00:00
ibauersachs
94f2ace120 Commit from translate.jitsi.org by user ibauersachs.: 167 of 167 strings translated (0 fuzzy). 2015-07-09 21:42:09 +00:00
paweldomas
6ec7be09f2 Fixes issue with switching to the screen stream before conference starts(when we're still alone in the room). 2015-07-09 15:04:08 +02:00
paweldomas
5c136f1da6 Updates app.bundle.js 2015-07-06 12:50:43 +02:00
paweldomas
9268da65c2 Removes 'wait for remote video' hack 2015-07-06 12:24:59 +02:00
paweldomas
3fc6da1ed5 Fixes issue with invalid number of conference participants displayed on the contact list indicator. 2015-07-06 12:24:40 +02:00
Marc Laporte
c1226d8c07 fix typo and minor rewording 2015-07-04 18:21:27 -04:00
hristoterezov
62a731e244 Fixes typo in translation module interface. 2015-07-03 12:34:05 +03:00
hristoterezov
47b6355d66 Implements functionality that forces the user to enter display name. 2015-07-02 17:04:37 +03:00
hristoterezov
1e0bf42203 Removes unused methods from VideoLayout. 2015-07-01 11:14:21 +03:00
hristoterezov
6235ff163e Fixes audio mute. 2015-06-30 14:34:11 +03:00
hristoterezov
f11c3b94ed Moves some methods from avatar to videolayout. 2015-06-29 17:24:21 +03:00
Marc Laporte
dd8371f49c fix typo 2015-06-28 09:47:13 -04:00
hristoterezov
506312ac95 Integrates callstats.io API. 2015-06-26 15:32:40 +03:00
Damian Minkov
239f271caf Handles chat message timestamps according to XEP-0091 and updates app.bundle.js. 2015-06-23 16:28:46 +03:00
Zalmoxisus
7a54537bee Fixes chat messages timestamp according to XEP-0203. Fixes #305. 2015-06-23 16:14:06 +03:00
hristoterezov
6a492d96c2 Refactors VideoLayout.js. 2015-06-23 11:00:46 +03:00
paweldomas
38b180ad81 Adds scrollbar to the contact list. 2015-06-19 15:45:39 +02:00
Emil Ivov
c8c0c8b1ab Update README.md 2015-06-19 00:53:22 +02:00
Emil Ivov
2b692f5a0a Setting new distribution license 2015-06-18 22:36:31 +02:00
Emil Ivov
502aeca132 Adding original MIT license 2015-06-18 22:36:17 +02:00
George Politis
288fbff677 Update LICENSE 2015-06-18 19:07:32 +02:00
George Politis
bdca07be17 Updates app.bundle.js 2015-06-18 19:01:04 +02:00
George Politis
5f48e4cf9d Revert "Updates the license headers."
This reverts commit 93648f361b.
2015-06-18 18:59:41 +02:00
Emil Ivov
bff9648abc Update README.md 2015-06-18 18:57:58 +02:00
Emil Ivov
7874e09a7e Update README.md 2015-06-18 18:25:21 +02:00
George Politis
311df7ec7f Updates app.bundle.js 2015-06-18 16:27:36 +02:00
George Politis
93648f361b Updates the license headers. 2015-06-18 16:17:09 +02:00
Emil Ivov
8380a7bb9d Update LICENSE 2015-06-18 13:18:23 +02:00
paweldomas
a6c8d0787a Does not reload the page after Chrome desktop sharing extension is installed. 2015-06-17 10:11:30 +02:00
paweldomas
3f9b220ee9 The name of shared Etherpad document is now generated and advertised by Jicofo user. 2015-06-15 12:07:31 +02:00
hristoterezov
15db9ca7e4 Fixes issue with the download logs button. 2015-06-11 17:03:41 +03:00
Damian Minkov
224dff7481 Updates patch. 2015-06-11 11:56:08 +03:00
Damian Minkov
643b2024c0 Reloads wrong service on remove jitsi-meet-prosody. 2015-06-11 11:55:01 +03:00
George Politis
f378d43e31 Updates app.bundle.js. 2015-06-10 13:39:11 +02:00
George Politis
23f1dc174e Refactors simulcast support. 2015-06-10 13:35:05 +02:00
Marc Laporte
0c3802183d Minor rewording, fixing typos, and improving grammar 2015-06-03 12:52:52 -04:00
paweldomas
b038d276c9 Fixes problem with resetting focusedVideoInfo when participant leaves the room. Fixes error when display name is processed after participant has left. 2015-06-02 17:25:10 +02:00
Boris Grozev
797036e888 Updates app.bundle.js. 2015-06-02 16:09:53 +03:00
Boris Grozev
a426b65969 Advertises DTLS support in disco#info. 2015-06-02 16:09:40 +03:00
paweldomas
1d57cb9dae Fixes calls to updateLargeVideo, so that it is called with user resource jid. 2015-06-02 10:05:42 +02:00
Boris Grozev
be64bd883c Fail gracefully when not running in a git environment. 2015-06-01 18:06:37 +03:00
Damian Minkov
497c60375c Updates manual install instructions. 2015-06-01 15:01:31 +03:00
hristoterezov
7f616fc823 Changes start muted labels. 2015-06-01 10:11:12 +03:00
hristoterezov
8a4c341512 Implements default language config property and comments to config.js 2015-05-29 17:09:44 +03:00
bgrozev
c65343b2c5 Fix influxdb instructions. 2015-05-29 15:26:37 +03:00
hristoterezov
d0efa6a77b Adds French in available languages. 2015-05-29 09:46:49 +03:00
hristoterezov
01deadf078 Moves the sound notification code to be played when the participant joins / leaves the room instead of receiving add / remove stream event. 2015-05-28 14:34:40 +03:00
George Politis
6eaa3cd45d Updates app.bundle.js 2015-05-28 11:46:40 +02:00
gpolitis
b0d2a79873 Require FF 40 or above for a good experience. 2015-05-28 11:45:10 +02:00
gpolitis
d94f001f25 A recent JDK and Ant is required to compile JICOFO. 2015-05-27 20:56:10 +02:00
gpolitis
afb85e2fd9 These are Debian instructions really. 2015-05-27 20:49:26 +02:00
gpolitis
fffb5801c5 Makes some nginx directives optional. 2015-05-27 16:56:30 +02:00
gpolitis
d81cd20ee6 Removes otalk modules from the installation procedure. 2015-05-27 16:52:16 +02:00
gpolitis
3e7a9228bc No turn server is necessary with Jitsi Videobridge. 2015-05-27 16:22:16 +02:00
hristoterezov
835e199135 Fixes issue with not removed ssrcs after the participant left the room. 2015-05-27 11:47:06 +03:00
hristoterezov
1d660e1883 Removes join / leave notifications if the participant start audio muted. 2015-05-26 14:18:45 +03:00
hristoterezov
5746261961 Implements the functionality to update config.js parameters via the URL. 2015-05-25 17:42:59 +03:00
hristo
cbeae8eb30 Commit from translate.jitsi.org by user hristo.: 158 of 159 strings translated (0 fuzzy). 2015-05-25 13:12:58 +00:00
George Politis
95b2752d2a Updates libs/app.bundle.js 2015-05-21 10:32:55 +02:00
George Politis
e3da472e7a Adds special handling of recvonly remote streams. 2015-05-21 10:32:00 +02:00
George Politis
43f60ca336 Updates app.bundle.js 2015-05-20 16:27:39 +02:00
George Politis
118a61c416 Disables stats logging in FF. 2015-05-20 16:27:10 +02:00
George Politis
bf99a129bd Depend on sdp-interop@0.1.4 2015-05-20 16:20:31 +02:00
George Politis
fb6ad8cffd Updates app.bundle.js and restores latest sdp-interop. 2015-05-20 15:55:30 +02:00
hristoterezov
21fef57bc4 Adds config property that disables hiding of toolbar. 2015-05-20 15:10:09 +03:00
George Politis
777422c87d Update libs/app.bundle.js. 2015-05-20 14:03:43 +02:00
George Politis
ee6fd63c25 Depend on sdp-interop@0.1.3 2015-05-20 14:03:13 +02:00
George Politis
b9f00b71b2 Fixes conference disposal in FF. 2015-05-20 10:45:00 +02:00
hristoterezov
099e3340bc Implements start muted feature. 2015-05-19 18:03:01 +03:00
George Politis
172c2d3d71 Updates app.bundle.js. 2015-05-18 19:08:20 +02:00
George Politis
854c8e5f2f Removes obsolete/unused variable. 2015-05-18 19:07:56 +02:00
George Politis
b2cff193a9 Updates app.bundle.js. 2015-05-18 19:03:27 +02:00
George Politis
ad1772178d Notifies the focus about newly allocated channel SSRCs on add/remove source. 2015-05-18 19:00:12 +02:00
George Politis
0959b3d5b8 Updates app.bundle.js 2015-05-15 15:43:56 +02:00
George Politis
36f91f7f1e Disables RTP stats when running on FF. 2015-05-15 15:36:29 +02:00
George Politis
2c9d0606c3 Attempts to fix #258 2015-05-15 15:32:01 +02:00
George Politis
1ce22fb8c9 Depend on sdp-interop@0.1.2, sdp-transform@1.4.0 2015-05-15 13:08:04 +02:00
George Politis
e0cba855a6 Implements fault tolerant connect (closes #268). 2015-04-22 23:11:25 +02:00
paweldomas
8af3a65d37 Displays error dialog when BOSH connection fails. 2015-04-22 16:14:16 +02:00
hristoterezov
667f67376e Fixes the issue with black large video. 2015-04-22 15:53:01 +03:00
George Politis
ce7b6be024 Bumps app.bundle.js version. 2015-04-22 14:30:24 +02:00
George Politis
57cd2647f3 Fixes a JS error in the invite prompt when there's no room url. 2015-04-22 14:26:48 +02:00
hristoterezov
efcfe99707 Improves the notification that informs the user if started the conference audio/video muted. 2015-04-22 13:27:14 +03:00
hristoterezov
cc1ad1bc13 Implement the functionality that allows users to start the conversation muted. 2015-04-22 12:31:08 +03:00
Paweł Domas
29f06829e7 Merge pull request #272 from mkeesey/master
Fix stream end/start race condition
2015-04-16 07:54:23 +02:00
Mike Keesey
0fdf5e0102 Fix stream end/start race condition
We need to queue attempts to call modifySources to prevent errors in
setLocalDescription, et al. We need to let the asynchronous function
flow in modifySources finish before we kick off another set.
2015-04-15 08:46:27 -06:00
hristoterezov
5b7083f5f7 Fixes JS error when downloading logs. 2015-04-15 11:17:01 +03:00
Boris Grozev
adb1c572ed Rebuilds app.bundle.js. 2015-04-12 14:26:58 +02:00
Boris Grozev
5d17cd0bcc Merge branch 'dtmf' 2015-04-12 14:24:33 +02:00
Boris Grozev
134d89a3d6 Fix a problem with accessing peerconnection, use duration and pause in the API. 2015-04-12 14:23:54 +02:00
Boris Grozev
0efcbdcd37 Adds a MemberList module and (currently disabled) code to show the dialpad button. 2015-04-12 14:18:24 +02:00
hristoterezov
878713a15d Fixes typo for the user id node in the presence. 2015-04-09 16:57:32 +03:00
hristoterezov
e01713f6f8 Fixes remove video element functionality in UI to remove only the correct video instead of all. 2015-04-09 14:02:33 +03:00
paweldomas
b6155c04ad Modifies "authentication required" dialog. 2015-04-08 14:34:10 +02:00
Boris Grozev
8075d0a0fd Adds a (hidden) dialpad button to the toolbar. 2015-04-08 12:51:29 +02:00
Boris Grozev
029851fe3f Avoid unnecessary jquery calls. 2015-04-08 12:49:49 +02:00
Boris Grozev
886fb2ac43 Fix typos and rename event names for purposes of clarity. 2015-04-08 12:30:48 +02:00
Boris Grozev
99b1a51df0 Fix a typo. 2015-04-08 10:43:43 +02:00
Boris Grozev
795ec24246 Adds a module for sending DTMF tones. 2015-04-07 18:02:52 +02:00
Boris Grozev
ecf9c6fc6b Adds instructions for adding an icon (thanks @hristoterezov). 2015-04-07 17:38:30 +02:00
Boris Grozev
68bc819b89 Adds the dial pad icon. 2015-04-07 17:09:28 +02:00
George Politis
80c5779de9 Adds an SDP transform module. 2015-04-03 13:18:09 +02:00
paweldomas
d175dfdef7 Prevents from sending invalid presence packets, before MUC jid is defined. 2015-04-01 21:12:08 +02:00
hristo
93c13f5a11 Commit from translate.jitsi.org by user hristo.: 156 of 159 strings translated (0 fuzzy). 2015-04-01 13:13:01 +00:00
hristo
ff8b880948 Commit from translate.jitsi.org by user hristo.: 140 of 159 strings translated (0 fuzzy). 2015-04-01 12:39:44 +00:00
hristo
5b550c8a5b Commit from translate.jitsi.org by user hristo.: 113 of 159 strings translated (0 fuzzy). 2015-03-31 17:02:39 +00:00
hristo
ce7d3c5c81 Commit from translate.jitsi.org by user hristo.: 91 of 159 strings translated (0 fuzzy). 2015-03-31 15:10:41 +00:00
jitsi-pootle
c99350308c New files added from translate.jitsi.org based on templates 2015-03-31 11:35:10 +00:00
George Politis
e98c8ada6a Nukes the enableFirefoxSupport config param. 2015-03-31 13:02:59 +02:00
George Politis
ce8aa961ea Lowers FF requirement to v38. 2015-03-31 12:33:04 +02:00
paweldomas
fbd08ba3a6 Adds empty SSI templates to avoid 404. 2015-03-31 11:17:26 +02:00
Paweł Domas
61594cb877 Merge pull request #259 from jitsi/plugin_ssi_includes
Adds additional SSI include tags.
2015-03-31 08:38:01 +02:00
hristoterezov
520e655100 Fixes issue with video mute indicator. 2015-03-30 17:19:35 +03:00
paweldomas
58d1697b00 Adds additional SSI include tags. 2015-03-30 16:00:23 +02:00
hristoterezov
f902b99287 Adds documentation for the translation. 2015-03-30 16:11:16 +03:00
hristoterezov
d25a9b0e41 Fixes issue with desktop sharing when the user click Cancel on the popup window. 2015-03-27 16:23:48 +02:00
hristoterezov
0e0f7d7ccb Fixes issue with available devices icons 2015-03-27 15:56:17 +02:00
hristoterezov
58cc21d417 Changes the implementation to show availability of video and sound devices. 2015-03-27 11:36:39 +02:00
paweldomas
8ac44491d0 Fixes input field focus in call SIP number dialog. 2015-03-26 14:16:20 +01:00
Damian Minkov
a093b455b3 Fixes debian packaging checking wrong template. 2015-03-26 13:19:50 +02:00
George Politis
58494d45db Brings back goog-remb signaling. 2015-03-26 11:29:40 +01:00
paweldomas
f98621173f Fixes uid, email and displayName advertisement in MUC presence. 2015-03-25 12:39:22 +01:00
hristoterezov
dbcfc92dc4 Changes the implementation to allow users without audio and video to join the conferences. Fixes issue with switching off desktop sharing for audio only users. 2015-03-24 17:43:33 +02:00
ibauersachs
b9bd1d599b Commit from translate.jitsi.org by user ibauersachs.: 159 of 159 strings translated (0 fuzzy). 2015-03-24 15:35:05 +00:00
ibauersachs
99b0be91ed Commit from translate.jitsi.org by user ibauersachs.: 159 of 159 strings translated (0 fuzzy). 2015-03-24 13:50:48 +00:00
Ingo Bauersachs
f2ae29d8e4 Add Italian 2015-03-24 14:47:56 +01:00
jitsi-pootle
4c3d415a07 New files added from translate.jitsi.org based on templates 2015-03-24 13:21:29 +00:00
Ingo Bauersachs
7b65798758 Use SSL for the Jitsi homepage link 2015-03-24 10:36:27 +01:00
hristoterezov
c1c5a305c6 Removes the comment from the English translation json. 2015-03-24 11:17:51 +02:00
hristo
291211c029 Commit from translate.jitsi.org by user hristo.: 13 of 149 strings translated (0 fuzzy). 2015-03-23 16:40:26 +00:00
hristoterezov
a3a9e8d951 Adds comment about not changing or creating other language files manually. 2015-03-23 18:35:44 +02:00
hristoterezov
3a0ee11ccd Turns off the camera when video is muted on https connection. 2015-03-23 18:12:24 +02:00
George Politis
2568b07075 enables REMB signaling in the rembson room. 2015-03-23 10:17:02 +01:00
Boris Grozev
e5fa02a1d4 Automates bumping js file versions. Experimental, please revert Makefile
if it causes problems.
2015-03-21 20:04:12 -07:00
Damian Minkov
fb5550bc38 Fixes debian package watch file. 2015-03-21 16:48:53 +02:00
Damian Minkov
bc5565251c Removes some links when reconfiguring. 2015-03-21 14:18:11 +02:00
Damian Minkov
4f548ce748 Adds description to the patch. 2015-03-21 14:18:11 +02:00
Damian Minkov
0faeb450c0 Drops use of Pre-Depends. 2015-03-21 14:18:11 +02:00
George Politis
e12ffd7a24 Bumps app.bundle.js version. 2015-03-19 20:02:19 +01:00
George Politis
d4c78617a7 Updates app.bundle.js with fix from previous commit. 2015-03-19 19:30:18 +01:00
hristoterezov
db2296953d Merge pull request #233 from odotom/odotom-patch-2-2
Update RTC.js
2015-03-19 16:57:17 +02:00
paweldomas
cd19c0e9e3 Chrome no longer allows to trigger install from extension msg response callback, so we have to check if extension exists before user clicks "share desktop" button(on startup). Fixes jshint warnings. 2015-03-18 20:28:18 +01:00
hristoterezov
44e558e5a0 Fixes video mute when the user is alone in the room. 2015-03-18 18:41:41 +02:00
hristoterezov
0da2547360 Fixes the size of the desktop streaming video for remote peer. 2015-03-17 18:46:08 +02:00
paweldomas
f3274ea42e Fixes broken translation after i18next-client update to 1.8.0. 2015-03-17 09:25:26 +01:00
paweldomas
0848283f6d Fixes broken Shibboleth authentication. 2015-03-17 08:50:04 +01:00
paweldomas
6e99286bd0 Updates app.bundle.js. 2015-03-13 15:09:50 +01:00
paweldomas
588c2d9e4b XMPP authentication improvements. Makes it possible to authenticate during the conference. 2015-03-13 15:08:05 +01:00
paweldomas
7c201573fb No need to manually focus Prezi URL input. 2015-03-13 15:07:53 +01:00
paweldomas
581ffec5ed Fixes issues after jquery-impromptu update. 2015-03-13 15:07:43 +01:00
paweldomas
c296940fd4 Updates jquery-impromptu in order to fix issues with modal dialogs. 2015-03-13 15:07:31 +01:00
paweldomas
f48633fa1d Removes unused connection settings form. 2015-03-13 15:07:17 +01:00
George Politis
66a53c7dc0 Redirects to unsupported browser page for FF < 39. 2015-03-13 10:19:54 +01:00
bgrozev
09f53c6b21 Update influxdb.md 2015-03-13 10:01:16 +01:00
ibauersachs
b3a17040e5 Commit from translate.jitsi.org by user ibauersachs.: 11 of 149 strings translated (0 fuzzy). 2015-03-12 21:25:22 +00:00
ibauersachs
774a7b41e4 Commit from translate.jitsi.org by user ibauersachs.: 149 of 149 strings translated (0 fuzzy). 2015-03-12 21:24:32 +00:00
ibauersachs
062e671290 Commit from translate.jitsi.org by user ibauersachs.: 148 of 148 strings translated (0 fuzzy). 2015-03-12 20:47:21 +00:00
paweldomas
90d979b69d Makes it possible to display notification message above the toolbar. 2015-03-12 17:56:28 +01:00
George Politis
9d50084b98 Doesn't fail when removeStream is called on FF. 2015-03-12 17:00:40 +01:00
George Politis
e1d71a41f7 Adds FF in the list of supported browsers. Enables it by default. 2015-03-12 16:33:27 +01:00
George Politis
e781eb6423 Partially reverts "Fixes translation issues (deb68dd)" and restores sdp-interop changes. 2015-03-12 16:17:22 +01:00
hristo
15f4f03ba3 Commit from translate.jitsi.org by user hristo.: 11 of 149 strings translated (0 fuzzy). 2015-03-11 17:50:42 +00:00
hristoterezov
4f9b6f7180 Changes the format of email text in the language resource files. 2015-03-11 18:54:43 +02:00
hristoterezov
b36ec5fd01 Moves supported browser list from the email message to the JS 2015-03-11 10:53:39 +02:00
ibauersachs
ac95ea03fe Commit from translate.jitsi.org by user ibauersachs.: 148 of 148 strings translated (0 fuzzy). 2015-03-11 08:51:16 +00:00
hristoterezov
ae535fcb7d Replaces %0D%0A with \n in the email template text. 2015-03-11 10:29:21 +02:00
hristoterezov
957cc6afc1 Merge branch 'master' of github.com:jitsi/jitsi-meet 2015-03-10 17:25:44 +02:00
hristoterezov
16fdd59617 Adds turkish language. 2015-03-10 17:24:27 +02:00
George Politis
fabf8f42c6 Updates .gitignore. 2015-03-10 15:50:26 +01:00
ibauersachs
c98a56dc37 Commit from translate.jitsi.org by user ibauersachs.: 135 of 135 strings translated (0 fuzzy). 2015-03-10 10:10:08 +00:00
hristoterezov
deb68dd420 Fixes translation issues 2015-03-10 11:38:09 +02:00
Boris Grozev
0fd1a7fa08 Removes embedded html as per Ingo's suggestion. 2015-03-09 19:14:11 +01:00
Boris Grozev
c6ff8aa5dd Tries to improve readibility... 2015-03-09 18:44:42 +01:00
Boris Grozev
06f025e92a Fix formatting. 2015-03-09 18:29:47 +01:00
Boris Grozev
f14329f2cd Adds instructions to enable logging. 2015-03-09 18:27:56 +01:00
Boris Grozev
53e525597a Add .swp files to .gitignore. 2015-03-09 18:27:55 +01:00
George Politis
54b3cbcf94 Reverts config.js 2015-03-09 17:58:11 +01:00
George Politis
2852740e71 Updates the Makefile. It calls npm update before building the project. 2015-03-09 17:41:17 +01:00
George Politis
5322ba086b Reverts previous change of the Makefile. 2015-03-09 17:39:16 +01:00
hristoterezov
d2f95f3c81 Fixes some translation issues. 2015-03-09 17:50:13 +02:00
George Politis
3747251821 Adds dependency to specific commit for sdp-interop. 2015-03-09 16:21:53 +01:00
George Politis
159ba82167 Updates app.bundle.js with latest sdp-interop module that offers support for ssrc-groups. 2015-03-09 15:25:47 +01:00
George Politis
e34a8e6b60 Updates app.bundle.js with latest sdp-interop module. 2015-03-09 11:11:25 +01:00
jitsi-pootle
17a6e360a2 New files added from translate.jitsi.org based on templates 2015-03-09 08:16:17 +00:00
George Politis
b690f5d4a1 Updates app.bundle.js. 2015-03-05 20:25:50 +01:00
Damian Minkov
30f3168bf7 Adds watch file for the deb. 2015-03-05 19:23:55 +02:00
Damian Minkov
115f2e4663 Updates the patch for debian src package. 2015-03-05 19:23:29 +02:00
Damian Minkov
fa15a75928 Updates missing-source location. 2015-03-05 18:01:27 +02:00
Damian Minkov
4db75446f3 Do not edit /etc/nginx/nginx.conf file directly. 2015-03-05 17:52:05 +02:00
George Politis
d9f7b8b6cc Adds a comment about how FF handles the video.src attribute. 2015-03-05 11:26:44 +01:00
George Politis
05bbfda5bb Adds support for FF/multistream. 2015-03-04 21:33:06 +01:00
paweldomas
e465b3ed90 Removes unnecessary error dialog when desktop sharing is started before the conference. 2015-03-04 13:58:07 +01:00
hristoterezov
1825f47ef2 Adds translation support for placeholder attributes. 2015-03-04 12:59:52 +02:00
ibauersachs
169d613ac4 Commit from translate.jitsi.org by user ibauersachs.: 135 of 135 strings translated (0 fuzzy). 2015-03-04 09:37:19 +00:00
Ingo Bauersachs
3dac5eeff5 Fix punctuation spacing 2015-03-04 10:27:44 +01:00
hristoterezov
f79651f806 Merge branch 'translation' 2015-03-04 11:06:02 +02:00
hristoterezov
6048d0a325 Fixes the html attributes for translation options. 2015-02-27 20:05:32 +02:00
hristoterezov
6f12446c99 Fixes translation of plurals. 2015-02-27 19:58:05 +02:00
hristoterezov
af682f8727 Changes the configuration of translation module to retrieve the resources synchronous. Removes the default values. 2015-02-26 17:35:35 +02:00
paweldomas
9123923818 Displays reservation system error if one is returned by the focus. 2015-02-26 14:59:01 +01:00
Boris Grozev
aee7a8e1bd Fix a bug with stats accumulating. Fix a typo. 2015-02-26 10:12:06 +01:00
paweldomas
5b44edb3cc Handles graceful-shutdown focus error response. 2015-02-25 16:55:22 +01:00
Boris Grozev
806d4ea443 Filters some statistics from the logs. Increases the interval for logged statistics. 2015-02-25 11:38:04 +01:00
hristoterezov
1e35ca5e4d Removes the firefox issue link. 2015-02-25 12:06:32 +02:00
hristoterezov
d4f00d76ab Removes webrtcrequired.html. 2015-02-25 11:07:33 +02:00
hristoterezov
37282e63b3 Fixes the references with chromeonly page. 2015-02-24 18:24:39 +02:00
hristoterezov
4b218499ae Redesigns the supported browsers page. 2015-02-24 18:08:24 +02:00
hristoterezov
f16a1cdf44 Changes the implementation to store the language in local storage. Adds new languages. 2015-02-24 12:49:46 +02:00
hristoterezov
702f02568d Fixes issue with the buttons in the message handler. 2015-02-24 10:57:41 +02:00
paweldomas
b6808d87bc Updates app.bundle.js. 2015-02-23 16:15:42 +01:00
paweldomas
8042bd2aa6 Handles MUC destroyed event. 2015-02-23 16:13:38 +01:00
paweldomas
053b2d5af2 Fixes logout confirmation dialog. 2015-02-23 16:13:26 +01:00
Ingo Bauersachs
222164333b Fix some typos and punctuation spacing. 2015-02-23 13:35:16 +01:00
ibauersachs
db50810e4b Commit from translate.jitsi.org by user ibauersachs.: 130 of 130 strings translated (0 fuzzy). 2015-02-23 12:33:29 +00:00
hristo
720851dcb9 Commit from translate.jitsi.org by user hristo.: 3 of 130 strings translated (0 fuzzy). 2015-02-23 11:44:51 +00:00
jitsi-pootle
d7203b8b1a New files added from translate.jitsi.org based on templates 2015-02-23 11:42:53 +00:00
jitsi-pootle
204ca29ed7 New files added from translate.jitsi.org based on templates 2015-02-23 11:42:33 +00:00
hristoterezov
fdada53a4a Fixes issue with the recording. 2015-02-23 12:06:42 +02:00
hristoterezov
81eb3754a0 Fixes "focus not available" notifications. 2015-02-23 11:20:35 +02:00
hristoterezov
d260f1db61 Removes unused package.son files. 2015-02-20 18:21:58 +02:00
hristoterezov
74f078f166 Adds multi language support for message handlers. 2015-02-20 18:17:46 +02:00
paweldomas
e16cee4187 Delete old session ID and retry on 'session-invalid' response. Updates app.bundle.js. 2015-02-19 13:56:04 +01:00
paweldomas
a904e35c67 Adds auto-sign in feature and login/logout toolbar menu. 2015-02-19 13:49:51 +01:00
paweldomas
b87cd9f842 Moves Settings module out from the UI. 2015-02-19 13:49:41 +01:00
paweldomas
fed34e7671 Fixes PreziPlayer crash when invalid message is received. 2015-02-19 13:49:41 +01:00
George Politis
ed57f72117 Adds extra logging. 2015-02-19 13:27:44 +01:00
hristoterezov
4d39d4ccc3 Fixes issue with selected user resource jid variable. 2015-02-19 11:23:55 +02:00
hristoterezov
79cdd94833 Adds multi language support for notifications. 2015-02-13 18:28:35 +02:00
hristoterezov
e0645b41d3 Moves some function calls in UI service 2015-02-13 11:31:25 +02:00
hristoterezov
aa7f0c8a0b Merge branch 'master' of github.com:jitsi/jitsi-meet 2015-02-12 16:44:24 +02:00
hristoterezov
2362770cce Changes getUserMedia implementation to try lower resolution if the configured one is not supported. 2015-02-12 16:42:08 +02:00
Damian Minkov
8334036cf4 Moves admins definition as it seems on some distributions after latest lua updates, causes trouble for prosody. 2015-02-12 15:39:56 +02:00
Damian Minkov
eec513e9e3 Adds admins line after muc component. 2015-02-12 13:50:21 +02:00
hristoterezov
f2a7a43ba7 Fixes audio level performance issue on avatar. 2015-02-11 18:29:20 +02:00
Thomas Odorfer
9e6e23ce97 Update RTC.js
fix for screensharing screen ratio and local mirror effect - forgotten parameter videoType in RTC.js in jitsi-meet commit 6c4a5bd tag 340
2015-02-11 14:28:26 +01:00
hristoterezov
61bbbaf6eb Adds gitattributes file that marks the generated files as binary files. 2015-02-09 15:50:49 +02:00
hristoterezov
3519a6ec7b Fixes the generated file. 2015-02-09 15:03:23 +02:00
hristoterezov
d21f994eee Removes rtp stats option and adds options for disabling/enabling stats and audio levels. 2015-02-09 14:51:25 +02:00
hristoterezov
b32acf0dfb Fixes the multi language support for the debian package. 2015-02-09 12:24:11 +02:00
hristoterezov
71a56e13d9 Fixes some issues with the tests 2015-02-09 12:21:23 +02:00
hristoterezov
0f6d0a0439 Adds methods required by torture 2015-02-09 10:12:55 +02:00
hristoterezov
3032ea7684 Implements basic multi language support. 2015-02-06 17:46:50 +02:00
hristoterezov
04cfbafc33 Fixes issue with recording. 2015-02-06 15:43:40 +02:00
hristoterezov
57fcee676a Fixes issues with accessing modules not from APP object. 2015-02-06 14:54:19 +02:00
hristoterezov
2f5d090ca5 Merge pull request #227 from odotom/odotom-patch-1
Fixes typos.
2015-02-03 15:42:30 +02:00
bgrozev
8d796f328b Update README.md
Clarify that the detailed instructions are for a 'manual' installation.
2015-02-03 12:45:01 +02:00
hristoterezov
ffb1d6ea17 Generates app bundle file 2015-02-02 20:00:45 +02:00
hristoterezov
4447e5dac6 Merge pull request #229 from schleussinger/master
Corrected Scope - fixes runtime JS error and  Chrome Ext desktop sharing for me
2015-02-02 19:47:59 +02:00
schleussinger
dbed14db5e Fix correct Scope - this fixes JS error and Chrome Ext desktop sharing for me 2015-02-01 13:14:18 +01:00
Thomas Odorfer
254103e21f Update UI.js
fix typo UI.getCredentials
2015-01-31 22:14:53 +01:00
Thomas Odorfer
d0b39e1c97 Update app.js
app.js: fix getCredentials - return object instead of function reference
2015-01-31 22:11:02 +01:00
hristoterezov
4bb555e4b2 Fixes authentication issues. 2015-01-29 11:43:40 +02:00
hristoterezov
8d0ee3ded9 Updates generated file. 2015-01-29 11:27:02 +02:00
hristoterezov
98d1ca8505 Fixes authentication issues. 2015-01-29 11:09:09 +02:00
hristoterezov
e766bad4ce Merge branch 'master' of https://github.com/Zalmoxisus/jitsi-meet
Conflicts:
	libs/modules/RTC.bundle.js
	libs/modules/simulcast.bundle.js
2015-01-28 18:06:09 +02:00
hristoterezov
9eb2873cfa Removes the bundles for every module and add bundle for the whole application. 2015-01-28 16:35:22 +02:00
hristoterezov
c7e2331284 Removes document bind events between modules. 2015-01-27 14:03:26 +02:00
hristoterezov
02ca5e5732 Merge branch 'master' of github.com:jitsi/jitsi-meet 2015-01-27 11:56:43 +02:00
hristoterezov
bc2d72638b Add events for data chanel. 2015-01-27 11:56:22 +02:00
Zalmoxisus
40de181959 Fixes audio-only (when GUM fails) 2015-01-26 19:54:26 +02:00
bgrozev
70bc071cb8 Merge pull request #220 from Zalmoxisus/master
Fixes some typos that cause errors
2015-01-26 09:29:59 -06:00
Zalmoxisus
567ac23c2c Fixes some typos that cause errors 2015-01-26 16:24:26 +02:00
hristoterezov
af50bd5b94 Resolves some module dependancies by replaces them with events. 2015-01-24 16:28:02 +02:00
hristoterezov
899f0ee83d Removes UI dependancies in the xmpp module. 2015-01-23 17:36:17 +02:00
hristoterezov
29b3ea07e0 Removes util.js. Fixes prezi. 2015-01-23 14:01:44 +02:00
hristoterezov
c0a316c7df Creates keyboard shortcuts module. 2015-01-22 18:26:05 +02:00
hristoterezov
f624833f1f Merge branch 'master' of github.com:jitsi/jitsi-meet 2015-01-22 18:02:56 +02:00
hristoterezov
4c661ffca6 Removes nickname global variable. 2015-01-22 18:02:37 +02:00
Boris Grozev
0819f23049 Adds instructings for building. 2015-01-22 17:52:28 +02:00
Boris Grozev
1e9a463245 Fix a typo. 2015-01-22 17:39:40 +02:00
Boris Grozev
447d8f5677 Makes the default make target execute "deploy" and "clean". 2015-01-22 17:36:12 +02:00
fo
d2453b1f1f Changed capitalisation in require statements. 2015-01-22 16:56:23 +02:00
Boris Grozev
9460138cc3 Fix pako reference. 2015-01-21 17:35:23 +02:00
Boris Grozev
0063461858 Uses pako from npm. 2015-01-21 17:13:22 +02:00
hristoterezov
248d7a3173 Moves ssrc2jid global variable to the xmpp module. 2015-01-21 13:55:20 +02:00
hristoterezov
51277270fe Fixes issues with the recording. 2015-01-20 18:12:32 +02:00
hristoterezov
394738394d Fixes NPE when creating non anonymous room 2015-01-20 18:07:03 +02:00
hristoterezov
6c4a5bd2bc Removes some global variables. Fixes recording. 2015-01-20 17:56:00 +02:00
hristoterezov
6347730dc7 Fixes some issues related to xmpp module creation. 2015-01-19 18:54:41 +02:00
hristoterezov
3da8e39745 Merges app.js and generates bundles. 2015-01-19 12:03:14 +02:00
hristoterezov
f4acf97b00 Merge branch 'master' of github.com:jitsi/jitsi-meet
Conflicts:
	app.js
	libs/strophe/strophe.jingle.js
	modules/xmpp/moderator.js
	muc.js
2015-01-19 12:00:30 +02:00
hristoterezov
e4e66a03d7 Creates initial version of xmpp module. 2015-01-19 11:20:00 +02:00
paweldomas
ed78c0053c Makes it possible to append URL parameters after room name. Adds ?login=true to enforce authenticated domain when anonymous domain is used. This allows to get moderator permissions after room has been created. 2015-01-16 13:22:02 +01:00
paweldomas
398fd18b8e Advertises dtls/sctp support in capabilities. 2015-01-16 12:35:31 +01:00
paweldomas
d3003d4fcd Adjusts anonymous domain functionality to work with Jicofo. 2015-01-14 17:59:50 +01:00
hristoterezov
ee94eca733 Creates desktop sharing module. 2015-01-13 15:11:05 +02:00
hristoterezov
0696fb2c5a Fixes issue with video mute. 2015-01-13 11:33:45 +02:00
hristoterezov
e6fbb0934e Removes local streams from the connection object. 2015-01-12 15:23:29 +02:00
hristoterezov
faaf24d3c4 Creates simulcast module 2015-01-09 17:32:35 +02:00
hristoterezov
fcf785f32c Removes unused files. 2015-01-09 16:18:03 +02:00
hristoterezov
0508628871 Creates API module. 2015-01-09 15:39:32 +02:00
hristoterezov
27502d3fa8 Removes some dependancies from functions in app.js. 2015-01-09 14:19:48 +02:00
hristoterezov
1057ff36cd Moves some functions from app.js 2015-01-09 13:35:48 +02:00
paweldomas
8d5e50c0ca Moves 'callSipButtonClicked' method to Toolbar.js in order to fix 'sharedKey' undefined error. 2015-01-09 11:19:42 +01:00
hristoterezov
8db602c8bd Fixes make file 2015-01-09 11:49:45 +02:00
paweldomas
06494cf821 Fixes undefined 'messageHandler' error. 2015-01-09 08:56:30 +01:00
hristoterezov
0fe6a55700 Fixes issue with connection quality module name. 2015-01-08 14:33:06 +02:00
hristoterezov
e20274c2f7 Creates connection quality module. 2015-01-08 14:11:53 +02:00
paweldomas
b77106f61a Includes room secret in SIP gateway request if password is required to join the room. 2015-01-07 16:58:41 +01:00
hristoterezov
4d25b139cc Fixes some issues caused by the merge. 2015-01-07 17:47:48 +02:00
hristoterezov
6ce48a5b7b Merge branch 'master' of github.com:jitsi/jitsi-meet
Conflicts:
	app.js
	index.html
	libs/colibri/colibri.focus.js
	libs/modules/statistics.bundle.js
	moderator.js
	modules/UI/videolayout/VideoLayout.js
	muc.js
2015-01-07 17:14:10 +02:00
hristoterezov
69b0e2ad32 Creates UI module. 2015-01-07 16:54:03 +02:00
paweldomas
cd0c9393d8 Makes "authentication required" dialog persistent. Joins the room if someone else authenticates first and creates the conference for us. 2015-01-07 12:28:49 +01:00
paweldomas
2494444ca4 Fixes issue with remote video menu not displayed on role upgrade. 2015-01-07 12:28:40 +01:00
paweldomas
c76b78eb46 Improves SIP gateway auto configuration by getting feedback from the focus. 2015-01-05 16:45:45 +01:00
paweldomas
78fcc8b72c Sends SIP gateway requests through the focus component. 2015-01-05 16:45:45 +01:00
hristoterezov
652412cd4f Fixes issue with local audio levels. 2015-01-05 17:08:49 +02:00
Damian Minkov
78801aa9e5 Fixes deb package. 2015-01-05 16:58:55 +02:00
Damian Minkov
cd266f60d7 Fixes building deb packages. 2015-01-05 16:41:38 +02:00
paweldomas
459891e647 Bumps js versions, updates bundles. 2015-01-05 13:14:27 +01:00
paweldomas
6cc8b63104 Does not flood with missing "Jid for SSRC" warnings for outdated stats(removed streams). 2015-01-05 13:07:59 +01:00
paweldomas
1aed7e6237 Fixes NPE. 2015-01-05 13:07:50 +01:00
paweldomas
087c26d494 Fixes issue with switching desktop stream. 2015-01-05 13:07:40 +01:00
paweldomas
4fb7001b00 Converts 'constraints' to local variable in order to fix desktop sharing issues(audio constraints were retained in global var and get desktop stream failed). 2015-01-05 13:07:28 +01:00
paweldomas
f1cb3af345 Increases default size of authentication popup. 2015-01-05 13:07:18 +01:00
Boris Grozev
427dc093cc Do not log presence changes to the console. 2014-12-30 19:57:43 +02:00
Boris Grozev
87f8b91a96 Implements recording through a jirecon instance. 2014-12-30 19:57:43 +02:00
paweldomas
fdcae01d21 Configures the room as non-anonymous. 2014-12-29 17:55:48 +01:00
George Politis
f95d5f36bb Moves add/remove source element creation in strophe.jingle.sdp.js. 2014-12-29 11:55:33 +01:00
George Politis
1938280e27 Narrows the gap between strophe.jingle and our code. 2014-12-26 12:46:23 +01:00
George Politis
dc5d5f8436 Nukes colibri.*.js and restores original file structure of strophe.jingle. 2014-12-26 10:40:06 +01:00
hristoterezov
efc161dacd Fixes issue with obtaining audio/video permissions when simulcast is disabled. 2014-12-23 16:24:56 +02:00
George Politis
2ee5a92ef0 Adds comment to modules/RTC/MediaStream.js 2014-12-22 15:08:49 +01:00
hristoterezov
4a991f7187 Adds package.json files for our browserify modules. 2014-12-22 15:46:24 +02:00
Paweł Domas
91358476a1 Update manual-install.md
Adds jicofo install instructions.
2014-12-22 13:05:20 +01:00
hristoterezov
ec5e0f09ea Moves require to top for the RTC module. 2014-12-22 11:03:21 +02:00
hristoterezov
a1da42ff00 Fixes the filename in require call of data channels file. 2014-12-19 17:49:22 +02:00
hristoterezov
5b34a66cb6 Implements RTC module. 2014-12-19 15:59:08 +02:00
bgrozev
996b1791d5 Merge pull request #205 from Zalmoxisus/master
Prevent XSS injection using 'nick' tag on presence
2014-12-18 18:24:44 +02:00
bgrozev
3b0fcad39b Merge pull request #208 from Zalmoxisus/master
Fixes chat messages
2014-12-18 18:24:23 +02:00
Paweł Domas
484b80965c Update quick-install.md
Adds 'jicofo' package to Deinstall section.
2014-12-18 09:32:30 +01:00
hristoterezov
c6d8e34779 Implements statistics module. 2014-12-17 18:21:25 +02:00
Damian Minkov
7bacd957bd Updates invitation email. 2014-12-17 14:45:22 +02:00
Boris Grozev
e830ced554 Removes the troubleshooting section. 2014-12-17 11:35:10 +02:00
Boris Grozev
2041b54a07 Removes the add-apt-repository way of adding a repository. 2014-12-17 11:34:16 +02:00
Boris Grozev
3473f1c20c s/OpenSource/open-source/. 2014-12-17 11:33:16 +02:00
Boris Grozev
10adea1691 Moves INSTALL.md to doc/manual-install. Links to both installation documents from README.md. 2014-12-17 11:32:42 +02:00
Damian Minkov
b3a4b8a1cf Fixes configuring prosody which can break also jicofo configuration, the missing domain will fail later creating admin account for jicofo. 2014-12-17 09:40:45 +02:00
paweldomas
78f8521145 Handles the case where browser is blocking popups and prevents from opening authentication window. 2014-12-16 19:05:34 +01:00
Damian Minkov
ba627718be Creates prosody conf.avail if missing. 2014-12-16 17:01:14 +02:00
bgrozev
698f511676 Merge pull request #211 from Zalmoxisus/master
Fixes a smile typo that causing missing image
2014-12-16 16:48:51 +02:00
paweldomas
f4004656a3 Adds functionality for authentication with external system. 2014-12-16 14:54:35 +01:00
Mihail Diordiev
66e1a98869 Fixes a smile typo that causing missing image 2014-12-16 08:52:14 +02:00
yanas
cc38c2641b Modifies default avatar image. 2014-12-12 13:18:36 +01:00
fo
d1c634abc2 Fixes active speaker avatar and active speaker audio level missmatch. 2014-12-12 11:32:16 +02:00
Lyubomir Marinov
4230aa1ff1 Renames a variable/field for the purposes of clarity. 2014-12-11 22:08:52 +02:00
Lyubomir Marinov
ae4dafb06d Optionally automatically mutes the local video if it is not in any "last N". 2014-12-11 21:50:08 +02:00
paweldomas
4c95921b06 Does not reload the page when "focus left MUC" event is generated after we have left the MUC intentionally. 2014-12-11 19:14:46 +01:00
paweldomas
8068d4e810 Changes "browser is too old message" error message as it's not always related to the browser version. 2014-12-11 19:09:18 +01:00
George Politis
e8779eeb18 Adds the user agent in the presence. 2014-12-11 13:02:45 +01:00
George Politis
a1624138fe Disables the "Focus connected" notification. 2014-12-11 13:01:46 +01:00
fo
451d16a664 Fixes error when myroomjid is null. 2014-12-11 13:39:27 +02:00
fo
b6a665e007 Adds audio levels for the active speaker avatar. 2014-12-10 15:10:54 +02:00
paweldomas
e4154c055e Fixes handling of "bridgeIsDown" presence extension coming from focus participant. 2014-12-08 16:38:56 +01:00
paweldomas
28e41f6c7b Fixes broken room locking functionality. 2014-12-08 11:44:05 +01:00
paweldomas
3f15d5495d Sends JVB from config.js to the focus. 2014-12-08 09:24:23 +01:00
Mihail Diordiev
60e7482df1 Fixes chat messages
Fixes issue #177 and also show new lines
2014-12-08 00:41:05 +02:00
paweldomas
7f057377d0 Displays error message when focus component is not available. 2014-12-05 17:02:42 +01:00
paweldomas
933a41492e No longer requires focus component and focusUserJid to be configured in config.js(but they can still be overridden there). 2014-12-05 17:02:41 +01:00
paweldomas
1729f7e17e Recognizes focus user. Adds missing semicolons. 2014-12-05 17:02:40 +01:00
George Politis
3c96c91ca8 Bumps version numbers for changed js files. 2014-12-05 17:00:24 +01:00
George Politis
cb8f57b3e3 Adds support for the openSctp and enableFirefoxHacks configuration params. 2014-12-05 16:49:22 +01:00
George Politis
5ba666de2e Restores broken config.displayJids functionality. 2014-12-05 16:49:21 +01:00
George Politis
66f7ddd6b2 Taking into account the fact that FF nightlies include the local SSRCs in the local SDP. 2014-12-05 16:49:21 +01:00
George Politis
79b7df28c1 Fixes undesirable falsy value in simulcast.js. 2014-12-05 16:49:21 +01:00
fo
f0a4c08f26 Fixes bugs with thumbnails getting black when prezi is playing or etherpad is viewed. 2014-12-05 15:10:45 +02:00
paweldomas
36065b935c Old prosody config improvement - patch by Damian Minkov. 2014-12-05 14:04:15 +01:00
fo
27eecff826 Fixes the sizes of the avatars. 2014-12-05 10:56:34 +02:00
fo
8bb5994715 Fixes mixup between jid and resourceJid. 2014-12-04 18:04:17 +02:00
paweldomas
91c3c9ca83 Restarts jvb and jicofo on upgrade. 2014-12-04 12:40:13 +01:00
paweldomas
4b8eef0f3e Adds 'jicofo' to jitsi-meet-prosody Depends. 2014-12-04 12:31:41 +01:00
paweldomas
4776605dec Merge branch 'ssfocus' 2014-12-04 11:19:45 +01:00
Zalmoxisus
7b0be8e953 Prevent XSS injection using 'nick' on presence
Also allows special characters in displayName. Fixes issue #182.
2014-12-03 22:44:03 +02:00
George Politis
5af92474c3 Attempts to prevent ghost contacts from appearing in the contact list. 2014-12-03 12:47:44 +01:00
paweldomas
f749bed1dd Adds jicofo debian package integration. 2014-12-02 20:11:54 +01:00
paweldomas
e308025143 Merge branch 'master' into ssfocus
Conflicts:
	config.js
	libs/strophe/strophe.jingle.session.js
	rtp_sts.js
2014-12-02 20:09:24 +01:00
Damian Minkov
63dd6df217 Updates strophe to use a patch that handles only result and error responses when an iq is send (https://github.com/strophe/strophejs/pull/95). Fixes a problem with openfire sending us iq packages with id which we have already used. 2014-12-02 15:21:12 +02:00
Damian Minkov
bb5d178220 Uses sendIQ method to send iq packets, this way the id attribute will be added. 2014-12-02 15:21:12 +02:00
hristoterezov
edb89a65d5 Adds config property for enabling firefox support 2014-12-01 19:59:51 +02:00
hristoterezov
e2058edfdd Merge branch 'master' into firefox
Conflicts:
	libs/colibri/colibri.focus.js
	videolayout.js
2014-12-01 14:12:04 +02:00
hristoterezov
6cf96c5d72 Fixes an issue with black thumbnails 2014-12-01 13:15:36 +02:00
hristoterezov
abe3ef199f Fixes an issue with strange values of bitrate statistics. 2014-12-01 12:58:03 +02:00
Philipp Hancke
50b4f33207 Merge pull request #99 from jitsi/nackpli
add nack pli
2014-11-28 15:36:33 -08:00
Philipp Hancke
0663efe8cb Merge pull request #199 from jitsi/audioonly-again
try audio-only when GUM fails
2014-11-28 15:35:57 -08:00
hristoterezov
501c97b27c Implements firefox support for the rtp stats 2014-11-28 19:47:19 +02:00
George Politis
d4a5b3cf2e Fixes typo in comments. 2014-11-28 17:06:36 +01:00
George Politis
37bb4b82ad Fixes issue introduced by 71e290a8ad.
simulcastlayerschanged/ing should run if lastN is disabled.
2014-11-28 17:00:16 +01:00
paweldomas
b035bfc9aa Merge branch 'master' into ssfocus
Conflicts:
	index.html
	muc.js
	videolayout.js
2014-11-28 16:43:45 +01:00
paweldomas
6b968b1d14 Adds config options to the conference iq sent to the focus. 2014-11-28 16:31:01 +01:00
paweldomas
f06f4cd1ba Fix setting the mute icon(written by Boris Grozev). 2014-11-28 16:25:01 +01:00
paweldomas
b5ecdc8dee Sends peer connection stats to the focus(written by Boris Grozev). 2014-11-28 16:24:33 +01:00
paweldomas
7e90d73003 Saves PeerConnection statistics and prepares to send them over XMPP(written by Boris Grozev). 2014-11-28 16:23:57 +01:00
paweldomas
71b63cd0b3 Adds Pako (an implementation of zlib deflate). Written by Boris Grozev. 2014-11-28 16:23:17 +01:00
paweldomas
8f94ac8b09 Detects focus user in reliable way(through user real JID). Fixes kicked event when both 307 and 110 status codes are received in MUC presence. 2014-11-28 16:21:01 +01:00
paweldomas
871c661ba9 Adds support for muting audio on the bridge. 2014-11-28 16:20:43 +01:00
paweldomas
3f3046893e Ignore unrecognised 'default' stream. 2014-11-28 16:20:24 +01:00
paweldomas
0f6b6ae960 Adjusts recording button handling to the new focus(not finished). 2014-11-28 16:19:20 +01:00
paweldomas
cd6264d0df Adopts kick to new focus. 2014-11-28 16:18:58 +01:00
paweldomas
285096cc99 Uses separate exp backoff timers for 'not ready' and error responses from the focus. 2014-11-28 16:18:31 +01:00
paweldomas
84a453597c Reloads the page when focus leaves to dispose MUC room. Adds exponential backoff to focus polling. 2014-11-28 16:18:12 +01:00
paweldomas
7dc8102dee Replaces 'focus' occurrences with moderator for handling privileged functionalities. 2014-11-28 16:17:53 +01:00
paweldomas
ed2d7e4282 Fixes jshint warnings in toolbar_toggler.js 2014-11-28 16:17:13 +01:00
paweldomas
afaa96b737 Fixes merge mistake. 2014-11-28 16:16:55 +01:00
paweldomas
d8ebea0d8b Fixes some of shint warnings in toolbar.js 2014-11-28 16:16:27 +01:00
paweldomas
a0fef34a1f Removes unused vars from moderatemuc.js. and fixes jshint warnings. 2014-11-28 16:16:04 +01:00
paweldomas
9d3aef2efa Fixes code comment. 2014-11-28 16:15:29 +01:00
paweldomas
6646b2821a Adds MUC role change notifications. 2014-11-28 16:14:54 +01:00
paweldomas
613e18952b Waits for the focus to join first. 2014-11-28 16:05:43 +01:00
paweldomas
6afcfb2598 Basic recording. 2014-11-28 16:05:10 +01:00
paweldomas
4efad3d3da Advertises rtcp-mux and BUNDLE if it's enabled. 2014-11-28 16:03:35 +01:00
paweldomas
73571e7a18 Send media presence after session-accept. 2014-11-28 16:02:27 +01:00
paweldomas
f629ec17fa Focus and debug changes 2014-11-28 16:00:57 +01:00
George Politis
a8909028c8 Modifies the avatars, lastN and adaptive lastN handling so that they play nicely together. 2014-11-28 12:29:52 +01:00
fo
5b9b45c91b Fixes a bug when there is no active speaker currently. 2014-11-27 18:27:31 +02:00
fo
1d0b4d0ecb Fixes a bug with avatar when no id or email is sent with presence. 2014-11-27 18:14:43 +02:00
fo
1d4177faeb Adds a side panel toggler, settings menu, avatars, uuids. 2014-11-27 12:44:22 +02:00
hristoterezov
9b5edde621 Fixes the issue with the large video that doesn't fill the large video container. 2014-11-26 16:36:42 +02:00
hristoterezov
c6cc570f1d Fixes issues caused by the merge with master. Fixes the simulcast conferences on chrome. 2014-11-26 14:10:41 +02:00
Philipp Hancke
c438676eae Merge pull request #190 from jitsi/remove-old-bundle-plans
remove old bundle plan
2014-11-25 18:48:11 -08:00
hristoterezov
5213583af2 Merge branch 'master' into firefox
Conflicts:
	app.js
	libs/strophe/strophe.jingle.adapter.js
	simulcast.js
	videolayout.js
2014-11-25 17:01:46 +02:00
George Politis
7da0fd6794 Make it possible to pin a participant from the contact list, even if he's not in the lastN set. 2014-11-25 11:58:09 +01:00
George Politis
71e290a8ad Run simulcastlayerschanged/ing event handlers only if the affected endpoint is in lastN. 2014-11-25 11:57:59 +01:00
hristoterezov
03f828ba9a Fixes issues when participant leaves caused by removing src dependancies. Stops the tracks when stream is removed. 2014-11-24 18:14:35 +02:00
George Politis
092149711b videoSrcToSsrc stores strings 2014-11-24 12:00:15 +01:00
Philipp Hancke
728e7ce70b try audio-only when GUM fails 2014-11-22 14:51:23 -08:00
hristoterezov
99da618811 Removes browser checks. Optimizes the browser specific code. 2014-11-21 16:50:16 +02:00
hristoterezov
c2f6c9f7bc Removes the "src" attribute dependancies. Fixes the issues with not displaying the large video and thumbnails clicking not working on firefox. 2014-11-21 15:29:05 +02:00
George Politis
2004b6ef18 Fixes an issue where the pinned video src was getting set when it shouldn't. 2014-11-21 11:29:37 +01:00
George Politis
1ac99309e7 Hooks up participant pinning into lastN functionality. 2014-11-20 16:52:52 +01:00
George Politis
de7cc0b52b Implements local lastN set. 2014-11-20 16:52:52 +01:00
George Politis
bc6b48cce9 Fixes issue with adaptive lastN 2014-11-20 16:52:52 +01:00
George Politis
982c8cbfac Reverts 3c21b09fa4 2014-11-18 17:26:43 +01:00
George Politis
3fc819d12e Edits comment. 2014-11-18 17:23:28 +01:00
hristoterezov
96824e60ab Implements workaround for the issues in firefox nightly. 2014-11-18 18:12:12 +02:00
hristoterezov
46074dbd8c Merge pull request #195 from nwittstruck/api-events
Add https support for API
2014-11-17 17:41:03 +02:00
Nicholas Wittstruck
a4192b58db ssl support 2014-11-17 16:23:29 +01:00
Damian Minkov
c5bf2f86ca Fixes purge jitsi-meet-prosody (missing debconf configs). 2014-11-17 12:16:34 +02:00
Damian Minkov
13846b022c Fixes configuring certs if files already placed in /etc/ssl. 2014-11-17 11:44:24 +02:00
Damian Minkov
7475b3a66a Fixes purging config for jitsi-meet-prosody. 2014-11-17 11:44:23 +02:00
Boris Grozev
3239813ce7 Fix a double variable declaration. 2014-11-14 21:18:06 +02:00
Boris Grozev
d97a8c63f9 Fix converting a format with multiple parameters from Jingle to SDP. 2014-11-14 21:17:39 +02:00
hristoterezov
2e26c212a2 Fixes the issue with the chrome video that is not displayed in firefox. 2014-11-14 17:44:38 +02:00
hristoterezov
dd608080b3 Fixes the issue with not receiving video in chrome from firefox when trickle is enabled. 2014-11-14 13:56:02 +02:00
hristoterezov
f5189d5cdc Fixes firefox issues. The firefox video is displayed in chrome. 2014-11-14 12:13:26 +02:00
bgrozev
ab8e9ed87e Cleans the words list. 2014-11-13 22:46:44 +02:00
George Politis
78ef2a9266 Fixes simulcast on latest Chrome dev (40.0.2214.5). 2014-11-13 15:00:52 +01:00
bgrozev
071c01e644 Fix the direction string.
Used to return 'sendre' instead of 'sendrecv'.
2014-11-12 15:20:18 +02:00
George Politis
19e4955392 Fixes focus addSource/removeSource methods. 2014-11-12 11:41:11 +01:00
George Politis
3c21b09fa4 Fixes typo in comment. 2014-11-12 11:41:11 +01:00
hristoterezov
480d6f8c59 Enables the welcome page in config file. 2014-11-12 10:35:44 +02:00
George Politis
a0092b78ca Fixes desktop sharing when used with simulcast. 2014-11-11 15:50:46 +01:00
George Politis
ee1c221e6d Modifies a comment. 2014-11-11 10:26:34 +01:00
George Politis
1b5a3f08d2 Remove useless localStream field from NativeSimulcast and NoSimulcast classes. 2014-11-10 13:40:41 +01:00
George Politis
feffcd18de Improves simulcast logging. 2014-11-10 11:51:27 +01:00
George Politis
41fd416338 Don't add the x-goog-conference flag if there are no simulcast senders 2014-11-10 10:10:06 +01:00
George Politis
4a062e5f5c Don't add the x-goog-conference flag if there are no simulcast senders 2014-11-10 10:03:22 +01:00
bgrozev
1dab88e06a Merge pull request #191 from nwittstruck/master
Fixed typo - incoming instead of incomming
2014-11-08 17:05:08 +02:00
Nicholas Wittstruck
a6277b810e fixed typo 2014-11-08 15:41:16 +01:00
fo
5c9f4ba65b Changes the colors of the links in the chat. 2014-11-06 16:30:07 +02:00
hristoterezov
aa5c2c11ad Removes the chrome check. Fixes some minor firefox compatibility issues. 2014-11-06 15:54:47 +02:00
fo
1057c6dd0d Removes the notifications for entering/leaving lastN. 2014-11-06 13:04:04 +02:00
hristoterezov
32e6a9a5d1 Merge pull request #189 from Zalmoxisus/master
Escape tags to fix issue #182
2014-11-06 11:10:42 +02:00
Philipp Hancke
4a115ee215 remove old ssrc code as well 2014-11-05 18:56:31 -08:00
Philipp Hancke
6c7dac23ec remove old bundle plan 2014-11-05 12:18:20 -08:00
Zalmoxisus
6a489de167 Escape tags to fix issue #182 2014-11-05 12:45:55 +02:00
fo
f2a310f6c3 Adds notifications when a user joins/leaves or is added/removed from lastN. 2014-11-05 10:57:27 +02:00
hristoterezov
6861dc967f Removes "," from the last element in config.js 2014-11-04 16:15:34 +02:00
hristoterezov
cbb3b78d9a Removes brand.js 2014-11-04 16:14:02 +02:00
George Politis
ee44ed5749 Adds config.adaptiveSimulcast, a new bool option that optionally enables simulcast adaptivity. 2014-11-04 14:27:23 +01:00
fo
74f158128e Makes the number of participants blue. 2014-11-03 16:55:45 +02:00
George Politis
82f51517af Bumps simulcast.js and videolayout.js version numbers. 2014-10-31 11:49:18 +01:00
George Politis
e8de53413b Factors simulcast related code. 2014-10-31 11:17:41 +01:00
George Politis
68e6afbd61 Attempts to fix the resolution N/A problem. 2014-10-31 11:10:53 +01:00
George Politis
f7880c96ce Renames some variables in simulcast.js. 2014-10-31 11:08:30 +01:00
George Politis
4c04708a3a Adds hidden, and by default disabled, "displayJids" configuration option for debugging purposes. 2014-10-30 18:16:31 +01:00
Damian Minkov
5ce2ce8db6 Removes toggle lock icon, just lock or unlock it, depending the status returned by the server. 2014-10-30 17:32:03 +02:00
hristoterezov
f9daa25a6c Fixes the issue with the IPv6 addresses in connection quality tooltips. 2014-10-30 10:18:08 +02:00
hristoterezov
f3ac51ae66 Fixes the wrong values (NaN) in the connection tooltips. 2014-10-29 12:49:57 +02:00
Damian Minkov
de04bb8ef1 Changes the padlock to locked when a participant is entering a locked room and still haven't entered the key. We show padlock locked whenever the room requires a key to enter. 2014-10-28 14:46:06 +02:00
Damian Minkov
0f431eec5d Updates quick install. Removes some commands options for jigasi, which are no longer needed. 2014-10-28 10:13:18 +02:00
George Politis
af171612b8 Takes into account the fact that Chromium doesn't do native simulcast. 2014-10-27 20:53:08 +01:00
hristoterezov
a3d0050328 Implements support for events for the API. Adds toggleChat and toggleContactList commands. Renames filmStrip to toggleFilmStrip command. Fixes issues with removing the embedded Jitsi Meet. 2014-10-27 15:24:09 +02:00
fo
007564a1e5 Css adjustments. 2014-10-27 15:07:37 +02:00
fo
02d8f1a3ca Adds the number of participants to the contact list icon.
Adds glowing to the bottom toolbar chat button and the contact list button when a contact enters or leaves.
2014-10-27 14:02:15 +02:00
George Politis
e41c8eff14 Fixes issue with video pre-loading. 2014-10-27 12:09:24 +01:00
George Politis
fad08fdef0 Takes advantage of the smart simulcast layer escalation of the bridge to prevent blackness when we switch to a higher order layer. 2014-10-26 20:59:19 +01:00
Damian Minkov
a55e3f5d9d Fixes issue with unable to open second dialog on wrong room key entered. Still tests to come. Handle dialog action after the dialog is closed, otherwise the event for wrong key can come before the dialog is closed and will not be open again. 2014-10-24 16:33:48 +03:00
Damian Minkov
b35e8aaf93 Removes unused, duplicate code method. 2014-10-24 13:26:20 +03:00
Damian Minkov
1602af0229 Migrates jitsi-videobridge config file. 2014-10-23 16:38:59 +03:00
Yana Stamcheva
437f5a9a17 Tries to fix cursor placement problem in chat write area reported by Emil Ivov. 2014-10-23 13:38:38 +02:00
fo
aff8916618 Adds a style to the nick input field and hides the smiley button. 2014-10-23 14:33:45 +03:00
fo
67afdb3d45 Add missed js versions. 2014-10-23 13:23:00 +03:00
fo
54946909e6 Change the css theme of the chat. 2014-10-23 12:49:53 +03:00
Damian Minkov
8f9c6de0b6 Fixes purging configuration. 2014-10-23 11:14:54 +03:00
Damian Minkov
380cdcdd65 Adds dirs file. 2014-10-23 11:14:54 +03:00
Damian Minkov
9ee0dc26c4 Removed unused files. 2014-10-23 11:14:54 +03:00
Damian Minkov
75586431a4 Moves config.js in /etc/jitsi/meet. 2014-10-23 11:14:54 +03:00
Damian Minkov
ee324cf41f Adds prosody config to conf.avail and enable it in conf.d so we don't wipe prosody config on installing meet. 2014-10-23 11:14:53 +03:00
Damian Minkov
79a318d0e0 Adds dependency to jquery debian package. 2014-10-23 11:14:53 +03:00
Damian Minkov
d9d1f010ab Updates debian package with dependency to yui-compressor, which generates min versions of some libs (strophe plugins). 2014-10-23 11:14:53 +03:00
Philipp Hancke
0896930f65 add nack pli 2014-08-19 15:50:53 +02:00
257 changed files with 63429 additions and 14179 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.bundle.js -text -diff

5
.gitignore vendored
View File

@@ -1 +1,6 @@
node_modules
*.swp
.idea/
*.iml
.*.tmp
deploy-local.sh

215
LICENSE
View File

@@ -1,21 +1,202 @@
The MIT License (MIT)
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Copyright (c) 2013 ESTOS GmbH
Copyright (c) 2013 BlueJimp SARL
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
1. Definitions.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

27
Makefile Normal file
View File

@@ -0,0 +1,27 @@
NPM = npm
BROWSERIFY = browserify
GLOBAL_FLAGS = -x jquery -e
OUTPUT_DIR = .
DEPLOY_DIR = libs
all: compile deploy clean
compile:FLAGS = $(GLOBAL_FLAGS)
compile: app
debug: compile-debug deploy clean
compile-debug:FLAGS = -d $(GLOBAL_FLAGS)
compile-debug: app
app:
$(NPM) update && $(BROWSERIFY) $(FLAGS) app.js -s APP -o $(OUTPUT_DIR)/app.bundle.js
clean:
rm -f $(OUTPUT_DIR)/*.bundle.js
deploy:
mkdir -p $(DEPLOY_DIR) && \
cp $(OUTPUT_DIR)/*.bundle.js $(DEPLOY_DIR) && \
./bump-js-versions.sh && \
([ ! -x deploy-local.sh ] || ./deploy-local.sh)

View File

@@ -1,22 +1,52 @@
Jitsi Meet - Secure, Simple and Scalable Video Conferences
====
Jitsi Meet is an OpenSource (MIT) WebRTC JavaScript application that uses [Jitsi Videobridge](https://jitsi.org/videobridge) to provide high quality, scalable video conferences. You can see [Jitsi Meet in action](http://youtu.be/7vFUVClsNh0) here at the 482 session of the VoIP Users Conference.
Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses [Jitsi Videobridge](https://jitsi.org/videobridge) to provide high quality, scalable video conferences. You can see [Jitsi Meet in action](http://youtu.be/7vFUVClsNh0) here at the session #482 of the VoIP Users Conference.
You can also try it out yourself at https://meet.jit.si .
Jitsi Meet allows for very efficient collaboration. It allows users to stream their desktop or only some windows. It also supports shared document editing with Etherpad and remote presentations with Prezi.
## Install
## Installation
Installing Jitsi Meet is quite a simple experience even though it requires installing a few other components first, such as Jitsi Videobridge, a web server such as Nginx and an XMPP one like Prosody.
Installing Jitsi Meet is quite a simple experience. For Debian-based systems, we recommend following the [quick-install](https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md) document, which uses the package system.
You can find information on how to deploy Jitsi Meet in the [installation instructions](https://jitsi.org/meet/deploy)
For other systems, or if you wish to install all components manually, see the [detailed manual installation instructions](https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md).
You may also find it helpful to have a look at our sample [config files](https://github.com/jitsi/jitsi-meet/tree/master/doc/example-config-files/)
## Building the sources
Jitsi Meet uses [Browserify](http://browserify.org). If you want to make changes in the code you need to [install Browserify](http://browserify.org/#install). Browserify requires [nodejs](http://nodejs.org).
On Debian/Ubuntu systems, the required packages can be installed with:
```
sudo apt-get install npm
sudo npm install -g browserify
cd jitsi-meet
npm install
```
To build the Jitsi Meet application, just type
```
make
```
## Discuss
Please use the [Jitsi dev mailing list](http://lists.jitsi.org/pipermail/dev/) to discuss feature requests before opening an issue on github.
Please use the [Jitsi dev mailing list](http://lists.jitsi.org/pipermail/dev/) to discuss feature requests before opening an issue on Github.
## Acknowledgements
Jitsi Meet started out as a sample conferencing application using Jitsi Videobridge. It was originally developed by Philipp Hancke who then contributed it to the community where development continues with joint forces!
Jitsi Meet started out as a sample conferencing application using Jitsi Videobridge. It was originally developed by then ESTOS' developer Philipp Hancke who then contributed it to the community where development continues with joint forces!
## Miscellaneous
This project was originally contributed to the community under the MIT license and with the following notice:
The MIT License (MIT)
Copyright (c) 2013 ESTOS GmbH
Copyright (c) 2013 BlueJimp SARL
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,100 +0,0 @@
/**
* Implements API class that communicates with external api class
* and provides interface to access Jitsi Meet features by external
* applications that embed Jitsi Meet
*/
var APIConnector = (function () {
function APIConnector() { }
/**
* List of the available commands.
* @type {{
* displayName: inputDisplayNameHandler,
* muteAudio: toggleAudio,
* muteVideo: toggleVideo,
* filmStrip: toggleFilmStrip
* }}
*/
var commands =
{
displayName: VideoLayout.inputDisplayNameHandler,
muteAudio: toggleAudio,
muteVideo: toggleVideo,
filmStrip: BottomToolbar.toggleFilmStrip
};
/**
* Check whether the API should be enabled or not.
* @returns {boolean}
*/
APIConnector.isEnabled = function () {
var hash = location.hash;
if(hash && hash.indexOf("external") > -1 && window.postMessage)
return true;
return false;
};
/**
* Initializes the APIConnector. Setups message event listeners that will
* receive information from external applications that embed Jitsi Meet.
* It also sends a message to the external application that APIConnector
* is initialized.
*/
APIConnector.init = function () {
if (window.addEventListener)
{
window.addEventListener('message',
APIConnector.processMessage, false);
}
else
{
window.attachEvent('onmessage', APIConnector.processMessage);
}
APIConnector.sendMessage({loaded: true});
};
/**
* Sends message to the external application.
* @param object
*/
APIConnector.sendMessage = function (object) {
window.parent.postMessage(JSON.stringify(object), "*");
};
/**
* Processes a message event from the external application
* @param event the message event
*/
APIConnector.processMessage = function(event)
{
var message;
try {
message = JSON.parse(event.data);
} catch (e) {}
for(var key in message)
{
if(commands[key])
commands[key].apply(null, message[key]);
}
};
/**
* Removes the listeners.
*/
APIConnector.dispose = function () {
if(window.removeEventListener)
{
window.removeEventListener("message",
APIConnector.processMessage, false);
}
else
{
window.detachEvent('onmessage', APIConnector.processMessage);
}
};
return APIConnector;
})();

1621
app.js

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +0,0 @@
var BottomToolbar = (function (my) {
my.toggleChat = function() {
if (ContactList.isVisible()) {
buttonClick("#contactListButton", "active");
$('#contactlist').css('z-index', 4);
setTimeout(function() {
$('#contactlist').css('display', 'none');
$('#contactlist').css('z-index', 5);
}, 500);
}
buttonClick("#chatBottomButton", "active");
Chat.toggleChat();
};
my.toggleContactList = function() {
if (Chat.isVisible()) {
buttonClick("#chatBottomButton", "active");
setTimeout(function() {
$('#chatspace').css('display', 'none');
}, 500);
}
buttonClick("#contactListButton", "active");
ContactList.toggleContactList();
};
my.toggleFilmStrip = function() {
var filmstrip = $("#remoteVideos");
filmstrip.toggleClass("hidden");
};
$(document).bind("remotevideo.resized", function (event, width, height) {
var bottom = (height - $('#bottomToolbar').outerHeight())/2 + 18;
$('#bottomToolbar').css({bottom: bottom + 'px'});
});
return my;
}(BottomToolbar || {}));

View File

@@ -1,4 +0,0 @@
var brand =
{
appName: "Jitsi Meet"
}

34
bump-js-versions.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/sh
if ! which git > /dev/null 2>&1 ;then
echo "Cannot find git executable, not bumping js versions."
exit
fi
if ! git status > /dev/null 2>&1 ;then
echo "Not a git repository, not bumping js versions."
exit
fi
# This script finds all js files included from index.html which have been
# modified and bumps their version (the value of the "v" parameter used
# in index.html)
# contents of index.html at HEAD (excluding not-committed changes)
index=`git show HEAD:index.html`
# js files included from index.html. The sort needed for comm
jsfiles=.bump-js-versions-jsfiles.tmp
echo "$index" | grep '<script src=".*"' -o | sed -e 's/<script src="//' | sed -e 's/\?.*//' | tr -d \" | sort > $jsfiles
# modified files since the last commit
gitmodified=.bump-js-versions-gitmodified.tmp
git ls-files -m | sort > $gitmodified
for file in `comm -12 $jsfiles $gitmodified` ;do
old_version=`echo "$index" | grep "<script src=\"${file}?v=[0-9]*" -o | sed -e 's/.*v=//'| tr -d \"`
new_version=$((1+$old_version))
echo Bumping version of $file from $old_version to $new_version
sed -i.tmp -e "s%script src=\"${file}\?v=.*\"%script src=\"$file?v=$new_version\"%" index.html
done
rm -f $jsfiles $gitmodified index.html.tmp

354
chat.js
View File

@@ -1,354 +0,0 @@
/* global $, Util, connection, nickname:true, getVideoSize, getVideoPosition, showToolbar, processReplacements */
/**
* Chat related user interface.
*/
var Chat = (function (my) {
var notificationInterval = false;
var unreadMessages = 0;
/**
* Initializes chat related interface.
*/
my.init = function () {
var storedDisplayName = window.localStorage.displayname;
if (storedDisplayName) {
nickname = storedDisplayName;
Chat.setChatConversationMode(true);
}
$('#nickinput').keydown(function (event) {
if (event.keyCode === 13) {
event.preventDefault();
var val = Util.escapeHtml(this.value);
this.value = '';
if (!nickname) {
nickname = val;
window.localStorage.displayname = nickname;
connection.emuc.addDisplayNameToPresence(nickname);
connection.emuc.sendPresence();
Chat.setChatConversationMode(true);
return;
}
}
});
$('#usermsg').keydown(function (event) {
if (event.keyCode === 13) {
event.preventDefault();
var value = this.value;
$('#usermsg').val('').trigger('autosize.resize');
this.focus();
var command = new CommandsProcessor(value);
if(command.isCommand())
{
command.processCommand();
}
else
{
var message = Util.escapeHtml(value);
connection.emuc.sendMessage(message, nickname);
}
}
});
var onTextAreaResize = function () {
resizeChatConversation();
scrollChatToBottom();
};
$('#usermsg').autosize({callback: onTextAreaResize});
$("#chatspace").bind("shown",
function () {
unreadMessages = 0;
setVisualNotification(false);
});
};
/**
* Appends the given message to the chat conversation.
*/
my.updateChatConversation = function (from, displayName, message) {
var divClassName = '';
if (connection.emuc.myroomjid === from) {
divClassName = "localuser";
}
else {
divClassName = "remoteuser";
if (!Chat.isVisible()) {
unreadMessages++;
Util.playSoundNotification('chatNotification');
setVisualNotification(true);
}
}
//replace links and smileys
var escMessage = Util.escapeHtml(message);
var escDisplayName = Util.escapeHtml(displayName);
message = processReplacements(escMessage);
$('#chatconversation').append('<div class="' + divClassName + '"><b>' +
escDisplayName + ': </b>' +
message + '</div>');
$('#chatconversation').animate(
{ scrollTop: $('#chatconversation')[0].scrollHeight}, 1000);
};
/**
* Appends error message to the conversation
* @param errorMessage the received error message.
* @param originalText the original message.
*/
my.chatAddError = function(errorMessage, originalText)
{
errorMessage = Util.escapeHtml(errorMessage);
originalText = Util.escapeHtml(originalText);
$('#chatconversation').append('<div class="errorMessage"><b>Error: </b>'
+ 'Your message' + (originalText? (' \"'+ originalText + '\"') : "")
+ ' was not sent.' + (errorMessage? (' Reason: ' + errorMessage) : '')
+ '</div>');
$('#chatconversation').animate(
{ scrollTop: $('#chatconversation')[0].scrollHeight}, 1000);
};
/**
* Sets the subject to the UI
* @param subject the subject
*/
my.chatSetSubject = function(subject)
{
if(subject)
subject = subject.trim();
$('#subject').html(linkify(Util.escapeHtml(subject)));
if(subject == "")
{
$("#subject").css({display: "none"});
}
else
{
$("#subject").css({display: "block"});
}
};
/**
* Opens / closes the chat area.
*/
my.toggleChat = function () {
var chatspace = $('#chatspace');
var videospace = $('#videospace');
var chatSize = (Chat.isVisible()) ? [0, 0] : Chat.getChatSize();
var videospaceWidth = window.innerWidth - chatSize[0];
var videospaceHeight = window.innerHeight;
var videoSize
= getVideoSize(null, null, videospaceWidth, videospaceHeight);
var videoWidth = videoSize[0];
var videoHeight = videoSize[1];
var videoPosition = getVideoPosition(videoWidth,
videoHeight,
videospaceWidth,
videospaceHeight);
var horizontalIndent = videoPosition[0];
var verticalIndent = videoPosition[1];
var thumbnailSize = VideoLayout.calculateThumbnailSize(videospaceWidth);
var thumbnailsWidth = thumbnailSize[0];
var thumbnailsHeight = thumbnailSize[1];
var completeFunction = Chat.isVisible() ?
function() {} : function () {
scrollChatToBottom();
chatspace.trigger('shown');
};
videospace.animate({right: chatSize[0],
width: videospaceWidth,
height: videospaceHeight},
{queue: false,
duration: 500,
complete: completeFunction});
$('#remoteVideos').animate({height: thumbnailsHeight},
{queue: false,
duration: 500});
$('#remoteVideos>span').animate({height: thumbnailsHeight,
width: thumbnailsWidth},
{queue: false,
duration: 500,
complete: function() {
$(document).trigger(
"remotevideo.resized",
[thumbnailsWidth,
thumbnailsHeight]);
}});
$('#largeVideoContainer').animate({ width: videospaceWidth,
height: videospaceHeight},
{queue: false,
duration: 500
});
$('#largeVideo').animate({ width: videoWidth,
height: videoHeight,
top: verticalIndent,
bottom: verticalIndent,
left: horizontalIndent,
right: horizontalIndent},
{ queue: false,
duration: 500
}
);
if (Chat.isVisible()) {
chatspace.hide("slide", { direction: "right",
queue: false,
duration: 500});
}
else {
// Undock the toolbar when the chat is shown and if we're in a
// video mode.
if (VideoLayout.isLargeVideoVisible()) {
ToolbarToggler.dockToolbar(false);
}
chatspace.show("slide", { direction: "right",
queue: false,
duration: 500,
complete: function () {
// Request the focus in the nickname field or the chat input field.
if ($('#nickname').css('visibility') === 'visible') {
$('#nickinput').focus();
} else {
$('#usermsg').focus();
}
}
});
}
};
/**
* Sets the chat conversation mode.
*/
my.setChatConversationMode = function (isConversationMode) {
if (isConversationMode) {
$('#nickname').css({visibility: 'hidden'});
$('#chatconversation').css({visibility: 'visible'});
$('#usermsg').css({visibility: 'visible'});
$('#usermsg').focus();
}
};
/**
* Resizes the chat area.
*/
my.resizeChat = function () {
var chatSize = Chat.getChatSize();
$('#chatspace').width(chatSize[0]);
$('#chatspace').height(chatSize[1]);
resizeChatConversation();
};
/**
* Returns the size of the chat.
*/
my.getChatSize = function () {
var availableHeight = window.innerHeight;
var availableWidth = window.innerWidth;
var chatWidth = 200;
if (availableWidth * 0.2 < 200)
chatWidth = availableWidth * 0.2;
return [chatWidth, availableHeight];
};
/**
* Indicates if the chat is currently visible.
*/
my.isVisible = function () {
return $('#chatspace').is(":visible");
};
/**
* Resizes the chat conversation.
*/
function resizeChatConversation() {
var usermsgStyleHeight = document.getElementById("usermsg").style.height;
var usermsgHeight = usermsgStyleHeight
.substring(0, usermsgStyleHeight.indexOf('px'));
$('#usermsg').width($('#chatspace').width() - 10);
$('#chatconversation').width($('#chatspace').width() - 10);
$('#chatconversation')
.height(window.innerHeight - 10 - parseInt(usermsgHeight));
}
/**
* Shows/hides a visual notification, indicating that a message has arrived.
*/
function setVisualNotification(show) {
var unreadMsgElement = document.getElementById('unreadMessages');
var glower = $('#chatButton');
if (unreadMessages) {
unreadMsgElement.innerHTML = unreadMessages.toString();
ToolbarToggler.dockToolbar(true);
var chatButtonElement
= document.getElementById('chatButton').parentNode;
var leftIndent = (Util.getTextWidth(chatButtonElement) -
Util.getTextWidth(unreadMsgElement)) / 2;
var topIndent = (Util.getTextHeight(chatButtonElement) -
Util.getTextHeight(unreadMsgElement)) / 2 - 3;
unreadMsgElement.setAttribute(
'style',
'top:' + topIndent +
'; left:' + leftIndent + ';');
if (!glower.hasClass('icon-chat-simple')) {
glower.removeClass('icon-chat');
glower.addClass('icon-chat-simple');
}
}
else {
unreadMsgElement.innerHTML = '';
glower.removeClass('icon-chat-simple');
glower.addClass('icon-chat');
}
if (show && !notificationInterval) {
notificationInterval = window.setInterval(function () {
glower.toggleClass('active');
}, 800);
}
else if (!show && notificationInterval) {
window.clearInterval(notificationInterval);
notificationInterval = false;
glower.removeClass('active');
}
}
/**
* Scrolls chat to the bottom.
*/
function scrollChatToBottom() {
setTimeout(function () {
$('#chatconversation').scrollTop(
$('#chatconversation')[0].scrollHeight);
}, 5);
}
return my;
}(Chat || {}));

View File

@@ -1,20 +0,0 @@
<html>
<head>
<title>Jitsi Meet: Unsupported Browser</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/chromeonly.css" />
</head>
<body>
<!-- wrap starts here -->
<div id="wrap">
<a href="http://google.com/chrome"><div id="left"></div></a>
<div id="middle"></div>
<div id="text">
<p>This application is currently only supported by <a href="http://google.com/chrome">Chrome</a>, <a href="http://www.chromium.org/">Chromium</a> and <a href="http://www.opera.com">Opera</a></p>
<p><a href="http://google.com/chrome">Download Chrome</a></p>
<p class="firefox">We are hoping that <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=977864">multistream support</a> for Firefox would not be long so that we could all use this application with our favorite browser.</p>
</div>
<!-- wrap ends here -->
</div>
</body>
</html>

View File

@@ -1,98 +0,0 @@
/**
* Handles commands received via chat messages.
*/
var CommandsProcessor = (function()
{
/**
* Constructs new CommandProccessor instance from a message.
* @param message the message
* @constructor
*/
function CommandsPrototype(message)
{
/**
* Extracts the command from the message.
* @param message the received message
* @returns {string} the command
*/
function getCommand(message)
{
if(message)
{
for(var command in commands)
{
if(message.indexOf("/" + command) == 0)
return command;
}
}
return "";
};
var command = getCommand(message);
/**
* Returns the name of the command.
* @returns {String} the command
*/
this.getCommand = function()
{
return command;
}
var messageArgument = message.substr(command.length + 2);
/**
* Returns the arguments of the command.
* @returns {string}
*/
this.getArgument = function()
{
return messageArgument;
}
}
/**
* Checks whether this instance is valid command or not.
* @returns {boolean}
*/
CommandsPrototype.prototype.isCommand = function()
{
if(this.getCommand())
return true;
return false;
}
/**
* Processes the command.
*/
CommandsPrototype.prototype.processCommand = function()
{
if(!this.isCommand())
return;
commands[this.getCommand()](this.getArgument());
}
/**
* Processes the data for topic command.
* @param commandArguments the arguments of the topic command.
*/
var processTopic = function(commandArguments)
{
var topic = Util.escapeHtml(commandArguments);
connection.emuc.setSubject(topic);
}
/**
* List with supported commands. The keys are the names of the commands and
* the value is the function that processes the message.
* @type {{String: function}}
*/
var commands = {
"topic" : processTopic
};
return CommandsPrototype;
})();

View File

@@ -1,10 +1,13 @@
var config = {
// configLocation: './config.json', // see ./modules/HttpConfigFetch.js
hosts: {
domain: 'jitsi-meet.example.com',
//anonymousdomain: 'guest.example.com',
muc: 'conference.jitsi-meet.example.com', // FIXME: use XEP-0030
bridge: 'jitsi-videobridge.jitsi-meet.example.com', // FIXME: use XEP-0030
//call_control: 'callcontrol.jitsi-meet.example.com'
//jirecon: 'jirecon.jitsi-meet.example.com',
//call_control: 'callcontrol.jitsi-meet.example.com',
//focus: 'focus.jitsi-meet.example.com' - defaults to 'focus.jitsi-meet.example.com'
},
// getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
// useStunTurn: true, // use XEP-0215 to fetch STUN and TURN server
@@ -12,19 +15,30 @@ var config = {
useNicks: false,
bosh: '//jitsi-meet.example.com/http-bind', // FIXME: use xep-0156 for that
clientNode: 'http://jitsi.org/jitsimeet', // The name of client node advertised in XEP-0115 'c' stanza
//focusUserJid: 'focus@auth.jitsi-meet.example.com', // The real JID of focus participant - can be overridden here
//defaultSipNumber: '', // Default SIP number
desktopSharing: 'ext', // Desktop sharing method. Can be set to 'ext', 'webrtc' or false to disable.
chromeExtensionId: 'diibjkoicjeejcmhdnailmkgecihlobk', // Id of desktop streamer Chrome extension
desktopSharingSources: ['screen', 'window'],
minChromeExtVersion: '0.1', // Required version of Chrome extension
enableRtpStats: true, // Enables RTP stats processing
openSctp: true, // Toggle to enable/disable SCTP channels
disableStats: false,
disableAudioLevels: false,
channelLastN: -1, // The default value of the channel attribute last-n.
adaptiveLastN: false,
useRtcpMux: true,
useBundle: true,
adaptiveSimulcast: false,
enableRecording: false,
enableWelcomePage: false,
enableSimulcast: false,
isBrand: false
enableWelcomePage: true,
enableSimulcast: false, // blocks FF support
logStats: false, // Enable logging of PeerConnection stats via the focus
// requireDisplayName: true,//Forces the participants that doesn't have display name to enter it when they enter the room.
// startAudioMuted: 10, //every participant after the Nth will start audio muted
// startVideoMuted: 10, //every participant after the Nth will start video muted
// defaultLanguage: "en",
// To enable sending statistics to callstats.io you should provide Applicaiton ID and Secret.
// callStatsID: "",//Application ID for callstats.io API
// callStatsSecret: ""//Secret for callstats.io API
/*noticeMessage: 'Service update is scheduled for 16th March 2015. ' +
'During that time service will not be available. ' +
'Apologise for inconvenience.'*/
};

View File

@@ -1,120 +0,0 @@
var ConnectionQuality = (function () {
/**
* Constructs new ConnectionQuality object
* @constructor
*/
function ConnectionQuality() {
}
/**
* local stats
* @type {{}}
*/
var stats = {};
/**
* remote stats
* @type {{}}
*/
var remoteStats = {};
/**
* Interval for sending statistics to other participants
* @type {null}
*/
var sendIntervalId = null;
/**
* Updates the local statistics
* @param data new statistics
*/
ConnectionQuality.updateLocalStats = function (data) {
stats = data;
VideoLayout.updateLocalConnectionStats(100 - stats.packetLoss.total,stats);
if(sendIntervalId == null)
{
startSendingStats();
}
};
/**
* Start statistics sending.
*/
function startSendingStats() {
sendStats();
sendIntervalId = setInterval(sendStats, 10000);
}
/**
* Sends statistics to other participants
*/
function sendStats() {
connection.emuc.addConnectionInfoToPresence(convertToMUCStats(stats));
connection.emuc.sendPresence();
}
/**
* Converts statistics to format for sending through XMPP
* @param stats the statistics
* @returns {{bitrate_donwload: *, bitrate_uplpoad: *, packetLoss_total: *, packetLoss_download: *, packetLoss_upload: *}}
*/
function convertToMUCStats(stats) {
return {
"bitrate_download": stats.bitrate.download,
"bitrate_upload": stats.bitrate.upload,
"packetLoss_total": stats.packetLoss.total,
"packetLoss_download": stats.packetLoss.download,
"packetLoss_upload": stats.packetLoss.upload
};
}
/**
* Converts statitistics to format used by VideoLayout
* @param stats
* @returns {{bitrate: {download: *, upload: *}, packetLoss: {total: *, download: *, upload: *}}}
*/
function parseMUCStats(stats) {
return {
bitrate: {
download: stats.bitrate_download,
upload: stats.bitrate_upload
},
packetLoss: {
total: stats.packetLoss_total,
download: stats.packetLoss_download,
upload: stats.packetLoss_upload
}
};
}
/**
* Updates remote statistics
* @param jid the jid associated with the statistics
* @param data the statistics
*/
ConnectionQuality.updateRemoteStats = function (jid, data) {
if(data == null || data.packetLoss_total == null)
{
VideoLayout.updateConnectionStats(jid, null, null);
return;
}
remoteStats[jid] = parseMUCStats(data);
VideoLayout.updateConnectionStats(jid, 100 - data.packetLoss_total,remoteStats[jid]);
};
/**
* Stops statistics sending.
*/
ConnectionQuality.stopSendingStats = function () {
clearInterval(sendIntervalId);
sendIntervalId = null;
//notify UI about stopping statistics gathering
VideoLayout.onStatsStop();
};
return ConnectionQuality;
})();

View File

@@ -1,219 +0,0 @@
/**
* Contact list.
*/
var ContactList = (function (my) {
/**
* Indicates if the chat is currently visible.
*
* @return <tt>true</tt> if the chat is currently visible, <tt>false</tt> -
* otherwise
*/
my.isVisible = function () {
return $('#contactlist').is(":visible");
};
/**
* Adds a contact for the given peerJid if such doesn't yet exist.
*
* @param peerJid the peerJid corresponding to the contact
*/
my.ensureAddContact = function(peerJid) {
var resourceJid = Strophe.getResourceFromJid(peerJid);
var contact = $('#contactlist>ul>li[id="' + resourceJid + '"]');
if (!contact || contact.length <= 0)
ContactList.addContact(peerJid);
};
/**
* Adds a contact for the given peer jid.
*
* @param peerJid the jid of the contact to add
*/
my.addContact = function(peerJid) {
var resourceJid = Strophe.getResourceFromJid(peerJid);
var contactlist = $('#contactlist>ul');
var newContact = document.createElement('li');
newContact.id = resourceJid;
newContact.className = "clickable";
newContact.onclick = function(event) {
if(event.currentTarget.className === "clickable") {
var jid = event.currentTarget.id;
var videoContainer = $("#participant_" + jid);
if (videoContainer.length > 0) {
videoContainer.click();
} else if (jid == Strophe.getResourceFromJid(connection.emuc.myroomjid)) {
$("#localVideoContainer").click();
}
}
};
newContact.appendChild(createAvatar());
newContact.appendChild(createDisplayNameParagraph("Participant"));
var clElement = contactlist.get(0);
if (resourceJid === Strophe.getResourceFromJid(connection.emuc.myroomjid)
&& $('#contactlist>ul .title')[0].nextSibling.nextSibling)
{
clElement.insertBefore(newContact,
$('#contactlist>ul .title')[0].nextSibling.nextSibling);
}
else {
clElement.appendChild(newContact);
}
};
/**
* Removes a contact for the given peer jid.
*
* @param peerJid the peerJid corresponding to the contact to remove
*/
my.removeContact = function(peerJid) {
var resourceJid = Strophe.getResourceFromJid(peerJid);
var contact = $('#contactlist>ul>li[id="' + resourceJid + '"]');
if (contact && contact.length > 0) {
var contactlist = $('#contactlist>ul');
contactlist.get(0).removeChild(contact.get(0));
}
};
/**
* Opens / closes the contact list area.
*/
my.toggleContactList = function () {
var contactlist = $('#contactlist');
var videospace = $('#videospace');
var chatSize = (ContactList.isVisible()) ? [0, 0] : Chat.getChatSize();
var videospaceWidth = window.innerWidth - chatSize[0];
var videospaceHeight = window.innerHeight;
var videoSize
= getVideoSize(null, null, videospaceWidth, videospaceHeight);
var videoWidth = videoSize[0];
var videoHeight = videoSize[1];
var videoPosition = getVideoPosition(videoWidth,
videoHeight,
videospaceWidth,
videospaceHeight);
var horizontalIndent = videoPosition[0];
var verticalIndent = videoPosition[1];
var thumbnailSize = VideoLayout.calculateThumbnailSize(videospaceWidth);
var thumbnailsWidth = thumbnailSize[0];
var thumbnailsHeight = thumbnailSize[1];
var completeFunction = ContactList.isVisible() ?
function() {} : function () { contactlist.trigger('shown');};
videospace.animate({right: chatSize[0],
width: videospaceWidth,
height: videospaceHeight},
{queue: false,
duration: 500,
complete: completeFunction
});
$('#remoteVideos').animate({height: thumbnailsHeight},
{queue: false,
duration: 500});
$('#remoteVideos>span').animate({height: thumbnailsHeight,
width: thumbnailsWidth},
{queue: false,
duration: 500,
complete: function() {
$(document).trigger(
"remotevideo.resized",
[thumbnailsWidth,
thumbnailsHeight]);
}});
$('#largeVideoContainer').animate({ width: videospaceWidth,
height: videospaceHeight},
{queue: false,
duration: 500
});
$('#largeVideo').animate({ width: videoWidth,
height: videoHeight,
top: verticalIndent,
bottom: verticalIndent,
left: horizontalIndent,
right: horizontalIndent},
{ queue: false,
duration: 500
});
if (ContactList.isVisible()) {
$('#contactlist').hide("slide", { direction: "right",
queue: false,
duration: 500});
} else {
// Undock the toolbar when the chat is shown and if we're in a
// video mode.
if (VideoLayout.isLargeVideoVisible())
ToolbarToggler.dockToolbar(false);
$('#contactlist').show("slide", { direction: "right",
queue: false,
duration: 500});
}
};
/**
* Creates the avatar element.
*
* @return the newly created avatar element
*/
function createAvatar() {
var avatar = document.createElement('i');
avatar.className = "icon-avatar avatar";
return avatar;
};
/**
* Creates the display name paragraph.
*
* @param displayName the display name to set
*/
function createDisplayNameParagraph(displayName) {
var p = document.createElement('p');
p.innerHTML = displayName;
return p;
};
/**
* Indicates that the display name has changed.
*/
$(document).bind( 'displaynamechanged',
function (event, peerJid, displayName) {
if (peerJid === 'localVideoContainer')
peerJid = connection.emuc.myroomjid;
var resourceJid = Strophe.getResourceFromJid(peerJid);
var contactName = $('#contactlist #' + resourceJid + '>p');
if (contactName && displayName && displayName.length > 0)
contactName.html(displayName);
});
my.setClickable = function(resourceJid, isClickable) {
var contact = $('#contactlist>ul>li[id="' + resourceJid + '"]');
if(isClickable) {
contact.addClass('clickable');
} else {
contact.removeClass('clickable');
}
};
return my;
}(ContactList || {}));

239
css/chat.css Normal file
View File

@@ -0,0 +1,239 @@
#chatspace {
background-color: black;
border-left: 1px solid #424242;
}
#chatspace * {
-webkit-user-select: text;
user-select: text;
}
#chatconversation {
visibility: hidden;
position: relative;
top: 5px;
padding: 5px;
text-align: left;
line-height: 20px;
font-size: 10pt;
width: 100%;
height: 90%;
overflow-y: scroll;
overflow-x: hidden;
word-wrap: break-word;
}
.localuser {
color: #087dba;
}
.errorMessage {
color: red;
}
.remoteuser {
color: white;
}
#usermsg {
visibility:hidden;
position: absolute;
bottom: 0px;
right: 0px;
width: 83%;
height: 30px;
padding: 5px 5px 5px 0px;
max-height:150px;
min-height:35px;
border: 0px none;
background: #3a3a3a;
color: #a7a7a7;
box-shadow: none;
border-radius:0;
font-size: 10pt;
line-height: 30px;
overflow: hidden;
resize: none;
}
#usermsg:hover {
border: 0px none;
box-shadow: none;
}
#nickname {
position: absolute;
text-align: center;
color: #9d9d9d;
font-size: 18px;
top: 100px;
left: 5px;
right: 5px;
width: 95%;
}
#nickinput {
margin-top: 20px;
font-size: 14px;
background: #3a3a3a;
box-shadow: inset 0 0 3px 2px #a7a7a7;
border: 1px solid #a7a7a7;
color: #a7a7a7;
}
#unreadMessages {
font-size: 8px;
position: absolute;
left: 46%;
top: 27%
}
#bottomUnreadMessages {
top: 5px;
left: 10px;
position: absolute;
font-size: 8px;
}
#chatspace .username {
float: left;
padding-left: 5px;
font-weight: bold;
}
#chatspace .timestamp {
float: right;
padding-right: 5px;
font-size: 11px;
}
#chatspace .usermessage {
padding-top: 20px;
padding-left: 5px;
}
.chatArrow {
position: absolute;
height: 15px;
left: 5px;
}
.chatmessage {
background: #3a3a3a;
width: 93%;
margin-left: 5%;
margin-right: auto;
border-radius: 5px;
border-top-left-radius: 0px;
margin-top: 3px;
left: 5px;
color: #a7a7a7;
overflow: hidden;
padding-bottom: 3px;
}
.smiley {
height: 26px;
}
#smileys {
position: absolute;
bottom: 7px;
right: 5px;
background: white;
border-radius: 50px;
height: 26px;
margin: auto;
cursor: pointer;
}
#smileys img {
width: 22px;
padding: 2px;
}
#smileysarea {
position: absolute;
bottom: 0px;
left: 0px;
width: 17%;
min-width: 31px;
height: 40px;
padding: 0px;
max-height:150px;
min-height:35px;
border: 0px none;
background: #3a3a3a;
overflow: hidden;
visibility: hidden;
}
#smileysContainer {
display: none;
position: absolute;
background: #3a3a3a;
border-bottom: 1px solid;
border-top: 1px solid;
width: 100%;
bottom: 10%;
}
#smileysContainer .smiley {
padding: 7px;
}
.smileyContainer {
width: 40px;
height: 40px;
display: inline-block;
}
.smileyContainer:hover {
background: #3e3e3e;
}
#usermsg::-webkit-input-placeholder {
line-height: 30px;
}
::-webkit-scrollbar {
background: #06a5df;
width: 7px;
}
::-webkit-scrollbar-button {
display: none;
}
::-webkit-scrollbar-track {
background: black;
}
::-webkit-scrollbar-track-piece {
background: black;
}
::-webkit-scrollbar-thumb {
background: #06a5df;
border-radius: 4px;
}
#usermsg::-webkit-scrollbar-track-piece {
background: #3a3a3a;
}
a:link {
color: rgb(184, 184, 184);
}
a:visited {
color: white;
}
a:hover {
color: rgb(213, 213, 213);
}
a:active {
color: black;
}

View File

@@ -1,54 +0,0 @@
body {
width:100%;
height:100%;
background-color: white;
color: #424242;
font-family:'YanoneKaffeesatzLight',Verdana,Tahoma,Arial;
margin:0;
padding:0;
}
#wrap{
display: block;
position: absolute;
width:900px;
height: 262px;
overflow:hidden;
text-align: center;
margin: auto;
top: 0; left: 0; bottom: 0; right: 0;
}
#left{
display:inline-block;
background-image:url(../images/chromelogo.png);
background-repeat:no-repeat;
width:246px;
height:262px;
float: left;
}
.firefox{
font-size: 11pt;
color: #c8c8c8;
}
#middle{
display:inline-block;
background-image:url(../images/chromepointer.png);
background-repeat:no-repeat;
width:53px;
height:262px;
float: left;
}
#text{
display:inline-block;
font-size: 18pt;
width: 560px;
vertical-align:middle;
padding-top: 30px;
}
a {
color: #087dba;
text-decoration:none;
}

View File

@@ -3,12 +3,27 @@
cursor: default;
}
#contactlist>ul {
margin: 0px;
padding: 0px;
#contactlist>div.title {
text-align: left;
padding: 7px 10px;
margin: 2px;
color: #00ccff;
font-size: 11pt;
border-bottom: 1px solid #676767;
}
#contactlist>ul>li {
#contactlist>ul#contacts {
position: absolute;
top: 31px;
bottom: 0px;
width: 100%;
margin: 0px;
padding: 0px;
overflow-y: scroll;
overflow-x: hidden;
}
#contacts>li {
list-style-type: none;
text-align: left;
color: #FFF;
@@ -17,23 +32,18 @@
margin: 2px;
}
#contactlist>ul>li>p {
#contacts>li>p {
display: inline-block;
vertical-align: middle;
margin: 0px;
}
#contactlist>ul>li.title {
color: #00ccff;
font-size: 11pt;
border-bottom: 1px solid #676767;
}
.avatar {
padding: 0px;
margin-right: 10px;
vertical-align: middle;
font-size: 22pt;
border-radius: 20px;
}
#contactlist .clickable {

View File

@@ -23,6 +23,7 @@
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-contactList:before {
content: "\e615";
}
@@ -41,6 +42,9 @@
.icon-recEnable:before {
content: "\e614";
}
.icon-authenticate:before {
content: "\e1ae";
}
.icon-kick1:before {
content: "\e60f";
}
@@ -111,4 +115,12 @@
.icon-connection:before {
line-height: normal;
content: "\e61a";
}
}
.icon-settings:before {
content: "\e61b";
}
.icon-dialPad:before {
content: "\e61c";
}

View File

@@ -99,5 +99,7 @@
width: 90px;
height: 16px;
padding-top: 4px;
padding-left: 10px;
padding-right: 10px;
margin: 15px auto 0px auto;
}

61
css/login_menu.css Normal file
View File

@@ -0,0 +1,61 @@
/*Initialize*/
ul.loginmenu {
display:none;
position: absolute;
margin: 0;
padding: 5px;
padding-bottom: 7px;
top: 45px;
left: -5px;
background-color: rgba(0,0,0,0.9);
border: 1px solid rgba(256, 256, 256, 0.2);
border-radius:8px;
}
ul.loginmenu li {
list-style-type: none;
padding: 7px;
}
ul.loginmenu li.identity {
color: #fff;
font-size: 11pt;
cursor: default;
}
ul.loginmenu:after {
content: url('../images/dropdownPointer.png');
display: block;
position: absolute;
top: -7px;
left: 18px;
}
li a.authButton{
background-color: #06a5df;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 29px;
padding-right: 29px;
border-radius: 4px;
color: #fff;
font-size: 11pt;
cursor: pointer;
}
span.authentication:hover ul.loginmenu, ul.loginmenu:hover {
display:block !important;
}
a.disabled {
color: gray !important;
pointer-events: none;
}
.loginmenuPadding {
width: 50px;
height: 30px;
position: absolute;
top: -30px;
left: 0px;
}

View File

@@ -13,8 +13,7 @@ html, body{
overflow-x: hidden;
}
#chatspace,
#contactlist {
.right-panel {
display:none;
position:absolute;
float: right;
@@ -30,109 +29,39 @@ html, body{
z-index: 5;
}
#chatspace {
background-color:#FFF;
border-left:1px solid #424242;
}
#chatspace * {
-webkit-user-select: text;
user-select: text;
}
#chatconversation {
visibility: hidden;
position: relative;
top: 5px;
padding: 5px;
text-align: left;
line-height: 20px;
font-size: 10pt;
width: 100%;
height: 95%;
overflow-y: scroll;
overflow-x: hidden;
word-wrap: break-word;
}
.localuser {
color: #087dba;
}
.errorMessage {
color: red;
}
.remoteuser {
color: #424242;
}
#usermsg {
visibility:hidden;
position: relative;
width: 100%;
height: 5%;
padding: 5px;
max-height:150px;
min-height:50px;
border: 0px none;
border-top: 1px solid #cccccc;
background: #FFFFFF;
box-shadow: none;
border-radius:0;
font-size: 10pt;
overflow: hidden;
}
#usermsg:hover {
border: 0px none;
border-top: 1px solid #cccccc;
box-shadow: none;
}
#nickname {
position: absolute;
text-align: center;
color: #9d9d9d;
font-size: 18;
top: 100px;
left: 5px;
right: 5px;
width: 95%;
}
#nickinput {
margin-top: 20px;
font-size: 14;
}
#settings {
display:none;
}
#nowebrtc {
display:none;
}
#settingsButton {
visibility: hidden;
}
.toolbar_span {
display: inline-block;
position: relative;
}
#toolbar a.button::after {
content: '';
display: inline-block;
position: absolute;
left: 40px;
width: 1px;
height: 20px;
background: #373737;
}
#toolbar a.button:last-child::after {
content: none;
}
.button {
display: inline-block;
position: relative;
color: #FFFFFF;
top: 0px;
padding: 10px 0px;
top: 0;
padding: 10px 0;
width: 38px;
cursor: pointer;
font-size: 11pt;
text-align: center;
text-shadow: 0px 1px 0px rgba(255,255,255,.3), 0px -1px 0px rgba(0,0,0,.6);
text-shadow: 0 1px 0 rgba(255,255,255,.3), 0 -1px 0 rgba(0,0,0,.6);
z-index: 1;
}
@@ -145,13 +74,13 @@ html, body{
cursor: pointer;
}
#chatButton {
#toolbar_button_chat, #chatBottomButton, #contactListButton, #numberOfParticipants {
-webkit-transition: all .5s ease-in-out;
-moz-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
}
/*#ffde00*/
#chatButton.active {
#toolbar_button_chat.active, #contactListButton.glowing, #chatBottomButton.glowing {
-webkit-text-shadow: -1px 0 10px #00ccff,
0 1px 10px #00ccff,
1px 0 10px #00ccff,
@@ -166,13 +95,36 @@ html, body{
0 -1px 10px #00ccff;
}
#recordButton {
#toolbar_button_hangup {
color: #ff0000;
font-size: 1.4em;
}
#numberOfParticipants {
position: absolute;
top: 0px;
right: -1;
color: white;
width: 13px;
height: 13px;
line-height: 13px;
font-weight: bold;
border-radius: 2px;
font-size: 11px;
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}
#contactListButton.active #numberOfParticipants {
color: #00ccff;
}
#toolbar_button_record {
-webkit-transition: all .5s ease-in-out;
-moz-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
}
/*#ffde00*/
#recordButton.active {
#toolbar_button_record.active {
-webkit-text-shadow: -1px 0 10px #00ccff,
0 1px 10px #00ccff,
1px 0 10px #00ccff,
@@ -221,6 +173,8 @@ a.bottomToolbarButton:hover {
}
input[type='text'], input[type='password'], textarea {
-webkit-user-select: text;
user-select: text;
display: inline-block;
font-size: 14px;
padding: 5px;
@@ -368,3 +322,56 @@ form {
text-decoration: none;
z-index: 100;
}
#toast-container.notification-bottom-right {
bottom: 120px;
right: 5px;
}
#toast-container.notification-bottom-right-center {
right: 205px;
}
#toast-container .toast-info {
-webkit-box-shadow: none;
box-shadow: none;
}
.toast-close-button {
right: -7px;
top: -19px;
}
#toast-container .toast-info {
background-color: black;
border: 1px solid #3a3a3a;
width: 220px;
padding: 10px 10px 10px 50px;
}
.connected {
color: forestgreen;
font-size: 12px;
}
.disconnected {
color: darkred;
font-size: 12px;
}
.lastN {
color: #a3a3a3;
font-size: 12px;
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #ffffff;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
}
.toast-message .nickname {
font-weight: bold;
}

View File

@@ -26,4 +26,9 @@
button.jqidefaultbutton #inviteLinkRef {
color: #2c8ad2;
}
#inviteLinkRef {
-webkit-user-select: text;
user-select: text;
}

11
css/notice.css Normal file
View File

@@ -0,0 +1,11 @@
#notice {
position: relative;
z-index: 3;
margin-top: 6px;
}
#noticeText {
background-color: #000000;
color: white;
padding: 3px;
border-radius: 5px;
}

68
css/settingsmenu.css Normal file
View File

@@ -0,0 +1,68 @@
#settingsmenu {
background: black;
color: #00ccff;
}
#settingsmenu input, select {
margin-top: 10px;
margin-left: 10%;
width: 80%;
font-size: 14px;
background: #3a3a3a;
border: none;
box-shadow: none;
color: #a7a7a7;
}
#settingsmenu .arrow-up {
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 5px solid #3a3a3a;
position: relative;
top: 10px;
margin-left: auto;
margin-right: auto;
}
#settingsmenu button {
width: 45%;
left: 26%;
padding: 0;
margin-top: 10px;
}
#settingsmenu #avatar {
width: 24%;
left: 38%;
border-radius: 25px;
position: relative;
}
#settingsmenu .icon-settings {
padding: 34px;
}
#languages_selectbox{
height: 40px;
}
#startMutedOptions {
padding-left: 10%;
text-indent: -10%;
}
#startAudioMuted {
width: 13px !important;
}
#startVideoMuted {
width: 13px !important;
}
.startMutedLabel {
width: 94%;
float: left;
}

180
css/toastr.css Normal file
View File

@@ -0,0 +1,180 @@
/*
* Toastr
* Copyright 2012-2014 John Papa and Hans Fjällemark.
* All Rights Reserved.
* Use, reproduction, distribution, and modification of this code is subject to the terms and
* conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
*
* Author: John Papa and Hans Fjällemark
* Project: https://github.com/CodeSeven/toastr
*/
.toast-title {
font-weight: bold;
}
.toast-message {
-ms-word-wrap: break-word;
word-wrap: break-word;
}
.toast-message a,
.toast-message label {
color: #ffffff;
}
.toast-message a:hover {
color: #cccccc;
text-decoration: none;
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: #ffffff;
-webkit-text-shadow: 0 1px 0 #ffffff;
text-shadow: 0 1px 0 #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
/*overrides*/
}
#toast-container * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#toast-container > div {
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
-moz-border-radius: 3px 3px 3px 3px;
-webkit-border-radius: 3px 3px 3px 3px;
border-radius: 3px 3px 3px 3px;
background-position: 15px center;
background-repeat: no-repeat;
-moz-box-shadow: 0 0 12px #999999;
-webkit-box-shadow: 0 0 12px #999999;
box-shadow: 0 0 12px #999999;
color: #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
#toast-container > :hover {
-moz-box-shadow: 0 0 12px #000000;
-webkit-box-shadow: 0 0 12px #000000;
box-shadow: 0 0 12px #000000;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
cursor: pointer;
}
#toast-container > .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
#toast-container > .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div {
width: 96%;
margin: auto;
}
.toast {
background-color: #030303;
}
.toast-success {
background-color: #51a351;
}
.toast-error {
background-color: #bd362f;
}
.toast-info {
background-color: #2f96b4;
}
.toast-warning {
background-color: #f89406;
}
/*Responsive Design*/
@media all and (max-width: 240px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 11em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 18em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
#toast-container > div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}

118
css/unsupported_browser.css Normal file
View File

@@ -0,0 +1,118 @@
body {
width:100%;
height:100%;
background-color: white;
color: #424242;
font-family:Helvetica,'YanoneKaffeesatzLight',Verdana,Tahoma,Arial;
font-size: 28px;
margin:0;
padding:0;
}
#wrap{
display: block;
position: absolute;
width:900px;
height: 365px;
overflow:hidden;
text-align: center;
margin: auto;
top: 0; left: 0; bottom: 0; right: 0;
}
.firefox{
font-size: 11pt;
color: #c8c8c8;
width: 468px;
text-align: center;
margin: 30px auto 0px auto;
padding-left: 15px;
}
#text{
display:inline-block;
font-size: 28px;
width: 568px;
vertical-align:middle;
padding-top: 25px;
}
a {
color: #087dba;
text-decoration:none;
}
.browser {
width: 138px;
height: 163px;
margin-top: 5px;
background-color: #e8e8e8;
border: 1px solid #cfcfcf;
border-radius: 10px;
}
.browser_wrapper
{
width: 138px;
height: 188px;
vertical-align: middle;
color: #929391;
font-size: 20px;
float: left;
margin-left: 15px;
}
.supported_browsers
{
margin: 0px auto 0px auto;
width: 660px;
}
.clear
{
clear: both;
}
.button
{
background-color: #62c82a;
border: 1px solid #3c8117;
border-radius: 10px;
color: #FFFFFF;
font-size: 12px;
text-align: center;
width: 115px;
height: 26px;
padding-top: 13px;
margin: 15px auto 0px auto;
}
.logo
{
margin: 20px auto 0px auto;
}
#chrome_logo
{
width: 78px;
height: 78px;
background-image: url('/images/chrome.png');
}
#chromium_logo
{
width: 77px;
height: 79px;
background-image: url('/images/chromium.png');
}
#firefox-nightly_logo
{
width: 73px;
height: 79px;
background-image: url('/images/firefox-nightly.png');
}
#opera_logo
{
width: 73px;
height: 78px;
background-image: url('/images/opera.png');
}

View File

@@ -35,7 +35,7 @@
#remoteVideos .videocontainer {
display: inline-block;
background-image:url(../images/avatar1.png);
background-color: black;
background-size: contain;
border-radius:8px;
border: 2px solid #212425;
@@ -60,28 +60,31 @@
}
#remoteVideos .videocontainer:hover {
-webkit-box-shadow: inset 0 0 10px #FFFFFF, 0 0 10px #FFFFFF;
box-shadow: inset 0 0 10px #FFFFFF, 0 0 10px #FFFFFF;
border: 2px solid #FFFFFF;
}
#remoteVideos .videocontainer.videoContainerFocused {
-webkit-box-shadow: inset 0 0 28px #006d91;
box-shadow: inset 0 0 28px #006d91;
border: 2px solid #006d91;
}
#remoteVideos .videocontainer.videoContainerFocused:hover {
-webkit-box-shadow: inset 0 0 5px #FFFFFF, 0 0 10px #FFFFFF, inset 0 0 60px #006d91;
box-shadow: inset 0 0 5px #FFFFFF, 0 0 10px #FFFFFF, inset 0 0 60px #006d91;
border: 2px solid #FFFFFF;
}
#localVideoWrapper {
display:inline-block;
-webkit-mask-box-image: url(../images/videomask.svg);
border-radius:0px !important;
border-radius:4px !important;
border: 0px !important;
}
#remoteVideos .videocontainer>video {
/* With TemasysWebRTC plugin <object/> element is used
instead of <video/> */
#remoteVideos .videocontainer>video,
#remoteVideos .videocontainer>object {
border-radius:4px;
}
@@ -92,21 +95,34 @@
-o-transform: scale(-1, 1);
}
#localVideoWrapper>video {
border-radius:0px !important;
#localVideoWrapper>video,
#localVideoWrapper>object {
border-radius:4px !important;
}
#largeVideo,
#largeVideoWrapper,
#largeVideoContainer {
overflow: hidden;
text-align: center;
}
#largeVideo,
#largeVideoWrapper
{
object-fit: cover;
}
#presentation,
#etherpad,
#localVideoWrapper>video,
#localVideoWrapper>object,
#localVideoWrapper,
.videocontainer>video {
#largeVideoWrapper,
#largeVideoWrapper>video,
#largeVideoWrapper>object,
.videocontainer>video,
.videocontainer>object {
position: absolute;
left: 0;
top: 0;
@@ -115,10 +131,6 @@
height: 100%;
}
.dominantspeaker {
background: #000 !important;
}
#etherpad,
#presentation {
text-align: center;
@@ -128,7 +140,7 @@
z-index: 0;
}
#etherpadButton {
#toolbar_button_etherpad {
display: none;
}
@@ -362,7 +374,7 @@
margin-right: 40%;
text-align: center;
background: linear-gradient(to bottom, rgba(255,255,255,.85) , rgba(255,255,255,.35));
-webkit-box-shadow: 0 0 2px #000000, 0 0 10px #000000;
box-shadow: 0 0 2px #000000, 0 0 10px #000000;
border-bottom-left-radius: 12px;
border-bottom-right-radius: 12px;
display: none;
@@ -373,8 +385,95 @@
position: absolute;
z-index: 0;
border-radius:10px;
pointer-events: none;
}
#activeSpeaker {
visibility: hidden;
width: 150px;
height: 150px;
margin: auto;
overflow: hidden;
position: relative;
}
#activeSpeakerAudioLevel {
position: absolute;
top: 0px;
left: 0px;
z-index: 1;
visibility: inherit;
}
#mixedstream {
display:none !important;
}
#activeSpeakerAvatar {
width: 100px;
height: 100px;
top: 25px;
margin: auto;
position: relative;
border-radius: 50px;
z-index: 2;
visibility: inherit;
}
.userAvatar {
height: 100%;
position: absolute;
left: 35px;
border-radius: 200px;
}
.noMic {
position: absolute;
border-radius: 8px;
z-index: 1;
width: 100%;
height: 100%;
background-image: url("../images/noMic.png");
background-color: #000;
background-repeat: no-repeat;
background-position: center;
}
.noVideo {
position: absolute;
border-radius: 8px;
z-index: 1;
width: 100%;
height: 100%;
background-image: url("../images/noVideo.png");
background-color: #000;
background-repeat: no-repeat;
background-position: center;
}
.videoMessageFilter {
-webkit-filter: grayscale(.5) opacity(0.8);
filter: grayscale(.5) opacity(0.8);
}
.videoProblemFilter {
-webkit-filter: blur(10px) grayscale(.5) opacity(0.8);
filter: blur(10px) grayscale(.5) opacity(0.8);
}
#videoConnectionMessage {
display: none;
position: absolute;
width: 100%;
top:50%;
z-index: 10000;
font-weight: 600;
font-size: 14px;
text-align: center;
color: #FFF;
opacity: .80;
text-shadow: 0px 0px 1px rgba(0,0,0,0.3),
0px 1px 1px rgba(0,0,0,0.3),
1px 0px 1px rgba(0,0,0,0.3),
0px 0px 1px rgba(0,0,0,0.3);
}

View File

@@ -1,158 +0,0 @@
/* global connection, Strophe, updateLargeVideo, focusedVideoSrc*/
// cache datachannels to avoid garbage collection
// https://code.google.com/p/chromium/issues/detail?id=405545
var _dataChannels = [];
/**
* Callback triggered by PeerConnection when new data channel is opened
* on the bridge.
* @param event the event info object.
*/
function onDataChannel(event)
{
var dataChannel = event.channel;
dataChannel.onopen = function ()
{
console.info("Data channel opened by the Videobridge!", dataChannel);
// Code sample for sending string and/or binary data
// Sends String message to the bridge
//dataChannel.send("Hello bridge!");
// Sends 12 bytes binary message to the bridge
//dataChannel.send(new ArrayBuffer(12));
// when the data channel becomes available, tell the bridge about video
// selections so that it can do adaptive simulcast,
var largeVideoSrc = $('#largeVideo').attr('src');
var userJid = getJidFromVideoSrc(largeVideoSrc);
// we want the notification to trigger even if userJid is undefined,
// or null.
onSelectedEndpointChanged(userJid);
};
dataChannel.onerror = function (error)
{
console.error("Data Channel Error:", error, dataChannel);
};
dataChannel.onmessage = function (event)
{
var data = event.data;
// JSON
var obj;
try
{
obj = JSON.parse(data);
}
catch (e)
{
console.error(
"Failed to parse data channel message as JSON: ",
data,
dataChannel);
}
if (('undefined' !== typeof(obj)) && (null !== obj))
{
var colibriClass = obj.colibriClass;
if ("DominantSpeakerEndpointChangeEvent" === colibriClass)
{
// Endpoint ID from the Videobridge.
var dominantSpeakerEndpoint = obj.dominantSpeakerEndpoint;
console.info(
"Data channel new dominant speaker event: ",
dominantSpeakerEndpoint);
$(document).trigger(
'dominantspeakerchanged',
[dominantSpeakerEndpoint]);
}
else if ("LastNEndpointsChangeEvent" === colibriClass)
{
// The new/latest list of last-n endpoint IDs.
var lastNEndpoints = obj.lastNEndpoints;
/*
* The list of endpoint IDs which are entering the list of
* last-n at this time i.e. were not in the old list of last-n
* endpoint IDs.
*/
var endpointsEnteringLastN = obj.endpointsEnteringLastN;
var stream = obj.stream;
console.log(
"Data channel new last-n event: ",
lastNEndpoints, endpointsEnteringLastN, obj);
$(document).trigger(
'lastnchanged',
[lastNEndpoints, endpointsEnteringLastN, stream]);
}
else if ("SimulcastLayersChangedEvent" === colibriClass)
{
var endpointSimulcastLayers = obj.endpointSimulcastLayers;
$(document).trigger('simulcastlayerschanged', [endpointSimulcastLayers]);
}
else if ("StartSimulcastLayerEvent" === colibriClass)
{
var simulcastLayer = obj.simulcastLayer;
$(document).trigger('startsimulcastlayer', simulcastLayer);
}
else if ("StopSimulcastLayerEvent" === colibriClass)
{
var simulcastLayer = obj.simulcastLayer;
$(document).trigger('stopsimulcastlayer', simulcastLayer);
}
else
{
console.debug("Data channel JSON-formatted message: ", obj);
}
}
};
dataChannel.onclose = function ()
{
console.info("The Data Channel closed", dataChannel);
var idx = _dataChannels.indexOf(dataChannel);
if (idx > -1)
_dataChannels = _dataChannels.splice(idx, 1);
};
_dataChannels.push(dataChannel);
}
/**
* Binds "ondatachannel" event listener to given PeerConnection instance.
* @param peerConnection WebRTC peer connection instance.
*/
function bindDataChannelListener(peerConnection)
{
peerConnection.ondatachannel = onDataChannel;
// Sample code for opening new data channel from Jitsi Meet to the bridge.
// Although it's not a requirement to open separate channels from both bridge
// and peer as single channel can be used for sending and receiving data.
// So either channel opened by the bridge or the one opened here is enough
// for communication with the bridge.
/*var dataChannelOptions =
{
reliable: true
};
var dataChannel
= peerConnection.createDataChannel("myChannel", dataChannelOptions);
// Can be used only when is in open state
dataChannel.onopen = function ()
{
dataChannel.send("My channel !!!");
};
dataChannel.onmessage = function (event)
{
var msgData = event.data;
console.info("Got My Data Channel Message:", msgData, dataChannel);
};*/
}

2
debian/changelog vendored
View File

@@ -2,4 +2,4 @@ jitsi-meet (1.0.1-1) unstable; urgency=low
* Initial release. (Closes: #760485)
-- Damian Minkov <damencho@jitsi.org> Fri, 29 Aug 2014 16:38:14 +0200
-- Damian Minkov <damencho@jitsi.org> Wed, 22 Oct 2014 10:30:00 +0200

17
debian/control vendored
View File

@@ -3,30 +3,33 @@ Section: net
Priority: extra
Maintainer: Jitsi Team <dev@jitsi.org>
Uploaders: Emil Ivov <emcho@jitsi.org>, Damian Minkov <damencho@jitsi.org>
Build-Depends: debhelper (>= 8.0.0), libjs-strophe (>= 1.1.3)
Standards-Version: 3.9.5
Build-Depends: debhelper (>= 8.0.0), libjs-strophe (>= 1.1.3), yui-compressor,
libjs-jquery, libjs-jquery-ui
Standards-Version: 3.9.6
Homepage: https://jitsi.org/meet
Package: jitsi-meet
Architecture: all
Pre-Depends: jitsi-videobridge
Depends: ${misc:Depends}, nginx, jitsi-meet-prosody, libjs-strophe (>= 1.1.3)
Depends: ${misc:Depends}, jitsi-videobridge, jitsi-meet-prosody, libjs-strophe (>= 1.1.3),
libjs-jquery, libjs-jquery-ui, openjdk-8-jre-headless | nginx
Description: WebRTC JavaScript video conferences
Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
Videobridge to provide high quality, scalable video conferences.
.
It is a web interface to Jitsi Videobridge for audio and video
forwarding and relaying, configured to work with nginx
forwarding and relaying, configured to work with jetty instance
running embedded into Jitsi Videobridge
Package: jitsi-meet-prosody
Architecture: all
Pre-Depends: openssl, prosody | prosody-trunk, jitsi-videobridge
Depends: ${misc:Depends}, openssl, prosody | prosody-trunk, jitsi-videobridge, jicofo
Description: Prosody configuration for Jitsi Meet
Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
Videobridge to provide high quality, scalable video conferences.
.
It is a web interface to Jitsi Videobridge for audio and video
forwarding and relaying, configured to work with nginx
forwarding and relaying, configured to work with jetty instance
running embedded into Jitsi Videobridge
.
This package contains configuration for Prosody to be used with
Jitsi Meet.

4
debian/jitsi-meet-prosody.config vendored Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/sh -e
# Source debconf library.
. /usr/share/debconf/confmodule

View File

@@ -21,30 +21,79 @@ set -e
case "$1" in
configure)
. /etc/default/jitsi-videobridge
. /etc/jitsi/videobridge/config
PROSODY_CONFIG_PRESENT="true"
# if there is no prosody config extract our template
if [ ! -f /etc/prosody/prosody.cfg.lua ]; then
PROSODY_CONFIG_PRESENT="false"
gunzip -c /usr/share/doc/jitsi-meet-prosody/prosody.cfg.lua-jvb.example.gz > /etc/prosody/prosody.cfg.lua
. /etc/jitsi/jicofo/config
# loading debconf
. /usr/share/debconf/confmodule
# detect dpkg-reconfigure, just delete old links
db_get jitsi-meet-prosody/jvb-hostname
JVB_HOSTNAME_OLD=$RET
if [ -n "$RET" ] && [ ! "$JVB_HOSTNAME_OLD" = "$JVB_HOSTNAME" ] ; then
rm -f /etc/prosody/conf.d/$JVB_HOSTNAME_OLD.cfg.lua
rm -f /etc/prosody/certs/$JVB_HOSTNAME_OLD.key
rm -f /etc/prosody/certs/$JVB_HOSTNAME_OLD.crt
fi
# if there is no config for our domain, lets create it
if ! grep -q "VirtualHost \"$JVB_HOSTNAME\"" /etc/prosody/prosody.cfg.lua; then
# stores the hostname so we will reuse it later, like in purge
db_set jitsi-meet-prosody/jvb-hostname $JVB_HOSTNAME
# if its not our template, save the original and extract our template
if ! grep -q "VirtualHost \"jitmeet.example.com\"" /etc/prosody/prosody.cfg.lua; then
PROSODY_CONFIG_PRESENT="false"
cp /etc/prosody/prosody.cfg.lua /etc/prosody/prosody.cfg.lua.orig
gunzip -c /usr/share/doc/jitsi-meet-prosody/prosody.cfg.lua-jvb.example.gz > /etc/prosody/prosody.cfg.lua
fi
# and we're done with debconf
db_stop
if [ "$PROSODY_CONFIG_PRESENT" = "true" ]; then
cp /etc/prosody/prosody.cfg.lua /etc/prosody/prosody.cfg.lua.orig
PROSODY_CONFIG_PRESENT="true"
PROSODY_CREATE_JICOFO_USER="false"
PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua"
PROSODY_CONFIG_OLD="/etc/prosody/prosody.cfg.lua"
# if there is no prosody config extract our template
# check for config in conf.avail or check whether it wasn't already configured in main config
if [ ! -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"$JVB_HOSTNAME\"" $PROSODY_CONFIG_OLD; then
PROSODY_CONFIG_PRESENT="false"
mkdir -p /etc/prosody/conf.avail/
cp /usr/share/doc/jitsi-meet-prosody/prosody.cfg.lua-jvb.example $PROSODY_HOST_CONFIG
sed -i "s/jitmeet.example.com/$JVB_HOSTNAME/g" $PROSODY_HOST_CONFIG
sed -i "s/jitmeetSecret/$JVB_SECRET/g" $PROSODY_HOST_CONFIG
sed -i "s/focusSecret/$JICOFO_SECRET/g" $PROSODY_HOST_CONFIG
sed -i "s/focusUser/$JICOFO_AUTH_USER/g" $PROSODY_HOST_CONFIG
if [ ! -f /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua ]; then
ln -s $PROSODY_HOST_CONFIG /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua
fi
sed -i "s/jitmeet.example.com/$JVB_HOSTNAME/g" /etc/prosody/prosody.cfg.lua
sed -i "s/jitmeetSecret/$JVB_SECRET/g" /etc/prosody/prosody.cfg.lua
PROSODY_CREATE_JICOFO_USER="true"
# on some distributions main prosody config doesn't include configs
# from conf.d folder enable it as this where we put our config by default
if ! grep -q "Include \"conf\.d\/\*\.cfg.lua\"" $PROSODY_CONFIG_OLD; then
echo -e "\nInclude \"conf.d/*.cfg.lua\"" >> $PROSODY_CONFIG_OLD
fi
fi
# UPGRADE to server side focus check if focus is configured
if [ -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"auth.$JVB_HOSTNAME\"" $PROSODY_HOST_CONFIG; then
echo -e "\nVirtualHost \"auth.$JVB_HOSTNAME\"" >> $PROSODY_HOST_CONFIG
echo -e " authentication = \"internal_plain\"\n" >> $PROSODY_HOST_CONFIG
sed -i "s/Component \"conference.$JVB_HOSTNAME\" \"muc\"/Component \"conference.$JVB_HOSTNAME\" \"muc\"\nadmins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\" }\n/g" $PROSODY_HOST_CONFIG
echo -e "Component \"focus.$JVB_HOSTNAME\"" >> $PROSODY_HOST_CONFIG
echo -e " component_secret=\"$JICOFO_SECRET\"\n" >> $PROSODY_HOST_CONFIG
PROSODY_CREATE_JICOFO_USER="true"
# UPGRADE to server side focus on old config(/etc/prosody/prosody.cfg.lua)
elif [ ! -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"auth.$JVB_HOSTNAME\"" $PROSODY_CONFIG_OLD; then
echo -e "\nVirtualHost \"auth.$JVB_HOSTNAME\"" >> $PROSODY_CONFIG_OLD
echo -e " authentication = \"internal_plain\"\n" >> $PROSODY_CONFIG_OLD
if ! grep -q "admins = { }" $PROSODY_CONFIG_OLD; then
echo -e "admins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\" }\n" >> $PROSODY_CONFIG_OLD
else
sed -i "s/admins = { }/admins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\" }\n/g" $PROSODY_CONFIG_OLD
fi
echo -e "Component \"focus.$JVB_HOSTNAME\"" >> $PROSODY_CONFIG_OLD
echo -e " component_secret=\"$JICOFO_SECRET\"\n" >> $PROSODY_CONFIG_OLD
PROSODY_CREATE_JICOFO_USER="true"
fi
if [ "$PROSODY_CREATE_JICOFO_USER" = "true" ]; then
# create 'focus@auth.domain' prosody user
prosodyctl register $JICOFO_AUTH_USER $JICOFO_AUTH_DOMAIN $JICOFO_AUTH_PASSWORD
# trigger a restart
PROSODY_CONFIG_PRESENT="false"
fi
if [ ! -f /var/lib/prosody/$JVB_HOSTNAME.crt ]; then
@@ -58,11 +107,10 @@ case "$1" in
ln -sf /var/lib/prosody/$JVB_HOSTNAME.key /etc/prosody/certs/$JVB_HOSTNAME.key
ln -sf /var/lib/prosody/$JVB_HOSTNAME.crt /etc/prosody/certs/$JVB_HOSTNAME.crt
if [ "$PROSODY_CONFIG_PRESENT" = "true" ]; then
invoke-rc.d prosody reload
else
if [ "$PROSODY_CONFIG_PRESENT" = "false" ]; then
invoke-rc.d prosody restart
invoke-rc.d jitsi-videobridge restart
invoke-rc.d jicofo restart
fi
;;

View File

@@ -25,11 +25,20 @@ set -e
case "$1" in
remove)
if [ -x "/etc/init.d/prosody" ]; then
invoke-rc.d nginx reload
invoke-rc.d prosody reload
fi
;;
purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
purge)
db_get jitsi-meet-prosody/jvb-hostname
JVB_HOSTNAME=$RET
if [ -n "$RET" ]; then
rm -f /etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua
rm -f /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua
fi
;;
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)

4
debian/jitsi-meet-prosody.templates vendored Normal file
View File

@@ -0,0 +1,4 @@
Template: jitsi-meet-prosody/jvb-hostname
Type: string
_Description: The hostname of the current installation:
The value for the hostname that is set in Jitsi Videobridge installation.

View File

@@ -8,14 +8,14 @@ Use something like the script below to update from Git
#!/bin/bash
VERSION=1.0.1-1
VERSION=1.0.1
echo "*.min.js export-ignore" > .gitattributes
echo "jquery-2.1.1.* export-ignore" >> .gitattributes
echo "jquery-ui.js export-ignore" >> .gitattributes
echo ".gitignore export-ignore" >> .gitattributes
echo "$VERSION" > version.txt
sed -i "s/1.0.1-1/$VERSION/g" debian/changelog
sed -i "s/1.0.1/$VERSION/g" debian/changelog
git archive --worktree-attributes --format tar --prefix jitsi-meet-$VERSION/ -o ../jitsi-meet_${VERSION}.orig.tar master
tar --transform "s,^,jitsi-meet-$VERSION/," -rf ../jitsi-meet_${VERSION}.orig.tar

View File

@@ -1 +0,0 @@
/usr/share/jitsi-meet/config.js

1
debian/jitsi-meet.dirs vendored Normal file
View File

@@ -0,0 +1 @@
etc/jitsi/meet/

View File

@@ -1,3 +1,4 @@
README.md
doc/debian/jitsi-meet/jitsi-meet.example
doc/debian/jitsi-meet/README
config.js

View File

@@ -3,7 +3,9 @@
*.html /usr/share/jitsi-meet/
*.ico /usr/share/jitsi-meet/
libs /usr/share/jitsi-meet/
service /usr/share/jitsi-meet/
css /usr/share/jitsi-meet/
sounds /usr/share/jitsi-meet/
fonts /usr/share/jitsi-meet/
images /usr/share/jitsi-meet/
images /usr/share/jitsi-meet/
lang /usr/share/jitsi-meet/

View File

@@ -1 +1,3 @@
usr/share/javascript/strophe/strophe.min.js usr/share/jitsi-meet/libs/strophe/strophe.min.js
usr/share/javascript/strophe/strophe.min.js usr/share/jitsi-meet/libs/strophe/strophe.min.js
usr/share/javascript/jquery/jquery.min.js usr/share/jitsi-meet/libs/jquery.min.js
usr/share/javascript/jquery-ui/jquery-ui.min.js usr/share/jitsi-meet/libs/jquery-ui.min.js

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# postinst script for jitsi-meet
#
# see: dh_installdeb(1)
@@ -20,29 +20,133 @@ set -e
case "$1" in
configure)
. /etc/default/jitsi-videobridge
JVB_ETC_CONFIG="/etc/jitsi/videobridge/config"
JVB_CONFIG="/usr/share/jitsi-videobridge/.sip-communicator/sip-communicator.properties"
# nginx conf
if [ ! -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf ]; then
cp /usr/share/doc/jitsi-meet/jitsi-meet.example /etc/nginx/sites-available/$JVB_HOSTNAME.conf
if [ ! -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf ]; then
ln -s /etc/nginx/sites-available/$JVB_HOSTNAME.conf /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
. $JVB_ETC_CONFIG
# loading debconf
. /usr/share/debconf/confmodule
# detect dpkg-reconfigure
RECONFIGURING="false"
db_get jitsi-meet/jvb-hostname
JVB_HOSTNAME_OLD=$RET
if [ -n "$RET" ] && [ ! "$JVB_HOSTNAME_OLD" = "$JVB_HOSTNAME" ] ; then
RECONFIGURING="true"
rm -f /etc/jitsi/meet/$JVB_HOSTNAME_OLD-config.js
fi
JVB_SERVE="false"
db_get jitsi-meet/jvb-serve
if [ -n "$RET" ] && [ "$RET" = "true" ] ; then
JVB_SERVE="true"
fi
# stores the hostname so we will reuse it later, like in purge
db_set jitsi-meet/jvb-hostname $JVB_HOSTNAME
NGINX_INSTALL_CHECK="$(dpkg-query -W -f '${PackageSpec}:${Status}\n' nginx 2>&1 | grep -v "ok installed" || :)"
if [ -z "${NGINX_INSTALL_CHECK}" ]; then
FORCE_NGINX="true"
fi
# SSL for nginx
db_get jitsi-meet/cert-choice
CERT_CHOICE="$RET"
UPLOADED_CERT_CHOICE="A certificate is available and the files are uploaded on the server"
# jitsi meet
JITSI_MEET_CONFIG="/etc/jitsi/meet/$JVB_HOSTNAME-config.js"
if [ ! -f $JITSI_MEET_CONFIG ] ; then
cp /usr/share/doc/jitsi-meet/config.js $JITSI_MEET_CONFIG
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" $JITSI_MEET_CONFIG
fi
# this is new install let's configure jvb to serve meet
if [[ -z $FORCE_NGINX && ( -z $JVB_HOSTNAME_OLD || "$JVB_SERVE" = "true" ) ]] ; then
# this is a reconfigure, lets just delete old links
if [ "$RECONFIGURING" = "true" ] ; then
rm -f $JVB_CONFIG
fi
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" /etc/nginx/sites-available/$JVB_HOSTNAME.conf
fi
if grep "# server_names_hash_bucket_size 64" /etc/nginx/nginx.conf > /dev/null; then
sed -i "s/#\ server_names_hash_bucket_size\ 64/\ server_names_hash_bucket_size\ 64/" /etc/nginx/nginx.conf
fi
# configure jvb
echo "AUTHBIND=yes" >> $JVB_ETC_CONFIG
sed -i "s/JVB_OPTS=.*/JVB_OPTS=--apis=rest,xmpp/g" $JVB_ETC_CONFIG
if [ ! -f /etc/ssl/$JVB_HOSTNAME.key ] || [ ! -f /etc/ssl/$JVB_HOSTNAME.crt ]; then
# loading debconf
. /usr/share/debconf/confmodule
echo "org.jitsi.videobridge.rest.jetty.host=::" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.port=443" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.ProxyServlet.hostHeader=$JVB_HOSTNAME" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.ProxyServlet.pathSpec=/http-bind" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.ProxyServlet.proxyTo=http://localhost:5280/http-bind" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.resourceBase=/usr/share/jitsi-meet" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.alias./config.js=/etc/jitsi/meet/$JVB_HOSTNAME-config.js" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.RewriteHandler.regex=^/([a-zA-Z0-9]+)$" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.RewriteHandler.replacement=/" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.tls.port=443" >> $JVB_CONFIG
echo "org.jitsi.videobridge.TCP_HARVESTER_PORT=443" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.sslContextFactory.keyStorePath=/etc/jitsi/videobridge/$JVB_HOSTNAME.jks" >> $JVB_CONFIG
echo "org.jitsi.videobridge.rest.jetty.sslContextFactory.keyStorePassword=changeit" >> $JVB_CONFIG
# SSL for nginx
db_get jitsi-meet/cert-choice
CERT_CHOICE="$RET"
if [ "$CERT_CHOICE" = 'A certificate is available and the files are uploaded on the server' ]; then
# configure authbind to allow jvb to bind to privileged ports
OWNER=$(stat -c '%U' /usr/share/jitsi-videobridge)
GROUP=$(stat -c '%G' /usr/share/jitsi-videobridge)
JVB_UID="`id -u $OWNER`"
if [ ! -f "/etc/authbind/byuid/$JVB_UID" ] ; then
if [ ! -d "/etc/authbind/byuid" ] ; then
mkdir -p /etc/authbind/byuid
chmod 755 /etc/authbind
chmod 755 /etc/authbind/byuid
fi
echo '::,443' >/etc/authbind/byuid/$JVB_UID
chown $OWNER:$GROUP /etc/authbind/byuid/$JVB_UID
chmod 700 /etc/authbind/byuid/$JVB_UID
fi
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
# create jks from uploaded certs
openssl pkcs12 -export \
-in /etc/ssl/$JVB_HOSTNAME.crt \
-inkey /etc/ssl/$JVB_HOSTNAME.key \
-passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
keytool -importkeystore \
-srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
-destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
-srcstoretype pkcs12 \
-noprompt -storepass changeit -srcstorepass changeit
else
# create jks from self-signed certs
openssl pkcs12 -export \
-in /var/lib/prosody/$JVB_HOSTNAME.crt \
-inkey /var/lib/prosody/$JVB_HOSTNAME.key \
-passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
keytool -importkeystore \
-srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
-destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
-srcstoretype pkcs12 \
-noprompt -storepass changeit -srcstorepass changeit
fi
db_set jitsi-meet/jvb-serve "true"
invoke-rc.d jitsi-videobridge restart
elif [[ "$FORCE_NGINX" = "true" || ( -n $JVB_HOSTNAME_OLD && "$JVB_SERVE" = "false" ) ]] ; then
# this is a reconfigure, lets just delete old links
if [ "$RECONFIGURING" = "true" ] ; then
rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME_OLD.conf
rm -f /etc/jitsi/meet/$JVB_HOSTNAME_OLD-config.js
fi
# nginx conf
if [ ! -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf ] ; then
cp /usr/share/doc/jitsi-meet/jitsi-meet.example /etc/nginx/sites-available/$JVB_HOSTNAME.conf
if [ ! -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf ] ; then
ln -s /etc/nginx/sites-available/$JVB_HOSTNAME.conf /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
fi
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" /etc/nginx/sites-available/$JVB_HOSTNAME.conf
fi
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
db_set jitsi-meet/cert-path-key "/etc/ssl/$JVB_HOSTNAME.key"
db_input critical jitsi-meet/cert-path-key || true
db_go
@@ -64,19 +168,11 @@ case "$1" in
/etc/nginx/sites-available/$JVB_HOSTNAME.conf
fi
# and we're done with debconf
db_stop
invoke-rc.d nginx reload
fi
# jitsi meet
chown -R www-data:www-data /usr/share/jitsi-meet/
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" /usr/share/jitsi-meet/config.js
# enable turn
#if grep "// useStunTurn: true," /usr/share/jitsi-meet/config.js > /dev/null; then
# sed -i "s/\/\/\ \ useStunTurn:\ true,/\ \ \ \ useStunTurn:\ true,/" /usr/share/jitsi-meet/config.js
#fi
invoke-rc.d nginx restart
# and we're done with debconf
db_stop
;;
abort-upgrade|abort-remove|abort-deconfigure)

View File

@@ -28,8 +28,16 @@ case "$1" in
invoke-rc.d nginx reload
fi
;;
purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
purge)
db_get jitsi-meet/jvb-hostname
JVB_HOSTNAME=$RET
if [ -n "$RET" ]; then
rm -f /etc/jitsi/meet/$JVB_HOSTNAME-config.js
rm -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf
rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
fi
;;
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)

View File

@@ -10,14 +10,23 @@ _Description: SSL certificate for the Jitsi Meet instance
Template: jitsi-meet/cert-path-key
Type: string
Default: ${default-key}
_Description: Full local server path to the SSL key file:
The full path to the SSL key file on the server.
If it has not been uploaded, now is a good time to do so.
Template: jitsi-meet/cert-path-crt
Type: string
Default: ${default-crt}
_Description: Full local server path to the SSL certificate file:
The full path to the SSL certificate file on the server.
If you haven't uploaded it, now is a good time to upload it in another console.
Template: jitsi-meet/jvb-hostname
Type: string
_Description: The hostname of the current installation:
The value for the hostname that is set in Jitsi Videobridge installation.
Template: jitsi-meet/jvb-serve
Type: boolean
Default: false
_Description: for internal use
for internal use.

22
debian/patches/jquery-package vendored Normal file
View File

@@ -0,0 +1,22 @@
Description: Update the used js files for jquery to generic ones, to be able to use local system installed version (through symlinks).
Index: jitsi-meet/index.html
===================================================================
--- jitsi-meet.orig/index.html
+++ jitsi-meet/index.html
@@ -10,14 +10,14 @@
<meta itemprop="description" content="Join a WebRTC video conference powered by the Jitsi Videobridge"/>
<meta itemprop="image" content="/images/jitsilogo.png"/>
<script src="https://api.callstats.io/static/callstats.min.js"></script>
- <script src="libs/jquery-2.1.1.min.js"></script>
+ <script src="libs/jquery.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsSHA/1.5.0/sha.js"></script>
<script src="config.js?v=11"></script><!-- adapt to your needs, i.e. set hosts and bosh path -->
<script src="libs/strophe/strophe.min.js?v=2"></script>
<script src="libs/strophe/strophe.disco.min.js?v=1"></script>
<script src="libs/strophe/strophe.caps.jsonly.min.js?v=1"></script>
- <script src="libs/jquery-ui.js"></script>
+ <script src="libs/jquery-ui.min.js"></script>
<script src="libs/tooltip.js?v=1"></script><!-- bootstrap tooltip lib -->
<script src="libs/popover.js?v=1"></script><!-- bootstrap tooltip lib -->
<script src="libs/toastr.js?v=1"></script><!-- notifications lib -->

1
debian/patches/series vendored Normal file
View File

@@ -0,0 +1 @@
jquery-package

View File

@@ -1,7 +1,3 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
@@ -73,3 +69,30 @@ msgid ""
"The full path to the SSL certificate file on the server. If you haven't "
"uploaded it, now is a good time to upload it in another console."
msgstr ""
#. Type: string
#. Description
#: ../jitsi-meet.templates:4001
msgid "The hostname of the current installation:"
msgstr ""
#. Type: string
#. Description
#: ../jitsi-meet.templates:4001
msgid ""
"The value for the hostname that is set in Jitsi Videobridge installation."
msgstr ""
#. Type: string
#. Description
#: ../jitsi-meet.templates:5001
msgid "for internal use"
msgstr ""
#. Type: string
#. Description
#: ../jitsi-meet.templates:5001
msgid ""
"Jitsi Videobridge installation can use its internal jetty to serve static meet pages."
msgstr ""

16
debian/rules vendored
View File

@@ -1,10 +1,4 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
@@ -12,6 +6,14 @@
%:
dh $@
# we skip making Makefile exists for updating browserify modules when developing
override_dh_auto_build:
override_dh_install:
dh_installdirs
dh_install -Xlibs/strophe/strophe.min.js
dh_install -X/config.js
yui-compressor -o debian/jitsi-meet/usr/share/jitsi-meet/libs/strophe/strophe.caps.jsonly.min.js \
debian/missing-source/libs/strophe/strophe.caps.jsonly.js
yui-compressor -o debian/jitsi-meet/usr/share/jitsi-meet/libs/strophe/strophe.disco.min.js \
debian/missing-source/libs/strophe/sha1.js \
debian/missing-source/libs/strophe/strophe.disco.js

View File

@@ -1,18 +0,0 @@
debian/usr/share/jitsi-meet/favicon.ico
debian/usr/share/jitsi-meet/fonts/jitsi.eot
debian/usr/share/jitsi-meet/fonts/jitsi.woff
debian/usr/share/jitsi-meet/fonts/jitsi.ttf
debian/usr/share/jitsi-meet/sounds/left.wav
debian/usr/share/jitsi-meet/sounds/incomingMessage.wav
debian/usr/share/jitsi-meet/sounds/joined.wav
debian/usr/share/jitsi-meet/images/estoslogo.png
debian/usr/share/jitsi-meet/images/chromelogo.png
debian/usr/share/jitsi-meet/images/jitsilogo.png
debian/usr/share/jitsi-meet/images/watermark.png
debian/usr/share/jitsi-meet/images/avatarprezi.png
debian/usr/share/jitsi-meet/images/chromepointer.png
debian/usr/share/jitsi-meet/images/avatar1.png
debian/usr/share/jitsi-meet/images/popupPointer.png
debian/usr/share/jitsi-meet/images/favicon.ico
debian/usr/share/doc/jitsi-meet/changelog.Debian.gz
debian/usr/share/doc/jitsi-meet-prosody/changelog.Debian.gz

View File

@@ -1,2 +0,0 @@
# The strophe.min.js file is used from libjs-strophe package
source-is-missing libs/strophe/strophe.min.js

2
debian/watch vendored Normal file
View File

@@ -0,0 +1,2 @@
version=3
opts="uversionmangle=s/^/1.0./" https://github.com/jitsi/jitsi-meet/releases/ /jitsi/jitsi-meet/archive/(\S+)\.tar\.gz

View File

@@ -1,317 +0,0 @@
/* global $, config, connection, chrome, alert, getUserMediaWithConstraints, changeLocalVideo, getConferenceHandler */
/**
* Indicates that desktop stream is currently in use(for toggle purpose).
* @type {boolean}
*/
var isUsingScreenStream = false;
/**
* Indicates that switch stream operation is in progress and prevent from triggering new events.
* @type {boolean}
*/
var switchInProgress = false;
/**
* Method used to get screen sharing stream.
*
* @type {function (stream_callback, failure_callback}
*/
var obtainDesktopStream = null;
/**
* Flag used to cache desktop sharing enabled state. Do not use directly as it can be <tt>null</tt>.
* @type {null|boolean}
*/
var _desktopSharingEnabled = null;
/**
* Method obtains desktop stream from WebRTC 'screen' source.
* Flag 'chrome://flags/#enable-usermedia-screen-capture' must be enabled.
*/
function obtainWebRTCScreen(streamCallback, failCallback) {
getUserMediaWithConstraints(
['screen'],
streamCallback,
failCallback
);
}
/**
* Constructs inline install URL for Chrome desktop streaming extension.
* The 'chromeExtensionId' must be defined in config.js.
* @returns {string}
*/
function getWebStoreInstallUrl()
{
return "https://chrome.google.com/webstore/detail/" + config.chromeExtensionId;
}
/**
* Checks whether extension update is required.
* @param minVersion minimal required version
* @param extVersion current extension version
* @returns {boolean}
*/
function isUpdateRequired(minVersion, extVersion)
{
try
{
var s1 = minVersion.split('.');
var s2 = extVersion.split('.');
var len = Math.max(s1.length, s2.length);
for (var i = 0; i < len; i++)
{
var n1 = 0,
n2 = 0;
if (i < s1.length)
n1 = parseInt(s1[i]);
if (i < s2.length)
n2 = parseInt(s2[i]);
if (isNaN(n1) || isNaN(n2))
{
return true;
}
else if (n1 !== n2)
{
return n1 > n2;
}
}
// will happen if boths version has identical numbers in
// their components (even if one of them is longer, has more components)
return false;
}
catch (e)
{
console.error("Failed to parse extension version", e);
messageHandler.showError('Error',
'Error when trying to detect desktopsharing extension.');
return true;
}
}
function checkExtInstalled(isInstalledCallback) {
if (!chrome.runtime) {
// No API, so no extension for sure
isInstalledCallback(false);
return;
}
chrome.runtime.sendMessage(
config.chromeExtensionId,
{ getVersion: true },
function (response) {
if (!response || !response.version) {
// Communication failure - assume that no endpoint exists
console.warn("Extension not installed?: " + chrome.runtime.lastError);
isInstalledCallback(false);
} else {
// Check installed extension version
var extVersion = response.version;
console.log('Extension version is: ' + extVersion);
var updateRequired = isUpdateRequired(config.minChromeExtVersion, extVersion);
if (updateRequired) {
alert(
'Jitsi Desktop Streamer requires update. ' +
'Changes will take effect after next Chrome restart.');
}
isInstalledCallback(!updateRequired);
}
}
);
}
function doGetStreamFromExtension(streamCallback, failCallback) {
// Sends 'getStream' msg to the extension. Extension id must be defined in the config.
chrome.runtime.sendMessage(
config.chromeExtensionId,
{ getStream: true, sources: config.desktopSharingSources },
function (response) {
if (!response) {
failCallback(chrome.runtime.lastError);
return;
}
console.log("Response from extension: " + response);
if (response.streamId) {
getUserMediaWithConstraints(
['desktop'],
function (stream) {
streamCallback(stream);
},
failCallback,
null, null, null,
response.streamId);
} else {
failCallback("Extension failed to get the stream");
}
}
);
}
/**
* Asks Chrome extension to call chooseDesktopMedia and gets chrome 'desktop' stream for returned stream token.
*/
function obtainScreenFromExtension(streamCallback, failCallback) {
checkExtInstalled(
function (isInstalled) {
if (isInstalled) {
doGetStreamFromExtension(streamCallback, failCallback);
} else {
chrome.webstore.install(
getWebStoreInstallUrl(),
function (arg) {
console.log("Extension installed successfully", arg);
// We need to reload the page in order to get the access to chrome.runtime
window.location.reload(false);
},
function (arg) {
console.log("Failed to install the extension", arg);
failCallback(arg);
messageHandler.showError('Error',
'Failed to install desktop sharing extension');
}
);
}
}
);
}
/**
* @returns {boolean} <tt>true</tt> if desktop sharing feature is available and enabled.
*/
function isDesktopSharingEnabled() {
if (_desktopSharingEnabled === null) {
if (obtainDesktopStream === obtainScreenFromExtension) {
// Parse chrome version
var userAgent = navigator.userAgent.toLowerCase();
// We can assume that user agent is chrome, because it's enforced when 'ext' streaming method is set
var ver = parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10);
console.log("Chrome version" + userAgent, ver);
_desktopSharingEnabled = ver >= 34;
} else {
_desktopSharingEnabled = obtainDesktopStream === obtainWebRTCScreen;
}
}
return _desktopSharingEnabled;
}
function showDesktopSharingButton() {
if (isDesktopSharingEnabled()) {
$('#desktopsharing').css({display: "inline"});
} else {
$('#desktopsharing').css({display: "none"});
}
}
/**
* Call this method to toggle desktop sharing feature.
* @param method pass "ext" to use chrome extension for desktop capture(chrome extension required),
* pass "webrtc" to use WebRTC "screen" desktop source('chrome://flags/#enable-usermedia-screen-capture'
* must be enabled), pass any other string or nothing in order to disable this feature completely.
*/
function setDesktopSharing(method) {
// Check if we are running chrome
if (!navigator.webkitGetUserMedia) {
obtainDesktopStream = null;
console.info("Desktop sharing disabled");
} else if (method == "ext") {
obtainDesktopStream = obtainScreenFromExtension;
console.info("Using Chrome extension for desktop sharing");
} else if (method == "webrtc") {
obtainDesktopStream = obtainWebRTCScreen;
console.info("Using Chrome WebRTC for desktop sharing");
}
// Reset enabled cache
_desktopSharingEnabled = null;
showDesktopSharingButton();
}
/**
* Initializes <link rel=chrome-webstore-item /> with extension id set in config.js to support inline installs.
* Host site must be selected as main website of published extension.
*/
function initInlineInstalls()
{
$("link[rel=chrome-webstore-item]").attr("href", getWebStoreInstallUrl());
}
function getSwitchStreamFailed(error) {
console.error("Failed to obtain the stream to switch to", error);
switchInProgress = false;
}
function streamSwitchDone() {
//window.setTimeout(
// function () {
switchInProgress = false;
Toolbar.changeDesktopSharingButtonState(isUsingScreenStream);
// }, 100
//);
}
function newStreamCreated(stream) {
var oldStream = connection.jingle.localVideo;
connection.jingle.localVideo = stream;
VideoLayout.changeLocalVideo(stream, !isUsingScreenStream);
var conferenceHandler = getConferenceHandler();
if (conferenceHandler) {
// FIXME: will block switchInProgress on true value in case of exception
conferenceHandler.switchStreams(stream, oldStream, streamSwitchDone);
} else {
// We are done immediately
console.error("No conference handler");
messageHandler.showError('Error',
'Unable to switch video stream.');
streamSwitchDone();
}
}
/*
* Toggles screen sharing.
*/
function toggleScreenSharing() {
if (switchInProgress || !obtainDesktopStream) {
console.warn("Switch in progress or no method defined");
return;
}
switchInProgress = true;
// Only the focus is able to set a shared key.
if (!isUsingScreenStream)
{
obtainDesktopStream(
function (stream) {
// We now use screen stream
isUsingScreenStream = true;
// Hook 'ended' event to restore camera when screen stream stops
stream.addEventListener('ended',
function (e) {
if (!switchInProgress && isUsingScreenStream) {
toggleScreenSharing();
}
}
);
newStreamCreated(stream);
},
getSwitchStreamFailed);
} else {
// Disable screen stream
getUserMediaWithConstraints(
['video'],
function (stream) {
// We are now using camera stream
isUsingScreenStream = false;
newStreamCreated(stream);
},
getSwitchStreamFailed, config.resolution || '360'
);
}
}

12
doc/adding-an-icon.md Normal file
View File

@@ -0,0 +1,12 @@
### Adding an icon to the font file (e.g. for the floating menu)
1. Go to https://icomoon.io/app/
2. Go to "Manage Projects" from the menu on the top left.
3. Use "Import project" and select <code>fonts/selection.json</code> from Jitsi Meet.
4. Import icons (e.g. svg files) using the "import items" button.
5. Go to "generate font" and make sure the identifiers for the new icons are correct.
6. Download the result in a zip file using the "download" button.
7. Copy <code>selection.json</code> and <code>fonts/jitsi.*</code> from the zip file to <code>fonts/</code> in Jitsi Meet
8. Copy the class for the new icon from <code>style.css</code> in the zip file to <code>css/font.css</code> in Jitsi Meet (do *not* copy the whole file)
Sample commit: https://github.com/jitsi/jitsi-meet/commit/68bc819b89aec12364fcf07b81efa83a1900eed6

View File

@@ -29,10 +29,18 @@ constructor.
```
If you don't specify room the user will enter in new conference with random room name.
You can overwrite options set in config.js and interface_config.js. For example, to enable the film-strip-only interface mode and disable simulcast, you can use:
```javascript
var configOverwrite = {enableSimulcast: false};
var interfaceConfigOverwrite = {filmStripOnly: true};
var api = new JitsiMeetExternalAPI(domain, room, width, height, htmlElement, true, configOverwrite, interfaceConfigOverwrite);
```
Controlling embedded Jitsi Meet Conference
=========
You can control the embedded Jitsi Meet conference using the JitsiMeetExternalAPI object.
You can send command to Jitsi Meet conference using ```executeCommand```.
```
api.executeCommand(command, arguments)
@@ -48,18 +56,26 @@ the new display name to be set
```
api.executeCommand('displayName', ['New Nickname']);
```
* **muteAudio** - mutes / unmutes the audio for the local participant. No arguments are required.
* **toggleAudio** - mutes / unmutes the audio for the local participant. No arguments are required.
```
api.executeCommand('muteAudio', [])
api.executeCommand('toggleAudio', [])
```
* **muteVideo** - mutes / unmutes the video for the local participant. No arguments are required.
* **toggleVideo** - mutes / unmutes the video for the local participant. No arguments are required.
```
api.executeCommand('muteVideo', [])
api.executeCommand('toggleVideo', [])
```
* **filmStrip** - hides / shows the film strip. No arguments are required.
* **toggleFilmStrip** - hides / shows the film strip. No arguments are required.
```
api.executeCommand('filmStrip', [])
```
* **toggleChat** - hides / shows the chat. No arguments are required.
```
api.executeCommand('toggleChat', [])
```
* **toggleContactList** - hides / shows the contact list. No arguments are required.
```
api.executeCommand('toggleContactList', [])
```
You can also execute multiple commands using the method ```executeCommands```.
```
@@ -69,12 +85,92 @@ The ```commands``` parameter is object with keys the names of the commands and v
commands.
```
api.executeCommands({displayName: ['nickname'], muteAudio: []});
api.executeCommands({displayName: ['nickname'], toggleAudio: []});
```
You can also remove the embedded Jitsi Meet Conference with the following code:
You can add event listeners to the embedded Jitsi Meet using ```addEventListener``` method.
```
api.addEventListener(event, listener)
```
The ```event``` parameter is String object with the name of the event.
The ```listener``` paramenter is Function object with one argument that will be notified when the event occurs
with data related to the event.
Currently we support the following events:
* **incomingMessage** - event notifications about incoming
messages. The listener will receive object with the following structure:
```
{
"from": from,//JID of the user that sent the message
"nick": nick,//the nickname of the user that sent the message
"message": txt//the text of the message
}
```
* **outgoingMessage** - event notifications about outgoing
messages. The listener will receive object with the following structure:
```
{
"message": txt//the text of the message
}
```
* **displayNameChanged** - event notifications about display name
change. The listener will receive object with the following structure:
```
{
jid: jid,//the JID of the participant that changed his display name
displayname: displayName //the new display name
}
```
* **participantJoined** - event notifications about new participant.
The listener will receive object with the following structure:
```
{
jid: jid //the jid of the participant
}
```
* **participantLeft** - event notifications about participant that left room.
The listener will receive object with the following structure:
```
{
jid: jid //the jid of the participant
}
```
You can also add multiple event listeners by using ```addEventListeners```.
This method requires one argument of type Object. The object argument must
have keys with the names of the events and values the listeners of the events.
```
function incomingMessageListener(object)
{
...
}
function outgoingMessageListener(object)
{
...
}
api.addEventListeners({
incomingMessage: incomingMessageListener,
outgoingMessage: outgoingMessageListener})
```
If you want to remove a listener you can use ```removeEventListener``` method with argument the name of the event.
```
api.removeEventListener("incomingMessage");
```
If you want to remove more than one event you can use ```removeEventListeners``` method with argument
array with the names of the events.
```
api.removeEventListeners(["incomingMessage", "outgoingMessageListener"]);
```
You can remove the embedded Jitsi Meet Conference with the following code:
```
api.dispose()
```
It is a good practice to remove the conference before the page is unloaded.
It is a good practice to remove the conference before the page is unloaded.

View File

@@ -1,177 +1,3 @@
-- Prosody XMPP Server Configuration
--
-- Information on configuring Prosody can be found on our
-- website at http://prosody.im/doc/configure
--
-- Tip: You can check that the syntax of this file is correct
-- when you have finished by running: prosodyctl check config
-- If there are any errors, it will let you know what and where
-- they are, otherwise it will keep quiet.
--
-- Good luck, and happy Jabbering!
---------- Server-wide settings ----------
-- Settings in this section apply to the whole server and are the default settings
-- for any virtual hosts
-- This is a (by default, empty) list of accounts that are admins
-- for the server. Note that you must create the accounts separately
-- (see http://prosody.im/doc/creating_accounts for info)
-- Example: admins = { "user1@example.com", "user2@example.net" }
admins = { }
daemonize = true
cross_domain_bosh = true;
component_ports = { 5347 }
-- Enable use of libevent for better performance under high load
-- For more information see: http://prosody.im/doc/libevent
--use_libevent = true
-- This is the list of modules Prosody will load on startup.
-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.
-- Documentation on modules can be found at: http://prosody.im/doc/modules
modules_enabled = {
-- Generally required
"roster"; -- Allow users to have a roster. Recommended ;)
"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
"tls"; -- Add support for secure TLS on c2s/s2s connections
"dialback"; -- s2s dialback support
"disco"; -- Service discovery
"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
-- Not essential, but recommended
"private"; -- Private XML storage (for room bookmarks, etc.)
"vcard"; -- Allow users to set vCards
-- These are commented by default as they have a performance impact
--"privacy"; -- Support privacy lists
"compression"; -- Stream compression (requires the lua-zlib package installed)
-- Nice to have
"version"; -- Replies to server version requests
"uptime"; -- Report how long server has been running
"time"; -- Let others know the time here on this server
"ping"; -- Replies to XMPP pings with pongs
"pep"; -- Enables users to publish their mood, activity, playing music and more
"register"; -- Allow users to register on this server using a client and change passwords
-- Admin interfaces
"admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
--"admin_telnet"; -- Opens telnet console interface on localhost port 5582
-- HTTP modules
"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
--"http_files"; -- Serve static files from a directory over HTTP
-- Other specific functionality
--"groups"; -- Shared roster support
--"announce"; -- Send announcement to all online users
--"welcome"; -- Welcome users who register accounts
--"watchregistrations"; -- Alert admins of registrations
--"motd"; -- Send a message to users when they log in
--"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
-- jitmeet
--"smacks";
--"carbons";
--"mam";
--"lastactivity";
--"offline";
"pubsub";
--"adhoc";
--"websocket";
--"http_altconnect";
"turncredentials";
}
-- These modules are auto-loaded, but should you want
-- to disable them then uncomment them here:
modules_disabled = {
-- "offline"; -- Store offline messages
-- "c2s"; -- Handle client connections
-- "s2s"; -- Handle server-to-server connections
}
-- Disable account creation by default, for security
-- For more information see http://prosody.im/doc/creating_accounts
allow_registration = false
-- These are the SSL/TLS-related settings. If you don't want
-- to use SSL/TLS, you may comment or remove this
ssl = {
key = "/etc/prosody/certs/localhost.key";
certificate = "/etc/prosody/certs/localhost.crt";
}
-- Force clients to use encrypted connections? This option will
-- prevent clients from authenticating unless they are using encryption.
-- c2s_require_encryption = true
-- Force certificate authentication for server-to-server connections?
-- This provides ideal security, but requires servers you communicate
-- with to support encryption AND present valid, trusted certificates.
-- NOTE: Your version of LuaSec must support certificate verification!
-- For more information see http://prosody.im/doc/s2s#security
-- s2s_secure_auth = false
-- Many servers don't support encryption or have invalid or self-signed
-- certificates. You can list domains here that will not be required to
-- authenticate using certificates. They will be authenticated using DNS.
--s2s_insecure_domains = { "gmail.com" }
-- Even if you leave s2s_secure_auth disabled, you can still require valid
-- certificates for some domains by specifying a list here.
--s2s_secure_domains = { "jabber.org" }
-- Required for init scripts and prosodyctl
pidfile = "/var/run/prosody/prosody.pid"
-- Select the authentication backend to use. The 'internal' providers
-- use Prosody's configured data storage to store the authentication data.
-- To allow Prosody to offer secure authentication mechanisms to clients, the
-- default provider stores passwords in plaintext. If you do not trust your
-- server please see http://prosody.im/doc/modules/mod_auth_internal_hashed
-- for information about using the hashed backend.
-- authentication = "internal_plain"
authentication = "internal_hashed"
-- Select the storage backend to use. By default Prosody uses flat files
-- in its configured data directory, but it also supports more backends
-- through modules. An "sql" backend is included by default, but requires
-- additional dependencies. See http://prosody.im/doc/storage for more info.
--storage = "sql" -- Default is "internal"
-- For the "sql" backend, you can uncomment *one* of the below to configure:
--sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename.
--sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }
--sql = { driver = "PostgreSQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }
storage = {archive2 = "sql2"}
sql = { driver = "SQLite3", database = "prosody.sqlite" }
default_archive_policy = "roster"
-- Logging configuration
-- For advanced logging see http://prosody.im/doc/logging
log = {
info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging
error = "/var/log/prosody/prosody.err";
"*syslog";
}
----------- Virtual hosts -----------
-- You need to add a VirtualHost entry for each domain you wish Prosody to serve.
-- Settings under each VirtualHost entry apply *only* to that host.
-- VirtualHost "localhost"
VirtualHost "jitmeet.example.com"
-- enabled = false -- Remove this line to enable this host
authentication = "anonymous"
@@ -183,28 +9,20 @@ VirtualHost "jitmeet.example.com"
key = "/etc/prosody/certs/jitmeet.example.com.key";
certificate = "/etc/prosody/certs/jitmeet.example.com.crt";
}
------ Components ------
-- You can specify components to add hosts that provide special services,
-- like multi-user conferences, and transports.
-- For more information on components, see http://prosody.im/doc/components
---Set up a MUC (multi-user chat) room server on conference.example.com:
--Component "conference.example.com" "muc"
-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
--Component "proxy.example.com" "proxy65"
---Set up an external component (default component port is 5347)
--
-- External components allow adding various services, such as gateways/
-- transports to other networks like ICQ, MSN and Yahoo. For more info
-- see: http://prosody.im/doc/components#adding_an_external_component
--
--Component "gateway.example.com"
-- component_secret = "password"
-- we need bosh
modules_enabled = {
"bosh";
"pubsub";
}
Component "conference.jitmeet.example.com" "muc"
admins = { "focusUser@auth.jitmeet.example.com" }
Component "jitsi-videobridge.jitmeet.example.com"
component_secret = "jitmeetSecret"
VirtualHost "auth.jitmeet.example.com"
authentication = "internal_plain"
Component "focus.jitmeet.example.com"
component_secret = "focusSecret"

View File

@@ -1,3 +1,5 @@
server_names_hash_bucket_size 64;
server {
listen 80;
server_name jitsi-meet.example.com;
@@ -13,7 +15,11 @@ server {
root /usr/share/jitsi-meet;
index index.html index.htm;
location ~ ^/([a-zA-Z0-9]+)$ {
location /config.js {
alias /etc/jitsi/meet/jitsi-meet.example.com-config.js;
}
location ~ ^/([a-zA-Z0-9=\?]+)$ {
rewrite ^/(.*)$ / break;
}

View File

@@ -6,7 +6,7 @@ server {
root /srv/jitsi.example.com;
index index.html;
location ~ ^/([a-zA-Z0-9]+)$ {
location ~ ^/([a-zA-Z0-9=\?]+)$ {
rewrite ^/(.*)$ / break;
}

29
doc/influxdb.md Normal file
View File

@@ -0,0 +1,29 @@
# Overview
Jitsi Meet supports logging to an [InfluxDB](http://influxdb.com/) database.
# Configuration
The following needs to be done to enable this functionality.
## Install InfluxDB
The details are outside the scope of the document, see http://influxdb.com/download/ .
## Create an InfluxDB database
Use the InfluxDB admin interface (running on port 8083) and create a database. In this example we name it <code>jitsi_database</code>
## Enable logging for Jitsi Videobridge
Add the following properties to <code>/usr/share/jitsi-videobridge/.sip-communicator/sip-communicator.properties</code>.
- org.jitsi.videobridge.log.INFLUX_DB_ENABLED=true
- org.jitsi.videobridge.log.INFLUX_URL_BASE=http://influxdb.example.com:8086
- org.jitsi.videobridge.log.INFLUX_DATABASE=jitsi_database
- org.jitsi.videobridge.log.INFLUX_USER=user
- org.jitsi.videobridge.log.INFLUX_PASS=pass
## Enable logging for Jicofo
Add the same properties as above to <code>/usr/share/jicofo/.sip-communicator/sip-communicator.properties</code>.
## Enable logging for Jitsi Meet itself
Change "logStats" to "true" in <code>/etc/jitsi/meet/you-domain.config.js</code> or the <code>config.js</code> file used in your installation.
# User interface
You can explore the database using the [Jiloin](https://github.com/jitsi/jiloin) web interface.

View File

@@ -1,52 +1,54 @@
# Server Installation for Jitsi Meet
This describes configuring a server `jitsi.example.com`. You will need to
This describes configuring a server `jitsi.example.com` running Debian or a Debian Derivative. You will need to
change references to that to match your host, and generate some passwords for
`YOURSECRET1` and `YOURSECRET2`.
`YOURSECRET1`, `YOURSECRET2`, `YOURSECRET3` and `YOURSECRET4`.
There are also some complete [example config files](https://github.com/jitsi/jitsi-meet/tree/master/doc/example-config-files/) available, mentioned in each section.
## Install prosody and otalk modules
## Install prosody
```sh
apt-get install lsb-release
echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list
wget --no-check-certificate https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -
apt-get update
apt-get install prosody-trunk
apt-get install git lua-zlib lua-sec-prosody lua-dbi-sqlite3 liblua5.1-bitop-dev liblua5.1-bitop0
git clone https://github.com/andyet/otalk-server.git
cd otalk-server
cp -r mod* /usr/lib/prosody/modules
apt-get install prosody
```
## Configure prosody
Modify the config file in `/etc/prosody/prosody.cfg.lua` (see also the example config file):
Add config file in `/etc/prosody/conf.avail/jitsi.example.com.cfg.lua` :
- add your domain virtual host section:
- modules to enable/add: compression, bosh, smacks, carbons, mam, lastactivity, offline, pubsub, adhoc, websocket, http_altconnect
- comment out: `c2s_require_encryption = true`, and `s2s_secure_auth = false`
- change `authentication = "internal_hashed"`
- add this:
```
daemonize = true
cross_domain_bosh = true;
storage = {archive2 = "sql2"}
sql = { driver = "SQLite3", database = "prosody.sqlite" }
default_archive_policy = "roster"
```
- configure your domain by editing the example.com virtual host section section:
```
VirtualHost "jitsi.example.com"
authentication = "anonymous"
ssl = {
key = "/var/lib/prosody/jitsi.example.com.key";
certificate = "/var/lib/prosody/jitsi.example.com.crt";
}
authentication = "anonymous"
ssl = {
key = "/var/lib/prosody/jitsi.example.com.key";
certificate = "/var/lib/prosody/jitsi.example.com.crt";
}
modules_enabled = {
"bosh";
"pubsub";
}
```
- add domain with authentication for conference focus user:
```
VirtualHost "auth.jitsi.example.com"
authentication = "internal_plain"
```
- add focus user to server admins:
```
admins = { "focus@auth.jitsi.example.com" }
```
- and finally configure components:
```
Component "conference.jitsi.example.com" "muc"
Component "jitsi-videobridge.jitsi.example.com"
component_secret = "YOURSECRET1"
Component "focus.jitsi.example.com"
component_secret = "YOURSECRET2"
```
Add link for the added configuration
```sh
ln -s /etc/prosody/conf.avail/jitsi.example.com.cfg.lua /etc/prosody/conf.d/jitsi.example.com.cfg.lua
```
Generate certs for the domain:
@@ -54,6 +56,11 @@ Generate certs for the domain:
prosodyctl cert generate jitsi.example.com
```
Create conference focus user:
```sh
prosodyctl register focus auth.jitsi.example.com YOURSECRET3
```
Restart prosody XMPP server with the new config
```sh
prosodyctl restart
@@ -64,39 +71,28 @@ prosodyctl restart
apt-get install nginx
```
Add nginx config for domain in `/etc/nginx/nginx.conf`:
```
tcp_nopush on;
types_hash_max_size 2048;
server_names_hash_bucket_size 64;
```
Add a new file `jitsi.example.com` in `/etc/nginx/sites-available` (see also the example config file):
```
server_names_hash_bucket_size 64;
server {
listen 80;
server_name jitsi.example.com;
# set the root
root /srv/jitsi.example.com;
index index.html;
location ~ ^/([a-zA-Z0-9]+)$ {
location ~ ^/([a-zA-Z0-9=\?]+)$ {
rewrite ^/(.*)$ / break;
}
location / {
ssi on;
}
# BOSH
location /http-bind {
proxy_pass http://localhost:5280/http-bind;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
# xmpp websockets
location /xmpp-websocket {
proxy_pass http://localhost:5280;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
tcp_nodelay on;
}
}
```
@@ -106,12 +102,6 @@ cd /etc/nginx/sites-enabled
ln -s ../sites-available/jitsi.example.com jitsi.example.com
```
## Fix firewall if needed
```sh
ufw allow 80
ufw allow 5222
```
## Install Jitsi Videobridge
```sh
wget https://download.jitsi.org/jitsi-videobridge/linux/jitsi-videobridge-linux-{arch-buildnum}.zip
@@ -123,6 +113,8 @@ Install JRE if missing:
apt-get install default-jre
```
_NOTE: When installing on older Debian releases keep in mind that you need JRE >= 1.7._
In the user home that will be starting Jitsi Videobridge create `.sip-communicator` folder and add the file `sip-communicator.properties` with one line in it:
```
org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
@@ -137,6 +129,30 @@ Or autostart it by adding the line in `/etc/rc.local`:
/bin/bash /root/jitsi-videobridge-linux-{arch-buildnum}/jvb.sh --host=localhost --domain=jitsi.example.com --port=5347 --secret=YOURSECRET1 </dev/null >> /var/log/jvb.log 2>&1
```
## Install Jitsi Conference Focus (jicofo)
Install JDK and Ant if missing:
```
apt-get install default-jdk ant
```
_NOTE: When installing on older Debian releases keep in mind that you need JDK >= 1.7._
Clone source from Github repo:
```sh
git clone https://github.com/jitsi/jicofo.git
```
Build distribution package. Replace {os-name} with one of: 'lin', 'lin64', 'macosx', 'win', 'win64'.
```sh
cd jicofo
ant dist.{os-name}
```
Run jicofo:
```sh
cd dist/{os-name}'
./jicofo.sh --domain=jitsi.example.com --secret=YOURSECRET2 --user_domain=auth.jitsi.example.com --user_name=focus --user_password=YOURSECRET3
```
## Deploy Jitsi Meet
Checkout and configure Jitsi Meet:
```sh
@@ -166,54 +182,6 @@ Restart nginx to get the new configuration:
invoke-rc.d nginx restart
```
## Install [Turn server](https://github.com/andyet/otalk-server/tree/master/restund)
```sh
apt-get install make gcc
wget http://creytiv.com/pub/re-0.4.7.tar.gz
tar zxvf re-0.4.7.tar.gz
ln -s re-0.4.7 re
cd re-0.4.7
sudo make install PREFIX=/usr
cd ..
wget http://creytiv.com/pub/restund-0.4.2.tar.gz
wget https://raw.github.com/andyet/otalk-server/master/restund/restund-auth.patch
tar zxvf restund-0.4.2.tar.gz
cd restund-0.4.2/
patch -p1 < ../restund-auth.patch
sudo make install PREFIX=/usr
cp debian/restund.init /etc/init.d/restund
chmod +x /etc/init.d/restund
cd /etc
wget https://raw.github.com/andyet/otalk-server/master/restund/restund.conf
```
Configure addresses and ports as desired, and the password to be configured in prosody:
```
realm jitsi.example.com
# share this with your prosody server
auth_shared YOURSECRET2
# modules
module_path /usr/lib/restund/modules
turn_relay_addr [turn ip address]
```
Configure prosody to use it in `/etc/prosody/prosody.cfg.lua`. Add to your virtual host:
```
turncredentials_secret = "YOURSECRET2";
turncredentials = {
{ type = "turn", host = "turn.address.ip.configured", port = 3478, transport = "tcp" }
}
```
Add turncredentials module in the "modules_enabled" section
Reload prosody if needed
```
prosodyctl restart
```
## Running behind NAT
In case of videobridge being installed on a machine behind NAT, add the following extra lines to the file `~/.sip-communicator/sip-communicator.properties` (in the home of user running the videobridge):
```
@@ -252,4 +220,4 @@ enableRecording: true
Restart jitsi-videobridge and start a new conference (making sure that the page
is reloaded with the new config.js) -- the organizer of the conference should
now have a "recoriding" button in the floating menu, near the "mute" button.
now have a "recording" button in the floating menu, near the "mute" button.

View File

@@ -1,28 +1,12 @@
# Jitsi Meet quick install
This documents decribes the needed steps for quick Jitsi Meet installation on a Debian based GNU/Linux system.
This document describes the required steps for a quick Jitsi Meet installation on a Debian based GNU/Linux system.
N.B.: All commands are supposed to be run by root. If you are logged in as a regular user with sudo rights, please prepend ___sudo___ to each of the commands.
## Basic Jitsi Meet install
### Add the repository
```sh
add-apt-repository 'deb http://download.jitsi.org/nightly/deb unstable/'
wget -qO - https://download.jitsi.org/nightly/deb/unstable/archive.key | apt-key add -
```
add-apt-repository is in the default Ubuntu install and is available for both Ubuntu and Debian, but if it's not present, either install it with
```sh
apt-get -y install software-properties-common
add-apt-repository 'deb http://download.jitsi.org/nightly/deb unstable/'
wget -qO - https://download.jitsi.org/nightly/deb/unstable/archive.key | apt-key add -
```
or add the repository by hand with
```sh
echo 'deb http://download.jitsi.org/nightly/deb unstable/' >> /etc/apt/sources.list
wget -qO - https://download.jitsi.org/nightly/deb/unstable/archive.key | apt-key add -
@@ -40,13 +24,13 @@ apt-get update
apt-get -y install jitsi-meet
```
During the installation you'll be asked to enter the hostname of the Jitsi Meet instance. If you have a FQDN hostname for the instance already set ip in DNS, enter it there. If you don't have a resolvable hostname, you can enter the IP address of the machine (if it is static or doesn't change).
During the installation, you will be asked to enter the hostname of the Jitsi Meet instance. If you have a FQDN hostname for the instance already set up in DNS, enter it there. If you don't have a resolvable hostname, you can enter the IP address of the machine (if it is static or doesn't change).
This hostname (or IP address) will be used for virtualhost configuration inside the Jitsi Meet and also you and your correspondents will be using it to access the web conferences.
This hostname (or IP address) will be used for virtualhost configuration inside the Jitsi Meet and also, you and your correspondents will be using it to access the web conferences.
### Open a conference
Launch a web broswer (Chrome, Chromium or latest Opera) and enter in the URL bar the hostname (or IP address) you used in the previous step.
Launch a web browser (Chrome, Chromium or latest Opera) and enter in the URL bar the hostname (or IP address) you used in the previous step.
Confirm that you trust the self-signed certificate of the newly installed Jitsi Meet.
@@ -57,19 +41,16 @@ Enjoy!
### Install Jigasi
```sh
apt-get -o Dpkg::Options::="--force-overwrite" -y install jigasi
apt-get -y install jigasi
```
or
```sh
wget https://download.jitsi.org/jigasi_1.0-1_amd64.deb
dpkg -i --force-overwrite jigasi_1.0-1_amd64.deb
dpkg -i jigasi_1.0-1_amd64.deb
```
You need to pass "--force-overwrite" option to dpkg, because the jigasi package patches some of the files in the jitsi-meet package in order to enable the SIP support in Jitsi Meet.
During the installation you'll be asked to enter your SIP account and password. This account will be used to invite the other SIP participants.
During the installation, you will be asked to enter your SIP account and password. This account will be used to invite the other SIP participants.
### Reload Jitsi Meet
@@ -77,27 +58,17 @@ Launch again a browser with the Jitsi Meet URL and you'll see a telephone icon o
Enjoy!
## Troubleshoot
If the SIP gateway doesn't work on first try, restart it.
## Uninstall
```sh
/etc/init.d/jigasi restart
apt-get purge jigasi jitsi-meet jicofo jitsi-videobridge
```
## Deinstall
```sh
apt-get purge jigasi jitsi-meet jitsi-videobridge
```
Somethimes the following packages will fail to uninstall properly:
Sometimes the following packages will fail to uninstall properly:
- jigasi
- jitsi-videobridge
When this happens, just run the deinstall command a second time and it should be ok.
When this happens, just run the uninstall command a second time and it should be ok.
The reason for failure is that not allways the daemons are stopped right away, there is a timeout before the actual stop. And if the unistall script goes on before the services' stop, there is an error.
The second run of the deinstall command fixes this, as by then the jigasi or jvb daemons are already stopped.
The reason for failure is that sometimes, the uninstall script is faster than the process that stops the daemons. The second run of the uninstall command fixes this, as by then the jigasi or jvb daemons are already stopped.

View File

@@ -1,17 +0,0 @@
/* global Strophe */
Strophe.addConnectionPlugin('logger', {
// logs raw stanzas and makes them available for download as JSON
connection: null,
log: [],
init: function (conn) {
this.connection = conn;
this.connection.rawInput = this.log_incoming.bind(this);
this.connection.rawOutput = this.log_outgoing.bind(this);
},
log_incoming: function (stanza) {
this.log.push([new Date().getTime(), 'incoming', stanza]);
},
log_outgoing: function (stanza) {
this.log.push([new Date().getTime(), 'outgoing', stanza]);
},
});

View File

@@ -1,197 +0,0 @@
/* global $, config, Prezi, Util, connection, setLargeVideoVisible, dockToolbar */
var Etherpad = (function (my) {
var etherpadName = null;
var etherpadIFrame = null;
var domain = null;
var options = "?showControls=true&showChat=false&showLineNumbers=true&useMonospaceFont=false";
/**
* Initializes the etherpad.
*/
my.init = function (name) {
if (config.etherpad_base && !etherpadName) {
domain = config.etherpad_base;
if (!name) {
// In case we're the focus we generate the name.
etherpadName = Math.random().toString(36).substring(7) +
'_' + (new Date().getTime()).toString();
shareEtherpad();
}
else
etherpadName = name;
enableEtherpadButton();
}
};
/**
* Opens/hides the Etherpad.
*/
my.toggleEtherpad = function (isPresentation) {
if (!etherpadIFrame)
createIFrame();
var largeVideo = null;
if (Prezi.isPresentationVisible())
largeVideo = $('#presentation>iframe');
else
largeVideo = $('#largeVideo');
if ($('#etherpad>iframe').css('visibility') === 'hidden') {
largeVideo.fadeOut(300, function () {
if (Prezi.isPresentationVisible()) {
largeVideo.css({opacity: '0'});
} else {
VideoLayout.setLargeVideoVisible(false);
}
$('#etherpad>iframe').fadeIn(300, function () {
document.body.style.background = '#eeeeee';
$('#etherpad>iframe').css({visibility: 'visible'});
$('#etherpad').css({zIndex: 2});
});
});
}
else if ($('#etherpad>iframe')) {
$('#etherpad>iframe').fadeOut(300, function () {
$('#etherpad>iframe').css({visibility: 'hidden'});
$('#etherpad').css({zIndex: 0});
document.body.style.background = 'black';
if (!isPresentation) {
$('#largeVideo').fadeIn(300, function () {
VideoLayout.setLargeVideoVisible(true);
});
}
});
}
resize();
};
/**
* Resizes the etherpad.
*/
function resize() {
if ($('#etherpad>iframe').length) {
var remoteVideos = $('#remoteVideos');
var availableHeight
= window.innerHeight - remoteVideos.outerHeight();
var availableWidth = Util.getAvailableVideoWidth();
$('#etherpad>iframe').width(availableWidth);
$('#etherpad>iframe').height(availableHeight);
}
}
/**
* Shares the Etherpad name with other participants.
*/
function shareEtherpad() {
connection.emuc.addEtherpadToPresence(etherpadName);
connection.emuc.sendPresence();
}
/**
* Creates the Etherpad button and adds it to the toolbar.
*/
function enableEtherpadButton() {
if (!$('#etherpadButton').is(":visible"))
$('#etherpadButton').css({display: 'inline-block'});
}
/**
* Creates the IFrame for the etherpad.
*/
function createIFrame() {
etherpadIFrame = document.createElement('iframe');
etherpadIFrame.src = domain + etherpadName + options;
etherpadIFrame.frameBorder = 0;
etherpadIFrame.scrolling = "no";
etherpadIFrame.width = $('#largeVideoContainer').width() || 640;
etherpadIFrame.height = $('#largeVideoContainer').height() || 480;
etherpadIFrame.setAttribute('style', 'visibility: hidden;');
document.getElementById('etherpad').appendChild(etherpadIFrame);
etherpadIFrame.onload = function() {
document.domain = document.domain;
bubbleIframeMouseMove(etherpadIFrame);
setTimeout(function() {
//the iframes inside of the etherpad are not yet loaded when the etherpad iframe is loaded
var outer = etherpadIFrame.contentDocument.getElementsByName("ace_outer")[0];
bubbleIframeMouseMove(outer);
var inner = outer.contentDocument.getElementsByName("ace_inner")[0];
bubbleIframeMouseMove(inner);
}, 2000);
};
}
function bubbleIframeMouseMove(iframe){
var existingOnMouseMove = iframe.contentWindow.onmousemove;
iframe.contentWindow.onmousemove = function(e){
if(existingOnMouseMove) existingOnMouseMove(e);
var evt = document.createEvent("MouseEvents");
var boundingClientRect = iframe.getBoundingClientRect();
evt.initMouseEvent(
"mousemove",
true, // bubbles
false, // not cancelable
window,
e.detail,
e.screenX,
e.screenY,
e.clientX + boundingClientRect.left,
e.clientY + boundingClientRect.top,
e.ctrlKey,
e.altKey,
e.shiftKey,
e.metaKey,
e.button,
null // no related element
);
iframe.dispatchEvent(evt);
};
}
/**
* On Etherpad added to muc.
*/
$(document).bind('etherpadadded.muc', function (event, jid, etherpadName) {
console.log("Etherpad added", etherpadName);
if (config.etherpad_base && !focus) {
Etherpad.init(etherpadName);
}
});
/**
* On focus changed event.
*/
$(document).bind('focusechanged.muc', function (event, focus) {
console.log("Focus changed");
if (config.etherpad_base)
shareEtherpad();
});
/**
* On video selected event.
*/
$(document).bind('video.selected', function (event, isPresentation) {
if (!config.etherpad_base)
return;
if (etherpadIFrame && etherpadIFrame.style.visibility !== 'hidden')
Etherpad.toggleEtherpad(isPresentation);
});
/**
* Resizes the etherpad, when the window is resized.
*/
$(window).resize(function () {
resize();
});
return my;
}(Etherpad || {}));

View File

@@ -23,17 +23,21 @@ var JitsiMeetExternalAPI = (function()
* @param width width of the iframe
* @param height height of the iframe
* @param parent_node the node that will contain the iframe
* @param filmStripOnly if the value is true only the small videos will be
* visible.
* @constructor
*/
function JitsiMeetExternalAPI(domain, room_name, width, height, parent_node)
{
function JitsiMeetExternalAPI(domain, room_name, width, height, parentNode,
configOverwrite, interfaceConfigOverwrite) {
if((!width || width < MIN_WIDTH) && !filmStripOnly)
width = MIN_WIDTH;
if((!height || height < MIN_HEIGHT) && !filmStripOnly)
height = MIN_HEIGHT;
this.parentNode = null;
if(parent_node)
{
this.parentNode = parent_node;
}
else
{
if (parentNode) {
this.parentNode = parentNode;
} else {
var scriptTag = document.scripts[document.scripts.length - 1];
this.parentNode = scriptTag.parentNode;
}
@@ -41,28 +45,50 @@ var JitsiMeetExternalAPI = (function()
this.iframeHolder =
this.parentNode.appendChild(document.createElement("div"));
this.iframeHolder.id = "jitsiConference" + JitsiMeetExternalAPI.id;
if(width < MIN_WIDTH)
width = MIN_WIDTH;
if(height < MIN_HEIGHT)
height = MIN_HEIGHT;
this.iframeHolder.style.width = width + "px";
this.iframeHolder.style.height = height + "px";
if(width)
this.iframeHolder.style.width = width + "px";
if(height)
this.iframeHolder.style.height = height + "px";
this.frameName = "jitsiConferenceFrame" + JitsiMeetExternalAPI.id;
this.url = "https://" + domain + "/";
this.url = "//" + domain + "/";
if(room_name)
this.url += room_name;
this.url += "#external";
this.url += "#external=true";
var key;
if (configOverwrite) {
for (key in configOverwrite) {
if (!configOverwrite.hasOwnProperty(key) ||
typeof key !== 'string')
continue;
this.url += "&config." + key + "=" + configOverwrite[key];
}
}
if (interfaceConfigOverwrite) {
for (key in interfaceConfigOverwrite) {
if (!interfaceConfigOverwrite.hasOwnProperty(key) ||
typeof key !== 'string')
continue;
this.url += "&interfaceConfig." + key + "=" + interfaceConfigOverwrite[key];
}
}
JitsiMeetExternalAPI.id++;
this.frame = document.createElement("iframe");
this.frame.src = this.url;
this.frame.name = this.frameName;
this.frame.id = this.frameName;
this.frame.width = "100%";
this.frame.height = "100%";
this.frame.setAttribute("allowFullScreen","true");
this.frame = this.iframeHolder.appendChild(this.frame);
this.frameLoaded = false;
this.initialCommands = [];
this.eventHandlers = {};
this.initListeners();
}
@@ -76,15 +102,12 @@ var JitsiMeetExternalAPI = (function()
* Sends the passed object to Jitsi Meet
* @param object the object to be sent
*/
JitsiMeetExternalAPI.prototype.sendMessage = function(object)
{
if(this.frameLoaded)
{
JitsiMeetExternalAPI.prototype.sendMessage = function(object) {
if (this.frameLoaded) {
this.frame.contentWindow.postMessage(
JSON.stringify(object), this.frame.src);
}
else
{
else {
this.initialCommands.push(object);
}
@@ -94,8 +117,8 @@ var JitsiMeetExternalAPI = (function()
* Executes command. The available commands are:
* displayName - sets the display name of the local participant to the value
* passed in the arguments array.
* muteAudio - mutes / unmutes audio with no arguments
* muteVideo - mutes / unmutes video with no arguments
* toggleAudio - mutes / unmutes audio with no arguments
* toggleVideo - mutes / unmutes video with no arguments
* filmStrip - hides / shows the film strip with no arguments
* If the command doesn't require any arguments the parameter should be set
* to empty array or it may be omitted.
@@ -103,12 +126,11 @@ var JitsiMeetExternalAPI = (function()
* @param arguments array of arguments
*/
JitsiMeetExternalAPI.prototype.executeCommand = function(name,
argumentsList)
{
argumentsList) {
var argumentsArray = argumentsList;
if(!argumentsArray)
if (!argumentsArray)
argumentsArray = [];
var object = {};
var object = {type: "command", action: "execute"};
object[name] = argumentsArray;
this.sendMessage(object);
};
@@ -117,32 +139,183 @@ var JitsiMeetExternalAPI = (function()
* Executes commands. The available commands are:
* displayName - sets the display name of the local participant to the value
* passed in the arguments array.
* muteAudio - mutes / unmutes audio with no arguments
* muteVideo - mutes / unmutes video with no arguments
* toggleAudio - mutes / unmutes audio with no arguments
* toggleVideo - mutes / unmutes video with no arguments
* filmStrip - hides / shows the film strip with no arguments
* @param object the object with commands to be executed. The keys of the
* object are the commands that will be executed and the values are the
* arguments for the command.
*/
JitsiMeetExternalAPI.prototype.executeCommands = function (object) {
object.type = "command";
object.action = "execute";
this.sendMessage(object);
};
/**
* Adds event listeners to Meet Jitsi. The object key should be the name of
* the event and value - the listener.
* Currently we support the following
* events:
* incomingMessage - receives event notifications about incoming
* messages. The listener will receive object with the following structure:
* {{
* "from": from,//JID of the user that sent the message
* "nick": nick,//the nickname of the user that sent the message
* "message": txt//the text of the message
* }}
* outgoingMessage - receives event notifications about outgoing
* messages. The listener will receive object with the following structure:
* {{
* "message": txt//the text of the message
* }}
* displayNameChanged - receives event notifications about display name
* change. The listener will receive object with the following structure:
* {{
* jid: jid,//the JID of the participant that changed his display name
* displayname: displayName //the new display name
* }}
* participantJoined - receives event notifications about new participant.
* The listener will receive object with the following structure:
* {{
* jid: jid //the jid of the participant
* }}
* participantLeft - receives event notifications about participant that left room.
* The listener will receive object with the following structure:
* {{
* jid: jid //the jid of the participant
* }}
* @param object
*/
JitsiMeetExternalAPI.prototype.addEventListeners
= function (object) {
var message = {type: "event", action: "add", events: []};
for(var i in object)
{
message.events.push(i);
this.eventHandlers[i] = object[i];
}
this.sendMessage(message);
};
/**
* Adds event listeners to Meet Jitsi. Currently we support the following
* events:
* incomingMessage - receives event notifications about incoming
* messages. The listener will receive object with the following structure:
* {{
* "from": from,//JID of the user that sent the message
* "nick": nick,//the nickname of the user that sent the message
* "message": txt//the text of the message
* }}
* outgoingMessage - receives event notifications about outgoing
* messages. The listener will receive object with the following structure:
* {{
* "message": txt//the text of the message
* }}
* displayNameChanged - receives event notifications about display name
* change. The listener will receive object with the following structure:
* {{
* jid: jid,//the JID of the participant that changed his display name
* displayname: displayName //the new display name
* }}
* participantJoined - receives event notifications about new participant.
* The listener will receive object with the following structure:
* {{
* jid: jid //the jid of the participant
* }}
* participantLeft - receives event notifications about participant that left room.
* The listener will receive object with the following structure:
* {{
* jid: jid //the jid of the participant
* }}
* @param event the name of the event
* @param listener the listener
*/
JitsiMeetExternalAPI.prototype.addEventListener
= function (event, listener) {
var message = {type: "event", action: "add", events: [event]};
this.eventHandlers[event] = listener;
this.sendMessage(message);
};
/**
* Removes event listener.
* @param event the name of the event.
*/
JitsiMeetExternalAPI.prototype.removeEventListener
= function (event) {
if(!this.eventHandlers[event])
{
console.error("The event " + event + " is not registered.");
return;
}
var message = {type: "event", action: "remove", events: [event]};
delete this.eventHandlers[event];
this.sendMessage(message);
};
/**
* Removes event listeners.
* @param events array with the names of the events.
*/
JitsiMeetExternalAPI.prototype.removeEventListeners
= function (events) {
var eventsArray = [];
for(var i = 0; i < events.length; i++)
{
var event = events[i];
if(!this.eventHandlers[event])
{
console.error("The event " + event + " is not registered.");
continue;
}
delete this.eventHandlers[event];
eventsArray.push(event);
}
if(eventsArray.length > 0)
{
this.sendMessage(
{type: "event", action: "remove", events: eventsArray});
}
};
/**
* Processes message events sent from Jitsi Meet
* @param event the event
*/
JitsiMeetExternalAPI.prototype.processMessage = function(event)
{
JitsiMeetExternalAPI.prototype.processMessage = function(event) {
var message;
try {
message = JSON.parse(event.data);
} catch (e) {}
if(message.loaded)
{
this.onFrameLoaded();
}
if(!message.type) {
console.error("Message without type is received.");
return;
}
switch (message.type) {
case "system":
if(message.loaded) {
this.onFrameLoaded();
}
break;
case "event":
if(message.action != "result" ||
!message.event || !this.eventHandlers[message.event]) {
console.warn("The received event cannot be parsed.");
return;
}
this.eventHandlers[message.event](message.result);
break;
default :
console.error("Unknown message type.");
return;
}
};
/**
@@ -151,8 +324,7 @@ var JitsiMeetExternalAPI = (function()
*/
JitsiMeetExternalAPI.prototype.onFrameLoaded = function () {
this.frameLoaded = true;
for (var i = 0; i < this.initialCommands.length; i++)
{
for (var i = 0; i < this.initialCommands.length; i++) {
this.sendMessage(this.initialCommands[i]);
}
this.initialCommands = null;
@@ -166,13 +338,11 @@ var JitsiMeetExternalAPI = (function()
this.eventListener = function (event) {
self.processMessage(event);
};
if (window.addEventListener)
{
if (window.addEventListener) {
window.addEventListener('message',
this.eventListener, false);
}
else
{
else {
window.attachEvent('onmessage', this.eventListener);
}
};
@@ -181,17 +351,22 @@ var JitsiMeetExternalAPI = (function()
* Removes the listeners and removes the Jitsi Meet frame.
*/
JitsiMeetExternalAPI.prototype.dispose = function () {
if (window.removeEventListener)
{
if (window.removeEventListener) {
window.removeEventListener('message',
this.eventListener, false);
}
else
{
else {
window.detachEvent('onmessage',
this.eventListener);
}
this.iframeHolder.parentNode.removeChild(this.iframeHolder);
var frame = document.getElementById(this.frameName);
if(frame)
frame.src = 'about:blank';
var self = this;
window.setTimeout(function () {
self.iframeHolder.removeChild(self.frame);
self.iframeHolder.parentNode.removeChild(self.iframeHolder);
}, 10);
};
return JitsiMeetExternalAPI;

Binary file not shown.

View File

@@ -3,35 +3,37 @@
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="jitsi" horiz-adv-x="512">
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
<glyph unicode="&#xe600;" d="M415.839 8.193h-72.442v129.327c-22.865 14.579-20.897 42.476-12.287 54.654 5.969 8.452 11.215 17.331 11.832 28.502 0.212 4.12 4.151 9.516 7.923 11.682 13.061 7.518 19.111 19.816 25.060 32.558 1.572 3.357 3.696 6.594 6.15 9.377 4.236 4.843 6.147 9.632 3.058 15.961-0.733 1.486 0.659 4.163 1.389 6.181 2.168 6.053 5.163 11.873 6.584 18.074 1.761 7.699 2.699 15.652 3.122 23.543 0.19 3.271-3.037 6.787-2.675 9.993 1.743 16.015-7.306 28.173-12.392 42.095-6.255 17.14-18.518 27.866-29.341 40.63-2.037 2.421-2.613 6.563-2.781 9.971-0.361 7.315-3.376 10.938-11.024 9.949-3.080-0.402-6.404-1.263-9.237-0.509-2.485 0.658-6.204 3.144-6.351 5.065-0.776 9.696-4.142 11.288-14.049 9.652-6.203-1.031-14.264 4.567-20.339 8.793-5.075 3.524-9.471 5.033-15.375 3.588-2.464-0.594-5.799-0.487-7.858 0.733-2.231 1.317-4.418 2.113-6.584 2.56v0.361c-0.488 0-0.988-0.085-1.467-0.138-0.488 0.053-0.976 0.138-1.454 0.138v-0.361c-2.178-0.447-4.363-1.243-6.584-2.56-2.083-1.22-5.405-1.326-7.859-0.733-5.925 1.445-10.299-0.063-15.375-3.588-6.106-4.226-14.143-9.824-20.335-8.793-9.908 1.636-13.296 0.043-14.060-9.652-0.149-1.922-3.865-4.408-6.35-5.065-2.846-0.755-6.16 0.106-9.249 0.509-7.635 0.988-10.651-2.634-11.012-9.949-0.169-3.41-0.743-7.551-2.782-9.971-10.811-12.764-23.077-23.49-29.342-40.63-5.085-13.922-14.136-26.081-12.382-42.095 0.35-3.206-2.868-6.721-2.698-9.993 0.435-7.89 1.37-15.844 3.133-23.543 1.421-6.202 4.418-12.021 6.594-18.074 0.733-2.017 2.115-4.693 1.392-6.181-3.102-6.329-1.189-11.118 3.058-15.961 2.444-2.782 4.567-6.019 6.138-9.376 5.937-12.742 12-25.040 25.063-32.558 3.758-2.166 7.708-7.561 7.931-11.682 0.605-11.171 5.851-20.050 11.82-28.502 9.165-12.977 10.597-43.475-17.108-57.344-38.337-19.168-77.041-37.678-116.312-54.816-24.595-10.749-36.946-28.8-41.119-54.096-1.274-7.666-2.931-15.269-3.94-22.981-1.507-11.478-3.92-34.937-3.92-34.937h415.839v40.193zM594.278 40.445h-72.445v-72.445h-73.74v72.445h-72.442v73.74h72.442v72.444h73.74v-72.444h72.445v-73.74z" horiz-adv-x="595" />
<glyph unicode="&#xe601;" d="M478.031 481.466h-409.912c-36.518 0-66.245-30.358-66.245-67.658v-270.103c0-37.269 29.727-67.623 66.245-67.623h17.913v-106.471l172.493 106.471h219.506c36.482 0 66.21 30.356 66.21 67.623v270.101c0 37.301-29.728 67.659-66.21 67.659zM248.25 146.943l-97.857-61.998v61.998h-79.13v263.628h403.594l0.032-263.627h-226.639zM119.531 357.777h302.563v-55.31h-302.563v55.31zM119.531 261.238h302.563v-55.308h-302.563v55.308z" horiz-adv-x="544" />
<glyph unicode="&#xe602;" d="M477.908 480.159h-411.421c-36.651 0-66.487-30.466-66.487-67.922v-271.093c0-37.425 29.836-67.892 66.487-67.892h411.421c36.62 0 66.458 30.467 66.458 67.892v271.093c0 37.457-29.838 67.922-66.458 67.922zM474.755 144.392h-405.113v264.611h405.082l0.031-264.611zM472.61 0.17c0-17.869-14.13-32.33-31.603-32.33h-337.614c-17.475 0-31.605 14.461-31.605 32.33v14.809c0 17.85 14.13 32.329 31.605 32.329h337.614c17.473 0 31.603-14.478 31.603-32.329v-14.809zM388.396 171.217l-151.334 151.303 56.206 56.158 151.273-151.301v-56.159z" horiz-adv-x="545" />
<glyph unicode="&#xe603;" d="M476.248 477.533h-409.344c-36.405 0-66.091-30.315-66.091-67.581v-375.36c0-37.236 29.686-67.55 66.091-67.55h409.343c36.468 0 66.157 30.313 66.157 67.55v375.361c0.001 37.266-29.689 67.579-66.156 67.579zM473.173 37.825h-403.070v368.911h403.007l0.063-368.911zM342.877 337.272h108.455v-283.379h-108.456v283.379zM214.336 273.001h108.456v-219.108h-108.456v219.108zM86.169 208.73h108.081v-154.839h-108.081v154.839z" horiz-adv-x="544" />
<glyph unicode="&#xe604;" d="M439.13 482.757c-81.772 0-148.286-66.518-148.286-148.306v-21.876h-224.454c-36.57 0-66.388-30.454-66.388-67.875v-206.384c0-37.389 29.819-67.839 66.388-67.839h282.076c36.632 0 66.459 30.45 66.459 67.839v206.384c0 35.027-26.134 63.948-59.52 67.504v22.247c0 46.183 37.577 83.745 83.726 83.745 46.152 0 83.731-37.56 83.731-83.745v-38.711c0-17.841 14.442-32.282 32.278-32.282 17.845 0 32.284 14.441 32.284 32.282v38.711c-0.001 81.788-66.514 148.306-148.293 148.306z" horiz-adv-x="590" />
<glyph unicode="&#xe605;" d="M0.759 320.807h138.767v159.899c0 0-39.017-4.051-88.090-55.817-49.069-51.764-50.676-104.082-50.676-104.082zM341.64 480.706h-169.842v-192.298l-171.040 0.125-0.757 1.734v-255.251c0-36.923 30.7-66.99 68.424-66.99h273.217c37.757 0 68.456 30.068 68.456 66.99v378.702c-0.002 36.921-30.699 66.988-68.457 66.988zM345.927 72.582h-286.424v46.394h286.423v-46.394zM345.927 169.401h-286.424v46.392h286.423v-46.392z" horiz-adv-x="410" />
<glyph unicode="&#xe606;" d="M476.95 481.193h-409.887c-36.483 0-66.209-30.356-66.209-67.672v-270.084c0-37.284 29.727-67.639 66.209-67.639h17.912v-106.445l172.483 106.445h219.493c36.482 0 66.208 30.355 66.208 67.639v270.084c0.001 37.316-29.725 67.672-66.207 67.672zM247.214 146.677l-97.885-62v62h-79.092v263.626h403.539l0.062-263.626h-226.625z" horiz-adv-x="545" />
<glyph unicode="&#xe607;" d="M354.757 310.047v22.227c0 81.545-66.331 147.875-147.875 147.875-81.546 0-147.876-66.329-147.876-147.875v-22.227c-33.113-3.697-59.007-32.458-59.007-67.304v-205.811c0-37.315 29.741-67.683 66.236-67.683h281.291c36.529 0 66.267 30.368 66.267 67.683v205.811c0 34.848-25.896 63.609-59.037 67.304zM206.882 415.769c46.022 0 83.493-37.472 83.493-83.494v-21.816h-166.989v21.816c0 46.022 37.441 83.494 83.495 83.494z" horiz-adv-x="414" />
<glyph unicode="&#xe608;" d="M613.039 358.427l-90.297-88.124v109.103c0 37.441-29.829 67.911-66.474 67.911h-318.101c-36.644 0-66.469-30.47-66.469-67.911v-305.329c0-37.425 29.826-67.894 66.469-67.894h318.101c36.645 0 66.474 30.469 66.474 67.894v86.562l96.954-77.070c24.451-17.791 48.463 2.608 48.463 20.292v242.327c0.001 17.682-28.015 35.754-55.122 12.24zM301.315 99.154c-70.723 0-128.065 57.342-128.065 128.066s57.341 128.065 128.065 128.065c70.724 0 128.067-57.341 128.067-128.065s-57.344-128.066-128.067-128.066zM296.894 299.788c-40.335 0-73.037-32.704-73.037-73.036 0-40.335 32.703-73.040 73.037-73.040 40.331 0 73.036 32.707 73.036 73.040 0 40.332-32.705 73.036-73.036 73.036zM296.894 260.049c-14.916 0-27.014-12.116-27.014-27.013 0-4.423-3.594-8.004-8.005-8.004-4.44 0-8.002 3.58-8.002 8.004 0 23.716 19.291 43.024 43.022 43.024 4.409 0 8.002-3.58 8.002-8.005-0.002-4.426-3.596-8.005-8.002-8.005z" horiz-adv-x="667" />
<glyph unicode="&#xe609;" d="M611.967 358.573l-90.149-87.978v108.924c0 3.831-0.333 7.574-0.951 11.216l36.847 32.673c13.174 11.705 14.42 31.9 2.684 45.12-11.737 13.203-31.902 14.436-45.136 2.7l-504.51-447.356c-13.204-11.705-14.421-31.903-2.699-45.104 6.303-7.118 15.091-10.769 23.925-10.769 7.538 0 15.107 2.652 21.195 8.050l47.92 42.49c10.498-7.313 23.13-11.616 36.796-11.616h317.596c36.55 0 66.33 30.404 66.33 67.769v86.434l96.83-76.978c24.408-17.73 48.383 2.624 48.383 20.292v241.914c0.001 17.653-27.966 35.693-55.062 12.22zM300.757 99.724c-29.405 0-56.283 10.108-77.763 26.899l41.465 36.767c10.431-5.832 22.425-9.193 35.235-9.193 40.267 0 72.916 32.649 72.916 72.918 0 9.71-1.948 18.928-5.428 27.357l43.423 38.501c11.424-19.13 18.006-41.484 18.006-65.391 0-70.607-57.246-127.855-127.853-127.855zM172.899 227.58c0 70.608 57.248 127.857 127.858 127.857 10.75 0 21.038-1.717 30.993-4.214l108.379 96.096h-302.237c-36.569 0-66.349-30.419-66.349-67.799v-259.037l102.947 91.272c-0.654 5.243-1.592 10.426-1.592 15.826z" horiz-adv-x="667" />
<glyph unicode="&#xe60a;" d="M560.562 469.433c-11.74 13.207-31.942 14.425-45.148 2.686l-504.653-447.452c-13.207-11.709-14.426-31.908-2.717-45.116 6.306-7.122 15.112-10.774 23.947-10.774 7.525 0 15.112 2.654 21.201 8.054l128.536 113.967c16.613-11.432 34.994-19.839 54.305-24.856-35.096-17.827-59.386-53.858-59.386-95.947h215.936c0 42.868-25.164 79.558-61.382 97.039 27.475 7.245 52.921 19.983 73.748 38.748 25.944 23.356 56.856 65.757 56.856 135.165v65.162c0 9.406-3.962 17.883-10.293 23.899l106.332 94.279c13.21 11.738 14.424 31.908 2.717 45.147zM395.767 240.946c0-78.993-58.825-114.961-113.495-114.961-17.607 0-34.329 3.608-49.142 10.393l27.868 24.708c7.366-2.295 15.178-3.566 23.305-3.566 44.678 0 80.992 36.344 80.992 80.99v15.050l30.474 27.021v-39.635zM365.295 396.933c0 44.649-36.313 80.992-80.992 80.992-44.649 0-80.992-36.344-80.992-80.992v-158.425c0-0.125 0-0.249 0-0.374l161.984 143.625v15.174zM175.398 213.345c-1.623 8.741-2.559 17.891-2.559 27.601v65.161c0 18.203-14.8 33.002-33.003 33.002-18.233 0-33.002-14.798-33.002-33.002v-65.161c0-28.599 5.558-53.513 14.549-75.466l54.015 47.865z" horiz-adv-x="569" />
<glyph unicode="&#xe60b;" d="M429.207 339.972c-18.298 0-33.123-14.826-33.123-33.091v-65.362c0-79.211-58.991-115.298-113.817-115.298-29.337 0-56.309 9.935-75.93 27.98-22.115 20.409-33.848 50.601-33.848 87.32v65.363c0 18.265-14.827 33.091-33.091 33.091s-33.091-14.826-33.091-33.091v-65.363c0-97.917 59.747-157.382 129.589-175.52-35.204-17.855-59.588-54.007-59.588-96.216h216.559c0 42.996-25.204 79.81-61.514 97.286 27.539 7.32 53.060 20.063 73.943 38.895 26.025 23.438 57.004 65.963 57.004 135.553v65.363c0 18.265-14.795 33.091-33.092 33.091zM284.286 157.86c-44.794 0-81.23 36.466-81.23 81.26v158.832c0 44.795 36.435 81.23 81.23 81.23 44.796 0 81.262-36.435 81.262-81.23v-158.832c0.002-44.796-36.464-81.26-81.262-81.26z" horiz-adv-x="569" />
<glyph unicode="&#xe60c;" d="M256.178 480c-141.228 0-256.178-114.919-256.178-256.239 0-141.195 114.95-256.113 256.178-256.113 141.257 0 256.207 114.919 256.207 256.113 0 141.32-114.95 256.239-256.207 256.239zM256.178 7.428c-119.272 0-216.335 97.063-216.335 216.333 0 119.398 97.063 216.429 216.335 216.429 119.3 0 216.428-97.031 216.428-216.429 0-119.27-97.127-216.333-216.428-216.333zM256.272 427.481c-112.377 0-203.754-91.375-203.754-203.657s91.375-203.657 203.754-203.657c112.219 0 203.594 91.377 203.594 203.658-0.002 112.283-91.375 203.658-203.594 203.658zM256.272 63.661c-88.358 0-160.226 71.902-160.226 160.162 0 88.262 71.868 160.162 160.226 160.162 88.262 0 160.098-71.901 160.098-160.162 0-88.26-71.837-160.162-160.098-160.162zM141.925 281.394l-0.477-0.699v-117.207l0.477-0.699c7.879-11.53 18.237-22.271 30.85-31.899l4.481-3.401v189.171l-4.481-3.368c-12.55-9.595-22.907-20.272-30.85-31.899zM207.819 332.865l-1.81-0.667v-220.18l1.81-0.699c9.341-3.527 19.444-5.97 30.883-7.466l3.112-0.381v237.207l-3.082-0.381c-11.119-1.398-21.508-3.876-30.913-7.435zM273.683 340.299l-3.082 0.381v-237.208l3.082 0.381c11.151 1.397 21.538 3.906 30.882 7.432l1.842 0.7v220.244l-1.842 0.667c-9.406 3.526-19.762 6.005-30.882 7.403zM370.49 281.394c-7.846 11.501-18.236 22.24-30.849 31.899l-4.447 3.43v-189.234l4.447 3.401c12.675 9.69 23.066 20.431 30.849 31.93l0.445 0.699v117.176l-0.445 0.7z" horiz-adv-x="513" />
<glyph unicode="&#xe60d;" d="M476.183 480.067h-410.238c-36.514 0-66.266-30.38-66.266-67.728v-376.179c0-37.33 29.752-67.712 66.266-67.712h410.24c36.545 0 66.298 30.383 66.298 67.712v376.179c-0.001 37.347-29.754 67.728-66.299 67.728zM473.067 39.401h-403.947v369.731h403.917l0.029-369.731zM284.871 255.938l45.886 48.433-38.652 38.654 158.197 42.52-42.49-158.195-37.678 37.647-45.917-48.433zM257.382 192.281l-45.883-48.433 38.65-38.652-158.194-42.522 42.489 158.194 37.678-37.645 45.917 48.435z" horiz-adv-x="545" />
<glyph unicode="&#xe60e;" d="M476.613 479.59h-410.332c-36.523 0-66.281-30.388-66.281-67.744v-376.262c0-37.324 29.759-67.71 66.281-67.71h410.33c36.553 0 66.312 30.388 66.312 67.711v376.262c0.001 37.356-29.758 67.744-66.311 67.744zM473.497 38.824h-404.039v369.798h404.009l0.031-369.798zM457.769 353.35l-45.897-48.445 38.663-38.661-158.232-42.515 42.5 158.232 37.687-37.67 45.926 48.445zM85.313 94.111l45.897 48.442-38.661 38.663 158.232 42.514-42.499-158.23-37.686 37.671-45.928-48.445z" horiz-adv-x="545" />
<glyph unicode="&#xe60f;" d="M256.518 480c141.785-0.094 256.207-114.737 256.018-256.332-0.188-141.878-114.483-256.114-256.271-256.144-141.595-0.034-256.456 114.737-256.267 256.050 0.187 142.319 114.483 256.551 256.518 256.426zM256.142 405.365c-100.395-0.063-181.478-81.146-181.416-181.507 0-100.553 80.894-181.541 181.416-181.667 100.582-0.156 181.791 81.147 181.728 181.886-0.125 100.426-81.209 181.351-181.727 181.287zM298.696 223.794h-0.252l-0.063 0.063h0.315l57.808 57.933c0 0-39.123 39.252-41.077 41.077l-58.877-58.091-59.507 59.098-41.012-41.139 44.407-44.409 13.337-14.531h0.251l0.126-0.127h-0.378l-57.744-57.903c0 0 39.125-39.282 41.012-41.106l58.88 58.123 59.504-59.13 41.077 41.203-44.408 44.41-13.4 14.531z" horiz-adv-x="513" />
<glyph unicode="&#xe610;" d="M33.245-31.998h513.97zM599.298 243.993c-67.851 67.947-135.707 135.83-203.683 203.62-3.122 3.045-6.934 5.857-10.933 7.327-15.618 5.7-31.74-6.404-31.864-23.837-0.127-33.832-0.063-67.666-0.063-101.483 0-2.14 0-4.31 0-6.982-3.062 0-5.435 0-7.81 0-53.123 0-106.167 0.031-159.243 0-17.589-0.016-27.43-9.855-27.43-27.461-0.030-46.389-0.030-92.75 0-139.173 0-17.9 9.841-27.74 27.805-27.74 52.887-0.031 105.712 0 158.555 0 2.438 0 4.811 0 8.123 0 0-2.688 0-4.687 0-6.654 0-33.397 0.125-66.851 0-100.248 0-11.529 4.623-20.12 15.121-24.774 10.558-4.685 19.68-1.405 27.615 6.469 67.978 68.039 136.016 136.017 203.994 204.087 11.745 11.716 11.62 25.056-0.187 36.847zM266.298 22.365c-1.313 9.81-11.028 16.058-13.964 17.713-4.405 2.593-9.185 2.906-12.841 2.906l-3.185-0.063-113.963 0.094c-28.021 0.062-49.234 21.087-49.296 48.858-0.094 88.563-0.094 177.161 0.032 265.755 0.029 26.991 21.335 48.265 48.484 48.406l117.961 0.031c16.713 0.015 25.647 8.060 27.24 24.618 0.5 6.482 0.405 13.026 0.219 19.586-0.564 19.869-9.685 28.74-29.553 28.756l-108.933-0.060c-7.747 0-15.463-0.281-23.18-1.172-57.76-6.577-103.778-56.825-104.841-114.399-0.656-31.944-0.498-63.902-0.342-95.859l0.093-30.101h-0.189c0 0-0.060-113.977 0.033-144.906 0.124-67.851 50.764-120.398 117.772-122.24 16.588-0.438 33.209-0.594 49.827-0.594h0.032l74.006 0.377c14.684 0 23.741 8.685 24.865 23.772 0.877 11.029 0.814 20.087-0.279 28.522z" horiz-adv-x="608" />
<glyph unicode="&#xe611;" d="M419.667 193.243c0-39.599-32.128-71.731-71.743-71.731-39.587 0-71.716 32.131-71.716 71.731 0 39.613 32.129 71.716 71.716 71.716 39.615-0.002 71.743-32.102 71.743-71.716zM686.385 353.243c-3.298 19.729-14.748 32.084-35.303 34.638-11.894 1.459-19.128 7.819-22.363 19.52-4.853 17.76-16.839 29.496-33.905 35.38-12.404 4.298-25.15 8.231-38.093 10.245-34.827 5.455-70.255 7.962-104.763 14.971-34.765 7.089-69.526 11.671-104.447 12.036-34.923-0.365-69.685-4.947-104.447-12.036-34.511-7.008-69.938-9.514-104.763-14.97-12.942-2.014-25.692-5.948-38.094-10.245-17.065-5.884-29.052-17.62-33.907-35.38-3.234-11.702-10.467-18.061-22.361-19.52-20.552-2.554-32.003-14.91-35.3-34.639-3.394-20.205-5.869-40.601-8.405-60.942-1.364-11.055 3.203-16.288 15.193-16.224 60.419 0.349 120.846 0.349 181.298 0.048 12.023-0.064 16.558 4.694 16.716 16.669 0.381 28.685-2.315 55.947-23.568 78.309-3.52 3.695-5.424 12.64-3.363 16.923 2.031 4.25 20.428 8.358 22.996 8.358 21.664-0.095 21.569-0.111 24.709-21.712 0.602-4.14 1.269-9.23 3.901-11.926 15.16-15.431 10.626-33.353 3.617-48.817-15.195-33.57-30.768-67.413-50.434-98.435-36.729-57.916-52.205-80.372-99.34-130.422-29.337-31.147-34.286-50.844-34.286-68.733 0-35.495 20.519-48.372 68.574-48.372 90.807 0 130.454 0.158 221.264 0.158 90.807 0 130.452-0.158 221.264-0.158 48.051 0 68.571 12.876 68.571 48.372 0 17.889-4.949 37.587-34.287 68.733-47.132 50.050-62.611 72.506-99.339 130.422-19.666 31.021-35.238 64.865-50.43 98.435-7.010 15.464-11.546 33.385 3.617 48.817 2.632 2.697 3.298 7.787 3.901 11.926 3.14 21.601 3.045 21.617 24.706 21.712 2.57 0 20.966-4.108 22.996-8.358 2.063-4.283 0.159-13.227-3.361-16.923-21.251-22.362-23.949-49.625-23.568-78.309 0.158-11.974 4.694-16.733 16.715-16.669 60.454 0.302 120.877 0.302 181.3-0.048 11.987-0.063 16.554 5.171 15.192 16.224-2.538 20.343-5.009 40.737-8.403 60.942zM479.995 191.752c0-73.157-59.312-132.468-132.485-132.468s-132.487 59.31-132.487 132.468c0 73.159 59.312 132.468 132.487 132.468 73.171 0 132.485-59.31 132.485-132.468z" horiz-adv-x="695" />
<glyph unicode="&#xe612;" d="M155.131 15.215c0-26.065-21.103-47.215-47.2-47.215h-60.703c-26.098 0-47.229 21.15-47.229 47.215v417.835c0 26.079 21.133 47.229 47.229 47.229h60.701c26.097 0 47.2-21.15 47.2-47.229v-417.835zM538.559 480.28h-280.993c-36.459 0-66.165-30.337-66.165-67.626v-377.058c0-37.259 29.706-67.596 66.165-67.596h280.993c36.49 0 66.197 30.337 66.197 67.596v377.058c0 37.29-29.707 67.626-66.197 67.626zM264.915 413.453h266.327l0.031-71.649h-266.358v71.649zM321.627 25.814h-56.776v56.776h56.776v-56.776zM321.627 128.374h-56.776v56.777h56.776v-56.777zM321.691 231.878h-56.776v56.777h56.776v-56.777zM426.45 25.814h-56.776v56.776h56.776v-56.776zM426.45 128.374h-56.776v56.777h56.776v-56.777zM426.514 231.878h-56.778v56.777h56.778v-56.777zM531.274 25.814h-56.778v56.776h56.778v-56.776zM531.274 128.374h-56.778v56.777h56.778v-56.777zM531.335 231.878h-56.777v56.777h56.777v-56.777z" horiz-adv-x="605" />
<glyph unicode="&#xe613;" d="M561.722 469.507c-11.797 13.24-32.066 14.495-45.37 2.697l-504.135-446.718c-13.305-11.734-14.495-32.065-2.73-45.338 6.337-7.153 15.154-10.825 24.063-10.825 7.562 0 15.186 2.7 21.272 8.098l65.023 57.61c45.371-40.922 105.284-66.082 171.237-66.050 141.408 0.031 255.457 113.985 255.644 255.486 0.063 54.967-17.341 105.683-46.75 147.36l59.044 52.313c13.241 11.763 14.499 32.065 2.702 45.368zM472.211 224.909c0.064-100.461-80.948-181.601-181.255-181.476-43.78 0.062-83.786 15.575-115.031 41.284l165.638 146.755v-36.588c0.536-30.497 16.348-46.090 47.472-46.846 30.998 0.756 46.843 16.382 47.565 46.878v20.548h-36.113v-23.75c0.125-2.321-0.282-5.303-1.255-8.974-0.625-1.63-1.724-3.010-3.262-4.046-1.599-1.286-3.923-1.914-6.934-1.914-5.272 0.155-8.566 2.134-9.913 5.961-0.534 1.756-0.974 3.452-1.254 5.082-0.127 1.443-0.188 2.766-0.188 3.893v71.755l21.238 18.817c0.108-0.216 0.226-0.425 0.315-0.651 0.974-3.233 1.381-6.399 1.255-9.538v-18.386h36.113v15.060c-0.123 15.623-4.543 27.35-13.181 35.224l20.356 18.034c17.894-28.028 28.401-61.293 28.433-97.122zM119.897 165.735c-6.306 18.512-9.913 38.279-9.913 58.957-0.095 100.118 80.792 181.005 180.973 181.067 28.426 0 55.156-6.651 79.067-18.199l58.923 52.211c-39.722 25.476-86.879 40.409-137.646 40.474-141.689 0.091-255.677-113.865-255.894-255.838-0.063-39.783 9.318-77.34 25.569-110.941l58.924 52.269zM194.288 313.010h-48.757v-124.529l36.115 32.035v0.344h0.407l58.86 52.209c0 0.282 0.061 0.47 0.061 0.755 0.376 26.949-15.184 40.034-46.687 39.185zM202.98 280.759c0.971-1.384 1.537-3.235 1.661-5.556 0.156-2.226 0.219-4.8 0.219-7.623 0.125-5.458-0.345-9.915-1.475-13.493-1.476-3.797-5.492-5.678-12.079-5.678h-9.662v37.022h7.655c3.921 0 6.933-0.341 9.036-1.095 2.198-0.787 3.734-1.976 4.645-3.577z" horiz-adv-x="570" />
<glyph unicode="&#xe614;" d="M290.639 480.854c142.428-0.095 257.404-115.258 257.213-257.498-0.189-142.524-115.036-257.277-257.435-257.308-142.27-0.031-257.656 115.259-257.466 257.211 0.219 142.968 115.005 257.719 257.688 257.595zM290.289 405.878c-100.882-0.061-182.333-81.516-182.239-182.332 0-101.009 81.262-182.368 182.239-182.492 101.009-0.158 182.587 81.515 182.524 182.712-0.126 100.884-81.578 182.175-182.524 182.112zM143.849 312.453h49.098c31.721 0.884 47.392-12.259 47.013-39.431 0.127-9.541-1.106-17.441-3.728-23.761-3.002-6.254-9.353-10.994-19.083-14.090v-0.41c14.186-3.13 21.516-11.787 21.99-25.973v-28.844c0-5.623 0.127-11.406 0.379-17.378 0.41-6.002 1.517-10.49 3.348-13.522h-35.923c-1.863 3.032-3.064 7.519-3.57 13.522-0.506 5.971-0.727 11.755-0.569 17.378v26.161c0 4.801-1.107 8.276-3.286 10.49-2.338 2.053-6.351 3.095-12.006 3.095h-7.299v-70.645h-36.365v163.41zM180.214 247.43h9.732c6.636 0 10.679 1.897 12.166 5.688 1.138 3.602 1.611 8.152 1.484 13.585 0 2.908-0.063 5.434-0.221 7.709-0.126 2.337-0.696 4.202-1.676 5.623-0.916 1.579-2.463 2.781-4.676 3.57-2.117 0.727-5.149 1.106-9.1 1.106h-7.709v-37.282zM249.186 312.453h81.041v-31.343h-44.675v-32.794h39.051v-31.343h-39.051v-36.555h46.411v-31.375h-82.779v163.409zM341.253 268c0.158 15.891 4.708 27.771 13.712 35.703 8.72 7.645 20.093 11.468 34.091 11.468 14.123 0 25.56-3.823 34.312-11.5 8.91-7.899 13.46-19.811 13.586-35.704v-15.166h-36.365v18.516c0.127 3.096-0.285 6.319-1.264 9.604-0.632 1.579-1.738 2.969-3.286 4.107-1.611 0.757-3.949 1.202-6.982 1.202-5.308-0.158-8.625-1.928-9.983-5.309-1.106-3.286-1.611-6.508-1.454-9.604v-80.978c0-1.137 0.063-2.433 0.19-3.886 0.284-1.705 0.727-3.412 1.264-5.116 1.358-3.887 4.676-5.878 9.983-6.003 3.034 0 5.372 0.63 6.982 1.896 1.549 1.075 2.654 2.433 3.286 4.108 0.98 3.665 1.391 6.665 1.264 9.003v23.918h36.365v-20.664c-0.726-30.774-16.682-46.507-47.897-47.235-31.342 0.727-47.265 16.461-47.803 47.171v74.469z" horiz-adv-x="571" />
<glyph unicode="&#xe615;" d="M508.412 2.883c-1.026 7.687-2.666 15.269-3.93 22.923-4.167 25.229-16.503 43.252-41.031 53.961-39.187 17.099-77.551 36.060-116.055 54.697-27.843 13.512-26.204 44.26-17.048 57.207 5.945 8.44 11.172 17.286 11.788 28.426 0.222 4.113 4.151 9.495 7.909 11.647 13.035 7.518 19.081 19.782 25.010 32.491 1.555 3.348 3.69 6.594 6.133 9.361 4.236 4.834 6.132 9.618 3.039 15.921-0.717 1.485 0.666 4.167 1.4 6.183 2.152 6.013 5.142 11.838 6.56 18.022 1.778 7.669 2.699 15.612 3.126 23.487 0.187 3.262-3.022 6.764-2.681 9.975 1.741 15.956-7.279 28.101-12.37 41.988-6.233 17.099-18.464 27.81-29.26 40.553-2.033 2.392-2.613 6.526-2.786 9.943-0.36 7.294-3.366 10.898-11.002 9.906-3.055-0.394-6.386-1.248-9.205-0.496-2.478 0.667-6.203 3.144-6.338 5.056-0.769 9.668-4.132 11.258-14.008 9.618-6.182-1.025-14.228 4.577-20.292 8.78-5.072 3.521-9.445 5.023-15.341 3.588-2.457-0.598-5.772-0.495-7.858 0.717-2.221 1.332-4.387 2.119-6.559 2.562v0.374c-0.478-0.016-0.991-0.102-1.469-0.154-0.477 0.051-0.956 0.137-1.434 0.154v-0.375c-2.185-0.444-4.375-1.231-6.578-2.562-2.066-1.213-5.381-1.316-7.84-0.718-5.911 1.434-10.285-0.068-15.342-3.588-6.079-4.202-14.108-9.805-20.292-8.781-9.873 1.641-13.255 0.052-14.024-9.618-0.154-1.912-3.843-4.389-6.338-5.056-2.834-0.752-6.149 0.102-9.223 0.495-7.618 0.992-10.625-2.613-10.985-9.906-0.169-3.416-0.751-7.551-2.784-9.943-10.794-12.743-23.025-23.454-29.278-40.553-5.058-13.886-14.094-26.031-12.335-41.987 0.343-3.211-2.872-6.714-2.7-9.975 0.445-7.875 1.368-15.818 3.127-23.487 1.418-6.184 4.407-12.010 6.576-18.022 0.719-2.016 2.121-4.698 1.384-6.183-3.091-6.303-1.179-11.087 3.058-15.921 2.427-2.767 4.56-6.013 6.115-9.361 5.929-12.709 11.974-24.974 25.007-32.491 3.76-2.152 7.689-7.534 7.929-11.647 0.596-11.14 5.825-19.986 11.785-28.426 9.141-12.947 10.573-43.369-17.081-57.207-38.228-19.132-76.871-37.6-116.021-54.697-24.564-10.709-36.863-28.731-41.032-53.961-1.263-7.656-2.939-15.238-3.929-22.923-1.505-11.464-3.912-34.883-3.912-34.883h512.306c-0.001 0-2.39 23.419-3.894 34.883z" horiz-adv-x="513" />
<glyph unicode="&#xe616;" d="M513.087 224.534c0-141.673-114.855-256.526-256.554-256.526-141.674 0-256.534 114.851-256.534 256.526 0 141.692 114.861 256.553 256.534 256.553 141.7 0 256.554-114.861 256.554-256.553zM256.534-31.993c67.863 0 129.556 26.356 175.437 69.37-4.858 5.825-11.276 10.557-19.557 14.171-29.467 12.873-58.313 27.128-87.267 41.128-20.935 10.161-19.702 33.293-12.82 43.029 4.471 6.346 8.402 12.999 8.864 21.373 0.166 3.084 3.12 7.142 5.945 8.761 9.802 5.652 14.349 14.873 18.802 24.43 1.17 2.515 2.777 4.945 4.615 7.038 3.185 3.622 4.612 7.218 2.286 11.971-0.543 1.104 0.502 3.12 1.053 4.637 1.619 4.534 3.866 8.901 4.93 13.558 1.335 5.774 2.029 11.74 2.351 17.661 0.14 2.451-2.272 5.092-2.017 7.493 1.31 12.011-5.471 21.136-9.299 31.579-4.688 12.857-13.885 20.91-22.002 30.485-1.529 1.812-1.964 4.919-2.094 7.476-0.269 5.49-2.53 8.207-8.272 7.462-2.299-0.3-4.805-0.943-6.921-0.378-1.864 0.494-4.663 2.362-4.767 3.802-0.577 7.269-3.106 8.465-10.533 7.238-4.648-0.772-10.697 3.429-15.257 6.601-3.816 2.646-7.104 3.777-11.534 2.69-1.849-0.45-4.341-0.373-5.908 0.547-1.671 0.988-3.303 1.592-4.933 1.919v0.276c-0.36-0.007-0.745-0.065-1.104-0.108-0.361 0.044-0.72 0.103-1.078 0.108v-0.276c-1.645-0.327-3.287-0.931-4.945-1.919-1.556-0.918-4.046-0.996-5.899-0.547-4.443 1.087-7.724-0.044-11.532-2.69-4.578-3.173-10.611-7.373-15.259-6.601-7.431 1.226-9.97 0.031-10.547-7.238-0.109-1.439-2.897-3.308-4.758-3.802-2.139-0.565-4.624 0.077-6.944 0.378-5.728 0.745-7.994-1.971-8.258-7.462-0.131-2.555-0.565-5.665-2.095-7.476-8.111-9.575-17.308-17.629-22.009-30.485-3.814-10.443-10.602-19.568-9.285-31.579 0.256-2.401-2.152-5.042-2.023-7.493 0.327-5.923 1.020-11.888 2.351-17.661 1.065-4.656 3.313-9.024 4.945-13.558 0.547-1.516 1.587-3.531 1.041-4.637-2.325-4.754-0.894-8.351 2.291-11.971 1.837-2.094 3.437-4.523 4.612-7.038 4.45-9.555 8.996-18.779 18.798-24.43 2.827-1.619 5.78-5.676 5.952-8.761 0.457-8.374 4.387-15.027 8.869-21.373 6.873-9.735 7.951-32.623-12.837-43.029-28.76-14.386-57.8-28.255-87.251-41.128-8.285-3.615-14.704-8.347-19.561-14.169 45.88-43.015 107.569-69.372 175.422-69.372z" horiz-adv-x="513" />
<glyph unicode="&#xe617;" d="M32.887 258.374c5.026 4.679 12.994 10.886 21.642 16.349 25.668 16.31 54.057 25.449 83.415 32.066 24.381 5.475 49.123 8.444 74.033 10.101 27.877 1.877 55.779 1.89 83.696 0.399 19.972-1.092 39.843-3.251 59.56-6.606 21.978-3.753 43.519-8.997 64.392-16.875 12.209-4.587 24.086-10.053 35.267-16.786 14.858-8.946 28.276-19.612 38.61-33.674 10.409-14.151 15.861-30.204 16.914-47.696 0.873-13.701 0.358-27.349-2.828-40.794-1.438-6.041-4.113-11.567-8.277-16.193-5.709-6.324-13.212-8.51-21.386-8.818-10.231-0.334-20.205 2.057-30.18 4.113-19.456 3.985-38.918 8.123-58.349 12.364-7.069 1.517-14.344 2.546-20.825 6.298-11.154 6.478-17.223 15.887-17.017 28.892 0.129 8.435 1.108 16.891 1.235 25.348 0.156 12.505-4.962 22.581-15.449 29.521-7.197 4.769-15.347 7.456-23.726 9.333-20.206 4.523-40.693 5.089-61.281 5.025-14.411-0.063-28.791-0.834-43.047-3.071-9.974-1.581-19.781-3.906-28.866-8.507-12.159-6.182-19.677-15.732-20.036-29.676-0.22-8.175 0.487-16.401 0.964-24.575 0.321-5.911-0.040-11.723-2.648-17.144-4.63-9.692-12.468-15.836-22.685-18.482-11.323-2.933-22.802-5.27-34.252-7.611-19.051-3.882-38.108-7.684-57.208-11.259-7.263-1.387-14.627-0.976-21.567 1.801-9.371 3.728-14.462 11.387-17.069 20.668-3.548 12.699-3.921 25.757-3.483 38.865 0.45 13.52 2.942 26.618 9.202 38.803 4.897 9.532 11.246 17.977 21.246 27.821z" horiz-adv-x="513" />
<glyph unicode="&#xe618;" d="M398.543 56.151c-0.029 0.082-0.060 0.164-0.080 0.243-35.7-22.819-75.891-34.966-117.012-34.966-0.007 0-0.010 0-0.014 0-61.26 0-118.75 26.386-157.734 72.37-49.889 58.849-67.126 164.977-36.511 213.894 2.002-0.831 3.938-1.616 5.84-2.387 6.793-2.756 13.207-5.358 21.153-9.548 3.031-1.601 6.169-2.406 9.337-2.406 5.857 0 11.3 2.824 14.924 7.743 3.907 5.309 5.156 12.389 3.269 18.476l-1.762 5.705c-5.344 17.295-10.862 35.177-17.106 52.539-4.992 13.882-11.2 31.163-29.613 31.163-6.028 0-13.019-1.828-23.365-6.102-22.147-9.159-35.529-14.981-57.267-24.905-7.551-3.444-12.617-11.349-12.601-19.672 0.014-7.921 4.496-14.668 11.988-18.058 9.104-4.128 15.268-6.858 21.734-9.723l5.343-2.377c-50.969-129.551 12.401-263.229 105.657-319.606 41.749-25.237 89.25-38.57 137.385-38.57h0.021c51.36 0 102.781 15.55 142.25 42.599-15.865 14.401-22.783 34.584-25.836 43.586zM549.101 105.045c-9.057 4.288-15.178 7.129-21.611 10.122l-5.248 2.446c53.224 128.634-7.784 263.401-100.034 321.394-42.68 26.832-91.562 41.016-141.358 41.016-52.424 0-103.205-15.297-142.983-43.083l-2.692-1.882c15.798-13.782 22.93-33.394 26.459-43.205 36.463 23.97 77.838 36.704 119.947 36.704 62.704 0 121.071-27.392 160.147-75.158 48.841-59.724 64.219-166.128 32.749-214.508-1.995 0.868-3.908 1.692-5.812 2.499-6.736 2.88-13.102 5.59-20.977 9.911-3.101 1.712-6.322 2.577-9.606 2.577-5.793 0-11.2-2.779-14.845-7.634-3.906-5.217-5.239-12.216-3.483-18.257l1.639-5.651c5.048-17.423 10.265-35.428 16.206-52.921 4.794-14.119 10.757-31.691 29.589-31.691 5.921 0 12.788 1.712 22.94 5.7 22.175 8.719 35.66 14.3 57.704 23.889 7.595 3.312 12.801 11.126 12.929 19.447 0.14 7.911-4.222 14.75-11.663 18.284z" horiz-adv-x="561" />
<glyph unicode="&#xe619;" d="M23.497 480.85c230.617 0 276.897 0 507.512 0 17.96 0 26.678-12.98 26.678-28.98-0.29-151.63-0.163-303.244-0.225-454.904 0-21.992-6.601-28.529-28.851-28.529-221.536-0.063-278.226-0.063-499.776 0-22.267 0-28.899 6.505-28.899 28.529-0.049 151.629 0.242 304.036-0.046 455.664-0.017 13.105 5.651 26.88 23.608 28.219zM155.702 225.149c0-59.522-0.036-86.084 0.029-145.625 0.018-25.022 5.604-30.525 31.060-30.525 116.676 0 68.537 0 185.261 0 23.538 0 29.625 5.991 29.625 29.048 0.063 119.555 0.063 173.169 0 292.695 0 24.069-5.344 29.495-28.884 29.495-117.661 0.050-70.422 0.050-188.078 0-23.522 0-28.965-5.522-28.983-29.445-0.065-59.554-0.029-86.105-0.029-145.643zM76.972 419.283c-37.465-0.031-33.343 2.979-33.422-33.343-0.1-31.975-3.527-31.767 31.264-31.686 36.499 0.097 33.6-1.882 33.651 33.777 0 33.861 2.043 31.298-31.493 31.251zM481.822 419.283c-35.579-0.017-32.78 3.092-32.875-32.682-0.065-33.651-2.254-32.346 32.264-32.346 36.544 0 32.649-1.015 32.649 33.119-0.001 34.323 3.478 31.955-32.038 31.909zM108.414 61.204c0.18 36.547 2.32 33.457-33.679 33.585-34.052 0.096-31.285 1.382-31.203-31.655 0.065-36.738-3.477-33.26 33.537-33.325 33.021-0.033 31.571-3.028 31.346 31.394zM513.859 62.2c0.067 34.167 3.221 32.652-31.649 32.589-35.066-0.066-33.328 2.897-33.264-32.652 0.065-35.322-2.192-32.361 31.878-32.329 35.998 0.066 33.101-3.349 33.034 32.392zM513.859 171.038c0 35.275 3.61 33.421-33.743 33.261-0.449 0-0.937 0-1.419 0-29.688 0-29.688 0-29.688-29.012 0-38.961-3.221-34.968 34.647-35.098 33.038-0.193 30.269-1.546 30.202 30.849zM75.653 244.936c34.147-0.082 32.907-2.784 32.812 31.491-0.097 35.564 2.448 32.459-33.007 32.505-34.953 0.050-31.907 2.352-31.942-31.989-0.031-33.715-2.85-32.231 32.138-32.007zM480.632 244.936c36.256-0.129 33.295-2.302 33.228 32.247 0 34.279 3.092 31.769-32.134 31.749-35.098-0.014-32.843 3.026-32.749-32.747 0.066-31.25 0.034-31.25 31.655-31.25zM75.2 140.19c35.502 0 33.329-3.284 33.233 32.264-0.082 31.847-0.018 31.75-32.507 31.878-35.403 0.129-32.411 1.337-32.411-31.878 0.018-34.584-2.959-32.394 31.684-32.264z" horiz-adv-x="558" />
<glyph unicode="&#xe61a;" d="M1.94 73.418h110.13v-105.418h-110.13v105.418zM154.409 175.072h110.135v-207.072h-110.135v207.072zM306.882 276.706h110.134v-308.706h-110.134v308.706zM459.342 378.358h110.132v-410.358h-110.132v410.358zM611.814 480h110.131v-512h-110.131v512z" horiz-adv-x="722" />
<font id="jitsi" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
<glyph unicode="&#xe600;" d="M831.678 16.386h-144.885v258.653c-45.729 29.159-41.794 84.953-24.574 109.307 11.939 16.905 22.43 34.662 23.663 57.004 0.423 8.241 8.303 19.031 15.847 23.364 26.122 15.037 38.223 39.632 50.12 65.116 3.143 6.714 7.392 13.187 12.3 18.753 8.471 9.686 12.295 19.264 6.115 31.922-1.466 2.972 1.318 8.326 2.779 12.362 4.335 12.106 10.326 23.745 13.169 36.148 3.522 15.399 5.398 31.305 6.244 47.086 0.379 6.543-6.074 13.574-5.351 19.986 3.486 32.030-14.612 56.346-24.785 84.189-12.509 34.28-37.036 55.732-58.681 81.26-4.074 4.843-5.225 13.125-5.563 19.942-0.722 14.63-6.752 21.875-22.048 19.898-6.161-0.805-12.808-2.526-18.474-1.019-4.969 1.316-12.408 6.288-12.702 10.13-1.553 19.393-8.285 22.577-28.098 19.305-12.406-2.062-28.527 9.134-40.677 17.587-10.15 7.049-18.941 10.065-30.751 7.175-4.928-1.187-11.598-0.973-15.716 1.466-4.461 2.634-8.837 4.226-13.169 5.119v0.722c-0.975 0-1.976-0.17-2.934-0.276-0.975 0.106-1.951 0.276-2.908 0.276v-0.722c-4.355-0.893-8.726-2.485-13.169-5.119-4.167-2.441-10.811-2.652-15.718-1.466-11.851 2.89-20.598-0.126-30.751-7.175-12.212-8.453-28.287-19.648-40.671-17.587-19.816 3.272-26.591 0.085-28.119-19.305-0.299-3.844-7.73-8.816-12.7-10.13-5.692-1.509-12.32 0.212-18.497 1.019-15.27 1.976-21.302-5.269-22.024-19.898-0.338-6.819-1.486-15.102-5.565-19.942-21.622-25.528-46.154-46.98-58.684-81.26-10.171-27.843-28.271-52.161-24.765-84.189 0.699-6.412-5.736-13.443-5.395-19.986 0.87-15.78 2.74-31.687 6.267-47.086 2.843-12.403 8.835-24.042 13.187-36.148 1.466-4.033 4.229-9.387 2.784-12.362-6.203-12.658-2.379-22.236 6.115-31.922 4.887-5.565 9.134-12.039 12.277-18.753 11.874-25.484 24.001-50.079 50.125-65.116 7.516-4.332 15.417-15.122 15.863-23.364 1.21-22.342 11.701-40.099 23.64-57.004 18.33-25.954 21.194-86.95-34.216-114.687-76.673-38.336-154.083-75.357-232.624-109.632-49.189-21.498-73.891-57.6-82.238-108.192-2.549-15.331-5.862-30.539-7.88-45.961-3.014-22.956-7.839-69.874-7.839-69.874h831.678v80.386zM1188.556 80.89h-144.89v-144.89h-147.481v144.89h-144.885v147.481h144.885v144.888h147.481v-144.888h144.89v-147.481z" horiz-adv-x="1189" />
<glyph unicode="&#xe601;" d="M956.063 962.932h-819.824c-73.036 0-132.489-60.717-132.489-135.316v-540.205c0-74.537 59.453-135.246 132.489-135.246h35.826v-212.941l344.987 212.941h439.011c72.964 0 132.42 60.711 132.42 135.246v540.202c0 74.602-59.456 135.318-132.42 135.318zM496.5 293.887l-195.714-123.997v123.997h-158.261v527.257h807.189l0.064-527.255h-453.278zM239.062 715.554h605.126v-110.62h-605.126v110.62zM239.062 522.476h605.126v-110.615h-605.126v110.615z" horiz-adv-x="1088" />
<glyph unicode="&#xe602;" d="M955.816 960.317h-822.841c-73.303 0-132.975-60.931-132.975-135.844v-542.186c0-74.851 59.672-135.785 132.975-135.785h822.841c73.239 0 132.916 60.934 132.916 135.785v542.186c0 74.913-59.677 135.844-132.916 135.844zM949.51 288.784h-810.226v529.223h810.164l0.062-529.223zM945.219 0.34c0-35.738-28.261-64.66-63.207-64.66h-675.228c-34.949 0-63.209 28.921-63.209 64.66v29.618c0 35.7 28.261 64.657 63.209 64.657h675.228c34.946 0 63.207-28.957 63.207-64.657v-29.618zM776.792 342.434l-302.669 302.605 112.411 112.316 302.545-302.602v-112.318z" horiz-adv-x="1089" />
<glyph unicode="&#xe603;" d="M952.495 955.065h-818.689c-72.81 0-132.183-60.63-132.183-135.162v-750.719c0-74.473 59.372-135.101 132.183-135.101h818.686c72.936 0 132.314 60.625 132.314 135.101v750.722c0.003 74.532-59.378 135.159-132.311 135.159zM946.346 75.651h-806.14v737.822h806.015l0.126-737.822zM685.753 674.544h216.911v-566.758h-216.911v566.758zM428.672 546.002h216.911v-438.216h-216.911v438.216zM172.339 417.46h216.161v-309.677h-216.161v309.677z" horiz-adv-x="1088" />
<glyph unicode="&#xe604;" d="M878.259 965.513c-163.545 0-296.573-133.036-296.573-296.612v-43.752h-448.909c-73.14 0-132.777-60.909-132.777-135.751v-412.768c0-74.777 59.637-135.678 132.777-135.678h564.152c73.265 0 132.919 60.901 132.919 135.678v412.768c0 70.054-52.267 127.895-119.040 135.009v44.494c0 92.367 75.154 167.49 167.451 167.49 92.305 0 167.462-75.12 167.462-167.49v-77.422c0-35.681 28.883-64.564 64.556-64.564 35.69 0 64.569 28.883 64.569 64.564v77.422c-0.003 163.576-133.028 296.612-296.587 296.612z" horiz-adv-x="1179" />
<glyph unicode="&#xe605;" d="M1.518 641.614h277.533v319.798c0 0-78.033-8.102-176.18-111.633-98.139-103.529-101.353-208.165-101.353-208.165zM683.281 961.412h-339.684v-384.596l-342.080 0.251-1.515 3.468v-510.502c0-73.845 61.4-133.979 136.847-133.979h546.434c75.514 0 136.911 60.137 136.911 133.979v757.403c-0.003 73.843-61.397 133.976-136.914 133.976zM691.854 145.164h-572.848v92.788h572.845v-92.788zM691.854 338.802h-572.848v92.783h572.845v-92.783z" horiz-adv-x="820" />
<glyph unicode="&#xe606;" d="M953.901 962.387h-819.775c-72.965 0-132.418-60.712-132.418-135.344v-540.168c0-74.567 59.453-135.279 132.418-135.279h35.823v-212.891l344.966 212.891h438.986c72.963 0 132.415 60.709 132.415 135.279v540.168c0.003 74.632-59.45 135.344-132.415 135.344zM494.429 293.354l-195.769-124.001v124.001h-158.184v527.252h807.078l0.124-527.252h-453.249z" horiz-adv-x="1089" />
<glyph unicode="&#xe607;" d="M709.515 620.094v44.455c0 163.090-132.662 295.749-295.749 295.749-163.093 0-295.752-132.659-295.752-295.749v-44.455c-66.226-7.393-118.013-64.915-118.013-134.607v-411.623c0-74.629 59.481-135.365 132.472-135.365h562.583c73.059 0 132.534 60.736 132.534 135.365v411.623c0 69.697-51.792 127.219-118.074 134.607zM413.765 831.537c92.043 0 166.987-74.944 166.987-166.987v-43.632h-333.978v43.632c0 92.043 74.883 166.987 166.99 166.987z" horiz-adv-x="828" />
<glyph unicode="&#xe608;" d="M1223.129 717.217l-180.128-175.796v217.716c0 74.673-59.512 135.496-132.599 135.496h-634.716c-73.084 0-132.596-60.823-132.596-135.496v-609.237c0-74.673 59.512-135.496 132.596-135.496h634.716c73.084 0 132.599 60.82 132.599 135.496v172.679l193.45-153.712c48.784-35.558 96.695 5.178 96.695 40.424v483.533c-0.003 35.248-55.897 71.306-110.017 24.393zM601.169 199.935c-141.111 0-255.524 114.411-255.524 255.521s114.411 255.521 255.524 255.521c141.108 0 255.519-114.411 255.519-255.521 0-141.113-114.408-255.521-255.519-255.521zM599.045 600.249c-80.474 0-145.727-65.253-145.727-145.729 0-80.471 65.25-145.727 145.727-145.727s145.729 65.256 145.729 145.727c0 80.474-65.253 145.729-145.729 145.729z" horiz-adv-x="1334" />
<glyph unicode="&#xe609;" d="M1223.934 717.147l-180.299-175.956v217.848c0 7.661-0.666 15.148-1.902 22.432l73.695 65.346c26.349 23.41 28.841 63.8 5.369 90.24-23.475 26.406-63.803 28.872-90.273 5.4l-1009.019-894.712c-26.408-23.41-28.841-63.806-5.398-90.209 12.607-14.237 30.183-21.539 47.85-21.539 15.076 0 30.214 5.305 42.39 16.1l95.841 84.979c20.995-14.627 46.26-23.232 73.592-23.232h635.191c73.099 0 132.66 60.807 132.66 135.537v172.868l193.659-153.955c48.815-35.46 96.765 5.248 96.765 40.584v483.829c0.003 35.305-55.933 71.386-110.123 24.44zM601.515 199.448c-58.81 0-112.566 20.216-155.526 53.797l82.93 73.533c20.863-11.665 44.849-18.386 70.47-18.386 80.533 0 145.832 65.299 145.832 145.835 0 19.421-3.896 37.857-10.857 54.713l86.847 77.001c22.848-38.259 36.012-82.969 36.012-130.782 0-141.214-114.493-255.71-255.707-255.71zM345.797 455.16c0 141.216 114.496 255.715 255.717 255.715 21.501 0 42.075-3.434 61.986-8.429l216.757 192.191h-604.474c-73.138 0-132.697-60.838-132.697-135.597v-518.074l205.894 182.543c-1.308 10.486-3.184 20.853-3.184 31.651z" horiz-adv-x="1334" />
<glyph unicode="&#xe60a;" d="M1121.124 938.866c-23.48 26.413-63.883 28.849-90.296 5.372l-1009.306-894.905c-26.413-23.418-28.852-63.816-5.434-90.232 12.612-14.243 30.224-21.547 47.893-21.547 15.050 0 30.224 5.307 42.403 16.108l257.072 227.934c33.225-22.863 69.988-39.678 108.611-49.713-70.191-35.653-118.771-107.715-118.771-191.894h431.872c0 85.737-50.329 159.115-122.765 194.079 54.95 14.49 105.842 39.965 147.497 77.496 51.888 46.712 113.712 131.515 113.712 270.329v130.323c0 18.812-7.924 35.767-20.585 47.798l212.664 188.558c26.419 23.477 28.849 63.816 5.434 90.294zM791.535 481.891c0-157.985-117.649-229.923-226.99-229.923-35.214 0-68.659 7.217-98.285 20.786l55.735 49.416c14.733-4.59 30.356-7.132 46.609-7.132 89.357 0 161.984 72.687 161.984 161.979v30.1l60.947 54.042v-79.269zM730.589 793.867c0 89.298-72.625 161.984-161.984 161.984-89.298 0-161.984-72.687-161.984-161.984v-316.85c0-0.25 0-0.498 0-0.748l323.969 287.25v30.348zM350.795 426.69c-3.246 17.483-5.119 35.782-5.119 55.201v130.323c0 36.406-29.6 66.004-66.006 66.004-36.466 0-66.004-29.597-66.004-66.004v-130.323c0-57.198 11.115-107.026 29.099-150.931l108.030 95.73z" horiz-adv-x="1137" />
<glyph unicode="&#xe60b;" d="M858.414 679.944c-36.595 0-66.246-29.652-66.246-66.182v-130.725c0-158.421-117.982-230.597-227.635-230.597-58.674 0-112.618 19.87-151.86 55.959-44.23 40.819-67.696 101.203-67.696 174.64v130.725c0 36.53-29.654 66.182-66.182 66.182-36.53 0-66.182-29.652-66.182-66.182v-130.725c0-195.834 119.494-314.763 259.177-351.040-70.408-35.71-119.176-108.014-119.176-192.431h433.118c0 85.993-50.409 159.621-123.029 194.572 55.079 14.64 106.121 40.127 147.886 77.79 52.050 46.877 114.008 131.925 114.008 271.106v130.725c0 36.53-29.59 66.182-66.184 66.182zM568.571 315.719c-89.589 0-162.459 72.932-162.459 162.521v317.665c0 89.589 72.87 162.459 162.459 162.459 89.592 0 162.524-72.87 162.524-162.459v-317.665c0.003-89.592-72.929-162.521-162.524-162.521z" horiz-adv-x="1137" />
<glyph unicode="&#xe60c;" d="M512.356 960c-282.456 0-512.356-229.838-512.356-512.478 0-282.389 229.9-512.227 512.356-512.227 282.515 0 512.414 229.838 512.414 512.227 0 282.64-229.9 512.478-512.414 512.478zM512.356 14.856c-238.545 0-432.671 194.126-432.671 432.666 0 238.796 194.126 432.858 432.671 432.858 238.601 0 432.856-194.062 432.856-432.858 0-238.54-194.255-432.666-432.856-432.666zM512.545 854.962c-224.755 0-407.508-182.75-407.508-407.315 0-224.563 182.75-407.315 407.508-407.315 224.437 0 407.187 182.755 407.187 407.315-0.003 224.566-182.75 407.315-407.187 407.315zM512.545 127.323c-176.715 0-320.453 143.804-320.453 320.324 0 176.523 143.737 320.324 320.453 320.324 176.523 0 320.196-143.802 320.196-320.324 0-176.52-143.673-320.324-320.196-320.324zM283.851 562.789l-0.954-1.398v-234.413l0.954-1.398c15.757-23.060 36.473-44.542 61.699-63.797l8.961-6.801v378.341l-8.961-6.735c-25.1-19.191-45.814-40.544-61.699-63.799zM415.637 665.729l-3.621-1.334v-440.36l3.621-1.398c18.683-7.055 38.887-11.94 61.766-14.931l6.224-0.762v474.415l-6.163-0.762c-22.237-2.795-43.016-7.753-61.827-14.869zM547.367 680.599l-6.165 0.762v-474.415l6.165 0.762c22.301 2.793 43.077 7.811 61.763 14.864l3.685 1.4v440.488l-3.685 1.334c-18.811 7.053-39.525 12.010-61.763 14.805zM740.98 562.789c-15.692 23.002-36.473 44.48-61.699 63.797l-8.894 6.86v-378.469l8.894 6.801c25.351 19.381 46.132 40.862 61.699 63.861l0.89 1.398v234.352l-0.89 1.4z" horiz-adv-x="1025" />
<glyph unicode="&#xe60d;" d="M952.366 960.134h-820.477c-73.027 0-132.531-60.761-132.531-135.455v-752.358c0-74.66 59.504-135.424 132.531-135.424h820.48c73.089 0 132.596 60.766 132.596 135.424v752.358c-0.003 74.694-59.507 135.455-132.599 135.455zM946.135 78.801h-807.894v739.462h807.834l0.059-739.462zM569.742 511.875l91.772 96.865-77.305 77.308 316.393 85.040-84.981-316.391-75.357 75.293-91.834-96.865zM514.763 384.563l-91.767-96.865 77.3-77.305-316.388-85.043 84.979 316.388 75.357-75.29 91.834 96.871z" horiz-adv-x="1089" />
<glyph unicode="&#xe60e;" d="M953.225 959.18h-820.663c-73.045 0-132.562-60.776-132.562-135.488v-752.525c0-74.647 59.517-135.421 132.562-135.421h820.66c73.107 0 132.624 60.776 132.624 135.421v752.525c0.003 74.712-59.515 135.488-132.622 135.488zM946.994 77.647h-808.079v739.596h808.017l0.062-739.596zM915.539 706.7l-91.795-96.889 77.326-77.323-316.463-85.030 84.999 316.463 75.373-75.339 91.852 96.889zM170.625 188.221l91.793 96.884-77.323 77.326 316.463 85.028-84.997-316.46-75.373 75.342-91.857-96.891z" horiz-adv-x="1089" />
<glyph unicode="&#xe60f;" d="M513.036 960c283.57-0.188 512.414-229.474 512.037-512.664-0.377-283.756-228.965-512.228-512.541-512.288-283.191-0.067-512.912 229.474-512.533 512.099 0.374 284.638 228.965 513.103 513.036 512.853zM512.285 810.729c-200.79-0.126-362.957-162.291-362.831-363.014 0-201.105 161.788-363.081 362.831-363.334 201.164-0.312 363.581 162.294 363.455 363.772-0.25 200.852-162.417 362.702-363.455 362.575zM597.392 447.588h-0.503l-0.126 0.126h0.63l115.615 115.866c0 0-78.247 78.505-82.153 82.153l-117.754-116.183-119.014 118.196-82.024-82.279 88.815-88.818 26.674-29.061h0.503l0.253-0.253h-0.756l-115.489-115.806c0 0 78.249-78.564 82.024-82.212l117.76 116.245 119.008-118.26 82.153 82.406-88.815 88.82-26.8 29.061z" horiz-adv-x="1025" />
<glyph unicode="&#xe610;" d="M66.491-63.997h1027.94zM1198.596 487.986c-135.702 135.893-271.415 271.66-407.367 407.241-6.244 6.089-13.868 11.714-21.867 14.653-31.236 11.399-63.48-12.808-63.728-47.674-0.253-67.663-0.126-135.331-0.126-202.965 0-4.281 0-8.62 0-13.964-6.123 0-10.87 0-15.62 0-106.247 0-212.334 0.062-318.485 0-35.178-0.031-54.86-19.71-54.86-54.922-0.059-92.778-0.059-185.5 0-278.345 0-35.8 19.682-55.479 55.611-55.479 105.775-0.062 211.423 0 317.11 0 4.877 0 9.622 0 16.245 0 0-5.375 0-9.374 0-13.309 0-66.793 0.25-133.703 0-200.496 0-23.057 9.247-40.241 30.242-49.547 21.116-9.371 39.361-2.81 55.231 12.937 135.955 136.079 272.031 272.034 407.989 408.175 23.49 23.431 23.24 50.112-0.374 73.695zM532.596 44.729c-2.627 19.62-22.055 32.116-27.928 35.426-8.811 5.186-18.371 5.811-25.683 5.811l-6.37-0.126-227.926 0.188c-56.042 0.124-98.468 42.173-98.591 97.717-0.188 177.127-0.188 354.321 0.065 531.51 0.059 53.983 42.671 96.53 96.968 96.811l235.922 0.062c33.426 0.031 51.294 16.121 54.481 49.235 1.001 12.965 0.81 26.052 0.439 39.172-1.128 39.737-19.369 57.481-59.107 57.512l-217.866-0.121c-15.494 0-30.926-0.562-46.361-2.343-115.52-13.154-207.555-113.649-209.681-228.798-1.313-63.888-0.996-127.804-0.684-191.718l0.186-60.201h-0.377c0 0-0.121-227.954 0.065-289.811 0.248-135.702 101.528-240.796 235.545-244.48 33.176-0.875 66.419-1.189 99.654-1.189h0.065l148.012 0.753c29.368 0 47.483 17.37 49.73 47.545 1.755 22.058 1.628 40.173-0.557 57.045z" horiz-adv-x="1216" />
<glyph unicode="&#xe611;" d="M839.334 386.487c0-79.199-64.257-143.461-143.486-143.461-79.174 0-143.431 64.262-143.431 143.461 0 79.227 64.257 143.431 143.431 143.431 79.23-0.003 143.486-64.204 143.486-143.431zM1372.769 706.485c-6.595 39.459-29.496 64.168-70.606 69.276-23.788 2.918-38.256 15.637-44.726 39.040-9.706 35.519-33.678 58.993-67.811 70.76-24.807 8.595-50.3 16.462-76.186 20.491-69.655 10.911-140.51 15.924-209.526 29.943-69.53 14.178-139.053 23.342-208.893 24.073-69.845-0.731-139.371-9.895-208.893-24.073-69.022-14.016-139.876-19.029-209.526-29.94-25.884-4.028-51.385-11.896-76.189-20.491-34.13-11.767-58.105-35.24-67.814-70.76-6.469-23.403-20.934-36.122-44.723-39.040-41.105-5.108-64.006-29.82-70.601-69.278-6.788-40.41-11.737-81.202-16.811-121.885-2.728-22.109 6.405-32.576 30.386-32.448 120.839 0.697 241.692 0.697 362.595 0.095 24.045-0.128 33.115 9.388 33.433 33.338 0.762 57.369-4.631 111.895-47.136 156.618-7.041 7.39-10.849 25.281-6.726 33.846 4.062 8.5 40.856 16.716 45.992 16.716 43.328-0.19 43.138-0.223 49.418-43.423 1.205-8.28 2.539-18.46 7.803-23.853 30.319-30.863 21.252-66.706 7.234-97.634-30.389-67.139-61.537-134.827-100.867-196.869-73.458-115.831-104.41-160.744-198.679-260.844-58.675-62.293-68.573-101.687-68.573-137.466 0-70.989 41.038-96.744 137.148-96.744 181.614 0 260.908 0.315 442.528 0.315 181.614 0 260.905-0.315 442.528-0.315 96.102 0 137.142 25.752 137.142 96.744 0 35.779-9.898 75.173-68.573 137.466-94.264 100.1-125.222 145.012-198.679 260.844-39.333 62.042-70.475 129.73-100.861 196.869-14.019 30.927-23.091 66.77 7.234 97.634 5.264 5.393 6.595 15.575 7.803 23.853 6.28 43.202 6.090 43.233 49.412 43.423 5.139 0 41.933-8.216 45.992-16.716 4.126-8.565 0.318-26.453-6.723-33.846-42.502-44.723-47.898-99.249-47.136-156.618 0.315-23.947 9.388-33.466 33.43-33.338 120.909 0.603 241.753 0.603 362.601-0.095 23.975-0.126 33.109 10.342 30.383 32.448-5.075 40.686-10.018 81.475-16.806 121.885zM959.991 383.505c0-146.315-118.624-264.936-264.97-264.936s-264.973 118.621-264.973 264.936c0 146.318 118.624 264.936 264.973 264.936 146.343 0 264.97-118.621 264.97-264.936z" horiz-adv-x="1390" />
<glyph unicode="&#xe612;" d="M310.262 30.43c0-52.13-42.207-94.43-94.399-94.43h-121.405c-52.195 0-94.458 42.3-94.458 94.43v835.67c0 52.158 42.266 94.458 94.458 94.458h121.403c52.195 0 94.399-42.3 94.399-94.458v-835.67zM1077.118 960.56h-561.987c-72.919 0-132.33-60.673-132.33-135.253v-754.115c0-74.518 59.411-135.191 132.33-135.191h561.987c72.98 0 132.394 60.673 132.394 135.191v754.115c0 74.58-59.414 135.253-132.394 135.253zM529.83 826.906h532.653l0.062-143.298h-532.715v143.298zM643.255 51.628h-113.551v113.551h113.551v-113.551zM643.255 256.748h-113.551v113.554h113.551v-113.554zM643.382 463.756h-113.551v113.554h113.551v-113.554zM852.9 51.628h-113.551v113.551h113.551v-113.551zM852.9 256.748h-113.551v113.554h113.551v-113.554zM853.027 463.756h-113.556v113.554h113.556v-113.554zM1062.548 51.628h-113.556v113.551h113.556v-113.551zM1062.548 256.748h-113.556v113.554h113.556v-113.554zM1062.669 463.756h-113.554v113.554h113.554v-113.554z" horiz-adv-x="1210" />
<glyph unicode="&#xe613;" d="M1123.444 939.015c-23.593 26.481-64.131 28.989-90.74 5.395l-1008.269-893.436c-26.609-23.468-28.991-64.131-5.46-90.676 12.674-14.306 30.308-21.649 48.126-21.649 15.123 0 30.372 5.401 42.544 16.195l130.045 115.22c90.743-81.844 210.569-132.165 342.473-132.101 282.816 0.061 510.913 227.969 511.287 510.972 0.126 109.934-34.682 211.367-93.499 294.72l118.088 104.625c26.483 23.526 28.997 64.129 5.404 90.735zM944.422 449.818c0.128-200.922-161.896-363.201-362.509-362.952-87.56 0.123-167.573 31.151-230.061 82.569l331.277 293.509v-73.176c1.071-60.993 32.696-92.18 94.944-93.692 61.997 1.512 93.686 32.763 95.131 93.756v41.096h-72.227v-47.499c0.251-4.642-0.564-10.607-2.511-17.949-1.25-3.261-3.448-6.020-6.525-8.093-3.197-2.572-7.845-3.828-13.868-3.828-10.543 0.31-17.132 4.268-19.827 11.921-1.068 3.512-1.947 6.905-2.508 10.163-0.254 2.887-0.377 5.532-0.377 7.786v143.511l42.477 37.634c0.215-0.432 0.452-0.851 0.63-1.303 1.947-6.467 2.762-12.799 2.511-19.076v-36.772h72.227v30.121c-0.246 31.245-9.086 54.699-26.363 70.447l40.711 36.069c35.787-56.055 56.803-122.585 56.867-194.244zM239.795 331.47c-12.613 37.023-19.827 76.557-19.827 117.913-0.19 200.236 161.584 362.009 361.945 362.135 56.853 0 110.313-13.302 158.133-36.398l117.846 104.421c-79.444 50.952-173.758 80.817-275.292 80.948-283.377 0.181-511.354-227.729-511.789-511.675-0.126-79.567 18.636-154.679 51.137-221.882l117.848 104.538zM388.576 626.020h-97.514v-249.057l72.23 64.070v0.689h0.815l117.72 104.418c0 0.564 0.123 0.94 0.123 1.509 0.753 53.898-30.369 80.069-93.374 78.37zM405.959 561.517c1.942-2.767 3.074-6.469 3.323-11.112 0.312-4.452 0.438-9.6 0.438-15.246 0.251-10.916-0.689-19.83-2.949-26.985-2.952-7.594-10.983-11.357-24.159-11.357h-19.325v74.043h15.31c7.842 0 13.865-0.683 18.072-2.19 4.397-1.573 7.468-3.953 9.29-7.153z" horiz-adv-x="1140" />
<glyph unicode="&#xe614;" d="M581.278 961.708c284.857-0.19 514.807-230.517 514.427-514.997-0.378-285.047-230.073-514.553-514.869-514.615-284.541-0.062-515.311 230.517-514.933 514.422 0.439 285.936 230.009 515.439 515.375 515.19zM580.579 811.756c-201.764-0.123-364.666-163.032-364.478-364.663 0-202.018 162.524-364.735 364.478-364.984 202.018-0.316 365.174 163.030 365.048 365.423-0.252 201.767-163.156 364.35-365.048 364.224zM287.698 624.907h98.196c63.442 1.767 94.785-24.518 94.027-78.863 0.254-19.081-2.211-34.882-7.456-47.521-6.005-12.508-18.706-21.988-38.167-28.181v-0.819c28.373-6.259 43.031-23.573 43.981-51.946v-57.689c0-11.247 0.254-22.813 0.758-34.756 0.819-12.005 3.033-20.979 6.696-27.043h-71.846c-3.727 6.064-6.128 15.038-7.14 27.043-1.012 11.943-1.454 23.509-1.138 34.756v52.321c0 9.603-2.214 16.553-6.573 20.979-4.675 4.107-12.701 6.19-24.012 6.19h-14.599v-141.291h-72.73v326.82zM360.428 494.861h19.463c13.271 0 21.359 3.794 24.331 11.375 2.276 7.204 3.221 16.304 2.969 27.171 0 5.815-0.126 10.867-0.442 15.418-0.252 4.675-1.392 8.404-3.352 11.247-1.831 3.157-4.926 5.561-9.352 7.14-4.233 1.454-10.299 2.211-18.2 2.211h-15.418v-74.564zM498.372 624.907h162.082v-62.687h-89.35v-65.587h78.103v-62.685h-78.103v-73.11h92.822v-62.749h-165.557v326.818zM682.507 535.999c0.316 31.782 9.416 55.542 27.425 71.407 17.44 15.29 40.185 22.936 68.181 22.936 28.247 0 51.119-7.646 68.623-23 17.82-15.798 26.92-39.623 27.171-71.407v-30.333h-72.73v37.031c0.254 6.192-0.57 12.639-2.527 19.209-1.264 3.157-3.475 5.938-6.573 8.214-3.221 1.515-7.898 2.404-13.964 2.404-10.615-0.316-17.249-3.855-19.967-10.618-2.211-6.573-3.223-13.017-2.907-19.209v-161.956c0-2.273 0.126-4.865 0.38-7.772 0.568-3.411 1.454-6.824 2.527-10.233 2.717-7.775 9.352-11.756 19.967-12.007 6.067 0 10.744 1.261 13.964 3.791 3.098 2.15 5.309 4.867 6.573 8.216 1.96 7.33 2.782 13.33 2.527 18.007v47.837h72.73v-41.328c-1.451-61.547-33.364-93.015-95.794-94.469-62.685 1.454-94.53 32.922-95.607 94.343v148.937z" horiz-adv-x="1142" />
<glyph unicode="&#xe615;" d="M1016.824 5.766c-2.051 15.373-5.331 30.537-7.859 45.847-8.334 50.458-33.006 86.503-82.063 107.922-78.373 34.198-155.103 72.121-232.111 109.395-55.686 27.025-52.409 88.519-34.097 114.413 11.89 16.88 22.344 34.572 23.575 56.852 0.444 8.226 8.303 18.99 15.817 23.294 26.070 15.035 38.161 39.565 50.020 64.982 3.109 6.696 7.379 13.187 12.266 18.722 8.471 9.668 12.264 19.235 6.079 31.842-1.435 2.97 1.331 8.334 2.8 12.367 4.304 12.026 10.285 23.676 13.12 36.043 3.556 15.339 5.398 31.225 6.252 46.975 0.374 6.523-6.045 13.528-5.362 19.95 3.483 31.912-14.557 56.202-24.739 83.977-12.465 34.198-36.928 55.619-58.519 81.106-4.066 4.784-5.227 13.051-5.571 19.886-0.72 14.588-6.732 21.797-22.004 19.813-6.11-0.787-12.772-2.495-18.41-0.991-4.957 1.334-12.406 6.288-12.676 10.112-1.538 19.336-8.264 22.517-28.016 19.235-12.364-2.049-28.457 9.155-40.584 17.561-10.145 7.041-18.89 10.045-30.681 7.176-4.915-1.195-11.544-0.991-15.716 1.435-4.441 2.663-8.775 4.237-13.118 5.124v0.748c-0.957-0.031-1.982-0.204-2.939-0.307-0.955 0.103-1.912 0.274-2.867 0.307v-0.751c-4.371-0.888-8.749-2.462-13.156-5.124-4.133-2.425-10.762-2.632-15.68-1.435-11.822 2.867-20.569-0.137-30.684-7.176-12.158-8.404-28.217-19.609-40.584-17.561-19.746 3.282-26.509 0.103-28.047-19.235-0.307-3.824-7.686-8.778-12.676-10.112-5.669-1.504-12.297 0.204-18.446 0.991-15.236 1.984-21.25-5.225-21.97-19.813-0.338-6.832-1.502-15.102-5.568-19.886-21.588-25.485-46.051-46.908-58.555-81.106-10.117-27.773-28.189-52.063-24.669-83.975 0.686-6.422-5.744-13.427-5.4-19.95 0.89-15.749 2.735-31.636 6.254-46.975 2.836-12.367 8.814-24.019 13.151-36.043 1.437-4.033 4.242-9.397 2.769-12.367-6.182-12.607-2.358-22.174 6.115-31.842 4.853-5.535 9.121-12.026 12.23-18.722 11.859-25.417 23.947-49.947 50.014-64.982 7.519-4.304 15.378-15.068 15.858-23.294 1.192-22.28 11.65-39.972 23.57-56.852 18.281-25.895 21.147-86.738-34.162-114.413-76.456-38.264-153.741-75.2-232.042-109.395-49.129-21.418-73.726-57.463-82.063-107.922-2.526-15.311-5.878-30.475-7.859-45.847-3.009-22.928-7.823-69.766-7.823-69.766h1024.611c-0.003 0-4.781 46.838-7.787 69.766z" horiz-adv-x="1025" />
<glyph unicode="&#xe616;" d="M1026.175 449.067c0-283.345-229.709-513.051-513.108-513.051-283.348 0-513.069 229.703-513.069 513.051 0 283.384 229.721 513.106 513.069 513.106 283.4 0 513.108-229.721 513.108-513.106zM513.069-63.985c135.725 0 259.112 52.711 350.874 138.739-9.717 11.65-22.551 21.114-39.113 28.343-58.934 25.745-116.627 54.256-174.534 82.256-41.871 20.322-39.405 66.587-25.639 86.057 8.943 12.692 16.805 25.998 17.728 42.746 0.333 6.169 6.241 14.284 11.889 17.522 19.604 11.304 28.697 29.747 37.604 48.861 2.34 5.031 5.555 9.89 9.229 14.077 6.37 7.243 9.224 14.436 4.572 23.942-1.086 2.209 1.004 6.241 2.105 9.273 3.238 9.067 7.733 17.801 9.861 27.115 2.67 11.549 4.059 23.48 4.701 35.323 0.281 4.902-4.544 10.184-4.033 14.986 2.621 24.022-10.943 42.271-18.598 63.158-9.376 25.714-27.771 41.82-44.005 60.97-3.058 3.623-3.927 9.838-4.188 14.952-0.539 10.981-5.060 16.415-16.544 14.924-4.598-0.601-9.611-1.886-13.843-0.756-3.728 0.988-9.327 4.724-9.534 7.604-1.153 14.539-6.213 16.929-21.065 14.475-9.296-1.543-21.395 6.858-30.513 13.203-7.632 5.292-14.209 7.555-23.069 5.38-3.697-0.9-8.682-0.746-11.815 1.094-3.341 1.976-6.605 3.184-9.867 3.839v0.552c-0.72-0.013-1.489-0.129-2.209-0.217-0.722 0.088-1.44 0.206-2.157 0.217v-0.552c-3.29-0.653-6.574-1.863-9.89-3.839-3.112-1.837-8.091-1.992-11.797-1.094-8.886 2.173-15.448-0.088-23.064-5.38-9.157-6.345-21.222-14.746-30.518-13.203-14.862 2.451-19.94 0.062-21.093-14.475-0.219-2.879-5.793-6.616-9.516-7.604-4.278-1.13-9.247 0.155-13.887 0.756-11.456 1.491-15.987-3.943-16.516-14.924-0.261-5.111-1.13-11.33-4.19-14.952-16.222-19.15-34.616-35.258-44.018-60.97-7.627-20.887-21.204-39.136-18.57-63.158 0.511-4.802-4.304-10.083-4.046-14.986 0.655-11.846 2.041-23.776 4.701-35.323 2.131-9.312 6.626-18.048 9.89-27.115 1.094-3.032 3.174-7.062 2.082-9.273-4.649-9.508-1.788-16.702 4.582-23.942 3.674-4.188 6.874-9.046 9.224-14.077 8.899-19.111 17.992-37.557 37.596-48.861 5.653-3.238 11.559-11.353 11.905-17.522 0.913-16.748 8.773-30.054 17.739-42.746 13.745-19.47 15.902-65.245-25.673-86.057-57.52-28.772-115.6-56.511-174.503-82.256-16.57-7.23-29.409-16.694-39.123-28.338 91.759-86.031 215.138-138.744 350.843-138.744z" horiz-adv-x="1026" />
<glyph unicode="&#xe617;" d="M65.774 516.748c10.052 9.358 25.988 21.772 43.285 32.699 51.335 32.619 108.115 50.897 166.829 64.133 48.763 10.95 98.246 16.887 148.066 20.203 55.755 3.754 111.559 3.78 167.392 0.797 39.944-2.185 79.686-6.502 119.119-13.211 43.956-7.506 87.037-17.994 128.785-33.751 24.419-9.175 48.172-20.105 70.534-33.573 29.716-17.891 56.552-39.224 77.22-67.348 20.819-28.302 31.721-60.407 33.829-95.392 1.747-27.402 0.717-54.697-5.656-81.588-2.877-12.083-8.226-23.134-16.554-32.386-11.417-12.648-26.424-17.021-42.772-17.636-20.463-0.668-40.411 4.113-60.361 8.226-38.912 7.97-77.836 16.245-116.699 24.728-14.137 3.034-28.689 5.093-41.649 12.596-22.308 12.955-34.445 31.775-34.033 57.783 0.258 16.869 2.216 33.782 2.469 50.695 0.312 25.010-9.923 45.161-30.898 59.042-14.395 9.539-30.694 14.911-47.452 18.665-40.411 9.046-81.387 10.179-122.561 10.050-28.821-0.126-57.582-1.669-86.093-6.143-19.947-3.161-39.562-7.813-57.732-17.014-24.318-12.364-39.353-31.465-40.073-59.352-0.441-16.351 0.973-32.802 1.927-49.15 0.642-11.822-0.080-23.446-5.295-34.288-9.26-19.385-24.935-31.672-45.37-36.964-22.646-5.865-45.605-10.54-68.504-15.223-38.102-7.764-76.216-15.368-114.416-22.517-14.526-2.774-29.254-1.951-43.133 3.602-18.742 7.457-28.924 22.775-34.138 41.337-7.096 25.397-7.841 51.513-6.966 77.731 0.9 27.040 5.883 53.237 18.404 77.607 9.794 19.065 22.491 35.955 42.493 55.642z" horiz-adv-x="1026" />
<glyph unicode="&#xe618;" d="M797.086 112.301c-0.059 0.163-0.119 0.328-0.16 0.485-71.399-45.638-151.782-69.931-234.023-69.931-0.013 0-0.021 0-0.028 0-122.52 0-237.501 52.772-315.469 144.741-99.778 117.698-134.252 329.954-73.022 427.789 4.004-1.662 7.875-3.233 11.68-4.773 13.585-5.511 26.413-10.716 42.305-19.096 6.063-3.202 12.338-4.812 18.673-4.812 11.714 0 22.6 5.648 29.848 15.486 7.815 10.617 10.313 24.778 6.538 36.951l-3.525 11.41c-10.687 34.59-21.723 70.354-34.211 105.078-9.983 27.765-22.399 62.327-59.226 62.327-12.057 0-26.037-3.656-46.73-12.204-44.294-18.319-71.058-29.961-114.534-49.81-15.102-6.887-25.234-22.698-25.203-39.343 0.028-15.842 8.992-29.337 23.975-36.115 18.208-8.257 30.536-13.716 43.468-19.447l10.687-4.753c-101.938-259.102 24.803-526.458 211.314-639.212 83.497-50.474 178.5-77.14 274.769-77.14h0.041c102.72 0 205.561 31.099 284.501 85.198-31.729 28.803-45.566 69.167-51.671 87.171zM1098.203 210.090c-18.113 8.577-30.356 14.258-43.221 20.244l-10.496 4.892c106.448 257.268-15.569 526.801-200.067 642.788-85.36 53.663-183.123 82.032-282.716 82.032-104.848 0-206.41-30.593-285.967-86.165l-5.385-3.764c31.597-27.564 45.86-66.788 52.917-86.41 72.926 47.94 155.675 73.409 239.895 73.409 125.407 0 242.142-54.785 320.294-150.316 97.683-119.447 128.439-332.255 65.498-429.015-3.989 1.736-7.815 3.385-11.624 4.998-13.471 5.759-26.204 11.18-41.954 19.821-6.203 3.424-12.645 5.155-19.212 5.155-11.585 0-22.399-5.558-29.69-15.267-7.813-10.434-10.478-24.432-6.966-36.515l3.279-11.301c10.096-34.845 20.531-70.857 32.412-105.842 9.588-28.238 21.514-63.382 59.179-63.382 11.843 0 25.577 3.424 45.881 11.399 44.351 17.439 71.319 28.601 115.409 47.777 15.19 6.623 25.601 22.252 25.859 38.894 0.281 15.822-8.445 29.499-23.325 36.569z" horiz-adv-x="1122" />
<glyph unicode="&#xe619;" d="M46.993 961.7c461.234 0 553.793 0 1015.024 0 35.919 0 53.356-25.959 53.356-57.959-0.581-303.259-0.325-606.488-0.449-909.809 0-43.984-13.203-57.058-57.703-57.058-443.072-0.126-556.453-0.126-999.553 0-44.534 0-57.799 13.009-57.799 57.058-0.098 303.257 0.485 608.072-0.093 911.329-0.034 26.21 11.301 53.761 47.217 56.439zM311.405 450.298c0-119.045-0.072-172.168 0.057-291.249 0.036-50.043 11.208-61.050 62.12-61.050 233.352 0 137.075 0 370.522 0 47.075 0 59.249 11.982 59.249 58.095 0.126 239.111 0.126 346.338 0 585.389 0 48.138-10.687 58.991-57.768 58.991-235.323 0.101-140.844 0.101-376.157 0-47.044 0-57.93-11.043-57.966-58.89-0.129-119.109-0.057-172.209-0.057-291.287zM153.944 838.566c-74.929-0.062-66.687 5.958-66.845-66.685-0.201-63.95-7.054-63.534 62.528-63.372 72.999 0.194 67.201-3.764 67.302 67.554 0 67.722 4.087 62.595-62.985 62.502zM963.644 838.566c-71.159-0.034-65.56 6.185-65.751-65.364-0.129-67.302-4.508-64.693 64.528-64.693 73.089 0 65.299-2.031 65.299 66.238-0.003 68.646 6.956 63.911-64.076 63.818zM216.828 122.408c0.359 73.094 4.639 66.914-67.358 67.17-68.104 0.191-62.569 2.763-62.407-63.31 0.129-73.476-6.954-66.52 67.074-66.649 66.042-0.065 63.142-6.056 62.691 62.789zM1027.718 124.4c0.134 68.334 6.443 65.304-63.297 65.178-70.132-0.132-66.656 5.793-66.527-65.304 0.129-70.645-4.384-64.721 63.756-64.657 71.995 0.132 66.202-6.698 66.068 64.783zM1027.718 342.077c0 70.55 7.219 66.842-67.485 66.522-0.898 0-1.873 0-2.838 0-59.375 0-59.375 0-59.375-58.023 0-77.922-6.443-69.936 69.293-70.196 66.076-0.387 60.539-3.091 60.405 61.697zM151.307 489.873c68.295-0.163 65.815-5.568 65.624 62.982-0.194 71.128 4.895 64.917-66.014 65.010-69.905 0.101-63.813 4.704-63.885-63.978-0.062-67.431-5.7-64.463 64.275-64.014zM961.263 489.873c72.511-0.258 66.589-4.603 66.455 64.494 0 68.558 6.185 63.537-64.267 63.498-70.196-0.028-65.686 6.053-65.498-65.493 0.132-62.5 0.067-62.5 63.31-62.5zM150.399 280.38c71.004 0 66.659-6.567 66.466 64.528-0.163 63.694-0.036 63.501-65.013 63.756-70.805 0.258-64.822 2.673-64.822-63.756 0.036-69.167-5.919-64.788 63.369-64.528z" horiz-adv-x="1115" />
<glyph unicode="&#xe61a;" d="M3.881 146.835h220.26v-210.835h-220.26v210.835zM308.817 350.143h220.27v-414.143h-220.27v414.143zM613.764 553.412h220.268v-617.412h-220.268v617.412zM918.685 756.715h220.265v-820.715h-220.265v820.715zM1223.629 960h220.263v-1024h-220.263v1024z" horiz-adv-x="1444" />
<glyph unicode="&#xe61b;" d="M526.071 234.749c-28.637-30.869-56.465-60.861-84.282-90.859-51.578-55.636-103.047-111.376-154.842-166.832-7.606-8.135-15.958-16.1-25.317-22.012-28.075-17.708-58.31-18.090-88.472-6.492-59.84 23.028-80.004 90.727-59.734 139.234 5.413 12.95 13.721 23.601 23.709 33.173 70.256 67.351 140.506 134.717 210.76 202.077 15.638 14.993 31.264 29.995 47.364 45.45-9.302 9.529-18.386 18.833-27.451 28.137-12.122 12.442-13.234 20.28-5.067 35.498 4.735 8.816 4.789 8.878-2.627 16.198-20.012 19.72-40.168 39.198-63.498 55.188-27.167 18.624-57.161 24.233-89.083 19.849-53.402-7.328-91.609-38.372-121.413-81.046-12.774-18.299-15.365-40.313-17.517-61.875-3.23-32.245-2.415-64.479 2.209-96.597 1.654-11.515-3.863-16.539-13.835-11.175-8.306 4.448-16.095 11.048-22.115 18.353-15.574 18.89-22.223 42.042-27.474 65.395-12.955 57.652-8.86 114.49 12.191 169.495 32.345 84.537 79.743 159.571 145.953 221.932 13.659 12.857 176.841 180.564 202.944 207.021 7.493 7.599 14.895 7.635 22.393 0.028 43.009-43.641 85.985-87.316 128.927-131.029 8.117-8.267 8.019-15.097-0.222-23.49-26.339-26.834-52.726-53.627-79.106-80.419-6.244-6.334-97.34-82.437-73.027-128.816 22.693-25.090 46.196-49.449 69.575-73.904 1.189-1.238 4.686-1.386 6.523-0.632 3.63 1.499 6.848 3.997 10.248 6.066 9.745 5.94 19.545 4.918 27.812-3.083 11.755-11.381 23.405-22.858 35.392-34.59 4.807 4.575 9.939 9.41 15.027 14.294 27.128 26.039 54.272 52.071 81.351 78.146 16.413 15.778 18.652 28.418 11.038 49.658-10.473 29.221-14.356 59.677-13.85 90.624 1.017 61.045 20.438 115.334 61.003 161.416 32.825 37.286 72.054 64.311 121.643 74.325 35.227 7.101 69.139 4.513 100.663-14.026 6.365-3.752 11.908-9.007 17.455-14.005 3.491-3.125 3.153-6.236-0.565-9.98-42.503-42.885-84.772-86.013-127.154-129.035-12.442-12.638-12.356-23.167 0.196-35.914 40.344-40.978 80.597-82.050 120.936-123.052 10.076-10.233 19.537-10.021 29.504 0.134 43.195 44.077 86.449 88.090 129.706 132.118 1.21 1.233 2.572 2.322 5.135 4.624 5.491-5.893 11.895-10.924 15.961-17.406 19.452-30.944 22.608-64.83 17.073-100.25-14.253-91.080-97.188-175.638-197.712-190.123-39.977-5.764-79.372-2.562-118.067 9.031-5.898 1.775-11.541 4.629-17.538 5.829-12.47 2.474-23.872-0.366-32.74-9.877-30.921-33.168-61.674-66.484-92.474-99.758-0.73-0.805-1.349-1.718-0.181-1.099 8.992-10.006 17.354-20.662 27.061-29.94 81.064-77.54 164.91-151.986 250.882-224.063 9.936-8.347 10.274-15.695 1.040-25.1-42.338-43.068-84.689-86.111-127.059-129.154-9.413-9.575-16.846-9.152-25.291 1.295-76.686 94.78-156.8 186.609-239.707 276.002-1.334 1.453-2.562 3.029-4.257 5.042z" horiz-adv-x="1105" />
<glyph unicode="&#xe61c;" d="M74.418 881.299h239.304v-228.491h-239.304v228.491zM393.455 881.299h239.304v-228.491h-239.304v228.491zM712.494 881.299h239.263v-228.491h-239.263v228.491zM74.418 562.265h239.304v-228.555h-239.304v228.555zM393.455 562.265h239.304v-228.555h-239.304v228.555zM712.494 562.265h239.263v-228.555h-239.263v228.555zM74.418 243.166h239.304v-228.465h-239.304v228.465zM393.455 243.166h239.304v-228.465h-239.304v228.465zM712.494 243.166h239.263v-228.465h-239.263v228.465z" horiz-adv-x="1026" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,137 @@
{
"IcoMoonType": "selection",
"icons": [
{
"icon": {
"paths": [
"M74.418 78.701h239.304v228.491h-239.304v-228.491z",
"M393.455 78.701h239.304v228.491h-239.304v-228.491z",
"M712.494 78.701h239.263v228.491h-239.263v-228.491z",
"M74.418 397.735h239.304v228.555h-239.304v-228.555z",
"M393.455 397.735h239.304v228.555h-239.304v-228.555z",
"M712.494 397.735h239.263v228.555h-239.263v-228.555z",
"M74.418 716.834h239.304v228.465h-239.304v-228.465z",
"M393.455 716.834h239.304v228.465h-239.304v-228.465z",
"M712.494 716.834h239.263v228.465h-239.263v-228.465z"
],
"attrs": [
{},
{},
{},
{},
{},
{},
{},
{},
{}
],
"isMulticolor": false,
"width": 1026,
"grid": 0,
"tags": [
"dailPad"
]
},
"attrs": [
{},
{},
{},
{},
{},
{},
{},
{},
{}
],
"properties": {
"order": 29,
"id": 0,
"prevSize": 32,
"code": 58908,
"name": "dialPad"
},
"setIdx": 0,
"setId": 2,
"iconIdx": 0
},
{
"icon": {
"paths": [
"M526.071 725.251c-28.637 30.869-56.465 60.861-84.282 90.859-51.578 55.636-103.047 111.376-154.842 166.832-7.606 8.135-15.958 16.1-25.317 22.012-28.075 17.708-58.31 18.090-88.472 6.492-59.84-23.028-80.004-90.727-59.734-139.234 5.413-12.95 13.721-23.601 23.709-33.173 70.256-67.351 140.506-134.717 210.76-202.077 15.638-14.993 31.264-29.995 47.364-45.45-9.302-9.529-18.386-18.833-27.451-28.137-12.122-12.442-13.234-20.28-5.067-35.498 4.735-8.816 4.789-8.878-2.627-16.198-20.012-19.72-40.168-39.198-63.498-55.188-27.167-18.624-57.161-24.233-89.083-19.849-53.402 7.328-91.609 38.372-121.413 81.046-12.774 18.299-15.365 40.313-17.517 61.875-3.23 32.245-2.415 64.479 2.209 96.597 1.654 11.515-3.863 16.539-13.835 11.175-8.306-4.448-16.095-11.048-22.115-18.353-15.574-18.89-22.223-42.042-27.474-65.395-12.955-57.652-8.86-114.49 12.191-169.495 32.345-84.537 79.743-159.571 145.953-221.932 13.659-12.857 176.841-180.564 202.944-207.021 7.493-7.599 14.895-7.635 22.393-0.028 43.009 43.641 85.985 87.316 128.927 131.029 8.117 8.267 8.019 15.097-0.222 23.49-26.339 26.834-52.726 53.627-79.106 80.419-6.244 6.334-97.34 82.437-73.027 128.816 22.693 25.090 46.196 49.449 69.575 73.904 1.189 1.238 4.686 1.386 6.523 0.632 3.63-1.499 6.848-3.997 10.248-6.066 9.745-5.94 19.545-4.918 27.812 3.083 11.755 11.381 23.405 22.858 35.392 34.59 4.807-4.575 9.939-9.41 15.027-14.294 27.128-26.039 54.272-52.071 81.351-78.146 16.413-15.778 18.652-28.418 11.038-49.658-10.473-29.221-14.356-59.677-13.85-90.624 1.017-61.045 20.438-115.334 61.003-161.416 32.825-37.286 72.054-64.311 121.643-74.325 35.227-7.101 69.139-4.513 100.663 14.026 6.365 3.752 11.908 9.007 17.455 14.005 3.491 3.125 3.153 6.236-0.565 9.98-42.503 42.885-84.772 86.013-127.154 129.035-12.442 12.638-12.356 23.167 0.196 35.914 40.344 40.978 80.597 82.050 120.936 123.052 10.076 10.233 19.537 10.021 29.504-0.134 43.195-44.077 86.449-88.090 129.706-132.118 1.21-1.233 2.572-2.322 5.135-4.624 5.491 5.893 11.895 10.924 15.961 17.406 19.452 30.944 22.608 64.83 17.073 100.25-14.253 91.080-97.188 175.638-197.712 190.123-39.977 5.764-79.372 2.562-118.067-9.031-5.898-1.775-11.541-4.629-17.538-5.829-12.47-2.474-23.872 0.366-32.74 9.877-30.921 33.168-61.674 66.484-92.474 99.758-0.73 0.805-1.349 1.718-0.181 1.099 8.992 10.006 17.354 20.662 27.061 29.94 81.064 77.54 164.91 151.986 250.882 224.063 9.936 8.347 10.274 15.695 1.040 25.1-42.338 43.068-84.689 86.111-127.059 129.154-9.413 9.575-16.846 9.152-25.291-1.295-76.686-94.78-156.8-186.609-239.707-276.002-1.334-1.453-2.562-3.029-4.257-5.042z"
],
"attrs": [
{
"opacity": 1,
"visibility": false
}
],
"width": 1105,
"grid": 0,
"tags": [
"settings"
]
},
"attrs": [
{
"opacity": 1,
"visibility": false
}
],
"properties": {
"order": 1,
"id": 33,
"prevSize": 32,
"code": 58907,
"name": "settings"
},
"setIdx": 1,
"setId": 1,
"iconIdx": 0
},
{
"icon": {
"paths": [
"M1223.129 242.783l-180.128 175.796v-217.716c0-74.673-59.512-135.496-132.599-135.496h-634.716c-73.084 0-132.596 60.823-132.596 135.496v609.237c0 74.673 59.512 135.496 132.596 135.496h634.716c73.084 0 132.599-60.82 132.599-135.496v-172.679l193.45 153.712c48.784 35.558 96.695-5.178 96.695-40.424v-483.533c-0.003-35.248-55.897-71.306-110.017-24.393zM601.169 760.065c-141.111 0-255.524-114.411-255.524-255.521s114.411-255.521 255.524-255.521c141.108 0 255.519 114.411 255.519 255.521-0 141.113-114.408 255.521-255.519 255.521z",
"M599.045 359.751c-80.474 0-145.727 65.253-145.727 145.729 0 80.471 65.25 145.727 145.727 145.727s145.729-65.256 145.729-145.727c0-80.474-65.253-145.729-145.729-145.729z"
],
"width": 1334,
"attrs": [
{
"opacity": 1,
"visibility": false
},
{
"opacity": 1,
"visibility": false
}
],
"tags": [
"webCam"
],
"grid": 0
},
"attrs": [
{
"opacity": 1,
"visibility": false
},
{
"opacity": 1,
"visibility": false
}
],
"properties": {
"order": 4,
"id": 32,
"prevSize": 32,
"code": 58888,
"name": "webCam",
"ligatures": ""
},
"setIdx": 1,
"setId": 1,
"iconIdx": 1
},
{
"icon": {
"paths": [
@@ -10,6 +141,7 @@
"M918.685 203.285h220.265v820.715h-220.265v-820.715z",
"M1223.629 0h220.263v1024h-220.263v-1024z"
],
"width": 1444,
"attrs": [
{
"opacity": 1,
@@ -32,11 +164,10 @@
"visibility": false
}
],
"width": 1444,
"grid": 0,
"tags": [
"connection-2"
]
],
"grid": 0
},
"attrs": [
{
@@ -68,8 +199,9 @@
"name": "connection",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 0
"setIdx": 1,
"setId": 1,
"iconIdx": 2
},
{
"icon": {
@@ -77,11 +209,13 @@
"M46.993-1.7c461.234 0 553.793 0 1015.024 0 35.919 0 53.356 25.959 53.356 57.959-0.581 303.259-0.325 606.488-0.449 909.809 0 43.984-13.203 57.058-57.703 57.058-443.072 0.126-556.453 0.126-999.553 0-44.534 0-57.799-13.009-57.799-57.058-0.098-303.257 0.485-608.072-0.093-911.329-0.034-26.21 11.301-53.761 47.217-56.439zM311.405 509.702c0 119.045-0.072 172.168 0.057 291.249 0.036 50.043 11.208 61.050 62.12 61.050 233.352 0 137.075 0 370.522 0 47.075 0 59.249-11.982 59.249-58.095 0.126-239.111 0.126-346.338 0-585.389 0-48.138-10.687-58.991-57.768-58.991-235.323-0.101-140.844-0.101-376.157 0-47.044 0-57.93 11.043-57.966 58.89-0.129 119.109-0.057 172.209-0.057 291.287zM153.944 121.434c-74.929 0.062-66.687-5.958-66.845 66.685-0.201 63.95-7.054 63.534 62.528 63.372 72.999-0.194 67.201 3.764 67.302-67.554 0-67.722 4.087-62.595-62.985-62.502zM963.644 121.434c-71.159 0.034-65.56-6.185-65.751 65.364-0.129 67.302-4.508 64.693 64.528 64.693 73.089 0 65.299 2.031 65.299-66.238-0.003-68.646 6.956-63.911-64.076-63.818zM216.828 837.592c0.359-73.094 4.639-66.914-67.358-67.17-68.104-0.191-62.569-2.763-62.407 63.31 0.129 73.476-6.954 66.52 67.074 66.649 66.042 0.065 63.142 6.056 62.691-62.789zM1027.718 835.6c0.134-68.334 6.443-65.304-63.297-65.178-70.132 0.132-66.656-5.793-66.527 65.304 0.129 70.645-4.384 64.721 63.756 64.657 71.995-0.132 66.202 6.698 66.068-64.783zM1027.718 617.923c0-70.55 7.219-66.842-67.485-66.522-0.898 0-1.873 0-2.838 0-59.375 0-59.375 0-59.375 58.023 0 77.922-6.443 69.936 69.293 70.196 66.076 0.387 60.539 3.091 60.405-61.697zM151.307 470.127c68.295 0.163 65.815 5.568 65.624-62.982-0.194-71.128 4.895-64.917-66.014-65.010-69.905-0.101-63.813-4.704-63.885 63.978-0.062 67.431-5.7 64.463 64.275 64.014zM961.263 470.127c72.511 0.258 66.589 4.603 66.455-64.494 0-68.558 6.185-63.537-64.267-63.498-70.196 0.028-65.686-6.053-65.498 65.493 0.132 62.5 0.067 62.5 63.31 62.5zM150.399 679.62c71.004 0 66.659 6.567 66.466-64.528-0.163-63.694-0.036-63.501-65.013-63.756-70.805-0.258-64.822-2.673-64.822 63.756 0.036 69.167-5.919 64.788 63.369 64.528z"
],
"width": 1115,
"attrs": [],
"tags": [
"filmstrip"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 25,
"id": 29,
@@ -90,8 +224,9 @@
"name": "filmstrip",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 1
"setIdx": 1,
"setId": 1,
"iconIdx": 3
},
{
"icon": {
@@ -101,11 +236,13 @@
"M1098.203 749.91c-18.113-8.577-30.356-14.258-43.221-20.244l-10.496-4.892c106.448-257.268-15.569-526.801-200.067-642.788-85.36-53.663-183.123-82.032-282.716-82.032-104.848 0-206.41 30.593-285.967 86.165l-5.385 3.764c31.597 27.564 45.86 66.788 52.917 86.41 72.926-47.94 155.675-73.409 239.895-73.409 125.407 0 242.142 54.785 320.294 150.316 97.683 119.447 128.439 332.255 65.498 429.015-3.989-1.736-7.815-3.385-11.624-4.998-13.471-5.759-26.204-11.18-41.954-19.821-6.203-3.424-12.645-5.155-19.212-5.155-11.585 0-22.399 5.558-29.69 15.267-7.813 10.434-10.478 24.432-6.966 36.515l3.279 11.301c10.096 34.845 20.531 70.857 32.412 105.842 9.588 28.238 21.514 63.382 59.179 63.382 11.843 0 25.577-3.424 45.881-11.399 44.351-17.439 71.319-28.601 115.409-47.777 15.19-6.623 25.601-22.252 25.859-38.894 0.281-15.822-8.445-29.499-23.325-36.569z"
],
"width": 1122,
"attrs": [],
"tags": [
"reload"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 24,
"id": 28,
@@ -114,8 +251,9 @@
"name": "reload",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 2
"setIdx": 1,
"setId": 1,
"iconIdx": 4
},
{
"icon": {
@@ -123,11 +261,13 @@
"M65.774 443.252c10.052-9.358 25.988-21.772 43.285-32.699 51.335-32.619 108.115-50.897 166.829-64.133 48.763-10.95 98.246-16.887 148.066-20.203 55.755-3.754 111.559-3.78 167.392-0.797 39.944 2.185 79.686 6.502 119.119 13.211 43.956 7.506 87.037 17.994 128.785 33.751 24.419 9.175 48.172 20.105 70.534 33.573 29.716 17.891 56.552 39.224 77.22 67.348 20.819 28.302 31.721 60.407 33.829 95.392 1.747 27.402 0.717 54.697-5.656 81.588-2.877 12.083-8.226 23.134-16.554 32.386-11.417 12.648-26.424 17.021-42.772 17.636-20.463 0.668-40.411-4.113-60.361-8.226-38.912-7.97-77.836-16.245-116.699-24.728-14.137-3.034-28.689-5.093-41.649-12.596-22.308-12.955-34.445-31.775-34.033-57.783 0.258-16.869 2.216-33.782 2.469-50.695 0.312-25.010-9.923-45.161-30.898-59.042-14.395-9.539-30.694-14.911-47.452-18.665-40.411-9.046-81.387-10.179-122.561-10.050-28.821 0.126-57.582 1.669-86.093 6.143-19.947 3.161-39.562 7.813-57.732 17.014-24.318 12.364-39.353 31.465-40.073 59.352-0.441 16.351 0.973 32.802 1.927 49.15 0.642 11.822-0.080 23.446-5.295 34.288-9.26 19.385-24.935 31.672-45.37 36.964-22.646 5.865-45.605 10.54-68.504 15.223-38.102 7.764-76.216 15.368-114.416 22.517-14.526 2.774-29.254 1.951-43.133-3.602-18.742-7.457-28.924-22.775-34.138-41.337-7.096-25.397-7.841-51.513-6.966-77.731 0.9-27.040 5.883-53.237 18.404-77.607 9.794-19.065 22.491-35.955 42.493-55.642z"
],
"width": 1026,
"attrs": [],
"tags": [
"hangup"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 23,
"id": 27,
@@ -136,8 +276,9 @@
"name": "hangup",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 3
"setIdx": 1,
"setId": 1,
"iconIdx": 5
},
{
"icon": {
@@ -145,11 +286,13 @@
"M1016.824 954.234c-2.051-15.373-5.331-30.537-7.859-45.847-8.334-50.458-33.006-86.503-82.063-107.922-78.373-34.198-155.103-72.121-232.111-109.395-55.686-27.025-52.409-88.519-34.097-114.413 11.89-16.88 22.344-34.572 23.575-56.852 0.444-8.226 8.303-18.99 15.817-23.294 26.070-15.035 38.161-39.565 50.020-64.982 3.109-6.696 7.379-13.187 12.266-18.722 8.471-9.668 12.264-19.235 6.079-31.842-1.435-2.97 1.331-8.334 2.8-12.367 4.304-12.026 10.285-23.676 13.12-36.043 3.556-15.339 5.398-31.225 6.252-46.975 0.374-6.523-6.045-13.528-5.362-19.95 3.483-31.912-14.557-56.202-24.739-83.977-12.465-34.198-36.928-55.619-58.519-81.106-4.066-4.784-5.227-13.051-5.571-19.886-0.72-14.588-6.732-21.797-22.004-19.813-6.11 0.787-12.772 2.495-18.41 0.991-4.957-1.334-12.406-6.288-12.676-10.112-1.538-19.336-8.264-22.517-28.016-19.235-12.364 2.049-28.457-9.155-40.584-17.561-10.145-7.041-18.89-10.045-30.681-7.176-4.915 1.195-11.544 0.991-15.716-1.435-4.441-2.663-8.775-4.237-13.118-5.124v-0.748c-0.957 0.031-1.982 0.204-2.939 0.307-0.955-0.103-1.912-0.274-2.867-0.307v0.751c-4.371 0.888-8.749 2.462-13.156 5.124-4.133 2.425-10.762 2.632-15.68 1.435-11.822-2.867-20.569 0.137-30.684 7.176-12.158 8.404-28.217 19.609-40.584 17.561-19.746-3.282-26.509-0.103-28.047 19.235-0.307 3.824-7.686 8.778-12.676 10.112-5.669 1.504-12.297-0.204-18.446-0.991-15.236-1.984-21.25 5.225-21.97 19.813-0.338 6.832-1.502 15.102-5.568 19.886-21.588 25.485-46.051 46.908-58.555 81.106-10.117 27.773-28.189 52.063-24.669 83.975 0.686 6.422-5.744 13.427-5.4 19.95 0.89 15.749 2.735 31.636 6.254 46.975 2.836 12.367 8.814 24.019 13.151 36.043 1.437 4.033 4.242 9.397 2.769 12.367-6.182 12.607-2.358 22.174 6.115 31.842 4.853 5.535 9.121 12.026 12.23 18.722 11.859 25.417 23.947 49.947 50.014 64.982 7.519 4.304 15.378 15.068 15.858 23.294 1.192 22.28 11.65 39.972 23.57 56.852 18.281 25.895 21.147 86.738-34.162 114.413-76.456 38.264-153.741 75.2-232.042 109.395-49.129 21.418-73.726 57.463-82.063 107.922-2.526 15.311-5.878 30.475-7.859 45.847-3.009 22.928-7.823 69.766-7.823 69.766h1024.611c-0.003 0-4.781-46.838-7.787-69.766z"
],
"width": 1025,
"attrs": [],
"tags": [
"contactListIcon"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 21,
"id": 26,
@@ -158,8 +301,9 @@
"name": "contactList",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 4
"setIdx": 1,
"setId": 1,
"iconIdx": 6
},
{
"icon": {
@@ -168,11 +312,13 @@
"M513.069 1023.985c135.725 0 259.112-52.711 350.874-138.739-9.717-11.65-22.551-21.114-39.113-28.343-58.934-25.745-116.627-54.256-174.534-82.256-41.871-20.322-39.405-66.587-25.639-86.057 8.943-12.692 16.805-25.998 17.728-42.746 0.333-6.169 6.241-14.284 11.889-17.522 19.604-11.304 28.697-29.747 37.604-48.861 2.34-5.031 5.555-9.89 9.229-14.077 6.37-7.243 9.224-14.436 4.572-23.942-1.086-2.209 1.004-6.241 2.105-9.273 3.238-9.067 7.733-17.801 9.861-27.115 2.67-11.549 4.059-23.48 4.701-35.323 0.281-4.902-4.544-10.184-4.033-14.986 2.621-24.022-10.943-42.271-18.598-63.158-9.376-25.714-27.771-41.82-44.005-60.97-3.058-3.623-3.927-9.838-4.188-14.952-0.539-10.981-5.060-16.415-16.544-14.924-4.598 0.601-9.611 1.886-13.843 0.756-3.728-0.988-9.327-4.724-9.534-7.604-1.153-14.539-6.213-16.929-21.065-14.475-9.296 1.543-21.395-6.858-30.513-13.203-7.632-5.292-14.209-7.555-23.069-5.38-3.697 0.9-8.682 0.746-11.815-1.094-3.341-1.976-6.605-3.184-9.867-3.839v-0.552c-0.72 0.013-1.489 0.129-2.209 0.217-0.722-0.088-1.44-0.206-2.157-0.217v0.552c-3.29 0.653-6.574 1.863-9.89 3.839-3.112 1.837-8.091 1.992-11.797 1.094-8.886-2.173-15.448 0.088-23.064 5.38-9.157 6.345-21.222 14.746-30.518 13.203-14.862-2.451-19.94-0.062-21.093 14.475-0.219 2.879-5.793 6.616-9.516 7.604-4.278 1.13-9.247-0.155-13.887-0.756-11.456-1.491-15.987 3.943-16.516 14.924-0.261 5.111-1.13 11.33-4.19 14.952-16.222 19.15-34.616 35.258-44.018 60.97-7.627 20.887-21.204 39.136-18.57 63.158 0.511 4.802-4.304 10.083-4.046 14.986 0.655 11.846 2.041 23.776 4.701 35.323 2.131 9.312 6.626 18.048 9.89 27.115 1.094 3.032 3.174 7.062 2.082 9.273-4.649 9.508-1.788 16.702 4.582 23.942 3.674 4.188 6.874 9.046 9.224 14.077 8.899 19.111 17.992 37.557 37.596 48.861 5.653 3.238 11.559 11.353 11.905 17.522 0.913 16.748 8.773 30.054 17.739 42.746 13.745 19.47 15.902 65.245-25.673 86.057-57.52 28.772-115.6 56.511-174.503 82.256-16.57 7.23-29.409 16.694-39.123 28.338 91.759 86.031 215.138 138.744 350.843 138.744z"
],
"width": 1026,
"attrs": [],
"tags": [
"avatar"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 22,
"id": 25,
@@ -181,8 +327,9 @@
"name": "avatar",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 5
"setIdx": 1,
"setId": 1,
"iconIdx": 7
},
{
"icon": {
@@ -191,11 +338,13 @@
"M1372.769 253.515c-6.595-39.459-29.496-64.168-70.606-69.276-23.788-2.918-38.256-15.637-44.726-39.040-9.706-35.519-33.678-58.993-67.811-70.76-24.807-8.595-50.3-16.462-76.186-20.491-69.655-10.911-140.51-15.924-209.526-29.943-69.53-14.178-139.053-23.342-208.893-24.073-69.845 0.731-139.371 9.895-208.893 24.073-69.022 14.016-139.876 19.029-209.526 29.94-25.884 4.028-51.385 11.896-76.189 20.491-34.13 11.767-58.105 35.24-67.814 70.76-6.469 23.403-20.934 36.122-44.723 39.040-41.105 5.108-64.006 29.82-70.601 69.278-6.788 40.41-11.737 81.202-16.811 121.885-2.728 22.109 6.405 32.576 30.386 32.448 120.839-0.697 241.692-0.697 362.595-0.095 24.045 0.128 33.115-9.388 33.433-33.338 0.762-57.369-4.631-111.895-47.136-156.618-7.041-7.39-10.849-25.281-6.726-33.846 4.062-8.5 40.856-16.716 45.992-16.716 43.328 0.19 43.138 0.223 49.418 43.423 1.205 8.28 2.539 18.46 7.803 23.853 30.319 30.863 21.252 66.706 7.234 97.634-30.389 67.139-61.537 134.827-100.867 196.869-73.458 115.831-104.41 160.744-198.679 260.844-58.675 62.293-68.573 101.687-68.573 137.466 0 70.989 41.038 96.744 137.148 96.744 181.614 0 260.908-0.315 442.528-0.315 181.614 0 260.905 0.315 442.528 0.315 96.102 0 137.142-25.752 137.142-96.744 0-35.779-9.898-75.173-68.573-137.466-94.264-100.1-125.222-145.012-198.679-260.844-39.333-62.042-70.475-129.73-100.861-196.869-14.019-30.927-23.091-66.77 7.234-97.634 5.264-5.393 6.595-15.575 7.803-23.853 6.28-43.202 6.090-43.233 49.412-43.423 5.139 0 41.933 8.216 45.992 16.716 4.126 8.565 0.318 26.453-6.723 33.846-42.502 44.723-47.898 99.249-47.136 156.618 0.315 23.947 9.388 33.466 33.43 33.338 120.909-0.603 241.753-0.603 362.601 0.095 23.975 0.126 33.109-10.342 30.383-32.448-5.075-40.686-10.018-81.475-16.806-121.885zM959.991 576.495c0 146.315-118.624 264.936-264.97 264.936s-264.973-118.621-264.973-264.936c0-146.318 118.624-264.936 264.973-264.936 146.343-0 264.97 118.621 264.97 264.936z"
],
"width": 1390,
"attrs": [],
"tags": [
"callRetro"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 17,
"id": 24,
@@ -204,8 +353,9 @@
"name": "callRetro",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 6
"setIdx": 1,
"setId": 1,
"iconIdx": 8
},
{
"icon": {
@@ -214,11 +364,13 @@
"M1077.118-0.56h-561.987c-72.919 0-132.33 60.673-132.33 135.253v754.115c0 74.518 59.411 135.191 132.33 135.191h561.987c72.98 0 132.394-60.673 132.394-135.191v-754.115c0-74.58-59.414-135.253-132.394-135.253zM529.83 133.094h532.653l0.062 143.298h-532.715v-143.298zM643.255 908.372h-113.551v-113.551h113.551v113.551zM643.255 703.252h-113.551v-113.554h113.551v113.554zM643.382 496.244h-113.551v-113.554h113.551v113.554zM852.9 908.372h-113.551v-113.551h113.551v113.551zM852.9 703.252h-113.551v-113.554h113.551v113.554zM853.027 496.244h-113.556v-113.554h113.556v113.554zM1062.548 908.372h-113.556v-113.551h113.556v113.551zM1062.548 703.252h-113.556v-113.554h113.556v113.554zM1062.669 496.244h-113.554v-113.554h113.554v113.554z"
],
"width": 1210,
"attrs": [],
"tags": [
"callModern"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 18,
"id": 23,
@@ -227,8 +379,9 @@
"name": "callModern",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 7
"setIdx": 1,
"setId": 1,
"iconIdx": 9
},
{
"icon": {
@@ -238,11 +391,13 @@
"M388.576 333.98h-97.514v249.057l72.23-64.070v-0.689h0.815l117.72-104.418c0-0.564 0.123-0.94 0.123-1.509 0.753-53.898-30.369-80.069-93.374-78.37zM405.959 398.483c1.942 2.767 3.074 6.469 3.323 11.112 0.312 4.452 0.438 9.6 0.438 15.246 0.251 10.916-0.689 19.83-2.949 26.985-2.952 7.594-10.983 11.357-24.159 11.357h-19.325v-74.043h15.31c7.842 0 13.865 0.683 18.072 2.19 4.397 1.573 7.468 3.953 9.29 7.153z"
],
"width": 1140,
"attrs": [],
"tags": [
"recDisable"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 19,
"id": 22,
@@ -251,8 +406,9 @@
"name": "recDisable",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 8
"setIdx": 1,
"setId": 1,
"iconIdx": 10
},
{
"icon": {
@@ -263,11 +419,13 @@
"M682.507 424.001c0.316-31.782 9.416-55.542 27.425-71.407 17.44-15.29 40.185-22.936 68.181-22.936 28.247 0 51.119 7.646 68.623 23 17.82 15.798 26.92 39.623 27.171 71.407v30.333h-72.73v-37.031c0.254-6.192-0.57-12.639-2.527-19.209-1.264-3.157-3.475-5.938-6.573-8.214-3.221-1.515-7.898-2.404-13.964-2.404-10.615 0.316-17.249 3.855-19.967 10.618-2.211 6.573-3.223 13.017-2.907 19.209v161.956c0 2.273 0.126 4.865 0.38 7.772 0.568 3.411 1.454 6.824 2.527 10.233 2.717 7.775 9.352 11.756 19.967 12.007 6.067 0 10.744-1.261 13.964-3.791 3.098-2.15 5.309-4.867 6.573-8.216 1.96-7.33 2.782-13.33 2.527-18.007v-47.837h72.73v41.328c-1.451 61.547-33.364 93.015-95.794 94.469-62.685-1.454-94.53-32.922-95.607-94.343v-148.937z"
],
"width": 1142,
"attrs": [],
"tags": [
"recEnable"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 20,
"id": 21,
@@ -276,8 +434,9 @@
"name": "recEnable",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 9
"setIdx": 1,
"setId": 1,
"iconIdx": 11
},
{
"icon": {
@@ -286,11 +445,13 @@
"M597.392 512.412h-0.503l-0.126-0.126h0.63l115.615-115.866c0 0-78.247-78.505-82.153-82.153l-117.754 116.183-119.014-118.196-82.024 82.279 88.815 88.818 26.674 29.061h0.503l0.253 0.253h-0.756l-115.489 115.806c0 0 78.249 78.564 82.024 82.212l117.76-116.245 119.008 118.26 82.153-82.406-88.815-88.82-26.8-29.061z"
],
"width": 1025,
"attrs": [],
"tags": [
"kickUser1"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 16,
"id": 20,
@@ -299,8 +460,9 @@
"name": "kick1",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 10
"setIdx": 1,
"setId": 1,
"iconIdx": 12
},
{
"icon": {
@@ -310,11 +472,13 @@
"M532.596 915.271c-2.627-19.62-22.055-32.116-27.928-35.426-8.811-5.186-18.371-5.811-25.683-5.811l-6.37 0.126-227.926-0.188c-56.042-0.124-98.468-42.173-98.591-97.717-0.188-177.127-0.188-354.321 0.065-531.51 0.059-53.983 42.671-96.53 96.968-96.811l235.922-0.062c33.426-0.031 51.294-16.121 54.481-49.235 1.001-12.965 0.81-26.052 0.439-39.172-1.128-39.737-19.369-57.481-59.107-57.512l-217.866 0.121c-15.494 0-30.926 0.562-46.361 2.343-115.52 13.154-207.555 113.649-209.681 228.798-1.313 63.888-0.996 127.804-0.684 191.718l0.186 60.201h-0.377c0 0-0.121 227.954 0.065 289.811 0.248 135.702 101.528 240.796 235.545 244.48 33.176 0.875 66.419 1.189 99.654 1.189h0.065l148.012-0.753c29.368 0 47.483-17.37 49.73-47.545 1.755-22.058 1.628-40.173-0.557-57.045z"
],
"width": 1216,
"attrs": [],
"tags": [
"kickUser"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 15,
"id": 19,
@@ -323,8 +487,9 @@
"name": "kick",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 11
"setIdx": 1,
"setId": 1,
"iconIdx": 13
},
{
"icon": {
@@ -334,11 +499,13 @@
"M776.792 617.566l-302.669-302.605 112.411-112.316 302.545 302.602v112.318z"
],
"width": 1089,
"attrs": [],
"tags": [
"shareDesktop"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 14,
"id": 18,
@@ -347,8 +514,9 @@
"name": "share-desktop",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 12
"setIdx": 1,
"setId": 1,
"iconIdx": 14
},
{
"icon": {
@@ -356,11 +524,13 @@
"M953.901-2.387h-819.775c-72.965 0-132.418 60.712-132.418 135.344v540.168c0 74.567 59.453 135.279 132.418 135.279h35.823v212.891l344.966-212.891h438.986c72.963 0 132.415-60.709 132.415-135.279v-540.168c0.003-74.632-59.45-135.344-132.415-135.344zM494.429 666.646l-195.769 124.001v-124.001h-158.184v-527.252h807.078l0.124 527.252h-453.249z"
],
"width": 1089,
"attrs": [],
"tags": [
"chatNoLines"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 13,
"id": 17,
@@ -369,8 +539,9 @@
"name": "chat-simple",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 13
"setIdx": 1,
"setId": 1,
"iconIdx": 15
},
{
"icon": {
@@ -380,11 +551,13 @@
"M514.763 575.437l-91.767 96.865 77.3 77.305-316.388 85.043 84.979-316.388 75.357 75.29 91.834-96.871z"
],
"width": 1089,
"attrs": [],
"tags": [
"fullScreen 1"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 12,
"id": 16,
@@ -393,8 +566,9 @@
"name": "full-screen",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 14
"setIdx": 1,
"setId": 1,
"iconIdx": 16
},
{
"icon": {
@@ -404,11 +578,13 @@
"M170.625 771.779l91.793-96.884-77.323-77.326 316.463-85.028-84.997 316.46-75.373-75.342-91.857 96.891z"
],
"width": 1089,
"attrs": [],
"tags": [
"exitFullScreen 1"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 11,
"id": 15,
@@ -417,8 +593,9 @@
"name": "exit-full-screen",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 15
"setIdx": 1,
"setId": 1,
"iconIdx": 17
},
{
"icon": {
@@ -431,11 +608,13 @@
"M740.98 397.211c-15.692-23.002-36.473-44.48-61.699-63.797l-8.894-6.86v378.469l8.894-6.801c25.351-19.381 46.132-40.862 61.699-63.861l0.89-1.398v-234.352l-0.89-1.4z"
],
"width": 1025,
"attrs": [],
"tags": [
"prezisimple"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 10,
"id": 14,
@@ -444,8 +623,9 @@
"name": "prezi",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 16
"setIdx": 1,
"setId": 1,
"iconIdx": 18
},
{
"icon": {
@@ -453,6 +633,7 @@
"M831.678 943.614h-144.885v-258.653c-45.729-29.159-41.794-84.953-24.574-109.307 11.939-16.905 22.43-34.662 23.663-57.004 0.423-8.241 8.303-19.031 15.847-23.364 26.122-15.037 38.223-39.632 50.12-65.116 3.143-6.714 7.392-13.187 12.3-18.753 8.471-9.686 12.295-19.264 6.115-31.922-1.466-2.972 1.318-8.326 2.779-12.362 4.335-12.106 10.326-23.745 13.169-36.148 3.522-15.399 5.398-31.305 6.244-47.086 0.379-6.543-6.074-13.574-5.351-19.986 3.486-32.030-14.612-56.346-24.785-84.189-12.509-34.28-37.036-55.732-58.681-81.26-4.074-4.843-5.225-13.125-5.563-19.942-0.722-14.63-6.752-21.875-22.048-19.898-6.161 0.805-12.808 2.526-18.474 1.019-4.969-1.316-12.408-6.288-12.702-10.13-1.553-19.393-8.285-22.577-28.098-19.305-12.406 2.062-28.527-9.134-40.677-17.587-10.15-7.049-18.941-10.065-30.751-7.175-4.928 1.187-11.598 0.973-15.716-1.466-4.461-2.634-8.837-4.226-13.169-5.119v-0.722c-0.975 0-1.976 0.17-2.934 0.276-0.975-0.106-1.951-0.276-2.908-0.276v0.722c-4.355 0.893-8.726 2.485-13.169 5.119-4.167 2.441-10.811 2.652-15.718 1.466-11.851-2.89-20.598 0.126-30.751 7.175-12.212 8.453-28.287 19.648-40.671 17.587-19.816-3.272-26.591-0.085-28.119 19.305-0.299 3.844-7.73 8.816-12.7 10.13-5.692 1.509-12.32-0.212-18.497-1.019-15.27-1.976-21.302 5.269-22.024 19.898-0.338 6.819-1.486 15.102-5.565 19.942-21.622 25.528-46.154 46.98-58.684 81.26-10.171 27.843-28.271 52.161-24.765 84.189 0.699 6.412-5.736 13.443-5.395 19.986 0.87 15.78 2.74 31.687 6.267 47.086 2.843 12.403 8.835 24.042 13.187 36.148 1.466 4.033 4.229 9.387 2.784 12.362-6.203 12.658-2.379 22.236 6.115 31.922 4.887 5.565 9.134 12.039 12.277 18.753 11.874 25.484 24.001 50.079 50.125 65.116 7.516 4.332 15.417 15.122 15.863 23.364 1.21 22.342 11.701 40.099 23.64 57.004 18.33 25.954 21.194 86.95-34.216 114.687-76.673 38.336-154.083 75.357-232.624 109.632-49.189 21.498-73.891 57.6-82.238 108.192-2.549 15.331-5.862 30.539-7.88 45.961-3.014 22.956-7.839 69.874-7.839 69.874h831.678v-80.386z",
"M1188.556 879.11h-144.89v144.89h-147.481v-144.89h-144.885v-147.481h144.885v-144.888h147.481v144.888h144.89v147.481z"
],
"width": 1189,
"attrs": [
{
"opacity": 1,
@@ -463,11 +644,10 @@
"visibility": false
}
],
"width": 1189,
"grid": 0,
"tags": [
"addNew-V5"
]
],
"grid": 0
},
"attrs": [
{
@@ -487,8 +667,9 @@
"name": "addNew-V5",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 17
"setIdx": 1,
"setId": 1,
"iconIdx": 19
},
{
"icon": {
@@ -498,11 +679,13 @@
"M239.062 437.524h605.126v110.615h-605.126v-110.615z"
],
"width": 1088,
"attrs": [],
"tags": [
"chat"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 1,
"id": 11,
@@ -511,8 +694,9 @@
"name": "chat",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 18
"setIdx": 1,
"setId": 1,
"iconIdx": 20
},
{
"icon": {
@@ -523,21 +707,24 @@
"M172.339 542.54h216.161v309.677h-216.161v-309.677z"
],
"width": 1088,
"attrs": [],
"tags": [
"presentation"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 2,
"order": 3,
"id": 9,
"prevSize": 32,
"code": 58883,
"name": "presentation",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 19
"setIdx": 1,
"setId": 1,
"iconIdx": 21
},
{
"icon": {
@@ -545,21 +732,24 @@
"M878.259-5.513c-163.545 0-296.573 133.036-296.573 296.612v43.752h-448.909c-73.14 0-132.777 60.909-132.777 135.751v412.768c0 74.777 59.637 135.678 132.777 135.678h564.152c73.265 0 132.919-60.901 132.919-135.678v-412.768c0-70.054-52.267-127.895-119.040-135.009v-44.494c0-92.367 75.154-167.49 167.451-167.49 92.305 0 167.462 75.12 167.462 167.49v77.422c0 35.681 28.883 64.564 64.556 64.564 35.69 0 64.569-28.883 64.569-64.564v-77.422c-0.003-163.576-133.028-296.612-296.587-296.612z"
],
"width": 1179,
"attrs": [],
"tags": [
"security"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 3,
"order": 5,
"id": 8,
"prevSize": 32,
"code": 58884,
"name": "security",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 20
"setIdx": 1,
"setId": 1,
"iconIdx": 22
},
{
"icon": {
@@ -568,21 +758,24 @@
"M683.281-1.412h-339.684v384.596l-342.080-0.251-1.515-3.468v510.502c0 73.845 61.4 133.979 136.847 133.979h546.434c75.514 0 136.911-60.137 136.911-133.979v-757.403c-0.003-73.843-61.397-133.976-136.914-133.976zM691.854 814.836h-572.848v-92.788h572.845v92.788zM691.854 621.198h-572.848v-92.783h572.845v92.783z"
],
"width": 820,
"attrs": [],
"tags": [
"shareDoc"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 4,
"order": 6,
"id": 7,
"prevSize": 32,
"code": 58885,
"name": "share-doc",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 21
"setIdx": 1,
"setId": 1,
"iconIdx": 23
},
{
"icon": {
@@ -590,44 +783,24 @@
"M709.515 339.906v-44.455c0-163.090-132.662-295.749-295.749-295.749-163.093 0-295.752 132.659-295.752 295.749v44.455c-66.226 7.393-118.013 64.915-118.013 134.607v411.623c0 74.629 59.481 135.365 132.472 135.365h562.583c73.059 0 132.534-60.736 132.534-135.365v-411.623c-0-69.697-51.792-127.219-118.074-134.607zM413.765 128.463c92.043 0 166.987 74.944 166.987 166.987v43.632h-333.978v-43.632c0-92.043 74.883-166.987 166.99-166.987z"
],
"width": 828,
"attrs": [],
"tags": [
"securityLock"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 5,
"order": 2,
"id": 5,
"prevSize": 32,
"code": 58887,
"name": "security-locked",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 22
},
{
"icon": {
"paths": [
"M1226.078 243.147l-180.593 176.248v-218.207c0-74.882-59.657-135.821-132.947-135.821h-636.203c-73.288 0-132.939 60.939-132.939 135.821v610.659c0 74.849 59.651 135.788 132.939 135.788h636.203c73.29 0 132.947-60.939 132.947-135.788v-173.123l193.909 154.141c48.902 35.581 96.927-5.217 96.927-40.584v-484.653c0.003-35.364-56.031-71.507-110.244-24.481zM602.629 761.693c-141.446 0-256.13-114.684-256.13-256.133 0-141.449 114.682-256.13 256.13-256.13 141.449 0 256.135 114.682 256.135 256.13 0 141.449-114.687 256.133-256.135 256.133z",
"M593.787 360.424c-80.67 0-146.075 65.408-146.075 146.072 0 80.67 65.405 146.080 146.075 146.080 80.662 0 146.072-65.413 146.072-146.080 0-80.664-65.41-146.072-146.072-146.072zM593.787 439.902c-29.832 0-54.029 24.233-54.029 54.027 0 8.847-7.188 16.007-16.010 16.007-8.881 0-16.005-7.16-16.005-16.007 0-47.432 38.582-86.047 86.044-86.047 8.817 0 16.005 7.16 16.005 16.010-0.003 8.853-7.191 16.010-16.005 16.010z"
],
"width": 1334,
"tags": [
"webCam"
],
"grid": 0
},
"properties": {
"order": 6,
"id": 4,
"prevSize": 32,
"code": 58888,
"name": "camera",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 23
"setIdx": 1,
"setId": 1,
"iconIdx": 24
},
{
"icon": {
@@ -636,11 +809,13 @@
"M345.797 504.84c0-141.216 114.496-255.715 255.717-255.715 21.501 0 42.075 3.434 61.986 8.429l216.757-192.191h-604.474c-73.138 0-132.697 60.838-132.697 135.597v518.074l205.894-182.543c-1.308-10.486-3.184-20.853-3.184-31.651z"
],
"width": 1334,
"attrs": [],
"tags": [
"disableWebCam"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 7,
"id": 3,
@@ -649,8 +824,9 @@
"name": "camera-disabled",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 24
"setIdx": 1,
"setId": 1,
"iconIdx": 25
},
{
"icon": {
@@ -660,11 +836,13 @@
"M350.795 533.31c-3.246-17.483-5.119-35.782-5.119-55.201v-130.323c0-36.406-29.6-66.004-66.006-66.004-36.466 0-66.004 29.597-66.004 66.004v130.323c0 57.198 11.115 107.026 29.099 150.931l108.030-95.73z"
],
"width": 1137,
"attrs": [],
"tags": [
"disableMic"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 8,
"id": 2,
@@ -673,8 +851,9 @@
"name": "mic-disabled",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 25
"setIdx": 1,
"setId": 1,
"iconIdx": 26
},
{
"icon": {
@@ -683,11 +862,13 @@
"M568.571 644.281c-89.589 0-162.459-72.932-162.459-162.521v-317.665c0-89.589 72.87-162.459 162.459-162.459 89.592 0 162.524 72.87 162.524 162.459v317.665c0.003 89.592-72.929 162.521-162.524 162.521z"
],
"width": 1137,
"attrs": [],
"tags": [
"mic"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 9,
"id": 1,
@@ -696,8 +877,9 @@
"name": "microphone",
"ligatures": ""
},
"setIdx": 0,
"iconIdx": 26
"setIdx": 1,
"setId": 1,
"iconIdx": 27
}
],
"height": 1024,
@@ -707,6 +889,8 @@
"preferences": {
"showGlyphs": true,
"showQuickUse": true,
"showQuickUse2": true,
"showSVGs": true,
"fontPref": {
"prefix": "icon-",
"metadata": {
@@ -715,16 +899,15 @@
"minorVersion": 0
},
"metrics": {
"emSize": 512,
"emSize": 1024,
"baseline": 6.25,
"whitespace": 50
}
},
"imagePref": {
"color": 0,
"height": 32,
"columns": 16,
"margin": 16
"prefix": "icon-",
"png": true,
"useClassSelector": true
},
"historySize": 100,
"showCodes": true,

12
images/chatArrow.svg Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="258.559px" height="396.871px" viewBox="0 0 258.559 396.871" enable-background="new 0 0 258.559 396.871"
xml:space="preserve">
<g id="u6PRpE_1_">
<g>
<path fill="#3A3A3A" d="M341.829,396.871c0,0-16.524-193.936-258.445-396.871c86.17,0,258.445,0,258.445,0V396.871z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 668 B

BIN
images/chrome.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

BIN
images/chromium.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
images/dropdownPointer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

BIN
images/firefox-nightly.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
images/firefox.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
images/noMic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
images/noVideo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
images/opera.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

25
images/smile.svg Normal file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="394.595px" height="396.871px" viewBox="83.27 0 394.595 396.871" enable-background="new 83.27 0 394.595 396.871"
xml:space="preserve">
<g>
<path d="M280.573,396.025c-108.796,0-197.303-88.533-197.303-197.305c0-108.797,88.507-197.305,197.303-197.305
c108.784,0,197.292,88.508,197.292,197.305C477.865,307.492,389.357,396.025,280.573,396.025z M280.573,54.997
c-79.246,0-143.722,64.478-143.722,143.724c0,79.26,64.476,143.724,143.722,143.724c79.247,0,143.711-64.464,143.711-143.724
C424.284,119.475,359.82,54.997,280.573,54.997z"/>
</g>
<g>
<path d="M252.547,174.154c0,16.339-13.239,29.577-29.591,29.577c-16.326,0-29.576-13.238-29.576-29.577
c0-16.326,13.25-29.577,29.576-29.577C239.308,144.577,252.547,157.828,252.547,174.154z"/>
</g>
<g>
<path d="M366.457,174.154c0,16.339-13.239,29.577-29.615,29.577c-16.326,0-29.565-13.238-29.565-29.577
c0-16.326,13.239-29.577,29.565-29.577C353.217,144.577,366.457,157.828,366.457,174.154z"/>
</g>
<g>
<path d="M369.579,226.074c0,0-23.966,55.255-89.843,55.255c-67.119,0-89.856-55.255-89.856-55.255s31.252,30.139,89.856,30.139
C338.549,256.213,369.579,226.074,369.579,226.074z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="-85.106 -76.564 550 550" enable-background="new -85.106 -76.564 550 550"
xml:space="preserve">
<path fill="#FFFFFF" d="M372.248,107.851C339.151,40.429,274.366,0.178,198.949,0.178c-80.411,0-149.197,47.67-171.166,118.624
c-16.011,51.71-25.219,126.751,21.835,190.569c48.128,65.281,132.732,88.441,190.568,88.441c0.006,0,0.013,0,0.019,0
c2.147,0,4.292-0.033,6.383-0.094c21.169-0.604,31.88-17.354,38.017-29.355c48.385-23.785,82.444-61.1,98.547-107.961
C399.895,211.666,395.92,156.065,372.248,107.851z"/>
<path fill="#231F20" d="M344.649,119.812C280.709-10.436,92.562,5.397,55.103,126.384c-55.37,178.83,97.09,243.395,189.835,240.728
c7.195-0.205,11.967-13.817,16.975-23.18c2.725-0.688,5.336-1.609,7.793-2.805C369.67,292.52,378.961,189.702,344.649,119.812z
M336.959,225.568c-33.385,127.58-148.073,96.354-154.979,97.659C42.987,280.825-1.426,137.46,153.207,62.316
C253.958,13.355,364.406,120.68,336.959,225.568z"/>
<path fill="#231F20" d="M162.596,162.239c4.438,11.093-15.069,24.402-27.729,24.402c-12.659,0-21.074-17.657-21.074-30.316
c0-12.659,9.523-27.358,22.183-27.358C148.636,128.967,157.895,150.487,162.596,162.239z"/>
<path fill="#231F20" d="M288.049,158.705c0,8.158-1.366,14.828-7.185,19.149c-3.609,2.68-10.833,9.577-15.562,9.577
c-22.736,0-24.337-20.694-24.337-33.914c0-13.222,10.003-23.938,22.343-23.938C275.649,129.579,288.049,145.482,288.049,158.705z"/>
<g>
<path fill="#EC1C24" d="M118.379,254.148c-0.418-0.569-0.588-0.766-0.631-1.903c-0.174-1.904-0.23-3.902,0.406-5.953
c0.598-2.013,1.649-3.72,3.172-4.839c1.573-1.124,3.509-1.684,5.92-1.74c2.424-0.07,5.022,0.252,8.26,0.669
c0.223,0.036,1.113,0.275,1.457,0.513c2.61,3.606,6.503,7.162,10.902,10.217c4.414,3.074,9.353,5.729,14.524,7.949
c4.23,1.896,8.709,3.317,13.197,4.643c4.537,1.166,9.12,2.226,13.768,2.767c6.275,0.834,12.607,1.089,18.845,0.728
c0,0,0.483,0.004,1.372,0c0.886-0.026,2.197,0.061,3.808-0.041c3.224-0.174,7.804-0.4,12.942-1.405
c10.383-1.633,22.947-6.716,32.402-13.301c2.045-1.339,3.75-2.776,5.353-4.056c0.808-0.636,1.58-1.244,2.315-1.817
c0.692-0.616,1.352-1.206,1.976-1.765c1.26-1.11,2.444-2.059,3.461-2.92c0.963-0.896,1.837-1.649,2.612-2.268
c3.129-2.467,4.673-2.768,5.023-1.256c0.293,1.466-0.531,4.812-2.597,9.178c-2.155,4.282-5.472,9.703-10.267,14.79
c0.602-0.41-1.855,2.508-6.584,6.507c-4.732,3.948-11.853,8.863-19.804,12.461c-1.997,0.846-3.995,1.746-6.007,2.52
c-2.04,0.699-4.05,1.388-5.999,2.058c-1.985,0.536-3.911,1.054-5.735,1.546c-1.836,0.481-3.602,0.758-5.222,1.104
c-6.506,1.219-10.944,1.514-10.944,1.514c-6.701,0.304-13.359-0.182-19.938-0.999c-5.676-0.691-11.252-1.938-16.773-3.355
c-5.477-1.586-10.922-3.322-16.192-5.649c-6.415-2.763-12.654-6.076-18.596-10.205
C128.892,265.673,123.195,260.766,118.379,254.148z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="-85.961 -76.564 550 550" enable-background="new -85.961 -76.564 550 550"
xml:space="preserve">
<path fill="#FFFFFF" d="M205.199,396.419c-0.004,0,0,0-0.004,0c-1.295-0.003-2.603-0.073-3.889-0.215"/>
<path fill="#FFFFFF" d="M225.126,397.08c-57.758,0-142.257-23.135-190.316-88.328c-25.936-35.177-50.769-96.746-21.804-190.293
C34.943,47.605,103.633,0,183.932,0c75.313,0,140.007,40.195,173.061,107.523c23.636,48.15,27.604,103.677,10.884,152.344
c-16.079,46.794-50.091,84.05-98.4,107.802c-6.131,11.986-16.83,28.716-37.966,29.321c-2.097,0.06-4.221,0.09-6.375,0.09
C225.132,397.08,225.129,397.08,225.126,397.08z"/>
<path fill="#231F20" d="M329.688,120.928C266.169-8.457,79.271,7.271,42.063,127.455c-55.002,177.641,96.446,241.78,188.576,239.129
c7.155-0.204,11.899-13.762,16.879-23.062c2.693-0.684,5.291-1.567,7.719-2.749C354.542,292.488,363.77,190.353,329.688,120.928z
M322.044,225.98c-33.132,126.628-146.884,95.768-153.913,97.015C30.039,280.886-14.103,138.464,139.513,63.812
C239.595,15.176,349.314,121.789,322.044,225.98z"/>
<path fill="#231F20" d="M88.652,158.686c0,0,0.039-0.397,0.116-1.138c0.083-0.73,0.19-1.795,0.618-3.193
c0.392-1.396,0.99-3.012,1.938-4.803c0.933-1.797,2.233-3.706,3.9-5.605c3.321-3.805,8.243-7.359,14.011-9.767
c1.438-0.621,2.926-1.157,4.454-1.617c1.526-0.486,3.083-0.897,4.669-1.212c3.164-0.725,6.414-1.013,9.646-1.212
c3.24-0.115,6.455,0,9.592,0.337c1.56,0.192,3.113,0.359,4.616,0.683c1.509,0.27,2.998,0.56,4.426,0.961
c2.89,0.704,5.593,1.641,8.115,2.607c1.248,0.53,2.46,1.031,3.612,1.559c1.129,0.569,2.219,1.123,3.271,1.652
c2.056,1.152,3.885,2.265,5.448,3.368c1.578,1.059,2.87,2.139,3.927,3c1.051,0.877,1.817,1.68,2.361,2.173
c0.529,0.514,0.796,0.812,0.796,0.812s-1.616-0.046-4.292-0.284c-1.354-0.076-2.935-0.285-4.762-0.425
c-1.782-0.171-3.799-0.367-5.998-0.581c-4.349-0.406-9.306-0.834-14.508-1.115c-2.596-0.184-5.27-0.194-7.945-0.301
c-2.68,0.021-5.383-0.056-8.06,0.112c-2.673,0.093-5.338,0.28-7.913,0.576c-2.572,0.327-5.094,0.667-7.491,1.172
c-2.386,0.519-4.69,1.073-6.827,1.773c-2.121,0.715-4.15,1.458-5.95,2.335c-1.815,0.854-3.463,1.766-4.893,2.699
c-1.44,0.909-2.676,1.859-3.669,2.645c-0.514,0.411-0.962,0.782-1.36,1.102c-0.392,0.365-0.722,0.676-0.992,0.928
C88.953,158.421,88.652,158.686,88.652,158.686z"/>
<path fill="#231F20" d="M284.468,157.075c0,0-0.278-0.284-0.802-0.813c-0.25-0.271-0.562-0.604-0.924-0.997
c-0.374-0.348-0.803-0.747-1.281-1.192c-0.936-0.856-2.107-1.888-3.48-2.896c-1.356-1.026-2.938-2.055-4.693-3.031
c-1.733-1-3.706-1.879-5.771-2.739c-2.078-0.848-4.346-1.56-6.687-2.243c-2.353-0.67-4.851-1.182-7.396-1.688
c-2.546-0.474-5.189-0.845-7.852-1.124c-2.659-0.352-5.359-0.46-8.032-0.668c-2.683-0.077-5.347-0.252-7.948-0.248
c-5.207-0.083-10.184,0.002-14.545,0.107c-2.216,0.061-4.234,0.116-6.029,0.164c-1.83,0.01-3.424,0.113-4.778,0.093
c-2.687,0.052-4.299-0.013-4.299-0.013s0.282-0.279,0.853-0.753c0.573-0.458,1.393-1.203,2.501-2.007
c1.117-0.787,2.48-1.771,4.126-2.721c1.637-0.991,3.541-1.977,5.665-2.982c1.087-0.456,2.216-0.933,3.38-1.424
c1.188-0.446,2.428-0.86,3.715-1.301c2.582-0.79,5.346-1.537,8.274-2.041c1.456-0.299,2.955-0.487,4.481-0.651
c1.52-0.217,3.08-0.28,4.649-0.363c3.151-0.119,6.369-0.01,9.595,0.327c3.211,0.422,6.435,0.936,9.537,1.879
c1.562,0.426,3.084,0.94,4.572,1.535c1.487,0.566,2.943,1.201,4.331,1.92c5.591,2.801,10.251,6.688,13.308,10.715
c1.53,2.009,2.697,4.004,3.5,5.86c0.819,1.851,1.305,3.507,1.599,4.927c0.333,1.423,0.362,2.494,0.397,3.229
C284.455,156.679,284.468,157.075,284.468,157.075z"/>
<path fill="#EC1C24" d="M159.606,193.566c8.195-14.061,26.514-13.454,39.519-7.108c3.211,1.565,7.952-4.404,21.914-3.785
c14.748,0.652,25.139,14.76,26.169,29.503c0.842,11.993,10.032,16.975,10.032,16.975s-9.206,15.434-20.797,38.101
c-14.689,26.586-64.421,25.285-82.202-8.062c-10.557-19.803-21.771-35.438-21.771-35.438S143.681,220.877,159.606,193.566z"/>
<path fill="#F3CEA5" d="M233.488,231.941c0,0-0.211,0.23-0.618,0.633c-0.415,0.391-1.004,1.001-1.791,1.703
c-0.39,0.359-0.824,0.746-1.31,1.156c-0.513,0.393-1.088,0.785-1.703,1.226c-0.614,0.44-1.293,0.877-2.008,1.358
c-0.717,0.489-1.5,0.846-2.311,1.308c-0.812,0.44-1.678,0.866-2.573,1.327c-0.913,0.395-1.876,0.76-2.864,1.16
c-1.974,0.834-4.149,1.369-6.405,1.983c-1.132,0.276-2.302,0.45-3.484,0.661c-0.593,0.102-1.188,0.204-1.789,0.307
c-0.604,0.053-1.212,0.104-1.821,0.156c-1.222,0.079-2.453,0.249-3.693,0.251c-1.24,0.006-2.487-0.014-3.733-0.034
c-1.245-0.018-2.483-0.188-3.72-0.302c-0.617-0.063-1.232-0.127-1.846-0.207c-0.608-0.095-1.213-0.221-1.815-0.33
c-1.205-0.226-2.402-0.435-3.563-0.741c-1.158-0.326-2.301-0.637-3.41-0.992c-1.116-0.319-2.183-0.76-3.22-1.182
c-0.518-0.212-1.029-0.422-1.534-0.63c-0.507-0.196-1-0.414-1.47-0.676c-1.9-0.979-3.681-1.884-5.206-2.96
c-0.767-0.523-1.503-1.01-2.185-1.495c-0.666-0.521-1.283-1.033-1.852-1.522c-1.141-0.974-2.107-1.828-2.817-2.658
c-0.735-0.785-1.264-1.452-1.638-1.881c-0.367-0.438-0.549-0.687-0.549-0.687s0.302,0.072,0.867,0.207
c0.55,0.153,1.375,0.343,2.365,0.644c0.979,0.32,2.211,0.604,3.581,0.961c0.689,0.166,1.39,0.397,2.151,0.58
c0.762,0.172,1.562,0.354,2.397,0.541c1.626,0.447,3.447,0.73,5.302,1.14c0.921,0.224,1.906,0.329,2.882,0.506
c0.99,0.131,1.958,0.405,2.992,0.487c1.025,0.111,2.051,0.275,3.089,0.431c0.517,0.087,1.052,0.097,1.581,0.149
c0.526,0.058,1.057,0.115,1.588,0.174c0.531,0.055,1.062,0.127,1.6,0.168c0.539,0.019,1.077,0.053,1.615,0.089
c1.08,0.042,2.156,0.2,3.24,0.198c1.084,0.025,2.166,0.053,3.246,0.104c1.079,0.025,2.155-0.006,3.226-0.003
c2.146,0.053,4.239-0.169,6.302-0.194c2.031-0.224,4.055-0.238,5.934-0.523c0.95-0.096,1.875-0.209,2.787-0.282
c0.894-0.132,1.756-0.28,2.602-0.39c1.716-0.188,3.214-0.48,4.596-0.711c0.696-0.104,1.348-0.219,1.971-0.297
c0.622-0.131,1.192-0.25,1.709-0.357c1.032-0.217,1.873-0.328,2.435-0.432C233.178,231.973,233.488,231.941,233.488,231.941z"/>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="-119.308 -76.564 550 550" enable-background="new -119.308 -76.564 550 550"
xml:space="preserve">
<g>
<path fill="#FFFFFF" d="M170.544,137.515c-20.367,14.509-6.455,36.763,15.367,35.446c22.026-1.311,72.6,11.714,84.758-13.486
C297.285,104.302,191.251,122.738,170.544,137.515C161.852,143.705,185.56,126.801,170.544,137.515z"/>
<path fill="#FFFFFF" d="M162.255,96.077c-7.345,6.5-7.59,16.066-2.086,23.809c8.896,12.441,22.86,7.643,35.291,5.155
c15.899-3.181,60.977-0.028,64.656-20.233C270.22,49.553,181.905,78.69,162.255,96.077
C154.837,102.647,184.021,76.819,162.255,96.077z"/>
<path fill="#FFFFFF" d="M239.044,174.366c-20.393-0.729-54.571-6.287-69.414,11.935c-17.746,21.795,21.174,34.35,35.566,38.506
c18.034,5.209,44.348,12.816,57.229-6.117C275.306,199.764,261.093,175.138,239.044,174.366
C220.919,173.717,256.907,174.991,239.044,174.366z"/>
<path fill="#FFFFFF" d="M157.497,93.978c16.782-12.917,36.779-20.151,57.432-23.992c14.131-2.635,30.313-7.809,12.996-23.727
C202.874,23.241,129.894,61.457,157.497,93.978C177.938,78.245,147.569,82.283,157.497,93.978z"/>
<g>
<path fill="#FFFFFF" d="M92.718,252.908c19.169,12.041,36.049,28.307,42.513,50.615c6.091,21.039,1.184,50.614,30.805,53.139
c26.652,2.301,29.416-33.986,28.387-52.596c-1.551-28.18-14.588-52.062-37.713-68.379c12.183-2.088,24.364-4.181,36.545-6.271
c-15.277-6.637-61.725-34.374-31.276-52.983c-17.726-12.784-17.2-30.642-0.359-43.938c-18.104-12.907-12.999-21.332-18.258-40.033
c-5.771-20.531-6.353-35.972,20.394-41.561c-40.553,5.912-106.982,4.196-118.688,55.019c-2.496,10.832-2.359,22.149-1.183,33.135
c1.54,14.219-4.803,27.1-5.206,41.146C37.729,212.992,67.358,237.014,92.718,252.908
C118.691,269.221,77.217,243.191,92.718,252.908z"/>
<path fill="#FFFFFF" d="M170.771,9.064c-2.172,1.105-4.34,2.323-6.484,3.641c-11.731,2.444-32.728,4.51-44.623,5.678
c-9.721,0.956-13.568,1.352-16.61,1.962C35.832,33.059,6.568,68.877,5.217,140.062c-0.093,4.819-1.099,10.639-2.168,16.804
c-2.884,16.69-6.481,37.458,3.703,59.669c11.805,25.738,37.366,52.957,64.044,68.335l0.219,0.169l1.02,0.639
c16.979,10.733,23.158,20.396,28.316,44.558c6.011,39.879,31.678,65.578,65.624,65.578c5.088,0,10.346-0.599,15.622-1.775
c34.767-7.756,54.046-40.525,51.565-87.652c-0.601-11.399-2.707-24.752-6.544-37.76c3.499,0.34,6.849,0.509,10.114,0.509
c38.864,0,54.842-23.876,60.908-38.102c6.27-14.71,6.545-30.86,1.619-45.295c6.902-9.824,11.149-21.776,11.978-34.765
c1.037-16.193-3.489-31.422-12.351-43.338c0.531-7.476-0.354-15.351-2.698-23.349c-4.067-13.879-12.147-26.453-22.511-35.696
c-1.397-5.847-3.959-11.559-7.65-16.938c-13.191-19.216-38.652-30.387-55.914-31.14c-1.221-0.054-2.426-0.08-3.613-0.08
c-12.428,0-24.442,2.899-35.713,8.623"/>
<path fill="#231F20" d="M33.621,204.215c10.037,21.887,32.566,44.321,53.376,55.86c0.295,0.221,0.575,0.429,0.831,0.62
c26.339,16.649,35.521,35.17,41.635,64.338c3.314,23.511,17.321,46.489,45.697,40.155c49.61-11.065,25.081-120.181-0.976-123.173
c12.129-2.125,24.266-4.188,36.403-6.255c22.026,5.441,49.221,8.646,59.862-16.321c6.162-14.455,1.271-30.441-9.7-39.282
c25.539-10.25,28.693-49.963,4.916-63.24c10.34-15.362-1.771-44.087-21.164-52.482c6.088-18.129-21.521-33.777-35.679-34.394
c-9.442-0.417-17.42,1.695-24.651,5.369c0-0.012,0.002-0.025,0-0.034c0.002,0.009-0.006,0.022-0.004,0.036
c-2.748,1.396-5.395,3.009-7.964,4.818c-18.286,5.097-62.049,7.953-67.427,9.114C53.167,59.8,35.801,86.287,34.771,140.622
C34.366,161.877,24.077,183.406,33.621,204.215z M260.833,207.342c-7.533,19.649-32.582,14.041-47.851,10.115
c-8.812-2.266-53.341-13.945-32.733-28.58c3.228-2.297,8.034-3.867,13.741-4.913c17.504,1.494,37.365,1.641,54.101-0.909
c3.312,0.188,6.309,0.362,8.832,0.484C262.154,189.916,264.335,198.487,260.833,207.342z M250.484,163.634
c-9.089,0.304-18.396,0.611-27.707,0.734c-6.405-0.289-13.135-0.44-19.783-0.096c-4.521-0.121-9.013-0.312-13.44-0.618
c-24.941,2.332-18.954-18.59-18.288-27.658c0.598-0.455,1.184-0.905,1.743-1.33c4.961,1.284,10.067,1.793,14.83,1.339
c17.727-1.69,35.725-5.71,53.545-8.507c6.438,1.39,12.142,3.514,16.406,6.643C267.833,142.295,264.917,163.448,250.484,163.634z
M242.423,108.709c-2.104,1.033-4.445,1.888-6.938,2.618c-8.097,0.327-16.578,1.729-24.844,3.938
c-10.044,0.874-20.067,1.43-27.9,3.031c-7.136,1.456-19.395-0.354-17.135-10.994c1.256-5.628-0.376-8.416-3.564-11.875
c14.508-7.146,34.487-11.958,47.807-14.984c3.761-0.853,8.478-1.31,13.211-2.083c3.926,0.277,7.629,0.902,10.921,2.04
C245.925,84.51,261.615,106.587,242.423,108.709z M155.544,60.764c26-12.812,69.963-14.247,69.963-1.807
c-24.998,3.814-55.776,12.289-77.252,27.11c-1.78-7.684-3.121-13.859-3.221-14.248C147.189,68.28,151.057,64.517,155.544,60.764z
M148.866,176.693c-0.066,0.103-0.107,0.207-0.172,0.312C148.686,176.951,148.747,176.901,148.866,176.693z M62.385,90.061
C74.368,74.97,94.09,70.775,112.027,67.396c6.252-1.376,32.013-13.519,37.185-8.872c-5.177-3.663-28.547,7.563-18.721,28.005
c1.782,8.326,4.832,13.434,5.207,23.274c-0.006-0.102,9.381,25.433,11.584,23.884c-11.205,12.959-10.665,31.013,1.412,43.322
c-11.304,18.524,0.622,38.056,17.116,47.907c0.118,0.088,1.532-0.104,3.176-0.385c-10.535,2.451-31.194,7.506-34.351,5.975
c31.017,23.391,60.317,50.249,49.885,95.066c-7.186,29.937-32.71,24.183-36.773-2.441c-4.156-34.713-27.054-59.17-56.686-77.898
c-9.724-2.244-15.367-2.838-18.262-2.377c-15.498-21.883-23.021-49.957-16.223-77.92C62.527,140.44,45.479,111.354,62.385,90.061z
"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="-85.961 -76.564 550 550" enable-background="new -85.961 -76.564 550 550"
xml:space="preserve">
<path fill="#FFFFFF" d="M375.337,306.797c-0.469-4.74-1.526-9.275-3.114-13.497c1.934-10.411,0.559-21.495-4.283-31.819
c-0.162-0.34-0.363-0.644-0.529-0.979c0.09-0.258,0.195-0.508,0.285-0.766c16.713-48.639,12.746-104.139-10.879-152.264
C323.779,40.176,259.117,0,183.84,0C103.582,0,34.926,47.582,13,118.4c-28.951,93.5-4.13,155.04,21.792,190.2
c48.036,65.161,132.493,88.283,190.222,88.283c0.004,0,0.006,0,0.01,0c2.152,0,4.275-0.029,6.371-0.089
c13.791-0.395,23.117-7.666,29.648-15.994c4.46,2.898,10.195,5.138,17.535,5.745c8.615,3.305,19.753,7.126,32.374,7.126
c0,0,0,0,0.003,0c8.932,0,17.656-1.896,25.936-5.638c13.137-5.941,28.543-21.57,32.572-39.955c0.826-3.771,1.148-7.541,0.989-11.231
C374.557,327.583,376.355,317.076,375.337,306.797z"/>
<g>
<path fill="#F0584F" d="M123.774,226.914c-0.133-0.514-0.174-0.708,0.095-1.488c0.687-2.66,2.555-5.93,5.501-7.16
c0.738-0.258,1.528-0.408,2.366-0.422c0.419-0.006,0.85,0.022,1.293,0.09c0.441,0.049,0.896,0.112,1.365,0.229
c1.878,0.437,3.955,1.407,6.389,2.94c0.183,0.114,0.861,0.674,1.029,0.996c1.099,4.151,2.818,8.189,4.974,11.875
c2.216,3.649,4.833,7.021,7.983,9.825c2.338,2.166,4.933,4.062,7.761,5.638c2.824,1.573,5.798,2.97,9.003,3.939
c4.671,1.536,9.667,2.463,14.797,2.921c0,0,0.396,0.062,1.122,0.173c0.731,0.096,1.776,0.328,3.135,0.434
c1.356,0.113,2.974,0.361,4.838,0.463c0.937,0.052,1.923,0.105,2.956,0.164c0.518,0.029,1.047,0.062,1.587,0.094
c0.492,0.008,0.994,0.016,1.505,0.023c1.029,0.051,2.069-0.039,3.159-0.055c1.068-0.102,2.188-0.145,3.298-0.322
c2.239-0.285,4.545-0.75,6.822-1.439c4.569-1.343,9.059-3.521,12.936-6.031c3.222-2.205,5.746-4.355,7.771-6.165
c2.021-1.85,3.589-3.282,4.766-4.358c2.387-2.125,3.51-2.598,3.984-1.395c0.391,1.283-0.109,4.118-1.755,7.784
c-1.633,3.651-4.435,8.106-8.465,12.33c0.489-0.359-1.573,2.084-5.726,5.229c-2.07,1.568-4.675,3.297-7.695,4.859
c-3.014,1.568-6.445,2.956-10.014,3.971c-1.783,0.496-3.593,0.941-5.396,1.264c-0.9,0.19-1.798,0.308-2.688,0.432
c-0.896,0.13-1.781,0.249-2.563,0.309c-1.62,0.146-3.188,0.287-4.679,0.422c-1.494,0.119-2.933,0.129-4.254,0.189
c-2.639,0.148-4.89,0.014-6.458-0.001c-0.786-0.021-1.404-0.022-1.828-0.052c-0.424-0.033-0.651-0.053-0.651-0.053
c-5.439-0.601-10.915-1.764-16.291-3.489c-4.259-1.325-8.418-3.209-12.4-5.429c-3.989-2.221-7.755-4.939-11.153-8.061
c-4.546-4.08-8.348-8.93-11.464-14.099C127.672,238.273,125.326,232.734,123.774,226.914z"/>
</g>
<path fill="#231F20" d="M329.523,120.868C266.038-8.453,79.232,7.267,42.043,127.394c-54.975,177.551,96.398,241.658,188.482,239.01
c7.151-0.205,11.892-13.756,16.869-23.053c2.693-0.683,5.289-1.566,7.717-2.749C354.366,292.344,363.589,190.257,329.523,120.868z
M321.886,225.87c-33.116,126.562-146.812,95.719-153.837,96.966C30.024,280.747-14.096,138.397,139.444,63.779
C239.479,15.169,349.143,121.729,321.886,225.87z"/>
<path fill="#231F20" d="M276.364,165.563c0,8.1-1.354,14.72-7.13,19.011c-3.582,2.66-10.756,9.507-15.449,9.507
c-22.58,0-24.165-20.543-24.165-33.672c0-13.126,9.935-23.764,22.185-23.764S276.364,152.435,276.364,165.563z"/>
<circle fill="#231F20" cx="245.201" cy="161.605" r="77.524"/>
<circle fill="#26A9E0" cx="246.434" cy="161.772" r="57.766"/>
<g>
<path fill="#FFFFFF" d="M276.572,307.569c-15.525-3.474-12.379-19.646,0.955-24.13c13.459-4.533,40.652-24.197,53.761-12.595
C359.986,296.257,292.367,311.117,276.572,307.569C269.948,306.091,288.029,310.135,276.572,307.569z"/>
<path fill="#FFFFFF" d="M281.229,333.453c-5.886-1.986-8.254-7.443-6.762-13.228c2.424-9.309,11.889-9.898,19.887-11.451
c10.229-1.989,36.432-14.642,43.315-3.882C356.514,334.326,297.005,338.753,281.229,333.453
C275.277,331.446,298.703,339.32,281.229,333.453z"/>
<path fill="#FFFFFF" d="M308.943,269.859c-12.014,5.32-31.141,16.742-44.225,9.804c-15.662-8.298,4.67-24.894,12.307-30.747
c9.563-7.334,23.516-18.04,35.6-10.223C324.712,246.505,321.934,264.117,308.943,269.859
C298.27,274.592,319.473,265.207,308.943,269.859z"/>
<g>
<path fill="#FFFFFF" d="M278.879,335.802c13.021,3.411,26.643,2.778,39.871,0.032c9.053-1.876,19.919-2.785,13.27,10.552
C322.391,365.676,269.932,361.189,278.879,335.802C294.732,339.958,275.663,344.929,278.879,335.802z"/>
<g>
<path fill="#231F20" d="M338.177,296.574c11.107-13.36,0.026-35.477-17.589-35.27c4.483-7.736,3.688-18.129-3.337-24.976
c-12.551-12.231-28.678-2.877-40.715,5.812c-11.662,8.426-36.786,30.599-14.849,42.565c0.701,0.384,1.422,0.681,2.146,0.978
c-6.666,8.979,0.023,21.068,12.973,24.43c-8.686,7.328-13.363,18.951-3.453,25.862c-0.185,1.903-0.09,3.521-0.828,5.998
c16.658,4.278,38.404,1.689,55.099-2.328c3.437,8.539-34.906,20.703-51.631,13.824c0.112,0.169,0.208,0.332,0.325,0.504
c2.537,3.757,6.918,1.344,10.337,3.095c12.805,4.993,24.423,9.267,37.712,3.261c8.308-3.756,21.115-19.382,13.308-28.378
C347.342,322.459,347.934,302.955,338.177,296.574z M313.293,331.024c-8.669,1.461-21.691,3.449-32.021,2.812
c1.09-2.74,1.408-4.738-0.642-7.666c-3.812-5.591,3.085-9.578,7.688-10.454c5.052-0.959,11.171-3.049,17.373-4.961
c5.444-0.713,10.834-1.938,15.742-3.696c1.658-0.176,3.26-0.246,4.762-0.156c11.947-3.389,7.701,13.113,1.518,18.349
c-1.701,1.442-3.768,2.695-6.045,3.8C318.661,329.742,315.736,330.611,313.293,331.024z M283.377,251.282
c8.216-5.929,21.87-15.188,30.936-5.671c4.145,4.267,4.834,9.731,3.186,14.664c-1.487,0.683-3.23,1.496-5.178,2.408
c-10.562,2.547-22.342,7.377-32.428,12.431c-3.677,0.778-6.957,1.062-9.431,0.508
C254.759,272.141,278.645,254.705,283.377,251.282z M281.869,287.932c2.556-1.231,5.189-2.406,7.847-3.557
c4.035-1.396,7.986-3.094,11.73-4.795c5.624-2.184,11.288-4.264,16.819-6.282c8.664-3.358,15.313,8.129,11.211,15.249
c-1.809,2.803-4.683,5.373-8.162,7.704c-11.332,2.688-23.036,4.731-34.062,8.031c-3.281,0.983-6.538,2.755-9.427,5.003
c-0.009,0-0.015,0-0.021,0C276.223,304.787,265.296,292.92,281.869,287.932z"/>
<path fill="#231F20" d="M275.993,353.471c-3.812-5.691-5.179-10.645-6.95-15.042
C266.952,346.395,270.174,351.077,275.993,353.471z"/>
</g>
</g>
</g>
<path fill="#FFFFFF" d="M229.84,155.754c0,7.553-6.125,13.681-13.682,13.681s-13.682-6.128-13.682-13.681
c0-7.56,6.125-13.682,13.682-13.682S229.84,148.194,229.84,155.754z"/>
<circle fill="#FFFFFF" cx="245.292" cy="189.446" r="22.549"/>
<path fill="#231F20" d="M87.469,204.523c0,0-0.08-0.394-0.229-1.121c-0.128-0.721-0.333-1.771-0.335-3.232
c-0.033-1.448,0.068-3.17,0.457-5.157c0.365-1.989,1.054-4.195,2.096-6.493c2.069-4.608,5.736-9.438,10.552-13.42
c1.194-1.01,2.461-1.959,3.789-2.841c1.318-0.912,2.687-1.755,4.115-2.521c2.812-1.612,5.834-2.833,8.866-3.966
c3.067-1.054,6.178-1.876,9.271-2.471c1.547-0.267,3.079-0.561,4.611-0.688c1.523-0.184,3.028-0.338,4.513-0.368
c2.969-0.169,5.828-0.06,8.518,0.131c1.348,0.142,2.651,0.267,3.907,0.436c1.247,0.217,2.452,0.428,3.61,0.629
c2.298,0.502,4.37,1.033,6.188,1.633c1.817,0.556,3.364,1.212,4.632,1.726c1.256,0.534,2.224,1.081,2.886,1.395
c0.656,0.333,1.003,0.541,1.003,0.541s-1.565,0.428-4.186,0.979c-1.324,0.321-2.895,0.582-4.677,0.98
c-1.757,0.356-3.744,0.754-5.905,1.194c-4.278,0.873-9.142,1.906-14.198,3.153c-2.542,0.582-5.095,1.348-7.687,2.025
c-2.553,0.802-5.166,1.514-7.672,2.452c-2.532,0.867-5.023,1.823-7.402,2.856c-2.363,1.06-4.679,2.12-6.823,3.302
c-2.129,1.188-4.171,2.39-6.012,3.682c-1.814,1.3-3.542,2.601-5.003,3.963c-1.49,1.339-2.803,2.699-3.895,4.002
c-1.114,1.292-2.019,2.56-2.741,3.602c-0.368,0.54-0.698,1.027-0.98,1.448c-0.267,0.464-0.49,0.854-0.677,1.176
C87.677,204.186,87.469,204.523,87.469,204.523z"/>
<path fill="#231F20" d="M84.328,129.534c0,0,0.392-0.074,1.125-0.208c0.359-0.08,0.801-0.175,1.324-0.288
c0.505-0.071,1.084-0.151,1.734-0.244c1.25-0.163,2.806-0.338,4.507-0.374c1.695-0.065,3.583,0.003,5.582,0.205
c1.989,0.175,4.109,0.585,6.292,1.06c2.188,0.502,4.454,1.214,6.763,2.001c2.312,0.799,4.653,1.812,7.025,2.854
c2.36,1.072,4.736,2.283,7.075,3.578c2.373,1.229,4.652,2.696,6.962,4.056c2.239,1.473,4.522,2.856,6.65,4.347
c4.312,2.918,8.337,5.837,11.85,8.426c1.778,1.318,3.402,2.518,4.846,3.586c1.493,1.057,2.74,2.052,3.859,2.815
c2.173,1.582,3.536,2.452,3.536,2.452s-0.077-0.392-0.27-1.104c-0.208-0.704-0.458-1.781-0.9-3.073
c-0.466-1.286-1.018-2.877-1.826-4.599c-0.769-1.746-1.764-3.643-2.927-5.686c-0.63-0.995-1.283-2.034-1.954-3.103
c-0.715-1.045-1.493-2.097-2.295-3.195c-1.663-2.123-3.5-4.323-5.608-6.407c-1.019-1.087-2.141-2.096-3.296-3.106
c-1.119-1.048-2.366-1.995-3.601-2.963c-2.518-1.9-5.208-3.655-8.043-5.226c-2.874-1.496-5.81-2.921-8.889-3.928
c-1.52-0.543-3.07-0.998-4.625-1.363c-1.544-0.392-3.097-0.707-4.646-0.909c-6.182-0.911-12.227-0.398-17.036,1.152
c-2.405,0.769-4.504,1.73-6.224,2.791c-1.736,1.048-3.079,2.126-4.133,3.121c-1.083,0.977-1.725,1.835-2.176,2.417
C84.565,129.217,84.328,129.534,84.328,129.534z"/>
</svg>

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="0 0 550 550" enable-background="new 0 0 550 550" xml:space="preserve">
<g>
<path fill="#FFFFFF" d="M405.188,83.625c-12.981-4.652-26.33-7.009-39.682-7.009c-32.229,0-64.362,14.062-92.078,39.577
c-4.251-4.12-7.979-7.578-9.813-9.096c-22.675-18.704-49.315-28.593-77.035-28.593c-20.612,0-41.31,5.714-59.878,16.522
c-31.396,17.634-59.658,48.545-75.659,82.785c-20.474,43.936-28.3,110.994,50.703,180.941
c46.296,40.986,108.883,71.457,154.583,93.705l2.356,1.146c0.929,0.508,1.88,0.969,2.851,1.391l37.554,18.391
c0,0,180.547-113.275,208.379-208.913C528.599,189.847,484.63,112.101,405.188,83.625z"/>
<path fill="#EE4036" d="M276.211,417.891c12.285,1.695,12.34-4.02,6.492,8.115c-85.112-41.695-253.535-117.604-199.63-233.271
c12.292-26.302,35.257-52.559,61.172-67.035c32.051-18.783,68.468-14.787,96.885,8.659c3.176,2.623,34.549,32.413,31.713,36.136
c27.132-38.738,71.108-71.279,120.424-53.604c57.24,20.519,97.48,76.929,80.199,137.95
c-25.957,89.207-117.41,140.075-195.729,176.312c51.723-41.762,206.95-182.596,129.942-248.605
c-34.086-29.215-76.645-27.041-103.692,13.896c-2.963,4.49-36.04,61.062-32.605,64.044
c-18.579-43.202-50.354-123.388-103.915-97.417C63.586,249.091,192.26,376.773,276.211,417.891z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="-85.106 -60.017 550 550" enable-background="new -85.106 -60.017 550 550"
xml:space="preserve">
<path fill="#FFFFFF" d="M358.26,107.159C325.2,39.814,260.49-0.39,185.16-0.39c-80.315,0-149.021,47.616-170.962,118.485
C-8.917,192.74,2.227,247.009,20.843,283.776c2.24,14.188,10.557,28.049,24.308,39.6c2.642,2.222,3.657,6.07,5.568,17.295
c1.946,11.453,4.578,26.938,14.747,41.339c15.615,26.611,66.25,47.957,87.813,47.957c25.41,0,44.236-14.791,59.025-33.646
c4.824,0.293,9.532,0.452,14.062,0.452c0.002,0,0.006,0,0.01,0c2.153,0,4.278-0.027,6.375-0.086
c21.142-0.606,31.842-17.339,37.978-29.322c48.32-23.761,82.34-61.033,98.418-107.836
C385.871,210.853,381.899,155.315,358.26,107.159z"/>
<path fill="#231F20" d="M330.949,120.564C267.418-8.848,80.478,6.881,43.26,127.095c-55.014,177.678,96.467,241.83,188.619,239.18
c7.159-0.204,11.904-13.765,16.888-23.065c2.692-0.681,5.285-1.566,7.717-2.748C355.81,292.16,365.037,190.007,330.949,120.564z
M323.306,225.644c-33.135,126.631-146.877,95.798-153.946,97.033c-138.125-42.119-182.278-184.57-28.627-259.24
C240.836,14.79,350.581,121.426,323.306,225.644z"/>
<path fill="#231F20" d="M78.057,116.319c0,0,0.098-0.386,0.282-1.109c0.189-0.71,0.45-1.747,1.081-3.066
c0.595-1.325,1.42-2.834,2.627-4.465c1.185-1.64,2.757-3.333,4.686-4.97c3.85-3.271,9.242-6.058,15.307-7.587
c1.513-0.403,3.067-0.71,4.644-0.94c1.58-0.258,3.185-0.431,4.799-0.51c3.235-0.25,6.494-0.054,9.725,0.227
c3.22,0.365,6.384,0.958,9.436,1.753c1.512,0.419,3.025,0.817,4.463,1.358c1.457,0.492,2.882,0.998,4.236,1.604
c2.752,1.125,5.295,2.454,7.643,3.78c1.158,0.71,2.281,1.384,3.342,2.074c1.034,0.733,2.033,1.439,2.992,2.12
c1.858,1.444,3.509,2.817,4.889,4.136c1.403,1.284,2.521,2.544,3.441,3.553c0.915,1.023,1.551,1.929,2.012,2.497
c0.447,0.588,0.673,0.921,0.673,0.921s-1.598-0.285-4.207-0.915c-1.324-0.273-2.862-0.716-4.646-1.124
c-1.742-0.434-3.709-0.927-5.848-1.461c-4.242-1.046-9.083-2.205-14.185-3.251c-2.547-0.565-5.182-0.968-7.818-1.473
c-2.656-0.375-5.321-0.856-7.988-1.082c-2.66-0.303-5.321-0.511-7.915-0.601c-2.592-0.056-5.14-0.094-7.582,0.055
c-2.437,0.159-4.802,0.365-7.018,0.742c-2.202,0.393-4.32,0.826-6.228,1.433c-1.923,0.57-3.689,1.233-5.237,1.943
c-1.562,0.686-2.928,1.444-4.026,2.073c-0.566,0.333-1.071,0.63-1.511,0.889c-0.439,0.304-0.812,0.562-1.114,0.773
C78.389,116.103,78.057,116.319,78.057,116.319z"/>
<path fill="#231F20" d="M287.028,103.677c0,0-0.361-0.164-1.043-0.47c-0.332-0.16-0.739-0.359-1.217-0.595
c-0.478-0.187-1.021-0.403-1.629-0.647c-1.183-0.455-2.65-0.992-4.297-1.432c-1.638-0.466-3.486-0.847-5.474-1.122
c-1.978-0.303-4.138-0.407-6.371-0.46c-2.249-0.035-4.616,0.125-7.049,0.338c-2.439,0.23-4.954,0.66-7.507,1.113
c-2.545,0.481-5.146,1.097-7.729,1.8c-2.602,0.637-5.162,1.516-7.73,2.295c-2.523,0.903-5.066,1.705-7.494,2.649
c-4.885,1.816-9.49,3.703-13.52,5.384c-2.035,0.854-3.904,1.643-5.56,2.341c-1.701,0.672-3.151,1.346-4.421,1.819
c-2.481,1.022-4.016,1.551-4.016,1.551s0.17-0.365,0.522-1.016c0.374-0.63,0.864-1.623,1.604-2.776
c0.758-1.14,1.668-2.551,2.86-4.034c1.16-1.515,2.58-3.125,4.199-4.838c0.847-0.816,1.724-1.669,2.632-2.554
c0.941-0.844,1.95-1.682,2.982-2.558c2.119-1.671,4.432-3.373,6.974-4.906c1.252-0.807,2.58-1.527,3.946-2.235
c1.337-0.754,2.769-1.378,4.201-2.025c2.895-1.254,5.931-2.32,9.06-3.178c3.146-0.771,6.337-1.461,9.573-1.71
c1.604-0.168,3.218-0.243,4.814-0.229c1.596-0.014,3.18,0.051,4.736,0.216c6.229,0.581,11.982,2.513,16.287,5.157
c2.158,1.32,3.971,2.755,5.393,4.194c1.439,1.425,2.486,2.795,3.28,4.01c0.823,1.208,1.239,2.195,1.538,2.866
C286.874,103.308,287.028,103.677,287.028,103.677z"/>
<g>
<g>
<path d="M239.692,290.942c-5.336,6.43-10.916,12.652-16.469,18.897c-9.596,10.784-18.562,21.673-24.002,35.575
c-5.517,14.116-13.546,27.227-25.332,37.434c-9.469,8.211-20.563,12.253-32.34,7.313c-12.619-5.295-24.652-11.919-37.638-16.567
c-3.888-1.392-7.949-5.414-9.634-9.243c-4.009-9.109-8.737-18.688-9.36-28.323c-1.013-15.735-6.005-28.363-18.041-38.489
c-3.431-2.883-6.335-6.599-8.785-10.39c-6.215-9.596-6.106-20.307-0.212-26.857c6.097-6.775,16.962-7.541,27.442-2.386
c10.298,5.062,14.339,14.46,17.929,24.364c1.455,4.019,3.277,7.91,4.926,11.859c0.832-0.109,1.66-0.223,2.495-0.335
c1.729-5.731,3.893-11.37,5.113-17.201c4.134-19.825,7.412-39.846,12.01-59.562c5.104-21.915,18.181-26.901,37.135-14.512
c6.081-8.083,13.824-13.007,24.6-10.351c10.861,2.679,14.592,11.299,16.365,21.292c10.057-2.977,18.357-1.611,24.265,6.127
c8.508,11.149,4.174,21.935-2.979,32.65C249.168,258.837,253.676,274.078,239.692,290.942z M161.032,280.884
c6.56,2.896,8.581-1.529,10.836-6.389c8.407-18.135,17.166-36.105,25.539-54.258c4.629-10.039,1.713-18.89-6.855-22.399
c-8.96-3.675-18.396,0.148-21.989,10.404c-7.032,20.065-13.176,40.442-19.677,60.684c-0.692,2.166-1.311,4.353-1.96,6.525
c-0.851-0.263-1.695-0.522-2.542-0.791c1.308-4.607,2.552-9.236,3.934-13.827c3.711-12.369,7.551-24.702,11.171-37.098
c0.919-3.131,2.407-6.805,1.549-9.585c-1.379-4.472-3.572-10.361-7.123-12.021c-3.569-1.665-10.683-0.452-13.583,2.305
c-4.04,3.832-6.708,10.013-8.043,15.646c-5.712,24.133-10.591,48.469-16.139,72.646c-0.782,3.395-3.57,6.323-5.434,9.467
c-2.915-2.899-6.629-5.359-8.554-8.816c-2.808-5.029-4.204-10.831-6.43-16.21c-3.938-9.532-10.557-16.108-21.124-17.56
c-11.224-1.539-19.205,7.432-15.163,17.901c2.275,5.9,6.301,11.659,10.913,16.022c11.335,10.726,18.35,22.353,18.813,38.899
c0.286,10.032,4.87,20.692,10.099,29.549c3.109,5.271,11.079,7.847,17.131,11.138c4.694,2.555,10.329,3.589,14.637,6.603
c15.066,10.535,29.124,10.424,41.551-3.08c7.763-8.438,14.971-18.196,19.5-28.632c7.717-17.797,18.735-32.812,31.799-46.722
c4.153-4.427,8.217-8.974,11.963-13.748c2.311-2.942,4.461-6.22,5.765-9.697c2.42-6.454-0.347-14.456-5.748-17.387
c-6.335-3.448-12.19-1.584-16.366,3.538c-7.991,9.796-15.377,20.087-23.01,30.186c-1.346,1.774-2.643,3.59-3.904,5.305
C181.851,293.151,171.441,287.017,161.032,280.884z M219.938,217.924c-6.561-2.568-13.465-0.643-17.57,6.591
c-10.361,18.234-20.175,36.797-29.837,55.411c-0.729,1.408,1.093,5.989,2.346,6.263c6.214,1.35,11.215,13.365,16.599,6.795
c13.59-16.553,24.765-35.084,36.83-52.877c0.826-1.207,1.051-2.821,1.314-3.562C230.974,228.613,226.526,220.502,219.938,217.924z
"/>
<path fill="#FFFFFF" d="M192.589,299.481c-10.738-6.33-21.147-12.467-31.557-18.599c6.56,2.896,8.581-1.53,10.836-6.389
c8.407-18.136,17.166-36.104,25.539-54.257c4.629-10.04,1.713-18.892-6.855-22.4c-8.96-3.675-18.396,0.148-21.989,10.404
c-7.032,20.064-13.176,40.441-19.677,60.684c-0.692,2.166-1.311,4.352-1.96,6.525c-0.851-0.262-1.695-0.522-2.542-0.791
c1.308-4.607,2.552-9.236,3.934-13.827c3.711-12.369,7.551-24.702,11.171-37.099c0.919-3.131,2.407-6.803,1.549-9.584
c-1.379-4.472-3.572-10.361-7.123-12.021c-3.569-1.665-10.683-0.452-13.583,2.305c-4.04,3.832-6.708,10.013-8.043,15.646
c-5.712,24.133-10.591,48.469-16.139,72.646c-0.782,3.394-3.57,6.322-5.434,9.467c-2.915-2.9-6.629-5.36-8.554-8.817
c-2.808-5.028-4.204-10.831-6.43-16.21c-3.938-9.532-10.557-16.109-21.124-17.559c-11.224-1.539-19.205,7.431-15.163,17.9
c2.275,5.9,6.301,11.659,10.913,16.022c11.335,10.726,18.35,22.353,18.813,38.899c0.286,10.032,4.87,20.692,10.099,29.548
c3.109,5.271,11.079,7.848,17.131,11.139c4.694,2.555,10.329,3.589,14.637,6.603c15.066,10.535,29.124,10.424,41.551-3.08
c7.763-8.438,14.971-18.196,19.5-28.632c7.717-17.797,18.735-32.812,31.799-46.722c4.153-4.428,8.217-8.973,11.963-13.748
c2.311-2.941,4.461-6.221,5.765-9.697c2.42-6.453-0.347-14.457-5.748-17.387c-6.335-3.448-12.19-1.584-16.366,3.538
c-7.991,9.796-15.377,20.087-23.01,30.185C195.147,295.951,193.851,297.767,192.589,299.481z"/>
<path fill="#FFFFFF" d="M229.619,236.544c1.354-7.931-3.093-16.042-9.683-18.62c-6.56-2.568-13.465-0.643-17.569,6.591
c-10.361,18.234-20.175,36.797-29.837,55.411c-0.729,1.408,1.093,5.989,2.346,6.263c6.214,1.35,11.215,13.365,16.6,6.795
c13.588-16.553,24.764-35.084,36.828-52.877C229.131,238.899,229.354,237.284,229.619,236.544z"/>
<path d="M91.228,365.693c-15.424-20.092-5.426-47.884-26.494-65.604c-41.165-34.588,18.842-71.379,44.35-12.301
c7.229-22.468,5.515-95.252,37.838-95.252c17.28,0,9.786,6.56,26.485-1.942c5.525-2.609,11.168-3.165,16.92-1.664
c10.365,2.562,15.842,10.637,18.136,20.444c5.603-1.316,11.095-0.812,16.483,1.526c24.072,11.999,1.879,33.343,16.937,44.743
c18.105,13.694,4.091,33.385-7.212,46.301c-22.38,25.58-42.62,97.596-81.393,97.596
C139.123,399.541,97.626,380.263,91.228,365.693z M184.641,298.667c-24.317-14.329-23.609-8.719-15.798-25.581
c8.408-18.127,17.165-36.094,25.536-54.242c5.586-12.127-6.643-25.337-17.88-16.507c-16.056,12.612-21.667,58.025-27.345,77.295
c-28.057-6.123,27.994-62.957,3.351-74.48c-18.177-8.504-32.095,90.061-41.103,102.429c-8.8-6.755-32.177-63.882-48.154-40.589
c-8.726,12.727,19.61,34.041,24.147,43.466c9.595,19.931,1.838,45.89,25.738,57.305c46.05,21.997,56.762,12.236,81.92-33.33
c3.109-5.628,62.97-72.404,34.433-72.404C206.233,262.026,208.031,312.45,184.641,298.667z M226.173,236.481
c3.012-11.623-13.062-24.126-20.91-10.322c-10.262,18.068-19.978,36.436-29.544,54.876
C180.321,315.068,224.386,243.399,226.173,236.481C226.239,236.222,226.021,237.05,226.173,236.481z"/>
</g>
</g>
<path fill="#231F20" d="M143.944,188.777c2.941,11.502-9.445-15.486-21.914-17.12c-12.474-1.634-27.036,17.464-25.401,4.991
c1.636-12.47,14.003-33.443,26.473-31.809C135.575,146.473,140.83,176.588,143.944,188.777z"/>
<path fill="#231F20" d="M230.502,185.633c-1.262,11.802,13.406-13.254,25.519-16.656c12.107-3.402,22.979,9.992,19.576-2.116
c-3.402-12.11-18.619-28.999-30.729-25.599C232.755,144.667,231.843,173.125,230.502,185.633z"/>
</svg>

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="-85.106 -76.564 550 550" enable-background="new -85.106 -76.564 550 550"
xml:space="preserve">
<path fill="#FFFFFF" d="M224.294,395.615c-57.543,0-141.731-23.049-189.614-88C8.843,272.566-15.898,211.225,12.958,118.02
C34.814,47.429,103.249,0,183.252,0c75.036,0,139.491,40.048,172.422,107.126c23.552,47.974,27.503,103.292,10.843,151.778
c-16.017,46.621-49.908,83.742-98.035,107.405c-6.109,11.943-16.771,28.612-37.826,29.217c-2.09,0.06-4.205,0.089-6.353,0.089
C224.3,395.615,224.298,395.615,224.294,395.615z"/>
<path fill="#231F20" d="M328.469,120.482C265.187-8.426,78.979,7.245,41.908,126.984c-54.799,176.985,96.089,240.888,187.879,238.25
c7.13-0.208,11.856-13.715,16.815-22.98c2.685-0.681,5.271-1.562,7.691-2.739C353.231,291.409,362.425,189.649,328.469,120.482z
M320.854,225.148c-33.011,126.157-146.341,95.411-153.347,96.654C29.928,279.85-14.049,137.952,138.998,63.579
C238.711,15.12,348.022,121.34,320.854,225.148z"/>
<path fill="#231F20" d="M151.592,172.969c3.6,11.267-16.591,23.031-29.087,22.14c-12.5-0.891-19.564-18.912-18.673-31.413
c0.891-12.492,11.326-26.333,23.823-25.443C140.153,139.145,147.779,161.04,151.592,172.969z"/>
<path fill="#231F20" d="M276.548,166.215c-0.574,8.053-2.392,14.543-8.435,18.399c-3.753,2.392-11.371,8.688-16.037,8.357
c-22.448-1.601-22.573-22.14-21.642-35.188c0.93-13.054,11.562-22.93,23.741-22.06C266.354,136.59,277.478,153.164,276.548,166.215z
"/>
<path fill="#231F20" d="M89.101,115.895c0,0,0.197-0.349,0.567-0.991c0.371-0.63,0.902-1.554,1.858-2.652
c0.922-1.11,2.125-2.338,3.715-3.584c1.58-1.251,3.537-2.459,5.826-3.513c4.568-2.11,10.488-3.344,16.714-3.191
c1.56,0.021,3.133,0.137,4.706,0.34c1.593,0.178,3.174,0.438,4.741,0.8c3.171,0.621,6.25,1.681,9.268,2.811
c2.995,1.214,5.871,2.625,8.585,4.206c1.344,0.811,2.688,1.595,3.926,2.5c1.265,0.859,2.496,1.726,3.634,2.67
c2.342,1.814,4.422,3.771,6.322,5.67c0.921,0.991,1.82,1.936,2.652,2.888c0.797,0.974,1.562,1.921,2.302,2.833
c1.406,1.882,2.616,3.637,3.587,5.28c1.004,1.601,1.74,3.111,2.354,4.321c0.601,1.228,0.968,2.27,1.262,2.941
c0.271,0.681,0.395,1.06,0.395,1.06s-1.45-0.702-3.788-2.001c-1.199-0.622-2.554-1.456-4.157-2.323
c-1.555-0.881-3.312-1.879-5.222-2.965c-3.788-2.137-8.123-4.546-12.741-6.914c-2.29-1.22-4.715-2.317-7.107-3.504
c-2.446-1.068-4.87-2.241-7.377-3.173c-2.471-1-4.969-1.915-7.433-2.696c-2.471-0.746-4.904-1.461-7.288-1.98
c-2.379-0.494-4.706-0.926-6.931-1.157c-2.219-0.213-4.365-0.361-6.361-0.292c-1.997,0.035-3.869,0.192-5.549,0.464
c-1.68,0.243-3.188,0.604-4.416,0.917c-0.63,0.163-1.188,0.317-1.681,0.447c-0.504,0.171-0.931,0.323-1.277,0.438
C89.48,115.776,89.101,115.895,89.101,115.895z"/>
<path fill="#231F20" d="M291.419,114.264c0,0-0.387-0.088-1.109-0.26c-0.357-0.092-0.793-0.207-1.308-0.346
c-0.497-0.095-1.071-0.201-1.717-0.319c-1.243-0.222-2.776-0.471-4.47-0.583c-1.692-0.145-3.568-0.172-5.569-0.057
c-1.991,0.083-4.119,0.394-6.315,0.767c-2.201,0.394-4.486,0.998-6.83,1.672c-2.334,0.687-4.713,1.589-7.121,2.519
c-2.396,0.956-4.823,2.054-7.209,3.232c-2.427,1.118-4.763,2.465-7.125,3.714c-2.299,1.362-4.634,2.634-6.826,4.022
c-4.424,2.702-8.57,5.428-12.188,7.834c-1.834,1.231-3.504,2.353-4.989,3.347c-1.531,0.986-2.822,1.92-3.975,2.625
c-2.234,1.474-3.628,2.278-3.628,2.278s0.092-0.387,0.315-1.089c0.237-0.693,0.535-1.755,1.039-3.022
c0.519-1.255,1.146-2.812,2.027-4.486c0.85-1.708,1.93-3.551,3.182-5.528c0.672-0.965,1.371-1.965,2.09-3.001
c0.761-1.006,1.582-2.015,2.43-3.072c1.756-2.039,3.688-4.143,5.884-6.123c1.065-1.027,2.229-1.986,3.429-2.936
c1.161-0.995,2.448-1.877,3.723-2.782c2.593-1.776,5.355-3.397,8.257-4.833c2.924-1.352,5.913-2.639,9.028-3.495
c1.535-0.473,3.097-0.852,4.668-1.142c1.558-0.316,3.119-0.557,4.668-0.689c6.199-0.621,12.195,0.172,16.912,1.938
c2.359,0.876,4.401,1.936,6.066,3.072c1.676,1.119,2.967,2.255,3.973,3.297c1.032,1.021,1.629,1.906,2.051,2.507
C291.197,113.936,291.419,114.264,291.419,114.264z"/>
<g>
<path fill="#F0584F" d="M137.265,260.023c-0.214,0.277-0.289,0.375-0.944,0.487c-2,0.546-5.06,1.273-8.214,0.548
c-3.011-0.764-6.262-2.933-6.518-10.261c0.004-0.261,0.188-1.418,0.448-1.897c3.785-5.188,8.577-9.68,13.905-12.991
c5.318-3.339,11.03-5.7,16.795-7.341c14.016-3.836,28.189-3.574,41.648-1.168c6.216,1.156,12.345,2.695,18.272,4.839
c0,0,7.292,2.899,16.123,8.541c4.365,2.909,9.15,6.399,13.445,10.551c4.299,4.132,8.193,8.739,11.108,13.295
c5.088,7.638,6.694,13.492,7.101,16.863c0.399,3.399-0.256,4.462-1.424,3.962c-2.406-0.993-6.795-8.021-14.056-14.562
c0.51,0.928-7.581-7.56-18.289-13.011c-5.244-2.826-10.854-5.062-15.129-6.514c-4.294-1.425-7.239-2.116-7.239-2.116
c-4.326-1.43-8.76-2.557-13.23-3.333c-11.256-2.054-22.925-2.074-33.254,0.808C149.303,249.105,141.855,253.514,137.265,260.023z"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

195
images/smileys/smiley16.svg Normal file
View File

@@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="550px" height="550px" viewBox="-5.453 -43.611 550 550" enable-background="new -5.453 -43.611 550 550"
xml:space="preserve">
<g>
<path fill="#FFFFFF" d="M539.033,125.536l-0.236-4.41l-0.07-0.95c-0.131-1.541-0.314-2.885-0.518-4.241l-0.188-1.277
c-0.516-3.321-1.209-6.684-2.064-9.997l-0.129-0.496l-0.768-2.597c-0.354-1.174-0.729-2.387-1.395-4.135l-1.549-3.94l-1.932-3.909
c-3.496-6.919-8.115-12.93-13.732-17.877c-9.973-8.862-22.974-13.739-36.627-13.739c-2.852,0-5.726,0.216-8.545,0.648
c-3.854,0.557-7.061,1.471-9.771,2.292l-0.869,0.276c-2.961,0.989-6.03,2.248-8.682,3.552c-2.198,1.058-3.729,1.939-4.757,2.528
l-1.698,0.995c-1.532,0.943-3.079,1.917-4.312,2.783c-6.645,4.589-12.059,9.314-16.732,13.873c0.765-2.915,1.189-6.082,1.18-9.509
c0,0,3.064-25.032-19.373-40.036l-0.809-0.685c-3.489-2.853-7.258-5.47-11.118-7.73c-6.938-4.096-13.451-6.787-19.011-8.989
l-0.439-0.171c-10.908-4.129-22.677-7.447-35.963-10.146c-6.36-1.365-12.637-2.335-18.284-3.153
c-6.364-0.962-12.799-1.709-18.951-2.208c-6.258-0.547-12.414-1.056-18.598-1.272c-3.185-0.141-6.441-0.251-9.889-0.306
l-8.998-0.082c-12.519,0.027-25.199,0.658-37.425,1.854c-6.056,0.542-12.25,1.299-18.868,2.312
c-7.388,1.111-13.104,2.14-18.499,3.331c-13.461,2.837-25.344,6.344-36.33,10.723l-0.532,0.22
c-6.153,2.587-12.749,5.502-19.722,10.083c-4.866,3.171-9.073,6.618-13.026,10.702c-3.4,3.57-6.156,7.297-8.562,11.652
c-0.586,1.082-1.137,2.173-1.646,3.273l-0.785,1.716l-0.842,2.281c-0.215,0.623-0.418,1.245-0.607,1.852
c-2.35-1.719-4.838-3.432-7.479-5.097l-0.524-0.322c-5.702-3.435-12.827-7.294-22.453-9.854
c-5.214-1.389-10.601-2.096-16.007-2.096c-10.913,0-21.315,2.88-30.094,8.329c-6.69,4.103-12.474,9.527-17.18,16.128l-0.215,0.306
c-4.437,6.384-6.787,12.113-8.176,15.863L5.047,84.42c-1.356,3.889-2.428,7.832-3.23,11.883l-0.096,0.505
c-0.325,1.67-0.625,3.356-0.8,4.709l-0.067,0.451c-0.164,1.121-0.426,2.9-0.559,5.175c-1.37,15.543,2.08,32.108,9.647,46.524
c3.096,6.018,6.583,11.31,10.081,15.941c-1.955,5.952-2.864,12.126-2.626,18.279c0.072,8.515,2.378,15.849,4.146,20.711
l0.196,0.541l0.22,0.536c0.974,2.394,2.261,5.355,4.13,8.691l-0.132,0.324l0.895,0.999c0.68,1.153,1.429,2.347,2.258,3.573
l0.324,0.48c0.093,1.317,0.216,2.443,0.316,3.363l0.095,0.877l0.147,0.872c1.044,6.198,2.673,10.754,3.457,12.946l2.447,6.951
l0.568,1.243c1.43,3.129,2.987,5.588,3.916,7.054l0.929,1.484l0.703,0.954c2.904,3.938,5.987,7.368,9.173,10.196
c5.392,4.91,10.327,8.037,13.392,9.854c3.624,2.188,6.618,3.604,8.251,4.38l0.308,0.147c0.856,0.394,2.042,0.943,3.526,1.484
c3.047,1.42,5.963,2.733,8.698,3.911c7.197,53.384,35.26,97.829,82.045,129.46c40.046,27.074,93.856,43.232,143.942,43.232
c2.178,0,4.326-0.029,6.452-0.09c21.384-0.611,32.209-17.539,38.412-29.668c57.974-28.5,95.192-75.82,106.325-134.549
c0.164-0.078,0.865-0.402,0.865-0.402c1.965-0.874,3.977-1.775,6.506-3.021l0.656-0.332c2.99-1.558,6.542-3.512,10.356-6.227
c2.04-1.403,3.999-2.934,5.838-4.557c2.438-2.041,4.426-4.138,5.971-5.869c2.987-3.174,4.923-6.282,6.243-8.403l0.82-1.312
l0.449-0.812c1.752-3.202,2.785-6.058,3.471-7.944l0.271-0.738c0.826-1.969,1.6-4.137,1.752-4.582
c1.256-3.473,2.221-7.137,2.854-10.885l0.104-0.588l0.074-0.59c0.08-0.627,0.201-1.537,0.299-2.689l0.578-0.834
c1.902-2.817,3.434-5.396,4.672-7.875c1.57-3.027,2.562-5.539,3.443-7.859l0.248-0.689c1.389-3.934,2.402-7.892,3.018-11.769
l0.121-0.832c1.174-8.98,0.475-17.405-2.08-25.095c2.914-3.854,5.824-8.164,8.521-12.951
C535.574,156.998,539.641,140.858,539.033,125.536z"/>
<path fill="#FFFFFF" d="M141.465,173.221c-12.726-30.26-88.338-127.471-96.12-63.515c-3.461,28.454,27.828,49.004,38.39,61.538
c-4.454,0.877-8.777,0.52-12.25,2.743c-3.607,2.31-8.296,6.535-9.005,11.004c-0.667,4.252,2.356,11.406,5.266,14.609
c5.836,6.435,10.952,9.011,16.819,13.888c-17.979-0.603-11.878,10.877-10.771,16.927c1.359,7.403,10.639,13.932,15.574,16.881
c15.653,9.336,13.075,8.639,30.554,17.485"/>
<path fill="#FFFFFF" d="M405.626,189.893c12.727-30.259,80.426-129.783,88.207-65.827c3.456,28.453-27.83,49.005-38.39,61.537
c4.453,0.878,8.772,0.521,12.246,2.745c3.61,2.308,8.299,6.534,9.004,11.003c0.668,4.252-2.352,11.405-5.262,14.61
c-5.841,6.435-10.955,9.01-16.82,13.888c17.98-0.604,11.879,10.876,10.771,16.927c-1.358,7.404-10.64,13.931-15.575,16.879
c-15.648,9.339-12.34,9.67-29.82,18.514"/>
<g>
<path fill="#231F20" d="M83.363,222.282C84.658,222.767,84.334,222.643,83.363,222.282L83.363,222.282z"/>
<path fill="#231F20" d="M78.313,190.01L78.313,190.01C78.313,190.01,78.319,190.004,78.313,190.01L78.313,190.01z"/>
<path fill="#231F20" d="M480.94,180.494l1.819-1.797c0.713-0.685,1.424-1.467,2.137-2.197c5.678-5.93,11.354-12.578,15.965-20.774
c4.617-8.084,7.84-18.408,7.422-28.975l-0.219-3.934c-0.105-1.258-0.297-2.279-0.449-3.426c-0.354-2.261-0.83-4.603-1.455-7.019
l-0.551-1.866c-0.182-0.601-0.355-1.208-0.699-2.106l-0.959-2.435l-1.23-2.498c-1.682-3.324-3.93-6.318-6.66-8.707
c-5.439-4.865-13.014-6.847-20.26-5.702c-1.827,0.252-3.612,0.773-5.396,1.311c-1.761,0.589-3.584,1.346-4.961,2.035
c-1.629,0.775-2.479,1.311-3.67,1.981c-1.056,0.648-2.131,1.306-3.092,1.979c-7.827,5.404-13.641,11.286-19.223,17.276
c-5.512,6.008-10.504,12.19-15.254,18.496c-7.045,9.449-13.543,19.055-19.598,29.15c-64.121-93.689-201.778-89.608-259.128-10.669
c-7.57-12.313-15.86-23.551-24.938-34.497c-5.218-6.212-10.697-12.262-16.674-18.083c-6.015-5.81-12.401-11.437-20.393-16.473
c-4.093-2.468-8.512-4.884-14.492-6.474c-7.172-1.912-15.563-1.356-22.019,2.69c-3.252,1.977-6.047,4.674-8.28,7.802
c-2.3,3.306-3.625,6.384-4.571,8.951c-0.915,2.621-1.593,5.157-2.067,7.562c-0.232,1.199-0.48,2.418-0.631,3.57
c-0.16,1.181-0.364,2.254-0.416,3.679c-1.079,10.797,1.809,21.663,6.312,30.244c4.489,8.727,10.314,15.631,16.114,21.78
l4.731,4.806l-1.184,1.09c-5.405,5.259-9.281,12.361-8.798,19.899c-0.068,3.688,1.062,7.528,2.292,10.913
c1.126,2.771,2.286,5.205,4.144,7.955c-0.043-0.105,1.016,1.628,3.717,4.214c2.131,1.956,1.447,1.013,1.925,1.202
c0.29,0.006,0.76,0.065,1.448,0.297l0.472,0.168c0.002,0.012-0.009,0.012-0.034,0.033c-0.051,0.039-0.172,0.106-0.297,0.313
c-0.042,0.062-0.072,0.142-0.098,0.24c-0.026,0.065,0.03-0.046-0.065,0.166l-0.235,0.535l-0.24,0.535
c-0.042,0.117-0.065,0.117-0.129,0.328l-0.194,0.669c-1.155,3.886-0.798,6.634-0.537,9.024c0.74,4.398,2.038,7.422,2.415,8.628
c0.569,1.623,1.135,3.229,1.694,4.811c0.677,1.479,1.548,2.773,2.333,4.029c1.649,2.24,3.342,4.142,4.964,5.561
c3.257,2.99,6.229,4.917,8.723,6.396c2.491,1.502,4.572,2.463,5.593,2.951c1.136,0.526,1.651,0.715,1.388,0.48
c3.649,1.73,7.173,3.333,10.46,4.744c3.21,1.468,6.629,2.445,9.41,3.347c2.726,0.827,5.091,1.422,7.029,1.761
c3.29,121.516,124.154,167.086,202.566,164.834c7.239-0.207,12.039-13.924,17.077-23.336c2.728-0.689,5.354-1.588,7.812-2.781
c60.36-29.348,87.793-78.359,92.63-128.043c0.342-0.15,0.657-0.26,1.01-0.429c1.061-0.479,2.18-0.983,3.36-1.521
c1.081-0.547,2.22-1.12,3.416-1.725c2.365-1.299,5.021-2.397,7.844-3.771c1.915-0.855,3.798-1.678,6.267-2.891
c2.307-1.203,4.637-2.494,6.942-4.162c1.161-0.782,2.314-1.674,3.455-2.707c1.152-0.92,2.278-2.12,3.384-3.377
c1.131-1.123,2.131-2.834,3.143-4.439c0.924-1.688,1.484-3.682,2.244-5.55c0.248-0.563,0.787-1.933,1.296-3.384
c0.524-1.454,1.081-3.385,1.453-5.579c0.307-2.353,0.482-5.279-0.604-8.847c-0.201-0.641-0.3-0.773-0.452-1.181l-0.202-0.484
l-0.02-0.086c-0.016-0.118-0.046-0.208-0.079-0.283c-0.124-0.246-0.229-0.331-0.253-0.375c0-0.057-0.132-0.002,0.441-0.191
c0.791-0.253,1.307-0.325,1.644-0.341c0.336-0.015,0.513,0.042,0.623,0.103l0.069,0.039c-0.025,0.038,0.041-0.01,0.16-0.118
c0.095-0.078,0.18-0.149,0.254-0.216c0.3-0.255,0.457-0.392,0.457-0.392l0.592-0.58l0.295-0.292l0.149-0.145l0.072-0.072
l0.603-0.628l0.069-0.078c0.71-0.845,1.405-1.714,2.068-2.6c1.051-1.554,2.026-3.132,2.75-4.613
c0.838-1.59,1.35-2.853,2.099-4.824c0.732-2.079,1.306-4.204,1.647-6.362c0.561-4.293,0.414-8.722-1.274-12.736
c-1.484-4.055-4.171-7.655-7.315-10.736c-0.369-0.298-0.714-0.617-1.061-0.932l-0.041-0.034l-0.014-0.011l-0.037-0.015
c-0.022-0.003-0.053-0.003-0.018-0.028l0.06-0.05C480.932,180.498,480.969,180.465,480.94,180.494z M78.156,220.341l-0.036-0.018
l-0.005-0.003c-0.156-0.057-0.054-0.021,0.189,0.072c-0.024-0.013-0.047-0.01-0.073-0.021L78.156,220.341z M114.3,258.09
c-3.82-3.406-9.614-7.898-17.837-14.574c-3.605-2.918-6.6-5.37-9.146-8.367c-0.652-0.719-1.223-1.439-1.683-2.158
c-0.574-0.712-0.892-1.401-1.217-2.036c-0.457-0.665-0.375-1.186-0.568-1.609c-0.084-0.442,0.057-0.802-0.021-1.132
c-0.241-1.566-0.479-3.126-0.716-4.668c-0.087-0.568-0.117-1.022-0.126-1.403c0.133,0.05,0.258,0.096,0.376,0.141
c-0.079-0.029-0.129-0.047-0.223-0.083l0.068,0.019l0.136,0.039l1.088,0.318l2.179,0.638l4.37,1.28
c1.445,0.387,2.955,0.946,4.354,1.196l3.923-0.054c6.001-0.062,11.95-0.124,17.84-0.18c-2.84-2.417-3.513-3.122-4.974-4.438
l-1.905-1.747l-0.817-0.875l-0.83-0.875c-0.24-0.261-0.669-0.673-0.653-0.724l-0.479-0.76l-0.254-0.383
c-0.055-0.1,0.018-0.095,0.018-0.149l0.086-0.245c0.62,0.25-1.316-1.3-2.463-2.298c-5.179-4.373-9.792-8.268-13.643-11.521
c-4.147-3.383-7.603-6.155-9.691-8.283c-2.548-2.329-2.406-2.413-2.565-2.537l-0.616-0.61c0,0,0,0-0.002,0.004l0,0
c0,0,0,0,0.002-0.004l-0.009-0.006c-0.102-0.196-0.261-0.441-0.429-0.749c0.045-0.072,0.059-0.093-0.003-0.003
c-0.054-0.098-0.105-0.181-0.163-0.303c-0.238-0.35-0.489-1.152-0.584-1.274l-0.002-0.025c0-0.03,0.025-0.054,0.046-0.066
c0.012-0.045,0.044-0.072,0.075-0.095c-0.045,0.008,0.269-0.163,0.457-0.271l0.631-0.354c0.458-0.22,0.763-0.524,1.341-0.671
l2.031-0.258c2.614-0.283,5.631-0.841,8.652-1.347l17.191-2.895l3.424-0.574c0.209-0.062,0.726-0.06,0.685-0.18l-0.388-0.433
l-0.775-0.866l-2.626-2.936l-6.919-7.676l-7.125-7.892c-2.561-2.654-5.119-5.357-7.896-8.011l-7.985-7.667
c-1.31-1.267-2.533-2.533-3.727-3.794c-4.785-5.038-8.905-10.174-11.448-15.232c-2.584-5.083-3.646-9.773-3.228-14.402
c0.187-2.682,0.869-5.885,1.561-7.809c0.408-1.04,0.665-1.521,0.58-1.376l0.018-0.012c0.073,0.012-0.108-0.048,0.168,0.045
c1.506,0.366,4.028,1.539,6.507,3.08c5.09,3.188,10.437,7.729,15.487,12.655c5.076,4.947,9.974,10.345,14.676,15.951
c9.599,11.523,18.716,24.108,25.882,36.678c0.403,0.463,1.674,1.091,1.99,1.205c2.029,0.7,3.858,1.172,5.554,1.481
c-2.218,4.938-4.183,10.073-5.838,15.422C118.346,214.467,114.656,237.331,114.3,258.09z M409.399,289.041
c-33.523,128.116-148.614,96.894-155.726,98.155C113.955,344.59,69.294,200.49,224.718,124.963
C325.979,75.75,436.99,183.62,409.399,289.041z M454.42,243.069c-0.057,0.249-0.209,0.535-0.281,0.893
c-0.411,0.766-0.88,1.68-1.674,2.59c-1.412,1.828-3.264,3.543-4.844,4.862c-1.562,1.356-2.863,2.271-4.012,3.204
c-1.031,0.822-1.447,1.216-1.109,1.073c-2.6,2.04-5.088,4.016-7.274,5.991c0.037-7.172-0.351-14.314-1.187-21.375
c1.932,0.021,3.852,0.039,5.783,0.06l2.116,0.03c0.698,0.037,1.398,0.058,2.222-0.273l4.732-1.406l4.71-1.399l1.172-0.347
l0.587-0.174l0.078-0.024c-0.152,1.178-0.523,2.942-0.998,5.624C454.397,242.602,454.361,242.805,454.42,243.069z
M461.054,234.686l-0.039,0.015l-0.312,0.127c-0.026,0.009-0.051,0.006-0.078,0.015l0.439-0.162L461.054,234.686z
M475.811,141.814c-2.771,4.941-6.844,9.927-11.566,14.841c-0.603,0.613-1.151,1.229-1.793,1.849l-2.209,2.166l-8.19,7.838
c-2.549,2.603-5.267,5.253-7.583,7.833l-6.971,7.719l-6.646,7.36l-2.675,2.967l-0.77,0.851c-0.026,0.059-0.209,0.162-0.109,0.191
l0.414,0.069l0.829,0.143l3.403,0.571l16.945,2.852c2.939,0.49,5.91,1.031,8.467,1.304l1.993,0.256
c0.622,0.104,0.884,0.429,1.343,0.633l1.155,0.658l0.106,0.084l-1.115,2.198c0.02-0.046-0.062,0.179-0.034,0.132l0.017,0.008
c0.025,0.025,0.062,0.051,0.088,0.075c-0.641,0.695-0.955,1.179-3.135,3.145c-0.929,0.862-1.923,1.785-2.973,2.758
c-1.121,0.904-2.302,1.858-3.54,2.855c-5.076,4.052-10.155,8.341-16.008,13.188c-0.718,0.599-1.442,1.204-2.175,1.809
l-0.812,0.677c-2.544-13.797-6.642-27.15-12.116-39.591c0.399-0.184,0.785-0.37,1.146-0.559c0.997-0.426,1.104-0.631,1.416-1.196
c6.942-13.023,15.428-26.049,24.442-38.113c4.305-5.719,8.787-11.255,13.453-16.343c4.625-5.032,9.596-9.819,14.193-12.945
l3.168-1.894l0.072,0.201l0.428,1.411c0.306,1.228,0.595,2.572,0.823,4.027c0.084,0.715,0.246,1.551,0.277,2.167l0.06,1.698
C479.787,132.197,478.609,136.852,475.811,141.814z"/>
</g>
<path fill="#231F20" d="M237.51,236.051c3.655,11.44-16.852,23.388-29.541,22.483c-12.694-0.905-19.866-19.206-18.963-31.901
c0.907-12.686,11.505-26.742,24.194-25.837C225.891,201.7,233.637,223.936,237.51,236.051z"/>
<path fill="#231F20" d="M364.402,229.192c-0.58,8.178-2.423,14.77-8.565,18.685c-3.808,2.431-11.546,8.825-16.284,8.488
c-22.8-1.626-22.92-22.483-21.977-35.735c0.944-13.257,11.739-23.287,24.11-22.403
C354.056,199.108,365.349,215.937,364.402,229.192z"/>
<path fill="#231F20" d="M177.205,193.782c0,0-0.007-0.347-0.016-0.987c0-0.634-0.009-1.554,0.216-2.794
c0.199-1.233,0.557-2.677,1.191-4.305c0.625-1.626,1.551-3.386,2.792-5.184c2.475-3.58,6.341-7.105,11.046-9.729
c1.168-0.671,2.391-1.278,3.654-1.818c1.262-0.568,2.554-1.07,3.882-1.494c2.633-0.931,5.393-1.496,8.137-1.982
c2.765-0.416,5.526-0.628,8.247-0.65c1.357,0.015,2.701,0.007,4.021,0.136c1.322,0.081,2.621,0.187,3.879,0.391
c2.549,0.318,4.959,0.86,7.21,1.439c1.119,0.333,2.204,0.64,3.243,0.982c1.023,0.372,2.005,0.742,2.963,1.098
c1.872,0.781,3.549,1.556,4.995,2.352c1.451,0.749,2.663,1.551,3.651,2.18c0.986,0.652,1.72,1.268,2.237,1.637
c0.503,0.387,0.763,0.617,0.763,0.617s-1.391,0.111-3.702,0.176c-1.169,0.064-2.545,0.04-4.121,0.1
c-1.546,0.024-3.295,0.057-5.194,0.091c-3.76,0.075-8.048,0.188-12.529,0.455c-2.243,0.1-4.533,0.352-6.838,0.521
c-2.287,0.282-4.61,0.474-6.889,0.882c-2.28,0.346-4.543,0.764-6.72,1.266c-2.173,0.532-4.298,1.067-6.302,1.734
c-1.986,0.68-3.908,1.379-5.668,2.188c-1.747,0.817-3.412,1.653-4.869,2.58c-1.47,0.907-2.794,1.847-3.925,2.789
c-1.145,0.922-2.106,1.854-2.884,2.626c-0.397,0.399-0.746,0.761-1.056,1.076c-0.303,0.349-0.551,0.649-0.758,0.887
C177.436,193.526,177.205,193.782,177.205,193.782z"/>
<path fill="#231F20" d="M371.652,176.605c0,0-0.3-0.188-0.852-0.535c-0.277-0.177-0.613-0.401-1.001-0.665
c-0.392-0.222-0.843-0.474-1.345-0.76c-0.978-0.538-2.193-1.189-3.575-1.76c-1.375-0.607-2.943-1.17-4.646-1.642
c-1.697-0.503-3.563-0.851-5.518-1.17c-1.951-0.297-4.039-0.439-6.191-0.546c-2.155-0.093-4.397-0.015-6.686,0.071
c-2.282,0.118-4.623,0.342-6.962,0.643c-2.349,0.25-4.696,0.708-7.027,1.077c-2.313,0.484-4.634,0.881-6.864,1.418
c-4.479,0.998-8.73,2.094-12.448,3.078c-1.892,0.507-3.611,0.97-5.14,1.376c-1.568,0.385-2.912,0.8-4.081,1.064
c-2.285,0.592-3.683,0.869-3.683,0.869s0.185-0.3,0.577-0.821c0.393-0.51,0.945-1.316,1.729-2.229
c0.795-0.906,1.76-2.033,2.979-3.183c1.204-1.188,2.63-2.42,4.246-3.725c0.845-0.613,1.706-1.251,2.608-1.912
c0.92-0.628,1.909-1.236,2.915-1.878c2.05-1.206,4.271-2.42,6.673-3.444c1.187-0.56,2.438-1.031,3.711-1.476
c1.261-0.509,2.588-0.881,3.917-1.272c2.675-0.742,5.46-1.317,8.292-1.689c2.84-0.294,5.708-0.517,8.565-0.342
c1.425,0.042,2.838,0.168,4.23,0.375c1.395,0.178,2.774,0.424,4.107,0.754c5.368,1.256,10.17,3.633,13.609,6.461
c1.727,1.408,3.135,2.876,4.208,4.308c1.08,1.412,1.837,2.732,2.377,3.892c0.578,1.15,0.818,2.062,1.006,2.688
C371.568,176.265,371.652,176.605,371.652,176.605z"/>
<g>
<g>
<path fill="#FAAF40" d="M195.908,96.297c0,0-1.457,0.177-4.168,0.378c-2.69,0.156-6.748,0.466-11.86,0.394
c-5.137-0.076-11.367-0.376-18.733-1.684c-3.714-0.718-7.641-1.677-12.136-3.6c-1.13-0.534-2.272-0.992-3.5-1.815
c-0.61-0.388-1.202-0.73-1.83-1.187l-1.936-1.611c-0.623-0.478-1.323-1.334-1.972-2.119l-0.959-1.229
c-0.312-0.445-0.62-1.058-0.907-1.605c-0.568-1.154-1.134-2.221-1.416-3.736c-0.16-0.715-0.292-1.446-0.388-2.179l-0.067-0.55
c0.021-0.628-0.093,1.016,0.043-1.479v-0.098l-0.012-0.4l-0.019-0.803c0.093-0.767,0.3-1.803,0.55-2.692
c0.126-0.46,0.27-0.92,0.427-1.368l0.249-0.67l0.196-0.43c0.261-0.559,0.54-1.114,0.837-1.665
c1.181-2.133,2.517-3.742,3.783-5.071c2.559-2.647,5.099-4.553,7.539-6.142c4.936-3.243,9.837-5.393,14.854-7.502
c10.032-4,20.517-6.936,31.417-9.226c5.433-1.204,10.981-2.137,16.593-2.982c5.604-0.857,11.285-1.578,17.018-2.089
c11.461-1.121,23.113-1.71,34.756-1.734l8.648,0.082c2.959,0.044,5.914,0.147,8.798,0.277c5.802,0.204,11.576,0.685,17.31,1.184
c5.729,0.465,11.411,1.134,17.018,1.981c5.609,0.811,11.152,1.673,16.589,2.849c10.892,2.203,21.369,5.019,31.365,8.803
c4.992,1.978,9.865,4.027,14.705,6.883c2.395,1.403,4.849,3.065,7.281,5.055c2.407,2.11,5.174,4.572,7.301,9.098
c0.52,1.004,0.933,2.524,1.243,3.778c0.167,0.64,0.214,1.433,0.275,2.146l0.053,1.091l0.009,0.541l-0.002,0.267
c0.023-0.18-0.189,2.699-0.111,1.518l-0.459,1.614c-0.432,1.583-1.072,3.168-1.854,4.568c-1.236,1.83-2.551,3.324-3.784,4.295
c-1.282,1.189-2.448,1.788-3.643,2.549c-4.66,2.572-8.604,3.6-12.351,4.448c-7.425,1.613-13.651,1.947-18.804,2.091
c-5.13,0.132-9.152-0.147-11.871-0.276c-2.727-0.18-4.179-0.349-4.179-0.349s1.327-0.652,3.802-1.743
c2.485-1.052,6.073-2.801,10.562-4.859c4.43-2.146,9.867-4.725,15.24-8.142c2.611-1.692,5.45-3.604,7.026-5.587
c0.746-0.905,1.146-1.929,0.677-1.675c-0.391,0.466-0.646,1.11-0.682,1.75l-0.014-1.437c0.078-1.247-0.108,1.569-0.1,1.323
l-0.023,0.078l-0.035,0.154c-0.022,0.105-0.036,0.213-0.038,0.319c-0.031,0.201,0.056,0.454,0.022,0.606
c-0.094,0.292,0.149,0.74,0.067,0.863c0.106,0.796-0.429,0.286-1.595-0.136c-1.209-0.465-2.674-1.013-4.43-1.487
c-3.428-0.995-7.535-1.903-11.854-2.579c-8.663-1.466-18.321-2.383-28.354-3.125c-5.026-0.306-10.159-0.682-15.375-0.911
c-5.229-0.198-10.522-0.396-15.859-0.598c-5.345-0.187-10.745-0.195-16.166-0.297c-5.431-0.027-10.877-0.054-16.327-0.081
c-10.905,0.023-21.793,0.171-32.48,0.502c-5.333,0.225-10.619,0.447-15.843,0.669c-5.184,0.339-10.309,0.676-15.346,1.007
c-9.998,0.823-19.617,1.839-28.143,3.423c-4.231,0.742-8.259,1.752-11.385,2.781c-1.614,0.492-2.846,1.07-3.574,1.337
c-0.372,0.126-0.514,0.159-0.472-0.147c0.021-0.088,0.03-0.181,0.018-0.276c0.003-0.027-0.012-0.036-0.002-0.082l0.114-0.292
c0.069-0.198,0.124-0.403,0.163-0.613c0.075-0.385,0.087-0.923,0.031-1.181l-0.206,0.775l-0.101,0.388l-0.026,0.096
c0.137-2.431,0.039-0.722,0.068-1.283l-0.013-0.16c-0.023-0.212-0.081-0.426-0.167-0.625c-0.253-0.445-0.278-0.592-0.461-0.791
c-0.068-0.078-0.225-0.186-0.267-0.198c-0.011,0-0.036,0.009-0.066,0.024c-0.036,0.036-0.222,0.069-0.068,0.256
c0.076,0.156,0.141,0.328,0.205,0.517c0.119,0.202,0.345,0.427,0.512,0.652c0.294,0.451,0.853,0.956,1.352,1.449
c2.133,2.02,5.028,3.787,7.742,5.463c5.608,3.24,11.045,5.756,15.525,7.842C190.655,93.958,195.908,96.297,195.908,96.297z"/>
</g>
</g>
<g>
<path fill="#EC1C24" d="M204.868,308.284c-0.392-0.459-0.553-0.609-0.667-1.566c-0.271-1.586-0.457-3.256-0.048-5.01
c0.379-1.711,1.16-3.199,2.385-4.21c1.269-1.024,2.886-1.59,4.942-1.761c2.064-0.184,4.307-0.043,7.096,0.138
c0.195,0.022,0.971,0.181,1.279,0.358c2.468,2.891,6.031,5.674,9.991,8.01c3.979,2.35,8.367,4.32,12.936,5.926
c3.737,1.371,7.657,2.336,11.577,3.221c3.952,0.742,7.938,1.396,11.942,1.611c5.417,0.383,10.839,0.277,16.143-0.342
c0,0,0.416-0.023,1.171-0.068c0.756-0.068,1.884-0.062,3.248-0.232c2.741-0.303,6.636-0.729,10.961-1.832
c8.754-1.893,19.148-6.789,26.782-12.785c1.658-1.225,3.017-2.516,4.301-3.667c0.646-0.574,1.266-1.124,1.855-1.644
c0.548-0.557,1.07-1.08,1.569-1.58c0.998-0.993,1.944-1.848,2.757-2.617c0.766-0.807,1.458-1.48,2.082-2.037
c2.504-2.221,3.81-2.547,4.205-1.307c0.35,1.215-0.133,4.062-1.603,7.822c-1.554,3.7-4.027,8.41-7.785,12.912
c0.494-0.373-1.416,2.195-5.182,5.785c-3.779,3.549-9.528,8.029-16.079,11.447c-1.649,0.805-3.298,1.666-4.964,2.414
c-1.695,0.688-3.367,1.369-4.982,2.027c-1.662,0.547-3.271,1.08-4.797,1.588c-1.535,0.492-3.022,0.816-4.385,1.188
c-5.474,1.346-9.245,1.824-9.245,1.824c-5.702,0.592-11.421,0.523-17.095,0.172c-4.89-0.293-9.735-1.055-14.548-1.965
c-4.785-1.049-9.55-2.23-14.206-3.908c-5.661-1.99-11.208-4.451-16.557-7.607C214.616,317.407,209.424,313.583,204.868,308.284z"
/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

Some files were not shown because too many files have changed in this diff Show More