├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── backup.md ├── block_facebook ├── crutil.sh ├── example.png ├── files └── .inputrc ├── fix_leaky_data.py ├── install.md ├── install.sh ├── public.bash └── use_cloudflare_dns.sh /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: echohack 2 | custom: https://subs.twitch.tv/echohack 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | .vscode 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Macbot 2 | 3 | Macbot is a shell script to automatically configure your Mac with sane and secure settings. It's free to use, Apache 2.0 licensed. 4 | 5 | ![Example Image](example.png) 6 | 7 | # Usage 8 | 9 | 1. Review all the code in this repository. The code in here is kept simple and readable on purpose. It's just shell scripts. 10 | 11 | 2. Modify the `install.sh`. You'll probably want to tweak some of the performance settings, and install different applications. 12 | 13 | 3. Run install.sh using Terminal.app. `sh ./install.sh` 14 | 15 | 4. Automating everything is not always feasible, so fill out your own backup.md and install.md to document any extra manual steps, so you don't forget. 16 | 17 | # Blog Post 18 | 19 | Want more details? Check out the blog post I wrote about using this script. https://medium.com/@echohack/guide-to-make-your-mac-suck-less-2017-88a57563aac7#.iwo8hrmw6 20 | -------------------------------------------------------------------------------- /backup.md: -------------------------------------------------------------------------------- 1 | * Go through each application to make sure settings are backed up. 2 | * Backup .bash_profile. 3 | * Backup Reeder RSS. 4 | * Backup 1Password Vault. 5 | * Backup all keys in ~/.ssh 6 | * Empty all files from Downloads or other locale directories to external media. -------------------------------------------------------------------------------- /block_facebook: -------------------------------------------------------------------------------- 1 | 0.0.0.0 apps.facebook.com 2 | 0.0.0.0 connect.facebook.net 3 | 0.0.0.0 facebook.com 4 | 0.0.0.0 fbcdn.com 5 | 0.0.0.0 fbsbx.com 6 | 0.0.0.0 fbcdn.net 7 | 0.0.0.0 graph.facebook.com 8 | 0.0.0.0 login.facebook.com 9 | 0.0.0.0 s-static.ak.facebook.com 10 | 0.0.0.0 static.ak.connect.facebook.com 11 | 0.0.0.0 static.ak.fbcdn.net 12 | 0.0.0.0 www.connect.facebook.net 13 | 0.0.0.0 www.facebook.com 14 | 0.0.0.0 www.fbcdn.com 15 | 0.0.0.0 www.fbcdn.net 16 | 0.0.0.0 www.graph.facebook.com 17 | 0.0.0.0 www.login.facebook.com 18 | 0.0.0.0 www.s-static.ak.facebook.com 19 | 0.0.0.0 www.static.ak.connect.facebook.com 20 | 0.0.0.0 www.static.ak.fbcdn.net 21 | 0.0.0.0 0-edge-chat.facebook.com 22 | 0.0.0.0 1-edge-chat.facebook.com 23 | 0.0.0.0 2-edge-chat.facebook.com 24 | 0.0.0.0 3-edge-chat.facebook.com 25 | 0.0.0.0 4-edge-chat.facebook.com 26 | 0.0.0.0 5-edge-chat.facebook.com 27 | 0.0.0.0 6-edge-chat.facebook.com 28 | 0.0.0.0 alpha-shv-03-ash5.facebook.com 29 | 0.0.0.0 alpha-shv-03-atn1.facebook.com 30 | 0.0.0.0 alpha-shv-03-lla1.facebook.com 31 | 0.0.0.0 alpha-shv-04-prn2.facebook.com 32 | 0.0.0.0 alpha-shv-09-frc1.facebook.com 33 | 0.0.0.0 alpha.vvv.facebook.com 34 | 0.0.0.0 a.ns.facebook.com 35 | 0.0.0.0 api.facebook.com 36 | 0.0.0.0 atlasalpha-shv-09-frc3.facebook.com 37 | 0.0.0.0 atlas.c10r.facebook.com 38 | 0.0.0.0 atlasinyour-shv-05-ash3.facebook.com 39 | 0.0.0.0 atlas-shv-01-prn2.facebook.com 40 | 0.0.0.0 atlas-shv-04-lla1.facebook.com 41 | 0.0.0.0 atlas-shv-05-ash3.facebook.com 42 | 0.0.0.0 atlas-shv-06-ash2.facebook.com 43 | 0.0.0.0 atlas-shv-06-frc1.facebook.com 44 | 0.0.0.0 atlas-shv-07-lla1.facebook.com 45 | 0.0.0.0 atlas-shv-09-frc3.facebook.com 46 | 0.0.0.0 atlas-shv-13-prn1.facebook.com 47 | 0.0.0.0 atlas-www-shv-04-prn2.facebook.com 48 | 0.0.0.0 atlas-www-shv-07-ash4.facebook.com 49 | 0.0.0.0 atlas-www-shv-09-frc1.facebook.com 50 | 0.0.0.0 aura-11-01-snc7.facebook.com 51 | 0.0.0.0 badge.facebook.com 52 | 0.0.0.0 b-api.facebook.com 53 | 0.0.0.0 beta-chat-01-05-ash3.facebook.com 54 | 0.0.0.0 betanet-shv-03-atn1.facebook.com 55 | 0.0.0.0 betanet-shv-03-lla1.facebook.com 56 | 0.0.0.0 betanet-shv-04-prn2.facebook.com 57 | 0.0.0.0 betanet-shv-09-frc1.facebook.com 58 | 0.0.0.0 beta-shv-03-atn1.facebook.com 59 | 0.0.0.0 beta-shv-03-lla1.facebook.com 60 | 0.0.0.0 beta-shv-04-prn2.facebook.com 61 | 0.0.0.0 beta-shv-09-frc1.facebook.com 62 | 0.0.0.0 beta.vvv.facebook.com 63 | 0.0.0.0 b-graph.facebook.com 64 | 0.0.0.0 bidder-shv-05-frc3.facebook.com 65 | 0.0.0.0 bidder-shv-10-frc1.facebook.com 66 | 0.0.0.0 b.ns.facebook.com 67 | 0.0.0.0 channel-proxy-shv-04-frc3.facebook.com 68 | 0.0.0.0 channel-proxy-shv-06-ash2.facebook.com 69 | 0.0.0.0 channel-proxy-shv-07-ash2.facebook.com 70 | 0.0.0.0 channel-proxy-shv-13-prn1.facebook.com 71 | 0.0.0.0 channel-proxy-test-shv-07-ash2.facebook.com 72 | 0.0.0.0 code.facebook.com 73 | 0.0.0.0 connect.facebook.com 74 | 0.0.0.0 dev.vvv.facebook.com 75 | 0.0.0.0 d.vvv.facebook.com 76 | 0.0.0.0 edge-atlas-proxyprotocol-shv-01-ash5.facebook.com 77 | 0.0.0.0 edge-atlas-proxyprotocol-shv-03-ash5.facebook.com 78 | 0.0.0.0 edge-atlas-proxyprotocol-shv-07-ash4.facebook.com 79 | 0.0.0.0 edge-atlas-proxyprotocol-shv-07-frc3.facebook.com 80 | 0.0.0.0 edge-atlas-proxyprotocol-shv-09-frc1.facebook.com 81 | 0.0.0.0 edge-atlas-proxyprotocol-shv-12-frc1.facebook.com 82 | 0.0.0.0 edge-atlas-proxyprotocol-shv-12-frc3.facebook.com 83 | 0.0.0.0 edge-atlas-proxyprotocol-shv-13-frc1.facebook.com 84 | 0.0.0.0 edge-atlas-shv-01-ams2.facebook.com 85 | 0.0.0.0 edge-atlas-shv-01-ams3.facebook.com 86 | 0.0.0.0 edge-atlas-shv-01-ash5.facebook.com 87 | 0.0.0.0 edge-atlas-shv-01-atl1.facebook.com 88 | 0.0.0.0 edge-atlas-shv-01-bru2.facebook.com 89 | 0.0.0.0 edge-atlas-shv-01-cai1.facebook.com 90 | 0.0.0.0 edge-atlas-shv-01-cdg2.facebook.com 91 | 0.0.0.0 edge-atlas-shv-01-dfw1.facebook.com 92 | 0.0.0.0 edge-atlas-shv-01-fra3.facebook.com 93 | 0.0.0.0 edge-atlas-shv-01-gru1.facebook.com 94 | 0.0.0.0 edge-atlas-shv-01-hkg2.facebook.com 95 | 0.0.0.0 edge-atlas-shv-01-iad3.facebook.com 96 | 0.0.0.0 edge-atlas-shv-01-kul1.facebook.com 97 | 0.0.0.0 edge-atlas-shv-01-lax1.facebook.com 98 | 0.0.0.0 edge-atlas-shv-01-lga1.facebook.com 99 | 0.0.0.0 edge-atlas-shv-01-lhr3.facebook.com 100 | 0.0.0.0 edge-atlas-shv-01-mad1.facebook.com 101 | 0.0.0.0 edge-atlas-shv-01-mia1.facebook.com 102 | 0.0.0.0 edge-atlas-shv-01-mxp1.facebook.com 103 | 0.0.0.0 edge-atlas-shv-01-nrt1.facebook.com 104 | 0.0.0.0 edge-atlas-shv-01-ord1.facebook.com 105 | 0.0.0.0 edge-atlas-shv-01-sea1.facebook.com 106 | 0.0.0.0 edge-atlas-shv-01-sin1.facebook.com 107 | 0.0.0.0 edge-atlas-shv-01-sjc2.facebook.com 108 | 0.0.0.0 edge-atlas-shv-01-syd1.facebook.com 109 | 0.0.0.0 edge-atlas-shv-01-vie1.facebook.com 110 | 0.0.0.0 edge-atlas-shv-02-cai1.facebook.com 111 | 0.0.0.0 edge-atlas-shv-02-hkg2.facebook.com 112 | 0.0.0.0 edge-atlas-shv-03-ash5.facebook.com 113 | 0.0.0.0 edge-atlas-shv-03-atn1.facebook.com 114 | 0.0.0.0 edge-atlas-shv-03-hkg1.facebook.com 115 | 0.0.0.0 edge-atlas-shv-03-lla1.facebook.com 116 | 0.0.0.0 edge-atlas-shv-03-prn2.facebook.com 117 | 0.0.0.0 edge-atlas-shv-03-xdc1.facebook.com 118 | 0.0.0.0 edge-atlas-shv-04-hkg1.facebook.com 119 | 0.0.0.0 edge-atlas-shv-04-prn2.facebook.com 120 | 0.0.0.0 edge-atlas-shv-06-atn1.facebook.com 121 | 0.0.0.0 edge-atlas-shv-06-lla1.facebook.com 122 | 0.0.0.0 edge-atlas-shv-07-ash4.facebook.com 123 | 0.0.0.0 edge-atlas-shv-09-frc1.facebook.com 124 | 0.0.0.0 edge-atlas-shv-09-lla1.facebook.com 125 | 0.0.0.0 edge-atlas-shv-12-frc1.facebook.com 126 | 0.0.0.0 edge-atlas-shv-12-frc3.facebook.com 127 | 0.0.0.0 edge-atlas-shv-12-lla1.facebook.com 128 | 0.0.0.0 edge-atlas-shv-12-prn1.facebook.com 129 | 0.0.0.0 edge-atlas-shv-13-frc1.facebook.com 130 | 0.0.0.0 edge-atlas-shv-17-prn1.facebook.com 131 | 0.0.0.0 edge-atlas-shv-18-prn1.facebook.com 132 | 0.0.0.0 edge-chat.facebook.com 133 | 0.0.0.0 edge-liverail-shv-01-ams2.facebook.com 134 | 0.0.0.0 edge-liverail-shv-01-ams3.facebook.com 135 | 0.0.0.0 edge-liverail-shv-01-ash5.facebook.com 136 | 0.0.0.0 edge-liverail-shv-01-atl1.facebook.com 137 | 0.0.0.0 edge-liverail-shv-01-bru2.facebook.com 138 | 0.0.0.0 edge-liverail-shv-01-cai1.facebook.com 139 | 0.0.0.0 edge-liverail-shv-01-cdg2.facebook.com 140 | 0.0.0.0 edge-liverail-shv-01-dfw1.facebook.com 141 | 0.0.0.0 edge-liverail-shv-01-fra3.facebook.com 142 | 0.0.0.0 edge-liverail-shv-01-gru1.facebook.com 143 | 0.0.0.0 edge-liverail-shv-01-hkg2.facebook.com 144 | 0.0.0.0 edge-liverail-shv-01-iad3.facebook.com 145 | 0.0.0.0 edge-liverail-shv-01-kul1.facebook.com 146 | 0.0.0.0 edge-liverail-shv-01-lax1.facebook.com 147 | 0.0.0.0 edge-liverail-shv-01-lga1.facebook.com 148 | 0.0.0.0 edge-liverail-shv-01-lhr3.facebook.com 149 | 0.0.0.0 edge-liverail-shv-01-mad1.facebook.com 150 | 0.0.0.0 edge-liverail-shv-01-mia1.facebook.com 151 | 0.0.0.0 edge-liverail-shv-01-mxp1.facebook.com 152 | 0.0.0.0 edge-liverail-shv-01-nrt1.facebook.com 153 | 0.0.0.0 edge-liverail-shv-01-ord1.facebook.com 154 | 0.0.0.0 edge-liverail-shv-01-sea1.facebook.com 155 | 0.0.0.0 edge-liverail-shv-01-sin1.facebook.com 156 | 0.0.0.0 edge-liverail-shv-01-sjc2.facebook.com 157 | 0.0.0.0 edge-liverail-shv-01-syd1.facebook.com 158 | 0.0.0.0 edge-liverail-shv-01-tpe1.facebook.com 159 | 0.0.0.0 edge-liverail-shv-01-vie1.facebook.com 160 | 0.0.0.0 edge-liverail-shv-02-cai1.facebook.com 161 | 0.0.0.0 edge-liverail-shv-02-hkg2.facebook.com 162 | 0.0.0.0 edge-liverail-shv-03-ash5.facebook.com 163 | 0.0.0.0 edge-liverail-shv-03-atn1.facebook.com 164 | 0.0.0.0 edge-liverail-shv-03-hkg1.facebook.com 165 | 0.0.0.0 edge-liverail-shv-03-lla1.facebook.com 166 | 0.0.0.0 edge-liverail-shv-03-prn2.facebook.com 167 | 0.0.0.0 edge-liverail-shv-03-xdc1.facebook.com 168 | 0.0.0.0 edge-liverail-shv-04-hkg1.facebook.com 169 | 0.0.0.0 edge-liverail-shv-04-prn2.facebook.com 170 | 0.0.0.0 edge-liverail-shv-06-atn1.facebook.com 171 | 0.0.0.0 edge-liverail-shv-06-lla1.facebook.com 172 | 0.0.0.0 edge-liverail-shv-07-ash4.facebook.com 173 | 0.0.0.0 edge-liverail-shv-07-frc3.facebook.com 174 | 0.0.0.0 edge-liverail-shv-09-frc1.facebook.com 175 | 0.0.0.0 edge-liverail-shv-09-lla1.facebook.com 176 | 0.0.0.0 edge-liverail-shv-12-frc1.facebook.com 177 | 0.0.0.0 edge-liverail-shv-12-frc3.facebook.com 178 | 0.0.0.0 edge-liverail-shv-12-lla1.facebook.com 179 | 0.0.0.0 edge-liverail-shv-12-prn1.facebook.com 180 | 0.0.0.0 edge-liverail-shv-13-frc1.facebook.com 181 | 0.0.0.0 edge-liverail-shv-17-prn1.facebook.com 182 | 0.0.0.0 edge-liverail-shv-18-prn1.facebook.com 183 | 0.0.0.0 edge-mqtt.facebook.com 184 | 0.0.0.0 edge-mqtt-shv-01-ams2.facebook.com 185 | 0.0.0.0 edge-mqtt-shv-01-ams3.facebook.com 186 | 0.0.0.0 edge-mqtt-shv-01-ash5.facebook.com 187 | 0.0.0.0 edge-mqtt-shv-01-atl1.facebook.com 188 | 0.0.0.0 edge-mqtt-shv-01-bru2.facebook.com 189 | 0.0.0.0 edge-mqtt-shv-01-cai1.facebook.com 190 | 0.0.0.0 edge-mqtt-shv-01-cdg2.facebook.com 191 | 0.0.0.0 edge-mqtt-shv-01-dfw1.facebook.com 192 | 0.0.0.0 edge-mqtt-shv-01-fra3.facebook.com 193 | 0.0.0.0 edge-mqtt-shv-01-gru1.facebook.com 194 | 0.0.0.0 edge-mqtt-shv-01-hkg2.facebook.com 195 | 0.0.0.0 edge-mqtt-shv-01-iad3.facebook.com 196 | 0.0.0.0 edge-mqtt-shv-01-kul1.facebook.com 197 | 0.0.0.0 edge-mqtt-shv-01-lax1.facebook.com 198 | 0.0.0.0 edge-mqtt-shv-01-lga1.facebook.com 199 | 0.0.0.0 edge-mqtt-shv-01-lhr3.facebook.com 200 | 0.0.0.0 edge-mqtt-shv-01-mad1.facebook.com 201 | 0.0.0.0 edge-mqtt-shv-01-mia1.facebook.com 202 | 0.0.0.0 edge-mqtt-shv-01-mxp1.facebook.com 203 | 0.0.0.0 edge-mqtt-shv-01-nrt1.facebook.com 204 | 0.0.0.0 edge-mqtt-shv-01-ord1.facebook.com 205 | 0.0.0.0 edge-mqtt-shv-01-sea1.facebook.com 206 | 0.0.0.0 edge-mqtt-shv-01-sin1.facebook.com 207 | 0.0.0.0 edge-mqtt-shv-01-sjc2.facebook.com 208 | 0.0.0.0 edge-mqtt-shv-01-syd1.facebook.com 209 | 0.0.0.0 edge-mqtt-shv-01-tpe1.facebook.com 210 | 0.0.0.0 edge-mqtt-shv-01-vie1.facebook.com 211 | 0.0.0.0 edge-mqtt-shv-02-cai1.facebook.com 212 | 0.0.0.0 edge-mqtt-shv-02-hkg2.facebook.com 213 | 0.0.0.0 edge-mqtt-shv-03-ash5.facebook.com 214 | 0.0.0.0 edge-mqtt-shv-03-atn1.facebook.com 215 | 0.0.0.0 edge-mqtt-shv-03-hkg1.facebook.com 216 | 0.0.0.0 edge-mqtt-shv-03-lla1.facebook.com 217 | 0.0.0.0 edge-mqtt-shv-03-prn2.facebook.com 218 | 0.0.0.0 edge-mqtt-shv-03-xdc1.facebook.com 219 | 0.0.0.0 edge-mqtt-shv-04-hkg1.facebook.com 220 | 0.0.0.0 edge-mqtt-shv-04-prn2.facebook.com 221 | 0.0.0.0 edge-mqtt-shv-06-atn1.facebook.com 222 | 0.0.0.0 edge-mqtt-shv-06-lla1.facebook.com 223 | 0.0.0.0 edge-mqtt-shv-07-ash4.facebook.com 224 | 0.0.0.0 edge-mqtt-shv-07-frc3.facebook.com 225 | 0.0.0.0 edge-mqtt-shv-09-lla1.facebook.com 226 | 0.0.0.0 edge-mqtt-shv-12-frc1.facebook.com 227 | 0.0.0.0 edge-mqtt-shv-12-frc3.facebook.com 228 | 0.0.0.0 edge-mqtt-shv-12-lla1.facebook.com 229 | 0.0.0.0 edge-mqtt-shv-12-prn1.facebook.com 230 | 0.0.0.0 edge-mqtt-shv-13-frc1.facebook.com 231 | 0.0.0.0 edge-mqtt-shv-17-prn1.facebook.com 232 | 0.0.0.0 edge-mqtt-shv-18-prn1.facebook.com 233 | 0.0.0.0 edgeray-origin-shv-05-prn2.facebook.com 234 | 0.0.0.0 edgeray-origin-shv-07-lla1.facebook.com 235 | 0.0.0.0 edgeray-origin-shv-09-frc3.facebook.com 236 | 0.0.0.0 edgeray-origin-shv-11-frc3.facebook.com 237 | 0.0.0.0 edgeray-shv-01-ams2.facebook.com 238 | 0.0.0.0 edgeray-shv-01-ams3.facebook.com 239 | 0.0.0.0 edgeray-shv-01-atl1.facebook.com 240 | 0.0.0.0 edgeray-shv-01-bru2.facebook.com 241 | 0.0.0.0 edgeray-shv-01-cdg2.facebook.com 242 | 0.0.0.0 edgeray-shv-01-dfw1.facebook.com 243 | 0.0.0.0 edgeray-shv-01-fra3.facebook.com 244 | 0.0.0.0 edgeray-shv-01-gru1.facebook.com 245 | 0.0.0.0 edgeray-shv-01-iad3.facebook.com 246 | 0.0.0.0 edgeray-shv-01-kul1.facebook.com 247 | 0.0.0.0 edgeray-shv-01-lax1.facebook.com 248 | 0.0.0.0 edgeray-shv-01-lga1.facebook.com 249 | 0.0.0.0 edgeray-shv-01-lhr3.facebook.com 250 | 0.0.0.0 edgeray-shv-01-mad1.facebook.com 251 | 0.0.0.0 edgeray-shv-01-mia1.facebook.com 252 | 0.0.0.0 edgeray-shv-01-mxp1.facebook.com 253 | 0.0.0.0 edgeray-shv-01-ord1.facebook.com 254 | 0.0.0.0 edgeray-shv-01-sea1.facebook.com 255 | 0.0.0.0 edgeray-shv-01-sin1.facebook.com 256 | 0.0.0.0 edgeray-shv-01-sjc2.facebook.com 257 | 0.0.0.0 edgeray-shv-01-syd1.facebook.com 258 | 0.0.0.0 edgeray-shv-01-vie1.facebook.com 259 | 0.0.0.0 edge-snaptu-http-p1-shv-01-ams3.facebook.com 260 | 0.0.0.0 edge-snaptu-http-p1-shv-01-atl1.facebook.com 261 | 0.0.0.0 edge-snaptu-http-p1-shv-01-bru2.facebook.com 262 | 0.0.0.0 edge-snaptu-http-p1-shv-01-cai1.facebook.com 263 | 0.0.0.0 edge-snaptu-http-p1-shv-01-cdg2.facebook.com 264 | 0.0.0.0 edge-snaptu-http-p1-shv-01-dfw1.facebook.com 265 | 0.0.0.0 edge-snaptu-http-p1-shv-01-fra3.facebook.com 266 | 0.0.0.0 edge-snaptu-http-p1-shv-01-gru1.facebook.com 267 | 0.0.0.0 edge-snaptu-http-p1-shv-01-iad3.facebook.com 268 | 0.0.0.0 edge-snaptu-http-p1-shv-01-kul1.facebook.com 269 | 0.0.0.0 edge-snaptu-http-p1-shv-01-lax1.facebook.com 270 | 0.0.0.0 edge-snaptu-http-p1-shv-01-lhr3.facebook.com 271 | 0.0.0.0 edge-snaptu-http-p1-shv-01-mad1.facebook.com 272 | 0.0.0.0 edge-snaptu-http-p1-shv-01-nrt1.facebook.com 273 | 0.0.0.0 edge-snaptu-http-p1-shv-01-ord1.facebook.com 274 | 0.0.0.0 edge-snaptu-http-p1-shv-01-sea1.facebook.com 275 | 0.0.0.0 edge-snaptu-http-p1-shv-01-syd1.facebook.com 276 | 0.0.0.0 edge-snaptu-http-p1-shv-02-cai1.facebook.com 277 | 0.0.0.0 edge-snaptu-tunnel-shv-01-ams3.facebook.com 278 | 0.0.0.0 edge-snaptu-tunnel-shv-01-ash5.facebook.com 279 | 0.0.0.0 edge-snaptu-tunnel-shv-01-atl1.facebook.com 280 | 0.0.0.0 edge-snaptu-tunnel-shv-01-bru2.facebook.com 281 | 0.0.0.0 edge-snaptu-tunnel-shv-01-cai1.facebook.com 282 | 0.0.0.0 edge-snaptu-tunnel-shv-01-cdg2.facebook.com 283 | 0.0.0.0 edge-snaptu-tunnel-shv-01-dfw1.facebook.com 284 | 0.0.0.0 edge-snaptu-tunnel-shv-01-fra3.facebook.com 285 | 0.0.0.0 edge-snaptu-tunnel-shv-01-gru1.facebook.com 286 | 0.0.0.0 edge-snaptu-tunnel-shv-01-hkg2.facebook.com 287 | 0.0.0.0 edge-snaptu-tunnel-shv-01-iad3.facebook.com 288 | 0.0.0.0 edge-snaptu-tunnel-shv-01-kul1.facebook.com 289 | 0.0.0.0 edge-snaptu-tunnel-shv-01-lax1.facebook.com 290 | 0.0.0.0 edge-snaptu-tunnel-shv-01-lhr3.facebook.com 291 | 0.0.0.0 edge-snaptu-tunnel-shv-01-mad1.facebook.com 292 | 0.0.0.0 edge-snaptu-tunnel-shv-01-nrt1.facebook.com 293 | 0.0.0.0 edge-snaptu-tunnel-shv-01-ord1.facebook.com 294 | 0.0.0.0 edge-snaptu-tunnel-shv-01-sea1.facebook.com 295 | 0.0.0.0 edge-snaptu-tunnel-shv-01-syd1.facebook.com 296 | 0.0.0.0 edge-snaptu-tunnel-shv-02-cai1.facebook.com 297 | 0.0.0.0 edge-star-shv-12-frc3.facebook.com 298 | 0.0.0.0 l.facebook.com 299 | 0.0.0.0 liverail.c10r.facebook.com 300 | 0.0.0.0 lm.facebook.com 301 | 0.0.0.0 m.facebook.com 302 | 0.0.0.0 mqtt.c10r.facebook.com 303 | 0.0.0.0 mqtt.vvv.facebook.com 304 | 0.0.0.0 pixel.facebook.com 305 | 0.0.0.0 profile.ak.facebook.com.edgesuite.net 306 | 0.0.0.0 research.facebook.com 307 | 0.0.0.0 snaptu-d-shv-05-frc3.facebook.com 308 | 0.0.0.0 snaptu-d-shv-10-frc1.facebook.com 309 | 0.0.0.0 s-static.ak.facebook.com.edgekey.net 310 | 0.0.0.0 star.c10r.facebook.com 311 | 0.0.0.0 star.facebook.com 312 | 0.0.0.0 star-mini.c10r.facebook.com 313 | 0.0.0.0 static.ak.facebook.com 314 | 0.0.0.0 static.ak.facebook.com.edgesuite.net 315 | 0.0.0.0 staticxx.facebook.com 316 | 0.0.0.0 webdav.facebook.com 317 | 0.0.0.0 z-m.c10r.facebook.com 318 | 0.0.0.0 z-m.facebook.com 319 | 0.0.0.0 edge-sonar-shv-01-ams2.fbcdn.net 320 | 0.0.0.0 edge-sonar-shv-01-ams3.fbcdn.net 321 | 0.0.0.0 edge-sonar-shv-01-ash5.fbcdn.net 322 | 0.0.0.0 edge-sonar-shv-01-atl1.fbcdn.net 323 | 0.0.0.0 edge-sonar-shv-01-bru2.fbcdn.net 324 | 0.0.0.0 edge-sonar-shv-01-cai1.fbcdn.net 325 | 0.0.0.0 edge-sonar-shv-01-cdg2.fbcdn.net 326 | 0.0.0.0 edge-sonar-shv-01-dfw1.fbcdn.net 327 | 0.0.0.0 edge-sonar-shv-01-fra3.fbcdn.net 328 | 0.0.0.0 edge-sonar-shv-01-gru1.fbcdn.net 329 | 0.0.0.0 edge-sonar-shv-01-iad3.fbcdn.net 330 | 0.0.0.0 edge-sonar-shv-01-kul1.fbcdn.net 331 | 0.0.0.0 edge-sonar-shv-01-lax1.fbcdn.net 332 | 0.0.0.0 edge-sonar-shv-01-lga1.fbcdn.net 333 | 0.0.0.0 edge-sonar-shv-01-lhr3.fbcdn.net 334 | 0.0.0.0 edge-sonar-shv-01-mad1.fbcdn.net 335 | 0.0.0.0 edge-sonar-shv-01-mia1.fbcdn.net 336 | 0.0.0.0 edge-sonar-shv-01-mrs1.fbcdn.net 337 | 0.0.0.0 edge-sonar-shv-01-mxp1.fbcdn.net 338 | 0.0.0.0 edge-sonar-shv-01-nrt1.fbcdn.net 339 | 0.0.0.0 edge-sonar-shv-01-ord1.fbcdn.net 340 | 0.0.0.0 edge-sonar-shv-01-sea1.fbcdn.net 341 | 0.0.0.0 edge-sonar-shv-01-sin1.fbcdn.net 342 | 0.0.0.0 edge-sonar-shv-01-sjc2.fbcdn.net 343 | 0.0.0.0 edge-sonar-shv-01-syd1.fbcdn.net 344 | 0.0.0.0 edge-sonar-shv-01-tpe1.fbcdn.net 345 | 0.0.0.0 edge-sonar-shv-01-vie1.fbcdn.net 346 | 0.0.0.0 edge-sonar-shv-02-cai1.fbcdn.net 347 | 0.0.0.0 edge-sonar-shv-02-hkg2.fbcdn.net 348 | 0.0.0.0 edge-sonar-shv-03-ash5.fbcdn.net 349 | 0.0.0.0 edge-sonar-shv-03-atn1.fbcdn.net 350 | 0.0.0.0 edge-sonar-shv-03-hkg1.fbcdn.net 351 | 0.0.0.0 edge-sonar-shv-03-lla1.fbcdn.net 352 | 0.0.0.0 edge-sonar-shv-03-prn2.fbcdn.net 353 | 0.0.0.0 edge-sonar-shv-03-xdc1.fbcdn.net 354 | 0.0.0.0 edge-sonar-shv-04-hkg1.fbcdn.net 355 | 0.0.0.0 edge-sonar-shv-04-prn2.fbcdn.net 356 | 0.0.0.0 edge-sonar-shv-06-atn1.fbcdn.net 357 | 0.0.0.0 edge-sonar-shv-06-lla1.fbcdn.net 358 | 0.0.0.0 edge-sonar-shv-07-ash4.fbcdn.net 359 | 0.0.0.0 edge-sonar-shv-07-frc3.fbcdn.net 360 | 0.0.0.0 edge-sonar-shv-09-frc1.fbcdn.net 361 | 0.0.0.0 edge-sonar-shv-09-lla1.fbcdn.net 362 | 0.0.0.0 edge-sonar-shv-12-frc1.fbcdn.net 363 | 0.0.0.0 edge-sonar-shv-12-frc3.fbcdn.net 364 | 0.0.0.0 edge-sonar-shv-12-lla1.fbcdn.net 365 | 0.0.0.0 edge-sonar-shv-12-prn1.fbcdn.net 366 | 0.0.0.0 edge-sonar-shv-13-frc1.fbcdn.net 367 | 0.0.0.0 edge-sonar-shv-17-prn1.fbcdn.net 368 | 0.0.0.0 edge-sonar-shv-18-prn1.fbcdn.net 369 | 0.0.0.0 external-iad3-1.xx.fbcdn.net 370 | 0.0.0.0 external.fsjc1-2.fna.fbcdn.net 371 | 0.0.0.0 fdda274d380ki4frcgi-rumjfjai1460158783-sonar.xx.fbcdn.net 372 | 0.0.0.0 herningrideklub.netscontent-a-ams.xx.fbcdn.net 373 | 0.0.0.0 ncontent.xx.fbcdn.net 374 | 0.0.0.0 origincache-ash.t.fbcdn.net 375 | 0.0.0.0 origincache-frc.t.fbcdn.net 376 | 0.0.0.0 origincache-prn.t.fbcdn.net 377 | 0.0.0.0 origincache-tf.t.fbcdn.net 378 | 0.0.0.0 origincache-tl.t.fbcdn.net 379 | 0.0.0.0 origincache-xtf.fbcdn.net 380 | 0.0.0.0 origincache-xtl.fbcdn.net 381 | 0.0.0.0 origincache-xx-shv-05-atn1.fbcdn.net 382 | 0.0.0.0 origincache-xx-shv-05-frc3.fbcdn.net 383 | 0.0.0.0 origincache-xx-shv-05-prn2.fbcdn.net 384 | 0.0.0.0 origincache-xx-shv-06-ash3.fbcdn.net 385 | 0.0.0.0 origincache-xx-shv-06-ash4.fbcdn.net 386 | 0.0.0.0 origincache-xx-shv-07-ash2.fbcdn.net 387 | 0.0.0.0 origincache-xx-shv-07-atn1.fbcdn.net 388 | 0.0.0.0 origincache-xx-shv-08-ash2.fbcdn.net 389 | 0.0.0.0 origincache-xx-shv-08-frc3.fbcdn.net 390 | 0.0.0.0 origincache-xx-shv-08-prn2.fbcdn.net 391 | 0.0.0.0 origincache-xx-shv-09-frc3.fbcdn.net 392 | 0.0.0.0 origincache-xx-shv-09-prn2.fbcdn.net 393 | 0.0.0.0 origincache-xx-shv-13-prn1.fbcdn.net 394 | 0.0.0.0 photos-a-ord.xx.fbcdn.net 395 | 0.0.0.0 photos-a.xx.fbcdn.net 396 | 0.0.0.0 photos-b-ord.xx.fbcdn.net 397 | 0.0.0.0 photos-b.xx.fbcdn.net 398 | 0.0.0.0 profile-a-atl.xx.fbcdn.net 399 | 0.0.0.0 profile-a-dfw.xx.fbcdn.net 400 | 0.0.0.0 profile-a-iad.xx.fbcdn.net 401 | 0.0.0.0 profile-a-lax.xx.fbcdn.net 402 | 0.0.0.0 profile-a-lga.xx.fbcdn.net 403 | 0.0.0.0 profile-a-mia.xx.fbcdn.net 404 | 0.0.0.0 profile-a-ord.xx.fbcdn.net 405 | 0.0.0.0 profile-a-sea.xx.fbcdn.net 406 | 0.0.0.0 profile-a-sjc.xx.fbcdn.net 407 | 0.0.0.0 profile-a.xx.fbcdn.net 408 | 0.0.0.0 profile-b-dfw.xx.fbcdn.net 409 | 0.0.0.0 profile-b-iad.xx.fbcdn.net 410 | 0.0.0.0 profile-b-lga.xx.fbcdn.net 411 | 0.0.0.0 profile-b-mia.xx.fbcdn.net 412 | 0.0.0.0 profile-b-ord.xx.fbcdn.net 413 | 0.0.0.0 profile-b-sjc.xx.fbcdn.net 414 | 0.0.0.0 profile-b.xx.fbcdn.net 415 | 0.0.0.0 profile.ak.fbcdn.net 416 | 0.0.0.0 profile.xx.fbcdn.net 417 | 0.0.0.0 scontent-1.2914.fna.fbcdn.net 418 | 0.0.0.0 scontent-2.2914.fna.fbcdn.net 419 | 0.0.0.0 scontent-a-ams.xx.fbcdn.net 420 | 0.0.0.0 scontent-a-atl.xx.fbcdn.net 421 | 0.0.0.0 scontent-a-cdg.xx.fbcdn.net 422 | 0.0.0.0 scontent-a-dfw.xx.fbcdn.net 423 | 0.0.0.0 scontent-a-fra.xx.fbcdn.net 424 | 0.0.0.0 scontent-a-gru.xx.fbcdn.net 425 | 0.0.0.0 scontent-a-iad.xx.fbcdn.net 426 | 0.0.0.0 scontent-a-lax.xx.fbcdn.net 427 | 0.0.0.0 scontent-a-lga.xx.fbcdn.net 428 | 0.0.0.0 scontent-a-lhr.xx.fbcdn.net 429 | 0.0.0.0 scontent-a-mad.xx.fbcdn.net 430 | 0.0.0.0 scontent-a-mia.xx.fbcdn.net 431 | 0.0.0.0 scontent-a-mxp.xx.fbcdn.net 432 | 0.0.0.0 scontent-a-ord.xx.fbcdn.net 433 | 0.0.0.0 scontent-a-pao.xx.fbcdn.net 434 | 0.0.0.0 scontent-a-sea.xx.fbcdn.net 435 | 0.0.0.0 scontent-a-sin.xx.fbcdn.net 436 | 0.0.0.0 scontent-a-sjc.xx.fbcdn.net 437 | 0.0.0.0 scontent-a-vie.xx.fbcdn.net 438 | 0.0.0.0 scontent-a.xx.fbcdn.net 439 | 0.0.0.0 scontent-ams.xx.fbcdn.net 440 | 0.0.0.0 scontent-atl.xx.fbcdn.net 441 | 0.0.0.0 scontent-b-ams.xx.fbcdn.net 442 | 0.0.0.0 scontent-b-atl.xx.fbcdn.net 443 | 0.0.0.0 scontent-b-cdg.xx.fbcdn.net 444 | 0.0.0.0 scontent-b-dfw.xx.fbcdn.net 445 | 0.0.0.0 scontent-b-fra.xx.fbcdn.net 446 | 0.0.0.0 scontent-b-gru.xx.fbcdn.net 447 | 0.0.0.0 scontent-b-hkg.xx.fbcdn.net 448 | 0.0.0.0 scontent-b-lax.xx.fbcdn.net 449 | 0.0.0.0 scontent-b-lga.xx.fbcdn.net 450 | 0.0.0.0 scontent-b-lhr.xx.fbcdn.net 451 | 0.0.0.0 scontent-b-mad.xx.fbcdn.net 452 | 0.0.0.0 scontent-b-mia.xx.fbcdn.net 453 | 0.0.0.0 scontent-b-mxp.xx.fbcdn.net 454 | 0.0.0.0 scontent-b-ord.xx.fbcdn.net 455 | 0.0.0.0 scontent-b-pao.xx.fbcdn.net 456 | 0.0.0.0 scontent-b-sea.xx.fbcdn.net 457 | 0.0.0.0 scontent-b-sin.xx.fbcdn.net 458 | 0.0.0.0 scontent-b-sjc.xx.fbcdn.net 459 | 0.0.0.0 scontent-b-vie.xx.fbcdn.net 460 | 0.0.0.0 scontent-b.xx.fbcdn.net 461 | 0.0.0.0 scontent-cdg.xx.fbcdn.net 462 | 0.0.0.0 scontent-dfw.xx.fbcdn.net 463 | 0.0.0.0 scontent-fra.xx.fbcdn.net 464 | 0.0.0.0 scontent-gru.xx.fbcdn.net 465 | 0.0.0.0 scontent-iad3-1.xx.fbcdn.net 466 | 0.0.0.0 scontent-lax.xx.fbcdn.net 467 | 0.0.0.0 scontent-lax3-1.xx.fbcdn.net 468 | 0.0.0.0 scontent-lga.xx.fbcdn.net 469 | 0.0.0.0 scontent-lga3-1.xx.fbcdn.net 470 | 0.0.0.0 scontent-lhr.xx.fbcdn.net 471 | 0.0.0.0 scontent-mia.xx.fbcdn.net 472 | 0.0.0.0 scontent-mxp.xx.fbcdn.net 473 | 0.0.0.0 scontent-ord.xx.fbcdn.net 474 | 0.0.0.0 scontent-sea.xx.fbcdn.net 475 | 0.0.0.0 scontent-sin.xx.fbcdn.net 476 | 0.0.0.0 scontent-sjc.xx.fbcdn.net 477 | 0.0.0.0 scontent-sjc2-1.xx.fbcdn.net 478 | 0.0.0.0 scontent-vie.xx.fbcdn.net 479 | 0.0.0.0 scontent.fsjc1-2.fna.fbcdn.net 480 | 0.0.0.0 scontent.fsnc1-1.fna.fbcdn.net 481 | 0.0.0.0 scontent.xx.fbcdn.net 482 | 0.0.0.0 sonar-iad.xx.fbcdn.net 483 | 0.0.0.0 sphotos-a-ams.xx.fbcdn.net 484 | 0.0.0.0 sphotos-a-atl.xx.fbcdn.net 485 | 0.0.0.0 sphotos-a-cdg.xx.fbcdn.net 486 | 0.0.0.0 sphotos-a-dfw.xx.fbcdn.net 487 | 0.0.0.0 sphotos-a-iad.xx.fbcdn.net 488 | 0.0.0.0 sphotos-a-lax.xx.fbcdn.net 489 | 0.0.0.0 sphotos-a-lga.xx.fbcdn.net 490 | 0.0.0.0 sphotos-a-lhr.xx.fbcdn.net 491 | 0.0.0.0 sphotos-a-mad.xx.fbcdn.net 492 | 0.0.0.0 sphotos-a-mia.xx.fbcdn.net 493 | 0.0.0.0 sphotos-a-mxp.xx.fbcdn.net 494 | 0.0.0.0 sphotos-a-ord.xx.fbcdn.net 495 | 0.0.0.0 sphotos-a-pao.xx.fbcdn.net 496 | 0.0.0.0 sphotos-a-sea.xx.fbcdn.net 497 | 0.0.0.0 sphotos-a-sjc.xx.fbcdn.net 498 | 0.0.0.0 sphotos-a-vie.xx.fbcdn.net 499 | 0.0.0.0 sphotos-a.xx.fbcdn.net 500 | 0.0.0.0 sphotos-b-ams.xx.fbcdn.net 501 | 0.0.0.0 sphotos-b-atl.xx.fbcdn.net 502 | 0.0.0.0 sphotos-b-cdg.xx.fbcdn.net 503 | 0.0.0.0 sphotos-b-dfw.xx.fbcdn.net 504 | 0.0.0.0 sphotos-b-iad.xx.fbcdn.net 505 | 0.0.0.0 sphotos-b-lax.xx.fbcdn.net 506 | 0.0.0.0 sphotos-b-lga.xx.fbcdn.net 507 | 0.0.0.0 sphotos-b-lhr.xx.fbcdn.net 508 | 0.0.0.0 sphotos-b-mad.xx.fbcdn.net 509 | 0.0.0.0 sphotos-b-mia.xx.fbcdn.net 510 | 0.0.0.0 sphotos-b-mxp.xx.fbcdn.net 511 | 0.0.0.0 sphotos-b-ord.xx.fbcdn.net 512 | 0.0.0.0 sphotos-b-pao.xx.fbcdn.net 513 | 0.0.0.0 sphotos-b-sea.xx.fbcdn.net 514 | 0.0.0.0 sphotos-b-sjc.xx.fbcdn.net 515 | 0.0.0.0 sphotos-b-vie.xx.fbcdn.net 516 | 0.0.0.0 sphotos-b.xx.fbcdn.net 517 | 0.0.0.0 sphotos.xx.fbcdn.net 518 | 0.0.0.0 sphotosbord.xx.fbcdn.net 519 | 0.0.0.0 static.xx.fbcdn.net 520 | 0.0.0.0 video-iad3-1.xx.fbcdn.net 521 | 0.0.0.0 vthumb.xx.fbcdn.net 522 | 0.0.0.0 xx-fbcdn-shv-01-ams2.fbcdn.net 523 | 0.0.0.0 xx-fbcdn-shv-01-ams3.fbcdn.net 524 | 0.0.0.0 xx-fbcdn-shv-01-atl1.fbcdn.net 525 | 0.0.0.0 xx-fbcdn-shv-01-bru2.fbcdn.net 526 | 0.0.0.0 xx-fbcdn-shv-01-cdg2.fbcdn.net 527 | 0.0.0.0 xx-fbcdn-shv-01-dfw1.fbcdn.net 528 | 0.0.0.0 xx-fbcdn-shv-01-fra3.fbcdn.net 529 | 0.0.0.0 xx-fbcdn-shv-01-gru1.fbcdn.net 530 | 0.0.0.0 xx-fbcdn-shv-01-hkg2.fbcdn.net 531 | 0.0.0.0 xx-fbcdn-shv-01-iad3.fbcdn.net 532 | 0.0.0.0 xx-fbcdn-shv-01-lax1.fbcdn.net 533 | 0.0.0.0 xx-fbcdn-shv-01-lga1.fbcdn.net 534 | 0.0.0.0 xx-fbcdn-shv-01-lhr3.fbcdn.net 535 | 0.0.0.0 xx-fbcdn-shv-01-mad1.fbcdn.net 536 | 0.0.0.0 xx-fbcdn-shv-01-mia1.fbcdn.net 537 | 0.0.0.0 xx-fbcdn-shv-01-mrs1.fbcdn.net 538 | 0.0.0.0 xx-fbcdn-shv-01-mxp1.fbcdn.net 539 | 0.0.0.0 xx-fbcdn-shv-01-nrt1.fbcdn.net 540 | 0.0.0.0 xx-fbcdn-shv-01-ord1.fbcdn.net 541 | 0.0.0.0 xx-fbcdn-shv-01-sea1.fbcdn.net 542 | 0.0.0.0 xx-fbcdn-shv-01-sin1.fbcdn.net 543 | 0.0.0.0 xx-fbcdn-shv-01-sjc2.fbcdn.net 544 | 0.0.0.0 xx-fbcdn-shv-01-vie1.fbcdn.net 545 | 0.0.0.0 xx-fbcdn-shv-02-cai1.fbcdn.net 546 | 0.0.0.0 xx-fbcdn-shv-03-ash5.fbcdn.net 547 | 0.0.0.0 xx-fbcdn-shv-04-hkg1.fbcdn.net 548 | 0.0.0.0 xx-fbcdn-shv-04-prn2.fbcdn.net 549 | 0.0.0.0 z-1-scontent-sjc2-1.xx.fbcdn.net 550 | 0.0.0.0 z-1-scontent.xx.fbcdn.net 551 | 0.0.0.0 ae0.bb01.ams2.tfbnw.net 552 | 0.0.0.0 ae0.bb01.atl1.tfbnw.net 553 | 0.0.0.0 ae0.bb01.bos2.tfbnw.net 554 | 0.0.0.0 ae0.bb01.hkg1.tfbnw.net 555 | 0.0.0.0 ae0.bb01.hnd1.tfbnw.net 556 | 0.0.0.0 ae0.bb01.lhr2.tfbnw.net 557 | 0.0.0.0 ae0.bb01.lla1.tfbnw.net 558 | 0.0.0.0 ae0.bb01.mia1.tfbnw.net 559 | 0.0.0.0 ae0.bb01.nrt1.tfbnw.net 560 | 0.0.0.0 ae0.bb01.sin1.tfbnw.net 561 | 0.0.0.0 ae0.bb02.ams2.tfbnw.net 562 | 0.0.0.0 ae0.bb02.atl1.tfbnw.net 563 | 0.0.0.0 ae0.bb02.bos2.tfbnw.net 564 | 0.0.0.0 ae0.bb02.hkg1.tfbnw.net 565 | 0.0.0.0 ae0.bb02.lhr2.tfbnw.net 566 | 0.0.0.0 ae0.bb02.lla1.tfbnw.net 567 | 0.0.0.0 ae0.bb02.mia1.tfbnw.net 568 | 0.0.0.0 ae0.bb02.sin1.tfbnw.net 569 | 0.0.0.0 ae0.bb03.atn1.tfbnw.net 570 | 0.0.0.0 ae0.bb03.frc3.tfbnw.net 571 | 0.0.0.0 ae0.bb03.lla1.tfbnw.net 572 | 0.0.0.0 ae0.bb03.prn2.tfbnw.net 573 | 0.0.0.0 ae0.bb03.sjc1.tfbnw.net 574 | 0.0.0.0 ae0.bb04.atn1.tfbnw.net 575 | 0.0.0.0 ae0.bb04.frc3.tfbnw.net 576 | 0.0.0.0 ae0.bb04.lla1.tfbnw.net 577 | 0.0.0.0 ae0.bb04.prn2.tfbnw.net 578 | 0.0.0.0 ae0.bb04.sjc1.tfbnw.net 579 | 0.0.0.0 ae0.bb05.frc3.tfbnw.net 580 | 0.0.0.0 ae0.bb05.lla1.tfbnw.net 581 | 0.0.0.0 ae0.bb05.prn2.tfbnw.net 582 | 0.0.0.0 ae0.bb06.frc3.tfbnw.net 583 | 0.0.0.0 ae0.bb06.lla1.tfbnw.net 584 | 0.0.0.0 ae0.bb07.lla1.tfbnw.net 585 | 0.0.0.0 ae0.br01.arn2.tfbnw.net 586 | 0.0.0.0 ae0.br01.bru2.tfbnw.net 587 | 0.0.0.0 ae0.br01.cai1.tfbnw.net 588 | 0.0.0.0 ae0.br01.gru1.tfbnw.net 589 | 0.0.0.0 ae0.br01.mad1.tfbnw.net 590 | 0.0.0.0 ae0.br01.mrs1.tfbnw.net 591 | 0.0.0.0 ae0.br01.mxp1.tfbnw.net 592 | 0.0.0.0 ae0.br01.syd1.tfbnw.net 593 | 0.0.0.0 ae0.br01.tpe1.tfbnw.net 594 | 0.0.0.0 ae0.br01.vie1.tfbnw.net 595 | 0.0.0.0 ae0.dr01.prn2.tfbnw.net 596 | 0.0.0.0 ae0.dr01.snc1.tfbnw.net 597 | 0.0.0.0 ae0.dr02.prn2.tfbnw.net 598 | 0.0.0.0 ae0.dr02.snc1.tfbnw.net 599 | 0.0.0.0 ae0.dr03.ash3.tfbnw.net 600 | 0.0.0.0 ae0.dr03.prn2.tfbnw.net 601 | 0.0.0.0 ae0.dr04.ash3.tfbnw.net 602 | 0.0.0.0 ae0.dr04.prn2.tfbnw.net 603 | 0.0.0.0 ae0.lr01.ash3.tfbnw.net 604 | 0.0.0.0 ae0.lr02.ash3.tfbnw.net 605 | 0.0.0.0 ae0.pr01.ams2.tfbnw.net 606 | 0.0.0.0 ae0.pr01.ams3.tfbnw.net 607 | 0.0.0.0 ae0.pr01.dfw1.tfbnw.net 608 | 0.0.0.0 ae0.pr01.fra2.tfbnw.net 609 | 0.0.0.0 ae0.pr01.lhr2.tfbnw.net 610 | 0.0.0.0 ae0.pr01.mia1.tfbnw.net 611 | 0.0.0.0 ae0.pr02.dfw1.tfbnw.net 612 | 0.0.0.0 ae0.pr02.fra2.tfbnw.net 613 | 0.0.0.0 ae0.pr02.iad3.tfbnw.net 614 | 0.0.0.0 ae0.pr02.lax1.tfbnw.net 615 | 0.0.0.0 ae0.pr02.lga1.tfbnw.net 616 | 0.0.0.0 ae0.pr02.mia1.tfbnw.net 617 | 0.0.0.0 ae0.pr02.ord1.tfbnw.net 618 | 0.0.0.0 ae0.pr03.sjc1.tfbnw.net 619 | 0.0.0.0 ae0.pr04.sjc1.tfbnw.net 620 | 0.0.0.0 ae10.bb01.atl1.tfbnw.net 621 | 0.0.0.0 ae10.bb01.lhr2.tfbnw.net 622 | 0.0.0.0 ae10.bb01.lla1.tfbnw.net 623 | 0.0.0.0 ae10.bb01.mia1.tfbnw.net 624 | 0.0.0.0 ae10.bb01.sin1.tfbnw.net 625 | 0.0.0.0 ae10.bb02.atl1.tfbnw.net 626 | 0.0.0.0 ae10.bb02.hkg1.tfbnw.net 627 | 0.0.0.0 ae10.bb02.lhr2.tfbnw.net 628 | 0.0.0.0 ae10.bb02.lla1.tfbnw.net 629 | 0.0.0.0 ae10.bb02.mia1.tfbnw.net 630 | 0.0.0.0 ae10.bb02.sin1.tfbnw.net 631 | 0.0.0.0 ae10.bb03.atn1.tfbnw.net 632 | 0.0.0.0 ae10.bb03.frc3.tfbnw.net 633 | 0.0.0.0 ae10.bb03.lla1.tfbnw.net 634 | 0.0.0.0 ae10.bb03.sjc1.tfbnw.net 635 | 0.0.0.0 ae10.bb04.atn1.tfbnw.net 636 | 0.0.0.0 ae10.bb04.frc3.tfbnw.net 637 | 0.0.0.0 ae10.bb04.lla1.tfbnw.net 638 | 0.0.0.0 ae10.bb04.sjc1.tfbnw.net 639 | 0.0.0.0 ae10.bb05.lla1.tfbnw.net 640 | 0.0.0.0 ae10.bb06.frc3.tfbnw.net 641 | 0.0.0.0 ae10.bb06.lla1.tfbnw.net 642 | 0.0.0.0 ae10.br01.bru2.tfbnw.net 643 | 0.0.0.0 ae10.br01.kul1.tfbnw.net 644 | 0.0.0.0 ae10.br01.mad1.tfbnw.net 645 | 0.0.0.0 ae10.br01.mxp1.tfbnw.net 646 | 0.0.0.0 ae10.br01.tpe1.tfbnw.net 647 | 0.0.0.0 ae10.br02.vie1.tfbnw.net 648 | 0.0.0.0 ae10.dr01.frc1.tfbnw.net 649 | 0.0.0.0 ae10.dr02.frc1.tfbnw.net 650 | 0.0.0.0 ae10.dr02.prn1.tfbnw.net 651 | 0.0.0.0 ae10.dr05.prn1.tfbnw.net 652 | 0.0.0.0 ae10.dr06.prn1.tfbnw.net 653 | 0.0.0.0 ae10.pr01.atl1.tfbnw.net 654 | 0.0.0.0 ae10.pr01.dfw1.tfbnw.net 655 | 0.0.0.0 ae10.pr01.fra2.tfbnw.net 656 | 0.0.0.0 ae10.pr01.lax1.tfbnw.net 657 | 0.0.0.0 ae10.pr01.mia1.tfbnw.net 658 | 0.0.0.0 ae10.pr01.nrt1.tfbnw.net 659 | 0.0.0.0 ae10.pr01.sin1.tfbnw.net 660 | 0.0.0.0 ae10.pr02.atl1.tfbnw.net 661 | 0.0.0.0 ae10.pr02.fra2.tfbnw.net 662 | 0.0.0.0 ae10.pr02.sin1.tfbnw.net 663 | 0.0.0.0 ae11.bb01.ams2.tfbnw.net 664 | 0.0.0.0 ae11.bb01.atl1.tfbnw.net 665 | 0.0.0.0 ae11.bb01.lhr2.tfbnw.net 666 | 0.0.0.0 ae11.bb01.mia1.tfbnw.net 667 | 0.0.0.0 ae11.bb01.nrt1.tfbnw.net 668 | 0.0.0.0 ae11.bb01.sin1.tfbnw.net 669 | 0.0.0.0 ae11.bb02.ams2.tfbnw.net 670 | 0.0.0.0 ae11.bb02.atl1.tfbnw.net 671 | 0.0.0.0 ae11.bb02.hkg1.tfbnw.net 672 | 0.0.0.0 ae11.bb02.lhr2.tfbnw.net 673 | 0.0.0.0 ae11.bb02.mia1.tfbnw.net 674 | 0.0.0.0 ae11.bb02.sin1.tfbnw.net 675 | 0.0.0.0 ae11.bb03.atn1.tfbnw.net 676 | 0.0.0.0 ae11.bb03.frc3.tfbnw.net 677 | 0.0.0.0 ae11.bb03.prn2.tfbnw.net 678 | 0.0.0.0 ae11.bb03.sjc1.tfbnw.net 679 | 0.0.0.0 ae11.bb04.atn1.tfbnw.net 680 | 0.0.0.0 ae11.bb04.frc3.tfbnw.net 681 | 0.0.0.0 ae11.bb04.prn2.tfbnw.net 682 | 0.0.0.0 ae11.bb04.sjc1.tfbnw.net 683 | 0.0.0.0 ae11.bb05.lla1.tfbnw.net 684 | 0.0.0.0 ae11.bb06.frc3.tfbnw.net 685 | 0.0.0.0 ae11.bb06.lla1.tfbnw.net 686 | 0.0.0.0 ae11.br01.kul1.tfbnw.net 687 | 0.0.0.0 ae11.br01.mad1.tfbnw.net 688 | 0.0.0.0 ae11.br01.tpe1.tfbnw.net 689 | 0.0.0.0 ae11.br01.vie1.tfbnw.net 690 | 0.0.0.0 ae11.br02.mxp1.tfbnw.net 691 | 0.0.0.0 ae11.br02.vie1.tfbnw.net 692 | 0.0.0.0 ae11.dr01.atn1.tfbnw.net 693 | 0.0.0.0 ae11.dr01.frc1.tfbnw.net 694 | 0.0.0.0 ae11.dr01.snc1.tfbnw.net 695 | 0.0.0.0 ae11.dr02.atn1.tfbnw.net 696 | 0.0.0.0 ae11.dr02.frc1.tfbnw.net 697 | 0.0.0.0 ae11.dr02.snc1.tfbnw.net 698 | 0.0.0.0 ae11.dr03.atn1.tfbnw.net 699 | 0.0.0.0 ae11.dr03.frc1.tfbnw.net 700 | 0.0.0.0 ae11.dr04.atn1.tfbnw.net 701 | 0.0.0.0 ae11.dr04.frc1.tfbnw.net 702 | 0.0.0.0 ae11.pr01.atl1.tfbnw.net 703 | 0.0.0.0 ae11.pr01.dfw1.tfbnw.net 704 | 0.0.0.0 ae11.pr01.hkg1.tfbnw.net 705 | 0.0.0.0 ae11.pr01.lga1.tfbnw.net 706 | 0.0.0.0 ae11.pr01.lhr2.tfbnw.net 707 | 0.0.0.0 ae11.pr01.lhr3.tfbnw.net 708 | 0.0.0.0 ae11.pr01.ord1.tfbnw.net 709 | 0.0.0.0 ae11.pr02.atl1.tfbnw.net 710 | 0.0.0.0 ae11.pr02.cdg1.tfbnw.net 711 | 0.0.0.0 ae11.pr02.fra2.tfbnw.net 712 | 0.0.0.0 ae11.pr02.lax1.tfbnw.net 713 | 0.0.0.0 ae12.bb01.ams2.tfbnw.net 714 | 0.0.0.0 ae12.bb01.lhr2.tfbnw.net 715 | 0.0.0.0 ae12.bb01.mia1.tfbnw.net 716 | 0.0.0.0 ae12.bb01.nrt1.tfbnw.net 717 | 0.0.0.0 ae12.bb02.ams2.tfbnw.net 718 | 0.0.0.0 ae12.bb02.atl1.tfbnw.net 719 | 0.0.0.0 ae12.bb02.lhr2.tfbnw.net 720 | 0.0.0.0 ae12.bb02.mia1.tfbnw.net 721 | 0.0.0.0 ae12.bb03.atn1.tfbnw.net 722 | 0.0.0.0 ae12.bb03.frc3.tfbnw.net 723 | 0.0.0.0 ae12.bb03.prn2.tfbnw.net 724 | 0.0.0.0 ae12.bb03.sjc1.tfbnw.net 725 | 0.0.0.0 ae12.bb04.atn1.tfbnw.net 726 | 0.0.0.0 ae12.bb04.frc3.tfbnw.net 727 | 0.0.0.0 ae12.bb04.prn2.tfbnw.net 728 | 0.0.0.0 ae12.bb04.sjc1.tfbnw.net 729 | 0.0.0.0 ae12.bb05.lla1.tfbnw.net 730 | 0.0.0.0 ae12.bb06.frc3.tfbnw.net 731 | 0.0.0.0 ae12.bb06.lla1.tfbnw.net 732 | 0.0.0.0 ae12.br01.kul1.tfbnw.net 733 | 0.0.0.0 ae12.br01.mad1.tfbnw.net 734 | 0.0.0.0 ae12.br01.mxp1.tfbnw.net 735 | 0.0.0.0 ae12.br01.vie1.tfbnw.net 736 | 0.0.0.0 ae12.br02.mxp1.tfbnw.net 737 | 0.0.0.0 ae12.br02.vie1.tfbnw.net 738 | 0.0.0.0 ae12.dr01.atn1.tfbnw.net 739 | 0.0.0.0 ae12.dr01.frc1.tfbnw.net 740 | 0.0.0.0 ae12.dr01.snc1.tfbnw.net 741 | 0.0.0.0 ae12.dr02.atn1.tfbnw.net 742 | 0.0.0.0 ae12.dr02.frc1.tfbnw.net 743 | 0.0.0.0 ae12.dr02.snc1.tfbnw.net 744 | 0.0.0.0 ae12.dr03.atn1.tfbnw.net 745 | 0.0.0.0 ae12.dr03.frc1.tfbnw.net 746 | 0.0.0.0 ae12.dr04.atn1.tfbnw.net 747 | 0.0.0.0 ae12.dr04.frc1.tfbnw.net 748 | 0.0.0.0 ae12.pr01.ams2.tfbnw.net 749 | 0.0.0.0 ae12.pr01.ams3.tfbnw.net 750 | 0.0.0.0 ae12.pr01.atl1.tfbnw.net 751 | 0.0.0.0 ae12.pr01.hkg1.tfbnw.net 752 | 0.0.0.0 ae12.pr01.lga1.tfbnw.net 753 | 0.0.0.0 ae12.pr01.lhr2.tfbnw.net 754 | 0.0.0.0 ae12.pr01.mia1.tfbnw.net 755 | 0.0.0.0 ae12.pr01.ord1.tfbnw.net 756 | 0.0.0.0 ae12.pr01.sea1.tfbnw.net 757 | 0.0.0.0 ae12.pr01.sin1.tfbnw.net 758 | 0.0.0.0 ae12.pr02.atl1.tfbnw.net 759 | 0.0.0.0 ae12.pr02.sea1.tfbnw.net 760 | 0.0.0.0 ae13.bb01.atl1.tfbnw.net 761 | 0.0.0.0 ae13.bb01.lhr2.tfbnw.net 762 | 0.0.0.0 ae13.bb01.mia1.tfbnw.net 763 | 0.0.0.0 ae13.bb01.nrt1.tfbnw.net 764 | 0.0.0.0 ae13.bb01.sin1.tfbnw.net 765 | 0.0.0.0 ae13.bb02.lhr2.tfbnw.net 766 | 0.0.0.0 ae13.bb02.mia1.tfbnw.net 767 | 0.0.0.0 ae13.bb03.atn1.tfbnw.net 768 | 0.0.0.0 ae13.bb03.frc3.tfbnw.net 769 | 0.0.0.0 ae13.bb03.prn2.tfbnw.net 770 | 0.0.0.0 ae13.bb03.sjc1.tfbnw.net 771 | 0.0.0.0 ae13.bb04.atn1.tfbnw.net 772 | 0.0.0.0 ae13.bb04.frc3.tfbnw.net 773 | 0.0.0.0 ae13.bb04.prn2.tfbnw.net 774 | 0.0.0.0 ae13.bb04.sjc1.tfbnw.net 775 | 0.0.0.0 ae13.bb05.lla1.tfbnw.net 776 | 0.0.0.0 ae13.bb06.lla1.tfbnw.net 777 | 0.0.0.0 ae13.br01.mad1.tfbnw.net 778 | 0.0.0.0 ae13.br01.mxp1.tfbnw.net 779 | 0.0.0.0 ae13.br01.tpe1.tfbnw.net 780 | 0.0.0.0 ae13.br01.vie1.tfbnw.net 781 | 0.0.0.0 ae13.br02.mxp1.tfbnw.net 782 | 0.0.0.0 ae13.br02.vie1.tfbnw.net 783 | 0.0.0.0 ae13.dr01.atn1.tfbnw.net 784 | 0.0.0.0 ae13.dr01.frc1.tfbnw.net 785 | 0.0.0.0 ae13.dr02.atn1.tfbnw.net 786 | 0.0.0.0 ae13.dr02.frc1.tfbnw.net 787 | 0.0.0.0 ae13.dr03.atn1.tfbnw.net 788 | 0.0.0.0 ae13.dr03.frc1.tfbnw.net 789 | 0.0.0.0 ae13.dr04.atn1.tfbnw.net 790 | 0.0.0.0 ae13.dr04.frc1.tfbnw.net 791 | 0.0.0.0 ae13.dr05.prn1.tfbnw.net 792 | 0.0.0.0 ae13.pr01.ams2.tfbnw.net 793 | 0.0.0.0 ae13.pr01.atl1.tfbnw.net 794 | 0.0.0.0 ae13.pr01.cdg1.tfbnw.net 795 | 0.0.0.0 ae13.pr01.hkg1.tfbnw.net 796 | 0.0.0.0 ae13.pr01.iad3.tfbnw.net 797 | 0.0.0.0 ae13.pr01.lhr2.tfbnw.net 798 | 0.0.0.0 ae13.pr01.mia1.tfbnw.net 799 | 0.0.0.0 ae13.pr01.ord1.tfbnw.net 800 | 0.0.0.0 ae13.pr01.sea1.tfbnw.net 801 | 0.0.0.0 whatsapp.com 802 | 0.0.0.0 www.whatsapp.com 803 | 0.0.0.0 web.whatsapp.com 804 | 0.0.0.0 w1.web.whatsapp.com 805 | 0.0.0.0 w2.web.whatsapp.com 806 | 0.0.0.0 w3.web.whatsapp.com 807 | 0.0.0.0 w4.web.whatsapp.com 808 | 0.0.0.0 w5.web.whatsapp.com 809 | 0.0.0.0 w6.web.whatsapp.com 810 | 0.0.0.0 w7.web.whatsapp.com 811 | 0.0.0.0 w8.web.whatsapp.com 812 | 0.0.0.0 w9.web.whatsapp.com 813 | 0.0.0.0 whatsapp-cdn-shv-01-atl1.fbcdn.net 814 | 0.0.0.0 whatsapp-cdn-shv-01-dfw1.fbcdn.net 815 | 0.0.0.0 whatsapp-cdn-shv-01-iad3.fbcdn.net 816 | 0.0.0.0 whatsapp-cdn-shv-01-lax1.fbcdn.net 817 | 0.0.0.0 whatsapp-cdn-shv-01-lax3.fbcdn.net 818 | 0.0.0.0 whatsapp-cdn-shv-01-lga1.fbcdn.net 819 | 0.0.0.0 whatsapp-cdn-shv-01-mia1.fbcdn.net 820 | 0.0.0.0 whatsapp-cdn-shv-01-ord1.fbcdn.net 821 | 0.0.0.0 whatsapp-cdn-shv-01-sea1.fbcdn.net 822 | 0.0.0.0 whatsapp-cdn-shv-01-sjc2.fbcdn.net 823 | 0.0.0.0 connect.facebook.net.edgekey.net 824 | 0.0.0.0 ct-m-fbx.fbsbx.com 825 | 0.0.0.0 facebook-web-clients.appspot.com 826 | 0.0.0.0 fb.me 827 | 0.0.0.0 fbcdn-profile-a.akamaihd.net 828 | 0.0.0.0 h-ct-m-fbx.fbsbx.com.online-metrix.net 829 | 0.0.0.0 sac-h-ct-m-fbx.fbsbx.com.online-metrix.net 830 | 0.0.0.0 fb.com 831 | 0.0.0.0 newsroom.fb.com 832 | 0.0.0.0 investor.fb.com 833 | 0.0.0.0 autofreak.com 834 | 0.0.0.0 mercurynews.com -------------------------------------------------------------------------------- /crutil.sh: -------------------------------------------------------------------------------- 1 | # Remove Unnecessary Certificates 2 | 3 | delete_certificates() { 4 | cert_list=$(security find-certificate -c "$@" -a -Z "/System/Library/Keychains/SystemRootCertificates.keychain"| grep SHA-1 | awk '{print $NF}') 5 | if [[ $cert_list != 0 ]] ; then 6 | for cert in $cert_list 7 | do 8 | run sudo security delete-certificate -Z $cert -t "/System/Library/Keychains/SystemRootCertificates.keychain" 9 | done 10 | fi 11 | } 12 | 13 | delete_certificates "Izenpe.com" 14 | -------------------------------------------------------------------------------- /example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echohack/macbot/06ebe373b5961f9c557f17c6288b56eef6e13729/example.png -------------------------------------------------------------------------------- /files/.inputrc: -------------------------------------------------------------------------------- 1 | "\e[1~": beginning-of-line 2 | "\e[4~": end-of-line 3 | "\e[5~": history-search-backward 4 | "\e[6~": history-search-forward 5 | "\e[3~": delete-char 6 | "\e[2~": quoted-insert 7 | "\e[5C": forward-word 8 | "\e[5D": backward-word 9 | "\e\e[C": forward-word 10 | "\e\e[D": backward-word 11 | 12 | set completion-ignore-case On 13 | set expand-tilde on 14 | set convert-meta off 15 | set input-meta on 16 | set output-meta on 17 | set show-all-if-ambiguous on 18 | set visible-stats on 19 | set -o vi -------------------------------------------------------------------------------- /fix_leaky_data.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | from Foundation import NSMutableArray, NSMutableDictionary 4 | from Foundation import CFPreferencesSynchronize, CFPreferencesCopyValue, CFPreferencesCopyKeyList, CFPreferencesSetValue, CFPreferencesCopyMultiple, CFPreferencesSetMultiple, kCFPreferencesCurrentUser, kCFPreferencesAnyHost 5 | import os, sys 6 | 7 | majorRelease = int(os.uname()[2].split(".")[0]) 8 | if majorRelease < 14: 9 | print "Good news! This version of Mac OS X's Spotlight and Safari are not known to invade your privacy." 10 | sys.exit(0) 11 | 12 | def fixSpotlight (): 13 | DISABLED_ITEMS=set(["MENU_WEBSEARCH", "MENU_SPOTLIGHT_SUGGESTIONS"]) 14 | REQUIRED_ITEM_KEYS=set(["enabled", "name"]) 15 | BUNDLE_ID="com.apple.Spotlight" 16 | PREF_NAME="orderedItems" 17 | DEFAULT_VALUE=[ 18 | {'enabled' : True, 'name' : 'APPLICATIONS'}, 19 | {'enabled' : False, 'name' : 'MENU_SPOTLIGHT_SUGGESTIONS'}, 20 | {'enabled' : True, 'name' : 'MENU_CONVERSION'}, 21 | {'enabled' : True, 'name' : 'MENU_EXPRESSION'}, 22 | {'enabled' : True, 'name' : 'MENU_DEFINITION'}, 23 | {'enabled' : True, 'name' : 'SYSTEM_PREFS'}, 24 | {'enabled' : True, 'name' : 'DOCUMENTS'}, 25 | {'enabled' : True, 'name' : 'DIRECTORIES'}, 26 | {'enabled' : True, 'name' : 'PRESENTATIONS'}, 27 | {'enabled' : True, 'name' : 'SPREADSHEETS'}, 28 | {'enabled' : True, 'name' : 'PDF'}, 29 | {'enabled' : True, 'name' : 'MESSAGES'}, 30 | {'enabled' : True, 'name' : 'CONTACT'}, 31 | {'enabled' : True, 'name' : 'EVENT_TODO'}, 32 | {'enabled' : True, 'name' : 'IMAGES'}, 33 | {'enabled' : True, 'name' : 'BOOKMARKS'}, 34 | {'enabled' : True, 'name' : 'MUSIC'}, 35 | {'enabled' : True, 'name' : 'MOVIES'}, 36 | {'enabled' : True, 'name' : 'FONTS'}, 37 | {'enabled' : True, 'name' : 'MENU_OTHER'}, 38 | {'enabled' : False, 'name' : 'MENU_WEBSEARCH'} 39 | ] 40 | 41 | items = CFPreferencesCopyValue(PREF_NAME, BUNDLE_ID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost) 42 | newItems = None 43 | if items is None or len(items) is 0: 44 | # Actual preference values are populated on demand; if the user 45 | # hasn't previously configured Spotlight, the preference value 46 | # will be unavailable 47 | newItems = DEFAULT_VALUE 48 | else: 49 | newItems = NSMutableArray.new() 50 | for item in items: 51 | missing_keys = [] 52 | for key in REQUIRED_ITEM_KEYS: 53 | if not item.has_key(key): 54 | missing_keys.append(key) 55 | 56 | if len(missing_keys) != 0: 57 | print "Preference item %s is missing expected keys (%s), skipping" % (item, missing_keys) 58 | newItems.append(item) 59 | continue 60 | 61 | if item["name"] not in DISABLED_ITEMS: 62 | newItems.append(item) 63 | continue 64 | 65 | newItem = NSMutableDictionary.dictionaryWithDictionary_(item) 66 | newItem.setObject_forKey_(0, "enabled") 67 | newItems.append(newItem) 68 | 69 | CFPreferencesSetValue(PREF_NAME, newItems, BUNDLE_ID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost) 70 | CFPreferencesSynchronize(BUNDLE_ID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost) 71 | 72 | def fixSafariSpotlight (): 73 | # Safari "Spotlight" respects the system-wide Spotlight privacy settings 74 | # EXCEPT when it comes to submitting search metrics to Apple. 75 | # 76 | # To disable these metrics, we have to disable Safari's *seperate* 77 | # "Spotlight Suggestions" setting, in addition to Spotlight's 78 | # "Spotlight Suggestions". 79 | # 80 | # You'll be forgiven if you find this confusing. 81 | BUNDLE_ID="com.apple.Safari" 82 | PREF_NAME="UniversalSearchEnabled" 83 | CFPreferencesSetValue(PREF_NAME, False, BUNDLE_ID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost) 84 | CFPreferencesSynchronize(BUNDLE_ID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost) 85 | 86 | fixSpotlight() 87 | fixSafariSpotlight() 88 | -------------------------------------------------------------------------------- /install.md: -------------------------------------------------------------------------------- 1 | * Install 1Password6 2 | * Install Adobe Suite 3 | * Install Audio Hijack 4 | * Install Docker 5 | * Install Firefox 6 | ** Install HTTPSEverywhere 7 | ** Install NoScript 8 | ** Install uBlock Origin 9 | ** Install 1Password extension 10 | * Install Chrome 11 | ** Install uBlock Origin 12 | * Install Kaleidoscope 13 | * Install OBS Studio 14 | * Install OpenEmu 15 | * Install Shimo 16 | * Install Spectacle 17 | * Install ChefDK 18 | * Install Habitat 19 | * Install Terraform 20 | * Install Tunnelbear 21 | * Install Virtualbox 22 | * Install Vagrant 23 | * Install VLC 24 | * Install WavTap 25 | * Install zoom.us 26 | * Install iTerm2 27 | * Install VSCode 28 | * Import iTunes library 29 | * Set backgrounds 30 | * Set audio hijack setup 31 | * Restore 1Password vault from backup 32 | * Sign in to Things 33 | * Restore Contacts from backup 34 | * Setup Filevault 35 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source "./public.bash" 4 | 5 | # Current User 6 | user=$(id -un) 7 | 8 | # Keep-alive: update existing `sudo` time stamp until script has finished 9 | while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null & 10 | 11 | echo "" 12 | headline " Let's secure your Mac and install basic applications." 13 | echo "" 14 | echo "Modifying settings for user: $user." 15 | # Close any open System Preferences panes, to prevent them from overriding 16 | # settings we’re about to change 17 | osascript -e 'tell application "System Preferences" to quit' 18 | 19 | # Ask for the administrator password upfront 20 | if [ $(sudo -n uptime 2>&1|grep "load"|wc -l) -eq 0 ] 21 | then 22 | step "Some of these settings are system-wide, therefore we need your permission." 23 | sudo -v 24 | echo "" 25 | fi 26 | 27 | step "Setting your computer name (as done via System Preferences → Sharing)." 28 | echo "What would you like it to be? $bold" 29 | read computer_name 30 | echo "$reset" 31 | run sudo scutil --set ComputerName "'$computer_name'" 32 | run sudo scutil --set HostName "'$computer_name'" 33 | run sudo scutil --set LocalHostName "'$computer_name'" 34 | run sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "'$computer_name'" 35 | 36 | # Files 37 | echo "Enable bash autocomplete" 38 | run sudo cp ./files/.inputrc ~/.inputrc 39 | 40 | echo "Disable startup chime sound." 41 | run sudo nvram SystemAudioVolume=" " 42 | 43 | # UX And Performance Improvements 44 | echo "Disable sudden motion sensor. (Not useful for SSDs)." 45 | run sudo pmset -a sms 0 46 | 47 | echo "Use 24-hour time. Use the format EEE MMM d H:mm:ss" 48 | run defaults write com.apple.menuextra.clock DateFormat -string 'EEE MMM d H:mm:ss' 49 | 50 | echo "Disable press-and-hold for keys in favor of key repeat." 51 | run defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false 52 | 53 | echo "Set a fast keyboard repeat rate, after a good initial delay." 54 | run defaults write NSGlobalDomain KeyRepeat -int 1 55 | run defaults write NSGlobalDomain InitialKeyRepeat -int 25 56 | 57 | echo "Disable auto-correct." 58 | run defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false 59 | 60 | echo "Speed up mission control animations." 61 | run defaults write com.apple.dock expose-animation-duration -float 0.1 62 | 63 | echo "Remove the auto-hiding dock delay." 64 | run defaults write com.apple.dock autohide-delay -int 0 65 | 66 | echo "Use the dark theme." 67 | run defaults write ~/Library/Preferences/.GlobalPreferences AppleInterfaceStyle -string "Dark" 68 | 69 | echo "Save screenshots in PNG format." 70 | run defaults write com.apple.screencapture type -string png 71 | 72 | echo "Save screenshots to user screenshots directory instead of desktop." 73 | run mkdir ~/screenshots 74 | run defaults write com.apple.screencapture location -string ~/screenshots 75 | 76 | echo "Disable shadow in screenshots." 77 | defaults write com.apple.screencapture disable-shadow -bool true 78 | 79 | echo "Disable menu transparency." 80 | run defaults write com.apple.universalaccess reduceTransparency -int 1 81 | 82 | echo "Turn off increased contrast. macOS 10.14 causes ugly white borders." 83 | run defaults write com.apple.universalaccess increaseContrast -int 0 84 | 85 | echo "Disable mouse enlargement with jiggle." 86 | run defaults write ~/Library/Preferences/.GlobalPreferences CGDisableCursorLocationMagnification -bool true 87 | 88 | echo "Disable annoying UI error sounds." 89 | run defaults write com.apple.systemsound com.apple.sound.beep.volume -int 0 90 | run defaults write com.apple.sound.beep feedback -int 0 91 | run defaults write com.apple.systemsound com.apple.sound.uiaudio.enabled -int 0 92 | run osascript -e 'set volume alert volume 0' 93 | 94 | echo "Show all filename extensions." 95 | run defaults write NSGlobalDomain AppleShowAllExtensions -bool true 96 | 97 | echo "Disable the warning when changing a file extension." 98 | run defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false 99 | 100 | echo "Use list view in all Finder windows by default." 101 | run defaults write com.apple.finder FXPreferredViewStyle -string '"Nlsv"' 102 | 103 | echo "Show the ~/Library folder." 104 | run chflags nohidden ~/Library 105 | 106 | echo "Show the /Volumes folder." 107 | run sudo chflags nohidden /Volumes 108 | 109 | echo "Show hidden files (whose name starts with dot) in finder." 110 | run defaults write com.apple.finder AppleShowAllFiles -int 1 111 | 112 | echo "Show full file path in finder windows." 113 | run defaults write _FXShowPosixPathInTitle com.apple.finder -int 1 114 | 115 | echo "Don't write DS_Store files to network shares." 116 | run defaults write DSDontWriteNetworkStores com.apple.desktopservices -int 1 117 | 118 | echo "Don't ask to use external drives as a Time Machine backup." 119 | run defaults write DoNotOfferNewDisksForBackup com.apple.TimeMachine -int 1 120 | 121 | echo "Disable natural scrolling." 122 | run defaults write ~/Library/Preferences/.GlobalPreferences com.apple.swipescrolldirection -bool false 123 | 124 | echo "Always show scrollbars." 125 | run defaults write NSGlobalDomain AppleShowScrollBars -string "Always" 126 | 127 | echo "Expand save panel by default." 128 | defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true 129 | defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true 130 | 131 | echo "Expand print panel by default." 132 | defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true 133 | defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true 134 | 135 | echo "Disable automatic capitalization." 136 | defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false 137 | 138 | echo "Disable smart dashes." 139 | defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false 140 | 141 | echo "Disable automate period substitution." 142 | defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false 143 | 144 | echo "Disable smart quotes." 145 | defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false 146 | 147 | echo "Enable subpixel font rendering on non-Apple LCDs." 148 | # Reference: https://github.com/kevinSuttle/macOS-Defaults/issues/17#issuecomment-266633501 149 | defaults write NSGlobalDomain AppleFontSmoothing -int 1 150 | 151 | # Security And Privacy Improvements 152 | echo "Disable Safari from auto-filling sensitive data." 153 | run defaults write ~/Library/Preferences/com.apple.Safari AutoFillCreditCardData -bool false 154 | run defaults write ~/Library/Preferences/com.apple.Safari AutoFillFromAddressBook -bool false 155 | run defaults write ~/Library/Preferences/com.apple.Safari AutoFillMiscellaneousForms -bool false 156 | run defaults write ~/Library/Preferences/com.apple.Safari AutoFillPasswords -bool false 157 | 158 | echo "Enable Do Not Track in Safari." 159 | defaults write com.apple.Safari SendDoNotTrackHTTPHeader -bool true 160 | 161 | echo "Disable Safari from automatically opening files." 162 | run defaults write ~/Library/Preferences/com.apple.Safari AutoOpenSafeDownloads -bool false 163 | 164 | echo "Always block cookies and local storage in Safari." 165 | run defaults write ~/Library/Preferences/com.apple.Safari BlockStoragePolicy -bool false 166 | 167 | echo "Enable Safari warnings when visiting fradulent websites." 168 | run defaults write ~/Library/Preferences/com.apple.Safari WarnAboutFraudulentWebsites -bool true 169 | 170 | echo "Disable javascript in Safari." 171 | run defaults write ~/Library/Preferences/com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptEnabled -bool false 172 | run defaults write ~/Library/Preferences/com.apple.Safari WebKitJavaScriptEnabled -bool false 173 | 174 | echo "Block popups in Safari." 175 | run defaults write ~/Library/Preferences/com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool false 176 | run defaults write ~/Library/Preferences/com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically -bool false 177 | 178 | echo "Disable plugins and extensions in Safari." 179 | run defaults write ~/Library/Preferences/com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2WebGLEnabled -bool false 180 | run defaults write ~/Library/Preferences/com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2PluginsEnabled -bool false 181 | run defaults write ~/Library/Preferences/com.apple.Safari WebKitPluginsEnabled -bool false 182 | run defaults write ~/Library/Preferences/com.apple.Safari ExtensionsEnabled -bool false 183 | run defaults write ~/Library/Preferences/com.apple.Safari PlugInFirstVisitPolicy PlugInPolicyBlock 184 | run defaults write ~/Library/Preferences/com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaEnabled -bool false 185 | run defaults write ~/Library/Preferences/com.apple.Safari WebKitJavaEnabled -bool false 186 | 187 | echo "Safari should treat SHA-1 certificates as insecure." 188 | run defaults write ~/Library/Preferences/com.apple.Safari TreatSHA1CertificatesAsInsecure -bool true 189 | 190 | echo "Disable pre-loading websites with high search rankings." 191 | run defaults write ~/Library/Preferences/com.apple.Safari PreloadTopHit -bool false 192 | 193 | echo "Disable Safari search engine suggestions." 194 | run defaults write ~/Library/Preferences/com.apple.Safari SuppressSearchSuggestions -bool true 195 | 196 | echo "Enable Do-Not-Track HTTP header in Safari." 197 | run defaults write ~/Library/Preferences/com.apple.Safari SendDoNotTrackHTTPHeader -bool true 198 | 199 | echo "Disable pdf viewing in Safari." 200 | run defaults write ~/Library/Preferences/com.apple.Safari WebKitOmitPDFSupport -bool true 201 | 202 | echo "Display full website addresses in Safari." 203 | run defaults write ~/Library/Preferences/com.apple.Safari ShowFullURLInSmartSearchField -bool true 204 | 205 | echo "Disable loading remote content in emails in Apple Mail." 206 | run defaults write ~/Library/Preferences/com.apple.mail-shared DisableURLLoading -bool true 207 | 208 | echo "Send junk mail to the junk mail box in Apple Mail." 209 | run defaults write ~/Library/Containers/com.apple.mail/Data/Library/Preferences/com.apple.mail JunkMailBehavior -int 2 210 | 211 | echo "Disable spotlight universal search (don't send info to Apple)." 212 | run defaults write com.apple.safari UniversalSearchEnabled -int 0 213 | 214 | echo "Disable Spotlight Suggestions, Bing Web Search, and other leaky data." 215 | run python ./fix_leaky_data.py 216 | 217 | echo "Disable Captive Portal Hijacking Attack." 218 | run defaults write /Library/Preferences/SystemConfiguration/com.apple.captive.control Active -bool false 219 | 220 | echo "Set screen to lock as soon as the screensaver starts." 221 | run defaults write com.apple.screensaver askForPassword -int 1 222 | run defaults write com.apple.screensaver askForPasswordDelay -int 0 223 | 224 | echo "Don't default to saving documents to iCloud." 225 | run defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false 226 | 227 | echo "Disable crash reporter." 228 | run defaults write com.apple.CrashReporter DialogType none 229 | 230 | echo "Enable Stealth Mode. Computer will not respond to ICMP ping requests or connection attempts from a closed TCP/UDP port." 231 | run defaults write /Library/Preferences/com.apple.alf stealthenabled -bool true 232 | 233 | echo "Enable AirDrop over Ethernet." 234 | defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true 235 | 236 | echo "Set all network interfaces to use Cloudflare DNS (1.1.1.1)." 237 | run bash ./use_cloudflare_dns.sh 238 | 239 | echo "Disable wake on network access." 240 | run systemsetup -setwakeonnetworkaccess off 241 | 242 | echo "Disable Bonjour multicast advertisements." 243 | run defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES 244 | 245 | # This is disabled by default, but sometimes people turn it on and forget to turn it back off again. 246 | echo "Turn off remote desktop access." 247 | run sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -configure -access -off 248 | 249 | echo "Enable Mac App Store automatic updates." 250 | run defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true 251 | 252 | echo "Check for Mac App Store updates daily." 253 | run defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1 254 | 255 | echo "Download Mac App Store updates in the background." 256 | run defaults write com.apple.SoftwareUpdate AutomaticDownload -int 1 257 | 258 | echo "Install Mac App Store system data files & security updates." 259 | run defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 1 260 | 261 | echo "Turn on Mac App Store auto-update." 262 | run defaults write com.apple.commerce AutoUpdate -bool true 263 | 264 | # Blocklists 265 | 266 | echo "Block all Facebook domains." 267 | if ! grep --quiet facebook /etc/hosts; then 268 | run cat block_facebook | sudo tee -a /etc/hosts 269 | else 270 | echo "${dim}▹ Facebook domains already blocked. $reset" 271 | fi 272 | 273 | # Download Packaged Software 274 | # Some software comes packaged directly from the vendor 275 | # Eventually we'll automate the installs of each of these 276 | # But the biggest challenege is just remembering 277 | # Which apps you need to download, so let's do that for now 278 | 279 | download_file "https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=en-US" "firefox-latest.dmg" 280 | 281 | download_file "https://downloads.1password.com/mac/1Password.zip" "1password-latest.pkg" 282 | 283 | download_file "https://discordapp.com/api/download?platform=osx" "discord-latest.dmg" 284 | 285 | download_file "https://dl-portal.iina.io/IINA.v1.3.5.dmg" "IINA-latest.dmg" 286 | 287 | download_file "https://cdn-fastly.obsproject.com/downloads/obs-studio-31.0.2-macos-apple.dmg" "obs-mac-31.0.2-installer.pkg" 288 | 289 | download_file "https://www.kaleidoscopeapp.com/download" "kaleidoscope-latest.zip" 290 | 291 | download_file "https://d2oxtzozd38ts8.cloudfront.net/audiohijack/download/AudioHijack.zip" "AudioHijack.zip" 292 | 293 | download_file "https://cdn.rogueamoeba.com/loopback/download/Loopback.zip" "Loopback-latest.zip" 294 | 295 | download_file "https://desktop-release.notion-static.com/Notion-4.7.2-universal.dmg" "Notion-4.7.2-universal.dmg" 296 | 297 | download_file "https://s3.us-west-2.amazonaws.com/calendar-desktop-release.notion-static.com/Notion%20Calendar-1.130.0-universal.dmg" "Notion-Calendar-1.130.0-universal.dmg" 298 | 299 | download_file "https://desktop.linear.app/mac" "linear-latest.dmg" 300 | 301 | download_file "https://files.tableplus.com/macos/600/TablePlus.dmg" "TablePlus-600.dmg" 302 | # Blackmagic uses expiring keys to force you through their registration dialog 303 | # *sigh* Manual download for now I guess... https://sw.blackmagicdesign.com/DesktopVideo/v11.2/Blackmagic_Desktop_Video_Macintosh_11.2.zip 304 | 305 | # Install Applications 306 | 307 | # Note: Before installing Homebrew, set the following settings in your .bash_profile for increased privacy. 308 | # export HOMEBREW_NO_ANALYTICS=1 309 | # export HOMEBREW_NO_INSECURE_REDIRECT=1 310 | echo "Install Homebrew." 311 | which -s brew 312 | if [[ $? != 0 ]] ; then 313 | run '/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"' 314 | else 315 | run brew update 316 | fi 317 | 318 | echo "Install and configure git." 319 | run brew install git 320 | run git config --global user.email "echohack@users.noreply.github.com" 321 | git config --global user.name "echohack" 322 | 323 | echo "Prevent iTunes from taking backups of iPhone." 324 | run defaults write com.apple.iTunes DeviceBackupsDisabled -bool true 325 | 326 | echo "Install jq." 327 | run brew install jq 328 | 329 | echo "Install mas (Mac App Store Command Line)." 330 | run brew install mas 331 | 332 | echo "Prevent Google Chrome from Syncing automatically." 333 | run defaults write com.google.Chrome SyncDisabled -bool true 334 | run defaults write com.google.Chrome RestrictSigninToPattern -string ".*@example.com" 335 | 336 | echo "Install Raycast." 337 | run brew install --cask raycast 338 | 339 | echo "Install Shadowfox (dark theme for Firefox)." 340 | run brew install srkomodo/tap/shadowfox-updater 341 | # This requires some gui interaction and firefox pre-installed... 342 | # shadowfox-updater -generate-uuids -profile-index 0 -set-dark-theme 343 | 344 | echo "Install youtube-dl." 345 | run brew install youtube-dl 346 | run brew upgrade youtube-dl 347 | run brew install ffmpeg 348 | run brew upgrade ffmpeg 349 | 350 | echo "Install exercism CLI." 351 | run brew install exercism 352 | run brew upgrade exercism 353 | 354 | echo "Install shellcheck." 355 | run brew install shellcheck 356 | 357 | echo "Install pre-commit" 358 | run brew install pre-commit 359 | 360 | echo "Install Warp CLI." 361 | run brew install --cask warp 362 | 363 | echo "Install OrbStack." 364 | run brew install orbstack 365 | 366 | echo "Install docker." 367 | run brew cask install docker 368 | 369 | echo "Install VLC." 370 | run brew cask install vlc 371 | 372 | echo "Install LiceCap." 373 | run brew cask install licecap 374 | 375 | echo "Install Visual Studio Code." 376 | run brew cask install visual-studio-code 377 | 378 | echo "Install Visual Studio Code Extensions." 379 | vscode_install_ext(){ 380 | run code --install-extension $@ 381 | } 382 | vscode_install_ext bungcip.better-toml 383 | vscode_install_ext mauve.terraform 384 | vscode_install_ext ms-python.python 385 | vscode_install_ext ms-vscode.vscode-typescript-tslint-plugin 386 | vscode_install_ext redhat.vscode-yaml 387 | vscode_install_ext rust-lang.rust 388 | 389 | echo "Install npm." 390 | run brew install npm 391 | 392 | # Trust a curl | bash? Why not. 393 | echo "Install rust using Rustup." 394 | rustc --version 395 | if [[ $? != 0 ]] ; then 396 | run curl https://sh.rustup.rs -sSf | sh 397 | run rustup update 398 | fi 399 | 400 | # Install all the Mac App Store applications using mas. https://github.com/mas-cli/mas 401 | mac_app_login=$(mas account | grep @) 402 | if [ -z "$mac_app_login" ] ; then 403 | chapter "Let's install Mac App Store applications. What is your Mac App Store email login? $bold" 404 | read mac_app_login 405 | run mas signin $mac_app_login 406 | fi 407 | 408 | echo "Install Decompressor." 409 | run mas install 1033480833 410 | 411 | echo "Install HEIC Converter." 412 | run mas install 1294126402 413 | 414 | echo "Install Keynote." 415 | run mas install 409183694 416 | 417 | echo "Install Pixelmator Pro." 418 | run mas install 1289583905 419 | 420 | echo "Install Slack." 421 | run mas install 803453959 422 | 423 | echo "Install Things3." 424 | run mas install 904280696 425 | 426 | # Final updates 427 | echo "Upgrade any Mac App Store applications." 428 | run mas upgrade 429 | 430 | echo "Run one final check to make sure software is up to date." 431 | run softwareupdate -i -a 432 | 433 | run killall Dock 434 | run killall Finder 435 | run killall SystemUIServer 436 | 437 | chapter "Some settings will not take effect until you restart your computer." 438 | headline " Your Mac is setup and ready!" 439 | 440 | 441 | #https://itunes.apple.com/us/app/pixelmator-pro/id1289583905?mt=12 442 | -------------------------------------------------------------------------------- /public.bash: -------------------------------------------------------------------------------- 1 | # These functions are the public API used by install.sh 2 | 3 | # Script's color palette 4 | reset="\033[0m" 5 | highlight="\033[42m\033[97m" 6 | dot="\033[33m▸ $reset" 7 | dim="\033[2m" 8 | bold="\033[1m" 9 | 10 | headline() { 11 | printf "${highlight} %s ${reset}\n" "$@" 12 | } 13 | 14 | chapter() { 15 | echo "${highlight} $((count++)).) $@ ${reset}\n" 16 | } 17 | 18 | # Prints out a step, if last parameter is true then without an ending newline 19 | step() { 20 | if [ $# -eq 1 ] 21 | then echo "${dot}$@" 22 | else echo "${dot}$@" 23 | fi 24 | } 25 | 26 | run() { 27 | echo "${dim}▹ $@ $reset" 28 | eval $@ 29 | } 30 | 31 | # Downloads a file from a source URL to a local file. 32 | # uses an optional shasum to determine if an existing file can be used. 33 | # 34 | # If an existing file is present and the third argument is set with a shasum 35 | # digest, the file will be checked to see if it's valid. If so, the function 36 | # ends early and returns 0. Otherwise, the shasums do not match so the 37 | # file-on-disk is removed and a normal download proceeds as though no previous 38 | # file existed. This is designed to restart an interrupted download. 39 | # 40 | # Any valid `curl` URL will work. 41 | # 42 | # ```sh 43 | # download_file http://example.com/file.tar.gz file.tar.gz 44 | # # Downloads every time, even if the file exists locally 45 | # download_file http://example.com/file.tar.gz file.tar.gz abc123... 46 | # # Downloads if no local file is found 47 | # download_file http://example.com/file.tar.gz file.tar.gz abc123... 48 | # # File matches checksum: download is skipped, local file is used 49 | # download_file http://example.com/file.tar.gz file.tar.gz oh noes... 50 | # # File doesn't match checksum: local file removed, download attempted 51 | # ``` 52 | # 53 | # Will return 0 if a file was downloaded or if a valid cached file was found. 54 | download_file() { 55 | local url="$1" 56 | local dst="$HOME/Downloads/$2" 57 | local sha="$3" 58 | _curl_cmd=$(command -v curl) 59 | pushd "$HOME/Downloads" > /dev/null 60 | if [[ -f $dst && -n "$sha" ]]; then 61 | echo "Found previous file '$dst', attempting to re-use" 62 | if verify_file "$dst" "$sha"; then 63 | echo "Using cached and verified '$dst'" 64 | return 0 65 | else 66 | echo "Clearing previous '$dst' file and re-attempting download" 67 | rm -fv "$dst" 68 | fi 69 | fi 70 | 71 | echo "Downloading '$url' to '$dst'" 72 | # shellcheck disable=2154 73 | $_curl_cmd -L "$url" -o "$dst" 74 | echo "Downloaded '$dst'"; 75 | popd > /dev/null 76 | } 77 | 78 | # Verifies that a file on disk matches the given shasum. If the given shasum 79 | # doesn't match the file's shasum then a warning is printed with the expected 80 | # and computed shasum values. 81 | # 82 | # ```sh 83 | # verify_file file.tar.gz abc123... 84 | # ``` 85 | # 86 | # Will return 0 if the shasums match, and 1 if they do not match. A message 87 | # will be printed to stderr with the expected and computed shasum values. 88 | verify_file() { 89 | echo "Verifying $1" 90 | local checksum 91 | _openssl_cmd=$(command -v openssl) 92 | # shellcheck disable=2154 93 | read -r checksum _ < <($_openssl_cmd dgst -sha256 "$1" | cut -d'=' -f2) 94 | if [[ $2 = "$checksum" ]]; then 95 | echo "Checksum verified for $1" 96 | else 97 | echo "Checksum invalid for $1:" 98 | echo " Expected: $2" 99 | echo " Computed: ${checksum}" 100 | return 1 101 | fi 102 | return 0 103 | } -------------------------------------------------------------------------------- /use_cloudflare_dns.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Description: Sets all network interfaces but only 3 | # for the network interfaces that are not compliant. 4 | 5 | function not_cloudflare_dns { 6 | INTERFACE=$1 7 | if [ "$INTERFACE" = "An asterisk (*) denotes that a network service is disabled." ]; then 8 | echo 0 9 | else 10 | DNS=$(networksetup -getdnsservers "$INTERFACE" | tr -d "\n") 11 | if [ "$DNS" != "1.1.1.11.0.0.1" ]; then 12 | echo 1 13 | else 14 | echo 0 15 | fi 16 | fi 17 | } 18 | export -f not_cloudflare_dns 19 | 20 | function set_cloudflare_dns { 21 | INTERFACE=$1 22 | sudo networksetup -setdnsservers "$INTERFACE" 1.1.1.1 1.0.0.1 23 | } 24 | export -f set_cloudflare_dns 25 | 26 | 27 | function process { 28 | INTERFACE=$1 29 | IS_NOT_CLOUDFLARE_DNS=$(not_cloudflare_dns "$INTERFACE") 30 | if [ "$IS_NOT_CLOUDFLARE_DNS" = "1" ]; then 31 | set_cloudflare_dns "$INTERFACE" 32 | fi 33 | } 34 | export -f process 35 | 36 | networksetup listallnetworkservices | xargs -I{} bash -c 'process "{}"' 37 | --------------------------------------------------------------------------------