Implement "advanced configuration" dialog (fixes #2010)

This commit is contained in:
Jakob Borg committed 2015-07-04 13:47:43 +02:00
1 parent e9e13474c9
commit dec6540967
5 files changed
+133 -17

No files matched your search

+7
View File
@@ -10,6 +10,8 @@
"Add new folder?": "Add new folder?",
"Address": "Address",
"Addresses": "Addresses",
"Advanced": "Advanced",
"Advanced Configuration": "Advanced Configuration",
"All Data": "All Data",
"Allow Anonymous Usage Reporting?": "Allow Anonymous Usage Reporting?",
"Alphabetic": "Alphabetic",
@@ -17,6 +19,7 @@
"Anonymous Usage Reporting": "Anonymous Usage Reporting",
"Any devices configured on an introducer device will be added to this device as well.": "Any devices configured on an introducer device will be added to this device as well.",
"Automatic upgrades": "Automatic upgrades",
"Be careful!": "Be careful!",
"Bugs": "Bugs",
"CPU Utilization": "CPU Utilization",
"Changelog": "Changelog",
@@ -57,10 +60,12 @@
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Files are moved to .stversions folder when replaced or deleted by Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.",
"Folder": "Folder",
"Folder ID": "Folder ID",
"Folder Master": "Folder Master",
"Folder Path": "Folder Path",
"Folders": "Folders",
"GUI": "GUI",
"GUI Authentication Password": "GUI Authentication Password",
"GUI Authentication User": "GUI Authentication User",
"GUI Listen Addresses": "GUI Listen Addresses",
@@ -73,6 +78,7 @@
"Ignore Patterns": "Ignore Patterns",
"Ignore Permissions": "Ignore Permissions",
"Incoming Rate Limit (KiB/s)": "Incoming Rate Limit (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Incorrect configuration may damage your folder contents and render Syncthing inoperable.",
"Introducer": "Introducer",
"Inversion of the given condition (i.e. do not exclude)": "Inversion of the given condition (i.e. do not exclude)",
"Keep Versions": "Keep Versions",
@@ -98,6 +104,7 @@
"OK": "OK",
"Off": "Off",
"Oldest First": "Oldest First",
"Options": "Options",
"Out of Sync": "Out of Sync",
"Out of Sync Items": "Out of Sync Items",
"Outgoing Rate Limit (KiB/s)": "Outgoing Rate Limit (KiB/s)",
+90 -5
View File
@@ -63,6 +63,8 @@
</a>
</li>
<li><a href="" ng-click="about()"><span class="glyphicon glyphicon-heart-empty"></span>&nbsp;<span translate>About</span></a></li>
<li class="divider"></li>
<li><a href="" ng-click="advanced()"><span class="glyphicon glyphicon-cog"></span>&nbsp;<span translate>Advanced</span></a></li>
</ul>
</li>
</ul>
@@ -221,7 +223,7 @@
<td class="text-right">{{model[folder.id].localFiles | alwaysNumber}} <span translate>items</span>, ~{{model[folder.id].localBytes | binary}}B</td>
</tr>
<tr ng-if="model[folder.id].needFiles > 0">
<th><span class="glyphicon glyphicon-cloud-download"></span>&nbsp;<span translate>Out Of Sync</span></th>
<th><span class="glyphicon glyphicon-cloud-download"></span>&nbsp;<span translate>Out of Sync</span></th>
<td class="text-right">
<a ng-click="showNeed(folder.id)" href="">{{model[folder.id].needFiles | alwaysNumber}} <span translate>items</span>, ~{{model[folder.id].needBytes | binary}}B</a>
</td>
@@ -573,7 +575,7 @@
</div>
<div class="form-group">
<label translate for="addresses">Addresses</label>
<input ng-disabled="currentDevice.deviceID == myID" id="addresses" class="form-control" type="text" ng-model="currentDevice.addressesStr"></input>
<input ng-disabled="currentDevice.deviceID == myID" id="addresses" class="form-control" type="text" ng-model="currentDevice._addressesStr"></input>
<p translate class="help-block">Enter comma separated "ip:port" addresses or "dynamic" to perform automatic discovery of the address.</p>
</div>
<div ng-if="!editingSelf" class="form-group">
@@ -837,7 +839,7 @@
</div>
<div class="form-group">
<label translate for="ListenAddressStr">Sync Protocol Listen Addresses</label>
<input id="ListenAddressStr" class="form-control" type="text" ng-model="tmpOptions.listenAddressStr">
<input id="ListenAddressStr" class="form-control" type="text" ng-model="tmpOptions._listenAddressStr">
</div>
<div class="form-group">
<label translate for="MaxRecvKbps">Incoming Rate Limit (KiB/s)</label>
@@ -881,7 +883,7 @@
</div>
<div class="form-group">
<label translate for="GlobalAnnServersStr">Global Discovery Server</label>
<input ng-disabled="!tmpOptions.globalAnnounceEnabled" id="GlobalAnnServersStr" class="form-control" type="text" ng-model="tmpOptions.globalAnnounceServersStr">
<input ng-disabled="!tmpOptions.globalAnnounceEnabled" id="GlobalAnnServersStr" class="form-control" type="text" ng-model="tmpOptions._globalAnnounceServersStr">
</div>
</div>
@@ -1149,12 +1151,95 @@
</ul>
</modal>
<!-- Advanced modal -->
<div id="advanced" class="modal fade" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header alert alert-danger">
<h4 translate class="modal-title">Advanced Configuration</h4>
</div>
<div class="modal-body">
<p class="text-danger">
<b translate>Be careful!</b>
<span translate>Incorrect configuration may damage your folder contents and render Syncthing inoperable.</span>
</p>
<div class="panel-group" id="advancedAccordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="guiHeading" data-toggle="collapse" data-parent="#advancedAccordion" href="#guiConfig" aria-expanded="true" aria-controls="guiConfig" style="cursor: pointer">
<h4 class="panel-title" translate>GUI</h4>
</div>
<div id="guiConfig" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="guiHeading">
<div class="panel-body">
<form class="form-horizontal" role="form">
<div ng-repeat="(key, value) in config.gui" ng-init="type = inputTypeFor(key, value)" ng-if="type != 'skip'" class="form-group">
<label for="guiInput{{$index}}" class="col-sm-4 control-label">{{key}}</label>
<div class="col-sm-8">
<input id="guiInput{{$index}}" class="form-control" type="{{type}}" ng-model="config.gui[key]" />
</div>
</div>
</form>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="optionsHeading" data-toggle="collapse" data-parent="#advancedAccordion" href="#optionsConfig" aria-expanded="true" aria-controls="optionsConfig" style="cursor: pointer">
<h4 class="panel-title" translate>Options</h4>
</div>
<div id="optionsConfig" class="panel-collapse collapse" role="tabpanel" aria-labelledby="optionsHeading">
<div class="panel-body">
<form class="form-horizontal" role="form">
<div ng-repeat="(key, value) in config.options" ng-if="inputTypeFor(key, value) != 'skip'" class="form-group">
<label for="optionsInput{{$index}}" class="col-sm-4 control-label">{{key}}</label>
<div class="col-sm-8">
<input id="optionsInput{{$index}}" class="form-control" type="{{inputTypeFor(key, value)}}" ng-model="config.options[key]" />
</div>
</div>
</form>
</div>
</div>
</div>
<div class="panel panel-default" ng-repeat="(folder, _) in folders">
<div class="panel-heading" role="tab" id="folder{{folder}}Heading" data-toggle="collapse" data-parent="#advancedAccordion" href="#folder{{folder}}Config" aria-expanded="true" aria-controls="folder{{folder}}Config" style="cursor: pointer">
<h4 class="panel-title">
<span translate>Folder</span> "{{folder}}"
</h4>
</div>
<div id="folder{{folder}}Config" class="panel-collapse collapse" role="tabpanel" aria-labelledby="folder{{folder}}Heading">
<div class="panel-body">
<form class="form-horizontal" role="form">
<div ng-repeat="(key, value) in folders[folder]" ng-if="inputTypeFor(key, value) != 'skip'" class="form-group">
<label for="foldre{{folder}}Input{{$index}}" class="col-sm-4 control-label">{{key}}</label>
<div class="col-sm-8">
<input id="folder{{folder}}Input{{$index}}" class="form-control" type="{{inputTypeFor(key, value)}}" ng-model="folders[folder][key]" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary btn-sm" ng-click="saveAdvanced()"><span class="glyphicon glyphicon-ok"></span>&nbsp;<span translate>Save</span></button>
<button type="button" class="btn btn-default btn-sm" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span>&nbsp;<span translate>Close</span></button>
</div>
</div>
</div>
</div>
</div>
<!-- vendor scripts -->
<script src="vendor/jquery/jquery-2.0.3.min.js"></script>
<script src="vendor/angular/angular.min.js"></script>
<script src="vendor/angular/angular-translate.min.js"></script>
<script src="vendor/angular/angular-translate-loader.min.js"></script>
<script src="vendor/angular/angular-dirPagination.js"></script>
<script src="vendor/jquery/jquery-2.0.3.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- / vendor scripts -->
-1
View File
@@ -11,7 +11,6 @@
var syncthing = angular.module('syncthing', [
'angularUtils.directives.dirPagination',
'pascalprecht.translate',
'syncthing.core'
]);
@@ -314,8 +314,8 @@ angular.module('syncthing.core')
var hasConfig = !isEmptyObject($scope.config);
$scope.config = config;
$scope.config.options.listenAddressStr = $scope.config.options.listenAddress.join(', ');
$scope.config.options.globalAnnounceServersStr = $scope.config.options.globalAnnounceServers.join(', ');
$scope.config.options._listenAddressStr = $scope.config.options.listenAddress.join(', ');
$scope.config.options._globalAnnounceServersStr = $scope.config.options.globalAnnounceServers.join(', ');
$scope.devices = $scope.config.devices;
$scope.devices.forEach(function (deviceCfg) {
@@ -746,7 +746,7 @@ angular.module('syncthing.core')
$scope.config.gui = angular.copy($scope.tmpGUI);
['listenAddress', 'globalAnnounceServers'].forEach(function (key) {
$scope.config.options[key] = $scope.config.options[key + "Str"].split(/[ ,]+/).map(function (x) {
$scope.config.options[key] = $scope.config.options["_" + key + "Str"].split(/[ ,]+/).map(function (x) {
return x.trim();
});
});
@@ -757,6 +757,11 @@ angular.module('syncthing.core')
$('#settings').modal("hide");
};
$scope.saveAdvanced = function () {
$scope.saveConfig();
$('#advanced').modal("hide");
};
$scope.restart = function () {
restarting = true;
$('#restarting').modal();
@@ -807,7 +812,7 @@ angular.module('syncthing.core')
$scope.currentDevice = $.extend({}, deviceCfg);
$scope.editingExisting = true;
$scope.editingSelf = (deviceCfg.deviceID == $scope.myID);
$scope.currentDevice.addressesStr = deviceCfg.addresses.join(', ');
$scope.currentDevice._addressesStr = deviceCfg.addresses.join(', ');
if (!$scope.editingSelf) {
$scope.currentDevice.selectedFolders = {};
$scope.deviceFolders($scope.currentDevice).forEach(function (folder) {
@@ -829,7 +834,7 @@ angular.module('syncthing.core')
})
.then(function () {
$scope.currentDevice = {
addressesStr: 'dynamic',
_addressesStr: 'dynamic',
compression: 'metadata',
introducer: false,
selectedFolders: {}
@@ -874,7 +879,7 @@ angular.module('syncthing.core')
$scope.addNewDeviceID = function (device) {
var deviceCfg = {
deviceID: device,
addressesStr: 'dynamic',
_addressesStr: 'dynamic',
compression: 'metadata',
introducer: false,
selectedFolders: {}
@@ -885,7 +890,7 @@ angular.module('syncthing.core')
$scope.saveDeviceConfig = function (deviceCfg) {
var done, i;
deviceCfg.addresses = deviceCfg.addressesStr.split(',').map(function (x) {
deviceCfg.addresses = deviceCfg._addressesStr.split(',').map(function (x) {
return x.trim();
});
@@ -1311,6 +1316,10 @@ angular.module('syncthing.core')
$('#about').modal('show');
};
$scope.advanced = function () {
$('#advanced').modal('show');
};
$scope.showReportPreview = function () {
$scope.reportPreview = true;
};
@@ -1361,6 +1370,22 @@ angular.module('syncthing.core')
return $scope.version.version + ', ' + os + ' (' + arch + ')';
};
$scope.inputTypeFor = function (key, value) {
if (key.substr(0, 1) === '_') {
return 'skip';
}
if (typeof value === 'number') {
return 'number';
}
if (typeof value === 'boolean') {
return 'checkbox';
}
if (typeof value === 'object') {
return 'skip';
}
return 'text';
};
// pseudo main. called on all definitions assigned
initController();
});
+4 -4
View File
@@ -5,7 +5,7 @@ import (
)
const (
AssetsBuildDate = "Thu, 02 Jul 2015 15:13:12 GMT"
AssetsBuildDate = "Sat, 04 Jul 2015 11:45:32 GMT"
)
func Assets() map[string][]byte {
@@ -49,10 +49,10 @@ func Assets() map[string][]byte {
assets["assets/lang/lang-zh-TW.json"], _ = base64.StdEncoding.DecodeString("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 truncated
assets["assets/lang/prettyprint.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/1ySX27iMBDG3/cUVp6CtLnASiutwlLaUlEUQvtsiEncOONobIOg6nF6kl6sM05UaJ/w7/vmPzlIFEZCvULl/alHDV78Fa/Jtk7+JHkwtUQtIfmd7CQJU+mlGfHfQRoFO32li/Rp1GDCMY6ts9o1BJUimCvsYroyTKhUywAEM6iNdk3EbJ5fFJFuQHtViYWGurIdV1Zced1LGDNcNltfFJHSQ8cR9prkGw1j4B4ZkUZkagLRbYCvHbUn4Y5WGfCFV7uXVFQ5RdzabFGQtLCoeNn4y10M5z1o3wTqH1NhS8rS4lHVJIjctt3Hu2GDF/8ffBwA4FvU8gQWHV+k56iVHQ/S+ywvooA+1IGGEWmO8qzNZHBX5Q93eMvoo82KR/IL28XpRDq+osknKIJzw9juwFc8qmpo7PlcZcB2wNASblqk2w7h5yabLvk/bjTEvvyIdckpn6+dUuojfxVvvz4BAAD//wEAAP//fTzqenICAAA=")
assets["assets/lang/valid-langs.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/yTMvQrCMBTF8d2nCJm9jyBIRRwUlVhwEIe0jW1sSEuSZvDpvSddfv98wMk6iKyd7S7a91HsxEs2vdzKVhf2/Gd8a8stMp1hjAO+QKcKjQU6PrgfCwIzLIxNzBcL40RnxXV48Q3AksfSjNOcqFJr7zU3TKRuKHZiZhJml5H5DXS4rq2f8r35AwAA//8BAAD//6i65BLKAAAA")
assets["index.html"], _ = base64.StdEncoding.DecodeString("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 truncated
assets["index.html"], _ = base64.StdEncoding.DecodeString("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 truncated
assets["modal.html"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/3yTUW+bMBDH3/cpbjwsrVRCW/UpSzptkSZN6qRK7csejX2AV2Mj+0jHEN99h2EsrdI9JDbmfnf3/5/ZKn0AaUQIu6R2ShgohMIESOTaKvy1S9KrBGyZCiKfKkEizYV8Ut41u6TvGXUB4ROQbxE2sAokSMsVDMMr6gm73AmvIvXFOYPCnkX6fAy+fQewfZ+mvGQZ7F3TeV1WBGf7c7i+vLqBxwrhobOSKm1L+NxS5XxYx/CJeax0gAfXeonMK4SvztfAZ6HNf6IkIAfESQh9HcAV8eG7+62NEXDf5kbLKdGdlmgDXsBhDdfryzV8K0CA5JYW6v4OnkUA6wiUDuR13hIqeNZUcQDXLLTBiyndD9eCFBZcTkLzYhEEQUXUbLKsnuqvnS8zzppxvWwUlabRkNfDSZUWxpXR2vm8X01vTLnagBG+xMnMU7R0ltDS/P5URIU8fQ/CoKfpP+37caZtGIaFY7K6eQmSJoNHARwSGlbNjepil2gunfwlStM11XgCy46rjMtYY5uN4HGmvo/Zh+Ff+ay6WURkrOJtRblTXfSLvLBBmlbh2+TcbbyWycs8hXN8c44t4JkTa6CuwV0yPSxMThb4lyosRGso7kOdQPwU+MrUesnMiqNT/zHHY+0OuFjzAevQfJyoqMoIwtv92PQcsc2mfk4oXbbzZl7+AAAA//8BAAD//53P618IBAAA")
assets["scripts/syncthing/app.js"], _ = base64.StdEncoding.DecodeString("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")
assets["scripts/syncthing/core/controllers/syncthingController.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/9x9e3fbNvLo//0UjG5uJdeKnPSRs2vX2+P60fU2sXPipN17vN4eWoIsNhSp8mHF2+R+9t8MHiRBDEBQdrq7P56cWBIHwGAwmBkMBoMwuSnjMJss01kZs9Ewv0umxSJKbibTNGPDrc8CeOBzMo9uRvMSXkZpMnocp9MQP73K0ttoxrKt4HcOiY/xcrIolvE3L9MZGxVZybYmizBfvMrYPHo/Gj4abu3xoh/rtoosjWOWjYYXCpvD6sfhOFBoBKPH+TRdsXHweFEUq3Hd8jh4AZ9idsGy22gKAMe3LCnyJpbDMmdBXmTRtBjufVb9vLMTrLLoNizYzoLFK5YFM8AzibDWvAa7DTOAY7dHABjsB0/3tDdJeBvdACLJzcE6vIP38zDOmQ6TJnGUMPpdxvIizLB8/b4CqHqPWNV0GTU7h49GgUlYFukhH0Xx+2hrT4POWXGaFAAcxpKqExggQGQxDp49hacFLwg64Xg26/qok7K8jqPpDq+PJqRsa5ouVzHj3doPfv+4Z75H1F3vThNkFoBAFqNgEsbJltOVsCxLM3x3eWW8g7nBYrrY8u70CN4Mh8abGUO6W2oUL1+zX504zdMYZk8X1CpLi3SaxocLmMtsZnJUNZyrNCuAYUO6HvEepuVtxNbWWgROFlRyxpJjJCRNknJ1k4UzdprMUwBIyji2EOaiCAsnTRwAQI4bYFvL21vA3cpkCWMzTkBixMS7N2kRxvp8194fllkG8+JVeIMz+5kFCl9fRP/iIGZNksK8KT5Xv78rOB95gJ5EsQ00hFczC035uy7cNagT3jLAlQmf1mxmgW/1tQYaraNklq63JtfwdzS8ZnPQN2USp+FME/FtsWbIVn2+f9zaM4TLY9BYg0o3iHlyUU5hduYDV1O6BAV9IUVnVRUwfJhNF6OtSQx1brmxwLE/qCey1tIwWw53g+ERi4fj9otZlMl3wQg+b7UhUGMjAIq/9rsiLacLfPl2NQNNNawRJFnzdOpALmPL9JZZ8aNfK+RgpOXQWhAMc1A+Uf5OQ5EaSKl4zs9enJ4du0YvmgcjqWQ//zx4VOvUNiA+GSvKLNFVXEOV4YO0SWM2idOb0fDt6TmvetgcaFERV5oXd9CfZVvJypdCD9tfSk3FhZwF6qiWkxaIk1pQjtpIcnNpcsOKUZnF1yEYQtvBcCfnOO9IETncmuRijoxqGgMThRT5DOmKgC1qbgkdq6wLtoyKv75584rrC08Eb6c7Qkttgpym/z4NfoKAUs1tgqOuIR1I2tneWpuub0VtrW5VNqkuU/GhTFKtydHw/ySsWKfZO04x6D2YTWBMDhfRjA23TOi6xm7YfFEWKELskDa5r8TFyYmPvGgplw8fgkeCJg8kM+ZzJTRIshN0Raw6ZJeV9Ftt3LqINawYXlPBDGk4DsLMaB5M/GOYJwVYFusFS4IwwBoC0JJxgPo/nwQ/swBXWsUCV1thUeZAlBl8T4HJ7tqVwa8gGcuMBWlZQJVhMcyDdZbCcvSzP3awmpTAjj/oiCEIVDqRBNnfB4uNgpNUOQjk8AZ88o+DJC2CMBG05j+RJdXAoiRrzYNWdzgxAgZdaaP2l/3g66dPUYE2fvx2P/jmz392InzDkhIp1IViL6nRLOUrPZpluqVIuwSKeeec4pTrOcvkUFy8OXhz/MvhXw/Ofjg+8ptu6BuYCQWGw2HqBxy95qL1EkHkMuHKoSlMYD7WTCqhSZGa3bYXZXIJyH/kX1p6Bh9gk9M5CAxRKFiEecBHFEQJGo0wsGMUGiBTkrsAYII4yosgnVMVycV7lAfpNU7hgnG5swSpADoaGklgRSvLK2CwVe6ouvIFWAnxHbSdljeLCTl3JU34xB1KbIe2+aAthzRCtVaa6tmQn16cHx68+OX07Oj477+8fXUEzOXJVbTB6Nnq0fFPp4fHvxydXhyen50dH3q3ClwD40T4Zy4Va0+i2VUf49cP055ocmnegaRjYtmKGIusqr3kepXvBk/H5FvQiq7XUcJ9Bdwf4KrDAyqczdCLslsJmgn+YvKqVS7UHj2/jv9SCHyePX3a1YqHIaNcnWD+ut0JDYkp/IiTdMWHa1JmB2C9r1AgWRW0EGJljj4Tsb5AAxll2TUD0ZWwCERYFoSqoiRFf/IUjYeZSXeobc2CdZgUaAiF+TtuNYH1lOH3ZfiOgSibLlL0RgTfo4HEghms1ApehqoOil2XN1jNMpiVGSLHXbBhjA7fcjUO8hRrybmUnKbpuwgQAKTJygCZIloyFKL4eR5lIFFvozwqQNyiqC7AYFO1gDBeAQcxGrEwmdX1AegyzdBGBKNmnpagDeC/PAhv0jFiJylB1fNbCXYAemJMBYPKkqP4E2KI6iidlkvAZyIwxAVhHE7ZaGf03S78++eHyRd7/8i/2KoLwbd/7MN/o8t/7l19sTX54vHWh3/C/zvjYPD42YCwBbi4qCuw6YQWKoDcoC60P4DVJG4sTJJ0DQy7HQz2luH7J8Bk/NVXT4Mvgi+/hv++ev70qdWSs8gXQHC7QZZvmy09CVSt8Ae9/jb88UH7qHQaRhyZh1JvUny/Pv5bD+ltcbfXEkm8uRIGlbcqOTl/cXT8ejNc2k79GhdpCcFwP8FhvieOoOdOTn/45eLgJ18ES+4j5D5O6aFSKPRyfwgxuhMl3Pe3gROktZ/DadD8rZ/fxpe9zn8+e3F+cPTLq9fnP7w+vrjwt8hzuRlBm+Rip5Dck8BnDhphxEWVGP0oEfVR9FHVXNb2Y7s6vUqwOKsKLx2rgKonUKMGfIlVECaqKpAx0E4z7ttHkZFP5A9gRk+4PrcXhQGI2OwkS5fnWXQTJY1KjFe9qjsG4bcGrcvIGuu3HpWuyjjWuid/8CwqnGXNsvhLR2FQarB0KbI7VN5ZWoKiLFdVdWgXFEHMwhwV9oplU+BMVOJc9YI8X6clrJWuWRPsOhJq+jpm5noGH1QKqoVvg2e43Jc93SYJu22O3rbihW/3A7tvAJ8GZXxVBi/WYn7BmlZzEh+B0a78S9u5+LQ7s2v84lO2Is8u9aO9BkHpXfnXDQd021Uf7JDXDfM+n9TfOkocpQmrCuAXGp6QODaVjg8h4Fo7tTYP2aNRXaSCtXFWw44Xm6xqh3JfNuxiSbmuPIOCsk1/a6Z2m23UPCePEtQtwnSJ7AahZAVGSVfRXj1Xz3XGwnd2EHru+huB+Jgb+erjntVfOziSG4yvJOhgbLBZX/Pu4u3Llwev/98Dueas7jJl4uTlchlmd32xPDx/+erF8ZvT87MH9CE+MhfxTVPUabyRJQhThRx0S3GSYDVsyzzFLoKGxTgIU4RNk0IPkMCnElLT5aoxEXt0H6mGhdFVMBC+jIFt8mGEW5S0d9hMmuCD/dje7yIPtExYadjVbUPN9qH7RPQEdwQBjx2ssS9/Hr9+ff66hzXtM4loX2rtbs7dSGpLBNzE0VYmY7lPNQ4WLMTwmnEgVh+WBZ3YX9E2jH7HenaDZm277Vp329Xvyr8fm4JqTw85nLFrsAinoF7gf7WcqCCqfmge3RGtgLC6dwwDaAYaOC49RQlCLOjtX0J5cjIQYDg+8teOzWtOWnKBObveEUT8TiC4P4SfWYL7iW9fnx4CC4PRkhSqw32Wnq0xFVJaZy270tMUkU7MsaTlOJDraKq87xK2ghchmWO+TW/d5LUMhCVYsyKR6QWguR/5ZxHmhyow81GUHy9Xxd35NXo2dJ+q4T9oBXWKD+RUbzllcROHJQfCOX1R4Oz1AJz8mkbJCCamEVtAlr2J0+swPkgSTjuM/4Jp6mqMLKA1avdK5Uat8ncSU/kOpF52HE4XTc7mbw7ndIiAKeUVuKzy9OhhXPM0gRXaeZoVClPAJcza7GtEmYpPL8NVy0svIVrFBfNNgM/zkV7VFkEyu2VOClDrVodsQsmLTQep0fBhNVAjc6CUTKEkQ1satFmPS/Fq2jpYRWo1bR/FHk9i10EqEK6tO10eRCHkN3EdynBsbgngZ+uQiZaskl1ChfqMVtG/wtB4X6gJf/5j8J3GeibA1iRmyU2xCHbbpic+fHmsAnSpLeHKPs05JmiiEm04lsaPTPBLUZdzdSmQmqzKfDES4Bu6+e1EPVH9Fm0RkQI94qK7ijTiox1u08YKgBsCFgq58aqNdmlMXE3i6i1JRDfStvr4W0ISED2k7BQxPwekfeLtWrdPf0OQjS3+EB5WwSH4EqoxnzeM5rKakLUS/E40yM1I2TbAfP7gxqVtRW1fTTbYwSxgcftbJ5xZw6XvShof52oaH3JFjY/HqtpNgj6Lao6JdWFNEwgf+wLbubZWHTfX13RT1vrJJbbX1K3nFk5fbXaNHbT+BHO8FbHeR9c3AmR6KXx+zC7Fc0r1/jXNngUqlxHCPqmO7G0BofkSimY7Sgs1TvtBXQQAbtlYdvtFuBiM8oSH90AVL8NiMVmG70ewihtp7+vYHMDXjCJ6Y4BhX4qZRS83qhaxQ462tcAgR+ManLX1j8E0LKaLYESG41rIQggRWy+owAf7rNO7UIc18m04039RHxJolrVIuGim7LFuCwxM7/M1Hoxdsay4g6JOD/1G8szKhqpnl9Hsys6I8m0HJxhQTi7UWrbzoXrt07YfE3IydTIiSRgLK9JdsQD3sIr1A6r0qoRWAlW5T2bEcdCecp3JqOneS7jqIC7pznWRQqD5CU1ZcWqrp3aDMr3IYPrfLJ5DCzdAic1I0LdX/3kRPvaxa+5vEn5M6CMeZa16OsB1Au7jKkfzwLkW0NHFysAqHHy+UgF7tiPCtnIso4uqs7R79qHquyzZaM+a4jyksJ+3exVmOTvjDdpY++ODjX996JbvkVODPz8Skeh40uXPz/eI91EGEjbNcK/k2fOv/vQ14VPjtU/mLine truncated
assets["scripts/syncthing/app.js"], _ = base64.StdEncoding.DecodeString("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")
assets["scripts/syncthing/core/controllers/syncthingController.js"], _ = base64.StdEncoding.DecodeString("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 truncated
assets["scripts/syncthing/core/directives/identiconDirective.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/5xVTVPbMBC951dsZwp2GkcOdHpJ6s4wDMxwgENz6IEyHVdWYk0VKSPLcSnkv3clJ8F2FL50wUj79r2V3m5SOS9FqslCZaVgYVDcS2pyLueEKs2Cfg9wkYxrRg1fYQDPmDScKhlEcBt8rLjMVIXfsxKBXEkIN3t9eHBgu1aphmI1v5lCAkFuzHIcx1VVkeozUXoen45GoxjPg0lvB9nlu9oShqtUlCyCgv9jzeQNAkyfKVouEEGoZqlhF4LZ/26moeOPILA8/ck+OlelyC65EN+x1DODqZ5K0qqKgCrRpbVLM1NqCR+2dZNlqgt2JU2tl9A81ecqY2fGpoGBzQOf6ioiOBn14QhOO4LWh/Rdc62Vfq9Cy2nZ4PjYqUiSBBY8ywQ7R+RLChaOGyMvlW5xP0/rSIeObwgnL9Y5e/sLWJj152te38bZ5/eopYYUDHmN5r9Lg1b/i7YO69eyp1PnuwEER13/HMDfW7x983fiK56ZHHNswW/B5ozPc+MD76Hxaki6XDKZnedcZKFFvOxHG+XZVdX+Jl6hz00b3/lTW8kdrVZnu0gq0qLAGhtDqSPcmS+p/zw+wpf26e5uEuzDEcQurh2yk4kx16nJCWVc1I0UY9vWlm4h+AzqzvdbFQ8wVT0ajJpiLXIe9olmS5FSFsa3P3/8uos5FuV9rBn2nvNUAqOJvW74WquGwUC3h+4ezLV84+JdT36D4ckEhsMDvdWsqjsin5ryOaSj92A8xfkJmzPv9ZQ+2uYEc1PL00vNtT546j/Z323vrHsd+9UDcjV/ktEI2Rw/dDAFWoaaMQQXQdT2OlVLNj5kOgQkQVtNGy64/DNuTFyXLgJWj9AI0m3fFb6r34RtBkkoWdX44XapSN0U3cnSa3+t7zDgPwAAAP//AQAA//9afsjulQgAAA==")
assets["scripts/syncthing/core/directives/languageSelectDirective.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/5xVTY/jNgy9768g3MXYQSZJz5M4wLbd26CXAr0EQaHIjC2sIrmSnDTI+r+X8tfYsb0FqstMJPKR7/FZYiotJDPri04KiVFo74q7TKh0zbXBcPEJaK0TYZA7caUA6TNYin+gpK3wFc4FZQitIHrXnEk6MFfBcQGPKtevsLAI1hlBCdtu16ArjOqF1Zt13BuEX7+Er4Mzh5dcModvg92uyI6BSlfiHAdXYcVJYgCZQfr5UwBcMmvjIDE6T/RNrZxOUx+QMMeaHx+nATAj2Ar/yZlKMIkDZwoM9jtLv1ukVN7zTHCi3f23SqU++biND9y/qJPNt4+HrFSxv7ML2gMvjEHlaqWO8P07BF9VKoXNgrKEQQXOSKAObbdh+3A5Q7yQI+bPhC+oimAOoUaRwqMYzJG5OIjEq6KWFyAU9CkEPqhBf7DKFG8g4njArPxhqXZa3XSqKVSwgn8j5hl5DN8bo0ViEewfD99MWf5Ahhp1I8W8TptC7slTg1Mp1Le3nok/W67zgXvbdWUG2JUJyUjhmqeFGAauX6fovjzFRIvtJFataiXqFEyT/ZuwZPp7FTaH9NRVC/kot59G8ZsNEDhoJe9NB6CqeJcxBzl9fzRFP/QOtB3/COqsDUS+vqBiP2/pz24k0FqiSl1Gh8vllKgdBYJ4zj2I45ivX+IMUU+9AzvOQfs1pQ6lUMEhxnStElDS7TUPT4LaTN+A64SkItP69gRJaEHpSkmXISR0p/2PDsNDCEsSZwnhMZxpcLRbjqdeu3rd/5DHglfb4yJNbnO1UNoU2MvL1PYhRBUep11YWHpl4PONOZ4BZ/6JGH4DgxsFbkJKOCHUlwOws0NDrwVHuoCA+WcL/i7Q3IFxjrnDZNW+VGPjUnUay7CaQZb8YvTNonmf8bv3qcGLvuJfddedFDWLaPQN/9qn0H8qFd7+ZLKYvGf88g7/r5jebIZSxdCmTjvGrz6PqWvFrwlnLSZm2fYwuLWpiQ+2tSXmeAxVIx/UG03WK/jXd6bDGfp15jilHG598GsOPL1/AQAA//8BAAD//25IFV0RCQAA")
assets["scripts/syncthing/core/directives/modalDirective.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/3SQQYqFMAyG956iuypID6Cb2cwR5gAlZrQQW0nTgWHw7pNX4fGUZ1Ztvi9/S3ycC3l2a5oKYWvzbwRZQpwdJEbbNUbLTYERJPyooKIn25vvomJI0bSd+avWoxilcHxpHM0sHEAGYz9tf0KC60Ze8ItJac12i6x00RjVAhyMcMFLAvuYgcr0lmZIm4Lzf+pYEFJgPy4v1SHxUvINDJDiDQJK+S5Tdzwf7IT2520f63HvxuYfAAD//wEAAP//v1k3DZQBAAA=")