From 4b25bdfbc45479d64e3ffb04abbd08672ccc47fb Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 4 Jul 2016 17:27:06 +0800 Subject: [PATCH] #3058 #3059 support correct page size and link header --- README.md | 2 +- conf/app.ini | 4 ++++ gogs.go | 2 +- models/repo.go | 3 --- modules/bindata/bindata.go | 4 ++-- modules/setting/setting.go | 39 +++++++++++++++++++-------------- routers/api/v1/convert/utils.go | 19 ++++++++++++++++ routers/api/v1/repo/repo.go | 12 ++++------ templates/.VERSION | 2 +- 9 files changed, 55 insertions(+), 32 deletions(-) create mode 100644 routers/api/v1/convert/utils.go diff --git a/README.md b/README.md index e978828956..116f7a74d5 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra ![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true) -##### Current tip version: 0.9.35 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions) +##### Current tip version: 0.9.36 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions) | Web | UI | Preview | |:-------------:|:-------:|:-------:| diff --git a/conf/app.ini b/conf/app.ini index d99b04cc5d..755041cfe2 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -345,6 +345,10 @@ MIRROR = 300 CLONE = 300 PULL = 300 +[api] +; Max number of items will response in a page +MAX_RESPONSE_ITEMS = 50 + [i18n] LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ NAMES = English,简体中文,繁體中文(香港),繁體中文(台湾),Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano,Suomalainen,Türk,čeština diff --git a/gogs.go b/gogs.go index abba171540..1280b57813 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.9.35.0702" +const APP_VER = "0.9.36.0704" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/repo.go b/models/repo.go index 5d6b66d046..786fc167bc 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1521,9 +1521,6 @@ func SearchRepositoryByName(opts *SearchRepoOptions) (repos []*Repository, _ int } opts.Keyword = strings.ToLower(opts.Keyword) - if opts.PageSize <= 0 || opts.PageSize > setting.ExplorePagingNum { - opts.PageSize = setting.ExplorePagingNum - } if opts.Page <= 0 { opts.Page = 1 } diff --git a/modules/bindata/bindata.go b/modules/bindata/bindata.go index 555ef85a80..68719f9815 100644 --- a/modules/bindata/bindata.go +++ b/modules/bindata/bindata.go @@ -286,7 +286,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x5a\x5b\x6f\x23\x47\x76\x7e\xef\x5f\x51\x96\xe3\xcc\x4c\xd0\x24\x75\x19\xcd\x8c\x65\x6b\x63\x8a\x6c\x4a\xdc\xe1\xcd\xdd\xe4\x8c\xc7\x03\xa1\xd5\x62\x17\xc9\xb6\x9a\xdd\x74\x57\x53\x1a\x19\x41\xb0\x46\x1e\x72\x01\x82\x3c\x24\x48\x10\x20\x08\x92\x87\x24\xc0\xe6\xb6\x8b\xbc\xd8\x89\x93\x17\x27\xef\xe3\xff\xb0\xf1\x66\x9f\xf6\x2f\xe4\x3b\xa7\xaa\xc9\xa6\x46\xd6\x66\x81\xac\x2f\x62\x75\x75\xd5\xa9\xaa\x73\xfd\xce\xa9\x7e\x5b\xf4\x9c\x67\x8e\x2b\xf8\x4f\xb7\xdf\x6c\xb7\x5e\x88\xe1\x49\xdb\x13\xad\x76\xc7\xb1\xde\x16\x83\x8e\x53\xf7\x1c\xd1\xad\x3f\x75\x44\xe3\xa4\xde\x3b\x76\x3c\xd1\xef\x89\x46\xdf\x75\x1d\x6f\xd0\xef\x35\xdb\xbd\x63\xd1\x18\x79\xc3\x7e\x17\x9d\xbd\x56\xfb\x58\xcf\xb4\xde\x13\xf5\xc5\x42\x24\xc1\x5c\x8a\x7c\x16\xe4\x42\xcd\xd2\x2b\x25\xd2\x44\xc8\x4b\x99\x5d\x8b\x45\x30\xc5\x8b\x28\x8f\xa5\x55\x1f\x0c\xfc\x5e\xbd\xeb\x88\x43\x71\x9c\x4e\xd5\x01\xfe\x8a\xe3\x28\x17\x9e\xcc\x2e\xa3\xb1\x04\xa5\xc6\x2c\x48\x30\x1c\x7d\xd1\x44\x5c\xa7\x4b\x91\x2d\x13\x11\xa7\xe3\x20\x8e\xaf\x2d\x77\xd4\xf3\x47\x1e\x76\x7f\x28\xa6\x51\x8e\xd1\x4e\x94\xcf\x64\x26\xb6\x42\x79\xb9\x65\x8b\xad\x45\x96\x86\x5b\x22\x45\x47\x2e\x55\x8e\x9e\x50\x4e\x82\x65\x0c\x5a\x4a\x8f\x61\x0a\x38\x3a\x6d\x00\xcf\x96\xf5\x32\x93\x8b\x54\x45\x79\x9a\x5d\x9f\x5a\x6e\xbf\x3f\x14\x87\x96\xd7\x70\xdb\x83\xa1\x3f\x7c\x31\xa0\x61\xe7\x81\x9a\x61\xa5\xa6\xa1\x54\xef\x79\x6d\x31\x9e\x05\x99\x92\xb9\x45\x0f\x3e\x58\xe5\x7a\x0e\x4d\x7c\x4f\xb4\xd2\x6c\x2c\xcd\xb1\x13\x79\x25\xd6\xd4\x45\x9e\x8a\x73\x29\x16\x59\x74\x19\xe4\xd2\x6a\xf5\xdd\x86\xe3\x0f\xdc\xf6\xb3\xfa\x90\x56\x99\x04\xb1\xa2\xe3\x1f\xc7\xe9\x79\x10\x8b\x79\xf0\x2a\x9a\x2f\xe7\x62\x9c\xc9\x20\x8f\xc0\xc9\x38\x9a\x83\x25\xe9\xa4\x4c\x71\x81\x93\x2f\x95\xcc\x6c\x51\xd9\x11\x73\x19\x24\x4a\x24\xa9\x1e\x69\x75\xeb\x1f\xf9\x0d\xd7\xa9\x0f\xdb\xfd\x9e\xdf\x69\x77\xdb\xd8\x1f\x86\x61\x85\x41\x90\x8f\x67\x82\xf8\x23\x3e\x5d\xca\xa5\x14\xb1\x4c\xa6\xf9\xcc\xc6\x9a\x17\xcc\xf7\x40\x89\x38\xc8\x20\x03\x34\xb0\x96\x8a\xce\x21\xb8\xc1\xa8\xd3\xf1\x5d\xe7\xc3\x91\xe3\x0d\x7d\xfc\x1d\x39\x7e\xc7\xe9\x1d\x0f\x4f\x40\x76\x67\x1b\xff\x80\x95\xcb\xe8\x14\xf4\x7b\xcb\xf9\x39\x36\x56\xde\x6a\x24\x95\x56\x8c\x20\x93\xac\x1c\x32\x14\x51\x02\x05\x01\xab\x5e\x2d\xe2\x14\xbd\xa4\x23\x96\xf3\xd1\xa0\xd3\x77\xc1\x96\xfa\x31\x54\xcd\xef\x8d\xba\xa0\xbe\xbb\xbd\x41\x34\x52\x6a\xf9\xdd\xe4\x98\x4c\xdb\xf3\x46\x37\x88\xec\x6c\x12\x59\xb1\x37\x9d\x83\x59\xea\x06\x91\x60\x9c\x47\x97\x51\x7e\x2d\x26\x52\x86\x56\xcb\x71\x9a\x3e\xb3\xb3\xdf\x05\x1b\x0d\xc1\x7d\xd0\x7b\x16\xc4\x60\x1f\xc8\x9d\x41\x09\xe7\xb2\x32\x4e\x71\x94\x33\x48\x22\x0f\x44\x1e\x4c\x6d\x12\x4e\x28\xce\xaf\x45\x3d\x09\xb3\x34\x0a\xc5\xf7\x30\xaf\x4a\x3b\xa9\x27\x58\xeb\x32\x88\xd1\xc7\x93\x20\x34\xf0\x7e\x2b\xc1\xea\x5a\x7d\xc3\x48\x05\x60\xfb\x96\xb8\x8a\xe2\x58\xcc\x82\x4b\xb2\x2c\xb9\x52\x67\x95\x5f\xc7\xa4\x2d\x5d\x62\x5d\x94\x4c\xd2\x03\x31\xcb\xf3\x85\x3a\xa8\xd5\xa0\xd5\x32\x4e\xa1\x1a\xaa\x3a\x4d\xd3\x69\x2c\xab\x38\x64\xed\x4a\x9e\xd7\x96\x8b\x10\x9a\xa7\x6a\xbb\xdb\x3b\x0f\x6b\x3b\x3b\x35\x6f\xb9\x58\xa4\x59\x5e\x99\xa4\x59\xa5\x74\x80\x4a\x94\x54\x1a\xb3\x2c\xc5\xf3\xde\xbb\xfc\xd2\x6c\xdf\x1a\x9e\x38\x5d\x07\x6c\x80\x8c\xfc\xae\x33\xac\xfb\xc3\xfa\x31\x58\x71\xf6\xf6\x64\xb2\xbf\xf7\x70\xef\x8c\x55\xa0\x1a\x84\xf3\x28\xd9\x54\x04\x52\xd2\xbb\x45\x46\x46\xbd\x29\xb1\xfd\xed\x37\x75\xe9\x4e\x12\xae\x33\xe8\xdf\x49\x22\x49\x73\xb8\x98\xbb\x89\xf4\xfa\xc3\x76\xe3\xa6\x02\xee\x6f\x90\x49\xb3\x69\x90\x44\x9f\x69\xb3\xbc\x8b\x56\xdf\x3d\x7e\x63\x3f\xd6\xcb\x79\x90\x5d\x84\xe9\x15\x73\xc8\x49\x48\xc8\x10\x6f\x16\x42\x03\x30\xef\x1c\xe6\x7e\x01\x9b\xc8\x65\xa2\x40\xde\x72\x7a\xf5\xa3\x8e\xe3\xc3\xc1\x34\x61\xc4\x3d\xc7\x3f\x82\x49\x3f\x2d\xb9\x8b\x4e\xa4\xd8\x2b\x8c\x97\x2a\x4f\xe7\x62\xe4\x76\x2a\xde\x98\x64\x59\x3a\x26\x3c\x27\xef\x8d\xec\x3a\x4a\x2e\x94\xb8\x9a\xc9\x04\x0c\x4d\x42\x99\x45\xc9\x54\x74\xcd\x8e\x40\x0e\xd2\xc6\xea\xc1\x7c\x81\x5d\xc1\xc1\xda\xf3\x60\x9a\xc0\xcd\x69\x9f\xef\x83\xba\xef\x35\x48\x09\x3c\x38\x3b\xeb\x25\xa4\x0a\x47\x77\x6a\x0d\xdc\xfe\xb0\x0f\xb5\xc0\xbe\x48\x0b\xad\x66\xbf\x5b\x6f\xf7\xf0\xc4\x6e\x7b\x96\xaa\x9c\x3d\x2b\xcd\x47\xe7\x3b\xf7\x8b\xf1\x0f\x48\x5f\xdf\xb9\xaf\x87\xe3\xe1\x9d\xfb\x27\xc3\xe1\xc0\x1f\xf4\xdd\xe1\x03\x55\xb3\xf8\xa1\xde\x6c\x92\xb7\xdf\xae\xf2\xbf\xd6\x6a\x00\xfa\xf6\xc8\xeb\x80\x05\xb4\x88\xb8\xdf\xec\x7e\xfc\x80\xce\xcf\x67\xa0\xd8\x22\xae\xd2\xec\x82\xf4\xee\xbe\x5a\xc2\xe1\xe1\xf4\x9e\x77\x22\xb4\x11\x3c\x80\x8d\x43\x15\x14\x1d\x1f\xa6\x21\x94\x0e\x3f\x55\x90\x6b\x27\x62\x8e\x1d\x8b\x71\xa0\xc0\x44\x0a\x40\x61\x4a\xaa\x03\x77\x0e\x1e\xc2\x89\x8f\x75\x80\x2a\x9b\xe3\x25\x39\x02\x9a\x5c\x8f\x73\x28\x09\x39\xea\x24\xbe\x36\x01\x2c\xe3\x75\x35\xaf\x40\x28\x94\x14\x8c\x88\x20\x51\x50\x14\x33\xb1\x35\x3a\x17\xbf\xac\x5a\x9d\x7e\xa3\x0e\x57\x7b\x07\xc3\x56\x8c\x79\x93\x67\x88\x53\xda\x73\xf0\xa2\x13\x04\x8f\x25\x34\x80\x05\x4e\x4b\x06\x97\x41\x14\xd3\x6b\xab\xd9\xf6\x58\xb5\x68\xd8\x5a\x9d\x9e\xcf\x24\xc7\x53\x18\xac\x38\x5f\x46\x71\x0e\x7d\x2e\xed\x3e\xa5\x03\xe4\x55\xcb\x1b\xd6\xdd\x21\x4d\xf5\x61\xb6\xcf\x38\x1c\x17\x14\x9a\xe9\x3c\xc0\x24\x8d\x05\x38\xe2\xc1\xc3\xa7\x4a\x9b\xc6\x38\x26\xe3\xc0\xa9\x2c\x9a\xbb\x52\x93\xb5\x0a\x50\x78\x82\x4b\x12\x89\xb6\xb6\x5f\x40\xc0\xe8\xc1\xee\xee\x8d\x69\xb7\xec\x3c\x86\x9d\xc0\xa6\x20\x17\x9e\xd9\x69\x7b\x43\xa7\x57\x10\x78\xe7\x7e\x41\x8d\x77\xe0\xa6\xe0\xd4\x22\xc8\x67\x64\x58\x44\x23\x8c\x32\x39\xa6\x88\xbb\x81\x27\xee\xfd\x76\xad\xaa\xd4\xec\x9e\x8d\xf5\x72\x56\x14\xed\xa6\x53\xe6\xde\xbd\xda\x0c\x1e\xb4\x06\x23\xd2\xa3\xaa\xbc\x2e\x4b\x75\x50\xa7\xa8\xc9\xa2\x32\x74\x59\xad\x28\xd2\x63\xba\x9c\xc3\x29\x07\xe8\x9b\x44\xb1\x34\xb6\xca\xc1\x7a\xb1\x3c\x8f\xa3\xf1\x85\xb8\x90\xd7\x58\x81\x34\x17\x74\x2b\x78\x9a\xca\xc4\x06\xb5\xd2\xd6\xd4\x35\x4e\x3b\x2f\xd1\x5a\x9d\x40\x6f\xe3\xa9\xf3\xc2\x1f\x52\x20\x5f\x6d\x65\x40\xc7\xc5\x2e\x4a\x24\x37\xce\xba\xee\xbf\x27\x82\x04\xde\x4a\x12\xca\x93\x88\x4d\x93\x08\x8f\x29\x38\x70\x35\x8b\x60\x66\x24\x1f\x3a\x0d\x9c\xce\x6a\xad\x63\x62\x35\xaf\x54\xa2\xcf\xa6\x16\x46\x63\x3a\xf4\x95\x51\x3b\xb6\x2e\x89\x33\x22\x82\x70\x7c\xa6\xb3\xaa\xe8\x33\x8c\x00\xce\x43\xa8\xcc\x32\xa9\x16\x29\xa6\xe1\xf4\xf9\xf5\x42\x5a\xdd\x76\xaf\xdd\x1d\x75\xf9\x44\x5e\xfb\x63\x44\xa7\x13\xa7\x51\x76\x90\x85\x39\x34\x9a\x3d\x82\x65\x14\x77\x0b\x98\x38\x87\xb9\x59\xfd\x56\x8b\x1d\xab\xc1\x84\x7a\x5a\x61\x1c\x6e\x7f\x34\x44\x5c\xea\xf4\x8f\xcb\x08\x4d\x26\x32\xa3\x5d\x83\xc7\x88\xb8\xe8\xf9\x35\x51\xad\x4d\xc9\xe3\x8c\x25\x94\xb0\x32\x0e\x0e\xf3\x0c\xc0\xa0\x12\x2e\x33\x8e\x12\x87\x4f\x1e\x3f\xda\x9e\x6d\xcf\xb7\x95\xa8\x90\x37\x3c\x9c\x5f\xd3\x4f\xd5\x78\x5a\x0a\xd0\xd6\x7b\xa0\xd3\xcf\xc4\x04\x71\x57\x04\xa2\xba\x98\xbc\x62\x05\x60\xe5\xcf\x72\x68\x3f\xbf\x21\x97\xf1\x1c\x0c\x27\x78\x4d\x8b\x45\x13\xcd\x40\x38\x7f\x98\xf9\xfd\x30\x05\x15\xb2\x73\xf8\xc0\x29\x24\x04\x7e\xea\xf9\x3c\xd1\x40\x4f\x62\xea\x03\xbd\x6d\xc0\x84\x44\xa9\x58\x2c\x2e\xc6\x6a\x67\x57\x54\xc8\xc2\x40\x95\x57\xaf\x90\x4c\xf5\x13\x54\xa9\x92\xa4\x98\xa6\xfe\x6f\xb3\x30\xb2\x98\x44\x2f\x14\x35\x42\xa9\xac\x86\x03\xaf\x41\x19\x03\xb8\xa9\x03\x56\x8d\x51\x4b\xad\x58\xc6\x22\x31\xde\x36\xc0\x50\xc4\xf2\xa3\x05\xa1\xde\x98\x40\x0e\x99\x27\xa9\x78\x4c\x87\x22\xa5\x54\x39\xd8\x3d\xd6\x7c\x23\xfb\xdd\x34\x0a\x66\x01\xa9\x39\xb4\x0d\xcc\xe2\x10\x81\x6e\xf9\x4a\x8e\x97\x60\x30\x39\x35\xc4\xfe\x9b\x26\x6a\xe6\xf3\x44\x8a\x2c\x94\xe8\x20\x82\x04\x9c\xc9\x34\xeb\x00\x41\x46\xb3\xb9\x93\x13\xa1\x98\x64\xc2\x98\x9d\x77\x79\xfc\x71\x7b\x20\x94\xc6\x5a\x45\x40\xe7\xbe\x52\x14\x0f\xb4\x4a\x73\xa2\x34\x61\x2f\x9b\x54\xe2\x74\x3a\x85\xdc\x19\x3b\xd9\x30\xa8\x84\x7c\xe1\x16\x79\x15\x0d\x11\x0d\x72\xde\xb2\x3a\x75\xce\xcc\x08\x6b\x10\xe3\x68\x84\xa5\xb7\x4e\x90\x62\x15\xfd\xe3\x29\x80\x78\x3e\x9b\x2b\xe6\x15\xb8\x11\x65\x1b\x76\xa6\xd3\x00\x71\x9f\xbc\x17\xf2\x09\xe8\x8e\x01\xa1\xd0\x47\xb2\xb5\x07\x08\xf8\x6a\x56\x35\x53\x7c\x4c\xf1\xc9\x34\xd5\xa9\xe5\x34\x77\xf7\xf7\x77\xde\x65\xa8\xf4\xc8\x72\x1a\x4d\xaf\x2e\x84\x79\x72\xb9\xcd\x4f\xdb\x0f\x9f\x58\xcd\xd5\xe3\xce\xf6\xee\x43\x60\x08\x62\x1b\x32\x2c\x79\x5a\x4a\xe6\xe6\xd7\xea\xd3\x98\xd3\x39\x58\xc9\x14\x26\xaf\x0f\x8c\xce\x28\x97\x7b\x78\x11\xe5\xf7\x94\x0e\xad\xe3\x59\x4a\x69\x63\xf3\xa8\xc8\xd6\x78\xae\x75\xd2\xf7\xc8\xb1\xef\xec\x3e\x66\xdc\xb0\x73\xb0\xb7\xb7\xfd\xc8\x32\x89\x27\x99\xaa\x65\xb2\xc8\x0c\xbe\xde\x1a\xd4\x3d\xef\x79\xb3\xc8\xdf\x36\x96\x45\x18\xb7\x85\x2c\x92\x4c\x03\xca\xb1\xb3\x4c\x7e\xba\x84\x4f\xd5\x1b\x43\x80\x89\x26\xd7\x95\xc9\x32\x8e\xb7\xe0\xf3\x3a\xab\x04\x53\x8f\x2f\xc8\x16\xfb\x67\xfe\x6f\xe5\x51\x78\xbe\xc5\x29\x82\x08\xce\x55\x1a\x43\x07\x57\xea\x99\x70\x38\x81\x3a\x67\x9c\x8d\x19\x74\x62\x95\x34\x8d\xfd\x4d\x35\x3c\x07\x07\x0d\xde\x26\x38\x36\x5e\x42\xc2\xc8\x63\xdb\x3d\x28\x33\xf2\x35\x40\x89\xb2\x2f\x7c\xeb\x2d\x9d\xd5\xeb\xa4\x7f\xd8\x17\x4f\x1d\x67\x20\x5e\xf4\x47\xae\x60\x76\x90\x3a\x0b\xaf\xde\x72\xde\x7a\xcb\xf2\x1c\x64\x8f\x43\xf2\xab\x20\xf0\xd6\xdb\x1f\xb4\x9a\xce\x73\x17\xff\xfd\xfa\x6f\xdc\x27\x2d\x5f\xe6\x29\x29\x68\x44\x38\x72\x2e\x39\xea\x86\x01\xfc\x03\x5c\x65\xbb\x87\x3c\xb1\xeb\x74\x8f\xe0\x39\x9b\xf5\x17\x80\x8a\xe2\xb1\xd5\xe8\xf7\x9f\xb6\x1d\xce\xdd\x4b\x52\xf0\x83\x2b\xa9\x48\x5d\xcd\xeb\xd5\xbc\xf2\x98\x28\x41\x68\x0c\x23\xcd\x48\x97\x52\x6b\x45\xbe\x2c\x7d\x75\x2d\x82\x25\x04\x93\xe4\x85\xbd\xcd\x64\x10\x12\xc6\x22\xec\x61\xb2\x0e\x7e\x40\x6a\x00\x90\xe2\x51\xba\xdd\xff\xe8\x85\x5f\x1f\x21\x91\xe9\xc1\xd6\x75\x72\x6c\x34\xe1\xa3\xca\x73\xe7\x88\x5e\x55\xa8\xc3\xa0\x5b\x70\xfd\xd4\xaa\x37\x86\xed\x67\x94\xf7\x34\x91\xf3\x52\x0b\x41\x07\x71\x81\x0e\xb6\xf3\x64\x1b\xc4\x91\xfc\xfb\x5a\x87\xbe\x73\x10\x1c\x17\xef\xa6\xc0\x90\x69\x32\x89\xb2\xb9\x90\x15\xa0\xa5\x98\x4d\x3e\x93\x53\x60\x14\x1d\x30\x40\xf3\x98\x10\x8a\xeb\x3b\xc0\x45\x1d\x9f\x8b\x2d\x6e\x77\x03\x66\x49\x0d\x22\xd9\xbc\xcd\x64\x2c\x40\xaa\xc5\x0a\x51\xe0\x09\xe0\xdc\x74\x99\x68\x40\xba\x8e\x6b\x4c\xde\xe5\xf3\x97\x88\xf2\x16\xe7\xf0\xbb\x88\xb9\x53\x8e\x94\xd8\xea\x65\x24\xaf\x40\xf6\x3a\x9f\xc1\x43\x55\x2d\x2a\x01\xb4\x91\xa2\x7b\xed\xe3\x1e\x24\xfd\xac\xed\x3c\x2f\x51\xe8\xd2\x69\x28\xcf\x9a\x18\x99\x14\x0e\x8f\xf2\xaa\xd6\x0b\x9f\x4e\x53\x1e\x4e\x51\x2b\x44\xba\x1c\xc5\xeb\x04\x16\x90\x69\xb6\x3c\xe7\xac\x15\xf2\x47\x76\xce\xba\x5e\xd3\x79\x7f\x6d\xe7\xd1\x7e\x41\xf3\x2e\xa9\xae\x16\xf9\xae\xb1\xfd\xef\x62\x82\xc9\xc9\xc6\xc1\x22\x07\xd2\x17\x9c\xa4\x6b\xf5\x7a\x43\x4a\x86\x76\xa3\x3e\x18\xc2\xb0\x40\x83\xc2\x3e\x34\x07\x19\xc5\x2c\x4d\x2f\xc8\xa5\x9d\xe0\x57\xe4\x81\xba\xd8\xa8\xb5\x58\xb7\x14\x50\xd8\x63\xc7\x11\x81\xd5\x3c\x9a\x4b\x8a\xa3\x10\x00\x6c\x1a\x70\x47\x59\x4d\x87\x94\xca\xf5\x87\xed\xae\x03\x50\x62\x0a\x10\x75\x16\x7e\x94\xb0\xe5\xcb\x12\x22\xa0\xdd\x79\x4f\xdb\x03\x7f\xd8\xf1\x7c\xcc\xa3\x4a\xdf\xfa\x88\xeb\x5c\x76\x16\x29\xc6\x9f\x54\x42\xc8\xe6\xfa\x98\x58\x55\x06\x40\x72\x9c\xc3\xde\x2c\xa2\x50\xfe\x8a\xf0\x8a\xa4\x4f\x1f\xbe\x59\x22\x7b\xb4\x9c\x4c\x38\x36\x73\x1c\xa1\xa4\x14\x99\x52\x22\x63\x1b\xe1\x45\x2e\x4c\x65\x29\xe2\x58\x6c\x4a\x7b\x61\x9a\xdc\x03\x5c\x48\x70\x88\x2b\xca\x56\xf9\x25\x60\xa3\xd3\x6b\xfa\x47\xa3\x56\x8b\xb0\x97\xd3\xd3\x0c\xa2\x7d\x93\x61\xc3\xa9\x22\xe2\x5f\xeb\x7c\x80\xad\x47\x57\x16\xbd\xd1\xd1\xf7\x9d\x86\x86\xf3\x45\x95\x91\xe1\x3c\xeb\xa4\x4e\x03\x08\xbd\xcd\x59\xd9\xd4\x3c\x5f\x54\xa7\xd4\x26\x45\x3b\xd8\x7f\xf2\x18\xef\x3e\xfc\xd0\xbc\xf8\xf4\x53\xee\x7d\xf8\x88\x33\xff\x34\x97\x36\xed\x98\x01\x04\x81\x29\x64\xce\x4a\x23\xd2\x2d\x0c\x81\x13\xf7\xba\xc3\x81\xa7\x4b\x35\x88\xd1\x54\xf5\xa9\xc2\x98\x28\xa2\x73\xa6\x04\x21\x50\x31\x94\xe7\x62\x25\x62\x00\xe0\x78\x3a\x9f\x53\x0a\x1e\x72\x19\xcf\x6d\x35\xc4\xa3\x87\xdb\xef\x56\x45\x5b\x2f\x64\xf2\x16\x83\x1b\xd4\x9a\x10\x78\xc4\x0b\x05\xf1\x15\x1c\xee\x6a\x3d\x13\xf2\x4a\x88\xf7\xc4\xe9\xf4\x09\xab\x69\x65\xd5\x61\x85\x60\x27\xbb\x47\xaa\x0b\x84\x11\xc9\x0b\xfe\xb3\xba\x72\x0c\x3c\x87\x88\x34\x74\x3d\x61\x35\x9e\x74\x7f\x93\xe0\x46\x7e\xc0\xe0\x54\x67\x1d\xd8\x09\xc6\xf9\xb4\x1d\xed\xc5\xd9\x5b\xb1\xaf\xd2\x71\x92\x8f\x57\x06\xaf\x69\xf9\xc4\x55\xd1\xa7\xd4\x99\xc2\x22\x3c\x8e\xe2\x85\x95\x8c\x27\x15\x72\x49\x60\x56\x69\xa2\xd2\x2a\x5e\xa8\xb7\x76\x60\x48\x11\x23\x1c\xa9\x3c\x8e\x62\xbd\x4f\xd8\xb3\xdd\x22\xef\xb0\x86\xf9\xb7\xe0\x51\xad\xdd\x77\x01\x52\x33\x62\x8d\x48\x59\xbf\x34\x6e\x0f\x43\xa0\x06\x80\x35\x92\xe6\xfe\xde\xee\x6e\x55\x0c\xe9\x0c\x06\xbb\x7d\x42\x9e\x15\x4d\xc9\x5a\xbb\x1a\x8c\x03\xd2\xf1\xcf\xb6\x48\xbd\xb7\xc4\xfb\xfc\xfa\x83\x52\x6e\xf0\xbd\x33\xa1\xad\xd3\x6a\xb9\xfd\x2e\x1f\xb4\xcb\x9b\x58\x47\x38\xf6\xfb\x8b\x40\xa9\xab\x34\x0b\x0d\xb6\x29\xc3\x1a\x62\x4c\x2e\x5f\xe5\x80\xd3\xf3\x98\xcc\x30\xa0\x42\x45\x02\x41\x5e\x4a\x43\x9c\x0d\x36\x4d\x90\x25\xaf\x50\xea\xc9\xb0\xdb\xf1\xeb\x9d\x21\xc5\x6c\x0a\x81\x2b\xc6\x59\x2f\xc7\xf0\x10\x9b\x98\x4d\xce\xe1\x48\x34\x34\x82\x89\x6e\xf1\xb9\xa8\x97\x47\xde\xa8\xc4\x9b\xc1\x56\xbd\x09\xd7\xc9\xd1\x57\xf7\x14\x48\xc9\xbc\x37\xf0\xeb\xb8\x01\x53\xc7\x76\xe1\x8a\x4b\x2e\x71\x83\xe2\xa3\x6d\x60\x1e\x50\x7a\x56\xa7\xf0\xf2\x68\xbb\x20\xa4\xf7\xa2\x01\x57\x69\x2f\x20\x90\x20\x1f\x66\xcc\x40\xb5\x1e\x23\x0b\xcc\xe2\x09\x07\x88\xd3\x39\x55\x8f\x0e\xf3\xf1\xc2\xa6\x97\x87\x07\x8f\xf6\x1e\xbf\x6b\x17\x1c\x3e\x9c\x07\xe3\x20\x83\x0d\x84\xe7\x87\xdb\xf6\x22\x4d\x63\x86\xc2\x87\x70\x53\x76\x14\xc6\xd2\x37\x1e\xfc\x50\x87\xfe\x62\xe5\x03\x71\xb6\x46\xa4\x3b\x3b\xbb\x3b\x3b\x67\x85\xd9\x12\xdc\x50\x54\xf2\xbb\x9d\xa7\x94\xd2\x18\x96\x16\xec\xbd\x8d\x9f\x88\x6e\xcf\xda\xcd\x4d\x86\x0e\xb2\xf4\x32\x22\x58\xc4\x98\x63\x0a\x03\xa6\x73\x2b\xbd\x2d\x0c\x39\x60\xd3\xe4\xd2\x05\xa2\x7c\x31\xea\x5a\xd2\xed\x0a\x2d\x0b\x97\xa8\x77\xb6\xce\xab\x80\x88\xab\xd3\xaa\x38\x63\x20\x6a\xde\xaa\xb3\x5f\x19\xf7\x08\xd1\x1f\x00\x0b\x56\xf0\x5b\x09\x33\x0a\x91\x35\xee\x14\xa1\x4a\x8a\x0d\x23\x28\xc3\xdf\x16\x3b\x23\x58\x7f\x50\xac\xf7\x41\xb1\x47\x3f\x27\xc7\x78\xb6\x62\x93\x6f\x2e\xb1\x0c\xa4\x2e\x4e\x82\x35\x3d\x73\xe4\x31\xc2\x77\x24\x35\x88\x34\x18\xd5\x40\xd3\xc8\xa7\x92\xbd\xaf\x11\x0a\xd5\x32\x74\x44\x23\xbf\x55\xf0\x0b\xba\xca\x98\xc6\xa8\x71\xd9\x5d\x6a\xf7\xa3\x09\x02\x69\x8f\x5c\xe7\x4d\x04\xa2\x90\xc0\xeb\xf5\x37\xe6\x32\xc6\x30\x06\x4a\xc0\x53\x53\x29\xc0\xc7\x7a\xeb\xb0\x1a\xe2\xe3\xca\x74\x36\x88\x3c\x41\xac\xd9\xb6\x8e\x1b\x7e\x61\x35\x0c\x2c\x40\x44\xbf\x58\x53\x89\xa3\x89\x64\x3a\xb7\x4c\xf7\x1c\xcf\xd3\xb7\x4b\x2d\x67\x73\xbe\xf5\x72\x11\x8d\xa9\xf2\x08\xf0\xfc\x0c\x49\x85\xeb\x8f\x06\x9d\x7e\xbd\x59\xce\x95\x6b\xc1\x25\xfe\x66\x8a\xaf\xfc\x90\xa8\x2a\x69\xae\x09\xc8\x5b\x22\xad\x4b\xd1\xb1\x15\x2e\x53\x35\x5b\xa6\x5b\x18\x04\xdd\x0f\x8a\x32\xb7\x9e\x2a\x14\x32\xc0\x31\x76\x46\x92\xd0\xf8\x11\xf0\x71\x9c\x54\xa7\x99\x1e\xc0\x18\x52\x37\x6b\xd6\xb1\x6b\xb6\xe2\x21\xdf\x69\x70\x76\x61\x86\xad\xa2\x5f\x31\xa4\xe4\xe7\x82\x3c\x87\xe5\x22\x50\xe7\xa7\xa5\xf2\xe8\xba\x57\x71\x24\x95\x2c\x31\x04\x7d\x53\x2e\x50\x04\x9c\xcf\x48\x20\x67\x46\x54\x6b\xf9\x0c\x8a\x4a\x42\x89\xc8\x8d\x89\x9a\x3d\xeb\xd7\x67\x1b\x99\x5f\xe9\x05\xd5\x8c\x90\xe2\x83\xd8\x3c\x2d\x15\xfa\x29\x5b\x57\xc6\x14\xa2\x39\x60\x5c\xed\x93\x85\x9c\xfe\x96\x6e\x2e\x92\xa9\x85\xdc\xb0\xff\xdc\x69\x72\xce\x4c\x19\xca\xad\x83\x28\xca\xbc\xd2\xd5\x37\x84\x06\x86\x84\xe4\x01\x36\xf7\xba\xb7\xdb\x3d\xe2\xbb\x46\x2a\xbe\x81\xd2\x43\x33\x2d\x59\x41\x4c\x5d\xc6\xe4\xab\xca\x45\x9c\x06\x37\x98\x04\x48\x49\xb3\x29\xc4\x7a\x0c\x6a\xad\x97\xa4\x6d\xc4\x6c\x6f\x21\xc7\x88\xe0\x52\x57\x6e\x4c\x90\x22\xc6\x51\x9e\x7d\x4d\x25\xc7\x05\xd5\x6d\x04\x5f\x6a\x6d\x52\x45\xfc\x85\x7b\xdd\x2b\x88\x20\x6e\x18\x1c\x85\xe1\x5c\xab\xd7\x62\xa3\xdb\xdb\x86\x2d\x46\x49\xf4\xaa\x19\x10\xc8\x73\x97\xe7\xd7\xa6\xd5\x6a\x3c\xd9\xdd\x2d\x7e\x3f\xd6\x8d\xfd\x6d\xbb\x20\xbd\x6a\xe8\x57\x7b\x7b\x7b\xef\xae\x1a\xbd\x20\x49\x6d\xf1\x34\x42\xfe\x40\x65\x54\x2f\x47\x24\x37\x3f\x5d\x20\xb7\x68\xd5\x1e\x67\x29\x87\x26\x7e\xa4\x59\x26\x6c\xcd\x8b\x5b\xbd\x02\x92\x07\xe7\x94\x0e\x94\xd8\xa0\xa4\x2c\xf4\x7d\x9a\xc6\x01\x12\xb3\x34\x9b\xd6\x16\x17\xd3\x1a\x71\xaf\xf6\x36\x5a\x15\x38\x46\x95\x07\xa4\x25\xad\xbe\xdb\xad\xeb\x28\x83\x9c\x5d\x5f\x73\xaf\x4b\x5c\x45\xb4\xa1\xf1\xa9\xae\x6e\x98\x70\x43\x5d\x09\xfd\x12\x28\x36\xf7\x92\xa6\x5c\x73\x23\x00\x15\x73\x0b\x0c\x06\x6c\x1b\x70\x39\x59\x2e\x02\xae\x95\xce\x31\x32\xa2\x5b\x25\x2a\xba\x16\xba\x59\x4c\xb3\x59\x49\xb6\x2c\x53\x36\x31\xbd\xff\x9f\x19\xc5\xcd\x64\x82\x7d\x5c\x71\xf0\x61\x16\x8c\xf9\xb8\x4d\x79\xbe\x9c\x52\xa3\x0d\xde\xd3\xef\xf3\x20\xe3\xf3\x3b\x59\x96\x66\xd4\x68\x64\x11\x55\x1b\xe2\x1b\xc7\xd7\x14\xac\x0e\x92\x4c\xc2\x1f\xfc\x68\x15\x18\xa4\xe0\x0d\x1f\x5d\xe7\xe1\x24\x86\xaa\xe9\x3f\x2d\xa6\xad\x26\x30\x33\x6e\x8e\xa6\xce\xf5\xd0\xf7\x34\xb0\xd4\x7e\x47\x51\x1d\x24\x85\x5a\x40\xbb\x31\x54\x64\x69\x8e\xf6\x7d\x75\x45\x1a\xc8\x26\x98\x92\x63\xa0\x74\xc4\x04\xff\x07\x6f\x46\x94\x4e\xff\xd8\x77\xfb\x43\x0d\x8f\x8d\xab\x22\x43\xe6\x6b\xc9\xb5\x35\x53\x52\x03\x29\xd2\x6e\x36\x68\x30\x4f\xb7\xb5\x31\x53\x3d\xdd\x2b\xf8\xcc\x9c\x5e\x39\x12\x35\x8b\x26\xf9\x5d\x74\x76\x9f\x98\x0f\x19\x76\xc4\xfb\xef\xe3\xc9\xa6\x22\x62\xc9\xc5\xf8\xde\x49\xbb\xc5\x97\x3e\x4f\x38\x4a\x4d\xc9\x0f\xf2\xa9\x43\x40\xe2\xeb\x37\xcf\xd5\xac\xb7\x3b\x2f\xde\x38\x99\xf3\x6a\x11\x65\xec\x3b\x90\x42\x61\x3b\x44\x80\xf6\x72\x3f\x94\xb1\xa4\xaa\xc9\x84\x8a\x29\x73\x6c\x9b\x46\x6c\xb2\xeb\x31\x6f\x66\x55\xd9\x2a\x89\x39\xb9\x4d\xc6\x49\x59\x6a\xae\x34\xd0\x53\xe3\x4e\xbe\x6e\xe5\x6f\x45\x0c\x3f\xe6\x08\xbb\xf0\xbf\xb7\x80\x05\xd7\x01\x58\xe9\x21\xc1\xf5\x11\x71\xbb\x5e\xf9\x42\x62\xa8\x2f\x90\xb2\x15\x6d\x4e\xf5\x4a\x18\x17\x44\x62\x2c\x77\x17\xd5\x32\xfc\x30\x66\x01\xf4\x46\x2a\xbf\x84\x77\xd4\xb6\xbf\x0c\x17\x37\xf4\x9e\x86\x94\x6f\x7f\xf1\xcc\x35\x8f\x12\xa4\xd6\xf7\xb7\x2b\x2e\x69\x4f\x72\x83\x4b\xd4\x59\xe6\xd2\x5d\x79\xfe\xe6\x06\x9a\x51\x30\x4d\xb0\x5c\x34\x2e\x58\x67\x52\x51\xce\x25\xb7\x4a\x45\x81\xbb\x47\xde\x28\x13\xac\x72\xe9\x5f\x36\xcf\x82\x7c\x25\xe1\xd3\x75\xc1\x3e\x5d\xc7\x67\xe3\xf5\x5e\x6e\xed\x94\xb3\xbb\x2d\x7b\x6b\x77\xe3\xf9\x94\xa4\xe2\x50\xb5\xc7\x2b\x31\x6e\xe5\x78\x6f\x32\x6f\x5d\x40\x5f\x33\x70\xb3\x90\x2e\x36\x6a\xda\x56\xd3\x6d\xf3\x95\x2d\xf9\xd7\x80\xee\x55\xa1\x21\xaf\x10\x56\xf4\xf6\x0e\xb8\x24\x7e\x40\x7f\x3e\x58\x5d\xdf\x73\x05\xee\x37\xcd\x47\x4f\x87\xcb\x7c\xf2\xc4\x22\xbd\xe1\x88\x82\x20\x56\xfe\x96\x21\x5b\x26\x09\x79\x1a\xea\xe6\xc2\x17\xc7\xfe\x28\xa5\x9b\x3e\x84\xed\x6a\xa9\x6e\x64\x6c\xd1\x5d\x26\xe5\xd1\xac\xbc\x7c\x39\xc3\xf5\x6f\x38\x6f\xfa\x64\xab\x3e\xf4\xb9\x02\xb2\x86\x66\x74\x15\x14\x72\x68\x89\xc8\x3b\x2b\xbd\x93\xaa\xbe\xdf\xf7\x4d\xe7\xa9\x45\xdf\x2b\x34\x47\x0c\xc0\x3e\xd0\xa6\xb6\x33\xb3\x58\x52\xab\xcf\xa8\x66\x12\xd9\xf0\x4c\xdf\x3c\x1a\x2a\xf4\xb5\x89\xaf\xfb\x7d\xee\xbf\x8d\xd0\xee\xc3\x99\xb5\xae\xc7\x3d\xda\x26\x38\x56\xcf\xa6\x4b\x8d\x0b\xc9\xb6\x39\x0e\x42\x63\xee\x21\x49\x10\x13\x35\xbe\xb8\x57\x44\xbe\x4a\x65\x99\x64\x84\xa9\x98\x69\x95\x4a\x1e\x4c\x15\x45\x4f\x0a\xec\x1c\xfe\xd3\x64\x15\xe0\xa3\xbc\xa2\xc6\x73\x06\xb3\x61\x3a\x56\xdc\x41\xc4\x6a\x3b\xd5\xc7\xd5\x7d\xab\xee\x1e\x1b\x45\x69\xf0\xdd\x69\xe9\x03\x31\xbe\x10\x23\x9d\x2f\xb8\xc3\x67\xf1\xf9\x74\xf4\x0e\xfc\xb9\xc1\x5c\x96\xc9\xed\x47\xb5\x5e\x62\xe1\xd3\x37\xf0\x1d\x05\x08\xb5\x82\x9e\xe8\x08\xca\xce\x9d\x8c\x97\xea\x4c\x5c\x46\xae\xb2\xe7\x3c\x6e\x0f\xfd\x66\xbb\xd5\xda\x88\x13\x6f\x90\x25\x65\x0b\xc6\x39\x25\x04\x4c\x33\x2e\xdf\x65\xfd\x02\xa2\xfc\x45\x5e\xbd\x31\x64\x0b\x12\xfb\xb7\x50\xd7\xa0\x94\xbe\xd9\x49\xee\x22\x56\xc0\x52\x5d\x7e\xbc\x43\xb6\xd3\x71\x49\xb2\xc1\x94\x0c\x4d\x51\x69\x05\x0f\x08\xcd\xbf\x8c\x60\xa7\x63\x23\x56\x24\x67\x6b\xc9\xf6\x57\x65\xbc\x5b\x6a\xc3\x24\x97\xaa\xe9\x3f\xb5\xba\x6d\xa4\x31\x1c\xeb\x1e\x51\x3c\x6e\xbb\x6e\xdf\xd5\x1f\xcb\x58\x8d\x4e\xbf\xe7\x98\x36\x7d\xcf\x67\x9a\xd6\xcb\x68\xe7\x09\x85\xa9\x7a\x8f\xd6\x03\xaa\xa8\x8c\x3c\xfb\xb3\x59\xa5\xd1\xa3\xbf\x27\x4f\xe9\xef\xf0\xb9\x1d\xca\x4a\xd3\xb1\x27\x59\xa5\xe5\xda\x49\x5c\xe9\x75\xec\xf8\xb2\xd2\x79\x66\x67\xcb\x8a\x3b\xb2\x3f\x09\x2a\xdf\x1f\xd8\x52\x55\x1c\xcf\x5e\xe4\x95\x23\xd7\x5e\xc4\x95\x41\xc7\x3e\x9f\x56\x8e\x8e\x6d\x9c\xac\x3d\xb4\x27\x51\xa5\xd5\xb6\xf3\xac\x32\x74\xed\xb1\xaa\x34\x3e\xe6\x2b\x39\x5a\xd3\x81\xc6\x44\x6a\x66\xff\xf4\x9f\x7e\xf0\x93\x7f\xff\xe3\x9f\x7c\xf1\x8f\xdf\xfe\xe9\xef\xda\x3f\xfd\xf2\xf3\x9f\xfd\xfd\x9f\xe8\x87\x9f\x7f\xf5\x7b\x3f\xfb\xdb\x3f\xff\xf6\x8b\x7f\xfe\xf9\x57\xbf\x7f\xf3\xc5\x7f\xff\xd1\x8f\xbe\xfd\xf2\x3f\xe8\x45\x53\x2e\x73\x35\x9e\xd9\xad\x2c\x48\xbe\xfe\xbb\x20\x52\x76\x4f\x86\x32\x03\x42\x0e\x95\xdd\x09\x72\xc8\xf8\xbf\xfe\x7a\x69\xbf\xfe\xab\x6f\x7e\xe7\x9b\xcf\xbf\xf9\xfc\xf5\xbf\xbe\xfe\xe2\xf5\x97\xf6\xb7\x7f\xf6\x37\xdf\xfe\xc5\x3f\xfc\xcf\x0f\xff\xd2\x76\xd4\x22\xf8\xfa\xc7\x69\x6c\xd3\xe7\x24\xcb\xe9\xf2\xeb\x1f\x2a\xfa\xfc\xe7\x28\x0b\x54\x44\x9d\xb1\xba\x88\xec\xd7\x3f\xfe\xe6\x0f\x5e\xff\xdb\xeb\x7f\x79\xfd\xa3\x6f\x7e\xa0\x69\xd8\xed\x3c\x88\x23\x82\xfd\xde\x12\x40\x2c\x0e\xa0\xac\x89\x3d\xfc\xfa\xab\xec\xc2\xfe\xcf\x3f\xc4\x92\x79\x94\x04\x96\x06\xc7\x21\x6b\x0f\x39\x29\x12\x19\xf2\xe4\x0b\x04\x1c\x96\x00\xb9\x72\x49\x60\xfe\xd4\x62\x11\xb0\x28\x2c\x96\x03\x9a\x9f\xcd\x2c\x16\x06\x37\x21\x0e\x8b\xff\xae\x9e\x58\x38\xfc\x51\xab\xc5\x12\x22\x47\x99\x59\x2c\x26\x34\x93\xd8\x62\x59\xd1\x37\x59\x97\x16\x0b\x8c\x2e\x3f\x97\x16\x4b\x0d\xcd\x4f\x02\x8b\x45\x47\x6b\x2a\x8b\xe5\x87\x26\xff\x5a\x2c\x47\x7a\x8a\x2d\x16\x26\x7d\x13\x3b\xb5\x58\xa2\x94\x3b\xe6\x16\x8b\x95\x16\x8c\x2c\x96\x2d\xfb\x11\x8b\x05\x4c\x70\x9e\x05\xcd\xa0\xcb\x7c\xd6\x86\x70\xbe\x58\xf0\x27\x1c\xa9\x98\x45\xd3\x59\x8c\xff\x73\x31\x8e\x03\x2e\xc1\xb1\x19\x55\x01\x68\xe3\xc3\x28\x89\xac\x97\xab\x11\x55\x33\x8d\xee\x3a\x53\x0a\x70\x70\xca\x27\xfd\xe7\x7e\x0b\xe9\x0c\xc0\xfd\x91\xab\xef\xc1\x4b\x50\xc6\x83\x81\x53\xd5\xd9\x94\x63\x6e\x26\x54\xfc\xcd\x06\xd9\xf0\x34\xe5\xcb\x2e\xce\xaf\x52\xf8\x9c\x0d\xba\x14\x88\xf5\x15\x11\x3b\xc7\xff\x0d\x00\x00\xff\xff\x8b\x93\x32\xf5\x45\x2d\x00\x00") +var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x5a\x5b\x6f\x23\x47\x76\x7e\xef\x5f\x51\x96\xe3\xcc\x4c\xd0\x24\x75\x19\xcd\x8c\x65\x6b\x63\x8a\x6c\x4a\xdc\xe1\xcd\xdd\xe4\x8c\xc7\x03\xa1\xd5\x62\x17\xc9\xb6\x9a\xdd\x74\x57\x53\x1a\x19\x41\xb0\x46\x1e\x72\x01\x82\x3c\x24\x48\x10\x20\x08\x92\x87\x24\xc0\xe6\xb6\x8b\xbc\xd8\x89\x93\x17\x27\xef\xe3\xff\xb0\xf1\x66\x9f\xf6\x2f\xe4\x3b\xa7\xaa\xc9\xa6\x46\xd6\x66\x81\xac\x2f\x62\x75\x75\xd5\xa9\xaa\x73\xfd\xce\xa9\x7e\x5b\xf4\x9c\x67\x8e\x2b\xf8\x4f\xb7\xdf\x6c\xb7\x5e\x88\xe1\x49\xdb\x13\xad\x76\xc7\xb1\xde\x16\x83\x8e\x53\xf7\x1c\xd1\xad\x3f\x75\x44\xe3\xa4\xde\x3b\x76\x3c\xd1\xef\x89\x46\xdf\x75\x1d\x6f\xd0\xef\x35\xdb\xbd\x63\xd1\x18\x79\xc3\x7e\x17\x9d\xbd\x56\xfb\x58\xcf\xb4\xde\x13\xf5\xc5\x42\x24\xc1\x5c\x8a\x7c\x16\xe4\x42\xcd\xd2\x2b\x25\xd2\x44\xc8\x4b\x99\x5d\x8b\x45\x30\xc5\x8b\x28\x8f\xa5\x55\x1f\x0c\xfc\x5e\xbd\xeb\x88\x43\x71\x9c\x4e\xd5\x01\xfe\x8a\xe3\x28\x17\x9e\xcc\x2e\xa3\xb1\x04\xa5\xc6\x2c\x48\x30\x1c\x7d\xd1\x44\x5c\xa7\x4b\x91\x2d\x13\x11\xa7\xe3\x20\x8e\xaf\x2d\x77\xd4\xf3\x47\x1e\x76\x7f\x28\xa6\x51\x8e\xd1\x4e\x94\xcf\x64\x26\xb6\x42\x79\xb9\x65\x8b\xad\x45\x96\x86\x5b\x22\x45\x47\x2e\x55\x8e\x9e\x50\x4e\x82\x65\x0c\x5a\x4a\x8f\x61\x0a\x38\x3a\x6d\x00\xcf\x96\xf5\x32\x93\x8b\x54\x45\x79\x9a\x5d\x9f\x5a\x6e\xbf\x3f\x14\x87\x96\xd7\x70\xdb\x83\xa1\x3f\x7c\x31\xa0\x61\xe7\x81\x9a\x61\xa5\xa6\xa1\x54\xef\x79\x6d\x31\x9e\x05\x99\x92\xb9\x45\x0f\x3e\x58\xe5\x7a\x0e\x4d\x7c\x4f\xb4\xd2\x6c\x2c\xcd\xb1\x13\x79\x25\xd6\xd4\x45\x9e\x8a\x73\x29\x16\x59\x74\x19\xe4\xd2\x6a\xf5\xdd\x86\xe3\x0f\xdc\xf6\xb3\xfa\x90\x56\x99\x04\xb1\xa2\xe3\x1f\xc7\xe9\x79\x10\x8b\x79\xf0\x2a\x9a\x2f\xe7\x62\x9c\xc9\x20\x8f\xc0\xc9\x38\x9a\x83\x25\xe9\xa4\x4c\x71\x81\x93\x2f\x95\xcc\x6c\x51\xd9\x11\x73\x19\x24\x4a\x24\xa9\x1e\x69\x75\xeb\x1f\xf9\x0d\xd7\xa9\x0f\xdb\xfd\x9e\xdf\x69\x77\xdb\xd8\x1f\x86\x61\x85\x41\x90\x8f\x67\x82\xf8\x23\x3e\x5d\xca\xa5\x14\xb1\x4c\xa6\xf9\xcc\xc6\x9a\x17\xcc\xf7\x40\x89\x38\xc8\x20\x03\x34\xb0\x96\x8a\xce\x21\xb8\xc1\xa8\xd3\xf1\x5d\xe7\xc3\x91\xe3\x0d\x7d\xfc\x1d\x39\x7e\xc7\xe9\x1d\x0f\x4f\x40\x76\x67\x1b\xff\x80\x95\xcb\xe8\x14\xf4\x7b\xcb\xf9\x39\x36\x56\xde\x6a\x24\x95\x56\x8c\x20\x93\xac\x1c\x32\x14\x51\x02\x05\x01\xab\x5e\x2d\xe2\x14\xbd\xa4\x23\x96\xf3\xd1\xa0\xd3\x77\xc1\x96\xfa\x31\x54\xcd\xef\x8d\xba\xa0\xbe\xbb\xbd\x41\x34\x52\x6a\xf9\xdd\xe4\x98\x4c\xdb\xf3\x46\x37\x88\xec\x6c\x12\x59\xb1\x37\x9d\x83\x59\xea\x06\x91\x60\x9c\x47\x97\x51\x7e\x2d\x26\x52\x86\x56\xcb\x71\x9a\x3e\xb3\xb3\xdf\x05\x1b\x0d\xc1\x7d\xd0\x7b\x16\xc4\x60\x1f\xc8\x9d\x41\x09\xe7\xb2\x32\x4e\x71\x94\x33\x48\x22\x0f\x44\x1e\x4c\x6d\x12\x4e\x28\xce\xaf\x45\x3d\x09\xb3\x34\x0a\xc5\xf7\x30\xaf\x4a\x3b\xa9\x27\x58\xeb\x32\x88\xd1\xc7\x93\x20\x34\xf0\x7e\x2b\xc1\xea\x5a\x7d\xc3\x48\x05\x60\xfb\x96\xb8\x8a\xe2\x58\xcc\x82\x4b\xb2\x2c\xb9\x52\x67\x95\x5f\xc7\xa4\x2d\x5d\x62\x5d\x94\x4c\xd2\x03\x31\xcb\xf3\x85\x3a\xa8\xd5\xa0\xd5\x32\x4e\xa1\x1a\xaa\x3a\x4d\xd3\x69\x2c\xab\x38\x64\xed\x4a\x9e\xd7\x96\x8b\x10\x9a\xa7\x6a\xbb\xdb\x3b\x0f\x6b\x3b\x3b\x35\x6f\xb9\x58\xa4\x59\x5e\x99\xa4\x59\xa5\x74\x80\x4a\x94\x54\x1a\xb3\x2c\xc5\xf3\xde\xbb\xfc\xd2\x6c\xdf\x1a\x9e\x38\x5d\x07\x6c\x80\x8c\xfc\xae\x33\xac\xfb\xc3\xfa\x31\x58\x71\xf6\xf6\x64\xb2\xbf\xf7\x70\xef\x8c\x55\xa0\x1a\x84\xf3\x28\xd9\x54\x04\x52\xd2\xbb\x45\x46\x46\xbd\x29\xb1\xfd\xed\x37\x75\xe9\x4e\x12\xae\x33\xe8\xdf\x49\x22\x49\x73\xb8\x98\xbb\x89\xf4\xfa\xc3\x76\xe3\xa6\x02\xee\x6f\x90\x49\xb3\x69\x90\x44\x9f\x69\xb3\xbc\x8b\x56\xdf\x3d\x7e\x63\x3f\xd6\xcb\x79\x90\x5d\x84\xe9\x15\x73\xc8\x49\x48\xc8\x10\x6f\x16\x42\x03\x30\xef\x1c\xe6\x7e\x01\x9b\xc8\x65\xa2\x40\xde\x72\x7a\xf5\xa3\x8e\xe3\xc3\xc1\x34\x61\xc4\x3d\xc7\x3f\x82\x49\x3f\x2d\xb9\x8b\x4e\xa4\xd8\x2b\x8c\x97\x2a\x4f\xe7\x62\xe4\x76\x2a\xde\x98\x64\x59\x3a\x26\x3c\x27\xef\x8d\xec\x3a\x4a\x2e\x94\xb8\x9a\xc9\x04\x0c\x4d\x42\x99\x45\xc9\x54\x74\xcd\x8e\x40\x0e\xd2\xc6\xea\xc1\x7c\x81\x5d\xc1\xc1\xda\xf3\x60\x9a\xc0\xcd\x69\x9f\xef\x83\xba\xef\x35\x48\x09\x3c\x38\x3b\xeb\x25\xa4\x0a\x47\x77\x6a\x0d\xdc\xfe\xb0\x0f\xb5\xc0\xbe\x48\x0b\xad\x66\xbf\x5b\x6f\xf7\xf0\xc4\x6e\x7b\x96\xaa\x9c\x3d\x2b\xcd\x47\xe7\x3b\xf7\x8b\xf1\x0f\x48\x5f\xdf\xb9\xaf\x87\xe3\xe1\x9d\xfb\x27\xc3\xe1\xc0\x1f\xf4\xdd\xe1\x03\x55\xb3\xf8\xa1\xde\x6c\x92\xb7\xdf\xae\xf2\xbf\xd6\x6a\x00\xfa\xf6\xc8\xeb\x80\x05\xb4\x88\xb8\xdf\xec\x7e\xfc\x80\xce\xcf\x67\xa0\xd8\x22\xae\xd2\xec\x82\xf4\xee\xbe\x5a\xc2\xe1\xe1\xf4\x9e\x77\x22\xb4\x11\x3c\x80\x8d\x43\x15\x14\x1d\x1f\xa6\x21\x94\x0e\x3f\x55\x90\x6b\x27\x62\x8e\x1d\x8b\x71\xa0\xc0\x44\x0a\x40\x61\x4a\xaa\x03\x77\x0e\x1e\xc2\x89\x8f\x75\x80\x2a\x9b\xe3\x25\x39\x02\x9a\x5c\x8f\x73\x28\x09\x39\xea\x24\xbe\x36\x01\x2c\xe3\x75\x35\xaf\x40\x28\x94\x14\x8c\x88\x20\x51\x50\x14\x33\xb1\x35\x3a\x17\xbf\xac\x5a\x9d\x7e\xa3\x0e\x57\x7b\x07\xc3\x56\x8c\x79\x93\x67\x88\x53\xda\x73\xf0\xa2\x13\x04\x8f\x25\x34\x80\x05\x4e\x4b\x06\x97\x41\x14\xd3\x6b\xab\xd9\xf6\x58\xb5\x68\xd8\x5a\x9d\x9e\xcf\x24\xc7\x53\x18\xac\x38\x5f\x46\x71\x0e\x7d\x2e\xed\x3e\xa5\x03\xe4\x55\xcb\x1b\xd6\xdd\x21\x4d\xf5\x61\xb6\xcf\x38\x1c\x17\x14\x9a\xe9\x3c\xc0\x24\x8d\x05\x38\xe2\xc1\xc3\xa7\x4a\x9b\xc6\x38\x26\xe3\xc0\xa9\x2c\x9a\xbb\x52\x93\xb5\x0a\x50\x78\x82\x4b\x12\x89\xb6\xb6\x5f\x40\xc0\xe8\xc1\xee\xee\x8d\x69\xb7\xec\x3c\x86\x9d\xc0\xa6\x20\x17\x9e\xd9\x69\x7b\x43\xa7\x57\x10\x78\xe7\x7e\x41\x8d\x77\xe0\xa6\xe0\xd4\x22\xc8\x67\x64\x58\x44\x23\x8c\x32\x39\xa6\x88\xbb\x81\x27\xee\xfd\x76\xad\xaa\xd4\xec\x9e\x8d\xf5\x72\x56\x14\xed\xa6\x53\xe6\xde\xbd\xda\x0c\x1e\xb4\x06\x23\xd2\xa3\xaa\xbc\x2e\x4b\x75\x50\xa7\xa8\xc9\xa2\x32\x74\x59\xad\x28\xd2\x63\xba\x9c\xc3\x29\x07\xe8\x9b\x44\xb1\x34\xb6\xca\xc1\x7a\xb1\x3c\x8f\xa3\xf1\x85\xb8\x90\xd7\x58\x81\x34\x17\x74\x2b\x78\x9a\xca\xc4\x06\xb5\xd2\xd6\xd4\x35\x4e\x3b\x2f\xd1\x5a\x9d\x40\x6f\xe3\xa9\xf3\xc2\x1f\x52\x20\x5f\x6d\x65\x40\xc7\xc5\x2e\x4a\x24\x37\xce\xba\xee\xbf\x27\x82\x04\xde\x4a\x12\xca\x93\x88\x4d\x93\x08\x8f\x29\x38\x70\x35\x8b\x60\x66\x24\x1f\x3a\x0d\x9c\xce\x6a\xad\x63\x62\x35\xaf\x54\xa2\xcf\xa6\x16\x46\x63\x3a\xf4\x95\x51\x3b\xb6\x2e\x89\x33\x22\x82\x70\x7c\xa6\xb3\xaa\xe8\x33\x8c\x00\xce\x43\xa8\xcc\x32\xa9\x16\x29\xa6\xe1\xf4\xf9\xf5\x42\x5a\xdd\x76\xaf\xdd\x1d\x75\xf9\x44\x5e\xfb\x63\x44\xa7\x13\xa7\x51\x76\x90\x85\x39\x34\x9a\x3d\x82\x65\x14\x77\x0b\x98\x38\x87\xb9\x59\xfd\x56\x8b\x1d\xab\xc1\x84\x7a\x5a\x61\x1c\x6e\x7f\x34\x44\x5c\xea\xf4\x8f\xcb\x08\x4d\x26\x32\xa3\x5d\x83\xc7\x88\xb8\xe8\xf9\x35\x51\xad\x4d\xc9\xe3\x8c\x25\x94\xb0\x32\x0e\x0e\xf3\x0c\xc0\xa0\x12\x2e\x33\x8e\x12\x87\x4f\x1e\x3f\xda\x9e\x6d\xcf\xb7\x95\xa8\x90\x37\x3c\x9c\x5f\xd3\x4f\xd5\x78\x5a\x0a\xd0\xd6\x7b\xa0\xd3\xcf\xc4\x04\x71\x57\x04\xa2\xba\x98\xbc\x62\x05\x60\xe5\xcf\x72\x68\x3f\xbf\x21\x97\xf1\x1c\x0c\x27\x78\x4d\x8b\x45\x13\xcd\x40\x38\x7f\x98\xf9\xfd\x30\x05\x15\xb2\x73\xf8\xc0\x29\x24\x04\x7e\xea\xf9\x3c\xd1\x40\x4f\x62\xea\x03\xbd\x6d\xc0\x84\x44\xa9\x58\x2c\x2e\xc6\x6a\x67\x57\x54\xc8\xc2\x40\x95\x57\xaf\x90\x4c\xf5\x13\x54\xa9\x92\xa4\x98\xa6\xfe\x6f\xb3\x30\xb2\x98\x44\x2f\x14\x35\x42\xa9\xac\x86\x03\xaf\x41\x19\x03\xb8\xa9\x03\x56\x8d\x51\x4b\xad\x58\xc6\x22\x31\xde\x36\xc0\x50\xc4\xf2\xa3\x05\xa1\xde\x98\x40\x0e\x99\x27\xa9\x78\x4c\x87\x22\xa5\x54\x39\xd8\x3d\xd6\x7c\x23\xfb\xdd\x34\x0a\x66\x01\xa9\x39\xb4\x0d\xcc\xe2\x10\x81\x6e\xf9\x4a\x8e\x97\x60\x30\x39\x35\xc4\xfe\x9b\x26\x6a\xe6\xf3\x44\x8a\x2c\x94\xe8\x20\x82\x04\x9c\xc9\x34\xeb\x00\x41\x46\xb3\xb9\x93\x13\xa1\x98\x64\xc2\x98\x9d\x77\x79\xfc\x71\x7b\x20\x94\xc6\x5a\x45\x40\xe7\xbe\x52\x14\x0f\xb4\x4a\x73\xa2\x34\x61\x2f\x9b\x54\xe2\x74\x3a\x85\xdc\x19\x3b\xd9\x30\xa8\x84\x7c\xe1\x16\x79\x15\x0d\x11\x0d\x72\xde\xb2\x3a\x75\xce\xcc\x08\x6b\x10\xe3\x68\x84\xa5\xb7\x4e\x90\x62\x15\xfd\xe3\x29\x80\x78\x3e\x9b\x2b\xe6\x15\xb8\x11\x65\x1b\x76\xa6\xd3\x00\x71\x9f\xbc\x17\xf2\x09\xe8\x8e\x01\xa1\xd0\x47\xb2\xb5\x07\x08\xf8\x6a\x56\x35\x53\x7c\x4c\xf1\xc9\x34\xd5\xa9\xe5\x34\x77\xf7\xf7\x77\xde\x65\xa8\xf4\xc8\x72\x1a\x4d\xaf\x2e\x84\x79\x72\xb9\xcd\x4f\xdb\x0f\x9f\x58\xcd\xd5\xe3\xce\xf6\xee\x43\x60\x08\x62\x1b\x32\x2c\x79\x5a\x4a\xe6\xe6\xd7\xea\xd3\x98\xd3\x39\x58\xc9\x14\x26\xaf\x0f\x8c\xce\x28\x97\x7b\x78\x11\xe5\xf7\x94\x0e\xad\xe3\x59\x4a\x69\x63\xf3\xa8\xc8\xd6\x78\xae\x75\xd2\xf7\xc8\xb1\xef\xec\x3e\x66\xdc\xb0\x73\xb0\xb7\xb7\xfd\xc8\x32\x89\x27\x99\xaa\x65\xb2\xc8\x0c\xbe\xde\x1a\xd4\x3d\xef\x79\xb3\xc8\xdf\x36\x96\x45\x18\xb7\x85\x2c\x92\x4c\x03\xca\xb1\xb3\x4c\x7e\xba\x84\x4f\xd5\x1b\x43\x80\x89\x26\xd7\x95\xc9\x32\x8e\xb7\xe0\xf3\x3a\xab\x04\x53\x8f\x2f\xc8\x16\xfb\x67\xfe\x6f\xe5\x51\x78\xbe\xc5\x29\x82\x08\xce\x55\x1a\x43\x07\x57\xea\x99\x70\x38\x81\x3a\x67\x9c\x8d\x19\x74\x62\x95\x34\x8d\xfd\x4d\x35\x3c\x07\x07\x0d\xde\x26\x38\x36\x5e\x42\xc2\xc8\x63\xdb\x3d\x28\x33\xf2\x35\x40\x89\xb2\x2f\x7c\xeb\x2d\x9d\xd5\xeb\xa4\x7f\xd8\x17\x4f\x1d\x67\x20\x5e\xf4\x47\xae\x60\x76\x90\x3a\x0b\xaf\xde\x72\xde\x7a\xcb\xf2\x1c\x64\x8f\x43\xf2\xab\x20\xf0\xd6\xdb\x1f\xb4\x9a\xce\x73\x17\xff\xfd\xfa\x6f\xdc\x27\x2d\x5f\xe6\x29\x29\x68\x44\x38\x72\x2e\x39\xea\x86\x01\xfc\x03\x5c\x65\xbb\x87\x3c\xb1\xeb\x74\x8f\xe0\x39\x9b\xf5\x17\x80\x8a\xe2\xb1\xd5\xe8\xf7\x9f\xb6\x1d\xce\xdd\x4b\x52\xf0\x83\x2b\xa9\x48\x5d\xcd\xeb\xd5\xbc\xf2\x98\x28\x41\x68\x0c\x23\xcd\x48\x97\x52\x6b\x45\xbe\x2c\x7d\x75\x2d\x82\x25\x04\x93\xe4\x85\xbd\xcd\x64\x10\x12\xc6\x22\xec\x61\xb2\x0e\x7e\x40\x6a\x00\x90\xe2\x51\xba\xdd\xff\xe8\x85\x5f\x1f\x21\x91\xe9\xc1\xd6\x75\x72\x6c\x34\xe1\xa3\xca\x73\xe7\x88\x5e\x55\xa8\xc3\xa0\x5b\x70\xfd\xd4\xaa\x37\x86\xed\x67\x94\xf7\x34\x91\xf3\x52\x0b\x41\x07\x71\x81\x0e\xb6\xf3\x64\x1b\xc4\x91\xfc\xfb\x5a\x87\xbe\x73\x10\x1c\x17\xef\xa6\xc0\x90\x69\x32\x89\xb2\xb9\x90\x15\xa0\xa5\x98\x4d\x3e\x93\x53\x60\x14\x1d\x30\x40\xf3\x98\x10\x8a\xeb\x3b\xc0\x45\x1d\x9f\x8b\x2d\x6e\x77\x03\x66\x49\x0d\x22\xd9\xbc\xcd\x64\x2c\x40\xaa\xc5\x0a\x51\xe0\x09\xe0\xdc\x74\x99\x68\x40\xba\x8e\x6b\x4c\xde\xe5\xf3\x97\x88\xf2\x16\xe7\xf0\xbb\x88\xb9\x53\x8e\x94\xd8\xea\x65\x24\xaf\x40\xf6\x3a\x9f\xc1\x43\x55\x2d\x2a\x01\xb4\x91\xa2\x7b\xed\xe3\x1e\x24\xfd\xac\xed\x3c\x2f\x51\xe8\xd2\x69\x28\xcf\x9a\x18\x99\x14\x0e\x8f\xf2\xaa\xd6\x0b\x9f\x4e\x53\x1e\x4e\x51\x2b\x44\xba\x1c\xc5\xeb\x04\x16\x90\x69\xb6\x3c\xe7\xac\x15\xf2\x47\x76\xce\xba\x5e\xd3\x79\x7f\x6d\xe7\xd1\x7e\x41\xf3\x2e\xa9\xae\x16\xf9\xae\xb1\xfd\xef\x62\x82\xc9\xc9\xc6\xc1\x22\x07\xd2\x17\x9c\xa4\x6b\xf5\x7a\x43\x4a\x86\x76\xa3\x3e\x18\xc2\xb0\x40\x83\xc2\x3e\x34\x07\x19\xc5\x2c\x4d\x2f\xc8\xa5\x9d\xe0\x57\xe4\x81\xba\xd8\xa8\xb5\x58\xb7\x14\x50\xd8\x63\xc7\x11\x81\xd5\x3c\x9a\x4b\x8a\xa3\x10\x00\x6c\x1a\x70\x47\x59\x4d\x87\x94\xca\xf5\x87\xed\xae\x03\x50\x62\x0a\x10\x75\x16\x7e\x94\xb0\xe5\xcb\x12\x22\xa0\xdd\x79\x4f\xdb\x03\x7f\xd8\xf1\x7c\xcc\xa3\x4a\xdf\xfa\x88\xeb\x5c\x76\x16\x29\xc6\x9f\x54\x42\xc8\xe6\xfa\x98\x58\x55\x06\x40\x72\x9c\xc3\xde\x2c\xa2\x50\xfe\x8a\xf0\x8a\xa4\x4f\x1f\xbe\x59\x22\x7b\xb4\x9c\x4c\x38\x36\x73\x1c\xa1\xa4\x14\x99\x52\x22\x63\x1b\xe1\x45\x2e\x4c\x65\x29\xe2\x58\x6c\x4a\x7b\x61\x9a\xdc\x03\x5c\x48\x70\x88\x2b\xca\x56\xf9\x25\x60\xa3\xd3\x6b\xfa\x47\xa3\x56\x8b\xb0\x97\xd3\xd3\x0c\xa2\x7d\x93\x61\xc3\xa9\x22\xe2\x5f\xeb\x7c\x80\xad\x47\x57\x16\xbd\xd1\xd1\xf7\x9d\x86\x86\xf3\x45\x95\x91\xe1\x3c\xeb\xa4\x4e\x03\x08\xbd\xcd\x59\xd9\xd4\x3c\x5f\x54\xa7\xd4\x26\x45\x3b\xd8\x7f\xf2\x18\xef\x3e\xfc\xd0\xbc\xf8\xf4\x53\xee\x7d\xf8\x88\x33\xff\x34\x97\x36\xed\x98\x01\x04\x81\x29\x64\xce\x4a\x23\xd2\x2d\x0c\x81\x13\xf7\xba\xc3\x81\xa7\x4b\x35\x88\xd1\x54\xf5\xa9\xc2\x98\x28\xa2\x73\xa6\x04\x21\x50\x31\x94\xe7\x62\x25\x62\x00\xe0\x78\x3a\x9f\x53\x0a\x1e\x72\x19\xcf\x6d\x35\xc4\xa3\x87\xdb\xef\x56\x45\x5b\x2f\x64\xf2\x16\x83\x1b\xd4\x9a\x10\x78\xc4\x0b\x05\xf1\x15\x1c\xee\x6a\x3d\x13\xf2\x4a\x88\xf7\xc4\xe9\xf4\x09\xab\x69\x65\xd5\x61\x85\x60\x27\xbb\x47\xaa\x0b\x84\x11\xc9\x0b\xfe\xb3\xba\x72\x0c\x3c\x87\x88\x34\x74\x3d\x61\x35\x9e\x74\x7f\x93\xe0\x46\x7e\xc0\xe0\x54\x67\x1d\xd8\x09\xc6\xf9\xb4\x1d\xed\xc5\xd9\x5b\xb1\xaf\xd2\x71\x92\x8f\x57\x06\xaf\x69\xf9\xc4\x55\xd1\xa7\xd4\x99\xc2\x22\x3c\x8e\xe2\x85\x95\x8c\x27\x15\x72\x49\x60\x56\x69\xa2\xd2\x2a\x5e\xa8\xb7\x76\x60\x48\x11\x23\x1c\xa9\x3c\x8e\x62\xbd\x4f\xd8\xb3\xdd\x22\xef\xb0\x86\xf9\xb7\xe0\x51\xad\xdd\x77\x01\x52\x33\x62\x8d\x48\x59\xbf\x34\x6e\x0f\x43\xa0\x06\x80\x35\x92\xe6\xfe\xde\xee\x6e\x55\x0c\xe9\x0c\x06\xbb\x7d\x42\x9e\x15\x4d\xc9\x5a\xbb\x1a\x8c\x03\xd2\xf1\xcf\xb6\x48\xbd\xb7\xc4\xfb\xfc\xfa\x83\x52\x6e\xf0\xbd\x33\xa1\xad\xd3\x6a\xb9\xfd\x2e\x1f\xb4\xcb\x9b\x58\x47\x38\xf6\xfb\x8b\x40\xa9\xab\x34\x0b\x0d\xb6\x29\xc3\x1a\x62\x4c\x2e\x5f\xe5\x80\xd3\xf3\x98\xcc\x30\xa0\x42\x45\x02\x41\x5e\x4a\x43\x9c\x0d\x36\x4d\x90\x25\xaf\x50\xea\xc9\xb0\xdb\xf1\xeb\x9d\x21\xc5\x6c\x0a\x81\x2b\xc6\x59\x2f\xc7\xf0\x10\x9b\x98\x4d\xce\xe1\x48\x34\x34\x82\x89\x6e\xf1\xb9\xa8\x97\x47\xde\xa8\xc4\x9b\xc1\x56\xbd\x09\xd7\xc9\xd1\x57\xf7\x14\x48\xc9\xbc\x37\xf0\xeb\xb8\x01\x53\xc7\x76\xe1\x8a\x4b\x2e\x71\x83\xe2\xa3\x6d\x60\x1e\x50\x7a\x56\xa7\xf0\xf2\x68\xbb\x20\xa4\xf7\xa2\x01\x57\x69\x2f\x20\x90\x20\x1f\x66\xcc\x40\xb5\x1e\x23\x0b\xcc\xe2\x09\x07\x88\xd3\x39\x55\x8f\x0e\xf3\xf1\xc2\xa6\x97\x87\x07\x8f\xf6\x1e\xbf\x6b\x17\x1c\x3e\x9c\x07\xe3\x20\x83\x0d\x84\xe7\x87\xdb\xf6\x22\x4d\x63\x86\xc2\x87\x70\x53\x76\x14\xc6\xd2\x37\x1e\xfc\x50\x87\xfe\x62\xe5\x03\x71\xb6\x46\xa4\x3b\x3b\xbb\x3b\x3b\x67\x85\xd9\x12\xdc\x50\x54\xf2\xbb\x9d\xa7\x94\xd2\x18\x96\x16\xec\xbd\x8d\x9f\x88\x6e\xcf\xda\xcd\x4d\x86\x0e\xb2\xf4\x32\x22\x58\xc4\x98\x63\x0a\x03\xa6\x73\x2b\xbd\x2d\x0c\x39\x60\xd3\xe4\xd2\x05\xa2\x7c\x31\xea\x5a\xd2\xed\x0a\x2d\x0b\x97\xa8\x77\xb6\xce\xab\x80\x88\xab\xd3\xaa\x38\x63\x20\x6a\xde\xaa\xb3\x5f\x19\xf7\x08\xd1\x1f\x00\x0b\x56\xf0\x5b\x09\x33\x0a\x91\x35\xee\x14\xa1\x4a\x8a\x0d\x23\x28\xc3\xdf\x16\x3b\x23\x58\x7f\x50\xac\xf7\x41\xb1\x47\x3f\x27\xc7\x78\xb6\x62\x93\x6f\x2e\xb1\x0c\xa4\x2e\x4e\x82\x35\x3d\x73\xe4\x31\xc2\x77\x24\x35\x88\x34\x18\xd5\x40\xd3\xc8\xa7\x92\xbd\xaf\x11\x0a\xd5\x32\x74\x44\x23\xbf\x55\xf0\x0b\xba\xca\x98\xc6\xa8\x71\xd9\x5d\x6a\xf7\xa3\x09\x02\x69\x8f\x5c\xe7\x4d\x04\xa2\x90\xc0\xeb\xf5\x37\xe6\x32\xc6\x30\x06\x4a\xc0\x53\x53\x29\xc0\xc7\x7a\xeb\xb0\x1a\xe2\xe3\xca\x74\x36\x88\x3c\x41\xac\xd9\xb6\x8e\x1b\x7e\x61\x35\x0c\x2c\x40\x44\xbf\x58\x53\x89\xa3\x89\x64\x3a\xb7\x4c\xf7\x1c\xcf\xd3\xb7\x4b\x2d\x67\x73\xbe\xf5\x72\x11\x8d\xa9\xf2\x08\xf0\xfc\x0c\x49\x85\xeb\x8f\x06\x9d\x7e\xbd\x59\xce\x95\x6b\xc1\x25\xfe\x66\x8a\xaf\xfc\x90\xa8\x2a\x69\xae\x09\xc8\x5b\x22\xad\x4b\xd1\xb1\x15\x2e\x53\x35\x5b\xa6\x5b\x18\x04\xdd\x0f\x8a\x32\xb7\x9e\x2a\x14\x32\xc0\x31\x76\x46\x92\xd0\xf8\x11\xf0\x71\x9c\x54\xa7\x99\x1e\xc0\x18\x52\x37\x6b\xd6\xb1\x6b\xb6\xe2\x21\xdf\x69\x70\x76\x61\x86\xad\xa2\x5f\x31\xa4\xe4\xe7\x82\x3c\x87\xe5\x22\x50\xe7\xa7\xa5\xf2\xe8\xba\x57\x71\x24\x95\x2c\x31\x04\x7d\x53\x2e\x50\x04\x9c\xcf\x48\x20\x67\x46\x54\x6b\xf9\x0c\x8a\x4a\x42\x89\xc8\x8d\x89\x9a\x3d\xeb\xd7\x67\x1b\x99\x5f\xe9\x05\xd5\x8c\x90\xe2\x83\xd8\x3c\x2d\x15\xfa\x29\x5b\x57\xc6\x14\xa2\x39\x60\x5c\xed\x93\x85\x9c\xfe\x96\x6e\x2e\x92\xa9\x85\xdc\xb0\xff\xdc\x69\x72\xce\x4c\x19\xca\xad\x83\x28\xca\xbc\xd2\xd5\x37\x84\x06\x86\x84\xe4\x01\x36\xf7\xba\xb7\xdb\x3d\xe2\xbb\x46\x2a\xbe\x81\xd2\x43\x33\x2d\x59\x41\x4c\x5d\xc6\xe4\xab\xca\x45\x9c\x06\x37\x98\x04\x48\x49\xb3\x29\xc4\x7a\x0c\x6a\xad\x97\xa4\x6d\xc4\x6c\x6f\x21\xc7\x88\xe0\x52\x57\x6e\x4c\x90\x22\xc6\x51\x9e\x7d\x4d\x25\xc7\x05\xd5\x6d\x04\x5f\x6a\x6d\x52\x45\xfc\x85\x7b\xdd\x2b\x88\x20\x6e\x18\x1c\x85\xe1\x5c\xab\xd7\x62\xa3\xdb\xdb\x86\x2d\x46\x49\xf4\xaa\x19\x10\xc8\x73\x97\xe7\xd7\xa6\xd5\x6a\x3c\xd9\xdd\x2d\x7e\x3f\xd6\x8d\xfd\x6d\xbb\x20\xbd\x6a\xe8\x57\x7b\x7b\x7b\xef\xae\x1a\xbd\x20\x49\x6d\xf1\x34\x42\xfe\x40\x65\x54\x2f\x47\x24\x37\x3f\x5d\x20\xb7\x68\xd5\x1e\x67\x29\x87\x26\x7e\xa4\x59\x26\x6c\xcd\x8b\x5b\xbd\x02\x92\x07\xe7\x94\x0e\x94\xd8\xa0\xa4\x2c\xf4\x7d\x9a\xc6\x01\x12\xb3\x34\x9b\xd6\x16\x17\xd3\x1a\x71\xaf\xf6\x36\x5a\x15\x38\x46\x95\x07\xa4\x25\xad\xbe\xdb\xad\xeb\x28\x83\x9c\x5d\x5f\x73\xaf\x4b\x5c\x45\xb4\xa1\xf1\xa9\xae\x6e\x98\x70\x43\x5d\x09\xfd\x12\x28\x36\xf7\x92\xa6\x5c\x73\x23\x00\x15\x73\x0b\x0c\x06\x6c\x1b\x70\x39\x59\x2e\x02\xae\x95\xce\x31\x32\xa2\x5b\x25\x2a\xba\x16\xba\x59\x4c\xb3\x59\x49\xb6\x2c\x53\x36\x31\xbd\xff\x9f\x19\xc5\xcd\x64\x82\x7d\x5c\x71\xf0\x61\x16\x8c\xf9\xb8\x4d\x79\xbe\x9c\x52\xa3\x0d\xde\xd3\xef\xf3\x20\xe3\xf3\x3b\x59\x96\x66\xd4\x68\x64\x11\x55\x1b\xe2\x1b\xc7\xd7\x14\xac\x0e\x92\x4c\xc2\x1f\xfc\x68\x15\x18\xa4\xe0\x0d\x1f\x5d\xe7\xe1\x24\x86\xaa\xe9\x3f\x2d\xa6\xad\x26\x30\x33\x6e\x8e\xa6\xce\xf5\xd0\xf7\x34\xb0\xd4\x7e\x47\x51\x1d\x24\x85\x5a\x40\xbb\x31\x54\x64\x69\x8e\xf6\x7d\x75\x45\x1a\xc8\x26\x98\x92\x63\xa0\x74\xc4\x04\xff\x07\x6f\x46\x94\x4e\xff\xd8\x77\xfb\x43\x0d\x8f\x8d\xab\x22\x43\xe6\x6b\xc9\xb5\x35\x53\x52\x03\x29\xd2\x6e\x36\x68\x30\x4f\xb7\xb5\x31\x53\x3d\xdd\x2b\xf8\xcc\x9c\x5e\x39\x12\x35\x8b\x26\xf9\x5d\x74\x76\x9f\x98\x0f\x19\x76\xc4\xfb\xef\xe3\xc9\xa6\x22\x62\xc9\xc5\xf8\xde\x49\xbb\xc5\x97\x3e\x4f\x38\x4a\x4d\xc9\x0f\xf2\xa9\x43\x40\xe2\xeb\x37\xcf\xd5\xac\xb7\x3b\x2f\xde\x38\x99\xf3\x6a\x11\x65\xec\x3b\x90\x42\x61\x3b\x44\x80\xf6\x72\x3f\x94\xb1\xa4\xaa\xc9\x84\x8a\x29\x73\x6c\x9b\x46\x6c\xb2\xeb\x31\x6f\x66\x55\xd9\x2a\x89\x39\xb9\x4d\xc6\x49\x59\x6a\xae\x34\xd0\x53\xe3\x4e\xbe\x6e\xe5\x6f\x45\x0c\x3f\xe6\x08\xbb\xf0\xbf\xb7\x80\x05\xd7\x01\x58\xe9\x21\xc1\xf5\x11\x71\xbb\x5e\xf9\x42\x62\xa8\x2f\x90\xb2\x15\x6d\x4e\xf5\x4a\x18\x17\x44\x62\x2c\x77\x17\xd5\x32\xfc\x30\x66\x01\xf4\x46\x2a\xbf\x84\x77\xd4\xb6\xbf\x0c\x17\x37\xf4\x9e\x86\x94\x6f\x7f\xf1\xcc\x35\x8f\x12\xa4\xd6\xf7\xb7\x2b\x2e\x69\x4f\x72\x83\x4b\xd4\x59\xe6\xd2\x5d\x79\xfe\xe6\x06\x9a\x51\x30\x4d\xb0\x5c\x34\x2e\x58\x67\x52\x51\xce\x25\xb7\x4a\x45\x81\xbb\x47\xde\x28\x13\xac\x72\xe9\x5f\x36\xcf\x82\x7c\x25\xe1\xd3\x75\xc1\x3e\x5d\xc7\x67\xe3\xf5\x5e\x6e\xed\x94\xb3\xbb\x2d\x7b\x6b\x77\xe3\xf9\x94\xa4\xe2\x50\xb5\xc7\x2b\x31\x6e\xe5\x78\x6f\x32\x6f\x5d\x40\x5f\x33\x70\xb3\x90\x2e\x36\x6a\xda\x56\xd3\x6d\xf3\x95\x2d\xf9\xd7\x80\xee\x55\xa1\x21\xaf\x10\x56\xf4\xf6\x0e\xb8\x24\x7e\x40\x7f\x3e\x58\x5d\xdf\x73\x05\xee\x37\xcd\x47\x4f\x87\xcb\x7c\xf2\xc4\x22\xbd\xe1\x88\x82\x20\x56\xfe\x96\x21\x5b\x26\x09\x79\x1a\xea\xe6\xc2\x17\xc7\xfe\x28\xa5\x9b\x3e\x84\xed\x6a\xa9\x6e\x64\x6c\xd1\x5d\x26\xe5\xd1\xac\xbc\x7c\x39\xc3\xf5\x6f\x38\x6f\xfa\x64\xab\x3e\xf4\xb9\x02\xb2\x86\x66\x74\x15\x14\x72\x68\x89\xc8\x3b\x2b\xbd\x93\xaa\xbe\xdf\xf7\x4d\xe7\xa9\x45\xdf\x2b\x34\x47\x0c\xc0\x3e\xd0\xa6\xb6\x33\xb3\x58\x52\xab\xcf\xa8\x66\x12\xd9\xf0\x4c\xdf\x3c\x1a\x2a\xf4\xb5\x89\xaf\xfb\x7d\xee\xbf\x8d\xd0\xee\xc3\x99\xb5\xae\xc7\x3d\xda\x26\x38\x56\xcf\xa6\x4b\x8d\x0b\xc9\xb6\x39\x0e\x42\x63\xee\x21\x49\x10\x13\x35\xbe\xb8\x57\x44\xbe\x4a\x65\x99\x64\x84\xa9\x98\x69\x95\x4a\x1e\x4c\x15\x45\x4f\x0a\xec\x1c\xfe\xd3\x64\x15\xe0\xa3\xbc\xa2\xc6\x73\x06\xb3\x61\x3a\x56\xdc\x41\xc4\x6a\x3b\xd5\xc7\xd5\x7d\xab\xee\x1e\x1b\x45\x69\xf0\xdd\x69\xe9\x03\x31\xbe\x10\x23\x9d\x2f\xb8\xc3\x67\xf1\xf9\x74\xf4\x0e\xfc\xb9\xc1\x5c\x96\xc9\xed\x47\xb5\x5e\x62\xe1\xd3\x37\xf0\x1d\x05\x08\xb5\x82\x9e\xe8\x08\xca\xce\x9d\x8c\x97\xea\x4c\x5c\x46\xae\xb2\xe7\x3c\x6e\x0f\xfd\x66\xbb\xd5\xda\x88\x13\x6f\x90\x25\x65\x0b\xc6\x39\x25\x04\x4c\x33\x2e\xdf\x65\xfd\x02\xa2\xfc\x45\x5e\xbd\x31\x64\x0b\x12\xfb\xb7\x50\xd7\xa0\x94\xbe\xd9\x49\xee\x22\x56\xc0\x52\x5d\x7e\xbc\x43\xb6\xd3\x71\x49\xb2\xc1\x94\x0c\x4d\x51\x69\x05\x0f\x08\xcd\xbf\x8c\x60\xa7\x63\x23\x56\x24\x67\x6b\xc9\xf6\x57\x65\xbc\x5b\x6a\xc3\x24\x97\xaa\xe9\x3f\xb5\xba\x6d\xa4\x31\x1c\xeb\x1e\x51\x3c\x6e\xbb\x6e\xdf\xd5\x1f\xcb\x58\x8d\x4e\xbf\xe7\x98\x36\x7d\xcf\x67\x9a\xc8\x72\x16\xd1\x9b\x82\x8d\x72\x39\x57\xba\xd6\xa8\x6f\xdd\x15\x4b\x33\xd0\x85\x61\xe2\x93\xfe\x2a\xd4\x73\xfc\xf6\xd0\xe9\x7a\xc5\x07\x4e\xd1\xce\x13\x8a\x79\xf5\x1e\x6d\x1e\x10\xa5\x32\xf2\xec\xcf\x66\x95\x46\x8f\xfe\x9e\x3c\xa5\xbf\xc3\xe7\x76\x28\x2b\x4d\xc7\x9e\x64\x95\x96\x6b\x27\x71\xa5\xd7\xb1\xe3\xcb\x4a\xe7\x99\x9d\x2d\x2b\xee\xc8\xfe\x24\xa8\x7c\x7f\x60\x4b\x55\x71\x3c\x7b\x91\x57\x8e\x5c\x7b\x11\x57\x06\x1d\xfb\x7c\x5a\x39\x3a\xb6\xc1\xa6\xf6\xd0\x9e\x44\x95\x56\xdb\xce\xb3\xca\xd0\xb5\xc7\xaa\xd2\xf8\x98\xef\xf7\x68\x4d\x07\xea\x17\xa9\x99\xfd\xd3\x7f\xfa\xc1\x4f\xfe\xfd\x8f\x7f\xf2\xc5\x3f\x7e\xfb\xa7\xbf\x6b\xff\xf4\xcb\xcf\x7f\xf6\xf7\x7f\xa2\x1f\x7e\xfe\xd5\xef\xfd\xec\x6f\xff\xfc\xdb\x2f\xfe\xf9\xe7\x5f\xfd\xfe\xcd\x17\xff\xfd\x47\x3f\xfa\xf6\xcb\xff\xa0\x17\x4d\xb9\xcc\xd5\x78\x66\xb7\xb2\x20\xf9\xfa\xef\x82\x48\xd9\x3d\x19\xca\x0c\x70\x3b\x54\x76\x27\xc8\xa1\x30\xff\xf5\xd7\x4b\xfb\xf5\x5f\x7d\xf3\x3b\xdf\x7c\xfe\xcd\xe7\xaf\xff\xf5\xf5\x17\xaf\xbf\xb4\xbf\xfd\xb3\xbf\xf9\xf6\x2f\xfe\xe1\x7f\x7e\xf8\x97\xb6\xa3\x16\xc1\xd7\x3f\x4e\x63\x9b\xbe\x4d\x59\x4e\x97\x5f\xff\x50\xd1\xb7\x44\x47\x59\xa0\x22\xea\x8c\xd5\x45\x64\xbf\xfe\xf1\x37\x7f\xf0\xfa\xdf\x5e\xff\xcb\xeb\x1f\x7d\xf3\x03\x4d\xc3\x6e\xe7\x41\x1c\x51\x0e\xe1\x2d\x81\xea\xe2\x00\x9a\x9f\xd8\xc3\xaf\xbf\xca\x2e\xec\xff\xfc\x43\x2c\x99\x47\x49\x60\x69\xa4\x1d\xb2\x2a\x92\xc7\x23\xf9\x23\xe9\xbe\x40\xf4\x62\x09\x50\x5c\x90\x94\x19\x9c\x5a\x2c\x02\x16\x85\xc5\x72\x40\xf3\xb3\x99\xc5\xc2\xe0\x26\xc4\x61\xf1\xdf\xd5\x13\x0b\x87\xbf\x90\xb5\x58\x42\xe4\x75\x33\x8b\xc5\x84\x66\x12\x5b\x2c\x2b\xfa\xc0\xeb\xd2\x62\x81\xd1\x4d\xea\xd2\x62\xa9\xa1\xf9\x49\x60\xb1\xe8\x68\x4d\x65\xb1\xfc\xd0\xe4\x5f\x8b\xe5\x48\x4f\xb1\xc5\xc2\xa4\x0f\x6c\xa7\x16\x4b\x94\x12\xd1\xdc\x62\xb1\xd2\x82\x91\xc5\xb2\x65\xa7\x64\xb1\x80\x29\x37\x60\x41\x33\x82\x33\xdf\xc8\x01\x1b\x2c\x16\xfc\x3d\x48\x2a\x66\xd1\x74\x16\xe3\xff\x5c\x8c\xe3\x80\xeb\x79\x6c\x93\x55\xa0\xe3\xf8\x30\x4a\x22\xeb\xe5\x6a\x44\xd5\x4c\xa3\x8b\xd3\x94\xa2\x25\x3c\xfc\x49\xff\xb9\xdf\x42\x6e\x84\x4c\xe1\xc8\xd5\x97\xea\x25\x5c\xe4\xc1\x5b\x50\x09\xdb\xd4\x76\x6e\x66\x67\xfc\x01\x08\x39\x84\x69\xca\x37\x67\x9c\xac\xa5\x70\x60\x1b\x74\x29\xaa\xeb\xfb\x26\xf6\xb4\xff\x1b\x00\x00\xff\xff\x4f\x51\x67\xff\x92\x2d\x00\x00") func confAppIniBytes() ([]byte, error) { return bindataRead( @@ -301,7 +301,7 @@ func confAppIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/app.ini", size: 11589, mode: os.FileMode(420), modTime: time.Unix(1467456724, 0)} + info := bindataFileInfo{name: "conf/app.ini", size: 11666, mode: os.FileMode(420), modTime: time.Unix(1467623266, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 4bd77ca6a1..10cb2b2a21 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -159,20 +159,6 @@ var ( SessionConfig session.Options CSRFCookieName = "_csrf" - // Git settings - Git struct { - MaxGitDiffLines int - MaxGitDiffLineCharacters int - MaxGitDiffFiles int - GcArgs []string `delim:" "` - Timeout struct { - Migrate int - Mirror int - Clone int - Pull int - } `ini:"git.timeout"` - } - // Cron tasks Cron struct { UpdateMirror struct { @@ -194,6 +180,25 @@ var ( } `ini:"cron.check_repo_stats"` } + // Git settings + Git struct { + MaxGitDiffLines int + MaxGitDiffLineCharacters int + MaxGitDiffFiles int + GcArgs []string `delim:" "` + Timeout struct { + Migrate int + Mirror int + Clone int + Pull int + } `ini:"git.timeout"` + } + + // API settings + API struct { + MaxResponseItems int + } + // I18n settings Langs, Names []string dateLangs map[string]string @@ -465,10 +470,12 @@ func NewContext() { if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil { log.Fatal(4, "Fail to map Markdown settings: %v", err) - } else if err = Cfg.Section("git").MapTo(&Git); err != nil { - log.Fatal(4, "Fail to map Git settings: %v", err) } else if err = Cfg.Section("cron").MapTo(&Cron); err != nil { log.Fatal(4, "Fail to map Cron settings: %v", err) + } else if err = Cfg.Section("git").MapTo(&Git); err != nil { + log.Fatal(4, "Fail to map Git settings: %v", err) + } else if err = Cfg.Section("api").MapTo(&API); err != nil { + log.Fatal(4, "Fail to map API settings: %v", err) } Langs = Cfg.Section("i18n").Key("LANGS").Strings(",") diff --git a/routers/api/v1/convert/utils.go b/routers/api/v1/convert/utils.go new file mode 100644 index 0000000000..f34fb3d2b6 --- /dev/null +++ b/routers/api/v1/convert/utils.go @@ -0,0 +1,19 @@ +// Copyright 2016 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package convert + +import ( + "github.com/gogits/gogs/modules/setting" +) + +// ToCorrectPageSize makes sure page size is in allowed range. +func ToCorrectPageSize(size int) int { + if size <= 0 { + size = 10 + } else if size > setting.API.MaxResponseItems { + size = setting.API.MaxResponseItems + } + return size +} diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 90a323c257..222098ac66 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -7,8 +7,6 @@ package repo import ( "path" - "github.com/Unknwon/com" - api "github.com/gogits/go-gogs-client" "github.com/gogits/gogs/models" @@ -23,11 +21,8 @@ import ( func Search(ctx *context.APIContext) { opts := &models.SearchRepoOptions{ Keyword: path.Base(ctx.Query("q")), - OwnerID: com.StrTo(ctx.Query("uid")).MustInt64(), - PageSize: com.StrTo(ctx.Query("limit")).MustInt(), - } - if opts.PageSize == 0 { - opts.PageSize = 10 + OwnerID: ctx.QueryInt64("uid"), + PageSize: convert.ToCorrectPageSize(ctx.QueryInt("limit")), } // Check visibility. @@ -50,7 +45,7 @@ func Search(ctx *context.APIContext) { } } - repos, _, err := models.SearchRepositoryByName(opts) + repos, count, err := models.SearchRepositoryByName(opts) if err != nil { ctx.JSON(500, map[string]interface{}{ "ok": false, @@ -74,6 +69,7 @@ func Search(ctx *context.APIContext) { } } + ctx.SetLinkHeader(int(count), setting.API.MaxResponseItems) ctx.JSON(200, map[string]interface{}{ "ok": true, "data": results, diff --git a/templates/.VERSION b/templates/.VERSION index 6d15666415..8b6a35c561 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.9.35.0702 \ No newline at end of file +0.9.36.0704 \ No newline at end of file