diff --git a/auto/gui.files.go b/auto/gui.files.go index 7dc47851..5341aeb9 100644 --- a/auto/gui.files.go +++ b/auto/gui.files.go @@ -18,7 +18,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["angular.min.js"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffec3c7f73dbb692ffe75320bab4a412997272d7de4d14a7933a69cf2fbf3c71923f9eeb37438990c598221512b4ad71f4dddf2e0092000150b49db4e9ccd34c621b58ec2f2c16bb0b40e3fb9f8a244e1999e6d94541f3c784e5251d915996b2382d69f5f72a290bfc27fe26f7c777c6f74f936c1a26e4de63320f930280c2f4b44cc25cfe8d4077bc127e29581ecf9837b973e73ccc49b14e676c11a7a764af1a112cb3a84ca8efd57dde881c9f0c277c409927d310d0ec112fa705c753c305c8689e2509cd7defa86add67790218e625fc1d6729f1ef15b36c051cde5b30b61a92ab3b043e887b95d3f3e72143e4bb93baf594b2b72fa109656d5a91789833c139171138c14e811d594929275800c0d566d2ea9cc7a766fb727df01c25f3b4d6348b2822393eb120394851508d3dd94ff33ccb2de30a4ad317d8675202cdd3c4642ba7abac9282b78fc7e408a6313d2dc894ceb39c926996250549b2ec0c5a18a3b94e91310e0cbcf0f6ab387a4cbc5771c1680a88607640c219d80a9f357298672c9b65091110e4591481ba0b5a00205bafc00e3d462f19fc25674118e266a4207f1d5e1ed1347a395d150afab7253bcd70cedee134bf8a973123fecbf8d771316c70a7e5724af34eecef005f981ea420e879981c2914440fa9ba887f6dccd272ecc865e7cdf11f8679080b2479473f9700a42a075446404130328db88e1a90fef801c9fe0256326d691e91ff162794885e3101fd55af50f89d7b9a6769fa220da7098d1422a28b3c8fc1eece69be6e10a37d76f2fd2a9b3990f29e5be13ccc72e6464864777f1d1f61fbafc247ab6b079b49d3aeb2a98dff70981e9a728a16829df6c127ba873b2de323fbc296eb559d980f07b759cc1f744111dbb3922d286c4bb3903bf50f9ac85b111e86457191e5513752054a225e352d9ddcbe7fa52e5b6820fffffefde111015f4980502f1baad45d6f5cb0111d95b319a5118dfc6adfc24f3c27fe5dbe4da9adca54c569ccfce144eff2bdff4a290369cef86ee00dd1fd8789ef2de2887a2d687313c4cf4663a1d912afc94633b09b09842d16258bb28bb41bd2b63beb4c6f4ce5fe16827f3235eb162ba7accc53973aec13e2d2fad5349c9d4579b602a3007a6083601667743dcdc23c9241d4c631295d02d65bf81ce45820701d07a9bcf1582800847e15603d20deb858c3925d028f05da5d51f8cde02864615b38dd402736131018810d1cafb03c14e18a6fe74e22af26481dd7fcfe76fa0976c6007456f86ae0320c60d5bd08670b05791c19136355000f887e41347b1e34d074060d1fde1dec67cb559682ab404c7dd5a3a881e33d8ea31343136da9d4dfed3c2a9166ef99c20836cd2e803ac6bb10615ef8c39106c122e8f41166a78e8b87644c1eeeeeeeea9071241d55f551c26818af8b860e107446e294b854c4bd1976068bb0787b914234b8a2395b73555be0f153652813a37763b430d872ed5890284e0a382a085e80fdd7215b04cbf0d2df1d91ff23f7852e39c441faeb9ad1e27dc6602bdfb104fd06142a8f454393438d7256b26da42144eb435b037312df10d8eb660be253976a0da5ecf615c102a8cfc6c6e621f4c4a9ed26b62d0691f4f45e07ed54c94e6e33b9d34e8720d66265a1b9536c6eef1db8cb67737dd5231cacfb3dc8beca34a2f3388530ccbeb540e8909ea5b8dba9de5da360a2868982c400d6d85d24e1c47cc4b2d50a285b31f3d49c8935eca1e7b390e1fdcde80a9cff3cde3d0958f60108e4fb3035e0cc1f880e989769c172ffe170a2cb2187ef9101a680b0d90ec8972fa4693d88123a68cb22ba1f4037f1070d97581038a4f90cfc73784ae5c43c20831f8603abb452258a40edcd7395ed2710fa7dfbf98ed379f60d263bc29c2bff6a73ad4d9817c3d43829cb75e8b9a2a4064d21e6dd896995c7cb10f22f1b268bfaf429d44de29bcf23ec922e812dda15b533eead39fedd7e58b5195ccd18480510b05758cd0497952031b601283c4cda6ae57bd13cc9203e033276a788452a8b53c4e6fdb9163923b7e8e401ceb275c901c11bf879f0fc44b739046ceba66a0f30264b28278b4a0455d8b6b4dab1ae08cb78f4e3b5822f42b15ee91e29fd13f171adb429c31ef4c3b08db1c3e778bc0cc0c5af7db145b3073394eaefa0d7ececbafa94a9c97594b68458af706bcbf4d5dfadba4cf7d84b67a62fdcaa33d5359a2ac3aacc9fac31c918579a2c0a75b9f65f3ae65b51f95f2642cb09746e536e513ed2add380cce89c7243538e101c6c4a88739a1780dbc6dfb7544f12c3defbd14d7bcb3cc3761b2161433bbab828c112331a7e62a21ea000868451b5c280fc5664d3469544609d68d9068a28f106094d4fd902222ef2d021711d1f74082ab141a4ec348637e1d294d7620d325a91bd3d4394c1c015a1d4f30ce41d8355900e19758ba9627fc8687fb607116c11176f6c82b7a7381596d01ae6b7264cd14b5fa5f8a548b8f8a061a78ab6e9a78f727a6b86463153aaed76cd8cc710aa9d511212ac2f628c0263d775b7766e184890b7ab2ad5ae8e5f718cafc34a2035fbb6e1c2127a271e005071603957cad4b70ecaebe3436b841f9ed3de1a2aca1cfecb96549c3dcff89954a4fb41d106a8eed622d1cf65981476e58c3af53b846cd6d8cdc5670b7ad09903b5aecd78ee4b9687d61a87ce6df73cb578b756721bf67ae112ccba11d5e7d8ad62b65382409c27c9c841dbb14ca8239607c52a8999ef8dd0d4c295b20f5c2afbc065c020b4024742dac576516f5a6585517d057260a3ff387afb2628f8a9783c6f29613822570b1a46b0fb3d2657de7e96024f6ce73df8270fec3c5c016be2cc69fca9c8526fa35580ef74af98011e800c5ca52a7e76e15c0fda39897eb6e33898b9ee3985436d12b3e77229966b0d2dd1aa83a01bc966674a395b32cb87b6931ce330eabadad9dc5c7edc11ac01512b40a8d096790e362747dc0be8259860e45f6d46d52e6db28224407d2f2e610d59d5a8811dd1642ece0c5ab1a9169a9af2368c05f5d930ac57b257870f7573f0298b5358c2c4623708fc0238c9f2e01eac91c39c33adc504386595da6eb4e1e833109b01a9a678a016479f9583d562915d78765c61b405996d16af547d01fbd13a0d97c0ffa6c74cb6dcac752aed307fbea2230a8915ddaa6c83a27134cc8f96ec2ad97eb66bd343bf24c31a2156ebe36eb340d4a5207a7b780a0ed9e643d969f9891b0634e2d44d3b19b59f86f03e7e94d342ddeae821ec2d046e0b6d4e4077e0f097ecd7ed3d0a62d24eb3ad7219f072231265291d9178725d417b997e9d1c5a746f40d5bebb9dc1810524e18cfa633206863d2057b7ec542ddab94f154e19146ad765f3f3370cd76a22a8495351e2ec991f4c92983cd117ae48eaa1e3c1035b694f853d8e4fd4c28baea28e43ff6a7023f1c400959cebfb6cf599e6343ceb51f21327e880c9b1c085c4abb258f8e6deef70744191e5ccafaa6d614e6fea8fbe877599b105cd2b3e5dd1a35a33733af7debe1d831fd39b3bea1f9dfe228688adeddf6f60d5696b8ac0302786d9a73d2b8caaf06e03b5481c2649f73c541e52b1a866f6da8e451ab5511652c094e24b618fabf12e00668d3d4d43dc1d306dc3551aa2c1fb7849c953e33af656eb982534cc5f5457153ae344f58eb7c6e7b1ceb52c65ee9087279cadaddb271f37e69c3822d9791e436291accd698545adb2da0426d7375e5ea0517733bb09173c8d80ffeb6d6a563bea51bbd28a7dc36147c10ef03892ec55d6c7602a38fd769aad9685dbf93be8bd5e6e274768b518676ea78c016b49f8f9633565576602a182cbe0cfb85467447fdb481d57eee5c4bc59da8ada2da8e45902a6333ffe68a3d50004b843701f3628623ca6316e92d858e59078675da164db9a9d635f52ba82110fba79c31bf9cb223803609bf16dc3deddffe50bf9e9a6793dda67cf440fc97e85440fb260c3ecb7dafb95665310176c6e9efffef922638ad029b3786cb4cabe468aa0f16ca408928ad5a60ca83acc3b3e31fbf455aec40de642af770171ea8629aa158b2d28b7934b2b97b22768d96315450811345c0957f45832d22effb6e318fc88ba849ddfd6f5b61ac6e254cc4041c06a6ec794c1abc25e81d31b9910c2b5008c399af7a3cf410c789345e7109d8789b0757d53d7505b1b16497b0c78a9bb41db4588d6381b7a338911b58b6a8cb044f9972b9141bb2fd017c4dcd05ddbf77795d9140b48cd8a9643a9accf88ab21ea712d61e7268fe7a2ed5402f168a1771d53b54eef7de5d073387414c2053a9e6f5a0277dec9ebc08311711c7b080be9de4a7ab9c4af53309406ab59a265dbd6ee54dcd214ff2e15327c12a45aeaf63729f2faca75af78cb61d63bde5b285ef3154cb512ed2f5d1408f9da973f7530cb035b9892b3744da6ea87c74ea65cc7a75b0e5865e94e3ba071969e0c5c6f9a6cdc066fab3dd980ab77caf8f375b8f2dd6bc889805f456cbf30ea351563bc627cb3f9a817283705b56d6b4d407d5207016bf52cd8d7051af1673bbb00c7c5a9595354ea872332adb8542ecf84fc1a8bb85ede5c9fc18c4b024cad00ed2b4a12cd13093eb45546761e1ade5e0e7b2a8755b9b28255448d1caf517f6de115e31acc62e8d37a286847d10ddf081dba0983e7710eb15e96af39e9faaffed41b044f5504260f68c889fa2d054b25434f2c3bb45664591ee755b023d990c652dd423309f28d65a9524c9418a1759cb4548925220658e211d150113a110b58d1a8ce44a23311d159bcc48b3060c82392961a2f517c1ab302dfd6ceaa181b67049fc21b57e725fa5dadc42210542facc4ad76fe6b929d8a5fc229273dc4475375cfc3dd2a5c41caad075ac023d9919875d1049b1bf54b2a64a5d04b438008f5afa6a8b897a395078be9aa6423c2df7a5844e4dd01cb7e8b2f69e4d70ad446350e843b0193a1699c86fc7d7b5f7eda8b9c37f269a81d81eb31c72e71be0811589e82cb7af43fe4befac3c80139e478cf023ab151edd6d2a3213e12f2c8eff17558ebc3d32d9879dd8f994e2e6e41fea59dbcfa2e24cf60b22b7bc031de363b5b52fc0a98efc8cef8a319e5478736dba0b7b1b3eb70d687a5db98592f5e3a99b805f5b36f6064c5427cabc64d6c4c63de7a35d741344c2ec275f1a6fa068f6f6fdfd657662afbdb389e2dcaf4ece0f95766d6c6aa7adf9c3f580b73be0d0b2df3dbf0fe38b87a38fa79333e6da7e01c782b5ad9c4816526b2539f52751aca2118d95fae0371e3617cfcc7f88f3f4ec65615603d5f88274fee9eec91ff76d88632ff56fb18044130c657b3026101093bf555e43b8f86b2d0321e6cd3229e08a6b75b6eb62f57e0a0cd1d931fe41d130733118fa2e373ea7b19cf4e4529bf8b2d950bf1cd648f89b7afd452256df9d5677533cbc3b498256564f4f0c4ab5d7195977601f79efc5521b151d0d2259063f8cd304f84516196b537c02fb41990f474873fd9dc1be839f8b1c41940dc3d78fa64cc473e9514ccb5afa8a94ce3cf252f94294aead2d1e71206e3b7149dbe464e142992383d7bdce0e06a18119a2c4724642c87907dc6f2a46dabd816dc03ab2b685e04655a2ce239ab9319ff3ca6171fc3c45ec4e7cf87fb94e6aacf784c2e2881055f2651ea31111783b6adc08233d0ec47848ad9baa52d7eb4303186ca8a75c39b28f7d5829c7430c716a2aa4d280a529030c96918ad6fc41eaff5b9f9dbce435c1081f0ab6ac768913656eb471fb331cee33bcd994f2826f371f41f7bde3e63bababa0ddace01bf8781ae9f3f94a9a5fb0af704db8a9154aa40e15fc7cf76fef968e77f4fae7e7ab4b937767e31cc6d24df2a7d2fe4ae85c8b17fbb05f26f000000ffff010000ffffd55009eccc530000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec3c6b73db3892dffd2b30bacc924a64cac9ddee5d4571b6324966cf9749e28a93f9701e5f15254216c714a99060149547fffdba0190c293a21f9999ad5a5525b68146bfd0687437008d1ffe5a6569cec8b42cd6152d9f1256d674446645ced2bca6cddfabacaef09ff89b3c1c1f8c1f5e66c534cec883a7641e671500c5f9659dc5a5fc1b810e82baa287152bd3190b2607075fe292549b7cc616697e498e9b11d1b248ea8c8641db178cc8f9c570c207d465368d01df31094a5a713c2d5c848c964596d1320cce9ad697accc00c3bc86bfd32227e1836a56ac80c3070bc65643727d40e083b85725fdf22a6688fc68d2b65e52f6fe0d34a1acbb56241e974c70ce45044eb05360475672ca09560070bd9d189df3f4d26e5f6e4e5ea16481d69a17094524e7170e2427390aaab127fb5765c18a5991bd5c806269b2635381a16559940edc15a5f96becb3b981d9a199cd7a49574523296f1f8fc9194c757e5991299d172525d3a2c82a9215c515b430464b9d22631c1878e1edd769f294043fa515a339208219042dccc09ef8cc9253291d1110e44592c09454b40240b65981ad068c7e65f0979c2961acdb9182fc6dfcf58ce6c99be9aa52d0bfafd96581f3fa014de1a774993212be497f1857c31deebc5e4e69d989fd03e08bf3931c04fd1267670a05d1439a2e12de18b3b42e3772d9797bfca77119c322ca3ed0cf3500a9ca01951150108ccc13aea31d487ffc804418a5a17944fe639a51227ac504f457bd42e11fdc1bbdc8f3d7793ccd68a210115de4550a76f785969b1d62b4cf4ebe7f2a661ea4bce74e384f8b92f91112d9dd5fc767d8fe83f0e3eadac166b26b57d9d4c67f3acd4f6d39450bc14ef7e00bdd0b5ed6e9997b61cbf5aa4ecca793bb2ce64fbaa088ed45cd1614b6ae59cc1dff274de4bd084fe3aa5a1765d28d5481928857bb964e6e3ffea42e5b6820fffdf1e3e919015f4980502f1b6ad4dd6e6eb0599dd5b319a5094dc2666fc34f3a27e1777c2b535b95a94af39485c389de1506ff965306d25cf1dd2018a2fb8fb33058a4090d0c687ba3c4cf566361b76dde908dddc06e2610b65ad42c29d67937a46b07d799dedacafd3106ff646bd62f5649595de63e75b827c4a7f5eb693cbb4aca62054601f4c006c12caee8665ac4652203adad6752ba046cb7f039c8b140e036565279e3f1520408c326087b448271b58125bb041e2bb4bbaa0a77839398c5a670ba814e5c262030021b385e617928c295d0cd9d44de4c903a6ef7fbfbe9afb03346a0b32a5403976104abee753c5b28c8d3c49a18a7027840f47744731c4003cd67d0f0e9c3c9cb62b92a72701588a9af7a143570bce769726169c2944afdddcda3128df69e298c72f3620dd431268628741d0e471a04c3a0324498c336761e9231797c7474a443a6897454cd4709b561bc2e1a3a40d0194973e25311f766d8192de2eafd3a876870454bb6e1aa76c0e3a7c9622656efd66a61b0e5bab120519c14705410bc00fb6f63b68896f1d7f06844fe8b3c14bae41027f90f1b46ab8f0583adfcd091185850a83c960c6d0e35ca45cdf6918610ad0f6d0dcc4b7c4b60af9b2d48487daab59472d4570407a03e1b5b9787d0932bd34dec5b0c22e9e9bd0ecc54c94d6e3b3930d32188b5585d69ee149bcdbd0377f962aeaf7a8483757f0cd9579d27749ee61086b9b716081df2ab1c773bd5bb6b146cd430519018c01afb0e4978319fb162b502ca4ecc3c7d67620d07e8f91c6478ff6e7403ce7f9e1f5d44acf80404ca973035e0cc1f890e989769c5caf0f170a2cb21871f9301a680b0d90ec86fbf915deb4992d181298be87e04dd241cecb8c4a2c1292d67e09fe34b2a27e611197c3f1c38a5952a510472ccf8cb0c62bf6f3fe1693e2fbec16c27987495f736d9da8c0529cc8d97b25c88812f4cdaa1a9c4c47b31adca74194302e6c2e4509f3187ba517cf389847dd227b143bda2c2c6fd35c77fd40fab3685ab1903a90002760ba79de0c21224c62e00858789a957be1bcdb302223420e3768b58ca72b8456c7e39d76267e416dd3cc039362f39207a073f4f5e5de8468780a66e9af608a3b28c72b2a84450856b536b5deb8ab082c73f81117e118a554dff48e9a148888bc5a40cbbd0f743136387d7097821808bdf7a6387664f6628d53f835e8bab9bea5326273751da12a2bdcaaf2ddb59ff69d565fbc75e3ab39de15e9df97d23ca8a7599df59639231ae345916eaf2ed7fef986f45e57f98088613e8dca7fca2fc4cf74e0332a373ca0d4d3968f0b02921bed0b202dc2efebea57ab214f6de9ffdb4f7cc336cb70912b6b4a38b8b122c31a7e1e72aea310b60c818556b0cc86f4336dfa99208ac132ddf401125de28a3f9255b40c8451e7b246ee3830e4125368895bdc6f02e5edaf23aac41462bb2b767883218f82294769e81bc67b00ad221a36e314df40f39eddfdc41045ba4d53b97e0e614e7c2128c61a131618a5efa2a25ac45cac5070d3b55b44f3f7d94d35b33344999526f776b663c8650ed8a9298608511631418bb69bbb5d3c54882bc5f35c97673488b63421d5602a9f9b70b1716d13bf100808a030bba52a6be95505e2177aba88abfd0de2aaaea12fe2b96541c51cfc449aaee08dbd3d5ef5a99e8e73ace2ab776469d0a1e42426b6de7e2b3073d28cd835a57673a0f25cb43dd2641e68a52b4dbe6e098acd32c233905e920089ed2565650972c781bc18dcd53240e3a78e6e9e34ec20cbd9550fb245b3f62100bc794e6c56a956d80fd3569cf96333c55cb36070e1afa2c751ba83167ce22f64e05bd708949f2236a8ff98d3abe5782481ca5c9908998dad7a1ce581955ab2c656130c23516af940df0abb2017e8d18c494e0418979ce204a6daba2b20acf400e16e7ff9cbd7f1755fc42403a3794301c91eb058d13d8f69f92ebe06591034fecf02338e60016780c13298fdbc6bf56451e6cb5e2f741b7ab18e0d9cfc057a5e356ecf503da11916e739e33a99b1ed178d42631073e5f6adcfa501dd7d93ac562ed9a4e5758c36817332cec9c9fbaa8aec0bdc086f641408b06f6476439308cb563eddbebda446625363a6e98d28fe99216356bad3274388b35c47ec53ac2358e209142a5f9d52033e227154373f735770c799a782b2b714faf724069d7a05dc781d689e64ded6cdbd3921cf26350e18ca98d18b3415b9725ac5e39e24144bfc2624ec26bd07633c862054980fa5e7f056fe454a3067646b3b9387832d21b2dbbb1e5dd3116b5170cc0f391e336026d9ba35f8b340767481c2b10815f032745193d00d33c2d39d35a588953d6a8ed1e6296d4ce6934c503b534f9ac9cce578b621db871c5c91e64ae59bc56f505ec279b3c5e02ffdb1e33696c58cea974c3fcfe8a4e28e4e674afb22d8ad6fd027e3ee956c9fe0b022e3df4cb539d4946b33ed4104c590aa2b787a7e090261fca36c08f6d71af1047b7daf1bafb488df7f1f34003b5d1d143d83b086c0a6d4f407708f687443e8eaca6d36c9b7418bcdc8824454e47249ddc54d05ea6dfd6171cbab7a05adf6d1601c002b27846c3311903c301906b5b0e9b16edf0b0094c2d0aadeb72f9f95b06be2d11d4a4ad287181819f6e93943cd317aea80b41c7a347aeeab00a7b9e5ea8b53b5d451d37479ac13b892716a8e4dc4ea4f0332d697cd5a36a2cae610026cf021712afea6a11da7bbfc7d1455551b2b029d8c625bdad3ffa33accb822d68d9f0e98b1ed5b2abd7b9f7f6ed18fcd8dedc5342ebf41729446ca67fbf8555e7c61481614e2cb3cf7b16a955e1fd06ea9018f2feee79683ca46251bbd9331d8b346aabb2a88029f5bbca1d57e38512ccbf7b9a86b88062db86afba4823cc9ac873eb4eff5eeb9865342e5f37f75d3ae344f5a180c6e7b9ceb5ac861f92c7179cadbddb271f37e69c7822d979994262916dec698545adb2ba0b4c6e6ebcbcc4a7ee666e13ae781a01ffb7dbd4ac75d423b3588f7d432beb54660ef078ca15aba28fc13470fa15476f72f701ba6f96dcc9115a59cb9bdc2963c05c327e86ddccd9b59d41a8e032fab3ae665ae1df3e52e78d7fb9b0ef271b61bb03953c8fc27ce62f7f71d1da0144b845702736a8523ceab3ee23b958e590f8f241a1e4da9bbd63df50ba82118fba79c3771dcb2aba026097f5edc3deddffdb6fe4afb74decd1407b667a48f61e323d48832db3df6befd79a4d4160b0bd7d02fcfb8b8c3942a7cce259dbaab88f1c41e3d9ca112415a74d59506d9c777e61f7e9ab5c091cec85de6e03e2e416735427165754ee2697372ee558d072072b8a10226ab816aee8a964c4aca49b810c7e4461c2cdaf7149b2857138153b5210b09adbb165089ab857e00c463684702d00638fe6fde8731003de86d23944e76123342e01eb1a32b5e190b4c78037ba1b745da631c6b9d0db598c285e34638425cabf7c990cda7d85be20e586eedbbfff54a94db580dcac321c4a637d56600d618f6f097b37793c5b377309c4a3c5de6d5065dc00099583f3e1d0530917e878c2e988dc79272f040f46c47382242ca47b2be9e512efa762280d56b344c7b6adddcbb9a329feb394c8f061996aa9fb5f36c92b50377d282087395f0aeca178c3b754cd4a74bf975220e4bb72fe60c6ae0fec614aced20d996a9fb87b99f29d44ef39ab96b53bed84c65b7bb270bddba5e32e7857f1c905dcbc76c79f6fe355e85f435e04fc3aabf94eadd7548cf19afaede6a35da0dc14d4b6bd4501f5612604accde3f25017481ca9e2992a17a7654d5169188fc8b4e152b98015f3ab50e28dc2ee0a16665c1260ea0430afb94934cf24f8d0551a397c6c797b39ecb91c265570a060155123c76b15600dbc62dc0eb318fabc1d0ada5174c337428f6ee2e8555a42ac57941b4ebafdab3ff51d82e72a029b0734e44cfd3e8ca592a1678e1d5aabb22ccfcb26d8916c4863696e32da04f9c6b25429664a8c609c272d55629988019678463454a5cec40a5654aa7391e95c2474962ef1321558f288e4b5c64c925ea6acc227dab326c8c629c16f54b0de5f48f4470d2ffc8740d03cd4134f23f8af5971297e89a79cf410dfdeb53d8f8f9a7805291beffc8047722831eba20936b7eaf7a1c85a6190c70011ebdf82d2702f472bef5ef355cd4684bf187288c8bb2356fc987ea549d82a501bb5f320dc0bd80c4dd33ce65f93d0971f7395f3463e0dad27f03d093a22de774502cb73f0594ffe833c547f584920871c1f3b40272eaadd5a7a32c4b76601f9477a13d6faf0740766def663a6938b3b907fe326af3e2e2a0b98ecc61e704cb0cfce9614bf6de84f6467fce595f2a3439b26e85decec269cf561e92e66d68b974e26ee40fdea1b1859b5105fce721b1bd39877deeff6108db375bca9de355f04f3ededdbf95451657f1fc7b3459d5f9dbcba67665dacaa8f16f8e5c5b8e4dbb0d0327f52118ea3ebc7a3bf6dc797660ece81f7a2954d1c58a62287c1de49e396720a56f6872b415c7a189fff32fee5978bb1530758d117f2c9c3bb67c7e4df3dc6a11880d3400651148df1f5b5405841ca4e4315f9e193a12cb58c077bd588a782f9dd169ceb5b3a38e8ee9ec9f7f29e898f9b8447d2e9171a0605cf504539bf8b2f950df13d784f49f052a9a74ae2f28bf6da6656c67935cbeac4eae1c99759759577a001f7b1fc5521b155d0d2259063f81d43cf845961a6753cc0af461a90fcf2903ffd3d1ee879f8b9c41941ec3d78fe6ccc473e97143ad554e7e9e79a17cb142575e9e8730d83f1fbae2edf22278a14599a5f3ddde1e06a18119a2d472466ac84a87dc6caccb4566c8b1e80dd55b4aca23aaf16e95cb954fc25a5eb9fe3cc5dc8e7efd0fb94e79acf784cd694c092afb3240f98088d41db4e60c11968f667844ad9c6d0163f5e98584365d57ac79b28f9b5825c7430c716a2b24d280a5291382b699c6c6ec51eaff7f9f9dbcf435a1181f05eb563b5481b6bf5a38fd9baae82fbcd994f2826f469f22f7bde3f63bababa0ddacd01bf8c81be9fbf016aa5bb87cb82a66224952656f8bff31787fffbe4f03f2faefffa64fb60ecfd8aa1bb48be57fa5ec87d0b9163ff760be4ff010000ffff010000ffff53f2536c3a560000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["app.js"] = bs @@ -63,7 +63,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["favicon.png"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffec5d7973dbb892ff3f9f02e19bcd516b4ace31d9b78eacaa8c9dbc71cde4a838d9d9d9a9d92d8884448c498201403b7a8edf67df6e80f721d1b2ec788e3f129304d06874371abfc6a5c9ddc3b7071f7e7ef792043a0aa77726f88784345eec3b2c7648bc706992ec3b6a197b3ae0f1c27cf244aca5084326f79de33ce540cbd0215e4895da77305328e889832419f5a7770899444c53e205542aa6f79d54cfddbf3b6542a075e2b24f293fdd77fedbfdf8c23d105142359f850cc8428d2c8652472ff799bf609572318dd8be73cad95922a4ae643de3be0ef67d76ca3de69a971dc263ae390d5de5d190ed3f1aedb608f94c7992279a8bb842ab958da63a10b29523e4f109912c048941b2f6524db8879402c9e6fbce9c9ee2eb2801414eef6001cd75c8a68510c917727e0e4fea8df0d91ba8e9c1c38b8bc9d8e62a2ab0c4664268a5254dc69e52e3e26d14f178045f9c8c0fbd0c990a18d39643f34ef432814668f65963619342c84cf84b726e1e0949a8ef0343ee4c682da23df21fbbc9e7e759da1c1aedce69c4c3e51e71be67e129d3dca3e40d4b99b3438a0f3be4850469ef104563e52a26f9dc92b8b863fea4e1bf07df163546542e78ec6a91ec9147a36f5954cb3b4266dd48c44225d46345a91a2faf591c8a1df25ac4d483bf072256020c7287380722959c4960f10c382cc834aaa0606c68dd3e8b15f3a7da98ae9653349d762acaab3f750e0ae94f2d28fb2b2977a61694fd420a33217d26adec621137da158a856888798fec3eaf6bbaf2c59071bf2d159e08c5b147eca14d419f3c6d56c0957663e1ce52700abaa8ca7c3606e7a2c159d61a05a161611ac545199fab24a4a04b1e83ad3377160aef24e7034cdbf664b0c7dc3e0ac3917c1168309d326146bd93851469ec632d4202fb8bd983c74f9eed90c74f77f1bf470f9fd72528a9cf53b5479e541a9fcbe751f2993c2dbfe7827c0c9f1fe79f2f9aed02338b473e05c7d1b0f390cd81dbddd2d06bcd7bb45b7e36964f43be40f963239faf97552ee0dc11b7e58bba207779845e93c6baa327101d14c5ce02ae996bfacc5e2ccec0cfd49cc119b3c27fbabbdb49c86ff915dbfcc7e0553a98003f35367603c3c7d88e1f7726a65318a779d775c90791807e25715dfb2da6a7c5e0434f31c5fec13e913ffa6c4ed310c60818bc98c9c717d4787aeb00273e2f88a063a7205499a5a1eb0455d6eb706792c6be339df06891a760677388921efa5e17dfdc478fff6e5c3eb14392f3e4310c084662f6793c25c5083051110dc39c58c07de8f5ee6770d1f5faad374c3583dabf80b02069da39741872d32c47de9234acb423974ee5d15859d17033ece4057c29125f9cc5955448a7d998f437a7990fe4bf58e0108e7d207ba95279e9737d2f9ea9e4f96456c89e4a1cae26e319fca3b58a4ace8b0a2216a7356e0cbfd382270b5942ee9dc0b0edfbef59221e3c04ea55712ec26512e0d04c8a2737f051b35670f758041cbef07d82c5c1190ab944d62663a86970d5a899415543f3cf981541a37a24d15b71211a7eca7db4dc4bb0c7400fc74c6b30413588474f2c1afce5c52f29183e5c2e9fa407599bd506e28c1c1d5e8b5454906a34b241dc89f9bcc59a2d7e498948a634957aa0a9cc217bd0a8f8bda5d055ef649c86959e5d492d5326631096818b63f008d6c1f6f8469b1f3df22b2e9506d77ab643441c2e0920e0b398f0398999c794a272f99c647c91332a6384bb99f7cec883043888e22ed09ff3c5518c4eb1702840b874c535664237f2c1c756fd55251d84c24262fe77b36aebbeab99d7c501c7e49a044fea2906873bd3bc156f18f3990f23d4936921b17eb2387e35fd5432fd103062db9b4a331691802a32630ca0033d653e99410c110b4da807b88b82c31f95830589521479c68e16452618ba19c8fdac4e7a341927755358cb3462cdca189865039e34706aa308fb52e869a66302ff5c15993fd9984b128086d9b8723d966ed968305ab593905139e79f9d0e5dd53fd45e2b2fd963cbe2d9220d016f808136ecb966b9393d2c580e2206239307085210113d2c29745af9b35546ee22d64d1cc27d146c5603676ab5b9675de3fc1c8b1c60c2037c1a1d1d027e30ba825746b5a5095093e0df1f816dd45aafb81b5da9960f72f6f4ac4636832c6ac001e410d244e5782201a480d1f7df6aedcdc1087ecc1a06cd81d81a6d208656b5eb69c0bb75788064540fb9649ed1e3176222fe7754071717ebc8979d8154109ea579aca94eab3aa863b7aad5d29658d115d555d2b4f54c4bb98d748aa7ae9a5ce4a4907dabda21beae99d186b5d0a31388d221a2ec568a8d1faa4548231ecede95963c4134dc4105e9d8e8a12b0d53655f122606eb7d93a64d3054e9e2884d80c88a1afc1aaccfd077a1193303e4f7323feee7feea0d9b8b10c36291b0b8d1c05726e52a2d2b3acf951a98a386089061f84b26b25f473c3e8590b9cf1e06b73f430cae82e8bb218097528a4ddbdfcdecd754b4272208a49a2107228d408a98ffd300882b68bbc3ad7dada62e42316b0611ff806f34ac4577db50ecc2907dc543a6c0bfd2f08c2ed59b349a31797141e6f87987f414fa6ea94da1198f297691efbe9ec0021135e5f5a3f0ae415c2152bda4b44c995b242c2f14a9ef62d4170ada9c41780b605ecc0d80df8ec46208412e29302c728be48573960d29bda60a828eab5a576ffe1c8c65038711cc7b00aa6f216a75a63f33d587b87a08dc6d507823d611f87ad24ec19f33ef84350df368110bc9c83b2623ae14b87a75fd32b77562956a73b1d788dc66c9ab0062159786ad2116bffbe427ae830d5d82a1acccbc268a64e3b11552fa50322421caee0a425af185f9dc1ded3838dfd53d4f90481e812b727aa626cbd60d982900b0eaf1b009d7808a9d0febb290ae38698369826a908fb39a95f0de08606bf17d0cc48705f6c5a2472592c7d207f30506f3bfe44b060f1efe7a7bc279dbbc3c8ec737085433ae47c86d3d9cbf1c822196945923c9689a3e73c5707a1d976ba26a50c65f81753bb06ecdf7bd784d3e6a1e5e2d22514b4018d108fedc0e10a4a93a518d961ebcfbb8bd967a490a63a407bdab0114e13586c84cd270efd1c5c5bfdd52dc7c987d26efa9661b4a022a899987a254bfdcd742d3f03e46deb3046d206260e6dec505be3de8c97b141bd8fc015fab66f3f06b0b2d4d3a44f631b9168189540f9718843bdb17598eff32cb06965fc4b10060cbdefe40eeee9314fcd79cc7bd2e6bb07071374b206473de27af8d1c3379bae10cd85a8c9baf59e2c6115350a51eaea239ab5aef4cdf9a8d20438174ab129fc60b268b3aeef654329f0fa9e56b7ad3e66cec7f31a936f7a1a7b6f41f11571be49783a0af0ead07ad53196ecd3a5509defad0add00193d846759b16ab06a0db4d17a99a3b473a6874a2df4d57ac904236b55b85d2d7b462d527aabf16ac6a894366dd78dc9c757be1fbd0b8cde67dac4e9042cd0cfe888b193d16ffa780cdf58e37083d378bfc994174531643b074b3ccb540ea5b86b7b0cd40e1cafdeb2fe0b58d39cdf2d1ce6b8eeb1b9df093590a57ddbbf918a6d9ed42a390c50b1d9029d9bd8ddbfade08cd3d76a5ed7c55180a0d47085a693faad96cc73e3f87afa30f3c62d083011bb23de7fbbd28da83f8eee2622fdfb40d486d2e398bfd7069212c1632a2363de2fab7f255405ff7aebeaa519bfd75d61086ed966de28fb73fdcec26be9a4d175b5a8b0305f8f93b73f869d839837ca363f60a4c323f3b3d5585cc77da86de3a68d0b73dbfbe23bfe27ab22c06d465fe068fd3ed8da189ca13a9546c541ce11bc54c8f9de9719ae0a90b3226af844ca3f656e1415528a863c17590ce4600bac61e0da3605c5435960c14a670a5e247b072a5c97bfb61c3da5634c803fa0b2197635f782982bfec60c761f5f57a1ac9954ab189dfa55d7bdfb75003280b9aec3172d0b1fb7ff5ae6db3100531a19027d6139148f8001c72732e222b9bc7f4dfa2ffdbac73eab30ebb3589aecf6928169d1edc66c80e48f678719b073d33f43c1a32b047f37f3e1355ebe0c1d37ab1ae307caddb619f213132d650dfd45523735020303bb6d5fc4cf0b4c7cd74b5ad354c4c927a55e5666ec5c00fe22eee192308e87708a80b273018e18a50924801902522676028640916418e40b61254474ac438aa117f0fc07209b4ef052c0c797166cb729e0cf69635b76937309b5dd7660b7aa73dc922c36db0261ecfc535d85273477a43f4b9046ec478c0424a998fc83be3664920427fdbbacf0fb5f4683e3f32731bf49e4f9a6f5ff5d5b33e758de4d2c1e3eb21d3ec46b45f9e1981ea8df3186d4bdd47873d8ae6fea70d860a4bcc0db7a3ed6bd06ce38c59adb0d9d27104504ef339f7ec719d7b914f55f0bc3aad5a6ea9a8cfac5e59ff952c67d0a909fe8790bc7136debce25a6f0bee9f9f474bbb292148e3139c3b5d1943e0b1d67c7b35942bb46d69dbf3c60432b9805ca2594c2140b5275f3fc971bb2a677c89c677442b838e1d159189997207b488fbd932a2830e1945e2b4b9d9f5201408599bc1c9657b92b11e8cfd7b51583e3170ebba15ee800fc4d9be731759048ff3f23344b4add13def71e549d5aac137480da284331c1da436e83b7321a3ece0373e3ad9451ed8695f1a9dac581fc202f9ee2b13f19aafe7f7c1edba0655dfc7f3f439a1516ce6ea46df64dbfac9bd7b5da93e977ad95ee6998474c640e7425ae6a0db4daddf3904d88f69ad123c4ef09060b668db926bd950ecc2f93a4aa53b9be66597ba347c8953b92ac4b4dd6c26060f904a5ccc42c6b2a949bc6fe453ca712fa369b58b95701f7a9261af7309269f22eab184153ece4cadb678a87a9bce89bc4992d30650945807d6b5ec53dd67daa13aabd62f5fbad49a48d30ae0108f76c6567388ea8dcf2406ce7b401d40fe1cafa6c039223cade918539f92ec38333830dbb1854d362b9986dc881ca304202280c238f6e0231015e6d21a70170fb8d913eb3f1cb51a56695a4f7f9efe14008cb0973440cc816748b1d21d72c25882bc461caad501d564c2a2290e7526c3640c6ff63c2ab40cca831dd458571c24a18518f5af0ef67c5fa30cd3014785f1ade86c75958012f05c2d703b0b697cd2cfd7a0fa8d49bc3126bf9e05630ac06bce8a2f9832877c43214e6cf71991238d470ad3d0370225df3e367727510fad08170f413f1eae441abde1a902409b9066ed22369bbbd48e0d1655cb6066cc14ca4ca6a7ed8d39c6ee19e56e37b9d2ab51dc8c894869b5434b42e03a30c7ccf69def4594efb8c97c1852e9f260835c16b5fb41bb5d53a79338b6c7d963a561884471674e39efbf5e982aab1a5c1b6c1eb5de96eca85da4c5e9a617f9e325a4e82f416cdc3362016c844b207e973327fbfbc4223e147559e9a6f22e783dd6f292727f69dc26aee852a258023d4043cfe9b80ca51c1a78b287539bf976df827d9c4f595930134f5e109c76c2a4010e34d502678d3c622620c10a976803a8f88cfc008d4fc648eb064070b1f654b9c9829eb2ec9e8dbaf22b9eea9be2d0e4e567ef8f817ed7fcfd6d03ed2547dde0039d773e281eb370eeace1dccc53dadb0df0007f55e4d00b20fe1f7cb9090cac69730ff0a12171f5d0038f4fac0f3d30d71f21f4a81e1cdb4a00d247707b61081e6d591b8654d74abbd2bbd64cbbf20d09674a8646f8d808673a527bc21953776500b3d9f10e95daf9f8ce11cc94cd829b424a3828d5c7b46c8547351c5b4bbdf99d073d91cf9a71ecbd3d3f590973d2987f4a714718f42dc89e50845ff1be33fedf5fa8fb4ffa3fbbee7fbaff37faf5fcd1ceb3a717df8c7bc73dd3cc618189c9da3c48d75044119c74a495c1c931de560122b17359e0c2e676b1811437692c47e47506e7f1bb020d20a2b7b79359ac633632f602e721cc5af06c2569dc8fc1c7b26a1c455061736da1ba6aacd067c95d8c0c8d18867392d9cc651929c22c7be948558d0f9e3d2de30483784200270fbb43859d3c4e30a1016a19ff4d7002740aa63b199ba71abd385cae68770b03d98fdd5b6aaee691f0a695553ec9a65fc22b61819a5fc20f97f14c8640dd37fd6b7c587aa7dcffd87c1b7aa0e2d28cd211dd805fb1c2ecf32c36b5f42df88ee0b9ee4ef2e90073601f013db0cce488fcc4c1a380317b921968cfe784eb322466e8bf47043b81e620d54a146c0df55f8599da599514f7d85295770ebc83177d9bcd5c1c8832b47096c87cdeb82bdba6af752b15636cf5e704a535dcb50cef6243f67f6d04309e0dc7179d2da852c4d3e833f1b9cf267b7b9f49b53dd0769a82524fc729cfe757afdfb2570d74d7bda2eb777bb4beee662f68c039ba444240e7a195cfa588d094217c502402e48bdda39ce403d78c17bf3533e4536e76b6cd4c1f9d65dd47e1d9bea2d3299d87a7d958dd0e4f5734e4d62bb376ea9fb42f2fb80185e2d440561d99716df59bcdbc92339c44c5c93c1c6fd1fb648a1c918fca28f2d58b0ff6820ee38d3a260f56707519ed341613945d4be89b326a52afa9a17abc66cdd99a7af55bd1b88248183b8ea9d0ec8aceb7443bad03dddde759b66900c7861b7bcb2232841dcf5cc340cc8478c5bbe3fceb25b4dbfdf10fe28215c72d11d879b2fde166c1811c9bcfc474aa32e1c67c32ce1df9a840dc888bd3b751826b58961185964e33f030523aff9c630e7b3f9aedefa075c47e3e826e3bf7e393d99294fb14b7848e1186ac15eb10186d0bfec058d207a4ab390642e9b28833c5ff7395aef43955285d2160371455de5780661bc9ac363d4ba4c069118768fdd175c7e555197621e86a7a63f1d09ed087811cacacb44830555c8cdbc111c80c221ba1d76ab52bf16bcb069acc158c956169968851e53682e636afa0baf56cfe2c52cb9359bba49ae0a638004631cb79de10676f00b49b73ffe50a78df426c8d5e7b55b61c63bad6667164aa4db1e1064113192144e49500849bd16bc10cf49c99e3a37136b18341d7d2f8480f371302c2c49f81386546af46b011d55e00211ac463e1b2288d534496c29d5e89dcf4da4776ed7b7d8ab0623e7fad7de0a071c5b58ec177eb5fe75a477e0d7ddffed42cf9d62d7474ad3e90f24efd2daf3bdce42440357ac8c48fdeaad0442f42cdefbab01947689db8327d1f27c8eee330da4ab103cffd9558d6e294f3f3bc305ebc6aaecac9decd4f40e1d4d00ae49b211634a806a15518a5cc8aefd9b505395a3137b58ff0140664789bd8e39f25e95f57e3945ef4db17ce750a762644b85a787d81404b7cab44b4225cb892143609106e2a0cebe9048b941f5f5f3fe84c4b803510b0fffbef25fff878f427ef219791c075f68e5bb7d7e552bf65f3bb457483b1113eda1f36b41bf401cae18f56981f0bfccd2231933a6d66fced53cae4d27d3cda1d3d599fbbfc4dc2df9a3f49b8b21c4d92460668ab39ba0fc0c7fc32e5ff030000ffff010000ffffc637d7d4aa720000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec5d7973dbb892ff3f9f02e19bcd516b4ace31d9b78eacaa8c9dbc71cde4a838d9d9d9a9d92d8884448c498201403b7a8edf67df6e80f721d1b2ec788e3f129304d06874371abfc6a5c9ddc3b7071f7e7ef792043a0aa77726f88784345eec3b2c7648bc706992ec3b6a197b3ae0f1c27cf244aca5084326f79de33ce540cbd0215e4895da77305328e889832419f5a7770899444c53e205542aa6f79d54cfddbf3b6542a075e2b24f293fdd77fedbfdf8c23d105142359f850cc8428d2c8652472ff799bf609572318dd8be73cad95922a4ae643de3be0ef67d76ca3de69a971dc263ae390d5de5d190ed3f1aedb608f94c7992279a8bb842ab958da63a10b29523e4f109912c048941b2f6524db8879402c9e6fbce9c9ee2eb2801414eef6001cd75c8a68510c917727e0e4fea8df0d91ba8e9c1c38b8bc9d8e62a2ab0c4664268a5254dc69e52e3e26d14f178045f9c8c0fbd0c990a18d39643f34ef432814668f65963619342c84cf84b726e1e0949a8ef0343ee4c682da23df21fbbc9e7e759da1c1aedce69c4c3e51e71be67e129d3dca3e40d4b99b3438a0f3be4850469ef104563e52a26f9dc92b8b863fea4e1bf07df163546542e78ec6a91ec9147a36f5954cb3b4266dd48c44225d46345a91a2faf591c8a1df25ac4d483bf072256020c7287380722959c4960f10c382cc834aaa0606c68dd3e8b15f3a7da98ae9653349d762acaab3f750e0ae94f2d28fb2b2977a61694fd420a33217d26adec621137da158a856888798fec3eaf6bbaf2c59071bf2d159e08c5b147eca14d419f3c6d56c0957663e1ce52700abaa8ca7c3606e7a2c159d61a05a161611ac545199fab24a4a04b1e83ad3377160aef24e7034cdbf664b0c7dc3e0ac3917c1168309d326146bd93851469ec632d4202fb8bd983c74f9eed90c74f77f1bf470f9fd72528a9cf53b5479e541a9fcbe751f2993c2dbfe7827c0c9f1fe79f2f9aed02338b473e05c7d1b0f390cd81dbddd2d06bcd7bb45b7e36964f43be40f963239faf97552ee0dc11b7e58bba207779845e93c6baa327101d14c5ce02ae996bfacc5e2ccec0cfd49cc119b3c27fbabbdb49c86ff915dbfcc7e0553a98003f35367603c3c7d88e1f7726a65318a779d775c90791807e25715dfb2da6a7c5e0434f31c5fec13e913ffa6c4ed310c60818bc98c9c717d4787aeb00273e2f88a063a7205499a5a1eb0455d6eb706792c6be339df06891a760677388921efa5e17dfdc478fff6e5c3eb14392f3e4310c084662f6793c25c5083051110dc39c58c07de8f5ee6770d1f5faad374c3583dabf80b02069da39741872d32c47de9234acb423974ee5d15859d17033ece4057c29125f9cc5955448a7d998f437a7990fe4bf58e0108e7d207ba95279e9737d2f9ea9e4f96456c89e4a1cae26e319fca3b58a4ace8b0a2216a7356e0cbfd382270b5942ee9dc0b0edfbef59221e3c04ea55712ec26512e0d04c8a2737f051b35670f758041cbef07d82c5c1190ab944d62663a86970d5a899415543f3cf981541a37a24d15b71211a7eca7db4dc4bb0c7400fc74c6b30413588474f2c1afce5c52f29183e5c2e9fa407599bd506e28c1c1d5e8b5454906a34b241dc89f9bcc59a2d7e498948a634957aa0a9cc217bd0a8f8bda5d055ef649c86959e5d492d5326631096818b63f008d6c1f6f8469b1f3df22b2e9506d77ab643441c2e0920e0b398f0398999c794a272f99c647c91332a6384bb99f7cec883043888e22ed09ff3c5518c4eb1702840b874c535664237f2c1c756fd55251d84c24262fe77b36aebbeab99d7c501c7e49a044fea2906873bd3bc156f18f3990f23d4936921b17eb2387e35fd5432fd103062db9b4a331691802a32630ca0033d653e99410c110b4da807b88b82c31f95830589521479c68e16452618ba19c8fdac4e7a341927755358cb3462cdca189865039e34706aa308fb52e869a66302ff5c15993fd9984b128086d9b8723d966ed968305ab593905139e79f9d0e5dd53fd45e2b2fd963cbe2d9220d016f808136ecb966b9393d2c580e2206239307085210113d2c29745af9b35546ee22d64d1cc27d146c5603676ab5b9675de3fc1c8b1c60c2037c1a1d1d027e30ba825746b5a5095093e0df1f816dd45aafb81b5da9960f72f6f4ac4636832c6ac001e410d244e5782201a480d1f7df6aedcdc1087ecc1a06cd81d81a6d208656b5eb69c0bb75788064540fb9649ed1e3176222fe7754071717ebc8979d8154109ea579aca94eab3aa863b7aad5d29658d115d555d2b4f54c4bb98d748aa7ae9a5ce4a4907dabda21beae99d186b5d0a31388d221a2ec568a8d1faa4548231ecede95963c4134dc4105e9d8e8a12b0d53655f122606eb7d93a64d3054e9e2884d80c88a1afc1aaccfd077a1193303e4f7323feee7feea0d9b8b10c36291b0b8d1c05726e52a2d2b3acf951a98a386089061f84b26b25f473c3e8590b9cf1e06b73f430cae82e8bb218097528a4ddbdfcdecd754b4272208a49a2107228d408a98ffd300882b68bbc3ad7dada62e42316b0611ff806f34ac4577db50ecc2907dc543a6c0bfd2f08c2ed59b349a31797141e6f87987f414fa6ea94da1198f297691efbe9ec0021135e5f5a3f0ae415c2152bda4b44c995b242c2f14a9ef62d4170ada9c41780b605ecc0d80df8ec46208412e29302c728be48573960d29bda60a828eab5a576ffe1c8c65038711cc7b00aa6f216a75a63f33d587b87a08dc6d507823d611f87ad24ec19f33ef84350df368110bc9c83b2623ae14b87a75fd32b77562956a73b1d788dc66c9ab0062159786ad2116bffbe427ae830d5d82a1acccbc268a64e3b11552fa50322421caee0a425af185f9dc1ded3838dfd53d4f90481e812b727aa626cbd60d982900b0eaf1b009d7808a9d0febb290ae38698369826a908fb39a95f0de08606bf17d0cc48705f6c5a2472592c7d207f30506f3bfe44b060f1efe7a7bc279dbbc3c8ec737085433ae47c86d3d9cbf1c822196945923c9689a3e73c5707a1d976ba26a50c65f81753bb06ecdf7bd784d3e6a1e5e2d22514b4018d108fedc0e10a4a93a518d961ebcfbb8bd967a490a63a407bdab0114e13586c84cd270efd1c5c5bfdd52dc7c987d26efa9661b4a022a899987a254bfdcd742d3f03e46deb3046d206260e6dec505be3de8c97b141bd8fc015fab66f3f06b0b2d4d3a44f631b9168189540f9718843bdb17598eff32cb06965fc4b10060cbdefe40eeee9314fcd79cc7bd2e6bb07071374b206473de27af8d1c3379bae10cd85a8c9baf59e2c6115350a51eaea239ab5aef4cdf9a8d20438174ab129fc60b268b3aeef654329f0fa9e56b7ad3e66cec7f31a936f7a1a7b6f41f11571be49783a0af0ead07ad53196ecd3a5509defad0add00193d846759b16ab06a0db4d17a99a3b473a6874a2df4d57ac904236b55b85d2d7b462d527aabf16ac6a894366dd78dc9c757be1fbd0b8cde67dac4e9042cd0cfe888b193d16ffa780cdf58e37083d378bfc994174531643b074b3ccb540ea5b86b7b0cd40e1cafdeb2fe0b58d39cdf2d1ce6b8eeb1b9df093590a57ddbbf918a6d9ed42a390c50b1d9029d9bd8ddbfade08cd3d76a5ed7c55180a0d47085a693faad96cc73e3f87afa30f3c62d083011bb23de7fbbd28da83f8eee2622fdfb40d486d2e398bfd7069212c1632a2363de2fab7f255405ff7aebeaa519bfd75d61086ed966de28fb73fdcec26be9a4d175b5a8b0305f8f93b73f869d839837ca363f60a4c323f3b3d5585cc77da86de3a68d0b73dbfbe23bfe27ab22c06d465fe068fd3ed8da189ca13a9546c541ce11bc54c8f9de9719ae0a90b3226af844ca3f656e1415528a863c17590ce4600bac61e0da3605c5435960c14a670a5e247b072a5c97bfb61c3da5634c803fa0b2197635f782982bfec60c761f5f57a1ac9954ab189dfa55d7bdfb75003280b9aec3172d0b1fb7ff5ae6db3100531a19027d6139148f8001c72732e222b9bc7f4dfa2ffdbac73eab30ebb3589aecf6928169d1edc66c80e48f678719b073d33f43c1a32b047f37f3e1355ebe0c1d37ab1ae307caddb619f213132d650dfd45523735020303bb6d5fc4cf0b4c7cd74b5ad354c4c927a55e5666ec5c00fe22eee192308e87708a80b273018e18a50924801902522676028640916418e40b61254474ac438aa117f0fc07209b4ef052c0c797166cb729e0cf69635b76937309b5dd7660b7aa73dc922c36db0261ecfc535d85273477a43f4b9046ec478c0424a998fc83be3664920427fdbbacf0fb5f4683e3f32731bf49e4f9a6f5ff5d5b33e758de4d2c1e3eb21d3ec46b45f9e1981ea8df3186d4bdd47873d8ae6fea70d860a4bcc0db7a3ed6bd06ce38c59adb0d9d27104504ef339f7ec719d7b914f55f0bc3aad5a6ea9a8cfac5e59ff952c67d0a909fe8790bc7136debce25a6f0bee9f9f474bbb292148e3139c3b5d1943e0b1d67c7b35942bb46d69dbf3c60432b9805ca2594c2140b5275f3fc971bb2a677c89c677442b838e1d159189997207b488fbd932a2830e1945e2b4b9d9f5201408599bc1c9657b92b11e8cfd7b51583e3170ebba15ee800fc4d9be731759048ff3f23344b4add13def71e549d5aac137480da284331c1da436e83b7321a3ece0373e3ad9451ed8695f1a9dac581fc202f9ee2b13f19aafe7f7c1edba0655dfc7f3f439a1516ce6ea46df64dbfac9bd7b5da93e977ad95ee6998474c640e7425ae6a0db4daddf3904d88f69ad123c4ef09060b668db926bd950ecc2f93a4aa53b9be66597ba347c8953b92ac4b4dd6c26060f904a5ccc42c6b2a949bc6fe453ca712fa369b58b95701f7a9261af7309269f22eab184153ece4cadb678a87a9bce89bc4992d30650945807d6b5ec53dd67daa13aabd62f5fbad49a48d30ae0108f76c6567388ea8dcf2406ce7b401d40fe1cafa6c039223cade918539f92ec38333830dbb1854d362b9986dc881ca304202280c238f6e0231015e6d21a70170fb8d913eb3f1cb51a56695a4f7f9efe14008cb0973440cc816748b1d21d72c25882bc461caad501d564c2a2290e7526c3640c6ff63c2ab40cca831dd458571c24a18518f5af0ef67c5fa30cd3014785f1ade86c75958012f05c2d703b0b697cd2cfd7a0fa8d49bc3126bf9e05630ac06bce8a2f9832877c43214e6cf71991238d470ad3d0370225df3e367727510fad08170f413f1eae441abde1a902409b9066ed22369bbbd48e0d1655cb6066cc14ca4ca6a7ed8d39c6ee19e56e37b9d2ab51dc8c894869b5434b42e03a30c7ccf69def4594efb8c97c1852e9f260835c16b5fb41bb5d53a79338b6c7d963a561884471674e39efbf5e982aab1a5c1b6c1eb5de96eca85da4c5e9a617f9e325a4e82f416cdc3362016c844b207e973327fbfbc4223e147559e9a6f22e783dd6f292727f69dc26aee852a258023d4043cfe9b80ca51c1a78b287539bf976df827d9c4f595930134f5e109c76c2a4010e34d502678d3c622620c10a976803a8f88cfc008d4fc648eb064070b1f654b9c9829eb2ec9e8dbaf22b9eea9be2d0e4e567ef8f817ed7fcfd6d03ed2547dde0039d773e281eb370eeace1dccc53dadb0df0007f55e4d00b20fe1f7cb9090cac69730ff0a12171f5d0038f4fac0f3d30d71f21f4a81e1cdb4a00d247707b61081e6d591b8654d74abbd2bbd64cbbf20d09674a8646f8d808673a527bc21953776500b3d9f10e95daf9f8ce11cc94cd829b424a3828d5c7b46c8547351c5b4bbdf99d073d91cf9a71ecbd3d3f590973d2987f4a714718f42dc89e50845ff1be33fedf5fa8fb4ffa3fbbee7fbaff37faf5fcd1ceb3a717df8c7bc73dd3cc618189c9da3c48d75044119c74a495c1c931de560122b17359e0c2e676b1811437692c47e47506e7f1bb020d20a2b7b79359ac633632f602e721cc5af06c2569dc8fc1c7b26a1c455061736da1ba6aacd067c95d8c0c8d18867392d9cc651929c22c7be948558d0f9e3d2de30483784200270fbb43859d3c4e30a1016a19ff4d7002740aa63b199ba71abd385cae68770b03d98fdd5b6aaee691f0a695553ec9a65fc22b61819a5fc20f97f14c8640dd37fd6b7c587aa7dcffd87c1b7aa0e2d28cd211dd805fb1c2ecf32c36b5f42df88ee0b9ee4ef2e90073601f013db0cce488fcc4c1a380317b921968cfe784eb322466e8bf47043b81e620d54a146c0df55f8599da599514f7d85295770ebc83177d9bcd5c1c8832b47096c87cdeb82bdba6af752b15636cf5e704a535dcb50cef6243f67f6d04309e0dc7179d2da852c4d3e833f1b9cf267b7b9f49b53dd0769a82524fc729cfe757afdfb2570d74d7bda2eb777bb4beee662f68c039ba444240e7a195cfa588d094217c502402e48bdda39ce403d78c17bf3533e4536e76b6cd4c1f9d65dd47e1d9bea2d3299d87a7d958dd0e4f5734e4d62bb376ea9fb42f2fb80185e2d440561d99716df59bcdbc92339c44c5c93c1c6fd1fb648a1c918fca28f2d58b0ff6820ee38d3a260f56707519ed341613945d4be89b326a52afa9a17abc66cdd99a7af55bd1b88248183b8ea9d0ec8aceb7443bad03dddde759b66900c7861b7bcb2232841dcf5cc340cc8478c5bbe3fceb25b4dbfdf10fe28215c72d11d879b2fde166c18198de547eb931678c93463e6a0e77e0e2bc6d94e0e2956544a189d30c358c94ce3fe760c35e8c663b3aa81b419f8f68db4efaf864b624e506c52dc162c41f6be539043fdb823f3096f421e86a8e8118ba2ce24cf1ff5ca52b9d4d15435708d89d4495f71568d98630ab6dce1229005ac4214c7f74dd017955865dd0b99ade5835b447f36104072b2b2d124c1557e17670e831a3c746b0b55aed4ae0dab28126730563653c9a256238b98d68b9cd2ba86e3d9b3f8bd4f264162da926b81b0e1051cc729e3704d81b20ece6a47fb9f4ddb7025ba3d75e8e2d0797ae45591c926a736bb833d08444880d7925f2e066d85a30833967e6dc689ccde860b4b5343ed2c35d84002df1f71f4e99d1ab116c44b517406c068158b82c4ae3dc90a570a7572237bde891ddf75e9f1bac98cf5f8b1e38685c719163f0a5fad7b9c891df3fdfb731354bbe752b1c5dcb0ea4bc4c7fcb0b0e3719fd57c3864cfce8ad0a4df442d3fc920b9b7184d6894bd2f77166ec3e0ea3ad143bf0dc5f09622d4e393fcf0be38dabe68e9cecddfcf613ce09ad80bc196241836a105a8551caacf89edd5790a3157345fb088f5f4086b7893df75992fe75354ee945bf7d715ca760674284ab85d71701b4c4b74a442be2842b49619300e1a6e2af9e4eb048f9f1f5f583ceb404580301fbbfff5ef28f8f477ff21e7219095c67efb8759b5c2ef52336bf5b4437181be1a3fd4543bb331fa01cfe5a85f995c0df2c1233a9d366c6df3ea54c2eddc7a3ddd193f5b9cb1f23fcadf95b842bcbd124696480b69a33fb007ccc4f52fe3f000000ffff010000ffff84419eb5a3720000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["index.html"] = bs diff --git a/gui/app.js b/gui/app.js index 8029f30b..1574e196 100644 --- a/gui/app.js +++ b/gui/app.js @@ -1,7 +1,7 @@ /*jslint browser: true, continue: true, plusplus: true */ /*global $: false, angular: false */ -'use strict'; +'use-strict'; var syncthing = angular.module('syncthing', []); var urlbase = 'rest'; @@ -16,6 +16,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { $scope.myID = ''; $scope.nodes = []; $scope.configInSync = true; + $scope.protocolChanged = false; $scope.errors = []; $scope.seenError = ''; $scope.model = {}; @@ -122,7 +123,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { } return state; - } + }; $scope.repoClass = function (repo) { if (typeof $scope.model[repo] === 'undefined') { @@ -141,7 +142,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { return 'primary'; } return 'info'; - } + }; $scope.syncPercentage = function (repo) { if (typeof $scope.model[repo] === 'undefined') { @@ -255,13 +256,19 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { $scope.config.workingOptions = angular.copy($scope.config.Options); $scope.config.workingGUI = angular.copy($scope.config.GUI); $('#settings').modal({backdrop: 'static', keyboard: true}); - } + }; $scope.saveSettings = function () { // Make sure something changed var changed = ! angular.equals($scope.config.Options, $scope.config.workingOptions) || ! angular.equals($scope.config.GUI, $scope.config.workingGUI); if(changed){ + // see if protocol will need to be changed on restart + if($scope.config.GUI.UseTLS !== $scope.config.workingGUI.UseTLS){ + $scope.protocolChanged = true; + } + + // Apply new settings locally $scope.config.Options = angular.copy($scope.config.workingOptions); $scope.config.GUI = angular.copy($scope.config.workingGUI); @@ -278,6 +285,19 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { $('#restarting').modal({backdrop: 'static', keyboard: false}); $http.post(urlbase + '/restart'); $scope.configInSync = true; + + // Switch webpage protocol if needed + if($scope.protocolChanged){ + var protocol = 'http'; + + if($scope.config.GUI.UseTLS){ + protocol = 'https'; + } + + setTimeout(function(){ + window.location.protocol = protocol; + }, 1000); + } }; $scope.shutdown = function () { @@ -402,7 +422,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { $scope.repoList = function () { return repoList($scope.repos); - } + }; $scope.editRepo = function (nodeCfg) { $scope.currentRepo = angular.copy(nodeCfg); @@ -544,7 +564,7 @@ function repoMap(l) { function repoList(m) { var l = []; for (var id in m) { - l.push(m[id]) + l.push(m[id]); } l.sort(repoCompare); return l; @@ -633,7 +653,7 @@ syncthing.filter('chunkID', function () { if (!parts) return ""; return parts.join('-'); - } + }; }); syncthing.filter('shortPath', function () { @@ -645,13 +665,13 @@ syncthing.filter('shortPath', function () { return input; } return ".../" + parts.slice(parts.length-2).join("/"); - } + }; }); syncthing.filter('clean', function () { return function (input) { return encodeURIComponent(input).replace(/%/g, ''); - } + }; }); syncthing.directive('optionEditor', function () {