From 5ec84653740710972aa0a6bcc62679e1e0dbfa08 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 23 Dec 2016 14:38:36 -0800 Subject: [PATCH] Remove dead Mac stuff. --- .../bin/ZeroTier One.app/Contents/Info.plist | 59 - .../Contents/MacOS/ZeroTier One | Bin 152736 -> 0 bytes .../bin/ZeroTier One.app/Contents/PkgInfo | 1 - .../Contents/Resources/ZeroTierIcon.icns | Bin 125598 -> 0 bytes .../Contents/Resources/en.lproj/Credits.rtf | 13 - .../Resources/en.lproj/InfoPlist.strings | Bin 92 -> 0 bytes .../Contents/Resources/en.lproj/MainMenu.nib | Bin 25269 -> 0 bytes .../Contents/Resources/en.lproj/Window.nib | Bin 3616 -> 0 bytes .../Contents/_CodeSignature/CodeResources | 187 - .../mac/mac-ui-macgap1-wrapper/src/LICENSE | 25 - .../src/MacGap.xcodeproj/project.pbxproj | 489 --- .../contents.xcworkspacedata | 7 - .../xcshareddata/MacGap.xccheckout | 41 - .../UserInterfaceState.xcuserstate | Bin 46675 -> 0 bytes .../WorkspaceSettings.xcsettings | 10 - .../UserInterfaceState.xcuserstate | Bin 27811 -> 0 bytes .../WorkspaceSettings.xcsettings | 10 - .../src/MacGap/AppDelegate.h | 18 - .../src/MacGap/AppDelegate.m | 159 - .../src/MacGap/Classes/CallbackDelegate.h | 20 - .../src/MacGap/Classes/CallbackDelegate.m | 168 - .../src/MacGap/Classes/Commands/App.h | 21 - .../src/MacGap/Classes/Commands/App.m | 128 - .../src/MacGap/Classes/Commands/Command.h | 18 - .../src/MacGap/Classes/Commands/Command.m | 28 - .../src/MacGap/Classes/Commands/Dock.h | 11 - .../src/MacGap/Classes/Commands/Dock.m | 31 - .../MacGap/Classes/Commands/MenuItemProxy.h | 31 - .../MacGap/Classes/Commands/MenuItemProxy.m | 150 - .../src/MacGap/Classes/Commands/MenuProxy.h | 31 - .../src/MacGap/Classes/Commands/MenuProxy.m | 233 -- .../src/MacGap/Classes/Commands/Notice.h | 26 - .../src/MacGap/Classes/Commands/Notice.m | 108 - .../src/MacGap/Classes/Commands/Path.h | 21 - .../src/MacGap/Classes/Commands/Path.m | 53 - .../src/MacGap/Classes/Commands/Sound.h | 17 - .../src/MacGap/Classes/Commands/Sound.m | 97 - .../MacGap/Classes/Commands/UserDefaults.h | 43 - .../MacGap/Classes/Commands/UserDefaults.m | 211 - .../src/MacGap/Classes/Commands/fonts.h | 9 - .../src/MacGap/Classes/Commands/fonts.m | 48 - .../src/MacGap/Classes/Constants.h | 7 - .../src/MacGap/Classes/ContentView.h | 15 - .../src/MacGap/Classes/ContentView.m | 68 - .../src/MacGap/Classes/JSEventHelper.h | 20 - .../src/MacGap/Classes/JSEventHelper.m | 41 - .../src/MacGap/Classes/Utils.h | 20 - .../src/MacGap/Classes/Utils.m | 93 - .../src/MacGap/Classes/WebViewDelegate.h | 49 - .../src/MacGap/Classes/WebViewDelegate.m | 206 - .../src/MacGap/Classes/Window.h | 23 - .../src/MacGap/Classes/Window.m | 94 - .../src/MacGap/Clipboard.h | 10 - .../src/MacGap/Clipboard.m | 51 - .../src/MacGap/MacGap-Info.plist | 39 - .../src/MacGap/MacGap-Prefix.pch | 15 - .../src/MacGap/WindowController.h | 13 - .../src/MacGap/WindowController.m | 54 - .../src/MacGap/en.lproj/Credits.rtf | 13 - .../src/MacGap/en.lproj/InfoPlist.strings | 2 - .../src/MacGap/en.lproj/MainMenu.xib | 3404 ----------------- .../src/MacGap/en.lproj/Window.xib | 44 - .../mac-ui-macgap1-wrapper/src/MacGap/main.m | 14 - .../mac/mac-ui-macgap1-wrapper/src/README.md | 6 - ext/installfiles/mac/postinst.sh | 2 +- ext/installfiles/mac/ui/Makefile | 6 - ext/installfiles/mac/ui/README.md | 10 - ext/installfiles/mac/ui/ZeroTierNetwork.jsx | 74 - ext/installfiles/mac/ui/ZeroTierNode.jsx | 158 - ext/installfiles/mac/ui/index.html | 58 - ext/installfiles/mac/ui/main.js | 51 - ext/installfiles/mac/ui/react.min.js | 15 - ext/installfiles/mac/ui/simpleajax.min.js | 2 - ext/installfiles/mac/ui/zerotier.css | 199 - ext/installfiles/mac/ui/ztui.min.js | 1 - 75 files changed, 1 insertion(+), 7398 deletions(-) delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Info.plist delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/MacOS/ZeroTier One delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/PkgInfo delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/ZeroTierIcon.icns delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/Credits.rtf delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/InfoPlist.strings delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/MainMenu.nib delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/Window.nib delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/_CodeSignature/CodeResources delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/LICENSE delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.pbxproj delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcshareddata/MacGap.xccheckout delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/Alex.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/api.xcuserdatad/WorkspaceSettings.xcsettings delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/liamks.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/liamks.xcuserdatad/WorkspaceSettings.xcsettings delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.m delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.h delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.m delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.h delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.m delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.h delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.m delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.h delete mode 100755 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Constants.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Info.plist delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Prefix.pch delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.h delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Credits.rtf delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/InfoPlist.strings delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Window.xib delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/main.m delete mode 100644 ext/installfiles/mac/mac-ui-macgap1-wrapper/src/README.md delete mode 100644 ext/installfiles/mac/ui/Makefile delete mode 100644 ext/installfiles/mac/ui/README.md delete mode 100644 ext/installfiles/mac/ui/ZeroTierNetwork.jsx delete mode 100644 ext/installfiles/mac/ui/ZeroTierNode.jsx delete mode 100644 ext/installfiles/mac/ui/index.html delete mode 100644 ext/installfiles/mac/ui/main.js delete mode 100644 ext/installfiles/mac/ui/react.min.js delete mode 100644 ext/installfiles/mac/ui/simpleajax.min.js delete mode 100644 ext/installfiles/mac/ui/zerotier.css delete mode 100644 ext/installfiles/mac/ui/ztui.min.js diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Info.plist b/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Info.plist deleted file mode 100644 index c67923c7d..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Info.plist +++ /dev/null @@ -1,59 +0,0 @@ - - - - - BuildMachineOSBuild - 15B42 - CFBundleDevelopmentRegion - en - CFBundleExecutable - ZeroTier One - CFBundleIconFile - ZeroTierIcon - CFBundleIdentifier - com.zerotier.ZeroTier-One - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ZeroTier One - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleSupportedPlatforms - - MacOSX - - CFBundleVersion - 1 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 7B1005 - DTPlatformVersion - GM - DTSDKBuild - 15A278 - DTSDKName - macosx10.11 - DTXcode - 0711 - DTXcodeBuild - 7B1005 - LSApplicationCategoryType - public.app-category.utilities - LSMinimumSystemVersion - 10.7 - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/MacOS/ZeroTier One b/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/MacOS/ZeroTier One deleted file mode 100755 index 8e38b861af65b371afeb86780235a6ab74bc69c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152736 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 z 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 diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/Credits.rtf b/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/Credits.rtf deleted file mode 100644 index 6f388f662..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/Credits.rtf +++ /dev/null @@ -1,13 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1347\cocoasubrtf570 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\vieww9600\viewh8400\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0\b\fs24 \cf0 (c)2011-2015 ZeroTier, Inc.\ -Licensed under the GNU GPLv3\ -\ -UI Wrapper MacGap (c) Twitter, Inc.\ -Licensed under the MIT License\ -http://macgap.com/\ -} \ No newline at end of file diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/InfoPlist.strings b/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/InfoPlist.strings deleted file mode 100644 index 5e45963c382ba690b781b953a00585212b898ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmW-XQ3`+{5C!MkQ~2$No+IcIkqMDxWCV8j>LCj|yTg2Mz+o9F%uHlf9u}h9EuK`F a!Y*1dX%G66ZqL#C$|bw0ZoP5@jOGW1ArT7z diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/MainMenu.nib b/ext/installfiles/mac/mac-ui-macgap1-wrapper/bin/ZeroTier One.app/Contents/Resources/en.lproj/MainMenu.nib deleted file mode 100644 index bac7faa79fa4fccf2c974d8a953c76c5d540416f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25269 zcmeIacX$&=7dN^yE3Kqmw{`E9yXD@Sgp6cV0fVvW)!4!q+;G8|mYo10lu$xT=p}SQ zO{gKX0D%x{3WO3`0wIJDAOr}3JG-)k35NIm-sk>tpXYuV2g}-X=FFV=&6$~V&QAa8 z^0L~x#Kdn1KtO^dM1+{2m@UjF-NJ@iYHG`>D!YYM^&ey@uB+`HR#a0wund1)7*(=fYD$acn6FJQ@~U(4a^1ez+&(bSPRyHkHJ>38+;D-fJ5Lg_!67| zC&4*z4O|C5f!p9Wa0fgBkHJ6C8G1r5=naFQ90tQ^m;{qy3e1K|sDin$4b;JQuszI! zonaT)8}@;H;XqgeYheTA-~>1kPJ%PwOgJAdfD7RYxDu{{8{sCn8Sa2P;VyU(9)d^V z8TbP{4==!L@H+en-hqF@hwvZxj1-d;=|Zxk2N^_0kdb5}nL%cfIb>_nKpM#oWJj_q z*^TT^7L%o91zAVdlOxGd zg7~8Ny7(vY@8Y}SKgCZek`hs3%7JpEJgERGkP4y{R5X=9rBKl;ipQvA`Thtxucj`X%fO%tE8Kxm!!9(NYY<2 zKvF6hEGd^%ONL15B|{~{B_kwnNjS+^$vDXb$wbK%$yCV<$xO)yk`E;dBnu@=CCel$ zC95RsBp*vQNj6KiO14RMNj{V8mF$xolpK;AmG+bNmp+pHNFSmP(_hj@=%e&k^fCHt z`Z#@pK1rXVPt#}UZ|HC7@96L8v-COo2l_mHfxbvzqJN|>(^u%L^fmfA{S*B&eS^M9 z|3crQf2D8JztMN--|4&bAM`!?KK+3HlYU75ML(h+(@*HX>8JER^fUT7Lok4W49SQX zF+(vDM#{(-nqe3R#*uMioEaB}Wn39I#+~tCJQ**>oAF_M89&CK319-5AV$svGa*bU z6UKxy5lkc##VD9)CWeV+;+S|Qfk|YNm}Dk}NoCTQbS8tzWU`oSM#-p{R*ag-VOld9 zM$6``%9#qLlBr^d$GQ*h> z%t&SwGn#pe;TXic&5U8jGUJ$cnDNZJ%mij4Gl`kZyvIyorZUr*>CF4g3}z-Xi@E|-1FT$JfA$;-w{zL!~*d?!^Q&m-6@4SNCs>({d4B!=^ zwpU(3hq98|E=A?_mfF59&iGI35@G!Y6F2?c*3yWd`{Wg9ii<6^wPpRw%FF5+oAbKl z6?7@X56UfF%PLE%8Zfz63*;?V)YPP^n%XX5#pOk{wLPp2l`2h(I0!`3Mvs&>4ZQ2y{oFCjz|@=!-xR0>ube5GX}pFai|_R3R_~ zfm#IW5okc55rGj1j6&co1P}sa5EzHRI|#gszyt&)A@CjoQxKSj!21ZyL|`@oA0RLn zf%yn5L|`!jOA+`8ffWd>LSPL7>kwFvz(xc%Bk&0VTM^ifz)l1{L*R1+_9Cz!fiDm^ zgus^w97W(50>=?JiNI+DFfzVF;4A_^AaDVJO9)&>;3@*w5%?K_o1Ees;vHf<@h%=& zcVZ$jiI|MXyP&GRrr3gU)5cO;S5_(DrfXh7yQ2P^5!Q}Bx&mCwf9$ZmWGuS$O$B7etU9d&7ngtvGQsOwF zXfEgs$Jgc~kn*(%4KJv}aOhKO?UuDq+094sEY{!;Tny)ryOC)fp9{p;wZui@67eH( znYcn+C9VFfN>n<>I(RE}2W^(m2KUxU(Dafbm1M01whGJTTjZ zA-Y5C$C~mJbQQ>X_jPgA^slO~lQ-9vwUhUV`*=+FcJp9bO57t9KiDzwr%?4nq4Mpx zavlMX1p$vS4*2mm)fQN)i)xDMs%r3AfTPS0d8Chui$}I z4RTF+`Tsb+Zx9B0f!=mu8C<&1+x+^nm#0GhkY0E&_??1CtN`ps3I2O?^Rrk6(u#q*fpRQ)PZ_16f}Tgpb-oQBfvrGScH?xowBh^RvqQC|Qr^i@Y^khkK2;Wg zIbacquQ2189<%MO{oYEDqF1Gcy3)h+R?%feD;BvgDt*?%c zkI(P;rr!SoZrOX^o$JPV4-l++8QzZ8;r>^@7HTi{8Q?xHf4(%udU3tDp28H0%a=mR+>>0n?b_UNO0Re=Ngd!-06qGzTp4a% zZdG+-e({@lT0@PUr-CcTv!Y{BZJi~5Xp2nNl>?ff+0InWRq^=t5ZL5Jl_m1_MRmmk zFO zuf;KF8VzDMtiYv8z_ArFZd@ZS!1RM!R z!O`3ZZZyYnW4L#?37n$YgeJB?WZk5}ilz}A2j79?iT(HxT3A$y#qry#Q7(WR$r~a) zJ|9*RC3qqZcug%$!!-_0gVV9rZ2S(~Tby^53u~(ZpSz3rn(*&VconI}C(a^%yC#o# zO}$O6`v86j=i2Li+XZrn^X{(4J_C84WmsK)>1)`VCeu>541Q#1ALl}HW3hP>*gMu( zhL%;;*XA2uQ$ zdrgzLiNYSkTwhTwm~2~J`Gfu&tn7t*;r^GfGKHJMy~kq(A0-Q_E#>89m8HUDG1L@Q z;KPayJ^SI87(MTCQ*G$^ibu~e_%%EZPr#G#6gQ2V!OiC8a36B>TC{I)ZT%Zeh~dtGW#Fs?t=|EN&)Wm8)>flG_$-d0tgRzS25a{HgO# zyf!tRIB+fe+QgqVg!6{A9(vb~zLmm6tdE7jPl5Ta|Qt2`-DcMchIjF1_)Y8hbG6>IENP6G})&(hZ|zA-A{* zC8Q_z3Xoo;H|azAl76H=8Ne;!mT@0(E4WqM8g5++r%aM*>QR``qeViGmI^~_MM-nP zEeh8?mWnHr_ueNiwDXJZ4seO&i7dDG*ZWa$C zhFkudxipcSNKSr9OFOxp+zwt#UGNOG6c4niW-|FcR?QA>mrXUZh_Oq_+2kDVGw$;i zO)ELkie6$jxezyUr(jy$xZRw0AM7c@$i)JR2Dfa9n(?k^#=D1~;y7??XKfJ$csp%F z!FqB%xl!n!?ZmpD+t2M2`llC$-`2m4$G5H1IKNrn2Vmkx*IQSuA&7(N^x<_;o238zEyIKO{)Ay1Ge z$y4NM@(lS6`7QY!`8|1-JV*XOo+mGm7s*T9m)uv}aqblN4fic~mOIZ~;BInvxqrB4 z2mk~i0-~13V!w4P$m`@!Sf7W4CLZOE@Ebzj55c#vHovar*=*ze4O3hr;+gWQDqppKc8*6_%9_tg}?UUPP~E3^(vVwX4FuiOT<^ zwh~c^XuwNqyT#q&e&N;Dtz8)oX4Kc%d|09ZqH?UdU$|dws;k0Ffv8$EL{!7w=6>Vu zw4}C@m(+I4rnXo6VI#Dv%1Ve;^?E{ltid|968?@g#OqXW9=2qaUI1mPXsT%XOFh2F z-Q)fcdaT7u54RkwgF8`G!Fm>yw!z;E~d0}FQ9W5rqJJi+Jn zPDN!cti&RlgoDk zrt@ru=%!5^HwXce-z4BYqt)fmVmq4{TZ``68FAQCjN55-TL{jIp4b)1FB?|>V@oi! zFOH(excn`^kRJ?eOc0O>KT^SD@q0TP3jY=ZVi5vT1n4FlibdFaEEbC?u|zBt%fz&p z5j%(-#ZCw?2;hHN1aO6(2zVi&Kp+}{SOnr*Tn9yut?QuJUF<>NFsh7i4gxp=?10sx zDK9Inl((}CsLLPGf@18<0ph@B%q|ExV-u8%H>KFzk9>6wKeo;daU_o|UZ$V`S3HZ& zIQU*Rpz%$z;>FmpWpAhl0`7PitPSnNTgm)UEy4x2^`(`tsRr9p*rKJxJWcy1u?Cl1 ze!!ae_!09Fe!Te+!_kwjHDx$dTq74- zW2{iZK=Q|?pd${*mDUth4}3-cm`_;D#1^ameXRP&A;NC5*R5rCo{E=vPBmNs5+!Egs-+oyK*$CjDEM5m)tZ7uuqG{rL;@jc}TnqwAOoKoh;m9O@ zh&Qw1zr>HkkHt?AP$7_mfCd3=%WAo0?HWZ;fbUwi)$*$mXoU?y`?AWi3VdeHuV?{1 z;wDyNH$~f7d5hQ@AAovPRaLykkKV-BES@2VePckQnJmATWaaW!*Hv4?+g!ZyG-D z;wMyViXT}7Iv~&ydsd2Yc0pyS#Z)QiAX`WypxRJ699glY7uD5NmD{t7mf?r`S8|VR z)&E7A`06o&ItkUg;jJj|9O6;I9||xqa3YH>Z|Wl9PIaI(I6(y>P$)12RMp^vsn8be z+Ndlkswok2PdXM=TFSGV#DF@g5VN&LpbKW|U4;Y3Hh-|4q=D*=NwBKA@gz;n5CX4u zl3`RIOp=E{51ynJM@L_&Wdv1>NpRD8VUj*I^_6@Ovt3am&W5p9Gm;vJX>hJvA57Dw z8sqB4vs$VGKWl|RKm4p$rKRB&35`?@rpQO2Kc>JD1RQ|C;aVG6VU-ZHwaZ#cHDGEC zvJ!#XqnM9q|0|4bBPOm6aPKTbnnAOhHScNFr{sBuIH z0%iZsee8iZWEFfqo5f!Hb!rl3$EjcC)`s)-3)vgZQYLHd)IU+vFg3Q%l~(HdN}e81 zzm}-UIn*pn{W${Fn7TJktE{$pxNH@Yv#Gh5XbDz{fYd^}?;OKZn$6{M>@TF#No*_{DI;uc`I;$qWRB^MZ@{ zq%SO32&~w-DQXL*8G^t_Ow*N5>wBR%D5AFGhl3FqjURTY=A)i=#$(iO{A?Nm9Dasp zXDwc33^=d0_GSD(r}kqqjJLNjS?78jKDO5|f;x;JVfL{?4PH&i=fhA!9ZlI}O*08L z3gkHJk|(!)Ihs0&>%b|O>GwjeQ4Xs%*;A)znyu?1D!MHQ}7i<~0%2Ib2f_ z0u%X$*5H`6o&E%M2|t>Hz+^#4U|m&dX}Ja48N3;;$00aDsY28R8)`e(C_&0QFG&$U zqHge32QOMvab3Ndy3DU9Ha_ub>NZb;*ZS##I5(@frUjf|%q#7*XQ)4T+H?f)DC1EG z!t=g~(3;FwHe7IacPzr=+HCMnQV(&DK15)az~*Tc(G=(TcTY$k>TgW_5dv5RSctck zTJY(cDrS=IQ;xE0&DT}J~g~&!{*en*Re>FjA{Nx z;A5VqoR28HLQ^ftz%;iJ*nnxUTIy>pwq?xb7PH$#(GZCW6aR+5CV`m6>tkhy0Rvto ztdVFi;T;6F2!t-UR&1+YrOTG+G2LYZJ{9QPnn~wrNGWNHNv|TXO(1n{lKpQo zm82skyNvB%LwY&j{?oWLP!43-MnxWSOJ~rrC_ZZl0!|kL46&zgbs| z9Gi;aDM?>UgK@e?5Et?3TonKG*?V;_tSS%UOKW7j)fuHxlp@h;({!DErpd^!d0w)BpG3eM!Ah0@U>?9J& zbe@Do;Ed23XMxD-ktws-M^`MB%;xFb5cn3;^%SUtgS@>a2gy91A{v43d0|$)3I{?v ziKApOPZEp3IZV=nw&AMqY!3RWJ9gqvR8wIT(Q}Z)O(Q3aefkg#yVA zo;d=6YcHD25A=U(a-rmNo-q=EpI%69iLs?7ca|LBnWGT6@n+^0nhb{vD>dHZ@cRMb zv?KXS+ING?3(^awX?udoJ!k(6Kio&EwKi>7qEYT zSd9apJ8?+zm3ShK95uy%$g?;cA_O$Zb2v<3cl5uAHj=wUk6&`UYF_o?*_^S&I()KB z!rOBEx(J?j_{|D@p2x$W6?Ql({Mv;dJ~74NH2yT4(9b9K%W-OdBu?s2#IIxY5|R=7 z;B-U_HyEcUmf%Fi2AqL41}A;JgVVqGB(TXik7N!v1E=(Sh*Nsz;e^GV+~?e9IC*iA zkh-x(Na9$9(>K=RNWV2)Ux{D#P~zO;t~k%Q6_<Jl2Nqwfh~ynAxA12kk^e4Ngm32XhQ!Ei962D5s7ds#^Cix%yjuDT?f0uCK z8z%veeA?~Hg~#KI(o4W2pQvUny#ze_D6o0nb!9{KE(URW-VM_b|XX#1?>8;Q@Q z7>~)A%mzn3iJ*D8AVhlkXzw8$`RBuzx9}$(j<)iGdcO^e7>><g2h_`v3LLl+~ z*joSp>qSywZNfG|c3H3qvMaKyvTL&IvY%u>%WlYS%6^gElKm>XE&EM&NA|nyuIvxl zJ=uNP1KFRlhqAw9k7SQ!Ph@|~p344_J(E4B2^!FlCTS5ZrYTxNOKBNR(+urEJJL?H zGwnjNv@7jKyVD-DC+$Uh(>}B>?MM650dyc8M9b-5I)o0T!{~52f{vu4XayZj$I!8K z934+5(1~;solK|DsdO5hPG``WbQYaWD`^$oidNG(bZc5eYw29N4XvZ~w1GC#CfZE5 zrQ6Z%={&jv-I30xJJAJnA>EnoLU*OR(cS4DbWge$-J9-1_oe&MMRb3e) z9!QtbgXqC@IbA_l(p7XdJ%p~IYw0?=o*qg!(8K6PdN@6T9!Za)N7HZ79F6F==`r+J zdK~=@J)VA-oUT(X;6}^au2Z^jvx#J)d4cFQgaI zi|HlwQhFKv5xtyVL9e7&(W~h-^jdly{V~0s-av1pH_@BvE%Yb!r}S2O8@-+0LGPq@ z(Vx+~>Cfps^j>-&y`Mfne}TXq1b#>0E&_iba1Vj|2w(>Wc2Yb<06QWcA@CT1CkSAN z!czqPK>#~bo+C&g2oQt_k_d_r#4oB-2ucu?A}B+UMvy_!0YOIuoe*?J&;>yjL01Ib z5Ohb-13^y&y%6+9&<8yjlp`37UD|z6A?^8Fd4xV1XB@ALogk|3gK=2Lhu-ZUn6)N!4n9cMDP?gK`aboVK@sTSQyE|C>APM7|p^M7RItL zj)n0oOkiOm3zJxw%)%5Frm`@Nh3PEJU|}W;vsjqTLM01TENsO>H4AfC*qVhJ7HV0T z%fdD+)Ui;{LIVqpEHtsu%)+)TY{$a(EX-qJ2Nrf@VLl5xv9N%Jg)HpM!Y(ZA%EE3e z?9Rd-EbPg`UM%d*!agkQ%ffyvEMj4Q78bLxgoPFs4q#y^3kR~WjD>?(IGBayEUaK* zB@3%qSk1yAEUaN+Eeq>dSkJzW= z0SiB5;anEZW8r)jE@0t87A|7pViqo8;ZmG1$-<9VxSWM6Sh$jft5~?2g=<*2mWAtB z_%RFDvv30oH?nXO3pcZH3kyGC;ioLz%EE0d+|I%sEZoV$T`c^Jg}Yh!ISco&a4!q@ zv2Z^N53ukH79M2bAr>BH;g>8t!os60{ECIgSok#ykF)Ru3s17}6bnzY@C*yT!M8cF z@H-ZM&%(1TJjcQxSa_a=7g%_ag_l_PBMUFH@CpmBvhW%Uue0zc7XHk_8!WuZ!e3Z; zi-o_k@HPv7W8obZ{?5X?Ec}Co_gHwJg%4QxCkr34@GllVV&P*JK4IbCEPTqse^~g8 zh0j@%U`fD|kR|cONFtULvn0im5@8F?tZjN<8ZVv9dTHOqwlf~HiP?-_o;GQ%H*vHn zsw-N`Y$6mmnj+jDU@6fw-CT8=`IOlT-(j}(b@4T6<7*pnB&LG*J9n-w!I7>m)+?`i z<44vzJMfo99KiQm`4Ay^7oUbN;m8sHCcaO}sYogf-z`)~^~ZMxO~-cv9maS6oWuA2 zT*UYOT%&%*_x}8f@BR4$-}>{HguplbI7wV2fs#l`vP3B{OFH1&dy4RlJr$BF$uN9N z&t%E_l6g|Kw6#<#)k%%gw$eOlzO+!1ZjE zj+Ks=PL#eUohF?joh|)PI$yd-x>UMcx=OlMx?Z|T`iXR#bf2>K1=`HDR(!0|8(ueqj@>Kd<24!NIRL01hWUS0x<|Xr$1<2&G zP+5dbA&Zs8%W`B!Sr=I!SwC5SS&3|btV%XSRx5i;_O5KYY?W+->~q-(*(uo>*|)Oq z@mA)6>?z)wi1D^WhBqXhc)JmgHx$WuGm(zB5h}cW(BMUWBwoJf;AMCnUSjv)`-Z;7 z_X%CVw+LOsHwfLpw+H=-Zw~q$-x|c<4&;FE`-#Li`o!SdeA4jkJRR{(I|K1eIt}<1 zoe}tcoCVB!W+Sti`GncZ>|wrR&N4qR7nn=TW#%e#o%xx$$=qUYGj|*q2S*2I2iC#O z!NbAJA=V+yp|yj~q0(Wb!vu#(4(~ZkahT@tzQYWMSq^g?wma-}_{`yRhrJH_9lmh5 z=sasD z;D~QZaUA0~*>RrZQpYuppE(|MJmz@H@rmP8$7hbuoq!YRByyshq)rN_7^gU=1g9jY z6sI&NlT%x#a;HkCTBmxa2B$`+5l*9=COEBeTIaOhX`|C-r%#-=I_+_~>2%BKw$pD; zzdQZmbkFI5(?e%3XCG%j=K$v*=V0eh=M3j8XT5W+bG>tebEESJ=TXjYIV0yW&f}aX zI?r+b(0QKo0_PRZyPS7B?{VJee8Bmj^I_*B&R;oy?R>)dl=D632hIcxM!8IInd>s&WuePr zm!&RiUDms7blL23#^qa=?_JKhoOikC@}tWwmSkhucs7wuVpG^OHl596v)P_(Z?-R6 z#1^v_wv?@4tJrDm`|M11Hv0iPmz~e9WLL9?*e}_m>@oH@dy+lPUUzkLb#`T4U0vN> zJzc$AeO&!qTf3TF+qveu7PxkH?dsaywWn)u*TJq8u2Wp6xxVi@({;A%2d;BnSGult z{m%8Q>kqCMTras^cD?F)-SubJo36jPK5>2O`pk`RletB^#k$42CAuZMrMjiNWx8d% zsod0Vt=+V4ZQS&3MmMwDV7CglDz_nSwQlup4Q?adM!PL?TjI9NZMoY@x7BWI-8Q;y zc02EO(d|dK%WhZQuDku@cEjx#ciP>--O1g>-PPUQ-P7II-QT^Hdyc!tJ=b05Zg4lb z=ec)uAL3r?Uhm%E-snEUeU$qc_i^qk+*i4;abM@Y-hHF{X7{7+$J~E&|K0r$_xtXD zy8q?=*n{v0_6YR|_lWdRc*J3 zR(P!PSmUwIW4*^lk54`Jdwk(>$m2_oQy!N*E_+<{xbE?@$4!r09=APNPcKg&Pe0E9 z&mhlW&rr{B&qU8;&#s=`J$rig_U!9fD9_B$E%xH53dnkqrBeoLSAFM z#(9nRn&-8^>!{Z;uj5`Py-s_5V4h& zC+{2HH@$Cp-}Z6zarR+-+{t5m`{<;1g{X6*=`gif~ z>p#GMp#LEMa{o&IN&fHoPxYVfKf`~P{~Z6-{)ha(^grr<%>TImN&nOS*8@NR86Xaj z1jquI0LK9D09}9~z!cCnpnX7xfc$`hfX)G31NsCE4yXvI3K$YFJm9SW6fh=WT)>Ke zRRL=P)&;B&*ch-mU|+!1fa?K22iy#}6>vM?PQcT^@W9AGMPN)|Twp?AQeaA8T3|+? zI0v`lE415&$B=BkAvmhb}28n{GAX$(@kaG|llpK^Alpd5BlpUlB zQU{rW+6Gkz)dbZA4GkI=G(2cz5DFR-v?^##(7K@YK^ucM2YnK>D`eAuo~_%ionxluwpV zkx!GqFP|x&Eng^KEI%keEI%UuN`6d!Tz*1+N`6NERQ@cO2!_F;U@BM|Ob0szI|aK1 z%Y#FL!-6A%6M{2?vx8N^>fqMF+TgyyMZv|vmf+Ihvf#nN4Z$;mX9s@}JU4iL@WSB5 z!K;H01%DZQH27HX@!*rer-Oe8{ww%#@ZZ7z1V0Y}A!G<0k`j^@k`a;>q6}#jk`tl{ z$qmtkXy4VfRZFl2Ga(vUqN`$7(c91J-e zawO!dkeea5LT-oL3Ar0`FXTbU)6nqH$WTRSOlVwaLTFNGN@!YWMriBM_Msg@^Fs?l zdxe&UmW2)utq83O9THj_IxY15(3zpLLq7|xlWuqRXMmVrRtuh-(o)N8F6K74cid z-H3Y;&mxJ)@W`mh=*ZZ}xX6Ua#K`2x)X3hE{UZBEmP8JSEQ>6Utcn~GSsOV%a%SY5 z$hnd8BbP^RkK7gcdE~yxFCq^|9*z7u@?_+h$ZsPbMm~=GJMy2%=TSry86}Q#j*5+n zk4lP4iAsygjLMG6jp`TGKgtqS8dVlm9#t7NDr#=j{HR4yOQM!Vt%zC`wJqvG)Q?eD zqOL_(M_){~rAy`mg9G(NALnV&pL)F<~(gF^ZU&n9P{&F}-5?#Po~l zA7hCrjhPa&D`t1ho|t_x2VxGz9Emv=b3Eo`%=a-jV{XO#7IQb|e$3NYajZ0!iFJx) zW8Gp?V>4p2VwJJ#SWRqhY`fUJ*s9o?*t*!EvBP3V#Ey!6J9cgC`q+)Jn_{=bej2+q zc6;p3*z>WMVlT&DjlCXwBlefrXK{{k>2aBH*>S2kb(|)yO`IXl6xTMcV_Z>Oaom8o zvbgfN`nX|nBjQHIEsR?dw=8aX+^V>>aUaL+i#rf^BJOp(-Umw3QeoOq;_%Gs5#h;1)F8*Bnjra%g591%l zKTV($yb^p8{1bu_;uDk!trA)%-zI*a_(S5w#A}In6YnMdnfNG)OmazbP4Yu9B;_S_Oe#p~lGG<@a8gB5by988@TBoc6Otw;O-)*ov_5HL(w3yH zNuMPhN%|`3c+#n)Uy~jsJxTf}nMig_c20Ip_DD`k)+V<}HYA&qyC!!}?v>m(*^*q7 zT$kLCJUn?`@~Y%D$sZ?gOx~TmH~B#Fq2x2kmy@q0|D60w^79mj6z3Gz6pxgQlr|~) z6jMsO6iZ4?N?l4r%J7s~DN9p6N?Dn*Cgpg_`IL((ms75#lBq7KuBjfW-l?IfiK)q{ zX{nj19aDR!_Dd~J9gtd`Ix3Y*9h3S_>h#owsf$yWrLIWbn7TW4PwM{EgQ=%ee@wlS zdOh_<>b=zGX&_CMCQ0*53r!18i%N@0%T6<-nbO*&bx12st4kZ2)|fUjZCcubv_)x4 z)0U@gPdk`)IPGZK*J;<%?xx*K`!nrPI-Ty7?vw7H9+aMxu1;^Ao|~>u@0{L0y(GOf zeNcL1`a9|GrcX+rlD;KHlQNGvYE5GLkdWGP-7zWDLkC z%P7wnk@0TE#Ekbcre!S6*pRU)B=IYFKnHw@UXYS5Cn)!9+ z$;>mEKW5&}{5|tt=AT*KS>ahxSut7hS)H@`XIZiaW)04IKWkCe(yZlKtFpezI-7Mq z>r&R0Y-zSfws*E)c3`$HyHj>ycGv74*~QAq%Bjlf${EVp$`6(Em5Y>1mCKbYm8+F& zl^-iNC^sp$C_hzhQ|?giQtnpnQSMV7P##nsRvuA)rTkiXLU~GgM)|Gsd*wOhdF4gr zkIE~`Ys#OLHQb$GE`YAl`2Q2Rq0d)l}XiB)n3&> zm9HvLbyjs%byxLN^;Y#&6{(6<7FDULOf^_lp{i01QPryIRSl{})dT}gT)fcM6s-vo}RVP(v zRNtx2sV=B~Qr%MBSNp32)pB)+I!qm@j#kI16V)l|GRh!>ZBU!k zZPo479n|^i0(EC~S9N!FPjzo~Uv-hXSZz_4s>{@a)fMV0^$>Nfx?bI&Zd8v@k5a#- zM(Q!@aq98v3F=Ae_taC>)73N7v($6cAFAi67pNDhm#CMim#bH*SF6{mKUQy0Z&Ghj zf2!W5-l5*5-mTuF-lsmGKBzvdKB7LRKA}FX{zmy{n>YM6Y z>f7o&>bvTD>IdqF>PPA)>Zj^wIYbW35#>-h(i}R+A;&4lCC4?#J;yW0JI6OCAV;1P zniG+u$cfEK$Vtvg%gM}9=BRTtIc;(bIp&=9IUREfa=PSn&*_=dC#NW7P#;j?t>8L5tbk=m$bl3FM^w#v%6lsbz7EP(9Ofy(hp{ddg(bQ_{H4U0Z z%?QmX&089z8KW7e8Lye3nWTA7GgUKPGea{=Ge`5GW}aq&W|3xzW|?NWW~FAeX07I9 z%?8aT%@)n4nr)gLnq8XRnmw9*ngg1Hn!}nSny)lpYfflRY0hZA)qJlxr#Y{=sQFQI zMRQH_ljerzmgYCjUCn*XpPIikk2Qa5{?R6ZLl^}8?KGiDzq`$IBkM9Nt>cg*Jf!|+8nJ`tJ4~_ZMAvYd~Kn&tG0)>x3-_Q zSUW&lrY+Z2X=}9g+F{xe+R<919jhI$ouHkhouZwtovEFpovU4-U94TEU7=mAU8mik z-K_moyIs3W`?+?X_6zM{?NRO5+LPKd+V8aIv=_8LYOiX4(%#hms=cHAL;FDcm-dPF zpIjoB%%yT=xemF`xvse$x!$>cxq-RCxna4HxzV|Cxrw<>EIOa%*zybBE<3T{~R|T_;^FkyRqJYXLv@Y1k-E2ZZ|lbC-qlUgP0>x)&D71&&DAZ?E!Hj5t2B(N)!otkp?jeFOZPx86@5s1MeM=_B>g`Z#@}K1H9d&(f>(IeM*Lr#I@`>htvZ`a*qI zeGh$aeLsD%et^DAU#_px*XZl@!}KHcqxDEXRzF@pQU9KPntq0Uw*Eu?eElN*QvGuM zD*amhdi^H-C;Dyro%-GSz4`N)B11qXZ7dxm-JWk*Y!8_xAed1@9OXC zAL<|LpX#3*ph0Yq8W@946%j;L$V>wkZDjF)CP^Ajlp0r z8`>K>8VU?u4BZXA41Ep#4Hm;d!(c7``|BV7O?wY`A9l z+3<_uw&8cfJ;R@dM~1%*&y2t*GD?iJ(b4E)bTfJyeT@FbAY+Iz+!$qyF~%E{jH$*9 zW45uCv9&SRs5hF7?Tj6aos6B0-HbhreT+rM5@V@xkg>v8ZLBp8H8vVY8s9R$Z5(HO z*Eq>I#W>wK(>TXC*SNsA*tpEN!noSF&bYz2+4!k(yK$HCbK^ea7skWJqsFg|Cyi%} z-x<#tFBpF`UN!z?ylMQ^c*ppM@qzI#;}hdQCc;FTD3i?OU~)FOnmkP2CO=c4DcBTd ziZn%=;!KIA6jQn>%cL^pn6xIH$!Kb8$}{Dg3Qb*2Jxsk#{Y=HC0j4rjxv9!jW2!d| zGmS8fHX+kk(|FTF(|e|ArWvN$rVmZ?O^ZxRP0LNIOlwW+O`A-gn6{aAns%G^nhux_ znU0u_nNFBao4z%jHJvwIGF>rUH{CGZGW}+{Yr1cGXnJgVYI<&lX0cgnX3S1z*6eQf zGW(hX%yM(6Il`ub3rderLn>FS(W`o&mZg1{rE--g7cQ^Mk_cix7Tg(H^ zgUyxZA?7-BgL$}ll$kS+F~4J;V4iHAYJT55%lv_Po_V2piTNY*O7lkZCi52aXXf4J jz2+n4v*wHD-_4KOdbABCg#RG4{${pYf7||T8~*yq9LFZ6~!C1t+r}?yee{tRvxugtF^WkkNPNW?Ke9~NP*|+?lZgp%>Nzl zcfJ3Fld)(jT~>A&3?2v&A;HVa*^K6*jh3B?CgROSiST+Wl1{BCGVRE^C_N4qr4z{< zu&q7!8-B=8Fb)$?gsGU0W$aZGX5JCi-@I(9vSK}J|7(c+o}I!}YiU zH{w>(zYW{56TiT{*oTL)ACKdg_!WMQr|?_6fY)#kuj4Ho!yoY{{0)D{r}ziHzzO^Z z-!jG&Hk|pegcY*!YyvA{6WJs-nN4A5v(kp5ct7A4|wikni9TICNckG7^7%~*$(3K>~+>*mCLLc)Fb z7g=4jpYIP;L?Tuy6%9vY(R9~fUBe$}jM7HTYKq2N6P+YJ@(ki-fGcXggFdOG!4(5{ZJe-U3a6aZ^0T$u{RG<=zP(@cY7Gnu&u#}$HQs!Nl^;C+G zF~%QgNLhAGJZ;%)&4^W#w%Ti2t#~@RHfq@`{DEcWra*MFMHO+?g3)x$8ZgorwK_va z0f|N9)zle*h;3PMCj(@{(F+;F`!#D)^%lizn^Y=S$J}&A9kTA)aUoK3xUMVB$cAXV zjX*U8t7B$cY5-KG5L6HcPG%i4vir3H>8_Zy%uH?IG6z4KD_r9xDlg$v`830m8HE9(FH)|aTiDN9m=>5^#~w{1~j4x%~(PC zU5Qm8V;Ggujv1TTv91TH}EHXufg5J!T3 zFQIiM(sXS^=ZeL4q9f^aaLCA^K5#Nzov=GiyS0{BY-OEot+i|`PNPS;b|BMWIG$T7 zVlf)E1{$~(8NiMW0w3r|TDB7;t*dOaE!dT`QoK;*whK(RZQr zK5WJoT#9a7hVO#od$=4|;7WWSTX7XPcs9@B!}xHX%SZ5$Jdfw|0zQh5=41HSkTKS8 zH3xmcn(Aub##yChzNDE-Tj2yn;7gP9kdaF%jm9iz_EL434F?o8U_~++vwTZ}%W6+o znwqg%AC0W@1u1GDC8ga=`!<%J$-}57E8I|Dn`(-t*JZ}zfBa-6JHoMOq_o41O>;mH zo4KAzXY4~Lrsf?OO;_p>JW71s2cg2Y zP4fN-9z!wV&D;)(+SPahPdW_moDhLdGf897iziSVGDd9KLbOum5KQ^J8MG`fpEI|+ zJ7my(+29ZD48ASvZgdr0`%mLHbmH_AQqXEo#>}+Ui>FcS4%RaW@4~Zq4!^_md^(@O zXYq6RdY2qj6cu&|nY3~T7n;0V+9(X#~^EAAP17zCEXY%sK&dj-e za=#KL-l2VsIBhmBZ|Zc*bCjUx;Jpm|_wfOy;X`~xVSJ3g;**duI^(XAY*EV(cx`mw zx#-Lw=BhK(>uA*{L*CCdJcMEnpU3BhjN-I&w4Li46lrOn>(X|U&NqjcGxOb$kqjB* z|G%hPtmF7BLqwF1QvvS8aeRJSvfL7WiEnn{pA;x%gr84%os2AS-$4F_@q9iPscH^Q zL?fB1x!xXQ=yiHCV}yAeBg5%SW++%E>6&ANUND%7Z}!kmpNoNR@eDZY@0&jPT#{!a z*hrSg@>u~J#YVF+Y%H(ji+B~kkXQ4?dUopZxe6qVP z!8bh)4(cT~ot06y)Kt2!LRDtk>}AuPVWG31>Snd}5ukmL&1AEfkIg3juBj|dbrIRO zS5s>?BwMNd`>MT~w%nH{dT4S+@6-7hPZ7_iccg`Q8}GAh3Skl%yO0G~f?dvTWBb`t z>_zr6`#n3r4zk1Sb@m4P13SjvX794UurJwH>}$^uPp-%3DfZ0u%=c7#mU~(}t34r) z>FM$8^}OOa>iNL)nUEz+5*7({LRg3in}w~yEy8WW?Lv>xE9?^P5_SuFgnNX&!u`U- z!lS}|;R)f0a7_3>^oV)l1aY>wKwK);ihi+9tQUh~lej{(#F*G2ZW1?(mx_DE$HbS# zH^e`S$HfzpEDe)#r4dq|R3MF##z^C&La9iaBu$Z~N;9Q8sa^_7jZ(AJBCV3vNEb_C zsa0Alt&`SEF)1!xEA5t^m5zI}yoKKR-X-3c_XpnX-p9R%yl;Cy^nT$zAv1Z1JX9`_ zC(0#qsaz({kQd5} zD+S6pWv;SP2`d|v%akjWYn1Di8R0R3dbLIERBupw)VtMt)%(VxXT>Z9s@^?mhYElbPO z%CtFJwYFSq)>^bx+8XU*Ev#+O+O>q%t!>q=*0yQewL7#O+D`3GZMU{hdq#UsdtQ4% zdr5mmdsTZ)JER@aj%x2}pKD)gUuj=!C$xWS-|9>kbV-+WRoC^QdX}E857Tq?k-ASW n)F - - - - files - - Resources/ZeroTierIcon.icns - - 430Gd+4+jnim7WxXEEugp6G+Tgk= - - Resources/en.lproj/Credits.rtf - - hash - - ePttkAH2X1GJ6OL0UhDBAktxB3Y= - - optional - - - Resources/en.lproj/InfoPlist.strings - - hash - - MiLKDDnrUKr4EmuvhS5VQwxHGK8= - - optional - - - Resources/en.lproj/MainMenu.nib - - hash - - 8JZXf4/3df3LD+o74Y8WM0dV8io= - - optional - - - Resources/en.lproj/Window.nib - - hash - - aP0mIANPPnnTMmxYlELioz9ZO1I= - - optional - - - - files2 - - Resources/ZeroTierIcon.icns - - 430Gd+4+jnim7WxXEEugp6G+Tgk= - - Resources/en.lproj/Credits.rtf - - hash - - ePttkAH2X1GJ6OL0UhDBAktxB3Y= - - optional - - - Resources/en.lproj/InfoPlist.strings - - hash - - MiLKDDnrUKr4EmuvhS5VQwxHGK8= - - optional - - - Resources/en.lproj/MainMenu.nib - - hash - - 8JZXf4/3df3LD+o74Y8WM0dV8io= - - optional - - - Resources/en.lproj/Window.nib - - hash - - aP0mIANPPnnTMmxYlELioz9ZO1I= - - optional - - - - rules - - ^Resources/ - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^Resources/ - - weight - 20 - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/LICENSE b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/LICENSE deleted file mode 100644 index c7fd4a4a5..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -MacGap was ported from phonegap-mac, and is under the same license (MIT) - -The MIT License -***************** - -Copyright (c) <2012> - - 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. - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.pbxproj b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.pbxproj deleted file mode 100644 index 775c59641..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.pbxproj +++ /dev/null @@ -1,489 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 1495814F15C15CCC00E1CFE5 /* Notice.m in Sources */ = {isa = PBXBuildFile; fileRef = 1495814E15C15CCC00E1CFE5 /* Notice.m */; }; - 6F169DA718CC332E005EDDF3 /* Command.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F169DA618CC332E005EDDF3 /* Command.m */; }; - 6F169DAA18CC35FD005EDDF3 /* CallbackDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F169DA918CC35FD005EDDF3 /* CallbackDelegate.m */; }; - 6F169DAC18CD8A4A005EDDF3 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F169DAB18CD8A4A005EDDF3 /* JavaScriptCore.framework */; }; - 6F169DB118CD906F005EDDF3 /* MenuItemProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F169DAE18CD906F005EDDF3 /* MenuItemProxy.m */; }; - 6F169DB218CD906F005EDDF3 /* MenuProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F169DB018CD906F005EDDF3 /* MenuProxy.m */; }; - 6FD672B618FE618E00C0DAAD /* UserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FD672B518FE618E00C0DAAD /* UserDefaults.m */; }; - 6FD6E4ED18C2D48C00DFFBE6 /* fonts.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FD6E4EC18C2D48C00DFFBE6 /* fonts.m */; }; - 88746BEE14CCA435001E160E /* JSEventHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 88746BED14CCA435001E160E /* JSEventHelper.m */; }; - 88C0646014BDE10A00E4BCE2 /* Window.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C0645F14BDE10A00E4BCE2 /* Window.m */; }; - 88C0646614BDEC5800E4BCE2 /* Window.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88C0646414BDEC5800E4BCE2 /* Window.xib */; }; - 88C0646D14BDF6A600E4BCE2 /* WindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C0646C14BDF6A600E4BCE2 /* WindowController.m */; }; - C14EFCA71B0986AF00894B5F /* ZeroTierIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = C14EFCA61B0986AF00894B5F /* ZeroTierIcon.icns */; }; - C1C2B9911AFB0CF10060D7C2 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1C2B9901AFB0CF10060D7C2 /* Security.framework */; }; - F2B80016179E0FC100B069A8 /* Clipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = F2B80015179E0FC100B069A8 /* Clipboard.m */; }; - FA32509D14BA813600BF0781 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA32509C14BA813600BF0781 /* WebKit.framework */; }; - FA3250C314BA85E700BF0781 /* ContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3250BC14BA85E700BF0781 /* ContentView.m */; }; - FA3250C514BA85E700BF0781 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3250BE14BA85E700BF0781 /* Utils.m */; }; - FA3250C714BA85E700BF0781 /* WebViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3250C014BA85E700BF0781 /* WebViewDelegate.m */; }; - FA3250D314BA860800BF0781 /* App.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3250C914BA860800BF0781 /* App.m */; }; - FA3250D514BA860800BF0781 /* Dock.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3250CB14BA860800BF0781 /* Dock.m */; }; - FA3250D914BA860800BF0781 /* Path.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3250CF14BA860800BF0781 /* Path.m */; }; - FA3250DB14BA860800BF0781 /* Sound.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3250D114BA860800BF0781 /* Sound.m */; }; - FA3F7742168F70790027B324 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA3F7741168F70780027B324 /* Cocoa.framework */; }; - FAE451C914BA79C600190544 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = FAE451C714BA79C600190544 /* InfoPlist.strings */; }; - FAE451CB14BA79C600190544 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE451CA14BA79C600190544 /* main.m */; }; - FAE451CF14BA79C600190544 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = FAE451CD14BA79C600190544 /* Credits.rtf */; }; - FAE451D214BA79C600190544 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE451D114BA79C600190544 /* AppDelegate.m */; }; - FAE451D514BA79C600190544 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = FAE451D314BA79C600190544 /* MainMenu.xib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - FA3250DD14BA876F00BF0781 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1495814D15C15CCC00E1CFE5 /* Notice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Notice.h; path = Classes/Commands/Notice.h; sourceTree = ""; }; - 1495814E15C15CCC00E1CFE5 /* Notice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Notice.m; path = Classes/Commands/Notice.m; sourceTree = ""; }; - 6F169DA518CC332E005EDDF3 /* Command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Command.h; path = Classes/Commands/Command.h; sourceTree = ""; }; - 6F169DA618CC332E005EDDF3 /* Command.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Command.m; path = Classes/Commands/Command.m; sourceTree = ""; }; - 6F169DA818CC35FD005EDDF3 /* CallbackDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CallbackDelegate.h; path = Classes/CallbackDelegate.h; sourceTree = ""; }; - 6F169DA918CC35FD005EDDF3 /* CallbackDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CallbackDelegate.m; path = Classes/CallbackDelegate.m; sourceTree = ""; }; - 6F169DAB18CD8A4A005EDDF3 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - 6F169DAD18CD906F005EDDF3 /* MenuItemProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MenuItemProxy.h; path = Classes/Commands/MenuItemProxy.h; sourceTree = ""; }; - 6F169DAE18CD906F005EDDF3 /* MenuItemProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MenuItemProxy.m; path = Classes/Commands/MenuItemProxy.m; sourceTree = ""; }; - 6F169DAF18CD906F005EDDF3 /* MenuProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MenuProxy.h; path = Classes/Commands/MenuProxy.h; sourceTree = ""; }; - 6F169DB018CD906F005EDDF3 /* MenuProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MenuProxy.m; path = Classes/Commands/MenuProxy.m; sourceTree = ""; }; - 6FD672B418FE618E00C0DAAD /* UserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UserDefaults.h; path = Classes/Commands/UserDefaults.h; sourceTree = ""; }; - 6FD672B518FE618E00C0DAAD /* UserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UserDefaults.m; path = Classes/Commands/UserDefaults.m; sourceTree = ""; }; - 6FD6E4EB18C2D48200DFFBE6 /* fonts.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fonts.h; path = Classes/Commands/fonts.h; sourceTree = ""; }; - 6FD6E4EC18C2D48C00DFFBE6 /* fonts.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = fonts.m; path = Classes/Commands/fonts.m; sourceTree = ""; }; - 88746BEC14CCA435001E160E /* JSEventHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSEventHelper.h; path = Classes/JSEventHelper.h; sourceTree = ""; }; - 88746BED14CCA435001E160E /* JSEventHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JSEventHelper.m; path = Classes/JSEventHelper.m; sourceTree = ""; }; - 88C0645E14BDE10A00E4BCE2 /* Window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Window.h; path = Classes/Window.h; sourceTree = ""; }; - 88C0645F14BDE10A00E4BCE2 /* Window.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Window.m; path = Classes/Window.m; sourceTree = ""; }; - 88C0646514BDEC5800E4BCE2 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Window.xib; sourceTree = ""; }; - 88C0646B14BDF6A600E4BCE2 /* WindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WindowController.h; sourceTree = ""; }; - 88C0646C14BDF6A600E4BCE2 /* WindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WindowController.m; sourceTree = ""; }; - C14EFCA61B0986AF00894B5F /* ZeroTierIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = ZeroTierIcon.icns; path = ../../../../artwork/ZeroTierIcon.icns; sourceTree = ""; }; - C1C2B9901AFB0CF10060D7C2 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; - F2B80014179E0FC100B069A8 /* Clipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Clipboard.h; sourceTree = ""; }; - F2B80015179E0FC100B069A8 /* Clipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Clipboard.m; sourceTree = ""; }; - FA32509C14BA813600BF0781 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - FA3250BA14BA85E700BF0781 /* Constants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Constants.h; path = Classes/Constants.h; sourceTree = ""; }; - FA3250BB14BA85E700BF0781 /* ContentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ContentView.h; path = Classes/ContentView.h; sourceTree = ""; }; - FA3250BC14BA85E700BF0781 /* ContentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ContentView.m; path = Classes/ContentView.m; sourceTree = ""; }; - FA3250BD14BA85E700BF0781 /* Utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = Classes/Utils.h; sourceTree = ""; }; - FA3250BE14BA85E700BF0781 /* Utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = Classes/Utils.m; sourceTree = ""; }; - FA3250BF14BA85E700BF0781 /* WebViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WebViewDelegate.h; path = Classes/WebViewDelegate.h; sourceTree = ""; }; - FA3250C014BA85E700BF0781 /* WebViewDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WebViewDelegate.m; path = Classes/WebViewDelegate.m; sourceTree = ""; }; - FA3250C814BA860800BF0781 /* App.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = App.h; path = Classes/Commands/App.h; sourceTree = ""; }; - FA3250C914BA860800BF0781 /* App.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = App.m; path = Classes/Commands/App.m; sourceTree = ""; }; - FA3250CA14BA860800BF0781 /* Dock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Dock.h; path = Classes/Commands/Dock.h; sourceTree = ""; }; - FA3250CB14BA860800BF0781 /* Dock.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Dock.m; path = Classes/Commands/Dock.m; sourceTree = ""; }; - FA3250CE14BA860800BF0781 /* Path.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Path.h; path = Classes/Commands/Path.h; sourceTree = ""; }; - FA3250CF14BA860800BF0781 /* Path.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Path.m; path = Classes/Commands/Path.m; sourceTree = ""; }; - FA3250D014BA860800BF0781 /* Sound.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Sound.h; path = Classes/Commands/Sound.h; sourceTree = ""; }; - FA3250D114BA860800BF0781 /* Sound.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Sound.m; path = Classes/Commands/Sound.m; sourceTree = ""; }; - FA3F7741168F70780027B324 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; - FAE451BA14BA79C600190544 /* ZeroTier One.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ZeroTier One.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - FAE451BE14BA79C600190544 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - FAE451C114BA79C600190544 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - FAE451C214BA79C600190544 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; - FAE451C314BA79C600190544 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - FAE451C614BA79C600190544 /* MacGap-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MacGap-Info.plist"; sourceTree = ""; }; - FAE451C814BA79C600190544 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - FAE451CA14BA79C600190544 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - FAE451CC14BA79C600190544 /* MacGap-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MacGap-Prefix.pch"; sourceTree = ""; }; - FAE451CE14BA79C600190544 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; - FAE451D014BA79C600190544 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - FAE451D114BA79C600190544 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - FAE451D414BA79C600190544 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - FAE451B714BA79C600190544 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C1C2B9911AFB0CF10060D7C2 /* Security.framework in Frameworks */, - 6F169DAC18CD8A4A005EDDF3 /* JavaScriptCore.framework in Frameworks */, - FA3F7742168F70790027B324 /* Cocoa.framework in Frameworks */, - FA32509D14BA813600BF0781 /* WebKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - FA3250E014BA87B800BF0781 /* Classes */ = { - isa = PBXGroup; - children = ( - FA3250E114BA87DD00BF0781 /* Commands */, - FA3250BA14BA85E700BF0781 /* Constants.h */, - 6F169DA818CC35FD005EDDF3 /* CallbackDelegate.h */, - 6F169DA918CC35FD005EDDF3 /* CallbackDelegate.m */, - FA3250BB14BA85E700BF0781 /* ContentView.h */, - FA3250BC14BA85E700BF0781 /* ContentView.m */, - FA3250BF14BA85E700BF0781 /* WebViewDelegate.h */, - FA3250C014BA85E700BF0781 /* WebViewDelegate.m */, - 88C0646B14BDF6A600E4BCE2 /* WindowController.h */, - 88C0646C14BDF6A600E4BCE2 /* WindowController.m */, - ); - name = Classes; - sourceTree = ""; - }; - FA3250E114BA87DD00BF0781 /* Commands */ = { - isa = PBXGroup; - children = ( - 6F169DA518CC332E005EDDF3 /* Command.h */, - 6F169DA618CC332E005EDDF3 /* Command.m */, - 1495814D15C15CCC00E1CFE5 /* Notice.h */, - 1495814E15C15CCC00E1CFE5 /* Notice.m */, - FA3250CA14BA860800BF0781 /* Dock.h */, - FA3250CB14BA860800BF0781 /* Dock.m */, - 6FD6E4EB18C2D48200DFFBE6 /* fonts.h */, - 6FD6E4EC18C2D48C00DFFBE6 /* fonts.m */, - FA3250BD14BA85E700BF0781 /* Utils.h */, - FA3250BE14BA85E700BF0781 /* Utils.m */, - 6FD672B418FE618E00C0DAAD /* UserDefaults.h */, - 6FD672B518FE618E00C0DAAD /* UserDefaults.m */, - FA3250CE14BA860800BF0781 /* Path.h */, - FA3250CF14BA860800BF0781 /* Path.m */, - FA3250D014BA860800BF0781 /* Sound.h */, - FA3250D114BA860800BF0781 /* Sound.m */, - FA3250C814BA860800BF0781 /* App.h */, - FA3250C914BA860800BF0781 /* App.m */, - 6F169DAD18CD906F005EDDF3 /* MenuItemProxy.h */, - 6F169DAE18CD906F005EDDF3 /* MenuItemProxy.m */, - 6F169DAF18CD906F005EDDF3 /* MenuProxy.h */, - 6F169DB018CD906F005EDDF3 /* MenuProxy.m */, - 88C0645E14BDE10A00E4BCE2 /* Window.h */, - 88C0645F14BDE10A00E4BCE2 /* Window.m */, - 88746BEC14CCA435001E160E /* JSEventHelper.h */, - 88746BED14CCA435001E160E /* JSEventHelper.m */, - F2B80014179E0FC100B069A8 /* Clipboard.h */, - F2B80015179E0FC100B069A8 /* Clipboard.m */, - ); - name = Commands; - sourceTree = ""; - }; - FAE451AF14BA79C600190544 = { - isa = PBXGroup; - children = ( - FA3F7741168F70780027B324 /* Cocoa.framework */, - FAE451C414BA79C600190544 /* MacGap */, - FAE451BD14BA79C600190544 /* Frameworks */, - FAE451BB14BA79C600190544 /* Products */, - ); - sourceTree = ""; - }; - FAE451BB14BA79C600190544 /* Products */ = { - isa = PBXGroup; - children = ( - FAE451BA14BA79C600190544 /* ZeroTier One.app */, - ); - name = Products; - sourceTree = ""; - }; - FAE451BD14BA79C600190544 /* Frameworks */ = { - isa = PBXGroup; - children = ( - C1C2B9901AFB0CF10060D7C2 /* Security.framework */, - 6F169DAB18CD8A4A005EDDF3 /* JavaScriptCore.framework */, - FA32509C14BA813600BF0781 /* WebKit.framework */, - FAE451BE14BA79C600190544 /* Cocoa.framework */, - FAE451C014BA79C600190544 /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - FAE451C014BA79C600190544 /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - FAE451C114BA79C600190544 /* AppKit.framework */, - FAE451C214BA79C600190544 /* CoreData.framework */, - FAE451C314BA79C600190544 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - FAE451C414BA79C600190544 /* MacGap */ = { - isa = PBXGroup; - children = ( - FA3250E014BA87B800BF0781 /* Classes */, - FAE451D014BA79C600190544 /* AppDelegate.h */, - FAE451D114BA79C600190544 /* AppDelegate.m */, - C14EFCA61B0986AF00894B5F /* ZeroTierIcon.icns */, - FAE451D314BA79C600190544 /* MainMenu.xib */, - 88C0646414BDEC5800E4BCE2 /* Window.xib */, - FAE451C514BA79C600190544 /* Supporting Files */, - ); - path = MacGap; - sourceTree = ""; - }; - FAE451C514BA79C600190544 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - FAE451C614BA79C600190544 /* MacGap-Info.plist */, - FAE451C714BA79C600190544 /* InfoPlist.strings */, - FAE451CA14BA79C600190544 /* main.m */, - FAE451CC14BA79C600190544 /* MacGap-Prefix.pch */, - FAE451CD14BA79C600190544 /* Credits.rtf */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FAE451B914BA79C600190544 /* MacGap */ = { - isa = PBXNativeTarget; - buildConfigurationList = FAE451D814BA79C600190544 /* Build configuration list for PBXNativeTarget "MacGap" */; - buildPhases = ( - FAE451B814BA79C600190544 /* Resources */, - FAE451B614BA79C600190544 /* Sources */, - FAE451B714BA79C600190544 /* Frameworks */, - FA3250DD14BA876F00BF0781 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = MacGap; - productName = MacGap; - productReference = FAE451BA14BA79C600190544 /* ZeroTier One.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - FAE451B114BA79C600190544 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0710; - ORGANIZATIONNAME = Twitter; - }; - buildConfigurationList = FAE451B414BA79C600190544 /* Build configuration list for PBXProject "MacGap" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = FAE451AF14BA79C600190544; - productRefGroup = FAE451BB14BA79C600190544 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FAE451B914BA79C600190544 /* MacGap */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - FAE451B814BA79C600190544 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C14EFCA71B0986AF00894B5F /* ZeroTierIcon.icns in Resources */, - FAE451C914BA79C600190544 /* InfoPlist.strings in Resources */, - FAE451CF14BA79C600190544 /* Credits.rtf in Resources */, - FAE451D514BA79C600190544 /* MainMenu.xib in Resources */, - 88C0646614BDEC5800E4BCE2 /* Window.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - FAE451B614BA79C600190544 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 6F169DAA18CC35FD005EDDF3 /* CallbackDelegate.m in Sources */, - FA3250D314BA860800BF0781 /* App.m in Sources */, - FA3250D514BA860800BF0781 /* Dock.m in Sources */, - FA3250D914BA860800BF0781 /* Path.m in Sources */, - FA3250DB14BA860800BF0781 /* Sound.m in Sources */, - FA3250C314BA85E700BF0781 /* ContentView.m in Sources */, - FA3250C514BA85E700BF0781 /* Utils.m in Sources */, - FA3250C714BA85E700BF0781 /* WebViewDelegate.m in Sources */, - FAE451CB14BA79C600190544 /* main.m in Sources */, - 6F169DB118CD906F005EDDF3 /* MenuItemProxy.m in Sources */, - FAE451D214BA79C600190544 /* AppDelegate.m in Sources */, - 6F169DA718CC332E005EDDF3 /* Command.m in Sources */, - 6FD672B618FE618E00C0DAAD /* UserDefaults.m in Sources */, - 88C0646014BDE10A00E4BCE2 /* Window.m in Sources */, - 6F169DB218CD906F005EDDF3 /* MenuProxy.m in Sources */, - 88C0646D14BDF6A600E4BCE2 /* WindowController.m in Sources */, - 6FD6E4ED18C2D48C00DFFBE6 /* fonts.m in Sources */, - 88746BEE14CCA435001E160E /* JSEventHelper.m in Sources */, - 1495814F15C15CCC00E1CFE5 /* Notice.m in Sources */, - F2B80016179E0FC100B069A8 /* Clipboard.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 88C0646414BDEC5800E4BCE2 /* Window.xib */ = { - isa = PBXVariantGroup; - children = ( - 88C0646514BDEC5800E4BCE2 /* en */, - ); - name = Window.xib; - sourceTree = ""; - }; - FAE451C714BA79C600190544 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - FAE451C814BA79C600190544 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - FAE451CD14BA79C600190544 /* Credits.rtf */ = { - isa = PBXVariantGroup; - children = ( - FAE451CE14BA79C600190544 /* en */, - ); - name = Credits.rtf; - sourceTree = ""; - }; - FAE451D314BA79C600190544 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - FAE451D414BA79C600190544 /* en */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - FAE451D614BA79C600190544 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = NO; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_VERSION = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "ZeroTier One"; - SDKROOT = ""; - }; - name = Debug; - }; - FAE451D714BA79C600190544 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_VERSION = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "ZeroTier One"; - SDKROOT = ""; - }; - name = Release; - }; - FAE451D914BA79C600190544 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; - CLANG_CXX_LIBRARY = "compiler-default"; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/MacGap\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MacGap/MacGap-Prefix.pch"; - GCC_VERSION = ""; - INFOPLIST_FILE = "MacGap/MacGap-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_BUNDLE_IDENTIFIER = "com.zerotier.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "ZeroTier One"; - SDKROOT = macosx; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - FAE451DA14BA79C600190544 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; - CLANG_CXX_LIBRARY = "compiler-default"; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/MacGap\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MacGap/MacGap-Prefix.pch"; - GCC_VERSION = ""; - INFOPLIST_FILE = "MacGap/MacGap-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_BUNDLE_IDENTIFIER = "com.zerotier.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "ZeroTier One"; - SDKROOT = macosx; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - FAE451B414BA79C600190544 /* Build configuration list for PBXProject "MacGap" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FAE451D614BA79C600190544 /* Debug */, - FAE451D714BA79C600190544 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FAE451D814BA79C600190544 /* Build configuration list for PBXNativeTarget "MacGap" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FAE451D914BA79C600190544 /* Debug */, - FAE451DA14BA79C600190544 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = FAE451B114BA79C600190544 /* Project object */; -} diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 88f36fc7b..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcshareddata/MacGap.xccheckout b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcshareddata/MacGap.xccheckout deleted file mode 100644 index 7fdde8531..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcshareddata/MacGap.xccheckout +++ /dev/null @@ -1,41 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - 4D486E78-E297-4CC3-AAAE-1A58EDAC87E6 - IDESourceControlProjectName - MacGap - IDESourceControlProjectOriginsDictionary - - ABA3617E9F0148F844A82502F0D808DE6591AA97 - http://adam.ierymenko@git.int.zerotier.com/zerotier/zerotierone - - IDESourceControlProjectPath - ext/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj - IDESourceControlProjectRelativeInstallPathDictionary - - ABA3617E9F0148F844A82502F0D808DE6591AA97 - ../../../../.. - - IDESourceControlProjectURL - http://adam.ierymenko@git.int.zerotier.com/zerotier/zerotierone - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - ABA3617E9F0148F844A82502F0D808DE6591AA97 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - ABA3617E9F0148F844A82502F0D808DE6591AA97 - IDESourceControlWCCName - ZeroTierOne - - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/Alex.xcuserdatad/UserInterfaceState.xcuserstate b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/Alex.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 20281812beaefed26ed5a7ceb16e431be71ad75f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46675 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 - - - - HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - SnapshotAutomaticallyBeforeSignificantChanges - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/liamks.xcuserdatad/UserInterfaceState.xcuserstate b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/liamks.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 822ed3cb6581b8e606bab5208852eff2f504b0a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27811 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 diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/liamks.xcuserdatad/WorkspaceSettings.xcsettings b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/liamks.xcuserdatad/WorkspaceSettings.xcsettings deleted file mode 100644 index 6ff33e603..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/liamks.xcuserdatad/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - IDEWorkspaceUserSettings_HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - IDEWorkspaceUserSettings_SnapshotAutomaticallyBeforeSignificantChanges - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.h deleted file mode 100644 index bf7370b50..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// AppDelegate.h -// MacGap -// -// Created by Alex MacCaw on 08/01/2012. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import -#import "Classes/ContentView.h" - -#import "WindowController.h" - -@interface AppDelegate : NSObject - -@property (retain, nonatomic) WindowController *windowController; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.m deleted file mode 100644 index 45923bb36..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/AppDelegate.m +++ /dev/null @@ -1,159 +0,0 @@ -// -// AppDelegate.m -// MacGap -// -// Created by Alex MacCaw on 08/01/2012. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "AppDelegate.h" -#include -#include - -@implementation AppDelegate - -@synthesize windowController; - -- (void) applicationWillFinishLaunching:(NSNotification *)aNotification -{ -} - --(BOOL)applicationShouldHandleReopen:(NSApplication*)application - hasVisibleWindows:(BOOL)visibleWindows{ - if(!visibleWindows){ - [self.windowController.window makeKeyAndOrderFront: nil]; - } - return YES; -} - -- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication { - return YES; -} - -- (void) applicationDidFinishLaunching:(NSNotification *)aNotification { - char buf[16384],userAuthTokenPath[4096]; - struct stat systemAuthTokenStat,userAuthTokenStat; - - FILE *pf = fopen("/Library/Application Support/ZeroTier/One/zerotier-one.port","r"); - long port = 9993; // default - if (pf) { - long n = fread(buf,1,sizeof(buf)-1,pf); - if (n > 0) { - buf[n] = (char)0; - port = strtol(buf,(char **)0,10); - } - fclose(pf); - } - - char url[16384]; - memset(url,0,sizeof(url)); - - const char *homeDir = getenv("HOME"); - if (homeDir) { - snprintf(userAuthTokenPath,sizeof(userAuthTokenPath),"%s/Library/Application Support/ZeroTier/One/authtoken.secret",homeDir); - - bool userAuthTokenOutOfDate = false; - memset(&systemAuthTokenStat,0,sizeof(systemAuthTokenStat)); - memset(&userAuthTokenStat,0,sizeof(userAuthTokenStat)); - if (stat("/Library/Application Support/ZeroTier/One/authtoken.secret",&systemAuthTokenStat) == 0) { - if (stat(userAuthTokenPath,&userAuthTokenStat) == 0) { - if (userAuthTokenStat.st_mtimespec.tv_sec < systemAuthTokenStat.st_mtimespec.tv_sec) - userAuthTokenOutOfDate = true; - } - } - - if (!userAuthTokenOutOfDate) { - pf = fopen(userAuthTokenPath,"r"); - if (pf) { - long n = fread(buf,1,sizeof(buf)-1,pf); - if (n > 0) { - buf[n] = (char)0; - snprintf(url,sizeof(url),"http://127.0.0.1:%ld/index.html?authToken=%s",port,buf); - } - fclose(pf); - } - } - } - - if (!url[0]) { - // Create authorization reference - OSStatus status; - AuthorizationRef authorizationRef; - - // AuthorizationCreate and pass NULL as the initial - // AuthorizationRights set so that the AuthorizationRef gets created - // successfully, and then later call AuthorizationCopyRights to - // determine or extend the allowable rights. - // http://developer.apple.com/qa/qa2001/qa1172.html - status = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &authorizationRef); - if (status != errAuthorizationSuccess) - { - NSLog(@"Error Creating Initial Authorization: %d", status); - return; - } - - // kAuthorizationRightExecute == "system.privilege.admin" - AuthorizationItem right = {kAuthorizationRightExecute, 0, NULL, 0}; - AuthorizationRights rights = {1, &right}; - AuthorizationFlags flags = kAuthorizationFlagDefaults | kAuthorizationFlagInteractionAllowed | - kAuthorizationFlagPreAuthorize | kAuthorizationFlagExtendRights; - - // Call AuthorizationCopyRights to determine or extend the allowable rights. - status = AuthorizationCopyRights(authorizationRef, &rights, NULL, flags, NULL); - if (status != errAuthorizationSuccess) - { - NSLog(@"Copy Rights Unsuccessful: %d", status); - return; - } - - // use rm tool with -rf - char *tool = "/bin/cat"; - char *args[] = {"/Library/Application Support/ZeroTier/One/authtoken.secret", NULL}; - FILE *pipe = NULL; - - status = AuthorizationExecuteWithPrivileges(authorizationRef, tool, kAuthorizationFlagDefaults, args, &pipe); - if (status != errAuthorizationSuccess) - { - NSLog(@"Error: %d", status); - } - - if (pipe) { - long n = (long)fread(buf,1,sizeof(buf)-1,pipe); - if (n > 0) { - buf[n] = (char)0; - snprintf(url,sizeof(url),"http://127.0.0.1:%ld/index.html?authToken=%s",port,buf); - - if (homeDir) { - snprintf(userAuthTokenPath,sizeof(userAuthTokenPath),"%s/Library/Application Support/ZeroTier",homeDir); - mkdir(userAuthTokenPath,0755); - snprintf(userAuthTokenPath,sizeof(userAuthTokenPath),"%s/Library/Application Support/ZeroTier/One",homeDir); - mkdir(userAuthTokenPath,0755); - snprintf(userAuthTokenPath,sizeof(userAuthTokenPath),"%s/Library/Application Support/ZeroTier/One/authtoken.secret",homeDir); - pf = fopen(userAuthTokenPath,"w"); - if (pf) { - fwrite(buf,1,strlen(buf),pf); - fclose(pf); - chmod(userAuthTokenPath,0600); - } - } - } - fclose(pipe); - } - - // The only way to guarantee that a credential acquired when you - // request a right is not shared with other authorization instances is - // to destroy the credential. To do so, call the AuthorizationFree - // function with the flag kAuthorizationFlagDestroyRights. - // http://developer.apple.com/documentation/Security/Conceptual/authorization_concepts/02authconcepts/chapter_2_section_7.html - status = AuthorizationFree(authorizationRef, kAuthorizationFlagDestroyRights); - } - - NSString *urlStr = [[NSString alloc] initWithCString:url]; - self.windowController = [[WindowController alloc] initWithURL: urlStr]; - [self.windowController showWindow: [NSApplication sharedApplication].delegate]; - self.windowController.contentView.webView.alphaValue = 1.0; - self.windowController.contentView.alphaValue = 1.0; - [self.windowController showWindow:self]; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.h deleted file mode 100755 index 0f31ee417..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// CallbackDelegate.h -// MacGap -// -// Created by Joe Hildebrand on 1/10/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "Command.h" - -@interface CallbackDelegate : Command { -} - -@property JSObjectRef callback; - -- (id) initWithContext:(JSContextRef)aContext forCallback:(WebScriptObject*)aCallback; -- (id) call; -- (id) callWithParams:(id)firstOrNil, ... NS_REQUIRES_NIL_TERMINATION; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.m deleted file mode 100755 index 5ce8fbe33..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/CallbackDelegate.m +++ /dev/null @@ -1,168 +0,0 @@ -// -// CallbackDelegate.m -// MacGap -// -// Created by Joe Hildebrand on 1/10/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "CallbackDelegate.h" -#import - -@implementation CallbackDelegate - -@synthesize callback; - -- (id) initWithContext:(JSContextRef)aContext forCallback:(WebScriptObject*)aCallback -{ - if (!aCallback) - return nil; - if ([aCallback isKindOfClass:[WebUndefined class]]) - return nil; - - self = [super initWithContext:aContext]; - if (!self) - return nil; - - callback = [aCallback JSObject]; - JSValueProtect(context, callback); - return self; -} - -- (void) dealloc -{ - if (callback) - { - JSValueUnprotect(context, callback); - callback = nil; - } -} - -- (id) objectFromValue:(JSValueRef)val -{ - JSStringRef jstr; - NSString *rets; - - switch(JSValueGetType(context, val)) - { - case kJSTypeUndefined: - case kJSTypeNull: - return nil; - case kJSTypeBoolean: - return [NSNumber numberWithBool:JSValueToBoolean(context, val)]; - case kJSTypeNumber: - return [NSNumber numberWithDouble:JSValueToNumber(context, val, NULL)]; - case kJSTypeString: - jstr = JSValueToStringCopy(context, val, NULL); - size_t sz = JSStringGetMaximumUTF8CStringSize(jstr); - char *buf = (char*)malloc(sz); - JSStringGetUTF8CString(jstr, buf, sz); - rets = [NSString stringWithUTF8String:buf]; - free(buf); - return rets; - case kJSTypeObject: - // TODO: dictionary or something - return nil; - default: - NSAssert(false, @"Invalid JavaScript type"); - return nil; - } -} - -- (JSValueRef) valueFromObject:(id)obj -{ - JSValueRef val = nil; - if (!obj) - { - val = JSValueMakeNull(context); - } - else if ([obj isKindOfClass:[NSString class]]) - { - JSStringRef jstr = JSStringCreateWithUTF8CString([obj UTF8String]); - val = JSValueMakeString(context, jstr); - JSStringRelease(jstr); - } - else if ([obj isKindOfClass:[NSNumber class]]) - { - val = JSValueMakeNumber(context, [obj doubleValue]); - } - else if ([obj isKindOfClass:[NSDictionary class]]) - { - JSObjectRef o = JSObjectMake(context, NULL, NULL); - for (NSString *key in obj) - { - JSStringRef kstr = JSStringCreateWithUTF8CString([key UTF8String]); - JSValueRef v = [self valueFromObject:[obj objectForKey:key]]; - - JSObjectSetProperty(context, o, kstr, v, kJSPropertyAttributeNone, NULL); - JSStringRelease(kstr); - } - val = o; - } - else if ([obj isKindOfClass:[NSArray class]]) - { - NSUInteger pcount = [obj count]; - JSValueRef jsArgs[pcount]; - NSUInteger i=0; - for (id v in obj) - { - jsArgs[i++] = [self valueFromObject:v]; - } - val = JSObjectMakeArray(context, pcount, jsArgs, NULL); - } - else if ([obj isKindOfClass:[NSDate class]]) - { - NSTimeInterval secs = [obj timeIntervalSince1970]; - JSValueRef jsArgs[1]; - // call the Date(milliseconds) constructor in JS - jsArgs[0] = JSValueMakeNumber(context, secs * 1000.0); - val = JSObjectMakeDate(context, 1, jsArgs, NULL); - } - else - { - NSLog(@"Warning: unknown object type for: %@", obj); - val = JSValueMakeUndefined(context); - } - return val; -} - -- (id) call -{ - NSAssert(callback, @"Callback required"); - if (!JSObjectIsFunction(context, callback)) - return nil; - - JSValueRef jsArgs[0]; - JSValueRef ret = JSObjectCallAsFunction(context, callback, NULL, 0, jsArgs, NULL); - return [self objectFromValue:ret]; -} - -- (id) callWithParams:(id)firstOrNil, ... -{ - NSAssert(callback, @"Callback required"); - if (!JSObjectIsFunction(context, callback)) - return nil; - NSUInteger pcount = 0; - id p; - va_list args; - va_start(args, firstOrNil); - for (p=firstOrNil; p; p=va_arg(args, id)) - { - pcount++; - } - va_end(args); - - JSValueRef jsArgs[pcount]; - NSUInteger j = 0; - va_start(args, firstOrNil); - for (p=firstOrNil; p; p=va_arg(args, id)) - { - jsArgs[j++] = [self valueFromObject:p]; - } - va_end(args); - - JSValueRef ret = JSObjectCallAsFunction(context, callback, NULL, j, jsArgs, NULL); - return [self objectFromValue:ret]; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.h deleted file mode 100644 index f65ba61e1..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -#import "WindowController.h" - -@interface App : NSObject { - -} - -@property (nonatomic, retain) WebView *webView; - -- (id) initWithWebView:(WebView *)view; - -- (void) terminate; -- (void) activate; -- (void) hide; -- (void) unhide; -- (void) beep; -- (void) bounce; -- (void) setCustomUserAgent:(NSString *)userAgentString; -- (NSNumber*) systemIdleTime; -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.m deleted file mode 100644 index 6d47a17e1..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/App.m +++ /dev/null @@ -1,128 +0,0 @@ -#import "App.h" - -#import "JSEventHelper.h" - -@implementation App - -@synthesize webView; - -- (id) initWithWebView:(WebView *) view{ - self = [super init]; - - if (self) { - self.webView = view; - [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver: self - selector: @selector(receiveSleepNotification:) - name: NSWorkspaceWillSleepNotification object: NULL]; - [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver: self - selector: @selector(receiveWakeNotification:) - name: NSWorkspaceDidWakeNotification object: NULL]; - [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver: self - selector: @selector(receiveActivateNotification:) - name: NSWorkspaceDidActivateApplicationNotification object: NULL]; - } - - return self; -} - -- (void) terminate { - [NSApp terminate:nil]; -} - -- (void) activate { - [NSApp activateIgnoringOtherApps:YES]; -} - -- (void) hide { - [NSApp hide:nil]; -} - -- (void) unhide { - [NSApp unhide:nil]; -} - -- (void)beep { - NSBeep(); -} - -- (void) bounce { - [NSApp requestUserAttention:NSInformationalRequest]; -} - -- (void)setCustomUserAgent:(NSString *)userAgentString { - [self.webView setCustomUserAgent: userAgentString]; -} - -- (void) open:(NSString*)url { - [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]]; -} - -- (void) launch:(NSString *)name { - [[NSWorkspace sharedWorkspace] launchApplication:name]; -} - -- (void)receiveSleepNotification:(NSNotification*)note{ - [JSEventHelper triggerEvent:@"sleep" forWebView:self.webView]; -} - -- (void) receiveWakeNotification:(NSNotification*)note{ - [JSEventHelper triggerEvent:@"wake" forWebView:self.webView]; -} - -- (void) receiveActivateNotification:(NSNotification*)notification{ - NSDictionary* userInfo = [notification userInfo]; - NSRunningApplication* runningApplication = [userInfo objectForKey:NSWorkspaceApplicationKey]; - if (runningApplication) { - NSMutableDictionary* applicationDidGetFocusDict = [[NSMutableDictionary alloc] initWithCapacity:2]; - [applicationDidGetFocusDict setObject:runningApplication.localizedName - forKey:@"localizedName"]; - [applicationDidGetFocusDict setObject:[runningApplication.bundleURL absoluteString] - forKey:@"bundleURL"]; - - [JSEventHelper triggerEvent:@"appActivated" withArgs:applicationDidGetFocusDict forWebView:self.webView]; - } -} - - - - -/* - To get the elapsed time since the previous input event—keyboard, mouse, or tablet—specify kCGAnyInputEventType. - */ -- (NSNumber*)systemIdleTime { - CFTimeInterval timeSinceLastEvent = CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateHIDSystemState, kCGAnyInputEventType); - - return [NSNumber numberWithDouble:timeSinceLastEvent]; -} - - - - -+ (NSString*) webScriptNameForSelector:(SEL)selector -{ - id result = nil; - - if (selector == @selector(open:)) { - result = @"open"; - } else if (selector == @selector(launch:)) { - result = @"launch"; - } else if (selector == @selector(setCustomUserAgent:)) { - result = @"setCustomUserAgent"; - } else if (selector == @selector(systemIdleTime)) { - result = @"systemIdleTime"; - } - - return result; -} - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return NO; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return YES; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.h deleted file mode 100755 index 65d6b6d48..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// Command.h -// MacGap -// -// Created by Joe Hildebrand on 1/10/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import -#import - -@interface Command : NSObject { - JSContextRef context; -} - -- (id) initWithContext:(JSContextRef)aContext; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.m deleted file mode 100755 index 39b85630a..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Command.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// Command.m -// MacGap -// -// Created by Joe Hildebrand on 1/10/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "Command.h" -#import - -@implementation Command - -- (id) initWithContext:(JSContextRef)aContext { - self = [super init]; - if (!self) - return nil; - context = aContext; - JSGlobalContextRetain((JSGlobalContextRef)context); - return self; -} - -- (void)dealloc -{ - if (context) - JSGlobalContextRelease((JSGlobalContextRef)context); -} -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.h deleted file mode 100644 index b3c533d79..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -@interface Dock : NSObject { - -} -- (void) setBadge:(NSString*)value; -- (NSString *) badge; - -@property (readwrite, copy) NSString *badge; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.m deleted file mode 100644 index a4494d165..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Dock.m +++ /dev/null @@ -1,31 +0,0 @@ -#import "Dock.h" - -@implementation Dock - -@synthesize badge; - -- (void) setBadge:(NSString *)value -{ - NSDockTile *tile = [[NSApplication sharedApplication] dockTile]; - [tile setBadgeLabel:value]; -} - -- (NSString *) badge -{ - NSDockTile *tile = [[NSApplication sharedApplication] dockTile]; - return [tile badgeLabel]; -} - -#pragma mark WebScripting Protocol - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return NO; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return NO; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.h deleted file mode 100755 index d765978fa..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// MenuItemProxy.h -// MacGap -// -// Created by Joe Hildebrand on 1/15/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "Command.h" -#import "CallbackDelegate.h" - -@class MenuProxy; - -@interface MenuItemProxy : Command { - NSMenuItem *item; - CallbackDelegate *callback; -} - -+ (MenuItemProxy*) proxyWithContext:(JSContextRef)aContext andMenuItem:(NSMenuItem*)anItem; - -- (MenuProxy*)addSubmenu; - -- (void) remove; -- (void) setCallback:(WebScriptObject*)aCallback; -- (void) setKey:(NSString*)keyCommand; -- (void) setTitle:(NSString*)title; -- (void) enable; -- (void) disable; -- (MenuProxy*)submenu; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.m deleted file mode 100755 index 7b9702cc4..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuItemProxy.m +++ /dev/null @@ -1,150 +0,0 @@ -// -// MenuItemProxy.m -// MacGap -// -// Created by Joe Hildebrand on 1/15/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "MenuItemProxy.h" -#import "MenuProxy.h" - -@implementation MenuItemProxy - -- (id) initWithContext:(JSContextRef)aContext andMenuItem:(NSMenuItem*)anItem -{ - NSAssert(anItem, @"anItem required"); - self = [super initWithContext:aContext]; - if (!self) - return nil; - item = anItem; - item.representedObject = self; - - return self; -} - -+ (MenuItemProxy*) proxyWithContext:(JSContextRef)aContext andMenuItem:(NSMenuItem*)anItem -{ - MenuItemProxy *proxy = [anItem representedObject]; - if (proxy) - { - NSLog(@"MIP Cache hit"); - NSAssert([proxy class] == [MenuItemProxy class], @"Bad proxy"); - return proxy; - } - return [[MenuItemProxy alloc] initWithContext:aContext andMenuItem:anItem]; -} - -- (NSString*) description -{ - return [item description]; -} - -- (MenuProxy*)addSubmenu -{ - NSMenu *s = [item submenu]; - if (!s) - { - s = [[NSMenu alloc] initWithTitle:@"FFFFFFOOOOO"]; - [item setSubmenu:s]; - } - return [MenuProxy proxyWithContext:context andMenu:s]; -} - -- (void) remove -{ - NSMenu *menu = [item menu]; - [menu removeItem:item]; -} - -- (void)callCallback:(id)sender -{ - [callback callWithParams:[sender title], nil]; -} - -- (void) setCallback:(WebScriptObject*)aCallback -{ - NSAssert(item, @"item required"); - callback = [[CallbackDelegate alloc] initWithContext:context forCallback:aCallback]; - [item setAction:@selector(callCallback:)]; - [item setTarget:self]; -} - -- (void)setKey:(NSString*)keyCommand -{ - NSString *aKey = [MenuProxy getKeyFromString:keyCommand]; - [item setKeyEquivalent:aKey]; - - NSUInteger modifiers = [MenuProxy getModifiersFromString:keyCommand]; - [item setKeyEquivalentModifierMask:modifiers]; -} - -- (void) setTitle:(NSString*)title -{ - [item setTitle:title]; -} - -- (MenuProxy*)submenu; -{ - // TODO: make this work as a property - NSMenu *s = [item submenu]; - if (!s) - return nil; - return [MenuProxy proxyWithContext:context andMenu:s]; -} - -- (void) enable -{ - [item setEnabled:YES]; -} - -- (void) disable -{ - [item setEnabled:NO]; -} - -#pragma mark WebScripting protocol - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return [self webScriptNameForSelector:selector] == nil; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return YES; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector -{ - id result = nil; - - if (selector == @selector(addSubmenu)) { - result = @"addSubmenu"; - } - else if (selector == @selector(remove)) { - result = @"remove"; - } - else if (selector == @selector(setCallback:)) { - result = @"setCallback"; - } - else if (selector == @selector(setKey:)) { - result = @"setKey"; - } - else if (selector == @selector(setTitle:)) { - result = @"setTitle"; - } - else if (selector == @selector(submenu)) { - result = @"submenu"; - } - else if (selector == @selector(enable)) { - result = @"enable"; - } - else if (selector == @selector(disable)) { - result = @"disable"; - } - - return result; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.h deleted file mode 100755 index afd6c6edb..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// MenuProxy.h -// MacGap -// -// Created by Joe Hildebrand on 1/14/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "Command.h" - -@class MenuItemProxy; - -@interface MenuProxy : Command { - NSMenu *menu; -} - -+ (MenuProxy*)proxyWithContext:(JSContextRef)aContext andMenu:(NSMenu*)aMenu; - -- (MenuItemProxy*)addItemWithTitle:(NSString*)title - keyEquivalent:(NSString*)aKey - callback:(WebScriptObject*)aCallback - atIndex:(NSInteger)index; - -- (MenuItemProxy*)addSeparator; -- (MenuItemProxy*)itemForKey:(id)key; -- (MenuProxy*)removeItem:(id)key; - -+ (NSString*)getKeyFromString:(NSString*)keyCommand; -+ (NSUInteger*)getModifiersFromString:(NSString*)keyCommand; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.m deleted file mode 100755 index 5bc10a763..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/MenuProxy.m +++ /dev/null @@ -1,233 +0,0 @@ -// -// MenuProxy.m -// MacGap -// -// Created by Joe Hildebrand on 1/14/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import -#import - -#import "MenuProxy.h" -#import "MenuItemProxy.h" - -static char REPRESENTED_OBJECT; - -@interface NSMenu (represented) -@property (strong) id representedObject; -@end - -@implementation NSMenu (represented) - -- (id) representedObject -{ - return objc_getAssociatedObject(self, &REPRESENTED_OBJECT); -} - -- (void) setRepresentedObject:(id)representedObject -{ - objc_setAssociatedObject(self, - &REPRESENTED_OBJECT, - representedObject, - OBJC_ASSOCIATION_RETAIN); -} - -@end - -@implementation MenuProxy - -- (id) initWithContext:(JSContextRef)aContext andMenu:(NSMenu*)aMenu -{ - self = [super initWithContext:aContext]; - if (!self) - return nil; - menu = aMenu; - menu.representedObject = self; - return self; -} - -+ (MenuProxy*)proxyWithContext:(JSContextRef)aContext andMenu:(NSMenu*)aMenu -{ - // singleton-ish. - MenuProxy *ret = [aMenu representedObject]; - if (ret) - { - NSLog(@"MP cache hit"); - return ret; - } - return [[MenuProxy alloc] initWithContext:aContext andMenu:aMenu]; -} - -- (void) dealloc -{ - menu.representedObject = nil; -} - -- (NSString*) description -{ - return [menu description]; -} - -static BOOL isNullish(id o) -{ - if (!o) - return YES; - if ([o isKindOfClass:[WebUndefined class]]) - return YES; - return NO; -} - -- (MenuItemProxy*)addItemWithTitle:(NSString*)title - keyEquivalent:(NSString*)keyCommand - callback:(WebScriptObject*)aCallback - atIndex:(NSInteger)index -{ - if (isNullish(title)) - title = @""; - - NSString *aKey = [MenuProxy getKeyFromString:keyCommand]; - NSMenuItem *item = nil; - - if(index) { - item = [menu insertItemWithTitle:title action:nil keyEquivalent:aKey atIndex:index ]; - } else { - item = [menu addItemWithTitle:title action:nil keyEquivalent:aKey ]; - - } - - // Set the modifiers. - NSUInteger modifiers = [MenuProxy getModifiersFromString:keyCommand]; - [item setKeyEquivalentModifierMask:modifiers]; - - if(!menu.supermenu) { - NSMenu *s = [[NSMenu alloc] initWithTitle:title]; - [item setSubmenu:s]; - } - - MenuItemProxy *mip = [MenuItemProxy proxyWithContext:context andMenuItem:item]; - if (!isNullish(aCallback)) - [mip setCallback:aCallback]; - - - return mip; -} - -+ (NSString*)getKeyFromString:(NSString*)keyCommand { - if (isNullish(keyCommand)) - keyCommand = @""; - - // Obtain the key (if there are modifiers, it will be the last character). - NSString *aKey = @""; - if ([keyCommand length] > 0) { - aKey = [keyCommand substringFromIndex:[keyCommand length] - 1]; - } - - return aKey; -} - -+ (NSUInteger*)getModifiersFromString:(NSString*)keyCommand { - // aKeys may optionally specify one or more modifiers. - NSUInteger modifiers = 0; - - if ([keyCommand rangeOfString:@"caps"].location != NSNotFound) modifiers += NSAlphaShiftKeyMask; - if ([keyCommand rangeOfString:@"shift"].location != NSNotFound) modifiers += NSShiftKeyMask; - if ([keyCommand rangeOfString:@"cmd"].location != NSNotFound) modifiers += NSCommandKeyMask; - if ([keyCommand rangeOfString:@"ctrl"].location != NSNotFound) modifiers += NSControlKeyMask; - if ([keyCommand rangeOfString:@"opt"].location != NSNotFound) modifiers += NSAlternateKeyMask; - if ([keyCommand rangeOfString:@"alt"].location != NSNotFound) modifiers += NSAlternateKeyMask; - - return modifiers; -} - -- (MenuItemProxy*)addSeparator -{ - NSMenuItem *sep = [NSMenuItem separatorItem]; - [menu addItem:sep]; - return [MenuItemProxy proxyWithContext:context andMenuItem:sep]; -} - -- (MenuItemProxy*)itemForKey:(id)key -{ - if (isNullish(key)) - return nil; - NSMenuItem *item = nil; - if ([key isKindOfClass:[NSNumber class]]) - { - item = [menu itemAtIndex:[key intValue]]; - } - else if ([key isKindOfClass:[NSString class]]) - { - item = [menu itemWithTitle:key]; - if (!item) - { - // Try again, with ... appended. e.g. "Save..." - item = [menu itemWithTitle: - [key stringByAppendingString:@"\u2026"]]; - } - } - if (!item) - return nil; - - return [MenuItemProxy proxyWithContext:context andMenuItem:item]; -} - -- (MenuProxy*)removeItem:(id)key -{ - if (isNullish(key)) - return nil; - - NSMenuItem *item = nil; - if ([key isKindOfClass:[NSNumber class]]) - { - item = [menu itemAtIndex:[key intValue]]; - } - else if ([key isKindOfClass:[NSString class]]) - { - item = [menu itemWithTitle:key]; - if (!item) - { - // Try again, with ... appended. e.g. "Save..." - item = [menu itemWithTitle: - [key stringByAppendingString:@"\u2026"]]; - } - } - if (!item) - return nil; - - [menu removeItem:item]; - return [MenuProxy proxyWithContext:context andMenu:menu]; -} - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return [self webScriptNameForSelector:selector] == nil; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return YES; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector -{ - id result = nil; - - if (selector == @selector(addItemWithTitle:keyEquivalent:callback:atIndex:)) { - result = @"addItem"; - } - else if (selector == @selector(addSeparator)) { - result = @"addSeparator"; - } - else if (selector == @selector(itemForKey:)) { - result = @"getItem"; - } - else if (selector == @selector(removeItem:)) { - result = @"removeMenu"; - } - - return result; -} - - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.h deleted file mode 100644 index 51077a434..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// Notice.h -// MacGap -// -// Created by Christian Sullivan on 7/26/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import -#import "WindowController.h" - -#define APP_NOTICE_NOTIFICATION @"Notice" - -@interface Notice : NSObject { - -} - -@property (nonatomic, retain) WebView *webView; - -- (id) initWithWebView:(WebView *)view; -- (void) notify:(NSDictionary*)message; -- (void) close:(NSString*)notificationId; -+ (BOOL) available; - -@end - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.m deleted file mode 100644 index a4095f9f2..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Notice.m +++ /dev/null @@ -1,108 +0,0 @@ -// -// Notice.m -// MacGap -// -// Created by Christian Sullivan on 7/26/12. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "Notice.h" - -#import "JSEventHelper.h" - -@implementation Notice - -- (id) initWithWebView:(WebView*)view -{ - if(self = [super init]) { - self.webView = view; - [[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self]; - } - return self; -} - -- (void) notify:(NSDictionary *)message { - NSUserNotification *notification = [[NSUserNotification alloc] init]; - [notification setTitle:[message valueForKey:@"title"]]; - [notification setInformativeText:[message valueForKey:@"content"]]; - [notification setDeliveryDate:[NSDate dateWithTimeInterval:0 sinceDate:[NSDate date]]]; - BOOL playSound = true; // optional parameter, false only when {sound: false} - @try { - NSNumber *s = [message valueForKey:@"sound"]; - if ([[s className] isEqual: @"__NSCFBoolean"]) { - playSound = [s boolValue]; - } - } - @catch (NSException *exception) { - } - if (playSound) { - [notification setSoundName:NSUserNotificationDefaultSoundName]; - } - NSString *id = @""; // optional, needed for close - @try { - id = [message valueForKey:@"id"]; - } - @catch (NSException *exception) { - } - [notification setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys:id, @"id", nil]]; - NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter]; - [center scheduleNotification:notification]; -} - -// close all notifications with id == notificationId or close all notifications if notificationId == "*" -- (void) close:(NSString*)notificationId { - NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter]; - for(NSUserNotification * deliveredNote in center.deliveredNotifications) { - if ([notificationId isEqualToString:@"*"] || [deliveredNote.userInfo[@"id"] isEqualToString:notificationId]) { - [center removeDeliveredNotification: deliveredNote]; - } - } -} - -+ (BOOL) available { - if ([NSUserNotificationCenter respondsToSelector:@selector(defaultUserNotificationCenter)]) - return YES; - - return NO; -} - -- (void) userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification -{ - NSString *notificationId = [notification.userInfo valueForKey:@"id"]; - [JSEventHelper triggerEvent:@"macgap.notify.activated" forDetail:notificationId forWebView:self.webView]; -} - -#pragma mark WebScripting Protocol - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - BOOL result = YES; - if (selector == @selector(notify:)) - result = NO; - if (selector == @selector(close:)) - result = NO; - - return result; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector -{ - id result = nil; - - if (selector == @selector(notify:)) { - result = @"notify"; - } - if (selector == @selector(close:)) { - result = @"close"; - } - - return result; -} - -// right now exclude all properties (eg keys) -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return YES; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.h deleted file mode 100644 index f931340d0..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -@interface Path : NSObject { - -} - -- (NSString *) application; -- (NSString *) resource; -- (NSString *) documents; -- (NSString *) library; -- (NSString *) home; -- (NSString *) temp; - -@property (readonly,copy) NSString* application; -@property (readonly,copy) NSString* resource; -@property (readonly,copy) NSString* documents; -@property (readonly,copy) NSString* library; -@property (readonly,copy) NSString* home; -@property (readonly,copy) NSString* temp; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.m deleted file mode 100644 index 8c54100f7..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Path.m +++ /dev/null @@ -1,53 +0,0 @@ -#import "Path.h" - -@implementation Path - -@synthesize application; -@synthesize resource; -@synthesize documents; -@synthesize library; -@synthesize home; -@synthesize temp; - -- (NSString *)application { - return [[NSBundle mainBundle] bundlePath]; -} - -- (NSString *)resource { - return [[NSBundle mainBundle] resourcePath]; -} - -- (NSString *)documents { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - return [paths objectAtIndex:0]; -} - -- (NSString *)library { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); - NSLog( @"%@", paths ); - return [paths objectAtIndex:0]; -} - -- (NSString *)home { - return NSHomeDirectory(); -} - -- (NSString *)temp { - return NSTemporaryDirectory(); -} - -#pragma mark WebScripting Protocol - -/* checks whether a selector is acceptable to be called from JavaScript */ -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return NO; -} - -// right now exclude all properties (eg keys) -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return NO; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.h deleted file mode 100644 index 067076439..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.h +++ /dev/null @@ -1,17 +0,0 @@ -#import -#import "Command.h" -#import "CallbackDelegate.h" - - -@interface Sound : Command { - -} - -// pending callbacks for sounds being played, to keep -// ARC from freeing them too early -@property (nonatomic, strong) NSMutableSet *pending; - -- (void) play:(NSString*)file onComplete:(WebScriptObject*)callback; -- (void) playSystem:(NSString*)name onComplete:(WebScriptObject*)callback; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.m deleted file mode 100644 index 9f4a44dbc..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/Sound.m +++ /dev/null @@ -1,97 +0,0 @@ -#import "Sound.h" - - -@interface PlayDelegate : CallbackDelegate { -} - -@property (nonatomic, weak) Sound *sound; - -- (id) initWithContext:(JSContextRef)aContext - forCallback:(WebScriptObject*)aCallback - withSound:(Sound*)aSound; -@end - -@implementation PlayDelegate - -@synthesize sound; - -- (id) initWithContext:(JSContextRef)aContext - forCallback:(WebScriptObject*)aCallback - withSound:(Sound*)aSound -{ - self = [super initWithContext:aContext forCallback:aCallback]; - if (!self) - return nil; - sound = aSound; - return self; -} - -- (void)sound:(NSSound *)aSound didFinishPlaying:(BOOL)finishedPlaying { - [self callWithParams:[aSound name], nil]; - [sound.pending removeObject:self]; -} - -@end - -@implementation Sound - -@synthesize pending; - -- (id) initWithContext:(JSContextRef)aContext { - self = [super initWithContext:aContext]; - if (!self) { - return nil; - } - - pending = [NSMutableSet new]; - return self; -} - -- (void) playSound:(NSSound*)sound onComplete:(WebScriptObject*)callback { - if (callback != (id)[WebUndefined undefined]) { - PlayDelegate *d = [[PlayDelegate alloc] initWithContext:context - forCallback:callback - withSound:self]; - [pending addObject:d]; - [sound setDelegate:d]; - } - [sound play]; -} - -- (void) play:(NSString*)file onComplete:(WebScriptObject*)callback { - NSURL* fileUrl = [NSURL fileURLWithPath:[[Utils sharedInstance] pathForResource:file]]; - DebugNSLog(@"Sound file:%@", [fileUrl description]); - - NSSound* sound = [[NSSound alloc] initWithContentsOfURL:fileUrl byReference:YES]; - [self playSound:sound onComplete:callback]; -} - -- (void) playSystem:(NSString*)name onComplete:(WebScriptObject*)callback { - NSSound *systemSound = [NSSound soundNamed:name]; - [self playSound:systemSound onComplete:callback]; -} - -#pragma mark WebScripting Protocol - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector { - return [self webScriptNameForSelector:selector] == nil; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name { - return YES; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector { - id result = nil; - - if (selector == @selector(play:onComplete:)) { - result = @"play"; - } - else if (selector == @selector(playSystem:onComplete:)) { - result = @"playSystem"; - } - - return result; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.h deleted file mode 100644 index 269191b39..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// UserDefaults.h -// MacGap -// -// Created by Jeff Hanbury on 16/04/2014. -// Copyright (c) 2014 Twitter. All rights reserved. -// - -#import - -#import "WindowController.h" - -@interface UserDefaults : NSObject - -@property (nonatomic, retain) WebView *webView; - -- (id) initWithWebView:(WebView *)view; -- (NSString*) getMyDefaults; -- (NSDictionary*) myDefaultsDictionary; -- (void) removeObjectForKey:(NSString*)key; -- (NSArray*) getUserDefaultsKeys; - -- (NSString*) addPrefix:(NSString*)key; - -- (void) setString:(NSString*)key withValue:(NSString*)value; -- (NSString*) getString:(NSString*)key; - -- (void) setInteger:(NSString*)key withValue:(NSString*)value; -- (NSNumber*) getInteger:(NSString*)key; - -- (void) setBool:(NSString*)key withValue:(NSString*)value; -- (NSNumber*) getBool:(NSString*)key; - -- (void) setFloat:(NSString*)key withValue:(NSString*)value; -- (NSNumber*) getFloat:(NSString*)key; - -// Could also be implemented: -//– setObject:forKey: -//– setDouble:forKey: -//– setURL:forKey: - -@end - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.m deleted file mode 100644 index 485687108..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/UserDefaults.m +++ /dev/null @@ -1,211 +0,0 @@ -// -// UserDefaults.m -// MacGap -// -// Created by Jeff Hanbury on 16/04/2014. -// Copyright (c) 2014 Twitter. All rights reserved. -// - -#import "UserDefaults.h" -#import "JSEventHelper.h" - -@interface UserDefaults() { - -} - --(void) setupNotificationCenter; - -@end - - -@implementation UserDefaults - -- (id) initWithWebView:(WebView *) view{ - self = [super init]; - - if (self) { - self.webView = view; - [self setupNotificationCenter]; - } - - return self; -} - - --(void) setupNotificationCenter{ - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(defaultsChanged:) - name:NSUserDefaultsDidChangeNotification - object:nil]; -} - -- (void)defaultsChanged:(NSNotification *)notification { - NSDictionary* returnDict = [self myDefaultsDictionary]; - [JSEventHelper triggerEvent:@"userDefaultsChanged" withArgs:returnDict forWebView:self.webView]; -} - -- (NSString*) getMyDefaults { - NSDictionary* myDefaults = [self myDefaultsDictionary]; - - return [[Utils sharedInstance] convertDictionaryToJSON:myDefaults]; -} - -- (NSDictionary*) myDefaultsDictionary { - NSString* prefix = [kWebScriptNamespace stringByAppendingString:@"_"]; - NSMutableDictionary* returnDict = [[NSMutableDictionary alloc] init]; - - // Get the user defaults. - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - // Build up a dictionary containing just the items beginning with our - // prefix. - for (NSString* key in [self getUserDefaultsKeys]) { - if ([key hasPrefix:prefix]) { - id val = [defaults valueForKey:key]; - [returnDict setObject:val forKey:key]; - } - } - - return returnDict; -} - -- (NSArray*) getUserDefaultsKeys { - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - return [[prefs dictionaryRepresentation] allKeys]; -} - -- (void) removeObjectForKey:(NSString*)key { - NSString* prefixedKey; - prefixedKey = [self addPrefix:key]; - - [[NSUserDefaults standardUserDefaults] removeObjectForKey:prefixedKey]; - [[NSUserDefaults standardUserDefaults] synchronize]; -} - -// Check we have a standard prefix for JS-modified keys, for security purposes. -// If not, add it. This stops JavaScript from ever being able to modify keys -// it did not create. -- (NSString*) addPrefix:(NSString*)key { - NSString* prefix; - prefix = [kWebScriptNamespace stringByAppendingString:@"_"]; - - if (![key hasPrefix:prefix]) { - key = [prefix stringByAppendingString:key]; - } - return key; -} - -// String - -- (void) setString:(NSString*)key withValue:(NSString*)value { - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - NSString* prefixedKey; - prefixedKey = [self addPrefix:key]; - [prefs setObject:value forKey:prefixedKey]; -} - -- (NSString*) getString:(NSString *)key { - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - return [prefs stringForKey:key]; -} - -// All the following must convert their type to NSNumber for JavaScript. - -// Integer - -- (void) setInteger:(NSString*)key withValue:(NSString*)value { - NSString* prefixedKey; - prefixedKey = [self addPrefix:key]; - - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - NSInteger myInt = [value intValue]; - [prefs setInteger:myInt forKey:prefixedKey]; -} - -- (NSNumber*) getInteger:(NSString *)key { - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - return [NSNumber numberWithInteger:[prefs integerForKey:key]]; -} - -// Boolean - -- (void) setBool:(NSString*)key withValue:(NSString*)value { - NSString* prefixedKey; - prefixedKey = [self addPrefix:key]; - - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - BOOL myBool = [value boolValue]; - [prefs setBool:myBool forKey:prefixedKey]; -} - -- (NSNumber*) getBool:(NSString *)key { - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - return [NSNumber numberWithBool:[prefs boolForKey:key]]; -} - -// Float - -- (void) setFloat:(NSString*)key withValue:(NSString*)value { - NSString* prefixedKey; - prefixedKey = [self addPrefix:key]; - - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - float myFloat = [value floatValue]; - [prefs setFloat:myFloat forKey:prefixedKey]; -} - -- (NSNumber*) getFloat:(NSString *)key { - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - return [NSNumber numberWithFloat:[prefs floatForKey:key]]; -} - - -#pragma mark WebScripting Protocol - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector { - return NO; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector { - id result = nil; - - if (selector == @selector(getMyDefaults)) { - result = @"getMyDefaults"; - } - - if (selector == @selector(removeObjectForKey:)) { - result = @"removeObjectForKey"; - } - - else if (selector == @selector(setString:withValue:)) { - result = @"setString"; - } else if (selector == @selector(getString:)) { - result = @"getString"; - } - - else if (selector == @selector(setInteger:withValue:)) { - result = @"setInteger"; - } else if (selector == @selector(getInteger:)) { - result = @"getInteger"; - } - - else if (selector == @selector(setBool:withValue:)) { - result = @"setBool"; - } else if (selector == @selector(getBool:)) { - result = @"getBool"; - } - - else if (selector == @selector(setFloat:withValue:)) { - result = @"setFloat"; - } else if (selector == @selector(getFloat:)) { - result = @"getFloat"; - } - - return result; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name { - return NO; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.h deleted file mode 100644 index 62c7b7e83..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.h +++ /dev/null @@ -1,9 +0,0 @@ -@interface Fonts : NSObject { -} - -- (NSArray*) availableFonts; -- (NSArray*) availableFontFamilies; -- (NSArray*) availableMembersOfFontFamily:(NSString*)fontFamily; -- (CGFloat) defaultLineHeightForFont:(NSString *)theFontName ofSize:(CGFloat)theFontSize; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.m deleted file mode 100644 index b17818a53..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Commands/fonts.m +++ /dev/null @@ -1,48 +0,0 @@ -#import "fonts.h" - -@implementation Fonts - - -- (NSArray*) availableFonts { - return [[NSFontManager sharedFontManager] availableFonts]; -} - -- (NSArray*) availableFontFamilies { - return [[NSFontManager sharedFontManager] availableFontFamilies]; -} - -- (NSArray*) availableMembersOfFontFamily:(NSString *)fontFamily { - return [[NSFontManager sharedFontManager] availableMembersOfFontFamily:fontFamily]; -} - -- (CGFloat) defaultLineHeightForFont:(NSString*)theFontName ofSize:(CGFloat)theFontSize { - NSFont *theFont = [NSFont fontWithName:theFontName size:theFontSize]; - NSLayoutManager *lm = [[NSLayoutManager alloc] init]; - - return [lm defaultLineHeightForFont:theFont]; -} - - -#pragma mark WebScripting Protocol - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector { - return NO; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector { - id result = nil; - - if (selector == @selector(availableMembersOfFontFamily:)) { - result = @"availableMembersOfFontFamily"; - } else if (selector == @selector(defaultLineHeightForFont:ofSize:)) { - result = @"defaultLineHeightForFont"; - } - - return result; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name { - return NO; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Constants.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Constants.h deleted file mode 100644 index 1fe59d6cc..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Constants.h +++ /dev/null @@ -1,7 +0,0 @@ -// Application constants - -#define kStartPage @"http://127.0.0.1:9993/" - -#define kStartFolder @"." - -#define kWebScriptNamespace @"macgap" \ No newline at end of file diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.h deleted file mode 100644 index 65890a5ee..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.h +++ /dev/null @@ -1,15 +0,0 @@ -#import -#import - -@class WebViewDelegate; - -@interface ContentView : NSView { - IBOutlet WebView* webView; - WebViewDelegate* delegate; -} - -@property (retain) WebView* webView; -@property (retain) WebViewDelegate* delegate; -@property (strong) IBOutlet NSMenu *mainMenu; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.m deleted file mode 100644 index 6558a191f..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/ContentView.m +++ /dev/null @@ -1,68 +0,0 @@ -#import "ContentView.h" -#import "WebViewDelegate.h" -#import "AppDelegate.h" -#import "JSEventHelper.h" - -@interface WebPreferences (WebPreferencesPrivate) - - (void)_setLocalStorageDatabasePath:(NSString *)path; - - (void) setLocalStorageEnabled: (BOOL) localStorageEnabled; - - (void) setDatabasesEnabled:(BOOL)databasesEnabled; - - (void) setDeveloperExtrasEnabled:(BOOL)developerExtrasEnabled; - - (void) setWebGLEnabled:(BOOL)webGLEnabled; - - (void) setOfflineWebApplicationCacheEnabled:(BOOL)offlineWebApplicationCacheEnabled; -@end - -@implementation ContentView - -@synthesize webView, delegate, mainMenu; - -- (void) awakeFromNib -{ - WebPreferences *webPrefs = [WebPreferences standardPreferences]; - - NSString *cappBundleName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]; - NSString *applicationSupportFile = [@"~/Library/Application Support/" stringByExpandingTildeInPath]; - NSString *savePath = [NSString pathWithComponents:[NSArray arrayWithObjects:applicationSupportFile, cappBundleName, @"LocalStorage", nil]]; - [webPrefs _setLocalStorageDatabasePath:savePath]; - [webPrefs setLocalStorageEnabled:YES]; - [webPrefs setDatabasesEnabled:YES]; - [webPrefs setDeveloperExtrasEnabled:[[NSUserDefaults standardUserDefaults] boolForKey: @"developer"]]; - [webPrefs setOfflineWebApplicationCacheEnabled:YES]; - [webPrefs setWebGLEnabled:YES]; - - [self.webView setPreferences:webPrefs]; - - NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage - sharedHTTPCookieStorage]; - [cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; - - [self.webView setApplicationNameForUserAgent: @"MacGap"]; - - self.delegate = [[WebViewDelegate alloc] initWithMenu:[NSApp mainMenu]]; -// [self.webView setFrameLoadDelegate:self.delegate]; -// [self.webView setUIDelegate:self.delegate]; -// [self.webView setResourceLoadDelegate:self.delegate]; -// [self.webView setDownloadDelegate:self.delegate]; -// [self.webView setPolicyDelegate:self.delegate]; - [self.webView setDrawsBackground:NO]; - [self.webView setShouldCloseWithWindow:NO]; - - [self.webView setGroupName:@"MacGap"]; - -} - -- (void) windowResized:(NSNotification*)notification; -{ - NSWindow* window = (NSWindow*)notification.object; - NSSize size = [window frame].size; - - DebugNSLog(@"window width = %f, window height = %f", size.width, size.height); - - bool isFullScreen = (window.styleMask & NSFullScreenWindowMask) == NSFullScreenWindowMask; - int titleBarHeight = isFullScreen ? 0 : [[Utils sharedInstance] titleBarHeight:window]; - - [self.webView setFrame:NSMakeRect(0, 0, size.width, size.height - titleBarHeight)]; - [JSEventHelper triggerEvent:@"orientationchange" forWebView:self.webView]; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.h deleted file mode 100644 index 401f3e396..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// Helper.h -// MacGap -// -// Created by Liam Kaufman Simpkins on 12-01-22. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import -#import "WindowController.h" - -@interface JSEventHelper : NSObject - -+ (void) triggerEvent:(NSString *)event forWebView:(WebView *)webView; -+ (void) triggerEvent:(NSString *)event withArgs:(NSDictionary *)args forWebView:(WebView *)webView; -+ (void) triggerEvent:(NSString *)event withArgs:(NSDictionary *)args forObject:(NSString *)objName forWebView:(WebView *)webView; -+ (void) triggerEvent:(NSString *)event forDetail:(NSString *)detail forWebView:(WebView *)webView; -+ (void) triggerEvent:(NSString *)event forDetail:(NSString *)detail forObject:(NSString *)objName forWebView:(WebView *)webView; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.m deleted file mode 100644 index 65406b3c0..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/JSEventHelper.m +++ /dev/null @@ -1,41 +0,0 @@ -// -// Helper.m -// MacGap -// -// Created by Liam Kaufman Simpkins on 12-01-22. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import "JSEventHelper.h" - -@implementation JSEventHelper - -+ (void) triggerEvent:(NSString *)event forWebView:(WebView *)webView { - [self triggerEvent:event withArgs:[NSMutableDictionary dictionary] forObject:@"document" forWebView:webView]; -} - -+ (void) triggerEvent:(NSString *)event withArgs:(NSDictionary *)args forWebView:(WebView *)webView { - [self triggerEvent:event withArgs:args forObject:@"document" forWebView:webView]; -} - -+ (void) triggerEvent:(NSString *)event withArgs:(NSDictionary *)args forObject:(NSString *)objName forWebView:(WebView *)webView { - - // Convert args Dictionary to JSON. - NSString* jsonString = [[Utils sharedInstance] convertDictionaryToJSON:args]; - - // Create the event JavaScript and run it. - NSString * str = [NSString stringWithFormat:@"var e = document.createEvent('Events'); e.initEvent('%@', true, false); e.data=%@; %@.dispatchEvent(e); ", event, jsonString, objName]; - [webView stringByEvaluatingJavaScriptFromString:str]; -} - -+ (void) triggerEvent:(NSString *)event forDetail:(NSString *)detail forWebView:(WebView *)webView { - [self triggerEvent:event forDetail:detail forObject:@"document" forWebView:webView]; -} - -+ (void) triggerEvent:(NSString *)event forDetail:(NSString *)detail forObject:(NSString *)objName forWebView:(WebView *)webView { - NSString *detailEscaped = [detail stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; - NSString *str = [NSString stringWithFormat:@"var e = new CustomEvent('%@', { 'detail': decodeURIComponent(\"%@\") }); %@.dispatchEvent(e); ", event, detailEscaped, objName]; - [webView stringByEvaluatingJavaScriptFromString:str]; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.h deleted file mode 100644 index f573d881a..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.h +++ /dev/null @@ -1,20 +0,0 @@ -#import -#import - -#define DEG_EPS 0.001 -#define fequal(a,b) (fabs((a) - (b)) < DEG_EPS) -#define fequalzero(a) (fabs(a) < DEG_EPS) - -@class LoadingView; - -@interface Utils : NSObject { -} - -- (float) titleBarHeight:(NSWindow*)aWindow; -- (NSString*) pathForResource:(NSString*)resourcepath; -- (NSString*) convertDictionaryToJSON:(NSDictionary*)dict; -- (NSArray*) convertJSarrayToNSArray:(WebScriptObject*)jsArray; - -+ (Utils*) sharedInstance; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.m deleted file mode 100644 index 8d85c2949..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Utils.m +++ /dev/null @@ -1,93 +0,0 @@ -#import "Utils.h" -#import - -static Utils* sharedInstance = nil; - -@implementation Utils - -- (float) titleBarHeight:(NSWindow*)aWindow -{ - NSRect frame = [aWindow frame]; - NSRect contentRect = [NSWindow contentRectForFrameRect: frame - styleMask: NSTitledWindowMask]; - - return (frame.size.height - contentRect.size.height); -} - -- (NSString*) pathForResource:(NSString*)resourcepath -{ - NSBundle * mainBundle = [NSBundle mainBundle]; - NSMutableArray *directoryParts = [NSMutableArray arrayWithArray:[resourcepath componentsSeparatedByString:@"/"]]; - NSString *filename = [directoryParts lastObject]; - [directoryParts removeLastObject]; - - NSString *directoryStr = [NSString stringWithFormat:@"%@/%@", kStartFolder, [directoryParts componentsJoinedByString:@"/"]]; - return [mainBundle pathForResource:filename - ofType:@"" - inDirectory:directoryStr]; -} - -- (NSString*) convertDictionaryToJSON:(NSDictionary*)dict { - // Convert defaults Dictionary to JSON. - NSError *error; - NSData *jsonData = [NSJSONSerialization - dataWithJSONObject:dict - options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string - error:&error]; - - NSString *jsonString; - if (! jsonData) { - NSLog(@"Got an error converting to JSON: %@", error); - } - else { - jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; - } - - return jsonString; -} - -// Convert JavaScript array (arrives as a WebScriptObject) into an NSArray of strings. -- (NSArray*) convertJSarrayToNSArray:(WebScriptObject*)jsArray { - NSInteger count = [[jsArray valueForKey:@"length"] integerValue]; - - NSMutableArray *args = [NSMutableArray array]; - for (int i = 0; i < count; i++) { - NSString *item = [jsArray webScriptValueAtIndex:i]; - if ([item isKindOfClass:[NSString class]]) { - [args addObject:item]; - } - } - - return args; -} - -#pragma mark - -#pragma mark Singleton methods - -+ (Utils*) sharedInstance -{ - @synchronized(self) - { - if (sharedInstance == nil){ - sharedInstance = [[Utils alloc] init]; - } - } - return sharedInstance; -} - -+ (id) allocWithZone:(NSZone *)zone { - @synchronized(self) { - if (sharedInstance == nil) { - sharedInstance = [super allocWithZone:zone]; - return sharedInstance; // assignment and return on first allocation - } - } - return nil; // on subsequent allocation attempts return nil -} - -- (id) copyWithZone:(NSZone *)zone -{ - return self; -} - -@end \ No newline at end of file diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.h deleted file mode 100644 index 49c6da6b9..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.h +++ /dev/null @@ -1,49 +0,0 @@ -#import -#import - -@class Sound; -@class Dock; -@class Growl; -@class Notice; -@class Path; -@class App; -@class Window; -@class Clipboard; -@class Fonts; -@class MenuProxy; -@class UserDefaults; - -@class WindowController; - -@interface WebViewDelegate : NSObject { - Sound* sound; - Dock* dock; - Growl* growl; - Notice* notice; - Path* path; - App* app; - Window* window; - Clipboard* clipboard; - Fonts* fonts; - NSMenu *mainMenu; - UserDefaults* userDefaults; -} - - - -@property (nonatomic, retain) Sound* sound; -@property (nonatomic, retain) Dock* dock; -@property (nonatomic, retain) Growl* growl; -@property (nonatomic, retain) Notice* notice; -@property (nonatomic, retain) Path* path; -@property (nonatomic, retain) App* app; -@property (nonatomic, retain) Window* window; -@property (nonatomic, retain) Clipboard* clipboard; -@property (nonatomic, retain) Fonts* fonts; -@property (nonatomic, retain) MenuProxy* menu; -@property (nonatomic, retain) UserDefaults* userDefaults; - -@property (nonatomic, retain) WindowController *requestedWindow; - -- (id) initWithMenu:(NSMenu*)menu; -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.m deleted file mode 100644 index 505780183..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/WebViewDelegate.m +++ /dev/null @@ -1,206 +0,0 @@ -#import "WebViewDelegate.h" -#import "Sound.h" -#import "Dock.h" -#import "Notice.h" -#import "Path.h" -#import "App.h" -#import "Window.h" -#import "WindowController.h" -#import "Clipboard.h" -#import "Fonts.h" -#import "MenuProxy.h" -#import "UserDefaults.h" - -@implementation WebViewDelegate - -@synthesize sound; -@synthesize dock; -@synthesize growl; -@synthesize notice; -@synthesize path; -@synthesize app; -@synthesize window; -@synthesize requestedWindow; -@synthesize clipboard; -@synthesize fonts; -@synthesize menu; -@synthesize userDefaults; - -- (id) initWithMenu:(NSMenu*)aMenu -{ - self = [super init]; - if (!self) - return nil; - - mainMenu = aMenu; - return self; -} - -- (void) webView:(WebView*)webView didClearWindowObject:(WebScriptObject*)windowScriptObject forFrame:(WebFrame *)frame -{ - JSContextRef context = [frame globalContext]; - if (self.sound == nil) { self.sound = [[Sound alloc] initWithContext:context]; } - if (self.dock == nil) { self.dock = [Dock new]; } - if (self.path == nil) { self.path = [Path new]; } - if (self.clipboard == nil) { self.clipboard = [Clipboard new]; } - if (self.fonts == nil) { self.fonts = [Fonts new]; } - - if (self.notice == nil && [Notice available] == YES) { - self.notice = [[Notice alloc] initWithWebView:webView]; - } - - if (self.app == nil) { - self.app = [[App alloc] initWithWebView:webView]; - } - - if (self.window == nil) { - self.window = [[Window alloc] initWithWebView:webView]; - } - - if (self.menu == nil) { - self.menu = [MenuProxy proxyWithContext:context andMenu:mainMenu]; - } - - if (self.userDefaults == nil) { - self.userDefaults = [[UserDefaults alloc] initWithWebView:webView]; - } - - [windowScriptObject setValue:self forKey:kWebScriptNamespace]; -} - - -- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id < WebOpenPanelResultListener >)resultListener allowMultipleFiles:(BOOL)allowMultipleFiles{ - - NSOpenPanel * openDlg = [NSOpenPanel openPanel]; - - [openDlg setCanChooseFiles:YES]; - [openDlg setCanChooseDirectories:NO]; - - [openDlg beginWithCompletionHandler:^(NSInteger result){ - if (result == NSFileHandlingPanelOKButton) { - NSArray * files = [[openDlg URLs] valueForKey: @"relativePath"]; - [resultListener chooseFilenames: files]; - } else { - [resultListener cancel]; - } - }]; -} - -- (void) webView:(WebView*)webView addMessageToConsole:(NSDictionary*)message -{ - if (![message isKindOfClass:[NSDictionary class]]) { - return; - } - - NSLog(@"JavaScript console: %@:%@: %@", - [[message objectForKey:@"sourceURL"] lastPathComponent], // could be nil - [message objectForKey:@"lineNumber"], - [message objectForKey:@"message"]); -} - -- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame -{ - NSAlert *alert = [[NSAlert alloc] init]; - [alert addButtonWithTitle:@"OK"]; - [alert setMessageText:message]; - [alert setAlertStyle:NSWarningAlertStyle]; - [alert runModal]; -} - -- (BOOL)webView:(WebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame -{ - NSAlert *alert = [[NSAlert alloc] init]; - [alert addButtonWithTitle:@"Yes"]; - [alert addButtonWithTitle:@"No"]; - [alert setMessageText:message]; - [alert setAlertStyle:NSWarningAlertStyle]; - - if ([alert runModal] == NSAlertFirstButtonReturn) - return YES; - else - return NO; -} - -/* - By default the size of a database is set to 0 [1]. When a database is being created - it calls this delegate method to get an increase in quota size - or call an error. - PS this method is defined in WebUIDelegatePrivate and may make it difficult, but - not impossible [2], to get an app accepted into the mac app store. - - Further reading: - [1] http://stackoverflow.com/questions/353808/implementing-a-webview-database-quota-delegate - [2] http://stackoverflow.com/questions/4527905/how-do-i-enable-local-storage-in-my-webkit-based-application/4608549#4608549 - */ -- (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(id) origin database:(NSString *)databaseIdentifier -{ - static const unsigned long long defaultQuota = 5 * 1024 * 1024; - if ([origin respondsToSelector: @selector(setQuota:)]) { - [origin performSelector:@selector(setQuota:) withObject:[NSNumber numberWithLongLong: defaultQuota]]; - } else { - NSLog(@"could not increase quota for %lld", defaultQuota); - } -} - -- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems -{ - NSMutableArray *webViewMenuItems = [defaultMenuItems mutableCopy]; - - if (webViewMenuItems) - { - NSEnumerator *itemEnumerator = [defaultMenuItems objectEnumerator]; - NSMenuItem *menuItem = nil; - while ((menuItem = [itemEnumerator nextObject])) - { - NSInteger tag = [menuItem tag]; - - switch (tag) - { - case WebMenuItemTagOpenLinkInNewWindow: - case WebMenuItemTagDownloadLinkToDisk: - case WebMenuItemTagCopyLinkToClipboard: - case WebMenuItemTagOpenImageInNewWindow: - case WebMenuItemTagDownloadImageToDisk: - case WebMenuItemTagCopyImageToClipboard: - case WebMenuItemTagOpenFrameInNewWindow: - case WebMenuItemTagGoBack: - case WebMenuItemTagGoForward: - case WebMenuItemTagStop: - case WebMenuItemTagOpenWithDefaultApplication: - case WebMenuItemTagReload: - [webViewMenuItems removeObjectIdenticalTo: menuItem]; - } - } - } - - return webViewMenuItems; -} - -- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request{ - requestedWindow = [[WindowController alloc] initWithRequest:request]; - return requestedWindow.contentView.webView; -} - -- (void)webViewShow:(WebView *)sender{ - [requestedWindow showWindow:sender]; -} - -- (void)webView:(WebView *)webView decidePolicyForNewWindowAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request newFrameName:(NSString *)frameName decisionListener:(id < WebPolicyDecisionListener >)listener -{ - [[NSWorkspace sharedWorkspace] openURL:[request URL]]; - [listener ignore]; -} - -#pragma mark WebScripting protocol - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return YES; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return NO; -} - - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.h deleted file mode 100644 index f721376e0..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.h +++ /dev/null @@ -1,23 +0,0 @@ -#import - -#import "WindowController.h" - -@interface Window : NSObject{ - CGRect _oldRestoreFrame; -} - -@property (retain, nonatomic) WindowController *windowController; -@property (nonatomic, retain) WebView *webView; - -- (id) initWithWebView:(WebView *)view; -- (void) open:(NSDictionary *)properties; -- (void) move:(NSDictionary *)properties; -- (void) resize:(NSDictionary *) properties; -- (Boolean) isMaximized; -- (CGFloat) getX; -- (CGFloat) getY; -- (void) maximize; -- (void) restore; -- (void) toggleFullscreen; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.m deleted file mode 100644 index 2444f62ea..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Classes/Window.m +++ /dev/null @@ -1,94 +0,0 @@ -#import "Window.h" - -@implementation Window - -@synthesize windowController, webView; - -- (id) initWithWebView:(WebView*)view -{ - if(self = [super init]) { - self.webView = view; - } - return self; -} - -- (void) open:(NSDictionary *)properties -{ - self.windowController = [[WindowController alloc] initWithURL:[properties valueForKey:@"url"]]; - [self.windowController showWindow: [NSApplication sharedApplication].delegate]; - [self.windowController.window makeKeyWindow]; -} - -- (void) minimize { - [[NSApp mainWindow] miniaturize:[NSApp mainWindow]]; -} - -- (void) toggleFullscreen { - [[NSApp mainWindow] toggleFullScreen:[NSApp mainWindow]]; -} - -- (void) maximize { - CGRect a = [NSApp mainWindow].frame; - _oldRestoreFrame = CGRectMake(a.origin.x, a.origin.y, a.size.width, a.size.height); - [[NSApp mainWindow] setFrame:[[NSScreen mainScreen] visibleFrame] display:YES]; -} - -- (Boolean) isMaximized { - NSRect a = [NSApp mainWindow].frame; - NSRect b = [[NSScreen mainScreen] visibleFrame]; - return a.origin.x == b.origin.x && a.origin.y == b.origin.y && a.size.width == b.size.width && a.size.height == b.size.height; -} - -- (CGFloat) getX { - NSRect frame = [self.webView window].frame; - return frame.origin.x; -} - -- (CGFloat) getY { - NSRect frame = [self.webView window].frame; - return frame.origin.y; -} - -- (void) move:(NSDictionary *)properties -{ - NSRect frame = [self.webView window].frame; - frame.origin.x = [[properties valueForKey:@"x"] doubleValue]; - frame.origin.y = [[properties valueForKey:@"y"] doubleValue]; - [[self.webView window] setFrame:frame display:YES]; - -} - -- (void) resize:(NSDictionary *) properties -{ - NSRect frame = [self.webView window].frame; - frame.size.width = [[properties valueForKey:@"width"] doubleValue]; - frame.size.height = [[properties valueForKey:@"height"] doubleValue]; - [[self.webView window] setFrame:frame display:YES]; -} - - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return NO; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector{ - id result = nil; - - if (selector == @selector(open:)) { - result = @"open"; - }else if (selector == @selector(move:)){ - result = @"move"; - }else if (selector == @selector(resize:)){ - result = @"resize"; - } - - return result; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return YES; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.h deleted file mode 100644 index 6c1a2f513..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -@interface Clipboard : NSObject { - -} - -- (void) copy:(NSString*)text; -- (NSString *) paste; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.m deleted file mode 100644 index 1c18dea38..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/Clipboard.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// clipboard.m -// MacGap -// -// Created by David Zorychta on 2013-07-22. -// Copyright (c) 2013 Twitter. All rights reserved. -// - -#import "Clipboard.h" - -@implementation Clipboard - -- (void) copy:(NSString*)text { - [[NSPasteboard generalPasteboard] clearContents]; - [[NSPasteboard generalPasteboard] setString:text forType:NSStringPboardType]; -} - -- (NSString *) paste { - NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; - NSArray *classArray = [NSArray arrayWithObject:[NSString class]]; - NSDictionary *options = [NSDictionary dictionary]; - BOOL ok = [pasteboard canReadObjectForClasses:classArray options:options]; - if (ok) { - NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options]; - return (NSString *) [objectsToPaste objectAtIndex:0]; - } - return @""; -} - -+ (NSString*) webScriptNameForSelector:(SEL)selector -{ - id result = nil; - - if (selector == @selector(copy:)) { - result = @"copy"; - } - - return result; -} - -+ (BOOL) isSelectorExcludedFromWebScript:(SEL)selector -{ - return NO; -} - -+ (BOOL) isKeyExcludedFromWebScript:(const char*)name -{ - return YES; -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Info.plist b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Info.plist deleted file mode 100644 index 7f71ea229..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Info.plist +++ /dev/null @@ -1,39 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ZeroTier One - CFBundleIconFile - ZeroTierIcon - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ZeroTier One - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSApplicationCategoryType - public.app-category.utilities - LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Prefix.pch b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Prefix.pch deleted file mode 100644 index ad05e8420..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/MacGap-Prefix.pch +++ /dev/null @@ -1,15 +0,0 @@ -// -// Prefix header for all source files of the 'MacGap' target in the 'MacGap' project -// - -#ifdef __OBJC__ - #ifdef _DEBUG - #define DebugNSLog(format, ...) NSLog(format, ## __VA_ARGS__) - #else - #define DebugNSLog(format, ...) - #endif - - #import - #import "Constants.h" - #import "Utils.h" -#endif diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.h b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.h deleted file mode 100644 index 72927effa..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.h +++ /dev/null @@ -1,13 +0,0 @@ -#import -#import "ContentView.h" - -@interface WindowController : NSWindowController { - -} - -- (id) initWithURL:(NSString *) url; -- (id) initWithRequest: (NSURLRequest *)request; -@property (retain) NSURL * url; -@property (retain) IBOutlet ContentView *contentView; - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.m deleted file mode 100644 index 2765a2e3c..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/WindowController.m +++ /dev/null @@ -1,54 +0,0 @@ -#import "WindowController.h" - - -@interface WindowController() { - -} - --(void) notificationCenter; - -@end - -@implementation WindowController - -@synthesize contentView, url; - -- (id) initWithURL:(NSString *) relativeURL{ - self = [super initWithWindowNibName:@"Window"]; - self.url = [NSURL URLWithString:relativeURL relativeToURL:[[NSBundle mainBundle] resourceURL]]; - - [self.window setFrameAutosaveName:@"MacGapWindow"]; - [self notificationCenter]; - - return self; -} - --(id) initWithRequest: (NSURLRequest *)request{ - self = [super initWithWindowNibName:@"Window"]; - [self notificationCenter]; - [[self.contentView.webView mainFrame] loadRequest:request]; - - return self; -} - --(void) notificationCenter{ - [[NSNotificationCenter defaultCenter] addObserver:self.contentView - selector:@selector(windowResized:) - name:NSWindowDidResizeNotification - object:[self window]]; -} - -- (void)windowDidLoad -{ - [super windowDidLoad]; - - if (self.url != nil) { - [self.contentView.webView setMainFrameURL:[self.url absoluteString]]; - } - - - // Implement this method to handle any initialization after your - // window controller's window has been loaded from its nib file. -} - -@end diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Credits.rtf b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Credits.rtf deleted file mode 100644 index 6f388f662..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Credits.rtf +++ /dev/null @@ -1,13 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1347\cocoasubrtf570 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\vieww9600\viewh8400\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0\b\fs24 \cf0 (c)2011-2015 ZeroTier, Inc.\ -Licensed under the GNU GPLv3\ -\ -UI Wrapper MacGap (c) Twitter, Inc.\ -Licensed under the MIT License\ -http://macgap.com/\ -} \ No newline at end of file diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/InfoPlist.strings b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff8..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib deleted file mode 100644 index dd67a86ae..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib +++ /dev/null @@ -1,3404 +0,0 @@ - - - - 1070 - 14D136 - 7702 - 1347.57 - 758.70 - - com.apple.InterfaceBuilder.CocoaPlugin - 7702 - - - NSCustomObject - NSMenu - NSMenuItem - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - NSApplication - - - FirstResponder - - - NSApplication - - - AppDelegate - - - AMainMenu - - - - ZeroTier One - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - - ZeroTier One - - - - About ZeroTier One - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences… - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - - Services - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide ZeroTier One - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit ZeroTier One - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - - File - - - - New - n - 1048576 - 2147483647 - - - - - - Open… - o - 1048576 - 2147483647 - - - - - - Open Recent - - 1048576 - 2147483647 - - - submenuAction: - - - Open Recent - - - - Clear Menu - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Close - w - 1048576 - 2147483647 - - - - - - Save… - s - 1048576 - 2147483647 - - - - - - Revert to Saved - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup... - P - 1179648 - 2147483647 - - - - - - - Print… - p - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - - Edit - - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1179648 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Paste and Match Style - V - 1572864 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Find - - 1048576 - 2147483647 - - - submenuAction: - - - Find - - - - Find… - f - 1048576 - 2147483647 - - - 1 - - - - Find and Replace… - f - 1572864 - 2147483647 - - - 12 - - - - Find Next - g - 1048576 - 2147483647 - - - 2 - - - - Find Previous - G - 1179648 - 2147483647 - - - 3 - - - - Use Selection for Find - e - 1048576 - 2147483647 - - - 7 - - - - Jump to Selection - j - 1048576 - 2147483647 - - - - - - - - - Spelling and Grammar - - 1048576 - 2147483647 - - - submenuAction: - - - Spelling and Grammar - - - - Show Spelling and Grammar - : - 1048576 - 2147483647 - - - - - - Check Document Now - ; - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Check Spelling While Typing - - 1048576 - 2147483647 - - - - - - Check Grammar With Spelling - - 1048576 - 2147483647 - - - - - - Correct Spelling Automatically - - 2147483647 - - - - - - - - - Substitutions - - 1048576 - 2147483647 - - - submenuAction: - - - Substitutions - - - - Show Substitutions - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Smart Copy/Paste - f - 1048576 - 2147483647 - - - 1 - - - - Smart Quotes - g - 1048576 - 2147483647 - - - 2 - - - - Smart Dashes - - 2147483647 - - - - - - Smart Links - G - 1179648 - 2147483647 - - - 3 - - - - Text Replacement - - 2147483647 - - - - - - - - - Transformations - - 2147483647 - - - submenuAction: - - - Transformations - - - - Make Upper Case - - 2147483647 - - - - - - Make Lower Case - - 2147483647 - - - - - - Capitalize - - 2147483647 - - - - - - - - - Speech - - 1048576 - 2147483647 - - - submenuAction: - - - Speech - - - - Start Speaking - - 1048576 - 2147483647 - - - - - - Stop Speaking - - 1048576 - 2147483647 - - - - - - - - - - - - Format - - 2147483647 - - - submenuAction: - - - Format - - - - Font - - 2147483647 - - - submenuAction: - - - Font - - - - Show Fonts - t - 1048576 - 2147483647 - - - - - - Bold - b - 1048576 - 2147483647 - - - 2 - - - - Italic - i - 1048576 - 2147483647 - - - 1 - - - - Underline - u - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Bigger - + - 1048576 - 2147483647 - - - 3 - - - - Smaller - - - 1048576 - 2147483647 - - - 4 - - - - YES - YES - - - 2147483647 - - - - - - Kern - - 2147483647 - - - submenuAction: - - - Kern - - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Tighten - - 2147483647 - - - - - - Loosen - - 2147483647 - - - - - - - - - Ligature - - 2147483647 - - - submenuAction: - - - Ligature - - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Use All - - 2147483647 - - - - - - - - - Baseline - - 2147483647 - - - submenuAction: - - - Baseline - - - - Use Default - - 2147483647 - - - - - - Superscript - - 2147483647 - - - - - - Subscript - - 2147483647 - - - - - - Raise - - 2147483647 - - - - - - Lower - - 2147483647 - - - - - - - - - YES - YES - - - 2147483647 - - - - - - Show Colors - C - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Copy Style - c - 1572864 - 2147483647 - - - - - - Paste Style - v - 1572864 - 2147483647 - - - - - _NSFontMenu - - - - - Text - - 2147483647 - - - submenuAction: - - - Text - - - - Align Left - { - 1048576 - 2147483647 - - - - - - Center - | - 1048576 - 2147483647 - - - - - - Justify - - 2147483647 - - - - - - Align Right - } - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Writing Direction - - 2147483647 - - - submenuAction: - - - Writing Direction - - - - YES - Paragraph - - 2147483647 - - - - - - CURlZmF1bHQ - - 2147483647 - - - - - - CUxlZnQgdG8gUmlnaHQ - - 2147483647 - - - - - - CVJpZ2h0IHRvIExlZnQ - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - YES - Selection - - 2147483647 - - - - - - CURlZmF1bHQ - - 2147483647 - - - - - - CUxlZnQgdG8gUmlnaHQ - - 2147483647 - - - - - - CVJpZ2h0IHRvIExlZnQ - - 2147483647 - - - - - - - - - YES - YES - - - 2147483647 - - - - - - Show Ruler - - 2147483647 - - - - - - Copy Ruler - c - 1310720 - 2147483647 - - - - - - Paste Ruler - v - 1310720 - 2147483647 - - - - - - - - - - - - View - - 1048576 - 2147483647 - - - submenuAction: - - - View - - - - Show Toolbar - t - 1572864 - 2147483647 - - - - - - Customize Toolbar… - - 1048576 - 2147483647 - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - - Window - - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 2147483647 - - - submenuAction: - - - Help - - - - ZeroTier One Help - ? - 1048576 - 2147483647 - - - - - _NSHelpMenu - - - - _NSMainMenu - - - - - - - terminate: - - - - 449 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - delegate - - - - 547 - - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - print: - - - - 86 - - - - runPageLayout: - - - - 87 - - - - clearRecentDocuments: - - - - 127 - - - - performClose: - - - - 193 - - - - toggleContinuousSpellChecking: - - - - 222 - - - - undo: - - - - 223 - - - - copy: - - - - 224 - - - - checkSpelling: - - - - 225 - - - - paste: - - - - 226 - - - - stopSpeaking: - - - - 227 - - - - cut: - - - - 228 - - - - showGuessPanel: - - - - 230 - - - - redo: - - - - 231 - - - - selectAll: - - - - 232 - - - - startSpeaking: - - - - 233 - - - - delete: - - - - 235 - - - - performZoom: - - - - 240 - - - - performFindPanelAction: - - - - 241 - - - - centerSelectionInVisibleArea: - - - - 245 - - - - toggleGrammarChecking: - - - - 347 - - - - toggleSmartInsertDelete: - - - - 355 - - - - toggleAutomaticQuoteSubstitution: - - - - 356 - - - - toggleAutomaticLinkDetection: - - - - 357 - - - - saveDocument: - - - - 362 - - - - revertDocumentToSaved: - - - - 364 - - - - runToolbarCustomizationPalette: - - - - 365 - - - - toggleToolbarShown: - - - - 366 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - newDocument: - - - - 373 - - - - openDocument: - - - - 374 - - - - raiseBaseline: - - - - 426 - - - - lowerBaseline: - - - - 427 - - - - copyFont: - - - - 428 - - - - subscript: - - - - 429 - - - - superscript: - - - - 430 - - - - tightenKerning: - - - - 431 - - - - underline: - - - - 432 - - - - orderFrontColorPanel: - - - - 433 - - - - useAllLigatures: - - - - 434 - - - - loosenKerning: - - - - 435 - - - - pasteFont: - - - - 436 - - - - unscript: - - - - 437 - - - - useStandardKerning: - - - - 438 - - - - useStandardLigatures: - - - - 439 - - - - turnOffLigatures: - - - - 440 - - - - turnOffKerning: - - - - 441 - - - - toggleAutomaticSpellingCorrection: - - - - 456 - - - - orderFrontSubstitutionsPanel: - - - - 458 - - - - toggleAutomaticDashSubstitution: - - - - 461 - - - - toggleAutomaticTextReplacement: - - - - 463 - - - - uppercaseWord: - - - - 464 - - - - capitalizeWord: - - - - 467 - - - - lowercaseWord: - - - - 468 - - - - pasteAsPlainText: - - - - 486 - - - - performFindPanelAction: - - - - 487 - - - - performFindPanelAction: - - - - 488 - - - - performFindPanelAction: - - - - 489 - - - - showHelp: - - - - 493 - - - - alignCenter: - - - - 518 - - - - pasteRuler: - - - - 519 - - - - toggleRuler: - - - - 520 - - - - alignRight: - - - - 521 - - - - copyRuler: - - - - 522 - - - - alignJustified: - - - - 523 - - - - alignLeft: - - - - 524 - - - - makeBaseWritingDirectionNatural: - - - - 525 - - - - makeBaseWritingDirectionLeftToRight: - - - - 526 - - - - makeBaseWritingDirectionRightToLeft: - - - - 527 - - - - makeTextWritingDirectionNatural: - - - - 528 - - - - makeTextWritingDirectionLeftToRight: - - - - 529 - - - - makeTextWritingDirectionRightToLeft: - - - - 530 - - - - performFindPanelAction: - - - - 535 - - - - delegate - - - - 545 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - - - - - - - - - - - - 19 - - - - - - - - 56 - - - - - - - - 217 - - - - - - - - 83 - - - - - - - - 81 - - - - - - - - - - - - - - - - - 75 - - - - - 78 - - - - - 72 - - - - - 82 - - - - - 124 - - - - - - - - 77 - - - - - 73 - - - - - 79 - - - - - 112 - - - - - 74 - - - - - 125 - - - - - - - - 126 - - - - - 205 - - - - - - - - - - - - - - - - - - - - - - 202 - - - - - 198 - - - - - 207 - - - - - 214 - - - - - 199 - - - - - 203 - - - - - 197 - - - - - 206 - - - - - 215 - - - - - 218 - - - - - - - - 216 - - - - - - - - 200 - - - - - - - - - - - - - 219 - - - - - 201 - - - - - 204 - - - - - 220 - - - - - - - - - - - - - 213 - - - - - 210 - - - - - 221 - - - - - 208 - - - - - 209 - - - - - 57 - - - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - - - 144 - - - - - 129 - - - - - 143 - - - - - 236 - - - - - 131 - - - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 24 - - - - - - - - - - - 92 - - - - - 5 - - - - - 239 - - - - - 23 - - - - - 295 - - - - - - - - 296 - - - - - - - - - 297 - - - - - 298 - - - - - 211 - - - - - - - - 212 - - - - - - - - - 195 - - - - - 196 - - - - - 346 - - - - - 348 - - - - - - - - 349 - - - - - - - - - - - - - - 350 - - - - - 351 - - - - - 354 - - - - - 375 - - - - - - - - 376 - - - - - - - - - 377 - - - - - - - - 388 - - - - - - - - - - - - - - - - - - - - - - - 389 - - - - - 390 - - - - - 391 - - - - - 392 - - - - - 393 - - - - - 394 - - - - - 395 - - - - - 396 - - - - - 397 - - - - - - - - 398 - - - - - - - - 399 - - - - - - - - 400 - - - - - 401 - - - - - 402 - - - - - 403 - - - - - 404 - - - - - 405 - - - - - - - - - - - - 406 - - - - - 407 - - - - - 408 - - - - - 409 - - - - - 410 - - - - - 411 - - - - - - - - - - 412 - - - - - 413 - - - - - 414 - - - - - 415 - - - - - - - - - - - 416 - - - - - 417 - - - - - 418 - - - - - 419 - - - - - 450 - - - - - - - - 451 - - - - - - - - - - 452 - - - - - 453 - - - - - 454 - - - - - 457 - - - - - 459 - - - - - 460 - - - - - 462 - - - - - 465 - - - - - 466 - - - - - 485 - - - - - 490 - - - - - - - - 491 - - - - - - - - 492 - - - - - 496 - - - - - - - - 497 - - - - - - - - - - - - - - - - - 498 - - - - - 499 - - - - - 500 - - - - - 501 - - - - - 502 - - - - - 503 - - - - - - - - 504 - - - - - 505 - - - - - 506 - - - - - 507 - - - - - 508 - - - - - - - - - - - - - - - - 509 - - - - - 510 - - - - - 511 - - - - - 512 - - - - - 513 - - - - - 514 - - - - - 515 - - - - - 516 - - - - - 517 - - - - - 534 - - - - - 546 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 547 - - - - - AppDelegate - NSObject - - IBProjectSource - ../MacGap/AppDelegate.h - - - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSBrowser - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSBrowser.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSDocument - NSObject - - id - id - id - id - id - id - - - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocument.h - - - - NSDocumentController - NSObject - - id - id - id - id - - - - clearRecentDocuments: - id - - - newDocument: - id - - - openDocument: - id - - - saveAllDocuments: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentController.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSMatrix - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSMatrix.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMovieView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMovieView.h - - - - NSPopover - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSPopover.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSTableView - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSText - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSText.h - - - - NSTextView - NSText - - IBFrameworkSource - AppKit.framework/Headers/NSTextView.h - - - - NSView - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSViewController - NSResponder - - view - NSView - - - view - - view - NSView - - - - IBFrameworkSource - AppKit.framework/Headers/NSViewController.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - WebView - NSView - - id - id - id - id - id - id - id - id - id - id - id - - - - goBack: - id - - - goForward: - id - - - makeTextLarger: - id - - - makeTextSmaller: - id - - - makeTextStandardSize: - id - - - reload: - id - - - reloadFromOrigin: - id - - - stopLoading: - id - - - takeStringURLFrom: - id - - - toggleContinuousSpellChecking: - id - - - toggleSmartInsertDelete: - id - - - - IBFrameworkSource - WebKit.framework/Headers/WebView.h - - - - - 0 - IBCocoaFramework - NO - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - {12, 12} - {10, 2} - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Window.xib b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Window.xib deleted file mode 100644 index fa70acaa5..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/Window.xib +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/main.m b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/main.m deleted file mode 100644 index 4ad50ad59..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/MacGap/main.m +++ /dev/null @@ -1,14 +0,0 @@ -// -// main.m -// MacGap -// -// Created by Alex MacCaw on 08/01/2012. -// Copyright (c) 2012 Twitter. All rights reserved. -// - -#import - -int main(int argc, char *argv[]) -{ - return NSApplicationMain(argc, (const char **)argv); -} diff --git a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/README.md b/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/README.md deleted file mode 100644 index daf3eae9c..000000000 --- a/ext/installfiles/mac/mac-ui-macgap1-wrapper/src/README.md +++ /dev/null @@ -1,6 +0,0 @@ -Mac Web UI Wrapper -====== - -This is a modified version of MacGap1 which launches a WebKit view and accesses the local ZeroTier service at its web URL. It builds the URL from the authtoken.secret file in the system home (or the user home) and the zerotier-one.port file that ZeroTier creates to advertise its control port. - -It's based on the original MacGap1 source by Twitter, Inc. which is licensed under the MIT license. diff --git a/ext/installfiles/mac/postinst.sh b/ext/installfiles/mac/postinst.sh index da15f9c84..2e4f59162 100755 --- a/ext/installfiles/mac/postinst.sh +++ b/ext/installfiles/mac/postinst.sh @@ -22,7 +22,7 @@ if [ "$OSX_RELEASE" = "10.7" ]; then rm -f tap.kext.10_7.tar.gz fi -rm -rf node.log node.log.old root-topology shutdownIfUnreadable autoupdate.log updates.d +rm -rf node.log node.log.old root-topology shutdownIfUnreadable autoupdate.log updates.d ui peers.save chown -R 0 tap.kext chgrp -R 0 tap.kext if [ ! -f authtoken.secret ]; then diff --git a/ext/installfiles/mac/ui/Makefile b/ext/installfiles/mac/ui/Makefile deleted file mode 100644 index 4be03228b..000000000 --- a/ext/installfiles/mac/ui/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -all: - mkdir -p build - jsx --target es3 -x jsx . ./build - rm -f ztui.min.js - minify build/*.js >>ztui.min.js - rm -rf build diff --git a/ext/installfiles/mac/ui/README.md b/ext/installfiles/mac/ui/README.md deleted file mode 100644 index bd5eddb63..000000000 --- a/ext/installfiles/mac/ui/README.md +++ /dev/null @@ -1,10 +0,0 @@ -ZeroTier HTML5 UI -====== - -This is the new (as of 1.0.3) ZeroTier One UI. It's implemented in HTML5 and React. - -If you make changes to the .jsx files, type 'make'. You will need NodeJS, react-tools, and minify installed and available in your path. - -For this to work, these files must be installed in the 'ui' subfolder of the ZeroTier home path. For development it's nice to symlink this to the 'ui' folder in your working directory. If the 'ui' subfolder is not present, the UI static files will not be served by the embedded web server. - -Packaging for Mac and Windows is accomplished by way of the wrappers in ext/. For Mac this is done with a modified version of MacGap. Windows uses a custom project that embeds a web view. diff --git a/ext/installfiles/mac/ui/ZeroTierNetwork.jsx b/ext/installfiles/mac/ui/ZeroTierNetwork.jsx deleted file mode 100644 index f842d7587..000000000 --- a/ext/installfiles/mac/ui/ZeroTierNetwork.jsx +++ /dev/null @@ -1,74 +0,0 @@ -var ZeroTierNetwork = React.createClass({ - getInitialState: function() { - return {}; - }, - - leaveNetwork: function(event) { - Ajax.call({ - url: 'network/'+this.props.nwid+'?auth='+this.props.authToken, - cache: false, - type: 'DELETE', - success: function(data) { - if (this.props.onNetworkDeleted) - this.props.onNetworkDeleted(this.props.nwid); - }.bind(this), - error: function(error) { - }.bind(this) - }); - event.preventDefault(); - }, - - render: function() { - return ( -
-
- {this.props.nwid}  - {this.props.name} -
-
-
-
Status
-
{this.props['status']}
-
-
-
Type
-
{this.props['type']}
-
-
-
MAC
-
{this.props['mac']}
-
-
-
MTU
-
{this.props['mtu']}
-
-
-
Broadcast
-
{(this.props['broadcastEnabled']) ? 'ENABLED' : 'DISABLED'}
-
-
-
Bridging
-
{(this.props['bridge']) ? 'ACTIVE' : 'DISABLED'}
-
-
-
Device
-
{(this.props['portDeviceName']) ? this.props['portDeviceName'] : '(none)'}
-
-
-
Managed IPs
-
- { - this.props['assignedAddresses'].map(function(ipAssignment) { - return ( -
{ipAssignment}
- ); - }) - } -
-
-
- -
- ); - } -}); diff --git a/ext/installfiles/mac/ui/ZeroTierNode.jsx b/ext/installfiles/mac/ui/ZeroTierNode.jsx deleted file mode 100644 index b4c292203..000000000 --- a/ext/installfiles/mac/ui/ZeroTierNode.jsx +++ /dev/null @@ -1,158 +0,0 @@ -var ZeroTierNode = React.createClass({ - getInitialState: function() { - return { - address: '----------', - online: false, - version: '_._._', - _networks: [], - _peers: [] - }; - }, - - ago: function(ms) { - if (ms > 0) { - var tmp = Math.round((Date.now() - ms) / 1000); - return ((tmp > 0) ? tmp : 0); - } else return 0; - }, - - updatePeers: function() { - Ajax.call({ - url: 'peer?auth='+this.props.authToken, - cache: false, - type: 'GET', - success: function(data) { - if (data) { - var pl = JSON.parse(data); - if (Array.isArray(pl)) { - this.setState({_peers: pl}); - } - } - }.bind(this), - error: function() { - }.bind(this) - }); - }, - updateNetworks: function() { - Ajax.call({ - url: 'network?auth='+this.props.authToken, - cache: false, - type: 'GET', - success: function(data) { - if (data) { - var nwl = JSON.parse(data); - if (Array.isArray(nwl)) { - this.setState({_networks: nwl}); - } - } - }.bind(this), - error: function() { - }.bind(this) - }); - }, - updateAll: function() { - Ajax.call({ - url: 'status?auth='+this.props.authToken, - cache: false, - type: 'GET', - success: function(data) { - this.alertedToFailure = false; - if (data) { - var status = JSON.parse(data); - this.setState(status); - document.title = 'ZeroTier One [' + status.address + ']'; - } - this.updateNetworks(); - this.updatePeers(); - }.bind(this), - error: function() { - this.setState(this.getInitialState()); - if (!this.alertedToFailure) { - this.alertedToFailure = true; - alert('Authorization token invalid or ZeroTier One service not running.'); - } - }.bind(this) - }); - }, - joinNetwork: function(event) { - event.preventDefault(); - if ((this.networkToJoin)&&(this.networkToJoin.length === 16)) { - Ajax.call({ - url: 'network/'+this.networkToJoin+'?auth='+this.props.authToken, - cache: false, - type: 'POST', - success: function(data) { - this.networkToJoin = ''; - if (this.networkInputElement) - this.networkInputElement.value = ''; - this.updateNetworks(); - }.bind(this), - error: function() { - }.bind(this) - }); - } else { - alert('To join a network, enter its 16-digit network ID.'); - } - }, - handleNetworkIdEntry: function(event) { - this.networkInputElement = event.target; - var nid = this.networkInputElement.value; - if (nid) { - nid = nid.toLowerCase(); - var nnid = ''; - for(var i=0;((i= 0) - nnid += nid.charAt(i); - } - this.networkToJoin = nnid; - this.networkInputElement.value = nnid; - } else { - this.networkToJoin = ''; - this.networkInputElement.value = ''; - } - }, - - handleNetworkDelete: function(nwid) { - var networks = []; - for(var i=0;i -
-
-
- { - this.state._networks.map(function(network) { - network['authToken'] = this.props.authToken; - network['onNetworkDeleted'] = this.handleNetworkDelete; - return React.createElement('div',{className: 'network',key: network.nwid},React.createElement(ZeroTierNetwork,network)); - }.bind(this)) - } -
-
-
-
-
- {this.state.address}  {this.state.online ? (this.state.tcpFallbackActive ? 'TUNNELED' : 'ONLINE') : 'OFFLINE'}  {this.state.version} -
-
-
-
-
- - ); - } -}); diff --git a/ext/installfiles/mac/ui/index.html b/ext/installfiles/mac/ui/index.html deleted file mode 100644 index 44edb399f..000000000 --- a/ext/installfiles/mac/ui/index.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - ZeroTier One - - - - - - -
- - - diff --git a/ext/installfiles/mac/ui/main.js b/ext/installfiles/mac/ui/main.js deleted file mode 100644 index a1647127b..000000000 --- a/ext/installfiles/mac/ui/main.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * ZeroTier One - Network Virtualization Everywhere - * Copyright (C) 2011-2015 ZeroTier, Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * -- - * - * ZeroTier may be used and distributed under the terms of the GPLv3, which - * are available at: http://www.gnu.org/licenses/gpl-3.0.html - * - * If you would like to embed ZeroTier into a commercial application or - * redistribute it in a modified binary form, please contact ZeroTier Networks - * LLC. Start here: http://www.zerotier.com/ - */ - -function getUrlParameter(parameter) -{ - var currLocation = window.location.search; - if (currLocation.indexOf('?') < 0) - return ''; - var parArr = currLocation.split("?")[1].split("&"); - for(var i = 0; i < parArr.length; i++){ - parr = parArr[i].split("="); - if (parr[0] == parameter) { - return decodeURIComponent(parr[1]); - } - } - return ''; -} - -var ztAuthToken = getUrlParameter('authToken'); -if ((!ztAuthToken)||(ztAuthToken.length <= 0)) { - ztAuthToken = prompt('No authToken specified in URL. Enter token from\nauthtoken.secret to authorize.'); -} - -React.render( - React.createElement(ZeroTierNode, {authToken: ztAuthToken}), - document.getElementById('main') -); diff --git a/ext/installfiles/mac/ui/react.min.js b/ext/installfiles/mac/ui/react.min.js deleted file mode 100644 index 9040c970f..000000000 --- a/ext/installfiles/mac/ui/react.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * React v0.13.2 - * - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(a,u){if(!n[a]){if(!t[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a8&&11>=x),N=32,I=String.fromCharCode(N),T=f.topLevelTypes,R={beforeInput:{phasedRegistrationNames:{bubbled:C({onBeforeInput:null}),captured:C({onBeforeInputCapture:null})},dependencies:[T.topCompositionEnd,T.topKeyPress,T.topTextInput,T.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:C({onCompositionEnd:null}),captured:C({onCompositionEndCapture:null})},dependencies:[T.topBlur,T.topCompositionEnd,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:C({onCompositionStart:null}),captured:C({onCompositionStartCapture:null})},dependencies:[T.topBlur,T.topCompositionStart,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:C({onCompositionUpdate:null}),captured:C({onCompositionUpdateCapture:null})},dependencies:[T.topBlur,T.topCompositionUpdate,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]}},P=!1,w=null,O={eventTypes:R,extractEvents:function(e,t,n,r){return[l(e,t,n,r),d(e,t,n,r)]}};t.exports=O},{139:139,15:15,20:20,21:21,22:22,91:91,95:95}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},i=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){i.forEach(function(t){o[r(t,e)]=o[e]})});var a={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},u={isUnitlessNumber:o,shorthandPropertyExpansions:a};t.exports=u},{}],5:[function(e,t,n){"use strict";var r=e(4),o=e(21),i=(e(106),e(111)),a=e(131),u=e(141),s=(e(150),u(function(e){return a(e)})),l="cssFloat";o.canUseDOM&&void 0===document.documentElement.style.cssFloat&&(l="styleFloat");var c={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=s(n)+":",t+=i(n,r)+";")}return t||null},setValueForStyles:function(e,t){var n=e.style;for(var o in t)if(t.hasOwnProperty(o)){var a=i(o,t[o]);if("float"===o&&(o=l),a)n[o]=a;else{var u=r.shorthandPropertyExpansions[o];if(u)for(var s in u)n[s]="";else n[o]=""}}}};t.exports=c},{106:106,111:111,131:131,141:141,150:150,21:21,4:4}],6:[function(e,t,n){"use strict";function r(){this._callbacks=null,this._contexts=null}var o=e(28),i=e(27),a=e(133);i(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){a(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),o.addPoolingTo(r),t.exports=r},{133:133,27:27,28:28}],7:[function(e,t,n){"use strict";function r(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function o(e){var t=x.getPooled(T.change,P,e);E.accumulateTwoPhaseDispatches(t),_.batchedUpdates(i,t)}function i(e){C.enqueueEvents(e),C.processEventQueue()}function a(e,t){R=e,P=t,R.attachEvent("onchange",o)}function u(){R&&(R.detachEvent("onchange",o),R=null,P=null)}function s(e,t,n){return e===I.topChange?n:void 0}function l(e,t,n){e===I.topFocus?(u(),a(t,n)):e===I.topBlur&&u()}function c(e,t){R=e,P=t,w=e.value,O=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(R,"value",k),R.attachEvent("onpropertychange",d)}function p(){R&&(delete R.value,R.detachEvent("onpropertychange",d),R=null,P=null,w=null,O=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==w&&(w=t,o(e))}}function f(e,t,n){return e===I.topInput?n:void 0}function h(e,t,n){e===I.topFocus?(p(),c(t,n)):e===I.topBlur&&p()}function m(e,t,n){return e!==I.topSelectionChange&&e!==I.topKeyUp&&e!==I.topKeyDown||!R||R.value===w?void 0:(w=R.value,P)}function v(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===I.topClick?n:void 0}var y=e(15),C=e(17),E=e(20),b=e(21),_=e(85),x=e(93),D=e(134),M=e(136),N=e(139),I=y.topLevelTypes,T={change:{phasedRegistrationNames:{bubbled:N({onChange:null}),captured:N({onChangeCapture:null})},dependencies:[I.topBlur,I.topChange,I.topClick,I.topFocus,I.topInput,I.topKeyDown,I.topKeyUp,I.topSelectionChange]}},R=null,P=null,w=null,O=null,S=!1;b.canUseDOM&&(S=D("change")&&(!("documentMode"in document)||document.documentMode>8));var A=!1;b.canUseDOM&&(A=D("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return O.get.call(this)},set:function(e){w=""+e,O.set.call(this,e)}},L={eventTypes:T,extractEvents:function(e,t,n,o){var i,a;if(r(t)?S?i=s:a=l:M(t)?A?i=f:(i=m,a=h):v(t)&&(i=g),i){var u=i(e,t,n);if(u){var c=x.getPooled(T.change,u,o);return E.accumulateTwoPhaseDispatches(c),c}}a&&a(e,t,n)}};t.exports=L},{134:134,136:136,139:139,15:15,17:17,20:20,21:21,85:85,93:93}],8:[function(e,t,n){"use strict";var r=0,o={createReactRootIndex:function(){return r++}};t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var o=e(12),i=e(70),a=e(145),u=e(133),s={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:a,processUpdates:function(e,t){for(var n,s=null,l=null,c=0;ct||o.hasOverloadedBooleanValue[e]&&t===!1}var o=e(10),i=e(143),a=(e(150),{createMarkupForID:function(e){return o.ID_ATTRIBUTE_NAME+"="+i(e)},createMarkupForProperty:function(e,t){if(o.isStandardName.hasOwnProperty(e)&&o.isStandardName[e]){if(r(e,t))return"";var n=o.getAttributeName[e];return o.hasBooleanValue[e]||o.hasOverloadedBooleanValue[e]&&t===!0?n:n+"="+i(t)}return o.isCustomAttribute(e)?null==t?"":e+"="+i(t):null},setValueForProperty:function(e,t,n){if(o.isStandardName.hasOwnProperty(t)&&o.isStandardName[t]){var i=o.getMutationMethod[t];if(i)i(e,n);else if(r(t,n))this.deleteValueForProperty(e,t);else if(o.mustUseAttribute[t])e.setAttribute(o.getAttributeName[t],""+n);else{var a=o.getPropertyName[t];o.hasSideEffects[t]&&""+e[a]==""+n||(e[a]=n)}}else o.isCustomAttribute(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,t){if(o.isStandardName.hasOwnProperty(t)&&o.isStandardName[t]){var n=o.getMutationMethod[t];if(n)n(e,void 0);else if(o.mustUseAttribute[t])e.removeAttribute(o.getAttributeName[t]);else{var r=o.getPropertyName[t],i=o.getDefaultValueForProperty(e.nodeName,r);o.hasSideEffects[t]&&""+e[r]===i||(e[r]=i)}}else o.isCustomAttribute(t)&&e.removeAttribute(t)}});t.exports=a},{10:10,143:143,150:150}],12:[function(e,t,n){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var o=e(21),i=e(110),a=e(112),u=e(125),s=e(133),l=/^(<[^ \/>]+)/,c="data-danger-index",p={dangerouslyRenderMarkup:function(e){s(o.canUseDOM);for(var t,n={},p=0;ps;s++){var c=u[s];if(c){var p=c.extractEvents(e,t,n,o);p&&(a=i(a,p))}}return a},enqueueEvents:function(e){e&&(l=i(l,e))},processEventQueue:function(){var e=l;l=null,a(e,c),u(!l)},__purge:function(){s={}},__getListenerBank:function(){return s}};t.exports=d},{103:103,118:118,133:133,18:18,19:19}],18:[function(e,t,n){"use strict";function r(){if(u)for(var e in s){var t=s[e],n=u.indexOf(e);if(a(n>-1),!l.plugins[n]){a(t.extractEvents),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)a(o(r[i],t,i))}}}function o(e,t,n){a(!l.eventNameDispatchConfigs.hasOwnProperty(n)),l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];i(u,t,n)}return!0}return e.registrationName?(i(e.registrationName,t,n),!0):!1}function i(e,t,n){a(!l.registrationNameModules[e]),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=e(133),u=null,s={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){a(!u),u=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];s.hasOwnProperty(n)&&s[n]===o||(a(!s[n]),s[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=l.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){u=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=l},{133:133}],19:[function(e,t,n){"use strict";function r(e){return e===v.topMouseUp||e===v.topTouchEnd||e===v.topTouchCancel}function o(e){return e===v.topMouseMove||e===v.topTouchMove}function i(e){return e===v.topMouseDown||e===v.topTouchStart}function a(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;oe&&n[e]===o[e];e++);var a=r-e;for(t=1;a>=t&&n[r-t]===o[i-t];t++);var u=t>1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},{128:128,27:27,28:28}],23:[function(e,t,n){"use strict";var r,o=e(10),i=e(21),a=o.injection.MUST_USE_ATTRIBUTE,u=o.injection.MUST_USE_PROPERTY,s=o.injection.HAS_BOOLEAN_VALUE,l=o.injection.HAS_SIDE_EFFECTS,c=o.injection.HAS_NUMERIC_VALUE,p=o.injection.HAS_POSITIVE_NUMERIC_VALUE,d=o.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(i.canUseDOM){var f=document.implementation;r=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:a|s,allowTransparency:a,alt:null,async:s,autoComplete:null,autoPlay:s,cellPadding:null,cellSpacing:null,charSet:a,checked:u|s,classID:a,className:r?a:u,cols:a|p,colSpan:null,content:null,contentEditable:null,contextMenu:a,controls:u|s,coords:null,crossOrigin:null,data:null,dateTime:a,defer:s,dir:null,disabled:a|s,download:d,draggable:null,encType:null,form:a,formAction:a,formEncType:a,formMethod:a,formNoValidate:s,formTarget:a,frameBorder:a,headers:null,height:a,hidden:a|s,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:u,label:null,lang:null,list:a,loop:u|s,low:null,manifest:a,marginHeight:null,marginWidth:null,max:null,maxLength:a,media:a,mediaGroup:null,method:null,min:null,multiple:u|s,muted:u|s,name:null,noValidate:s,open:s,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:u|s,rel:null,required:s,role:a,rows:a|p,rowSpan:null,sandbox:null,scope:null,scoped:s,scrolling:null,seamless:a|s,selected:u|s,shape:null,size:a|p,sizes:a,span:p,spellCheck:null,src:null,srcDoc:u,srcSet:a,start:c,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:u|l,width:a,wmode:a,autoCapitalize:null,autoCorrect:null,itemProp:a,itemScope:a|s,itemType:a,itemID:a,itemRef:a,property:null,unselectable:a},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=h},{10:10,21:21}],24:[function(e,t,n){"use strict";function r(e){l(null==e.props.checkedLink||null==e.props.valueLink)}function o(e){r(e),l(null==e.props.value&&null==e.props.onChange)}function i(e){r(e),l(null==e.props.checked&&null==e.props.onChange)}function a(e){this.props.valueLink.requestChange(e.target.value)}function u(e){this.props.checkedLink.requestChange(e.target.checked)}var s=e(76),l=e(133),c={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},p={Mixin:{propTypes:{value:function(e,t,n){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func}},getValue:function(e){return e.props.valueLink?(o(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(i(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(o(e),a):e.props.checkedLink?(i(e),u):e.props.onChange}};t.exports=p},{133:133,76:76}],25:[function(e,t,n){"use strict";function r(e){e.remove()}var o=e(30),i=e(103),a=e(118),u=e(133),s={trapBubbledEvent:function(e,t){u(this.isMounted());var n=this.getDOMNode();u(n);var r=o.trapBubbledEvent(e,t,n);this._localEventListeners=i(this._localEventListeners,r)},componentWillUnmount:function(){this._localEventListeners&&a(this._localEventListeners,r)}};t.exports=s},{103:103,118:118,133:133,30:30}],26:[function(e,t,n){"use strict";var r=e(15),o=e(112),i=r.topLevelTypes,a={eventTypes:null,extractEvents:function(e,t,n,r){if(e===i.topTouchStart){var a=r.target;a&&!a.onclick&&(a.onclick=o)}}};t.exports=a},{112:112,15:15}],27:[function(e,t,n){"use strict";function r(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;ol;l++){var d=u[l];i.hasOwnProperty(d)&&i[d]||(d===s.topWheel?c("wheel")?v.ReactEventListener.trapBubbledEvent(s.topWheel,"wheel",n):c("mousewheel")?v.ReactEventListener.trapBubbledEvent(s.topWheel,"mousewheel",n):v.ReactEventListener.trapBubbledEvent(s.topWheel,"DOMMouseScroll",n):d===s.topScroll?c("scroll",!0)?v.ReactEventListener.trapCapturedEvent(s.topScroll,"scroll",n):v.ReactEventListener.trapBubbledEvent(s.topScroll,"scroll",v.ReactEventListener.WINDOW_HANDLE):d===s.topFocus||d===s.topBlur?(c("focus",!0)?(v.ReactEventListener.trapCapturedEvent(s.topFocus,"focus",n),v.ReactEventListener.trapCapturedEvent(s.topBlur,"blur",n)):c("focusin")&&(v.ReactEventListener.trapBubbledEvent(s.topFocus,"focusin",n),v.ReactEventListener.trapBubbledEvent(s.topBlur,"focusout",n)),i[s.topBlur]=!0,i[s.topFocus]=!0):h.hasOwnProperty(d)&&v.ReactEventListener.trapBubbledEvent(d,h[d],n),i[d]=!0)}},trapBubbledEvent:function(e,t,n){ -return v.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return v.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!d){var e=s.refreshScrollValues;v.ReactEventListener.monitorScrollValue(e),d=!0}},eventNameDispatchConfigs:i.eventNameDispatchConfigs,registrationNameModules:i.registrationNameModules,putListener:i.putListener,getListener:i.getListener,deleteListener:i.deleteListener,deleteAllListeners:i.deleteAllListeners});t.exports=v},{102:102,134:134,15:15,17:17,18:18,27:27,59:59}],31:[function(e,t,n){"use strict";var r=e(79),o=e(116),i=e(132),a=e(147),u={instantiateChildren:function(e,t,n){var r=o(e);for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],s=i(u,null);r[a]=s}return r},updateChildren:function(e,t,n,u){var s=o(t);if(!s&&!e)return null;var l;for(l in s)if(s.hasOwnProperty(l)){var c=e&&e[l],p=c&&c._currentElement,d=s[l];if(a(p,d))r.receiveComponent(c,d,n,u),s[l]=c;else{c&&r.unmountComponent(c,l);var f=i(d,null);s[l]=f}}for(l in e)!e.hasOwnProperty(l)||s&&s.hasOwnProperty(l)||r.unmountComponent(e[l]);return s},unmountChildren:function(e){for(var t in e){var n=e[t];r.unmountComponent(n)}}};t.exports=u},{116:116,132:132,147:147,79:79}],32:[function(e,t,n){"use strict";function r(e,t){this.forEachFunction=e,this.forEachContext=t}function o(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function i(e,t,n){if(null==e)return e;var i=r.getPooled(t,n);f(e,o,i),r.release(i)}function a(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function u(e,t,n,r){var o=e,i=o.mapResult,a=!i.hasOwnProperty(n);if(a){var u=o.mapFunction.call(o.mapContext,t,r);i[n]=u}}function s(e,t,n){if(null==e)return e;var r={},o=a.getPooled(r,t,n);return f(e,u,o),a.release(o),d.create(r)}function l(e,t,n,r){return null}function c(e,t){return f(e,l,null)}var p=e(28),d=e(61),f=e(149),h=(e(150),p.twoArgumentPooler),m=p.threeArgumentPooler;p.addPoolingTo(r,h),p.addPoolingTo(a,m);var v={forEach:i,map:s,count:c};t.exports=v},{149:149,150:150,28:28,61:61}],33:[function(e,t,n){"use strict";function r(e,t){var n=D.hasOwnProperty(t)?D[t]:null;N.hasOwnProperty(t)&&y(n===_.OVERRIDE_BASE),e.hasOwnProperty(t)&&y(n===_.DEFINE_MANY||n===_.DEFINE_MANY_MERGED)}function o(e,t){if(t){y("function"!=typeof t),y(!d.isValidElement(t));var n=e.prototype;t.hasOwnProperty(b)&&M.mixins(e,t.mixins);for(var o in t)if(t.hasOwnProperty(o)&&o!==b){var i=t[o];if(r(n,o),M.hasOwnProperty(o))M[o](e,i);else{var a=D.hasOwnProperty(o),l=n.hasOwnProperty(o),c=i&&i.__reactDontBind,p="function"==typeof i,f=p&&!a&&!l&&!c;if(f)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[o]=i,n[o]=i;else if(l){var h=D[o];y(a&&(h===_.DEFINE_MANY_MERGED||h===_.DEFINE_MANY)),h===_.DEFINE_MANY_MERGED?n[o]=u(n[o],i):h===_.DEFINE_MANY&&(n[o]=s(n[o],i))}else n[o]=i}}}}function i(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in M;y(!o);var i=n in e;y(!i),e[n]=r}}}function a(e,t){y(e&&t&&"object"==typeof e&&"object"==typeof t);for(var n in t)t.hasOwnProperty(n)&&(y(void 0===e[n]),e[n]=t[n]);return e}function u(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return a(o,n),a(o,r),o}}function s(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function l(e,t){var n=t.bind(e);return n}function c(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=l(e,f.guard(n,e.constructor.displayName+"."+t))}}var p=e(34),d=(e(39),e(55)),f=e(58),h=e(65),m=e(66),v=(e(75),e(74),e(84)),g=e(27),y=e(133),C=e(138),E=e(139),b=(e(150),E({mixins:null})),_=C({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),x=[],D={mixins:_.DEFINE_MANY,statics:_.DEFINE_MANY,propTypes:_.DEFINE_MANY,contextTypes:_.DEFINE_MANY,childContextTypes:_.DEFINE_MANY,getDefaultProps:_.DEFINE_MANY_MERGED,getInitialState:_.DEFINE_MANY_MERGED,getChildContext:_.DEFINE_MANY_MERGED,render:_.DEFINE_ONCE,componentWillMount:_.DEFINE_MANY,componentDidMount:_.DEFINE_MANY,componentWillReceiveProps:_.DEFINE_MANY,shouldComponentUpdate:_.DEFINE_ONCE,componentWillUpdate:_.DEFINE_MANY,componentDidUpdate:_.DEFINE_MANY,componentWillUnmount:_.DEFINE_MANY,updateComponent:_.OVERRIDE_BASE},M={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n";return this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t,n)+o},_createOpenTagMarkupAndPutListeners:function(e){var t=this._currentElement.props,n="<"+this._tag;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(b.hasOwnProperty(r))o(this._rootNodeID,r,i,e);else{r===x&&(i&&(i=this._previousStyleCopy=m({},t.style)),i=u.createMarkupForStyles(i));var a=l.createMarkupForProperty(r,i);a&&(n+=" "+a)}}if(e.renderToStaticMarkup)return n+">";var s=l.createMarkupForID(this._rootNodeID);return n+" "+s+">"},_createContentMarkup:function(e,t){var n="";("listing"===this._tag||"pre"===this._tag||"textarea"===this._tag)&&(n="\n");var r=this._currentElement.props,o=r.dangerouslySetInnerHTML;if(null!=o){if(null!=o.__html)return n+o.__html}else{var i=_[typeof r.children]?r.children:null,a=null!=i?null:r.children;if(null!=i)return n+v(i);if(null!=a){var u=this.mountChildren(a,e,t);return n+u.join("")}}return n},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,o){r(this._currentElement.props),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e,o)},_updateDOMProperties:function(e,t){var n,r,i,a=this._currentElement.props;for(n in e)if(!a.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===x){var u=this._previousStyleCopy;for(r in u)u.hasOwnProperty(r)&&(i=i||{},i[r]="");this._previousStyleCopy=null}else b.hasOwnProperty(n)?C(this._rootNodeID,n):(s.isStandardName[n]||s.isCustomAttribute(n))&&M.deletePropertyByID(this._rootNodeID,n);for(n in a){var l=a[n],c=n===x?this._previousStyleCopy:e[n];if(a.hasOwnProperty(n)&&l!==c)if(n===x)if(l?l=this._previousStyleCopy=m({},l):this._previousStyleCopy=null,c){for(r in c)!c.hasOwnProperty(r)||l&&l.hasOwnProperty(r)||(i=i||{},i[r]="");for(r in l)l.hasOwnProperty(r)&&c[r]!==l[r]&&(i=i||{},i[r]=l[r])}else i=l;else b.hasOwnProperty(n)?o(this._rootNodeID,n,l,t):(s.isStandardName[n]||s.isCustomAttribute(n))&&M.updatePropertyByID(this._rootNodeID,n,l)}i&&M.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t,n){var r=this._currentElement.props,o=_[typeof e.children]?e.children:null,i=_[typeof r.children]?r.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,u=r.dangerouslySetInnerHTML&&r.dangerouslySetInnerHTML.__html,s=null!=o?null:e.children,l=null!=i?null:r.children,c=null!=o||null!=a,p=null!=i||null!=u;null!=s&&null==l?this.updateChildren(null,t,n):c&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=u?a!==u&&M.updateInnerHTMLByID(this._rootNodeID,u):null!=l&&this.updateChildren(l,t,n)},unmountComponent:function(){this.unmountChildren(),c.deleteAllListeners(this._rootNodeID),p.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null}},h.measureMethods(a,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),m(a.prototype,a.Mixin,f.Mixin),a.injection={injectIDOperations:function(e){a.BackendIDOperations=M=e}},t.exports=a},{10:10,11:11,114:114,133:133,134:134,139:139,150:150,27:27,30:30,35:35,5:5,68:68,69:69,73:73}],43:[function(e,t,n){"use strict";var r=e(15),o=e(25),i=e(29),a=e(33),u=e(55),s=u.createFactory("form"),l=a.createClass({displayName:"ReactDOMForm",tagName:"FORM",mixins:[i,o],render:function(){return s(this.props)},componentDidMount:function(){this.trapBubbledEvent(r.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(r.topLevelTypes.topSubmit,"submit")}});t.exports=l},{15:15,25:25,29:29,33:33,55:55}],44:[function(e,t,n){"use strict";var r=e(5),o=e(9),i=e(11),a=e(68),u=e(73),s=e(133),l=e(144),c={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},p={updatePropertyByID:function(e,t,n){var r=a.getNode(e);s(!c.hasOwnProperty(t)),null!=n?i.setValueForProperty(r,t,n):i.deleteValueForProperty(r,t)},deletePropertyByID:function(e,t,n){var r=a.getNode(e);s(!c.hasOwnProperty(t)),i.deleteValueForProperty(r,t,n)},updateStylesByID:function(e,t){var n=a.getNode(e);r.setValueForStyles(n,t)},updateInnerHTMLByID:function(e,t){var n=a.getNode(e);l(n,t)},updateTextContentByID:function(e,t){var n=a.getNode(e);o.updateTextContent(n,t)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=a.getNode(e);o.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;nl;l++){var h=s[l];if(h!==i&&h.form===i.form){var v=c.getID(h);f(v);var g=m[v];f(g),p.asap(r,g)}}}return t}});t.exports=v},{11:11,133:133,2:2,24:24,27:27,29:29,33:33,55:55,68:68,85:85}],48:[function(e,t,n){"use strict";var r=e(29),o=e(33),i=e(55),a=(e(150),i.createFactory("option")),u=o.createClass({displayName:"ReactDOMOption",tagName:"OPTION",mixins:[r],componentWillMount:function(){},render:function(){return a(this.props,this.props.children)}});t.exports=u},{150:150,29:29,33:33,55:55}],49:[function(e,t,n){"use strict";function r(){if(this._pendingUpdate){this._pendingUpdate=!1;var e=u.getValue(this);null!=e&&this.isMounted()&&i(this,e)}}function o(e,t,n){if(null==e[t])return null;if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to must be a scalar value if `multiple` is false.")}function i(e,t){var n,r,o,i=e.getDOMNode().options;if(e.props.multiple){for(n={},r=0,o=t.length;o>r;r++)n[""+t[r]]=!0;for(r=0,o=i.length;o>r;r++){var a=n.hasOwnProperty(i[r].value);i[r].selected!==a&&(i[r].selected=a)}}else{for(n=""+t,r=0,o=i.length;o>r;r++)if(i[r].value===n)return void(i[r].selected=!0);i.length&&(i[0].selected=!0)}}var a=e(2),u=e(24),s=e(29),l=e(33),c=e(55),p=e(85),d=e(27),f=c.createFactory("select"),h=l.createClass({displayName:"ReactDOMSelect",tagName:"SELECT",mixins:[a,u.Mixin,s],propTypes:{defaultValue:o,value:o},render:function(){var e=d({},this.props);return e.onChange=this._handleChange,e.value=null,f(e,this.props.children)},componentWillMount:function(){this._pendingUpdate=!1},componentDidMount:function(){var e=u.getValue(this);null!=e?i(this,e):null!=this.props.defaultValue&&i(this,this.props.defaultValue)},componentDidUpdate:function(e){var t=u.getValue(this);null!=t?(this._pendingUpdate=!1,i(this,t)):!e.multiple!=!this.props.multiple&&(null!=this.props.defaultValue?i(this,this.props.defaultValue):i(this,this.props.multiple?[]:""))},_handleChange:function(e){var t,n=u.getOnChange(this);return n&&(t=n.call(this,e)),this._pendingUpdate=!0,p.asap(r,this),t}});t.exports=h},{2:2,24:24,27:27,29:29,33:33,55:55,85:85}],50:[function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function o(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function i(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,o=t.anchorOffset,i=t.focusNode,a=t.focusOffset,u=t.getRangeAt(0),s=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),l=s?0:u.toString().length,c=u.cloneRange();c.selectNodeContents(e),c.setEnd(u.startContainer,u.startOffset);var p=r(c.startContainer,c.startOffset,c.endContainer,c.endOffset),d=p?0:c.toString().length,f=d+l,h=document.createRange();h.setStart(n,o),h.setEnd(i,a);var m=h.collapsed;return{start:m?f:d,end:m?d:f}}function a(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var u=l(e,o),s=l(e,i);if(u&&s){var p=document.createRange();p.setStart(u.node,u.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(s.node,s.offset)):(p.setEnd(s.node,s.offset),n.addRange(p))}}}var s=e(21),l=e(126),c=e(128),p=s.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:i,setOffsets:p?a:u};t.exports=d},{126:126,128:128,21:21}],51:[function(e,t,n){"use strict";var r=e(11),o=e(35),i=e(42),a=e(27),u=e(114),s=function(e){};a(s.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,t,n){this._rootNodeID=e;var o=u(this._stringText);return t.renderToStaticMarkup?o:""+o+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;n!==this._stringText&&(this._stringText=n,i.BackendIDOperations.updateTextContentByID(this._rootNodeID,n))}},unmountComponent:function(){o.unmountIDFromEnvironment(this._rootNodeID)}}),t.exports=s},{11:11,114:114,27:27,35:35,42:42}],52:[function(e,t,n){"use strict";function r(){this.isMounted()&&this.forceUpdate()}var o=e(2),i=e(11),a=e(24),u=e(29),s=e(33),l=e(55),c=e(85),p=e(27),d=e(133),f=(e(150),l.createFactory("textarea")),h=s.createClass({displayName:"ReactDOMTextarea",tagName:"TEXTAREA",mixins:[o,a.Mixin,u],getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;null!=t&&(d(null==e),Array.isArray(t)&&(d(t.length<=1),t=t[0]),e=""+t),null==e&&(e="");var n=a.getValue(this);return{initialValue:""+(null!=n?n:e)}},render:function(){var e=p({},this.props);return d(null==e.dangerouslySetInnerHTML),e.defaultValue=null,e.value=null,e.onChange=this._handleChange,f(e,this.state.initialValue)},componentDidUpdate:function(e,t,n){var r=a.getValue(this);if(null!=r){var o=this.getDOMNode();i.setValueForProperty(o,"value",""+r)}},_handleChange:function(e){var t,n=a.getOnChange(this);return n&&(t=n.call(this,e)),c.asap(r,this),t}});t.exports=h},{11:11,133:133,150:150,2:2,24:24,27:27,29:29,33:33,55:55,85:85}],53:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(85),i=e(101),a=e(27),u=e(112),s={initialize:u,close:function(){d.isBatchingUpdates=!1}},l={initialize:u,close:o.flushBatchedUpdates.bind(o)},c=[l,s];a(r.prototype,i.Mixin,{getTransactionWrappers:function(){return c}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o){var i=d.isBatchingUpdates;d.isBatchingUpdates=!0,i?e(t,n,r,o):p.perform(e,null,t,n,r,o)}};t.exports=d},{101:101,112:112,27:27,85:85}],54:[function(e,t,n){"use strict";function r(e){return h.createClass({tagName:e.toUpperCase(),render:function(){return new T(e,null,null,null,null,this.props)}})}function o(){P.EventEmitter.injectReactEventListener(R),P.EventPluginHub.injectEventPluginOrder(s),P.EventPluginHub.injectInstanceHandle(w),P.EventPluginHub.injectMount(O),P.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:L,EnterLeaveEventPlugin:l,ChangeEventPlugin:a,MobileSafariClickEventPlugin:d,SelectEventPlugin:A,BeforeInputEventPlugin:i}),P.NativeComponent.injectGenericComponentClass(g),P.NativeComponent.injectTextComponentClass(I),P.NativeComponent.injectAutoWrapper(r),P.Class.injectMixin(f),P.NativeComponent.injectComponentClasses({button:y,form:C,iframe:_,img:E,input:x,option:D,select:M,textarea:N,html:F("html"),head:F("head"),body:F("body")}),P.DOMProperty.injectDOMPropertyConfig(p),P.DOMProperty.injectDOMPropertyConfig(U),P.EmptyComponent.injectEmptyComponent("noscript"),P.Updates.injectReconcileTransaction(S),P.Updates.injectBatchingStrategy(v),P.RootIndex.injectCreateReactRootIndex(c.canUseDOM?u.createReactRootIndex:k.createReactRootIndex),P.Component.injectEnvironment(m),P.DOMComponent.injectIDOperations(b)}var i=e(3),a=e(7),u=e(8),s=e(13),l=e(14),c=e(21),p=e(23),d=e(26),f=e(29),h=e(33),m=e(35),v=e(53),g=e(42),y=e(41),C=e(43),E=e(46),b=e(44),_=e(45),x=e(47),D=e(48),M=e(49),N=e(52),I=e(51),T=e(55),R=e(60),P=e(62),w=e(64),O=e(68),S=e(78),A=e(87),k=e(88),L=e(89),U=e(86),F=e(109);t.exports={inject:o}},{109:109,13:13,14:14,21:21,23:23,26:26,29:29,3:3,33:33,35:35,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,51:51,52:52,53:53,55:55,60:60,62:62,64:64,68:68,7:7,78:78,8:8,86:86,87:87,88:88, -89:89}],55:[function(e,t,n){"use strict";var r=e(38),o=e(39),i=e(27),a=(e(150),{key:!0,ref:!0}),u=function(e,t,n,r,o,i){this.type=e,this.key=t,this.ref=n,this._owner=r,this._context=o,this.props=i};u.prototype={_isReactElement:!0},u.createElement=function(e,t,n){var i,s={},l=null,c=null;if(null!=t){c=void 0===t.ref?null:t.ref,l=void 0===t.key?null:""+t.key;for(i in t)t.hasOwnProperty(i)&&!a.hasOwnProperty(i)&&(s[i]=t[i])}var p=arguments.length-2;if(1===p)s.children=n;else if(p>1){for(var d=Array(p),f=0;p>f;f++)d[f]=arguments[f+2];s.children=d}if(e&&e.defaultProps){var h=e.defaultProps;for(i in h)"undefined"==typeof s[i]&&(s[i]=h[i])}return new u(e,l,c,o.current,r.current,s)},u.createFactory=function(e){var t=u.createElement.bind(null,e);return t.type=e,t},u.cloneAndReplaceProps=function(e,t){var n=new u(e.type,e.key,e.ref,e._owner,e._context,t);return n},u.cloneElement=function(e,t,n){var r,s=i({},e.props),l=e.key,c=e.ref,p=e._owner;if(null!=t){void 0!==t.ref&&(c=t.ref,p=o.current),void 0!==t.key&&(l=""+t.key);for(r in t)t.hasOwnProperty(r)&&!a.hasOwnProperty(r)&&(s[r]=t[r])}var d=arguments.length-2;if(1===d)s.children=n;else if(d>1){for(var f=Array(d),h=0;d>h;h++)f[h]=arguments[h+2];s.children=f}return new u(e.type,l,c,p,e._context,s)},u.isValidElement=function(e){var t=!(!e||!e._isReactElement);return t},t.exports=u},{150:150,27:27,38:38,39:39}],56:[function(e,t,n){"use strict";function r(){if(y.current){var e=y.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function o(e){var t=e&&e.getPublicInstance();if(!t)return void 0;var n=t.constructor;return n?n.displayName||n.name||void 0:void 0}function i(){var e=y.current;return e&&o(e)||void 0}function a(e,t){e._store.validated||null!=e.key||(e._store.validated=!0,s('Each child in an array or iterator should have a unique "key" prop.',e,t))}function u(e,t,n){D.test(e)&&s("Child objects should have non-numeric keys so ordering is preserved.",t,n)}function s(e,t,n){var r=i(),a="string"==typeof n?n:n.displayName||n.name,u=r||a,s=_[e]||(_[e]={});if(!s.hasOwnProperty(u)){s[u]=!0;var l="";if(t&&t._owner&&t._owner!==y.current){var c=o(t._owner);l=" It was passed a child from "+c+"."}}}function l(e,t){if(Array.isArray(e))for(var n=0;n");var u="";o&&(u=" The element was created by "+o+".")}}function d(e,t){return e!==e?t!==t:0===e&&0===t?1/e===1/t:e===t}function f(e){if(e._store){var t=e._store.originalProps,n=e.props;for(var r in n)n.hasOwnProperty(r)&&(t.hasOwnProperty(r)&&d(t[r],n[r])||(p(r,e),t[r]=n[r]))}}function h(e){if(null!=e.type){var t=C.getComponentClassForElement(e),n=t.displayName||t.name;t.propTypes&&c(n,t.propTypes,e.props,g.prop),"function"==typeof t.getDefaultProps}}var m=e(55),v=e(61),g=e(75),y=(e(74),e(39)),C=e(71),E=e(124),b=e(133),_=(e(150),{}),x={},D=/^\d+$/,M={},N={checkAndWarnForMutatedProps:f,createElement:function(e,t,n){var r=m.createElement.apply(this,arguments);if(null==r)return r;for(var o=2;oo;o++){t=e.ancestors[o];var a=p.getID(t)||"";v._handleTopLevel(e.topLevelType,t,a,e.nativeEvent)}}function a(e){var t=m(window);e(t)}var u=e(16),s=e(21),l=e(28),c=e(64),p=e(68),d=e(85),f=e(27),h=e(123),m=e(129);f(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(o,l.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(e){v._handleTopLevel=e},setEnabled:function(e){v._enabled=!!e},isEnabled:function(){return v._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?u.listen(r,t,v.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){var r=n;return r?u.capture(r,t,v.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=a.bind(null,e);u.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(v._enabled){var n=o.getPooled(e,t);try{d.batchedUpdates(i,n)}finally{o.release(n)}}}};t.exports=v},{123:123,129:129,16:16,21:21,27:27,28:28,64:64,68:68,85:85}],61:[function(e,t,n){"use strict";var r=(e(55),e(150),{create:function(e){return e},extract:function(e){return e},extractIfFragment:function(e){return e}});t.exports=r},{150:150,55:55}],62:[function(e,t,n){"use strict";var r=e(10),o=e(17),i=e(36),a=e(33),u=e(57),s=e(30),l=e(71),c=e(42),p=e(73),d=e(81),f=e(85),h={Component:i.injection,Class:a.injection,DOMComponent:c.injection,DOMProperty:r.injection,EmptyComponent:u.injection,EventPluginHub:o.injection,EventEmitter:s.injection,NativeComponent:l.injection,Perf:p.injection,RootIndex:d.injection,Updates:f.injection};t.exports=h},{10:10,17:17,30:30,33:33,36:36,42:42,57:57,71:71,73:73,81:81,85:85}],63:[function(e,t,n){"use strict";function r(e){return i(document.documentElement,e)}var o=e(50),i=e(107),a=e(117),u=e(119),s={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=u();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=u(),n=e.focusedElem,o=e.selectionRange;t!==n&&r(n)&&(s.hasSelectionCapabilities(n)&&s.setSelection(n,o),a(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&"INPUT"===e.nodeName){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=o.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if("undefined"==typeof r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&"INPUT"===e.nodeName){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",r-n),i.select()}else o.setOffsets(e,t)}};t.exports=s},{107:107,117:117,119:119,50:50}],64:[function(e,t,n){"use strict";function r(e){return f+e.toString(36)}function o(e,t){return e.charAt(t)===f||t===e.length}function i(e){return""===e||e.charAt(0)===f&&e.charAt(e.length-1)!==f}function a(e,t){return 0===t.indexOf(e)&&o(t,e.length)}function u(e){return e?e.substr(0,e.lastIndexOf(f)):""}function s(e,t){if(d(i(e)&&i(t)),d(a(e,t)),e===t)return e;var n,r=e.length+h;for(n=r;n=a;a++)if(o(e,a)&&o(t,a))r=a;else if(e.charAt(a)!==t.charAt(a))break;var u=e.substr(0,r);return d(i(u)),u}function c(e,t,n,r,o,i){e=e||"",t=t||"",d(e!==t);var l=a(t,e);d(l||a(e,t));for(var c=0,p=l?u:s,f=e;;f=p(f,t)){var h;if(o&&f===e||i&&f===t||(h=n(f,l,r)),h===!1||f===t)break;d(c++1){var t=e.indexOf(f,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=l(e,t);i!==e&&c(e,i,n,r,!1,!0),i!==t&&c(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},_getFirstCommonAncestorID:l,_getNextDescendantID:s,isAncestorIDOf:a,SEPARATOR:f};t.exports=v},{133:133,81:81}],65:[function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};t.exports=r},{}],66:[function(e,t,n){"use strict";var r={currentlyMountingInstance:null,currentlyUnmountingInstance:null};t.exports=r},{}],67:[function(e,t,n){"use strict";var r=e(104),o={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(">"," "+o.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var n=t.getAttribute(o.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=r(e);return i===n}};t.exports=o},{104:104}],68:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function o(e){var t=R(e);return t&&K.getID(t)}function i(e){var t=a(e);if(t)if(L.hasOwnProperty(t)){var n=L[t];n!==e&&(w(!c(n,t)),L[t]=e)}else L[t]=e;return t}function a(e){return e&&e.getAttribute&&e.getAttribute(k)||""}function u(e,t){var n=a(e);n!==t&&delete L[n],e.setAttribute(k,t),L[t]=e}function s(e){return L.hasOwnProperty(e)&&c(L[e],e)||(L[e]=K.findReactNodeByID(e)),L[e]}function l(e){var t=b.get(e)._rootNodeID;return C.isNullComponentID(t)?null:(L.hasOwnProperty(t)&&c(L[t],t)||(L[t]=K.findReactNodeByID(t)),L[t])}function c(e,t){if(e){w(a(e)===t);var n=K.findReactContainerForID(t);if(n&&T(n,e))return!0}return!1}function p(e){delete L[e]}function d(e){var t=L[e];return t&&c(t,e)?void(W=t):!1}function f(e){W=null,E.traverseAncestors(e,d);var t=W;return W=null,t}function h(e,t,n,r,o){var i=D.mountComponent(e,t,r,I);e._isTopLevel=!0,K._mountImageIntoNode(i,n,o)}function m(e,t,n,r){var o=N.ReactReconcileTransaction.getPooled();o.perform(h,null,e,t,n,o,r),N.ReactReconcileTransaction.release(o)}var v=e(10),g=e(30),y=(e(39),e(55)),C=(e(56),e(57)),E=e(64),b=e(65),_=e(67),x=e(73),D=e(79),M=e(84),N=e(85),I=e(113),T=e(107),R=e(127),P=e(132),w=e(133),O=e(144),S=e(147),A=(e(150),E.SEPARATOR),k=v.ID_ATTRIBUTE_NAME,L={},U=1,F=9,B={},V={},j=[],W=null,K={_instancesByReactRootID:B,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return K.scrollMonitor(n,function(){M.enqueueElementInternal(e,t),r&&M.enqueueCallbackInternal(e,r)}),e},_registerComponent:function(e,t){w(t&&(t.nodeType===U||t.nodeType===F)),g.ensureScrollValueMonitoring();var n=K.registerContainer(t);return B[n]=e,n},_renderNewRootComponent:function(e,t,n){var r=P(e,null),o=K._registerComponent(r,t);return N.batchedUpdates(m,r,o,t,n),r},render:function(e,t,n){w(y.isValidElement(e));var r=B[o(t)];if(r){var i=r._currentElement;if(S(i,e))return K._updateRootComponent(r,e,t,n).getPublicInstance();K.unmountComponentAtNode(t)}var a=R(t),u=a&&K.isRenderedByReact(a),s=u&&!r,l=K._renderNewRootComponent(e,t,s).getPublicInstance();return n&&n.call(l),l},constructAndRenderComponent:function(e,t,n){var r=y.createElement(e,t);return K.render(r,n)},constructAndRenderComponentByID:function(e,t,n){var r=document.getElementById(n);return w(r),K.constructAndRenderComponent(e,t,r)},registerContainer:function(e){var t=o(e);return t&&(t=E.getReactRootIDFromNodeID(t)),t||(t=E.createReactRootID()),V[t]=e,t},unmountComponentAtNode:function(e){w(e&&(e.nodeType===U||e.nodeType===F));var t=o(e),n=B[t];return n?(K.unmountComponentFromNode(n,e),delete B[t],delete V[t],!0):!1},unmountComponentFromNode:function(e,t){for(D.unmountComponent(e),t.nodeType===F&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)},findReactContainerForID:function(e){var t=E.getReactRootIDFromNodeID(e),n=V[t];return n},findReactNodeByID:function(e){var t=K.findReactContainerForID(e);return K.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=K.getID(e);return t?t.charAt(0)===A:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(K.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=j,r=0,o=f(t)||e;for(n[0]=o.firstChild,n.length=1;r>",_=u(),x=d(),D={array:o("array"),bool:o("boolean"),func:o("function"),number:o("number"),object:o("object"),string:o("string"),any:i(),arrayOf:a,element:_,instanceOf:s,node:x,objectOf:c,oneOf:l,oneOfType:p,shape:f};t.exports=D},{112:112,55:55,61:61,74:74}],77:[function(e,t,n){"use strict";function r(){this.listenersToPut=[]}var o=e(28),i=e(30),a=e(27);a(r.prototype,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;en;n++){var r=g[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,f.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var i=0;i":">","<":"<",'"':""","'":"'"},a=/[&><"']/g;t.exports=o},{}],115:[function(e,t,n){"use strict";function r(e){return null==e?null:u(e)?e:o.has(e)?i.getNodeFromInstance(e):(a(null==e.render||"function"!=typeof e.render),void a(!1))}{var o=(e(39),e(65)),i=e(68),a=e(133),u=e(135);e(150)}t.exports=r},{133:133,135:135,150:150,39:39,65:65,68:68}],116:[function(e,t,n){"use strict";function r(e,t,n){var r=e,o=!r.hasOwnProperty(n);o&&null!=t&&(r[n]=t)}function o(e){if(null==e)return e;var t={};return i(e,r,t),t}{var i=e(149);e(150)}t.exports=o},{149:149,150:150}],117:[function(e,t,n){"use strict";function r(e){try{e.focus()}catch(t){}}t.exports=r},{}],118:[function(e,t,n){"use strict";var r=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=r},{}],119:[function(e,t,n){function r(){try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=r},{}],120:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],121:[function(e,t,n){"use strict";function r(e){if(e.key){var t=i[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var o=e(120),i={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{120:120}],122:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return r?!!n[r]:!1}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],123:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=r},{}],124:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);return"function"==typeof t?t:void 0}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],125:[function(e,t,n){function r(e){return i(!!a),d.hasOwnProperty(e)||(e="*"),u.hasOwnProperty(e)||("*"===e?a.innerHTML="":a.innerHTML="<"+e+">",u[e]=!a.firstChild),u[e]?d[e]:null}var o=e(21),i=e(133),a=o.canUseDOM?document.createElement("div"):null,u={circle:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},s=[1,'"],l=[1,"","
"],c=[3,"","
"],p=[1,"",""],d={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:s,option:s,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c,circle:p,defs:p,ellipse:p,g:p,line:p,linearGradient:p,path:p,polygon:p,polyline:p,radialGradient:p,rect:p,stop:p,text:p};t.exports=r},{133:133,21:21}],126:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function i(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,t>=i&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}t.exports=i},{}],127:[function(e,t,n){"use strict";function r(e){return e?e.nodeType===o?e.documentElement:e.firstChild:null}var o=9;t.exports=r},{}],128:[function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=e(21),i=null;t.exports=r},{21:21}],129:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],130:[function(e,t,n){function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],131:[function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=e(130),i=/^ms-/;t.exports=r},{130:130}],132:[function(e,t,n){"use strict";function r(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e,t){var n;if((null===e||e===!1)&&(e=a.emptyElement),"object"==typeof e){var o=e;n=t===o.type&&"string"==typeof o.type?u.createInternalComponent(o):r(o.type)?new o.type(o):new c}else"string"==typeof e||"number"==typeof e?n=u.createInstanceForText(e):l(!1);return n.construct(e),n._mountIndex=0,n._mountImage=null,n}var i=e(37),a=e(57),u=e(71),s=e(27),l=e(133),c=(e(150),function(){});s(c.prototype,i.Mixin,{_instantiateReactComponent:o}),t.exports=o},{133:133,150:150,27:27,37:37,57:57,71:71}],133:[function(e,t,n){"use strict";var r=function(e,t,n,r,o,i,a,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,i,a,u],c=0;s=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return l[c++]}))}throw s.framesToPop=1,s}};t.exports=r},{}],134:[function(e,t,n){"use strict";function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=e(21);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{21:21}],135:[function(e,t,n){function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],136:[function(e,t,n){"use strict";function r(e){return e&&("INPUT"===e.nodeName&&o[e.type]||"TEXTAREA"===e.nodeName)}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],137:[function(e,t,n){function r(e){return o(e)&&3==e.nodeType}var o=e(135);t.exports=r},{135:135}],138:[function(e,t,n){"use strict";var r=e(133),o=function(e){var t,n={};r(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n};t.exports=o},{133:133}],139:[function(e,t,n){var r=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=r},{}],140:[function(e,t,n){"use strict";function r(e,t,n){if(!e)return null;var r={};for(var i in e)o.call(e,i)&&(r[i]=t.call(n,e[i],i,e));return r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],141:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],142:[function(e,t,n){"use strict";function r(e){return i(o.isValidElement(e)),e}var o=e(55),i=e(133);t.exports=r},{133:133,55:55}],143:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(114);t.exports=r},{114:114}],144:[function(e,t,n){"use strict";var r=e(21),o=/^[ \r\n\t\f]/,i=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,a=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(a=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var u=document.createElement("div");u.innerHTML=" ",""===u.innerHTML&&(a=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),o.test(t)||"<"===t[0]&&i.test(t)){e.innerHTML="\ufeff"+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=a},{21:21}],145:[function(e,t,n){"use strict";var r=e(21),o=e(114),i=e(144),a=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){i(e,o(t))})),t.exports=a},{114:114,144:144,21:21}],146:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;var n;for(n in e)if(e.hasOwnProperty(n)&&(!t.hasOwnProperty(n)||e[n]!==t[n]))return!1;for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}t.exports=r},{}],147:[function(e,t,n){"use strict";function r(e,t){if(null!=e&&null!=t){var n=typeof e,r=typeof t;if("string"===n||"number"===n)return"string"===r||"number"===r;if("object"===r&&e.type===t.type&&e.key===t.key){var o=e._owner===t._owner;return o}}return!1}e(150);t.exports=r},{150:150}],148:[function(e,t,n){function r(e){var t=e.length;if(o(!Array.isArray(e)&&("object"==typeof e||"function"==typeof e)),o("number"==typeof t),o(0===t||t-1 in e),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var r=Array(t),i=0;t>i;i++)r[i]=e[i];return r}var o=e(133);t.exports=r},{133:133}],149:[function(e,t,n){"use strict";function r(e){return v[e]}function o(e,t){return e&&null!=e.key?a(e.key):t.toString(36)}function i(e){return(""+e).replace(g,r)}function a(e){return"$"+i(e)}function u(e,t,n,r,i){var s=typeof e;if(("undefined"===s||"boolean"===s)&&(e=null),null===e||"string"===s||"number"===s||l.isValidElement(e))return r(i,e,""===t?h+o(e,0):t,n),1;var p,v,g,y=0;if(Array.isArray(e))for(var C=0;C=200&&c.status<300||c.status===304){var a=d.dataType=="xml"?c.responseXML:c.responseText;if(d.dataType=="json")a=b.parseJSON(a);if(b.isFunction(d.success))d.success.call(d,a,c.status,c)}else{if(b.isFunction(d.error))d.error.call(d,c,c.status)}if(b.isFunction(d.complete))d.complete.call(d,c,c.status)}};this.xhr=c;if(!d.cache)d.url+=(d.url.indexOf("?")>-1?"&":"?")+"_nocache="+(new Date).getTime();if(d.data){if(d.type=="GET"){d.url+=(d.url.indexOf("?")>-1?"&":"?")+this.param(d.data);d.data=null}else{d.data=this.param(d.data)}}c.open(d.type,d.url,d.async);c.setRequestHeader("Content-type",d.contentType);if(d.dataType&&d.accepts[d.dataType])c.setRequestHeader("Accept",d.accepts[d.dataType]);if(d.async){c.onreadystatechange=e;c.send(d.data)}else{c.send(d.data);e()}return this},get:function(a,b,c){if(this.isFunction(b)){c=b;b=null}return this.call({url:a,type:"GET",data:b,success:c})},post:function(a,b,c){if(this.isFunction(b)){c=b;b=null}return this.call({url:a,type:"POST",data:b,success:c})},load:function(a,b,c,d){if(typeof a=="string")a=document.getElementById(a);return this.call({url:b,type:c?"POST":"GET",data:c||null,complete:d||null,success:function(b){try{a.innerHTML=b}catch(c){var d=document.createElement("div");d.innerHTML=b;while(a.firstChild)a.removeChild(a.firstChild);for(var e=0,f=d.childNodes.length;e .middle { - width: 100%; - height: 100%; - padding: 0; - margin: 0; - overflow: hidden; - display: table-row; -} -.zeroTierNode > .middle > .middleCell { - width: 100%; - height: 100%; - display: table-cell; - border-bottom: 1px solid #cfcfcf; -} -.zeroTierNode > .middle > .middleCell > .middleScroll { - display: block; - width: 100%; - height: 100%; - padding: 0; - margin: 0; - overflow: scroll; - overflow-x: hidden; - overflow-y: scroll; - background: #dddddd; -} -.zeroTierNode > .middle > .middleCell > .middleScroll > .networks { - display: block; - width: 100%; - padding: 0 0 0.25rem 0; - margin: 0; - border: 0; - text-align: left; - border-collapse: collapse; -} -.zeroTierNode > .middle > .middleCell > .middleScroll > .networks > .network { - display: block; - border-top: 0.12rem solid #dddddd; - border-bottom: 0.12rem solid #dddddd; - padding: 0.25rem; - background: #ffffff; -} - -.zeroTierNode > .bottom { - font-size: 12pt; - width: 100%; - overflow: hidden; - display: table-row; - color: #000000; - background: #dfdfdf; -} -.zeroTierNode > .bottom > .left { - text-align: left; - white-space: nowrap; - float: left; - padding: 0 0 0 0.5rem; - font-size: 12pt; - height: 100%; -} -.zeroTierNode > .bottom > .left > .statusLine { - font-family: monospace; - white-space: nowrap; - font-size: 11pt; - height: 100%; -} -.zeroTierNode > .bottom > .right { - text-align: right; - height: 100%; - white-space: nowrap; - float: right; - font-size: 12pt; - background: #ffffff; -} -.zeroTierNode > .bottom > .right form { - height: 100%; -} -.zeroTierNode > .bottom > .right input { - font-family: monospace; - font-size: 12pt; - background: #ffffff; - color: #000000; - outline: none; - outline-style: none; - box-shadow: 0; - border: 0; - margin: 0; - padding: 0 0.25rem 0 0.25rem; - display: inline; - height: 100%; -} -.zeroTierNode > .bottom > .right button { - display: inline-block; - font-size: 12pt; - background: #ffb354; - border: 1px solid #ffb354; - color: #000000; - margin: 0; - padding: 0.05rem 0.75rem 0.05rem 0.75rem; - outline: none; - outline-style: none; - height: 100%; -} -.zeroTierNode > .bottom > .right button:hover { - cursor: pointer; - outline: none; - outline-style: none; - border: 1px solid #000000; -} - -.zeroTierNetwork { - padding: 0; - margin: 0; - display: inline-block; - text-align: right; - width: 100%; - position: relative; -} -.zeroTierNetwork .networkInfo { - padding: 0 0 0.25rem 0; - text-align: left; - font-size: 12pt; -} -.zeroTierNetwork .networkInfo .networkId { - font-size: 11pt; - font-family: monospace; - color: #000000; -} -.zeroTierNetwork .networkInfo .networkName { - padding: 0 0 0 1rem; - float: right; - font-size: 12pt; -} -.zeroTierNetwork .networkProps { - width: 100%; - display: table; - padding: 0; - margin: 0 auto 0 auto; - border-top: 1px solid #999999; - border-bottom: 1px solid #999999; -} -.zeroTierNetwork .networkProps > .row { - display: table-row; -} -.zeroTierNetwork .networkProps > .row > .name { - display: table-cell; - font-size: 10pt; - padding: 0.1rem 0.5rem 0.1rem 0.5rem; -} -.zeroTierNetwork .networkProps > .row > .value { - font-size: 10pt; - display: table-cell; - padding: 0.1rem 0.5rem 0.1rem 0.5rem; - background: #eeeeee; -} -.zeroTierNetwork .ipList { -} -.zeroTierNetwork .ipAddress { - font-family: monospace; - font-size: 10pt; -} -.zeroTierNetwork .leaveNetworkButton { - padding: 0.25rem 0.5rem 0.25rem 0.5rem; - margin: 0.25rem 0 0 0; - font-size: 9pt; - background: #ffffff; - outline: none; - background: #ffb354; - border: 1px solid #ffb354; - cursor: pointer; -} -.zeroTierNetwork .leaveNetworkButton:hover { - border: 1px solid #000000; -} diff --git a/ext/installfiles/mac/ui/ztui.min.js b/ext/installfiles/mac/ui/ztui.min.js deleted file mode 100644 index 17982839e..000000000 --- a/ext/installfiles/mac/ui/ztui.min.js +++ /dev/null @@ -1 +0,0 @@ -var ZeroTierNetwork=React.createClass({displayName:"ZeroTierNetwork",getInitialState:function(){return{}},leaveNetwork:function(e){Ajax.call({url:"network/"+this.props.nwid+"?auth="+this.props.authToken,cache:!1,type:"DELETE",success:function(e){this.props.onNetworkDeleted&&this.props.onNetworkDeleted(this.props.nwid)}.bind(this),error:function(e){}.bind(this)}),e.preventDefault()},render:function(){return React.createElement("div",{className:"zeroTierNetwork"},React.createElement("div",{className:"networkInfo"},React.createElement("span",{className:"networkId"},this.props.nwid)," ",React.createElement("span",{className:"networkName"},this.props.name)),React.createElement("div",{className:"networkProps"},React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"Status"),React.createElement("div",{className:"value"},this.props.status)),React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"Type"),React.createElement("div",{className:"value"},this.props.type)),React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"MAC"),React.createElement("div",{className:"value zeroTierAddress"},this.props.mac)),React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"MTU"),React.createElement("div",{className:"value"},this.props.mtu)),React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"Broadcast"),React.createElement("div",{className:"value"},this.props.broadcastEnabled?"ENABLED":"DISABLED")),React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"Bridging"),React.createElement("div",{className:"value"},this.props.bridge?"ACTIVE":"DISABLED")),React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"Device"),React.createElement("div",{className:"value"},this.props.portDeviceName?this.props.portDeviceName:"(none)")),React.createElement("div",{className:"row"},React.createElement("div",{className:"name"},"Managed IPs"),React.createElement("div",{className:"value ipList"},this.props.assignedAddresses.map(function(e){return React.createElement("div",{key:e,className:"ipAddress"},e)})))),React.createElement("button",{type:"button",className:"leaveNetworkButton",onClick:this.leaveNetwork},"Leave Network"))}}); var ZeroTierNode=React.createClass({displayName:"ZeroTierNode",getInitialState:function(){return{address:"----------",online:!1,version:"_._._",_networks:[],_peers:[]}},ago:function(e){if(e>0){var t=Math.round((Date.now()-e)/1e3);return t>0?t:0}return 0},updatePeers:function(){Ajax.call({url:"peer?auth="+this.props.authToken,cache:!1,type:"GET",success:function(e){if(e){var t=JSON.parse(e);Array.isArray(t)&&this.setState({_peers:t})}}.bind(this),error:function(){}.bind(this)})},updateNetworks:function(){Ajax.call({url:"network?auth="+this.props.authToken,cache:!1,type:"GET",success:function(e){if(e){var t=JSON.parse(e);Array.isArray(t)&&this.setState({_networks:t})}}.bind(this),error:function(){}.bind(this)})},updateAll:function(){Ajax.call({url:"status?auth="+this.props.authToken,cache:!1,type:"GET",success:function(e){if(this.alertedToFailure=!1,e){var t=JSON.parse(e);this.setState(t),document.title="ZeroTier One ["+t.address+"]"}this.updateNetworks(),this.updatePeers()}.bind(this),error:function(){this.setState(this.getInitialState()),this.alertedToFailure||(this.alertedToFailure=!0,alert("Authorization token invalid or ZeroTier One service not running."))}.bind(this)})},joinNetwork:function(e){e.preventDefault(),this.networkToJoin&&16===this.networkToJoin.length?Ajax.call({url:"network/"+this.networkToJoin+"?auth="+this.props.authToken,cache:!1,type:"POST",success:function(e){this.networkToJoin="",this.networkInputElement&&(this.networkInputElement.value=""),this.updateNetworks()}.bind(this),error:function(){}.bind(this)}):alert("To join a network, enter its 16-digit network ID.")},handleNetworkIdEntry:function(e){this.networkInputElement=e.target;var t=this.networkInputElement.value;if(t){t=t.toLowerCase();for(var n="",a=0;aa;++a)"0123456789abcdef".indexOf(t.charAt(a))>=0&&(n+=t.charAt(a));this.networkToJoin=n,this.networkInputElement.value=n}else this.networkToJoin="",this.networkInputElement.value=""},handleNetworkDelete:function(e){for(var t=[],n=0;n