From 20a8d651f39eb138a8448257b0d8c5b4283ed6eb Mon Sep 17 00:00:00 2001 From: Vitaliy Vasilenko Date: Sat, 21 Mar 2015 14:55:00 +0200 Subject: add func to autofix couters in repository --- models/repo.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index cfab329b..bcd6c0e8 100644 --- a/models/repo.go +++ b/models/repo.go @@ -987,6 +987,7 @@ var ( // Prevent duplicate tasks. isMirrorUpdating = false isGitFscking = false + isCheckRepos = false ) // MirrorUpdate checks and updates mirror repositories. @@ -1078,6 +1079,42 @@ func GitGcRepos() error { }) } +func CheckRepoStats() { + if isCheckRepos { + return + } + isCheckRepos = true + defer func() { isCheckRepos = false }() + + // Check count watchers + results_watch, err := x.Query("SELECT r.id FROM `repository` r WHERE r.num_watches!=(SELECT count(*) FROM `watch` WHERE repo_id=r.id)") + if err != nil { + log.Error(4, "select repository check 'watch': %v", err) + } + for _, repo_id := range results_watch { + log.Info("updating repository count 'watch'") + repoID := com.StrTo(repo_id["id"]).MustInt64() + _, err := x.Exec("UPDATE `repository` SET num_watches=(SELECT count(*) FROM `watch` WHERE repo_id=?) WHERE id=?", repoID, repoID) + if err != nil { + log.Error(4, "update repository check 'watch', repo %v: %v", repo_id, err) + } + } + + // Check count stars + results_star, err := x.Query("SELECT s.id FROM `repository` s WHERE s.num_stars!=(SELECT count(*) FROM `star` WHERE repo_id=s.id)") + if err != nil { + log.Error(4, "select repository check 'star': %v", err) + } + for _, repo_id := range results_star { + log.Info("updating repository count 'star'") + repoID := com.StrTo(repo_id["id"]).MustInt64() + _, err := x.Exec("UPDATE `repository` SET .num_stars=(SELECT count(*) FROM `star` WHERE repo_id=?) WHERE id=?", repoID, repoID) + if err != nil { + log.Error(4, "update repository check 'star', repo %v: %v", repo_id, err) + } + } +} + // _________ .__ .__ ___. __ .__ // \_ ___ \ ____ | | | | _____ \_ |__ ________________ _/ |_|__| ____ ____ // / \ \/ / _ \| | | | \__ \ | __ \ / _ \_ __ \__ \\ __\ |/ _ \ / \ -- cgit v1.2.3 From 698b9e2acc4daafe7d2b314e2d8c96545dde9c40 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Thu, 26 Mar 2015 17:11:47 -0400 Subject: #1070 Clearer error message for illegal characters --- conf/locale/locale_en-US.ini | 14 +++++--- models/error.go | 52 ++++++++++++++++++++++++++++++ models/org.go | 38 +++++++++++----------- models/repo.go | 69 +++++++++++++++++++++++++--------------- models/user.go | 27 +++++++++------- modules/bindata/bindata.go | 76 ++++++++++++++++++++++---------------------- routers/admin/users.go | 15 +++++---- routers/api/v1/repo.go | 3 +- routers/install.go | 2 +- routers/org/org.go | 17 ++++++---- routers/org/setting.go | 2 +- routers/repo/repo.go | 70 ++++++++++++++++++++++++---------------- routers/repo/setting.go | 19 ++++++----- routers/user/auth.go | 13 +++++--- routers/user/setting.go | 25 +++++++-------- 15 files changed, 275 insertions(+), 167 deletions(-) (limited to 'models/repo.go') diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index f5f56f57..3fbc71cb 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -157,9 +157,6 @@ org_name_been_taken = Organization name has been already taken. team_name_been_taken = Team name has been already taken. email_been_used = E-mail address has been already used. ssh_key_been_used = Public key name or content has been used. -illegal_username = Your username contains illegal characters. -illegal_repo_name = Repository name contains illegal characters. -illegal_org_name = Organization name contains illegal characters. illegal_team_name = Team name contains illegal characters. username_password_incorrect = Username or password is not correct. enterred_invalid_repo_name = Please make sure that the repository name you entered is correct. @@ -190,6 +187,9 @@ followers = Followers starred = Starred following = Following +form.name_reserved = Username '%s' is reserved. +form.name_pattern_not_allowed = Username pattern '%s' is not allowed. + [settings] profile = Profile password = Password @@ -290,6 +290,9 @@ create_repo = Create Repository default_branch = Default Branch mirror_interval = Mirror Interval (hour) +form.name_reserved = Repository name '%s' is reserved. +form.name_pattern_not_allowed = Repository name pattern '%s' is not allowed. + need_auth = Need Authorization migrate_type = Migration Type migrate_type_helper = This repository will be a mirror @@ -440,6 +443,9 @@ team_name_helper = You'll use this name to mention this team in conversations. team_desc_helper = What is this team all about? team_permission_desc = What permission level should this team have? +form.name_reserved = Organization name '%s' is reserved. +form.name_pattern_not_allowed = Organization name pattern '%s' is not allowed. + settings = Settings settings.options = Options settings.full_name = Full Name @@ -449,7 +455,7 @@ settings.update_settings = Update Settings settings.change_orgname = Organization Name Changed settings.change_orgname_desc = Organization name has been changed. This will affect how links relate to the organization. Do you want to continue? settings.update_setting_success = Organization settings were successfully updated. - settings.delete = Delete Organization +settings.delete = Delete Organization settings.delete_account = Delete This Organization settings.delete_prompt = The organization will be permanently removed, and this CANNOT be undone! settings.confirm_delete_account = Confirm Deletion diff --git a/models/error.go b/models/error.go index a434b8d6..04f850de 100644 --- a/models/error.go +++ b/models/error.go @@ -8,6 +8,32 @@ import ( "fmt" ) +type ErrNameReserved struct { + Name string +} + +func IsErrNameReserved(err error) bool { + _, ok := err.(ErrNameReserved) + return ok +} + +func (err ErrNameReserved) Error() string { + return fmt.Sprintf("name is reserved: [name: %s]", err.Name) +} + +type ErrNamePatternNotAllowed struct { + Pattern string +} + +func IsErrNamePatternNotAllowed(err error) bool { + _, ok := err.(ErrNamePatternNotAllowed) + return ok +} + +func (err ErrNamePatternNotAllowed) Error() string { + return fmt.Sprintf("name pattern is not allowed: [pattern: %s]", err.Pattern) +} + // ____ ___ // | | \______ ___________ // | | / ___// __ \_ __ \ @@ -15,6 +41,32 @@ import ( // |______//____ >\___ >__| // \/ \/ +type ErrUserAlreadyExist struct { + Name string +} + +func IsErrUserAlreadyExist(err error) bool { + _, ok := err.(ErrUserAlreadyExist) + return ok +} + +func (err ErrUserAlreadyExist) Error() string { + return fmt.Sprintf("user already exists: [name: %s]", err.Name) +} + +type ErrEmailAlreadyUsed struct { + Email string +} + +func IsErrEmailAlreadyUsed(err error) bool { + _, ok := err.(ErrEmailAlreadyUsed) + return ok +} + +func (err ErrEmailAlreadyUsed) Error() string { + return fmt.Sprintf("e-mail has been used: [email: %s]", err.Email) +} + type ErrUserOwnRepos struct { UID int64 } diff --git a/models/org.go b/models/org.go index 32f135cb..3caed30b 100644 --- a/models/org.go +++ b/models/org.go @@ -105,23 +105,23 @@ func IsOrgEmailUsed(email string) (bool, error) { } // CreateOrganization creates record of a new organization. -func CreateOrganization(org, owner *User) (*User, error) { - if !IsLegalName(org.Name) { - return nil, ErrUserNameIllegal +func CreateOrganization(org, owner *User) (err error) { + if err = IsUsableName(org.Name); err != nil { + return err } isExist, err := IsUserExist(0, org.Name) if err != nil { - return nil, err + return err } else if isExist { - return nil, ErrUserAlreadyExist + return ErrUserAlreadyExist{org.Name} } isExist, err = IsOrgEmailUsed(org.Email) if err != nil { - return nil, err + return err } else if isExist { - return nil, ErrEmailAlreadyUsed + return ErrEmailAlreadyUsed{org.Email} } org.LowerName = strings.ToLower(org.Name) @@ -135,11 +135,11 @@ func CreateOrganization(org, owner *User) (*User, error) { sess := x.NewSession() defer sessionRelease(sess) if err = sess.Begin(); err != nil { - return nil, err + return err } if _, err = sess.Insert(org); err != nil { - return nil, err + return fmt.Errorf("insert organization: %v", err) } // Create default owner team. @@ -151,7 +151,7 @@ func CreateOrganization(org, owner *User) (*User, error) { NumMembers: 1, } if _, err = sess.Insert(t); err != nil { - return nil, err + return fmt.Errorf("insert owner team: %v", err) } // Add initial creator to organization and owner team. @@ -162,7 +162,7 @@ func CreateOrganization(org, owner *User) (*User, error) { NumTeams: 1, } if _, err = sess.Insert(ou); err != nil { - return nil, err + return fmt.Errorf("insert org-user relation: %v", err) } tu := &TeamUser{ @@ -171,14 +171,14 @@ func CreateOrganization(org, owner *User) (*User, error) { TeamID: t.ID, } if _, err = sess.Insert(tu); err != nil { - return nil, err + return fmt.Errorf("insert team-user relation: %v", err) } if err = os.MkdirAll(UserPath(org.Name), os.ModePerm); err != nil { - return nil, err + return fmt.Errorf("create directory: %v", err) } - return org, sess.Commit() + return sess.Commit() } // GetOrgByName returns organization by given name. @@ -594,9 +594,9 @@ func (t *Team) RemoveRepository(repoID int64) error { // NewTeam creates a record of new team. // It's caller's responsibility to assign organization ID. -func NewTeam(t *Team) error { - if !IsLegalName(t.Name) { - return ErrTeamNameIllegal +func NewTeam(t *Team) (err error) { + if err = IsUsableName(t.Name); err != nil { + return err } has, err := x.Id(t.OrgID).Get(new(User)) @@ -670,8 +670,8 @@ func GetTeamById(teamId int64) (*Team, error) { // UpdateTeam updates information of team. func UpdateTeam(t *Team, authChanged bool) (err error) { - if !IsLegalName(t.Name) { - return ErrTeamNameIllegal + if err = IsUsableName(t.Name); err != nil { + return err } if len(t.Description) > 255 { diff --git a/models/repo.go b/models/repo.go index 91bb0d71..7b47c20b 100644 --- a/models/repo.go +++ b/models/repo.go @@ -37,7 +37,6 @@ const ( var ( ErrRepoAlreadyExist = errors.New("Repository already exist") ErrRepoFileNotExist = errors.New("Repository file does not exist") - ErrRepoNameIllegal = errors.New("Repository name contains illegal characters") ErrRepoFileNotLoaded = errors.New("Repository file not loaded") ErrMirrorNotExist = errors.New("Mirror does not exist") ErrInvalidReference = errors.New("Invalid reference specified") @@ -223,12 +222,12 @@ func (repo *Repository) DescriptionHtml() template.HTML { } // IsRepositoryExist returns true if the repository with given name under user has already existed. -func IsRepositoryExist(u *User, repoName string) bool { - has, _ := x.Get(&Repository{ +func IsRepositoryExist(u *User, repoName string) (bool, error) { + has, err := x.Get(&Repository{ OwnerId: u.Id, LowerName: strings.ToLower(repoName), }) - return has && com.IsDir(RepoPath(u.Name, repoName)) + return has && com.IsDir(RepoPath(u.Name, repoName)), err } // CloneLink represents different types of clone URLs of repository. @@ -253,24 +252,27 @@ func (repo *Repository) CloneLink() (cl CloneLink, err error) { } var ( - illegalEquals = []string{"debug", "raw", "install", "api", "avatar", "user", "org", "help", "stars", "issues", "pulls", "commits", "repo", "template", "admin", "new"} - illegalSuffixs = []string{".git", ".keys"} + reservedNames = []string{"debug", "raw", "install", "api", "avatar", "user", "org", "help", "stars", "issues", "pulls", "commits", "repo", "template", "admin", "new"} + reservedPatterns = []string{"*.git", "*.keys"} ) -// IsLegalName returns false if name contains illegal characters. -func IsLegalName(repoName string) bool { - repoName = strings.ToLower(repoName) - for _, char := range illegalEquals { - if repoName == char { - return false +// IsUsableName checks if name is reserved or pattern of name is not allowed. +func IsUsableName(name string) error { + name = strings.ToLower(name) + for i := range reservedNames { + if name == reservedNames[i] { + return ErrNameReserved{name} } } - for _, char := range illegalSuffixs { - if strings.HasSuffix(repoName, char) { - return false + + for _, pat := range reservedPatterns { + if pat[0] == '*' && strings.HasSuffix(name, pat[1:]) || + (pat[len(pat)-1] == '*' && strings.HasPrefix(name, pat[:len(pat)-1])) { + return ErrNamePatternNotAllowed{pat} } } - return true + + return nil } // Mirror represents a mirror information of repository. @@ -504,11 +506,14 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, initRe // CreateRepository creates a repository for given user or organization. func CreateRepository(u *User, name, desc, lang, license string, isPrivate, isMirror, initReadme bool) (_ *Repository, err error) { - if !IsLegalName(name) { - return nil, ErrRepoNameIllegal + if err = IsUsableName(name); err != nil { + return nil, err } - if IsRepositoryExist(u, name) { + has, err := IsRepositoryExist(u, name) + if err != nil { + return nil, fmt.Errorf("IsRepositoryExist: %v", err) + } else if has { return nil, ErrRepoAlreadyExist } @@ -619,7 +624,10 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error { } // Check if new owner has repository with same name. - if IsRepositoryExist(newOwner, repo.Name) { + has, err := IsRepositoryExist(newOwner, repo.Name) + if err != nil { + return fmt.Errorf("IsRepositoryExist: %v", err) + } else if has { return ErrRepoAlreadyExist } @@ -727,16 +735,22 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error { } // ChangeRepositoryName changes all corresponding setting from old repository name to new one. -func ChangeRepositoryName(userName, oldRepoName, newRepoName string) (err error) { - userName = strings.ToLower(userName) +func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error) { oldRepoName = strings.ToLower(oldRepoName) newRepoName = strings.ToLower(newRepoName) - if !IsLegalName(newRepoName) { - return ErrRepoNameIllegal + if err = IsUsableName(newRepoName); err != nil { + return err + } + + has, err := IsRepositoryExist(u, newRepoName) + if err != nil { + return fmt.Errorf("IsRepositoryExist: %v", err) + } else if has { + return ErrRepoAlreadyExist } // Change repository directory name. - return os.Rename(RepoPath(userName, oldRepoName), RepoPath(userName, newRepoName)) + return os.Rename(RepoPath(u.LowerName, oldRepoName), RepoPath(u.LowerName, newRepoName)) } func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err error) { @@ -1340,7 +1354,10 @@ func IsStaring(uid, repoId int64) bool { // \/ \/ func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Repository, err error) { - if IsRepositoryExist(u, name) { + has, err := IsRepositoryExist(u, name) + if err != nil { + return nil, fmt.Errorf("IsRepositoryExist: %v", err) + } else if has { return nil, ErrRepoAlreadyExist } diff --git a/models/user.go b/models/user.go index dcfd0dc5..bf69f97a 100644 --- a/models/user.go +++ b/models/user.go @@ -36,10 +36,8 @@ const ( ) var ( - ErrUserAlreadyExist = errors.New("User already exist") ErrUserNotExist = errors.New("User does not exist") ErrUserNotKeyOwner = errors.New("User does not the owner of public key") - ErrEmailAlreadyUsed = errors.New("E-mail already used") ErrEmailNotExist = errors.New("E-mail does not exist") ErrEmailNotActivated = errors.New("E-mail address has not been activated") ErrUserNameIllegal = errors.New("User name contains illegal characters") @@ -273,23 +271,23 @@ func GetUserSalt() string { } // CreateUser creates record of a new user. -func CreateUser(u *User) error { - if !IsLegalName(u.Name) { - return ErrUserNameIllegal +func CreateUser(u *User) (err error) { + if err = IsUsableName(u.Name); err != nil { + return err } isExist, err := IsUserExist(0, u.Name) if err != nil { return err } else if isExist { - return ErrUserAlreadyExist + return ErrUserAlreadyExist{u.Name} } isExist, err = IsEmailUsed(u.Email) if err != nil { return err } else if isExist { - return ErrEmailAlreadyUsed + return ErrEmailAlreadyUsed{u.Email} } u.LowerName = strings.ToLower(u.Name) @@ -392,8 +390,15 @@ func VerifyActiveEmailCode(code, email string) *EmailAddress { // ChangeUserName changes all corresponding setting from old user name to new one. func ChangeUserName(u *User, newUserName string) (err error) { - if !IsLegalName(newUserName) { - return ErrUserNameIllegal + if err = IsUsableName(newUserName); err != nil { + return err + } + + isExist, err := IsUserExist(0, newUserName) + if err != nil { + return err + } else if isExist { + return ErrUserAlreadyExist{newUserName} } return os.Rename(UserPath(u.LowerName), UserPath(newUserName)) @@ -405,7 +410,7 @@ func UpdateUser(u *User) error { if err != nil { return err } else if has { - return ErrEmailAlreadyUsed + return ErrEmailAlreadyUsed{u.Email} } u.LowerName = strings.ToLower(u.Name) @@ -641,7 +646,7 @@ func AddEmailAddress(email *EmailAddress) error { if err != nil { return err } else if used { - return ErrEmailAlreadyUsed + return ErrEmailAlreadyUsed{email.Email} } _, err = x.Insert(email) diff --git a/modules/bindata/bindata.go b/modules/bindata/bindata.go index 6f508c1d..6cdd5cee 100644 --- a/modules/bindata/bindata.go +++ b/modules/bindata/bindata.go @@ -76,7 +76,7 @@ func conf_app_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/app.ini", size: 8720, mode: os.FileMode(420), modTime: time.Unix(1427288024, 0)} + info := bindata_file_info{name: "conf/app.ini", size: 8720, mode: os.FileMode(420), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -96,7 +96,7 @@ func conf_gitignore_android() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/Android", size: 270, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/Android", size: 270, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -116,7 +116,7 @@ func conf_gitignore_c() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/C", size: 143, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/C", size: 143, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -136,7 +136,7 @@ func conf_gitignore_c_sharp() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/C Sharp", size: 1520, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/C Sharp", size: 1520, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -156,7 +156,7 @@ func conf_gitignore_c_() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/C++", size: 126, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/C++", size: 126, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -176,7 +176,7 @@ func conf_gitignore_google_go() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/Google Go", size: 251, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/Google Go", size: 251, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -196,7 +196,7 @@ func conf_gitignore_java() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/Java", size: 188, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/Java", size: 188, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -216,7 +216,7 @@ func conf_gitignore_objective_c() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/Objective-C", size: 280, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/Objective-C", size: 280, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -236,7 +236,7 @@ func conf_gitignore_python() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/Python", size: 314, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/Python", size: 314, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -256,7 +256,7 @@ func conf_gitignore_ruby() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/gitignore/Ruby", size: 158, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/gitignore/Ruby", size: 158, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -276,7 +276,7 @@ func conf_license_affero_gpl() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/Affero GPL", size: 34499, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/Affero GPL", size: 34499, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -296,7 +296,7 @@ func conf_license_apache_v2_license() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/Apache v2 License", size: 11323, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/Apache v2 License", size: 11323, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -316,7 +316,7 @@ func conf_license_artistic_license_2_0() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/Artistic License 2.0", size: 8887, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/Artistic License 2.0", size: 8887, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -336,7 +336,7 @@ func conf_license_bsd_3_clause_license() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/BSD (3-Clause) License", size: 1473, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/BSD (3-Clause) License", size: 1473, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -356,7 +356,7 @@ func conf_license_bsd_license() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/BSD license", size: 1280, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/BSD license", size: 1280, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -376,7 +376,7 @@ func conf_license_cc0_1_0_universal() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/CC0 1.0 Universal", size: 6554, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/CC0 1.0 Universal", size: 6554, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -396,7 +396,7 @@ func conf_license_eclipse_public_license_v1_0() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/Eclipse Public License v1.0", size: 11513, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/Eclipse Public License v1.0", size: 11513, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -416,7 +416,7 @@ func conf_license_gpl_v2() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/GPL v2", size: 18025, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/GPL v2", size: 18025, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -436,7 +436,7 @@ func conf_license_gpl_v3() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/GPL v3", size: 35120, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/GPL v3", size: 35120, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -456,7 +456,7 @@ func conf_license_isc_license() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/ISC license", size: 716, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/ISC license", size: 716, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -476,7 +476,7 @@ func conf_license_lgpl_v2_1() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/LGPL v2.1", size: 26442, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/LGPL v2.1", size: 26442, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -496,7 +496,7 @@ func conf_license_lgpl_v3() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/LGPL v3", size: 7631, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/LGPL v3", size: 7631, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -516,7 +516,7 @@ func conf_license_mit_license() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/MIT License", size: 1065, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/MIT License", size: 1065, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -536,7 +536,7 @@ func conf_license_mozilla_public_license_version_2_0() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/license/Mozilla Public License Version 2.0", size: 15920, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} + info := bindata_file_info{name: "conf/license/Mozilla Public License Version 2.0", size: 15920, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -556,7 +556,7 @@ func conf_locale_translators() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/TRANSLATORS", size: 443, mode: os.FileMode(420), modTime: time.Unix(1426831108, 0)} + info := bindata_file_info{name: "conf/locale/TRANSLATORS", size: 443, mode: os.FileMode(420), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -576,12 +576,12 @@ func conf_locale_locale_de_de_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_de-DE.ini", size: 33066, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_de-DE.ini", size: 33066, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _conf_locale_locale_en_us_ini = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xef\x92\xdb\xb8\xae\xe7\x77\x3d\x85\x66\xb6\xb2\xc9\x54\x75\x9c\x9a\x73\xaa\xb6\xb6\xa6\x92\x4c\xf5\x74\x26\x7f\xce\x4d\xa7\xfb\xa6\x3b\xe7\xec\xdd\x54\x4a\x47\xb6\x64\x5b\xb7\x6d\xc9\x47\x92\xdb\xe3\xf3\x69\x5f\x63\x5f\x6f\x9f\x64\x81\x1f\x00\xfe\x91\xe4\x4e\x66\xee\xd6\xde\x2f\xdd\x14\x09\x92\x20\x08\x82\x00\x08\xd2\xf9\x6e\x97\x15\x65\xb7\x48\x5f\xa4\xe7\xe9\x2e\xaf\xea\x4d\xd9\x75\x69\x57\x6e\x96\x4f\xd7\x4d\xd7\x97\x45\xfa\xa6\xea\xe9\xbb\xbd\xaf\x16\x65\x92\xac\x9b\x6d\x49\xa0\x6f\xe9\x5f\x52\xe4\xdd\x7a\xde\xe4\x6d\x41\x19\xaf\x2c\x9d\x94\xbf\xed\x36\x4d\xcb\x40\xbf\x4a\x2a\x59\x97\x9b\x1d\xd7\xa1\x7f\x49\x57\xad\xea\xac\xaa\xe9\xf3\x86\x52\xe9\xbb\x3a\xe9\x9a\x45\x95\x6f\xb2\xa0\x00\x19\x56\xfe\x53\xfa\xa7\xba\x48\x6f\xfa\x72\x97\x3e\xef\xb6\xf9\x66\xf3\x32\xef\x50\xa5\x2f\xd3\x7c\xb1\x68\xf6\x75\xff\xfc\x99\x14\x48\xe3\xcd\xbe\xb7\xd6\xaf\xf6\xbd\xe4\xed\x77\x96\xf5\x69\x97\xb4\xe5\xaa\xa2\x81\xb5\x94\xf5\x51\x93\xc9\xa1\x9c\x77\x55\xcf\x48\xff\x4d\x52\xc9\x7d\xd9\x76\x55\xc3\xf8\xfc\x55\x52\xc9\x2e\x5f\x31\xc0\x35\xfd\x4b\xfa\x72\xbb\xdb\xe4\xa8\x70\xab\xc9\x64\x93\xd7\xab\xbd\xc0\xbc\xd7\x64\x92\xec\x89\x72\x75\x0e\x9a\x7d\xd2\x64\x52\x6e\xf3\x6a\xc3\xf4\x79\xca\x09\x6a\xb7\xeb\x0e\x0d\xa8\x78\xad\x49\xc2\x31\xeb\x8f\xbb\x12\x28\x3e\xbd\xa5\x54\xb2\xc8\x77\xfd\x62\x9d\x53\xce\x85\xa4\x12\x02\xda\x35\x84\x6b\xd3\x1e\x01\x67\x1f\x49\xd3\xae\xf2\xba\xfa\x67\xde\x0b\xfe\x57\xc1\x67\xb2\xad\xda\xb6\xe1\xa1\x5f\x22\x91\xd4\xe5\x21\xe3\x76\x28\xe7\x43\x79\x08\x5b\xe1\x92\x6d\xb5\x6a\x65\x94\x5c\x78\x89\x2f\x6e\x85\xcb\x96\x4d\x7b\xa7\x05\xaf\x39\x39\xa8\x4a\x48\x68\x69\xdc\x7f\x5e\x13\x5d\xb4\xf4\x12\x1f\x11\x40\x97\xe4\xc5\xb6\xaa\xb3\x5d\x5e\x97\x4c\xa3\x73\xfe\x22\xba\xd0\x57\xa2\xd3\x9d\x75\x65\xdf\x57\xf5\xaa\xe3\x62\xc9\x4a\x6f\x34\x2b\x09\xca\x5c\x1e\xe3\xd3\x65\xcb\xb2\x2c\x04\xa3\x2e\x7d\x4d\xe9\x64\xb7\xdf\x6c\x68\xec\xff\xd8\x97\x5d\xcf\xf0\xd7\xf4\x4d\xa3\x90\xef\xa4\xea\x3a\x4a\x50\xf6\x3b\x24\x12\x9a\x80\x7a\x01\x94\x2e\x90\x48\x92\xcf\x5d\x99\xb7\x8b\xf5\x97\x44\xfe\xa3\x47\x4e\xcc\x66\xb3\x93\x53\xc3\xec\xa0\xac\x20\x3d\x58\x07\xc9\xa2\x29\xf8\xe3\x82\xfe\x51\xd3\x55\xdd\xf5\xc4\xd2\x5f\x12\x4d\x30\x98\xa4\x84\x8c\x7d\xd5\x6f\x4a\x9f\x89\xf5\xd1\xf1\x3c\xa4\xaf\xab\xb6\xeb\x9f\xf6\x15\xb1\xdc\xc7\x7d\x9d\xf0\xf8\x88\x9d\xb3\x62\x6e\xab\xfc\x4d\x43\xd4\x41\x76\x4b\xe3\xbb\x3c\xde\xfc\xeb\xfb\xb3\xf4\x9a\x96\xfa\xaa\x2d\x29\x9d\x52\x1b\xf4\x8f\xea\xfc\x79\x96\x50\x2d\x65\xc3\x57\x79\x9f\xcf\xf3\xae\x4c\xc1\x8c\x2c\x19\x20\x05\xba\x3e\x1a\xd2\x14\x2b\x53\x1b\xba\x00\x5c\x1b\x1f\x78\x15\x50\x3e\x0b\x06\x54\xbe\xde\x94\x9c\x4f\x4d\xa5\xef\x3e\x7c\xb8\x7a\xf5\x4b\x5a\xd6\xab\xaa\x2e\xd3\x43\xd5\xaf\xd3\x7d\xbf\xfc\xef\xd9\xaa\xac\xcb\x96\xe4\xc4\xa2\x4a\x89\xf9\x5b\x9a\xe7\x94\x38\x50\xf0\x9f\x25\x5d\xb7\xc9\xb6\x42\xc1\x9b\x9b\xf7\xe9\x25\x53\x71\x97\xf7\x6b\x20\xd2\xaf\x93\xee\x1f\x1b\xa6\x82\xeb\xf0\x76\x5d\xa6\xcb\x8a\x48\x08\xa0\x66\x69\x43\x4e\x0b\xc5\x71\x96\x58\x87\x46\xea\x37\xf2\xed\xd8\x8a\x6b\x31\x2d\x31\xd7\x99\x76\xe6\xa7\x3a\xfd\xd8\x34\xbd\x74\xee\x00\x7c\xff\xe7\x34\x67\x2c\x57\xdb\x72\xdb\xd0\xfa\x72\xec\x52\xd1\x94\x1c\x2a\x2a\x9c\x97\x69\x97\xdf\x13\xc7\xf6\x4d\xda\xaf\xab\x2e\x2d\x68\xba\x16\xdc\x30\x31\xd7\x9e\x24\x9a\x50\x9d\xa6\x58\x28\x6f\x79\xf1\x10\x01\xb5\xdd\xd3\x64\xad\xa9\x31\x96\x97\x2c\xdc\xa9\xc9\x29\x3c\xd3\x9c\x04\x2d\xb5\x83\x51\xd1\xdc\x37\x24\x9d\x58\x7e\xbc\x42\x42\xbf\xc3\xf6\x09\xab\x7c\xb9\x24\xac\x3a\x22\xfa\xdb\x74\xb1\x69\x68\xc6\x3e\x7d\x7c\x4f\x95\xd7\x7d\xbf\xcb\x76\x4d\x0b\x2e\xb9\xbd\xbd\x26\x06\x6b\x7b\x9f\x1b\xcc\x3c\xc3\xd4\xfb\xed\x9c\xbe\x0e\xeb\x8a\x96\x11\x6d\x48\x9b\x6a\x21\xc2\x0b\xa4\xd8\xb0\x88\xae\xd3\xa6\x9e\x25\xbc\x59\xed\x5b\xc8\x85\x00\x8a\xba\xb4\x92\x13\xe8\x31\x0a\xcf\xf8\xcf\x8d\xc7\x12\xc3\xed\x68\x1f\x3b\xac\x4b\xda\xae\x68\xa8\x25\xe4\xf1\x4c\xe4\xb3\x9b\x77\x91\xd2\x34\xed\xd8\x01\xfd\xf4\x3f\xb9\xda\x71\xef\xf9\xe6\x87\xa4\xdb\xd2\xb8\x74\x4d\xdc\x5c\xd2\x68\xb1\x30\xb8\x1a\x4d\x88\xce\xd4\x4d\x59\x17\x94\x50\x99\xaf\x65\xc1\x7a\xd1\x72\xb7\x6c\xea\xa6\xaf\x96\x47\x87\xc5\x07\xfe\xb4\x01\x4f\xe1\x60\xbb\x5a\xb6\x68\xea\x65\xd5\x6e\x19\xf3\x3a\x9f\x53\x65\xdb\xe4\x48\xb6\xa0\xc4\x04\x31\x8d\x51\x3a\xf1\xa0\x97\x3c\xd2\xb0\x2b\x95\xc6\x86\x85\x48\xe3\x91\xd0\x15\xa0\xe1\x36\x67\x82\x7c\x2c\x12\x14\xc5\xb0\x4c\x71\xf3\x30\x52\x7b\xb0\x55\xaa\x34\xcc\x56\x0d\x24\xbc\x49\x3f\x2c\xc3\x9e\xc4\x76\xb6\xaa\xfa\x6c\xc9\xb4\xe5\x36\x5f\x73\x5d\x5e\x3f\x54\x92\x3e\xa6\xa2\xc7\xe9\xa2\xd9\xd2\x0e\x54\xfc\x94\x3e\xba\x57\x99\xf0\x67\x26\x42\x96\xdf\x13\x2c\x48\xf0\x22\xfd\xb7\x66\xdf\xd2\x8a\x14\x91\x64\x6a\x40\xd1\xd0\xca\x24\xc8\xb4\xdb\xef\xc0\xd7\x2a\x30\xce\xd2\x9d\x00\x16\xcd\xa1\xde\x34\x39\x2d\x58\x5a\x77\xcd\x92\x08\xc8\x4a\xcc\xbc\xaa\x73\x5a\x63\xd6\xca\xb2\x6d\xb6\xe9\xa3\xee\x2c\xfd\x70\x75\x0b\xc0\x55\x33\xdf\x57\x9b\xc2\x00\x66\x34\xc2\xfb\x7c\x53\x15\x2c\xaf\x75\x2b\x0b\x05\xa7\x65\x55\x82\xcb\xa2\x69\x59\x28\x60\x34\x56\xf1\x84\x34\x6a\x79\x95\x23\x9b\xea\x2a\x2c\xea\x39\xc1\xc1\x64\x20\xde\xc0\x46\xc6\x62\x05\x7c\x5b\x75\xf5\xe3\x1e\x98\x2e\xf6\xd4\x17\x4d\x3a\x67\x53\xc5\x2e\x7d\xfa\x92\xfe\x26\x2c\xa4\x84\xe5\x56\x63\xc2\x73\x61\x2a\x85\x7b\xd1\x1c\x22\x54\x65\x8a\xfd\x30\x85\xbb\x74\x97\x0f\xc7\x1a\xe2\x6b\x2c\xd0\xed\x45\x98\xb1\xc6\xb6\xa1\x69\x2d\xbf\xa3\xc4\x63\x5a\xc8\xab\x0d\x26\x21\xef\xd3\x63\xb3\xa7\xbd\xa2\x21\xba\x31\x83\x9c\x89\x0c\x5c\xd2\xd0\x78\xe5\xf7\xf9\x1d\xe1\x96\xb7\x24\xe9\x93\xcf\xac\xd5\x7e\x49\xf6\xcc\xb6\xb4\x8e\x37\x85\xdb\xd1\xc0\xd3\x4d\x3b\x54\xd5\x3c\x90\xe3\xd7\x8e\xb6\xaa\xc5\x3a\x73\x3a\x31\x13\xa5\x2f\x7f\x83\x48\x40\x91\x57\x91\x99\xd9\xb9\x28\xd9\x1e\x31\x5d\x3c\x88\xcb\xa3\x9f\x2d\xda\x04\x68\x89\xd0\x56\x3f\x6f\x98\x6a\x44\x60\x83\xba\x08\x73\xe3\x0a\xd4\x16\x29\x55\xda\x54\xac\x51\x51\x91\xa8\x7d\x5a\x2a\xaa\x1f\xa9\x34\x9f\x55\x57\xff\x92\x58\x07\x51\x93\xc9\xe7\x7c\xdf\x93\x7e\xb3\x68\x4b\x52\x02\x33\xd6\xea\x6c\x72\x08\x15\x64\x42\xc1\x53\x79\xe0\x45\xd0\xba\xdc\xb1\x74\xdb\x76\x98\xd5\x0d\x41\x16\x47\xdd\x81\xdc\xfc\xfe\x2c\xfa\x38\x4d\x78\xdd\x1c\xbe\x33\x2b\xe0\x77\x36\xf1\x4b\x45\x33\x89\xfa\x45\xd5\xf1\xf2\xf5\x0d\xec\x68\xa9\xed\x40\x7d\x5a\x24\xc7\xb3\x54\x0a\x84\x0b\xa9\xa1\x8e\x76\x58\xda\x54\xb4\x5a\x31\x33\x15\x84\x67\x2d\x5f\x08\xcb\xc3\x22\x00\x93\x4a\xcd\xa6\x9d\x8d\xfb\x51\x01\xa5\xbd\x38\x59\x0b\x49\x1a\x0a\xdc\x89\x3e\x89\x60\xdb\x92\x77\xbe\x6c\x2b\x9a\xbe\x7c\xa5\x97\x65\x42\xaa\xcd\x8a\xd6\xa3\xf1\xdb\x0b\x56\xed\x56\xd8\xa7\x95\xdd\x18\xa0\xec\x43\x09\xaa\x10\x96\xf3\xb3\x59\x3e\xb4\xb0\x0f\xd0\x7b\x69\x69\x8e\xc8\x4f\x86\x11\x15\xcf\x4c\x22\x03\x53\x0c\x89\x96\x25\x69\xda\x8e\x88\xe7\x29\xcd\x7e\x1a\x42\xe9\x6e\xe9\x87\xc5\x15\x78\xd1\x3f\x9f\xbf\x7c\xd4\x3d\x7f\x36\x7f\xe9\x44\xe3\x62\x5d\x2e\xee\x78\x35\x92\x3c\xa9\xe7\xcd\x6f\xd0\xea\x68\xe2\x99\xc6\x35\x2f\x91\x47\x45\xba\xa6\x52\x68\x26\xb4\x94\xa9\x1a\x11\x9e\x4b\xa3\x49\x23\x64\x78\xc5\xcf\xcc\x86\x74\x9b\x83\x31\x12\xd5\x46\x27\x82\x19\x99\x0b\x58\x3b\x9c\x15\xf0\xed\x39\xe7\x32\xe7\x42\xcc\x7b\xd6\xc5\x78\x37\xd5\xb6\xea\x47\xac\xc3\x72\x24\x57\x16\x54\x7b\xc1\x68\x89\xb6\x40\x0d\xe0\x42\xd2\x98\x9a\xd9\x1c\x1d\x3b\x1d\x72\x52\xf2\xfe\x9c\x12\x0b\xed\x69\x17\xe2\x31\x11\x9a\x24\x8e\xf3\x15\xe9\x52\xa4\x26\xe5\x5d\xb6\xaf\x95\xac\x65\x61\xcc\xf4\xb6\xc2\x26\xc1\xfd\x1a\xcb\x07\x50\x46\xf9\xbc\x28\x5a\x96\x80\x4f\x1c\xc5\x7f\x98\xa5\xef\x96\xae\x1a\x4b\x6e\x46\xa8\x62\x35\x32\x9f\x9c\x3c\x92\x6c\x75\x29\x4a\x26\x28\xc0\x70\x3c\xd1\xa4\x22\xf9\xd9\x23\x3d\xeb\x8e\x72\x30\x21\xf3\x7d\xdf\x53\x72\x5e\x6e\x98\x6b\xa4\x8e\x61\x7d\x01\x40\x28\x53\xbe\x3d\x4c\x48\x48\x27\x99\x9b\xd2\xd4\x8f\xcc\x5b\xf3\xaa\xb3\x0d\x46\xa7\x5b\x9d\x03\x2b\xc4\x26\xc8\xeb\xa3\xb1\x32\x31\x04\x63\xc1\x1d\xf6\xd3\xb8\x3c\x69\xcb\x1f\x3c\x36\x6e\xcd\xa0\x86\x61\x24\xd5\x83\xf5\xf4\x11\xa5\xe0\x12\xb7\xea\x6c\xe7\x52\x63\xcd\xf3\x47\x1b\x93\x17\xe5\xbc\x32\x48\xc0\x92\xde\x5e\x80\xd0\x34\x0a\xd4\x9e\x0d\xfa\xf2\x3a\xeb\x98\x82\x7d\x8c\xb2\xdf\x80\xfa\xa6\xc9\xba\xb5\x28\xd8\x86\x5e\xba\x21\xab\x89\x68\x43\x96\x2a\x77\x46\x26\x04\x7c\x39\x60\xba\xff\xc6\xdb\x1c\x09\x8d\xed\x97\x84\xf7\xb5\x0f\x03\x5d\x8d\xe5\xbe\xe6\x05\x4a\x03\x8a\x7e\x8d\x54\x30\x9b\x97\xe4\x7a\x42\xaf\xfb\x58\x7a\xa7\x05\x52\x0e\x6f\xb2\x0f\x6e\x55\x87\x64\x53\xe1\xae\xd4\xc6\xdf\x92\x45\xd0\x7d\x82\x46\x2f\xea\x39\xeb\xf2\xd7\xf9\x91\x35\x29\xc9\xd6\x0f\x14\xdc\x96\xf9\x56\xb1\xe4\xa4\x34\x71\x4e\x7b\x94\x66\x72\x92\xb6\x2e\xf5\x7c\x48\x29\x8b\x6f\x1b\x82\x28\x18\xba\x97\x27\x6a\x03\x67\xa5\x7a\x44\xfe\x1e\x10\xae\x24\x01\x70\x9c\xfd\x3d\xc9\x37\xbb\x75\x8e\x4d\x3d\x00\x83\x41\x45\x40\x98\xcd\x14\x20\x98\xe0\xfd\xb6\x6c\xab\x05\x27\xb9\xc2\x93\xa7\xd9\x0f\x30\x55\x89\xfb\x49\xbb\x8b\x1b\x2b\x88\xf3\xff\x50\x83\x9c\x66\xcd\x2f\x6c\x17\x5a\x54\xf5\xcf\x72\xd8\x22\xf6\x32\xd6\xa8\xfa\x94\x97\x72\xcf\x5a\x5b\x5c\x31\xff\xed\x6b\x15\xb7\xcd\x44\x3d\x59\xbd\xbe\x92\xad\x51\x1d\x40\xbc\x82\x09\x9e\x0d\xb3\x93\xd0\x34\xb1\x0c\x52\xdf\xd1\x46\x54\x3b\xb0\x4f\xf2\x9d\xe2\xfb\x27\xf3\x7e\x91\xd4\x57\x9d\xd7\xfb\xc1\x68\x3f\x2d\x58\xd4\x41\x77\x9d\xf9\x15\x12\xea\xb3\x8e\x59\x59\xf3\x33\x03\xc9\xad\x75\x52\x02\x45\xb5\x27\x86\x99\x79\x97\x5d\xc6\xdb\x5a\xc6\x7a\x62\x1d\x6a\x83\x6e\xc3\xb3\x2d\x01\x10\xe2\xf2\xc9\xc6\xf5\x06\xcb\xe9\x64\x75\xda\xbd\x27\x6a\x87\x8a\xdc\xc3\xf5\x7b\x5a\x10\x13\x0d\xb8\x75\x72\xb2\xa2\x4c\x26\x2a\xd1\xc8\x8b\xd1\x4a\x1f\x57\x64\x30\x76\xb9\xac\x33\x5a\xc7\x51\xcd\xeb\xfd\x9c\x44\x98\x5b\xde\xcc\xad\x50\x83\xeb\xde\xb7\x22\xb5\xc9\xb0\x2f\x57\xa4\xf0\x05\xfe\x51\x88\x5a\xf7\xad\x3c\x48\x1b\x80\x40\x86\x1c\xe8\x6a\x3b\x9a\x4f\x10\xfa\x9b\x1a\x30\xaa\x4f\x92\xfa\x9b\x5a\x70\x74\x8f\x88\xfd\x60\x55\xc7\x60\x8e\x57\x43\xb6\x0e\xcd\x0e\xc7\xa2\xb1\xc1\x47\x93\x46\x44\xa5\x24\xd7\x0c\xcc\x3e\x45\x43\x75\x8f\x2d\x5b\x38\xdd\x9e\x37\x13\xb6\x86\x44\x9f\x8a\x69\xc4\xaa\x02\x9a\x2a\xd1\xc5\xe9\xe6\x69\x29\xb2\x89\xf8\xb5\xf6\x01\xf6\x3b\x9b\x0e\x1d\x04\xe3\x86\xb5\x71\x07\x74\xaa\x59\x67\xc2\x96\xbf\x55\xf0\xc3\xbc\x21\xb5\x47\x8d\x58\x67\xbb\xa3\x6c\x96\x6c\x48\x16\x62\xe6\x05\x5d\x68\xde\xcd\x3d\xdb\x9a\xdc\x1f\x97\x4a\x3d\x58\xeb\xb9\x0e\x8a\xe7\x59\xcd\x61\x32\x3f\x9b\x43\x59\x9c\x91\x52\xc2\x35\x08\x4f\x48\xcd\x7c\x73\xc8\x8f\xcc\xe4\x5e\xe0\xb2\xab\x49\xaa\xb3\x34\x25\x95\x65\x05\xac\x42\x07\x3d\x09\x1c\xa3\x84\xae\x28\xaf\x58\x1c\x60\xd0\x42\x58\xb2\x6b\x82\x74\x82\x7b\xda\x10\x96\x47\x51\x0a\x74\x23\x65\x63\x9c\x4d\x57\xb6\x4a\xa4\x38\x68\x08\xce\x5e\xdd\xd6\x26\xea\x9e\xb1\x42\x47\xdd\xb0\x7a\x45\x9b\x8d\xd0\x9a\x34\x56\xa2\x2c\x50\x0a\xbc\x1b\xb4\xb2\xcb\xa7\xa2\xc9\x57\x44\x43\xb6\x0c\xbd\xc1\xcf\x1b\x2f\xcd\x8a\xf9\xa7\x24\x1f\xe6\x7a\xd2\xf5\xb4\x04\x98\xd2\x76\xcc\xf0\x6f\xa2\x11\xaa\x91\xcf\xa5\x90\x0d\x20\x53\xb7\xae\x76\x69\x43\x88\xc6\x24\xf4\x6c\x1b\x28\xc5\x44\x8d\xa2\x84\xa5\x40\x0b\x85\x6c\x84\xba\x5b\xf2\x34\xad\xcb\x6d\xba\x64\x1f\xf8\x4c\xbb\x66\x1d\x5b\x8e\x1b\x4e\xf4\x2c\x56\x17\xba\x0e\x37\x4b\xcc\x5d\x30\x51\x71\xd7\x04\x73\x8f\x9e\x15\x07\x50\xd5\xb7\xd4\x19\x0e\xcc\x66\x23\x12\x40\xcf\x8d\x4e\x69\x0c\x9b\xfb\x32\x24\xc4\xf2\x8f\x8e\x3c\xa0\xba\xba\x1f\xc5\x1d\x1a\x4f\x93\x74\x0a\xff\x0a\x5c\xef\xf3\x63\x3c\x7a\xae\xea\x38\x80\x3d\xd5\xf7\xa5\xf6\xc2\x0b\x83\xd7\xca\xa0\x41\xf8\x55\xbc\x75\x93\xf4\x39\x8c\xd4\x39\xa1\xb8\x58\x47\xab\xf3\x16\x25\xa9\x94\x8c\x16\x68\xf2\x99\xbb\xfe\x92\x90\xd0\xac\x57\x25\x3b\xe7\xa8\x25\xde\xf1\xf1\xad\x36\x85\x64\x12\xc2\xab\x56\xd2\x33\x32\x1d\xad\xca\x82\x16\x64\xb3\x7d\xb0\x66\x55\x9b\x8b\xa9\x4b\xfe\xbd\x21\x15\x0a\x87\x65\x7f\xa1\x14\xeb\xeb\x75\x12\xf9\xe4\x07\x9e\x11\x18\x34\x55\x7f\xf4\x5b\xde\xb9\xe6\x90\x61\x0e\xe9\x00\x5f\xcb\x6b\x4b\xd3\x7c\xe4\x2c\xf4\x78\x69\x4b\x4a\xe1\xc4\xf1\xf5\xda\xd2\x38\x54\x12\x9c\xbe\x24\x64\x86\xe2\x88\x82\xfa\x90\xd4\xe4\xf1\x8a\xae\xf5\x4e\x35\xeb\x7f\xa1\xa4\x3a\x53\x52\x77\x94\xaa\x56\x6e\x97\x04\xbe\xf5\x2e\x76\xa2\x77\x89\x7a\x8f\x62\xd7\x91\xf2\xd9\x8b\xf4\x95\x24\xcc\x5e\xde\x57\x8c\xc4\xa7\xaa\x48\x92\x1d\x08\x90\x05\xd8\x0a\x45\x1c\xd2\xf2\xdf\x8e\x9f\xb0\x08\x7f\x1d\xd9\x78\xd2\x0a\x38\xc8\xce\x3f\xa0\x53\xf0\x19\x4f\x60\xeb\xb1\x5f\x16\x46\x60\x1d\x38\xa9\xc9\x54\xe6\x7a\x0c\x76\x28\xe7\x29\x7b\x4a\x69\x06\xc9\xa4\xd2\x81\x6e\x73\xb2\xc6\xee\xab\xdc\x39\x75\x66\xc9\x92\xcf\xfe\x74\x3b\x7b\xcd\xe7\x7e\x38\x92\x1a\x9f\x02\x6f\x9a\x85\x1d\xa3\xbe\xd7\x64\xb2\xdf\x15\xec\x0e\xf3\x03\xfe\x84\x0c\x37\xe0\xb8\x3c\x70\x54\x62\xe8\x56\xcd\xeb\x43\x00\x2f\x52\x85\x63\xcc\x8e\x33\xe3\xe3\x89\xe3\x63\xe5\xe5\x62\x08\x12\x10\x38\x95\x22\xb5\x77\x0d\x60\x26\x42\x00\xe4\x95\x83\x11\x10\x84\x36\xad\x74\xdd\x1c\xd2\x4d\x55\xdf\x75\x4a\x5f\xe7\x4a\x31\x13\x3b\x7d\x85\x0c\x02\x16\x27\x0f\xeb\x37\x55\xbd\x2f\x7f\x4e\x2c\x25\x3e\x7c\x24\xc7\x47\xa5\xa5\x6c\x4f\xc3\x55\xa9\xa7\x0e\x17\xc8\x4e\xcf\x91\x3d\x09\xeb\x4d\x64\xad\x82\x23\x31\x96\x83\xe2\x4b\x4b\x97\x25\x2b\xfa\x90\x4b\x6f\x54\x1c\x10\x7d\x9a\xa6\x53\xb7\xa5\x97\x03\x9c\x07\x1f\x87\x42\xe9\x6c\x39\x08\x9d\x4c\x41\xc6\x8e\x38\x08\x8a\x8d\x50\xd2\x5a\x14\x1f\x78\x2e\xb2\x6a\x2b\xc7\xfd\x9f\xb4\x54\x8e\x14\x9d\x7d\x83\xe2\x59\x52\x37\x83\xc1\x84\x87\x0d\x1f\x88\x96\x32\x7c\x13\x68\x56\x78\x66\xfb\xb6\x10\x04\xbb\x6e\x84\xec\x90\xb3\xb4\x01\xf3\x9b\x7f\x85\xc1\x8c\x7d\xc2\x33\x18\x11\x92\x4e\xb4\x34\x9b\x48\x3b\xbb\xd0\x13\x00\x7f\x44\x45\x94\x0d\xca\xd9\x15\x7c\x3d\x72\x54\x44\x16\x9b\xb6\x70\x52\xad\x1d\xe0\x34\x5a\x3b\x56\xef\x40\x63\x0b\x87\x63\x0c\x3f\x13\xee\xcf\xe1\x54\x4e\x3b\x78\x38\x3b\x51\xec\xb8\x2b\x42\xd0\x9a\x20\x02\xc0\xf0\xe9\xbc\xbd\x73\x2e\xd2\x88\x7d\xe9\x12\xa4\xe0\x00\x34\x4e\x21\xb6\x6b\x09\x4e\x4c\xa7\x50\xb0\xed\x5a\x9a\x74\xda\x01\x07\x4e\xac\x91\x48\x8b\xc4\x17\xa4\x57\xc3\x9a\x64\x20\xb5\xc8\x92\xd5\xb6\x58\xfe\x23\x65\x39\xde\xf1\x59\xb2\x63\xcc\x3a\x55\x61\xed\x4a\x45\x64\x27\x84\x03\xd6\x40\xe9\x9c\x20\x05\x28\x11\xa3\x08\xb0\x10\xc4\x9c\xa8\x96\x9d\x45\x2e\x62\x38\x7b\xff\xd3\xdc\xc2\x51\x87\xce\x2d\xec\x51\x1d\xb0\x0d\xe3\x38\xd8\x71\x46\x0c\x44\x05\x6c\x96\xda\xd4\x07\xbb\xaa\x4e\xbe\xdb\x5c\xb9\x1b\x51\xae\x99\x4c\x94\x85\x2d\x58\x99\x00\x12\x96\x35\x2d\x9c\x5a\x23\xb0\x40\x34\xed\x6e\xe4\xc1\x8c\xe5\xeb\x39\x4c\x09\xa2\x8a\xc0\xb2\x3e\xc0\x1b\x9a\xa8\x61\x6a\x9a\x6c\x99\x10\xab\x5c\xce\xc8\xf4\x20\xff\x28\x87\x95\x5e\x37\x39\x53\xfd\x7d\x5d\xad\xd6\x34\xae\x6a\xcb\xa7\x95\x90\xda\x76\x24\xe6\xcd\x2b\xfe\xa2\x85\xd7\xac\x68\xc3\x17\xd5\x4e\xcc\x7a\x27\x6d\x9f\x77\x7d\xdb\xd4\xab\x97\xaf\x1a\xb6\x7b\xd8\x23\xc3\x5b\xc5\xcf\xcf\x9f\x69\x3e\x89\x0c\x9e\x43\x0e\xb9\x7a\x53\xf5\x6f\xf7\xf3\xc7\x5d\xba\x22\xdd\x00\x1b\xc8\xf3\x3c\x5d\xb7\xe5\xf2\xc5\xf7\x8f\xba\xef\x5f\xca\x19\x92\xa0\xcb\x7e\x1d\x23\xcb\xf3\x67\xf9\x4b\x56\x63\xbb\x66\x43\xda\x65\x5c\xa5\xd9\x6e\x65\x7e\x49\xfc\x6d\x05\x12\xf8\xd3\xc8\x58\x2a\x82\x72\x65\xab\xf4\xa1\x06\x67\x8e\xd7\xfd\xfc\xe8\xb4\x25\xec\xa9\xd0\x8d\x94\x3e\x65\xbb\xe7\x3c\x73\x4f\xc8\xee\x45\x29\x9b\xdf\x80\x89\x58\xb0\x69\x3b\x81\x33\x84\x19\xe6\x3b\x5b\x73\xd2\x61\xb0\xe2\xa0\x32\x9c\x33\x0c\xeb\x92\xb0\x38\xd5\x47\xf2\x5e\xed\x4b\x14\xd0\xde\x10\xe8\x92\x1f\x1a\x3d\x41\x48\x2d\xd3\x33\xa4\xa9\x74\xca\x8e\xe7\x9e\x9b\x86\x4a\x9e\x1e\xa5\x9d\xe4\xc8\x80\x11\xb5\x55\xe5\xc2\x6e\x26\x96\x70\x09\x55\x6a\x5e\xd5\x85\x30\x9e\xf2\x4d\xd1\x40\x58\x3b\x86\xa1\xed\xa8\x66\x20\x78\xeb\x38\xa1\xdf\x01\xe5\x6e\xa2\xf6\x83\x2d\x89\xd6\xfb\xbe\x0e\xd6\x9b\x30\x74\xd6\x37\xe2\xb5\xd2\x41\x5e\x93\xea\xcc\xd1\x0d\x3c\x36\x6e\xf0\x96\x8b\x3b\x8d\xcc\xd1\x13\x49\xab\xf2\x46\x33\x31\x5b\x00\x4c\x50\xd4\x39\x42\xe0\xcb\x5b\x51\xd6\x8a\x1e\x16\xf3\xa6\x61\x12\x9a\x98\xd7\x56\xd8\x5a\x0e\x8f\xd3\xf3\xeb\x77\xb3\xc4\xf5\x67\x6d\xfe\x9a\x93\xd6\x21\x18\x1c\x9c\x01\xc7\x02\x65\xb8\x42\xdd\x51\x85\x54\x37\x7f\x11\x6a\x82\x17\xdd\x98\x46\xe3\x91\xb1\xc4\xe5\x42\xe2\xb2\x0b\x8c\x5a\xe9\x0d\x98\x0c\x65\x9b\x1b\xe9\x77\x44\x58\xe7\x5a\x61\x99\xba\x3b\xb2\xb4\x68\xb1\xa0\x68\x71\xc3\xa3\x01\x35\x0f\xeb\x9d\x3d\x19\xea\x77\xe8\x4a\x56\x40\xc4\xb0\x4b\x59\x43\x6c\x1d\xeb\x1b\xc2\xca\xfc\x61\x6e\xc0\x09\x60\xc3\x9d\xcd\x67\x84\xaf\xdf\x2a\x42\xa4\xc5\xde\x8c\xb5\x96\xef\x52\x11\x44\x72\xf8\xc9\x78\x89\x6e\xa3\x34\x0e\x8d\x1b\x6a\xf3\x50\x6e\x36\xc4\x61\x8a\x90\x3f\x01\x54\x53\x26\x3a\xff\x53\x20\x77\xf2\xc7\xc1\x53\x6e\x2f\x96\xb9\x0d\x0d\x7d\x6b\x8c\x20\x88\x81\x71\xe4\x27\x36\x88\x09\xcc\x8b\xf3\x0f\x1f\xae\x6e\xbd\x9c\x64\xce\xaa\x0b\x92\xe6\xdf\xb9\xe0\x97\x11\x5e\x16\x02\x03\xfc\xd8\xd0\x88\x21\x7c\x10\x8e\xd6\x38\x05\x17\x2e\x7c\x6b\x9d\x92\xab\x06\xab\xb9\x61\x5c\xa4\x46\x11\xe3\x5f\x9c\x52\xf1\x93\xcf\xbc\xc1\x7c\x49\xcc\x5d\x76\xc5\xff\x93\x13\xbe\x57\x70\xb3\xf7\x85\xfb\x88\x37\x42\xa0\x29\x46\x1e\x48\x42\x6c\xdf\xed\x73\xe8\x70\x44\xfb\x06\x72\x71\x99\xe2\x68\xeb\x8c\x1d\x2a\x4d\x0b\x1e\x64\xe2\xee\xeb\xea\x1f\x7b\xec\x90\xac\xc1\xd1\x8e\x7f\x5f\x75\xd5\xbc\xda\x88\xf0\xfc\xab\xfb\x90\x7c\x4e\x0d\xc2\xc1\x82\xce\xe9\xeb\x79\xb7\xa3\x35\xbf\x20\xd9\xdc\xbd\xf8\x9e\x54\x6e\xb2\x58\xf0\xf7\x29\x1b\xea\x9a\xca\x8b\x6a\x4f\x5b\x11\x29\x60\x7c\x66\x4c\xf3\x49\x55\x5e\xf2\xe1\xfb\x9d\xf9\x72\x86\xb1\xaf\x28\x83\x21\xa2\x65\xaf\x29\x2d\xb9\x13\x68\xa9\xba\x0a\x7b\x61\xd3\x8b\x17\x27\x0d\x86\xc5\xe2\x9a\xd9\xfd\xae\x0c\x49\xa7\x87\x0d\x3a\xd1\xaf\xe8\x5f\x5b\x21\x10\x4c\xf2\x39\x10\x39\x0d\x82\x90\x5d\xa6\xef\xf7\x86\x18\x60\xc1\x36\xca\x6c\x55\xf5\xa4\x26\x73\xc0\x36\x8c\x57\x5a\x41\x24\x25\x11\xc3\x2c\x29\xcb\x99\xa8\x6b\xb0\xa8\x58\xd5\x55\x9f\xf1\xf9\xc0\x56\xe2\x52\xa9\xd9\x7c\x23\x6a\x45\x4c\x79\x39\xbe\x4d\x3f\xfe\x7a\xfe\xea\xf2\xd7\xd9\xb6\xb0\xf0\x12\xa5\xa7\xc6\x95\x04\x14\x2d\xca\x65\xbe\xdf\x98\x1b\x09\x03\x46\x46\xfa\x0b\x32\x34\xa4\x99\x0c\x0d\xa2\xdf\xbd\xec\x91\x12\xe4\xfc\xce\x72\x9e\xb0\x1a\xf9\x03\xc7\x01\xb3\x05\xb7\x47\x6c\x14\xe2\x21\xa2\x03\xc3\x44\xa3\x9d\x2d\xe4\xd5\x85\x3b\x4b\xcc\x6b\x58\x7a\x9a\xaf\x4c\xd3\xcf\x4f\xb3\xd7\x7c\xb3\x2f\x07\xfc\x25\x43\x30\xf6\xb2\x9e\x94\x22\x97\x1a\x84\x1d\x90\x44\x21\x66\x08\x66\xcc\x4c\xa9\xe5\x03\x64\x56\x18\xd5\x90\x71\x50\xe6\x5f\x66\x67\xc6\xc6\x62\xc3\xde\x49\x66\x8a\x4c\x44\x86\x41\x73\x8c\x5d\x71\x76\x6e\x9d\x87\xe1\xa7\x09\xef\x1b\x19\xbb\x0b\x20\xb4\x76\xc7\x04\x21\x02\x24\xf2\x33\xec\x28\x92\x09\x11\xb2\xa9\x76\x72\x29\x80\x0a\xaa\x52\xe2\xfc\x90\xb8\xfa\x97\x44\x70\x77\x84\xc4\x7c\xe0\xa6\x00\x17\x90\xa8\xfa\x19\x2b\xba\x67\x9d\x50\xfc\x88\x2f\xbe\xcf\xe6\xc4\xc5\x77\xdf\x07\x3a\x22\xdf\x29\x60\xc5\xf0\x3b\xd2\x3d\x0e\x7a\xd8\xf7\x49\x52\x89\x7d\xff\x0d\x5f\x7b\x8e\x1b\x93\x93\x45\x4e\x24\xfa\xc5\xee\xb8\x44\x43\xd9\x79\xb9\x26\xac\x92\xe9\xc2\x22\x75\x2c\x5c\x5b\xff\xd8\xf3\x28\x45\xbd\x7d\x91\xfe\x2b\x7f\xa5\x6f\xf8\x4b\x87\xc2\x8c\xee\xb8\x18\x13\x31\x60\xfd\x30\x90\x0a\x6b\x52\xa3\x11\x3d\xd7\x4b\xf4\x45\xc0\x4e\x1a\x76\x61\x80\x44\xf4\x32\xd9\xed\xf9\x34\x9a\xa7\xc7\x7a\xbb\xa6\x1c\x0e\x12\x41\x26\x4b\xf9\xa0\x05\xe7\xab\x8d\xda\x48\xdc\x62\xd2\x45\xd4\xb7\x25\x34\x12\xfa\xa7\x65\x19\x01\x67\x7d\x0e\xa7\xa0\x00\x11\x67\xfc\xd7\xf4\x96\x72\x14\xa2\x0c\x8b\x12\x05\x45\xf9\x30\x78\x9e\xfb\xae\x7a\x89\x60\x43\x2a\xd1\xf8\x4a\xf1\xac\x4a\x32\x81\xbb\xac\xcd\x39\x5a\xe9\x63\x7e\x90\x4f\xa2\xa0\x46\xd1\xbf\x95\x94\x64\xdf\x57\x4c\x43\x80\xfe\xb5\xe2\x7b\x0b\x04\x6f\xbd\xcc\xc6\xbd\x59\xc9\x20\x52\x3f\x5d\x0c\xca\x97\xa2\xce\xbe\x66\x65\xd6\xf2\x72\xc8\x88\xd4\xa2\x0b\x5c\xfe\x96\x96\x98\xb8\x7f\x2e\x25\xe5\x4a\x0a\x89\x66\x79\xc5\x97\x42\x2c\xcf\xe2\x05\xaf\xf8\xbf\xcb\xa5\xd9\x56\xe6\xa7\xff\xc9\xe4\xe5\x05\xcb\x9b\x35\x3b\x73\xdb\x4a\xd0\x6f\x50\x14\x04\x0b\xc2\xee\xb8\x08\xbf\x3d\xd8\xba\x69\xee\x24\x60\x72\x8e\xa4\x2f\xa1\x4d\xc0\x0a\x39\x2a\xfd\x6d\x5c\x5a\x94\xbb\x4d\x73\x34\x7b\xf8\x15\xbe\xd4\xd1\x6c\x20\xf3\xbc\xab\x16\xe1\xc5\x8c\x5f\x38\x63\x62\x14\x05\xfb\x69\xda\xec\x9f\xbc\x3c\x98\x44\xfc\x95\xfe\x4f\xfa\xf2\x20\xea\x82\xbd\xb2\x18\xda\x1b\x76\xc4\xba\x52\x75\x81\x05\x5d\xa9\xc7\x6e\xdc\x97\x7a\x93\x78\x31\x4c\xeb\x29\xce\x95\x7a\xaa\x8a\x49\x82\xe1\xd9\x32\xab\xd8\xce\xe5\x34\xf2\xaa\x4e\x79\x53\xe3\xd3\xd7\x07\xfc\xa9\x0e\x15\x77\xb0\xc3\xab\x52\x93\x57\x76\x36\x34\x06\x73\x6a\x9f\x3f\x0f\x8a\x77\x26\x36\x6a\x6a\xf1\x32\xe1\x4c\x88\xcf\x8e\x38\x2b\x3e\x88\x22\xf5\x5e\xc2\xf0\x7d\xf0\x19\x82\x66\x60\x23\x70\xec\x9d\xf5\x8b\x3b\x3e\x38\x15\xe6\x03\x36\x0e\x9d\xf0\xa7\x5b\xe2\x60\x15\x75\x31\x77\xb1\x9b\x6c\x83\x0e\xf5\x00\xae\x97\x8a\x73\xda\x02\x30\xc5\x43\x6b\xa8\xa2\x2c\x64\xc5\xf8\x3c\x02\xb4\x0f\x36\xc6\x01\xa0\x11\xe5\xaa\x5e\x88\xb7\x43\xeb\xe7\xd1\xc1\x9a\x9c\xe1\xc2\x17\xa9\x5a\xf2\x3c\x5f\xdc\x39\x8c\x68\x37\x5f\x94\x6d\x8f\x23\xad\x31\xd9\xd9\x93\xb7\x80\x1c\x7b\xbe\x7b\xf9\x14\x0a\x9d\xdc\x5a\xc0\x28\xc4\xce\xa9\x96\x01\x41\x60\x8b\xb3\x6d\x7d\x5f\x15\xa4\xf8\x62\x32\x66\xcf\x9f\xed\x5e\xc6\xf5\x89\x23\xf8\xd2\xdd\xe9\x36\x06\x13\xc7\xa2\xbd\x42\xf0\x1f\x9f\x19\xe3\xf0\x72\xe9\xcf\xe4\x3b\xf4\x70\x72\x15\x05\x86\x5a\xc0\xea\x26\x71\xbe\xe2\x49\x1e\xd3\xc4\x0c\x05\xdc\xfe\x82\xb1\xe0\x60\xd8\xf9\x94\x05\xac\x0d\x83\xd4\x78\x76\xa2\x29\x31\x74\x8b\x01\x62\xee\x88\xd4\xa1\x66\x15\xda\xd3\xe8\xc5\x86\xd7\x94\xc1\xe5\x40\xd9\x83\xe3\x85\xaa\x48\xff\xa2\xc0\x78\x2e\x82\xec\xd3\x15\x06\xde\xa3\xa8\xad\xd8\x85\x14\x20\x28\x26\xef\xa9\x76\x2e\x26\xdb\x50\x33\x39\x68\x05\x91\x10\x15\xce\xbc\x33\x0d\x28\x96\xc3\xa3\x74\x78\xe8\xac\xa5\x87\x75\x13\x44\xbe\x01\xa9\x14\x8b\x35\x44\x64\x16\x8f\xf5\x20\x5b\x88\xd2\x45\x37\x94\xc1\x4e\x63\x8b\xcf\xb6\x1b\xc4\x59\x6d\xf7\x24\x5b\x36\x15\x4d\x3a\xb6\x0c\xbd\x1c\x74\x75\x73\x9b\x96\xf7\xf0\x14\x93\xa0\x59\x31\xbf\xa6\x7f\x5b\x97\x75\xc9\xa1\x00\x7c\x47\x87\x1d\xc3\xab\xb4\x59\x2c\xd8\x1d\x5c\xd5\x1a\xd0\x7f\x28\xcd\xed\x52\x17\x1b\x71\x0d\x87\x8e\x75\x93\xbb\xa2\x3e\xa6\xb8\xa0\xc3\x42\xa0\xdb\x95\x8b\x6a\x49\x42\xf8\x3d\x69\x01\x44\x86\x46\xae\xff\x40\x60\x3e\xa8\x6d\xba\x91\x40\xed\x63\xbd\x73\x36\xde\x43\xdd\x3d\x3b\xdb\x48\x31\xee\x1d\x9f\x03\x13\x61\xe7\x47\x14\xd0\xe6\x5f\x6e\x96\x72\xa6\xcf\x9e\xa7\xb2\xa0\x4c\xd6\x6c\x70\xad\x4c\xef\x98\xb0\x42\x8c\x06\xd4\x29\x0e\x07\x1e\x42\x6f\x79\x64\xa4\x36\x73\x3c\xa7\x1d\x1f\x85\x27\x07\x43\x9c\x32\x6e\xde\xf0\x7a\x27\x62\x01\xd3\x87\xb3\x7f\x89\x93\x3e\x63\x59\xbc\xdb\x94\x2e\x60\xcb\x2c\x99\x9d\xc4\x46\xf3\x4e\x47\xf4\x42\x98\x8c\x81\xc8\xfe\x81\x58\x49\x8e\x17\xd9\xeb\x74\xd8\xa1\x1c\x08\xca\xfd\x4c\x60\xa4\x1b\x32\x13\x48\x5c\x06\x23\x08\xef\x99\x05\x90\xb9\x67\x87\x22\x4c\xc1\xbd\x1e\xf0\x36\xe2\x44\x5d\x53\x68\x31\xbc\x32\x22\xec\xfb\xc0\x32\x0a\xb8\x3c\xba\x39\x89\x11\x6a\xa8\xf4\x73\x8e\xf3\x7d\xc9\xdc\xfb\xfc\x19\x92\x16\x1e\x6e\x9c\xc7\xd7\xcc\x02\x8e\x3b\xa3\xdd\xb0\x21\xfa\x61\xeb\x6b\xcb\x15\x59\x46\x16\x75\xa4\xdc\xcf\x9e\x48\x70\x79\x78\x96\x95\x6f\xba\xc6\x9a\xa0\xd5\x4a\x20\x77\xac\xa7\x12\xa3\xf0\x6d\x45\x76\x0f\x6c\xc5\x45\xfb\xb8\x90\xa5\xc5\xc7\x04\xc4\xf0\xfb\x1d\xaf\x01\x59\x50\xd6\x0f\x86\xfd\xe4\x2f\x37\x57\x1f\xce\xd2\xdf\x9e\x1e\x0e\x87\xa7\x5c\xfd\xe9\xbe\xdd\xb0\x43\xbd\xe0\xa8\xa6\xff\x71\xf9\xfe\x2c\x2d\xfb\xc5\x0f\xb3\xf4\x52\x96\x86\xf4\x80\xc0\x66\xf1\x92\x2e\xd9\x7b\xcb\x6c\xc9\xce\xb0\x3f\xbe\x64\x76\x12\xdb\xab\x57\xfa\xc2\x48\xdf\x50\x68\xf3\xb4\x9b\x4d\xae\x5c\x20\x16\xb9\xd7\x18\x4b\xb2\xac\x10\xb0\x8f\x84\x2f\x00\x55\x6d\xfa\x3e\x31\x39\x44\xb9\x41\x7e\xc7\x5e\xa6\xfd\xa6\x10\x3e\x35\x89\x46\xa3\x53\x92\x95\xc5\xcf\xc3\x96\x60\x7a\x35\xf5\x86\xed\x91\xbf\x70\xcc\x17\x93\x54\xb8\x80\x8b\x8c\x0b\x00\x1c\xf2\x12\x56\x58\xaa\x97\x0f\xca\x61\x81\x37\x82\x5f\x95\x3d\x8e\x1c\xa7\x78\x43\x30\x77\xb8\xf9\xd9\xb4\x85\x4a\xfb\x1a\x35\xd6\x8a\xf4\x16\xe7\x67\xc4\xcd\x83\x35\xc0\xfb\xd2\x61\xb8\x0e\x86\x5b\x92\x2e\x32\x2f\xee\x75\x91\x8d\x24\xbe\x02\x7e\x6d\x9d\xa9\x06\x31\xd2\xe8\x82\x1e\x54\xb3\x1b\xf5\x20\x27\x23\x99\x8e\xd2\x82\x72\x70\x5a\xf2\xca\xe5\xc5\x5b\x90\x71\x0d\x04\x48\xcc\x32\x4c\x90\x6e\x43\x6a\x5e\x16\xae\x70\xde\xcc\xa2\x33\xa8\x1b\x06\xc1\xc9\x13\xbb\x97\xcc\x1f\x34\x3a\x77\x0b\xd5\x0c\x69\xd5\xbc\xe2\xe2\xbd\x1f\x14\x0e\xaf\xd6\x0e\x8a\xd9\xb2\x90\xdb\xef\x17\x92\x4a\x92\xa2\x5a\x2e\x67\xf3\xb6\x39\x74\x7c\x14\xb4\x6f\x17\x25\x4c\x6f\xfe\x4e\x6f\xf0\x2d\x20\xbb\xbc\x15\x99\x29\x09\xc9\x14\x6b\x93\x32\x25\x21\x99\x2c\x3a\x46\x57\x1f\x5f\x51\x09\x6e\x1b\xf2\x25\x50\x8e\x81\x90\x92\x99\x54\xa1\xe5\x72\xc8\x38\x95\x75\x7d\x0e\xfb\xfa\x86\x4d\x1d\x54\xba\xe1\x1c\x05\xe3\xa4\x51\xd4\x1c\xe2\x7c\x98\x6b\x51\x29\xd8\xe7\xbc\x6f\x1c\xd2\xd0\xe0\x08\x8c\xa6\xa6\xc2\x46\xe6\x41\x42\xd7\x3a\x41\x14\xaa\xb0\x79\x08\x25\x10\x88\xfa\xcb\xbb\x0f\xf2\x09\x27\x81\xc6\xe8\xc0\x4b\xf0\x9a\x1d\x95\xe6\x7a\x98\x4d\xb9\x20\xac\x4c\x5c\x34\xa2\xff\xdb\xcb\x08\xf8\x72\x10\x45\x9b\x2f\x71\x9a\xc0\xff\x5d\x2e\x6d\x96\xbe\xda\x75\x5b\x3e\x1d\x56\x23\xe2\x08\xa9\x6f\x90\x70\xf9\x50\x00\x5e\x40\x0f\x70\x79\xf9\x9a\x2c\xa7\x80\x86\x8f\x0a\x4f\x11\xf3\x71\x10\x2b\x3e\x22\x41\x56\xb1\x81\xa3\x16\xdf\xa0\x43\x70\x87\xbf\xb1\x02\xde\xc1\x2b\x03\x06\xd1\xe7\x2e\x06\xfa\x36\x5f\xc9\xb5\x09\x5f\x06\xd5\xc9\x02\xf6\xa2\x3a\xfe\xda\x8a\x99\x6c\xde\x01\x45\xe5\x67\x88\xfe\x0e\xfd\x5a\x94\xc9\x0e\x2d\x84\x7a\x75\xeb\xd9\x70\x22\xdc\x01\x87\xd2\x2c\xc5\xb7\x83\xb2\x9d\x80\xd9\x25\xdb\x16\xc1\x66\x20\x0c\x14\x2e\xdb\xcb\xbc\xbd\xe3\x0b\xb9\xbc\x72\x5d\x03\x87\x56\x63\xbb\xf8\x7f\x38\x63\xcc\x27\x32\x5d\x9c\x1a\x75\xb8\xa3\x45\x59\xba\x0b\x9f\xa8\x0d\x9d\xd4\xd4\x20\x57\x81\x77\x2f\x09\xe8\x7b\x2f\x29\x79\x09\x62\xc8\x19\xe3\x93\x59\x2a\x7b\x3a\x9c\xb7\x00\xde\x11\xfa\x6f\xe5\xff\xf9\x5f\xff\x9b\x84\xfd\x8e\x8c\xd4\x1e\xa7\xee\x1a\x79\xed\xe7\xdd\x42\x6a\x76\x6d\x53\xec\x17\xbc\x48\x9e\xc2\xfe\x0e\x10\x11\xf2\xa7\x1a\xa8\x47\xa9\x11\x8f\xf2\x9d\x5e\xe3\xef\x1b\xf6\x01\xc4\x4c\x0e\x6d\xd2\xb3\xf9\xaf\xcc\xba\xc3\x36\x8c\xa9\x32\xb5\xff\x5d\xe4\xa7\x4d\x2e\x26\x4d\xc2\xb8\x94\xe9\xc4\x45\xa0\xee\x02\x80\x23\x22\xe3\x33\xd9\x2c\x5f\xfc\xf5\x08\x37\x11\x51\xbc\x3e\x54\x48\x0f\x63\x04\x7b\xc3\xec\x17\x1b\x3d\x0c\x20\x2a\xb9\x5c\x9f\x62\xd1\xe2\x8e\x99\x24\x5e\x57\x82\x48\x5c\x23\x61\x47\x8f\x3b\x8b\x24\xd1\x9b\x75\x88\xd5\x98\x08\xe7\x09\x43\x54\x48\x23\x57\xcf\xaf\xc4\x21\xab\xb3\x37\x7a\x17\x05\xfe\x60\xb3\xaf\x6d\x9b\x2d\x92\x5d\xd9\xec\x24\xa8\x12\x09\x0e\x15\xe7\x77\x2c\x98\xfd\xc4\x83\xf6\x0e\x19\xb4\xae\x91\x81\x5b\x20\xf0\xc2\xf2\xff\x04\xc1\xa7\x6a\x04\x72\xae\xa6\x34\x7f\x10\xe0\xda\x46\xd7\x8f\xbd\xa7\x1a\x81\xef\xd1\x7d\x5f\x6e\x1c\x84\x9a\x38\x80\x1a\x5d\x87\xc0\xcc\x20\xf7\x21\xe8\xe8\x44\xec\xf1\x06\x5e\x11\x0d\xda\xe2\xb6\x48\xca\x6d\x39\xce\xb8\x51\x2b\x4d\x82\xf1\xf9\x9e\x5d\xcd\x37\xe7\x8d\xca\xae\x9b\x60\xc9\x20\xa2\xbd\x0b\xaa\xf1\x7c\x91\x55\xbb\xef\x7f\x16\x78\x3e\x03\xad\x3a\xbe\x7d\xef\x0c\x56\xdc\x38\x70\xd9\xe9\x86\x14\xb0\x4d\xa4\x2c\xa2\x21\xf6\x8e\xfd\xfc\xc7\x9d\xb6\xd3\x21\xa8\xae\x78\x1c\x8b\xea\x8a\xa6\x82\x52\xff\x03\xfe\x51\x9a\xc9\xa9\x2b\x30\x0f\x3a\x48\xb5\x8e\xf3\xaf\x9d\xbe\xa6\xf4\xfb\xdd\xa4\xd1\xed\x88\x6f\x70\x94\xc6\x23\x0e\xb4\xcf\x08\x2b\x47\x10\xb6\xc3\xe3\x50\x03\xa7\x94\xa6\x27\xfd\x8c\xd1\x5a\x1d\xea\xae\xa3\xd0\x02\x0c\xf5\xc1\x2a\x71\xa0\x41\x88\xa7\x33\xbb\xfd\xd1\xbc\x59\xa7\x12\x62\x20\x6e\x8a\xaf\xc7\x19\x9c\xf0\x7b\x3d\x14\x70\x30\xc4\x92\xd7\xb8\x6d\xca\x11\x31\x1f\xac\x11\x6e\x6f\xb1\x6f\xf9\x3f\x12\x84\x30\xed\x5b\x62\x85\xfd\x60\x26\x26\x36\x43\xa3\x9f\x37\x94\x38\xde\xd2\xe8\xc5\x8b\x3f\x14\x74\x9e\x72\x7b\x3c\xbf\xd2\x0f\x91\xe6\x10\x25\x91\x9a\x33\x0d\x51\xb7\x00\xf7\x41\xbe\x17\x39\x88\xaf\xdb\x49\xc4\x80\x07\x92\x6f\xa8\x19\x93\x25\xc3\xfa\x71\x1f\x71\xe8\x85\xe5\x3a\xf7\xde\x25\x12\x2e\x9f\xa8\xb6\x28\x71\x12\x7e\x21\x29\x57\xa2\xb7\x38\xf4\xca\x93\x47\x42\xae\xb3\xbc\x80\x87\xc7\xe7\xea\x6e\xa3\xb4\xe6\xa3\x52\x9a\x94\xe3\x8e\xa7\x30\xf7\x37\xf5\x68\x9a\x04\x50\xd5\x3c\xc5\x0a\x9a\xe9\x4f\xc3\xb6\xe4\x31\x02\xdd\xb5\x3e\x34\x87\x44\xb6\xac\x19\xdf\xc0\x48\xe5\xfa\x85\xe6\xc4\x28\x49\x1e\xeb\x06\x1a\x2b\x86\x31\x90\x7a\x2c\xa1\x61\xe3\xf2\xc1\x11\x3d\x24\xb6\x3b\x9c\xb7\xdb\x54\xac\xf8\x61\xb7\xc6\x71\x2d\xeb\xd3\x21\x73\xcc\xb4\x55\x28\x8e\xbe\x5b\xd1\x00\xa3\x7e\x43\x88\x6f\xe9\x98\xf1\x1c\x75\x77\x66\x76\x3b\x62\x7a\xf9\x48\x57\x04\xe2\xd6\xf0\x90\xf7\x52\x1c\x1e\xee\x31\x1e\x8f\x47\x08\xf1\x2d\x78\x70\x2f\xcf\xf8\x1d\x34\x4c\xe2\x43\xf8\x90\x51\xa6\x21\xca\xa1\x57\xb8\x1b\xa2\xe8\x0f\xcf\x6f\x83\x7d\x12\x27\x2b\xc5\x60\xdf\x67\xb7\xcd\x78\xe7\x94\x12\x71\xf0\x4f\x6c\xcd\x72\x00\x36\x19\x67\xf7\xf5\x25\xce\x33\x8d\x9a\x0e\x34\x38\xda\xf2\x60\x53\xdb\x90\xe2\xe5\x55\x29\xe8\x36\x97\xaa\x4f\x49\xe1\xd7\x77\x5e\x81\xb3\x08\x39\xd1\xab\xc2\x2d\x03\x8a\x95\xcd\x64\x21\x57\x4b\xdd\x1a\x67\x51\x17\xf4\x3a\x6e\xcc\x89\x6a\x40\x39\x11\x3d\x86\x33\xd9\x19\x6a\x45\x81\x13\x89\x85\xf2\x99\xe9\x8a\x72\x8a\x64\x50\xdb\xfc\x18\x1d\x6c\x71\x64\x20\x5b\x42\xd1\xaa\x39\xbd\x65\x8f\x51\xf1\x9b\xb5\xdc\xd7\x74\x0c\x23\x2f\xa5\xe8\x0e\x11\x1f\xe8\x04\x4b\x7d\xcc\x20\x9e\xed\x56\x6d\xce\x3e\x3e\x9b\x6b\x16\x16\x01\x2b\xa0\xc1\x9f\xdc\x28\xd9\xaf\x39\x90\x06\x38\x39\xa0\x86\x1e\x3f\x24\x14\x7e\x07\x02\x10\x1b\x0f\x63\x00\xb1\x20\xb7\x4e\x09\x8d\x40\x04\x3c\x84\x88\x3e\xb3\xf5\xed\x88\x40\x6e\x7c\x23\x22\x67\x86\x85\x5e\xb1\x2a\x8a\xc9\xf5\xff\x10\x7e\x03\x33\x03\xcc\x19\x5d\xa6\x1b\x30\x7c\xf4\x74\xa2\x63\xfa\xe0\x8c\xd7\x9a\x85\x63\x5f\xcf\x9c\x75\x3b\xf3\x4d\xd5\x34\x85\x30\x21\xeb\x3e\x3c\x97\x0e\x1a\xd7\x93\xd2\xbe\x3d\xaa\x4a\xc2\x83\x8b\xc3\x9f\xfc\x55\x05\x31\x7e\x70\x46\x23\x17\x2c\x3f\x83\xec\x5f\x4e\xbc\x81\xca\x7b\x63\xa7\xc7\x6e\x5d\xf4\x1e\xe7\xf8\x8a\xdd\x83\xf7\x0c\xe3\xfb\x95\xc3\x8b\xb6\x9d\x04\x93\xae\x4c\x97\xb3\x57\xb6\x12\x7f\x28\x7d\x73\x24\x1a\x6c\xf1\xa6\xdb\x82\x6f\xb6\x34\x75\x25\xe7\x99\x97\x92\xe2\xcb\x4d\xec\x02\x51\xff\x07\xc7\x38\xe3\xcd\xaa\x0f\xfc\x3e\x95\x1f\x1d\x9c\x7a\xec\xdb\x51\x45\x40\xd2\x41\x79\x70\xdd\x8e\x6d\x1d\xfb\x08\x5b\x00\x26\x70\x1d\xee\x03\xcc\x14\x0f\x34\xba\xef\xa6\x7a\xcc\xf8\x00\x22\xd5\xe3\x17\x7b\x9f\x11\x42\x82\xef\x94\x14\x7c\xa7\x04\xca\x08\x6d\x58\x3e\x23\xa2\x79\x58\xb0\x73\x4f\x14\x44\xd9\xf1\xc6\xe7\xf3\x11\x44\x16\x67\x71\xe4\x58\x94\x91\x2f\x46\xbd\xc8\xa2\x8a\xeb\x49\x50\x54\x98\xc3\x4e\x3c\x3e\x88\x88\x5a\x8f\x43\xf2\xc3\x22\xb9\x32\x1a\x65\xe9\xbb\x5e\xf1\x48\xc4\x97\x19\xe6\x6d\x9a\x15\x5f\x77\x85\xf3\x2f\x1e\x9e\xea\xce\x71\x9b\x9b\xb2\xeb\x69\xfd\xc4\x4d\x70\xc0\x62\x94\x03\x7f\x7d\x9f\x77\x71\x6d\x2c\xc1\x30\x43\x43\xb4\x47\x80\x79\xdf\xe7\x8b\x35\xc6\x3f\x9b\x62\x24\xf7\x2e\x83\x0b\xc3\x96\x67\x43\x27\x20\xe5\xed\xb5\xd4\x5e\x5a\x9b\x84\xe1\x87\x2d\xf1\xb0\x5d\x50\xba\x20\x4a\xd5\x99\xde\x5a\x68\x34\x30\xf4\x82\x33\xed\x86\x42\x7a\x85\x15\xd7\x3d\x58\x29\xd8\xc5\xf8\x5d\x4f\xbd\x15\xa1\x35\x45\xe3\x78\x60\x3b\xf3\x2d\xeb\xc6\xa8\x27\xb2\xb9\xb7\xd5\x3a\xaf\x27\xb0\x76\x63\x47\xb6\x8e\x49\xbe\xa9\x8d\x01\x96\x1e\xc2\x35\xf3\xfb\x51\x85\xd7\x8a\x23\xe9\xe0\x09\x8b\x90\x8c\xc4\x9a\x81\x7c\xa5\x85\x01\x8a\x93\x4d\xfc\x0e\x24\xf9\x31\xc8\xd5\xc2\x3d\x9e\xf7\x8a\x2f\x4f\xb5\x73\x8e\xd9\xe3\x3d\xac\xc4\xaa\x65\x87\x74\xe4\xf9\x9a\xae\xfe\x10\x66\x40\x88\x6d\xee\xa9\xe6\x4f\xe1\xd6\x96\xdd\xb1\x5e\x64\x78\xc9\xb0\x5b\x6b\x68\xdd\xc7\x52\x7c\xd4\x8f\x67\x94\xf7\x8c\x58\x8b\x63\x93\x4b\x5c\x47\x7a\x2c\x77\x4b\x9f\x2c\x28\x17\xef\x28\xd2\x06\xf7\x14\x12\x11\x75\x4d\x7d\x23\xe5\xac\xff\xe1\xc1\x6e\x06\x23\x09\xc4\x61\x40\xd9\x16\x88\xf4\xe5\x37\xe1\x1f\x1c\xfd\x85\x83\x60\x26\xd0\xb5\x0f\x49\x11\xbe\x66\xc0\x64\x7b\xc2\xd1\xd8\x7c\x19\x8e\x9f\xa7\xd2\x20\x06\xdd\xce\xec\x9d\x4a\xf5\x1d\x9d\x18\x50\xd8\xef\x03\xf3\xf3\x38\xc2\xe2\xeb\x63\x0c\xb7\x20\x0e\xc0\x6a\xa9\x23\x3c\xa7\xfc\x02\x6f\xc0\x92\x2e\xfe\x09\xdf\xa1\x48\x90\x7b\xad\xd9\xaa\x69\x1b\x9a\x1e\x38\x66\xed\xae\xeb\x1b\xcb\xeb\x26\x2a\xc0\xf1\x7c\xcc\xf6\x1a\x48\x6a\x75\x2e\x91\x4d\xda\x03\x47\x95\xfa\x5a\x7d\xd3\xe7\x1b\xab\xc3\x57\x04\x17\xea\x2d\xbe\xe5\x02\xab\x75\x6e\x05\x41\x4d\xad\xd3\xcc\x39\x8a\x0d\x55\x14\xf8\x4a\x73\x02\x58\x1c\x2e\xd0\xa8\x37\x44\xae\xfd\x2e\xe3\xa1\xe2\x75\x6c\xc9\x4e\xdf\x23\x3b\xbd\xe5\xec\x71\x0f\x86\x95\xab\x36\x40\xea\x54\xbd\x65\x5b\x8e\xea\xbc\xe6\x90\xe4\x21\xbc\x51\x6e\x5d\xe6\xbb\x11\xdd\xde\x52\xe6\x88\x6a\x80\x1c\x13\x00\xb0\xa7\xa9\x10\xd6\xaa\x0a\x98\x55\x61\x8d\x77\x94\x75\x0a\x1a\x6f\x6e\x0c\xe1\xf1\x4c\xf3\x89\x1a\xba\x63\x0f\xb1\xd2\x93\x92\x11\x56\xcd\xfc\xdf\xf1\xa8\xb1\x42\x5f\xc9\x67\x00\x35\x6f\x9a\x9e\x5f\x4d\xdc\xb1\xb2\xb5\xb8\x73\x64\xfa\xc5\xf2\x59\xd9\x5a\xdc\x8d\x28\x25\xd0\x63\x52\x09\xf4\x69\x5a\x6d\xf9\xda\x02\xf5\xd5\xee\x17\xfd\x9e\x16\xa8\xeb\xf0\xf2\x86\xaf\x40\xdc\xb8\x82\x51\x8f\xa3\x9a\x21\x87\x0e\x2b\x4f\xf5\xbc\x20\x15\xa2\x9c\xec\xfa\x82\x4b\x1e\xec\x7b\x54\x37\xec\x7c\x54\x7d\x6a\xa5\xe0\x29\x07\xf6\x39\xcf\xf7\x8b\xbb\xb2\xe7\x48\xd8\x75\x86\x73\xdd\xb0\xad\x6b\x03\x4b\x7f\x01\x58\xfa\x96\xc0\xd2\x5b\xf8\x60\x26\x5a\xa5\x2d\x67\x5b\xf6\x39\xce\xe7\x83\x56\xde\x5c\xd0\x0c\x70\x76\x91\x4f\xd5\x82\x6f\x26\x53\x1d\x5b\x57\x21\xab\x3d\x41\x0b\x57\x70\xdf\xa8\xda\x7d\xee\x40\xa6\x5a\x63\x23\x40\xf6\xbe\xc5\x71\x21\xef\x14\xb0\x59\x40\x38\x7c\x94\x9c\x00\x16\x77\x5b\x09\xd6\x64\x24\x8e\xa2\x71\xc9\x95\xc0\x6f\x63\x41\x29\x12\xcc\x03\x8b\xe0\x22\xb8\xeb\x7c\xdf\x4d\x02\xee\x72\x59\x4c\x27\x21\xad\x7b\x03\xb4\x9e\x87\x70\xda\x69\x27\xa4\x14\xb1\x22\x76\x9a\x44\x4c\xea\x45\x54\xfb\xdd\x01\x04\x4c\xda\x35\x54\xfc\xfa\x80\xc0\x7e\xf5\x11\x5c\x05\x13\xdd\x15\x1a\xab\xe4\x98\xb6\x85\xe7\x92\x2c\x6d\x65\xf0\x43\xa9\x47\x4f\xf3\xa2\x17\x79\x35\x4f\xcc\x50\x7f\x5f\xc4\xea\x6b\xf0\x00\x1f\xc4\x5a\x8b\x50\x4b\x2d\x50\x24\x7e\x17\x51\xe3\x45\x04\x50\xae\xff\xc8\x41\xd2\x26\xac\x0c\x93\xc1\x74\xf0\xb8\x81\xf7\xb0\x26\x82\xb1\x9d\x7c\xf1\xc4\xae\x2a\x7e\xe3\xa3\x27\x7e\x34\x01\x8d\x71\xbc\x1c\x53\xb7\xea\xb2\x90\x9c\xc3\x9b\x8e\xf9\x80\xbc\x0c\xae\x14\x8e\x40\x71\xde\x1c\x3e\xef\x1b\x1c\xfa\x19\xc9\x71\x13\x1f\xcf\x8a\x6b\x78\xd2\xa8\x85\xa0\x0e\xbc\x5d\xc2\x12\x1c\xe4\x29\x97\x2c\xa6\x48\xe4\x7d\x83\x46\x21\xf7\x78\x0c\xa0\x1f\x3c\x58\x8a\x69\x31\xfd\xb8\xd4\xff\x97\xf7\xb5\x42\x04\xfc\x2b\x5b\x27\xfa\xff\x7f\xf2\xca\xd6\xd0\x2f\xeb\x9e\xd9\xc2\xeb\x45\x33\x84\x3c\xc7\xeb\x38\x3a\xb6\x8a\xd6\x33\x6a\x84\xeb\x14\x19\xf1\x01\x3a\xb2\xbc\xd3\xd7\xfc\xbd\xe2\xb3\xc1\x12\x1d\xf6\x17\x44\xa9\x47\xbd\x49\x8d\xf1\x0d\xda\x18\x05\xc9\x19\x9f\x15\x49\xbe\xfa\x22\x52\xbd\xd2\x56\xaa\xef\x68\x06\x87\x84\x1e\xd0\x58\xde\xe8\xe7\x4b\x78\x51\xeb\xd2\x1e\xa0\x1c\x2f\xee\x08\x6b\xa9\x54\x23\x3c\xc6\x02\xe0\x27\x85\x89\x02\x06\x43\x91\x1c\x0d\xc0\x43\xec\x9d\xe4\xc8\x6b\x36\x78\x66\x52\x52\x9a\x3f\x8e\x7d\x08\x30\xd6\x66\xe2\xae\x83\x46\x01\x34\x29\xab\x02\x5c\x86\x51\x77\x92\x1b\xfe\x94\x89\xe4\xe8\xcf\x56\xe0\x17\x2b\x24\x67\x8e\xa8\x1d\xc4\x96\xb1\xeb\xe9\xd5\x07\xeb\xb6\xef\xdb\x6a\xbe\xef\xa7\xdf\x69\x72\xa5\x23\x68\x3b\xf5\x67\xde\x4d\xbf\x02\xdb\xed\xad\xe1\x9b\xfd\xd7\xda\x1d\xbc\xd4\x3b\x80\x23\xf9\xd2\xeb\x05\x5e\x5c\x7e\x7b\x8d\x6f\x2d\xdc\xb2\x8c\xcc\x3a\xfe\x7d\xa1\x4b\x12\x31\x45\x7a\x73\xae\x25\xf8\x71\x0b\xf5\x8d\xe0\xc7\x2d\x4e\xce\x02\x43\x8e\x7e\x05\xc3\x17\x29\x5d\x51\x14\x10\x57\xdf\x7b\xea\xe5\x29\x1e\x79\xeb\xe8\xf6\xfd\x0d\x25\x17\xed\x51\x8e\x8b\x22\x40\x36\x8b\xb3\xe0\x37\x9c\xb4\x0a\x61\xd5\xe8\xf3\xeb\xea\x04\x55\x0e\xe4\xc7\xf8\x88\x03\xe9\x9f\xb5\xe3\x77\xcb\x21\x33\xeb\x6b\x4f\x4a\xd7\xd1\x16\x13\x7b\x63\xb1\x7d\xb8\xad\x26\xe4\xe2\x70\x07\x8c\x3a\xf8\xc6\xb7\x99\xc2\xb6\x82\xad\xe2\x01\x5c\x27\xef\x45\xc5\xb7\x9b\x43\xc0\x4c\x56\x95\x3d\x28\x10\x35\xec\x0e\x8e\xc6\x15\xa2\x97\x05\xa2\x4a\xd3\x47\xfb\x0f\xbd\x29\x20\xa6\xbe\x99\xd8\xce\x8f\xad\x26\x76\xec\xce\x56\x58\xfe\x8d\x17\x5b\xe4\xc1\xcf\xbf\x60\x89\x07\x20\xf7\x72\x5c\x16\x40\xd8\x2f\x78\x05\x40\xd3\xbf\x22\xa3\x00\x43\x49\xa1\xd9\xcd\x72\xc9\x97\x67\xed\x87\x86\xae\xe4\x53\x7e\x6c\xc8\x6a\xda\xcf\x03\x90\xcd\x0f\x1b\x1a\x3f\xdf\xa1\xf7\x21\x3e\x22\x93\xd5\x27\x03\x9f\xfa\x25\x9f\xa0\x48\x3b\xe2\xa2\xb0\x13\xec\x3b\xfc\x83\x1e\x0f\xfe\xea\x90\x11\x98\xdd\xe8\x8b\x4c\xee\xd6\x06\x75\xe0\xc4\x5f\x20\x24\x76\x5c\x89\xf0\x1e\xd7\x20\xbc\x4f\x80\xcb\xc1\xae\x49\xe9\x1b\x7c\x89\x60\x70\x18\x73\x98\x96\x72\x91\x0d\x58\xf2\x86\x6f\x87\x86\x34\x28\xe6\x9e\x31\xdc\x6f\xa0\x4c\xb2\x86\xff\xa1\xaa\xb0\x5b\xfe\x89\xa9\x40\xbc\xfb\xdc\x70\xa3\xf2\xb9\xe1\x2f\x59\xf9\xdc\xa9\x9f\x96\x1a\x97\xfa\xd3\xf6\x27\x1c\x6f\xf2\xfd\x4e\x7e\x50\xab\xfb\x3e\xe5\xeb\x02\x3f\x04\x35\xc2\x9f\xa5\x8a\x73\x87\x6d\xe8\x0f\xd4\x0c\x9a\xd0\x9f\xe2\x8b\x97\x4c\xb5\x38\x41\x18\xf7\x3b\x15\xd1\x23\x5e\x20\x3f\x5e\x3f\xb7\xcd\x22\xfa\x6d\xa0\x21\x33\x7b\x61\xeb\x58\x39\x14\xb4\x86\x18\x87\x87\x87\xbf\xd8\x90\xe9\xaf\x05\x68\x9c\xb8\xfb\x6d\x8c\x5f\x90\xed\x31\x94\x67\xd8\xed\x57\x1d\x34\x1a\xd7\xf0\xd3\x9f\x01\x44\x00\xb7\x55\x89\x7f\xbb\x68\xfc\xa3\x45\x0a\x66\x2f\x09\xc2\xce\x1f\x3d\x3a\x08\x03\x5f\xdf\x1c\x34\xc1\x20\xd7\x31\x38\x56\x3a\xdb\xa8\x4b\x5b\xae\x6c\x20\x62\x3a\x7d\x0f\x1f\xb6\xc3\x3b\x7a\xc4\x3f\xaa\x24\xbf\x1d\xe0\x5e\x1d\x1f\x57\xb6\x9b\x45\x6e\x12\xed\xa6\xc4\xe4\x24\xf2\xd9\x49\xf8\xbe\xc5\x2d\x7d\xbb\xd7\x2d\xdc\x6c\xc9\x25\x08\x58\xb9\xf2\x1b\x88\x7a\x2d\x02\xc6\x2e\xe5\xb8\x79\xba\xab\x76\xbc\xdd\xea\x6b\xc1\x3c\x3d\x94\x83\x3d\xf7\xaf\xc8\x09\xc9\x1c\xca\xe6\x4b\x7c\x4f\xa3\xa8\xb0\x63\xed\x2e\x2e\x9f\x58\x78\x5a\x32\xb1\x50\xe3\x1f\xd0\x0a\x97\xa5\x1c\xbb\x38\xc4\x70\xd4\x32\x8d\x97\x40\x9e\x44\x4b\x78\xc3\x9f\xa2\x82\x29\x26\x1b\x52\x2e\x2a\xf2\x9d\xac\x04\xe5\x1f\xf9\x8e\x81\x82\x99\x12\xa8\xe1\x54\xb9\x5e\xeb\xb0\xcf\x5a\x8e\x0c\xfc\x3a\x97\xe3\xfc\x60\x9d\x4b\x38\xea\x24\x7a\x06\x4d\x06\xe6\x7d\x55\xa8\x9a\x27\xf0\xd7\x9a\x65\xa0\x06\xe2\x5b\x36\x08\x6d\xda\xa1\x49\x0c\x59\x39\x6d\xf5\x02\x5f\xd1\xd4\xe9\x02\xe3\x75\x20\xb0\x7e\x79\xf1\xd3\x84\x52\xc3\x80\x57\x0b\x47\x18\x73\xff\xbc\xb9\xf0\x6f\xb4\xc0\x53\x34\x18\xcc\xa6\x5a\x96\xce\xaf\xa4\xa3\x79\x4f\x79\x11\x30\xff\xa8\x5c\x67\x97\xb2\xe4\x47\x24\xae\xe8\x63\x30\x88\xb0\x29\x1d\xc9\xa8\xa5\x5d\x05\x5f\x5f\x40\x17\xc9\x98\xa6\xb8\x41\xab\x3c\x0e\xc0\x55\x20\x0f\xc5\xa8\xbd\x53\x1c\x88\x51\xff\x56\xa9\xdf\x77\x5d\xef\xbc\xdf\x4e\xf6\xcc\x50\xba\x23\x31\x0c\x76\x24\x3b\xd9\x9f\x2d\x5a\x79\x02\x82\xff\xb1\x9c\x70\x67\xfe\x91\x75\x66\x79\x1d\xf1\x5e\xb1\x97\x0b\x29\x9a\xf4\xf0\x3e\x12\x40\xc8\x64\x05\xb8\x32\xd1\xe0\x10\xff\xda\x92\x11\x40\xf9\x5b\xb9\xd8\x07\x87\x00\xbf\xca\xb7\x7a\xdd\x7c\x33\x8d\x05\xf2\xed\x6b\x7e\xf1\x85\xf9\x70\xa1\x2f\x70\x2a\xcc\x44\xcc\xb8\x43\x1d\xe1\x88\x16\x96\x78\xb2\x7f\xd7\x3d\x8c\x15\x86\xb2\xe8\x08\x8b\x48\x90\xcf\x6c\x23\xf7\x13\x06\x01\x13\x06\x1b\x6a\x17\x61\x5e\xf6\x63\xa4\x7f\xb9\xb2\x09\xc4\xad\xa8\xe1\x1f\xa3\xbd\xda\xcd\x02\x58\xa8\xd8\xc1\xb3\x79\x82\x83\x94\x7f\x2d\x1c\x2a\xf9\x2c\xf1\x07\x5f\x06\x0f\x29\x99\xb3\x30\x08\x79\x89\xee\xc8\x3c\xc2\x8b\x8a\xfa\x14\x89\x55\xe2\x68\x1f\x79\x00\x2f\x80\x7d\xd6\xb5\x8b\x67\xa8\xf2\xf9\x4f\x5f\xe4\x1d\xc6\xbc\x0f\x00\x3e\xff\xf8\x05\x85\x7f\xfe\xa2\x4d\x0a\x1e\xf6\xfb\xa6\x7f\x6f\x76\x65\x8d\xe7\xfa\xf9\x3b\x6c\x57\x9c\x14\xd2\x74\xf7\x5f\x5c\xeb\x7f\x4f\x34\x30\xc2\x37\xa1\x19\x78\x34\xf1\xf7\x34\xe4\xde\x11\xd0\xf1\xd9\xf7\x80\x2e\xb8\xb6\xc9\x04\x91\xfb\x9b\xc3\xc7\x2b\x95\x54\xb8\xfd\xc9\xb7\x55\x3c\x9d\xe8\xe3\x61\x42\x45\x4d\x8d\x08\xd5\x6c\xf9\x9e\x5e\xf6\xa7\xcc\x3f\x59\x83\x8b\x6a\x52\x50\x75\xfc\x96\x7e\xd3\xea\xcb\xa0\x7f\x72\xcf\xd5\x24\x9f\xfb\xa6\xd9\x7c\x49\xf2\x15\x8f\x89\xfe\x26\x1c\xab\xa5\xb1\xb5\x88\x1f\xa3\x64\x22\x9f\x9c\xfa\x91\x1b\xfe\x91\xac\x4f\x12\x20\x05\xff\x5c\xc0\x8f\x5b\x64\xc8\xcf\x52\x21\x63\x8d\x0c\x7e\x27\x0b\x9f\x05\x3e\x8b\xfc\x88\xaf\x03\xbe\x0e\x65\x79\x27\x95\x21\x61\xa8\x3a\x59\x73\x6b\xe4\x1c\xf1\x7d\x2c\x73\xd4\x96\x7e\xb8\xcf\x47\x45\x6a\x1f\x8f\xf8\x3d\x2a\xf9\x15\x2c\xe4\xdb\x07\xe5\xcb\x23\xaf\x2f\xfc\x7b\xaf\x8f\xf8\x34\xeb\xa8\x59\x48\x51\x0e\x77\xaf\x59\x92\x7c\x04\x31\x41\x36\xaa\x36\x28\x69\xca\x65\x3c\x34\x53\x92\x94\xd7\xe6\x87\xcc\xe3\xa5\x29\xe4\x7a\xac\x34\x95\xfc\xdf\x00\x00\x00\xff\xff\xc9\x12\xbd\xff\x13\x7b\x00\x00") +var _conf_locale_locale_en_us_ini = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xdd\x92\xdb\x38\xb2\xe6\x3d\x9f\x82\xdd\x1b\x5e\xbb\x23\xca\x72\xcc\x4c\xc4\xc6\x46\x87\xed\x8e\xea\x72\xfb\x67\x8e\xcb\x55\xc7\x55\x9e\xd9\xb3\x0e\x07\x87\x12\x29\x89\xa7\x24\x52\x43\x52\xa5\xd6\x5c\xed\x6b\xec\xeb\xed\x93\x6c\x7e\xf9\x83\x1f\x92\x2a\xdb\x73\x36\xf6\xdc\x54\x81\x40\x02\x48\x24\x12\x89\xcc\x44\x02\xca\x77\xbb\xac\x28\xbb\x45\xfa\x22\x3d\x4f\x77\x79\x55\x6f\xca\xae\x4b\xbb\x72\xb3\x7c\xba\x6e\xba\xbe\x2c\xd2\x37\x55\x4f\xdf\xed\x7d\xb5\x28\x93\x64\xdd\x6c\x4b\x02\x7d\x4b\xff\x92\x22\xef\xd6\xf3\x26\x6f\x0b\xca\x78\x65\xe9\xa4\xfc\x7d\xb7\x69\x5a\x00\xfd\x26\xa9\x64\x5d\x6e\x76\xa8\x43\xff\x92\xae\x5a\xd5\x59\x55\xd3\xe7\x0d\xa5\xd2\x77\x75\xd2\x35\x8b\x2a\xdf\x64\x41\x01\x67\x58\xf9\xcf\xe9\x1f\xeb\x22\xbd\xe9\xcb\x5d\xfa\xbc\xdb\xe6\x9b\xcd\xcb\xbc\xe3\x2a\x7d\x99\xe6\x8b\x45\xb3\xaf\xfb\xe7\xcf\xa4\x40\x1a\x6f\xf6\xbd\xb5\x7e\xb5\xef\x25\x6f\xbf\xb3\xac\x4f\xbb\xa4\x2d\x57\x15\x0d\xac\xa5\xac\x8f\x9a\x4c\x0e\xe5\xbc\xab\x7a\x20\xfd\x57\x49\x25\xf7\x65\xdb\x55\x0d\xf0\xf9\x8b\xa4\x92\x5d\xbe\x02\xc0\x35\xfd\x4b\xfa\x72\xbb\xdb\xe4\x5c\xe1\x56\x93\xc9\x26\xaf\x57\x7b\x81\x79\xaf\xc9\x24\xd9\x13\xe5\xea\x9c\x69\xf6\x49\x93\x49\xb9\xcd\xab\x0d\xe8\xf3\x14\x09\x6a\xb7\xeb\x0e\x0d\x53\xf1\x5a\x93\x84\x63\xd6\x1f\x77\x25\xa3\xf8\xf4\x96\x52\xc9\x22\xdf\xf5\x8b\x75\x4e\x39\x17\x92\x4a\x08\x68\xd7\x10\xae\x4d\x7b\x64\x38\xfb\x48\x9a\x76\x95\xd7\xd5\x3f\xf2\x5e\xf0\xbf\x0a\x3e\x93\x6d\xd5\xb6\x0d\x86\x7e\xc9\x89\xa4\x2e\x0f\x19\xda\xa1\x9c\x0f\xe5\x21\x6c\x05\x25\xdb\x6a\xd5\xca\x28\x51\x78\xc9\x5f\x68\x05\x65\xcb\xa6\xbd\xd3\x82\xd7\x48\x0e\xaa\x12\x12\x5a\x1a\xf7\x9f\xd7\x44\x17\x2d\xbd\xe4\x8f\x08\xa0\x4b\xf2\x62\x5b\xd5\xd9\x2e\xaf\x4b\xd0\xe8\x1c\x5f\x44\x17\xfa\x4a\x74\xba\xb3\xae\xec\xfb\xaa\x5e\x75\x28\x96\xac\xf4\x46\xb3\x92\xa0\xcc\xe5\x01\x9f\x2e\x5b\x96\x65\x21\x18\x75\xe9\x6b\x4a\x27\xbb\xfd\x66\x43\x63\xff\xfb\xbe\xec\x7a\xc0\x5f\xd3\x37\x8d\x42\xbe\x93\xaa\xeb\x28\x41\xd9\xef\x38\x91\xd0\x04\xd4\x0b\x46\xe9\x82\x13\x49\xf2\xb9\x2b\xf3\x76\xb1\xfe\x92\xc8\x7f\xee\x11\x89\xd9\x6c\x76\x72\x6a\xc0\x0e\xca\x0a\xd2\x83\x75\x90\x2c\x9a\x02\x1f\x17\xf4\x8f\x9a\xae\xea\xae\x27\x96\xfe\x92\x68\x02\x60\x92\x12\x32\xf6\x55\xbf\x29\x7d\x26\xaf\x8f\x0e\xf3\x90\xbe\xae\xda\xae\x7f\xda\x57\xc4\x72\x1f\xf7\x75\x82\xf1\x11\x3b\x67\xc5\xdc\x56\xf9\x9b\x86\xa8\xc3\xd9\x2d\x8d\xef\xf2\x78\xf3\xaf\xef\xcf\xd2\x6b\x5a\xea\xab\xb6\xa4\x74\x4a\x6d\xd0\x3f\xaa\xf3\xa7\x59\x42\xb5\x94\x0d\x5f\xe5\x7d\x3e\xcf\xbb\x32\x65\x66\x84\x64\x60\x29\xd0\xf5\xd1\x90\xa6\x58\x99\xda\xd0\x05\xe0\xda\xf8\x80\x55\x40\xf9\x10\x0c\x5c\xf9\x7a\x53\x22\x9f\x9a\x4a\xdf\x7d\xf8\x70\xf5\xea\xd7\xb4\xac\x57\x55\x5d\xa6\x87\xaa\x5f\xa7\xfb\x7e\xf9\xdf\xb3\x55\x59\x97\x2d\xc9\x89\x45\x95\x12\xf3\xb7\x34\xcf\x29\x71\xa0\xe0\x3f\x4b\xba\x6e\x93\x6d\x85\x82\x37\x37\xef\xd3\x4b\x50\x71\x97\xf7\x6b\x46\xa4\x5f\x27\xdd\xdf\x37\xa0\x82\xeb\xf0\x76\x5d\xa6\xcb\x8a\x48\xc8\x40\xcd\xd2\x86\x9c\x16\x8a\xe3\x2c\xb1\x0e\x8d\xd4\x6f\xe4\xdb\xb1\x15\x6a\x81\x96\x3c\xd7\x99\x76\xe6\xa7\x3a\xfd\xd8\x34\xbd\x74\xee\x00\x7c\xff\xe7\x34\x67\x90\xab\x6d\xb9\x6d\x68\x7d\x39\x76\xa9\x68\x4a\x0e\x15\x15\xce\xcb\xb4\xcb\xef\x89\x63\xfb\x26\xed\xd7\x55\x97\x16\x34\x5d\x0b\x34\x4c\xcc\xb5\x27\x89\x26\x54\xa7\x29\x16\xca\x5b\x5e\x3c\x44\x86\xda\xee\x69\xb2\xd6\xd4\x18\xe4\x25\x84\x3b\x35\x39\x85\x67\x9a\x93\xa0\xa5\x76\x78\x54\x34\xf7\x0d\x49\x27\xc8\x8f\x57\x9c\xd0\xef\xb0\x7d\xc2\x2a\x5f\x2e\x09\xab\x8e\x88\xfe\x36\x5d\x6c\x1a\x9a\xb1\x4f\x1f\xdf\x53\xe5\x75\xdf\xef\xb2\x5d\xd3\x32\x97\xdc\xde\x5e\x13\x83\xb5\xbd\xcf\x0d\x66\x1e\x30\xf5\x7e\x3b\xa7\xaf\xc3\xba\xa2\x65\x44\x1b\xd2\xa6\x5a\x88\xf0\x62\x52\x6c\x20\xa2\xeb\xb4\xa9\x67\x09\x36\xab\x7d\xcb\x72\x21\x80\xa2\x2e\xad\xe4\x04\x7a\x40\xe1\x19\xfe\xdc\x78\x2c\x79\xb8\x1d\xed\x63\x87\x75\x49\xdb\x15\x0d\xb5\x64\x79\x3c\x13\xf9\xec\xe6\x5d\xa4\x34\x4d\x3b\xef\x80\x7e\xfa\x9f\x5c\xed\xd0\x7b\xbe\xf9\x29\xe9\xb6\x34\x2e\x5d\x13\x37\x97\x34\x5a\x5e\x18\xa8\x46\x13\xa2\x33\x75\x53\xd6\x05\x25\x54\xe6\x6b\x59\xb0\x5e\xb4\xdc\x2d\x9b\xba\xe9\xab\xe5\xd1\x61\xf1\x01\x9f\x36\xe0\x29\x1c\x6c\x57\xcb\x16\x4d\xbd\xac\xda\x2d\x30\xaf\xf3\x39\x55\xb6\x4d\x8e\x64\x0b\x97\x98\x20\xa6\x31\x4a\x27\x1e\xf4\x12\x23\x0d\xbb\x52\x69\x6c\x58\x88\x34\x1e\x09\x5d\x01\x1a\x6e\x73\x26\xc8\xc7\x22\x41\x51\x0c\xcb\x14\x37\x0f\x23\xb5\x07\x5b\xa5\x4a\xc3\x6c\xd5\xb0\x84\x37\xe9\xc7\xcb\xb0\x27\xb1\x9d\xad\xaa\x3e\x5b\x82\xb6\x68\xf3\x35\xea\x62\xfd\x50\x49\xfa\x98\x8a\x1e\xa7\x8b\x66\x4b\x3b\x50\xf1\x73\xfa\xe8\x5e\x65\xc2\x9f\x40\x84\x2c\xbf\x27\x58\x26\xc1\x8b\xf4\xdf\x9a\x7d\x4b\x2b\x52\x44\x92\xa9\x01\x45\x43\x2b\x93\x20\xd3\x6e\xbf\x63\xbe\x56\x81\x71\x96\xee\x04\xb0\x68\x0e\xf5\xa6\xc9\x69\xc1\xd2\xba\x6b\x96\x44\x40\x28\x31\xf3\xaa\xce\x69\x8d\x59\x2b\xcb\xb6\xd9\xa6\x8f\xba\xb3\xf4\xc3\xd5\x2d\x03\xae\x9a\xf9\xbe\xda\x14\x06\x30\xa3\x11\xde\xe7\x9b\xaa\x80\xbc\xd6\xad\x2c\x14\x9c\x96\x55\x09\x2e\x8b\xa6\x85\x50\xe0\xd1\x58\xc5\x13\xd2\xa8\xc5\x2a\xe7\x6c\xaa\xab\xb0\x5c\xcf\x09\x0e\x90\x81\x78\x83\x37\x32\x88\x15\xe6\xdb\xaa\xab\x1f\xf7\x8c\xe9\x62\x4f\x7d\xd1\xa4\x23\x9b\x2a\x76\xe9\xd3\x97\xf4\x37\x81\x90\x12\x96\x5b\x8d\x09\x8f\xc2\x54\x0a\xf7\xa2\x39\x44\xa8\xca\x14\xfb\x61\x0a\x77\xe9\x2e\x1f\x8e\x35\xc4\xd7\x58\xa0\xdb\x8b\x30\x83\xc6\xb6\xa1\x69\x2d\x7f\xa0\xc4\x63\x5a\xc8\xab\x0d\x4f\x42\xde\xa7\xc7\x66\x4f\x7b\x45\x43\x74\x03\x83\x9c\x89\x0c\x5c\xd2\xd0\xb0\xf2\xfb\xfc\x8e\x70\xcb\x5b\x92\xf4\xc9\x67\x68\xb5\x5f\x92\x3d\xd8\x96\xd6\xf1\xa6\x70\x3b\x1a\xf3\x74\xd3\x0e\x55\x35\x0f\xe4\xf8\xb5\xa3\xad\x6a\xb1\xce\x9c\x4e\x0c\xa2\xf4\xe5\xef\x2c\x12\xb8\xc8\xab\xc8\x60\x76\x14\x25\xdb\x23\x4f\x17\x06\x71\x79\xf4\xb3\x45\x9b\x00\x2d\x11\xda\xea\xe7\x0d\xa8\x46\x04\x36\xa8\x8b\x30\x37\xae\x40\x6d\x91\x52\xa5\x4d\xc5\x1a\x15\x15\x89\xda\xa7\xa5\xa2\xfa\x91\x4a\xf3\x59\x75\xf5\x2f\x89\x75\x10\x35\x99\x7c\xce\xf7\x3d\xe9\x37\x8b\xb6\x24\x25\x30\x83\x56\x67\x93\x43\xa8\x70\x26\x2b\x78\x2a\x0f\xbc\x08\x5a\x97\x3b\x48\xb7\x6d\xc7\xb3\xba\x21\xc8\xe2\xa8\x3b\x90\x9b\xdf\x5f\x44\x1f\xa7\x09\xaf\x9b\xc3\x0f\x66\x05\x7c\x67\x13\xbf\x56\x34\x93\x5c\xbf\xa8\x3a\x2c\x5f\xdf\xc0\x8e\x96\xda\x8e\xa9\x4f\x8b\xe4\x78\x96\x4a\x81\x70\x21\x35\xd4\xd1\x0e\x4b\x9b\x8a\x56\x2b\x66\xa6\x82\x60\xd6\xf2\x85\xb0\x3c\x5b\x04\xcc\xa4\x52\xb3\x69\x67\xe3\x7e\x54\x40\x69\x2f\x4e\xd6\xb2\x24\x0d\x05\xee\x44\x9f\x44\xb0\x6d\x89\x9d\x2f\xdb\x8a\xa6\x2f\x5f\xe9\x65\x99\x90\x6a\xb3\xa2\xf5\x68\xfc\xf6\x02\xaa\xdd\x8a\xf7\x69\x65\x37\x00\x94\x7d\x28\x41\x15\xc2\x72\x7e\x31\xcb\x87\x16\xf6\x81\xf5\x5e\x5a\x9a\x23\xf2\x93\x61\x44\xc5\x33\x93\xc8\x8c\x29\x0f\x89\x96\x25\x69\xda\x8e\x88\xe7\x29\xcd\x7e\x1a\x42\xe9\x6e\xe9\x87\x85\x0a\x58\xf4\xcf\xe7\x2f\x1f\x75\xcf\x9f\xcd\x5f\x3a\xd1\xb8\x58\x97\x8b\x3b\xac\x46\x92\x27\xf5\xbc\xf9\x9d\xb5\x3a\x9a\x78\xd0\xb8\xc6\x12\x79\x54\xa4\x6b\x2a\x65\xcd\x84\x96\x32\x55\x23\xc2\xa3\x34\x9a\x34\x42\x06\x2b\x7e\x66\x36\xa4\xdb\x1c\x8c\x91\xa8\x36\x77\x22\x98\x91\xb9\xc0\x6b\x07\x59\x01\xdf\x9e\x23\x17\x9c\xcb\x62\xde\xb3\x2e\x8f\x77\x53\x6d\xab\x7e\xc4\x3a\x90\x23\xb9\xb2\xa0\xda\x0b\x46\x4b\x6e\x8b\xa9\xc1\xb8\x90\x34\xa6\x66\x36\x47\xc7\x4e\x87\x9c\x94\xbc\x3f\xa5\xc4\x42\x7b\xda\x85\x30\x26\x42\x93\xc4\x71\xbe\x22\x5d\x8a\xd4\xa4\xbc\xcb\xf6\xb5\x92\xb5\x2c\x8c\x99\xde\x56\xbc\x49\xa0\x5f\x63\xf9\x00\xca\x28\x9f\x17\x45\x0b\x09\xf8\xc4\x51\xfc\xa7\x59\xfa\x6e\xe9\xaa\x41\x72\x03\xa1\x0a\x6a\x64\x3e\x39\x79\x24\xd9\xea\x52\x94\x4c\xa6\x00\xe0\x30\xd1\xa4\x22\xf9\xd9\x23\x3d\xeb\x8e\x72\x78\x42\xe6\xfb\xbe\xa7\xe4\xbc\xdc\x80\x6b\xa4\x8e\x61\x7d\xc1\x80\xac\x4c\xf9\xf6\x78\x42\x42\x3a\xc9\xdc\x94\xa6\x7e\x64\xde\x9a\x57\x9d\x6d\x30\x3a\xdd\xea\x1c\x58\x21\x36\x41\x5e\x1f\x8d\x95\x89\x21\x80\x05\x3a\xec\xa7\x71\x79\xd2\x96\x3f\x79\x6c\xdc\x9a\xe1\x1a\x86\x91\x54\x0f\xd6\xd3\x47\x2e\x65\x2e\x71\xab\xce\x76\x2e\x35\xd6\x3c\x7f\xb4\x31\x79\xb9\x1c\x2b\x83\x04\x2c\xe9\xed\x05\x13\x9a\x46\xc1\xb5\x67\x83\xbe\xbc\xce\x3a\xa6\x60\x1f\xa3\xec\x37\xa0\xbe\x69\xb2\x6e\x2d\x0a\xb6\xa1\x97\x6e\xc8\x6a\x22\xda\x90\xa5\x8a\xce\xc8\x84\x60\x5f\x0e\x33\xdd\x7f\xc3\x36\x47\x42\x63\xfb\x25\xc1\xbe\xf6\x61\xa0\xab\x41\xee\x6b\x5e\xa0\x34\x70\xd1\x6f\x91\x0a\x66\xf3\x92\x5c\x4f\xe8\x75\x1f\x4b\xef\xb4\xe0\x94\xc3\x9b\xec\x83\x5b\xd5\x21\x61\x2a\xdc\x95\xda\xf8\x5b\xb2\x08\xba\x4f\xac\xd1\x8b\x7a\x0e\x5d\xfe\x3a\x3f\x42\x93\x92\x6c\xfd\xe0\x82\xdb\x32\xdf\x2a\x96\x48\x4a\x13\xe7\xb4\x47\x69\x26\x92\xb4\x75\xa9\xe7\x43\x4a\x21\xbe\x6d\x08\xa2\x60\xe8\x5e\x9e\xa8\x0d\x9c\x95\xea\x11\xf9\x5b\x40\xb8\x92\x04\xc0\x71\xf6\xb7\x24\xdf\xec\xd6\x39\x6f\xea\x01\x18\x1b\x54\x04\xc4\xb3\x99\x32\x08\x4f\xf0\x7e\x5b\xb6\xd5\x02\x49\x54\x78\xf2\x34\xfb\x89\x4d\x55\xe2\x7e\xd2\xee\xe2\xc6\x0a\xe2\xfc\x7f\xaa\x41\xa4\xa1\xf9\x85\xed\xb2\x16\x55\xfd\xa3\x1c\xb6\xc8\x7b\x19\x34\xaa\x3e\xc5\x52\xee\xa1\xb5\xc5\x15\xf3\xdf\xbf\x56\x71\xdb\x4c\xd4\x93\xd5\xeb\x2b\xd9\x1a\xd5\x01\xc4\x2b\x98\xe0\x61\x98\x9d\x84\xa6\x89\x05\x48\x7d\x47\x1b\x51\xed\xc0\x3e\xc9\x77\xca\xdf\x3f\x9b\xf7\x8b\xa4\xbe\xea\xbc\xde\x0f\x46\xfb\x69\x01\x51\xc7\xba\xeb\xcc\xaf\x90\x50\x9f\x75\xcc\x0a\xcd\xcf\x0c\x24\xb7\xd6\x49\x09\x14\xd5\x9e\x18\x66\xe6\x5d\x76\x19\xb6\xb5\x0c\x7a\x62\x1d\x6a\x83\x6e\xc3\xb3\x2d\x81\x21\xc4\xe5\x93\x8d\xeb\x0d\x96\xd3\xc9\xea\xb4\x7b\x4f\xd4\x0e\x15\xb9\x87\xeb\xf7\xb4\x20\x26\x1a\x70\xeb\xe4\x64\x45\x99\x4c\xae\x44\x23\x2f\x46\x2b\x7d\x5c\x11\x60\x70\xb9\xac\x33\x5a\xc7\x51\xcd\xeb\xfd\x9c\x44\x98\x5b\xde\xe0\x56\x56\x83\xeb\xde\xb7\x22\xb5\xc9\xb0\x2f\x57\xf0\xae\x18\xda\x11\xae\xca\x80\x24\xfd\x05\x2c\x64\x3f\x3f\x3f\x6e\xaa\x43\xae\x08\xb5\x76\x37\xc3\xb1\xbd\x44\x63\x26\x9c\x28\x89\x9a\x81\xd5\xa4\x68\xe8\xd6\xbd\x85\x81\xd0\xed\x21\x8b\x61\x4c\x88\x3a\x12\xcf\x25\x76\x5a\x6e\xaa\xe4\x2e\x4e\x37\x4f\x9c\x0c\x0b\xeb\x6b\xed\x33\xd8\x77\x36\x1d\xda\xd7\xe3\x86\xb5\x71\x07\x74\xaa\x59\x67\x01\x96\xbf\x57\xec\xc6\x78\x43\x5a\x83\xda\x80\xce\xf4\xe5\xb2\x59\xb2\x21\x51\x02\x5b\x43\x46\x25\x8a\x6b\x73\x0f\x53\x0d\xfd\xa1\x54\xea\xb1\xb1\x9b\xeb\xa0\x30\xcf\x6a\x4d\x92\xf5\xd6\x1c\xca\xe2\x8c\xf6\x74\xd4\x20\x3c\x59\xe8\xe4\x9b\x43\x7e\x04\x8f\x78\x79\x05\x4f\x8d\x54\x87\x30\xa2\x1d\x7f\xc5\x58\x85\xfe\x6d\x5a\xaf\x46\x09\x65\x48\xbf\x2f\x1f\xd8\x1e\x64\x59\x03\xcb\x9e\xb6\x54\x32\xb3\xe1\xef\xe0\x3d\x55\xf7\x21\xd8\xb2\xb0\xfc\xa0\xd4\x4b\x71\xd0\x10\xfb\x4a\x75\x57\x98\xa8\x7b\x06\x7d\x88\xba\x81\x76\x42\xb2\x5a\x68\x4d\x0a\x1f\x51\x96\x51\x0a\x9c\x03\xb4\x30\xca\xa7\xa2\x08\x57\x44\x43\x18\x56\xde\x5e\xc6\xbe\x45\xb3\x62\xee\x1d\xc9\x67\x6b\x37\xe9\x7a\x5a\x02\xa0\xb4\x79\xe9\xff\x4d\x14\x2a\xb5\x91\x51\xca\x4b\x8b\xc9\xd4\xad\xab\x5d\xda\x10\xa2\x31\x09\x3d\xdb\x06\x3a\x25\x51\xa3\x28\x59\xd1\xa6\x85\x42\x2a\x76\xdd\x2d\x31\x4d\xeb\x72\x9b\x2e\xe1\x42\x9e\x69\xd7\x50\x51\xc5\x5b\x7f\xa2\x67\x31\x5a\xb8\xeb\x70\xaf\xe1\xb9\x0b\x26\x2a\xee\x9a\x60\xee\xb9\x67\xc5\x81\xa9\xea\x5b\xea\x0c\x07\xb0\xd9\x88\x04\xac\x26\x46\x87\x1c\x86\xcd\x7d\x19\x12\x62\xf9\xcf\x8e\x3c\xa0\xba\x7a\xef\xc4\x9b\x18\x4f\x93\x74\xca\xee\x09\xf6\x5c\xcf\x8f\xf1\xe8\x51\xd5\x71\x00\x1c\xbd\xf7\xa5\xf6\x82\x85\x81\xb5\x32\x68\x90\xdd\x12\xde\x38\x48\xfa\x9c\x6d\xbc\x39\xa1\xb8\x58\x47\xab\xf3\x96\x4b\x52\x29\x19\x2d\xd0\xe4\x33\xba\x26\xbb\x7d\x9d\xd7\xab\x12\xbe\x2d\x6a\x09\x1b\x26\x7f\xab\x4a\x2e\x99\x84\xf0\xaa\x95\xf4\x8c\x2c\x2f\xab\xb2\xa0\x05\xd9\x6c\x1f\xac\x59\xd5\xe6\xa1\xe9\x92\x7f\x6f\x48\x03\xe1\xb3\xa6\x3f\x53\x0a\xea\x6e\x9d\x44\x2e\xed\x81\x63\x81\xed\x81\xaa\x3f\xfa\x1d\xe3\x5c\x73\xc8\xae\x65\xe9\xc0\xae\x8a\xd7\x96\xa6\xf9\xc8\x21\xf4\xb0\xb4\x25\xa5\x70\xe2\x37\x7a\x6d\xe9\x04\x66\xf1\x76\xc6\x9b\x03\xb4\xe7\xf6\x9e\xeb\xb8\x2d\xe1\xf1\xa3\xee\x31\x26\xcc\xca\x66\x01\xfc\x2e\xef\x49\x2c\xd6\x62\x93\x88\x84\x0a\xab\x6a\xb1\x6b\x82\xa5\x8a\x80\xcd\xf8\x28\x48\x48\xf1\x25\x21\xe3\x91\x0f\x16\x68\x68\x92\x9a\x3c\x14\x51\x11\xd3\xa9\x3e\xfc\x2f\x94\x54\x17\x48\xea\x0e\x40\xd5\x36\xed\x92\xc0\x23\xde\xc5\xae\xef\x2e\x51\x9f\x4f\xec\xf0\x51\xf6\x7e\x91\xbe\x92\x84\x59\xb9\xfb\x8a\xc7\x54\x15\x49\xb2\x63\xba\x67\x01\xb6\x32\x11\x0e\x69\xf9\x6f\x87\x46\xbc\xf6\x7f\x1b\x59\x66\xd2\x0a\x33\xae\x9d\x5a\xb0\x26\x80\x93\x99\xc0\x42\x83\x37\x95\x4d\xb7\x3a\x70\x2d\x93\x81\x8b\x7a\x00\x3b\x94\xf3\x14\xfe\x4d\x62\x1c\x32\x84\x74\xa0\xdb\x9c\x6c\xa8\xfb\x2a\x77\xae\x18\x9a\x2d\x9c\xd8\xe9\x2e\xfa\x1a\xa7\x75\x7c\x90\x34\x3e\xbb\xdd\x34\x0b\x3b\xfc\x7c\xaf\xc9\x64\xbf\x2b\xe0\xc4\xf2\x03\xfe\xc4\x19\x6e\xc0\x71\x79\xe0\x5e\xe4\xa1\x5b\x35\xaf\xc5\x30\x78\x91\x2a\x1c\x30\x3b\xce\x6c\xf9\x4c\x1c\xfa\xea\x12\x2a\x86\x20\x01\x81\x53\x29\x52\x2b\xd5\x00\x66\x22\x7b\x98\xbc\x72\x9c\xc1\x04\xa1\xbd\x32\x5d\x37\x87\x74\x53\xd5\x77\x9d\xd2\xd7\x39\x40\xcc\x30\x4e\x5f\x71\x06\x01\x8b\x6b\x06\x6a\x55\x55\xef\xcb\x5f\x12\x4b\x89\xe7\x9d\x93\xe3\x03\xce\x52\x76\xc5\xa1\x30\xd0\xb3\x82\x0b\xce\x4e\xcf\x39\x7b\x12\xd6\x1b\xb6\x5a\x85\x0f\xb2\x20\x7e\xc5\x03\x96\x2e\x4b\xa8\xe7\x2c\x0e\xdf\xa8\x14\x22\xfa\x34\x4d\xa7\xce\x46\x2f\x7e\x90\xc7\x9e\x09\x85\xd2\xd9\x72\x10\x3a\x99\x82\x8c\x1d\x4c\x10\x14\x4c\x47\x52\x96\x14\x1f\x5e\xdb\x59\xb5\x95\x43\xfa\x4f\x5a\x2a\x07\x81\xce\x2a\xe1\xe2\x59\x52\x37\x83\xc1\x84\x47\x04\x1f\x88\x96\x32\x7c\x93\xa3\x56\x78\x66\xea\x82\x10\x84\x37\xfb\x08\xd9\x21\x67\x69\x03\xe6\xed\xfe\x0a\x83\x19\xfb\x84\x27\x27\x22\x9b\x9d\x68\x69\x36\x91\x52\x78\xa1\x7e\x7b\x7f\xb0\x44\x94\x0d\xca\xe1\xc0\xbd\x1e\xb9\x17\x22\x3b\x4b\x5b\x38\xa9\x4d\x0f\x70\x1a\xad\x1d\xab\x77\xa0\xb1\x85\xc3\x31\x86\x9f\x09\xf7\xe7\xec\x0a\x4e\x3b\xf6\x4b\x76\xa2\x4f\xa2\x2b\x42\xd0\x9a\x20\x02\xb0\xb9\xd2\x79\x2b\xe5\x5c\xa4\x11\x3c\xe0\x12\x5a\xe0\x00\x34\xba\x20\xb6\x46\x09\x4e\x0c\x9e\x50\xb0\xed\x5a\x9a\x74\xda\x78\x07\xae\xa7\x91\x48\x8b\xc4\x17\x4b\xaf\x06\x0a\x6c\x20\xb5\xc8\xfe\xd4\xb6\x20\xff\x39\x65\x39\xde\x5d\x59\xc2\x9d\x65\x9d\xaa\xb0\x76\xa5\x22\xb2\x13\xc2\x81\xd7\x40\xe9\x5c\x17\x05\x53\x22\x46\x91\xc1\x42\x10\x73\x7d\x5a\x76\x16\x39\x76\xd9\x45\xfb\x9f\xe6\xcc\x8d\x3a\x74\xce\x5c\x8f\xea\x80\x6d\x80\xe3\x60\xc7\x19\x31\x10\x15\xf0\xfe\xab\x53\x1f\xec\xaa\x3a\xf9\x6e\x73\x45\x37\xa2\xd3\x83\x4c\x94\xc5\x5b\xb0\x32\x01\x4b\x58\x28\x78\x7c\xd6\xcc\xe1\x00\xa2\xe0\x77\x23\xbf\x63\x2c\x5f\xcf\xd9\x82\x21\xaa\x08\x2c\xf4\x01\x6c\x68\xa2\xfd\xa9\x45\xb4\x05\x21\x56\xb9\x9c\x6c\xe9\xf1\xfb\x51\x8e\x18\xbd\x4a\x74\xa6\x66\xc3\xba\x5a\xad\x69\x5c\xd5\x16\x67\x8c\x2c\xb5\xed\x20\xcb\x5b\x75\xf8\xa2\x85\xd7\xac\x68\xc3\x17\x8d\x52\x8c\x71\x27\x6d\x9f\x77\x7d\xdb\xd4\xab\x97\xaf\x1a\x98\x5b\xf0\xa3\x60\xab\xf8\xe5\xf9\x33\xcd\x27\x91\x81\x39\x44\xa0\xd4\x9b\xaa\x7f\xbb\x9f\x3f\xee\xd2\x15\xe9\x06\xbc\x81\x3c\xcf\xd3\x75\x5b\x2e\x5f\xfc\xf8\xa8\xfb\xf1\xa5\x9c\xfc\x08\xba\xf0\xc6\x18\x59\x9e\x3f\xcb\x5f\x42\x7b\xee\x9a\x0d\x29\xb5\x71\x95\x66\xbb\x95\xf9\x25\xf1\xb7\x15\x48\xc6\x9f\x46\x06\xa9\xc8\x94\x2b\x5b\xa5\x0f\x35\x38\x73\xbc\xee\xe7\x47\xa7\x2d\x81\x7f\x41\x37\x52\xfa\x94\xed\x1e\x79\xe6\x54\x90\xdd\x8b\x52\x36\xbf\x01\x13\x41\xb0\x69\x3b\x81\x0b\x03\x0c\xf3\x83\xad\x39\xe9\x30\x58\x71\xac\x32\x9c\x03\x06\x2a\x2c\x1b\xba\xea\xd9\x78\xaf\x66\x2d\x17\xd0\xde\x10\xa8\xb0\x1f\x1a\xf5\xfb\xa7\x96\xe9\x19\xd2\x54\x3a\x65\xc7\x73\xcf\x4d\x43\x25\x4f\x0f\xc0\x4e\x72\x64\xc0\x88\xda\xaa\x72\x61\x37\x13\x03\xbc\x64\x55\x6a\x5e\xd5\x85\x30\x9e\xf2\x4d\xd1\xb0\xb0\x76\x0c\x43\xdb\x51\x0d\x20\xf6\xb1\x21\xa1\xdf\x01\xe5\x6e\xa2\xf6\x83\x2d\x89\xd6\xfb\xbe\x0e\xd6\x9b\x30\x74\xd6\x37\xe2\x6b\xd2\x41\x5e\x93\xc6\x8e\x98\x04\x8c\x0d\x0d\xde\xa2\xb8\xd3\x78\x1a\x3d\x47\xb4\x2a\x6f\x34\x93\x67\x8b\x01\x13\x2e\xea\x1c\x21\xf8\xcb\x1b\x6f\xd6\x8a\x1e\xf1\x62\xd3\x30\x09\x4d\xcc\x6b\x2b\x6c\x2d\x47\xbe\xe9\xf9\xf5\xbb\x59\xe2\xfa\xb3\x36\x7f\xcb\x49\xeb\x10\x0c\x0e\xce\x6e\x84\x40\x19\xae\x50\x77\xc0\x20\xd5\xcd\x4d\xc5\x35\x99\x17\xdd\x98\x46\xe3\x91\xb1\xc4\xe5\x42\xe2\xb2\x0b\x6c\x69\xe9\x8d\x31\x19\xca\x36\x37\xd2\x1f\x88\xb0\xce\xa3\x03\x99\xba\x3b\x42\x5a\xb4\xbc\xa0\x68\x71\xb3\x23\x85\xd5\x3c\x5e\xef\x70\xa0\xa8\xbb\xa3\x2b\xa1\x80\x88\x3d\x99\x42\x43\x6c\x1d\xeb\x1b\xc2\xca\xfc\x61\x6e\xc0\x09\xcc\x86\x3b\x9b\xcf\x08\x5f\xbf\x55\x84\x48\x8b\x99\x1b\x6b\x2d\x3f\xa4\x22\x88\xe4\xc8\x12\x78\x89\x6e\xa3\x34\x0e\x8d\x1b\x6a\xf3\x50\x6e\x36\xc4\x61\x8a\x90\x3f\xb7\x53\x53\x26\x3a\xb5\x53\x20\x77\x5e\x87\x90\x27\xb7\x17\xcb\xdc\x86\xfe\x05\x6b\x8c\x20\x88\x81\xf9\xa0\x4e\x6c\x10\x13\x98\x17\xe7\x1f\x3e\x5c\xdd\x7a\x39\x09\xce\xaa\x0b\x92\xe6\x3f\xb8\x90\x95\x11\x5e\x16\xb8\xc2\xf8\xc1\xd0\x88\x21\x7c\xe8\x8c\xd6\x38\x05\x17\x2e\x7c\x6b\x9d\x92\xab\x86\x57\x73\x03\x5c\xa4\x46\x11\xe3\x5f\x9c\x52\xf1\x93\xcf\xd8\x60\xbe\x24\xe6\xa5\xbb\xc2\xff\x24\x74\x74\x06\xae\x69\xe6\x66\xef\xc1\xf6\x71\x6a\x84\x40\x53\x8c\x1c\x9f\x84\xd8\xbe\xdb\xe7\xac\xc3\x11\xed\x1b\x96\x8b\xcb\x94\x0f\xa4\xce\xe0\xc7\x69\x5a\xe6\x41\x10\x77\x5f\x57\x7f\xdf\xf3\x0e\x09\x0d\x8e\x76\xfc\xfb\xaa\xab\xe6\xd5\x46\x84\xe7\x5f\xdc\x87\xe4\x23\x35\x08\xe2\x0a\x3a\xa7\xaf\xe7\xdd\x8e\xd6\xfc\x82\x64\x73\xf7\xe2\x47\x52\xb9\xc9\x62\xe1\xbf\x4f\xe1\x1f\xd0\x54\x5e\x54\x7b\xda\x8a\x48\x01\xc3\x49\x2f\xcd\x27\x55\x79\x09\x5b\xff\xce\x5c\x48\xc3\x88\x55\x2e\x63\x43\x44\xcb\x5e\x53\x5a\x72\x27\xd0\x52\x75\x55\x7c\x00\xbd\x38\x8f\xd2\x60\x58\x10\xd7\x60\xf7\xbb\x32\x24\x9d\x1e\x11\xe8\x44\xbf\xa2\x7f\x6d\xc5\xe1\x5b\x92\x8f\xf0\xe1\x34\x08\x1d\x76\x99\xbe\xdf\x1b\x62\x80\x05\x6c\x94\xd9\xaa\xea\x49\x4d\x46\x98\x35\x1b\xaf\xb4\x82\x48\x4a\x72\xe4\xb1\xa4\x2c\x67\xa2\xae\xc1\x72\xc5\xaa\xae\xfa\x0c\x5e\xfd\xad\x44\x93\x52\xb3\xf9\x46\xd4\x8a\x98\xf2\x72\xe8\x9a\x7e\xfc\xed\xfc\xd5\xe5\x6f\xb3\x6d\x61\x41\x21\x4a\x4f\x8d\x06\x09\x28\x5a\x94\xcb\x7c\xbf\x31\xef\x15\x0f\x98\x33\xd2\x5f\x39\x43\x03\x91\xc9\xd0\x20\xfa\xdd\xcb\x1e\x29\xa1\xc9\xef\x2c\xe7\x09\xd4\xc8\x9f\x4e\xf8\x74\x86\xc7\x2a\xdf\xef\xda\x19\xb6\xf0\xb0\x87\x07\xc7\xe4\x19\xfc\x75\xa9\x86\x52\x44\x67\x8d\x89\x06\x4a\x5b\xb4\xac\x8b\x94\x96\x70\xd9\xb0\xf4\x34\x73\x9b\xb9\x91\x9f\xe6\xf1\xf9\x66\x5f\x0e\x98\x5c\xe8\x68\x3c\x6e\x3d\xe9\xb4\x5c\x6a\xfc\x76\x30\x2f\x0a\x31\xe3\x38\xc8\xcc\x34\x6b\x9c\x3d\x43\x6b\x55\x6b\xca\x41\x99\x6f\x1d\x1e\x95\x8d\x85\x95\xbd\x93\xcc\x94\x33\x39\xa8\x8c\xd5\xd7\xd8\x0d\x69\x47\xde\x79\x18\xb9\x9a\x60\xf3\xca\xe0\xb3\x60\xc9\xb9\x3b\x26\x1c\x5d\x40\xfb\x4e\xc6\xdb\x9a\x64\xb2\x1c\xdb\x54\x3b\xb9\x4f\x40\x05\x55\x29\x21\x82\x9c\xb8\xfa\x97\x44\x70\x77\x84\xe4\xf9\xe0\x4b\x06\x28\x20\x79\xf9\x0b\x8b\x95\x1e\x8a\xa9\xf8\x50\x5f\xfc\x98\xcd\x69\x29\xdd\xfd\x18\x28\xaa\xb8\x8e\x00\xed\xf4\x07\x52\x80\x0e\x7a\x4e\xf8\x49\x52\x89\x7d\xff\x95\xbf\xf6\x08\x39\x93\x43\x49\x24\x12\xfd\x82\x2b\x32\xd1\x28\x78\xc8\x8c\x04\x7a\xa1\xae\x6e\xd2\x09\xc3\x05\xfe\xf7\x3d\x46\x29\x3a\xf6\x8b\xf4\x5f\xf1\x95\xbe\xc1\x97\x0e\x05\xab\xcd\x2d\x25\x9e\x88\xc1\xfa\x0b\x63\xb0\x58\x30\x68\x20\xa3\x5f\x7a\x12\xb8\x11\xb0\x93\x46\x6c\x18\x20\x11\xbd\x4c\x76\x7b\x1c\x64\x63\x7a\xac\xb7\x6b\xca\x41\x7c\x09\x67\x62\xab\x09\x5a\x70\x7e\xea\xa8\x8d\xc4\xad\x68\x5d\xc9\x7d\x5b\xb2\x5a\x44\xff\xb4\x2c\x23\xe0\xac\xcf\xd9\x33\x29\x40\xc4\x19\xff\x35\xbd\xa5\x1c\x85\x28\xc3\xa2\x44\x41\xb9\x7c\x18\x77\x8f\xbe\xab\x5e\x82\xdf\x38\x95\x68\x68\xa6\x78\x95\x25\x99\xb0\xcf\xae\xcd\x11\xe8\xf4\x31\x3f\xc8\x27\x51\x50\x03\xf0\xdf\x4a\x4a\xb2\xef\x2b\xd0\x90\x41\xff\x52\xe1\xca\x03\xc1\x5b\x2f\xb3\x71\x6f\x56\x32\x08\xf2\x4f\x17\x83\xf2\xa5\xe8\xd4\xaf\xa1\x51\x5b\x5e\xce\x32\x22\xb5\xc0\x04\x97\xbf\xa5\x25\x26\x3e\xa8\x4b\x49\xb9\x92\x42\x02\x61\x5e\xe1\x3e\x89\xe5\x59\xa8\xe1\x15\xfe\xbb\x5c\x9a\x6d\x65\x7e\xfa\x9f\x4c\xde\x7b\xb0\xbc\x59\xb3\x33\xdf\xb1\xc4\x0b\x07\x45\x41\x9c\x21\x1b\x3f\x17\xe1\xb7\x07\x5b\x37\xcd\x9d\xc4\x5a\xce\x39\xe9\x4b\x68\x27\xb2\x42\x04\xb4\xbf\x8d\x4b\x8b\x72\xb7\x69\x8e\x66\x94\xbf\xe2\x2f\xf5\x76\x1b\xc8\x3c\xef\xaa\x45\x78\xa7\xe3\x57\x64\x4c\x8c\xa2\x80\xb3\xa8\xcd\xfe\x81\xe5\x01\x12\xe1\x2b\xfd\x9f\xf4\xe5\x41\xd4\x0f\x7c\x65\xe1\xb7\x37\xf0\x06\xbb\x52\xf5\xc3\x05\x5d\xa9\xdb\x70\xdc\x97\xba\xb4\xb0\x18\xa6\x95\x25\xe7\xcf\x3d\x55\xc5\x24\xc1\x70\x9b\x81\x9e\xef\xfc\x5e\x23\xd7\xee\x94\x4b\x37\x3e\x79\x7e\xc0\xa9\xeb\x50\x71\x87\x5a\x58\x95\x9a\xbc\xb2\x73\xb1\x31\x98\xd3\x3d\xfd\x59\x58\xbc\x33\xc1\xb2\xaa\xc5\xd5\xc5\xe7\x61\x38\x37\x43\x56\x7c\x08\x47\x36\x86\x44\xf0\xfb\xb8\x35\x8e\xb7\x61\x43\x05\x61\x7b\xd6\x2f\x5f\x0f\xe2\x13\x71\x1c\x2e\x76\xb2\xb3\xeb\xc9\x9e\x78\x79\x45\x67\xcd\x5d\xd8\x27\x0c\xe1\xa1\x32\x82\x7a\xa9\x78\xc8\x2d\x76\x53\xdc\xc4\x86\x2a\x97\x85\xac\x18\x1f\x8a\x30\xed\x83\x8d\x71\x00\x68\x44\xb9\xaa\x17\xe2\x72\xd1\xfa\x79\x74\xa8\x28\xe7\xd7\xac\x2d\xa8\xaa\x3e\xcf\x17\x77\x0e\x23\xda\xcd\x17\x65\xdb\xf3\x71\xde\x98\xec\x70\x27\x2e\x58\x8e\x3d\xdf\xbd\x7c\xca\x5a\xa5\x5c\x78\xe0\x51\x88\xb1\x55\x2d\x03\x82\xb0\x43\x00\x06\xfe\x7d\x55\x90\xf6\xcd\x93\x31\x7b\xfe\x6c\xf7\x32\xae\x4f\x1c\xc1\x4a\xd0\xc9\x36\x06\x13\x07\xd1\x5e\x71\xdc\x20\xce\xcb\xf9\xe0\x76\xe9\xe3\x11\x3a\xee\xe1\xe4\x2a\x0a\xac\xc5\x80\xd5\x4d\xe2\x7c\xc5\x9d\x3d\xa6\x89\x59\x2b\x7c\x71\x8c\x2d\x16\x07\x03\x0f\x58\x16\xb0\x36\x5b\xc5\xc6\xb3\x13\x4d\x89\xb5\x3d\x50\xf5\xfc\xf1\xb0\x43\xcd\x2a\xb4\xa7\xd1\x8b\xad\xbf\x29\xab\xcf\x81\xc2\x8d\xe4\x85\xaa\x48\xff\xa2\xe0\xf1\x5c\x04\xd9\xa7\x2b\x0c\x5c\x58\x51\x5b\xb1\x1f\x2b\x40\x50\xec\xee\x53\xed\x5c\x4c\xb6\xa1\xb6\x7a\xd0\x0a\x47\x81\x54\x7c\xde\x9f\x69\x2c\xb2\x9c\x60\xa5\xc3\x03\x77\x2d\x3d\xac\x9b\x20\x68\x8e\x91\x4a\x79\xb1\x86\x88\xcc\xe2\xb1\x1e\x64\x0b\x51\xba\xe8\x86\x32\xd8\x69\x6c\xf1\xd9\x76\xc3\x21\x5a\xdb\x3d\xc9\x96\x4d\x45\x93\xce\x5b\x86\xde\x2b\xba\xba\xb9\x4d\xcb\x7b\x76\x57\x93\xa0\x59\x81\x5f\xd3\xbf\xae\xcb\xba\x44\x18\x04\xae\xf7\xc0\x3b\xbd\x4a\x9b\xc5\x02\x3e\xe9\xaa\xd6\xbb\x00\x87\xd2\x7c\x3f\x75\xb1\x11\xff\x74\xe8\xdd\x37\xb9\x2b\xea\x63\xca\x77\x7b\x20\x04\xba\x5d\xb9\xa8\x96\x24\x84\xdf\x93\x16\x40\x64\x68\xe4\xe6\x10\x0b\xcc\x07\xb5\x4d\x37\x12\x56\xfb\xa0\x77\xce\xc6\x7b\xa8\xbb\xa2\x67\x1b\x29\x8f\x7b\x87\x33\x70\x22\xec\xfc\xc8\x05\xb4\xf9\x97\x9b\xa5\xc4\x33\xc0\xfd\x55\x16\x94\x09\xcd\x86\x6f\xa4\xe9\xf5\x14\x28\xc4\xdc\x80\x7a\xe6\xd9\x8b\xc8\x51\xbb\x18\x19\xa9\xcd\xb0\x8e\xec\x0c\x2b\x3c\xbe\x18\xe2\x94\xa1\x79\xc3\xeb\x9d\x88\x05\x9e\x3e\x8e\x7b\x90\x10\xeb\x33\xc8\xe2\xdd\xa6\x74\xb1\x5e\x66\xc9\xec\x24\xac\x1a\x3b\x1d\xd1\x8b\x43\x84\x0c\x44\xf6\x0f\x0e\xb3\x44\xac\xcc\x5e\xa7\xc3\x4e\x06\x99\xa0\xe8\x67\x02\x23\xdd\x90\x41\x20\xf1\x5b\x8c\x20\xbc\x7b\x98\x81\xcc\x47\x3c\x14\x61\x0a\xee\xf5\x80\xb7\x11\x27\xea\x9a\xe2\x16\xc3\xdb\x26\xc2\xbe\x0f\x2c\xa3\x80\xcb\xa3\x4b\x97\x3c\x42\x8d\xb2\x7e\x8e\x10\xe1\x97\xe0\xde\xe7\xcf\x38\x69\x91\xe5\xc6\x79\xb8\xa1\x16\x70\xdc\x19\xed\x86\x0d\xd1\x8f\xb7\xbe\xb6\x5c\x91\x65\x64\x11\x57\xca\xfd\x70\x87\x32\x97\x87\x07\x6a\xf9\xa6\x6b\xac\x09\x5a\xad\x04\x72\x07\x3d\x95\x18\x05\x17\x1d\xe1\xa3\xd8\x8a\x9f\xf8\x71\x21\x4b\x0b\x67\x15\xc4\xf0\xfb\x1d\xd6\x80\x2c\x28\xeb\x87\x87\xfd\xe4\xcf\x37\x57\x1f\xce\xd2\xdf\x9f\x1e\x0e\x87\xa7\xa8\xfe\x74\xdf\x6e\xe0\xd5\x2f\x10\xd1\xf5\x3f\x2e\xdf\x9f\xa5\x65\xbf\xf8\x69\x96\x5e\xca\xd2\x90\x1e\x38\x26\x5a\x5c\xb5\x4b\xb8\x90\xc1\x96\xf0\xc8\xfd\xf3\x4b\x66\x27\x61\xc1\x7a\x1b\x30\x0c\x12\x0e\x85\x36\xa6\xdd\x6c\x72\xe5\x02\xb1\xc8\xbd\xc6\x58\x92\x65\xc5\xb1\xfe\x9c\xf0\x05\x4c\x55\x9b\xbe\x4f\x20\x87\x28\x37\x9c\xdf\xc1\xd5\xb5\xdf\x14\xc2\xa7\x26\xd1\x68\x74\x4a\xb2\xb2\xf8\x65\xd8\x12\x9b\x5e\x4d\xbd\x81\x3d\xf2\x67\xc4\xbb\x81\xa4\xc2\x05\x28\x32\x2e\x60\xe0\x90\x97\x78\x85\xa5\x7a\x6f\xa1\x1c\x16\x78\x23\xf8\x55\xd9\xf3\xb9\xe7\x14\x6f\x08\xe6\x0e\x37\x3f\x9b\xb6\x50\x69\x5f\xa3\xc6\x5a\x91\xde\xe2\x81\x8d\xb8\x79\xb0\x06\xb0\x2f\x1d\x86\xeb\x60\xb8\x25\xe9\x22\xf3\xe2\x5e\x17\xd9\x48\xe2\x2b\xe0\xd7\xd6\x99\x6a\x10\x23\x8d\x2e\xe8\x41\x35\xbb\x51\x0f\x72\x3c\x93\xe9\x28\x2d\x20\x89\x8f\x6c\x5e\xb9\xbc\x78\x0b\x32\xae\x61\x01\x12\xb3\x0c\x08\xd2\x6d\x48\xcd\xcb\xc2\x15\x8e\xcd\x2c\x3a\x08\xbb\x01\x08\x1f\x7f\xc1\xc7\x65\xfe\xa0\xd1\xe1\x5f\xa8\x66\x48\xab\xe6\x9a\x97\x23\x84\x41\xe1\xf0\x56\xee\xa0\x18\x96\x85\x5c\x9c\xbf\x90\x54\x92\x14\xd5\x72\x39\x9b\xb7\xcd\xa1\xc3\x79\xd4\xbe\x5d\x94\x6c\x7a\xe3\x3b\xbd\xe1\x6f\x01\xd9\xe5\xad\xc8\x4c\x49\x48\xa6\x58\x9b\x94\x29\x09\xc9\x84\xe8\x18\xdd\x9a\x7c\x45\x25\x7c\x51\x11\xf7\x47\x11\x88\x21\x25\x33\xa9\x42\xcb\xe5\x90\x21\x95\x75\x7d\xce\xf6\xf5\x0d\x4c\x1d\xae\x74\x83\x1c\x05\x43\xd2\x28\x6a\x5e\x79\x9c\x28\x5b\x68\x0c\xef\x73\xde\x41\xcf\xd2\xd0\xe0\x08\x8c\xa6\xa6\xe2\x8d\xcc\x83\x84\xfe\x7d\x82\x28\x54\x61\xf3\x10\x4a\x20\x26\xea\xaf\xef\x3e\xc8\x27\x3b\x09\x34\x50\x88\xbd\x04\xaf\xe1\x2d\x35\xd7\xc3\x6c\xca\x05\x61\x65\xe2\xa2\x11\xfd\xdf\x1e\x55\xe0\x2f\x07\x51\xb4\xf9\x92\x8f\x34\xf0\xdf\xe5\xd2\x66\xe9\xab\x5d\xb7\xe5\xd3\x61\x35\x22\x8e\x90\xfa\x86\x13\x2e\x9f\x15\x80\x17\xac\x07\xb8\xbc\x7c\x4d\x96\x53\x40\xc3\x47\x85\xa7\x88\xf9\x38\x88\x15\x1f\x91\x20\xab\x60\xe0\xa8\xc5\x37\xe8\x90\xb9\xc3\x5f\x76\x61\xde\xe1\x07\x0a\x0c\xa2\xcf\x57\xee\x54\x2c\x5f\xc9\x8d\x0b\x5f\xc6\xaa\x93\x05\x2b\x46\x75\xfc\x8d\x17\x33\xd9\xbc\x03\x8a\xca\xcf\x38\x70\x3c\xf4\x6b\x51\x26\x1c\x5a\x1c\x6f\xd6\xad\x67\xc3\x89\x70\xa7\x2c\x4a\xb3\x94\xbf\x1d\x94\xed\x04\x60\x97\x6c\x5b\x04\x9b\x81\x30\x50\xb8\x6c\x2f\xf3\xf6\x0e\x77\x79\xb1\x72\x5d\x03\x87\x56\x03\xcc\xf0\x3f\x9c\x31\xf0\x89\x4c\x17\x52\xa3\x0e\x77\xb4\x28\x4b\x77\x57\x94\x6b\xb3\x4e\x6a\x6a\x90\xab\x80\xdd\x4b\x82\x19\xdf\x4b\x4a\x1e\x91\x18\x72\xc6\xf8\x78\x98\xca\x9e\x0e\xe7\x2d\x80\x77\x84\xfe\x6b\xf9\x7f\xfe\xd7\xff\x26\x61\xbf\x23\x23\xb5\xe7\xa3\x7f\x8d\x3a\xf7\xf3\x6e\x4e\xef\x5d\xdb\x14\xfb\x05\x16\xc9\x53\xb6\xbf\x03\x44\x84\xfc\xa9\x46\x0b\x52\x6a\xc4\xa3\xb8\x0e\x6c\xfc\x7d\x03\x1f\x40\xcc\xe4\xac\x4d\x7a\x36\xff\x0d\xac\x3b\x6c\xc3\x98\x2a\x53\xfb\xdf\x45\xbd\xda\xe4\xf2\xa4\x49\x2c\x99\x32\x9d\xb8\x08\xd4\x5d\xc0\xe0\x12\x96\x49\x36\xcb\x17\x7f\xb3\xc2\x4d\x44\x74\xab\x82\x55\x48\x0f\x63\x04\x7b\x03\xf6\x8b\x8d\x1e\x00\x88\x4a\x2e\x37\xaf\x20\x5a\xdc\x59\x97\xc4\x2a\x4b\x24\x8b\x6b\x24\xec\xe8\x71\x67\xe1\x2c\x7a\x29\x8f\x03\x46\x26\x62\x8a\xc2\x38\x19\xd2\xc8\xd5\xf3\x2b\x31\xd8\xea\xec\x8d\x9e\x54\x61\x7f\xb0\xd9\xd7\xb6\xcd\x16\xc9\xae\x6c\x76\x12\xd9\xc9\x09\x84\xc9\xe3\x09\x0c\xb0\x9f\x78\xd0\xde\x71\x06\xad\x6b\xce\xe0\x0b\x24\xec\x85\xc5\xff\x84\x03\x6f\xd5\x08\x44\xae\xa6\x34\x7f\x10\xdc\xdb\x46\x37\x97\xbd\xa7\x9a\x83\xfe\xa3\xab\xc2\x68\x9c\x09\x35\x71\x0a\x36\xba\x0a\xc2\x33\xc3\xb9\x0f\x41\x47\xc7\x72\x8f\x37\xec\x15\xd1\xc8\x31\xb4\x45\x52\x6e\x8b\x18\xeb\x46\xad\x34\xb9\x88\x80\x2b\x7a\x35\x2e\xdd\x1b\x95\x5d\x37\xc1\x92\xe1\x68\xfe\x2e\xa8\x86\xf9\x22\xab\x76\xdf\xff\x22\xf0\x38\x88\xad\x3a\x5c\xdc\x77\x06\x2b\xdf\xb6\x70\xd9\xe9\x86\x14\xb0\x4d\xa4\x2c\x72\x43\xf0\x8e\xfd\x72\xe2\x64\x6b\x7c\xe5\xe7\xfb\xcf\xb6\xc6\x6d\x3c\x7c\xba\xf5\xcf\x7a\x8f\xa7\x03\x72\x5d\xf1\x38\x32\xd7\x15\x4d\x85\xe8\xfe\x07\x1c\xb5\xc4\x52\x8a\xc6\x68\x6d\x9f\xf4\xd4\x6a\x1d\xe7\xe8\x3b\x7d\xd5\xea\xfb\xfd\xb5\xd1\x15\x95\x6f\xf0\xd8\xc6\x23\x0e\xd4\xe0\x08\x2b\x47\x10\x38\x04\xe2\xc0\x8b\x53\xda\xb1\xd7\x8a\x23\x99\x31\xd4\xa1\x47\x71\x16\x3c\xd2\x07\xab\xc4\x51\x17\x21\x9a\xce\xfc\xf7\x71\x0a\x66\x25\x4b\xbc\x85\xb8\x4b\xbe\x1e\x74\x71\xc2\xff\xf6\x50\xf4\xc5\x10\x4b\xc8\x1a\x53\x0e\x22\x5a\x3e\x58\x23\xdc\x66\x63\x1f\xf7\x7f\x24\x22\x63\xda\xc7\x05\xc3\xe1\x60\xa6\x2e\x6f\xca\x46\x3f\x6f\xb0\x21\xf8\xd4\xe8\x05\x21\x14\x0a\x5c\x4f\xb9\x3d\xbf\x20\xd3\x0f\x91\x46\xbc\x96\x48\xef\x99\xc6\xeb\x5b\xb4\xff\x20\xdf\x8b\x3e\x0e\x36\xdc\x49\xf8\x84\x07\x92\x6f\x56\x77\x26\x4b\x86\xf5\xe3\x3e\xe2\x38\x14\xcb\x75\x6e\xc6\x4b\x4e\xb8\x7c\xa2\xda\xa2\xe4\xb0\x80\x0b\x49\xb9\x12\xbd\x49\xa3\xd7\xce\x3c\x12\x72\xa5\xe8\x05\x7b\x9a\x7c\xae\xee\x7a\x4a\x6b\x1c\xd9\xd2\xa4\x1c\x77\x98\xc2\xdc\xc5\xd8\x63\x9a\x04\x50\xd5\x4d\xc5\x8a\x35\xe4\x9f\x87\x6d\xc9\x7b\x0a\xba\x7b\x7e\x68\x0e\x89\x6c\x9d\x33\xdc\x82\x49\xe5\x0a\x8c\xe6\xc4\x28\x49\x1e\x74\x14\x0d\x9c\xe3\x31\x90\x9a\x2e\x71\x72\xe3\xf2\x41\xa8\x00\xef\x1c\x2e\x48\xc0\x6e\xb4\x41\x01\x65\xad\x81\x8f\x8d\xa1\xd7\x87\xcc\x31\xd3\x56\x59\x81\xf5\xdd\x8a\x26\x1a\xf5\x1b\x42\x7c\x4b\xc7\xc0\x73\xd4\xdd\x99\xf9\x0f\x38\xc0\x19\x47\xcb\x22\x0f\xb7\x86\x87\x3c\xf9\xe2\xf0\x70\xef\x09\x79\x3c\x42\x88\x6f\xc1\x03\xbd\x3c\xc3\x53\x6e\x3c\x89\x0f\xe1\x43\xc6\xa1\xc6\x6b\x87\xde\xe9\x6e\x88\xa2\x3f\xc4\xbf\x0d\xf6\x6b\x3e\xe1\x29\x06\xfa\x07\xdc\x47\xe3\x8d\x53\x4a\xe4\xa0\x61\x42\x45\x90\x83\xb8\xc9\xa0\xc3\xaf\x2f\x71\xcc\x34\xd7\x74\xa0\xc1\x11\x9b\x07\x9b\xda\x85\x14\x2f\xaf\xd2\xb1\x8e\x75\xa9\x7a\x9d\x14\x7e\x7d\xe3\x15\x38\x0b\x17\x14\xfd\x2e\xdc\x32\x58\xc1\xb3\x99\x2c\xe4\x7a\xaf\x5b\xe3\x10\x75\x41\xaf\xe3\xc6\x9c\xa8\x66\x28\x27\xa2\xc7\x70\x26\x3b\x43\xed\x2c\x70\x66\x41\x28\x9f\x99\xce\x2a\xa7\x59\x06\xb5\xcd\x8f\xd1\x01\x1b\xc2\x24\x61\x91\x45\xab\xe6\xf4\x8e\x3d\x46\xc5\xef\xd5\x72\x67\xd6\x31\x8c\x3c\xf6\xa2\x3b\x44\x7c\xb0\x14\x2c\xf5\x31\x83\x78\xb6\x5b\xb5\x39\x7c\x8d\x36\xd7\x10\x16\x01\x2b\x70\x83\x3f\xbb\x51\xc2\xbf\x3a\x90\x06\x7c\x82\x41\x0d\x3d\x7e\x48\x28\x7c\x07\x02\x2c\x36\x1e\xc6\x80\xc5\x82\xdc\xfc\x25\x34\x02\x11\xf0\x10\x22\xfa\x52\xd8\xb7\x23\xc2\x72\xe3\x1b\x11\x39\x33\x2c\xf4\xbe\x59\x51\x4c\xae\xff\x87\xf0\x1b\x98\x3b\xcc\x9c\xd1\x85\xc6\x01\xc3\x47\xaf\x3f\x3a\xa6\x0f\xce\x9a\xad\x59\x3e\x60\xd0\xb3\x6f\xdd\xce\x7c\x53\x35\x4d\x21\x9b\xb2\x75\x1f\x9e\x8f\x07\x8d\xeb\x89\x6d\xdf\x1e\x55\x25\xc1\xe0\xe2\x30\x2c\x7f\x6f\x43\x8c\x30\x3e\x2b\x92\x4b\xae\x9f\x99\xec\x5f\x4e\x3c\xe3\x8a\xbd\x91\x05\x00\xfe\x47\x4f\x8a\x8e\xef\x1b\x3e\x78\xd7\x33\xbe\xe3\x3a\xbc\xec\xdc\x49\x64\xed\xca\x74\x39\x7b\x28\x2c\xf1\x87\xe3\x37\x47\xa2\xc1\x96\x9f\xa5\x5b\xe0\x9a\x4f\x53\x57\x72\xae\x7a\x29\x29\xdc\xf4\x82\x2b\x46\xfd\x30\x08\xf8\xe6\x67\xb7\x3e\xe0\x89\x2d\x3f\x3a\x76\x2e\xc2\xc7\xa4\x8a\x80\xa4\x83\xf2\xe0\xee\x21\x4c\x1d\xfb\x08\x5b\x60\x4c\xd8\x85\xb9\x0f\x30\x53\x3c\xb8\xd1\x7d\x37\xd5\x63\x86\x83\x90\x54\x8f\x81\xec\x89\x49\x16\x12\xb8\x60\x53\xe0\x82\x0d\x2b\x23\xb4\x61\xf9\x8c\x88\xe6\x61\xc1\xce\xbd\xb2\x10\x65\xc7\x1b\x9f\xcf\xe7\x60\xb6\x38\x0b\x11\x6c\x51\x46\xbe\x18\xf5\x22\x8b\x2a\xae\x27\xc1\x59\x61\x0e\x9c\x89\x38\x10\x89\x5a\x8f\xef\x27\x84\x45\x72\x6d\x37\xca\xd2\xa7\xc9\xe2\x91\x88\x4f\x35\xcc\xdb\x34\x2b\x5c\x39\x66\x27\x64\x3c\x3c\xd5\x9d\xe3\x36\x37\x65\xd7\xd3\xfa\x89\x9b\x40\xe0\x64\x94\xc3\xe7\x06\x7d\xde\xc5\xb5\x79\x09\x86\x19\x1a\xaf\x3e\x02\x24\x9b\x3a\x5f\xac\x79\xfc\xb3\x29\x46\x32\xd3\xd8\x31\x93\xbe\x7c\x3a\x01\x29\xcf\xc7\xa5\xf6\x58\xdc\x24\x0c\xde\xe6\xe4\xb7\xf9\x82\xd2\x05\x51\xaa\xce\xf4\x0a\x47\xa3\x01\xaa\x17\xc8\xb4\xeb\x1a\xe9\x15\xaf\xb8\xee\xc1\x4a\xc1\x2e\x86\xa7\x49\xf5\x8a\x88\xd6\x14\x8d\xe3\x81\xed\xcc\xb7\xac\x1b\xa3\x9e\x0c\xe7\xde\x56\xeb\xbc\x9e\x00\xed\xc6\x8e\x8e\x1d\x93\x7c\x53\x1b\x03\x2c\x3d\x84\x6b\xe6\xfb\x51\x65\xef\x19\x22\xfa\xd8\x23\x17\x21\x19\x89\x35\x03\xf9\x4a\x0b\x03\x14\x27\x9b\xf8\x0e\x24\xf1\x9e\xe5\x6a\xe1\xde\xff\x7b\x85\x9b\x64\xed\x1c\xb1\x83\xd8\xc3\x4a\x5e\xb5\x70\x8c\x47\x1e\xb8\xe9\xea\x0f\x61\xc6\x08\xc1\xe6\x9e\x6a\xfe\x14\x6e\x6d\xd9\x1d\xeb\x45\xc6\x8f\x31\x76\x6b\x0d\xf1\xfb\x58\x8a\xaf\xfc\xf1\x8c\xf2\x9e\x11\x6b\x21\x46\xba\xe4\xbb\x59\x8f\xe5\xa2\xed\x93\x05\xe5\xf2\x53\x90\xb4\xc1\x3d\x65\x89\xc8\x75\x4d\x7d\x23\xe5\xac\xff\xe9\xc1\x6e\x06\x23\x09\xc4\x61\x40\xd9\x96\x11\xe9\xcb\x6f\xc2\x3f\x38\x82\x0c\x07\x01\x26\xd0\xb5\xcf\x92\x22\x7c\x51\x02\x64\x7b\x82\xa8\x70\xdc\x0c\xc4\x0b\x5b\x1a\x4c\xa1\xdb\x99\x3d\xb5\xa9\xae\xa3\x13\x03\x0a\xfb\x7d\x60\x7e\x1e\x47\x58\x7c\x7d\x8c\xe1\x16\x04\x8f\x61\x4b\x1d\xf1\x8b\xd0\x2f\xf8\x19\x5b\xd2\xc5\x3f\xf1\x77\x28\x12\xe4\x92\x6f\xb6\x6a\xda\x86\xa6\x87\x1d\xc4\x76\xf1\xf7\x8d\xe5\x75\x13\x15\xd8\x01\x7e\xcc\xf6\x1a\xd0\x6a\x75\x2e\x39\x9b\xb4\x07\x44\xb7\xfa\x5a\x7d\xd3\xe7\x1b\xab\x03\xff\xe3\x42\xbd\xd6\xb7\x28\xb0\x5a\xe7\x56\x10\xd4\xd4\x3a\xcd\x1c\xd1\x74\x5c\x45\x81\xaf\x34\x27\x80\xe5\x43\x0e\x1a\xf5\x86\xc8\xb5\xdf\x65\x18\x2a\x3f\xf0\x2d\xd9\xe9\x7b\xce\x4e\x6f\x91\x3d\xee\xc1\xb0\x72\xd5\x06\x48\x9d\xaa\xb7\x6c\xcb\x51\x9d\xd7\x08\x8d\x1e\xc2\x1b\xe5\xd6\x65\xbe\x1b\xd1\xed\x2d\x65\x8e\xa8\xc6\x90\x63\x02\x30\xec\x69\x2a\x84\xb5\xaa\x82\xcd\xaa\xb0\xc6\x3b\xca\x3a\x05\xcd\xef\x9e\x0c\xe1\xf9\xa5\xe9\x13\x35\x74\xc7\x1e\x62\xa5\x27\x36\x23\xac\x9a\xf9\xbf\xf3\xbb\xcc\x0a\x7d\x25\x9f\x01\xd4\xbc\x69\x7a\x3c\xfc\xb8\x83\xb2\xb5\xb8\x73\x64\xfa\xd5\xf2\xa1\x6c\x2d\xee\x46\x94\x12\xe8\x31\xa9\x04\xfa\x34\xad\xb6\xb8\x3e\x41\x7d\xb5\xfb\x45\xbf\xa7\x05\xea\x3a\xbc\xbc\xc1\x55\x8c\x1b\x57\x30\xea\x71\x54\x33\xe4\xd0\x61\xe5\xa9\x9e\x17\xa4\x42\x94\x93\x5d\x5f\xa0\xe4\xc1\xbe\x47\x75\xc3\xce\x47\xd5\xa7\x56\x0a\xbf\x6b\x01\x97\xf3\x7c\xbf\xb8\x2b\x7b\x44\xe4\xae\x33\x3e\x5f\x0e\xdb\xba\x36\xb0\xf4\x57\x06\x4b\xdf\x12\x58\x7a\xcb\x3e\x98\x89\x56\x69\xcb\xd9\x96\x7d\xce\x71\x02\x41\x2b\x6f\x2e\x68\x06\x90\x5d\xe4\x53\xb5\xd8\x37\x93\xa9\x8e\xad\xab\x10\x6a\x4f\xd0\xc2\x15\xbb\x6f\x54\xed\x3e\x77\x20\x53\xad\xc1\x08\x90\xbd\x6f\x71\x5c\xc8\xa3\x0d\x30\x0b\x08\x87\x8f\x92\x13\xc0\xf2\x45\x5f\x82\x35\x19\xc9\x47\xe2\x7c\xe3\x97\xc0\x6f\x63\x41\x29\x12\xcc\x03\x8b\xe0\x22\xb8\xeb\x7c\xdf\x4d\x02\xee\x72\x59\x4c\x27\x21\xad\x7b\x03\xb4\x9e\x87\x70\xda\x69\x27\xa4\x14\xb1\x22\x76\x9a\x44\x6e\xea\xad\x5c\xfb\xe9\x04\x0e\xdc\xb4\x3b\xb9\xfc\x03\x0a\x02\xfb\xd5\x77\x7c\x15\x4c\x74\x57\xd6\x58\x25\xc7\xb4\x2d\x7e\xb2\xca\xd2\x56\xc6\x7e\x28\xf5\xe8\x69\x5e\xf4\xa8\xb0\xe6\x89\x19\xea\xef\xad\x58\x7d\x0d\x62\xc0\x81\xb0\xb5\xc8\x6a\xa9\x05\xac\xc4\x4f\x3b\x6a\xdc\x8a\x00\xca\x35\x24\x39\x47\xda\x84\x95\xd9\x64\x30\x1d\x3c\x6e\xe0\x3d\x5b\x13\xc1\xd8\x4e\x3e\xff\x62\xf7\x36\xbf\xf1\x05\x18\x3f\x9a\x80\xc6\x7c\xcc\x1d\x53\xb7\xea\xb2\x90\x9c\xc3\x6b\x9f\xf9\x80\xbc\x00\x57\x0a\x47\xa0\x7c\xee\x1d\xbe\x50\x1c\x1c\x3e\x1a\xc9\xf9\x98\x8f\x5f\x46\xd7\x30\xa9\x51\x0b\x41\x1d\xf6\x76\x09\x4b\x20\xd8\x54\x2e\x7b\x4c\x91\xc8\xfb\x06\x8d\x42\xee\x25\x1d\x86\x7e\xf0\x60\x29\xa6\xc5\xf4\x03\x5f\xff\x5f\xde\x38\x0b\x11\xf0\x2f\x9d\x9d\xe8\xff\xff\xc9\x4b\x67\x43\xbf\xac\x7b\xea\x8c\x9f\x72\x9a\x71\xe8\x75\xbc\x8e\xa3\x63\xab\x68\x3d\x73\x8d\x70\x9d\x72\x46\x7c\x90\xcf\x59\xde\xe9\x6b\xfe\x5e\xf1\xd9\xf0\x12\x1d\xf6\x17\x44\xcb\x47\xbd\x49\x8d\xf1\x75\xe2\x18\x05\xc9\x19\x9f\x15\x49\xbe\xfa\x22\x52\xbd\x5a\x57\xaa\xef\x68\xc6\x0e\x09\x3d\xa0\xb1\xbc\xd1\x2f\xb0\x60\x51\xeb\xd2\x1e\xa0\x1c\x2f\xee\x08\x6b\xa9\x54\x73\x98\x8e\x05\xe2\x4f\x0a\x13\x05\x0c\x86\x22\x39\x1a\x08\xc8\x31\x80\x92\x23\x4f\xfb\xf0\x4b\x99\x92\xd2\xfc\x71\x0c\x46\x80\xb1\x36\x13\x77\x1d\x34\xca\x40\x93\xb2\x2a\xc0\x65\x18\xfd\x27\xb9\xe1\xaf\xb1\x48\x8e\xfe\xf2\x06\xff\xe8\x86\xe4\xcc\x39\x7a\x88\x63\xdc\xe0\x7a\x7a\xf5\xc1\xba\xed\xfb\xb6\x9a\xef\xfb\xe9\x47\xab\x5c\xe9\x08\xda\x0e\xfd\xc1\xbb\xe9\x57\x60\xbb\xbd\x35\x7c\xb3\xff\x5a\xbb\x83\xc7\x86\x07\x70\x24\x5f\x7a\xbd\xcd\xcc\x97\xf0\x5e\xf3\xb7\x16\x6e\x21\x23\xb3\x0e\x3f\x91\x74\x49\x22\xa6\x48\x6f\xce\xb5\x84\x7f\x9f\x43\x7d\x23\xfc\xfb\x1c\x27\x67\x01\x90\xa3\x1f\xf2\xf0\x45\x4a\x57\x2e\x0a\x88\xab\x8f\x5f\xf5\xf2\x2e\x91\x3c\xfc\x74\xfb\xfe\x86\x92\x8b\xf6\x28\xc7\x45\x11\x20\xcc\xe2\x2c\xf8\x19\x2a\xad\x42\x58\x35\xfa\x82\xbc\x3a\x41\x95\x03\xf1\x20\x22\x71\x20\xfd\xb3\x76\xfc\x6e\x39\x64\x66\x7d\xfa\x4a\xe9\x3a\xda\x62\x62\x6f\x2c\x6f\x1f\x6e\xab\x09\xb9\x38\xdc\x01\xa3\x0e\xbe\xf1\xa1\xaa\xb0\xad\x60\xab\x78\x00\xd7\xc9\xfb\x59\xf1\x2d\xeb\x10\x30\x93\x55\x65\xaf\x2b\x44\x0d\xbb\x83\xa3\x71\x85\xe8\x99\x85\xa8\xd2\xf4\xd1\xfe\x43\x0f\x2c\x88\xa9\x6f\x26\xb6\xf3\x63\xab\x89\x1d\xbb\xb3\x15\x16\x3f\x53\x63\x8b\x3c\xf8\x05\x1b\x5e\xe2\x01\xc8\xbd\x1c\x97\x05\x10\xf6\x23\x64\x01\xd0\xf4\x0f\xe1\x28\xc0\x50\x52\x68\x76\xb3\x5c\xe2\x12\xaf\xfd\x56\xd2\x95\x7c\xca\xef\x25\x59\x4d\xfb\x85\x03\xb2\xf9\xd9\x86\xe6\x5f\x20\xd1\x7b\x19\x1f\x39\x13\xea\x93\x81\x4f\xfd\x18\x51\x50\xa4\x1d\xa1\x28\xec\x84\xf7\x1d\xfc\x26\xc9\x83\x3f\x9c\x64\x04\x86\x1b\x7d\x91\xc9\x1d\xdf\xa0\x0e\x3b\xf1\x17\x1c\x9a\x3b\xae\x44\x78\x8f\x6b\x10\xde\x27\xc0\xe5\x60\xd7\xa4\xf4\x0d\x7f\x89\x60\x70\x18\x23\x5c\x4c\xb9\xc8\x06\x2c\x79\xc3\xf7\x5b\x43\x1a\x14\x73\xcf\x18\xee\x67\x5c\x26\x59\xc3\xff\xd6\x56\xd8\x2d\x7e\x25\x2b\x10\xef\x3e\x37\xdc\xa8\x7c\x6e\xf8\x63\x5c\x3e\x77\xea\xd7\xb1\xc6\xa5\xfe\xb4\xfd\x09\xe2\x4d\x7e\xdc\xc9\x6f\x82\x75\x3f\xa6\xb8\xb6\xf0\x53\x50\x23\xfc\x65\xad\x38\x77\xd8\x86\xfe\xc6\xce\xa0\x09\xfd\x35\xc1\x78\xc9\x54\x8b\x13\x84\x71\x3f\xb5\x11\xbd\x68\xc6\xe4\xe7\x07\xdc\x6d\xb3\x88\x7e\xde\x68\xc8\xcc\x5e\xd8\x3a\x56\x0e\x05\xad\x21\x86\x30\xf5\xf0\x47\x27\x32\xfd\xc1\x03\x8d\x57\x77\x3f\xef\xf1\x2b\x67\x7b\x0c\xe5\x25\x79\xfb\x61\x0a\x8d\x0a\x36\xfc\xf4\x97\x0c\x39\x90\xdc\xaa\xc4\x3f\xbf\x34\xfe\xdd\x25\x05\xb3\x67\x15\xd9\xce\x1f\xbd\xc0\xc8\x06\xbe\x3e\xc0\x68\x82\x41\xae\x85\x20\x66\x3b\xdb\xa8\x4b\x5b\xae\x8e\x70\xe4\x76\xfa\x9e\x7d\xd8\x0e\xef\xe8\x77\x08\xa2\x4a\xf2\xf3\x07\xee\xe1\xf4\x71\x65\xbb\xe1\xe4\x26\xd1\x6e\x6c\x4c\x4e\x22\xce\x4e\xc2\xc7\x3e\x6e\xe9\xdb\x3d\xf5\xe1\x66\x4b\x2e\x63\xb0\x95\x2b\x3f\xe3\xa8\xd7\x33\xd8\xd8\xa5\x1c\x37\x4f\x77\xd5\x0e\xdb\xad\xbe\xd8\x8c\xe9\xa1\x1c\xde\x73\xff\xc2\x39\x21\x99\x43\xd9\x7c\xc9\xdf\xd3\x28\x2a\xec\x58\xbb\x8b\xcb\x27\x16\x9e\x96\x4c\x2c\xd4\xf8\x37\xc0\xc2\x65\x29\xc7\x2e\x0e\x31\x3e\x6a\x99\xc6\x4b\x20\x4f\xa2\x25\xbc\xe1\x4f\x51\x99\x29\x26\x1b\x52\x2e\x2a\xf2\x9d\xac\x04\xe5\x1f\xf9\x8e\x81\x82\x99\x12\xa8\xe1\x54\xb9\x5e\xeb\xb0\xcf\x5a\x8e\x0c\xfc\x3a\x97\xe3\xfc\x60\x9d\x4b\x58\xec\x24\x7a\x06\x4d\x06\xe6\x7d\x55\xa8\x9a\x27\xf0\xd7\x9a\x65\xa0\x06\xe2\x5b\x36\x08\x6d\xda\xa1\x49\x0c\x59\x39\x6d\xf5\x82\xbf\xa2\xa9\xd3\x05\x86\x75\x20\xb0\x7e\x79\xe1\x9d\x46\xa9\x61\xc0\xab\x85\x23\x8c\xb9\x7f\xde\x5c\xf8\x07\x6b\xd8\x53\x34\x18\xcc\xa6\x5a\x96\xce\xaf\xa4\xa3\x79\x4f\x79\x11\x30\x7e\x17\xaf\xb3\xcb\x61\xf2\x3b\x18\x57\xf4\x31\x18\x44\xd8\x94\x8e\x64\xd4\xd2\xae\x62\x5f\x5f\x40\x17\xc9\x98\xa6\xb8\x41\xab\x3c\x0e\xc0\x55\x20\x0f\xc5\xa8\xbd\x15\x1d\x88\x51\xff\x70\xab\xdf\x77\x5d\xef\xd8\x6f\x27\x7b\x06\x94\xee\x48\x80\xe1\x1d\xc9\x4e\xf6\x67\x8b\x56\x9e\xa2\xc0\x3f\xc8\x09\x77\xe6\x1f\x59\x67\x96\xd7\x11\xef\x15\x7b\xb9\x18\xa3\x49\x0f\xef\x23\x01\x84\x4c\x56\xc0\x57\x37\x1a\x3e\xc4\xbf\xb6\x64\x04\x50\xfe\x5e\x2e\xf6\xc1\x21\xc0\x6f\xf2\xad\x5e\x37\xdf\x4c\x63\x81\x7c\xfb\x1a\x2f\xcf\x80\x0f\x17\xfa\x1c\xa9\xc2\x4c\xc4\xae\x3b\xd4\x39\x1c\xd1\xc2\x12\x4f\xf6\xef\xba\x67\x63\x05\x50\x16\x1d\x61\x11\x09\xf2\x99\x6d\xe4\x9e\xc4\x20\x60\xc2\x60\x43\xed\x22\xcc\xcb\xfe\x10\xe9\x5f\xae\x6c\x02\x71\x2b\x6a\xf0\x7b\xba\x57\xbb\x59\x00\xcb\x2a\x76\xf0\x86\xa0\xe0\x20\xe5\x5f\x0b\x87\x4a\x3e\x4b\xfc\xc1\x97\xc1\xab\x52\xe6\x2c\x0c\x42\x5e\xa2\xbb\x3a\x8f\xf8\x79\x49\x7d\x12\xc5\x2a\x21\xda\x47\x5e\x03\x0c\x60\x9f\x75\xed\xe2\x19\x57\xf9\xfc\xc7\x2f\xf2\x28\x65\xde\x07\x00\x9f\xff\xf0\x85\x0b\xff\xf4\x45\x9b\x14\x3c\xec\x27\x5a\xff\xd6\xec\xca\x9a\x7f\x32\x01\xdf\x61\xbb\xe2\xa4\x90\xa6\xbb\xff\xe2\x5a\xff\x5b\xa2\x81\x11\xbe\x09\xcd\xe0\x17\x24\xbf\xa7\x21\xf7\x9e\x81\x8e\xcf\xbe\x07\x74\xe1\xeb\xa3\x20\x88\xdc\x23\x1d\xbe\xe4\xa9\xa4\xe2\x5b\xa8\xb8\x35\xe3\xe9\x44\x1f\x0f\x13\x2a\x6a\x6a\x44\xa8\x66\x8b\xfb\x82\xd9\x1f\x33\xff\x74\x0e\x5f\x98\x93\x82\xaa\xc3\xef\x19\x34\xad\x3e\x93\xfa\x47\xf7\x6c\x4e\xf2\xb9\x6f\x9a\xcd\x97\x24\x5f\x61\x4c\xf4\x37\x41\xac\x96\xc6\xd6\x72\xfc\x18\x25\x13\xf9\x44\xea\x0f\x68\xf8\x0f\x64\x7d\x92\x00\x29\xf0\x93\x0d\x7f\xd8\x72\x86\xfc\xb2\x16\x67\xac\x39\x03\x8f\x86\xf1\x67\xc1\x9f\x45\x7e\xe4\xaf\x03\x7f\x1d\xca\xf2\x4e\x2a\xb3\x84\xa1\xea\x64\xcd\xad\x39\xe7\xc8\xdf\xc7\x32\xe7\xda\xd2\x0f\xfa\x7c\x54\xa4\xf6\xf1\x08\xef\x62\xc9\x0f\x79\x71\xbe\x7d\x50\xbe\xbc\x78\xfb\xc2\x3f\x7e\xfb\x08\xa7\x59\x47\xcd\xe2\x14\xe5\xa0\x7b\xcd\x92\xe4\x23\x16\x13\x64\xa3\x6a\x83\x92\xa6\x5c\xe0\xa1\x99\x92\xa4\xbc\x36\x3f\x64\x1e\x2f\x4d\x71\xae\xc7\x4a\x53\xc9\xff\x0d\x00\x00\xff\xff\x89\xdd\x16\xe3\xd6\x7b\x00\x00") func conf_locale_locale_en_us_ini_bytes() ([]byte, error) { return bindata_read( @@ -596,7 +596,7 @@ func conf_locale_locale_en_us_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_en-US.ini", size: 31507, mode: os.FileMode(420), modTime: time.Unix(1427066374, 0)} + info := bindata_file_info{name: "conf/locale/locale_en-US.ini", size: 31702, mode: os.FileMode(420), modTime: time.Unix(1427404087, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -616,7 +616,7 @@ func conf_locale_locale_es_es_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_es-ES.ini", size: 34685, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_es-ES.ini", size: 34685, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -636,7 +636,7 @@ func conf_locale_locale_fr_fr_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_fr-FR.ini", size: 34129, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_fr-FR.ini", size: 34129, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -656,7 +656,7 @@ func conf_locale_locale_ja_jp_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_ja-JP.ini", size: 38282, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_ja-JP.ini", size: 38282, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -676,7 +676,7 @@ func conf_locale_locale_lv_lv_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_lv-LV.ini", size: 34671, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_lv-LV.ini", size: 34671, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -696,7 +696,7 @@ func conf_locale_locale_nl_nl_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_nl-NL.ini", size: 32429, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_nl-NL.ini", size: 32429, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -716,7 +716,7 @@ func conf_locale_locale_pl_pl_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_pl-PL.ini", size: 32928, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_pl-PL.ini", size: 32928, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -736,7 +736,7 @@ func conf_locale_locale_pt_br_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_pt-BR.ini", size: 33298, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_pt-BR.ini", size: 33298, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -756,7 +756,7 @@ func conf_locale_locale_ru_ru_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_ru-RU.ini", size: 45970, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_ru-RU.ini", size: 45970, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -776,7 +776,7 @@ func conf_locale_locale_zh_cn_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_zh-CN.ini", size: 30612, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_zh-CN.ini", size: 30612, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -796,7 +796,7 @@ func conf_locale_locale_zh_hk_ini() (*asset, error) { return nil, err } - info := bindata_file_info{name: "conf/locale/locale_zh-HK.ini", size: 30792, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} + info := bindata_file_info{name: "conf/locale/locale_zh-HK.ini", size: 30792, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/routers/admin/users.go b/routers/admin/users.go index ddd12a8b..ddcca639 100644 --- a/routers/admin/users.go +++ b/routers/admin/users.go @@ -106,16 +106,19 @@ func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) { } if err := models.CreateUser(u); err != nil { - switch err { - case models.ErrUserAlreadyExist: + switch { + case models.IsErrUserAlreadyExist(err): ctx.Data["Err_UserName"] = true ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), USER_NEW, &form) - case models.ErrEmailAlreadyUsed: + case models.IsErrEmailAlreadyUsed(err): ctx.Data["Err_Email"] = true ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_NEW, &form) - case models.ErrUserNameIllegal: + case models.IsErrNameReserved(err): + ctx.Data["Err_UserName"] = true + ctx.RenderWithErr(ctx.Tr("user.form.name_reserved", err.(models.ErrNameReserved).Name), USER_NEW, &form) + case models.IsErrNamePatternNotAllowed(err): ctx.Data["Err_UserName"] = true - ctx.RenderWithErr(ctx.Tr("form.illegal_username"), USER_NEW, &form) + ctx.RenderWithErr(ctx.Tr("user.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), USER_NEW, &form) default: ctx.Handle(500, "CreateUser", err) } @@ -195,7 +198,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { u.AllowGitHook = form.AllowGitHook if err := models.UpdateUser(u); err != nil { - if err == models.ErrEmailAlreadyUsed { + if models.IsErrEmailAlreadyUsed(err) { ctx.Data["Err_Email"] = true ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_EDIT, &form) } else { diff --git a/routers/api/v1/repo.go b/routers/api/v1/repo.go index d7cc5955..170c2e90 100644 --- a/routers/api/v1/repo.go +++ b/routers/api/v1/repo.go @@ -105,7 +105,8 @@ func createRepo(ctx *middleware.Context, owner *models.User, opt api.CreateRepoO opt.Gitignore, opt.License, opt.Private, false, opt.AutoInit) if err != nil { if err == models.ErrRepoAlreadyExist || - err == models.ErrRepoNameIllegal { + models.IsErrNameReserved(err) || + models.IsErrNamePatternNotAllowed(err) { ctx.JSON(422, &base.ApiJsonErr{err.Error(), base.DOC_URL}) } else { log.Error(4, "CreateRepository: %v", err) diff --git a/routers/install.go b/routers/install.go index f5dc0c58..6da61128 100644 --- a/routers/install.go +++ b/routers/install.go @@ -239,7 +239,7 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) { // Create admin account. if err := models.CreateUser(&models.User{Name: form.AdminName, Email: form.AdminEmail, Passwd: form.AdminPasswd, IsAdmin: true, IsActive: true}); err != nil { - if err != models.ErrUserAlreadyExist { + if !models.IsErrUserAlreadyExist(err) { setting.InstallLock = false ctx.Data["Err_AdminName"] = true ctx.Data["Err_AdminEmail"] = true diff --git a/routers/org/org.go b/routers/org/org.go index ab589832..ed4f2abd 100644 --- a/routers/org/org.go +++ b/routers/org/org.go @@ -65,19 +65,22 @@ func CreatePost(ctx *middleware.Context, form auth.CreateOrgForm) { } var err error - if org, err = models.CreateOrganization(org, ctx.User); err != nil { - switch err { - case models.ErrUserAlreadyExist: + if err = models.CreateOrganization(org, ctx.User); err != nil { + switch { + case models.IsErrUserAlreadyExist(err): ctx.Data["Err_OrgName"] = true ctx.RenderWithErr(ctx.Tr("form.org_name_been_taken"), CREATE, &form) - case models.ErrEmailAlreadyUsed: + case models.IsErrEmailAlreadyUsed(err): ctx.Data["Err_Email"] = true ctx.RenderWithErr(ctx.Tr("form.email_been_used"), CREATE, &form) - case models.ErrUserNameIllegal: + case models.IsErrNameReserved(err): ctx.Data["Err_OrgName"] = true - ctx.RenderWithErr(ctx.Tr("form.illegal_org_name"), CREATE, &form) + ctx.RenderWithErr(ctx.Tr("org.form.name_reserved", err.(models.ErrNameReserved).Name), CREATE, &form) + case models.IsErrNamePatternNotAllowed(err): + ctx.Data["Err_OrgName"] = true + ctx.RenderWithErr(ctx.Tr("org.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), CREATE, &form) default: - ctx.Handle(500, "CreateUser", err) + ctx.Handle(500, "CreateOrganization", err) } return } diff --git a/routers/org/setting.go b/routers/org/setting.go index 8bc6a2a9..7a761995 100644 --- a/routers/org/setting.go +++ b/routers/org/setting.go @@ -68,7 +68,7 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateOrgSettingForm) { org.Avatar = base.EncodeMd5(form.Avatar) org.AvatarEmail = form.Avatar if err := models.UpdateUser(org); err != nil { - if err == models.ErrEmailAlreadyUsed { + if models.IsErrEmailAlreadyUsed(err) { ctx.Data["Err_Email"] = true ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_OPTIONS, &form) } else { diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 73c9277d..5e6a2e0d 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -110,14 +110,6 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) { log.Trace("Repository created: %s/%s", ctxUser.Name, repo.Name) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + repo.Name) return - } else if err == models.ErrRepoAlreadyExist { - ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), CREATE, &form) - return - } else if err == models.ErrRepoNameIllegal { - ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), CREATE, &form) - return } if repo != nil { @@ -125,7 +117,20 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) { log.Error(4, "DeleteRepository: %v", errDelete) } } - ctx.Handle(500, "CreatePost", err) + + switch { + case err == models.ErrRepoAlreadyExist: + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), CREATE, &form) + case models.IsErrNameReserved(err): + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), CREATE, &form) + case models.IsErrNamePatternNotAllowed(err): + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), CREATE, &form) + default: + ctx.Handle(500, "CreatePost", err) + } } func Migrate(ctx *middleware.Context) { @@ -209,14 +214,6 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) { log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + form.RepoName) return - } else if err == models.ErrRepoAlreadyExist { - ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), MIGRATE, &form) - return - } else if err == models.ErrRepoNameIllegal { - ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), MIGRATE, &form) - return } if repo != nil { @@ -230,7 +227,20 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) { ctx.RenderWithErr(ctx.Tr("form.auth_failed", err), MIGRATE, &form) return } - ctx.Handle(500, "MigratePost", err) + + switch { + case err == models.ErrRepoAlreadyExist: + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), MIGRATE, &form) + case models.IsErrNameReserved(err): + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), MIGRATE, &form) + case models.IsErrNamePatternNotAllowed(err): + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), MIGRATE, &form) + default: + ctx.Handle(500, "MigratePost", err) + } } func getForkRepository(ctx *middleware.Context) (*models.Repository, error) { @@ -323,14 +333,6 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) { log.Trace("Repository forked: %s/%s", ctxUser.Name, repo.Name) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + repo.Name) return - } else if err == models.ErrRepoAlreadyExist { - ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), FORK, &form) - return - } else if err == models.ErrRepoNameIllegal { - ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), CREATE, &form) - return } if repo != nil { @@ -338,7 +340,21 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) { log.Error(4, "DeleteRepository: %v", errDelete) } } - ctx.Handle(500, "ForkPost", err) + + // FIXME: merge this with other 2 error handling in to one. + switch { + case err == models.ErrRepoAlreadyExist: + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), FORK, &form) + case models.IsErrNameReserved(err): + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), FORK, &form) + case models.IsErrNamePatternNotAllowed(err): + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), FORK, &form) + default: + ctx.Handle(500, "ForkPost", err) + } } func Action(ctx *middleware.Context) { diff --git a/routers/repo/setting.go b/routers/repo/setting.go index be21405b..cdcade67 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -53,15 +53,18 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) { newRepoName := form.RepoName // Check if repository name has been changed. if ctx.Repo.Repository.Name != newRepoName { - if models.IsRepositoryExist(ctx.Repo.Owner, newRepoName) { - ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), SETTINGS_OPTIONS, nil) - return - } else if err := models.ChangeRepositoryName(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name, newRepoName); err != nil { - if err == models.ErrRepoNameIllegal { + if err := models.ChangeRepositoryName(ctx.Repo.Owner, ctx.Repo.Repository.Name, newRepoName); err != nil { + switch { + case err == models.ErrRepoAlreadyExist: + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), SETTINGS_OPTIONS, &form) + case models.IsErrNameReserved(err): + ctx.Data["Err_RepoName"] = true + ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), SETTINGS_OPTIONS, &form) + case models.IsErrNamePatternNotAllowed(err): ctx.Data["Err_RepoName"] = true - ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), SETTINGS_OPTIONS, nil) - } else { + ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), SETTINGS_OPTIONS, &form) + default: ctx.Handle(500, "ChangeRepositoryName", err) } return diff --git a/routers/user/auth.go b/routers/user/auth.go index 5dacaf8c..52675a77 100644 --- a/routers/user/auth.go +++ b/routers/user/auth.go @@ -249,16 +249,19 @@ func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.Registe } if err := models.CreateUser(u); err != nil { - switch err { - case models.ErrUserAlreadyExist: + switch { + case models.IsErrUserAlreadyExist(err): ctx.Data["Err_UserName"] = true ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SIGNUP, &form) - case models.ErrEmailAlreadyUsed: + case models.IsErrEmailAlreadyUsed(err): ctx.Data["Err_Email"] = true ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SIGNUP, &form) - case models.ErrUserNameIllegal: + case models.IsErrNameReserved(err): ctx.Data["Err_UserName"] = true - ctx.RenderWithErr(ctx.Tr("form.illegal_username"), SIGNUP, &form) + ctx.RenderWithErr(ctx.Tr("user.form.name_reserved", err.(models.ErrNameReserved).Name), SIGNUP, &form) + case models.IsErrNamePatternNotAllowed(err): + ctx.Data["Err_UserName"] = true + ctx.RenderWithErr(ctx.Tr("user.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), SIGNUP, &form) default: ctx.Handle(500, "CreateUser", err) } diff --git a/routers/user/setting.go b/routers/user/setting.go index 20e6c060..b31e93a6 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -50,21 +50,20 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) { // Check if user name has been changed. if ctx.User.Name != form.UserName { - isExist, err := models.IsUserExist(ctx.User.Id, form.UserName) - if err != nil { - ctx.Handle(500, "IsUserExist", err) - return - } else if isExist { - ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SETTINGS_PROFILE, &form) - return - } else if err = models.ChangeUserName(ctx.User, form.UserName); err != nil { - switch err { - case models.ErrUserNameIllegal: - ctx.Flash.Error(ctx.Tr("form.illegal_username")) + if err := models.ChangeUserName(ctx.User, form.UserName); err != nil { + switch { + case models.IsErrUserAlreadyExist(err): + ctx.Flash.Error(ctx.Tr("form.username_been_taken")) ctx.Redirect(setting.AppSubUrl + "/user/settings") - case models.ErrEmailAlreadyUsed: + case models.IsErrEmailAlreadyUsed(err): ctx.Flash.Error(ctx.Tr("form.email_been_used")) ctx.Redirect(setting.AppSubUrl + "/user/settings") + case models.IsErrNameReserved(err): + ctx.Flash.Error(ctx.Tr("user.form.name_reserved")) + ctx.Redirect(setting.AppSubUrl + "/user/settings") + case models.IsErrNamePatternNotAllowed(err): + ctx.Flash.Error(ctx.Tr("user.form.name_pattern_not_allowed")) + ctx.Redirect(setting.AppSubUrl + "/user/settings") default: ctx.Handle(500, "ChangeUserName", err) } @@ -204,7 +203,7 @@ func SettingsEmailPost(ctx *middleware.Context, form auth.AddEmailForm) { } if err := models.AddEmailAddress(e); err != nil { - if err == models.ErrEmailAlreadyUsed { + if models.IsErrEmailAlreadyUsed(err) { ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_EMAILS, &form) return } -- cgit v1.2.3 From 6a0fec77eaacbce05486fea76b67db3f5f880e88 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 18 Apr 2015 05:21:07 -0500 Subject: Allow an SSHDomain configuration option. Defaults to Domain, preserves legacy behavior --- models/repo.go | 5 +++-- modules/setting/setting.go | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 7b47c20b..cc4b53b0 100644 --- a/models/repo.go +++ b/models/repo.go @@ -242,10 +242,11 @@ func (repo *Repository) CloneLink() (cl CloneLink, err error) { if err = repo.GetOwner(); err != nil { return cl, err } + if setting.SSHPort != 22 { - cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", setting.RunUser, setting.Domain, setting.SSHPort, repo.Owner.LowerName, repo.LowerName) + cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", setting.RunUser, setting.SSHDomain, setting.SSHPort, repo.Owner.LowerName, repo.LowerName) } else { - cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", setting.RunUser, setting.Domain, repo.Owner.LowerName, repo.LowerName) + cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", setting.RunUser, setting.SSHDomain, repo.Owner.LowerName, repo.LowerName) } cl.HTTPS = fmt.Sprintf("%s%s/%s.git", setting.AppUrl, repo.Owner.LowerName, repo.LowerName) return cl, nil diff --git a/modules/setting/setting.go b/modules/setting/setting.go index aefc3520..3ce27b2e 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -53,6 +53,7 @@ var ( HttpAddr, HttpPort string DisableSSH bool SSHPort int + SSHDomain string OfflineMode bool DisableRouterLog bool CertFile, KeyFile string @@ -232,6 +233,7 @@ func NewConfigContext() { HttpAddr = sec.Key("HTTP_ADDR").MustString("0.0.0.0") HttpPort = sec.Key("HTTP_PORT").MustString("3000") DisableSSH = sec.Key("DISABLE_SSH").MustBool() + SSHDomain = sec.Key("SSH_DOMAIN").MustString(Domain) SSHPort = sec.Key("SSH_PORT").MustInt(22) OfflineMode = sec.Key("OFFLINE_MODE").MustBool() DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool() -- cgit v1.2.3 From 8363c9dd0f2161d4ca34f4b1e3eb5e02cf738a31 Mon Sep 17 00:00:00 2001 From: William Roush Date: Mon, 20 Apr 2015 01:28:19 -0400 Subject: Fixes issue with LDAP inserting users with blank names. --- models/repo.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index cc4b53b0..f144be5a 100644 --- a/models/repo.go +++ b/models/repo.go @@ -40,6 +40,7 @@ var ( ErrRepoFileNotLoaded = errors.New("Repository file not loaded") ErrMirrorNotExist = errors.New("Mirror does not exist") ErrInvalidReference = errors.New("Invalid reference specified") + ErrNameEmpty = errors.New("Name is empty") ) var ( @@ -259,7 +260,11 @@ var ( // IsUsableName checks if name is reserved or pattern of name is not allowed. func IsUsableName(name string) error { - name = strings.ToLower(name) + name = strings.TrimSpace(strings.ToLower(name)) + if utf8.RuneCountInString(name) == 0 { + return ErrNameEmpty + } + for i := range reservedNames { if name == reservedNames[i] { return ErrNameReserved{name} -- cgit v1.2.3 From c6531c4882123e412a288422d91dcd70ff913d33 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 5 Jul 2015 18:34:16 +0800 Subject: check master as default branch when migrate --- models/repo.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index f144be5a..ca118d99 100644 --- a/models/repo.go +++ b/models/repo.go @@ -380,6 +380,15 @@ func MigrateRepository(u *User, name, desc string, private, mirror bool, url str return repo, fmt.Errorf("create update hook: %v", err) } + // Check if repository has master branch, if so set it to default branch. + gitRepo, err := git.OpenRepository(repoPath) + if err != nil { + return repo, fmt.Errorf("open git repository: %v", err) + } + if gitRepo.IsBranchExist("master") { + repo.DefaultBranch = "master" + } + return repo, UpdateRepository(repo, false) } -- cgit v1.2.3 From d6cdd49c1684f2d40f4e0932cb4e0ea987e1bd74 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 19 Jul 2015 17:44:03 +0800 Subject: fixes on #1171 --- models/repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index ca118d99..4ee5c382 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1058,7 +1058,7 @@ func MirrorUpdate() { repoPath := filepath.Join(setting.RepoRootPath, m.RepoName+".git") if _, stderr, err := process.ExecDir(10*time.Minute, repoPath, fmt.Sprintf("MirrorUpdate: %s", repoPath), - "git", "remote", "update"); err != nil { + "git", "remote", "update", "--prune"); err != nil { desc := fmt.Sprintf("Fail to update mirror repository(%s): %s", repoPath, stderr) log.Error(4, desc) if err = CreateRepositoryNotice(desc); err != nil { -- cgit v1.2.3 From ac95f6d50f674cae1a5ae3889fdf3c56eb7c005d Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 24 Jul 2015 21:02:49 +0800 Subject: UI: basic label list - create new label --- .gitignore | 1 - cmd/web.go | 7 +- conf/locale/locale_en-US.ini | 9 + config.codekit | 1989 +++++++++++++++++++++++++++++++ gogs.go | 2 +- models/action.go | 10 +- models/issue.go | 24 +- models/repo.go | 2 +- modules/auth/auth.go | 8 +- modules/auth/repo_form.go | 4 +- modules/bindata/bindata.go | 6 +- public/css/gogs.min.css | 1144 +++++++++++++++++- public/css/jquery.minicolors.css | 278 +++++ public/js/gogs.js | 19 + public/js/libs/jquery.minicolors.min.js | 11 + public/js/libs/jquery.minicolors.png | Bin 0 -> 77459 bytes public/js/min/gogs-min.js | 1 - public/less/_repository.less | 60 +- routers/repo/issue.go | 108 +- templates/.VERSION | 2 +- templates/base/head.tmpl | 6 + templates/repo/issue/alert.tmpl | 5 + templates/repo/issue/labels.tmpl | 64 + templates/repo/issue/list.tmpl | 6 +- templates/repo/issue/navbar.tmpl | 2 +- templates/repo/issue/view.tmpl | 10 +- templates/repo/issue2/labels.tmpl | 74 -- 27 files changed, 3686 insertions(+), 166 deletions(-) create mode 100644 config.codekit create mode 100644 public/css/jquery.minicolors.css create mode 100644 public/js/libs/jquery.minicolors.min.js create mode 100644 public/js/libs/jquery.minicolors.png delete mode 100644 public/js/min/gogs-min.js create mode 100644 templates/repo/issue/alert.tmpl create mode 100644 templates/repo/issue/labels.tmpl delete mode 100644 templates/repo/issue2/labels.tmpl (limited to 'models/repo.go') diff --git a/.gitignore b/.gitignore index ba878d92..383b3256 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,6 @@ profile/ __pycache__ *.pem output* -config.codekit .brackets.json docker/fig.yml docker/docker/Dockerfile diff --git a/cmd/web.go b/cmd/web.go index b391d656..92c0185c 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -80,7 +80,7 @@ func checkVersion() { // Check dependency version. checkers := []VerChecker{ {"github.com/Unknwon/macaron", macaron.Version, "0.5.4"}, - {"github.com/macaron-contrib/binding", binding.Version, "0.0.6"}, + {"github.com/macaron-contrib/binding", binding.Version, "0.1.0"}, {"github.com/macaron-contrib/cache", cache.Version, "0.0.7"}, {"github.com/macaron-contrib/csrf", csrf.Version, "0.0.3"}, {"github.com/macaron-contrib/i18n", i18n.Version, "0.0.7"}, @@ -442,15 +442,14 @@ func runWeb(ctx *cli.Context) { m.Group("/:username/:reponame", func() { m.Get("/releases", middleware.RepoRef(), repo.Releases) - m.Get("/issues", repo.Issues) + m.Get("/issues", repo.RetrieveLabels, repo.Issues) m.Get("/issues/:index", repo.ViewIssue) + m.Get("/labels/", repo.RetrieveLabels, repo.Labels) m.Get("/milestones", repo.Milestones) m.Get("/pulls", repo.Pulls) m.Get("/branches", repo.Branches) m.Get("/archive/*", repo.Download) - m.Get("/issues2/", repo.Issues2) m.Get("/pulls2/", repo.PullRequest2) - m.Get("/labels2/", repo.Labels2) m.Get("/milestone2/", repo.Milestones2) m.Group("", func() { diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index a8a9c78e..dc764b56 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -159,6 +159,7 @@ AdminEmail = Admin E-mail require_error = ` cannot be empty.` alpha_dash_error = ` must be valid alpha or numeric or dash(-_) characters.` alpha_dash_dot_error = ` must be valid alpha or numeric or dash(-_) or dot characters.` +size_error = ` must be size %s.` min_size_error = ` must contain at least %s characters.` max_size_error = ` must contain at most %s characters.` email_error = ` is not a valid e-mail address.` @@ -358,6 +359,8 @@ commits.older = Older commits.newer = Newer issues.new = New Issue +issues.new_label = New Label +issues.new_label_placeholder = Label name... issues.open_tab = %d Open issues.close_tab = %d Closed issues.filter_label = Label @@ -369,6 +372,12 @@ issues.filter_type.assigned_to_you = Assigned to you issues.filter_type.created_by_you = Created by you issues.filter_type.mentioning_you = Mentioning you issues.opened_by = opened %s by %[2]s +issues.label_title = Label name +issues.label_color = Label color +issues.label_count = %d labels +issues.label_open_issues = %d open issues +issues.label_edit = Edit +issues.label_delete = Delete issues.previous = Previous Page issues.next = Next Page diff --git a/config.codekit b/config.codekit new file mode 100644 index 00000000..88c1fc38 --- /dev/null +++ b/config.codekit @@ -0,0 +1,1989 @@ +{ +"CodeKitInfo": "This is a CodeKit 2.x project configuration file. It is designed to sync project settings across multiple machines. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. If you do so, you will likely cause CodeKit to crash. This file is not useful unless accompanied by the project that created it in CodeKit 2. This file is not backwards-compatible with CodeKit 1.x. For more information, see: http:\/\/incident57.com\/codekit", +"creatorBuild": "19033", +"files": { + "\/CONTRIBUTING.md": { + "criticStyle": 0, + "enableFootnotes": 0, + "enableLabels": 1, + "enableSmartQuotes": 1, + "escapeLineBreaks": 0, + "fileType": 4096, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/CONTRIBUTING.md", + "maskEmailAddresses": 1, + "outputAbbreviatedPath": "\/CONTRIBUTING.html", + "outputFormat": 0, + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "parseMetadata": 1, + "processHTML": 0, + "randomFootnoteNumbers": 0, + "useCompatibilityMode": 0 + }, + "\/docker\/README.md": { + "criticStyle": 0, + "enableFootnotes": 0, + "enableLabels": 1, + "enableSmartQuotes": 1, + "escapeLineBreaks": 0, + "fileType": 4096, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/docker\/README.md", + "maskEmailAddresses": 1, + "outputAbbreviatedPath": "\/docker\/README.html", + "outputFormat": 0, + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "parseMetadata": 1, + "processHTML": 0, + "randomFootnoteNumbers": 0, + "useCompatibilityMode": 0 + }, + "\/modules\/auth\/ldap\/README.md": { + "criticStyle": 0, + "enableFootnotes": 0, + "enableLabels": 1, + "enableSmartQuotes": 1, + "escapeLineBreaks": 0, + "fileType": 4096, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/modules\/auth\/ldap\/README.md", + "maskEmailAddresses": 1, + "outputAbbreviatedPath": "\/modules\/auth\/ldap\/README.html", + "outputFormat": 0, + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "parseMetadata": 1, + "processHTML": 0, + "randomFootnoteNumbers": 0, + "useCompatibilityMode": 0 + }, + "\/modules\/uuid\/README.md": { + "criticStyle": 0, + "enableFootnotes": 0, + "enableLabels": 1, + "enableSmartQuotes": 1, + "escapeLineBreaks": 0, + "fileType": 4096, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/modules\/uuid\/README.md", + "maskEmailAddresses": 1, + "outputAbbreviatedPath": "\/modules\/uuid\/README.html", + "outputFormat": 0, + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "parseMetadata": 1, + "processHTML": 0, + "randomFootnoteNumbers": 0, + "useCompatibilityMode": 0 + }, + "\/public\/css\/bootstrap-colorpicker.min.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/bootstrap-colorpicker.min.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/bootstrap.min.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/bootstrap.min.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/datepicker3.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/datepicker3.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/font-awesome.min.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/font-awesome.min.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/github.min.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/github.min.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/gogs.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/gogs.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/gogs.min.css": { + "fileType": 16, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/gogs.min.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/jquery.minicolors.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/jquery.minicolors.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/markdown.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/markdown.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/semantic.min.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/semantic.min.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/css\/themes\/default\/assets\/images\/flags.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 28123, + "inputAbbreviatedPath": "\/public\/css\/themes\/default\/assets\/images\/flags.png", + "outputAbbreviatedPath": "\/public\/css\/themes\/default\/assets\/images\/flags.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, + "\/public\/css\/todc-bootstrap.min.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/css\/todc-bootstrap.min.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/img\/404.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 9776, + "inputAbbreviatedPath": "\/public\/img\/404.png", + "outputAbbreviatedPath": "\/public\/img\/404.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 1 + }, + "\/public\/img\/500.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 12087, + "inputAbbreviatedPath": "\/public\/img\/500.png", + "outputAbbreviatedPath": "\/public\/img\/500.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 1 + }, + "\/public\/img\/avatar_default.jpg": { + "fileType": 16384, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 6951, + "inputAbbreviatedPath": "\/public\/img\/avatar_default.jpg", + "outputAbbreviatedPath": "\/public\/img\/avatar_default.jpg", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 1 + }, + "\/public\/img\/bootstrap-colorpicker\/alpha-horizontal.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 3635, + "inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha-horizontal.png", + "outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha-horizontal.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, + "\/public\/img\/bootstrap-colorpicker\/alpha.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 3271, + "inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha.png", + "outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, + "\/public\/img\/bootstrap-colorpicker\/hue-horizontal.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 2837, + "inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue-horizontal.png", + "outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue-horizontal.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, + "\/public\/img\/bootstrap-colorpicker\/hue.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 2972, + "inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue.png", + "outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, + "\/public\/img\/bootstrap-colorpicker\/saturation.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 8817, + "inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/saturation.png", + "outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/saturation.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, + "\/public\/img\/checkmark.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 169, + "inputAbbreviatedPath": "\/public\/img\/checkmark.png", + "outputAbbreviatedPath": "\/public\/img\/checkmark.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 1 + }, + "\/public\/img\/favicon.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 10889, + "inputAbbreviatedPath": "\/public\/img\/favicon.png", + "outputAbbreviatedPath": "\/public\/img\/favicon.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 1 + }, + "\/public\/img\/gogs-lg.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 97926, + "inputAbbreviatedPath": "\/public\/img\/gogs-lg.png", + "outputAbbreviatedPath": "\/public\/img\/gogs-lg.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 1 + }, + "\/public\/less\/_base.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_base.less", + "outputAbbreviatedPath": "\/public\/css\/_base.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/less\/_form.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_form.less", + "outputAbbreviatedPath": "\/public\/css\/_form.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/less\/_home.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_home.less", + "outputAbbreviatedPath": "\/public\/css\/_home.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/less\/_install.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_install.less", + "outputAbbreviatedPath": "\/public\/css\/_install.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/less\/_octicons.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_octicons.less", + "outputAbbreviatedPath": "\/public\/css\/_octicons.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/less\/_repository.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_repository.less", + "outputAbbreviatedPath": "\/public\/css\/_repository.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/less\/gogs.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/gogs.less", + "outputAbbreviatedPath": "\/public\/css\/gogs.min.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 1, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/css\/gogs.css": { + "fileType": 16, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/css\/gogs.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/ng\/css\/magnific-popup.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/css\/magnific-popup.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/ng\/css\/tipsy.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/css\/tipsy.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/ng\/css\/ui.css": { + "fileType": 16, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/css\/ui.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/ng\/fonts\/octicons.css": { + "fileType": 16, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/fonts\/octicons.css", + "outputAbbreviatedPath": "No Output Path", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0 + }, + "\/public\/ng\/js\/gogs.js": { + "fileType": 64, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/gogs.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/min\/gogs-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/gogs\/issue_label.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/gogs\/issue_label.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/gogs\/min\/issue_label-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/lib\/jquery-1.11.1.min.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/lib\/jquery-1.11.1.min.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/jquery-1.11.1.min-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/lib\/jquery.magnific-popup.min.js": { + "fileType": 64, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/lib\/jquery.magnific-popup.min.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/jquery.magnific-popup.min-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/lib\/jquery.tipsy.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/lib\/jquery.tipsy.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/jquery.tipsy-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/lib\/lib.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 1, + "inputAbbreviatedPath": "\/public\/ng\/js\/lib\/lib.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/lib-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/min\/gogs-min.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/min\/gogs-min.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/min\/min\/gogs-min-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/utils\/preview.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/utils\/preview.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/utils\/min\/preview-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/js\/utils\/tabs.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/js\/utils\/tabs.js", + "outputAbbreviatedPath": "\/public\/ng\/js\/utils\/min\/tabs-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, + "\/public\/ng\/less\/gogs.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs.less", + "outputAbbreviatedPath": "\/public\/ng\/css\/gogs.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/admin.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/admin.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/admin.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/base.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/base.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/base.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/dashboard.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/dashboard.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/dashboard.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/external.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/external.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/external.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/issue.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/issue.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/issue.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/markdown.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/markdown.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/markdown.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/organization.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/organization.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/organization.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/profile.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/profile.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/profile.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/repository.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/repository.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/repository.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/settings.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/settings.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/settings.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/gogs\/sign.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/sign.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/sign.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui.less", + "outputAbbreviatedPath": "\/public\/ng\/css\/ui.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/alert.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/alert.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/alert.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/bread.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/bread.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/bread.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/form.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/form.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/form.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/grid.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/grid.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/grid.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/label.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/label.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/label.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/menu.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/menu.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/menu.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/pager.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/pager.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/pager.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/panel.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/panel.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/panel.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/reset.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/reset.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/reset.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/table.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/table.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/table.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/ng\/less\/ui\/var.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/ng\/less\/ui\/var.less", + "outputAbbreviatedPath": "\/public\/ng\/less\/css\/var.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/README.md": { + "criticStyle": 0, + "enableFootnotes": 0, + "enableLabels": 1, + "enableSmartQuotes": 1, + "escapeLineBreaks": 0, + "fileType": 4096, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/README.md", + "maskEmailAddresses": 1, + "outputAbbreviatedPath": "\/README.html", + "outputFormat": 0, + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "parseMetadata": 1, + "processHTML": 0, + "randomFootnoteNumbers": 0, + "useCompatibilityMode": 0 + }, + "\/README_ZH.md": { + "criticStyle": 0, + "enableFootnotes": 0, + "enableLabels": 1, + "enableSmartQuotes": 1, + "escapeLineBreaks": 0, + "fileType": 4096, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/README_ZH.md", + "maskEmailAddresses": 1, + "outputAbbreviatedPath": "\/README_ZH.html", + "outputFormat": 0, + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "parseMetadata": 1, + "processHTML": 0, + "randomFootnoteNumbers": 0, + "useCompatibilityMode": 0 + } + }, +"hooks": [ + ], +"lastSavedByUser": "Jiahua Chen", +"manualImportLinks": { + }, +"projectAttributes": { + "bowerAbbreviatedPath": "", + "displayValue": "gogs", + "displayValueWasSetByUser": 1, + "iconImageName": "compass_yellow" + }, +"projectSettings": { + "alwaysUseExternalServer": 0, + "animateCSSInjections": 1, + "autoApplyPSLanguageSettingsStyle": 0, + "autoprefixerBrowserString": "> 1%, last 2 versions, Firefox ESR, Opera 12.1", + "autoSyncProjectSettingsFile": 1, + "browserRefreshDelay": 0, + "coffeeAutoOutputPathEnabled": 1, + "coffeeAutoOutputPathFilenamePattern": "*.js", + "coffeeAutoOutputPathRelativePath": "", + "coffeeAutoOutputPathReplace1": "", + "coffeeAutoOutputPathReplace2": "", + "coffeeAutoOutputPathStyle": 0, + "coffeeCreateSourceMap": 0, + "coffeeLintFlags2": { + "arrow_spacing": { + "active": 0, + "flagValue": -1 + }, + "camel_case_classes": { + "active": 1, + "flagValue": -1 + }, + "colon_assignment_spacing": { + "active": 0, + "flagValue": 1 + }, + "cyclomatic_complexity": { + "active": 0, + "flagValue": 10 + }, + "duplicate_key": { + "active": 1, + "flagValue": -1 + }, + "empty_constructor_needs_parens": { + "active": 0, + "flagValue": -1 + }, + "ensure_comprehensions": { + "active": 1, + "flagValue": -1 + }, + "indentation": { + "active": 1, + "flagValue": 2 + }, + "line_endings": { + "active": 0, + "flagValue": 0 + }, + "max_line_length": { + "active": 0, + "flagValue": 150 + }, + "missing_fat_arrows": { + "active": 0, + "flagValue": -1 + }, + "newlines_after_classes": { + "active": 0, + "flagValue": 3 + }, + "no_backticks": { + "active": 1, + "flagValue": -1 + }, + "no_debugger": { + "active": 1, + "flagValue": -1 + }, + "no_empty_functions": { + "active": 0, + "flagValue": -1 + }, + "no_empty_param_list": { + "active": 0, + "flagValue": -1 + }, + "no_implicit_braces": { + "active": 1, + "flagValue": -1 + }, + "no_implicit_parens": { + "active": 0, + "flagValue": -1 + }, + "no_interpolation_in_single_quotes": { + "active": 0, + "flagValue": -1 + }, + "no_plusplus": { + "active": 0, + "flagValue": -1 + }, + "no_stand_alone_at": { + "active": 1, + "flagValue": -1 + }, + "no_tabs": { + "active": 1, + "flagValue": -1 + }, + "no_throwing_strings": { + "active": 1, + "flagValue": -1 + }, + "no_trailing_semicolons": { + "active": 1, + "flagValue": -1 + }, + "no_trailing_whitespace": { + "active": 1, + "flagValue": -1 + }, + "no_unnecessary_double_quotes": { + "active": 0, + "flagValue": -1 + }, + "no_unnecessary_fat_arrows": { + "active": 1, + "flagValue": -1 + }, + "non_empty_constructor_needs_parens": { + "active": 0, + "flagValue": -1 + }, + "prefer_english_operator": { + "active": 0, + "flagValue": -1 + }, + "space_operators": { + "active": 0, + "flagValue": -1 + }, + "spacing_after_comma": { + "active": 1, + "flagValue": -1 + } + }, + "coffeeMinifyOutput": 1, + "coffeeOutputStyle": 0, + "coffeeSyntaxCheckerStyle": 1, + "externalServerAddress": "http:\/\/localhost:8888", + "externalServerPreviewPathAddition": "", + "genericWebpageFileExtensionsString": "html, htm, shtml, shtm, xhtml, php, jsp, asp, aspx, erb, ctp", + "hamlAutoOutputPathEnabled": 1, + "hamlAutoOutputPathFilenamePattern": "*.html", + "hamlAutoOutputPathRelativePath": "", + "hamlAutoOutputPathReplace1": "", + "hamlAutoOutputPathReplace2": "", + "hamlAutoOutputPathStyle": 0, + "hamlEscapeHTMLCharacters": 0, + "hamlNoEscapeInAttributes": 0, + "hamlOutputFormat": 2, + "hamlOutputStyle": 0, + "hamlUseCDATA": 0, + "hamlUseDoubleQuotes": 0, + "hamlUseUnixNewlines": 0, + "jadeAutoOutputPathEnabled": 1, + "jadeAutoOutputPathFilenamePattern": "*.html", + "jadeAutoOutputPathRelativePath": "", + "jadeAutoOutputPathReplace1": "", + "jadeAutoOutputPathReplace2": "", + "jadeAutoOutputPathStyle": 0, + "jadeCompileDebug": 1, + "jadeOutputStyle": 0, + "javascriptAutoOutputPathEnabled": 1, + "javascriptAutoOutputPathFilenamePattern": "*-min.js", + "javascriptAutoOutputPathRelativePath": "\/min", + "javascriptAutoOutputPathReplace1": "", + "javascriptAutoOutputPathReplace2": "", + "javascriptAutoOutputPathStyle": 2, + "javascriptCreateSourceMap": 1, + "javascriptOutputStyle": 1, + "javascriptSyntaxCheckerStyle": 1, + "jsCheckerReservedNamesString": "", + "jsHintFlags2": { + "asi": { + "active": 0, + "flagValue": -1 + }, + "bitwise": { + "active": 1, + "flagValue": -1 + }, + "boss": { + "active": 0, + "flagValue": -1 + }, + "browser": { + "active": 1, + "flagValue": -1 + }, + "browserify": { + "active": 0, + "flagValue": -1 + }, + "camelcase": { + "active": 0, + "flagValue": -1 + }, + "couch": { + "active": 0, + "flagValue": -1 + }, + "curly": { + "active": 1, + "flagValue": -1 + }, + "debug": { + "active": 0, + "flagValue": -1 + }, + "devel": { + "active": 0, + "flagValue": -1 + }, + "dojo": { + "active": 0, + "flagValue": -1 + }, + "elision": { + "active": 1, + "flagValue": -1 + }, + "eqeqeq": { + "active": 1, + "flagValue": -1 + }, + "eqnull": { + "active": 0, + "flagValue": -1 + }, + "es3": { + "active": 0, + "flagValue": -1 + }, + "esnext": { + "active": 0, + "flagValue": -1 + }, + "evil": { + "active": 1, + "flagValue": -1 + }, + "expr": { + "active": 0, + "flagValue": -1 + }, + "forin": { + "active": 0, + "flagValue": -1 + }, + "freeze": { + "active": 1, + "flagValue": -1 + }, + "funcscope": { + "active": 0, + "flagValue": -1 + }, + "futurehostile": { + "active": 0, + "flagValue": -1 + }, + "globalstrict": { + "active": 0, + "flagValue": -1 + }, + "immed": { + "active": 0, + "flagValue": -1 + }, + "indent": { + "active": 0, + "flagValue": 4 + }, + "iterator": { + "active": 0, + "flagValue": -1 + }, + "jasmine": { + "active": 0, + "flagValue": -1 + }, + "jquery": { + "active": 1, + "flagValue": -1 + }, + "lastsemic": { + "active": 0, + "flagValue": -1 + }, + "latedef": { + "active": 1, + "flagValue": -1 + }, + "laxbreak": { + "active": 0, + "flagValue": -1 + }, + "laxcomma": { + "active": 0, + "flagValue": -1 + }, + "loopfunc": { + "active": 0, + "flagValue": -1 + }, + "maxcomplexity": { + "active": 0, + "flagValue": 10 + }, + "maxdepth": { + "active": 0, + "flagValue": 3 + }, + "maxlen": { + "active": 0, + "flagValue": 150 + }, + "maxparams": { + "active": 0, + "flagValue": 3 + }, + "maxstatements": { + "active": 0, + "flagValue": 4 + }, + "mocha": { + "active": 0, + "flagValue": -1 + }, + "mootools": { + "active": 0, + "flagValue": -1 + }, + "moz": { + "active": 0, + "flagValue": -1 + }, + "multistr": { + "active": 0, + "flagValue": -1 + }, + "newcap": { + "active": 1, + "flagValue": -1 + }, + "noarg": { + "active": 1, + "flagValue": -1 + }, + "nocomma": { + "active": 0, + "flagValue": -1 + }, + "node": { + "active": 0, + "flagValue": -1 + }, + "noempty": { + "active": 0, + "flagValue": -1 + }, + "nonbsp": { + "active": 0, + "flagValue": -1 + }, + "nonew": { + "active": 1, + "flagValue": -1 + }, + "nonstandard": { + "active": 0, + "flagValue": -1 + }, + "notypeof": { + "active": 1, + "flagValue": -1 + }, + "noyield": { + "active": 0, + "flagValue": -1 + }, + "onecase": { + "active": 0, + "flagValue": -1 + }, + "phantom": { + "active": 0, + "flagValue": -1 + }, + "plusplus": { + "active": 0, + "flagValue": -1 + }, + "proto": { + "active": 0, + "flagValue": -1 + }, + "prototypejs": { + "active": 0, + "flagValue": -1 + }, + "qunit": { + "active": 0, + "flagValue": -1 + }, + "regexp": { + "active": 1, + "flagValue": -1 + }, + "rhino": { + "active": 0, + "flagValue": -1 + }, + "scripturl": { + "active": 0, + "flagValue": -1 + }, + "shadow": { + "active": 0, + "flagValue": -1 + }, + "shelljs": { + "active": 0, + "flagValue": -1 + }, + "singleGroups": { + "active": 0, + "flagValue": -1 + }, + "strict": { + "active": 0, + "flagValue": -1 + }, + "sub": { + "active": 0, + "flagValue": -1 + }, + "supernew": { + "active": 0, + "flagValue": -1 + }, + "typed": { + "active": 0, + "flagValue": -1 + }, + "undef": { + "active": 1, + "flagValue": -1 + }, + "unused": { + "active": 1, + "flagValue": -1 + }, + "varstmt": { + "active": 0, + "flagValue": -1 + }, + "withstmt": { + "active": 0, + "flagValue": -1 + }, + "worker": { + "active": 0, + "flagValue": -1 + }, + "wsh": { + "active": 0, + "flagValue": -1 + }, + "yui": { + "active": 0, + "flagValue": -1 + } + }, + "jsLintFlags2": { + "ass": { + "active": 0, + "flagValue": -1 + }, + "bitwise": { + "active": 0, + "flagValue": -1 + }, + "browser": { + "active": 1, + "flagValue": -1 + }, + "closure": { + "active": 0, + "flagValue": -1 + }, + "continue": { + "active": 0, + "flagValue": -1 + }, + "debug": { + "active": 0, + "flagValue": -1 + }, + "devel": { + "active": 0, + "flagValue": -1 + }, + "eqeq": { + "active": 0, + "flagValue": -1 + }, + "evil": { + "active": 1, + "flagValue": -1 + }, + "forin": { + "active": 0, + "flagValue": -1 + }, + "indent": { + "active": 0, + "flagValue": 4 + }, + "maxlen": { + "active": 0, + "flagValue": 150 + }, + "newcap": { + "active": 0, + "flagValue": -1 + }, + "node": { + "active": 0, + "flagValue": -1 + }, + "nomen": { + "active": 0, + "flagValue": -1 + }, + "plusplus": { + "active": 0, + "flagValue": -1 + }, + "properties": { + "active": 0, + "flagValue": -1 + }, + "regexp": { + "active": 0, + "flagValue": -1 + }, + "rhino": { + "active": 0, + "flagValue": -1 + }, + "sloppy": { + "active": 0, + "flagValue": -1 + }, + "stupid": { + "active": 0, + "flagValue": -1 + }, + "sub": { + "active": 0, + "flagValue": -1 + }, + "todo": { + "active": 0, + "flagValue": -1 + }, + "unparam": { + "active": 0, + "flagValue": -1 + }, + "vars": { + "active": 0, + "flagValue": -1 + }, + "white": { + "active": 0, + "flagValue": -1 + } + }, + "jsonAutoOutputPathEnabled": 0, + "jsonAutoOutputPathFilenamePattern": "*-min.json", + "jsonAutoOutputPathRelativePath": "", + "jsonAutoOutputPathReplace1": "", + "jsonAutoOutputPathReplace2": "", + "jsonAutoOutputPathStyle": 0, + "jsonOrderOutput": 0, + "jsonOutputStyle": 1, + "kitAutoOutputPathEnabled": 1, + "kitAutoOutputPathFilenamePattern": "*.html", + "kitAutoOutputPathRelativePath": "", + "kitAutoOutputPathReplace1": "", + "kitAutoOutputPathReplace2": "", + "kitAutoOutputPathStyle": 0, + "lessAllowInsecureImports": 0, + "lessAutoOutputPathEnabled": 1, + "lessAutoOutputPathFilenamePattern": "*.css", + "lessAutoOutputPathRelativePath": "..\/css", + "lessAutoOutputPathReplace1": "less", + "lessAutoOutputPathReplace2": "css", + "lessAutoOutputPathStyle": 2, + "lessCreateSourceMap": 0, + "lessDisableJavascript": 0, + "lessIeCompatibility": 1, + "lessOutputStyle": 0, + "lessRelativeURLS": 0, + "lessStrictImports": 0, + "lessStrictMath": 0, + "lessStrictUnits": 0, + "markdownAutoOutputPathEnabled": 0, + "markdownAutoOutputPathFilenamePattern": "*.html", + "markdownAutoOutputPathRelativePath": "", + "markdownAutoOutputPathReplace1": "", + "markdownAutoOutputPathReplace2": "", + "markdownAutoOutputPathStyle": 0, + "markdownCriticStyle": 0, + "markdownEnableFootnotes": 0, + "markdownEnableLabels": 1, + "markdownEnableSmartQuotes": 1, + "markdownEscapeLineBreaks": 0, + "markdownMaskEmailAddresses": 1, + "markdownOutputFormat": 0, + "markdownOutputStyle": 0, + "markdownParseMetadata": 1, + "markdownProcessHTML": 0, + "markdownRandomFootnoteNumbers": 0, + "markdownUseCompatibilityMode": 0, + "reloadFileURLs": 0, + "sassAutoOutputPathEnabled": 1, + "sassAutoOutputPathFilenamePattern": "*.css", + "sassAutoOutputPathRelativePath": "..\/css", + "sassAutoOutputPathReplace1": "sass", + "sassAutoOutputPathReplace2": "css", + "sassAutoOutputPathStyle": 2, + "sassCreateSourceMap": 0, + "sassDebugStyle": 0, + "sassDecimalPrecision": 5, + "sassOutputStyle": 0, + "sassUseLibsass": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "skippedItemsString": "_cache, logs, _logs, cache, \/public\/js\/lib, .git, \/public\/js, log, .svn, .hg", + "slimAutoOutputPathEnabled": 1, + "slimAutoOutputPathFilenamePattern": "*.html", + "slimAutoOutputPathRelativePath": "", + "slimAutoOutputPathReplace1": "", + "slimAutoOutputPathReplace2": "", + "slimAutoOutputPathStyle": 0, + "slimCompileOnly": 0, + "slimLogicless": 0, + "slimOutputFormat": 0, + "slimOutputStyle": 1, + "slimRailsCompatible": 0, + "stylusAutoOutputPathEnabled": 1, + "stylusAutoOutputPathFilenamePattern": "*.css", + "stylusAutoOutputPathRelativePath": "..\/css", + "stylusAutoOutputPathReplace1": "stylus", + "stylusAutoOutputPathReplace2": "css", + "stylusAutoOutputPathStyle": 2, + "stylusCreateSourceMap": 0, + "stylusDebugStyle": 0, + "stylusImportCSS": 0, + "stylusOutputStyle": 0, + "stylusResolveRelativeURLS": 0, + "typescriptAutoOutputPathEnabled": 1, + "typescriptAutoOutputPathFilenamePattern": "*.js", + "typescriptAutoOutputPathRelativePath": "\/js", + "typescriptAutoOutputPathReplace1": "", + "typescriptAutoOutputPathReplace2": "", + "typescriptAutoOutputPathStyle": 2, + "typescriptCreateDeclarationFile": 0, + "typescriptCreateSourceMap": 0, + "typescriptMinifyOutput": 0, + "typescriptModuleType": 0, + "typescriptNoImplicitAny": 0, + "typescriptPreserveConstEnums": 0, + "typescriptRemoveComments": 0, + "typescriptSuppressImplicitAnyIndexErrors": 0, + "typescriptTargetECMAVersion": 0, + "uglifyDefinesString": "", + "uglifyFlags2": { + "ascii-only": { + "active": 0, + "flagValue": -1 + }, + "bare-returns": { + "active": 0, + "flagValue": -1 + }, + "booleans": { + "active": 1, + "flagValue": -1 + }, + "bracketize": { + "active": 0, + "flagValue": -1 + }, + "cascade": { + "active": 1, + "flagValue": -1 + }, + "comments": { + "active": 1, + "flagValue": -1 + }, + "comparisons": { + "active": 1, + "flagValue": -1 + }, + "compress": { + "active": 1, + "flagValue": -1 + }, + "conditionals": { + "active": 1, + "flagValue": -1 + }, + "dead_code": { + "active": 0, + "flagValue": -1 + }, + "drop_console": { + "active": 0, + "flagValue": -1 + }, + "drop_debugger": { + "active": 1, + "flagValue": -1 + }, + "eval": { + "active": 0, + "flagValue": -1 + }, + "evaluate": { + "active": 1, + "flagValue": -1 + }, + "hoist_funs": { + "active": 1, + "flagValue": -1 + }, + "hoist_vars": { + "active": 0, + "flagValue": -1 + }, + "if_return": { + "active": 1, + "flagValue": -1 + }, + "indent-level": { + "active": 0, + "flagValue": 4 + }, + "indent-start": { + "active": 0, + "flagValue": 0 + }, + "inline-script": { + "active": 0, + "flagValue": -1 + }, + "join_vars": { + "active": 1, + "flagValue": -1 + }, + "keep_fargs": { + "active": 0, + "flagValue": -1 + }, + "keep_fnames": { + "active": 0, + "flagValue": -1 + }, + "loops": { + "active": 1, + "flagValue": -1 + }, + "mangle": { + "active": 1, + "flagValue": -1 + }, + "max-line-len": { + "active": 1, + "flagValue": 32000 + }, + "negate_iife": { + "active": 1, + "flagValue": -1 + }, + "properties": { + "active": 1, + "flagValue": -1 + }, + "pure_getters": { + "active": 0, + "flagValue": -1 + }, + "quote-keys": { + "active": 0, + "flagValue": -1 + }, + "screw-ie8": { + "active": 0, + "flagValue": -1 + }, + "semicolons": { + "active": 1, + "flagValue": -1 + }, + "sequences": { + "active": 1, + "flagValue": -1 + }, + "sort": { + "active": 0, + "flagValue": -1 + }, + "space-colon": { + "active": 1, + "flagValue": -1 + }, + "toplevel": { + "active": 0, + "flagValue": -1 + }, + "unsafe": { + "active": 0, + "flagValue": -1 + }, + "unused": { + "active": 0, + "flagValue": -1 + }, + "warnings": { + "active": 0, + "flagValue": -1 + }, + "width": { + "active": 1, + "flagValue": 80 + } + }, + "uglifyReservedNamesString": "$", + "websiteRelativeRoot": "" + }, +"settingsFileVersion": "2" +} \ No newline at end of file diff --git a/gogs.go b/gogs.go index 80bd3c8a..881fecf6 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.6.1.0724 Beta" +const APP_VER = "0.6.2.0724 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/action.go b/models/action.go index d3393728..86520b57 100644 --- a/models/action.go +++ b/models/action.go @@ -153,7 +153,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com url := fmt.Sprintf("%s/%s/%s/commit/%s", setting.AppSubUrl, repoUserName, repoName, c.Sha1) message := fmt.Sprintf(`%s`, url, c.Message) - if _, err = CreateComment(userId, issue.RepoId, issue.Id, 0, 0, COMMENT_TYPE_COMMIT, message, nil); err != nil { + if _, err = CreateComment(userId, issue.RepoId, issue.ID, 0, 0, COMMENT_TYPE_COMMIT, message, nil); err != nil { return err } } @@ -202,7 +202,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com if err = UpdateIssue(issue); err != nil { return err - } else if err = UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil { + } else if err = UpdateIssueUserPairsByStatus(issue.ID, issue.IsClosed); err != nil { return err } @@ -211,7 +211,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com } // If commit happened in the referenced repository, it means the issue can be closed. - if _, err = CreateComment(userId, repoId, issue.Id, 0, 0, COMMENT_TYPE_CLOSE, "", nil); err != nil { + if _, err = CreateComment(userId, repoId, issue.ID, 0, 0, COMMENT_TYPE_CLOSE, "", nil); err != nil { return err } } @@ -261,7 +261,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com if err = UpdateIssue(issue); err != nil { return err - } else if err = UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil { + } else if err = UpdateIssueUserPairsByStatus(issue.ID, issue.IsClosed); err != nil { return err } @@ -270,7 +270,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com } // If commit happened in the referenced repository, it means the issue can be closed. - if _, err = CreateComment(userId, repoId, issue.Id, 0, 0, COMMENT_TYPE_REOPEN, "", nil); err != nil { + if _, err = CreateComment(userId, repoId, issue.ID, 0, 0, COMMENT_TYPE_REOPEN, "", nil); err != nil { return err } } diff --git a/models/issue.go b/models/issue.go index 96bffa0b..4ddf5725 100644 --- a/models/issue.go +++ b/models/issue.go @@ -32,7 +32,7 @@ var ( // Issue represents an issue or pull request of repository. type Issue struct { - Id int64 + ID int64 `xorm:"pk autoincr"` RepoId int64 `xorm:"INDEX"` Index int64 // Index in one repository. Name string @@ -100,15 +100,15 @@ func (i *Issue) GetAssignee() (err error) { } func (i *Issue) Attachments() []*Attachment { - a, _ := GetAttachmentsForIssue(i.Id) + a, _ := GetAttachmentsForIssue(i.ID) return a } func (i *Issue) AfterDelete() { - _, err := DeleteAttachmentsByIssue(i.Id, true) + _, err := DeleteAttachmentsByIssue(i.ID, true) if err != nil { - log.Info("Could not delete files for issue #%d: %s", i.Id, err) + log.Info("Could not delete files for issue #%d: %s", i.ID, err) } } @@ -175,7 +175,7 @@ func GetIssueByIndex(rid, index int64) (*Issue, error) { // GetIssueById returns an issue by ID. func GetIssueById(id int64) (*Issue, error) { - issue := &Issue{Id: id} + issue := &Issue{ID: id} has, err := x.Get(issue) if err != nil { return nil, err @@ -456,7 +456,7 @@ func GetUserIssueStats(uid int64, filterMode int) *IssueStats { // UpdateIssue updates information of issue. func UpdateIssue(issue *Issue) error { - _, err := x.Id(issue.Id).AllCols().Update(issue) + _, err := x.Id(issue.ID).AllCols().Update(issue) if err != nil { return err @@ -526,7 +526,7 @@ func UpdateIssueUserPairsByMentions(uids []int64, iid int64) error { // Label represents a label of repository for issues. type Label struct { - Id int64 + ID int64 `xorm:"pk autoincr"` RepoId int64 `xorm:"INDEX"` Name string Color string `xorm:"VARCHAR(7)"` @@ -553,7 +553,7 @@ func GetLabelById(id int64) (*Label, error) { return nil, ErrLabelNotExist } - l := &Label{Id: id} + l := &Label{ID: id} has, err := x.Get(l) if err != nil { return nil, err @@ -572,7 +572,7 @@ func GetLabels(repoId int64) ([]*Label, error) { // UpdateLabel updates label information. func UpdateLabel(l *Label) error { - _, err := x.Id(l.Id).AllCols().Update(l) + _, err := x.Id(l.ID).AllCols().Update(l) return err } @@ -600,7 +600,7 @@ func DeleteLabel(repoId int64, strId string) error { for _, issue := range issues { issue.LabelIds = strings.Replace(issue.LabelIds, "$"+strId+"|", "", -1) - if _, err = sess.Id(issue.Id).AllCols().Update(issue); err != nil { + if _, err = sess.Id(issue.ID).AllCols().Update(issue); err != nil { sess.Rollback() return err } @@ -788,7 +788,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } rawSql := "UPDATE `issue_user` SET milestone_id = 0 WHERE issue_id = ?" - if _, err = sess.Exec(rawSql, issue.Id); err != nil { + if _, err = sess.Exec(rawSql, issue.ID); err != nil { sess.Rollback() return err } @@ -816,7 +816,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } rawSql := "UPDATE `issue_user` SET milestone_id = ? WHERE issue_id = ?" - if _, err = sess.Exec(rawSql, m.Id, issue.Id); err != nil { + if _, err = sess.Exec(rawSql, m.Id, issue.ID); err != nil { sess.Rollback() return err } diff --git a/models/repo.go b/models/repo.go index 4ee5c382..5610776a 100644 --- a/models/repo.go +++ b/models/repo.go @@ -876,7 +876,7 @@ func DeleteRepository(uid, repoID int64, userName string) error { return err } for i := range issues { - if _, err = sess.Delete(&Comment{IssueId: issues[i].Id}); err != nil { + if _, err = sess.Delete(&Comment{IssueId: issues[i].ID}); err != nil { return err } } diff --git a/modules/auth/auth.go b/modules/auth/auth.go index 42346430..155a8272 100644 --- a/modules/auth/auth.go +++ b/modules/auth/auth.go @@ -171,12 +171,16 @@ func AssignForm(form interface{}, data map[string]interface{}) { func getSize(field reflect.StructField, prefix string) string { for _, rule := range strings.Split(field.Tag.Get("binding"), ";") { if strings.HasPrefix(rule, prefix) { - return rule[8 : len(rule)-1] + return rule[len(prefix) : len(rule)-1] } } return "" } +func GetSize(field reflect.StructField) string { + return getSize(field, "Size(") +} + func GetMinSize(field reflect.StructField) string { return getSize(field, "MinSize(") } @@ -227,6 +231,8 @@ func validate(errs binding.Errors, data map[string]interface{}, f Form, l macaro data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_error") case binding.ERR_ALPHA_DASH_DOT: data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_error") + case binding.ERR_SIZE: + data["ErrorMsg"] = trName + l.Tr("form.size_error", GetSize(field)) case binding.ERR_MIN_SIZE: data["ErrorMsg"] = trName + l.Tr("form.min_size_error", GetMinSize(field)) case binding.ERR_MAX_SIZE: diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go index a0928301..a0b479ea 100644 --- a/modules/auth/repo_form.go +++ b/modules/auth/repo_form.go @@ -134,8 +134,8 @@ func (f *CreateMilestoneForm) Validate(ctx *macaron.Context, errs binding.Errors // \/ \/ \/ \/ type CreateLabelForm struct { - Title string `form:"title" binding:"Required;MaxSize(50)"` - Color string `form:"color" binding:"Required;Size(7)"` + Title string `binding:"Required;MaxSize(50)" locale:"repo.issues.label_name"` + Color string `binding:"Required;Size(7)" locale:"repo.issues.label_color"` } func (f *CreateLabelForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { diff --git a/modules/bindata/bindata.go b/modules/bindata/bindata.go index af0865c0..16f4ef12 100644 --- a/modules/bindata/bindata.go +++ b/modules/bindata/bindata.go @@ -726,7 +726,7 @@ func confLocaleTranslators() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 606, mode: os.FileMode(420), modTime: time.Unix(1437262032, 0)} + info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 606, mode: os.FileMode(420), modTime: time.Unix(1437728161, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -771,7 +771,7 @@ func confLocaleLocale_deDeIni() (*asset, error) { return a, nil } -var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xeb\x72\xdc\x48\xb2\xde\x7f\x3c\x05\x66\x1c\xb2\x66\x22\xa8\x56\xcc\x4c\xd8\xe1\x98\x90\x34\xe6\x90\xa3\xcb\x1e\x51\xd4\x11\xa9\x5d\x1f\x2b\x14\x58\x74\x03\xec\xc6\xb2\x1b\xe8\xc5\x85\x3d\xdc\x5f\x7e\x0d\xbf\x9e\x9f\xc4\x99\x5f\x66\xd6\x05\x40\x53\xa3\x3d\x0e\x9f\x3f\x64\xa1\x2a\xeb\x96\x95\x95\x95\xb7\xaa\xce\xf7\xfb\xac\x28\xbb\x55\xfa\x3c\x3d\x4d\xf7\x79\x55\x6f\xcb\xae\x4b\xbb\x72\x7b\xf3\x64\xd3\x74\x7d\x59\xa4\xaf\xaa\x9e\xbe\xdb\xbb\x6a\x55\x26\xc9\xa6\xd9\x95\x04\xfa\x9a\xfe\x25\x45\xde\x6d\x96\x4d\xde\x16\x94\x71\x6e\xe9\xa4\xfc\x7d\xbf\x6d\x5a\x06\xfa\x4d\x52\xc9\xa6\xdc\xee\xb9\x0e\xfd\x4b\xba\x6a\x5d\x67\x55\x4d\x9f\x57\x94\x4a\xdf\xd4\x49\xd7\xac\xaa\x7c\x9b\x05\x05\xc8\xb0\xf2\x9f\xd3\x1f\xeb\x22\xbd\xea\xcb\x7d\xfa\xac\xdb\xe5\xdb\xed\x8b\xbc\x43\x95\xbe\x4c\xf3\xd5\xaa\x19\xea\xfe\xd9\x53\x29\x90\xc6\x9b\xa1\xb7\xd6\x2f\x87\x5e\xf2\x86\xbd\x65\x7d\xdc\x27\x6d\xb9\xae\x68\x62\x2d\x65\x7d\xd0\x64\x72\x28\x97\x5d\xd5\xf3\xa0\xff\x22\xa9\xe4\xae\x6c\xbb\xaa\xe1\xf1\xfc\x59\x52\xc9\x3e\x5f\x33\xc0\x7b\xfa\x97\xf4\xe5\x6e\xbf\xcd\x51\xe1\x5a\x93\xc9\x36\xaf\xd7\x83\xc0\xbc\xd5\x64\x92\x0c\x84\xb9\x3a\x07\xce\x3e\x6a\x32\x29\x77\x79\xb5\x65\xfc\x3c\xe1\x04\xb5\xdb\x75\x87\x06\x58\x7c\xaf\x49\x1a\x63\xd6\xdf\xef\x4b\x0c\xf1\xc9\x35\xa5\x92\x55\xbe\xef\x57\x9b\x9c\x72\xce\x24\x95\x10\xd0\xbe\xa1\xb1\x36\xed\x3d\xe0\xec\x23\x69\xda\x75\x5e\x57\xff\xc8\x7b\x19\xff\x65\xf0\x99\xec\xaa\xb6\x6d\x78\xea\x17\x48\x24\x75\x79\xc8\xb8\x1d\xca\x79\x57\x1e\xc2\x56\xb8\x64\x57\xad\x5b\x99\x25\x17\x5e\xe0\x8b\x5b\xe1\xb2\x9b\xa6\xbd\xd5\x82\x97\x9c\x1c\x55\xa5\x41\x68\x69\xdc\x7f\x5e\x13\x5e\xb4\xf4\x02\x1f\x11\x40\x97\xe4\xc5\xae\xaa\xb3\x7d\x5e\x97\x8c\xa3\x53\xfe\x22\xbc\xd0\x57\xa2\xcb\x9d\x75\x65\xdf\x57\xf5\xba\xe3\x62\xc9\x4a\xaf\x34\x2b\x09\xca\x5c\x1e\x8f\xa7\xcb\x6e\xca\xb2\x90\x11\x75\xe9\x4b\x4a\x27\xfb\x61\xbb\xa5\xb9\xff\x7d\x28\xbb\x9e\xe1\xdf\xd3\x37\xcd\x42\xbe\x93\xaa\xeb\x28\x41\xd9\x6f\x90\x48\x68\x01\xea\x15\x86\x74\x86\x44\x92\x7c\xea\xca\xbc\x5d\x6d\x3e\x27\xf2\x1f\x3d\x72\x62\xb1\x58\x1c\x5d\x1a\x26\x07\x25\x05\xe9\xc1\x3a\x48\x56\x4d\xc1\x1f\x67\xf4\x8f\x9a\xae\xea\xae\x27\x92\xfe\x9c\x68\x82\xc1\x24\x25\x68\xec\xab\x7e\x5b\xfa\x4c\xec\x8f\x8e\xd7\x21\x7d\x59\xb5\x5d\xff\xa4\xaf\x88\xe4\x3e\x0c\x75\xc2\xf3\x23\x72\xce\x8a\xa5\xed\xf2\x57\x0d\x61\x07\xd9\x2d\xcd\xef\xe2\xfe\xea\x5f\xdf\x9e\xa4\xef\x69\xab\xaf\xdb\x92\xd2\x29\xb5\x41\xff\xa8\xce\x4f\x8b\x84\x6a\x59\x4f\xe7\x79\x9f\x2f\xf3\xae\xf4\x68\xe5\x42\xa1\x51\x57\x06\x4a\x65\xb6\x01\x16\xd1\xf5\xd1\x7c\xe7\xe8\x9c\xda\xd0\xdd\xe1\xda\x78\xc7\x5b\x84\xf2\x99\x6b\xa0\xf2\xfb\x6d\xc9\xf9\xd4\x54\xfa\xe6\xdd\xbb\xcb\xf3\x5f\xd3\xb2\x5e\x57\x75\x99\x1e\xaa\x7e\x93\x0e\xfd\xcd\x7f\xcb\xd6\x65\x5d\xb6\xc4\x44\x56\x55\x4a\x3b\xa3\x25\x22\x48\x89\x3c\x65\x72\x8b\xa4\xeb\xb6\xd9\x4e\xd0\x7b\x75\xf5\x36\xbd\x60\x14\xef\xf3\x7e\x83\x81\xf4\x9b\xa4\xfb\xfb\x96\x51\xe4\x3a\xbc\xde\x94\xe9\x4d\x45\xb3\x06\x50\x73\x63\xf8\x48\x0b\x1d\xe3\x22\x29\xdb\x36\xa3\x7d\xdf\xdf\x67\x5a\x59\xdb\x1b\x43\x4a\x13\x44\x3a\x75\xd3\xa7\xcb\x32\x45\x9d\x45\x92\xd8\x80\x0d\xbb\xa7\xfb\xfd\xb6\x5a\xc9\x8e\x7d\x25\x65\x1e\xd1\xcc\xa2\x15\x4b\x21\x1c\x10\x65\x65\x01\xba\x88\xff\xdd\x37\x43\x9b\x46\x6c\x00\xf5\x37\x25\xf1\xe5\xcd\x40\x5b\x2e\x27\x9e\xba\x6d\x86\xe2\x1b\x50\xaa\x8d\xde\x13\x6a\xfa\xa1\xa1\x01\x03\x3b\x0e\xc0\x77\x71\x4a\x14\xc7\xa7\x42\x5b\xee\x1a\xe2\x0e\x8e\xd8\x2b\x22\xa8\x43\x45\x85\x34\xd3\x2e\xbf\xa3\xfd\xd6\x37\x69\xbf\xa9\xba\xb4\x20\x62\x5b\x71\xc3\xb4\x35\x06\xe2\xc7\x42\x16\x44\xa0\x42\x1a\x96\x17\xaf\x01\xa0\x76\x03\x51\xd3\x86\x1a\x63\x6e\xcf\x47\x13\x35\x39\x37\x4e\x4c\x89\xda\x01\x7d\x13\xe5\x36\xc4\x5b\x99\xfb\x9d\x23\xa1\xdf\x61\xfb\x34\xaa\xfc\xe6\x86\x46\xd5\x11\x55\xbc\x4e\x57\xdb\x86\x48\xea\xe3\x87\xb7\x54\x79\xd3\xf7\xfb\x6c\xdf\xb4\x20\xe3\xeb\xeb\xf7\xb4\x3d\xda\xde\xe7\x06\xb8\x66\x98\x7a\xd8\x2d\xe9\xeb\xb0\xa9\x88\x09\xe4\xc1\x02\x01\x15\x5b\x3e\x60\xea\xb4\xa9\x17\x58\xab\xa1\xdd\x8e\x96\x91\xba\xb4\x92\x23\xc3\xe3\x21\x3c\xe5\x3f\x57\x7e\x94\x98\x6e\x47\xa7\xf0\x01\x8b\x4a\x53\x2d\x71\x9a\x10\x6d\x35\x7b\x6e\x37\x20\xae\x4b\xcd\xf0\x14\x85\x13\xc8\x95\xcb\x39\x44\xa5\x38\xe3\x03\x5e\xba\xa3\x09\xeb\x6e\xbe\xba\x20\x34\x60\x4b\x23\xf7\xa6\x6d\x76\x94\xfb\x92\xfe\xf9\x0c\x3f\xfc\x0b\x6e\x0f\x30\x79\x51\x10\x9b\xe9\x4e\xd2\x0f\x2f\xcf\xd2\xff\xf2\xd3\x8f\x3f\x2e\xd2\x37\x3d\x6f\x08\xa6\x91\xbf\xf1\xda\x52\x52\x0e\x44\x07\x4a\x3b\xb7\xa7\xe5\xff\x96\x09\xfc\xdb\xf4\x19\x4a\xff\x7b\xf9\x7b\x4e\xe7\x6c\xb9\x58\x35\xbb\x17\xbc\xb9\x77\x79\xbf\x48\xb8\x84\xa8\x46\xc9\xe9\xaa\xac\x0b\x4a\xe8\xb1\xaa\x65\x01\xd7\xd1\xf2\xe0\x90\x95\xd3\x3f\x5b\x35\xf5\x4d\xd5\xf2\x84\x7e\xab\xf3\x25\xe1\xc4\xe4\x02\x62\xc7\x28\xb1\xb3\x8b\x90\x46\x1b\xb9\xba\xb9\xf7\xa0\x98\xea\x3b\xce\xd4\x05\x4d\x58\x56\xa2\x46\x55\x64\x72\x58\xbe\x42\x36\xd6\xed\x92\xa6\xd7\x1a\xbe\x3b\x8f\xf0\xe6\xe6\x66\x4b\x8c\xcd\x98\x95\xf6\x70\x29\xb9\xc2\xb7\x42\x10\x22\xc6\x3d\x24\x9b\xf3\xaa\x03\xe4\xd9\xf9\xbb\xb4\xbc\x23\x6a\x23\x72\xd8\xb7\x4d\x31\xac\x40\x61\x0c\x7b\x92\xf2\x31\x41\xf8\x25\xce\xb0\x12\xf6\x16\xec\x55\x1e\x1a\x33\x84\x15\x01\xd1\x16\x2d\xa4\xbd\x4c\x10\xd4\x9a\x20\x61\xdd\x5c\xb1\x70\x18\x96\xcd\x56\x98\x8c\x0e\xab\xd4\x8d\xeb\xd2\x72\xd7\xdb\xfb\x14\xa7\x3e\xe8\x62\xd5\x96\x81\x6c\xd7\x2d\x12\x3d\xab\x4c\x42\xcc\xee\x2a\x12\x2a\x82\xa5\x42\xa9\x89\x8b\xcc\x1e\xfe\xcc\x00\x2c\xa6\x75\xb3\x75\xdd\xc0\x2e\xb9\x63\x2e\xa1\xb9\x53\xe7\x3c\xbe\x0e\x43\x40\x0f\x2c\xee\x11\x31\xde\x55\xe0\x34\x8a\x2c\x8c\x95\x30\x86\xae\xa9\xab\xae\x2c\xd1\x02\xd5\x7f\x4a\x6d\xa2\xce\x42\x45\x18\x15\x45\xec\xdc\xfd\xb7\x66\x48\x8b\x26\xe5\x83\x00\xec\x8c\x6a\xdb\x54\x6b\x9d\xbe\xce\x39\x6d\xab\xf5\x86\xf8\x4a\x73\x38\x11\xa4\x1d\x36\x4d\xc9\xb4\xf3\xe6\xfc\xf9\x0f\x32\x8e\x35\x33\x37\x57\x89\xd9\x62\x3e\xf4\x0d\xd3\xa9\x2e\xa1\x0c\xc1\x1d\x2f\x80\x9c\x08\x4b\x02\x34\x16\x4f\x4d\x00\x9b\x9e\xd6\xba\x4f\xc2\x32\xdd\x20\x1e\x46\x6a\x8f\x44\x5c\x95\x62\xb2\x75\x03\xc9\xcc\xa4\x16\x66\xd5\x24\x4a\x77\x7d\xb6\xae\xfa\xec\x86\x37\x2c\xb7\xf9\x92\xeb\xf2\xc9\x41\x25\xe9\x63\x2a\x7a\x9c\xd2\xae\x27\xc9\xb1\xf8\x39\x7d\x74\xa7\xc7\xf5\x4f\xbc\x13\xb3\xfc\x8e\x60\xb1\x18\x40\x70\x4b\x14\x2e\xd2\x82\x89\xef\x45\x43\x74\xce\x38\xef\x86\x3d\x38\xba\x9e\xd0\x27\xe9\x5e\x00\x8b\xe6\x50\x6f\x9b\xbc\x00\xcb\xa1\xdd\x55\x41\xf9\x58\x56\x75\x4e\xa7\x8b\xb5\x02\x56\xf6\x88\xa8\xe1\xdd\xe5\x35\x00\xd7\xcd\x72\xa8\xb6\x85\x01\x2c\x68\x86\x77\xf9\xb6\x2a\x58\xce\xd2\x75\x0f\x65\x1a\xcb\xaa\x64\x2c\xab\xa6\xe5\xe3\x10\xb3\xb1\x8a\x47\xce\xe1\x96\xcf\x37\x64\x53\x5d\x85\x45\x3d\x77\x64\x32\x1a\x68\xe1\x21\x80\xf2\x81\x0a\x8a\xa9\xba\xfa\x71\x8f\x91\xae\x06\xea\x8b\x16\x9d\xb3\xa9\x62\x97\x3e\x79\x41\x7f\x13\x3e\x9e\x85\xef\xad\xa7\x88\xe7\xc2\x54\x0a\x07\xd9\xa5\xd1\x50\x23\xf2\x76\xd4\x65\xc4\x1b\xcc\x35\x1c\xaf\x91\x40\x37\x08\xbd\xb2\xa6\xb5\xa5\x65\x2d\xbf\xa1\xc4\x63\xda\xc0\xeb\x2d\x16\x21\x87\xf4\x42\x62\x5c\x43\x78\x63\x02\x39\x91\xed\x72\x43\x53\x63\xde\xd9\xe7\xb7\x34\xb6\xbc\x25\x21\x2c\xf9\xc4\xda\xe8\xe7\x64\x10\x01\xa8\xd9\x16\x4e\xd8\x04\x4d\x37\xed\x58\xc5\xf2\x40\x8e\x5e\x3b\x92\x22\x57\x9b\xcc\xe9\xb2\x8c\x94\xbe\xfc\x1d\x67\x1e\x8a\xbc\x6a\xcb\xc4\xce\x45\xc9\xee\x1e\xcb\xc5\x93\xb8\xb8\xf7\xab\x45\xe2\x0f\x6d\x11\x12\xd1\x97\x0d\x63\xed\xae\x74\x50\x67\x61\x6e\x5c\x81\xda\x22\x41\x4d\x9b\x8a\x35\x21\x2a\x12\x75\x4d\x4b\x45\x65\x23\x55\xe4\x93\xea\xd8\x9f\x13\xeb\x20\x6a\x32\xf9\x44\xcc\x80\xf4\x12\x61\x2f\x19\x6b\x63\xb6\x38\x34\x14\xe1\x39\xac\x98\x29\x3f\xf0\xe7\xe0\xa6\xdc\xf3\x91\xb9\xeb\xb0\xaa\x5b\x82\x2c\xee\x55\xf6\x72\xeb\xfb\x8b\x70\x5a\x5a\x70\xe2\x4f\xdf\x98\xf6\xfe\x95\x4d\xfc\x5a\xd1\x4a\xa2\x7e\x7c\x72\xf0\x79\x4d\x5b\x6d\x0f\xec\xd3\x26\xb9\x3f\x49\xa3\x33\x68\x93\x77\xc4\x7d\xe9\x80\xd3\x6a\xc5\xc2\xb4\x03\x5e\xb5\x7c\x25\x24\x0f\x4d\x1e\x44\x2a\x35\x9b\x76\x7c\xa4\xf1\x08\x85\x41\x69\x2f\xee\xc0\xc7\x71\x1e\x9e\xfa\x33\x7d\x12\xc2\x76\x25\xcb\x7c\xd9\x4e\x34\x74\xf9\x4a\x2f\xca\x84\x04\x93\x35\xed\x47\xa3\xb7\xe7\xac\x92\xad\x21\xa1\x2a\xb9\x31\x40\xd9\x87\x1c\x54\x21\x2c\xe7\x17\xb3\x58\xd0\xc6\x3e\x40\x5f\xa5\xad\x39\x41\x3f\x9d\x35\x54\xbc\x30\x8e\x2c\x07\x2e\xe4\x93\x8e\x36\xbb\x47\xe2\x69\x4a\xab\x9f\x86\x50\x2a\x27\xfa\x69\x71\x05\xde\xf4\xcf\x96\x2f\x1e\x75\xcf\x9e\x2e\x5f\x38\xd6\xb8\xda\x94\xab\x5b\xd1\x25\xaa\x7a\xd9\xfc\x0e\x85\x8b\x16\x9e\x71\x5c\xf3\x16\x79\x54\xa4\x1b\x2a\x85\x4c\x4e\x5b\x99\xaa\x11\xe2\xb9\x34\x5a\x34\x1a\x0c\xef\xf8\x85\xd9\x7e\xdc\xe1\x60\x84\x44\xb5\xd1\x89\x8c\x8c\xd4\x7c\xec\x1d\xce\x0a\xe8\xf6\x94\x73\x99\x72\xc1\xe6\x3d\xe9\x62\xbe\xdb\x6a\x57\xf5\x13\xd2\x61\x3e\x92\x2b\x09\xaa\x9e\x6f\xb8\x44\x5b\xc0\x06\xc6\x42\xdc\x98\x9a\xa1\x73\xd3\xc8\xe9\x90\x93\x7a\xf3\x53\x4a\x24\x34\xd0\x29\xc4\x73\xa2\x61\x12\x3b\xce\xf9\xe0\x25\x05\x21\xef\xb2\xa1\x56\xb4\x96\x85\x11\xd3\xeb\x0a\x87\x04\xf7\x6b\x24\x1f\x40\x19\xe6\x55\xce\x4d\xbf\x73\x18\xff\x9e\x84\xe2\x1b\x57\x8d\x39\x37\x0f\xa8\x62\x99\x2c\x9f\x5d\x3c\xe2\x6c\x75\x29\xea\x15\x30\xc0\x70\xbc\xd0\xa4\x1c\xf8\xd5\x23\x0d\xe3\x96\x72\xb0\x20\xcb\xa1\xef\x1b\x96\xb9\xb7\x4c\x35\x52\xc7\x46\x7d\x06\x40\xa8\x11\xbe\x3d\x2c\x48\x88\x27\x59\x9b\xd2\x64\xe0\xcc\x5b\xe1\x54\x5b\x19\xcd\x4e\x8f\x3a\x07\x56\x88\xba\x9e\xd7\xf7\x46\xca\x44\x10\x3c\x0a\xee\xb0\x9f\x1f\xcb\x77\x6d\xf9\xbd\x1f\x8d\xdb\x33\xa8\x61\x23\x92\xea\xc1\x7e\xfa\x80\x52\x50\x89\xdb\x75\x76\x72\xa9\x91\xc5\xd3\x47\x1b\xa3\x17\xe5\xbc\x33\x88\xc1\x92\xd8\x58\x00\xd1\x34\x0b\xd4\x5e\x8c\xfa\xf2\xea\xce\x14\x83\x7d\x3c\x64\x7f\x00\xf5\x4d\x93\x75\x1b\x51\x2d\x6d\x78\xe9\xb6\xac\xd7\x91\x99\x00\x36\x58\x10\xdd\x7f\xe5\x63\x8e\xd5\x9d\xcf\x09\x9f\x6b\xef\x46\xb2\x1a\xf3\x7d\xcd\x0b\x84\x06\x14\xfd\x16\x89\x60\xb6\x2e\xc9\xfb\x19\xb9\xee\x43\xe9\x8d\x8d\x48\xb9\x71\x93\x66\x7c\x6d\xfa\x0b\x29\xc9\xb7\xa5\x36\xfe\x9a\x74\xe1\xee\x23\x74\x59\x51\x4c\x59\x8b\x7d\x9f\xdf\xb3\x24\x25\xd9\xfa\x81\x82\xeb\x32\xdf\xe9\x28\x39\x29\x4d\x9c\xd2\x19\xa5\x99\x9c\xa4\xa3\x2b\x30\x55\x24\x90\x29\x6c\x0a\x22\x60\xe8\x59\xee\x64\xfa\x52\x2d\x99\x7f\x9d\xd8\x57\xfe\x9a\xe4\xdb\xfd\x26\xc7\xa1\x1e\x80\xc1\x94\x40\x40\x58\xcd\x14\x20\x58\xe0\x61\x57\xb6\xd5\x8a\x93\x5c\xe1\xbb\x27\xd9\xf7\xb0\x22\x11\xf5\x93\x74\x17\x37\x56\x10\xe5\xff\x53\x0d\x72\x9a\x25\xbf\xb0\x5d\x48\x51\xd5\x3f\xca\x71\x8b\x38\xcb\x58\xa2\xea\x53\xde\xca\x3d\x4b\x6d\x71\xc5\xfc\xf7\x2f\x55\xdc\x35\x33\xf5\x64\xf7\xfa\x4a\xb6\x47\x75\x02\xf1\x0e\x26\x78\x36\x49\x1c\x85\xa6\x85\x65\x90\xfa\x96\x0e\xa2\xda\x81\x7d\x94\xef\x14\xdf\x3f\x9b\xd5\x9a\xb8\xbe\xca\xbc\xde\x7e\x4d\xe7\x69\xc1\xac\x0e\xb2\xeb\xc2\xef\x90\x50\x9e\x75\xc4\xca\x92\x9f\x69\xe9\x6e\xaf\x93\x10\x28\xa2\x3d\x11\xcc\xc2\x9b\xda\x33\x3e\xd6\x32\x96\x13\xeb\x50\x1a\x74\x07\x9e\x1d\x09\x80\x10\x53\x6d\x36\xad\x37\xda\x4e\x47\xab\xd3\xe9\x3d\x53\xfb\x72\x6a\x7b\x3b\x52\xbf\xa7\x0d\x31\xd3\x80\xdb\x27\x47\x2b\xca\x62\xa2\x12\xcd\xbc\x98\xec\xf4\x69\x45\x06\x63\x6b\xe8\x26\xa3\x7d\x1c\xd5\x7c\x3f\x2c\x89\x85\xb9\xed\xcd\xd4\x0a\x31\xb8\xee\x7d\x2b\x52\x9b\x94\xcf\x72\xcd\xb6\x25\x1b\x76\x34\x56\x25\x40\xe2\xfe\x02\x16\x92\x9f\x5f\x1f\xb7\xd4\x21\x55\x84\x52\xbb\x5b\xe1\x58\x5f\xa2\x39\xd3\x98\x28\xc9\x35\x03\xad\x49\x87\xa1\x47\xf7\x8e\x15\x84\x6e\x60\x5e\xcc\xca\x84\x88\x23\xf1\x5a\xf2\x49\x8b\xa6\x4a\x74\x71\xbc\x79\xa2\x64\xd6\xb0\xbe\xd4\x3e\xc0\xbe\xb2\xe9\x50\xbf\x9e\x36\xac\x8d\x3b\xa0\x63\xcd\x3a\x0d\xb0\xfc\xbd\x82\x9d\xee\x55\x75\x57\xaa\x0e\xe8\x54\x5f\x94\x2d\x92\x2d\xb1\x12\xd6\x35\x64\x56\x22\xb8\x36\x77\xac\xaa\x71\x7f\x5c\x2a\xf5\xc4\x6e\xa7\x93\xe2\x75\x56\x6d\x92\xb4\xb7\xe6\x50\x16\x27\x74\xa6\x73\x0d\x1a\x27\x98\x4e\xbe\x3d\xe4\xf7\x1d\x8c\x22\xc6\xaf\xd8\x46\x29\xd5\x99\x19\xd1\x89\xbf\xc6\xa8\x42\x83\x34\xed\x57\xc3\x84\x12\xa4\x3f\x97\x0f\xd0\x07\xc1\x6b\xd4\xcc\x42\x6a\x36\x1b\xdd\x70\xa6\xea\x39\xc4\xba\x2c\x6b\x7e\x2c\xd4\x4b\x71\xd0\x10\x7c\x1c\x7a\x2a\xcc\xd4\x3d\x61\x79\x88\xba\x61\xe9\x84\x78\xb5\xe0\x9a\x04\x3e\xc2\x2c\x86\x14\x18\x07\x68\x63\x94\x4f\x44\x10\xae\x08\x87\xac\x58\x79\x7d\x99\xcf\x2d\x5a\x15\xb3\xe4\x4a\x3e\xb4\xdd\xa4\xeb\x69\x0b\x30\xa6\xcd\xbb\xf6\x6f\x22\x50\xa9\x8e\xcc\xa5\xd8\x5a\x40\x53\xb7\xa9\xf6\x69\x03\xeb\x60\x88\x42\x4f\xb6\x81\x4c\x49\xd8\x28\x4a\x08\xda\x6c\x26\x6d\xf3\xba\xbb\x29\x61\x2f\xdd\xa5\x37\xec\xfa\x59\x68\xd7\x2c\xa2\x8a\x97\xed\x48\xcf\xa2\xb4\xa0\xeb\xf0\xac\xc1\xda\x05\x0b\x15\x77\x4d\x30\x77\xe8\x59\xc7\x00\xac\xfa\x96\x3a\x1b\x03\x93\xd9\x04\x05\x10\x13\x23\xaf\x84\x8d\xe6\xae\x0c\x11\x71\xf3\xcf\xce\x3c\xc0\xba\x9a\x84\xc5\x8e\x1e\x2f\x93\x74\x0a\xf3\x04\x9c\x4a\xcb\xfb\x78\xf6\x5c\xd5\x51\x00\xbb\x38\xee\x4a\xed\x85\x37\x06\xef\x95\x51\x83\x30\x4b\x78\xe5\x20\xe9\x73\xe8\x78\x4b\x1a\xe2\x6a\x13\xed\xce\x6b\x94\xa4\x52\x32\xd9\xa0\xc9\x27\xee\x9a\xf4\xf6\x4d\x5e\xaf\x4b\xb6\x6d\x51\x4b\x7c\x60\xe2\x5b\x45\x72\xc9\xa4\x01\xaf\x5b\x49\xb3\x45\xdc\xaa\xac\x68\x43\x36\xbb\x07\x6b\x56\xb5\x59\x68\xba\xe4\x6f\x0d\x49\x20\x30\xed\xfe\x89\x52\x2c\xee\xd6\x49\xe4\xcc\x19\x19\x16\xa0\x0f\x54\xfd\xbd\x3f\x31\x4e\x35\x87\xf4\x5a\x70\x07\x98\x2a\x5e\x5a\x9a\xd6\x23\x67\xa6\xc7\x5b\x5b\x52\x0a\x27\x76\xa3\x97\x96\x4e\x58\x2d\xde\x2d\x70\x38\xb0\xf4\x0c\x6b\x74\x70\x24\x3c\x7e\xd4\x3d\xe6\x05\xb3\xb2\x45\x00\xbf\xcf\x7b\x62\x8b\xb5\xe8\x24\xc2\xa1\xc2\xaa\x5a\xec\x9a\x00\x57\x11\xb0\x05\x5c\xb8\x82\x8a\xcf\x09\x29\x8f\xf0\xf9\xd1\xd4\x24\x35\xeb\xaf\x54\x16\xd3\xa9\x3c\xfc\x2f\x94\x54\x13\x48\xea\x02\x17\x54\x37\x85\xdf\xce\xbc\x3c\x5d\xec\xf4\xe9\x12\xb5\xf9\xc4\x06\x1f\x25\xef\xe7\xe9\xb9\x24\x4c\xcb\x1d\x2a\xcc\xa9\x2a\x92\x64\x0f\xbc\x67\xc1\x68\x65\x21\xdc\xa0\xe5\x7f\x60\x74\x6e\xc7\x72\x01\x61\x41\x5a\x01\xe1\x9a\x0f\x00\x92\x00\x3b\x4d\x03\x0d\x8d\xad\xa9\x50\xdd\xea\xc0\xbf\x41\x0a\x2e\xd7\x63\xb0\x43\xb9\x4c\xd9\xbe\x49\x84\x43\x8a\x90\x4e\x74\x97\x93\x0e\x75\x57\xe5\xce\x14\x43\xab\xc5\x9e\x76\x3d\x45\x5f\xb2\x97\x1d\xae\xcb\x69\xcc\x05\x3b\x20\xd4\xd7\xf0\x56\x93\xc9\xb0\x2f\xd8\x88\xe5\x27\xfc\x11\x19\x6e\xc2\x71\x79\x60\x5e\xc4\xd4\xad\x9a\x97\x62\x00\x5e\xa4\x0a\xc7\x23\xbb\x5f\xd8\xf6\x99\x09\xd6\xd0\x2d\x54\x8c\x41\x42\xab\xbe\x14\xa9\x96\x6a\x00\x0b\xe1\x3d\x40\xaf\x38\xf2\x80\x10\x3a\x2b\xd3\x4d\x73\x48\xb7\x55\x7d\xdb\x29\x7e\x9d\x01\xc4\x14\xe3\xf4\x1c\x19\x04\x2c\xa6\x19\x16\xab\xaa\x7a\x28\x7f\x49\x2c\x25\x96\x77\x24\xa7\x81\x09\xa5\x9c\x8a\x63\x66\xa0\x0e\x93\x33\x64\xa7\xa7\xc8\x9e\x85\xf5\x8a\xad\x56\x81\x0b\x97\xd9\xaf\x7a\x72\x6e\x4a\x16\xcf\xc1\x0e\x5f\x29\x17\x22\xfc\x34\x4d\xa7\xc6\x46\xcf\x7e\x38\x0f\x96\x09\x85\xd2\xd5\x72\x10\xba\x98\x32\x18\x73\x4c\x10\x14\xab\x8e\x24\x2c\xe9\x78\xb0\xb7\xb3\x6a\x27\xc1\x35\x1f\xb5\x54\x7c\xf4\x4e\x2b\x41\xf1\x22\xa9\x9b\xd1\x64\x42\x17\xc1\x3b\xc2\xa5\x4c\xdf\xf8\xa8\x15\x9e\x98\xb8\x20\x08\xc1\x61\x1f\x0d\x76\x4c\x59\xda\x80\x59\xbb\xbf\x40\x60\x46\x3e\xa1\xe7\x44\x78\xb3\x63\x2d\xcd\x36\x12\x0a\xcf\xd4\x6e\xef\xca\x19\xb3\x41\xf9\x3b\xf8\xb8\xc6\xe6\x85\x48\xcf\xd2\x16\x8e\x4a\xd3\xa3\x31\x4d\xf6\x8e\xd5\x3b\xd0\xdc\xc2\xe9\x18\xc1\x2f\x84\xfa\x73\x98\x82\xc5\x0d\x36\x74\x22\x4f\x72\x57\xf0\xa1\x49\x13\x84\x00\xa8\x2b\x9d\xd7\x52\x4e\x85\x1b\xb1\x05\x5c\x42\x82\x1c\x80\x46\x05\xc5\xda\x68\x69\x4e\xeb\x90\xb1\xed\x5b\x5a\x74\x3a\x78\x47\xa6\xa7\x09\x4b\x8b\xd8\x17\xb8\x57\x03\x0f\xac\xe7\x5a\xa4\x7f\x6a\x5b\xcc\xff\x91\xb2\x1c\x6f\xae\x2c\xd9\x9c\x65\x9d\x2a\xb3\x76\xa5\xc2\xb2\x13\x1a\x03\xf6\x40\xe9\x4c\x17\x05\x30\x11\x0f\x11\x60\x21\x88\x99\x3e\x2d\x3b\x8b\x0c\xbb\x30\xd1\xfe\x87\x19\x73\xa3\x0e\x9d\x31\xd7\x0f\x75\x44\x36\x3c\xc6\xd1\x89\x33\x21\x20\x2a\xc0\xf9\xab\x4b\x1f\x9c\xaa\xba\xf8\xee\x70\xe5\x6e\x44\xa6\x67\x34\x51\x16\x8e\x60\x25\x02\x70\x58\x16\xf0\x10\x65\x81\x48\x1d\x11\xf0\xbb\x89\xdd\x31\xe6\xaf\xa7\xd0\x60\x08\x2b\x02\xcb\xf2\x00\x1f\x68\x22\xfd\xa9\x46\xb4\x63\x44\x88\x9f\xd5\x05\x9e\xdc\x8b\x8b\xd1\x8b\x44\x27\xaa\x36\x6c\xaa\xf5\x86\xe6\x55\xed\xd8\xc7\x08\xae\x6d\x8e\x2c\xaf\xd5\xf1\x17\x6d\xbc\x66\x4d\x07\xbe\x48\x94\xa2\x8c\x3b\x6e\xfb\xac\xeb\xdb\xa6\x5e\xbf\x38\x6f\x58\xdd\x62\x3b\x0a\x1f\x15\xbf\x3c\x7b\xaa\xf9\xc4\x32\x78\x0d\x39\xc0\xf1\x55\xd5\xbf\x1e\x96\x8f\xbb\x74\x4d\xb2\x01\x0e\x90\x67\x79\xba\x69\xcb\x9b\xe7\xdf\x3e\xea\xbe\x7d\xa1\x8e\x65\x09\x03\x3a\xd4\x0e\x2d\xcf\x9e\xe6\x2f\x58\x7a\xee\x9a\x2d\x09\xb5\x71\x95\x66\xb7\x93\xf5\x25\xf6\xb7\x13\x48\x8c\x1f\xbe\xe8\xb2\x06\xe6\xca\x56\xf1\x43\x0d\x2e\x1c\xad\xfb\xf5\xd1\x65\x4b\xd8\xbe\xa0\x07\x29\x7d\xca\x71\xcf\x79\x66\x54\x90\xd3\x8b\x52\xb6\xbe\x01\x11\x31\x63\xd3\x76\x02\x13\x06\x13\xcc\x37\xb6\xe7\xa4\xc3\x60\xc7\x41\x64\x38\x65\x18\x16\x61\xa1\xe8\xaa\x65\xe3\xad\xaa\xb5\x28\xa0\xb3\x21\x10\x61\xdf\x35\x6a\xf7\x4f\x2d\xd3\x13\xa4\x89\x74\x4a\x8e\xa7\x9e\x9a\xc6\x42\x9e\x3a\xc0\x8e\x52\x64\x40\x88\xda\xaa\x8b\x6c\x10\x05\xbc\x84\x28\xb5\xac\xea\x42\x08\x4f\xe9\x46\x43\x05\x1c\xc1\xd0\x71\x54\x33\x10\x6c\x6c\x9c\xd0\xef\x00\x73\x57\x51\xfb\xc1\x91\x44\xfb\x7d\xa8\x83\xfd\x26\x04\x9d\xf5\x8d\xd8\x9a\x74\x92\xef\x49\x62\x47\x98\xd0\xa9\x34\x78\xcd\xc5\x9d\x86\xaa\xa9\x1f\xd1\xaa\xbc\xd2\x4c\xac\x16\x00\x13\x14\x75\x0e\x11\xf8\xf2\xca\x9b\xb5\xa2\x2e\x5e\x0d\x00\xc2\xc2\x10\xf1\xda\x0e\xdb\x88\xcb\x37\x3d\x7d\xff\x66\x91\xb8\xfe\xac\xcd\xdf\x72\x92\x3a\x64\x04\x07\xa7\x37\x32\x43\x19\xef\x50\xe7\x60\x90\xea\x66\xa6\x42\x4d\xd0\xa2\x9b\xd3\x64\x3e\x32\x97\xb8\x5c\x50\x5c\x76\x81\x2e\x2d\xbd\x61\x24\x63\xde\xe6\x66\xfa\x0d\x21\xd6\x59\x74\x98\xa7\xee\xef\x99\x5b\x04\xc1\x1d\xb9\x20\xe8\x80\xfd\x3e\x8a\x2a\x21\x48\xe8\x93\x29\x4b\x88\xad\x23\x7d\x1b\xb0\x12\x7f\x98\x1b\x50\x02\xc8\x70\x6f\xeb\x19\x8d\xd7\x1f\x15\xe1\xa0\x45\xcd\x8d\xa5\x96\x6f\x52\x61\x44\xe2\xb2\xe4\x71\x89\x6c\xa3\x38\x0e\x95\x1b\x6a\xf3\x50\x6e\x39\xf8\x4c\x07\xe4\xfd\x76\xaa\xca\x44\x5e\x3b\x05\x72\xfe\x3a\x0e\xf6\x73\x67\xb1\xac\x6d\x68\x5f\xb0\xc6\x08\x82\x08\x18\x8e\x3a\xd1\x41\x8c\x61\x9e\x9d\xbe\x7b\x77\x79\xed\xf9\x24\x53\x56\x5d\x10\x37\xff\xc6\x85\xac\x4c\xc6\x65\x81\x2b\x18\x1f\x62\x98\x22\x08\x1f\x3a\xa3\x35\x8e\xc1\x85\x1b\xdf\x5a\xa7\xe4\xba\xc1\x6e\x6e\x78\x2c\x52\xa3\x88\xc7\x5f\x1c\x13\xf1\x93\x4f\x7c\xc0\x7c\x4e\xcc\x4a\x77\xc9\xff\x93\xd0\xd0\x19\x98\xa6\x41\xcd\xde\x82\xed\x23\x34\x69\x00\x4d\x31\x31\x7c\xd2\xc0\x86\x6e\xc8\x21\xc3\x11\xee\x1b\xf0\xc5\x9b\x14\x0e\xa9\x13\xb6\xe3\x34\x2d\x68\x90\x91\x3b\xd4\xd5\xdf\x07\x9c\x90\x2c\xc1\xd1\x89\xcf\x91\x50\xcb\x6a\x2b\xcc\xf3\xcf\xee\x43\xf2\x39\x35\x0a\x5f\x0c\x3a\xa7\xaf\x67\xdd\x9e\x83\xbb\x88\x37\x77\xcf\xbf\x25\x91\x9b\x34\x16\xfc\x7d\xc2\xf6\x01\x4d\xe5\x45\x35\xd0\x51\x44\x02\x18\x7b\x7a\x69\x3d\xa9\xca\x0b\xd6\xf5\x6f\xcd\x84\x34\x8e\x34\x47\x99\x05\x23\x72\x19\x22\x12\x91\x3b\x33\x2c\x15\x57\xc5\x06\xd0\x8b\xf1\x28\x0d\xa6\xc5\xec\x9a\xc9\xfd\xb6\x0c\x51\xa7\x2e\x02\x5d\xe8\x73\xfa\xd7\x56\x88\xa8\x94\x7c\x0e\xfb\x4f\x83\x90\x7f\x97\xe9\xfb\xbd\x22\x02\x58\xb1\x8e\xb2\x58\x57\x3d\x89\xc9\x7c\x3d\x02\xca\x2b\xed\x20\xe2\x92\xb8\x31\x20\x29\xcb\x99\xa9\x6b\xb0\xa8\x58\xd5\x55\x9f\xb1\x55\x7f\x27\x51\xe0\xd4\x6c\xbe\x15\xb1\x22\xc6\xbc\x38\x5d\xd3\x0f\xbf\x9d\x9e\x5f\xfc\xb6\xd8\x15\x16\x14\xa2\xf8\xd4\x68\x90\x00\xa3\x45\x79\x93\x0f\x5b\xb3\x5e\x61\xc2\xc8\x48\x7f\x45\x86\x5e\x20\x20\x45\x83\xf0\x77\x27\x67\xa4\x5c\x29\x78\x63\x39\xdf\xb1\x18\xf9\xfd\x11\x9b\xce\xd8\xad\xf2\xf5\xa6\x9d\x71\x0b\x0f\x5b\x78\xd8\x4d\x9e\xb1\xbd\x2e\xd5\x50\x8a\xc8\xd7\x98\xe8\x05\x07\x0b\x64\x77\x37\x1c\x24\x92\x3d\x2c\x3d\x4e\xdc\xa6\x6e\xe4\xc7\x69\x7c\xb9\x1d\xca\x11\x91\x0b\x1e\x8d\xc6\xad\x27\x5d\x96\x0b\xbd\x77\x11\xac\x8b\x42\x2c\x10\x01\x9c\x99\x64\xcd\xbe\x67\x96\x5a\x55\x9b\x72\x50\x66\x5b\x47\x48\xa7\x85\x95\xbd\x91\x4c\x89\xf3\x44\x50\x19\xc4\xd7\xd8\x0c\x69\x2e\xef\x3c\x8c\xd9\x4e\x64\x53\xd8\x4e\xd3\x2d\x72\xe3\xf6\x1a\xa2\x7f\x39\xb4\x33\xde\x64\xb8\x22\x12\x60\x2a\x0c\xc8\x60\xf6\x56\x30\x7f\xde\xdf\x67\x6c\x0c\x01\x4b\xde\xdf\x27\x08\x5b\xa0\x03\x2d\xc3\x79\x29\x99\x60\x90\xdb\x6a\x2f\x17\x8c\xa8\xa0\x2a\x25\xf6\x10\x89\xcb\x7f\x49\x04\x29\x6e\x85\xb0\xd0\xb8\x75\xc4\x05\xc4\x88\x7f\x01\xbf\xea\x59\xe2\x15\xe3\xec\xf3\x6f\xb3\x25\xed\xd1\xdb\x6f\x03\x09\x98\xef\x27\xb1\xd8\xfb\x0d\x49\x56\x07\x75\x40\x7e\x94\x54\x62\xdf\x7f\xc1\xd7\xc0\xb1\x6c\xe2\xed\xe4\x44\xa2\x5f\x6c\xe3\x4c\xf4\x5a\x0c\x33\xa3\x84\x05\x4e\x65\x1b\x24\x6c\x86\x9c\xe3\xef\x03\xcf\x52\x84\xf7\xe7\xe9\xbf\xf2\x57\xfa\x8a\xbf\x74\x2a\xbc\x8d\xdd\x1e\xc5\x0a\x8f\x36\x76\x18\xdc\x05\x8e\xa3\x11\x92\x7e\x4f\x4b\x44\x48\x80\x7d\x0d\x05\x31\x40\x0e\x23\x4e\xf6\x03\x7b\xc8\x79\xdd\xad\xb7\xf7\x94\x83\x98\x6c\xce\xe4\x33\x2c\x68\xc1\x19\xc0\xa3\x36\x12\xc7\x2a\x94\x45\xf4\x6d\x09\x79\x8b\xfe\x69\x59\x46\xc0\x59\x9f\xc3\xe4\x29\x40\x44\x72\xff\x39\xbd\xa6\x1c\x85\x28\xc3\xa2\x44\x41\x51\x3e\xbe\x88\x83\x6d\xd4\x81\xe3\x72\x82\x48\x7e\x5b\x76\x3d\xa1\x08\xea\xa3\xfb\x48\x78\x8c\x55\x2f\xd1\x77\x48\x25\x1a\x1b\x2a\x66\x6d\x49\x26\x30\x1a\xb6\x39\x47\x5a\x7d\xc8\x0f\xf2\x49\x98\xd6\x9b\x3b\xaf\x25\x25\xd9\x88\x1d\x16\x50\x44\x18\x33\xbc\xf5\xb2\x98\xf6\x66\x25\xa3\xdb\x41\xe9\x6a\x54\x7e\x23\x42\xfd\x4b\x16\xe9\x2d\x2f\x07\x93\x4a\x2d\x32\xc2\xe5\xef\x68\x8f\x8b\x11\xec\x42\x52\xae\xa4\x90\x48\x9c\x73\xbe\x88\x66\x79\x16\xeb\x78\xc9\xff\x5d\x2e\x51\x85\x6e\x12\xfa\x9f\x28\x7a\x39\x57\x75\x2f\xb9\x8e\xa4\xd9\x24\x95\xb1\x4f\x7a\x49\x65\x8f\x68\xa7\xd1\x97\x95\x10\x9d\xd2\x31\xe5\x8a\xce\xf8\xb3\xb0\x42\xc2\x17\xc7\xd8\x09\x0b\xd4\x95\x1a\x95\xb9\x65\x0b\x57\x6d\x04\x43\x7c\x94\xa3\xb3\x21\x86\x69\x72\x04\xa1\x7c\x1b\xdc\x7a\x5a\xb2\xe0\x80\x53\x47\x3f\xa7\xf0\xfa\x80\x86\xe6\x40\xa5\x03\x8e\xd0\xe1\xd0\x33\xdf\x65\xa1\x6a\xc5\x5c\x25\xd9\x84\x45\xb6\xbc\xd7\x3a\xb2\xf7\x0a\xf6\x29\x1d\xa9\xb2\x63\xc7\x11\x98\x92\x56\xb9\x70\x19\x61\x15\x46\x3c\x1a\x26\x08\x49\x73\x34\x07\x7d\x3a\xa5\xfd\xe9\xa3\x4f\x3f\x7e\x26\xb6\x85\x7f\xcc\xb7\xac\xea\xbe\x2d\xef\xaa\x66\xc0\x95\x36\x4b\xe2\xd2\xa2\x5b\x6a\x44\xb7\xbe\xe3\x7f\xc8\x9f\xbd\x34\x67\x79\x0b\xb9\x4e\x02\x67\x85\xa4\x7c\x51\x10\xec\x0a\x0d\xfc\x2c\xfc\xf6\x60\x9b\xa6\xb9\x95\x80\xdf\x25\x92\xbe\x84\xc4\x21\x2b\xe4\xfb\x44\xaf\xe3\xd2\xa2\xdc\x6f\x9b\x7b\xb3\x0c\x9d\xe3\x4b\x5d\x2e\x06\xb2\xcc\xbb\x6a\x15\x5e\x08\xfc\x95\x33\x66\x66\x51\xb0\xc5\xb2\xcd\xfe\x21\x04\x77\x8e\xaf\xf4\x7f\x32\xc9\x39\x10\x75\x46\x5c\x5a\x0c\xf8\x15\xbb\x24\x5c\xa9\x1a\x83\x83\xae\xd4\x76\x3d\xed\x4b\xed\xaa\xcc\x38\xe7\x25\x76\xe7\x54\x38\x56\xc5\x4e\x8d\xb1\xac\xc3\xca\xa6\x33\xbe\x4e\xfc\x0b\x73\x7e\x85\x38\xfc\xe1\x01\xcf\x82\x1b\x8a\xf3\xac\x32\x07\xd7\xe4\xa5\x39\x67\xa7\x60\x4e\x01\xf2\x0e\xd9\x58\x3c\x62\xf5\xbe\x16\x7b\x2b\x9c\xb2\xec\xbc\xe5\xac\xd8\x13\x4c\x8a\xae\x5c\xa0\xf2\xc1\x93\x08\xfa\x82\xb6\xcc\xb1\xa3\xd6\x2f\xee\x96\x22\x2c\x83\x3d\xdc\x9d\x88\x97\xea\x5e\x16\x57\x83\x28\x4e\xb9\x8b\x3d\x66\x6b\xcc\x58\x22\xe6\x7a\xa9\xb8\x69\x2c\x80\x58\x7c\x15\x36\x54\x94\x85\xa4\x18\x7b\xe6\x80\xfb\x40\x3a\x1b\x01\x1a\x52\x2e\xeb\x95\xd8\xfd\xb4\x7e\x1e\x79\xb6\x25\x88\x02\x22\xab\xea\x8b\xcb\x7c\x75\xeb\x46\x44\x22\xe5\xaa\x6c\x7b\xf8\x94\xa7\x68\x67\x9b\xf6\x0a\x7c\xed\xd9\xfe\xc5\x13\x48\x5d\x72\xdf\x0c\xb3\x10\x8d\xbf\xba\x09\x10\x02\xab\x14\x5b\x99\xee\xaa\x82\x54\x40\x2c\xc6\xe2\xd9\xd3\xfd\x8b\xb8\x3e\x51\x04\x24\xf1\xa3\x6d\x8c\x16\x8e\xc5\x80\x0a\xc1\xab\x1c\xb4\x81\xe8\x81\x1b\x1f\x14\xd3\xa1\x87\xa3\xbb\x28\x30\x59\x04\xa4\x6e\x1c\xe7\x0b\x3e\x95\x29\x4e\x4c\x65\xc6\xad\x63\xa8\xcd\x0e\x86\xcd\xb0\x59\x40\xda\x30\xcd\x18\xcd\xce\x34\x25\x26\x9f\x91\xbe\xe1\x63\x14\xdc\xd0\xac\x42\x7b\x7c\x78\xb1\x09\x62\xce\xf4\xe0\x40\xd9\x96\xe9\x99\xaa\x48\x00\x45\x81\xf9\x9c\x05\xd9\xc7\x2b\x8c\xec\xa8\x51\x5b\xb1\x31\x35\x18\xa0\x18\x7f\x8e\xb5\x73\x36\xdb\x86\x1a\x8c\x82\x56\x10\x8a\x54\x21\xe8\x24\xd3\x80\x78\x71\xa3\xa6\xe3\xa8\x0f\x2d\x3d\x6c\x9a\x20\x72\x13\x83\x4a\xb1\x59\xc3\x81\x2c\xe2\xb9\x1e\xe4\x08\x51\xbc\xe8\x81\x32\x3a\x69\x6c\xf3\xd9\x71\x83\x38\xc1\xdd\x40\xbc\x65\x5b\xd1\xa2\xe3\xc8\xd0\x6b\x9d\x97\x57\xd7\xb8\x30\x47\xbc\x90\x18\xcd\x9a\xe9\x35\xfd\xcb\x86\x4e\x5b\x8e\xc5\xe1\xdb\x95\xec\x22\x59\xa7\xcd\x6a\xc5\x8e\x91\xaa\xd6\x0b\x29\x87\xd2\x0c\x90\x75\xb1\x15\x27\x49\xe8\x62\x32\xbe\x2b\xaa\x46\x8a\x1b\x94\xcc\x04\xba\x7d\xb9\xaa\x6e\x88\x09\xbf\x25\x49\x90\xaf\xe5\xc9\xc5\x4d\x30\xcc\x07\x35\x13\x37\x13\xa8\x08\x7c\xd6\x2f\xa6\x67\xa8\xbb\xdf\x6d\x07\x29\xe6\xbd\xe7\x40\x0c\x11\x48\xb8\x80\x04\x40\xd2\xd2\x24\xa8\x86\x6d\xb0\x65\x41\x99\x72\x19\x90\xed\x40\x72\x47\x8a\x95\x27\x34\xa0\xee\x21\x98\xb2\x11\x3a\xce\x33\x23\x15\x8b\x55\x74\x73\xa4\x86\x3e\xb4\xf1\x98\x32\x6e\xde\xc6\xf5\x46\xd8\x02\x96\x0f\xc1\x37\x12\xe7\x7f\xc2\xbc\x78\xbf\x2d\x5d\xc0\xa1\xa9\xd3\x7b\x89\xed\xe7\x93\x8e\xf0\x85\x38\x35\x03\x91\xf3\x03\xb1\xbe\x1c\xb0\x35\xe8\x72\x98\x7b\x1a\x08\xe5\x7e\x66\x46\xa4\x07\x32\x23\x48\x8c\x67\x13\x08\xef\xa3\x00\x90\x39\x2a\xc6\x2c\x4c\xc1\xbd\x1c\xf0\x3a\xa2\x44\xdd\x53\x68\x31\xbc\xf2\x24\xe4\xfb\xc0\x36\x0a\xa8\x3c\xba\xb1\x8f\x19\x6a\xa8\xff\x33\x8e\x53\x7f\xc1\xd4\xfb\xec\x29\x92\x76\xbd\xc1\x28\x8f\x2f\x08\x07\x14\xc7\x97\x3f\x1b\xc2\x1f\x8e\xbe\xb6\x5c\x93\x16\x6d\x61\x7f\x4a\xfd\x6c\x93\x07\x95\x87\x5e\xdd\x7c\xdb\x35\xd6\x04\xed\x56\x02\xb9\x65\x5d\x85\x08\x85\xaf\xb7\xeb\x25\x5c\x70\xfe\x42\xb6\x16\x3b\xcc\x88\xe0\x87\x3d\xef\x01\xd9\x50\xd6\x0f\xa6\xfd\xdd\x9f\xae\x2e\xdf\x9d\xa4\xbf\x3f\x39\x1c\x0e\x4f\xb8\xfa\x93\xa1\xdd\xb2\x6b\xa9\xe0\xb0\xc2\xff\x71\xf1\xf6\x24\x2d\xfb\xd5\xf7\x8b\xf4\x42\xb6\x86\xf4\x80\xc0\x7c\xf1\x17\xdc\xb0\x1f\x83\xc9\x92\xcd\xc2\xff\xfc\x96\xd9\x4b\x6c\xba\x5e\xc6\x0e\x23\xd5\x43\xa6\xcd\xcb\x6e\x0a\x86\x52\x81\x28\x1a\x5e\x62\x2c\x49\x01\xc0\x85\x13\x24\x7c\x01\xb0\x6a\xcb\xf7\x91\xd1\x21\xc2\x0d\xf2\x3b\xb6\xb7\x0e\xdb\x42\xe8\xd4\x38\x1a\xcd\x4e\x51\x56\x16\xbf\x8c\x5b\x82\x9a\x8e\xbb\xa7\xcf\xd3\x3f\x71\xd0\x25\xa3\x54\xa8\x80\x8b\x8c\x0a\x00\x1c\xd2\x12\x76\x58\xaa\x97\x67\xca\x71\x81\x37\x98\x9c\x97\x3d\x9c\xef\x73\xb4\x21\x23\x77\x63\xf3\xab\x69\x1b\x95\xce\x35\x6a\xac\x15\xee\x2d\x6e\x80\x88\x9a\x47\x7b\x80\xcf\xa5\xc3\x78\x1f\x8c\x8f\x24\xdd\x64\x9e\xdd\xeb\x26\x9b\x70\x7c\x05\xfc\xd2\x3e\x53\x09\x62\x22\xd1\x05\x3d\xa8\x64\x37\xe9\x41\x7c\x84\x99\xce\xd2\xa2\xe2\xe0\x37\x3c\x77\x79\xf1\x11\x64\x54\x03\x06\x12\x93\x0c\x23\xa4\xdb\x92\x98\x97\x85\x3b\x9c\x0f\xb3\xc8\x1b\x7b\xc5\x20\xf0\xc1\xb2\xa1\xd5\x8c\x92\x13\x0f\x74\x28\x66\x48\xab\xe6\x1f\x12\x3f\xd6\xa8\x70\xfc\x28\xc2\xa8\x98\x35\x0b\x79\x75\xe5\x4c\x52\x49\x52\x54\x37\x37\x8b\x65\xdb\x1c\x3a\x76\x8a\xe2\xea\x38\x9b\x69\xf8\x3b\xbd\xc2\xb7\x80\xec\xf3\x56\x78\xa6\x24\x24\x53\x2c\x0e\x94\x29\x09\xc9\x64\xd6\x31\xb9\xba\x7b\x4e\x25\xb8\x2d\xcb\x37\xe9\x39\x1a\x48\x4a\x16\x52\x85\xb6\xcb\x21\xe3\x54\xd6\xf5\x39\x6c\x2c\x57\xac\xea\xa0\xd2\x15\xe7\x28\x18\x27\x0d\xa3\xe6\x1a\x62\xdb\x84\xc5\x67\xe1\x9c\xf3\x5e\x22\x70\x43\x83\x23\x30\x5a\x9a\x0a\x07\x99\x07\x09\x9d\x4c\x04\x51\xa8\xc0\xe6\x21\x14\x41\x40\xea\xaf\x6f\xde\xc9\x27\x0c\x45\x1a\xad\x06\x4b\xd1\x4b\x36\xd9\x9b\xf9\x69\x31\x67\x86\xb2\x32\x31\xe7\x89\xfc\x6f\x2f\xf2\xe0\xcb\x41\x14\x6d\x7e\x03\xbf\x1a\xff\x77\xb9\x74\x58\xfa\x6a\xa4\xf5\x3f\x19\x57\x23\xe4\x08\xaa\xaf\x90\x70\xf9\x10\x00\x9e\x43\x0e\x70\x79\xf9\x86\x34\xa7\x00\x87\x8f\x0a\x8f\x11\xb3\x73\x11\x29\x3e\x22\x46\x56\xb1\x82\xa3\x1a\xdf\xa8\x43\x50\x87\xbf\x71\x05\xda\xc1\xeb\x36\x06\xd1\xe7\x6b\xe7\x9a\xcd\xd7\x72\xed\xc7\x97\x41\x74\xb2\x88\xd9\xa8\x8e\xbf\x76\x65\x2a\x9b\x37\x56\x52\x39\xde\x8f\x58\x85\x36\x50\xca\x64\xe3\x27\x82\x1e\xbb\xcd\x62\xbc\x10\xce\xd5\xa7\x38\x4b\xf1\xed\xa0\xec\x24\x60\x72\xc9\x76\x45\x70\x18\x08\x01\x85\xdb\xf6\x22\x6f\x6f\xf9\x42\x39\xcc\x31\xd6\xc0\xa1\xd5\x28\x47\xfe\x1f\xae\x98\x3e\x64\xf0\x5e\x52\x93\x0e\xf7\xb4\x29\x4b\x77\x61\x19\xb5\x21\x93\x9a\x18\xe4\x2a\xf0\xe9\x25\x11\xb5\x6f\x25\x25\x2f\x10\x8d\x29\x63\x1a\xa3\x40\x65\x4f\xc6\xeb\x16\xc0\x3b\x44\xff\xa5\xfc\x3f\xff\xeb\x7f\x13\xb3\xdf\x93\x92\xda\x23\xfe\x44\xaf\x3e\xf8\x75\x37\xcf\x8b\x7f\x76\xe2\x09\xf4\xef\x60\x20\x82\xfe\x54\x43\x56\x29\x35\xa1\x51\xbe\x93\x6e\xf4\x7d\xc5\x36\x80\x98\xc8\x21\x4d\x7a\x32\xff\x8d\x49\x77\xdc\x86\x11\x55\xa6\xfa\xbf\x0b\xbd\xb6\xc5\xc5\xa2\x49\x40\xa3\x12\x9d\x98\x08\xd4\x5c\x00\x70\x89\x0d\x26\x9d\xe5\xb3\xbf\xde\xe3\x16\x22\xba\xda\x03\x11\xd2\xc3\x18\xc2\x5e\x31\xf9\x4d\x1f\xe0\x11\x91\x5c\xae\xff\x31\x6b\x71\x0e\x57\x09\x98\x97\x70\x2a\xd7\x48\xd8\xd1\xe3\xce\x62\xaa\xf4\x66\x28\xa2\x96\x66\x02\xdb\xc2\x60\x2d\x92\xc8\xd5\x4b\x20\x17\x01\xd4\x31\x10\xbd\xc7\x05\xdf\x81\xe9\xd7\x76\xcc\x16\xc9\xbe\x6c\xf6\x12\x5e\x8c\x04\xdf\xd5\xe0\x57\x8e\x98\xfc\xc4\x82\xf6\x06\x19\xb4\xaf\x91\x81\x5b\x4c\xb0\xd8\xf3\xff\x04\xd1\xdf\xaa\x04\x72\xae\xa6\x34\x7f\x14\x61\xde\x46\xd7\xe7\xbd\x57\x03\x37\x4f\xa2\xfb\xea\xdc\x38\x10\x35\xe3\x8a\x9d\xdc\x47\xc2\xca\x20\xf7\x21\xe8\xc8\x37\xfc\x78\x0b\xab\x88\x86\x2f\x72\x5b\xc4\xe5\xd4\x5e\xab\x24\x83\xdb\x30\x7c\x4f\xb4\xe6\x97\x1f\x0c\xcb\xae\x9b\x60\xcb\xe0\x4a\x49\x17\x54\xe3\xf5\x22\xad\x76\xe8\x7f\x11\x78\x8e\x06\xa8\x3a\x7e\x3d\xc2\x29\xac\xb8\xf2\xe3\xb2\xd3\x2d\x09\x60\xdb\x48\x58\x44\x43\x6c\x1d\xfb\xe5\x88\x7b\x75\x7a\xef\xec\xeb\x1d\xac\xd3\x36\x1e\x76\xb1\xfe\xb3\xd6\xe3\xf9\xa8\x70\x57\x3c\x0d\x0f\x77\x45\x73\x71\xe2\xff\x0e\x43\x2d\x91\x94\x0e\x63\xb2\xb7\x8f\x5a\x6a\xb5\x8e\x33\xf4\x1d\xbf\xef\xf7\xf5\xf6\xda\xe8\x9e\xd4\x1f\xb0\xd8\xc6\x33\x0e\xc4\xe0\x68\x54\x0e\x21\x6c\x10\x88\xa3\x7f\x8e\x49\xc7\x5e\x2a\x8e\x78\xc6\x58\x86\x9e\x04\xfb\x60\xa6\x0f\x56\x89\x43\x7f\xc2\x61\x3a\xf5\xdf\x07\xcb\x98\x96\x2c\x41\x3f\x62\x2e\xf9\x72\xe4\xcf\x11\xfb\xdb\x43\x21\x40\xe3\x51\x32\xaf\x71\x8f\x68\x85\x83\x7c\xb0\x46\x78\xcc\xc6\x36\xee\x7f\x4f\x58\xd0\xbc\x8d\x8b\x15\x87\x83\xa9\xba\x38\x94\x0d\x7f\x5e\x61\xe3\x08\x68\xc3\x97\x3c\x02\xe5\x19\xae\xc7\xdc\x80\xb7\xb1\xfa\xf1\xa0\x39\x68\x50\xb8\xf7\x42\x2f\x8d\xd8\x95\x93\x51\xbe\x67\x7d\x88\x78\xdd\x4b\x0c\x8f\x07\x92\x6f\x88\x3b\xb3\x25\xe3\xfa\x71\x1f\x71\x30\x94\xe5\x3a\x33\xe3\x05\x12\x2e\x9f\xb0\xb6\x2a\x11\x9b\x72\x26\x29\x57\xa2\xd7\xb9\xf4\xee\xa3\x1f\x84\xdc\x6b\x7b\x0e\x4b\x93\xcf\xd5\x53\x4f\x71\xcd\xee\x7d\x5a\x94\xfb\x3d\x2f\x61\xee\x2e\x7a\xf0\x32\x09\xa0\x8a\x9b\x3a\x2a\x48\xc8\x3f\x8f\xdb\x92\x47\x3d\xf4\xf4\x7c\xd7\x1c\x12\x39\x3a\x17\x7c\x15\x2b\x95\x7b\x58\x9a\x13\x0f\x49\xf2\x58\x46\xd1\xe8\x4d\xcc\x81\xc4\x74\x09\xd6\x9c\x96\x8f\xe2\x55\x70\x72\xb8\x48\x15\xbb\x56\xc9\x02\x28\xa4\x06\x84\x18\xb0\x5c\x1f\x12\xc7\x42\x5b\x85\x00\xeb\xbb\x15\x49\x34\xea\x37\x84\xf8\x23\x1d\xf3\x38\x27\xdd\x9d\x98\xfd\x00\x51\xf6\x1c\x86\x20\xfc\x70\x67\xe3\x90\x77\x87\xdc\x38\xdc\xa3\x56\x7e\x1c\x21\xc4\x1f\x19\x07\xf7\xf2\x94\xdf\x01\xc5\x22\x3e\x34\x1e\x52\x0e\xf5\xd2\x40\x68\x9d\xee\xc6\x43\xf4\x01\x1f\xd7\xc1\x79\x0d\x0f\x4f\x31\x92\x3f\xd8\x7c\x34\x3d\x38\xa5\x44\x1c\x0d\x33\x22\x82\x38\xe2\x66\x23\x5f\xbf\xbc\xc5\x79\xa5\x51\xd3\x81\x06\x2e\x36\x0f\x36\x77\x0a\xe9\xb8\xbc\x48\x07\x19\xeb\x42\xe5\x3a\x29\xfc\xf2\xc1\x2b\x70\x16\xb3\x2a\xf2\x5d\x78\x64\x40\xc0\xb3\x95\x2c\xe4\x8e\xb9\xdb\xe3\xcc\xea\x82\x5e\xa7\x8d\x39\x56\x0d\x28\xc7\xa2\xa7\x70\xc6\x3b\x43\xe9\x2c\x30\x66\x31\x53\x3e\x31\x99\x55\xbc\x59\x06\xb5\xcb\xef\x23\x07\x1b\xc7\xea\xb2\x46\x16\xed\x9a\xe3\x27\xf6\x74\x28\xfe\xac\x96\x8b\xdb\x8e\x60\xe4\xc5\x21\x3d\x21\x62\xc7\x52\xb0\xd5\xa7\x04\xe2\xc9\x6e\xdd\xe6\x6c\x6b\xb4\xb5\x66\x66\x11\x90\x02\x1a\xfc\xd9\xcd\xd2\xbd\x7a\xe7\xb9\x01\x3c\x18\xd4\xd0\xe3\x87\x98\xc2\x57\x0c\x00\x6c\xe3\xe1\x11\x80\x2d\xc8\xf5\x73\x1a\x46\xc0\x02\x1e\x1a\x88\x3e\x57\xf7\xc7\x07\x02\xbe\xf1\x07\x07\x72\x62\xa3\xd0\x4b\x8f\x45\x31\xbb\xff\x1f\x1a\xdf\x48\xdd\x01\x71\x46\xb7\x6a\x47\x04\x1f\x3d\x1d\xec\x88\x3e\xf0\x35\x5b\xb3\x70\x30\xa8\xef\x5b\x8f\x33\xdf\x54\x4d\x4b\x08\x55\xb6\xee\x43\xff\x78\x1c\x8c\xc7\x1e\xdb\xbe\xbd\x57\x91\x84\x27\x17\xc7\x02\xfa\xcb\x43\xa2\x84\xc1\x57\x24\x37\xad\x3f\x01\xed\x9f\x8f\xbc\x01\x2e\x4f\x29\x8a\xfb\xaf\x8b\xde\xa3\x9e\x5e\x7a\x7d\xf0\xc2\x71\x7c\xd1\x7a\x7c\xe3\xbe\x93\xf0\xee\xb5\xc9\x72\xf6\x5a\x5d\xe2\x9d\xe3\x57\xf7\x84\x83\x1d\x1e\xe8\x5c\xf1\x5d\xb3\xa6\xae\xc4\xaf\x7a\x21\x29\xbe\x6e\xc8\xa6\x18\xb5\xc3\xf0\xad\x03\x17\x1d\x93\xf8\xd9\xc1\xb8\xc8\x36\x26\x15\x04\x24\x1d\x94\x07\x17\x60\x59\xd5\xb1\x8f\xb0\x05\x8c\x04\x26\xcc\x21\x18\x99\x8e\x03\x8d\x0e\xdd\x5c\x8f\x19\x3b\x42\x52\x75\x03\xb9\x87\x85\x99\x49\xf0\x2d\xaf\x82\x6f\x79\xc9\xdb\x95\x27\x41\x46\x84\xf3\xb0\x60\xef\x9e\xfa\x88\xb2\xe3\x83\xcf\xe7\x23\xf0\x31\xce\xe2\x68\xc7\x28\x23\x5f\x4d\x7a\x91\x4d\x15\xd7\x93\xf0\xa3\x30\x87\x8d\x89\xec\x10\x89\x5a\x8f\x2f\xc9\x84\x45\x72\x77\x3c\xca\xd2\xf7\xf1\xe2\x99\x88\x4d\x35\xcc\xdb\x36\x6b\xbe\xf7\x0e\x23\x64\x3c\x3d\x95\x9d\xe3\x36\x2d\x86\x30\x6a\x02\xd1\x86\x61\x0e\xfc\x06\x7d\xde\xc5\xb5\xb1\x05\xc3\x0c\xbd\x34\x31\x01\x24\x9d\x3a\x5f\x6d\x30\xff\xc5\x1c\x21\x99\x6a\xec\x88\x49\x5f\xc6\x9e\x81\x94\x37\x0c\x53\x7b\xb1\x70\x16\x86\x9f\x46\xc6\x03\x91\x41\xe9\x8a\x30\x55\x67\x7a\x8f\xa8\xd1\x28\xe9\x33\xce\xb4\x3b\x43\xe9\x25\x76\x5c\xf7\x60\xa5\xe0\x14\xe3\x18\x3b\xbd\xa7\xa4\x35\x45\xe2\x78\xe0\x38\xf3\x2d\xeb\xc1\xa8\x9e\xe1\xdc\xeb\x6a\x9d\x97\x13\x58\xba\x31\xd7\xb1\x23\x92\x3f\xd4\xc6\x68\x94\x1e\xc2\x35\xf3\xf5\x43\x85\xf5\x8c\xa3\x3a\x61\x91\x8b\x06\x19\xb1\x35\x03\xf9\x42\x0b\xa3\x21\xce\x36\xf1\x15\x83\xe4\x47\x55\xd7\x2b\xf7\x08\xe5\x39\x5f\x67\x6c\x97\x1c\x3f\xca\x67\x58\x29\x8f\x03\x37\x75\x6c\x81\x9b\xaf\xfe\xd0\xc8\x30\x20\xd6\xb9\xe7\x9a\x3f\x36\xb6\xb6\xec\xee\xeb\x55\x86\x17\x41\xbb\x8d\x86\xf8\x7d\x28\xc5\x56\xfe\x78\x41\x79\x4f\x73\x8d\xd4\x2f\x71\x43\xb0\x7b\x2c\xf7\xbd\xbf\x5b\x51\x3e\x5e\x24\xa5\x23\xee\x09\x78\x22\x6a\x9b\x00\x47\xe2\x59\xff\xfd\x83\x1d\x8d\xe6\x12\x30\xc4\x00\xb7\x2d\x86\xd2\x97\x7f\x68\x06\x81\x13\x32\x9c\x06\x93\x81\xee\x7e\xf0\x8a\xf0\x61\x13\x46\xdc\x77\x7c\x39\x81\x2f\xa8\xf2\x43\x6f\x1a\x4e\xa1\x07\x9a\xbd\xf8\xaa\xc6\xa3\x23\x13\x0a\xfb\x7d\x60\x85\x1e\x47\xa3\xf8\xf2\x1c\xc3\x43\x48\xde\xb2\x1e\xf6\xf8\x41\x01\xf7\x88\xf5\x47\x7c\x87\x4c\x41\xee\x9a\x67\xeb\xa6\x6d\x68\x79\x60\x22\xb6\xfb\xe7\xaf\x2c\xaf\x9b\xa9\x00\x13\xf8\x7d\x36\x68\x58\xb3\xd5\xb9\x40\x36\xc9\x0f\x1c\x9f\xea\x6b\xf5\x4d\x9f\x6f\xad\x0e\x5b\x20\x57\x6a\xb7\xbe\xe6\x02\xab\x75\x6a\x05\x41\x4d\xad\xd3\x2c\x39\x9e\x0e\x55\x14\xf8\x52\x73\x02\x58\xb8\x39\x38\x7c\x99\xd0\x35\xec\x33\x9e\x2a\x82\x69\x25\x3b\x7d\x8b\xec\xf4\x9a\xb3\xa7\x3d\xd8\xa8\x5c\xb5\xd1\xa0\x8e\xd5\xbb\x69\xcb\x49\x9d\x97\x1c\x48\x3f\x86\x37\xcc\x6d\xca\x7c\x3f\xc1\xdb\x6b\xca\x9c\x60\x0d\x90\x53\x04\x00\xf6\x38\x16\xc2\x5a\x55\x01\xc5\x2a\xac\xf1\x86\xb2\x8e\x41\xe3\xf9\x9d\x31\x3c\x9e\xfa\x3f\x52\x43\xcf\xec\xf1\xa8\xd4\x67\x33\x19\x55\xb3\xfc\x1b\x1e\xc6\x57\xe8\x4b\xf9\x0c\xa0\x96\x4d\xd3\xf3\xfb\xa3\x7b\x16\xb7\x56\xb7\x0e\x4d\xbf\x5a\x3e\x8b\x5b\xab\xdb\x09\xa6\x04\x7a\x8a\x2a\x81\x3e\x8e\xab\x1d\xdf\xe2\xa1\xbe\xda\x61\xd5\x0f\xb4\x41\x5d\x87\x17\x57\x7c\x23\xe8\xca\x15\x4c\x7a\x9c\xd4\x0c\x29\x74\x5c\x79\xae\xe7\x15\x09\x11\xe5\x6c\xd7\x67\x5c\xf2\x60\xdf\x93\xba\x61\xe7\x93\xea\x73\x3b\x05\xcf\xab\xb0\xd1\x79\x39\xac\x6e\xcb\x9e\x63\x72\x37\x19\x3c\xcc\x61\x5b\xef\x0d\x2c\xfd\x15\x60\xe9\x6b\x02\x4b\xaf\xe5\x75\xfb\x69\xab\x74\xe8\xec\xca\x3e\x47\xa4\x40\xd0\xca\xab\x33\x5a\x01\xce\x2e\xf2\xb9\x5a\xb0\xce\x64\x2a\x65\xeb\x2e\x64\xc1\x27\x68\x41\xdf\xdd\x17\xc1\xfb\xd4\x81\xcc\xb5\xc6\x6a\x80\x9c\x7e\xab\xfb\x95\xbc\x1d\xc2\x8a\x01\x8d\xe1\x83\xe4\x04\xb0\xb8\x6f\x4e\xb0\xc6\x23\xe1\x14\xc7\xc5\x73\x02\xbf\x8e\x19\xa5\x70\x30\x0f\x2c\x8c\x8b\xe0\xde\xe7\x43\x37\x0b\xb8\xcf\x65\x33\x1d\x85\xb4\xee\x0d\xd0\x7a\x1e\xc3\x69\xa7\x9d\xa0\x52\xd8\x8a\x68\x6a\x12\xbb\xa9\x97\xc3\xed\x97\x77\x10\xba\x69\x57\xc3\xf1\xfb\x3b\x02\xfb\xc5\xe7\xa4\x15\x4c\xa4\x57\xc8\xac\x92\x63\xf2\x16\x5e\x4e\xb3\xb4\x95\xc1\x12\xa5\x36\x3d\xcd\x8b\xde\xb6\xd6\x3c\xbd\x70\xe1\x3a\xb6\xfa\x1a\xc6\xc0\x2e\x61\x6b\x11\x82\xa9\x85\xac\xc4\x2f\x8c\x6a\xe4\x8a\x00\xca\x6d\x38\xf1\x24\x6d\xc3\xca\x50\x1a\xdc\x0f\xaf\x44\x0d\xbc\x85\x3e\x11\xcc\xed\xe8\x2b\x44\x76\x7d\xf8\x0f\x3e\x44\xe4\x67\x13\xe0\x18\x8e\xee\x18\xbb\x55\x97\x85\xe8\x1c\xdf\x3e\xce\x47\xe8\x65\x70\xc5\x70\x04\x0a\xcf\x77\xf8\x50\x76\xe0\x7e\x34\x94\xc3\xd1\x87\x07\xfa\x35\x50\x6a\xd2\x42\x50\x27\xf8\x55\x03\x0e\x37\x95\xeb\x1e\x73\x28\xf2\xd6\x41\xc3\x90\x7b\xd0\x09\xd0\x0f\xba\x96\x62\x5c\xcc\xbf\x33\xf7\xff\xe5\xa9\xbd\x70\x00\xfe\xc1\xbd\x23\xfd\xff\x3f\x79\x70\x6f\x6c\x99\x75\x2f\xee\xe1\x45\xb1\x05\x82\xaf\xe3\x7d\x1c\x39\xae\xa2\xfd\x8c\x1a\xe1\x3e\x45\x46\xec\xca\x47\x96\x37\xfb\x9a\xc5\x57\xac\x36\xd8\xa2\xe3\xfe\x82\x78\xf9\xa8\x37\xa9\x31\xbd\xd5\x1e\x0f\x41\x72\xa6\xde\x22\xc9\x57\x6b\x44\xaa\x17\x31\x4b\xb5\x1e\x2d\x60\x92\x50\x17\x8d\xe5\x4d\x7e\xc0\x8b\x37\xb5\x6e\xed\xd1\x90\xe3\xcd\x1d\x8d\x5a\x2a\xc9\xed\x38\x0b\xc5\x9f\x65\x26\x0a\x18\x4c\x45\x72\xc2\x1b\x6a\x92\x23\x2f\x4c\xe1\xc1\x56\x49\x69\xfe\x34\x0a\x23\x18\xb1\x36\x13\x77\x1d\x34\x0a\xa0\x59\x5e\x15\x8c\x65\x1c\xff\x27\xb9\xe1\xef\x75\x49\x8e\xfe\xf4\x11\x7e\xf5\x48\x72\x96\x88\x1f\x42\x94\x1b\x1b\x9f\xce\xdf\x59\xb7\x7d\xdf\x56\xcb\xa1\x9f\x7f\x3b\xcd\x95\x4e\xa0\xcd\xed\xcf\xb4\x9b\x7e\x01\xb6\x1b\xac\xe1\xab\xe1\x4b\xed\x8e\xde\xbc\x1e\xc1\xc9\x3d\xbc\xd4\x5d\xc5\x7c\x89\x6f\x2d\xdc\x31\x8f\xcc\x3a\xfe\x85\xbd\x0b\x62\x31\x45\x7a\x75\xaa\x25\xf8\x81\x23\xb5\x8e\xe0\x77\x90\x8e\xae\x02\x43\x4e\x7e\x30\xc9\x17\x29\x5e\x51\x14\x20\x57\xdf\x60\xeb\xe5\x79\x2c\x79\x7f\xec\xfa\xed\x15\x25\x57\xed\xbd\x38\x8c\x74\x5d\xd8\x63\xa0\x3f\x2b\x64\x8f\xd2\x9e\x5e\xb8\x1f\x6e\x0a\x56\x5a\x9b\xe4\x1f\x85\xc9\x82\xdf\x3b\xd4\xc6\x69\xfc\x8d\xfe\xe4\x81\x1a\x4c\x95\x56\xf9\x05\x4f\xa2\x55\xfa\x67\xed\xf8\x73\x75\x4c\xf6\xfa\x56\x9b\xae\xc0\xe4\x30\x8a\x2d\xb7\x38\x68\xdc\xa1\x14\xd2\x7b\x78\x56\x46\x1d\xfc\xc1\x97\xd5\xc2\xb6\x82\x43\xe5\x81\xb1\xce\xde\xe5\x8a\x9f\x05\x08\x01\x33\xd9\x7f\xf6\x1c\x48\xd4\xb0\x73\x32\x4d\x2b\x44\xef\x82\x44\x95\xe6\xc3\x00\x1e\x7a\x11\x44\x8c\x02\xa6\x8c\x3b\x9b\xb7\x2a\xe3\xb1\xe9\x5b\x61\x1f\xfa\xcd\xb8\x00\xe4\x4e\x5c\x6b\x01\x84\xfd\xda\x65\x00\x34\xff\x9b\x65\x0a\x30\xe6\x29\x9a\x3d\xfa\x29\xab\xe8\x37\xac\xac\xa6\xfd\x24\x47\x33\x88\xb6\x8d\x9f\xcc\xd1\x3b\x1c\x1f\x90\xc9\x82\x96\x81\xcf\xfd\x6e\x5c\x50\xa4\x1d\x71\x51\xd8\x09\x4e\x28\xfe\x11\x9d\x07\x7f\xe3\xce\x10\xcc\x26\xf7\x55\x26\x77\xc2\x83\x3a\x30\xf8\xaf\x10\xc6\x3b\xad\x44\xe3\x9e\xd6\xa0\x71\x1f\x01\x17\x27\xb0\xf1\xf3\x2b\x7c\x09\x0b\x71\x23\xe6\xd0\x32\xa5\x22\x9b\xb0\xe4\x8d\x1f\x1c\x0e\x71\x50\x2c\x3d\x61\xb8\xdf\x1d\x9a\x25\x0d\xff\xbb\x8d\x61\xb7\xfc\x8b\x8b\xc1\x41\xe0\x73\xc3\x23\xcd\xe7\x86\x3f\xec\xe8\x73\xe7\x7e\x69\x71\x5a\xea\x3d\xf3\xdf\x71\x6c\xca\xb7\x7b\xf9\xf1\xc9\xee\x5b\xfc\xbc\xd6\xf7\x41\x8d\xf0\x57\x1a\xe3\xdc\x71\x1b\xfa\xa3\x50\xa3\x26\x8c\x59\x46\x5b\xa6\x5a\x1d\x41\x8c\xfb\x6d\x98\xe8\x09\x3e\xa0\x5f\x7e\x63\x4c\x8f\x95\xe8\x47\xe1\xc6\xc4\xec\x99\xad\x23\xe5\x90\xd1\xda\xc0\x38\xa4\x3d\xfa\xb5\x34\xfd\x85\x0e\x8d\x6d\x77\xbf\x47\xf3\x2b\xb2\xfd\x08\x67\x7f\x0a\x6d\xfc\x1b\x68\x1c\x74\x6e\x55\xe2\x1f\xad\x9b\xfe\x5a\x9d\x82\xd9\x3b\xa0\xb0\x08\x4c\x9e\x0c\x85\x29\x40\x5f\x0c\x35\xc6\x20\x57\x48\x38\xbe\x3b\xdb\xaa\xf9\x5b\xae\x99\x20\xca\x3b\x7d\x0b\x7b\xb7\x1b\x77\xf4\xc3\x19\x51\x25\xf9\xbd\x0e\xf7\xd2\xff\xb4\xb2\xdd\x86\x72\x8b\x68\xb7\x3b\x66\x17\x91\xfd\x2c\xe1\xeb\x34\xd7\xf4\xed\xde\xa6\x71\xab\x25\x17\x37\xa0\x0f\xcb\xef\x05\xeb\x55\x0e\xa8\xc5\x94\xe3\xd6\xe9\xb6\xda\xf3\xc1\xac\x4f\x8c\xf3\xf2\x50\x0e\x4e\xe7\x3f\x23\x27\x44\x73\xc8\x9b\x2f\xf0\x3d\x3f\x44\x85\x9d\xca\x81\x71\xb9\x91\x14\x51\x7a\x13\x90\xd3\xeb\xdf\xde\x5e\x8e\x20\x67\xb6\xa8\x96\xcc\x6c\xe9\xf8\x37\x13\xc3\x0d\x2c\xce\x1c\x37\x05\x38\x70\xe6\x67\x20\x90\x47\x27\x20\x54\xe4\x7d\xb3\x20\x9f\xd9\x86\x94\xde\x8a\x7c\x2f\x7b\x46\x29\x4d\xbe\x63\xa0\x60\x4d\x05\x6a\xbc\xa8\xae\xd7\x3a\xec\xb3\x16\x47\x84\xe7\x08\x12\x24\x10\x70\x04\x09\xb6\x9d\x1d\x9e\x41\x93\xd2\x7a\x57\x15\x2a\x3a\x0a\xfc\x7b\xcd\x32\x50\x03\xf1\x2d\x1b\x84\x36\xed\x86\x49\xa4\x5b\x39\xf9\xed\x0c\x5f\xd1\xd2\xe9\x56\xe4\x1d\x23\xb0\x7e\x23\xf2\x13\xa4\x52\xc3\x80\xd7\x2b\x87\x18\x33\x29\xbd\x3a\xf3\x6f\x31\xc1\xfa\x34\x9a\xcc\xb6\xba\x29\x9d\xad\x4a\x67\xf3\x96\xf2\x22\x60\xfe\xb1\xd3\xce\xae\x9c\xc9\x4f\xbc\xf0\xcf\x25\x8e\x26\x11\x36\xa5\x33\x99\xb4\xb4\xaf\x60\x3f\x0c\xf0\x22\x19\xf3\x18\x37\x68\xe5\xdc\x01\xb8\xb2\xee\x31\xc3\xb5\x67\xd0\x83\x1d\xe2\xdf\x24\xf6\x27\xb4\xeb\x9d\x4f\xe6\xd9\x9e\x19\x4a\xcf\x2e\x86\xc1\xd9\x65\xf1\x02\x8b\x55\x2b\x0f\x5c\xf0\x3f\xe6\x28\x2e\x92\x20\xd2\xf8\x2c\xaf\x23\xda\x2b\x06\xb9\x6e\xa3\x49\x0f\x1f\xbc\xbe\x01\x34\x59\xc1\xdc\xb3\x1d\x11\x40\xf9\x7b\xb9\x1a\x02\xc7\xc2\x6f\xf2\xad\x96\x3c\xdf\x4c\x63\xe1\x81\x43\x8d\x57\x45\xde\x4b\x4e\x00\x33\x13\x11\xef\x86\x8e\x20\x47\x0b\x76\x3c\xda\xbf\xeb\x1e\x0a\x10\x43\x59\xcc\x85\xc5\x39\xc8\x67\xb6\x95\xdb\x17\xa3\x30\x0c\x83\x0d\xe5\x90\x30\x2f\xfb\x21\x92\xd4\x5c\xd9\xcc\xc0\xad\xa8\xc1\x2f\x7a\xee\x17\x01\x2c\x84\xf1\xe0\x79\x4c\x19\x83\x94\x7f\x29\xc8\x2a\xf9\x24\x51\x0d\x9f\x47\x0f\xa6\x99\x01\x32\x08\xa4\x89\x6e\x00\x3d\x92\xa7\x58\xe4\x9a\x94\x55\xe2\x18\x22\x79\x47\x26\x80\x7d\xda\xb5\xab\xa7\x8f\xc2\x07\x5c\xd8\x26\xe4\x01\x3e\xfd\x20\xaf\xbb\xfc\xa4\xaf\xbb\xe8\x38\xec\x57\xc3\xff\xaa\xaf\xc2\xc8\x77\xd8\xae\x18\x3e\xa4\xe9\xee\x3f\xb9\xd6\xff\x9a\x68\xb8\x85\x6f\x42\x33\xf0\x38\xea\xd7\x34\xe4\x5e\x49\xd0\xf9\xd9\xf7\x08\x2f\xb8\x94\xca\x08\x91\xdb\xa9\xe3\x47\x6a\x15\x55\xb8\xdb\xca\x77\x71\x3c\x9e\xe8\xe3\x61\x44\x45\x4d\x4d\x10\xd5\xec\xf8\x16\x62\xf6\x63\xe6\x1f\x65\xc2\x35\x3c\x29\xa8\x3a\xfe\xa9\x0e\xf9\x8d\x61\x12\x91\x7f\x74\x0f\x32\x25\x9f\xfa\xa6\xd9\x7e\x4e\xf2\x35\xcf\x89\xfe\x26\x78\xd6\x4c\x22\x76\x11\x95\x46\xc9\x44\x3e\x39\xf5\x03\x37\xfc\x03\xe9\xa9\xc4\x40\xf8\x75\x9e\xe4\x87\x1d\x32\xe4\x47\xe3\x90\xb1\x41\x06\xbf\x87\x87\xcf\x02\x9f\x45\x7e\x8f\xaf\x03\xbe\x0e\x65\x79\x2b\x95\xc1\x61\xa8\x3a\xe9\x7d\x1b\xe4\xdc\xe3\xfb\xbe\xcc\x51\x5b\xfa\xe1\x3e\x1f\x15\xa9\x7d\x3c\xe2\xf7\xaf\xe4\x37\xea\x90\x6f\x1f\x94\x2f\x8f\x39\x3f\xf7\xef\x3a\x3f\x62\x0f\xd9\xbd\x66\x21\x45\x39\xdc\xbd\x66\x49\xf2\x11\xd8\x04\x69\xb3\xda\xa0\xa4\x29\x97\xc7\xa1\x99\x92\xa4\xbc\x36\x3f\x64\x7e\x5c\x9a\x42\xae\x1f\x95\xa6\x92\xff\x1b\x00\x00\xff\xff\x01\xfb\x60\x4a\x69\x82\x00\x00") +var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xeb\x72\xdc\x48\xb2\xde\x7f\x3c\x05\x66\x1c\xb2\x66\x22\xa8\x56\xcc\x4c\xd8\xe1\x98\x90\x34\xe6\x90\xa3\xcb\x1e\x51\xd4\x11\xa9\x5d\x1f\x2b\x14\x58\x74\x03\xec\xc6\xb2\x1b\xe8\xc5\x85\x3d\xdc\x5f\x7e\x0d\xbf\x9e\x9f\xc4\x99\x5f\x66\xd6\x05\x40\x53\xa3\x3d\x0e\x9f\x3f\x64\x75\x55\xd6\x2d\x2b\x2b\x2b\x6f\x55\xc8\xf7\xfb\xac\x28\xbb\x55\xfa\x3c\x3d\x4d\xf7\x79\x55\x6f\xcb\xae\x4b\xbb\x72\x7b\xf3\x64\xd3\x74\x7d\x59\xa4\xaf\xaa\x9e\x7e\xb7\x77\xd5\xaa\x4c\x92\x4d\xb3\x2b\x09\xf4\x35\xfd\x4b\x8a\xbc\xdb\x2c\x9b\xbc\x2d\x28\xe3\xdc\xd2\x49\xf9\xfb\x7e\xdb\xb4\x0c\xf4\x9b\xa4\x92\x4d\xb9\xdd\x73\x1d\xfa\x97\x74\xd5\xba\xce\xaa\x9a\x7e\x5e\x51\x2a\x7d\x53\x27\x5d\xb3\xaa\xf2\x6d\x16\x14\x20\xc3\xca\x7f\x4e\x7f\xac\x8b\xf4\xaa\x2f\xf7\xe9\xb3\x6e\x97\x6f\xb7\x2f\xf2\x0e\x55\xfa\x32\xcd\x57\xab\x66\xa8\xfb\x67\x4f\xa5\x40\x1a\x6f\x86\xde\x5a\xbf\x1c\x7a\xc9\x1b\xf6\x96\xf5\x71\x9f\xb4\xe5\xba\xa2\x89\xb5\x94\xf5\x41\x93\xc9\xa1\x5c\x76\x55\xcf\x83\xfe\x8b\xa4\x92\xbb\xb2\xed\xaa\x86\xc7\xf3\x67\x49\x25\xfb\x7c\xcd\x00\xef\xe9\x5f\xd2\x97\xbb\xfd\x36\x47\x85\x6b\x4d\x26\xdb\xbc\x5e\x0f\x02\xf3\x56\x93\x49\x32\x10\xe6\xea\x1c\x38\xfb\xa8\xc9\xa4\xdc\xe5\xd5\x96\xf1\xf3\x84\x13\xd4\x6e\xd7\x1d\x1a\x60\xf1\xbd\x26\x69\x8c\x59\x7f\xbf\x2f\x31\xc4\x27\xd7\x94\x4a\x56\xf9\xbe\x5f\x6d\x72\xca\x39\x93\x54\x42\x40\xfb\x86\xc6\xda\xb4\xf7\x80\xb3\x1f\x49\xd3\xae\xf3\xba\xfa\x47\xde\xcb\xf8\x2f\x83\x9f\xc9\xae\x6a\xdb\x86\xa7\x7e\x81\x44\x52\x97\x87\x8c\xdb\xa1\x9c\x77\xe5\x21\x6c\x85\x4b\x76\xd5\xba\x95\x59\x72\xe1\x05\x7e\x71\x2b\x5c\x76\xd3\xb4\xb7\x5a\xf0\x92\x93\xa3\xaa\x34\x08\x2d\x8d\xfb\xcf\x6b\xc2\x8b\x96\x5e\xe0\x47\x04\xd0\x25\x79\xb1\xab\xea\x6c\x9f\xd7\x25\xe3\xe8\x94\x7f\x11\x5e\xe8\x57\xa2\xcb\x9d\x75\x65\xdf\x57\xf5\xba\xe3\x62\xc9\x4a\xaf\x34\x2b\x09\xca\x5c\x1e\x8f\xa7\xcb\x6e\xca\xb2\x90\x11\x75\xe9\x4b\x4a\x27\xfb\x61\xbb\xa5\xb9\xff\x7d\x28\xbb\x9e\xe1\xdf\xd3\x6f\x9a\x85\xfc\x4e\xaa\xae\xa3\x04\x65\xbf\x41\x22\xa1\x05\xa8\x57\x18\xd2\x19\x12\x49\xf2\xa9\x2b\xf3\x76\xb5\xf9\x9c\xc8\x7f\xf4\xc8\x89\xc5\x62\x71\x74\x69\x98\x1c\x94\x14\xa4\x07\xeb\x20\x59\x35\x05\xff\x38\xa3\x7f\xd4\x74\x55\x77\x3d\x91\xf4\xe7\x44\x13\x0c\x26\x29\x41\x63\x5f\xf5\xdb\xd2\x67\x62\x7f\x74\xbc\x0e\xe9\xcb\xaa\xed\xfa\x27\x7d\x45\x24\xf7\x61\xa8\x13\x9e\x1f\x91\x73\x56\x2c\x6d\x97\xbf\x6a\x08\x3b\xc8\x6e\x69\x7e\x17\xf7\x57\xff\xfa\xf6\x24\x7d\x4f\x5b\x7d\xdd\x96\x94\x4e\xa9\x0d\xfa\x47\x75\x7e\x5a\x24\x54\xcb\x7a\x3a\xcf\xfb\x7c\x99\x77\xa5\x47\x2b\x17\x0a\x8d\xba\x32\x50\x2a\xb3\x0d\xb0\x88\xae\x8f\xe6\x3b\x47\xe7\xd4\x86\xee\x0e\xd7\xc6\x3b\xde\x22\x94\xcf\x5c\x03\x95\xdf\x6f\x4b\xce\xa7\xa6\xd2\x37\xef\xde\x5d\x9e\xff\x9a\x96\xf5\xba\xaa\xcb\xf4\x50\xf5\x9b\x74\xe8\x6f\xfe\x5b\xb6\x2e\xeb\xb2\x25\x26\xb2\xaa\x52\xda\x19\x2d\x11\x41\x4a\xe4\x29\x93\x5b\x24\x5d\xb7\xcd\x76\x82\xde\xab\xab\xb7\xe9\x05\xa3\x78\x9f\xf7\x1b\x0c\xa4\xdf\x24\xdd\xdf\xb7\x8c\x22\xd7\xe1\xf5\xa6\x4c\x6f\x2a\x9a\x35\x80\x9a\x1b\xc3\x47\x5a\xe8\x18\x17\x49\xd9\xb6\x19\xed\xfb\xfe\x3e\xd3\xca\xda\xde\x18\x52\x9a\x20\xd2\xa9\x9b\x3e\x5d\x96\x29\xea\x2c\x92\xc4\x06\x6c\xd8\x3d\xdd\xef\xb7\xd5\x4a\x76\xec\x2b\x29\xf3\x88\x66\x16\xad\x58\x0a\xe1\x80\x28\x2b\x0b\xd0\x45\xfc\xef\xbe\x19\xda\x34\x62\x03\xa8\xbf\x29\x89\x2f\x6f\x06\xda\x72\x39\xf1\xd4\x6d\x33\x14\xdf\x80\x52\x6d\xf4\x9e\x50\xd3\x0f\x0d\x0d\x18\xd8\x71\x00\xbe\x8b\x53\xa2\x38\x3e\x15\xda\x72\xd7\x10\x77\x70\xc4\x5e\x11\x41\x1d\x2a\x2a\xa4\x99\x76\xf9\x1d\xed\xb7\xbe\x49\xfb\x4d\xd5\xa5\x05\x11\xdb\x8a\x1b\xa6\xad\x31\x10\x3f\x16\xb2\x20\x02\x15\xd2\xb0\xbc\x78\x0d\x00\xb5\x1b\x88\x9a\x36\xd4\x18\x73\x7b\x3e\x9a\xa8\xc9\xb9\x71\x62\x4a\xd4\x0e\xe8\x9b\x28\xb7\x21\xde\xca\xdc\xef\x1c\x09\xfd\x1d\xb6\x4f\xa3\xca\x6f\x6e\x68\x54\x1d\x51\xc5\xeb\x74\xb5\x6d\x88\xa4\x3e\x7e\x78\x4b\x95\x37\x7d\xbf\xcf\xf6\x4d\x0b\x32\xbe\xbe\x7e\x4f\xdb\xa3\xed\x7d\x6e\x80\x6b\x86\xa9\x87\xdd\x92\x7e\x1d\x36\x15\x31\x81\x3c\x58\x20\xa0\x62\xcb\x07\x4c\x9d\x36\xf5\x02\x6b\x35\xb4\xdb\xd1\x32\x52\x97\x56\x72\x64\x78\x3c\x84\xa7\xfc\xe7\xca\x8f\x12\xd3\xed\xe8\x14\x3e\x60\x51\x69\xaa\x25\x4e\x13\xa2\xad\x66\xcf\xed\x06\xc4\x75\xa9\x19\x9e\xa2\x70\x02\xb9\x72\x39\x87\xa8\x14\x67\x7c\xc0\x4b\x77\x34\x61\xdd\xcd\x57\x17\x84\x06\x6c\x69\xe4\xde\xb4\xcd\x8e\x72\x5f\xd2\x3f\x9f\xe1\x87\x7f\xc1\xed\x01\x26\x2f\x0a\x62\x33\xdd\x49\xfa\xe1\xe5\x59\xfa\x5f\x7e\xfa\xf1\xc7\x45\xfa\xa6\xe7\x0d\xc1\x34\xf2\x37\x5e\x5b\x4a\xca\x81\xe8\x40\x69\xe7\xf6\xb4\xfc\xdf\x32\x81\x7f\x9b\x3e\x43\xe9\x7f\x2f\x7f\xcf\xe9\x9c\x2d\x17\xab\x66\xf7\x82\x37\xf7\x2e\xef\x17\x09\x97\x10\xd5\x28\x39\x5d\x95\x75\x41\x09\x3d\x56\xb5\x2c\xe0\x3a\x5a\x1e\x1c\xb2\x72\xfa\x67\xab\xa6\xbe\xa9\x5a\x9e\xd0\x6f\x75\xbe\x24\x9c\x98\x5c\x40\xec\x18\x25\x76\x76\x11\xd2\x68\x23\x57\x37\xf7\x1e\x14\x53\x7d\xc7\x99\xba\xa0\x09\xcb\x4a\xd4\xa8\x8a\x4c\x0e\xcb\x57\xc8\xc6\xba\x5d\xd2\xf4\x5a\xc3\x77\xe7\x11\xde\xdc\xdc\x6c\x89\xb1\x19\xb3\xd2\x1e\x2e\x25\x57\xf8\x56\x08\x42\xc4\xb8\x87\x64\x73\x5e\x75\x80\x3c\x3b\x7f\x97\x96\x77\x44\x6d\x44\x0e\xfb\xb6\x29\x86\x15\x28\x8c\x61\x4f\x52\x3e\x26\x08\xbf\xc4\x19\x56\xc2\xde\x82\xbd\xca\x43\x63\x86\xb0\x22\x20\xda\xa2\x85\xb4\x97\x09\x82\x5a\x13\x24\xac\x9b\x2b\x16\x0e\xc3\xb2\xd9\x0a\x93\xd1\x61\x95\xba\x71\x5d\x5a\xee\x7a\x7b\x9f\xe2\xd4\x07\x5d\xac\xda\x32\x90\xed\xba\x45\xa2\x67\x95\x49\x88\xd9\x5d\x45\x42\x45\xb0\x54\x28\x35\x71\x91\xd9\xc3\x9f\x19\x80\xc5\xb4\x6e\xb6\xae\x1b\xd8\x25\x77\xcc\x25\x34\x77\xea\x9c\xc7\xd7\x61\x08\xe8\x81\xc5\x3d\x22\xc6\xbb\x0a\x9c\x46\x91\x85\xb1\x12\xc6\xd0\x35\x75\xd5\x95\x25\x5a\xa0\xfa\x4f\xa9\x4d\xd4\x59\xa8\x08\xa3\xa2\x88\x9d\xbb\xff\xd6\x0c\x69\xd1\xa4\x7c\x10\x80\x9d\x51\x6d\x9b\x6a\xad\xd3\xd7\x39\xa7\x6d\xb5\xde\x10\x5f\x69\x0e\x27\x82\xb4\xc3\xa6\x29\x99\x76\xde\x9c\x3f\xff\x41\xc6\xb1\x66\xe6\xe6\x2a\x31\x5b\xcc\x87\xbe\x61\x3a\xd5\x25\x94\x21\xb8\xe3\x05\x90\x13\x61\x49\x80\xc6\xe2\xa9\x09\x60\xd3\xd3\x5a\xf7\x49\x58\xa6\x1b\xc4\xc3\x48\xed\x91\x88\xab\x52\x4c\xb6\x6e\x20\x99\x99\xd4\xc2\xac\x9a\x44\xe9\xae\xcf\xd6\x55\x9f\xdd\xf0\x86\xe5\x36\x5f\x72\x5d\x3e\x39\xa8\x24\x7d\x4c\x45\x8f\x53\xda\xf5\x24\x39\x16\x3f\xa7\x8f\xee\xf4\xb8\xfe\x89\x77\x62\x96\xdf\x11\x2c\x16\x03\x08\x6e\x89\xc2\x45\x5a\x30\xf1\xbd\x68\x88\xce\x19\xe7\xdd\xb0\x07\x47\xd7\x13\xfa\x24\xdd\x0b\x60\xd1\x1c\xea\x6d\x93\x17\x60\x39\xb4\xbb\x2a\x28\x1f\xcb\xaa\xce\xe9\x74\xb1\x56\xc0\xca\x1e\x11\x35\xbc\xbb\xbc\x06\xe0\xba\x59\x0e\xd5\xb6\x30\x80\x05\xcd\xf0\x2e\xdf\x56\x05\xcb\x59\xba\xee\xa1\x4c\x63\x59\x95\x8c\x65\xd5\xb4\x7c\x1c\x62\x36\x56\xf1\xc8\x39\xdc\xf2\xf9\x86\x6c\xaa\xab\xb0\xa8\xe7\x8e\x4c\x46\x03\x2d\x3c\x04\x50\x3e\x50\x41\x31\x55\x57\x3f\xee\x31\xd2\xd5\x40\x7d\xd1\xa2\x73\x36\x55\xec\xd2\x27\x2f\xe8\x6f\xc2\xc7\xb3\xf0\xbd\xf5\x14\xf1\x5c\x98\x4a\xe1\x20\xbb\x34\x1a\x6a\x44\xde\x8e\xba\x8c\x78\x83\xb9\x86\xe3\x35\x12\xe8\x06\xa1\x57\xd6\xb4\xb6\xb4\xac\xe5\x37\x94\x78\x4c\x1b\x78\xbd\xc5\x22\xe4\x90\x5e\x48\x8c\x6b\x08\x6f\x4c\x20\x27\xb2\x5d\x6e\x68\x6a\xcc\x3b\xfb\xfc\x96\xc6\x96\xb7\x24\x84\x25\x9f\x58\x1b\xfd\x9c\x0c\x22\x00\x35\xdb\xc2\x09\x9b\xa0\xe9\xa6\x1d\xab\x58\x1e\xc8\xd1\x6b\x47\x52\xe4\x6a\x93\x39\x5d\x96\x91\xd2\x97\xbf\xe3\xcc\x43\x91\x57\x6d\x99\xd8\xb9\x28\xd9\xdd\x63\xb9\x78\x12\x17\xf7\x7e\xb5\x48\xfc\xa1\x2d\x42\x22\xfa\xb2\x61\xac\xdd\x95\x0e\xea\x2c\xcc\x8d\x2b\x50\x5b\x24\xa8\x69\x53\xb1\x26\x44\x45\xa2\xae\x69\xa9\xa8\x6c\xa4\x8a\x7c\x52\x1d\xfb\x73\x62\x1d\x44\x4d\x26\x9f\x88\x19\x90\x5e\x22\xec\x25\x63\x6d\xcc\x16\x87\x86\x22\x3c\x87\x15\x33\xe5\x07\xfe\x1c\xdc\x94\x7b\x3e\x32\x77\x1d\x56\x75\x4b\x90\xc5\xbd\xca\x5e\x6e\x7d\x7f\x11\x4e\x4b\x0b\x4e\xfc\xe9\x1b\xd3\xde\xbf\xb2\x89\x5f\x2b\x5a\x49\xd4\x8f\x4f\x0e\x3e\xaf\x69\xab\xed\x81\x7d\xda\x24\xf7\x27\x69\x74\x06\x6d\xf2\x8e\xb8\x2f\x1d\x70\x5a\xad\x58\x98\x76\xc0\xab\x96\xaf\x84\xe4\xa1\xc9\x83\x48\xa5\x66\xd3\x8e\x8f\x34\x1e\xa1\x30\x28\xed\xc5\x1d\xf8\x38\xce\xc3\x53\x7f\xa6\x4f\x42\xd8\xae\x64\x99\x2f\xdb\x89\x86\x2e\xbf\xd2\x8b\x32\x21\xc1\x64\x4d\xfb\xd1\xe8\xed\x39\xab\x64\x6b\x48\xa8\x4a\x6e\x0c\x50\xf6\x21\x07\x55\x08\xcb\xf9\xc5\x2c\x16\xb4\xb1\x0f\xd0\x57\x69\x6b\x4e\xd0\x4f\x67\x0d\x15\x2f\x8c\x23\xcb\x81\x0b\xf9\xa4\xa3\xcd\xee\x91\x78\x9a\xd2\xea\xa7\x21\x94\xca\x89\x7e\x5a\x5c\x81\x37\xfd\xb3\xe5\x8b\x47\xdd\xb3\xa7\xcb\x17\x8e\x35\xae\x36\xe5\xea\x56\x74\x89\xaa\x5e\x36\xbf\x43\xe1\xa2\x85\x67\x1c\xd7\xbc\x45\x1e\x15\xe9\x86\x4a\x21\x93\xd3\x56\xa6\x6a\x84\x78\x2e\x8d\x16\x8d\x06\xc3\x3b\x7e\x61\xb6\x1f\x77\x38\x18\x21\x51\x6d\x74\x22\x23\x23\x35\x1f\x7b\x87\xb3\x02\xba\x3d\xe5\x5c\xa6\x5c\xb0\x79\x4f\xba\x98\xef\xb6\xda\x55\xfd\x84\x74\x98\x8f\xe4\x4a\x82\xaa\xe7\x1b\x2e\xd1\x16\xb0\x81\xb1\x10\x37\xa6\x66\xe8\xdc\x34\x72\x3a\xe4\xa4\xde\xfc\x94\x12\x09\x0d\x74\x0a\xf1\x9c\x68\x98\xc4\x8e\x73\x3e\x78\x49\x41\xc8\xbb\x6c\xa8\x15\xad\x65\x61\xc4\xf4\xba\xc2\x21\xc1\xfd\x1a\xc9\x07\x50\x86\x79\x95\x73\xd3\xef\x1c\xc6\xbf\x27\xa1\xf8\xc6\x55\x63\xce\xcd\x03\xaa\x58\x26\xcb\x67\x17\x8f\x38\x5b\x5d\x8a\x7a\x05\x0c\x30\x1c\x2f\x34\x29\x07\x7e\xf5\x48\xc3\xb8\xa5\x1c\x2c\xc8\x72\xe8\xfb\x86\x65\xee\x2d\x53\x8d\xd4\xb1\x51\x9f\x01\x10\x6a\x84\x6f\x0f\x0b\x12\xe2\x49\xd6\xa6\x34\x19\x38\xf3\x56\x38\xd5\x56\x46\xb3\xd3\xa3\xce\x81\x15\xa2\xae\xe7\xf5\xbd\x91\x32\x11\x04\x8f\x82\x3b\xec\xe7\xc7\xf2\x5d\x5b\x7e\xef\x47\xe3\xf6\x0c\x6a\xd8\x88\xa4\x7a\xb0\x9f\x3e\xa0\x14\x54\xe2\x76\x9d\x9d\x5c\x6a\x64\xf1\xf4\xd1\xc6\xe8\x45\x39\xef\x0c\x62\xb0\x24\x36\x16\x40\x34\xcd\x02\xb5\x17\xa3\xbe\xbc\xba\x33\xc5\x60\x1f\x0f\xd9\x1f\x40\x7d\xd3\x64\xdd\x46\x54\x4b\x1b\x5e\xba\x2d\xeb\x75\x64\x26\x80\x0d\x16\x44\xf7\x5f\xf9\x98\x63\x75\xe7\x73\xc2\xe7\xda\xbb\x91\xac\xc6\x7c\x5f\xf3\x02\xa1\x01\x45\xbf\x45\x22\x98\xad\x4b\xf2\x7e\x46\xae\xfb\x50\x7a\x63\x23\x52\x6e\xdc\xa4\x19\x5f\x9b\xfe\x42\x4a\xf2\x6d\xa9\x8d\xbf\x26\x5d\xb8\xfb\x08\x5d\x56\x14\x53\xd6\x62\xdf\xe7\xf7\x2c\x49\x49\xb6\xfe\x40\xc1\x75\x99\xef\x74\x94\x9c\x94\x26\x4e\xe9\x8c\xd2\x4c\x4e\xd2\xd1\x15\x98\x2a\x12\xc8\x14\x36\x05\x11\x30\xf4\x2c\x77\x32\x7d\xa9\x96\xcc\xbf\x4e\xec\x2b\x7f\x4d\xf2\xed\x7e\x93\xe3\x50\x0f\xc0\x60\x4a\x20\x20\xac\x66\x0a\x10\x2c\xf0\xb0\x2b\xdb\x6a\xc5\x49\xae\xf0\xdd\x93\xec\x7b\x58\x91\x88\xfa\x49\xba\x8b\x1b\x2b\x88\xf2\xff\xa9\x06\x39\xcd\x92\x5f\xd8\x6e\x57\xfd\xc3\x66\x11\x35\xc7\xf9\xc4\x48\x08\x02\x72\x96\x87\x72\x40\x38\xed\x58\xe6\xea\x53\xde\xec\x3d\xcb\x75\x51\xd3\xbb\xfc\xf7\x2f\x55\xdc\x35\x33\xf5\x64\x7f\xfb\x4a\xb6\x8b\x75\x8a\xf1\x1e\x27\x78\x36\x5a\x1c\x85\xa6\xa5\x67\x90\xfa\x96\x8e\xaa\xda\x81\x7d\x94\xdf\x29\x7e\xff\x6c\x76\x6d\x3a\x17\x54\x2a\xf6\x16\x6e\x3a\x71\x0b\x66\x86\x90\x6e\x17\x7e\x0f\x85\x12\xaf\x23\x67\x96\x0d\x4d\x8f\x77\xdc\x80\xc4\x44\x11\xfe\x89\xa4\x16\xde\x18\x9f\xf1\xc1\x97\xb1\x24\x59\x87\xf2\xa2\x3b\x12\xed\xd0\x00\x84\x18\x73\xb3\x69\xbd\xd1\x86\x3b\x5a\x9d\xce\xf7\x99\xda\x97\x53\xeb\xdc\x91\xfa\x3d\x6d\x99\x99\x06\xdc\x4e\x3a\x5a\x51\x16\x13\x95\x68\xe6\xc5\x84\x17\x4c\x2b\x32\x18\xdb\x4b\x37\x19\xed\xf4\xa8\xe6\xfb\x61\x49\x4c\xce\x31\x00\xa6\x67\x08\xca\x75\xef\x5b\x91\xda\xa4\x9e\x96\x6b\xb6\x3e\xd9\xb0\xa3\xb1\x2a\x01\xd2\xf9\x20\x60\x21\xf9\xf9\xf5\x71\x4b\x1d\x52\x45\x28\xd7\xbb\x15\x8e\x35\x2a\x9a\x33\x8d\x89\x92\x5c\x33\xd0\xab\x74\x18\x7a\xb8\xef\x58\x85\xe8\x06\xe6\xd6\xac\x6e\x88\xc0\x12\xaf\x25\x9f\xc5\x68\xaa\x44\x17\xc7\x9b\x27\x4a\x66\x1d\xec\x4b\xed\x03\xec\x2b\x9b\x0e\x35\xf0\x69\xc3\xda\xb8\x03\x3a\xd6\xac\xd3\x11\xcb\xdf\x2b\x58\xf2\x5e\x55\x77\xa5\x6a\x89\x4e\x39\x46\xd9\x22\xd9\x12\x2b\x61\x6d\x44\x66\x25\xa2\x6d\x73\xc7\xca\x1c\xf7\xc7\xa5\x52\x4f\x2c\x7b\x3a\x29\x5e\x67\xd5\x37\x49\xbf\x6b\x0e\x65\x71\x42\xa7\x3e\xd7\xa0\x71\x82\xe9\xe4\xdb\x43\x7e\xdf\xc1\x6c\x62\xfc\x8a\xad\x98\x52\x9d\x99\x11\xc9\x04\x6b\x8c\x2a\x34\x59\xd3\x7e\x35\x4c\x28\x41\xfa\x93\xfb\x00\x8d\x11\xbc\x46\x0d\x31\xa4\x88\xb3\x59\x0e\xa7\xae\x9e\x54\xac\xed\xb2\x6e\xc8\x62\xbf\x14\x07\x0d\xc1\x0b\xa2\xe7\xc6\x4c\xdd\x13\x96\x98\xa8\x1b\x96\x5f\x88\x9b\x0b\xae\x49\x24\x24\xcc\x62\x48\x81\xf9\x80\x36\x46\xf9\x44\x44\xe5\x8a\x70\xc8\xaa\x97\xd7\xa8\xf9\x64\xa3\x55\x31\x5b\xaf\xe4\x43\x1f\x4e\xba\x9e\xb6\x00\x63\xda\xfc\x6f\xff\x26\x22\x97\x6a\xd1\x5c\x8a\xad\x05\x34\x75\x9b\x6a\x9f\x36\xb0\x1f\x86\x28\xf4\x64\x1b\x48\x9d\x84\x8d\xa2\x84\x28\xce\x86\xd4\x36\xaf\xbb\x9b\x12\x16\xd5\x5d\x7a\xc3\xce\xa1\x85\x76\xcd\x42\xac\xf8\xe1\x8e\xf4\x2c\x6a\x0d\xba\x0e\xcf\x1a\xac\x5d\xb0\x50\x71\xd7\x04\x73\x87\x9e\x75\x0c\xc0\xaa\x6f\xa9\xb3\x31\x30\x99\x4d\x50\x00\x41\x32\xf2\x5b\xd8\x68\xee\xca\x10\x11\x37\xff\xec\xcc\x03\xac\xab\xd1\x58\x2c\xed\xf1\x32\x49\xa7\x30\x60\xc0\xed\xb4\xbc\x8f\x67\xcf\x55\x1d\x05\xb0\x13\xe4\xae\xd4\x5e\x78\x63\xf0\x5e\x19\x35\x08\xc3\x85\x57\x1f\x92\x3e\x87\x16\xb8\xa4\x21\xae\x36\xd1\xee\xbc\x46\x49\x2a\x25\x93\x0d\x9a\x7c\xe2\xae\x49\xb3\xdf\xe4\xf5\xba\x64\xeb\x17\xb5\xc4\x07\x26\x7e\xab\xd0\x2e\x99\x34\xe0\x75\x2b\x69\xb6\x99\x5b\x95\x15\x6d\xc8\x66\xf7\x60\xcd\xaa\x36\x1b\x4e\x97\xfc\xad\x21\x09\x04\xc6\xdf\x3f\x51\x8a\x05\xe2\x3a\x89\xdc\x3d\x23\xd3\x03\x34\x86\xaa\xbf\xf7\x27\xc6\xa9\xe6\x90\xe6\x0b\xee\x00\x63\xc6\x4b\x4b\xd3\x7a\xe4\xcc\xf4\x78\x6b\x4b\x4a\xe1\xc4\xb2\xf4\xd2\xd2\x09\x2b\xce\xbb\x05\x0e\x07\x96\xaf\x61\xaf\x0e\x8e\x84\xc7\x8f\xba\xc7\xbc\x60\x56\xb6\x08\xe0\xf7\x79\x4f\x6c\xb1\x16\xad\x45\x38\x54\x58\x55\x8b\x5d\x13\xe0\x2a\x02\xb6\x80\x93\x57\x50\xf1\x39\x21\xf5\x12\x5e\x41\x9a\x9a\xa4\x66\x3d\x9a\xca\x62\x3a\x95\x98\xff\x85\x92\x6a\x24\x49\x5d\x68\x83\x6a\xaf\xf0\xec\x99\x1f\xa8\x8b\xdd\x42\x5d\xa2\x56\xa1\xd8\x24\xa4\xe4\xfd\x3c\x3d\x97\x84\xe9\xc1\x43\x85\x39\x55\x45\x92\xec\x81\xf7\x2c\x18\xad\x2c\x84\x1b\xb4\xfc\x0f\xcc\xd2\xed\x58\x2e\x20\x2c\x48\x2b\x20\x5c\xf3\x12\x40\x12\x60\xb7\x6a\xa0\xc3\xb1\xbd\x15\xca\x5d\x1d\x78\x40\x48\x05\xe6\x7a\x0c\x76\x28\x97\x29\x5b\x40\x89\x70\x48\x55\xd2\x89\xee\x72\xd2\xb2\xee\xaa\xdc\x19\x6b\x68\xb5\xd8\x17\xaf\xa7\xe8\x4b\xf6\xc3\xc3\xb9\x39\x8d\xca\x60\x17\x85\x7a\x23\xde\x6a\x32\x19\xf6\x05\x9b\xb9\xfc\x84\x3f\x22\xc3\x4d\x38\x2e\x0f\x0c\x90\x98\xba\x55\xf3\x52\x0c\xc0\x8b\x54\xe1\x78\x64\xf7\x0b\xdb\x3e\x33\xe1\x1c\xba\x85\x8a\x31\x48\x68\xf7\x97\x22\xd5\x63\x0d\x60\x21\xbc\x07\xe8\x15\x57\x1f\x10\x42\x67\x65\xba\x69\x0e\xe9\xb6\xaa\x6f\x3b\xc5\xaf\x33\x91\x98\xea\x9c\x9e\x23\x83\x80\xc5\x78\xc3\x62\x55\x55\x0f\xe5\x2f\x89\xa5\xc4\x36\x8f\xe4\x34\x74\xa1\x94\x53\x71\xcc\x0c\xd4\xa5\x72\x86\xec\xf4\x14\xd9\xb3\xb0\x5e\xf5\xd5\x2a\x70\xf2\x32\xfb\x55\x5f\xcf\x4d\xc9\xe2\x39\xd8\xe1\x2b\xe5\x42\x84\x9f\xa6\xe9\xd4\x1c\xe9\xd9\x0f\xe7\xc1\x76\xa1\x50\xba\x5a\x0e\x42\x17\x53\x06\x63\xae\x0b\x82\x62\xe5\x92\x84\x25\x1d\x0f\xf6\x76\x56\xed\x24\xfc\xe6\xa3\x96\x8a\x17\xdf\x69\x25\x28\x5e\x24\x75\x33\x9a\x4c\xe8\x44\x78\x47\xb8\x94\xe9\x1b\x1f\xb5\xc2\x13\x13\x17\x04\x21\x38\xec\xa3\xc1\x8e\x29\x4b\x1b\x30\x7b\xf8\x17\x08\xcc\xc8\x27\xf4\xad\x08\x6f\x76\xac\xa5\xd9\x46\x42\xe1\x99\x5a\xf6\x5d\x39\x63\x36\x28\x7f\x07\x2f\xd8\xd8\x00\x11\xe9\x59\xda\xc2\x51\x69\x7a\x34\xa6\xc9\xde\xb1\x7a\x07\x9a\x5b\x38\x1d\x23\xf8\x85\x50\x7f\x0e\x63\xb1\x38\xca\x86\x4e\xe4\x49\xee\x0a\x5e\x36\x69\x82\x10\x00\x75\xa5\xf3\x5a\xca\xa9\x70\x23\xb6\x91\x4b\xd0\x90\x03\xd0\xb8\xa1\x58\x1b\x2d\xcd\xad\x1d\x32\xb6\x7d\x4b\x8b\x4e\x07\xef\xc8\x38\x35\x61\x69\x11\xfb\x02\xf7\x6a\xe0\xa3\xf5\x5c\x8b\xf4\x4f\x6d\x8b\xf9\x3f\x52\x96\xe3\x0d\x9a\x25\x1b\xbc\xac\x53\x65\xd6\xae\x54\x58\x76\x42\x63\xc0\x1e\x28\x9d\x71\xa3\x00\x26\xe2\x21\x02\x2c\x04\x31\xe3\xa8\x65\x67\x91\xe9\x17\x46\xdc\xff\x30\x73\x6f\xd4\xa1\x33\xf7\xfa\xa1\x8e\xc8\x86\xc7\x38\x3a\x71\x26\x04\x44\x05\x38\x7f\x75\xe9\x83\x53\x55\x17\xdf\x1d\xae\xdc\x8d\xc8\xf4\x8c\x26\xca\xc2\x11\xac\x44\x00\x0e\xcb\x02\x1e\xe2\x30\x10\xcb\x23\x02\x7e\x37\xb1\x4c\xc6\xfc\xf5\x14\x1a\x0c\x61\x45\x60\x59\x1e\xe0\x03\x4d\xa4\x3f\xd5\x88\x76\x8c\x08\xf1\xc4\xba\xd0\x94\x7b\x71\x42\x7a\x91\xe8\x44\xd5\x86\x4d\xb5\xde\xd0\xbc\xaa\x1d\x7b\x21\xc1\xb5\xcd\xd5\xe5\xb5\x3a\xfe\x45\x1b\xaf\x59\xd7\x6c\x01\xe2\x1e\x44\x19\x77\xdc\xf6\x59\xd7\xb7\x4d\xbd\x7e\x71\xde\xb0\xba\xc5\x76\x14\x3e\x2a\x7e\x79\xf6\x54\xf3\x89\x65\xf0\x1a\x72\x08\xe4\xab\xaa\x7f\x3d\x2c\x1f\x77\xe9\x9a\x64\x03\x1c\x20\xcf\xf2\x74\xd3\x96\x37\xcf\xbf\x7d\xd4\x7d\xfb\x42\x5d\xcf\x12\x28\x74\xa8\x1d\x5a\x9e\x3d\xcd\x5f\xb0\xf4\xdc\x35\x5b\x12\x6a\xe3\x2a\xcd\x6e\x27\xeb\x4b\xec\x6f\x27\x90\x18\x3f\xbc\xd5\x65\x0d\xcc\x95\xad\xe2\x87\x1a\x5c\x38\x5a\xf7\xeb\xa3\xcb\x96\xb0\x7d\x41\x0f\x52\xfa\x29\xc7\x3d\xe7\x99\x51\x41\x4e\x2f\x4a\xd9\xfa\x06\x44\xc4\x8c\x4d\xdb\x09\x4c\x18\x4c\x30\xdf\xd8\x9e\x93\x0e\x83\x1d\x07\x91\xe1\x94\x61\x58\x84\x85\xa2\xab\x96\x8d\xb7\xaa\xd6\xa2\x80\xce\x86\x40\x84\x7d\xd7\xa8\x67\x20\xb5\x4c\x4f\x90\x26\xd2\x29\x39\x9e\x7a\x6a\x1a\x0b\x79\xea\x22\x3b\x4a\x91\x01\x21\x6a\xab\x2e\xf6\x41\x14\xf0\x12\xa2\xd4\xb2\xaa\x0b\x21\x3c\xa5\x1b\x0d\x26\x70\x04\x43\xc7\x51\xcd\x40\xb0\xb1\x71\x42\x7f\x07\x98\xbb\x8a\xda\x0f\x8e\x24\xda\xef\x43\x1d\xec\x37\x21\xe8\xac\x6f\xc4\xd6\xa4\x93\x7c\x4f\x12\x3b\x02\x89\x4e\xa5\xc1\x6b\x2e\xee\x34\x98\x4d\x3d\x8d\x56\xe5\x95\x66\x62\xb5\x00\x98\xa0\xa8\x73\x88\xc0\x2f\xaf\xbc\x59\x2b\xea\x04\xd6\x10\x21\x2c\x0c\x11\xaf\xed\xb0\x8d\x38\x85\xd3\xd3\xf7\x6f\x16\x89\xeb\xcf\xda\xfc\x2d\x27\xa9\x43\x46\x70\x70\x7a\x23\x33\x94\xf1\x0e\x75\x2e\x08\xa9\x6e\x66\x2a\xd4\x04\x2d\xba\x39\x4d\xe6\x23\x73\x89\xcb\x05\xc5\x65\x17\xe8\xd2\xd2\x1b\x46\x32\xe6\x6d\x6e\xa6\xdf\x10\x62\x9d\x45\x87\x79\xea\xfe\x9e\xb9\x45\x10\xfe\x91\x0b\x82\x0e\xd8\xef\xa3\xb8\x13\x82\x84\x3e\x99\xb2\x84\xd8\x3a\xd2\xb7\x01\x2b\xf1\x87\xb9\x01\x25\x80\x0c\xf7\xb6\x9e\xd1\x78\xfd\x51\x11\x0e\x5a\xd4\xdc\x58\x6a\xf9\x26\x15\x46\x24\x4e\x4d\x1e\x97\xc8\x36\x8a\xe3\x50\xb9\xa1\x36\x0f\xe5\x96\xc3\xd3\x74\x40\xde\xb3\xa7\xaa\x4c\xe4\xd7\x53\x20\xe7\xd1\xe3\x70\x40\x77\x16\xcb\xda\x86\xf6\x05\x6b\x8c\x20\x88\x80\xe1\xca\x13\x1d\xc4\x18\xe6\xd9\xe9\xbb\x77\x97\xd7\x9e\x4f\x32\x65\xd5\x05\x71\xf3\x6f\x5c\x50\xcb\x64\x5c\x16\xda\x82\xf1\x21\xca\x29\x82\xf0\xc1\x35\x5a\xe3\x18\x5c\xb8\xf1\xad\x75\x4a\xae\x1b\xec\xe6\x86\xc7\x22\x35\x8a\x78\xfc\xc5\x31\x11\x3f\xf9\xc4\x07\xcc\xe7\xc4\xac\x74\x97\xfc\x3f\x09\x0d\x9d\x81\x69\x1a\xd4\xec\x2d\xd8\x3e\x86\x93\x06\xd0\x14\x13\xc3\x27\x0d\x6c\xe8\x86\x1c\x32\x1c\xe1\xbe\x01\x5f\xbc\x49\xe1\xb2\x3a\x61\x3b\x4e\xd3\x82\x06\x19\xb9\x43\x5d\xfd\x7d\xc0\x09\xc9\x12\x1c\x9d\xf8\x1c\x2b\xb5\xac\xb6\xc2\x3c\xff\xec\x7e\x48\x3e\xa7\x46\x01\x8e\x41\xe7\xf4\xeb\x59\xb7\xe7\xf0\x2f\xe2\xcd\xdd\xf3\x6f\x49\xe4\x26\x8d\x05\x7f\x9f\xb0\x7d\x40\x53\x79\x51\x0d\x74\x14\x91\x00\xc6\xbe\x60\x5a\x4f\xaa\xf2\x82\x75\xfd\x5b\x33\x21\x8d\x63\xd1\x51\x66\xe1\x8a\x5c\x86\x98\x45\xe4\xce\x0c\x4b\xc5\x55\xb1\x01\xf4\x62\x3c\x4a\x83\x69\x31\xbb\x66\x72\xbf\x2d\x43\xd4\xa9\x8b\x40\x17\xfa\x9c\xfe\xb5\x15\x62\x2e\x25\x9f\x2f\x06\xa4\xc1\xa5\x00\x97\xe9\xfb\xbd\x22\x02\x58\xb1\x8e\xb2\x58\x57\x3d\x89\xc9\x7c\x81\x02\xca\x2b\xed\x20\xe2\x92\xb8\x53\x20\x29\xcb\x99\xa9\x6b\xb0\xa8\x58\xd5\x55\x9f\xb1\x55\x7f\x27\x71\xe2\xd4\x6c\xbe\x15\xb1\x22\xc6\xbc\xb8\x65\xd3\x0f\xbf\x9d\x9e\x5f\xfc\xb6\xd8\x15\x16\x36\xa2\xf8\xd4\x78\x91\x00\xa3\x45\x79\x93\x0f\x5b\xb3\x5e\x61\xc2\xc8\x48\x7f\x45\x86\x5e\x31\x20\x45\x83\xf0\x77\x27\x67\xa4\x5c\x3a\x78\x63\x39\xdf\xb1\x18\xf9\xfd\x11\x9b\xce\xd8\xad\xf2\xf5\xa6\x9d\x71\x0b\x0f\x5b\x78\xd8\x91\x9e\xb1\xbd\x2e\xd5\x60\x8b\xc8\x1b\x99\xe8\x15\x08\x0b\x75\x77\x77\x20\x24\xd6\x3d\x2c\x3d\x4e\xdc\xa6\x6e\xe4\xc7\x69\x7c\xb9\x1d\xca\x11\x91\x0b\x1e\x8d\xc6\xad\x27\x5d\x96\x0b\xbd\x99\x11\xac\x8b\x42\x2c\x10\x23\x9c\x99\x64\xcd\xde\x69\x96\x5a\x55\x9b\x72\x50\x66\x5b\x47\xd0\xa7\x05\x9e\xbd\x91\x4c\x89\x04\x45\xd8\x19\xc4\xd7\xd8\x0c\x69\x4e\xf1\x3c\x8c\xea\x4e\x64\x53\xd8\x4e\xd3\x2d\x72\xe3\xf6\x1a\xe2\x83\x39\xf8\x33\xde\x64\xb8\x44\x12\x60\x2a\x0c\xd9\x60\xf6\x56\x30\x7f\xde\xdf\x67\x6c\x0c\x01\x4b\xde\xdf\x27\x08\x6c\xa0\x03\x2d\xc3\x79\x29\x99\x60\x90\xdb\x6a\x2f\x57\x90\xa8\xa0\x2a\x25\x3a\x11\x89\xcb\x7f\x49\x04\x29\x6e\x85\xb0\xd0\xb8\x97\xc4\x05\xc4\x88\x7f\x01\xbf\xea\x59\xe2\x15\xe3\xec\xf3\x6f\xb3\x25\xed\xd1\xdb\x6f\x03\x09\x98\x6f\x30\xb1\xd8\xfb\x0d\x49\x56\x07\x75\x40\x7e\x94\x54\x62\xbf\xff\x82\x5f\x03\x47\xbb\x89\xb7\x93\x13\x89\xfe\x62\x1b\x67\xa2\x17\x67\x98\x19\x25\x2c\x70\x2a\xdb\x20\x61\x33\xe4\x1c\x7f\x1f\x78\x96\x22\xbc\x3f\x4f\xff\x95\x7f\xa5\xaf\xf8\x97\x4e\x85\xb7\xb1\xdb\xa3\x58\xe1\xd1\xc6\x0e\xc3\xbf\xc0\x71\x34\x86\xd2\xef\x69\x89\x19\x09\xb0\xaf\xc1\x22\x06\xc8\x81\xc6\xc9\x7e\x60\x1f\x3a\xaf\xbb\xf5\xf6\x9e\x72\x10\xb5\xcd\x99\x7c\x86\x05\x2d\x38\x03\x78\xd4\x46\xe2\x58\x85\xb2\x88\xbe\x2d\x21\x6f\xd1\x3f\x2d\xcb\x08\x38\xeb\x73\x98\x3c\x05\x88\x48\xee\x3f\xa7\xd7\x94\xa3\x10\x65\x58\x94\x28\x28\xca\xc7\x57\x75\xb0\x8d\x3a\x70\x5c\x4e\x10\xc9\x6f\xcb\xae\x27\x14\x41\x7d\x74\x3f\x12\x1e\x63\xd5\x4b\x7c\x1e\x52\x89\x46\x8f\x8a\x59\x5b\x92\x09\x8c\x86\x6d\xce\xb1\x58\x1f\xf2\x83\xfc\x24\x4c\xeb\xdd\x9e\xd7\x92\x92\x6c\x44\x17\x0b\x28\x62\x90\x19\xde\x7a\x59\x4c\x7b\xb3\x92\xd1\xfd\xa1\x74\x35\x2a\xbf\x11\xa1\xfe\x25\x8b\xf4\x96\x97\x83\x49\xa5\x16\x3b\xe1\xf2\x77\xb4\xc7\xc5\x08\x76\x21\x29\x57\x52\x48\xac\xce\x39\x5f\x55\xb3\x3c\x8b\x86\xbc\xe4\xff\x2e\x97\xa8\x42\x37\x09\xfd\x4f\x14\xbd\x9c\xab\xba\x97\x5c\x58\xf2\xd9\x99\x30\x32\x29\x04\xce\x27\x85\xd9\x7e\x9b\xaf\x4a\x17\x7d\x09\x20\x30\x67\xbe\x2c\xa5\xc0\x24\xdf\xb1\x77\x7b\x49\xe5\x8f\x68\xcf\xd2\x2f\x2b\x21\x8a\xa7\x03\xcf\x15\x9d\xf1\xcf\xc2\x0a\x09\xf3\x1c\xcf\x67\x63\x88\xfa\xd7\x32\x47\x00\xe1\xfa\x8f\x60\x88\x23\x73\x24\x38\x04\x3a\x4d\x8e\x20\xf4\x04\x00\xdf\x9f\x96\x2c\x38\xb8\xd5\x51\xe2\x29\xfc\x47\xa0\xc6\x39\x50\xe9\x80\xa3\x81\x38\xcc\xcd\x77\x59\xa8\x82\x32\x57\x49\xb6\x73\x91\x2d\xef\xb5\x8e\xec\xe2\x82\xbd\x53\x47\xaa\xec\xd8\x05\x05\xf6\xa6\x55\x2e\x5c\x46\x58\x85\x11\x8f\x86\x09\x42\xd2\x1c\x17\x42\x3f\x9d\xfa\xff\xf4\xd1\xa7\x1f\x3f\x13\x03\xc4\x3f\xe6\x80\x56\x55\x16\xd7\x24\x61\xbf\xac\x71\xf9\xaa\xd9\x36\x7e\xd9\xf1\x6b\x0c\x20\x22\xf7\x23\x15\xf4\xba\xb8\x18\x94\xe1\x70\xfb\x08\xce\x84\x7a\x84\x5f\x81\x2c\x8b\x8a\xdb\xf9\x8d\xfe\xc5\x05\x23\xc7\x89\x15\xee\xdb\xf2\xae\x6a\x06\x5c\xff\xb3\x24\x2e\x78\x3a\x02\x46\x24\xf0\x3b\xfe\x87\xfc\xd9\x0b\x86\x96\xb7\x90\xab\x37\x70\xdb\x48\xca\x17\x05\x81\xc1\xb0\x45\x9c\x85\xbf\x3d\xd8\xa6\x69\x6e\x25\x38\x7a\x89\xa4\x2f\x21\xc1\xd0\x0a\xf9\xee\xd5\xeb\xb8\xb4\x28\xf7\xdb\xe6\xde\x6c\x64\xe7\xf8\xa5\xce\x27\x03\x59\xe6\x5d\xb5\x0a\x2f\x4f\xfe\xca\x19\x33\xb3\x28\xd8\x76\xdb\x66\xff\x90\x0d\x73\x8e\x5f\xe9\xff\xe4\x2d\xe3\x40\xd4\x2d\x73\x69\xf1\xf2\x57\xec\x9c\x71\xa5\x6a\x16\x0f\xba\x52\x2b\xfe\xb4\x2f\xb5\x30\xf3\x11\x32\xaf\xbb\x38\xf7\xca\xb1\x2a\x76\x7e\x8e\xa5\x3e\x56\xbb\x9d\x19\x7a\xe2\x69\x99\xf3\xb0\xc4\x81\x20\x0f\xf8\x58\xdc\x50\x9c\x8f\x99\xcf\x32\x4d\x5e\x9a\x9b\x7a\x0a\xe6\x54\x41\xef\x9a\x8e\x05\x45\x36\x74\xd4\x62\x79\x86\x7b\x9a\xdd\xd8\x9c\x15\xfb\xc4\x49\xe5\x97\xcb\x66\x3e\xd0\x14\x01\x72\xb0\x1b\x70\x9c\xad\xf5\x8b\x7b\xb8\x08\x50\x61\x5f\x7f\x27\x82\xb6\x3a\xda\xc5\xe9\x22\x2a\x64\xee\xe2\xb4\xd9\x2e\x35\xd6\x0d\xb8\x9e\xf0\x6a\x17\x6c\x2d\x5e\x1b\x1b\x2a\xca\x42\x52\x8c\x7d\x94\xc0\x7d\x20\xa7\x8e\x00\x0d\x29\x97\xf5\x4a\x2c\xa0\x5a\x3f\x8f\x7c\xfc\x12\x4e\x02\xe1\x5d\x35\xe7\x65\xbe\xba\x75\x23\x22\xe1\x7a\x55\xb6\x3d\xbc\xeb\x53\xb4\xb3\x75\x7f\x05\xde\xf1\x6c\xff\xe2\x09\xe4\x4f\xb9\x9b\x87\x59\x88\xed\xa3\xba\x09\x10\x02\xfb\x1c\xdb\xdb\xee\xaa\x82\x94\x61\x2c\xc6\xe2\xd9\xd3\xfd\x8b\xb8\x3e\x51\x04\x74\x92\xa3\x6d\x8c\x16\x8e\x05\xa2\x0a\x81\xbe\x1c\xbe\x82\x38\x8a\x1b\x1f\x1e\xd4\xa1\x87\xa3\xbb\x28\x30\xde\x04\xa4\x6e\x1c\xe7\x0b\xde\xa5\x29\x4e\xcc\x78\x80\x1b\xda\x30\x20\x38\x18\x36\x48\x67\x01\x69\xc3\x48\x65\x34\x3b\xd3\x94\x18\xbf\x46\x9a\x97\x8f\xd6\x70\x43\xb3\x0a\xed\xf1\xe1\xc5\xc6\x98\x39\x23\x8c\x03\x65\xab\xae\x67\xaa\x22\x0b\x15\x05\xe6\x73\x16\x64\x1f\xaf\x30\xb2\x28\x47\x6d\xc5\x66\xe5\x60\x80\x62\x06\x3b\xd6\xce\xd9\x6c\x1b\x6a\x3a\x0b\x5a\x41\x50\x56\x85\xf0\x9b\x4c\x2f\x0f\x88\x43\x39\x1d\xc7\xbf\x68\xe9\x61\xd3\x04\x51\xae\x18\x54\x8a\xcd\x1a\x0e\x64\x11\xcf\xf5\x20\x47\x88\xe2\x45\x0f\x94\xd1\x49\x63\x9b\xcf\x8e\x1b\x44\x4c\xee\x06\xe2\x2d\xdb\x8a\x16\x1d\x47\x86\x5e\x81\xbd\xbc\xba\xc6\xe5\x42\xe2\x85\xc4\x68\xd6\x4c\xaf\xe9\x5f\x36\x24\x2d\x70\x54\x12\xdf\x44\x65\x67\xd1\x3a\x6d\x56\x2b\x76\x11\x55\xb5\x5e\xde\x39\x94\x66\x8a\xad\x8b\xad\xb8\x8b\x42\x67\x9b\xf1\x5d\x51\xba\x52\xdc\x36\x65\x26\xd0\xed\xcb\x55\x75\x43\x4c\xf8\x2d\xc9\xc4\x7c\x85\x51\x2e\xb9\x82\x61\x3e\xa8\xa3\xb9\x99\x40\x59\x62\x59\x65\x31\x3d\x43\xdd\x5d\x78\x3b\x48\x31\xef\x3d\x87\xa4\x88\x40\xc5\x05\x24\x0a\x93\xbe\x2a\xe1\x45\x6c\x8d\x86\x6c\x21\x17\x27\xd9\x22\x26\xf7\xc9\x58\x8d\x44\x03\xea\x28\x83\x51\x1f\x61\xf6\x3c\x33\x52\x36\xd9\x58\x61\x2e\xe5\xd0\x9b\x38\x1e\x13\x44\x17\x1b\xd7\x1b\x61\x0b\x58\x3e\x84\x21\xc9\x9d\x88\x13\xe6\xc5\xfb\x6d\xe9\x42\x2f\xcd\xb0\xb0\x97\x7b\x10\x7c\xd2\x11\xbe\x10\xb1\x67\x20\x72\x7e\x20\x2e\x9a\x43\xd7\x06\x5d\x0e\x73\xd4\x03\xa1\xdc\xcf\xcc\x88\xf4\x40\x66\x04\x89\x19\x71\x02\xe1\xbd\x35\x00\x32\x97\xcd\x98\x85\x29\xb8\x97\x03\x5e\x47\x94\xa8\x7b\x0a\x2d\x86\xd7\xc3\x84\x7c\x1f\xd8\x46\x01\x95\x47\xaf\x1b\x60\x86\x7a\x2d\xe2\x19\xc7\xf4\xbf\x60\xea\x7d\xf6\x14\x49\xbb\x0a\x62\x94\xc7\x97\xa9\x03\x8a\xe3\x8b\xb2\x0d\xe1\x0f\x47\x5f\x5b\xae\xf3\xb6\xb0\x00\x48\xa5\x7e\xf6\x4e\x80\xca\x43\xff\x76\xbe\xed\x1a\x6b\x82\x76\x2b\x81\xdc\xb2\xd6\x46\x84\xc2\x4f\x01\xe8\x85\x65\x70\xfe\x42\xb6\x16\xbb\x0e\x89\xe0\x87\x3d\xef\x01\xd9\x50\xd6\x0f\xa6\xfd\xdd\x9f\xae\x2e\xdf\x9d\xa4\xbf\x3f\x39\x1c\x0e\x4f\xb8\xfa\x93\xa1\xdd\xb2\x93\xad\xe0\x00\xcb\xff\x71\xf1\xf6\x24\x2d\xfb\xd5\xf7\x8b\xf4\x42\xb6\x86\xf4\x80\x4b\x0c\xe2\x39\xb9\x61\x8f\x0e\x93\x25\x1b\xc8\xff\xf9\x2d\xb3\x97\x38\x7e\xbd\xb8\x1e\x46\xf5\x87\x4c\x9b\x97\xdd\x14\x24\xa5\x02\x51\x94\xbc\xc4\x58\x92\x02\x83\xcb\x39\x48\xf8\x02\x60\xd5\x96\xef\x23\xa3\x43\x84\x1b\xe4\x77\x6c\x79\x1e\xb6\x85\xd0\xa9\x71\x34\x9a\x9d\xa2\xac\x2c\x7e\x19\xb7\x04\x83\x05\xee\xe9\x3e\x4f\xff\xc4\xe1\xa7\x8c\x52\xa1\x02\x2e\x32\x2a\x00\x70\x48\x4b\xd8\x61\xa9\x5e\x34\x2a\xc7\x05\xde\x74\x74\x5e\xf6\x08\x43\x98\xa3\x0d\x19\xb9\x1b\x9b\x5f\x4d\xdb\xa8\x74\xae\x51\x63\xad\x70\x6f\x71\x88\x44\xd4\x3c\xda\x03\x7c\x2e\x1d\xc6\xfb\x60\x7c\x24\xe9\x26\xf3\xec\x5e\x37\xd9\x84\xe3\x2b\xe0\x97\xf6\x99\x4a\x10\x13\x89\x2e\xe8\x41\x25\xbb\x49\x0f\xe2\x2d\xcd\x74\x96\x16\x1f\x08\x0f\xea\xb9\xcb\x8b\x8f\x20\xa3\x1a\x30\x90\x98\x64\x18\x21\xdd\x96\xc4\xbc\x2c\xdc\xe1\x7c\x98\x45\x7e\xe9\x2b\x06\x81\x37\x9a\x4d\xce\x66\x9e\x9d\xf8\xe2\x43\x31\x43\x5a\x35\x4f\x99\x78\xf4\x46\x85\xe3\x07\x24\x46\xc5\xac\x59\xc8\x0b\x35\x67\x92\x4a\x92\xa2\xba\xb9\x59\x2c\xdb\xe6\xd0\xb1\x7b\x18\xd7\xec\xd9\x60\xc5\xbf\xd3\x2b\xfc\x16\x90\x7d\xde\x0a\xcf\x94\x84\x64\x8a\xed\x85\x32\x25\x21\x99\xcc\x3a\x26\xd7\x9c\xcf\xa9\x04\x37\x8b\xf9\xd5\x01\x8e\x8b\x92\x92\x85\x54\xa1\xed\x72\xc8\x38\x95\x75\x7d\x0e\x6b\xd3\x15\xab\x3a\xa8\x74\xc5\x39\x0a\xc6\x49\xc3\xa8\x39\xc9\x58\xb3\xb6\x48\x35\x9c\x73\xde\x5f\x06\x6e\x68\x70\x04\x46\x4b\x53\xe1\x20\xf3\x20\xa1\xbb\x8d\x20\x0a\x15\xd8\x3c\x84\x22\x08\x48\xfd\xf5\xcd\x3b\xf9\x09\x93\x99\xc6\xed\xc1\x66\xf6\x92\x9d\x17\x66\x88\x5b\xcc\x19\xe4\xac\x4c\x0c\x9b\x22\xff\xdb\xeb\x45\xf8\xe5\x20\x8a\x36\xbf\x81\x87\x91\xff\xbb\x5c\x3a\x2c\x7d\x35\xd2\xfa\x9f\x8c\xab\x11\x72\x04\xd5\x57\x48\xb8\x7c\x35\x2e\xf0\x3f\x97\x97\x6f\x48\x73\x0a\x70\xf8\xa8\xf0\x18\x31\x8b\x1f\x91\xe2\x23\x62\x64\x15\x2b\x38\xaa\xf1\x8d\x3a\x04\x75\xf8\xdb\x69\xa0\x1d\xbc\x04\x64\x10\x7d\xbe\x76\x4e\xea\x7c\x2d\x26\x16\x5f\x06\xd1\xc9\x62\x87\xa3\x3a\xfe\x8a\x9a\xa9\x6c\xde\x6c\x4b\xe5\x78\x6b\x63\x15\x5a\x83\x29\x93\xcd\xc0\x08\xff\xec\x36\x8b\xf1\x42\x38\x53\x8f\xe2\x2c\xc5\x6f\x07\x65\x27\x01\x93\x4b\xb6\x2b\x82\xc3\x40\x08\x28\xdc\xb6\x17\x79\x7b\xcb\x97\xef\x61\x4e\xb2\x06\x0e\xad\xc6\x7b\xf2\xff\x70\xc5\xf4\xd1\x87\xf7\x92\x9a\x74\x18\x9b\x17\x51\x1b\x32\xa9\x89\x41\xae\x02\x9f\x5e\x12\x5b\xfc\x56\x52\xf2\x5a\xd3\x98\x32\xa6\xd1\x1a\x54\xf6\x64\xbc\x6e\x01\xbc\x43\xf4\x5f\xca\xff\xf3\xbf\xfe\x37\x31\xfb\x3d\x29\xa9\x3d\x22\x71\xf4\x12\x88\x5f\x77\xf3\x41\xf9\x27\x3a\x9e\x40\xff\x0e\x06\x22\xe8\x4f\x35\x78\x97\x52\x13\x1a\xe5\xfb\xfb\x46\xdf\x57\x6c\x03\x88\x89\x1c\xd2\xa4\x27\x73\x36\x88\x4d\xda\x30\xa2\xca\x54\xff\x77\x41\xe8\xb6\xb8\x58\x34\x09\xed\x54\xa2\x13\x13\x81\x9a\x0b\x00\x2e\x51\xd2\xa4\xb3\x7c\xf6\x17\x9d\xdc\x42\x44\x97\x9c\x20\x42\x7a\x18\x43\xd8\x2b\x26\xbf\xe9\x63\x45\x22\x92\xcb\x55\x49\x66\x2d\xce\xf5\x2c\x57\x07\x24\xb0\xcc\x35\x12\x76\xf4\xb8\xb3\xe8\x32\xbd\x45\x8b\xf8\xad\x99\x10\xbf\x30\x6c\x8d\x24\x72\xf5\x97\xc8\x95\x08\x75\x91\x44\x6f\x97\xc1\x8b\x62\xfa\xb5\x1d\xb3\x45\xb2\x2f\x9b\xbd\x04\x5a\x23\xc1\xb7\x56\xf8\x45\x28\x26\x3f\xb1\xa0\xbd\x41\x06\xed\x6b\x64\xe0\x3e\x17\x7c\x17\xfc\x3f\x41\x1c\xbc\x2a\x81\x9c\xab\x29\xcd\x1f\xc5\xda\xb7\xd1\x53\x03\xde\xbf\x83\x3b\x38\xd1\xdd\x7e\x6e\x1c\x88\x9a\x71\x4a\x4f\x6e\x66\x61\x65\x90\xfb\x10\x74\xe4\x25\x7f\xbc\x85\x55\x44\x03\x39\xb9\x2d\xe2\x72\x6a\x6f\x56\x92\xc1\xbd\x20\xbe\x53\x5b\xf3\x2b\x19\x86\x65\xd7\x4d\xb0\x65\x70\xb9\xa6\x0b\xaa\xf1\x7a\x91\x56\x3b\xf4\xbf\x08\x3c\xc7\x45\x54\x1d\xbf\xb4\xe1\x14\x56\x5c\x7e\x72\xd9\xe9\x96\x04\xb0\x6d\x24\x2c\xa2\x21\xb6\x8e\xfd\x72\xc4\xd1\x3c\xbd\x81\xf7\xf5\xae\xe6\x69\x1b\x0f\x3b\x9b\xff\x59\xeb\xf1\x7c\x7c\xbc\x2b\x9e\x06\xca\xbb\xa2\xb9\x88\xf9\x7f\x87\xa1\x96\x48\x4a\x87\x31\xd9\xdb\x47\x2d\xb5\x5a\xc7\x19\xfa\x8e\xdf\x7c\xfc\x7a\x7b\x6d\x74\x63\xec\x0f\x58\x6c\xe3\x19\x07\x62\x70\x34\x2a\x87\x10\x36\x08\xc4\x71\x50\xc7\xa4\x63\x2f\x15\x47\x3c\x63\x2c\x43\x4f\xc2\x9e\x30\xd3\x07\xab\xc4\x41\x50\xe1\x30\x9d\xfa\xef\xc3\x86\x4c\x4b\x96\xf0\x27\x31\x97\x7c\x39\x06\xea\x88\xfd\xed\xa1\x60\xa8\xf1\x28\x99\xd7\xb8\x07\xc7\xc2\x41\x3e\x58\x23\x3c\x66\x63\x1b\xf7\xbf\x27\x40\x6a\xde\xc6\xc5\x8a\xc3\xc1\x54\x5d\x1c\xca\x86\x3f\xaf\xb0\x71\x2c\xb8\xe1\x4b\x1e\xcc\xf2\x0c\xd7\x63\x6e\xc0\x3b\x62\xfd\x78\xd0\x1c\x3e\x29\xdc\x7b\xa1\xd7\x67\xec\xf2\xcd\x28\xdf\xb3\x3e\xc4\xfe\xee\x25\x9a\xc9\x03\xc9\x6f\x88\x3b\xb3\x25\xe3\xfa\x71\x1f\x71\x58\x98\xe5\x3a\x33\xe3\x05\x12\x2e\x9f\xb0\xb6\x2a\x11\xa5\x73\x26\x29\x57\xa2\x17\xdb\xf4\x16\xa8\x1f\x84\xdc\xf0\x7b\x0e\x4b\x93\xcf\xd5\x53\x4f\x71\xcd\x81\x0e\xb4\x28\xf7\x7b\x5e\xc2\xdc\x5d\x79\xe1\x65\x12\x40\x15\x37\x75\x54\x90\x90\x7f\x1e\xb7\x25\x0f\xa0\xe8\xe9\xf9\xae\x39\x24\x72\x74\x2e\xf8\x52\x5a\x2a\x37\xd2\x34\x27\x1e\x92\xe4\xb1\x8c\xa2\x71\xac\x98\x03\x89\xe9\x12\xb6\x3a\x2d\x1f\x45\xee\xe0\xe4\x70\x31\x3b\x76\xc1\x94\x05\x50\x48\x0d\x08\xb6\x60\xb9\x3e\x24\x8e\x85\xb6\x0a\x01\xd6\x77\x2b\x92\x68\xd4\x6f\x08\xf1\x47\x3a\xe6\x71\x4e\xba\x3b\x31\xfb\x01\xee\x1b\x70\x40\x86\xf0\xc3\x9d\x8d\x43\xde\x68\x72\xe3\x70\x0f\x80\xf9\x71\x84\x10\x7f\x64\x1c\xdc\xcb\x53\x7e\x33\x15\x8b\xf8\xd0\x78\x48\x39\xd4\xeb\x13\xa1\x75\xba\x1b\x0f\xd1\x87\xbe\x5c\x07\xe7\x35\x3c\x3c\xc5\x48\xfe\x60\xf3\xd1\xf4\xe0\x94\x12\x71\x34\xcc\x88\x08\xe2\x88\x9b\x8d\x01\xfe\xf2\x16\xe7\x95\x46\x4d\x07\x1a\xb8\xd8\x3c\xd8\xdc\x29\xa4\xe3\xf2\x22\x1d\x64\xac\x0b\x95\xeb\xa4\xf0\xcb\x07\xaf\xc0\x59\xf4\xae\xc8\x77\xe1\x91\x01\x01\xcf\x56\xb2\x90\xdb\xf6\x6e\x8f\x33\xab\x0b\x7a\x9d\x36\xe6\x58\x35\xa0\x1c\x8b\x9e\xc2\x19\xef\x0c\xa5\xb3\xc0\x98\xc5\x4c\xf9\xc4\x64\x56\xf1\x66\x19\xd4\x2e\xbf\x8f\x1c\x6c\x1c\xb5\xcc\x1a\x59\xb4\x6b\x8e\x9f\xd8\xd3\xa1\xf8\xb3\x5a\xae\xb0\x3b\x82\x91\xd7\x99\xf4\x84\x88\x1d\x4b\xc1\x56\x9f\x12\x88\x27\xbb\x75\x9b\xb3\xad\xd1\xd6\x9a\x99\x45\x40\x0a\x68\xf0\x67\x37\x4b\xf7\x42\xa0\xe7\x06\xf0\x60\x50\x43\x8f\x1f\x62\x0a\x5f\x31\x00\xb0\x8d\x87\x47\x00\xb6\x20\x17\xf1\x69\x18\x01\x0b\x78\x68\x20\xfa\xb4\xdf\x1f\x1f\x08\xf8\xc6\x1f\x1c\xc8\x89\x8d\x42\xaf\x7f\x16\xc5\xec\xfe\x7f\x68\x7c\x23\x75\x07\xc4\x19\xdd\x2f\x1e\x11\x7c\xf4\xcc\xb2\x23\xfa\xc0\xd7\x6c\xcd\xc2\xc1\xa0\xbe\x6f\x3d\xce\x7c\x53\x35\x2d\x21\x54\xd9\xba\x0f\xfd\xe3\x71\x58\x22\x7b\x6c\xfb\xf6\x5e\x45\x12\x9e\x5c\x1c\x15\xe9\xaf\x51\x89\x12\x06\x5f\x91\xdc\x39\xff\x04\xb4\x7f\x3e\xf2\x5e\xba\x3c\x3b\x29\xee\xbf\x2e\x7a\xbb\x7b\x7a\xfd\xf7\xc1\xab\xd7\xf1\x95\xf3\xf1\xdb\x03\x9d\x04\xba\xaf\x4d\x96\xb3\x97\xfd\x12\xef\x1c\xbf\xba\x27\x1c\xec\xf0\x98\xe9\x8a\x6f\xdd\x35\x75\x25\x7e\xd5\x0b\x49\xf1\xc5\x4b\x36\xc5\xa8\x1d\x86\xef\x5f\xb8\xe8\x98\xc4\xcf\x0e\xc6\x45\xb6\x31\xa9\x20\x20\xe9\xa0\x3c\xb8\x0a\xcc\xaa\x8e\xfd\x08\x5b\xc0\x48\x60\xc2\x1c\x82\x91\xe9\x38\xd0\xe8\xd0\xcd\xf5\x98\xb1\x23\x24\x55\x37\x90\x7b\x84\x99\x99\x04\xdf\x77\x2b\xf8\xbe\x9b\xbc\xf3\x79\x12\x64\x44\x38\x0f\x0b\xf6\xee\xd1\x93\x28\x3b\x3e\xf8\x7c\x3e\x42\x40\xe3\x2c\x8e\xfb\x8c\x32\xf2\xd5\xa4\x17\xd9\x54\x71\x3d\x09\x3f\x0a\x73\xd8\x98\xc8\x0e\x91\xa8\xf5\xf8\xba\x50\x58\x24\xb7\xe8\xa3\x2c\x7d\x4b\x30\x9e\x89\xd8\x54\xc3\xbc\x6d\xb3\xe6\x17\x00\x60\x84\x8c\xa7\xa7\xb2\x73\xdc\xa6\x45\x53\x46\x4d\x20\x86\x2b\xcc\x81\xdf\xa0\xcf\xbb\xb8\x36\xb6\x60\x98\xa1\xd7\x47\x26\x80\xa4\x53\xe7\xab\x0d\xe6\xbf\x98\x23\x24\x53\x8d\x1d\x31\xe9\x2b\xe2\x33\x90\xf2\xde\x63\x6a\xaf\x3b\xce\xc2\xf0\x33\xd2\x78\x4c\x33\x28\x5d\x11\xa6\xea\x4c\x6f\x54\x35\x1a\x2f\x7e\xc6\x99\x76\x7b\x2a\xbd\xc4\x8e\xeb\x1e\xac\x14\x9c\x62\x1c\x23\xa8\x37\xb6\xb4\xa6\x48\x1c\x0f\x1c\x67\xbe\x65\x3d\x18\xd5\x33\x9c\x7b\x5d\xad\xf3\x72\x02\x4b\x37\xe6\x3a\x76\x44\xf2\x87\xda\x18\x8d\xd2\x43\xb8\x66\xbe\x7e\xa8\xb0\x9e\x71\x7c\x2b\x2c\x72\xd1\x20\x23\xb6\x66\x20\x5f\x68\x61\x34\xc4\xd9\x26\xbe\x62\x90\xfc\x00\xed\x7a\xe5\x1e\xec\x3c\xe7\x8b\x9d\xed\x92\x23\x69\xf9\x0c\x2b\xe5\x21\xe5\xa6\x8e\x2d\x70\xf3\xd5\x1f\x1a\x19\x06\xc4\x3a\xf7\x5c\xf3\xc7\xc6\xd6\x96\xdd\x7d\xbd\xca\xf0\x7a\x6a\xb7\xd1\x10\xbf\x0f\xa5\xd8\xca\x1f\x2f\x28\xef\x69\xae\x77\x16\x4a\xdc\x95\xec\x1e\xcb\xcd\xf7\xef\x56\x94\x8f\xd7\x5b\xe9\x88\x7b\x02\x9e\x88\xda\x26\xc0\x91\x78\xd6\x7f\xff\x60\x47\xa3\xb9\x04\x0c\x31\xc0\x6d\x8b\xa1\xf4\xe5\x1f\x9a\x41\xe0\x84\x0c\xa7\xc1\x64\xa0\xbb\x1f\xbc\x22\x7c\xe2\x85\x11\xf7\x1d\x5f\xd3\xe0\xab\xba\xfc\x28\x9e\x86\x53\xe8\x81\x66\xaf\xe3\xaa\xf1\xe8\xc8\x84\xc2\x7e\x1f\x58\xa1\xc7\xd1\x28\xbe\x3c\xc7\xf0\x10\x92\x77\xbf\x87\x3d\x3e\xbe\xe0\x1e\xfc\xfe\x88\xdf\x21\x53\x90\x5b\xf7\xd9\xba\x69\x1b\x5a\x1e\x98\x88\xed\x26\xfe\x2b\xcb\xeb\x66\x2a\xc0\x04\x7e\x9f\x0d\x1a\xe0\x6d\x75\x2e\x90\x4d\xf2\x03\xc7\xa7\xfa\x5a\x7d\xd3\xe7\x5b\xab\xc3\x16\xc8\x95\xda\xad\xaf\xb9\xc0\x6a\x9d\x5a\x41\x50\x53\xeb\x34\x4b\x8e\xa7\x43\x15\x05\xbe\xd4\x9c\x00\x16\x6e\x0e\x0e\xbf\x26\x74\x0d\xfb\x8c\xa7\x8a\x60\x5a\xc9\x4e\xdf\x22\x3b\xbd\xe6\xec\x69\x0f\x36\x2a\x57\x6d\x34\xa8\x63\xf5\x6e\xda\x72\x52\xe7\x25\x5f\x29\x18\xc3\x1b\xe6\x36\x65\xbe\x9f\xe0\xed\x35\x65\x4e\xb0\x06\xc8\x29\x02\x00\x7b\x1c\x0b\x61\xad\xaa\x80\x62\x15\xd6\x78\x43\x59\xc7\xa0\xf1\x10\xd1\x18\x1e\x9f\x45\x38\x52\x43\xcf\xec\xf1\xa8\xd4\x67\x33\x19\x55\xb3\xfc\x1b\x3e\x22\xa0\xd0\x97\xf2\x33\x80\x5a\x36\x4d\xcf\x6f\xb5\xee\x59\xdc\x5a\xdd\x3a\x34\xfd\x6a\xf9\x2c\x6e\xad\x6e\x27\x98\x12\xe8\x29\xaa\x04\xfa\x38\xae\x76\x7c\x9f\x89\xfa\x6a\x87\x55\x3f\xd0\x06\x75\x1d\x5e\x5c\xf1\xdd\xa8\x2b\x57\x30\xe9\x71\x52\x33\xa4\xd0\x71\xe5\xb9\x9e\x57\x24\x44\x94\xb3\x5d\x9f\x71\xc9\x83\x7d\x4f\xea\x86\x9d\x4f\xaa\xcf\xed\x14\x3c\x34\xc3\x46\xe7\xe5\xb0\xba\x2d\x7b\x8e\xc9\xdd\x64\xf0\x30\x87\x6d\xbd\x37\xb0\xf4\x57\x80\xa5\xaf\x09\x2c\xbd\x96\x2f\x01\x4c\x5b\xa5\x43\x67\x57\xf6\x39\x22\x05\x82\x56\x5e\x9d\xd1\x0a\x70\x76\x91\xcf\xd5\x82\x75\x26\x53\x29\x5b\x77\x21\x0b\x3e\x41\x0b\xfa\x8d\x02\x11\xbc\x4f\x1d\xc8\x5c\x6b\xac\x06\xc8\xe9\xb7\xba\x5f\xc9\x2b\x2a\xac\x18\xd0\x18\x3e\x48\x4e\x00\x8b\x9b\xf7\x04\x6b\x3c\x12\x4e\x71\x5c\xc1\x27\xf0\xeb\x98\x51\x0a\x07\xf3\xc0\xc2\xb8\x08\xee\x7d\x3e\x74\xb3\x80\xfb\x5c\x36\xd3\x51\x48\xeb\xde\x00\xad\xe7\x31\x9c\x76\xda\x09\x2a\x85\xad\x88\xa6\x26\xb1\x9b\x7a\x4d\xde\xbe\x52\x84\xd0\x4d\xbb\x24\x8f\x6f\x15\x09\xec\x17\x9f\xde\x56\x30\x91\x5e\x21\xb3\x4a\x8e\xc9\x5b\x78\x43\xce\xd2\x56\x06\x4b\x94\xda\xf4\x34\x2f\x7a\x07\x5c\xf3\xf4\xc2\x88\xeb\xd8\xea\x87\x77\x24\xb4\x45\x08\xa6\x16\xb2\x12\xbf\xc6\xaa\x91\x2b\x02\x28\xf7\x02\xc5\x93\xb4\x0d\x2b\x43\x69\x70\x1f\xa9\x89\x1a\x78\x0b\x7d\x22\x98\xdb\xd1\xf7\x98\xec\x22\xf5\x1f\x7c\x92\xc9\xcf\x26\xc0\x31\x1c\xdd\x31\x76\xab\x2e\x0b\xd1\x39\xbe\x87\x9d\x8f\xd0\xcb\xe0\x8a\xe1\x08\x14\x9e\xef\xf0\x51\xf1\xc0\xfd\x68\x28\x87\xa3\x0f\x1f\x33\xd0\x40\xa9\x49\x0b\x41\x9d\xe0\x0b\x10\x1c\x6e\x2a\xd7\x3d\xe6\x50\xe4\xad\x83\x86\x21\xf7\xb4\x15\xa0\x1f\x74\x2d\xc5\xb8\x98\x7f\x71\xef\xff\xcb\xa3\x83\xe1\x00\xfc\xd3\x83\x47\xfa\xff\x7f\xf2\xf4\xe0\xd8\x32\xeb\xde\x1e\xc4\xdb\x6a\x0b\x04\x5f\xc7\xfb\x38\x72\x5c\x45\xfb\x19\x35\xc2\x7d\x8a\x8c\xd8\x95\x8f\x2c\x6f\xf6\x35\x8b\xaf\x58\x6d\xb0\x45\xc7\xfd\x05\xf1\xf2\x51\x6f\x52\x63\x7a\xbf\x3f\x1e\x82\xe4\x4c\xbd\x45\x92\xaf\xd6\x88\x54\xaf\xa4\x96\x6a\x3d\x5a\xc0\x24\xa1\x2e\x1a\xcb\x9b\x7c\xec\x8c\x37\xb5\x6e\xed\xd1\x90\xe3\xcd\x1d\x8d\x5a\x2a\xc9\x3d\x41\x0b\xc5\x9f\x65\x26\x0a\x18\x4c\x45\x72\xc2\x1b\x76\x92\x23\x6f\x6d\xe1\xe9\x5a\x49\x69\xfe\x34\x0a\x23\x18\xb1\x36\x13\x77\x1d\x34\x0a\xa0\x59\x5e\x15\x8c\x65\x1c\xff\x27\xb9\xe1\xb7\xcd\x24\x47\x3f\x13\x85\x2f\x44\x49\xce\x12\xf1\x43\x88\x72\x63\xe3\xd3\xf9\x3b\xeb\xb6\xef\xdb\x6a\x39\xf4\xf3\xaf\xc8\xb9\xd2\x09\xb4\xb9\xfd\x99\x76\xd3\x2f\xc0\x76\x83\x35\x7c\x35\x7c\xa9\xdd\xd1\xfb\xe0\x23\x38\xb9\x47\x98\xba\x4b\xa9\x2f\xf1\x5b\x0b\x77\xcc\x23\xb3\x8e\xbf\x46\x78\x41\x2c\xa6\x48\xaf\x4e\xb5\x04\x1f\x83\x52\xeb\x08\xbe\x19\x75\x74\x15\x18\x72\xf2\x71\x29\x5f\xa4\x78\x45\x51\x80\x5c\x7d\x8d\xae\x97\x87\xc2\xe4\x25\xb6\xeb\xb7\x57\x94\x5c\xb5\xf7\xe2\x30\xd2\x75\x61\x8f\x81\x7e\x82\xc9\x9e\xe7\x3d\xbd\x70\x1f\xb9\x0a\x56\x5a\x9b\xe4\x0f\xe8\x64\xc1\xb7\x21\xb5\x71\x1a\x7f\xa3\x9f\x87\x50\x83\xa9\xd2\x2a\xbf\x65\x4a\xb4\x4a\xff\xac\x1d\x7f\xae\x8e\xc9\x5e\x5f\xad\xd3\x15\x98\x1c\x46\xb1\xe5\x16\x07\x8d\x3b\x94\x42\x7a\x0f\xcf\xca\xa8\x83\x3f\xf8\xc6\x5c\xd8\x56\x70\xa8\x3c\x30\xd6\xd9\xbb\x5c\xf1\x03\x09\x21\x60\x26\xfb\xcf\x1e\x46\x89\x1a\x76\x4e\xa6\x69\x85\xe8\x85\x94\xa8\xd2\x7c\x18\xc0\x43\x6f\xa3\x88\x51\xc0\x94\x71\x67\xf3\x56\x65\x3c\x36\x7d\x2b\xec\x43\xdf\xd7\x0b\x40\xee\xc4\xb5\x16\x40\xd8\x97\x41\x03\xa0\xf9\xef\xbb\x29\xc0\x98\xa7\x68\xf6\xe8\xb3\x5f\xd1\xf7\xbe\xac\xa6\x7d\xbe\xa4\x19\x44\xdb\xc6\xe7\x85\xf4\x0e\xc7\x07\x64\xb2\xa0\x65\xe0\x73\xdf\xd8\x0b\x8a\xb4\x23\x2e\x0a\x3b\xc1\x09\xc5\x1f\x1c\x7a\xf0\x7b\x80\x86\x60\x36\xb9\xaf\x32\xb9\x1d\x1f\xd4\x81\xc1\x7f\x85\x30\xde\x69\x25\x1a\xf7\xb4\x06\x8d\xfb\x08\xb8\x38\x81\x8d\x9f\x5f\xe1\x97\xb0\x10\x37\x62\x0e\x2d\x53\x2a\xb2\x09\x4b\xde\xf8\xe9\xe5\x10\x07\xc5\xd2\x13\x86\xfb\x46\xd3\x2c\x69\xf8\x6f\x5c\x86\xdd\xf2\xd7\x29\x83\x83\xc0\xe7\x86\x47\x9a\xcf\x0d\x3f\x82\xe9\x73\xe7\xbe\x4a\x39\x2d\xf5\x9e\xf9\xef\x38\x36\xe5\xdb\xbd\x7c\xa8\xb3\xfb\x16\x9f\x22\xfb\x3e\xa8\x11\x7e\xd1\x32\xce\x1d\xb7\xa1\x1f\xd0\x1a\x35\x61\xcc\x32\xda\x32\xd5\xea\x08\x62\xdc\x77\x74\xa2\xc7\x08\x81\x7e\xf9\x1e\x9b\x1e\x2b\xd1\x07\xf4\xc6\xc4\xec\x99\xad\x23\xe5\x90\xd1\xda\xc0\x38\xa4\x3d\xfa\xb2\x9c\x7e\xcd\x44\x63\xdb\xdd\xb7\x7b\x7e\x45\xb6\x1f\xe1\xec\x67\xe3\xc6\xdf\x8b\xe3\xa0\x73\xab\x12\x7f\xe0\x6f\xfa\x65\x3f\x05\xb3\x17\x51\x61\x11\x98\x3c\x9e\x0a\x53\x80\xbe\x9d\x6a\x8c\x41\xae\x90\x70\x7c\x77\xb6\x55\xf3\xb7\x5c\x33\x41\x94\x77\xfa\x16\xf6\x6e\x37\xee\xe8\x23\x23\x51\x25\xf9\xb6\x89\xfb\xe6\xc1\xb4\xb2\xdd\x86\x72\x8b\x68\xb7\x3b\x66\x17\x91\xfd\x2c\xe1\x3b\x3d\xd7\xf4\xdb\xbd\xd2\xe3\x56\x4b\x2e\x6e\x40\x1f\x96\x6f\x2b\xeb\x55\x0e\xa8\xc5\x94\xe3\xd6\xe9\xb6\xda\xf3\xc1\xac\x8f\xad\xf3\xf2\x50\x0e\x4e\xe7\x3f\x23\x27\x44\x73\xc8\x9b\x2f\xf0\x7b\x7e\x88\x0a\x3b\x95\x03\xe3\x72\x23\x29\xa2\xf4\x26\x20\xa7\xd7\xbf\xbd\xbd\x1c\x41\xce\x6c\x51\x2d\x99\xd9\xd2\xf1\xf7\x25\xc3\x0d\x2c\xce\x1c\x37\x05\x38\x70\xe6\x67\x20\x90\x47\x27\x20\x54\xe4\x7d\xb3\x20\x9f\xd9\x86\x94\xde\x8a\x7c\x2f\x7b\x46\x29\x4d\x7e\xc7\x40\xc1\x9a\x0a\xd4\x78\x51\x5d\xaf\x75\xd8\x67\x2d\x8e\x08\xcf\x11\x24\x48\x20\xe0\x08\x12\x6c\x3b\x3b\x3c\x83\x26\xa5\xf5\xae\x2a\x54\x74\x14\xf8\xf7\x9a\x65\xa0\x06\xe2\x5b\x36\x08\x6d\xda\x0d\x93\x48\xb7\x72\xf2\xdb\x19\x7e\x45\x4b\xa7\x5b\x91\x77\x8c\xc0\xfa\x8d\xc8\x8f\xb1\x4a\x0d\x03\x5e\xaf\x1c\x62\xcc\xa4\xf4\xea\xcc\xbf\x4a\x05\xeb\xd3\x68\x32\xdb\xea\xa6\x74\xb6\x2a\x9d\xcd\x5b\xca\x8b\x80\xf9\xc3\xb0\x9d\x5d\x39\x93\xcf\xe1\xf0\xa7\x25\x47\x93\x08\x9b\xd2\x99\x4c\x5a\xda\x57\xb0\x1f\x06\x78\x91\x8c\x79\x8c\x1b\xb4\x72\xee\x00\x5c\x59\xf7\x98\xe1\xda\x83\xf0\xc1\x0e\xf1\xaf\x33\xfb\x13\xda\xf5\xce\x27\xf3\x6c\xcf\x0c\xa5\x67\x17\xc3\xe0\xec\xb2\x78\x81\xc5\xaa\x95\x07\x2e\xf8\x1f\x73\x14\x17\x49\x10\x69\x7c\x96\xd7\x11\xed\x15\x83\x5c\xb7\xd1\xa4\x87\x0f\x5e\xdf\x00\x9a\xac\x60\xee\xd9\x8e\x08\xa0\xfc\xbd\x5c\x0d\x81\x63\xe1\x37\xf9\xad\x96\x3c\xdf\x4c\x63\xe1\x81\x43\x8d\x57\x51\xde\x4b\x4e\x00\x33\x13\x11\xef\x86\x8e\x20\x47\x0b\x76\x3c\xda\xbf\xeb\x1e\x0a\x10\x43\x59\xcc\x85\xc5\x39\xc8\xcf\x6c\x2b\xb7\x2f\x46\x61\x18\x06\x1b\xca\x21\x61\x5e\xf6\x43\x24\xa9\xb9\xb2\x99\x81\x5b\x51\x83\xaf\x9f\xee\x17\x01\x2c\x84\xf1\xe0\xa1\x50\x19\x83\x94\x7f\x29\xc8\x2a\xf9\x24\x51\x0d\x9f\x47\x4f\xc7\x99\x01\x32\x08\xa4\x89\x6e\x00\x3d\x92\xa7\x64\xe4\x9a\x94\x55\xe2\x18\x22\x79\x07\x27\x80\x7d\xda\xb5\xab\xa7\x8f\xc2\x07\x68\xd8\x26\xe4\x01\x3e\xfd\x20\xaf\xd3\xfc\xa4\xaf\xd3\xe8\x38\xec\x0b\xeb\x7f\xd5\x57\x6d\xe4\x77\xd8\xae\x18\x3e\xa4\xe9\xee\x3f\xb9\xd6\xff\x9a\x68\xb8\x85\x6f\x42\x33\xf0\x4c\xec\xd7\x34\xe4\x5e\x49\xd0\xf9\xd9\xef\x11\x5e\x70\x29\x95\x11\x22\xb7\x53\xc7\xcf\xf5\x2a\xaa\x70\xb7\x95\xef\xe2\x78\x3c\xd1\x8f\x87\x11\x15\x35\x35\x41\x54\xb3\xe3\x5b\x88\xd9\x8f\x99\x7f\x9e\x0a\xd7\xf0\xa4\xa0\xea\xf8\xa3\x25\xf2\x3d\x66\x12\x91\x7f\x74\x4f\x53\x25\x9f\xfa\xa6\xd9\x7e\x4e\xf2\x35\xcf\x89\xfe\x26\x78\xe0\x4d\x22\x76\x11\x95\x46\xc9\x44\x7e\x72\xea\x07\x6e\xf8\x07\xd2\x53\x89\x81\xf0\xeb\x42\xc9\x0f\x3b\x64\xc8\x07\xf6\x90\xb1\x41\x06\xbf\x0c\x88\x9f\x05\x7e\x16\xf9\x3d\x7e\x1d\xf0\xeb\x50\x96\xb7\x52\x19\x1c\x86\xaa\x93\xde\xb7\x41\xce\x3d\x7e\xdf\x97\x39\x6a\x4b\x3f\xfa\x58\x90\xfd\x78\xc4\x2f\x81\xc9\xf7\xfc\x90\x6f\x3f\x28\x5f\x9e\xb5\x7e\xee\x5f\xb8\x7e\xc4\x1e\xb2\x7b\xcd\x42\x8a\x72\xb8\x7b\xcd\x92\xe4\x23\xb0\x09\xd2\x66\xb5\x41\x49\x53\x2e\x8f\x43\x33\x25\x49\x79\x6d\x7e\xc8\xfc\xb8\x34\x85\x5c\x3f\x2a\x4d\x25\xff\x37\x00\x00\xff\xff\x94\xef\x2b\x59\x95\x83\x00\x00") func confLocaleLocale_enUsIniBytes() ([]byte, error) { return bindataRead( @@ -786,7 +786,7 @@ func confLocaleLocale_enUsIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 33385, mode: os.FileMode(420), modTime: time.Unix(1437725453, 0)} + info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 33685, mode: os.FileMode(420), modTime: time.Unix(1437742006, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/public/css/gogs.min.css b/public/css/gogs.min.css index ff462cca..3b697acb 100644 --- a/public/css/gogs.min.css +++ b/public/css/gogs.min.css @@ -1 +1,1143 @@ -@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('embedded-opentype'),url(../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('woff'),url(../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('truetype'),url(../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons)format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gist-private:before,.octicon-git-fork-private:before,.octicon-lock:before,.octicon-mirror-private:before{content:'\f06a'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-markdown:before{content:'\f0c9'}.octicon-megaphone:before{content:'\f077'}.octicon-mention:before{content:'\f0be'}.octicon-microscope:before{content:'\f089'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-public:before,.octicon-mirror:before{content:'\f024'}.octicon-mortar-board:before{content:'\f0d7'}.octicon-move-down:before{content:'\f0a8'}.octicon-move-left:before{content:'\f074'}.octicon-move-right:before{content:'\f0a9'}.octicon-move-up:before{content:'\f0a7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-package:before{content:'\f0c4'}.octicon-paintcan:before{content:'\f0d1'}.octicon-pencil:before{content:'\f058'}.octicon-person-add:before,.octicon-person-follow:before,.octicon-person:before{content:'\f018'}.octicon-pin:before{content:'\f041'}.octicon-playback-fast-forward:before{content:'\f0bd'}.octicon-playback-pause:before{content:'\f0bb'}.octicon-playback-play:before{content:'\f0bf'}.octicon-playback-rewind:before{content:'\f0bc'}.octicon-plug:before{content:'\f0d4'}.octicon-file-add:before,.octicon-file-directory-create:before,.octicon-gist-new:before,.octicon-plus:before,.octicon-repo-create:before{content:'\f05d'}.octicon-podium:before{content:'\f0af'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-puzzle:before{content:'\f0c0'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-repo-delete:before,.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-gist-fork:before,.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search-save:before,.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-log-in:before,.octicon-sign-in:before{content:'\f036'}.octicon-log-out:before,.octicon-sign-out:before{content:'\f032'}.octicon-split:before{content:'\f0c6'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star-add:before,.octicon-star-delete:before,.octicon-star:before{content:'\f02a'}.octicon-steps:before{content:'\f0c7'}.octicon-stop:before{content:'\f08f'}.octicon-repo-sync:before,.octicon-sync:before{content:'\f087'}.octicon-tag-add:before,.octicon-tag-remove:before,.octicon-tag:before{content:'\f015'}.octicon-telescope:before{content:'\f088'}.octicon-terminal:before{content:'\f0c8'}.octicon-three-bars:before{content:'\f05e'}.octicon-thumbsdown:before{content:'\f0db'}.octicon-thumbsup:before{content:'\f0da'}.octicon-tools:before{content:'\f031'}.octicon-trashcan:before{content:'\f0d0'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-unmute:before{content:'\f0ba'}.octicon-versions:before{content:'\f064'}.octicon-remove-close:before,.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}body{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif,'微软雅黑';background-color:#FAFAFA}img{border-radius:3px}.full.height{padding:0;margin:0 0 -87px 0;min-height:100%}.following.bar{z-index:900;left:0;width:100%;padding:.7em 0}.following.bar.light{background-color:#fff;border-bottom:1px solid #DDD;box-shadow:0 2px 3px rgba(0,0,0,.04)}.following.bar .ui.secondary.menu{height:30px}.following.bar .column .menu{margin-top:0}.following.bar .brand{float:left;margin-right:5px}.following.bar .head.link.item{padding-right:0!important}.following.bar .head.link.item .dropdown.icon,.following.bar .head.link.item .menu .octicon{margin-right:5px}.following.bar .user.avatar{padding:0;margin-top:1px}.following.bar .searchbox{background-color:#f4f4f4!important}.following.bar .searchbox:focus{background-color:#e9e9e9!important}.following.bar .octicon{width:16px;opacity:1!important;text-align:center}.ui.left{float:left}.ui.right{float:right}footer{margin-top:40px!important;background-color:#fff;border-top:1px solid #d6d6d6;clear:both;width:100%;color:#888}footer .fa{width:16px;text-align:center;color:#428bca}footer .links>*{border-left:1px solid #d6d6d6;padding-left:8px;margin-left:5px}footer .links>:first-child{border-left:none}.hide{display:none}.center{text-align:center}.text-error{color:#d95c5c!important}.img-1{width:2px;height:2px}.img-2{width:4px;height:4px}.img-3{width:6px;height:6px}.img-4{width:8px;height:8px}.img-5{width:10px;height:10px}.img-6{width:12px;height:12px}.img-7{width:14px;height:14px}.img-8{width:16px;height:16px}.img-9{width:18px;height:18px}.img-10{width:20px;height:20px}.img-11{width:22px;height:22px}.img-12{width:24px;height:24px}.img-13{width:26px;height:26px}.img-14{width:28px;height:28px}.img-15{width:30px;height:30px}.img-16{width:32px;height:32px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.home{padding-bottom:120px}.home .logo{max-width:250px}.home .hero h1,.home .hero h2{font-family:'PT Sans Narrow',sans-serif}.home .hero h1{font-size:7em}.home .hero h2{font-size:4em}.home .hero .octicon{color:#d9453d;font-size:60px;margin-right:10px}.home .hero.header{font-size:24px}.home p.large{font-size:20px}.home .stackable{padding-top:30px}.home a{color:#d9453d}.install{padding-top:45px;padding-bottom:120px}.install .attached.header{background:#f0f0f0}.install form label{text-align:right;width:40%!important}.install form input{width:35%!important}.install form .field{text-align:left}.install form .field .help{margin-left:41%}.install form .field.optional .title{margin-left:38%}.install .ui .checkbox{margin-left:40%!important}.install .ui .checkbox label{width:auto!important}.form .help{color:#999;padding-top:.6em;padding-bottom:.6em;display:inline-block}.repository{padding-top:15px;padding-bottom:120px}.repository .head{height:75px;padding-top:20px;background-color:#FCFCFC}.repository .head .mega-octicon{width:30px}.repository .head .fork-flag,.repository .head a{font-weight:300}.repository .head .ui.label{margin-top:5px;vertical-align:top}.repository .head .fork-flag{margin-left:38px;display:block;font-size:11px;line-height:10px;white-space:nowrap}.repository .head .button{margin-left:10px}.repository .head .button i{margin-right:5px}.repository .head .num{font-weight:700}.repository .head .octicon{height:5px}.repository .navbar{height:60px;padding-top:20px}.repository .filter.menu .label.color{padding:0 8px}.repository .type.item .menu{right:0!important;left:auto!important}.repository .issue.list{list-style:none;font-size:13px;padding-top:45px}.repository .issue.list .item{padding-top:15px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .issue.list .item .title{color:#444;font-size:15px;font-weight:700;margin:0 6px}.repository .issue.list .item .title:hover{color:#000}.repository .issue.list .item .comment{padding-right:10px;color:#666}.repository .issue.list .item .desc{padding-top:5px;color:#999}.repository .issue.list .page.buttons{padding-top:15px} \ No newline at end of file +@font-face { + font-family: 'octicons'; + src: url('../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6') format('embedded-opentype'), url('../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6') format('woff'), url('../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6') format('truetype'), url('../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons') format('svg'); + font-weight: normal; + font-style: normal; +} +.octicon, +.mega-octicon { + font: normal normal normal 16px/1 octicons; + display: inline-block; + text-decoration: none; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mega-octicon { + font-size: 32px; +} +.octicon-alert:before { + content: '\f02d'; +} +/*  */ +.octicon-alignment-align:before { + content: '\f08a'; +} +/*  */ +.octicon-alignment-aligned-to:before { + content: '\f08e'; +} +/*  */ +.octicon-alignment-unalign:before { + content: '\f08b'; +} +/*  */ +.octicon-arrow-down:before { + content: '\f03f'; +} +/*  */ +.octicon-arrow-left:before { + content: '\f040'; +} +/*  */ +.octicon-arrow-right:before { + content: '\f03e'; +} +/*  */ +.octicon-arrow-small-down:before { + content: '\f0a0'; +} +/*  */ +.octicon-arrow-small-left:before { + content: '\f0a1'; +} +/*  */ +.octicon-arrow-small-right:before { + content: '\f071'; +} +/*  */ +.octicon-arrow-small-up:before { + content: '\f09f'; +} +/*  */ +.octicon-arrow-up:before { + content: '\f03d'; +} +/*  */ +.octicon-beer:before { + content: '\f069'; +} +/*  */ +.octicon-book:before { + content: '\f007'; +} +/*  */ +.octicon-bookmark:before { + content: '\f07b'; +} +/*  */ +.octicon-briefcase:before { + content: '\f0d3'; +} +/*  */ +.octicon-broadcast:before { + content: '\f048'; +} +/*  */ +.octicon-browser:before { + content: '\f0c5'; +} +/*  */ +.octicon-bug:before { + content: '\f091'; +} +/*  */ +.octicon-calendar:before { + content: '\f068'; +} +/*  */ +.octicon-check:before { + content: '\f03a'; +} +/*  */ +.octicon-checklist:before { + content: '\f076'; +} +/*  */ +.octicon-chevron-down:before { + content: '\f0a3'; +} +/*  */ +.octicon-chevron-left:before { + content: '\f0a4'; +} +/*  */ +.octicon-chevron-right:before { + content: '\f078'; +} +/*  */ +.octicon-chevron-up:before { + content: '\f0a2'; +} +/*  */ +.octicon-circle-slash:before { + content: '\f084'; +} +/*  */ +.octicon-circuit-board:before { + content: '\f0d6'; +} +/*  */ +.octicon-clippy:before { + content: '\f035'; +} +/*  */ +.octicon-clock:before { + content: '\f046'; +} +/*  */ +.octicon-cloud-download:before { + content: '\f00b'; +} +/*  */ +.octicon-cloud-upload:before { + content: '\f00c'; +} +/*  */ +.octicon-code:before { + content: '\f05f'; +} +/*  */ +.octicon-color-mode:before { + content: '\f065'; +} +/*  */ +.octicon-comment-add:before, +.octicon-comment:before { + content: '\f02b'; +} +/*  */ +.octicon-comment-discussion:before { + content: '\f04f'; +} +/*  */ +.octicon-credit-card:before { + content: '\f045'; +} +/*  */ +.octicon-dash:before { + content: '\f0ca'; +} +/*  */ +.octicon-dashboard:before { + content: '\f07d'; +} +/*  */ +.octicon-database:before { + content: '\f096'; +} +/*  */ +.octicon-device-camera:before { + content: '\f056'; +} +/*  */ +.octicon-device-camera-video:before { + content: '\f057'; +} +/*  */ +.octicon-device-desktop:before { + content: '\f27c'; +} +/*  */ +.octicon-device-mobile:before { + content: '\f038'; +} +/*  */ +.octicon-diff:before { + content: '\f04d'; +} +/*  */ +.octicon-diff-added:before { + content: '\f06b'; +} +/*  */ +.octicon-diff-ignored:before { + content: '\f099'; +} +/*  */ +.octicon-diff-modified:before { + content: '\f06d'; +} +/*  */ +.octicon-diff-removed:before { + content: '\f06c'; +} +/*  */ +.octicon-diff-renamed:before { + content: '\f06e'; +} +/*  */ +.octicon-ellipsis:before { + content: '\f09a'; +} +/*  */ +.octicon-eye-unwatch:before, +.octicon-eye-watch:before, +.octicon-eye:before { + content: '\f04e'; +} +/*  */ +.octicon-file-binary:before { + content: '\f094'; +} +/*  */ +.octicon-file-code:before { + content: '\f010'; +} +/*  */ +.octicon-file-directory:before { + content: '\f016'; +} +/*  */ +.octicon-file-media:before { + content: '\f012'; +} +/*  */ +.octicon-file-pdf:before { + content: '\f014'; +} +/*  */ +.octicon-file-submodule:before { + content: '\f017'; +} +/*  */ +.octicon-file-symlink-directory:before { + content: '\f0b1'; +} +/*  */ +.octicon-file-symlink-file:before { + content: '\f0b0'; +} +/*  */ +.octicon-file-text:before { + content: '\f011'; +} +/*  */ +.octicon-file-zip:before { + content: '\f013'; +} +/*  */ +.octicon-flame:before { + content: '\f0d2'; +} +/*  */ +.octicon-fold:before { + content: '\f0cc'; +} +/*  */ +.octicon-gear:before { + content: '\f02f'; +} +/*  */ +.octicon-gift:before { + content: '\f042'; +} +/*  */ +.octicon-gist:before { + content: '\f00e'; +} +/*  */ +.octicon-gist-secret:before { + content: '\f08c'; +} +/*  */ +.octicon-git-branch-create:before, +.octicon-git-branch-delete:before, +.octicon-git-branch:before { + content: '\f020'; +} +/*  */ +.octicon-git-commit:before { + content: '\f01f'; +} +/*  */ +.octicon-git-compare:before { + content: '\f0ac'; +} +/*  */ +.octicon-git-merge:before { + content: '\f023'; +} +/*  */ +.octicon-git-pull-request-abandoned:before, +.octicon-git-pull-request:before { + content: '\f009'; +} +/*  */ +.octicon-globe:before { + content: '\f0b6'; +} +/*  */ +.octicon-graph:before { + content: '\f043'; +} +/*  */ +.octicon-heart:before { + content: '\2665'; +} +/* ♥ */ +.octicon-history:before { + content: '\f07e'; +} +/*  */ +.octicon-home:before { + content: '\f08d'; +} +/*  */ +.octicon-horizontal-rule:before { + content: '\f070'; +} +/*  */ +.octicon-hourglass:before { + content: '\f09e'; +} +/*  */ +.octicon-hubot:before { + content: '\f09d'; +} +/*  */ +.octicon-inbox:before { + content: '\f0cf'; +} +/*  */ +.octicon-info:before { + content: '\f059'; +} +/*  */ +.octicon-issue-closed:before { + content: '\f028'; +} +/*  */ +.octicon-issue-opened:before { + content: '\f026'; +} +/*  */ +.octicon-issue-reopened:before { + content: '\f027'; +} +/*  */ +.octicon-jersey:before { + content: '\f019'; +} +/*  */ +.octicon-jump-down:before { + content: '\f072'; +} +/*  */ +.octicon-jump-left:before { + content: '\f0a5'; +} +/*  */ +.octicon-jump-right:before { + content: '\f0a6'; +} +/*  */ +.octicon-jump-up:before { + content: '\f073'; +} +/*  */ +.octicon-key:before { + content: '\f049'; +} +/*  */ +.octicon-keyboard:before { + content: '\f00d'; +} +/*  */ +.octicon-law:before { + content: '\f0d8'; +} +/*  */ +.octicon-light-bulb:before { + content: '\f000'; +} +/*  */ +.octicon-link:before { + content: '\f05c'; +} +/*  */ +.octicon-link-external:before { + content: '\f07f'; +} +/*  */ +.octicon-list-ordered:before { + content: '\f062'; +} +/*  */ +.octicon-list-unordered:before { + content: '\f061'; +} +/*  */ +.octicon-location:before { + content: '\f060'; +} +/*  */ +.octicon-gist-private:before, +.octicon-mirror-private:before, +.octicon-git-fork-private:before, +.octicon-lock:before { + content: '\f06a'; +} +/*  */ +.octicon-logo-github:before { + content: '\f092'; +} +/*  */ +.octicon-mail:before { + content: '\f03b'; +} +/*  */ +.octicon-mail-read:before { + content: '\f03c'; +} +/*  */ +.octicon-mail-reply:before { + content: '\f051'; +} +/*  */ +.octicon-mark-github:before { + content: '\f00a'; +} +/*  */ +.octicon-markdown:before { + content: '\f0c9'; +} +/*  */ +.octicon-megaphone:before { + content: '\f077'; +} +/*  */ +.octicon-mention:before { + content: '\f0be'; +} +/*  */ +.octicon-microscope:before { + content: '\f089'; +} +/*  */ +.octicon-milestone:before { + content: '\f075'; +} +/*  */ +.octicon-mirror-public:before, +.octicon-mirror:before { + content: '\f024'; +} +/*  */ +.octicon-mortar-board:before { + content: '\f0d7'; +} +/*  */ +.octicon-move-down:before { + content: '\f0a8'; +} +/*  */ +.octicon-move-left:before { + content: '\f074'; +} +/*  */ +.octicon-move-right:before { + content: '\f0a9'; +} +/*  */ +.octicon-move-up:before { + content: '\f0a7'; +} +/*  */ +.octicon-mute:before { + content: '\f080'; +} +/*  */ +.octicon-no-newline:before { + content: '\f09c'; +} +/*  */ +.octicon-octoface:before { + content: '\f008'; +} +/*  */ +.octicon-organization:before { + content: '\f037'; +} +/*  */ +.octicon-package:before { + content: '\f0c4'; +} +/*  */ +.octicon-paintcan:before { + content: '\f0d1'; +} +/*  */ +.octicon-pencil:before { + content: '\f058'; +} +/*  */ +.octicon-person-add:before, +.octicon-person-follow:before, +.octicon-person:before { + content: '\f018'; +} +/*  */ +.octicon-pin:before { + content: '\f041'; +} +/*  */ +.octicon-playback-fast-forward:before { + content: '\f0bd'; +} +/*  */ +.octicon-playback-pause:before { + content: '\f0bb'; +} +/*  */ +.octicon-playback-play:before { + content: '\f0bf'; +} +/*  */ +.octicon-playback-rewind:before { + content: '\f0bc'; +} +/*  */ +.octicon-plug:before { + content: '\f0d4'; +} +/*  */ +.octicon-repo-create:before, +.octicon-gist-new:before, +.octicon-file-directory-create:before, +.octicon-file-add:before, +.octicon-plus:before { + content: '\f05d'; +} +/*  */ +.octicon-podium:before { + content: '\f0af'; +} +/*  */ +.octicon-primitive-dot:before { + content: '\f052'; +} +/*  */ +.octicon-primitive-square:before { + content: '\f053'; +} +/*  */ +.octicon-pulse:before { + content: '\f085'; +} +/*  */ +.octicon-puzzle:before { + content: '\f0c0'; +} +/*  */ +.octicon-question:before { + content: '\f02c'; +} +/*  */ +.octicon-quote:before { + content: '\f063'; +} +/*  */ +.octicon-radio-tower:before { + content: '\f030'; +} +/*  */ +.octicon-repo-delete:before, +.octicon-repo:before { + content: '\f001'; +} +/*  */ +.octicon-repo-clone:before { + content: '\f04c'; +} +/*  */ +.octicon-repo-force-push:before { + content: '\f04a'; +} +/*  */ +.octicon-gist-fork:before, +.octicon-repo-forked:before { + content: '\f002'; +} +/*  */ +.octicon-repo-pull:before { + content: '\f006'; +} +/*  */ +.octicon-repo-push:before { + content: '\f005'; +} +/*  */ +.octicon-rocket:before { + content: '\f033'; +} +/*  */ +.octicon-rss:before { + content: '\f034'; +} +/*  */ +.octicon-ruby:before { + content: '\f047'; +} +/*  */ +.octicon-screen-full:before { + content: '\f066'; +} +/*  */ +.octicon-screen-normal:before { + content: '\f067'; +} +/*  */ +.octicon-search-save:before, +.octicon-search:before { + content: '\f02e'; +} +/*  */ +.octicon-server:before { + content: '\f097'; +} +/*  */ +.octicon-settings:before { + content: '\f07c'; +} +/*  */ +.octicon-log-in:before, +.octicon-sign-in:before { + content: '\f036'; +} +/*  */ +.octicon-log-out:before, +.octicon-sign-out:before { + content: '\f032'; +} +/*  */ +.octicon-split:before { + content: '\f0c6'; +} +/*  */ +.octicon-squirrel:before { + content: '\f0b2'; +} +/*  */ +.octicon-star-add:before, +.octicon-star-delete:before, +.octicon-star:before { + content: '\f02a'; +} +/*  */ +.octicon-steps:before { + content: '\f0c7'; +} +/*  */ +.octicon-stop:before { + content: '\f08f'; +} +/*  */ +.octicon-repo-sync:before, +.octicon-sync:before { + content: '\f087'; +} +/*  */ +.octicon-tag-remove:before, +.octicon-tag-add:before, +.octicon-tag:before { + content: '\f015'; +} +/*  */ +.octicon-telescope:before { + content: '\f088'; +} +/*  */ +.octicon-terminal:before { + content: '\f0c8'; +} +/*  */ +.octicon-three-bars:before { + content: '\f05e'; +} +/*  */ +.octicon-thumbsdown:before { + content: '\f0db'; +} +/*  */ +.octicon-thumbsup:before { + content: '\f0da'; +} +/*  */ +.octicon-tools:before { + content: '\f031'; +} +/*  */ +.octicon-trashcan:before { + content: '\f0d0'; +} +/*  */ +.octicon-triangle-down:before { + content: '\f05b'; +} +/*  */ +.octicon-triangle-left:before { + content: '\f044'; +} +/*  */ +.octicon-triangle-right:before { + content: '\f05a'; +} +/*  */ +.octicon-triangle-up:before { + content: '\f0aa'; +} +/*  */ +.octicon-unfold:before { + content: '\f039'; +} +/*  */ +.octicon-unmute:before { + content: '\f0ba'; +} +/*  */ +.octicon-versions:before { + content: '\f064'; +} +/*  */ +.octicon-remove-close:before, +.octicon-x:before { + content: '\f081'; +} +/*  */ +.octicon-zap:before { + content: '\26A1'; +} +/* ⚡ */ +body { + font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif, '微软雅黑'; + background-color: #FAFAFA; +} +img { + border-radius: 3px; +} +.full.height { + padding: 0; + margin: 0 0 -87px 0; + min-height: 100%; +} +.following.bar { + z-index: 900; + left: 0; + width: 100%; + padding: 0.7em 0; +} +.following.bar.light { + background-color: white; + border-bottom: 1px solid #DDDDDD; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.04); +} +.following.bar .ui.secondary.menu { + height: 30px; +} +.following.bar .column .menu { + margin-top: 0; +} +.following.bar .brand { + float: left; + margin-right: 5px; +} +.following.bar .head.link.item { + padding-right: 0!important; +} +.following.bar .head.link.item .dropdown.icon, +.following.bar .head.link.item .menu .octicon { + margin-right: 5px; +} +.following.bar .user.avatar { + padding: 0; + margin-top: 1px; +} +.following.bar .searchbox { + background-color: #f4f4f4 !important; +} +.following.bar .searchbox:focus { + background-color: #e9e9e9 !important; +} +.following.bar .octicon { + width: 16px; + opacity: 1!important; + text-align: center; +} +.ui.left { + float: left; +} +.ui.right { + float: right; +} +footer { + margin-top: 40px !important; + background-color: white; + border-top: 1px solid #d6d6d6; + clear: both; + width: 100%; + color: #888888; +} +footer .fa { + width: 16px; + text-align: center; + color: #428bca; +} +footer .links > * { + border-left: 1px solid #d6d6d6; + padding-left: 8px; + margin-left: 5px; +} +footer .links > *:first-child { + border-left: none; +} +.hide { + display: none; +} +.center { + text-align: center; +} +.text-error { + color: #d95c5c !important; +} +.img-1 { + width: 2px; + height: 2px; +} +.img-2 { + width: 4px; + height: 4px; +} +.img-3 { + width: 6px; + height: 6px; +} +.img-4 { + width: 8px; + height: 8px; +} +.img-5 { + width: 10px; + height: 10px; +} +.img-6 { + width: 12px; + height: 12px; +} +.img-7 { + width: 14px; + height: 14px; +} +.img-8 { + width: 16px; + height: 16px; +} +.img-9 { + width: 18px; + height: 18px; +} +.img-10 { + width: 20px; + height: 20px; +} +.img-11 { + width: 22px; + height: 22px; +} +.img-12 { + width: 24px; + height: 24px; +} +.img-13 { + width: 26px; + height: 26px; +} +.img-14 { + width: 28px; + height: 28px; +} +.img-15 { + width: 30px; + height: 30px; +} +.img-16 { + width: 32px; + height: 32px; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +.home { + padding-bottom: 120px; +} +.home .logo { + max-width: 250px; +} +.home .hero h1, +.home .hero h2 { + font-family: 'PT Sans Narrow', sans-serif; +} +.home .hero h1 { + font-size: 7em; +} +.home .hero h2 { + font-size: 4em; +} +.home .hero .octicon { + color: #d9453d; + font-size: 60px; + margin-right: 10px; +} +.home .hero.header { + font-size: 24px; +} +.home p.large { + font-size: 20px; +} +.home .stackable { + padding-top: 30px; +} +.home a { + color: #d9453d; +} +.install { + padding-top: 45px; + padding-bottom: 120px; +} +.install .attached.header { + background: #f0f0f0; +} +.install form label { + text-align: right; + width: 40% !important; +} +.install form input { + width: 35% !important; +} +.install form .field { + text-align: left; +} +.install form .field .help { + margin-left: 41%; +} +.install form .field.optional .title { + margin-left: 38%; +} +.install .ui .checkbox { + margin-left: 40% !important; +} +.install .ui .checkbox label { + width: auto !important; +} +.form .help { + color: #999999; + padding-top: .6em; + padding-bottom: .6em; + display: inline-block; +} +.repository { + padding-top: 15px; + padding-bottom: 120px; +} +.repository .head { + height: 75px; + padding-top: 20px; + background-color: #FCFCFC; +} +.repository .head .mega-octicon { + width: 30px; +} +.repository .head a, +.repository .head .fork-flag { + font-weight: 300; +} +.repository .head .ui.label { + margin-top: 5px; + vertical-align: top; +} +.repository .head .fork-flag { + margin-left: 38px; + display: block; + font-size: 11px; + line-height: 10px; + white-space: nowrap; +} +.repository .head .button { + margin-left: 10px; +} +.repository .head .button i { + margin-right: 5px; +} +.repository .head .num { + font-weight: bold; +} +.repository .head .octicon { + height: 5px; +} +.repository .navbar { + height: 60px; + padding-top: 20px; +} +.repository .navbar .ui.secondary.menu .item { + margin-left: -10px; + margin-top: -7px; +} +.repository .navbar .ui.secondary.menu .item > .input .new-label-input, +.repository .navbar .ui.secondary.menu .item > .input .color-picker { + background-color: white; + border: 1px solid rgba(0, 0, 0, 0.15); +} +.repository .navbar .ui.secondary.menu .item .new-label-input { + width: 150px; +} +.repository .navbar .ui.secondary.menu .item .color-picker { + height: 35px; + width: auto; + padding-left: 30px; +} +.repository .navbar .ui.secondary.menu .item .minicolors-swatch.minicolors-sprite { + top: 10px; + left: 10px; + width: 15px; + height: 15px; +} +.repository .navbar .ui.secondary.menu .item.precolors { + padding-left: 0; + padding-right: 0; + margin-right: 10px; + width: 120px; +} +.repository .navbar .ui.secondary.menu .item.precolors .color { + float: left; + width: 15px; + height: 15px; +} +.repository .filter.menu .label.color { + padding: 0 8px; +} +.repository .type.item .menu { + right: 0!important; + left: auto!important; +} +.repository .issue.list { + clear: both; + list-style: none; + font-size: 13px; + padding-top: 15px; +} +.repository .issue.list .item { + padding-top: 15px; + padding-bottom: 10px; + border-bottom: 1px dashed #AAA; +} +.repository .issue.list .item .title { + color: #444; + font-size: 15px; + font-weight: bold; + margin: 0 6px; +} +.repository .issue.list .item .title:hover { + color: #000; +} +.repository .issue.list .item .comment { + padding-right: 10px; + color: #666; +} +.repository .issue.list .item .desc { + padding-top: 5px; + color: #999; +} +.repository .issue.list .page.buttons { + padding-top: 15px; +} +.repository .label.list { + clear: both; + padding-top: 15px; +} +.repository .label.list .item { + padding-top: 10px; + padding-bottom: 10px; + border-bottom: 1px dashed #AAA; +} +.repository .label.list .item a { + font-size: 15px; + padding-top: 5px; + padding-right: 10px; + color: #666; +} +.repository .label.list .item a:hover { + color: #000; +} +.repository .label.list .item a.open-issues { + margin-right: 30px; +} diff --git a/public/css/jquery.minicolors.css b/public/css/jquery.minicolors.css new file mode 100644 index 00000000..47dffa5e --- /dev/null +++ b/public/css/jquery.minicolors.css @@ -0,0 +1,278 @@ +.minicolors { + position: relative; +} + +.minicolors-sprite { + background-image: url(data:image/png;base64,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); +} + +.minicolors-no-data-uris .minicolors-sprite { + background-image: url(jquery.minicolors.png); +} + +.minicolors-swatch { + position: absolute; + vertical-align: middle; + background-position: -80px 0; + border: solid 1px #ccc; + cursor: text; + padding: 0; + margin: 0; + display: inline-block; +} + +.minicolors-swatch-color { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.minicolors input[type=hidden] + .minicolors-swatch { + width: 28px; + position: static; + cursor: pointer; +} + +.minicolors input[type=hidden][disabled] + .minicolors-swatch { + cursor: default; +} + +/* Panel */ +.minicolors-panel { + position: absolute; + width: 173px; + height: 152px; + background: white; + border: solid 1px #CCC; + box-shadow: 0 0 20px rgba(0, 0, 0, .2); + z-index: 99999; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + display: none; +} + +.minicolors-panel.minicolors-visible { + display: block; +} + +/* Panel positioning */ +.minicolors-position-top .minicolors-panel { + top: -154px; +} + +.minicolors-position-right .minicolors-panel { + right: 0; +} + +.minicolors-position-bottom .minicolors-panel { + top: auto; +} + +.minicolors-position-left .minicolors-panel { + left: 0; +} + +.minicolors-with-opacity .minicolors-panel { + width: 194px; +} + +.minicolors .minicolors-grid { + position: absolute; + top: 1px; + left: 1px; + width: 150px; + height: 150px; + background-position: -120px 0; + cursor: crosshair; +} + +.minicolors .minicolors-grid-inner { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; +} + +.minicolors-slider-saturation .minicolors-grid { + background-position: -420px 0; +} + +.minicolors-slider-saturation .minicolors-grid-inner { + background-position: -270px 0; + background-image: inherit; +} + +.minicolors-slider-brightness .minicolors-grid { + background-position: -570px 0; +} + +.minicolors-slider-brightness .minicolors-grid-inner { + background-color: black; +} + +.minicolors-slider-wheel .minicolors-grid { + background-position: -720px 0; +} + +.minicolors-slider, +.minicolors-opacity-slider { + position: absolute; + top: 1px; + left: 152px; + width: 20px; + height: 150px; + background-color: white; + background-position: 0 0; + cursor: row-resize; +} + +.minicolors-slider-saturation .minicolors-slider { + background-position: -60px 0; +} + +.minicolors-slider-brightness .minicolors-slider { + background-position: -20px 0; +} + +.minicolors-slider-wheel .minicolors-slider { + background-position: -20px 0; +} + +.minicolors-opacity-slider { + left: 173px; + background-position: -40px 0; + display: none; +} + +.minicolors-with-opacity .minicolors-opacity-slider { + display: block; +} + +/* Pickers */ +.minicolors-grid .minicolors-picker { + position: absolute; + top: 70px; + left: 70px; + width: 12px; + height: 12px; + border: solid 1px black; + border-radius: 10px; + margin-top: -6px; + margin-left: -6px; + background: none; +} + +.minicolors-grid .minicolors-picker > div { + position: absolute; + top: 0; + left: 0; + width: 8px; + height: 8px; + border-radius: 8px; + border: solid 2px white; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +.minicolors-picker { + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 2px; + background: white; + border: solid 1px black; + margin-top: -2px; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +/* Inline controls */ +.minicolors-inline { + display: inline-block; +} + +.minicolors-inline .minicolors-input { + display: none !important; +} + +.minicolors-inline .minicolors-panel { + position: relative; + top: auto; + left: auto; + box-shadow: none; + z-index: auto; + display: inline-block; +} + +/* Default theme */ +.minicolors-theme-default .minicolors-swatch { + top: 5px; + left: 5px; + width: 18px; + height: 18px; +} +.minicolors-theme-default.minicolors-position-right .minicolors-swatch { + left: auto; + right: 5px; +} +.minicolors-theme-default.minicolors { + width: auto; + display: inline-block; +} +.minicolors-theme-default .minicolors-input { + height: 20px; + width: auto; + display: inline-block; + padding-left: 26px; +} +.minicolors-theme-default.minicolors-position-right .minicolors-input { + padding-right: 26px; + padding-left: inherit; +} + +/* Bootstrap theme */ +.minicolors-theme-bootstrap .minicolors-swatch { + z-index: 2; + top: 3px; + left: 3px; + width: 28px; + height: 28px; + border-radius: 3px; +} +.minicolors-theme-bootstrap .minicolors-swatch-color { + border-radius: inherit; +} +.minicolors-theme-bootstrap.minicolors-position-right .minicolors-swatch { + left: auto; + right: 3px; +} +.minicolors-theme-bootstrap .minicolors-input { + float: none; + padding-left: 44px; +} +.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input { + padding-right: 44px; + padding-left: 12px; +} +.minicolors-theme-bootstrap .minicolors-input.input-lg + .minicolors-swatch { + top: 4px; + left: 4px; + width: 37px; + height: 37px; + border-radius: 5px; +} +.minicolors-theme-bootstrap .minicolors-input.input-sm + .minicolors-swatch { + width: 24px; + height: 24px; +} +.input-group .minicolors-theme-bootstrap:not(:first-child) .minicolors-input { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} diff --git a/public/js/gogs.js b/public/js/gogs.js index 5f08b59c..aa9acd09 100644 --- a/public/js/gogs.js +++ b/public/js/gogs.js @@ -32,6 +32,24 @@ function initInstall() { }); }; +function initRepository(){ + if ($('.repository').length == 0) { + return; + } + + if ($('.labels').length == 0) { + return; + } + $('.color-picker').each( function() { + $(this).minicolors(); + }); + $('.precolors .color').click(function(){ + var color_hex = $(this).data('color-hex') + $('.color-picker').val(color_hex); + $('.minicolors-swatch-color').css("background-color", color_hex); + }); +}; + $(document).ready(function () { // Semantic UI modules. $('.dropdown').dropdown(); @@ -46,4 +64,5 @@ $(document).ready(function () { $('.poping.up').popup(); initInstall(); + initRepository(); }); \ No newline at end of file diff --git a/public/js/libs/jquery.minicolors.min.js b/public/js/libs/jquery.minicolors.min.js new file mode 100644 index 00000000..12480abb --- /dev/null +++ b/public/js/libs/jquery.minicolors.min.js @@ -0,0 +1,11 @@ +/* + * jQuery MiniColors: A tiny color picker built on jQuery + * + * Copyright: Cory LaViska for A Beautiful Site, LLC: http://www.abeautifulsite.net/ + * + * Contribute: https://github.com/claviska/jquery-minicolors + * + * @license: http://opensource.org/licenses/MIT + * + */ +!function(i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function($){function i(i,t){var o=$('
'),n=$.minicolors.defaults;i.data("minicolors-initialized")||(t=$.extend(!0,{},n,t),o.addClass("minicolors-theme-"+t.theme).toggleClass("minicolors-with-opacity",t.opacity).toggleClass("minicolors-no-data-uris",t.dataUris!==!0),void 0!==t.position&&$.each(t.position.split(" "),function(){o.addClass("minicolors-position-"+this)}),i.addClass("minicolors-input").data("minicolors-initialized",!1).data("minicolors-settings",t).prop("size",7).wrap(o).after('
'),t.inline||(i.after(''),i.next(".minicolors-swatch").on("click",function(t){t.preventDefault(),i.focus()})),i.parent().find(".minicolors-panel").on("selectstart",function(){return!1}).end(),t.inline&&i.parent().addClass("minicolors-inline"),e(i,!1),i.data("minicolors-initialized",!0))}function t(i){var t=i.parent();i.removeData("minicolors-initialized").removeData("minicolors-settings").removeProp("size").removeClass("minicolors-input"),t.before(i).remove()}function o(i){var t=i.parent(),o=t.find(".minicolors-panel"),s=i.data("minicolors-settings");!i.data("minicolors-initialized")||i.prop("disabled")||t.hasClass("minicolors-inline")||t.hasClass("minicolors-focus")||(n(),t.addClass("minicolors-focus"),o.stop(!0,!0).fadeIn(s.showSpeed,function(){s.show&&s.show.call(i.get(0))}))}function n(){$(".minicolors-focus").each(function(){var i=$(this),t=i.find(".minicolors-input"),o=i.find(".minicolors-panel"),n=t.data("minicolors-settings");o.fadeOut(n.hideSpeed,function(){n.hide&&n.hide.call(t.get(0)),i.removeClass("minicolors-focus")})})}function s(i,t,o){var n=i.parents(".minicolors").find(".minicolors-input"),s=n.data("minicolors-settings"),e=i.find("[class$=-picker]"),r=i.offset().left,c=i.offset().top,l=Math.round(t.pageX-r),h=Math.round(t.pageY-c),d=o?s.animationSpeed:0,u,g,p,m;t.originalEvent.changedTouches&&(l=t.originalEvent.changedTouches[0].pageX-r,h=t.originalEvent.changedTouches[0].pageY-c),0>l&&(l=0),0>h&&(h=0),l>i.width()&&(l=i.width()),h>i.height()&&(h=i.height()),i.parent().is(".minicolors-slider-wheel")&&e.parent().is(".minicolors-grid")&&(u=75-l,g=75-h,p=Math.sqrt(u*u+g*g),m=Math.atan2(g,u),0>m&&(m+=2*Math.PI),p>75&&(p=75,l=75-75*Math.cos(m),h=75-75*Math.sin(m)),l=Math.round(l),h=Math.round(h)),i.is(".minicolors-grid")?e.stop(!0).animate({top:h+"px",left:l+"px"},d,s.animationEasing,function(){a(n,i)}):e.stop(!0).animate({top:h+"px"},d,s.animationEasing,function(){a(n,i)})}function a(i,t){function o(i,t){var o,n;return i.length&&t?(o=i.offset().left,n=i.offset().top,{x:o-t.offset().left+i.outerWidth()/2,y:n-t.offset().top+i.outerHeight()/2}):null}var n,s,a,e,c,l,d,g=i.val(),p=i.attr("data-opacity"),f=i.parent(),v=i.data("minicolors-settings"),b=f.find(".minicolors-swatch"),y=f.find(".minicolors-grid"),M=f.find(".minicolors-slider"),w=f.find(".minicolors-opacity-slider"),x=y.find("[class$=-picker]"),C=M.find("[class$=-picker]"),k=w.find("[class$=-picker]"),S=o(x,y),z=o(C,M),D=o(k,w);if(t.is(".minicolors-grid, .minicolors-slider")){switch(v.control){case"wheel":e=y.width()/2-S.x,c=y.height()/2-S.y,l=Math.sqrt(e*e+c*c),d=Math.atan2(c,e),0>d&&(d+=2*Math.PI),l>75&&(l=75,S.x=69-75*Math.cos(d),S.y=69-75*Math.sin(d)),s=u(l/.75,0,100),n=u(180*d/Math.PI,0,360),a=u(100-Math.floor(z.y*(100/M.height())),0,100),g=m({h:n,s:s,b:a}),M.css("backgroundColor",m({h:n,s:s,b:100}));break;case"saturation":n=u(parseInt(S.x*(360/y.width()),10),0,360),s=u(100-Math.floor(z.y*(100/M.height())),0,100),a=u(100-Math.floor(S.y*(100/y.height())),0,100),g=m({h:n,s:s,b:a}),M.css("backgroundColor",m({h:n,s:100,b:a})),f.find(".minicolors-grid-inner").css("opacity",s/100);break;case"brightness":n=u(parseInt(S.x*(360/y.width()),10),0,360),s=u(100-Math.floor(S.y*(100/y.height())),0,100),a=u(100-Math.floor(z.y*(100/M.height())),0,100),g=m({h:n,s:s,b:a}),M.css("backgroundColor",m({h:n,s:s,b:100})),f.find(".minicolors-grid-inner").css("opacity",1-a/100);break;default:n=u(360-parseInt(z.y*(360/M.height()),10),0,360),s=u(Math.floor(S.x*(100/y.width())),0,100),a=u(100-Math.floor(S.y*(100/y.height())),0,100),g=m({h:n,s:s,b:a}),y.css("backgroundColor",m({h:n,s:100,b:100}))}i.val(h(g,v.letterCase))}t.is(".minicolors-opacity-slider")&&(p=v.opacity?parseFloat(1-D.y/w.height()).toFixed(2):1,v.opacity&&i.attr("data-opacity",p)),b.find("SPAN").css({backgroundColor:g,opacity:p}),r(i,g,p)}function e(i,t){var o,n,s,a,e,c,l,g=i.parent(),p=i.data("minicolors-settings"),v=g.find(".minicolors-swatch"),b=g.find(".minicolors-grid"),y=g.find(".minicolors-slider"),M=g.find(".minicolors-opacity-slider"),w=b.find("[class$=-picker]"),x=y.find("[class$=-picker]"),C=M.find("[class$=-picker]");switch(o=h(d(i.val(),!0),p.letterCase),o||(o=h(d(p.defaultValue,!0),p.letterCase)),n=f(o),t||i.val(o),p.opacity&&(s=""===i.attr("data-opacity")?1:u(parseFloat(i.attr("data-opacity")).toFixed(2),0,1),isNaN(s)&&(s=1),i.attr("data-opacity",s),v.find("SPAN").css("opacity",s),e=u(M.height()-M.height()*s,0,M.height()),C.css("top",e+"px")),v.find("SPAN").css("backgroundColor",o),p.control){case"wheel":c=u(Math.ceil(.75*n.s),0,b.height()/2),l=n.h*Math.PI/180,a=u(75-Math.cos(l)*c,0,b.width()),e=u(75-Math.sin(l)*c,0,b.height()),w.css({top:e+"px",left:a+"px"}),e=150-n.b/(100/b.height()),""===o&&(e=0),x.css("top",e+"px"),y.css("backgroundColor",m({h:n.h,s:n.s,b:100}));break;case"saturation":a=u(5*n.h/12,0,150),e=u(b.height()-Math.ceil(n.b/(100/b.height())),0,b.height()),w.css({top:e+"px",left:a+"px"}),e=u(y.height()-n.s*(y.height()/100),0,y.height()),x.css("top",e+"px"),y.css("backgroundColor",m({h:n.h,s:100,b:n.b})),g.find(".minicolors-grid-inner").css("opacity",n.s/100);break;case"brightness":a=u(5*n.h/12,0,150),e=u(b.height()-Math.ceil(n.s/(100/b.height())),0,b.height()),w.css({top:e+"px",left:a+"px"}),e=u(y.height()-n.b*(y.height()/100),0,y.height()),x.css("top",e+"px"),y.css("backgroundColor",m({h:n.h,s:n.s,b:100})),g.find(".minicolors-grid-inner").css("opacity",1-n.b/100);break;default:a=u(Math.ceil(n.s/(100/b.width())),0,b.width()),e=u(b.height()-Math.ceil(n.b/(100/b.height())),0,b.height()),w.css({top:e+"px",left:a+"px"}),e=u(y.height()-n.h/(360/y.height()),0,y.height()),x.css("top",e+"px"),b.css("backgroundColor",m({h:n.h,s:100,b:100}))}i.data("minicolors-initialized")&&r(i,o,s)}function r(i,t,o){var n=i.data("minicolors-settings"),s=i.data("minicolors-lastChange");s&&s.hex===t&&s.opacity===o||(i.data("minicolors-lastChange",{hex:t,opacity:o}),n.change&&(n.changeDelay?(clearTimeout(i.data("minicolors-changeTimeout")),i.data("minicolors-changeTimeout",setTimeout(function(){n.change.call(i.get(0),t,o)},n.changeDelay))):n.change.call(i.get(0),t,o)),i.trigger("change").trigger("input"))}function c(i){var t=d($(i).val(),!0),o=b(t),n=$(i).attr("data-opacity");return o?(void 0!==n&&$.extend(o,{a:parseFloat(n)}),o):null}function l(i,t){var o=d($(i).val(),!0),n=b(o),s=$(i).attr("data-opacity");return n?(void 0===s&&(s=1),t?"rgba("+n.r+", "+n.g+", "+n.b+", "+parseFloat(s)+")":"rgb("+n.r+", "+n.g+", "+n.b+")"):null}function h(i,t){return"uppercase"===t?i.toUpperCase():i.toLowerCase()}function d(i,t){return i=i.replace(/[^A-F0-9]/gi,""),3!==i.length&&6!==i.length?"":(3===i.length&&t&&(i=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]),"#"+i)}function u(i,t,o){return t>i&&(i=t),i>o&&(i=o),i}function g(i){var t={},o=Math.round(i.h),n=Math.round(255*i.s/100),s=Math.round(255*i.b/100);if(0===n)t.r=t.g=t.b=s;else{var a=s,e=(255-n)*s/255,r=(a-e)*(o%60)/60;360===o&&(o=0),60>o?(t.r=a,t.b=e,t.g=e+r):120>o?(t.g=a,t.b=e,t.r=a-r):180>o?(t.g=a,t.r=e,t.b=e+r):240>o?(t.b=a,t.r=e,t.g=a-r):300>o?(t.b=a,t.g=e,t.r=e+r):360>o?(t.r=a,t.g=e,t.b=a-r):(t.r=0,t.g=0,t.b=0)}return{r:Math.round(t.r),g:Math.round(t.g),b:Math.round(t.b)}}function p(i){var t=[i.r.toString(16),i.g.toString(16),i.b.toString(16)];return $.each(t,function(i,o){1===o.length&&(t[i]="0"+o)}),"#"+t.join("")}function m(i){return p(g(i))}function f(i){var t=v(b(i));return 0===t.s&&(t.h=360),t}function v(i){var t={h:0,s:0,b:0},o=Math.min(i.r,i.g,i.b),n=Math.max(i.r,i.g,i.b),s=n-o;return t.b=n,t.s=0!==n?255*s/n:0,t.h=0!==t.s?i.r===n?(i.g-i.b)/s:i.g===n?2+(i.b-i.r)/s:4+(i.r-i.g)/s:-1,t.h*=60,t.h<0&&(t.h+=360),t.s*=100/255,t.b*=100/255,t}function b(i){return i=parseInt(i.indexOf("#")>-1?i.substring(1):i,16),{r:i>>16,g:(65280&i)>>8,b:255&i}}$.minicolors={defaults:{animationSpeed:50,animationEasing:"swing",change:null,changeDelay:0,control:"hue",dataUris:!0,defaultValue:"",hide:null,hideSpeed:100,inline:!1,letterCase:"lowercase",opacity:!1,position:"bottom left",show:null,showSpeed:100,theme:"default"}},$.extend($.fn,{minicolors:function(s,a){switch(s){case"destroy":return $(this).each(function(){t($(this))}),$(this);case"hide":return n(),$(this);case"opacity":return void 0===a?$(this).attr("data-opacity"):($(this).each(function(){e($(this).attr("data-opacity",a))}),$(this));case"rgbObject":return c($(this),"rgbaObject"===s);case"rgbString":case"rgbaString":return l($(this),"rgbaString"===s);case"settings":return void 0===a?$(this).data("minicolors-settings"):($(this).each(function(){var i=$(this).data("minicolors-settings")||{};t($(this)),$(this).minicolors($.extend(!0,i,a))}),$(this));case"show":return o($(this).eq(0)),$(this);case"value":return void 0===a?$(this).val():($(this).each(function(){e($(this).val(a))}),$(this));default:return"create"!==s&&(a=s),$(this).each(function(){i($(this),a)}),$(this)}}}),$(document).on("mousedown.minicolors touchstart.minicolors",function(i){$(i.target).parents().add(i.target).hasClass("minicolors")||n()}).on("mousedown.minicolors touchstart.minicolors",".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider",function(i){var t=$(this);i.preventDefault(),$(document).data("minicolors-target",t),s(t,i,!0)}).on("mousemove.minicolors touchmove.minicolors",function(i){var t=$(document).data("minicolors-target");t&&s(t,i)}).on("mouseup.minicolors touchend.minicolors",function(){$(this).removeData("minicolors-target")}).on("mousedown.minicolors touchstart.minicolors",".minicolors-swatch",function(i){var t=$(this).parent().find(".minicolors-input");i.preventDefault(),o(t)}).on("focus.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&o(i)}).on("blur.minicolors",".minicolors-input",function(){var i=$(this),t=i.data("minicolors-settings");i.data("minicolors-initialized")&&(i.val(d(i.val(),!0)),""===i.val()&&i.val(d(t.defaultValue,!0)),i.val(h(i.val(),t.letterCase)))}).on("keydown.minicolors",".minicolors-input",function(i){var t=$(this);if(t.data("minicolors-initialized"))switch(i.keyCode){case 9:n();break;case 13:case 27:n(),t.blur()}}).on("keyup.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&e(i,!0)}).on("paste.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&setTimeout(function(){e(i,!0)},1)})}); \ No newline at end of file diff --git a/public/js/libs/jquery.minicolors.png b/public/js/libs/jquery.minicolors.png new file mode 100644 index 00000000..8fa1e9d9 Binary files /dev/null and b/public/js/libs/jquery.minicolors.png differ diff --git a/public/js/min/gogs-min.js b/public/js/min/gogs-min.js deleted file mode 100644 index bfcebb5e..00000000 --- a/public/js/min/gogs-min.js +++ /dev/null @@ -1 +0,0 @@ -$(document).ready(function(){$(".dropdown").dropdown({transition:"slide up"})}); \ No newline at end of file diff --git a/public/less/_repository.less b/public/less/_repository.less index a5ac3bbc..263f1223 100644 --- a/public/less/_repository.less +++ b/public/less/_repository.less @@ -41,6 +41,42 @@ .navbar { height: 60px; padding-top: 20px; + .ui.secondary.menu .item { + margin-left: -10px; + margin-top: -7px; + &>.input { + .new-label-input, + .color-picker { + background-color: white; + border: 1px solid rgba(0,0,0,.15); + } + } + .new-label-input { + width: 150px; + } + .color-picker { + height: 35px; + width: auto; + padding-left: 30px; + } + .minicolors-swatch.minicolors-sprite { + top: 10px; + left: 10px; + width: 15px; + height: 15px; + } + &.precolors { + padding-left: 0; + padding-right: 0; + margin-right: 10px; + width: 120px; + .color { + float: left; + width: 15px; + height: 15px; + } + } + } } .filter.menu .label.color { padding: 0 8px; @@ -50,9 +86,10 @@ left: auto!important; } .issue.list { + clear: both; list-style: none; font-size: 13px; - padding-top: 45px; + padding-top: 15px; .item { padding-top: 15px; padding-bottom: 10px; @@ -79,4 +116,25 @@ padding-top: 15px; } } + .label.list { + clear: both; + padding-top: 15px; + .item { + padding-top: 10px; + padding-bottom: 10px; + border-bottom: 1px dashed #AAA; + a { + font-size: 15px; + padding-top: 5px; + padding-right: 10px; + color: #666; + &:hover { + color: #000; + } + &.open-issues { + margin-right: 30px; + } + } + } + } } \ No newline at end of file diff --git a/routers/repo/issue.go b/routers/repo/issue.go index c0894254..d6fa000b 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -30,6 +30,8 @@ const ( ISSUE_CREATE base.TplName = "repo/issue/create" ISSUE_VIEW base.TplName = "repo/issue/view" + LABELS base.TplName = "repo/issue/labels" + MILESTONE base.TplName = "repo/issue/milestone" MILESTONE_NEW base.TplName = "repo/issue/milestone_new" MILESTONE_EDIT base.TplName = "repo/issue/milestone_edit" @@ -40,6 +42,19 @@ var ( ErrTooManyFiles = errors.New("Maximum number of files to upload exceeded") ) +func RetrieveLabels(ctx *middleware.Context) { + labels, err := models.GetLabels(ctx.Repo.Repository.Id) + if err != nil { + ctx.Handle(500, "RetrieveLabels.GetLabels: %v", err) + return + } + for _, l := range labels { + l.CalOpenIssues() + } + ctx.Data["Labels"] = labels + ctx.Data["NumLabels"] = len(labels) +} + func Issues(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("repo.issues") ctx.Data["PageIsIssueList"] = true @@ -85,17 +100,6 @@ func Issues(ctx *middleware.Context) { mid = mile.Id } - selectLabels := ctx.Query("labels") - labels, err := models.GetLabels(repo.Id) - if err != nil { - ctx.Handle(500, "GetLabels: %v", err) - return - } - for _, l := range labels { - l.CalOpenIssues() - } - ctx.Data["Labels"] = labels - page := ctx.QueryInt("page") if page <= 1 { page = 1 @@ -107,6 +111,8 @@ func Issues(ctx *middleware.Context) { ctx.Data["NextPage"] = page + 1 } + selectLabels := ctx.Query("labels") + // Get issues. issues, err := models.GetIssues(assigneeId, repo.Id, posterId, mid, page, isShowClosed, selectLabels, ctx.Query("sortType")) @@ -125,24 +131,26 @@ func Issues(ctx *middleware.Context) { // Get posters. for i := range issues { if err = issues[i].GetLabels(); err != nil { - ctx.Handle(500, "GetLabels", fmt.Errorf("[#%d]%v", issues[i].Id, err)) + ctx.Handle(500, "GetLabels", fmt.Errorf("[#%d]%v", issues[i].ID, err)) return } - idx := models.PairsContains(pairs, issues[i].Id, ctx.User.Id) + if ctx.IsSigned { + idx := models.PairsContains(pairs, issues[i].ID, ctx.User.Id) - if filterMode == models.FM_MENTION && (idx == -1 || !pairs[idx].IsMentioned) { - continue - } + if filterMode == models.FM_MENTION && (idx == -1 || !pairs[idx].IsMentioned) { + continue + } - if idx > -1 { - issues[i].IsRead = pairs[idx].IsRead - } else { - issues[i].IsRead = true + if idx > -1 { + issues[i].IsRead = pairs[idx].IsRead + } else { + issues[i].IsRead = true + } } if err = issues[i].GetPoster(); err != nil { - ctx.Handle(500, "GetPoster", fmt.Errorf("[#%d]%v", issues[i].Id, err)) + ctx.Handle(500, "GetPoster", fmt.Errorf("[#%d]%v", issues[i].ID, err)) return } } @@ -257,14 +265,14 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) { if err := models.NewIssue(issue); err != nil { send(500, nil, err) return - } else if err := models.NewIssueUserPairs(ctx.Repo.Repository, issue.Id, ctx.Repo.Owner.Id, + } else if err := models.NewIssueUserPairs(ctx.Repo.Repository, issue.ID, ctx.Repo.Owner.Id, ctx.User.Id, form.AssigneeId); err != nil { send(500, nil, err) return } if setting.AttachmentEnabled { - uploadFiles(ctx, issue.Id, 0) + uploadFiles(ctx, issue.ID, 0) } // Update mentions. @@ -274,7 +282,7 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) { ms[i] = ms[i][1:] } - if err := models.UpdateMentions(ms, issue.Id); err != nil { + if err := models.UpdateMentions(ms, issue.ID); err != nil { send(500, nil, err) return } @@ -321,7 +329,7 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) { return } } - log.Trace("%d Issue created: %d", ctx.Repo.Repository.Id, issue.Id) + log.Trace("%d Issue created: %d", ctx.Repo.Repository.Id, issue.ID) send(200, fmt.Sprintf("%s/%s/%s/issues/%d", setting.AppSubUrl, ctx.Params(":username"), ctx.Params(":reponame"), issue.Index), nil) } @@ -329,7 +337,7 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) { func checkLabels(labels, allLabels []*models.Label) { for _, l := range labels { for _, l2 := range allLabels { - if l.Id == l2.Id { + if l.ID == l2.ID { l2.IsChecked = true break } @@ -403,7 +411,7 @@ func ViewIssue(ctx *middleware.Context) { if ctx.IsSigned { // Update issue-user. - if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.Id); err != nil { + if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.ID); err != nil { ctx.Handle(500, "issue.ViewIssue(UpdateIssueUserPairByRead): %v", err) return } @@ -420,7 +428,7 @@ func ViewIssue(ctx *middleware.Context) { issue.RenderedContent = string(base.RenderMarkdown([]byte(issue.Content), ctx.Repo.RepoLink)) // Get comments. - comments, err := models.GetIssueComments(issue.Id) + comments, err := models.GetIssueComments(issue.ID) if err != nil { ctx.Handle(500, "issue.ViewIssue(GetIssueComments): %v", err) return @@ -642,7 +650,7 @@ func UpdateAssignee(ctx *middleware.Context) { aid := com.StrTo(ctx.Query("assigneeid")).MustInt64() // Not check for invalid assignee id and give responsibility to owners. issue.AssigneeId = aid - if err = models.UpdateIssueUserPairByAssignee(aid, issue.Id); err != nil { + if err = models.UpdateIssueUserPairByAssignee(aid, issue.ID); err != nil { ctx.Handle(500, "UpdateIssueUserPairByAssignee: %v", err) return } else if err = models.UpdateIssue(issue); err != nil { @@ -774,7 +782,7 @@ func Comment(ctx *middleware.Context) { if err = models.UpdateIssue(issue); err != nil { send(500, nil, err) return - } else if err = models.UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil { + } else if err = models.UpdateIssueUserPairsByStatus(issue.ID, issue.IsClosed); err != nil { send(500, nil, err) return } @@ -809,11 +817,11 @@ func Comment(ctx *middleware.Context) { cmtType = models.COMMENT_TYPE_REOPEN } - if _, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.Id, 0, 0, cmtType, "", nil); err != nil { + if _, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.ID, 0, 0, cmtType, "", nil); err != nil { send(200, nil, err) return } - log.Trace("%s Issue(%d) status changed: %v", ctx.Req.RequestURI, issue.Id, !issue.IsClosed) + log.Trace("%s Issue(%d) status changed: %v", ctx.Req.RequestURI, issue.ID, !issue.IsClosed) } } @@ -825,7 +833,7 @@ func Comment(ctx *middleware.Context) { if len(content) > 0 || len(ctx.Req.MultipartForm.File["attachments"]) > 0 { switch ctx.Params(":action") { case "new": - if comment, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.Id, 0, 0, models.COMMENT_TYPE_COMMENT, content, nil); err != nil { + if comment, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.ID, 0, 0, models.COMMENT_TYPE_COMMENT, content, nil); err != nil { send(500, nil, err) return } @@ -837,13 +845,13 @@ func Comment(ctx *middleware.Context) { ms[i] = ms[i][1:] } - if err := models.UpdateMentions(ms, issue.Id); err != nil { + if err := models.UpdateMentions(ms, issue.ID); err != nil { send(500, nil, err) return } } - log.Trace("%s Comment created: %d", ctx.Req.RequestURI, issue.Id) + log.Trace("%s Comment created: %d", ctx.Req.RequestURI, issue.ID) default: ctx.Handle(404, "issue.Comment", err) return @@ -851,7 +859,7 @@ func Comment(ctx *middleware.Context) { } if comment != nil { - uploadFiles(ctx, issue.Id, comment.Id) + uploadFiles(ctx, issue.ID, comment.Id) } // Notify watchers. @@ -899,9 +907,19 @@ func Comment(ctx *middleware.Context) { send(200, fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, index), nil) } +func Labels(ctx *middleware.Context) { + ctx.Data["Title"] = ctx.Tr("repo.labels") + ctx.Data["PageIsLabels"] = true + ctx.HTML(200, LABELS) +} + func NewLabel(ctx *middleware.Context, form auth.CreateLabelForm) { + ctx.Data["Title"] = ctx.Tr("repo.labels") + ctx.Data["PageIsLabels"] = true + if ctx.HasError() { - Issues(ctx) + ctx.Flash.Error(ctx.Data["ErrorMsg"].(string)) + ctx.Redirect(ctx.Repo.RepoLink + "/labels") return } @@ -911,10 +929,10 @@ func NewLabel(ctx *middleware.Context, form auth.CreateLabelForm) { Color: form.Color, } if err := models.NewLabel(l); err != nil { - ctx.Handle(500, "issue.NewLabel(NewLabel)", err) + ctx.Handle(500, "NewLabel", err) return } - ctx.Redirect(ctx.Repo.RepoLink + "/issues") + ctx.Redirect(ctx.Repo.RepoLink + "/labels") } func UpdateLabel(ctx *middleware.Context, form auth.CreateLabelForm) { @@ -925,7 +943,7 @@ func UpdateLabel(ctx *middleware.Context, form auth.CreateLabelForm) { } l := &models.Label{ - Id: id, + ID: id, Name: form.Title, Color: form.Color, } @@ -1151,20 +1169,10 @@ func IssueGetAttachment(ctx *middleware.Context) { ctx.ServeFile(attachment.Path, "\""+attachment.Name+"\"") } -// testing route handler for new issue ui page -// todo : move to Issue() function -func Issues2(ctx *middleware.Context) { - ctx.HTML(200, "repo/issue2/list") -} - func PullRequest2(ctx *middleware.Context) { ctx.HTML(200, "repo/pr2/list") } -func Labels2(ctx *middleware.Context) { - ctx.HTML(200, "repo/issue2/labels") -} - func Milestones2(ctx *middleware.Context) { ctx.HTML(200, "repo/milestone2/list") } diff --git a/templates/.VERSION b/templates/.VERSION index 7793c8a2..3e39c8bb 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.6.1.0724 Beta \ No newline at end of file +0.6.2.0724 Beta \ No newline at end of file diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 9739057d..cdd9da41 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -29,6 +29,12 @@ + + {{if .PageIsLabels}} + + + {{end}} + {{if .Title}}{{.Title}} - {{end}}{{AppName}} diff --git a/templates/repo/issue/alert.tmpl b/templates/repo/issue/alert.tmpl new file mode 100644 index 00000000..bdc32ce4 --- /dev/null +++ b/templates/repo/issue/alert.tmpl @@ -0,0 +1,5 @@ +{{if .Flash}} +
+ {{template "base/alert" .}} +
+{{end}} \ No newline at end of file diff --git a/templates/repo/issue/labels.tmpl b/templates/repo/issue/labels.tmpl new file mode 100644 index 00000000..47b8614c --- /dev/null +++ b/templates/repo/issue/labels.tmpl @@ -0,0 +1,64 @@ +{{template "base/head" .}} +
+ {{template "repo/header" .}} +
+ +
+ {{template "repo/issue/alert" .}} +
+
{{.i18n.Tr "repo.issues.label_count" .NumLabels}}
+
+ +
+ {{range .Labels}} +
  • +
    {{.Name}}
    + {{if $.IsRepositoryAdmin}} + {{$.i18n.Tr "repo.issues.label_delete"}} + {{$.i18n.Tr "repo.issues.label_edit"}} + {{end}} + {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}} +
  • + {{end}} +
    +
    +
    +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index 5513ae4c..e62e9534 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -4,9 +4,11 @@
    @@ -29,7 +31,7 @@
    @@ -73,7 +75,7 @@ {{range .Issues}} {{ $timeStr:= TimeSince .Created $.Lang }}
  • -
    #{{.Id}}
    +
    #{{.Index}}
    {{.Name}} {{if .NumComments}} {{.NumComments}}{{end}}

    {{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.Name|Str2html}}

    diff --git a/templates/repo/issue/navbar.tmpl b/templates/repo/issue/navbar.tmpl index e4a58f77..beff907d 100644 --- a/templates/repo/issue/navbar.tmpl +++ b/templates/repo/issue/navbar.tmpl @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/templates/repo/issue/view.tmpl b/templates/repo/issue/view.tmpl index b52ef505..fa505df7 100644 --- a/templates/repo/issue/view.tmpl +++ b/templates/repo/issue/view.tmpl @@ -3,15 +3,15 @@ {{template "repo/nav" .}} {{template "repo/toolbar" .}}
    -
    -
    +
    +
    #{{.Issue.Index}}

    {{.Issue.Name}}

    - +

    {{if .IsIssueOwner}}Edit @@ -178,7 +178,7 @@

    -
  • -
    - - Are you sure? Deleting a label will remove it from all issues and pull requests. - - -
    -
  • -
    -{{template "ng/base/footer" .}} \ No newline at end of file -- cgit v1.2.3 From c0883a51a03d2f7af56c20cbf054b9106528c75f Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sat, 25 Jul 2015 07:47:43 +0800 Subject: mirror fix on #1111 --- models/repo.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 0254e8f0..35f63e12 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1037,7 +1037,7 @@ var ( // Prevent duplicate tasks. isMirrorUpdating = false isGitFscking = false - isCheckRepos = false + isCheckingRepos = false ) // MirrorUpdate checks and updates mirror repositories. @@ -1130,11 +1130,11 @@ func GitGcRepos() error { } func CheckRepoStats() { - if isCheckRepos { + if isCheckingRepos { return } - isCheckRepos = true - defer func() { isCheckRepos = false }() + isCheckingRepos = true + defer func() { isCheckingRepos = false }() // Check count watchers results_watch, err := x.Query("SELECT r.id FROM `repository` r WHERE r.num_watches!=(SELECT count(*) FROM `watch` WHERE repo_id=r.id)") -- cgit v1.2.3 From 6f8e388b5530e85f141ea3aa345b1c6842fbe1f5 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 26 Jul 2015 19:22:17 +0800 Subject: fix #1169 - prevent create reop on existed path --- models/repo.go | 7 ++++++- modules/git/repo_tag.go | 2 +- modules/git/utils.go | 8 ++++++++ modules/middleware/org.go | 6 ++++++ 4 files changed, 21 insertions(+), 2 deletions(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 35f63e12..f339f173 100644 --- a/models/repo.go +++ b/models/repo.go @@ -423,13 +423,18 @@ func createUpdateHook(repoPath string) error { // InitRepository initializes README and .gitignore if needed. func initRepository(e Engine, repoPath string, u *User, repo *Repository, initReadme bool, repoLang, license string) error { + // Somehow the directory could exist. + if com.IsExist(repoPath) { + return fmt.Errorf("initRepository: path already exists: %s", repoPath) + } + // Init bare new repository. os.MkdirAll(repoPath, os.ModePerm) _, stderr, err := process.ExecDir(-1, repoPath, fmt.Sprintf("initRepository(git init --bare): %s", repoPath), "git", "init", "--bare") if err != nil { - return errors.New("git init --bare: " + stderr) + return fmt.Errorf("git init --bare: %s", err) } if err := createUpdateHook(repoPath); err != nil { diff --git a/modules/git/repo_tag.go b/modules/git/repo_tag.go index ed994d48..45a1df70 100644 --- a/modules/git/repo_tag.go +++ b/modules/git/repo_tag.go @@ -27,7 +27,7 @@ func (repo *Repository) GetTags() ([]string, error) { } stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", "-l") if err != nil { - return nil, errors.New(stderr) + return nil, concatenateError(err, stderr) } tags := strings.Split(stdout, "\n") return tags[:len(tags)-1], nil diff --git a/modules/git/utils.go b/modules/git/utils.go index 6abbca55..78792aaf 100644 --- a/modules/git/utils.go +++ b/modules/git/utils.go @@ -7,6 +7,7 @@ package git import ( "bytes" "container/list" + "fmt" "os" "path/filepath" "strings" @@ -67,3 +68,10 @@ func isFile(filePath string) bool { } return !f.IsDir() } + +func concatenateError(err error, stderr string) error { + if len(stderr) == 0 { + return err + } + return fmt.Errorf("%v: %s", err, stderr) +} diff --git a/modules/middleware/org.go b/modules/middleware/org.go index 0e544fe4..1ac4bcf1 100644 --- a/modules/middleware/org.go +++ b/modules/middleware/org.go @@ -47,6 +47,12 @@ func OrgAssignment(redirect bool, args ...bool) macaron.Handler { org := ctx.Org.Organization ctx.Data["Org"] = org + // Force redirection when username is actually a user. + if !org.IsOrganization() { + ctx.Redirect("/" + org.Name) + return + } + if ctx.IsSigned { ctx.Org.IsOwner = org.IsOwnedBy(ctx.User.Id) if ctx.Org.IsOwner { -- cgit v1.2.3 From f83519b4528da69df41bbac3574e42903963a075 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 28 Jul 2015 21:24:24 +0800 Subject: report error when migration auth failed --- README.md | 1 + README_ZH.md | 1 + models/repo.go | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'models/repo.go') diff --git a/README.md b/README.md index bd35072a..29e7d378 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ There are 5 ways to install Gogs: ## Contributors - The [core team](http://gogs.io/team) of this project. +- Ex-team members [@lunny](https://github.com/lunny) and [@fuxiaohei](https://github.com/fuxiaohei). - See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for full list of contributors. - See [TRANSLATORS](conf/locale/TRANSLATORS) for full list of translators. diff --git a/README_ZH.md b/README_ZH.md index 4ee6f480..4715f2ff 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -80,6 +80,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自 ## 贡献成员 - 本项目的 [开发团队](http://gogs.io/team)。 +- 前团队成员 [@lunny](https://github.com/lunny) 和 [@fuxiaohei](https://github.com/fuxiaohei)。 - 您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取完整的贡献者列表。 - 您可以通过查看 [TRANSLATORS](conf/locale/TRANSLATORS) 文件获取完整的翻译人员列表。 diff --git a/models/repo.go b/models/repo.go index f339f173..55accfaf 100644 --- a/models/repo.go +++ b/models/repo.go @@ -373,9 +373,9 @@ func MigrateRepository(u *User, name, desc string, private, mirror bool, url str // FIXME: this command could for both migrate and mirror _, stderr, err := process.ExecTimeout(10*time.Minute, fmt.Sprintf("MigrateRepository: %s", repoPath), - "git", "clone", "--mirror", "--bare", url, repoPath) + "git", "clone", "--mirror", "--bare", "--quiet", url, repoPath) if err != nil { - return repo, fmt.Errorf("git clone --mirror --bare: %v", stderr) + return repo, fmt.Errorf("git clone --mirror --bare --quiet: %v", stderr) } else if err = createUpdateHook(repoPath); err != nil { return repo, fmt.Errorf("create update hook: %v", err) } -- cgit v1.2.3 From c44e1c7ca97ba53c23b253687bc6cb4b545d3173 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 31 Jul 2015 14:05:36 +0800 Subject: fix #1208 --- models/repo.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 55accfaf..a2b29ff3 100644 --- a/models/repo.go +++ b/models/repo.go @@ -486,7 +486,7 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, initRe } } else if com.IsSliceContainsStr(Gitignores, repoLang) { if err = ioutil.WriteFile(targetPath, - bindata.MustAsset(path.Join("conf/gitignore", repoLang)), os.ModePerm); err != nil { + bindata.MustAsset(path.Join("conf/gitignore", repoLang)), 0644); err != nil { return fmt.Errorf("generate gitignore: %v", err) } } else { @@ -502,7 +502,7 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, initRe } } else if com.IsSliceContainsStr(Licenses, license) { if err = ioutil.WriteFile(targetPath, - bindata.MustAsset(path.Join("conf/license", license)), os.ModePerm); err != nil { + bindata.MustAsset(path.Join("conf/license", license)), 0644); err != nil { return fmt.Errorf("generate license: %v", err) } } else { -- cgit v1.2.3 From 9311a9858ae4dd10450370da8a93c37c1dad798b Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 4 Aug 2015 22:24:04 +0800 Subject: milestone: pagination --- cmd/web.go | 5 +-- gogs.go | 2 +- models/issue.go | 87 ++++++++++++++++++++++--------------- models/repo.go | 2 +- public/css/gogs.min.css | 2 +- public/less/_repository.less | 8 ++-- routers/repo/issue.go | 67 ++++++++++++++++------------ templates/.VERSION | 2 +- templates/repo/issue/create.tmpl | 2 +- templates/repo/issue/list.tmpl | 8 ++-- templates/repo/issue/milestone.tmpl | 26 ++++++++++- templates/repo/milestone2/list.tmpl | 58 ------------------------- 12 files changed, 130 insertions(+), 139 deletions(-) delete mode 100644 templates/repo/milestone2/list.tmpl (limited to 'models/repo.go') diff --git a/cmd/web.go b/cmd/web.go index c51ba3e8..7b67388c 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -427,9 +427,9 @@ func runWeb(ctx *cli.Context) { m.Group("/milestones", func() { m.Get("/new", repo.NewMilestone) m.Post("/new", bindIgnErr(auth.CreateMilestoneForm{}), repo.NewMilestonePost) - m.Get("/:index/edit", repo.UpdateMilestone) + m.Get("/:index/edit", repo.MilestoneActions) m.Post("/:index/edit", bindIgnErr(auth.CreateMilestoneForm{}), repo.UpdateMilestonePost) - m.Get("/:index/:action", repo.UpdateMilestone) + m.Get("/:index/:action", repo.MilestoneActions) }, reqRepoAdmin) m.Post("/comment/:action", repo.Comment) @@ -452,7 +452,6 @@ func runWeb(ctx *cli.Context) { m.Get("/branches", repo.Branches) m.Get("/archive/*", repo.Download) m.Get("/pulls2/", repo.PullRequest2) - m.Get("/milestone2/", repo.Milestones2) m.Head("/hooks/trigger", repo.TriggerHook) m.Group("", func() { diff --git a/gogs.go b/gogs.go index 634336d1..6c24e998 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.6.3.0803 Beta" +const APP_VER = "0.6.3.0804 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/issue.go b/models/issue.go index 6aa9c04a..4c18efe8 100644 --- a/models/issue.go +++ b/models/issue.go @@ -14,6 +14,7 @@ import ( "time" "github.com/Unknwon/com" + "github.com/go-xorm/xorm" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/setting" @@ -184,8 +185,8 @@ func GetIssueById(id int64) (*Issue, error) { return issue, nil } -// GetIssues returns a list of issues by given conditions. -func GetIssues(uid, assigneeID, repoID, posterID, milestoneID int64, page int, isClosed, isMention bool, labelIds, sortType string) ([]Issue, error) { +// Issues returns a list of issues by given conditions. +func Issues(uid, assigneeID, repoID, posterID, milestoneID int64, page int, isClosed, isMention bool, labelIds, sortType string) ([]*Issue, error) { sess := x.Limit(setting.IssuePagingNum, (page-1)*setting.IssuePagingNum) if repoID > 0 { @@ -237,7 +238,7 @@ func GetIssues(uid, assigneeID, repoID, posterID, milestoneID int64, page int, i sess.Join("INNER", "issue_user", queryStr) } - var issues []Issue + issues := make([]*Issue, 0, setting.IssuePagingNum) return issues, sess.Find(&issues) } @@ -627,7 +628,7 @@ func DeleteLabel(repoID, labelID int64) error { // Milestone represents a milestone of repository. type Milestone struct { ID int64 `xorm:"pk autoincr"` - RepoId int64 `xorm:"INDEX"` + RepoID int64 `xorm:"INDEX"` Index int64 Name string Content string `xorm:"TEXT"` @@ -642,6 +643,17 @@ type Milestone struct { ClosedDate time.Time } +func (m *Milestone) BeforeSet(colName string, val xorm.Cell) { + if colName == "deadline" { + t := (*val).(time.Time) + if t.Year() == 9999 { + return + } + + m.DeadlineString = t.Format("2006-01-02") + } +} + // CalOpenIssues calculates the open issues of milestone. func (m *Milestone) CalOpenIssues() { m.NumOpenIssues = m.NumIssues - m.NumClosedIssues @@ -661,15 +673,15 @@ func NewMilestone(m *Milestone) (err error) { } rawSql := "UPDATE `repository` SET num_milestones = num_milestones + 1 WHERE id = ?" - if _, err = sess.Exec(rawSql, m.RepoId); err != nil { + if _, err = sess.Exec(rawSql, m.RepoID); err != nil { sess.Rollback() return err } return sess.Commit() } -// GetMilestoneById returns the milestone by given ID. -func GetMilestoneById(id int64) (*Milestone, error) { +// MilestoneById returns the milestone by given ID. +func MilestoneById(id int64) (*Milestone, error) { m := &Milestone{ID: id} has, err := x.Get(m) if err != nil { @@ -682,7 +694,7 @@ func GetMilestoneById(id int64) (*Milestone, error) { // GetMilestoneByIndex returns the milestone of given repository and index. func GetMilestoneByIndex(repoId, idx int64) (*Milestone, error) { - m := &Milestone{RepoId: repoId, Index: idx} + m := &Milestone{RepoID: repoId, Index: idx} has, err := x.Get(m) if err != nil { return nil, err @@ -693,9 +705,14 @@ func GetMilestoneByIndex(repoId, idx int64) (*Milestone, error) { } // Milestones returns a list of milestones of given repository and status. -func Milestones(repoID int64, isClosed bool) ([]*Milestone, error) { - miles := make([]*Milestone, 0, 10) - return miles, x.Where("repo_id=? AND is_closed=?", repoID, isClosed).Find(&miles) +func Milestones(repoID int64, page int, isClosed bool) ([]*Milestone, error) { + miles := make([]*Milestone, 0, setting.IssuePagingNum) + sess := x.Where("repo_id=? AND is_closed=?", repoID, isClosed) + if page > 0 { + sess = sess.Limit(setting.IssuePagingNum, (page-1)*setting.IssuePagingNum) + } + return miles, sess.Find(&miles) + } // UpdateMilestone updates information of given milestone. @@ -704,46 +721,51 @@ func UpdateMilestone(m *Milestone) error { return err } +// CountClosedMilestones returns number of closed milestones in given repository. +func CountClosedMilestones(repoID int64) int64 { + closed, _ := x.Where("repo_id=? AND is_closed=?", repoID, true).Count(new(Milestone)) + return closed +} + +// MilestoneStats returns number of open and closed milestones of given repository. +func MilestoneStats(repoID int64) (open int64, closed int64) { + open, _ = x.Where("repo_id=? AND is_closed=?", repoID, false).Count(new(Milestone)) + return open, CountClosedMilestones(repoID) +} + // ChangeMilestoneStatus changes the milestone open/closed status. func ChangeMilestoneStatus(m *Milestone, isClosed bool) (err error) { - repo, err := GetRepositoryById(m.RepoId) + repo, err := GetRepositoryById(m.RepoID) if err != nil { return err } sess := x.NewSession() - defer sess.Close() + defer sessionRelease(sess) if err = sess.Begin(); err != nil { return err } m.IsClosed = isClosed - if _, err = sess.Id(m.ID).AllCols().Update(m); err != nil { - sess.Rollback() + if err = UpdateMilestone(m); err != nil { return err } - if isClosed { - repo.NumClosedMilestones++ - } else { - repo.NumClosedMilestones-- - } - if _, err = sess.Id(repo.Id).Update(repo); err != nil { - sess.Rollback() + repo.NumClosedMilestones = int(CountClosedMilestones(repo.Id)) + if _, err = sess.Id(repo.Id).AllCols().Update(repo); err != nil { return err } return sess.Commit() } -// ChangeMilestoneIssueStats updates the open/closed issues counter and progress for the -// milestone associated witht the given issue. +// ChangeMilestoneIssueStats updates the open/closed issues counter and progress +// for the milestone associated witht the given issue. func ChangeMilestoneIssueStats(issue *Issue) error { if issue.MilestoneId == 0 { return nil } - m, err := GetMilestoneById(issue.MilestoneId) - + m, err := MilestoneById(issue.MilestoneId) if err != nil { return err } @@ -770,7 +792,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } if oldMid > 0 { - m, err := GetMilestoneById(oldMid) + m, err := MilestoneById(oldMid) if err != nil { return err } @@ -798,7 +820,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } if mid > 0 { - m, err := GetMilestoneById(mid) + m, err := MilestoneById(mid) if err != nil { return err } @@ -842,7 +864,7 @@ func DeleteMilestone(m *Milestone) (err error) { } rawSql := "UPDATE `repository` SET num_milestones = num_milestones - 1 WHERE id = ?" - if _, err = sess.Exec(rawSql, m.RepoId); err != nil { + if _, err = sess.Exec(rawSql, m.RepoID); err != nil { sess.Rollback() return err } @@ -861,13 +883,6 @@ func DeleteMilestone(m *Milestone) (err error) { return sess.Commit() } -// MilestoneStats returns stats of open and closed milestone count of given repository. -func MilestoneStats(repoID int64) (open int64, closed int64) { - open, _ = x.Where("repo_id=? AND is_closed=?", repoID, false).Count(new(Milestone)) - closed, _ = x.Where("repo_id=? AND is_closed=?", repoID, true).Count(new(Milestone)) - return open, closed -} - // _________ __ // \_ ___ \ ____ _____ _____ ____ _____/ |_ // / \ \/ / _ \ / \ / \_/ __ \ / \ __\ diff --git a/models/repo.go b/models/repo.go index a2b29ff3..25eb3a62 100644 --- a/models/repo.go +++ b/models/repo.go @@ -867,7 +867,7 @@ func DeleteRepository(uid, repoID int64, userName string) error { return err } else if _, err = sess.Delete(&IssueUser{RepoId: repoID}); err != nil { return err - } else if _, err = sess.Delete(&Milestone{RepoId: repoID}); err != nil { + } else if _, err = sess.Delete(&Milestone{RepoID: repoID}); err != nil { return err } else if _, err = sess.Delete(&Release{RepoId: repoID}); err != nil { return err diff --git a/public/css/gogs.min.css b/public/css/gogs.min.css index 9635bd93..1158fefa 100644 --- a/public/css/gogs.min.css +++ b/public/css/gogs.min.css @@ -1 +1 @@ -@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('embedded-opentype'),url(../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('woff'),url(../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('truetype'),url(../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons)format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gist-private:before,.octicon-git-fork-private:before,.octicon-lock:before,.octicon-mirror-private:before{content:'\f06a'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-markdown:before{content:'\f0c9'}.octicon-megaphone:before{content:'\f077'}.octicon-mention:before{content:'\f0be'}.octicon-microscope:before{content:'\f089'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-public:before,.octicon-mirror:before{content:'\f024'}.octicon-mortar-board:before{content:'\f0d7'}.octicon-move-down:before{content:'\f0a8'}.octicon-move-left:before{content:'\f074'}.octicon-move-right:before{content:'\f0a9'}.octicon-move-up:before{content:'\f0a7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-package:before{content:'\f0c4'}.octicon-paintcan:before{content:'\f0d1'}.octicon-pencil:before{content:'\f058'}.octicon-person-add:before,.octicon-person-follow:before,.octicon-person:before{content:'\f018'}.octicon-pin:before{content:'\f041'}.octicon-playback-fast-forward:before{content:'\f0bd'}.octicon-playback-pause:before{content:'\f0bb'}.octicon-playback-play:before{content:'\f0bf'}.octicon-playback-rewind:before{content:'\f0bc'}.octicon-plug:before{content:'\f0d4'}.octicon-file-add:before,.octicon-file-directory-create:before,.octicon-gist-new:before,.octicon-plus:before,.octicon-repo-create:before{content:'\f05d'}.octicon-podium:before{content:'\f0af'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-puzzle:before{content:'\f0c0'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-repo-delete:before,.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-gist-fork:before,.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search-save:before,.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-log-in:before,.octicon-sign-in:before{content:'\f036'}.octicon-log-out:before,.octicon-sign-out:before{content:'\f032'}.octicon-split:before{content:'\f0c6'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star-add:before,.octicon-star-delete:before,.octicon-star:before{content:'\f02a'}.octicon-steps:before{content:'\f0c7'}.octicon-stop:before{content:'\f08f'}.octicon-repo-sync:before,.octicon-sync:before{content:'\f087'}.octicon-tag-add:before,.octicon-tag-remove:before,.octicon-tag:before{content:'\f015'}.octicon-telescope:before{content:'\f088'}.octicon-terminal:before{content:'\f0c8'}.octicon-three-bars:before{content:'\f05e'}.octicon-thumbsdown:before{content:'\f0db'}.octicon-thumbsup:before{content:'\f0da'}.octicon-tools:before{content:'\f031'}.octicon-trashcan:before{content:'\f0d0'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-unmute:before{content:'\f0ba'}.octicon-versions:before{content:'\f064'}.octicon-remove-close:before,.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}body{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif,'微软雅黑';background-color:#FAFAFA}img{border-radius:3px}.full.height{padding:0;margin:0 0 -87px 0;min-height:100%}.following.bar{z-index:900;left:0;width:100%;padding:.7em 0}.following.bar.light{background-color:#fff;border-bottom:1px solid #DDD;box-shadow:0 2px 3px rgba(0,0,0,.04)}.following.bar .ui.secondary.menu{height:30px}.following.bar .column .menu{margin-top:0}.following.bar .brand{float:left;margin-right:5px}.following.bar .head.link.item{padding-right:0!important}.following.bar .head.link.item .dropdown.icon,.following.bar .head.link.item .menu .octicon{margin-right:5px}.following.bar .user.avatar{padding:0;margin-top:1px}.following.bar .searchbox{background-color:#f4f4f4!important}.following.bar .searchbox:focus{background-color:#e9e9e9!important}.following.bar .octicon{width:16px;opacity:1!important;text-align:center}.ui.left{float:left}.ui.right{float:right}footer{margin-top:40px!important;background-color:#fff;border-top:1px solid #d6d6d6;clear:both;width:100%;color:#888}footer .fa{width:16px;text-align:center;color:#428bca}footer .links>*{border-left:1px solid #d6d6d6;padding-left:8px;margin-left:5px}footer .links>:first-child{border-left:none}.hide{display:none}.center{text-align:center}.text-error{color:#d95c5c!important}.img-1{width:2px;height:2px}.img-2{width:4px;height:4px}.img-3{width:6px;height:6px}.img-4{width:8px;height:8px}.img-5{width:10px;height:10px}.img-6{width:12px;height:12px}.img-7{width:14px;height:14px}.img-8{width:16px;height:16px}.img-9{width:18px;height:18px}.img-10{width:20px;height:20px}.img-11{width:22px;height:22px}.img-12{width:24px;height:24px}.img-13{width:26px;height:26px}.img-14{width:28px;height:28px}.img-15{width:30px;height:30px}.img-16{width:32px;height:32px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.home{padding-bottom:120px}.home .logo{max-width:250px}.home .hero h1,.home .hero h2{font-family:'PT Sans Narrow',sans-serif}.home .hero h1{font-size:7em}.home .hero h2{font-size:4em}.home .hero .octicon{color:#d9453d;font-size:60px;margin-right:10px}.home .hero.header{font-size:24px}.home p.large{font-size:20px}.home .stackable{padding-top:30px}.home a{color:#d9453d}.install{padding-top:45px;padding-bottom:120px}.install .attached.header{background:#f0f0f0}.install form label{text-align:right;width:40%!important}.install form input{width:35%!important}.install form .field{text-align:left}.install form .field .help{margin-left:41%}.install form .field.optional .title{margin-left:38%}.install .ui .checkbox{margin-left:40%!important}.install .ui .checkbox label{width:auto!important}.form .help{color:#999;padding-top:.6em;padding-bottom:.6em;display:inline-block}.repository{padding-top:15px;padding-bottom:120px}.repository .head{height:75px;padding-top:20px;background-color:#FCFCFC}.repository .head .mega-octicon{width:30px}.repository .head .fork-flag,.repository .head a{font-weight:300}.repository .head .ui.label{margin-top:5px;vertical-align:top}.repository .head .fork-flag{margin-left:38px;display:block;font-size:11px;line-height:10px;white-space:nowrap}.repository .head .button{margin-left:10px}.repository .head .button i{margin-right:5px}.repository .head .num{font-weight:700}.repository .head .octicon{height:5px}.repository .navbar{height:60px;padding-top:20px}.repository .navbar .ui.secondary.menu .item{margin-left:-10px;margin-top:-7px}.repository .navbar .ui.secondary.menu .item>.input .color-picker,.repository .navbar .ui.secondary.menu .item>.input .new-label-input{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.repository .navbar .ui.secondary.menu .item .new-label-input{width:150px}.repository .navbar .ui.secondary.menu .item .color-picker{height:35px;width:auto;padding-left:30px}.repository .navbar .ui.secondary.menu .item .minicolors-swatch.minicolors-sprite{top:10px;left:10px;width:15px;height:15px}.repository .navbar .ui.secondary.menu .item.precolors{padding-left:0;padding-right:0;margin-right:10px;width:120px}.repository .navbar .ui.secondary.menu .item.precolors .color{float:left;width:15px;height:15px}.repository .filter.menu .label.color{margin-left:17px;padding:0 8px}.repository .filter.menu .octicon{float:left;margin-left:-5px;margin-right:-7px}.repository .filter.menu .menu{max-height:300px;overflow-x:auto}.repository .type.item .menu{right:0!important;left:auto!important}.repository .issue.list{clear:both;list-style:none}.repository .issue.list>.item{padding-top:15px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .issue.list>.item .title{color:#444;font-size:15px;font-weight:700;margin:0 6px}.repository .issue.list>.item .title:hover{color:#000}.repository .issue.list>.item .comment{padding-right:10px;color:#666}.repository .issue.list>.item .desc{padding-top:5px;color:#999}.repository .issue.list .page.buttons{padding-top:15px}.repository .label.list{clear:both;list-style:none}.repository .label.list .item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .label.list .item a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .label.list .item a:hover{color:#000}.repository .label.list .item a.open-issues{margin-right:30px}.repository .milestone.list{clear:both;list-style:none}.repository .milestone.list .item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .milestone.list .item>a{padding-top:5px;padding-right:10px;color:#000}.repository .milestone.list .item>a:hover{color:#4078c0}.repository .milestone.list .item .ui.progress{width:40%;padding:0;border:0;margin:0}.repository .milestone.list .item .ui.progress .bar{height:20px}.repository .milestone.list .item .meta{color:#999;padding-top:5px}.repository .milestone.list .item .meta .issue-stats .octicon{padding-left:5px}.repository .milestone.list .item .operate{margin-top:-15px}.repository .milestone.list .item .operate>a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .milestone.list .item .operate>a:hover{color:#000}.repository .milestone.list .item .content{padding-top:10px}.edit-label.modal .color-picker{margin-top:-8px!important;height:35px;width:auto!important;padding-left:30px!important}.edit-label.modal .minicolors-swatch.minicolors-sprite{top:1px;left:10px;width:15px;height:15px}.edit-label.modal .precolors{margin-bottom:-11px!important;padding-left:0!important;padding-right:0!important;margin-right:10px!important;width:120px!important}.edit-label.modal .precolors .color{float:left;margin:0!important;width:15px;height:15px} \ No newline at end of file +@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('embedded-opentype'),url(../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('woff'),url(../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('truetype'),url(../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons)format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gist-private:before,.octicon-git-fork-private:before,.octicon-lock:before,.octicon-mirror-private:before{content:'\f06a'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-markdown:before{content:'\f0c9'}.octicon-megaphone:before{content:'\f077'}.octicon-mention:before{content:'\f0be'}.octicon-microscope:before{content:'\f089'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-public:before,.octicon-mirror:before{content:'\f024'}.octicon-mortar-board:before{content:'\f0d7'}.octicon-move-down:before{content:'\f0a8'}.octicon-move-left:before{content:'\f074'}.octicon-move-right:before{content:'\f0a9'}.octicon-move-up:before{content:'\f0a7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-package:before{content:'\f0c4'}.octicon-paintcan:before{content:'\f0d1'}.octicon-pencil:before{content:'\f058'}.octicon-person-add:before,.octicon-person-follow:before,.octicon-person:before{content:'\f018'}.octicon-pin:before{content:'\f041'}.octicon-playback-fast-forward:before{content:'\f0bd'}.octicon-playback-pause:before{content:'\f0bb'}.octicon-playback-play:before{content:'\f0bf'}.octicon-playback-rewind:before{content:'\f0bc'}.octicon-plug:before{content:'\f0d4'}.octicon-file-add:before,.octicon-file-directory-create:before,.octicon-gist-new:before,.octicon-plus:before,.octicon-repo-create:before{content:'\f05d'}.octicon-podium:before{content:'\f0af'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-puzzle:before{content:'\f0c0'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-repo-delete:before,.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-gist-fork:before,.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search-save:before,.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-log-in:before,.octicon-sign-in:before{content:'\f036'}.octicon-log-out:before,.octicon-sign-out:before{content:'\f032'}.octicon-split:before{content:'\f0c6'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star-add:before,.octicon-star-delete:before,.octicon-star:before{content:'\f02a'}.octicon-steps:before{content:'\f0c7'}.octicon-stop:before{content:'\f08f'}.octicon-repo-sync:before,.octicon-sync:before{content:'\f087'}.octicon-tag-add:before,.octicon-tag-remove:before,.octicon-tag:before{content:'\f015'}.octicon-telescope:before{content:'\f088'}.octicon-terminal:before{content:'\f0c8'}.octicon-three-bars:before{content:'\f05e'}.octicon-thumbsdown:before{content:'\f0db'}.octicon-thumbsup:before{content:'\f0da'}.octicon-tools:before{content:'\f031'}.octicon-trashcan:before{content:'\f0d0'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-unmute:before{content:'\f0ba'}.octicon-versions:before{content:'\f064'}.octicon-remove-close:before,.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}body{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif,'微软雅黑';background-color:#FAFAFA}img{border-radius:3px}.full.height{padding:0;margin:0 0 -87px 0;min-height:100%}.following.bar{z-index:900;left:0;width:100%;padding:.7em 0}.following.bar.light{background-color:#fff;border-bottom:1px solid #DDD;box-shadow:0 2px 3px rgba(0,0,0,.04)}.following.bar .ui.secondary.menu{height:30px}.following.bar .column .menu{margin-top:0}.following.bar .brand{float:left;margin-right:5px}.following.bar .head.link.item{padding-right:0!important}.following.bar .head.link.item .dropdown.icon,.following.bar .head.link.item .menu .octicon{margin-right:5px}.following.bar .user.avatar{padding:0;margin-top:1px}.following.bar .searchbox{background-color:#f4f4f4!important}.following.bar .searchbox:focus{background-color:#e9e9e9!important}.following.bar .octicon{width:16px;opacity:1!important;text-align:center}.ui.left{float:left}.ui.right{float:right}footer{margin-top:40px!important;background-color:#fff;border-top:1px solid #d6d6d6;clear:both;width:100%;color:#888}footer .fa{width:16px;text-align:center;color:#428bca}footer .links>*{border-left:1px solid #d6d6d6;padding-left:8px;margin-left:5px}footer .links>:first-child{border-left:none}.hide{display:none}.center{text-align:center}.text-error{color:#d95c5c!important}.img-1{width:2px;height:2px}.img-2{width:4px;height:4px}.img-3{width:6px;height:6px}.img-4{width:8px;height:8px}.img-5{width:10px;height:10px}.img-6{width:12px;height:12px}.img-7{width:14px;height:14px}.img-8{width:16px;height:16px}.img-9{width:18px;height:18px}.img-10{width:20px;height:20px}.img-11{width:22px;height:22px}.img-12{width:24px;height:24px}.img-13{width:26px;height:26px}.img-14{width:28px;height:28px}.img-15{width:30px;height:30px}.img-16{width:32px;height:32px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.home{padding-bottom:120px}.home .logo{max-width:250px}.home .hero h1,.home .hero h2{font-family:'PT Sans Narrow',sans-serif}.home .hero h1{font-size:7em}.home .hero h2{font-size:4em}.home .hero .octicon{color:#d9453d;font-size:60px;margin-right:10px}.home .hero.header{font-size:24px}.home p.large{font-size:20px}.home .stackable{padding-top:30px}.home a{color:#d9453d}.install{padding-top:45px;padding-bottom:120px}.install .attached.header{background:#f0f0f0}.install form label{text-align:right;width:40%!important}.install form input{width:35%!important}.install form .field{text-align:left}.install form .field .help{margin-left:41%}.install form .field.optional .title{margin-left:38%}.install .ui .checkbox{margin-left:40%!important}.install .ui .checkbox label{width:auto!important}.form .help{color:#999;padding-top:.6em;padding-bottom:.6em;display:inline-block}.repository{padding-top:15px;padding-bottom:120px}.repository .head{height:75px;padding-top:20px;background-color:#FCFCFC}.repository .head .mega-octicon{width:30px}.repository .head .fork-flag,.repository .head a{font-weight:300}.repository .head .ui.label{margin-top:5px;vertical-align:top}.repository .head .fork-flag{margin-left:38px;display:block;font-size:11px;line-height:10px;white-space:nowrap}.repository .head .button{margin-left:10px}.repository .head .button i{margin-right:5px}.repository .head .num{font-weight:700}.repository .head .octicon{height:5px}.repository .navbar{height:60px;padding-top:20px}.repository .navbar .ui.secondary.menu .item{margin-left:-10px;margin-top:-7px}.repository .navbar .ui.secondary.menu .item>.input .color-picker,.repository .navbar .ui.secondary.menu .item>.input .new-label-input{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.repository .navbar .ui.secondary.menu .item .new-label-input{width:150px}.repository .navbar .ui.secondary.menu .item .color-picker{height:35px;width:auto;padding-left:30px}.repository .navbar .ui.secondary.menu .item .minicolors-swatch.minicolors-sprite{top:10px;left:10px;width:15px;height:15px}.repository .navbar .ui.secondary.menu .item.precolors{padding-left:0;padding-right:0;margin-right:10px;width:120px}.repository .navbar .ui.secondary.menu .item.precolors .color{float:left;width:15px;height:15px}.repository .filter.menu .label.color{margin-left:17px;padding:0 8px}.repository .filter.menu .octicon{float:left;margin-left:-5px;margin-right:-7px}.repository .filter.menu .menu{max-height:300px;overflow-x:auto}.repository .type.item .menu{right:0!important;left:auto!important}.repository .page.buttons{padding-top:15px}.repository .issue.list{clear:both;list-style:none}.repository .issue.list>.item{padding-top:15px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .issue.list>.item .title{color:#444;font-size:15px;font-weight:700;margin:0 6px}.repository .issue.list>.item .title:hover{color:#000}.repository .issue.list>.item .comment{padding-right:10px;color:#666}.repository .issue.list>.item .desc{padding-top:5px;color:#999}.repository .label.list{clear:both;list-style:none}.repository .label.list .item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .label.list .item a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .label.list .item a:hover{color:#000}.repository .label.list .item a.open-issues{margin-right:30px}.repository .milestone.list{clear:both;list-style:none}.repository .milestone.list>.item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .milestone.list>.item>a{padding-top:5px;padding-right:10px;color:#000}.repository .milestone.list>.item>a:hover{color:#4078c0}.repository .milestone.list>.item .ui.progress{width:40%;padding:0;border:0;margin:0}.repository .milestone.list>.item .ui.progress .bar{height:20px}.repository .milestone.list>.item .meta{color:#999;padding-top:5px}.repository .milestone.list>.item .meta .issue-stats .octicon{padding-left:5px}.repository .milestone.list>.item .operate{margin-top:-15px}.repository .milestone.list>.item .operate>a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .milestone.list>.item .operate>a:hover{color:#000}.repository .milestone.list>.item .content{padding-top:10px}.edit-label.modal .color-picker{margin-top:-8px!important;height:35px;width:auto!important;padding-left:30px!important}.edit-label.modal .minicolors-swatch.minicolors-sprite{top:1px;left:10px;width:15px;height:15px}.edit-label.modal .precolors{margin-bottom:-11px!important;padding-left:0!important;padding-right:0!important;margin-right:10px!important;width:120px!important}.edit-label.modal .precolors .color{float:left;margin:0!important;width:15px;height:15px} \ No newline at end of file diff --git a/public/less/_repository.less b/public/less/_repository.less index 5cfdc674..75736de8 100644 --- a/public/less/_repository.less +++ b/public/less/_repository.less @@ -98,6 +98,9 @@ left: auto!important; } + .page.buttons { + padding-top: 15px; + } .issue.list { clear: both; list-style: none; @@ -123,9 +126,6 @@ color: #999; } } - .page.buttons { - padding-top: 15px; - } } .label.list { @@ -153,7 +153,7 @@ .milestone.list { clear: both; list-style: none; - .item { + > .item { padding-top: 10px; padding-bottom: 10px; border-bottom: 1px dashed #AAA; diff --git a/routers/repo/issue.go b/routers/repo/issue.go index ea990dd1..89fcf558 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -66,8 +66,6 @@ func Issues(ctx *middleware.Context) { viewType = "all" } - isShowClosed := ctx.Query("state") == "closed" - // Must sign in to see issues about you. if viewType != "all" && !ctx.IsSigned { ctx.SetCookie("redirect_to", "/"+url.QueryEscape(setting.AppSubUrl+ctx.Req.RequestURI), 0, setting.AppSubUrl) @@ -96,6 +94,7 @@ func Issues(ctx *middleware.Context) { repo := ctx.Repo.Repository selectLabels := ctx.Query("labels") milestoneID := ctx.QueryInt64("milestone") + isShowClosed := ctx.Query("state") == "closed" issueStats := models.GetIssueStats(repo.Id, uid, com.StrTo(selectLabels).MustInt64(), isShowClosed, filterMode) page := ctx.QueryInt("page") @@ -112,7 +111,7 @@ func Issues(ctx *middleware.Context) { ctx.Data["Page"] = paginater.New(total, setting.IssuePagingNum, page, 5) // Get issues. - issues, err := models.GetIssues(uid, assigneeID, repo.Id, posterID, milestoneID, + issues, err := models.Issues(uid, assigneeID, repo.Id, posterID, milestoneID, page, isShowClosed, filterMode == models.FM_MENTION, selectLabels, ctx.Query("sortType")) if err != nil { ctx.Handle(500, "GetIssues: %v", err) @@ -172,22 +171,25 @@ func CreateIssue(ctx *middleware.Context) { ctx.Data["IsRepoToolbarIssuesList"] = false ctx.Data["AttachmentsEnabled"] = setting.AttachmentEnabled - var err error + var ( + repo = ctx.Repo.Repository + err error + ) // Get all milestones. - ctx.Data["OpenMilestones"], err = models.Milestones(ctx.Repo.Repository.Id, false) + ctx.Data["OpenMilestones"], err = models.Milestones(repo.Id, -1, false) if err != nil { - ctx.Handle(500, "issue.ViewIssue(GetMilestones.1): %v", err) + ctx.Handle(500, "GetMilestones.1: %v", err) return } - ctx.Data["ClosedMilestones"], err = models.Milestones(ctx.Repo.Repository.Id, true) + ctx.Data["ClosedMilestones"], err = models.Milestones(repo.Id, -1, true) if err != nil { - ctx.Handle(500, "issue.ViewIssue(GetMilestones.2): %v", err) + ctx.Handle(500, "GetMilestones.2: %v", err) return } - us, err := ctx.Repo.Repository.GetCollaborators() + us, err := repo.GetCollaborators() if err != nil { - ctx.Handle(500, "issue.CreateIssue(GetCollaborators)", err) + ctx.Handle(500, "GetCollaborators", err) return } @@ -218,12 +220,12 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) { var err error // Get all milestones. - _, err = models.Milestones(ctx.Repo.Repository.Id, false) + _, err = models.Milestones(ctx.Repo.Repository.Id, -1, false) if err != nil { send(500, nil, err) return } - _, err = models.Milestones(ctx.Repo.Repository.Id, true) + _, err = models.Milestones(ctx.Repo.Repository.Id, -1, true) if err != nil { send(500, nil, err) return @@ -371,7 +373,7 @@ func ViewIssue(ctx *middleware.Context) { // Get assigned milestone. if issue.MilestoneId > 0 { - ctx.Data["Milestone"], err = models.GetMilestoneById(issue.MilestoneId) + ctx.Data["Milestone"], err = models.MilestoneById(issue.MilestoneId) if err != nil { if err == models.ErrMilestoneNotExist { log.Warn("issue.ViewIssue(GetMilestoneById): %v", err) @@ -383,12 +385,12 @@ func ViewIssue(ctx *middleware.Context) { } // Get all milestones. - ctx.Data["OpenMilestones"], err = models.Milestones(ctx.Repo.Repository.Id, false) + ctx.Data["OpenMilestones"], err = models.Milestones(ctx.Repo.Repository.Id, -1, false) if err != nil { ctx.Handle(500, "issue.ViewIssue(GetMilestones.1): %v", err) return } - ctx.Data["ClosedMilestones"], err = models.Milestones(ctx.Repo.Repository.Id, true) + ctx.Data["ClosedMilestones"], err = models.Milestones(ctx.Repo.Repository.Id, -1, true) if err != nil { ctx.Handle(500, "issue.ViewIssue(GetMilestones.2): %v", err) return @@ -969,8 +971,24 @@ func Milestones(ctx *middleware.Context) { ctx.Data["PageIsMilestones"] = true isShowClosed := ctx.Query("state") == "closed" + openCount, closedCount := models.MilestoneStats(ctx.Repo.Repository.Id) + ctx.Data["OpenCount"] = openCount + ctx.Data["ClosedCount"] = closedCount + + page := ctx.QueryInt("page") + if page <= 1 { + page = 1 + } + + var total int + if !isShowClosed { + total = int(openCount) + } else { + total = int(closedCount) + } + ctx.Data["Page"] = paginater.New(total, setting.IssuePagingNum, page, 5) - miles, err := models.Milestones(ctx.Repo.Repository.Id, isShowClosed) + miles, err := models.Milestones(ctx.Repo.Repository.Id, page, isShowClosed) if err != nil { ctx.Handle(500, "GetMilestones", err) return @@ -981,10 +999,6 @@ func Milestones(ctx *middleware.Context) { } ctx.Data["Milestones"] = miles - openCount, closedCount := models.MilestoneStats(ctx.Repo.Repository.Id) - ctx.Data["OpenCount"] = openCount - ctx.Data["ClosedCount"] = closedCount - if isShowClosed { ctx.Data["State"] = "closed" } else { @@ -1024,7 +1038,7 @@ func NewMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) { } mile := &models.Milestone{ - RepoId: ctx.Repo.Repository.Id, + RepoID: ctx.Repo.Repository.Id, Index: int64(ctx.Repo.Repository.NumMilestones) + 1, Name: form.Title, Content: form.Content, @@ -1038,14 +1052,17 @@ func NewMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) { ctx.Redirect(ctx.Repo.RepoLink + "/milestones") } -func UpdateMilestone(ctx *middleware.Context) { +func EditMilestone(ctx *middleware.Context) {} +func EditMilestonePost(ctx *middleware.Context) {} + +func MilestoneActions(ctx *middleware.Context) { ctx.Data["Title"] = "Update Milestone" ctx.Data["IsRepoToolbarIssues"] = true ctx.Data["IsRepoToolbarIssuesList"] = true idx := ctx.ParamsInt64(":index") if idx == 0 { - ctx.Handle(404, "issue.UpdateMilestone", nil) + ctx.Handle(404, "get milestone index", nil) return } @@ -1165,7 +1182,3 @@ func IssueGetAttachment(ctx *middleware.Context) { func PullRequest2(ctx *middleware.Context) { ctx.HTML(200, "repo/pr2/list") } - -func Milestones2(ctx *middleware.Context) { - ctx.HTML(200, "repo/milestone2/list") -} diff --git a/templates/.VERSION b/templates/.VERSION index c03ca0c8..a143c676 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.6.3.0803 Beta \ No newline at end of file +0.6.3.0804 Beta \ No newline at end of file diff --git a/templates/repo/issue/create.tmpl b/templates/repo/issue/create.tmpl index de0c47ac..f38c57d0 100644 --- a/templates/repo/issue/create.tmpl +++ b/templates/repo/issue/create.tmpl @@ -54,7 +54,7 @@ {{else}}
      {{range .OpenMilestones}} -
    • +
    • {{.Name}}

    • diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index e24f8bb9..0a3eebbd 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -88,20 +88,20 @@ {{end}} {{with .Page}} - {{if gt .Total 1}} + {{if gt .TotalPages 1}}
      diff --git a/templates/repo/issue/milestone.tmpl b/templates/repo/issue/milestone.tmpl index 3add7cd8..d5b22806 100644 --- a/templates/repo/issue/milestone.tmpl +++ b/templates/repo/issue/milestone.tmpl @@ -28,8 +28,8 @@ {{range .Milestones}}
    • {{.Name}} -
      -
      +
      +
      @@ -63,6 +63,28 @@ {{end}}
    • {{end}} + + {{with .Page}} + {{if gt .TotalPages 1}} +
      + +
      + {{end}} + {{end}}
    diff --git a/templates/repo/milestone2/list.tmpl b/templates/repo/milestone2/list.tmpl deleted file mode 100644 index 68644424..00000000 --- a/templates/repo/milestone2/list.tmpl +++ /dev/null @@ -1,58 +0,0 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
    - {{template "repo/header_old" .}} -
    - -
    - -
      -
    • - -

      - - Delete account text -

      -

      - Updated 3 days ago    - Due to Dec 31,2014 -

      -
      - In this version of release, users are able to register and log in/out on Gogs, setting up SSH keys and do most of Git operations through SSH with public repositories. And Web UI only for view of Git data, no extra features are supported. -
      -
      -

      - closed 12 - - 12 open -

      -
      - Edit - Delete - Close -
      -
      -
    • -
    -
    -
    -
    -{{template "ng/base/footer" .}} \ No newline at end of file -- cgit v1.2.3 From e50982f5ec78c3cfa4a1cf322f7fa1a4dea44b84 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Wed, 5 Aug 2015 11:14:17 +0800 Subject: allow anonymous SSH clone --- cmd/serve.go | 94 ++++++++++++++++++++++++---------------------- gogs.go | 2 +- models/error.go | 14 +++++++ models/issue.go | 4 +- models/login.go | 12 +++--- models/repo.go | 2 +- models/user.go | 13 +++---- modules/auth/auth.go | 6 +-- modules/middleware/org.go | 2 +- modules/middleware/repo.go | 4 +- routers/api/v1/repo.go | 6 +-- routers/api/v1/user.go | 2 +- routers/org/members.go | 2 +- routers/org/teams.go | 2 +- routers/repo/http.go | 4 +- routers/repo/repo.go | 2 +- routers/repo/setting.go | 6 +-- routers/user/auth.go | 8 ++-- routers/user/home.go | 14 +++---- templates/.VERSION | 2 +- 20 files changed, 109 insertions(+), 92 deletions(-) (limited to 'models/repo.go') diff --git a/cmd/serve.go b/cmd/serve.go index fed65bba..ecf07114 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -78,35 +78,18 @@ func runServ(c *cli.Context) { setup("serv.log") fail := func(userMessage, logMessage string, args ...interface{}) { - fmt.Fprintln(os.Stderr, "Gogs: ", userMessage) - log.GitLogger.Fatal(2, logMessage, args...) + fmt.Fprintln(os.Stderr, "Gogs:", userMessage) + log.GitLogger.Fatal(3, logMessage, args...) } if len(c.Args()) < 1 { fail("Not enough arguments", "Not enough arguments") } - keys := strings.Split(c.Args()[0], "-") - if len(keys) != 2 { - fail("key-id format error", "Invalid key id: %s", c.Args()[0]) - } - - keyId, err := com.StrTo(keys[1]).Int64() - if err != nil { - fail("key-id format error", "Invalid key id: %s", err) - } - - user, err := models.GetUserByKeyId(keyId) - if err != nil { - fail("internal error", "Failed to get user by key ID(%d): %v", keyId, err) - } - cmd := os.Getenv("SSH_ORIGINAL_COMMAND") - if cmd == "" { - fmt.Printf("Hi, %s! You've successfully authenticated, but Gogs does not provide shell access.\n", user.Name) - if user.IsAdmin { - println("If this is unexpected, please log in with password and setup Gogs under another user.") - } + if len(cmd) == 0 { + println("Hi there, You've successfully authenticated, but Gogs does not provide shell access.") + println("If this is unexpected, please log in with password and setup Gogs under another user.") return } @@ -121,7 +104,7 @@ func runServ(c *cli.Context) { repoUser, err := models.GetUserByName(repoUserName) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { fail("Repository owner does not exist", "Unregistered owner: %s", repoUserName) } fail("Internal error", "Failed to get repository owner(%s): %v", repoUserName, err) @@ -130,11 +113,7 @@ func runServ(c *cli.Context) { repo, err := models.GetRepositoryByName(repoUser.Id, repoName) if err != nil { if models.IsErrRepoNotExist(err) { - if user.Id == repoUser.Id || repoUser.IsOwnedBy(user.Id) { - fail("Repository does not exist", "Repository does not exist: %s/%s", repoUser.Name, repoName) - } else { - fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", repoUser.Name, repoName) - } + fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", repoUser.Name, repoName) } fail("Internal error", "Failed to get repository: %v", err) } @@ -144,17 +123,39 @@ func runServ(c *cli.Context) { fail("Unknown git command", "Unknown git command %s", verb) } - mode, err := models.AccessLevel(user, repo) - if err != nil { - fail("Internal error", "Fail to check access: %v", err) - } else if mode < requestedMode { - clientMessage := _ACCESS_DENIED_MESSAGE - if mode >= models.ACCESS_MODE_READ { - clientMessage = "You do not have sufficient authorization for this action" + // Allow anonymous clone for public repositories. + var ( + keyID int64 + user *models.User + ) + if requestedMode == models.ACCESS_MODE_WRITE || repo.IsPrivate { + keys := strings.Split(c.Args()[0], "-") + if len(keys) != 2 { + fail("key-id format error", "Invalid key id: %s", c.Args()[0]) + } + + keyID, err = com.StrTo(keys[1]).Int64() + if err != nil { + fail("key-id format error", "Invalid key id: %s", err) + } + + user, err = models.GetUserByKeyId(keyID) + if err != nil { + fail("internal error", "Failed to get user by key ID(%d): %v", keyID, err) + } + + mode, err := models.AccessLevel(user, repo) + if err != nil { + fail("Internal error", "Fail to check access: %v", err) + } else if mode < requestedMode { + clientMessage := _ACCESS_DENIED_MESSAGE + if mode >= models.ACCESS_MODE_READ { + clientMessage = "You do not have sufficient authorization for this action" + } + fail(clientMessage, + "User %s does not have level %v access to repository %s", + user.Name, requestedMode, repoPath) } - fail(clientMessage, - "User %s does not have level %v access to repository %s", - user.Name, requestedMode, repoPath) } uuid := uuid.NewV4().String() @@ -201,12 +202,15 @@ func runServ(c *cli.Context) { } // Update key activity. - key, err := models.GetPublicKeyById(keyId) - if err != nil { - fail("Internal error", "GetPublicKeyById: %v", err) - } - key.Updated = time.Now() - if err = models.UpdatePublicKey(key); err != nil { - fail("Internal error", "UpdatePublicKey: %v", err) + if keyID > 0 { + key, err := models.GetPublicKeyById(keyID) + if err != nil { + fail("Internal error", "GetPublicKeyById: %v", err) + } + + key.Updated = time.Now() + if err = models.UpdatePublicKey(key); err != nil { + fail("Internal error", "UpdatePublicKey: %v", err) + } } } diff --git a/gogs.go b/gogs.go index 712f8606..1513bbfa 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.6.3.0802 Beta" +const APP_VER = "0.6.3.0805 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/error.go b/models/error.go index 04f850de..067eace2 100644 --- a/models/error.go +++ b/models/error.go @@ -54,6 +54,20 @@ func (err ErrUserAlreadyExist) Error() string { return fmt.Sprintf("user already exists: [name: %s]", err.Name) } +type ErrUserNotExist struct { + UID int64 + Name string +} + +func IsErrUserNotExist(err error) bool { + _, ok := err.(ErrUserNotExist) + return ok +} + +func (err ErrUserNotExist) Error() string { + return fmt.Sprintf("user does not exist: [uid: %d, name: %s]", err.UID, err.Name) +} + type ErrEmailAlreadyUsed struct { Email string } diff --git a/models/issue.go b/models/issue.go index f9930aa6..77b38cbc 100644 --- a/models/issue.go +++ b/models/issue.go @@ -57,7 +57,7 @@ type Issue struct { func (i *Issue) GetPoster() (err error) { i.Poster, err = GetUserById(i.PosterId) - if err == ErrUserNotExist { + if IsErrUserNotExist(err) { i.Poster = &User{Name: "FakeUser"} return nil } @@ -92,7 +92,7 @@ func (i *Issue) GetAssignee() (err error) { return nil } i.Assignee, err = GetUserById(i.AssigneeId) - if err == ErrUserNotExist { + if IsErrUserNotExist(err) { return nil } return err diff --git a/models/login.go b/models/login.go index 10f782be..82cea35f 100644 --- a/models/login.go +++ b/models/login.go @@ -41,7 +41,7 @@ var ( var LoginTypes = map[LoginType]string{ LDAP: "LDAP", SMTP: "SMTP", - PAM: "PAM", + PAM: "PAM", } // Ensure structs implemented interface. @@ -192,7 +192,7 @@ func UserSignIn(uname, passwd string) (*User, error) { // Now verify password. if u.LoginType == PLAIN { if !u.ValidatePassword(passwd) { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{u.Id, u.Name} } return u, nil } @@ -229,7 +229,7 @@ func UserSignIn(uname, passwd string) (*User, error) { } } - return nil, ErrUserNotExist + return nil, ErrUserNotExist{u.Id, u.Name} } var source LoginSource @@ -261,7 +261,7 @@ func LoginUserLdapSource(u *User, name, passwd string, sourceId int64, cfg *LDAP name, fn, sn, mail, logged := cfg.Ldapsource.SearchEntry(name, passwd) if !logged { // User not in LDAP, do nothing - return nil, ErrUserNotExist + return nil, ErrUserNotExist{u.Id, u.Name} } if !autoRegister { return u, nil @@ -362,7 +362,7 @@ func LoginUserSMTPSource(u *User, name, passwd string, sourceId int64, cfg *SMTP if err := SmtpAuth(cfg.Host, cfg.Port, auth, cfg.TLS); err != nil { if strings.Contains(err.Error(), "Username and Password not accepted") { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{u.Id, u.Name} } return nil, err } @@ -397,7 +397,7 @@ func LoginUserSMTPSource(u *User, name, passwd string, sourceId int64, cfg *SMTP func LoginUserPAMSource(u *User, name, passwd string, sourceId int64, cfg *PAMConfig, autoRegister bool) (*User, error) { if err := pam.PAMAuth(cfg.ServiceName, name, passwd); err != nil { if strings.Contains(err.Error(), "Authentication failure") { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{u.Id, u.Name} } return nil, err } diff --git a/models/repo.go b/models/repo.go index a2b29ff3..117837fc 100644 --- a/models/repo.go +++ b/models/repo.go @@ -624,7 +624,7 @@ func GetRepositoriesWithUsers(num, offset int) ([]*Repository, error) { if err != nil { return nil, err } else if !has { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{repo.OwnerId, ""} } } diff --git a/models/user.go b/models/user.go index e239ea17..c5d4b9d9 100644 --- a/models/user.go +++ b/models/user.go @@ -36,7 +36,6 @@ const ( ) var ( - ErrUserNotExist = errors.New("User does not exist") ErrUserNotKeyOwner = errors.New("User does not the owner of public key") ErrEmailNotExist = errors.New("E-mail does not exist") ErrEmailNotActivated = errors.New("E-mail address has not been activated") @@ -555,7 +554,7 @@ func getUserById(e Engine, id int64) (*User, error) { if err != nil { return nil, err } else if !has { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{id, ""} } return u, nil } @@ -568,14 +567,14 @@ func GetUserById(id int64) (*User, error) { // GetUserByName returns user by given name. func GetUserByName(name string) (*User, error) { if len(name) == 0 { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{0, name} } u := &User{LowerName: strings.ToLower(name)} has, err := x.Get(u) if err != nil { return nil, err } else if !has { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{0, name} } return u, nil } @@ -700,7 +699,7 @@ func MakeEmailPrimary(email *EmailAddress) error { if err != nil { return err } else if !has { - return ErrUserNotExist + return ErrUserNotExist{email.Uid, ""} } // Make sure the former primary email doesn't disappear @@ -763,7 +762,7 @@ func ValidateCommitsWithEmails(oldCommits *list.List) *list.List { // GetUserByEmail returns the user object by given e-mail if exists. func GetUserByEmail(email string) (*User, error) { if len(email) == 0 { - return nil, ErrUserNotExist + return nil, ErrUserNotExist{0, "email"} } // First try to find the user by primary email user := &User{Email: strings.ToLower(email)} @@ -785,7 +784,7 @@ func GetUserByEmail(email string) (*User, error) { return GetUserById(emailAddress.Uid) } - return nil, ErrUserNotExist + return nil, ErrUserNotExist{0, "email"} } // SearchUserByName returns given number of users whose name contains keyword. diff --git a/modules/auth/auth.go b/modules/auth/auth.go index 155a8272..7e01abc3 100644 --- a/modules/auth/auth.go +++ b/modules/auth/auth.go @@ -55,7 +55,7 @@ func SignedInId(req *http.Request, sess session.Store) int64 { } if id, ok := uid.(int64); ok { if _, err := models.GetUserById(id); err != nil { - if err != models.ErrUserNotExist { + if !models.IsErrUserNotExist(err) { log.Error(4, "GetUserById: %v", err) } return 0 @@ -80,7 +80,7 @@ func SignedInUser(req *http.Request, sess session.Store) (*models.User, bool) { if len(webAuthUser) > 0 { u, err := models.GetUserByName(webAuthUser) if err != nil { - if err != models.ErrUserNotExist { + if !models.IsErrUserNotExist(err) { log.Error(4, "GetUserByName: %v", err) return nil, false } @@ -115,7 +115,7 @@ func SignedInUser(req *http.Request, sess session.Store) (*models.User, bool) { u, err := models.UserSignIn(uname, passwd) if err != nil { - if err != models.ErrUserNotExist { + if !models.IsErrUserNotExist(err) { log.Error(4, "UserSignIn: %v", err) } return nil, false diff --git a/modules/middleware/org.go b/modules/middleware/org.go index 1ac4bcf1..065e1b1e 100644 --- a/modules/middleware/org.go +++ b/modules/middleware/org.go @@ -34,7 +34,7 @@ func OrgAssignment(redirect bool, args ...bool) macaron.Handler { var err error ctx.Org.Organization, err = models.GetUserByName(orgName) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Handle(404, "GetUserByName", err) } else if redirect { log.Error(4, "GetUserByName", err) diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go index 0aaecec8..c14df275 100644 --- a/modules/middleware/repo.go +++ b/modules/middleware/repo.go @@ -41,7 +41,7 @@ func ApiRepoAssignment() macaron.Handler { } else { u, err = models.GetUserByName(userName) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Error(404) } else { ctx.JSON(500, &base.ApiJsonErr{"GetUserByName: " + err.Error(), base.DOC_URL}) @@ -217,7 +217,7 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler { } else { u, err = models.GetUserByName(userName) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Handle(404, "GetUserByName", err) } else { ctx.Handle(500, "GetUserByName", err) diff --git a/routers/api/v1/repo.go b/routers/api/v1/repo.go index 7da5f817..d683eac3 100644 --- a/routers/api/v1/repo.go +++ b/routers/api/v1/repo.go @@ -139,7 +139,7 @@ func CreateRepo(ctx *middleware.Context, opt api.CreateRepoOption) { func CreateOrgRepo(ctx *middleware.Context, opt api.CreateRepoOption) { org, err := models.GetOrgByName(ctx.Params(":org")) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Error(404) } else { ctx.Error(500) @@ -157,7 +157,7 @@ func CreateOrgRepo(ctx *middleware.Context, opt api.CreateRepoOption) { func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { u, err := models.GetUserByName(ctx.Query("username")) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.HandleAPI(422, err) } else { ctx.HandleAPI(500, err) @@ -174,7 +174,7 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { if form.Uid != u.Id { org, err := models.GetUserById(form.Uid) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.HandleAPI(422, err) } else { ctx.HandleAPI(500, err) diff --git a/routers/api/v1/user.go b/routers/api/v1/user.go index a4648297..feecda48 100644 --- a/routers/api/v1/user.go +++ b/routers/api/v1/user.go @@ -61,7 +61,7 @@ func SearchUsers(ctx *middleware.Context) { func GetUserInfo(ctx *middleware.Context) { u, err := models.GetUserByName(ctx.Params(":username")) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Error(404) } else { ctx.JSON(500, &base.ApiJsonErr{"GetUserByName: " + err.Error(), base.DOC_URL}) diff --git a/routers/org/members.go b/routers/org/members.go index c8c90cfe..dd742bb7 100644 --- a/routers/org/members.go +++ b/routers/org/members.go @@ -100,7 +100,7 @@ func Invitation(ctx *middleware.Context) { uname := ctx.Query("uname") u, err := models.GetUserByName(uname) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Flash.Error(ctx.Tr("form.user_not_exist")) ctx.Redirect(ctx.Org.OrgLink + "/invitations/new") } else { diff --git a/routers/org/teams.go b/routers/org/teams.go index 7436e30e..6968512f 100644 --- a/routers/org/teams.go +++ b/routers/org/teams.go @@ -77,7 +77,7 @@ func TeamsAction(ctx *middleware.Context) { var u *models.User u, err = models.GetUserByName(uname) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Flash.Error(ctx.Tr("form.user_not_exist")) ctx.Redirect(ctx.Org.OrgLink + "/teams/" + ctx.Org.Team.LowerName) } else { diff --git a/routers/repo/http.go b/routers/repo/http.go index 4e5aba04..45b0ec59 100644 --- a/routers/repo/http.go +++ b/routers/repo/http.go @@ -55,7 +55,7 @@ func Http(ctx *middleware.Context) { repoUser, err := models.GetUserByName(username) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Handle(404, "GetUserByName", nil) } else { ctx.Handle(500, "GetUserByName", err) @@ -107,7 +107,7 @@ func Http(ctx *middleware.Context) { authUser, err = models.UserSignIn(authUsername, authPasswd) if err != nil { - if err != models.ErrUserNotExist { + if !models.IsErrUserNotExist(err) { ctx.Handle(500, "UserSignIn error: %v", err) return } diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 605071d1..f8df726c 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -35,7 +35,7 @@ func checkContextUser(ctx *middleware.Context, uid int64) *models.User { } org, err := models.GetUserById(uid) - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { return ctx.User } diff --git a/routers/repo/setting.go b/routers/repo/setting.go index c3714808..12fc428c 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -118,7 +118,7 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) { } if _, err = models.UserSignIn(ctx.User.Name, ctx.Query("password")); err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.RenderWithErr(ctx.Tr("form.enterred_invalid_password"), SETTINGS_OPTIONS, nil) } else { ctx.Handle(500, "UserSignIn", err) @@ -151,7 +151,7 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) { } if _, err := models.UserSignIn(ctx.User.Name, ctx.Query("password")); err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.RenderWithErr(ctx.Tr("form.enterred_invalid_password"), SETTINGS_OPTIONS, nil) } else { ctx.Handle(500, "UserSignIn", err) @@ -185,7 +185,7 @@ func SettingsCollaboration(ctx *middleware.Context) { u, err := models.GetUserByName(name) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Flash.Error(ctx.Tr("form.user_not_exist")) ctx.Redirect(setting.AppSubUrl + ctx.Req.URL.Path) } else { diff --git a/routers/user/auth.go b/routers/user/auth.go index 52675a77..4b29a29e 100644 --- a/routers/user/auth.go +++ b/routers/user/auth.go @@ -60,7 +60,7 @@ func SignIn(ctx *middleware.Context) { u, err := models.GetUserByName(uname) if err != nil { - if err != models.ErrUserNotExist { + if !models.IsErrUserNotExist(err) { ctx.Handle(500, "GetUserByName", err) } else { ctx.HTML(200, SIGNIN) @@ -105,7 +105,7 @@ func SignInPost(ctx *middleware.Context, form auth.SignInForm) { u, err := models.UserSignIn(form.UserName, form.Password) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.RenderWithErr(ctx.Tr("form.username_password_incorrect"), SIGNIN, &form) } else { ctx.Handle(500, "UserSignIn", err) @@ -328,7 +328,7 @@ func Activate(ctx *middleware.Context) { user.IsActive = true user.Rands = models.GetUserSalt() if err := models.UpdateUser(user); err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Error(404) } else { ctx.Handle(500, "UpdateUser", err) @@ -391,7 +391,7 @@ func ForgotPasswdPost(ctx *middleware.Context) { email := ctx.Query("email") u, err := models.GetUserByEmail(email) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Data["Err_Email"] = true ctx.RenderWithErr(ctx.Tr("auth.email_not_associate"), FORGOT_PASSWORD, nil) } else { diff --git a/routers/user/home.go b/routers/user/home.go index 503f9e36..5e77b837 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -38,7 +38,7 @@ func Dashboard(ctx *middleware.Context) { // Organization. org, err := models.GetUserByName(orgName) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Handle(404, "GetUserByName", err) } else { ctx.Handle(500, "GetUserByName", err) @@ -115,7 +115,7 @@ func Dashboard(ctx *middleware.Context) { // FIXME: cache results? u, err := models.GetUserByName(act.ActUserName) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { continue } ctx.Handle(500, "GetUserByName", err) @@ -176,7 +176,7 @@ func Profile(ctx *middleware.Context) { u, err := models.GetUserByName(uname) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { ctx.Handle(404, "GetUserByName", err) } else { ctx.Handle(500, "GetUserByName", err) @@ -223,7 +223,7 @@ func Profile(ctx *middleware.Context) { // FIXME: cache results? u, err := models.GetUserByName(act.ActUserName) if err != nil { - if err == models.ErrUserNotExist { + if models.IsErrUserNotExist(err) { continue } ctx.Handle(500, "GetUserByName", err) @@ -247,10 +247,10 @@ func Profile(ctx *middleware.Context) { func Email2User(ctx *middleware.Context) { u, err := models.GetUserByEmail(ctx.Query("email")) if err != nil { - if err == models.ErrUserNotExist { - ctx.Handle(404, "user.Email2User(GetUserByEmail)", err) + if models.IsErrUserNotExist(err) { + ctx.Handle(404, "GetUserByEmail", err) } else { - ctx.Handle(500, "user.Email2User(GetUserByEmail)", err) + ctx.Handle(500, "GetUserByEmail", err) } return } diff --git a/templates/.VERSION b/templates/.VERSION index 8c77c216..2d7fe898 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.6.3.0802 Beta \ No newline at end of file +0.6.3.0805 Beta \ No newline at end of file -- cgit v1.2.3 From 0705f55ce097b9892a7c4c11faa5396c4e557232 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Wed, 5 Aug 2015 20:23:08 +0800 Subject: finish new milestone page --- README.md | 2 +- cmd/web.go | 3 +- conf/locale/locale_en-US.ini | 4 + gogs.go | 2 +- models/action.go | 6 +- models/issue.go | 130 ++++++++++++++++++++--------- models/repo.go | 2 +- modules/bindata/bindata.go | 4 +- public/css/gogs.min.css | 2 +- public/js/gogs.js | 35 ++++---- public/less/_repository.less | 14 +++- routers/repo/issue.go | 157 ++++++++++++----------------------- routers/user/home.go | 6 +- templates/.VERSION | 2 +- templates/repo/issue/create.tmpl | 2 +- templates/repo/issue/labels.tmpl | 4 +- templates/repo/issue/list.tmpl | 47 +++++++---- templates/repo/issue/milestones.tmpl | 42 ++++++++-- templates/repo/issue/view.tmpl | 2 +- 19 files changed, 260 insertions(+), 206 deletions(-) (limited to 'models/repo.go') diff --git a/README.md b/README.md index 4fb94270..3f7a47a2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Gogs (Go Git Service) is a painless self-hosted Git service. ![Demo](http://gogs.qiniudn.com/gogs_demo.gif) -##### Current version: 0.6.3 Beta +##### Current version: 0.6.4 Beta ### NOTICES diff --git a/cmd/web.go b/cmd/web.go index 283b05eb..49e8446c 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -429,7 +429,8 @@ func runWeb(ctx *cli.Context) { m.Post("/new", bindIgnErr(auth.CreateMilestoneForm{}), repo.NewMilestonePost) m.Get("/:index/edit", repo.EditMilestone) m.Post("/:index/edit", bindIgnErr(auth.CreateMilestoneForm{}), repo.EditMilestonePost) - m.Get("/:index/:action", repo.MilestoneActions) + m.Get("/:index/:action", repo.ChangeMilestonStatus) + m.Post("/delete", repo.DeleteMilestone) }, reqRepoAdmin) m.Post("/comment/:action", repo.Comment) diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index 2d416536..63a61cf5 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -372,6 +372,7 @@ issues.close_tab = %d Closed issues.filter_label = Label issues.filter_label_no_select = No selected label issues.filter_milestone = Milestone +issues.filter_milestone_no_select = No selected milestone issues.filter_assignee = Assignee issues.filter_type = Type issues.filter_type.all_issues = All issues @@ -412,6 +413,9 @@ milestones.edit_subheader = Use better description for milestones so people won' milestones.cancel = Cancel milestones.modify = Modify Milestone milestones.edit_success = Changes of milestone '%s' has been saved successfully! +milestones.deletion = Milestone Deletion +milestones.deletion_desc = Delete milestone will remove its information in all related issues. Do you want to continue? +milestones.deletion_success = Milestone has been deleted successfully! settings = Settings settings.options = Options diff --git a/gogs.go b/gogs.go index 1513bbfa..82529769 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.6.3.0805 Beta" +const APP_VER = "0.6.4.0805 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/action.go b/models/action.go index 0d763be5..99cd1709 100644 --- a/models/action.go +++ b/models/action.go @@ -153,7 +153,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com url := fmt.Sprintf("%s/%s/%s/commit/%s", setting.AppSubUrl, repoUserName, repoName, c.Sha1) message := fmt.Sprintf(`%s`, url, c.Message) - if _, err = CreateComment(userId, issue.RepoId, issue.ID, 0, 0, COMMENT_TYPE_COMMIT, message, nil); err != nil { + if _, err = CreateComment(userId, issue.RepoID, issue.ID, 0, 0, COMMENT_TYPE_COMMIT, message, nil); err != nil { return err } } @@ -183,7 +183,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com return err } - if issue.RepoId == repoId { + if issue.RepoID == repoId { if issue.IsClosed { continue } @@ -242,7 +242,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com return err } - if issue.RepoId == repoId { + if issue.RepoID == repoId { if !issue.IsClosed { continue } diff --git a/models/issue.go b/models/issue.go index 44988a32..95e49503 100644 --- a/models/issue.go +++ b/models/issue.go @@ -32,16 +32,17 @@ var ( // Issue represents an issue or pull request of repository. type Issue struct { ID int64 `xorm:"pk autoincr"` - RepoId int64 `xorm:"INDEX"` + RepoID int64 `xorm:"INDEX"` Index int64 // Index in one repository. Name string Repo *Repository `xorm:"-"` - PosterId int64 + PosterID int64 Poster *User `xorm:"-"` LabelIds string `xorm:"TEXT"` Labels []*Label `xorm:"-"` - MilestoneId int64 - AssigneeId int64 + MilestoneID int64 + Milestone *Milestone `xorm:"-"` + AssigneeID int64 Assignee *User `xorm:"-"` IsRead bool `xorm:"-"` IsPull bool // Indicates whether is a pull request or not. @@ -55,8 +56,24 @@ type Issue struct { Updated time.Time `xorm:"UPDATED"` } +func (i *Issue) BeforeSet(colName string, val xorm.Cell) { + var err error + switch colName { + case "milestone_id": + mid := (*val).(int64) + if mid <= 0 { + return + } + + i.Milestone, err = GetMilestoneById(mid) + if err != nil { + log.Error(3, "GetMilestoneById: %v", err) + } + } +} + func (i *Issue) GetPoster() (err error) { - i.Poster, err = GetUserById(i.PosterId) + i.Poster, err = GetUserById(i.PosterID) if err == ErrUserNotExist { i.Poster = &User{Name: "FakeUser"} return nil @@ -88,10 +105,10 @@ func (i *Issue) GetLabels() error { } func (i *Issue) GetAssignee() (err error) { - if i.AssigneeId == 0 { + if i.AssigneeID == 0 { return nil } - i.Assignee, err = GetUserById(i.AssigneeId) + i.Assignee, err = GetUserById(i.AssigneeID) if err == ErrUserNotExist { return nil } @@ -121,7 +138,7 @@ func NewIssue(issue *Issue) (err error) { if _, err = sess.Insert(issue); err != nil { return err - } else if _, err = sess.Exec("UPDATE `repository` SET num_issues = num_issues + 1 WHERE id = ?", issue.RepoId); err != nil { + } else if _, err = sess.Exec("UPDATE `repository` SET num_issues = num_issues + 1 WHERE id = ?", issue.RepoID); err != nil { return err } @@ -129,9 +146,9 @@ func NewIssue(issue *Issue) (err error) { return err } - if issue.MilestoneId > 0 { + if issue.MilestoneID > 0 { // FIXES(280): Update milestone counter. - return ChangeMilestoneAssign(0, issue.MilestoneId, issue) + return ChangeMilestoneAssign(0, issue.MilestoneID, issue) } return @@ -162,7 +179,7 @@ func GetIssueByRef(ref string) (issue *Issue, err error) { // GetIssueByIndex returns issue by given index in repository. func GetIssueByIndex(rid, index int64) (*Issue, error) { - issue := &Issue{RepoId: rid, Index: index} + issue := &Issue{RepoID: rid, Index: index} has, err := x.Get(issue) if err != nil { return nil, err @@ -683,8 +700,8 @@ func NewMilestone(m *Milestone) (err error) { return sess.Commit() } -// MilestoneById returns the milestone by given ID. -func MilestoneById(id int64) (*Milestone, error) { +// GetMilestoneById returns the milestone by given ID. +func GetMilestoneById(id int64) (*Milestone, error) { m := &Milestone{ID: id} has, err := x.Get(m) if err != nil { @@ -707,6 +724,12 @@ func GetMilestoneByIndex(repoId, idx int64) (*Milestone, error) { return m, nil } +// GetAllRepoMilestones returns all milestones of given repository. +func GetAllRepoMilestones(repoID int64) ([]*Milestone, error) { + miles := make([]*Milestone, 0, 10) + return miles, x.Where("repo_id=?", repoID).Find(&miles) +} + // GetMilestones returns a list of milestones of given repository and status. func GetMilestones(repoID int64, page int, isClosed bool) ([]*Milestone, error) { miles := make([]*Milestone, 0, setting.IssuePagingNum) @@ -718,22 +741,40 @@ func GetMilestones(repoID int64, page int, isClosed bool) ([]*Milestone, error) } +func updateMilestone(e Engine, m *Milestone) error { + _, err := e.Id(m.ID).AllCols().Update(m) + return err +} + // UpdateMilestone updates information of given milestone. func UpdateMilestone(m *Milestone) error { - _, err := x.Id(m.ID).AllCols().Update(m) - return err + return updateMilestone(x, m) } -// CountClosedMilestones returns number of closed milestones in given repository. -func CountClosedMilestones(repoID int64) int64 { - closed, _ := x.Where("repo_id=? AND is_closed=?", repoID, true).Count(new(Milestone)) +func countRepoMilestones(e Engine, repoID int64) int64 { + count, _ := e.Where("repo_id=?", repoID).Count(new(Milestone)) + return count +} + +// CountRepoMilestones returns number of milestones in given repository. +func CountRepoMilestones(repoID int64) int64 { + return countRepoMilestones(x, repoID) +} + +func countRepoClosedMilestones(e Engine, repoID int64) int64 { + closed, _ := e.Where("repo_id=? AND is_closed=?", repoID, true).Count(new(Milestone)) return closed } +// CountRepoClosedMilestones returns number of closed milestones in given repository. +func CountRepoClosedMilestones(repoID int64) int64 { + return countRepoClosedMilestones(x, repoID) +} + // MilestoneStats returns number of open and closed milestones of given repository. func MilestoneStats(repoID int64) (open int64, closed int64) { open, _ = x.Where("repo_id=? AND is_closed=?", repoID, false).Count(new(Milestone)) - return open, CountClosedMilestones(repoID) + return open, CountRepoClosedMilestones(repoID) } // ChangeMilestoneStatus changes the milestone open/closed status. @@ -750,11 +791,12 @@ func ChangeMilestoneStatus(m *Milestone, isClosed bool) (err error) { } m.IsClosed = isClosed - if err = UpdateMilestone(m); err != nil { + if err = updateMilestone(sess, m); err != nil { return err } - repo.NumClosedMilestones = int(CountClosedMilestones(repo.Id)) + repo.NumMilestones = int(countRepoMilestones(sess, repo.Id)) + repo.NumClosedMilestones = int(countRepoClosedMilestones(sess, repo.Id)) if _, err = sess.Id(repo.Id).AllCols().Update(repo); err != nil { return err } @@ -764,11 +806,11 @@ func ChangeMilestoneStatus(m *Milestone, isClosed bool) (err error) { // ChangeMilestoneIssueStats updates the open/closed issues counter and progress // for the milestone associated witht the given issue. func ChangeMilestoneIssueStats(issue *Issue) error { - if issue.MilestoneId == 0 { + if issue.MilestoneID == 0 { return nil } - m, err := MilestoneById(issue.MilestoneId) + m, err := GetMilestoneById(issue.MilestoneID) if err != nil { return err } @@ -795,7 +837,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } if oldMid > 0 { - m, err := MilestoneById(oldMid) + m, err := GetMilestoneById(oldMid) if err != nil { return err } @@ -823,7 +865,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { } if mid > 0 { - m, err := MilestoneById(mid) + m, err := GetMilestoneById(mid) if err != nil { return err } @@ -853,34 +895,40 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { return sess.Commit() } -// DeleteMilestone deletes a milestone. -func DeleteMilestone(m *Milestone) (err error) { - sess := x.NewSession() - defer sess.Close() - if err = sess.Begin(); err != nil { +// DeleteMilestoneByID deletes a milestone by given ID. +func DeleteMilestoneByID(mid int64) error { + m, err := GetMilestoneById(mid) + if err != nil { + if IsErrMilestoneNotExist(err) { + return nil + } return err } - if _, err = sess.Delete(m); err != nil { - sess.Rollback() + repo, err := GetRepositoryById(m.RepoID) + if err != nil { return err } - rawSql := "UPDATE `repository` SET num_milestones = num_milestones - 1 WHERE id = ?" - if _, err = sess.Exec(rawSql, m.RepoID); err != nil { - sess.Rollback() + sess := x.NewSession() + defer sessionRelease(sess) + if err = sess.Begin(); err != nil { return err } - rawSql = "UPDATE `issue` SET milestone_id = 0 WHERE milestone_id = ?" - if _, err = sess.Exec(rawSql, m.ID); err != nil { - sess.Rollback() + if _, err = sess.Id(m.ID).Delete(m); err != nil { return err } - rawSql = "UPDATE `issue_user` SET milestone_id = 0 WHERE milestone_id = ?" - if _, err = sess.Exec(rawSql, m.ID); err != nil { - sess.Rollback() + repo.NumMilestones = int(countRepoMilestones(sess, repo.Id)) + repo.NumClosedMilestones = int(countRepoClosedMilestones(sess, repo.Id)) + if _, err = sess.Id(repo.Id).AllCols().Update(repo); err != nil { + return err + } + + if _, err = sess.Exec("UPDATE `issue` SET milestone_id=0 WHERE milestone_id=?", m.ID); err != nil { + return err + } else if _, err = sess.Exec("UPDATE `issue_user` SET milestone_id=0 WHERE milestone_id=?", m.ID); err != nil { return err } return sess.Commit() diff --git a/models/repo.go b/models/repo.go index 25eb3a62..1e6ef0c3 100644 --- a/models/repo.go +++ b/models/repo.go @@ -886,7 +886,7 @@ func DeleteRepository(uid, repoID int64, userName string) error { } } - if _, err = sess.Delete(&Issue{RepoId: repoID}); err != nil { + if _, err = sess.Delete(&Issue{RepoID: repoID}); err != nil { return err } diff --git a/modules/bindata/bindata.go b/modules/bindata/bindata.go index d9e193f8..bc8ff1a8 100644 --- a/modules/bindata/bindata.go +++ b/modules/bindata/bindata.go @@ -772,7 +772,7 @@ func confLocaleLocale_deDeIni() (*asset, error) { return a, nil } -var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xdb\x72\x1c\x47\xd2\xde\x7d\x3f\x45\x4b\x0e\x9a\x52\x04\x38\x0c\x49\x61\x87\x43\x41\x52\x86\x00\xf1\xb0\x3f\x41\xf0\x27\xc0\x5d\xaf\x19\x8c\xde\x9e\xe9\xc6\x4c\x2f\x66\xba\x47\x7d\xc0\x08\x7b\xe5\xd7\xf0\xeb\xf9\x49\x9c\xf9\x65\x66\x1d\xba\x7b\x40\x69\xd7\xe1\xff\x06\xa8\xa9\xca\x3a\x65\x65\x65\xe5\xa9\xaa\xf3\xfd\x3e\x2b\xca\x6e\x95\x3e\x4f\x4f\xd3\x7d\x5e\xd5\xdb\xb2\xeb\xd2\xae\xdc\xde\x3c\xd9\x34\x5d\x5f\x16\xe9\xab\xaa\xa7\xdf\xed\x5d\xb5\x2a\x93\x64\xd3\xec\x4a\x02\x7d\x4d\xff\x92\x22\xef\x36\xcb\x26\x6f\x0b\xca\x38\xb7\x74\x52\xfe\xb6\xdf\x36\x2d\x03\xfd\x22\xa9\x64\x53\x6e\xf7\x5c\x87\xfe\x25\x5d\xb5\xae\xb3\xaa\xa6\x9f\x57\x94\x4a\xdf\xd4\x49\xd7\xac\xaa\x7c\x9b\x05\x05\xc8\xb0\xf2\x1f\xd3\xef\xeb\x22\xbd\xea\xcb\x7d\xfa\xac\xdb\xe5\xdb\xed\x8b\xbc\x43\x95\xbe\x4c\xf3\xd5\xaa\x19\xea\xfe\xd9\x53\x29\x90\xc6\x9b\xa1\xb7\xd6\x2f\x87\x5e\xf2\x86\xbd\x65\x7d\xdc\x27\x6d\xb9\xae\x68\x62\x2d\x65\x7d\xd0\x64\x72\x28\x97\x5d\xd5\xf3\xa0\xff\x22\xa9\xe4\xae\x6c\xbb\xaa\xe1\xf1\xfc\x59\x52\xc9\x3e\x5f\x33\xc0\x7b\xfa\x97\xf4\xe5\x6e\xbf\xcd\x51\xe1\x5a\x93\xc9\x36\xaf\xd7\x83\xc0\xbc\xd5\x64\x92\x0c\x84\xb9\x3a\x07\xce\x3e\x6a\x32\x29\x77\x79\xb5\x65\xfc\x3c\xe1\x04\xb5\xdb\x75\x87\x06\x58\x7c\xaf\x49\x1a\x63\xd6\xdf\xef\x4b\x0c\xf1\xc9\x35\xa5\x92\x55\xbe\xef\x57\x9b\x9c\x72\xce\x24\x95\x10\xd0\xbe\xa1\xb1\x36\xed\x3d\xe0\xec\x47\xd2\xb4\xeb\xbc\xae\xfe\x91\xf7\x32\xfe\xcb\xe0\x67\xb2\xab\xda\xb6\xe1\xa9\x5f\x20\x91\xd4\xe5\x21\xe3\x76\x28\xe7\x5d\x79\x08\x5b\xe1\x92\x5d\xb5\x6e\x65\x96\x5c\x78\x81\x5f\xdc\x0a\x97\xdd\x34\xed\xad\x16\xbc\xe4\xe4\xa8\x2a\x0d\x42\x4b\xe3\xfe\xf3\x9a\xf0\xa2\xa5\x17\xf8\x11\x01\x74\x49\x5e\xec\xaa\x3a\xdb\xe7\x75\xc9\x38\x3a\xe5\x5f\x84\x17\xfa\x95\xe8\x72\x67\x5d\xd9\xf7\x55\xbd\xee\xb8\x58\xb2\xd2\x2b\xcd\x4a\x82\x32\x97\xc7\xe3\xe9\xb2\x9b\xb2\x2c\x64\x44\x5d\xfa\x92\xd2\xc9\x7e\xd8\x6e\x69\xee\xbf\x0e\x65\xd7\x33\xfc\x7b\xfa\x4d\xb3\x90\xdf\x49\xd5\x75\x94\xa0\xec\x37\x48\x24\xb4\x00\xf5\x0a\x43\x3a\x43\x22\x49\x3e\x75\x65\xde\xae\x36\x9f\x13\xf9\x8f\x1e\x39\xb1\x58\x2c\x8e\x2e\x0d\x93\x83\x92\x82\xf4\x60\x1d\x24\xab\xa6\xe0\x1f\x67\xf4\x8f\x9a\xae\xea\xae\x27\x92\xfe\x9c\x68\x82\xc1\x24\x25\x68\xec\xab\x7e\x5b\xfa\x4c\xec\x8f\x8e\xd7\x21\x7d\x59\xb5\x5d\xff\xa4\xaf\x88\xe4\x3e\x0c\x75\xc2\xf3\x23\x72\xce\x8a\xa5\xed\xf2\x57\x0d\x61\x07\xd9\x2d\xcd\xef\xe2\xfe\xea\xdf\xdf\x9e\xa4\xef\x69\xab\xaf\xdb\x92\xd2\x29\xb5\x41\xff\xa8\xce\x0f\x8b\x84\x6a\x59\x4f\xe7\x79\x9f\x2f\xf3\xae\xf4\x68\xe5\x42\xa1\x51\x57\x06\x4a\x65\xb6\x01\x16\xd1\xf5\xd1\x7c\xe7\xe8\x9c\xda\xd0\xdd\xe1\xda\x78\xc7\x5b\x84\xf2\x99\x6b\xa0\xf2\xfb\x6d\xc9\xf9\xd4\x54\xfa\xe6\xdd\xbb\xcb\xf3\x9f\xd3\xb2\x5e\x57\x75\x99\x1e\xaa\x7e\x93\x0e\xfd\xcd\x7f\xcb\xd6\x65\x5d\xb6\xc4\x44\x56\x55\x4a\x3b\xa3\x25\x22\x48\x89\x3c\x65\x72\x8b\xa4\xeb\xb6\xd9\x4e\xd0\x7b\x75\xf5\x36\xbd\x60\x14\xef\xf3\x7e\x83\x81\xf4\x9b\xa4\xfb\x75\xcb\x28\x72\x1d\x5e\x6f\xca\xf4\xa6\xa2\x59\x03\xa8\xb9\x31\x7c\xa4\x85\x8e\x71\x91\x94\x6d\x9b\xd1\xbe\xef\xef\x33\xad\xac\xed\x8d\x21\xa5\x09\x22\x9d\xba\xe9\xd3\x65\x99\xa2\xce\x22\x49\x6c\xc0\x86\xdd\xd3\xfd\x7e\x5b\xad\x64\xc7\xbe\x92\x32\x8f\x68\x66\xd1\x8a\xa5\x10\x0e\x88\xb2\xb2\x00\x5d\xc4\xff\xee\x9b\xa1\x4d\x23\x36\x80\xfa\x9b\x92\xf8\xf2\x66\xa0\x2d\x97\x13\x4f\xdd\x36\x43\xf1\x15\x28\xd5\x46\xef\x09\x35\xfd\xd0\xd0\x80\x81\x1d\x07\xe0\xbb\x38\x25\x8a\xe3\x53\xa1\x2d\x77\x0d\x71\x07\x47\xec\x15\x11\xd4\xa1\xa2\x42\x9a\x69\x97\xdf\xd1\x7e\xeb\x9b\xb4\xdf\x54\x5d\x5a\x10\xb1\xad\xb8\x61\xda\x1a\x03\xf1\x63\x21\x0b\x22\x50\x21\x0d\xcb\x8b\xd7\x00\x50\xbb\x81\xa8\x69\x43\x8d\x31\xb7\xe7\xa3\x89\x9a\x9c\x1b\x27\xa6\x44\xed\x80\xbe\x89\x72\x1b\xe2\xad\xcc\xfd\xce\x91\xd0\xdf\x61\xfb\x34\xaa\xfc\xe6\x86\x46\xd5\x11\x55\xbc\x4e\x57\xdb\x86\x48\xea\xe3\x87\xb7\x54\x79\xd3\xf7\xfb\x6c\xdf\xb4\x20\xe3\xeb\xeb\xf7\xb4\x3d\xda\xde\xe7\x06\xb8\x66\x98\x7a\xd8\x2d\xe9\xd7\x61\x53\x11\x13\xc8\x83\x05\x02\x2a\xb6\x7c\xc0\xd4\x69\x53\x2f\xb0\x56\x43\xbb\x1d\x2d\x23\x75\x69\x25\x47\x86\xc7\x43\x78\xca\x7f\xae\xfc\x28\x31\xdd\x8e\x4e\xe1\x03\x16\x95\xa6\x5a\xe2\x34\x21\xda\x6a\xf6\xdc\x6e\x40\x5c\x97\x9a\xe1\x29\x0a\x27\x90\x2b\x97\x73\x88\x4a\x71\xc6\x07\xbc\x74\x47\x13\xd6\xdd\x7c\x75\x41\x68\xc0\x96\x46\xee\x4d\xdb\xec\x28\xf7\x25\xfd\xf3\x19\x7e\xf8\x17\xdc\x1e\x60\xf2\xa2\x20\x36\xd3\x9d\xa4\x1f\x5e\x9e\xa5\xff\xe5\x87\xef\xbf\x5f\xa4\x6f\x7a\xde\x10\x4c\x23\x7f\xe7\xb5\xa5\xa4\x1c\x88\x0e\x94\x76\x6e\x4f\xcb\xff\x35\x13\xf8\xd7\xe9\x33\x94\xfe\xf7\xf2\xb7\x9c\xce\xd9\x72\xb1\x6a\x76\x2f\x78\x73\xef\xf2\x7e\x91\x70\x09\x51\x8d\x92\xd3\x55\x59\x17\x94\xd0\x63\x55\xcb\x02\xae\xa3\xe5\xc1\x21\x2b\xa7\x7f\xb6\x6a\xea\x9b\xaa\xe5\x09\xfd\x52\xe7\x4b\xc2\x89\xc9\x05\xc4\x8e\x51\x62\x67\x17\x21\x8d\x36\x72\x75\x73\xef\x41\x31\xd5\x77\x9c\xa9\x0b\x9a\xb0\xac\x44\x8d\xaa\xc8\xe4\xb0\x7c\x85\x6c\xac\xdb\x25\x4d\xaf\x35\x7c\x77\x1e\xe1\xcd\xcd\xcd\x96\x18\x9b\x31\x2b\xed\xe1\x52\x72\x85\x6f\x85\x20\x44\x8c\x7b\x48\x36\xe7\x55\x07\xc8\xb3\xf3\x77\x69\x79\x47\xd4\x46\xe4\xb0\x6f\x9b\x62\x58\x81\xc2\x18\xf6\x24\xe5\x63\x82\xf0\x4b\x9c\x61\x25\xec\x2d\xd8\xab\x3c\x34\x66\x08\x2b\x02\xa2\x2d\x5a\x48\x7b\x99\x20\xa8\x35\x41\xc2\xba\xb9\x62\xe1\x30\x2c\x9b\xad\x30\x19\x1d\x56\xa9\x1b\xd7\xa5\xe5\xae\xb7\xf7\x29\x4e\x7d\xd0\xc5\xaa\x2d\x03\xd9\xae\x5b\x24\x7a\x56\x99\x84\x98\xdd\x55\x24\x54\x04\x4b\x85\x52\x13\x17\x99\x3d\xfc\x99\x01\x58\x4c\xeb\x66\xeb\xba\x81\x5d\x72\xc7\x5c\x42\x73\xa7\xce\x79\x7c\x1d\x86\x80\x1e\x58\xdc\x23\x62\xbc\xab\xc0\x69\x14\x59\x18\x2b\x61\x0c\x5d\x53\x57\x5d\x59\xa2\x05\xaa\xff\x94\xda\x44\x9d\x85\x8a\x30\x2a\x8a\xd8\xb9\xfb\xd7\x66\x48\x8b\x26\xe5\x83\x00\xec\x8c\x6a\xdb\x54\x6b\x9d\xbe\xce\x39\x6d\xab\xf5\x86\xf8\x4a\x73\x38\x11\xa4\x1d\x36\x4d\xc9\xb4\xf3\xe6\xfc\xf9\x77\x32\x8e\x35\x33\x37\x57\x89\xd9\x62\x3e\xf4\x0d\xd3\xa9\x2e\xa1\x0c\xc1\x1d\x2f\x80\x9c\x08\x4b\x02\x34\x16\x4f\x4d\x00\x9b\x9e\xd6\xba\x4f\xc2\x32\xdd\x20\x1e\x46\x6a\x8f\x44\x5c\x95\x62\xb2\x75\x03\xc9\xcc\xa4\x16\x66\xd5\x24\x4a\x77\x7d\xb6\xae\xfa\xec\x86\x37\x2c\xb7\xf9\x92\xeb\xf2\xc9\x41\x25\xe9\x63\x2a\x7a\x9c\xd2\xae\x27\xc9\xb1\xf8\x31\x7d\x74\xa7\xc7\xf5\x0f\xbc\x13\xb3\xfc\x8e\x60\xb1\x18\x40\x70\x4b\x14\x2e\xd2\x82\x89\xef\x45\x43\x74\xce\x38\xef\x86\x3d\x38\xba\x9e\xd0\x27\xe9\x5e\x00\x8b\xe6\x50\x6f\x9b\xbc\x00\xcb\xa1\xdd\x55\x41\xf9\x58\x56\x75\x4e\xa7\x8b\xb5\x02\x56\xf6\x88\xa8\xe1\xdd\xe5\x35\x00\xd7\xcd\x72\xa8\xb6\x85\x01\x2c\x68\x86\x77\xf9\xb6\x2a\x58\xce\xd2\x75\x0f\x65\x1a\xcb\xaa\x64\x2c\xab\xa6\xe5\xe3\x10\xb3\xb1\x8a\x47\xce\xe1\x96\xcf\x37\x64\x53\x5d\x85\x45\x3d\x77\x64\x32\x1a\x68\xe1\x21\x80\xf2\x81\x0a\x8a\xa9\xba\xfa\x71\x8f\x91\xae\x06\xea\x8b\x16\x9d\xb3\xa9\x62\x97\x3e\x79\x41\x7f\x13\x3e\x9e\x85\xef\xad\xa7\x88\xe7\xc2\x54\x0a\x07\xd9\xa5\xd1\x50\x23\xf2\x76\xd4\x65\xc4\x1b\xcc\x35\x1c\xaf\x91\x40\x37\x08\xbd\xb2\xa6\xb5\xa5\x65\x2d\xbf\xa2\xc4\x63\xda\xc0\xeb\x2d\x16\x21\x87\xf4\x42\x62\x5c\x43\x78\x63\x02\x39\x91\xed\x72\x43\x53\x63\xde\xd9\xe7\xb7\x34\xb6\xbc\x25\x21\x2c\xf9\xc4\xda\xe8\xe7\x64\x10\x01\xa8\xd9\x16\x4e\xd8\x04\x4d\x37\xed\x58\xc5\xf2\x40\x8e\x5e\x3b\x92\x22\x57\x9b\xcc\xe9\xb2\x8c\x94\xbe\xfc\x0d\x67\x1e\x8a\xbc\x6a\xcb\xc4\xce\x45\xc9\xee\x1e\xcb\xc5\x93\xb8\xb8\xf7\xab\x45\xe2\x0f\x6d\x11\x12\xd1\x97\x0d\x63\xed\xae\x74\x50\x67\x61\x6e\x5c\x81\xda\x22\x41\x4d\x9b\x8a\x35\x21\x2a\x12\x75\x4d\x4b\x45\x65\x23\x55\xe4\x93\xea\xd8\x9f\x13\xeb\x20\x6a\x32\xf9\x44\xcc\x80\xf4\x12\x61\x2f\x19\x6b\x63\xb6\x38\x34\x14\xe1\x39\xac\x98\x29\x3f\xf0\xe7\xe0\xa6\xdc\xf3\x91\xb9\xeb\xb0\xaa\x5b\x82\x2c\xee\x55\xf6\x72\xeb\xfb\x93\x70\x5a\x5a\x70\xe2\x4f\x5f\x99\xf6\xfe\x07\x9b\xf8\xb9\xa2\x95\x44\xfd\xf8\xe4\xe0\xf3\x9a\xb6\xda\x1e\xd8\xa7\x4d\x72\x7f\x92\x46\x67\xd0\x26\xef\x88\xfb\xd2\x01\xa7\xd5\x8a\x85\x69\x07\xbc\x6a\xf9\x4a\x48\x1e\x9a\x3c\x88\x54\x6a\x36\xed\xf8\x48\xe3\x11\x0a\x83\xd2\x5e\xdc\x81\x8f\xe3\x3c\x3c\xf5\x67\xfa\x24\x84\xed\x4a\x96\xf9\xb2\x9d\x68\xe8\xf2\x2b\xbd\x28\x13\x12\x4c\xd6\xb4\x1f\x8d\xde\x9e\xb3\x4a\xb6\x86\x84\xaa\xe4\xc6\x00\x65\x1f\x72\x50\x85\xb0\x9c\x9f\xcc\x62\x41\x1b\xfb\x00\x7d\x95\xb6\xe6\x04\xfd\x74\xd6\x50\xf1\xc2\x38\xb2\x1c\xb8\x90\x4f\x3a\xda\xec\x1e\x89\xa7\x29\xad\x7e\x1a\x42\xa9\x9c\xe8\xa7\xc5\x15\x78\xd3\x3f\x5b\xbe\x78\xd4\x3d\x7b\xba\x7c\xe1\x58\xe3\x6a\x53\xae\x6e\x45\x97\xa8\xea\x65\xf3\x1b\x14\x2e\x5a\x78\xc6\x71\xcd\x5b\xe4\x51\x91\x6e\xa8\x14\x32\x39\x6d\x65\xaa\x46\x88\xe7\xd2\x68\xd1\x68\x30\xbc\xe3\x17\x66\xfb\x71\x87\x83\x11\x12\xd5\x46\x27\x32\x32\x52\xf3\xb1\x77\x38\x2b\xa0\xdb\x53\xce\x65\xca\x05\x9b\xf7\xa4\x8b\xf9\x6e\xab\x5d\xd5\x4f\x48\x87\xf9\x48\xae\x24\xa8\x7a\xbe\xe1\x12\x6d\x01\x1b\x18\x0b\x71\x63\x6a\x86\xce\x4d\x23\xa7\x43\x4e\xea\xcd\x0f\x29\x91\xd0\x40\xa7\x10\xcf\x89\x86\x49\xec\x38\xe7\x83\x97\x14\x84\xbc\xcb\x86\x5a\xd1\x5a\x16\x46\x4c\xaf\x2b\x1c\x12\xdc\xaf\x91\x7c\x00\x65\x98\x57\x39\x37\xfd\xc6\x61\xfc\x5b\x12\x8a\x6f\x5c\x35\xe6\xdc\x3c\xa0\x8a\x65\xb2\x7c\x76\xf1\x88\xb3\xd5\xa5\xa8\x57\xc0\x00\xc3\xf1\x42\x93\x72\xe0\x57\x8f\x34\x8c\x5b\xca\xc1\x82\x2c\x87\xbe\x6f\x58\xe6\xde\x32\xd5\x48\x1d\x1b\xf5\x19\x00\xa1\x46\xf8\xf6\xb0\x20\x21\x9e\x64\x6d\x4a\x93\x81\x33\x6f\x85\x53\x6d\x65\x34\x3b\x3d\xea\x1c\x58\x21\xea\x7a\x5e\xdf\x1b\x29\x13\x41\xf0\x28\xb8\xc3\x7e\x7e\x2c\xdf\xb4\xe5\xb7\x7e\x34\x6e\xcf\xa0\x86\x8d\x48\xaa\x07\xfb\xe9\x03\x4a\x41\x25\x6e\xd7\xd9\xc9\xa5\x46\x16\x4f\x1f\x6d\x8c\x5e\x94\xf3\xce\x20\x06\x4b\x62\x63\x01\x44\xd3\x2c\x50\x7b\x31\xea\xcb\xab\x3b\x53\x0c\xf6\xf1\x90\xfd\x01\xd4\x37\x4d\xd6\x6d\x44\xb5\xb4\xe1\xa5\xdb\xb2\x5e\x47\x66\x02\xd8\x60\x41\x74\xff\x95\x8f\x39\x12\xe0\xf3\xed\xe7\xe4\x1e\xf6\xa8\xbf\x12\x87\xaf\x61\xaf\x6b\x12\x2a\x10\x65\xe4\x02\x09\x02\x65\xcd\xe8\x73\xc2\x47\xe0\xbb\x91\x58\xc7\x47\x84\xe6\x05\xf2\x05\x8a\x7e\x89\xa4\x35\x5b\xc2\xe4\xfd\x8c\x08\xf8\xa1\xf4\x76\x49\xa4\xdc\x14\x49\x89\xbe\x36\x55\x87\xf4\xe9\xdb\x52\x1b\x7f\x4d\x6a\x73\xf7\x11\x6a\xaf\xe8\xb0\xac\xf0\xbe\xcf\xef\x59\xe8\x92\x6c\xfd\x81\x82\xeb\x32\xdf\xe9\x28\x39\x29\x4d\x9c\xd2\x71\xa6\x99\x9c\xa4\x53\x2e\xb0\x6a\x24\x10\x3f\x6c\x0a\x22\x8b\xe8\xb1\xef\xc4\xff\x52\x8d\x9e\x7f\x9b\x98\x62\xfe\x96\xe4\xdb\xfd\x26\xc7\xf9\x1f\x80\xc1\xea\x40\x40\x58\xf8\x14\x20\xa0\x85\x61\x57\xb6\xd5\x8a\x93\x5c\xe1\x9b\x27\xd9\xb7\x30\x38\xd1\x46\x21\x41\x30\x6e\xac\xa0\x4d\xf2\x4f\x35\xc8\x69\x16\x12\xc3\x76\xbb\xea\x1f\x36\x8b\xa8\x39\xce\x27\x9e\x43\x10\x10\xc9\x3c\x94\x03\xc2\xc1\xc8\xe2\x59\x9f\x32\x5f\xe8\x59\x04\x8c\x9a\xde\xe5\xbf\x7d\xa9\xe2\xae\x99\xa9\x27\xac\xc0\x57\xb2\x0d\xaf\x53\x8c\xd9\x01\xc1\xb3\x7d\xe3\x28\x34\x2d\x3d\x83\xd4\xb7\x74\xaa\xd5\x0e\xec\xa3\xfc\x4e\xf1\xfb\x47\x33\x81\xd3\x11\xa2\x02\x74\xea\x8c\xe1\x74\x38\x17\xcc\x37\x21\x08\x2f\xfc\x76\x0b\x85\x63\x47\xce\x2c\x46\x9a\xca\xef\x18\x07\x49\x94\xa2\x27\x10\x49\x2d\xbc\xdd\x3e\xe3\x33\x32\x63\xa1\xb3\x0e\x45\x4b\x77\x7a\xda\xf9\x02\x08\xb1\xfb\x66\xd3\x7a\xa3\x0d\x77\xb4\x3a\x89\x02\x33\xb5\x2f\xa7\x86\xbc\x23\xf5\x7b\xda\x32\x33\x0d\xb8\x9d\x74\xb4\xa2\x2c\x26\x2a\xd1\xcc\x8b\x09\x2f\x98\x56\x64\x30\x36\xad\x6e\x32\xda\xe9\x51\xcd\xf7\xc3\x92\xf8\xa1\x63\x00\x4c\xcf\x90\xa9\xeb\xde\xb7\x22\xb5\x49\x93\x2d\xd7\x6c\xa8\xb2\x61\x47\x63\x55\x02\xa4\xa3\x44\xc0\x42\xf2\xf3\xeb\xe3\x96\x3a\xa4\x8a\x50\x05\x70\x2b\x1c\x2b\x5f\x34\x67\x1a\x13\x25\xb9\x66\xa0\x82\xe9\x30\x54\x0e\xd8\xb1\xb6\xd1\x0d\xcc\xd8\x59\x33\x11\xd9\x26\x5e\x4b\x3e\xb6\xd1\x54\x89\x2e\x8e\x37\x4f\x94\xcc\xea\xda\x97\xda\x07\xd8\x1f\x6c\x3a\x54\xd6\xa7\x0d\x6b\xe3\x0e\xe8\x58\xb3\x4e\x9d\x2c\x7f\xab\x60\xf4\x7b\x55\xdd\x95\xaa\x50\x3a\x3d\x1a\x65\x8b\x64\x4b\xac\x84\x15\x17\x99\x95\x48\xc1\xcd\x1d\xeb\x7d\xdc\x1f\x97\x4a\x3d\x31\x02\xea\xa4\x78\x9d\x55\x35\x25\x55\xb0\x39\x94\xc5\x09\x09\x08\x5c\x83\xc6\x09\xa6\x93\x6f\x0f\xf9\x7d\x07\x0b\x8b\xf1\x2b\x36\x78\x4a\x75\x66\x46\x24\x3e\xac\x31\xaa\xd0\xba\x4d\xfb\xd5\x30\xa1\x04\xe9\x0f\xf9\x03\x94\x4b\xf0\x1a\xb5\xd9\x90\xce\xce\x87\x26\x0e\x68\x3d\xa9\x58\x31\x66\x35\x92\x35\x04\x29\x0e\x1a\x82\xc3\x44\xcf\x8d\x99\xba\x27\x2c\x5c\x51\x37\x2c\xea\x10\x37\x17\x5c\x93\xf4\x48\x98\xc5\x90\x02\x4b\x03\x6d\x8c\xf2\x89\x48\xd5\x15\xe1\x90\xb5\x34\xaf\x7c\xf3\xc9\x46\xab\x62\x66\x61\xc9\x87\xea\x9c\x74\x3d\x6d\x01\xc6\xb4\xb9\xea\xfe\x2a\xd2\x99\x2a\xdc\x5c\x8a\xad\x05\x34\x75\x9b\x6a\x9f\x36\x30\x35\x86\x28\xf4\x64\x1b\x08\xa8\x84\x8d\xa2\x84\xd4\xce\x36\xd7\x36\xaf\xbb\x9b\x12\xc6\xd7\x5d\x7a\xc3\x7e\xa4\x85\x76\xcd\xf2\xae\xb8\xec\x8e\xf4\x2c\x1a\x10\xba\x0e\xcf\x1a\xac\x5d\xb0\x50\x71\xd7\x04\x73\x87\x9e\x75\x0c\xc0\xaa\x6f\xa9\xb3\x31\x30\x99\x4d\x50\x00\x99\x33\x72\x71\xd8\x68\xee\xca\x10\x11\x37\xff\xec\xcc\x03\xac\xab\x7d\x59\x8c\xf2\xf1\x32\x49\xa7\xb0\x75\xc0\x43\xb5\xbc\x8f\x67\xcf\x55\x1d\x05\xb0\xbf\xe4\xae\xd4\x5e\x78\x63\xf0\x5e\x19\x35\x08\x1b\x87\xd7\x34\x92\x3e\x87\xc2\xb8\xa4\x21\xae\x36\xd1\xee\xbc\x46\x49\x2a\x25\x93\x0d\x9a\x7c\xe2\xae\x3f\x27\xc4\x34\xeb\x75\xc9\x86\x32\x6a\x89\x0f\x4c\xfc\x56\xf9\x5e\x32\x69\xc0\xeb\x56\xd2\x6c\x5e\xb7\x2a\x2b\xda\x90\xcd\xee\xc1\x9a\x55\x6d\xe6\x9e\x2e\xf9\x7b\x43\x12\x08\xec\xc4\x7f\xa2\x14\xcb\xce\x75\x12\x79\x86\x46\x56\x0a\x28\x17\x55\x7f\xef\x4f\x8c\x53\xcd\x21\x25\x19\xdc\x01\x76\x8f\x97\x96\xa6\xf5\xc8\x99\xe9\xf1\xd6\x96\x94\xc2\x89\x11\xea\xa5\xa5\x13\xd6\xb1\x77\x0b\x1c\x0e\x2c\x8a\xc3\xb4\x1d\x1c\x09\x8f\x1f\x75\x8f\x79\xc1\xac\x6c\x11\xc0\xef\xf3\x9e\xd8\x62\x2d\x0a\x8e\x70\xa8\xb0\xaa\x16\xbb\x26\xc0\x55\x04\x6c\x01\x7f\xb0\xa0\xe2\x73\x42\x9a\x28\x1c\x88\x34\x35\x49\xcd\x3a\x3f\x95\xc5\x74\x2a\x31\xff\x1b\x25\xd5\x9e\x92\xba\x28\x08\x55\x74\xe1\x04\x34\x97\x51\x17\x7b\x90\xba\x44\x0d\x48\xb1\xf5\x48\xc9\xfb\x79\x7a\x2e\x09\x53\x99\x87\x0a\x73\xaa\x8a\x24\xd9\x03\xef\x59\x30\x5a\x59\x08\x37\x68\xf9\x1f\x58\xb0\xdb\xb1\x5c\x40\x58\x90\x56\x40\xb8\xe6\x50\x80\x24\xc0\x1e\xd8\x40\xdd\x63\xd3\x2c\xf4\xc0\x3a\x70\x96\x90\xb6\xcc\xf5\x18\xec\x50\x2e\x53\x36\x96\x12\xe1\x90\x56\xa5\x13\xdd\xe5\xa4\x90\xdd\x55\xb9\xb3\xeb\xd0\x6a\xb1\xdb\x5e\x4f\xd1\x97\xec\xb2\x87\x1f\x74\x1a\xc0\xc1\xde\x0c\x75\x5c\xbc\xd5\x64\x32\xec\x0b\xb6\x88\xf9\x09\x7f\x44\x86\x9b\x70\x5c\x1e\xd8\x2a\x31\x75\xab\xe6\xa5\x18\x80\x17\xa9\xc2\xf1\xc8\xee\x17\xb6\x7d\x66\x22\x3f\x74\x0b\x15\x63\x90\xd0\x45\x20\x45\xaa\xf2\x1a\xc0\x42\x78\x0f\xd0\x2b\x5e\x41\x20\x84\xce\xca\x74\xd3\x1c\xd2\x6d\x55\xdf\x76\x8a\x5f\x67\x4d\x31\x2d\x3b\x3d\x47\x06\x01\x8b\x9d\x87\xc5\xaa\xaa\x1e\xca\x9f\x12\x4b\x89\x19\x1f\xc9\x69\x94\x43\x29\xa7\xe2\x98\x19\xa8\xf7\xe5\x0c\xd9\xe9\x29\xb2\x67\x61\xbd\x96\xac\x55\xe0\x0f\x66\xf6\xab\x6e\xa1\x9b\x92\xc5\x73\xb0\xc3\x57\xca\x85\x08\x3f\x4d\xd3\xa9\xe5\xd2\xb3\x1f\xce\x83\x99\x43\xa1\x74\xb5\x1c\x84\x2e\xa6\x0c\xc6\xbc\x1c\x04\xc5\xca\x25\x09\x4b\x3a\x1e\xec\xed\xac\xda\x49\xa4\xce\x47\x2d\x15\x87\xbf\xd3\x4a\x50\xbc\x20\x3d\x7b\x34\x99\xd0\xdf\xf0\x8e\x70\x29\xd3\x37\x3e\x6a\x85\x27\x26\x2e\x08\x42\x70\xd8\x47\x83\x1d\x53\x96\x36\x60\xa6\xf3\x2f\x10\x98\x91\x4f\xe8\x86\x11\xde\xec\x58\x4b\xb3\x8d\x84\xc2\x33\x75\x02\xb8\x72\xc6\x6c\x50\xfe\x0e\x0e\xb3\xb1\xad\x22\xd2\xb3\xb4\x85\xa3\xd2\xf4\x68\x4c\x93\xbd\x63\xf5\x0e\x34\xb7\x70\x3a\x46\xf0\x0b\xa1\xfe\x1c\x76\x65\xf1\xa9\x0d\x9d\xc8\x93\xdc\x15\x1c\x72\xd2\x04\x21\x00\xea\x4a\xe7\xb5\x94\x53\xe1\x46\x6c\x4e\x97\xf8\x22\x07\xa0\x21\x46\xb1\x36\x5a\x9a\x07\x3c\x64\x6c\xfb\x96\x16\x9d\x0e\xde\x91\x1d\x6b\xc2\xd2\x22\xf6\x05\xee\xd5\xc0\x9d\xeb\xb9\x16\xe9\x9f\xda\x16\xf3\x7f\xa4\x2c\xc7\xdb\x3e\x4b\xb6\x8d\x59\xa7\xca\xac\x5d\xa9\xb0\xec\x84\xc6\x80\x3d\x50\x3a\xe3\x46\x01\x4c\xc4\x43\x04\x58\x08\x62\x76\x54\xcb\xce\x22\x2b\x31\xec\xbd\xff\x61\x96\xe1\xa8\x43\x67\x19\xf6\x43\x1d\x91\x0d\x8f\x71\x74\xe2\x4c\x08\x88\x0a\x70\xfe\xea\xd2\x07\xa7\xaa\x2e\xbe\x3b\x5c\xb9\x1b\x91\xe9\x19\x4d\x94\x85\x23\x58\x89\x00\x1c\x96\x05\x3c\x84\x6c\x20\xec\x47\x04\xfc\x6e\x62\xc4\x8c\xf9\xeb\x29\x34\x18\xc2\x8a\xc0\xb2\x3c\xc0\x07\x9a\x48\x7f\xaa\x11\xed\x18\x11\xe2\xb4\x75\x51\x2c\xf7\xe2\xaf\xf4\x22\xd1\x89\xaa\x0d\x9b\x6a\xbd\xa1\x79\x55\x3b\x76\x58\x82\x6b\x9b\x57\xcc\x6b\x75\xfc\x8b\x36\x5e\xb3\xae\xd9\x02\xc4\x3d\x88\x32\xee\xb8\xed\xb3\xae\x6f\x9b\x7a\xfd\xe2\xbc\x61\x75\x8b\xed\x28\x7c\x54\xfc\xf4\xec\xa9\xe6\x13\xcb\xe0\x35\xe4\x68\xc9\x57\x55\xff\x7a\x58\x3e\xee\xd2\x35\xc9\x06\x38\x40\x9e\xe5\xe9\xa6\x2d\x6f\x9e\x7f\xfd\xa8\xfb\xfa\x85\x7a\xa9\x25\xa6\xe8\x50\x3b\xb4\x3c\x7b\x9a\xbf\x60\xe9\xb9\x6b\xb6\x24\xd4\xc6\x55\x9a\xdd\x4e\xd6\x97\xd8\xdf\x4e\x20\x31\x7e\x38\xb6\xcb\x1a\x98\x2b\x5b\xc5\x0f\x35\xb8\x70\xb4\xee\xd7\x47\x97\x2d\x61\xfb\x82\x1e\xa4\xf4\x53\x8e\x7b\xce\x33\xa3\x82\x9c\x5e\x94\xb2\xf5\x0d\x88\x88\x19\x9b\xb6\x13\x98\x30\x98\x60\xbe\xb2\x3d\x27\x1d\x06\x3b\x0e\x22\xc3\x29\xc3\xb0\x08\x0b\x45\x57\x2d\x1b\x6f\x55\xad\x45\x01\x9d\x0d\x81\x08\xfb\xae\x51\x27\x42\x6a\x99\x9e\x20\x4d\xa4\x53\x72\x3c\xf5\xd4\x34\x16\xf2\xd4\x9b\x76\x94\x22\x03\x42\xd4\x56\x5d\x98\x84\x28\xe0\x25\x44\xa9\x65\x55\x17\x42\x78\x4a\x37\x1a\x77\xe0\x08\x86\x8e\xa3\x9a\x81\x60\x63\xe3\x84\xfe\x0e\x30\x77\x15\xb5\x1f\x1c\x49\xb4\xdf\x87\x3a\xd8\x6f\x42\xd0\x59\xdf\x88\xad\x49\x27\xf9\x9e\x24\x76\xc4\x1c\x9d\x4a\x83\xd7\x5c\xdc\x69\xdc\x9b\x3a\x25\xad\xca\x2b\xcd\xc4\x6a\x01\x30\x41\x51\xe7\x10\x81\x5f\x5e\x79\xb3\x56\xd4\x5f\xac\xd1\x44\x58\x18\x22\x5e\xdb\x61\x1b\xf1\x1f\xa7\xa7\xef\xdf\x2c\x12\xd7\x9f\xb5\xf9\x4b\x4e\x52\x87\x8c\xe0\xe0\xf4\x46\x66\x28\xe3\x1d\xea\xbc\x15\x52\xdd\xcc\x54\xa8\x09\x5a\x74\x73\x9a\xcc\x47\xe6\x12\x97\x0b\x8a\xcb\x2e\xd0\xa5\xa5\x37\x8c\x64\xcc\xdb\xdc\x4c\xbf\x22\xc4\x3a\x8b\x0e\xf3\xd4\xfd\x3d\x73\x8b\x20\x52\x24\x17\x04\x1d\xb0\xdf\x47\x21\x2a\x04\x09\x7d\x32\x65\x09\xb1\x75\xa4\x6f\x03\x56\xe2\x0f\x73\x03\x4a\x00\x19\xee\x6d\x3d\xa3\xf1\xfa\xa3\x22\x1c\xb4\xa8\xb9\xb1\xd4\xf2\x55\x2a\x8c\x48\xfc\x9f\x3c\x2e\x91\x6d\x14\xc7\xa1\x72\x43\x6d\x1e\xca\x2d\x47\xb2\xe9\x80\xbc\x13\x50\x55\x99\xc8\x05\xa8\x40\xce\xf9\xc7\x91\x83\xee\x2c\x96\xb5\x0d\xed\x0b\xd6\x18\x41\x10\x01\xc3\xeb\x27\x3a\x88\x31\xcc\xb3\xd3\x77\xef\x2e\xaf\x3d\x9f\x64\xca\xaa\x0b\xe2\xe6\x5f\xb9\xf8\x97\xc9\xb8\x2c\x0a\x06\xe3\x43\x40\x54\x04\xe1\xe3\x70\xb4\xc6\x31\xb8\x70\xe3\x5b\xeb\x94\x5c\x37\xd8\xcd\x0d\x8f\x45\x6a\x14\xf1\xf8\x8b\x63\x22\x7e\xf2\x89\x0f\x98\xcf\x89\x59\xe9\x2e\xf9\x7f\x12\x1a\x3a\x03\xd3\x34\xa8\xd9\x5b\xb0\x7d\xb8\x27\x0d\xa0\x29\x26\x86\x4f\x1a\xd8\xd0\x0d\x39\x64\x38\xc2\x7d\x03\xbe\x78\x93\xc2\xbb\x75\xc2\x76\x9c\xa6\x05\x0d\x32\x72\x87\xba\xfa\x75\xc0\x09\xc9\x12\x1c\x9d\xf8\x1c\x56\xb5\xac\xb6\xc2\x3c\xff\xec\x7e\x48\x3e\xa7\x46\xb1\x90\x41\xe7\xf4\xeb\x59\xb7\xe7\x48\x31\xe2\xcd\xdd\xf3\xaf\x49\xe4\x26\x8d\x05\x7f\x9f\xb0\x7d\x40\x53\x79\x51\x0d\x74\x14\x91\x00\xc6\x6e\x63\x5a\x4f\xaa\xf2\x82\x75\xfd\x5b\x33\x21\x8d\xc3\xd6\x51\x66\x91\x8d\x5c\x86\xf0\x46\xe4\xce\x0c\x4b\xc5\x55\xb1\x01\xf4\x62\x3c\x4a\x83\x69\x31\xbb\x66\x72\xbf\x2d\x43\xd4\xa9\x8b\x40\x17\xfa\x9c\xfe\xb5\x15\xc2\x33\x25\x9f\xef\x10\xa4\xc1\xfd\x01\x97\xe9\xfb\xbd\x22\x02\x58\xb1\x8e\xb2\x58\x57\x3d\x89\xc9\x7c\xd7\x02\xca\x2b\xed\x20\xe2\x92\xb8\x7e\x20\x29\xcb\x99\xa9\x6b\xb0\xa8\x58\xd5\x55\x9f\xb1\x55\x7f\x27\x21\xe5\xd4\x6c\xbe\x15\xb1\x22\xc6\xbc\x78\x70\xd3\x0f\xbf\x9c\x9e\x5f\xfc\xb2\xd8\x15\x16\x61\xa2\xf8\xd4\xd0\x92\x00\xa3\x45\x79\x93\x0f\x5b\xb3\x5e\x61\xc2\xc8\x48\x7f\x46\x86\xde\x46\x20\x45\x83\xf0\x77\x27\x67\xa4\xdc\x4f\x78\x63\x39\xdf\xb0\x18\xf9\xed\x11\x9b\xce\xd8\xad\xf2\xc7\x4d\x3b\xe3\x16\x1e\xb6\xf0\xb0\xcf\x3d\x63\x7b\x5d\xaa\x71\x19\x91\x37\x32\xd1\xdb\x12\x16\x15\xef\xae\x4b\x48\x58\x7c\x58\x7a\x9c\xb8\x4d\xdd\xc8\x8f\xd3\xf8\x72\x3b\x94\x23\x22\x17\x3c\x1a\x8d\x5b\x4f\xba\x2c\x17\x7a\x89\x23\x58\x17\x85\x58\x20\x9c\x38\x33\xc9\x9a\x1d\xd9\x2c\xb5\xaa\x36\xe5\xa0\xcc\xb6\x8e\xf8\x50\x8b\x51\x7b\x23\x99\x12\x34\x8a\x08\x35\x88\xaf\xb1\x19\xd2\xfc\xe7\x79\x18\x00\x9e\xc8\xa6\xb0\x9d\xa6\x5b\xe4\xc6\xed\x35\x84\x12\x73\x9c\x68\xbc\xc9\x70\xdf\x24\xc0\x54\x18\xdd\xc1\xec\xad\x60\xfe\xbc\xbf\xcf\xd8\x18\x02\x96\xbc\xbf\x4f\x10\x03\x41\x07\x5a\x86\xf3\x52\x32\xc1\x20\xb7\xd5\x5e\x6e\x2b\x51\x41\x55\x4a\x20\x23\x12\x97\xff\x96\x08\x52\xdc\x0a\x61\xa1\x71\x85\x89\x0b\x88\x11\xff\x04\x7e\xd5\xb3\xc4\x2b\xc6\xd9\xe7\x5f\x67\x4b\xda\xa3\xb7\x5f\x07\x12\x30\x5f\x76\x62\xb1\xf7\x2b\x92\xac\x0e\xea\x80\xfc\x28\xa9\xc4\x7e\xff\x05\xbf\x06\x0e\x8c\x13\x6f\x27\x27\x12\xfd\xc5\x36\xce\x44\xef\xd8\x30\x33\x4a\x58\xe0\x54\xb6\x41\xc2\x66\xc8\x39\x7e\x1d\x78\x96\x22\xbc\x3f\x4f\xff\x9d\x7f\xa5\xaf\xf8\x97\x4e\x85\xb7\xb1\xdb\xa3\x58\xe1\xd1\xc6\x0e\x23\xc5\xc0\x71\x34\xdc\xd2\xef\x69\x09\x2f\x09\xb0\xaf\x71\x25\x06\xc8\x31\xc9\xc9\x7e\x60\x1f\x3a\xaf\xbb\xf5\xf6\x9e\x72\x10\xe0\xcd\x99\x7c\x86\x05\x2d\x38\x03\x78\xd4\x46\xe2\x58\x85\xb2\x88\xbe\x2d\x21\x6f\xd1\x3f\x2d\xcb\x08\x38\xeb\x73\x98\x3c\x05\x88\x48\xee\x3f\xa7\xd7\x94\xa3\x10\x65\x58\x94\x28\x28\xca\xc7\xb7\x7a\xb0\x8d\x3a\x70\x5c\x4e\x10\xc9\x6f\xcb\xae\x27\x14\x41\x7d\x74\x3f\x12\x1e\x63\xd5\x4b\x28\x1f\x52\x89\x06\x9a\x8a\x59\x5b\x92\x09\x8c\x86\x6d\xce\x61\x5b\x1f\xf2\x83\xfc\x24\x4c\xeb\x35\xa0\xd7\x92\x92\x6c\x04\x22\x0b\x28\xc2\x95\x1d\x3c\xce\x75\xa5\xe1\xf7\x96\x4e\x6c\x00\x8b\xe9\x40\xac\x64\x74\x0b\x29\x5d\x8d\xca\x6f\x44\xde\x7f\xc9\xd2\xbe\xe5\xe5\xe0\x5f\xa9\x85\x55\xb8\xfc\x1d\x6d\x7f\xb1\x8f\x5d\x48\xca\x95\x14\x12\xf1\x73\xce\x17\xde\x2c\xcf\x62\x2a\x2f\xf9\xbf\xcb\x25\x82\xd1\xfd\x43\xff\x13\xc5\x3c\xe7\xaa\x5a\x26\xd7\x9e\x7c\x76\x26\x3c\x4e\x0a\xb1\x1c\x93\xc2\x6c\xbf\xcd\x57\xa5\x8b\xe1\x04\x10\xf8\x36\x5f\xb9\x52\x60\x12\xfd\xd8\xf1\xbd\xa4\xf2\x47\xb4\x9d\xe9\x97\x95\xd0\x66\xa0\xb3\xd0\x15\x9d\xf1\xcf\xc2\x0a\x09\xf7\x1c\x15\x68\x63\x88\xfa\x0f\xcb\xe8\xfc\x60\xde\x24\x46\xb1\x77\x2c\x5d\x73\xda\xa4\x8e\x51\x0d\x47\x4d\x21\x31\x8d\x60\x88\xbd\x73\x04\x3a\xa4\x43\x4d\x8e\x20\xf4\x38\xc1\x21\x32\x2d\x59\x70\x50\xad\x23\xeb\x53\x38\xa3\x40\xda\x73\xa0\xd2\x01\x47\x21\x71\x78\x9d\xef\xb2\x50\x6d\x67\xae\x92\xf0\x86\x22\x5b\xde\x6b\x1d\x61\x09\x05\xbb\xba\x8e\x54\xd9\xb1\x3f\x0b\xbc\x52\xab\x5c\xb8\x8c\xb0\x0a\x2f\x15\x1a\x26\x08\x49\xa7\x8f\x3e\x7d\xf7\xb9\xe3\x96\x9d\x39\xe1\xe9\xa3\x4f\xdf\x7f\x26\x86\x8a\x7f\xcc\x51\xad\xf6\xbe\x2d\xef\xaa\x66\xc0\xcd\x3d\x4d\x7a\x82\x41\xfc\xee\x3b\x8e\xd5\xd5\x2c\x59\x3c\x93\xc3\x3d\xe5\xc4\xe5\xab\x66\xdb\x78\xca\xc2\xaf\x31\x80\x08\xfc\x8f\x74\xc1\xbb\xb8\x18\xc4\xe7\x16\xe3\x11\x5c\x19\xf5\x68\x41\x04\xb2\x2c\x2a\x6e\xe7\x17\xfa\x17\x17\x8c\xdc\x36\x71\xa1\x8b\xf7\x92\x01\x22\xea\xcb\xae\x9d\x4c\x5b\x51\xe7\x07\x40\x9d\xc6\x31\x0b\xe6\xe5\x51\x74\x2e\xbb\x00\xa2\x88\xba\x2c\x99\xe5\x54\xb5\x5c\xbb\xe1\x66\xd9\x90\x85\x52\x71\xe9\x68\xa3\xc7\x5d\x0d\xf3\xbd\x7a\x1d\x53\x06\xe9\x43\x6d\x55\xc9\x89\x34\xc8\x24\xe0\xce\x01\x1f\xf1\x1b\x2b\x28\x9e\xe1\x02\x41\xe9\x3c\x27\x18\x03\x14\x72\x5c\x72\xe2\x51\x17\xf5\x4d\x07\xf1\x50\x66\xca\x0a\x89\x09\xd0\xaf\x14\xbf\xc6\x43\x60\xa6\x38\xd7\xb7\xb5\x3c\x9a\x11\x21\x64\xb9\x21\x81\x46\x82\x0a\xe5\xe4\x0d\x4e\x24\xc2\xa8\x3a\xbc\x55\x97\x55\xac\x46\xcd\x4b\x2d\x57\x7d\x16\x3b\xb6\x0d\x10\xaf\x17\x16\xcc\xa8\x25\x61\xa9\x9f\xf4\x39\xcd\x98\xcf\x80\xf4\x1b\xbb\x6d\xf6\x6d\x3c\xc9\x52\x7c\x36\xfc\x3f\x2c\x70\xd7\x24\xb4\xa9\x4c\x48\x4a\x5b\x44\xe3\x9a\xe3\xaf\x0f\x9c\xb8\x68\xb7\xc7\xbb\xdd\xd3\xa2\x78\x7a\x4f\x8d\x3e\x9e\x99\x75\x40\x4f\x6e\xda\x22\xc9\x3b\xc2\x52\x66\x36\x22\xac\xa0\xa5\x60\x5f\xce\xe3\x8e\x01\xa2\x75\xfa\xc8\x5e\xff\x92\xd5\x86\xb4\xf0\x78\x83\xab\x20\x58\xbb\xae\x21\x8d\xbd\xd9\x13\xda\x9d\x81\x86\xad\x09\x12\x07\x15\xce\x64\xe4\x7f\x0b\x8a\x46\xc1\x9e\x0f\x0e\xcf\xf0\x20\x7e\xa1\x8e\x95\xd1\xdd\x11\x94\xc8\x45\xcd\xd1\x4e\x9b\xbb\x46\x6d\x79\x0b\x59\x72\x78\x9c\x25\xe5\x8b\x82\xeb\x0f\x60\x3e\x67\xe1\x6f\x0f\xb6\x69\x9a\x5b\xb9\x02\xb2\x44\xd2\x97\x90\x4e\x6b\x85\x7c\xc3\xf4\x75\x5c\x5a\x94\xfb\x6d\x73\x6f\xe6\xfd\x73\xfc\x52\xbf\xb9\x81\x2c\xf3\xae\x5a\x85\x57\xc4\x7f\xe6\x8c\x99\x59\x14\x8c\x99\x36\xfb\x87\x1c\xcf\xe7\xf8\x95\xfe\x4f\x46\xa7\x03\x51\x8f\xf2\xa5\xdd\x0a\xba\x62\xbf\xb2\x2b\x55\x8f\x5e\xd0\x95\x3a\x20\xa7\x7d\xa9\x73\x8c\xa5\xdf\x79\xb3\x8b\xf3\x0c\x1f\xab\x62\x1c\x7a\xac\xb0\xb2\xc5\xd0\x79\xd0\x26\x4e\xe2\x39\xe7\x70\x1c\xc3\xf6\x00\xcf\x76\x43\x71\xe1\x31\x2c\x86\x6b\xf2\xd2\x22\x6c\xa6\x60\xce\x8a\xe5\xa3\x6a\x62\x1d\x97\x6d\xb4\xb5\x38\xcd\x10\x59\xc3\x11\x38\x9c\x15\x87\xf3\xd0\x11\x23\x57\x6a\x7d\x38\x3d\x62\x7b\x61\xf2\xe4\xdb\x04\xd6\x2f\x5e\x1b\x40\x6c\x1d\x87\x29\x75\x62\x23\xd0\x18\x21\xf1\x17\x8b\xf5\x2b\x77\xb7\x51\xd8\xa4\x3e\x36\x6b\x70\x3d\x91\x25\xdd\x95\x12\x71\x38\xdb\x50\x51\x16\x92\x62\x1c\x5e\x01\xdc\x07\x2a\xf6\x08\xd0\x90\x72\x49\xbb\x5a\x4c\xf2\x52\x2d\x8f\xc2\x93\x24\x12\x0e\x76\x07\x35\xfa\x2d\xf3\xd5\xad\x1b\x11\x33\x8d\xb2\xed\x11\x18\x34\x45\x3b\x3b\x26\x57\x10\x3c\x9e\xed\x5f\x3c\x81\xea\x2c\x37\x90\x31\x0b\xe1\x08\xd5\x4d\x80\x10\xb8\x16\xd8\x55\x70\x57\x15\x03\x91\x37\x2f\xc6\xe2\xd9\xd3\xfd\x8b\xb8\x3e\x51\x04\xcc\x29\x47\xdb\x18\x2d\x1c\xeb\x72\x15\xae\x33\x70\xe4\x1d\x42\xc0\x6e\x7c\x64\x63\x87\x1e\x8e\xee\xa2\x80\x77\x05\xa4\x6e\x1c\xe7\x0b\x8e\xf1\x29\x4e\xcc\xee\x89\x77\x28\x60\xfb\x74\x30\xec\x4b\xcb\x02\xd2\x86\x7d\xdd\x68\x76\xa6\x29\xb1\xdb\x8f\x8c\x46\x3e\xd0\xcc\x0d\xcd\x2a\xb4\xc7\x87\x17\xdb\x91\xd3\x19\xfb\xb1\x03\x65\x87\x94\x67\xaa\xa2\xab\x15\x05\xe6\x73\x16\x64\x1f\xaf\x30\x72\x86\x45\x6d\xc5\x1e\xb1\x60\x80\x22\xf5\x1d\x6b\xe7\x6c\xb6\x0d\xb5\xfa\x07\xad\x20\x9e\xb4\x42\xe4\x60\xa6\x57\xa4\x24\x16\x26\x1d\x87\xee\x69\xe9\x61\xd3\x04\x01\xfa\x18\x54\x8a\xcd\x1a\x0e\x64\x11\xcf\xf5\x20\x47\x88\xe2\x45\x0f\x94\xd1\x49\x63\x9b\xcf\x8e\x1b\x04\x7b\xef\x06\xe2\x2d\xdb\x8a\x16\x1d\x47\x86\x5e\xf4\xbf\xbc\xba\xc6\x15\x6a\xe2\x85\xc4\x68\xd6\x4c\xaf\xe9\x5f\x36\xa4\x9b\x70\x40\x25\xdf\xb7\x67\x3f\xf7\x3a\x6d\x56\x2b\xf6\x6e\x57\xb5\x5e\x51\x3c\x94\xe6\x45\xaa\x8b\xad\x78\xba\xc3\x38\x01\xe3\xbb\x62\x2f\x4a\x71\xa7\x9e\x99\x40\xb7\x2f\x57\x74\x94\x2f\xd2\xb7\x24\xd2\xf0\x45\x6d\xb9\xca\x0f\x86\xf9\xa0\x79\xc9\xcd\x04\x76\x1e\x56\x8b\x16\xd3\x33\xd4\xbd\xf8\x61\x07\x29\xe6\xbd\xe7\x68\x3a\x51\xdf\xb8\x80\x24\xfb\x72\x7b\x23\x91\x91\xec\x48\x83\x00\x24\xd7\xc3\xd9\x98\x2f\xb7\x66\xd9\x02\x86\x06\xd4\xc7\x0f\x7f\x24\x2e\x13\xf1\xcc\xf6\x65\xcb\x42\x9b\x45\xc3\x84\x81\x10\xe3\x31\x41\xef\xb1\x71\xbd\x11\xb6\x80\xe5\x83\xb8\x27\x37\xbf\x4e\x98\x17\xb3\xa4\x64\x0e\x5e\xb3\x89\xee\xe5\xb6\x17\x9f\x74\x84\x2f\x04\x1b\x1b\x88\x9c\x1f\xb8\xd2\xc1\x51\xb7\x83\x2e\x87\xc5\x18\x01\xa1\xdc\xcf\xcc\x88\xf4\x40\x66\x04\x89\x07\x64\x02\xe1\x1d\xcd\x00\x32\x6f\xf3\x98\x85\x29\xb8\x97\x03\x5e\x47\x94\xa8\x7b\x0a\x2d\x86\x97\x60\x85\x7c\x1f\xd8\x46\x01\x95\x47\x6f\xb8\x60\x86\x7a\xf9\xeb\x19\xdf\x5c\x7a\xc1\xd4\xfb\xec\x29\x92\x76\xe1\xcd\x28\x8f\x9f\x8c\x08\x28\x8e\x9f\x03\x68\x08\x7f\x38\xfa\xda\x72\x9d\xb7\x85\xc5\x6e\x2b\xf5\xb3\x63\x15\x54\x1e\x86\xe6\xe4\x5b\x92\x63\xb5\x09\xda\xad\x04\x72\xcb\x56\x25\x22\x14\x7e\xf0\xc4\x44\x77\xe6\xfc\x85\x6c\x2d\x8e\x7a\x20\x82\x1f\xf6\xbc\x07\x64\x43\x59\x3f\x98\xf6\x37\x7f\xba\xba\x7c\x77\x92\xfe\xf6\xe4\x70\x38\x3c\xe1\xea\x4f\x86\x76\xcb\xf1\x01\x05\xc7\x86\xff\x8f\x8b\xb7\x27\x69\xd9\xaf\xbe\x5d\x90\xcc\x8b\xad\xe1\x35\x50\x75\xfa\xde\xb0\x33\x9a\xc9\x92\xf5\xa1\x7f\x7e\xcb\xec\xe5\x0a\x92\x3e\xcf\x11\x5e\x48\x0a\x99\x36\x2f\xbb\x99\x63\x94\x0a\xc4\x2c\xe3\x25\xc6\x92\x34\x0c\x5c\x41\x44\xc2\x17\x00\xab\xb6\x7c\x1f\x19\x1d\x22\xdc\x20\xbf\x63\xa7\xd9\xb0\x2d\x84\x4e\x8d\xa3\xd1\xec\x14\x65\x65\xf1\xd3\xb8\x25\xd8\x5a\xf1\x1a\xc1\xf3\xf4\x4f\xac\x1e\x31\x4a\x85\x0a\xb8\xc8\xa8\x00\xc0\x21\x2d\x61\x87\xa5\x7a\x9d\xb2\x1c\x17\x78\xab\xf7\x79\xd9\x23\x82\x6a\x8e\x36\x64\xe4\x6e\x6c\x7e\x35\x6d\xa3\xd2\xb9\x46\x8d\xb5\xc2\xbd\xc5\x97\x1b\x51\xf3\x68\x0f\xf0\xb9\x74\x18\xef\x83\xf1\x91\xa4\x9b\xcc\xb3\x7b\xdd\x64\x13\x8e\xaf\x80\x5f\xda\x67\x2a\x41\x4c\x24\xba\xa0\x07\x95\xec\x26\x3d\x48\xa0\x47\xa6\xb3\xb4\xd0\x66\x04\x7f\x9c\xbb\xbc\xf8\x08\x32\xaa\x01\x03\x89\x49\x86\x11\xd2\x6d\x49\xcc\xcb\xc2\x1d\xce\x87\x59\x14\x52\x73\xc5\x20\x08\xa4\x61\x6f\x99\x79\x96\x26\x61\x44\xa1\x98\x21\xad\x9a\x93\x5f\x82\x11\x46\x85\xe3\x67\x72\x46\xc5\xac\x59\xc8\x3b\x5c\x67\x92\x4a\x12\x52\x3d\x6f\x16\xcb\xb6\x39\x74\x1c\xd9\x82\xc7\x44\xd8\xd6\xce\xbf\xd3\x2b\xfc\x16\x90\x7d\xde\x0a\xcf\x94\x84\x64\x8a\x6d\x98\x32\x25\x21\x99\xcc\x3a\x26\x8f\x39\x9c\x53\x09\xde\x4f\xe0\xb7\x55\x38\xa4\x53\x4a\x16\x52\x85\xb6\xcb\x21\xe3\x54\xd6\xf5\x39\xac\xe1\x57\xac\xea\xa0\xd2\x15\xe7\x28\x18\x27\x0d\xa3\xe6\xdf\x67\x8b\x8f\x05\xd9\xe2\x9c\xf3\xae\x7e\x70\x43\x83\x23\x30\x5a\x9a\x0a\x07\x99\x07\x09\x23\x05\x08\xc2\x4c\x59\x1e\x42\x11\x04\xa4\xfe\xfc\xe6\x9d\xfc\x84\xb5\x5f\x43\x8e\x61\xee\x7f\xc9\x7e\x57\xf3\x21\x2c\xe6\x7c\x09\x56\x26\x3e\x19\x91\xff\xed\x8d\x36\xfc\x72\x10\x45\x9b\xdf\xc0\x82\xc2\xff\x5d\x2e\x1d\x96\xbe\xda\xfb\xb6\x7c\x32\xae\x46\xc8\x11\x54\x5f\x21\xe1\xf2\xd5\x02\xc2\xff\x5c\x5e\xce\xd6\x8e\x00\x87\x8f\x0a\x8f\x11\xf3\x48\x10\x29\x3e\x22\x46\x56\xb1\x82\xa3\x1a\xdf\xa8\x43\x50\x87\xbf\x83\x0b\xda\xc1\x7b\x67\x06\xd1\xe7\x6b\x17\x5f\x93\xaf\xc5\x3e\xeb\xcb\x20\x3a\xd9\xb5\x87\xa8\x8e\xbf\x88\x6b\x2a\x9b\xf7\x38\x51\x39\x5e\x14\x5a\x85\x8e\x2c\xca\x64\x0f\x16\x22\xd7\xbb\xcd\x62\xbc\x10\xce\x4e\xac\x38\x4b\xf1\xdb\x41\xd9\x49\xc0\xe4\x92\xed\x8a\xe0\x30\x10\x02\x0a\xb7\xed\x45\xde\xde\xf2\x13\x23\xb0\x5c\x5b\x03\x87\x56\x43\xd5\xf9\x7f\xb8\x62\xfa\xb4\xcd\x7b\x49\x4d\x3a\x8c\xdd\x1f\xa8\x0d\x99\xd4\xc4\x20\x57\x81\x4f\x2f\xb9\x16\xf1\x56\x52\xf2\x26\xdd\x98\x32\xa6\x81\x66\x54\xf6\x64\xbc\x6e\x01\xbc\x43\xf4\x5f\xca\xff\xf3\xbf\xfe\x37\x31\xfb\x3d\x29\xa9\x3d\x82\x08\xf5\xfe\x9a\x5f\x77\x73\x9f\xfb\x87\x88\x9e\x40\xff\x0e\x06\x22\xe8\x4f\xf5\xde\x01\xa5\x26\x34\xca\xaf\x94\x18\x7d\x5f\xb1\x0d\x20\x26\x72\x48\x93\x9e\xcc\x61\xb5\x1b\xb7\x61\x44\x95\xa9\xfe\xef\xee\xcf\xd8\xe2\x62\xd1\x24\x2a\x5d\x89\x4e\x4c\x04\x6a\x2e\x00\xb8\x5c\xf0\x20\x9d\xe5\xb3\xbf\xa3\xe9\x16\x22\xba\x9f\x09\x11\xd2\xc3\x18\xc2\x5e\x31\xf9\x4d\x9f\x64\x13\x91\x5c\x2e\x84\x33\x6b\x71\x51\x33\x72\xeb\x49\x62\x62\x5d\x23\x61\x47\x8f\x3b\x0b\x8c\xd5\xb7\x02\x10\x7a\x3a\x13\x9d\x1c\x46\xdc\x92\x44\xae\xa6\x52\xb9\xcd\xa5\x46\xe2\xe8\x85\x46\x38\x80\x4d\xbf\xb6\x63\xb6\x48\xd4\x7a\xc9\x4e\x49\x4e\xf0\x85\x3b\x7e\xf7\x8e\xc9\x4f\x2c\x68\x6f\x90\x41\xfb\x1a\x19\xb8\x8a\x0a\xb7\x2b\xff\x4f\x70\x85\x47\x95\x40\xce\xd5\x94\xe6\x8f\xae\x09\xb5\xd1\x83\x2a\xde\x35\x8d\xeb\x83\xd1\x0b\x26\xdc\x38\x10\x35\x63\xb8\x9e\x5c\x2a\xc5\xca\x20\xf7\x21\xe8\x28\xc0\xe7\xf1\x16\x56\x11\x8d\x41\xe7\xb6\x88\xcb\xa9\x77\x4b\x49\x06\x57\x1a\xf9\xe5\x80\x9a\xdf\x02\x32\x2c\xbb\x6e\x82\x2d\xb3\x11\xab\xb6\xaf\xc6\xeb\x45\x5a\xed\xd0\xff\x24\xf0\xec\xfa\xad\xba\x2e\xf0\xc7\xa0\x8e\xcf\x4e\xb7\x24\x80\x6d\x23\x61\x11\x0d\xb1\x75\xec\xa7\x23\x31\x32\xd3\xcb\xc3\x7f\x3c\x4a\x66\xda\xc6\xc3\x71\x32\xff\xac\xf5\x78\xfe\x6a\x8f\x2b\x9e\xde\xf1\x71\x45\x73\x97\x7d\xfe\x05\x43\x2d\x91\x94\x0e\x63\xb2\xb7\x8f\x5a\x6a\xb5\x8e\x33\xf4\x1d\xbf\xb4\xfd\xc7\xed\xb5\xd1\x65\xd7\xdf\x61\xb1\x8d\x67\x1c\x88\xc1\xd1\xa8\x1c\x42\xd8\x20\x10\x87\x70\x1e\x93\x8e\xbd\x54\x1c\xf1\x8c\xb1\x0c\x3d\x89\xd8\xc4\x4c\x1f\xac\x12\xc7\x6f\x86\xc3\x74\xea\xbf\x8f\x78\x34\x2d\x59\x22\x37\xc5\x5c\xf2\xe5\xf0\xcd\x23\xf6\xb7\x87\xe2\x38\xc7\xa3\x64\x5e\xe3\x9e\x55\x0c\x07\xf9\x60\x8d\xf0\x98\x8d\x6d\xdc\xff\x4a\x6c\xe7\xbc\x8d\x8b\x15\x87\x83\xa9\xba\x38\x94\x0d\x7f\x5e\x61\x63\xdf\x94\xe1\x4b\xdc\xb8\x9e\xe1\x7a\xcc\x0d\x78\x2d\xb1\x1f\x0f\x9a\x23\xbf\x85\x7b\x2f\xf4\xe6\x9f\xdd\x1b\x1c\xe5\x7b\xd6\x87\x6b\x0b\x7b\x09\xc4\xf4\x40\xf2\x1b\xe2\xce\x6c\xc9\xb8\x7e\xdc\x47\x1c\xd1\x6a\xb9\xce\xcc\x78\x81\x84\xcb\x27\xac\xad\x4a\x04\x18\x9e\x49\xca\x95\xa8\x83\x5b\x2f\xb0\xfb\x41\xc8\xe5\xe4\xe7\xb0\x34\xf9\x5c\x3d\xf5\x14\xd7\x1c\xa3\x45\x8b\x72\xbf\xe7\x25\xcc\xdd\x6d\x3d\x5e\x26\x01\x54\x71\x53\x47\x05\x09\xf9\xc7\x71\x5b\xf2\xcc\x93\x9e\x9e\xef\x9a\x43\x22\x47\xe7\x82\xef\xd3\xa6\x72\x99\x56\x73\xe2\x21\x49\x1e\xcb\x28\x1a\x82\x8f\x39\x90\x98\x2e\x11\xf7\xd3\xf2\x51\xd0\x21\x4e\x0e\x17\x6e\x68\x77\xe3\x59\x00\x85\xd4\x80\x38\x31\x96\xeb\x43\xe2\x58\x68\xab\x10\x60\x7d\xb7\x22\x89\x46\xfd\x86\x10\xbf\xa7\x63\x1e\xe7\xa4\xbb\x13\xb3\x1f\xe0\xaa\x14\xc7\x92\x09\x3f\xdc\xd9\x38\xe4\x25\x3a\x37\x0e\xf7\xcc\xa1\x1f\x47\x08\xf1\x7b\xc6\xc1\xbd\x3c\xe5\x97\xa1\xb1\x88\x0f\x8d\x87\x94\x43\xbd\xf9\x15\x5a\xa7\xbb\xf1\x10\x7d\xd4\xde\x75\x70\x5e\xc3\xc3\x53\x8c\xe4\x0f\x36\x1f\x4d\x0f\x4e\x29\x11\x47\xc3\x8c\x88\x20\x8e\xb8\xd9\xeb\x0b\x5f\xde\xe2\xbc\xd2\xa8\xe9\x40\x03\x17\x9b\x07\x9b\x3b\x85\x74\x5c\x5e\xa4\x83\x8c\x75\xa1\x72\x9d\x14\x7e\xf9\xe0\x15\x38\xbb\x78\x20\xf2\x5d\x78\x64\x40\xc0\xb3\x95\x2c\xe4\xa1\x10\xb7\xc7\x99\xd5\x05\xbd\x4e\x1b\x73\xac\x1a\x50\x8e\x45\x4f\xe1\x8c\x77\x86\xd2\x59\x60\xcc\x62\xa6\x7c\x62\x32\xab\x78\xb3\x0c\x6a\x97\xdf\x47\x0e\x36\xbe\x70\xc1\x1a\x59\xb4\x6b\x8e\x9f\xd8\xd3\xa1\xf8\xb3\x5a\x5e\xdf\x70\x04\x73\x34\x30\x66\x11\x6e\xf5\x29\x81\x78\xb2\x5b\xb7\x39\xdb\x1a\x6d\xad\x99\x59\x04\xa4\x80\x06\x7f\x74\xb3\x74\xef\xa0\x7a\x6e\x00\x0f\x06\x35\xf4\xf8\x21\xa6\xf0\x07\x06\x00\xb6\xf1\xf0\x08\xc0\x16\xe4\x0d\x11\x1a\x46\xc0\x02\x1e\x1a\x88\x3e\x60\xfa\xfb\x07\x02\xbe\xf1\x3b\x07\x72\x62\xa3\xd0\x9b\xeb\x45\x31\xbb\xff\x1f\x1a\xdf\x48\xdd\x01\x71\x46\x4f\x23\x8c\x08\x3e\x7a\x4c\xde\x11\x7d\xe0\x6b\xb6\x66\xe1\x60\x50\xdf\xb7\x1e\x67\xbe\xa9\x9a\x96\x10\xaa\x6c\xdd\x87\xfe\xf1\x38\xa2\x9a\x3d\xb6\x7d\x7b\xaf\x22\x09\x4f\x2e\x0e\xe8\xf6\x37\x40\x45\x09\x83\xaf\x48\x9e\xcb\xf8\x04\xb4\x7f\x3e\xf2\x55\x08\x79\x5c\x57\xdc\x7f\x5d\xf4\x85\x82\xe9\xcb\x05\x0f\xbe\x1a\x11\xbf\x96\x31\x7e\x36\xa5\x93\x3b\x3a\x6b\x93\xe5\xec\xfd\xd2\xc4\x3b\xc7\xaf\xee\x09\x07\x3b\x3c\xd9\xbc\xe2\x0b\xc3\x4d\x5d\x89\x5f\xf5\x42\x52\x7c\x67\x9c\x4d\x31\x6a\x87\xe1\xab\x63\x3e\x9a\xd0\xcf\x0e\xc6\x45\xb6\x31\xa9\x20\x20\xe9\xa0\x3c\x78\xc5\x00\x51\x60\xad\xbd\xcb\xe0\x5b\xc0\x48\x60\xc2\x1c\x82\x91\xe9\x38\xd0\xe8\xd0\xcd\xf5\x98\xb1\x23\x24\x55\x37\x90\x7b\x6a\x9e\x99\x04\x5f\xd5\x2d\xf8\xaa\xae\xbc\x66\x7c\x12\x64\x44\x38\x0f\x0b\xf6\xee\xbd\xa6\x28\x3b\x3e\xf8\x7c\x3e\xa2\xd7\xe3\x2c\x0e\x59\x8f\x32\xf2\xd5\xa4\x17\xd9\x54\x71\x3d\x89\x5f\x0b\x73\xd8\x98\xc8\x0e\x91\xa8\xf5\xf8\xa6\x63\x58\x24\x0f\x80\x44\x59\xfa\x62\x6a\x3c\x13\xb1\xa9\x86\x79\xdb\x66\xcd\x8f\x97\xc0\x08\x19\x4f\x4f\x65\xe7\xb8\x4d\x8b\xaf\x8a\x9a\x40\x00\x68\x98\x03\xbf\x41\x9f\x77\x71\x6d\x6c\xc1\x30\x43\x6f\xbe\x4d\x00\x49\xa7\xce\x57\x1b\xcc\x7f\x31\x47\x48\xa6\x1a\x3b\x62\xd2\x6f\x25\xcc\x40\xca\xab\xb6\xa9\xbd\x61\x3b\x0b\xc3\x8f\xe5\xe3\xc9\xe0\xa0\x94\x03\xf7\xea\x4c\x2f\x83\x36\x7a\xd5\x85\xa3\xf8\xdc\xc5\xcf\xf4\x12\x3b\xae\x7b\xb0\x52\x70\x8a\x71\x44\xb2\x5e\x36\xd5\x9a\x22\x71\x3c\x70\x9c\xf9\x96\xf5\x60\x54\xcf\x70\xee\x75\xb5\xce\xcb\x09\x2c\xdd\x98\xeb\xd8\x11\xc9\xef\x6a\x63\x34\x4a\x0f\xe1\x9a\xf9\xe3\x43\x85\xf5\x8c\xe3\xef\x61\x91\x8b\x06\x19\xb1\x35\x03\xf9\x42\x0b\xa3\x21\xce\x36\xf1\x07\x06\xc9\xcf\x6c\xaf\x57\xee\x59\xe2\x73\xbe\x93\xde\x2e\x39\xd2\x9f\xcf\xb0\x52\x9e\x8b\x6f\xea\xd8\x02\x37\x5f\xfd\xa1\x91\x61\x40\xac\x73\xcf\x35\x7f\x6c\x6c\x6d\xd9\xdd\xd7\xab\x0c\x6f\x44\x77\x1b\x0d\xf1\xfb\x50\x8a\xad\xfc\xf1\x82\xf2\x9e\xe6\x7a\xdd\xaa\xc4\x35\xef\xee\xb1\x3c\xda\xf1\xcd\x8a\xf2\xf1\x46\x35\x1d\x71\x4f\xc0\x13\x51\xdb\x04\x38\x12\xcf\xfa\x6f\x1f\xec\x68\x34\x97\x80\x21\x06\xb8\x6d\x31\x94\xbe\xfc\x5d\x33\x08\x9c\x90\xe1\x34\x98\x0c\x74\xf7\x83\x57\x84\xaf\x53\x31\xe2\xbe\xe1\x1b\x66\xfc\xca\x00\x3f\xfd\xa9\xe1\x14\x7a\xa0\xd9\x1b\xe0\x6a\x3c\x3a\x32\xa1\xb0\xdf\x07\x56\xe8\x71\x34\x8a\x2f\xcf\x31\x3c\x84\xe4\xeb\x06\xc3\x1e\x9f\x98\x71\x9f\x35\xf8\x88\xdf\x21\x53\x90\x07\x43\xb2\x75\xd3\x36\xb4\x3c\x30\x11\xdb\x23\x22\xaf\x2c\xaf\x9b\xa9\x00\x13\xf8\x7d\x36\xe8\x05\x14\xab\x73\x81\x6c\x92\x1f\xf8\x36\x8a\xaf\xd5\x37\x7d\xbe\xb5\x3a\x6c\x81\x5c\xa9\xdd\xfa\x9a\x0b\xac\xd6\xa9\x15\x04\x35\xb5\x4e\xb3\xe4\x78\x3a\x54\x51\xe0\x4b\xcd\x09\x60\xe1\xe6\xe0\x2b\x20\x84\xae\x61\x9f\xf1\x54\x71\xef\x40\xb2\xd3\xb7\xc8\x4e\xaf\x39\x7b\xda\x83\x8d\xca\x55\x1b\x0d\xea\x58\xbd\x9b\xb6\x9c\xd4\x79\xc9\xb7\xa1\xc6\xf0\x86\xb9\x4d\x99\xef\x27\x78\x7b\x4d\x99\x13\xac\x01\x72\x8a\x00\xc0\x1e\xc7\x42\x58\xab\x2a\xa0\x58\x85\x35\xde\x50\xd6\x31\x68\xbc\xa1\x36\x86\xc7\xc7\x5f\x8e\xd4\xd0\x33\x7b\x3c\x2a\xf5\xd9\x4c\x46\xd5\x2c\xff\x8e\x4f\xa5\x28\xf4\xa5\xfc\x0c\xa0\x96\x4d\xd3\xf3\x8b\xd4\x7b\x16\xb7\x56\xb7\x0e\x4d\x3f\x5b\x3e\x8b\x5b\xab\xdb\x09\xa6\x04\x7a\x8a\x2a\x81\x3e\x8e\xab\x1d\x5f\xc5\xa4\xbe\xda\x61\xd5\x0f\xb4\x41\x5d\x87\x17\x57\x7c\xad\xf3\xca\x15\x4c\x7a\x9c\xd4\x0c\x29\x74\x5c\x79\xae\xe7\x15\x09\x11\xe5\x6c\xd7\x67\x5c\xf2\x60\xdf\x93\xba\x61\xe7\x93\xea\x73\x3b\x05\x6f\x64\xb1\xd1\x79\x39\xac\x6e\xcb\x9e\x63\x72\x37\x19\x3c\xcc\x61\x5b\xef\x0d\x2c\xfd\x19\x60\xe9\x6b\x02\x4b\xaf\xe5\x7b\x27\xd3\x56\xe9\xd0\xd9\x95\x7d\x8e\x48\x81\xa0\x95\x57\x67\xb4\x02\x9c\x5d\xe4\x73\xb5\x60\x9d\xc9\x54\xca\xd6\x5d\xc8\x82\x4f\xd0\x82\x7e\x89\x45\x04\xef\x53\x07\x32\xd7\x1a\xab\x01\x72\xfa\xad\xee\x57\xf2\x00\x14\x2b\x06\x34\x86\x0f\x92\x13\xc0\xe2\xd1\x10\x82\x35\x1e\x09\xa7\x38\x5e\x0f\x21\xf0\xeb\x98\x51\x0a\x07\xf3\xc0\xc2\xb8\x08\xee\x7d\x3e\x74\xb3\x80\xfb\x5c\x36\xd3\x51\x48\xeb\xde\x00\xad\xe7\x31\x9c\x76\xda\x09\x2a\x85\xad\x88\xa6\x26\xb1\x9b\xfa\xc2\x87\x7d\x8b\x0d\xa1\x9b\xf6\xbe\x07\xbe\xc8\x26\xb0\x5f\xfc\xc0\x80\x82\x89\xf4\x0a\x99\x55\x72\x4c\xde\xc2\xf3\x97\x96\xb6\x32\x58\xa2\xd4\xa6\xa7\x79\xd1\xd7\x0e\x34\xcf\x6e\x74\xb8\x7b\x69\x9a\x1f\x5e\xb0\xd2\x16\x21\x98\x5a\xc8\x4a\xfc\x90\xb4\x46\xae\x08\xa0\x5c\x69\x16\x4f\xd2\x36\xac\x0c\xa5\xc1\x7d\x8a\x2b\x6a\xe0\x2d\xf4\x89\x60\x6e\x47\x9f\x92\xb3\x37\x20\x7e\xe7\x6b\x72\x7e\x36\x01\x8e\xe1\xe8\x8e\xb1\x5b\x75\x59\x88\xce\xf1\x13\x12\xf9\x08\xbd\x0c\xae\x18\x8e\x40\xe1\xf9\x0e\x3f\x9d\x10\xb8\x1f\x0d\xe5\x70\xf4\xe1\x93\x2d\x1a\x28\x35\x69\x21\xa8\x13\x7c\xe7\x86\xc3\x4d\xe5\xba\xc7\x1c\x8a\xbc\x75\xd0\x30\xe4\x5e\xe5\x03\xf4\x83\xae\xa5\x18\x17\xf3\x8f\x85\xfe\x7f\x79\x2f\x35\x1c\x80\x7f\x35\xf5\x48\xff\xff\x4f\x5e\x4d\x1d\x5b\x66\xdd\xb3\xa9\x78\x16\x72\x81\xe0\xeb\x78\x1f\x47\x8e\xab\x68\x3f\xa3\x46\xb8\x4f\x91\x11\xbb\xf2\x91\xe5\xcd\xbe\x66\xf1\x15\xab\x0d\xb6\xe8\xb8\xbf\x20\x5e\x3e\xea\x4d\x6a\x4c\x9f\x26\x89\x87\x20\x39\x53\x6f\x91\xe4\xab\x35\x22\xd5\xdb\xf4\xa5\x5a\x8f\x16\x30\x49\xa8\x8b\xc6\xf2\x26\x9f\x74\xe4\x4d\xad\x5b\x7b\x34\xe4\x78\x73\x47\xa3\x96\x4a\x72\xff\xd0\x42\xf1\x67\x99\x89\x02\x06\x53\x91\x9c\xf0\x3e\xaf\xe4\xc8\x33\x81\x78\x75\x5b\x52\x9a\x3f\x8d\xc2\x08\x46\xac\xcd\xc4\x5d\x07\x8d\x02\x68\x96\x57\x05\x63\x19\xc7\xff\x49\x6e\xf8\x05\x47\xc9\xd1\x8f\xe1\xe1\x3b\x78\x92\xb3\x44\xfc\x10\xa2\xdc\xd8\xf8\x74\xfe\xce\xba\xed\xfb\xb6\x5a\x0e\xfd\xfc\x03\x98\xae\x74\x02\x6d\x6e\x7f\xa6\xdd\xf4\x0b\xb0\xdd\x60\x0d\x5f\x0d\x5f\x6a\x77\xf4\x69\x83\x11\x9c\xdc\x5a\x4e\xdd\xa5\xf9\x97\xf8\xad\x85\x3b\xe6\x91\x59\xc7\xdf\x5c\xbd\x20\x16\x53\xa4\x57\xa7\x5a\x82\x4f\xde\xa9\x75\x04\x5f\xc6\x3b\xba\x0a\x0c\x39\xf9\x84\x9e\x2f\x52\xbc\xa2\x28\x40\xae\x3e\xa4\xd9\xcb\x1b\x87\xf2\x88\xe4\xf5\xdb\x2b\x4a\xae\xda\x7b\x71\x18\xe9\xba\xb0\xc7\x40\x3f\x34\x67\x2f\x8b\x9f\x5e\xb8\x4f\xf9\x05\x2b\xad\x4d\xf2\x67\xc2\xb2\xe0\x0b\xb8\xda\x38\x8d\xbf\xd1\x8f\xe0\xa8\xc1\x54\x69\x95\x9f\x61\xe6\x8b\xa2\xfb\xce\xda\x09\x2e\x48\x8e\xc8\x5e\x1f\xdc\xd4\x15\x98\x1c\x46\xb1\xe5\x16\x07\x8d\x3b\x94\x42\x7a\x0f\xcf\xca\xa8\x83\xdf\xf9\x3c\x66\xd8\x56\x70\xa8\x3c\x30\xd6\xd9\xbb\x5c\xf1\xdb\x2e\x21\x60\x26\xfb\xcf\xde\x74\x8a\x1a\x76\x4e\xa6\x69\x85\xe8\x71\xa7\xa8\xd2\x7c\x18\xc0\x43\xcf\x3a\x89\x51\xc0\x94\x71\x67\xf3\x56\x65\x3c\x36\x7d\x2b\xec\x43\x5f\x11\x0d\x40\xee\xc4\xb5\x16\x40\xd8\xf7\x8f\x03\xa0\xf9\xaf\x58\x2a\xc0\x98\xa7\x68\xf6\xe8\xe3\x86\xd1\x57\x0d\xad\xa6\x7d\xa4\xa9\x19\x44\xdb\xc6\x47\xd4\xf4\x0e\xc7\x07\x64\xb2\xa0\x65\xe0\x73\x5f\x12\x0d\x8a\xb4\x23\x2e\x0a\x3b\xc1\x09\xc5\x9f\x55\x7b\xf0\xab\xa7\x86\x60\x36\xb9\xaf\x32\x79\xd8\x23\xa8\x03\x83\xff\x0a\x61\xbc\xd3\x4a\x34\xee\x69\x0d\x1a\xf7\x11\x70\x71\x02\x1b\x3f\xbf\xc2\x2f\x61\x21\x6e\xc4\x1c\x5a\xa6\x54\x64\x13\x96\xbc\xf1\xab\xf1\x21\x0e\x8a\xa5\x27\x0c\xf7\x25\xba\x59\xd2\xf0\x5f\xf2\x0d\xbb\xe5\x6f\xf0\x06\x07\x81\xcf\x0d\x8f\x34\x9f\x1b\x7e\xea\xd7\xe7\xce\x7d\x7b\x77\x5a\xea\x3d\xf3\xdf\x70\x6c\xca\xd7\x7b\xf9\x1c\x71\xf7\x35\x3e\xb8\xf8\x6d\x50\x23\xfc\x6e\x6f\x9c\x3b\x6e\x43\x3f\x13\x38\x6a\xc2\x98\x65\xb4\x65\xaa\xd5\x11\xc4\xb8\xaf\x85\x45\xef\xa8\x02\xfd\xf2\xd5\x49\x3d\x56\xa2\xcf\x84\x8e\x89\xd9\x33\x5b\x47\xca\x21\xa3\xb5\x81\x71\x48\x7b\xf4\xfd\x4c\xfd\x66\x93\xc6\xb6\xbb\x2f\x94\xfd\x8c\x6c\x3f\xc2\xd9\x8f\x63\x8e\xbf\x8a\xc9\x41\xe7\x56\x25\xfe\x8c\xe9\xf4\xfb\xa5\x0a\x66\x8f\x39\xc3\x22\x30\x79\xf7\x19\xa6\x00\x7d\xf6\xd9\x18\x83\x5c\x21\xe1\xf8\xee\x6c\xab\xe6\x6f\xb9\x66\x82\x28\xef\xf4\x2d\xec\xdd\x6e\xdc\xd1\xa7\x94\xa2\x4a\xf2\x05\x27\xf7\xb9\x96\x69\x65\xbb\x0d\xe5\x16\xd1\x6e\x77\xcc\x2e\xe2\xaf\x43\x39\x50\xe3\xf2\x8d\x25\x7e\x1f\x89\x7e\xa6\x6f\xf1\xd3\xad\x95\x5c\xdb\x80\x36\x2c\xdf\x8f\xd7\x8b\x1c\x50\x8a\x29\xc7\xad\xd2\x6d\xb5\xe7\x63\x59\xbf\x12\xc1\x8b\x43\x39\x38\x9b\xff\x8c\x9c\x10\xc9\x21\x67\xbe\xc0\xef\xf9\x01\x2a\xec\x54\x0a\x8c\xcb\x8d\xa0\x88\xce\x9b\x80\x98\x5e\xff\xf2\xf6\x72\x04\x39\xb3\x41\xb5\x64\x66\x43\xc7\xdf\xd0\x0d\xb7\xaf\xb8\x72\xdc\x14\xe0\xbe\x99\x9f\x81\x40\x1e\x9d\x80\xd0\x90\xf7\xcc\x82\x78\x66\x1b\x52\x6a\x2b\xf2\xbd\xec\x18\xa5\x33\xf9\x1d\x03\x05\x8f\xc6\x09\x94\xbd\x19\x37\xe9\xb5\x0e\xfb\xac\xc5\x0d\xe1\xf9\x81\x84\x08\x04\xfc\x40\x42\x6d\x67\x87\x67\xd0\xa4\xb2\xde\x55\x85\x0a\x8e\x02\xff\x5e\xb3\x0c\xd4\x40\x7c\xcb\x06\xa1\x4d\xbb\x61\x12\xe1\x56\x4e\x7a\x3b\xc3\xaf\x68\xe9\x74\x23\xf2\x7e\x11\x58\xbf\x0d\xf9\x15\x69\xa9\x61\xc0\xeb\x95\x43\x8c\x19\x94\x5e\x9d\xf9\xe7\xf4\x60\x7b\x1a\x4d\x66\x5b\xdd\x94\xce\x52\xa5\xb3\x79\x4b\x79\x11\x30\x7f\xfc\xba\xb3\x0b\x67\xf2\x1d\x2f\xfe\x7c\xee\x68\x12\x61\x53\x3a\x93\x49\x4b\xfb\x0a\xd6\xc3\x00\x2f\x92\x31\x8f\x71\x83\x56\xbe\x1d\x80\x2b\xe3\x1e\xb3\x5b\xfb\x92\x45\xb0\x43\xfc\xb3\xf2\xfe\x7c\x76\xbd\xf3\xb9\x3c\xdb\x33\x43\xe9\xc9\xc5\x30\x38\xb9\x2c\x5a\x60\xb1\x6a\xe5\x79\x0b\xfe\x77\xcd\x7e\x5c\x57\x12\xee\x3d\xcb\xeb\x88\xf6\x8a\x41\x2e\xdb\x68\xd2\xc3\xfb\xe8\x02\x41\x93\x15\xcc\xbc\x6f\x14\x03\x94\xbf\x95\xab\x21\x70\x2b\xfc\x22\xbf\xd5\x8e\xe7\x9b\x69\x2c\x38\x70\xa8\xf1\x02\xd3\x7b\xc9\x09\x60\xe6\x9e\x7d\xb1\xa1\x23\xc4\xd1\x42\x1d\x8f\xf6\xef\xba\x87\xfa\xc3\x50\x16\x71\x61\x51\x0e\xf2\x33\xdb\xca\xdd\x8b\x51\x10\x86\xc1\x86\x52\x48\x98\x97\x7d\x17\xc9\x69\xae\x6c\x66\xe0\x56\xd4\xe0\x0b\xcf\xfb\x45\x00\x0b\x51\x3c\x78\xe1\x58\xc6\x20\xe5\x5f\x0a\xb1\x4a\x3e\x49\x4c\xc3\xe7\xd1\x9b\x97\x66\x7e\x0c\xc2\x68\xa2\xfb\x3f\x8f\xe4\xcd\x2a\xb9\x24\x65\x95\x38\x82\x48\xde\xdc\x0a\x60\x9f\x76\xed\xea\xe9\xa3\xf0\xa5\x2b\xb6\x08\x79\x00\x7e\x19\x8b\x0b\x7f\xd0\x67\xb0\x74\x1c\x30\x6a\x50\x9b\x7f\xd3\x17\xb4\xe4\x77\xd8\xae\x98\x3d\xa4\xe9\xee\x3f\xb9\xd6\xff\x96\x68\xb0\x85\x6f\x42\x33\xf0\xbe\xf5\x1f\x69\xc8\xbd\x91\xa0\xf3\xb3\xdf\x23\xbc\xe0\x4a\x2a\x23\x44\xee\xa6\x8e\xdf\x19\x57\x54\xe1\x66\x2b\xdf\xc4\xf1\x78\xa2\x1f\x0f\x23\x2a\x6a\x6a\x82\xa8\x66\xc7\x77\x10\xb3\xef\x33\xff\x78\x1e\x2e\xe1\x49\x41\xd5\xe9\x6b\x3d\xf2\x88\xfb\xf7\xee\xe1\xbc\xe4\x53\xdf\x34\xdb\xcf\x49\xbe\xe6\x39\xd1\xdf\x04\x2f\x53\x4a\xbc\x2e\x62\xd2\x28\x99\xc8\x4f\x4e\x7d\xc7\x0d\x7f\x47\x5a\x2a\x31\x10\x3c\x19\xf5\xdd\x0e\x19\xf2\x11\x51\x64\x6c\x90\xc1\x4f\x9a\xe2\x67\x81\x9f\x45\x7e\x8f\x5f\x07\xfc\x3a\x94\xe5\xad\x54\x06\x87\xa1\xea\xa4\xf5\x6d\x90\x73\x8f\xdf\xfc\xfa\x11\xbe\xe0\x8c\x7e\xf4\x9d\x31\xfb\x81\x87\xaa\xe4\x9b\xa5\xc8\xb7\x1f\x94\x2f\xef\xf1\x3f\xf7\x4f\xf3\x3f\x62\xff\xd8\xbd\x66\x21\x45\x39\xdc\xbd\x66\x49\xf2\x11\xd8\x04\xe9\xb2\xda\xa0\xa4\x29\x97\xc7\xa1\x99\x92\xa4\xbc\x36\x3f\x64\x7e\x5c\x9a\x42\xae\x1f\x95\xa6\x92\xff\x1b\x00\x00\xff\xff\x1f\x03\x34\x04\x79\x88\x00\x00") +var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xdb\x72\x1c\x47\xd2\xde\x7d\x3f\x45\x4b\x0e\x9a\x52\x04\x38\x0c\x49\x61\x87\x43\x41\x52\x86\x00\xf1\xb0\x3f\x41\xf0\x27\xc0\x5d\xaf\x19\x8c\xde\x9e\xe9\xc6\x4c\x2f\x66\xba\x47\x7d\xc0\x08\x7b\xe5\xd7\xf0\xeb\xf9\x49\x9c\xf9\x65\x66\x1d\xba\x7b\x40\x69\xff\x0d\xfb\x06\xa8\xa9\xca\x3a\x65\x65\x65\xe5\xa9\xaa\xf3\xfd\x3e\x2b\xca\x6e\x95\x3e\x4f\x4f\xd3\x7d\x5e\xd5\xdb\xb2\xeb\xd2\xae\xdc\xde\x3c\xd9\x34\x5d\x5f\x16\xe9\xab\xaa\xa7\xdf\xed\x5d\xb5\x2a\x93\x64\xd3\xec\x4a\x02\x7d\x4d\xff\x92\x22\xef\x36\xcb\x26\x6f\x0b\xca\x38\xb7\x74\x52\xfe\xb6\xdf\x36\x2d\x03\xfd\x22\xa9\x64\x53\x6e\xf7\x5c\x87\xfe\x25\x5d\xb5\xae\xb3\xaa\xa6\x9f\x57\x94\x4a\xdf\xd4\x49\xd7\xac\xaa\x7c\x9b\x05\x05\xc8\xb0\xf2\x1f\xd3\xef\xeb\x22\xbd\xea\xcb\x7d\xfa\xac\xdb\xe5\xdb\xed\x8b\xbc\x43\x95\xbe\x4c\xf3\xd5\xaa\x19\xea\xfe\xd9\x53\x29\x90\xc6\x9b\xa1\xb7\xd6\x2f\x87\x5e\xf2\x86\xbd\x65\x7d\xdc\x27\x6d\xb9\xae\x68\x62\x2d\x65\x7d\xd0\x64\x72\x28\x97\x5d\xd5\xf3\xa0\xff\x22\xa9\xe4\xae\x6c\xbb\xaa\xe1\xf1\xfc\x59\x52\xc9\x3e\x5f\x33\xc0\x7b\xfa\x97\xf4\xe5\x6e\xbf\xcd\x51\xe1\x5a\x93\xc9\x36\xaf\xd7\x83\xc0\xbc\xd5\x64\x92\x0c\x84\xb9\x3a\x07\xce\x3e\x6a\x32\x29\x77\x79\xb5\x65\xfc\x3c\xe1\x04\xb5\xdb\x75\x87\x06\x58\x7c\xaf\x49\x1a\x63\xd6\xdf\xef\x4b\x0c\xf1\xc9\x35\xa5\x92\x55\xbe\xef\x57\x9b\x9c\x72\xce\x24\x95\x10\xd0\xbe\xa1\xb1\x36\xed\x3d\xe0\xec\x47\xd2\xb4\xeb\xbc\xae\xfe\x91\xf7\x32\xfe\xcb\xe0\x67\xb2\xab\xda\xb6\xe1\xa9\x5f\x20\x91\xd4\xe5\x21\xe3\x76\x28\xe7\x5d\x79\x08\x5b\xe1\x92\x5d\xb5\x6e\x65\x96\x5c\x78\x81\x5f\xdc\x0a\x97\xdd\x34\xed\xad\x16\xbc\xe4\xe4\xa8\x2a\x0d\x42\x4b\xe3\xfe\xf3\x9a\xf0\xa2\xa5\x17\xf8\x11\x01\x74\x49\x5e\xec\xaa\x3a\xdb\xe7\x75\xc9\x38\x3a\xe5\x5f\x84\x17\xfa\x95\xe8\x72\x67\x5d\xd9\xf7\x55\xbd\xee\xb8\x58\xb2\xd2\x2b\xcd\x4a\x82\x32\x97\xc7\xe3\xe9\xb2\x9b\xb2\x2c\x64\x44\x5d\xfa\x92\xd2\xc9\x7e\xd8\x6e\x69\xee\xbf\x0e\x65\xd7\x33\xfc\x7b\xfa\x4d\xb3\x90\xdf\x49\xd5\x75\x94\xa0\xec\x37\x48\x24\xb4\x00\xf5\x0a\x43\x3a\x43\x22\x49\x3e\x75\x65\xde\xae\x36\x9f\x13\xf9\x8f\x1e\x39\xb1\x58\x2c\x8e\x2e\x0d\x93\x83\x92\x82\xf4\x60\x1d\x24\xab\xa6\xe0\x1f\x67\xf4\x8f\x9a\xae\xea\xae\x27\x92\xfe\x9c\x68\x82\xc1\x24\x25\x68\xec\xab\x7e\x5b\xfa\x4c\xec\x8f\x8e\xd7\x21\x7d\x59\xb5\x5d\xff\xa4\xaf\x88\xe4\x3e\x0c\x75\xc2\xf3\x23\x72\xce\x8a\xa5\xed\xf2\x57\x0d\x61\x07\xd9\x2d\xcd\xef\xe2\xfe\xea\xdf\xdf\x9e\xa4\xef\x69\xab\xaf\xdb\x92\xd2\x29\xb5\x41\xff\xa8\xce\x0f\x8b\x84\x6a\x59\x4f\xe7\x79\x9f\x2f\xf3\xae\xf4\x68\xe5\x42\xa1\x51\x57\x06\x4a\x65\xb6\x01\x16\xd1\xf5\xd1\x7c\xe7\xe8\x9c\xda\xd0\xdd\xe1\xda\x78\xc7\x5b\x84\xf2\x99\x6b\xa0\xf2\xfb\x6d\xc9\xf9\xd4\x54\xfa\xe6\xdd\xbb\xcb\xf3\x9f\xd3\xb2\x5e\x57\x75\x99\x1e\xaa\x7e\x93\x0e\xfd\xcd\x7f\xcb\xd6\x65\x5d\xb6\xc4\x44\x56\x55\x4a\x3b\xa3\x25\x22\x48\x89\x3c\x65\x72\x8b\xa4\xeb\xb6\xd9\x4e\xd0\x7b\x75\xf5\x36\xbd\x60\x14\xef\xf3\x7e\x83\x81\xf4\x9b\xa4\xfb\x75\xcb\x28\x72\x1d\x5e\x6f\xca\xf4\xa6\xa2\x59\x03\xa8\xb9\x31\x7c\xa4\x85\x8e\x71\x91\x94\x6d\x9b\xd1\xbe\xef\xef\x33\xad\xac\xed\x8d\x21\xa5\x09\x22\x9d\xba\xe9\xd3\x65\x99\xa2\xce\x22\x49\x6c\xc0\x86\xdd\xd3\xfd\x7e\x5b\xad\x64\xc7\xbe\x92\x32\x8f\x68\x66\xd1\x8a\xa5\x10\x0e\x88\xb2\xb2\x00\x5d\xc4\xff\xee\x9b\xa1\x4d\x23\x36\x80\xfa\x9b\x92\xf8\xf2\x66\xa0\x2d\x97\x13\x4f\xdd\x36\x43\xf1\x15\x28\xd5\x46\xef\x09\x35\xfd\xd0\xd0\x80\x81\x1d\x07\xe0\xbb\x38\x25\x8a\xe3\x53\xa1\x2d\x77\x0d\x71\x07\x47\xec\x15\x11\xd4\xa1\xa2\x42\x9a\x69\x97\xdf\xd1\x7e\xeb\x9b\xb4\xdf\x54\x5d\x5a\x10\xb1\xad\xb8\x61\xda\x1a\x03\xf1\x63\x21\x0b\x22\x50\x21\x0d\xcb\x8b\xd7\x00\x50\xbb\x81\xa8\x69\x43\x8d\x31\xb7\xe7\xa3\x89\x9a\x9c\x1b\x27\xa6\x44\xed\x80\xbe\x89\x72\x1b\xe2\xad\xcc\xfd\xce\x91\xd0\xdf\x61\xfb\x34\xaa\xfc\xe6\x86\x46\xd5\x11\x55\xbc\x4e\x57\xdb\x86\x48\xea\xe3\x87\xb7\x54\x79\xd3\xf7\xfb\x6c\xdf\xb4\x20\xe3\xeb\xeb\xf7\xb4\x3d\xda\xde\xe7\x06\xb8\x66\x98\x7a\xd8\x2d\xe9\xd7\x61\x53\x11\x13\xc8\x83\x05\x02\x2a\xb6\x7c\xc0\xd4\x69\x53\x2f\xb0\x56\x43\xbb\x1d\x2d\x23\x75\x69\x25\x47\x86\xc7\x43\x78\xca\x7f\xae\xfc\x28\x31\xdd\x8e\x4e\xe1\x03\x16\x95\xa6\x5a\xe2\x34\x21\xda\x6a\xf6\xdc\x6e\x40\x5c\x97\x9a\xe1\x29\x0a\x27\x90\x2b\x97\x73\x88\x4a\x71\xc6\x07\xbc\x74\x47\x13\xd6\xdd\x7c\x75\x41\x68\xc0\x96\x46\xee\x4d\xdb\xec\x28\xf7\x25\xfd\xf3\x19\x7e\xf8\x17\xdc\x1e\x60\xf2\xa2\x20\x36\xd3\x9d\xa4\x1f\x5e\x9e\xa5\xff\xe5\x87\xef\xbf\x5f\xa4\x6f\x7a\xde\x10\x4c\x23\x7f\xe7\xb5\xa5\xa4\x1c\x88\x0e\x94\x76\x6e\x4f\xcb\xff\x35\x13\xf8\xd7\xe9\x33\x94\xfe\xf7\xf2\xb7\x9c\xce\xd9\x72\xb1\x6a\x76\x2f\x78\x73\xef\xf2\x7e\x91\x70\x09\x51\x8d\x92\xd3\x55\x59\x17\x94\xd0\x63\x55\xcb\x02\xae\xa3\xe5\xc1\x21\x2b\xa7\x7f\xb6\x6a\xea\x9b\xaa\xe5\x09\xfd\x52\xe7\x4b\xc2\x89\xc9\x05\xc4\x8e\x51\x62\x67\x17\x21\x8d\x36\x72\x75\x73\xef\x41\x31\xd5\x77\x9c\xa9\x0b\x9a\xb0\xac\x44\x8d\xaa\xc8\xe4\xb0\x7c\x85\x6c\xac\xdb\x25\x4d\xaf\x35\x7c\x77\x1e\xe1\xcd\xcd\xcd\x96\x18\x9b\x31\x2b\xed\xe1\x52\x72\x85\x6f\x85\x20\x44\x8c\x7b\x48\x36\xe7\x55\x07\xc8\xb3\xf3\x77\x69\x79\x47\xd4\x46\xe4\xb0\x6f\x9b\x62\x58\x81\xc2\x18\xf6\x24\xe5\x63\x82\xf0\x4b\x9c\x61\x25\xec\x2d\xd8\xab\x3c\x34\x66\x08\x2b\x02\xa2\x2d\x5a\x48\x7b\x99\x20\xa8\x35\x41\xc2\xba\xb9\x62\xe1\x30\x2c\x9b\xad\x30\x19\x1d\x56\xa9\x1b\xd7\xa5\xe5\xae\xb7\xf7\x29\x4e\x7d\xd0\xc5\xaa\x2d\x03\xd9\xae\x5b\x24\x7a\x56\x99\x84\x98\xdd\x55\x24\x54\x04\x4b\x85\x52\x13\x17\x99\x3d\xfc\x99\x01\x58\x4c\xeb\x66\xeb\xba\x81\x5d\x72\xc7\x5c\x42\x73\xa7\xce\x79\x7c\x1d\x86\x80\x1e\x58\xdc\x23\x62\xbc\xab\xc0\x69\x14\x59\x18\x2b\x61\x0c\x5d\x53\x57\x5d\x59\xa2\x05\xaa\xff\x94\xda\x44\x9d\x85\x8a\x30\x2a\x8a\xd8\xb9\xfb\xd7\x66\x48\x8b\x26\xe5\x83\x00\xec\x8c\x6a\xdb\x54\x6b\x9d\xbe\xce\x39\x6d\xab\xf5\x86\xf8\x4a\x73\x38\x11\xa4\x1d\x36\x4d\xc9\xb4\xf3\xe6\xfc\xf9\x77\x32\x8e\x35\x33\x37\x57\x89\xd9\x62\x3e\xf4\x0d\xd3\xa9\x2e\xa1\x0c\xc1\x1d\x2f\x80\x9c\x08\x4b\x02\x34\x16\x4f\x4d\x00\x9b\x9e\xd6\xba\x4f\xc2\x32\xdd\x20\x1e\x46\x6a\x8f\x44\x5c\x95\x62\xb2\x75\x03\xc9\xcc\xa4\x16\x66\xd5\x24\x4a\x77\x7d\xb6\xae\xfa\xec\x86\x37\x2c\xb7\xf9\x92\xeb\xf2\xc9\x41\x25\xe9\x63\x2a\x7a\x9c\xd2\xae\x27\xc9\xb1\xf8\x31\x7d\x74\xa7\xc7\xf5\x0f\xbc\x13\xb3\xfc\x8e\x60\xb1\x18\x40\x70\x4b\x14\x2e\xd2\x82\x89\xef\x45\x43\x74\xce\x38\xef\x86\x3d\x38\xba\x9e\xd0\x27\xe9\x5e\x00\x8b\xe6\x50\x6f\x9b\xbc\x00\xcb\xa1\xdd\x55\x41\xf9\x58\x56\x75\x4e\xa7\x8b\xb5\x02\x56\xf6\x88\xa8\xe1\xdd\xe5\x35\x00\xd7\xcd\x72\xa8\xb6\x85\x01\x2c\x68\x86\x77\xf9\xb6\x2a\x58\xce\xd2\x75\x0f\x65\x1a\xcb\xaa\x64\x2c\xab\xa6\xe5\xe3\x10\xb3\xb1\x8a\x47\xce\xe1\x96\xcf\x37\x64\x53\x5d\x85\x45\x3d\x77\x64\x32\x1a\x68\xe1\x21\x80\xf2\x81\x0a\x8a\xa9\xba\xfa\x71\x8f\x91\xae\x06\xea\x8b\x16\x9d\xb3\xa9\x62\x97\x3e\x79\x41\x7f\x13\x3e\x9e\x85\xef\xad\xa7\x88\xe7\xc2\x54\x0a\x07\xd9\xa5\xd1\x50\x23\xf2\x76\xd4\x65\xc4\x1b\xcc\x35\x1c\xaf\x91\x40\x37\x08\xbd\xb2\xa6\xb5\xa5\x65\x2d\xbf\xa2\xc4\x63\xda\xc0\xeb\x2d\x16\x21\x87\xf4\x42\x62\x5c\x43\x78\x63\x02\x39\x91\xed\x72\x43\x53\x63\xde\xd9\xe7\xb7\x34\xb6\xbc\x25\x21\x2c\xf9\xc4\xda\xe8\xe7\x64\x10\x01\xa8\xd9\x16\x4e\xd8\x04\x4d\x37\xed\x58\xc5\xf2\x40\x8e\x5e\x3b\x92\x22\x57\x9b\xcc\xe9\xb2\x8c\x94\xbe\xfc\x0d\x67\x1e\x8a\xbc\x6a\xcb\xc4\xce\x45\xc9\xee\x1e\xcb\xc5\x93\xb8\xb8\xf7\xab\x45\xe2\x0f\x6d\x11\x12\xd1\x97\x0d\x63\xed\xae\x74\x50\x67\x61\x6e\x5c\x81\xda\x22\x41\x4d\x9b\x8a\x35\x21\x2a\x12\x75\x4d\x4b\x45\x65\x23\x55\xe4\x93\xea\xd8\x9f\x13\xeb\x20\x6a\x32\xf9\x44\xcc\x80\xf4\x12\x61\x2f\x19\x6b\x63\xb6\x38\x34\x14\xe1\x39\xac\x98\x29\x3f\xf0\xe7\xe0\xa6\xdc\xf3\x91\xb9\xeb\xb0\xaa\x5b\x82\x2c\xee\x55\xf6\x72\xeb\xfb\x93\x70\x5a\x5a\x70\xe2\x4f\x5f\x99\xf6\xfe\x07\x9b\xf8\xb9\xa2\x95\x44\xfd\xf8\xe4\xe0\xf3\x9a\xb6\xda\x1e\xd8\xa7\x4d\x72\x7f\x92\x46\x67\xd0\x26\xef\x88\xfb\xd2\x01\xa7\xd5\x8a\x85\x69\x07\xbc\x6a\xf9\x4a\x48\x1e\x9a\x3c\x88\x54\x6a\x36\xed\xf8\x48\xe3\x11\x0a\x83\xd2\x5e\xdc\x81\x8f\xe3\x3c\x3c\xf5\x67\xfa\x24\x84\xed\x4a\x96\xf9\xb2\x9d\x68\xe8\xf2\x2b\xbd\x28\x13\x12\x4c\xd6\xb4\x1f\x8d\xde\x9e\xb3\x4a\xb6\x86\x84\xaa\xe4\xc6\x00\x65\x1f\x72\x50\x85\xb0\x9c\x9f\xcc\x62\x41\x1b\xfb\x00\x7d\x95\xb6\xe6\x04\xfd\x74\xd6\x50\xf1\xc2\x38\xb2\x1c\xb8\x90\x4f\x3a\xda\xec\x1e\x89\xa7\x29\xad\x7e\x1a\x42\xa9\x9c\xe8\xa7\xc5\x15\x78\xd3\x3f\x5b\xbe\x78\xd4\x3d\x7b\xba\x7c\xe1\x58\xe3\x6a\x53\xae\x6e\x45\x97\xa8\xea\x65\xf3\x1b\x14\x2e\x5a\x78\xc6\x71\xcd\x5b\xe4\x51\x91\x6e\xa8\x14\x32\x39\x6d\x65\xaa\x46\x88\xe7\xd2\x68\xd1\x68\x30\xbc\xe3\x17\x66\xfb\x71\x87\x83\x11\x12\xd5\x46\x27\x32\x32\x52\xf3\xb1\x77\x38\x2b\xa0\xdb\x53\xce\x65\xca\x05\x9b\xf7\xa4\x8b\xf9\x6e\xab\x5d\xd5\x4f\x48\x87\xf9\x48\xae\x24\xa8\x7a\xbe\xe1\x12\x6d\x01\x1b\x18\x0b\x71\x63\x6a\x86\xce\x4d\x23\xa7\x43\x4e\xea\xcd\x0f\x29\x91\xd0\x40\xa7\x10\xcf\x89\x86\x49\xec\x38\xe7\x83\x97\x14\x84\xbc\xcb\x86\x5a\xd1\x5a\x16\x46\x4c\xaf\x2b\x1c\x12\xdc\xaf\x91\x7c\x00\x65\x98\x57\x39\x37\xfd\xc6\x61\xfc\x5b\x12\x8a\x6f\x5c\x35\xe6\xdc\x3c\xa0\x8a\x65\xb2\x7c\x76\xf1\x88\xb3\xd5\xa5\xa8\x57\xc0\x00\xc3\xf1\x42\x93\x72\xe0\x57\x8f\x34\x8c\x5b\xca\xc1\x82\x2c\x87\xbe\x6f\x58\xe6\xde\x32\xd5\x48\x1d\x1b\xf5\x19\x00\xa1\x46\xf8\xf6\xb0\x20\x21\x9e\x64\x6d\x4a\x93\x81\x33\x6f\x85\x53\x6d\x65\x34\x3b\x3d\xea\x1c\x58\x21\xea\x7a\x5e\xdf\x1b\x29\x13\x41\xf0\x28\xb8\xc3\x7e\x7e\x2c\xdf\xb4\xe5\xb7\x7e\x34\x6e\xcf\xa0\x86\x8d\x48\xaa\x07\xfb\xe9\x03\x4a\x41\x25\x6e\xd7\xd9\xc9\xa5\x46\x16\x4f\x1f\x6d\x8c\x5e\x94\xf3\xce\x20\x06\x4b\x62\x63\x01\x44\xd3\x2c\x50\x7b\x31\xea\xcb\xab\x3b\x53\x0c\xf6\xf1\x90\xfd\x01\xd4\x37\x4d\xd6\x6d\x44\xb5\xb4\xe1\xa5\xdb\xb2\x5e\x47\x66\x02\xd8\x60\x41\x74\xff\x95\x8f\x39\x12\xe0\xf3\xed\xe7\xe4\x1e\xf6\xa8\xbf\x12\x87\xaf\x61\xaf\x6b\x12\x2a\x10\x65\xe4\x02\x09\x02\x65\xcd\xe8\x73\xc2\x47\xe0\xbb\x91\x58\xc7\x47\x84\xe6\x05\xf2\x05\x8a\x7e\x89\xa4\x35\x5b\xc2\xe4\xfd\x8c\x08\xf8\xa1\xf4\x76\x49\xa4\xdc\x14\x49\x89\xbe\x36\x55\x87\xf4\xe9\xdb\x52\x1b\x7f\x4d\x6a\x73\xf7\x11\x6a\xaf\xe8\xb0\xac\xf0\xbe\xcf\xef\x59\xe8\x92\x6c\xfd\x81\x82\xeb\x32\xdf\xe9\x28\x39\x29\x4d\x9c\xd2\x71\xa6\x99\x9c\xa4\x53\x2e\xb0\x6a\x24\x10\x3f\x6c\x0a\x22\x8b\xe8\xb1\xef\xc4\xff\x52\x8d\x9e\x7f\x9b\x98\x62\xfe\x96\xe4\xdb\xfd\x26\xc7\xf9\x1f\x80\xc1\xea\x40\x40\x58\xf8\x14\x20\xa0\x85\x61\x57\xb6\xd5\x8a\x93\x5c\xe1\x9b\x27\xd9\xb7\x30\x38\xd1\x46\x21\x41\x30\x6e\xac\xa0\x4d\xf2\x4f\x35\xc8\x69\x16\x12\xc3\x76\xbb\xea\x1f\x36\x8b\xa8\x39\xce\x27\x9e\x43\x10\x10\xc9\x3c\x94\x03\xc2\xc1\xc8\xe2\x59\x9f\x32\x5f\xe8\x59\x04\x8c\x9a\xde\xe5\xbf\x7d\xa9\xe2\xae\x99\xa9\x27\xac\xc0\x57\xb2\x0d\xaf\x53\x8c\xd9\x01\xc1\xb3\x7d\xe3\x28\x34\x2d\x3d\x83\xd4\xb7\x74\xaa\xd5\x0e\xec\xa3\xfc\x4e\xf1\xfb\x47\x33\x81\xd3\x11\xa2\x02\x74\xea\x8c\xe1\x74\x38\x17\xcc\x37\x21\x08\x2f\xfc\x76\x0b\x85\x63\x47\xce\x2c\x46\x9a\xca\xef\x18\x07\x49\x94\xa2\x27\x10\x49\x2d\xbc\xdd\x3e\xe3\x33\x32\x63\xa1\xb3\x0e\x45\x4b\x77\x7a\xda\xf9\x02\x08\xb1\xfb\x66\xd3\x7a\xa3\x0d\x77\xb4\x3a\x89\x02\x33\xb5\x2f\xa7\x86\xbc\x23\xf5\x7b\xda\x32\x33\x0d\xb8\x9d\x74\xb4\xa2\x2c\x26\x2a\xd1\xcc\x8b\x09\x2f\x98\x56\x64\x30\x36\xad\x6e\x32\xda\xe9\x51\xcd\xf7\xc3\x92\xf8\xa1\x63\x00\x4c\xcf\x90\xa9\xeb\xde\xb7\x22\xb5\x49\x93\x2d\xd7\x6c\xa8\xb2\x61\x47\x63\x55\x02\xa4\xa3\x44\xc0\x42\xf2\xf3\xeb\xe3\x96\x3a\xa4\x8a\x50\x05\x70\x2b\x1c\x2b\x5f\x34\x67\x1a\x13\x25\xb9\x66\xa0\x82\xe9\x30\x54\x0e\xd8\xb1\xb6\xd1\x0d\xcc\xd8\x59\x33\x11\xd9\x26\x5e\x4b\x3e\xb6\xd1\x54\x89\x2e\x8e\x37\x4f\x94\xcc\xea\xda\x97\xda\x07\xd8\x1f\x6c\x3a\x54\xd6\xa7\x0d\x6b\xe3\x0e\xe8\x58\xb3\x4e\x9d\x2c\x7f\xab\x60\xf4\x7b\x55\xdd\x95\xaa\x50\x3a\x3d\x1a\x65\x8b\x64\x4b\xac\x84\x15\x17\x99\x95\x48\xc1\xcd\x1d\xeb\x7d\xdc\x1f\x97\x4a\x3d\x31\x02\xea\xa4\x78\x9d\x55\x35\x25\x55\xb0\x39\x94\xc5\x09\x09\x08\x5c\x83\xc6\x09\xa6\x93\x6f\x0f\xf9\x7d\x07\x0b\x8b\xf1\x2b\x36\x78\x4a\x75\x66\x46\x24\x3e\xac\x31\xaa\xd0\xba\x4d\xfb\xd5\x30\xa1\x04\xe9\x0f\xf9\x03\x94\x4b\xf0\x1a\xb5\xd9\x90\xce\xce\x87\x26\x0e\x68\x3d\xa9\x58\x31\x66\x35\x92\x35\x04\x29\x0e\x1a\x82\xc3\x44\xcf\x8d\x99\xba\x27\x2c\x5c\x51\x37\x2c\xea\x10\x37\x17\x5c\x93\xf4\x48\x98\xc5\x90\x02\x4b\x03\x6d\x8c\xf2\x89\x48\xd5\x15\xe1\x90\xb5\x34\xaf\x7c\xf3\xc9\x46\xab\x62\x66\x61\xc9\x87\xea\x9c\x74\x3d\x6d\x01\xc6\xb4\xb9\xea\xfe\x2a\xd2\x99\x2a\xdc\x5c\x8a\xad\x05\x34\x75\x9b\x6a\x9f\x36\x30\x35\x86\x28\xf4\x64\x1b\x08\xa8\x84\x8d\xa2\x84\xd4\xce\x36\xd7\x36\xaf\xbb\x9b\x12\xc6\xd7\x5d\x7a\xc3\x7e\xa4\x85\x76\xcd\xf2\xae\xb8\xec\x8e\xf4\x2c\x1a\x10\xba\x0e\xcf\x1a\xac\x5d\xb0\x50\x71\xd7\x04\x73\x87\x9e\x75\x0c\xc0\xaa\x6f\xa9\xb3\x31\x30\x99\x4d\x50\x00\x99\x33\x72\x71\xd8\x68\xee\xca\x10\x11\x37\xff\xec\xcc\x03\xac\xab\x7d\x59\x8c\xf2\xf1\x32\x49\xa7\xb0\x75\xc0\x43\xb5\xbc\x8f\x67\xcf\x55\x1d\x05\xb0\xbf\xe4\xae\xd4\x5e\x78\x63\xf0\x5e\x19\x35\x08\x1b\x87\xd7\x34\x92\x3e\x87\xc2\xb8\xa4\x21\xae\x36\xd1\xee\xbc\x46\x49\x2a\x25\x93\x0d\x9a\x7c\xe2\xae\x3f\x27\xc4\x34\xeb\x75\xc9\x86\x32\x6a\x89\x0f\x4c\xfc\x56\xf9\x5e\x32\x69\xc0\xeb\x56\xd2\x6c\x5e\xb7\x2a\x2b\xda\x90\xcd\xee\xc1\x9a\x55\x6d\xe6\x9e\x2e\xf9\x7b\x43\x12\x08\xec\xc4\x7f\xa2\x14\xcb\xce\x75\x12\x79\x86\x46\x56\x0a\x28\x17\x55\x7f\xef\x4f\x8c\x53\xcd\x21\x25\x19\xdc\x01\x76\x8f\x97\x96\xa6\xf5\xc8\x99\xe9\xf1\xd6\x96\x94\xc2\x89\x11\xea\xa5\xa5\x13\xd6\xb1\x77\x0b\x1c\x0e\x2c\x8a\xc3\xb4\x1d\x1c\x09\x8f\x1f\x75\x8f\x79\xc1\xac\x6c\x11\xc0\xef\xf3\x9e\xd8\x62\x2d\x0a\x8e\x70\xa8\xb0\xaa\x16\xbb\x26\xc0\x55\x04\x6c\x01\x7f\xb0\xa0\xe2\x73\x42\x9a\x28\x1c\x88\x34\x35\x49\xcd\x3a\x3f\x95\xc5\x74\x2a\x31\xff\x1b\x25\xd5\x9e\x92\xba\x28\x08\x55\x74\xe1\x04\x34\x97\x51\x17\x7b\x90\xba\x44\x0d\x48\xb1\xf5\x48\xc9\xfb\x79\x7a\x2e\x09\x53\x99\x87\x0a\x73\xaa\x8a\x24\xd9\x03\xef\x59\x30\x5a\x59\x08\x37\x68\xf9\x1f\x58\xb0\xdb\xb1\x5c\x40\x58\x90\x56\x40\xb8\xe6\x50\x80\x24\xc0\x1e\xd8\x40\xdd\x63\xd3\x2c\xf4\xc0\x3a\x70\x96\x90\xb6\xcc\xf5\x18\xec\x50\x2e\x53\x36\x96\x12\xe1\x90\x56\xa5\x13\xdd\xe5\xa4\x90\xdd\x55\xb9\xb3\xeb\xd0\x6a\xb1\xdb\x5e\x4f\xd1\x97\xec\xb2\x87\x1f\x74\x1a\xc0\xc1\xde\x0c\x75\x5c\xbc\xd5\x64\x32\xec\x0b\xb6\x88\xf9\x09\x7f\x44\x86\x9b\x70\x5c\x1e\xd8\x2a\x31\x75\xab\xe6\xa5\x18\x80\x17\xa9\xc2\xf1\xc8\xee\x17\xb6\x7d\x66\x22\x3f\x74\x0b\x15\x63\x90\xd0\x45\x20\x45\xaa\xf2\x1a\xc0\x42\x78\x0f\xd0\x2b\x5e\x41\x20\x84\xce\xca\x74\xd3\x1c\xd2\x6d\x55\xdf\x76\x8a\x5f\x67\x4d\x31\x2d\x3b\x3d\x47\x06\x01\x8b\x9d\x87\xc5\xaa\xaa\x1e\xca\x9f\x12\x4b\x89\x19\x1f\xc9\x69\x94\x43\x29\xa7\xe2\x98\x19\xa8\xf7\xe5\x0c\xd9\xe9\x29\xb2\x67\x61\xbd\x96\xac\x55\xe0\x0f\x66\xf6\xab\x6e\xa1\x9b\x92\xc5\x73\xb0\xc3\x57\xca\x85\x08\x3f\x4d\xd3\xa9\xe5\xd2\xb3\x1f\xce\x83\x99\x43\xa1\x74\xb5\x1c\x84\x2e\xa6\x0c\xc6\xbc\x1c\x04\xc5\xca\x25\x09\x4b\x3a\x1e\xec\xed\xac\xda\x49\xa4\xce\x47\x2d\x15\x87\xbf\xd3\x4a\x50\xbc\x20\x3d\x7b\x34\x99\xd0\xdf\xf0\x8e\x70\x29\xd3\x37\x3e\x6a\x85\x27\x26\x2e\x08\x42\x70\xd8\x47\x83\x1d\x53\x96\x36\x60\xa6\xf3\x2f\x10\x98\x91\x4f\xe8\x86\x11\xde\xec\x58\x4b\xb3\x8d\x84\xc2\x33\x75\x02\xb8\x72\xc6\x6c\x50\xfe\x0e\x0e\xb3\xb1\xad\x22\xd2\xb3\xb4\x85\xa3\xd2\xf4\x68\x4c\x93\xbd\x63\xf5\x0e\x34\xb7\x70\x3a\x46\xf0\x0b\xa1\xfe\x1c\x76\x65\xf1\xa9\x0d\x9d\xc8\x93\xdc\x15\x1c\x72\xd2\x04\x21\x00\xea\x4a\xe7\xb5\x94\x53\xe1\x46\x6c\x4e\x97\xf8\x22\x07\xa0\x21\x46\xb1\x36\x5a\x9a\x07\x3c\x64\x6c\xfb\x96\x16\x9d\x0e\xde\x91\x1d\x6b\xc2\xd2\x22\xf6\x05\xee\xd5\xc0\x9d\xeb\xb9\x16\xe9\x9f\xda\x16\xf3\x7f\xa4\x2c\xc7\xdb\x3e\x4b\xb6\x8d\x59\xa7\xca\xac\x5d\xa9\xb0\xec\x84\xc6\x80\x3d\x50\x3a\xe3\x46\x01\x4c\xc4\x43\x04\x58\x08\x62\x76\x54\xcb\xce\x22\x2b\x31\xec\xbd\xff\xdf\x2c\xc3\x51\x87\xce\x32\xec\x87\x3a\x22\x1b\x1e\xe3\xe8\xc4\x99\x10\x10\x15\xe0\xfc\xd5\xa5\x0f\x4e\x55\x5d\x7c\x77\xb8\x72\x37\x22\xd3\x33\x9a\x28\x0b\x47\xb0\x12\x01\x38\x2c\x0b\x78\x08\xd9\x40\xd8\x8f\x08\xf8\xdd\xc4\x88\x19\xf3\xd7\x53\x68\x30\x84\x15\x81\x65\x79\x80\x0f\x34\x91\xfe\x54\x23\xda\x31\x22\xc4\x69\xeb\xa2\x58\xee\xc5\x5f\xe9\x45\xa2\x13\x55\x1b\x36\xd5\x7a\x43\xf3\xaa\x76\xec\xb0\x04\xd7\x36\xaf\x98\xd7\xea\xf8\x17\x6d\xbc\x66\x5d\xb3\x05\x88\x7b\x10\x65\xdc\x71\xdb\x67\x5d\xdf\x36\xf5\xfa\xc5\x79\xc3\xea\x16\xdb\x51\xf8\xa8\xf8\xe9\xd9\x53\xcd\x27\x96\xc1\x6b\xc8\xd1\x92\xaf\xaa\xfe\xf5\xb0\x7c\xdc\xa5\x6b\x92\x0d\x70\x80\x3c\xcb\xd3\x4d\x5b\xde\x3c\xff\xfa\x51\xf7\xf5\x0b\xf5\x52\x4b\x4c\xd1\xa1\x76\x68\x79\xf6\x34\x7f\xc1\xd2\x73\xd7\x6c\x49\xa8\x8d\xab\x34\xbb\x9d\xac\x2f\xb1\xbf\x9d\x40\x62\xfc\x70\x6c\x97\x35\x30\x57\xb6\x8a\x1f\x6a\x70\xe1\x68\xdd\xaf\x8f\x2e\x5b\xc2\xf6\x05\x3d\x48\xe9\xa7\x1c\xf7\x9c\x67\x46\x05\x39\xbd\x28\x65\xeb\x1b\x10\x11\x33\x36\x6d\x27\x30\x61\x30\xc1\x7c\x65\x7b\x4e\x3a\x0c\x76\x1c\x44\x86\x53\x86\x61\x11\x16\x8a\xae\x5a\x36\xde\xaa\x5a\x8b\x02\x3a\x1b\x02\x11\xf6\x5d\xa3\x4e\x84\xd4\x32\x3d\x41\x9a\x48\xa7\xe4\x78\xea\xa9\x69\x2c\xe4\xa9\x37\xed\x28\x45\x06\x84\xa8\xad\xba\x30\x09\x51\xc0\x4b\x88\x52\xcb\xaa\x2e\x84\xf0\x94\x6e\x34\xee\xc0\x11\x0c\x1d\x47\x35\x03\xc1\xc6\xc6\x09\xfd\x1d\x60\xee\x2a\x6a\x3f\x38\x92\x68\xbf\x0f\x75\xb0\xdf\x84\xa0\xb3\xbe\x11\x5b\x93\x4e\xf2\x3d\x49\xec\x88\x39\x3a\x95\x06\xaf\xb9\xb8\xd3\xb8\x37\x75\x4a\x5a\x95\x57\x9a\x89\xd5\x02\x60\x82\xa2\xce\x21\x02\xbf\xbc\xf2\x66\xad\xa8\xbf\x58\xa3\x89\xb0\x30\x44\xbc\xb6\xc3\x36\xe2\x3f\x4e\x4f\xdf\xbf\x59\x24\xae\x3f\x6b\xf3\x97\x9c\xa4\x0e\x19\xc1\xc1\xe9\x8d\xcc\x50\xc6\x3b\xd4\x79\x2b\xa4\xba\x99\xa9\x50\x13\xb4\xe8\xe6\x34\x99\x8f\xcc\x25\x2e\x17\x14\x97\x5d\xa0\x4b\x4b\x6f\x18\xc9\x98\xb7\xb9\x99\x7e\x45\x88\x75\x16\x1d\xe6\xa9\xfb\x7b\xe6\x16\x41\xa4\x48\x2e\x08\x3a\x60\xbf\x8f\x42\x54\x08\x12\xfa\x64\xca\x12\x62\xeb\x48\xdf\x06\xac\xc4\x1f\xe6\x06\x94\x00\x32\xdc\xdb\x7a\x46\xe3\xf5\x47\x45\x38\x68\x51\x73\x63\xa9\xe5\xab\x54\x18\x91\xf8\x3f\x79\x5c\x22\xdb\x28\x8e\x43\xe5\x86\xda\x3c\x94\x5b\x8e\x64\xd3\x01\x79\x27\xa0\xaa\x32\x91\x0b\x50\x81\x9c\xf3\x8f\x23\x07\xdd\x59\x2c\x6b\x1b\xda\x17\xac\x31\x82\x20\x02\x86\xd7\x4f\x74\x10\x63\x98\x67\xa7\xef\xde\x5d\x5e\x7b\x3e\xc9\x94\x55\x17\xc4\xcd\xbf\x72\xf1\x2f\x93\x71\x59\x14\x0c\xc6\x87\x80\xa8\x08\xc2\xc7\xe1\x68\x8d\x63\x70\xe1\xc6\xb7\xd6\x29\xb9\x6e\xb0\x9b\x1b\x1e\x8b\xd4\x28\xe2\xf1\x17\xc7\x44\xfc\xe4\x13\x1f\x30\x9f\x13\xb3\xd2\x5d\xf2\xff\x24\x34\x74\x06\xa6\x69\x50\xb3\xb7\x60\xfb\x70\x4f\x1a\x40\x53\x4c\x0c\x9f\x34\xb0\xa1\x1b\x72\xc8\x70\x84\xfb\x06\x7c\xf1\x26\x85\x77\xeb\x84\xed\x38\x4d\x0b\x1a\x64\xe4\x0e\x75\xf5\xeb\x80\x13\x92\x25\x38\x3a\xf1\x39\xac\x6a\x59\x6d\x85\x79\xfe\xd9\xfd\x90\x7c\x4e\x8d\x62\x21\x83\xce\xe9\xd7\xb3\x6e\xcf\x91\x62\xc4\x9b\xbb\xe7\x5f\x93\xc8\x4d\x1a\x0b\xfe\x3e\x61\xfb\x80\xa6\xf2\xa2\x1a\xe8\x28\x22\x01\x8c\xdd\xc6\xb4\x9e\x54\xe5\x05\xeb\xfa\xb7\x66\x42\x1a\x87\xad\xa3\xcc\x22\x1b\xb9\x0c\xe1\x8d\xc8\x9d\x19\x96\x8a\xab\x62\x03\xe8\xc5\x78\x94\x06\xd3\x62\x76\xcd\xe4\x7e\x5b\x86\xa8\x53\x17\x81\x2e\xf4\x39\xfd\x6b\x2b\x84\x67\x4a\x3e\xdf\x21\x48\x83\xfb\x03\x2e\xd3\xf7\x7b\x45\x04\xb0\x62\x1d\x65\xb1\xae\x7a\x12\x93\xf9\xae\x05\x94\x57\xda\x41\xc4\x25\x71\xfd\x40\x52\x96\x33\x53\xd7\x60\x51\xb1\xaa\xab\x3e\x63\xab\xfe\x4e\x42\xca\xa9\xd9\x7c\x2b\x62\x45\x8c\x79\xf1\xe0\xa6\x1f\x7e\x39\x3d\xbf\xf8\x65\xb1\x2b\x2c\xc2\x44\xf1\xa9\xa1\x25\x01\x46\x8b\xf2\x26\x1f\xb6\x66\xbd\xc2\x84\x91\x91\xfe\x8c\x0c\xbd\x8d\x40\x8a\x06\xe1\xef\x4e\xce\x48\xb9\x9f\xf0\xc6\x72\xbe\x61\x31\xf2\xdb\x23\x36\x9d\xb1\x5b\xe5\x8f\x9b\x76\xc6\x2d\x3c\x6c\xe1\x61\x9f\x7b\xc6\xf6\xba\x54\xe3\x32\x22\x6f\x64\xa2\xb7\x25\x2c\x2a\xde\x5d\x97\x90\xb0\xf8\xb0\xf4\x38\x71\x9b\xba\x91\x1f\xa7\xf1\xe5\x76\x28\x47\x44\x2e\x78\x34\x1a\xb7\x9e\x74\x59\x2e\xf4\x12\x47\xb0\x2e\x0a\xb1\x40\x38\x71\x66\x92\x35\x3b\xb2\x59\x6a\x55\x6d\xca\x41\x99\x6d\x1d\xf1\xa1\x16\xa3\xf6\x46\x32\x25\x68\x14\x11\x6a\x10\x5f\x63\x33\xa4\xf9\xcf\xf3\x30\x00\x3c\x91\x4d\x61\x3b\x4d\xb7\xc8\x8d\xdb\x6b\x08\x25\xe6\x38\xd1\x78\x93\xe1\xbe\x49\x80\xa9\x30\xba\x83\xd9\x5b\xc1\xfc\x79\x7f\x9f\xb1\x31\x04\x2c\x79\x7f\x9f\x20\x06\x82\x0e\xb4\x0c\xe7\xa5\x64\x82\x41\x6e\xab\xbd\xdc\x56\xa2\x82\xaa\x94\x40\x46\x24\x2e\xff\x2d\x11\xa4\xb8\x15\xc2\x42\xe3\x0a\x13\x17\x10\x23\xfe\x09\xfc\xaa\x67\x89\x57\x8c\xb3\xcf\xbf\xce\x96\xb4\x47\x6f\xbf\x0e\x24\x60\xbe\xec\xc4\x62\xef\x57\x24\x59\x1d\xd4\x01\xf9\x51\x52\x89\xfd\xfe\x0b\x7e\x0d\x1c\x18\x27\xde\x4e\x4e\x24\xfa\x8b\x6d\x9c\x89\xde\xb1\x61\x66\x94\xb0\xc0\xa9\x6c\x83\x84\xcd\x90\x73\xfc\x3a\xf0\x2c\x45\x78\x7f\x9e\xfe\x3b\xff\x4a\x5f\xf1\x2f\x9d\x0a\x6f\x63\xb7\x47\xb1\xc2\xa3\x8d\x1d\x46\x8a\x81\xe3\x68\xb8\xa5\xdf\xd3\x12\x5e\x12\x60\x5f\xe3\x4a\x0c\x90\x63\x92\x93\xfd\xc0\x3e\x74\x5e\x77\xeb\xed\x3d\xe5\x20\xc0\x9b\x33\xf9\x0c\x0b\x5a\x70\x06\xf0\xa8\x8d\xc4\xb1\x0a\x65\x11\x7d\x5b\x42\xde\xa2\x7f\x5a\x96\x11\x70\xd6\xe7\x30\x79\x0a\x10\x91\xdc\x7f\x4e\xaf\x29\x47\x21\xca\xb0\x28\x51\x50\x94\x8f\x6f\xf5\x60\x1b\x75\xe0\xb8\x9c\x20\x92\xdf\x96\x5d\x4f\x28\x82\xfa\xe8\x7e\x24\x3c\xc6\xaa\x97\x50\x3e\xa4\x12\x0d\x34\x15\xb3\xb6\x24\x13\x18\x0d\xdb\x9c\xc3\xb6\x3e\xe4\x07\xf9\x49\x98\xd6\x6b\x40\xaf\x25\x25\xd9\x08\x44\x16\x50\x84\x2b\x3b\x78\x9c\xeb\x4a\xc3\xef\x2d\x9d\xd8\x00\x16\xd3\x81\x58\xc9\xe8\x16\x52\xba\x1a\x95\xdf\x88\xbc\xff\x92\xa5\x7d\xcb\xcb\xc1\xbf\x52\x0b\xab\x70\xf9\x3b\xda\xfe\x62\x1f\xbb\x90\x94\x2b\x29\x24\xe2\xe7\x9c\x2f\xbc\x59\x9e\xc5\x54\x5e\xf2\x7f\x97\x4b\x04\xa3\xfb\x87\xfe\x27\x8a\x79\xce\x55\xb5\x4c\xae\x3d\xf9\xec\x4c\x78\x9c\x14\x62\x39\x26\x85\xd9\x7e\x9b\xaf\x4a\x17\xc3\x09\x20\xf0\x6d\xbe\x72\xa5\xc0\x24\xfa\xb1\xe3\x7b\x49\xe5\x8f\x68\x3b\xd3\x2f\x2b\xa1\xcd\x40\x67\xa1\x2b\x3a\xe3\x9f\x85\x15\x12\xee\x39\x2a\xd0\xc6\x10\xf5\x1f\x96\xd1\xf9\xc1\xbc\x49\x8c\x62\xef\x58\xba\xe6\xb4\x49\x1d\xa3\x1a\x8e\x9a\x42\x62\x3a\x06\x73\xb4\xe5\xdd\x91\x9a\x74\x30\x70\xec\x3a\xe4\x4a\x4d\x8e\x20\xf4\x20\xc2\xf1\x33\x2d\x59\x70\x38\xae\xdb\x10\xa7\x70\x63\x61\x53\xcc\x81\x4a\x07\x1c\xbf\xc4\x81\x79\xbe\xcb\x42\xf5\xa4\xb9\x4a\xc2\x55\x8a\x6c\x79\xaf\x75\x84\x99\x14\xec\x24\x3b\x52\x65\xc7\x9e\x30\x70\x59\xad\x72\xe1\x32\xc2\x2a\xbc\xc8\x68\x98\x20\x24\x9d\x3e\xfa\xf4\xdd\xe7\x8e\x5b\x76\x86\x88\xa7\x8f\x3e\x7d\xff\x99\x58\x31\xfe\x31\x2f\xb6\xda\xfb\xb6\xbc\xab\x9a\x01\x77\xfe\x34\xe9\x49\x0d\x91\xbf\xef\x38\xca\x57\xb3\x64\xd9\x4d\x82\xf7\x34\x17\x97\xaf\x9a\x6d\xe3\x69\x12\xbf\xc6\x00\xa2\x2a\x3c\x52\x52\xe9\xe2\x62\x90\xad\x5b\x8c\x47\x70\x82\xd4\xa3\x05\x11\xc8\xb2\xa8\xb8\x9d\x5f\xe8\x5f\x5c\x30\x72\xf8\xc4\x85\x2e\x52\x4c\x06\x88\x78\x31\xbb\xb0\x32\x6d\x45\xdd\x26\x00\x75\xba\xca\x2c\x98\x97\x64\xd1\xb9\xec\x1f\x08\x31\xea\xec\x64\x66\x55\xd5\x72\x61\x87\x9b\x65\x13\x18\x4a\xc5\x19\xa4\x8d\x1e\x77\x52\xcc\xf7\xea\xb5\x53\x19\xa4\x0f\xd2\x55\xf5\x28\xd2\x3d\x93\x80\xaf\x07\x1c\xc8\x6f\xc9\xa0\x78\x86\x7f\x04\xa5\xf3\x3c\x64\x0c\x50\xc8\x41\xcb\x89\x47\x5d\xd4\x37\x1d\xe1\x43\x99\x29\x13\xa5\x4d\x4e\xbf\x52\xfc\x1a\x0f\x81\xd9\xe9\x5c\xdf\xd6\xf2\x68\x46\x84\x90\xe5\x86\x44\x21\x09\x47\x94\x33\x3b\x38\xcb\x08\xa3\xea\x2a\x57\x2d\x58\xb1\x1a\x35\x2f\xb5\x5c\xf5\x59\xec\xd8\x36\x40\xa4\x5f\x58\x30\xa3\xd0\x84\xa5\x7e\xd2\xe7\x34\x63\x3e\x3d\xd2\x6f\xec\x9e\xda\xb7\xf1\x24\x4b\xf1\xf6\xf0\xff\xb0\xc0\x5d\xb0\xd0\xa6\x32\x21\x29\x6d\x11\x8d\x6b\x8e\xbf\x78\x70\xe2\xe2\xe4\x1e\xef\x76\x4f\x8b\xe2\xe9\x3d\x35\xfa\x78\x66\xd6\x01\x3d\xb9\x69\x8b\x0e\xe0\x08\x4b\x99\xd9\x88\xb0\x82\x96\x82\x7d\x39\x8f\x3b\x06\x88\xd6\xe9\x23\xc7\x0b\x94\xac\x70\xa4\x85\xc7\x1b\x9c\x0c\xc1\xda\x75\x0d\xe9\xfa\xcd\x9e\xd0\xee\x4c\x3b\x6c\x87\x90\x08\xaa\x70\x26\x23\xcf\x5d\x50\x34\x0a\x13\x7d\x70\x78\x86\x07\xf1\x28\x75\xac\xc6\xee\x8e\xa0\x44\xae\x78\x1e\x45\x48\xc0\x49\x3c\x52\x1d\x37\x99\x01\x1c\xf1\x12\xdf\xed\xbf\x92\x9f\xcc\xf5\x3b\xb7\xfa\x5f\xe2\x28\x73\x17\xcd\x2d\x6f\x21\xa4\x0d\x9f\xbc\xa4\x7c\x51\x70\x41\x04\xa8\x39\x0b\x7f\x7b\xb0\x4d\xd3\xdc\xca\x25\x99\x25\x92\xbe\x84\xb4\x7e\x2b\xe4\x3b\xb8\xaf\xe3\xd2\xa2\xdc\x6f\x9b\x7b\x73\x80\x9c\xe3\x97\x46\x16\x18\xc8\x32\xef\xaa\x55\x78\x89\xfe\x67\xce\x98\x99\x45\xc1\x14\xd0\x66\xff\x10\x01\xe6\x1c\xbf\xd2\xff\xc9\x64\xe3\x40\xd4\xe7\x7e\x69\xf7\xa6\xae\xd8\xf3\xee\x4a\xd5\xe7\x19\x74\xa5\x2e\xda\x69\x5f\xea\x3e\x64\xfd\x60\xde\x30\xe5\x7c\xe7\xc7\xaa\x18\xf5\x8c\x55\x7a\xb6\xa9\x3a\x1f\xe3\xc4\x8d\x3e\xe7\x3e\x8f\xa3\xfc\x1e\xa0\x25\x37\x14\x17\x40\xc4\x8a\x8a\x26\x2f\x2d\x06\x69\x0a\xe6\xec\x7c\x3e\xee\x28\xb6\x02\xb0\x15\xbb\x16\xb7\x22\x62\x8f\x38\x46\x89\xb3\xe2\x80\x27\x22\x7d\xb9\x74\xec\x2f\x1c\x20\xfa\x19\x46\x61\xbe\x6f\x61\xfd\xe2\x3d\x06\x44\x1f\x72\x20\x57\x27\x56\x14\x8d\xa2\x12\x8f\xba\xd8\x07\x73\x77\x5f\x87\x9d\x0e\x63\xc3\x0f\xd7\x13\x69\xdb\x5d\xba\x11\x97\xbc\x0d\x15\x65\x21\x29\xc6\x01\x28\xc0\x7d\x60\x84\x18\x01\x1a\x52\x2e\x89\x7b\x89\xd3\x42\xaa\xe5\x51\x00\x97\xc4\x0a\xc2\x32\xa3\x66\xd1\x65\xbe\xba\x75\x23\x62\xe6\x58\xb6\x3d\x42\xa7\xa6\x68\x67\xd7\xed\x0a\x02\xd6\xb3\xfd\x8b\x27\x30\x2e\xc8\x1d\x6d\xcc\x42\x78\x40\x75\x13\x20\x04\xce\x17\x76\xa6\xdc\x55\xc5\x40\xe4\xcd\x8b\xb1\x78\xf6\x74\xff\x22\xae\x4f\x14\x01\x83\xd3\xd1\x36\x46\x0b\xc7\xda\x6e\x85\x0b\x1f\x1c\x9b\x88\x20\xb9\x1b\x1f\xfb\xd9\xa1\x87\xa3\xbb\x28\xe0\x56\x01\xa9\x1b\xc7\xf9\x42\xe8\xc0\x14\x27\x66\x19\xc6\x4b\x1d\xb0\x0e\x3b\x18\xf6\x36\x66\x01\x69\xc3\x03\x61\x34\x3b\xd3\x94\x78\x36\x46\x66\x35\x1f\x8a\xe7\x86\x66\x15\xda\xe3\xc3\x8b\x2d\xed\xe9\x8c\x85\xdd\x81\xb2\xcb\xce\x33\x55\xd1\x66\x8b\x02\xf3\x39\x0b\xb2\x8f\x57\x18\xb9\x0b\xa3\xb6\x62\x9f\x61\x30\x40\x39\x8d\x8e\xb5\x73\x36\xdb\x86\xfa\x45\x82\x56\x10\x71\x5b\x21\xb6\x32\xd3\x4b\x64\x12\x2d\x94\x8e\x83\x1b\xb5\xf4\xb0\x69\x82\x2b\x0c\x18\x54\x8a\xcd\x1a\x0e\x64\x11\xcf\xf5\x20\x47\x88\xe2\x45\x0f\x94\xd1\x49\x63\x9b\xcf\x8e\x1b\x84\xc3\xef\x06\xe2\x2d\xdb\x8a\x16\x1d\x47\x86\x3e\x85\x70\x79\x75\x8d\x4b\xe6\xc4\x0b\x89\xd1\xac\x99\x5e\xd3\xbf\x6c\x48\x07\xe3\x90\x53\x7e\x91\x80\x23\x01\xd6\x69\xb3\x5a\xb1\xff\xbf\xaa\xf5\x12\xe7\xa1\x34\x3f\x5b\x5d\x6c\x25\x16\x20\x8c\xa4\x30\xbe\x2b\x16\xb5\x14\xaf\x0e\x30\x13\xe8\xf6\xe5\x8a\x44\x96\x45\xfa\x96\x44\x37\xbe\xca\x2e\x8f\x1d\x80\x61\x3e\x68\x80\x73\x33\x81\x25\x8c\xd5\xbf\xc5\xf4\x0c\x75\x6f\xa2\xd8\x41\x8a\x79\xef\x39\xde\x50\xd4\x54\x2e\x20\x89\xa3\xdc\xde\x48\xec\x28\xbb\x1a\x21\xe8\xc9\x05\x7a\x76\x77\xc8\xbd\x62\xb6\x11\xa2\x01\x8d\x82\x80\xc7\x16\xd7\xad\x78\x66\xfb\xb2\x65\x89\xc5\xe2\x85\xc2\x50\x91\xf1\x98\xa0\xdf\xd9\xb8\xde\x08\x5b\xc0\xf2\x41\xac\x95\xbb\x71\x27\xcc\x8b\x59\x22\x34\x17\xb8\x59\x8d\xf7\x72\x1f\x8e\x4f\x3a\xc2\x17\xc2\xb1\x0d\x44\xce\x0f\x5c\x7a\xe1\xb8\xe4\x41\x97\xc3\xa2\xb0\x80\x50\xee\x67\x66\x44\x7a\x20\x33\x82\xc4\x47\x34\x81\xf0\xae\x78\x00\x99\x3f\x7e\xcc\xc2\x14\xdc\xcb\x01\xaf\x23\x4a\xd4\x3d\x85\x16\xc3\x6b\xc2\x42\xbe\x0f\x6c\xa3\x80\xca\xa3\x57\x6e\x30\x43\xbd\x1e\xf7\x8c\xef\x76\xbd\x60\xea\x7d\xf6\x14\x49\xbb\x12\x68\x94\xc7\x8f\x6a\x04\x14\xc7\x0f\x26\x34\x84\x3f\x1c\x7d\x6d\xb9\xce\xdb\xc2\xa2\xdb\x95\xfa\xd9\xf5\x0c\x2a\x0f\x83\x97\xf2\x2d\xc9\xeb\xda\x04\xed\x56\x02\xb9\x65\xbb\x1b\x11\x0a\x3f\x09\x63\x2a\x0a\x73\xfe\x42\xb6\x16\xc7\x85\x10\xc1\x0f\x7b\xde\x03\xb2\xa1\xac\x1f\x4c\xfb\x9b\x3f\x5d\x5d\xbe\x3b\x49\x7f\x7b\x72\x38\x1c\x9e\x70\xf5\x27\x43\xbb\xe5\x08\x8a\x82\xa3\xe7\xff\xc7\xc5\xdb\x93\xb4\xec\x57\xdf\x2e\x48\xb6\xc7\xd6\xf0\x92\xb1\xba\xc5\x6f\xd8\x5d\xcf\x64\xc9\x7a\xdf\x3f\xbf\x65\xf6\x72\x49\x4b\x1f\x30\x09\xaf\x6c\x85\x4c\x9b\x97\xdd\xcc\x4e\x4a\x05\x62\x7e\xf2\x12\x63\x49\x9a\x14\x2e\x69\x22\xe1\x0b\x80\x55\x5b\xbe\x8f\x8c\x0e\x11\x6e\x90\xdf\xb1\x5b\x71\xd8\x16\x42\xa7\xc6\xd1\x68\x76\x8a\xb2\xb2\xf8\x69\xdc\x12\xac\xd1\x78\xaf\xe1\x79\xfa\x27\x56\x03\x19\xa5\x42\x05\x5c\x64\x54\x00\xe0\x90\x96\xb0\xc3\x52\xbd\x70\x5a\x8e\x0b\xbc\x5f\xe0\xbc\xec\x11\x63\x36\x47\x1b\x32\x72\x37\x36\xbf\x9a\xb6\x51\xe9\x5c\xa3\xc6\x5a\xe1\xde\xe2\xed\x8e\xa8\x79\xb4\x07\xf8\x5c\x3a\x8c\xf7\xc1\xf8\x48\xd2\x4d\xe6\xd9\xbd\x6e\xb2\x09\xc7\x57\xc0\x2f\xed\x33\x95\x20\x26\x12\x5d\xd0\x83\x4a\x76\x93\x1e\x24\x14\x26\xd3\x59\x5a\xf0\x37\xc2\x63\xce\x5d\x5e\x7c\x04\x19\xd5\x80\x81\xc4\x24\xc3\x08\xe9\xb6\x24\xe6\x65\xe1\x0e\xe7\xc3\x2c\x0a\x3a\xba\x62\x10\x84\x1a\xb1\x3f\xd1\x7c\x6f\x93\x40\xab\x50\xcc\x90\x56\x2d\x0c\x42\xc2\x35\x46\x85\xe3\x87\x84\x46\xc5\xac\x59\xc8\x4b\x65\x67\x92\x4a\x12\x52\xb1\x6f\x16\xcb\xb6\x39\x74\x1c\xfb\x83\xe7\x56\xd8\x1b\xc1\xbf\xd3\x2b\xfc\x16\x90\x7d\xde\x0a\xcf\x94\x84\x64\x8a\xf5\x9c\x32\x25\x21\x99\xcc\x3a\x26\xcf\x5d\x9c\x53\x09\x5e\x98\xe0\xd7\x67\x38\xe8\x55\x4a\x16\x52\x85\xb6\xcb\x21\xe3\x54\xd6\xf5\x39\xfc\x05\x57\xac\xea\xa0\xd2\x15\xe7\x28\x18\x27\x0d\xa3\x16\x01\xc1\x96\x2d\x0b\x43\xc6\x39\xe7\x83\x21\xc0\x0d\x0d\x8e\xc0\x68\x69\x2a\x1c\x64\x1e\x24\x8c\xa5\x20\x08\x53\xb2\x3d\x84\x22\x08\x48\xfd\xf9\xcd\x3b\xf9\x09\x7f\x88\x06\x65\xc3\x21\xf2\x92\x3d\xd3\xe6\x65\x59\xcc\x79\x5b\xac\x4c\xbc\x56\x22\xff\xdb\x2b\x76\xf8\xe5\x20\x8a\x36\xbf\x81\xa5\x88\xff\xbb\x5c\x3a\x2c\x7d\xb5\xf7\x6d\xf9\x64\x5c\x8d\x90\x23\xa8\xbe\x42\xc2\xe5\xab\xa5\x87\xff\xb9\xbc\x9c\xad\x3a\x01\x0e\x1f\x15\x1e\x23\xe6\xb3\x21\x52\x7c\x44\x8c\xac\x62\x05\x47\x35\xbe\x51\x87\xa0\x0e\x7f\x4b\x19\xb4\x83\x17\xe1\x0c\xa2\xcf\xd7\x2e\x02\x29\x5f\x8b\x1d\xda\x97\x41\x74\xb2\x8b\x21\x51\x1d\x7f\x55\xd9\x54\x36\xef\x93\xa3\x72\xbc\xb9\xb4\x0a\x5d\x7d\x94\xc9\x3e\x3e\xc4\xf6\x77\x9b\xc5\x78\x21\x9c\x3d\x5c\x71\x96\xe2\xb7\x83\xb2\x93\x80\xc9\x25\xdb\x15\xc1\x61\x20\x04\x14\x6e\xdb\x8b\xbc\xbd\xe5\x47\x58\x60\xa1\xb7\x06\x0e\xad\x06\xf3\xf3\xff\x70\xc5\xf4\xf1\x9f\xf7\x92\x9a\x74\x18\x3b\x88\x50\x1b\x32\xa9\x89\x41\xae\x02\x9f\x5e\x72\x71\xe4\xad\xa4\xe4\xd5\xbe\x31\x65\x4c\x43\xf1\xa8\xec\xc9\x78\xdd\x02\x78\x87\xe8\xbf\x94\xff\xe7\x7f\xfd\x6f\x62\xf6\x7b\x52\x52\x7b\x84\x59\xea\x0d\x3f\xbf\xee\x16\x60\xe0\x9f\x6a\x7a\x02\xfd\x3b\x18\x88\xa0\x3f\xd5\x9b\x19\x94\x9a\xd0\x28\xbf\xe3\x62\xf4\x7d\xc5\x36\x80\x98\xc8\x21\x4d\x7a\x32\x87\x75\x72\xdc\x86\x11\x55\xa6\xfa\xbf\xbb\x61\x64\x8b\x8b\x45\x93\xb8\x7d\x25\x3a\x31\x11\xa8\xb9\x00\xe0\x72\x05\x86\x74\x96\xcf\xfe\x16\xab\x5b\x88\xe8\x06\x2b\x44\x48\x0f\x63\x08\x7b\xc5\xe4\x37\x7d\xb4\x4e\x44\x72\xb9\x32\xcf\xac\xc5\xc5\x15\xc9\xbd\x30\x89\x1a\x76\x8d\x84\x1d\x3d\xee\x2c\x74\x58\x5f\x53\x40\x70\xee\x4c\xfc\x76\x18\x93\x4c\x12\xb9\x9a\x84\xe5\xbe\x9b\x1a\xc3\xa3\x37\x2c\xe1\x22\x37\xfd\xda\x8e\xd9\x22\x51\x2b\x2d\xbb\x6d\x39\xc1\x57\x12\xf9\x65\x40\x26\x3f\xb1\xa0\xbd\x41\x06\xed\x6b\x64\xe0\xb2\x2e\x1c\xd3\xfc\x3f\xc1\x25\x27\x55\x02\x39\x57\x53\x9a\x3f\xba\x48\xd5\x46\x4f\xce\x78\xe7\x3d\x2e\x58\x46\x6f\xbc\x70\xe3\x40\xd4\x8c\x81\x7e\x72\xed\x16\x2b\x83\xdc\x87\xa0\xa3\x10\xa8\xc7\x5b\x58\x45\x34\x4a\x9f\xdb\x22\x2e\xa7\x5e\x3c\x25\x19\x5c\xfa\xe4\xb7\x15\x6a\x7e\x2d\xc9\xb0\xec\xba\x09\xb6\xcc\x46\xac\xf7\xbe\x1a\xaf\x17\x69\xb5\x43\xff\x93\xc0\xb3\x73\xbc\xea\xba\xc0\x56\x8c\x3a\x3e\x3b\xdd\x92\x00\xb6\x8d\x84\x45\x34\xc4\xd6\xb1\x9f\x8e\x44\x11\x4d\xaf\x57\xff\xf1\x38\xa2\x69\x1b\x0f\x47\x12\xfd\xb3\xd6\xe3\xf9\xcb\x4f\xae\x78\x7a\x0b\xca\x15\xcd\x5d\x87\xfa\x0f\x18\x6a\x89\xa4\x74\x18\x93\xbd\x7d\xd4\x52\xab\x75\x9c\xa1\xef\xf8\xb5\xf6\x3f\x6e\xaf\x8d\xae\x03\xff\x0e\x8b\x6d\x3c\xe3\x40\x0c\x8e\x46\xe5\x10\xc2\x06\x81\x38\xc8\xf5\x98\x74\xec\xa5\xe2\x88\x67\x8c\x65\xe8\x49\x4c\x2b\x66\xfa\x60\x95\x38\xc2\x35\x1c\xa6\x53\xff\x7d\x4c\xa8\x69\xc9\x12\xdb\x2a\xe6\x92\x2f\x07\xb8\x1e\xb1\xbf\x3d\x14\xe9\x3a\x1e\x25\xf3\x1a\xf7\xf0\x64\x38\xc8\x07\x6b\x84\xc7\x6c\x6c\xe3\xfe\x8f\x44\xbf\xce\xdb\xb8\x58\x71\x38\x98\xaa\x8b\x43\xd9\xf0\xe7\x15\x36\xf6\xc1\x19\xbe\xc4\xbd\xe4\x19\xae\xc7\xdc\x80\xf7\x24\xfb\xf1\xa0\x39\x36\x5e\xb8\xf7\x42\xef\x46\xda\xcd\xca\x51\xbe\x67\x7d\xb8\xd8\xb1\x97\x50\x55\x0f\x24\xbf\x21\xee\xcc\x96\x8c\xeb\xc7\x7d\xc4\x31\xbf\x96\xeb\xcc\x8c\x17\x48\xb8\x7c\xc2\xda\xaa\x44\x08\xe6\x99\xa4\x5c\x89\x3a\xde\xf4\x8a\xbf\x1f\x84\x5c\xdf\x7e\x0e\x4b\x93\xcf\xd5\x53\x4f\x71\xcd\x51\x6c\xb4\x28\xf7\x7b\x5e\xc2\xdc\xdd\x67\xe4\x65\x12\x40\x15\x37\x75\x54\x90\x90\x7f\x1c\xb7\x25\x0f\x61\xe9\xe9\xf9\xae\x39\x24\x72\x74\x2e\xf8\xc6\x71\x2a\xd7\x8d\x35\x27\x1e\x92\xe4\xb1\x8c\xa2\x97\x14\x30\x07\x12\xd3\xe5\x4e\xc2\xb4\x7c\x14\x96\x89\x93\xc3\x05\x64\xda\xeb\x01\x2c\x80\x42\x6a\x40\x24\x1d\xcb\xf5\x21\x71\x2c\xb4\x55\x08\xb0\xbe\x5b\x91\x44\xa3\x7e\x43\x88\xdf\xd3\x31\x8f\x73\xd2\xdd\x89\xd9\x0f\x70\x99\x8c\xa3\xed\x84\x1f\xee\x6c\x1c\xf2\x56\x9f\x1b\x87\x7b\x08\xd2\x8f\x23\x84\xf8\x3d\xe3\xe0\x5e\x9e\xf2\xdb\xd9\x58\xc4\x87\xc6\x43\xca\xa1\xde\x8d\x0b\xad\xd3\xdd\x78\x88\x3e\xae\xf1\x3a\x38\xaf\xe1\xe1\x29\x46\xf2\x07\x9b\x8f\xa6\x07\xa7\x94\x88\xa3\x61\x46\x44\x10\x47\xdc\xec\x05\x8f\x2f\x6f\x71\x5e\x69\xd4\x74\xa0\x81\x8b\xcd\x83\xcd\x9d\x42\x3a\x2e\x2f\xd2\x41\xc6\xba\x50\xb9\x4e\x0a\xbf\x7c\xf0\x0a\x9c\x5d\xcd\x10\xf9\x2e\x3c\x32\x20\xe0\xd9\x4a\x16\xf2\x94\x8a\xdb\xe3\xcc\xea\x82\x5e\xa7\x8d\x39\x56\x0d\x28\xc7\xa2\xa7\x70\xc6\x3b\x43\xe9\x2c\x30\x66\x31\x53\x3e\x31\x99\x55\xbc\x59\x06\xb5\xcb\xef\x23\x07\x1b\x5f\x49\x61\x8d\x2c\xda\x35\xc7\x4f\xec\xe9\x50\xfc\x59\x2d\xef\x93\x38\x82\x39\xea\xae\x5f\x84\x5b\x7d\x4a\x20\x9e\xec\xd6\x6d\xce\xb6\x46\x5b\x6b\x66\x16\x01\x29\xa0\xc1\x1f\xdd\x2c\xdd\x4b\xb1\x9e\x1b\xc0\x83\x41\x0d\x3d\x7e\x88\x29\xfc\x81\x01\x80\x6d\x3c\x3c\x02\xb0\x05\x79\x65\x85\x86\x11\xb0\x80\x87\x06\xa2\x4f\xbc\xfe\xfe\x81\x80\x6f\xfc\xce\x81\x9c\xd8\x28\xf4\x6e\x7f\x51\xcc\xee\xff\x87\xc6\x37\x52\x77\x40\x9c\xd1\xe3\x11\x23\x82\x8f\x9e\xdb\x77\x44\x1f\xf8\x9a\xad\x59\x38\x18\xd4\xf7\xad\xc7\x99\x6f\xaa\xa6\x25\x84\x2a\x5b\xf7\xa1\x7f\x3c\x8e\x39\x67\x8f\x6d\xdf\xde\xab\x48\xc2\x93\x8b\x43\xde\xfd\x1d\x59\x51\xc2\xe0\x2b\x92\x07\x45\x3e\x01\xed\x9f\x8f\x7c\x37\x43\x9e\x1f\x16\xf7\x5f\x17\x7d\xc3\x61\xfa\xb6\xc3\x83\xef\x6a\xc4\xef\x89\x8c\x1f\x96\xe9\xe4\x16\xd3\xda\x64\x39\x7b\xe1\x35\xf1\xce\xf1\xab\x7b\xc2\xc1\x0e\x8f\x5a\xaf\xf8\x4a\x75\x53\x57\xe2\x57\xbd\x90\x14\xdf\xaa\x67\x53\x8c\xda\x61\xf8\x72\x9d\x8f\x9a\xf4\xb3\x83\x71\x91\x6d\x4c\x2a\x08\x48\x3a\x28\x0f\xde\x79\x40\xb4\x5b\x6b\x2f\x57\xf8\x16\x30\x12\x98\x30\x87\x60\x64\x3a\x0e\x34\x3a\x74\x73\x3d\x66\xec\x08\x49\xd5\x0d\xe4\x1e\xe3\x67\x26\xc1\x97\x99\x0b\xbe\xcc\x2c\xef\x3d\x9f\x04\x19\x11\xce\xc3\x82\xbd\x7b\xd1\x2a\xca\x8e\x0f\x3e\x9f\x8f\xf8\xfe\x38\x8b\x83\xfa\xa3\x8c\x7c\x35\xe9\x45\x36\x55\x5c\x4f\xc2\x99\xc2\x1c\x36\x26\xb2\x43\x24\x6a\x3d\xbe\x0b\x1a\x16\xc9\x13\x29\x51\x96\xbe\x29\x1b\xcf\x44\x6c\xaa\x61\xde\xb6\x59\xf3\xf3\x2e\x30\x42\xc6\xd3\x53\xd9\x39\x6e\xd3\xa2\xaa\xa2\x26\x10\xe8\x1a\xe6\xc0\x6f\xd0\xe7\x5d\x5c\x1b\x5b\x30\xcc\xd0\xbb\x81\x13\x40\xd2\xa9\xf3\xd5\x06\xf3\x5f\xcc\x11\x92\xa9\xc6\x8e\x98\xf4\x6b\x12\x33\x90\xf2\xee\x6f\x6a\xaf\xfc\xce\xc2\xf0\xe7\x04\xf0\xa8\x72\x50\xca\x01\x8a\x75\xa6\xd7\x65\x1b\xbd\x0c\xc4\xd1\x8a\xee\x6a\x6c\x7a\x89\x1d\xd7\x3d\x58\x29\x38\xc5\x38\xf2\x5a\xaf\xe3\x6a\x4d\x91\x38\x1e\x38\xce\x7c\xcb\x7a\x30\xaa\x67\x38\xf7\xba\x5a\xe7\xe5\x04\x96\x6e\xcc\x75\xec\x88\xe4\x77\xb5\x31\x1a\xa5\x87\x70\xcd\xfc\xf1\xa1\xc2\x7a\xc6\x37\x14\x60\x91\x8b\x06\x19\xb1\x35\x03\xf9\x42\x0b\xa3\x21\xce\x36\xf1\x07\x06\xc9\x0f\x91\xaf\x57\xee\xe1\xe6\x73\xbe\xb5\xdf\x2e\xf9\x2e\x04\x9f\x61\xa5\x3c\xa8\xdf\xd4\xb1\x05\x6e\xbe\xfa\x43\x23\xc3\x80\x58\xe7\x9e\x6b\xfe\xd8\xd8\xda\xb2\xbb\xaf\x57\x19\x5e\xd1\xee\x36\x1a\xe2\xf7\xa1\x14\x5b\xf9\xe3\x05\xe5\x3d\xcd\xf5\x42\x5a\x89\x8b\xf0\xdd\x63\x79\xd6\xe4\x9b\x15\xe5\xe3\x15\x6f\x3a\xe2\x9e\x80\x27\xa2\xb6\x09\x70\x24\x9e\xf5\xdf\x3e\xd8\xd1\x68\x2e\x01\x43\x0c\x70\xdb\x62\x28\x7d\xf9\xbb\x66\x10\x38\x21\xc3\x69\x30\x19\xe8\xee\x07\xaf\x08\xdf\xef\x62\xc4\x7d\xc3\x77\xf0\xf8\x1d\x06\x7e\x1c\x55\xc3\x29\xf4\x40\xb3\x57\xd2\xd5\x78\x74\x64\x42\x61\xbf\x0f\xac\xd0\xe3\x68\x14\x5f\x9e\x63\x78\x08\xc9\xf7\x1f\x86\x3d\x3e\xc2\xe3\x3e\xfc\xf0\x11\xbf\x43\xa6\x20\x4f\xaa\x64\xeb\xa6\x6d\x68\x79\x60\x22\xb6\x67\x56\x5e\x59\x5e\x37\x53\x01\x26\xf0\xfb\x6c\xd0\x2b\x3a\x56\xe7\x02\xd9\x24\x3f\xf0\x7d\x1d\x5f\xab\x6f\xfa\x7c\x6b\x75\xd8\x02\xb9\x52\xbb\xf5\x35\x17\x58\xad\x53\x2b\x08\x6a\x6a\x9d\x66\xc9\xf1\x74\xa8\xa2\xc0\x97\x9a\x13\xc0\xc2\xcd\xc1\x97\x64\x08\x5d\xc3\x3e\xe3\xa9\xe2\x7e\x85\x64\xa7\x6f\x91\x9d\x5e\x73\xf6\xb4\x07\x1b\x95\xab\x36\x1a\xd4\xb1\x7a\x37\x6d\x39\xa9\xf3\x92\xef\x8b\x8d\xe1\x0d\x73\x9b\x32\xdf\x4f\xf0\xf6\x9a\x32\x27\x58\x03\xe4\x14\x01\x80\x3d\x8e\x85\xb0\x56\x55\x40\xb1\x0a\x6b\xbc\xa1\xac\x63\xd0\x78\x65\x6e\x0c\x8f\xcf\xe3\x1c\xa9\xa1\x67\xf6\x78\x54\xea\xb3\x99\x8c\xaa\x59\xfe\x1d\x1f\x93\x51\xe8\x4b\xf9\x19\x40\x2d\x9b\xa6\xe7\x37\xbb\xf7\x2c\x6e\xad\x6e\x1d\x9a\x7e\xb6\x7c\x16\xb7\x56\xb7\x13\x4c\x09\xf4\x14\x55\x02\x7d\x1c\x57\x3b\xbe\xac\x4a\x7d\xb5\xc3\xaa\x1f\x68\x83\xba\x0e\x2f\xae\xf8\xe2\xeb\x95\x2b\x98\xf4\x38\xa9\x19\x52\xe8\xb8\xf2\x5c\xcf\x2b\x12\x22\xca\xd9\xae\xcf\xb8\xe4\xc1\xbe\x27\x75\xc3\xce\x27\xd5\xe7\x76\x0a\x5e\x11\x63\xa3\xf3\x72\x58\xdd\x96\x3d\xc7\xe4\x6e\x32\x78\x98\xc3\xb6\xde\x1b\x58\xfa\x33\xc0\xd2\xd7\x04\x96\x5e\xcb\x17\x61\xa6\xad\xd2\xa1\xb3\x2b\xfb\x1c\x91\x02\x41\x2b\xaf\xce\x68\x05\x38\xbb\xc8\xe7\x6a\xc1\x3a\x93\xa9\x94\xad\xbb\x90\x05\x9f\xa0\x05\xfd\x56\x8d\x08\xde\xa7\x0e\x64\xae\x35\x56\x03\xe4\xf4\x5b\xdd\xaf\xe4\x89\x2c\x56\x0c\x68\x0c\x1f\x24\x27\x80\xc5\xb3\x2a\x04\x6b\x3c\x12\x4e\x71\xbc\xaf\x42\xe0\xd7\x31\xa3\x14\x0e\xe6\x81\x85\x71\x11\xdc\xfb\x7c\xe8\x66\x01\xf7\xb9\x6c\xa6\xa3\x90\xd6\xbd\x01\x5a\xcf\x63\x38\xed\xb4\x13\x54\x0a\x5b\x11\x4d\x4d\x62\x37\xf5\x0d\x14\xfb\x5a\x1d\x42\x37\xed\x05\x14\x7c\xb3\x4e\x60\xbf\xf8\x09\x06\x05\x13\xe9\x15\x32\xab\xe4\x98\xbc\x85\x07\x42\x2d\x6d\x65\xb0\x44\xa9\x4d\x4f\xf3\xa2\xef\x41\x68\x9e\xdd\x5c\x71\xf7\xef\x34\x3f\xbc\x48\xa6\x2d\x42\x30\xb5\x90\x95\xf8\xa9\x6d\x8d\x5c\x11\x40\xb9\xf4\x2d\x9e\xa4\x6d\x58\x19\x4a\x83\xfb\x58\x59\xd4\xc0\x5b\xe8\x13\xc1\xdc\x8e\x3e\xb6\x67\xaf\x64\xfc\xce\xf7\xf6\xfc\x6c\x02\x1c\xc3\xd1\x1d\x63\xb7\xea\xb2\x10\x9d\xe3\x47\x36\xf2\x11\x7a\x19\x5c\x31\x1c\x81\xc2\xf3\x1d\x7e\x5c\x22\x70\x3f\x1a\xca\xe1\xe8\xc3\x47\x6d\x34\x50\x6a\xd2\x42\x50\x27\xf8\x12\x10\x87\x9b\xca\x75\x8f\x39\x14\x79\xeb\xa0\x61\xc8\xbd\x5b\x08\xe8\x07\x5d\x4b\x31\x2e\xe6\x9f\x53\xfd\x7f\xf2\xa2\x6c\x38\x00\xff\xae\xec\x91\xfe\xff\x25\xef\xca\x8e\x2d\xb3\xee\x61\x59\x3c\x9c\xb9\x40\xf0\x75\xbc\x8f\x23\xc7\x55\xb4\x9f\x51\x23\xdc\xa7\xc8\x88\x5d\xf9\xc8\xf2\x66\x5f\xb3\xf8\x8a\xd5\x06\x5b\x74\xdc\x5f\x10\x2f\x1f\xf5\x26\x35\xa6\x8f\xb7\xc4\x43\x90\x9c\xa9\xb7\x48\xf2\xd5\x1a\x91\xea\x7b\x03\xa5\x5a\x8f\x16\x30\x49\xa8\x8b\xc6\xf2\x26\x1f\xbd\xe4\x4d\xad\x5b\x7b\x34\xe4\x78\x73\x47\xa3\x96\x4a\x72\xcf\xd2\x42\xf1\x67\x99\x89\x02\x06\x53\x91\x9c\xf0\xde\xb2\xe4\xc8\x43\x8a\x78\x97\x5c\x52\x9a\x3f\x8d\xc2\x08\x46\xac\xcd\xc4\x5d\x07\x8d\x02\x68\x96\x57\x05\x63\x19\xc7\xff\x49\x6e\xf8\x8d\x4b\xc9\xd1\xcf\x05\xe2\x4b\x81\x92\xb3\x44\xfc\x10\xa2\xdc\xd8\xf8\x74\xfe\xce\xba\xed\xfb\xb6\x5a\x0e\xfd\xfc\x13\xa1\xae\x74\x02\x6d\x6e\x7f\xa6\xdd\xf4\x0b\xb0\xdd\x60\x0d\x5f\x0d\x5f\x6a\x77\xf4\xf1\x87\x11\x9c\xdc\xce\x4e\xdd\xb3\x02\x2f\xf1\x5b\x0b\x77\xcc\x23\xb3\x8e\xbf\x4a\x7b\x41\x2c\xa6\x48\xaf\x4e\xb5\x04\x1f\x05\x54\xeb\x08\xbe\x1d\x78\x74\x15\x18\x72\xf2\x91\x41\x5f\xa4\x78\x45\x51\x80\x5c\x7d\x6a\xb4\x97\x57\x20\xe5\x99\xcd\xeb\xb7\x57\x94\x5c\xb5\xf7\xe2\x30\xd2\x75\x61\x8f\x81\x7e\x8a\xcf\xde\x5e\x3f\xbd\x70\x1f\x3b\x0c\x56\x5a\x9b\xe4\x0f\xa9\x65\xc1\x37\x82\xb5\x71\x1a\x7f\xa3\x9f\x09\x52\x83\xa9\xd2\x2a\x3f\x54\xcd\x17\x62\xf7\x9d\xb5\x13\x5c\x04\x1d\x91\xbd\x3e\x49\xaa\x2b\x30\x39\x8c\x62\xcb\x2d\x0e\x1a\x77\x28\x85\xf4\x1e\x9e\x95\x51\x07\xbf\xf3\x01\xd1\xb0\xad\xe0\x50\x79\x60\xac\xb3\x77\xb9\xe2\xd7\x6f\x42\xc0\x4c\xf6\x9f\xbd\x7a\x15\x35\xec\x9c\x4c\xd3\x0a\xd1\xf3\x57\x51\xa5\xf9\x30\x80\x87\x1e\xbe\x12\xa3\x80\x29\xe3\xce\xe6\xad\xca\x78\x6c\xfa\x56\xd8\x87\xbe\xb3\x1a\x80\xdc\x89\x6b\x2d\x80\xb0\x2f\x44\x07\x40\xf3\xdf\xf9\x54\x80\x31\x4f\xd1\xec\xd1\xe7\x1f\xa3\xef\x3e\x5a\x4d\xfb\x8c\x55\x33\x88\xb6\x8d\xcf\xcc\xe9\x1d\x8e\x0f\xc8\x64\x41\xcb\xc0\xe7\xbe\xb5\x1a\x14\x69\x47\x5c\x14\x76\x82\x13\x8a\x3f\x3c\xf7\xe0\x77\x61\x0d\xc1\x6c\x72\x5f\x65\xf2\xf4\x49\x50\x07\x06\xff\x15\xc2\x78\xa7\x95\x68\xdc\xd3\x1a\x34\xee\x23\xe0\xe2\x04\x36\x7e\x7e\x85\x5f\xc2\x42\xdc\x88\x39\xb4\x4c\xa9\xc8\x26\x2c\x79\xe3\x77\xf5\x43\x1c\x14\x4b\x4f\x18\xee\x5b\x7d\xb3\xa4\xe1\xbf\x75\x1c\x76\xcb\x5f\x29\x0e\x0e\x02\x9f\x1b\x1e\x69\x3e\x37\xfc\x18\xb2\xcf\x9d\xfb\x3a\xf1\xb4\xd4\x7b\xe6\xbf\xe1\xd8\x94\xaf\xf7\xf2\xc1\xe6\xee\x6b\x7c\x92\xf2\xdb\xa0\x46\xf8\x65\xe3\x38\x77\xdc\x86\x7e\x48\x71\xd4\x84\x31\xcb\x68\xcb\x54\xab\x23\x88\x71\xdf\x53\x8b\x5e\x9a\x05\xfa\xe5\xbb\x9c\x7a\xac\x44\x1f\x52\x1d\x13\xb3\x67\xb6\x8e\x94\x43\x46\x6b\x03\xe3\x90\xf6\xe8\x0b\xa3\xfa\x55\x2b\x8d\x6d\x77\xdf\x70\xfb\x19\xd9\x7e\x84\xb3\x9f\x0f\x1d\x7f\x37\x94\x83\xce\xad\x4a\xfc\xa1\xd7\xe9\x17\x5e\x15\xcc\x9e\xbb\x86\x45\x60\xf2\x32\x36\x4c\x01\xfa\x30\xb6\x31\x06\xb9\x42\xc2\xf1\xdd\xd9\x56\xcd\xdf\x72\xcd\x04\x51\xde\xe9\x5b\xd8\xbb\xdd\xb8\xa3\x8f\x4d\x45\x95\xe4\x1b\x57\xee\x83\x36\xd3\xca\x76\x1b\xca\x2d\xa2\xdd\xee\x98\x5d\xc4\x5f\x87\x72\xa0\xc6\xe5\x2b\x54\xfc\x82\x14\xfd\x4c\xdf\xe2\xa7\x5b\x2b\xb9\xb6\x01\x6d\x58\xbe\xb0\xaf\x17\x39\xa0\x14\x53\x8e\x5b\xa5\xdb\x6a\xcf\xc7\xb2\x7e\x47\x83\x17\x87\x72\x70\x36\xff\x19\x39\x21\x92\x43\xce\x7c\x81\xdf\xf3\x03\x54\xd8\xa9\x14\x18\x97\x1b\x41\x11\x9d\x37\x01\x31\xbd\xfe\xe5\xed\xe5\x08\x72\x66\x83\x6a\xc9\xcc\x86\x8e\xbf\x32\x1c\x6e\x5f\x71\xe5\xb8\x29\xc0\x7d\x33\x3f\x03\x81\x3c\x3a\x01\xa1\x21\xef\x99\x05\xf1\xcc\x36\xa4\xd4\x56\xe4\x7b\xd9\x31\x4a\x67\xf2\x3b\x06\x0a\x9e\xd5\x13\x28\x7b\x55\x6f\xd2\x6b\x1d\xf6\x59\x8b\x1b\xc2\xf3\x03\x09\x11\x08\xf8\x81\x84\xda\xce\x0e\xcf\xa0\x49\x65\xbd\xab\x0a\x15\x1c\x05\xfe\xbd\x66\x19\xa8\x81\xf8\x96\x0d\x42\x9b\x76\xc3\x24\xc2\xad\x9c\xf4\x76\x86\x5f\xd1\xd2\xe9\x46\xe4\xfd\x22\xb0\x7e\x1b\xf2\x3b\xdb\x52\xc3\x80\xd7\x2b\x87\x18\x33\x28\xbd\x3a\xf3\x0f\x0e\xc2\xf6\x34\x9a\xcc\xb6\xba\x29\x9d\xa5\x4a\x67\xf3\x96\xf2\x22\x60\xfe\x3c\x78\x67\x17\xce\xe4\x4b\x67\xfc\x81\xe1\xd1\x24\xc2\xa6\x74\x26\x93\x96\xf6\x15\xac\x87\x01\x5e\x24\x63\x1e\xe3\x06\xad\x7c\x3b\x00\x57\xc6\x3d\x66\xb7\xf6\xad\x8f\x60\x87\xf8\x87\xf7\xfd\xf9\xec\x7a\xe7\x73\x79\xb6\x67\x86\xd2\x93\x8b\x61\x70\x72\x59\xb4\xc0\x62\xd5\xca\xf3\x16\xfc\xef\x9a\xfd\xb8\xae\x24\xdc\x7b\x96\xd7\x11\xed\x15\x83\x5c\xb6\xd1\xa4\x87\xf7\xd1\x05\x82\x26\x2b\x98\x79\xc7\x29\x06\x28\x7f\x2b\x57\x43\xe0\x56\xf8\x45\x7e\xab\x1d\xcf\x37\xd3\x58\x70\xe0\x50\xe3\xa5\xa9\xf7\x92\x13\xc0\xcc\x3d\x6f\x63\x43\x47\x88\xa3\x85\x3a\x1e\xed\xdf\x75\x0f\xf5\x87\xa1\x2c\xe2\xc2\xa2\x1c\xe4\x67\xb6\x95\xbb\x17\xa3\x20\x0c\x83\x0d\xa5\x90\x30\x2f\xfb\x2e\x92\xd3\x5c\xd9\xcc\xc0\xad\xa8\xc1\x37\xb0\xf7\x8b\x00\x16\xa2\x78\xf0\x06\xb4\x8c\x41\xca\xbf\x14\x62\x95\x7c\x92\x98\x86\xcf\xa3\x57\x41\xcd\xfc\x18\x84\xd1\x44\xf7\x7f\x1e\xc9\xdb\x5c\x72\x49\xca\x2a\x71\x04\x91\xbc\x2d\x16\xc0\x3e\xed\xda\xd5\xd3\x47\xe1\x8b\x5e\x6c\x11\xf2\x00\xfc\x02\x18\x17\xfe\xa0\xcf\x7d\xe9\x38\x60\xd4\xa0\x36\xff\xa6\x2f\x85\xc9\xef\xb0\x5d\x31\x7b\x48\xd3\xdd\x7f\x72\xad\xff\x2d\xd1\x60\x0b\xdf\x84\x66\xe0\x05\xf0\x3f\xd2\x90\x7b\x23\x41\xe7\x67\xbf\x47\x78\xc1\x95\x54\x46\x88\xdc\x4d\x1d\xbf\xc4\xae\xa8\xc2\xcd\x56\xbe\x89\xe3\xf1\x44\x3f\x1e\x46\x54\xd4\xd4\x04\x51\xcd\x8e\xef\x20\x66\xdf\x67\xfe\x79\x41\x5c\xc2\x93\x82\xaa\xd3\x57\x89\xe4\x99\xfb\xef\xdd\xd3\x82\xc9\xa7\xbe\x69\xb6\x9f\x93\x7c\xcd\x73\xa2\xbf\x09\xde\xee\x94\x78\x5d\xc4\xa4\x51\x32\x91\x9f\x9c\xfa\x8e\x1b\xfe\x8e\xb4\x54\x62\x20\x78\x1a\xeb\xbb\x1d\x32\xe4\x33\xab\xc8\xd8\x20\x83\x1f\x7d\xc5\xcf\x02\x3f\x8b\xfc\x1e\xbf\x0e\xf8\x75\x28\xcb\x5b\xa9\x0c\x0e\x43\xd5\x49\xeb\xdb\x20\xe7\x1e\xbf\xf9\x95\x27\x7c\xe3\x1a\xfd\xe8\x7b\x6a\xf6\x03\x0f\x72\xc9\x57\x5d\x91\x6f\x3f\x28\x5f\xbe\x58\xf0\xdc\x7f\xbc\xe0\x11\xfb\xc7\xee\x35\x0b\x29\xca\xe1\xee\x35\x4b\x92\x8f\xc0\x26\x48\x97\xd5\x06\x25\x4d\xb9\x3c\x0e\xcd\x94\x24\xe5\xb5\xf9\x21\xf3\xe3\xd2\x14\x72\xfd\xa8\x34\x95\xfc\xdf\x00\x00\x00\xff\xff\x63\x51\x91\xf6\x9b\x89\x00\x00") func confLocaleLocale_enUsIniBytes() ([]byte, error) { return bindataRead( @@ -787,7 +787,7 @@ func confLocaleLocale_enUsIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 34937, mode: os.FileMode(420), modTime: time.Unix(1438770305, 0)} + info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 35227, mode: os.FileMode(420), modTime: time.Unix(1438776441, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/public/css/gogs.min.css b/public/css/gogs.min.css index 3d634bd2..eab009f7 100644 --- a/public/css/gogs.min.css +++ b/public/css/gogs.min.css @@ -1 +1 @@ -@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('embedded-opentype'),url(../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('woff'),url(../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('truetype'),url(../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons)format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gist-private:before,.octicon-git-fork-private:before,.octicon-lock:before,.octicon-mirror-private:before{content:'\f06a'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-markdown:before{content:'\f0c9'}.octicon-megaphone:before{content:'\f077'}.octicon-mention:before{content:'\f0be'}.octicon-microscope:before{content:'\f089'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-public:before,.octicon-mirror:before{content:'\f024'}.octicon-mortar-board:before{content:'\f0d7'}.octicon-move-down:before{content:'\f0a8'}.octicon-move-left:before{content:'\f074'}.octicon-move-right:before{content:'\f0a9'}.octicon-move-up:before{content:'\f0a7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-package:before{content:'\f0c4'}.octicon-paintcan:before{content:'\f0d1'}.octicon-pencil:before{content:'\f058'}.octicon-person-add:before,.octicon-person-follow:before,.octicon-person:before{content:'\f018'}.octicon-pin:before{content:'\f041'}.octicon-playback-fast-forward:before{content:'\f0bd'}.octicon-playback-pause:before{content:'\f0bb'}.octicon-playback-play:before{content:'\f0bf'}.octicon-playback-rewind:before{content:'\f0bc'}.octicon-plug:before{content:'\f0d4'}.octicon-file-add:before,.octicon-file-directory-create:before,.octicon-gist-new:before,.octicon-plus:before,.octicon-repo-create:before{content:'\f05d'}.octicon-podium:before{content:'\f0af'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-puzzle:before{content:'\f0c0'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-repo-delete:before,.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-gist-fork:before,.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search-save:before,.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-log-in:before,.octicon-sign-in:before{content:'\f036'}.octicon-log-out:before,.octicon-sign-out:before{content:'\f032'}.octicon-split:before{content:'\f0c6'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star-add:before,.octicon-star-delete:before,.octicon-star:before{content:'\f02a'}.octicon-steps:before{content:'\f0c7'}.octicon-stop:before{content:'\f08f'}.octicon-repo-sync:before,.octicon-sync:before{content:'\f087'}.octicon-tag-add:before,.octicon-tag-remove:before,.octicon-tag:before{content:'\f015'}.octicon-telescope:before{content:'\f088'}.octicon-terminal:before{content:'\f0c8'}.octicon-three-bars:before{content:'\f05e'}.octicon-thumbsdown:before{content:'\f0db'}.octicon-thumbsup:before{content:'\f0da'}.octicon-tools:before{content:'\f031'}.octicon-trashcan:before{content:'\f0d0'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-unmute:before{content:'\f0ba'}.octicon-versions:before{content:'\f064'}.octicon-remove-close:before,.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}body{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif,'微软雅黑';background-color:#FAFAFA}img{border-radius:3px}.full.height{padding:0;margin:0 0 -87px 0;min-height:100%}.following.bar{z-index:900;left:0;width:100%;padding:.7em 0}.following.bar.light{background-color:#fff;border-bottom:1px solid #DDD;box-shadow:0 2px 3px rgba(0,0,0,.04)}.following.bar .ui.secondary.menu{height:30px}.following.bar .column .menu{margin-top:0}.following.bar .brand{float:left;margin-right:5px}.following.bar .head.link.item{padding-right:0!important}.following.bar .head.link.item .dropdown.icon,.following.bar .head.link.item .menu .octicon{margin-right:5px}.following.bar .user.avatar{padding:0;margin-top:1px}.following.bar .searchbox{background-color:#f4f4f4!important}.following.bar .searchbox:focus{background-color:#e9e9e9!important}.following.bar .octicon{width:16px;opacity:1!important;text-align:center}.ui.left{float:left}.ui.right{float:right}footer{margin-top:40px!important;background-color:#fff;border-top:1px solid #d6d6d6;clear:both;width:100%;color:#888}footer .fa{width:16px;text-align:center;color:#428bca}footer .ui.language.dropdown{z-index:10000}footer .links>*{border-left:1px solid #d6d6d6;padding-left:8px;margin-left:5px}footer .links>:first-child{border-left:none}.hide{display:none}.center{text-align:center}.text-error{color:#d95c5c!important}.img-1{width:2px;height:2px}.img-2{width:4px;height:4px}.img-3{width:6px;height:6px}.img-4{width:8px;height:8px}.img-5{width:10px;height:10px}.img-6{width:12px;height:12px}.img-7{width:14px;height:14px}.img-8{width:16px;height:16px}.img-9{width:18px;height:18px}.img-10{width:20px;height:20px}.img-11{width:22px;height:22px}.img-12{width:24px;height:24px}.img-13{width:26px;height:26px}.img-14{width:28px;height:28px}.img-15{width:30px;height:30px}.img-16{width:32px;height:32px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.home{padding-bottom:120px}.home .logo{max-width:250px}.home .hero h1,.home .hero h2{font-family:'PT Sans Narrow',sans-serif}.home .hero h1{font-size:7em}.home .hero h2{font-size:4em}.home .hero .octicon{color:#d9453d;font-size:60px;margin-right:10px}.home .hero.header{font-size:24px}.home p.large{font-size:20px}.home .stackable{padding-top:30px}.home a{color:#d9453d}.install{padding-top:45px;padding-bottom:120px}.install .attached.header{background:#f0f0f0}.install form label{text-align:right;width:40%!important}.install form input{width:35%!important}.install form .field{text-align:left}.install form .field .help{margin-left:41%}.install form .field.optional .title{margin-left:38%}.install .ui .checkbox{margin-left:40%!important}.install .ui .checkbox label{width:auto!important}.form .help{color:#999;padding-top:.6em;padding-bottom:.6em;display:inline-block}.repository{padding-top:15px;padding-bottom:120px}.repository .head{height:75px;padding-top:20px;background-color:#FCFCFC}.repository .head .mega-octicon{width:30px}.repository .head .fork-flag,.repository .head a{font-weight:300}.repository .head .ui.label{margin-top:5px;vertical-align:top}.repository .head .fork-flag{margin-left:38px;display:block;font-size:11px;line-height:10px;white-space:nowrap}.repository .head .button{margin-left:10px}.repository .head .button i{margin-right:5px}.repository .head .num{font-weight:700}.repository .head .octicon{height:5px}.repository .navbar{height:60px;padding-top:20px}.repository .navbar .ui.secondary.menu .item{margin-left:-10px;margin-top:-7px}.repository .navbar .ui.secondary.menu .item>.input .color-picker,.repository .navbar .ui.secondary.menu .item>.input .new-label-input{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.repository .navbar .ui.secondary.menu .item.input{margin-right:-7px}.repository .navbar .ui.secondary.menu .item .new-label-input{width:150px}.repository .navbar .ui.secondary.menu .item .color-picker{height:35px;width:auto;padding-left:30px}.repository .navbar .ui.secondary.menu .item .minicolors-swatch.minicolors-sprite{top:10px;left:10px;width:15px;height:15px}.repository .navbar .ui.secondary.menu .item.precolors{padding-left:0;padding-right:0;margin-right:10px;width:120px}.repository .navbar .ui.secondary.menu .item.precolors .color{float:left;width:15px;height:15px}.repository .filter.menu .label.color{margin-left:17px;padding:0 8px}.repository .filter.menu .octicon{float:left;margin-left:-5px;margin-right:-7px}.repository .filter.menu .menu{max-height:300px;overflow-x:auto}.repository .type.item .menu{right:0!important;left:auto!important}.repository .page.buttons{padding-top:15px}.repository .issue.list{clear:both;list-style:none}.repository .issue.list>.item{padding-top:15px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .issue.list>.item .title{color:#444;font-size:15px;font-weight:700;margin:0 6px}.repository .issue.list>.item .title:hover{color:#000}.repository .issue.list>.item .comment{padding-right:10px;color:#666}.repository .issue.list>.item .desc{padding-top:5px;color:#999}.repository .label.list{clear:both;list-style:none}.repository .label.list .item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .label.list .item a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .label.list .item a:hover{color:#000}.repository .label.list .item a.open-issues{margin-right:30px}.repository .milestone.list{clear:both;list-style:none}.repository .milestone.list>.item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .milestone.list>.item>a{padding-top:5px;padding-right:10px;color:#000}.repository .milestone.list>.item>a:hover{color:#4078c0}.repository .milestone.list>.item .ui.progress{width:40%;padding:0;border:0;margin:0}.repository .milestone.list>.item .ui.progress .bar{height:20px}.repository .milestone.list>.item .meta{color:#999;padding-top:5px}.repository .milestone.list>.item .meta .issue-stats .octicon{padding-left:5px}.repository .milestone.list>.item .meta .overdue{color:red}.repository .milestone.list>.item .operate{margin-top:-15px}.repository .milestone.list>.item .operate>a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .milestone.list>.item .operate>a:hover{color:#000}.repository .milestone.list>.item .content{padding-top:10px}.repository.new.milestone textarea{height:200px}.edit-label.modal .color-picker{margin-top:-8px!important;height:35px;width:auto!important;padding-left:30px!important}.edit-label.modal .minicolors-swatch.minicolors-sprite{top:1px;left:10px;width:15px;height:15px}.edit-label.modal .precolors{margin-bottom:-11px!important;padding-left:0!important;padding-right:0!important;margin-right:10px!important;width:120px!important}.edit-label.modal .precolors .color{float:left;margin:0!important;width:15px;height:15px} \ No newline at end of file +@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('embedded-opentype'),url(../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('woff'),url(../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('truetype'),url(../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons)format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gist-private:before,.octicon-git-fork-private:before,.octicon-lock:before,.octicon-mirror-private:before{content:'\f06a'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-markdown:before{content:'\f0c9'}.octicon-megaphone:before{content:'\f077'}.octicon-mention:before{content:'\f0be'}.octicon-microscope:before{content:'\f089'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-public:before,.octicon-mirror:before{content:'\f024'}.octicon-mortar-board:before{content:'\f0d7'}.octicon-move-down:before{content:'\f0a8'}.octicon-move-left:before{content:'\f074'}.octicon-move-right:before{content:'\f0a9'}.octicon-move-up:before{content:'\f0a7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-package:before{content:'\f0c4'}.octicon-paintcan:before{content:'\f0d1'}.octicon-pencil:before{content:'\f058'}.octicon-person-add:before,.octicon-person-follow:before,.octicon-person:before{content:'\f018'}.octicon-pin:before{content:'\f041'}.octicon-playback-fast-forward:before{content:'\f0bd'}.octicon-playback-pause:before{content:'\f0bb'}.octicon-playback-play:before{content:'\f0bf'}.octicon-playback-rewind:before{content:'\f0bc'}.octicon-plug:before{content:'\f0d4'}.octicon-file-add:before,.octicon-file-directory-create:before,.octicon-gist-new:before,.octicon-plus:before,.octicon-repo-create:before{content:'\f05d'}.octicon-podium:before{content:'\f0af'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-puzzle:before{content:'\f0c0'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-repo-delete:before,.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-gist-fork:before,.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search-save:before,.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-log-in:before,.octicon-sign-in:before{content:'\f036'}.octicon-log-out:before,.octicon-sign-out:before{content:'\f032'}.octicon-split:before{content:'\f0c6'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star-add:before,.octicon-star-delete:before,.octicon-star:before{content:'\f02a'}.octicon-steps:before{content:'\f0c7'}.octicon-stop:before{content:'\f08f'}.octicon-repo-sync:before,.octicon-sync:before{content:'\f087'}.octicon-tag-add:before,.octicon-tag-remove:before,.octicon-tag:before{content:'\f015'}.octicon-telescope:before{content:'\f088'}.octicon-terminal:before{content:'\f0c8'}.octicon-three-bars:before{content:'\f05e'}.octicon-thumbsdown:before{content:'\f0db'}.octicon-thumbsup:before{content:'\f0da'}.octicon-tools:before{content:'\f031'}.octicon-trashcan:before{content:'\f0d0'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-unmute:before{content:'\f0ba'}.octicon-versions:before{content:'\f064'}.octicon-remove-close:before,.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}body{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif,'微软雅黑';background-color:#FAFAFA}img{border-radius:3px}.full.height{padding:0;margin:0 0 -87px 0;min-height:100%}.following.bar{z-index:900;left:0;width:100%;padding:.7em 0}.following.bar.light{background-color:#fff;border-bottom:1px solid #DDD;box-shadow:0 2px 3px rgba(0,0,0,.04)}.following.bar .ui.secondary.menu{height:30px}.following.bar .column .menu{margin-top:0}.following.bar .brand{float:left;margin-right:5px}.following.bar .head.link.item{padding-right:0!important}.following.bar .head.link.item .dropdown.icon,.following.bar .head.link.item .menu .octicon{margin-right:5px}.following.bar .user.avatar{padding:0;margin-top:1px}.following.bar .searchbox{background-color:#f4f4f4!important}.following.bar .searchbox:focus{background-color:#e9e9e9!important}.following.bar .octicon{width:16px;opacity:1!important;text-align:center}.ui.left{float:left}.ui.right{float:right}footer{margin-top:40px!important;background-color:#fff;border-top:1px solid #d6d6d6;clear:both;width:100%;color:#888}footer .fa{width:16px;text-align:center;color:#428bca}footer .ui.language.dropdown{z-index:10000}footer .links>*{border-left:1px solid #d6d6d6;padding-left:8px;margin-left:5px}footer .links>:first-child{border-left:none}.hide{display:none}.center{text-align:center}.text-error{color:#d95c5c!important}.img-1{width:2px;height:2px}.img-2{width:4px;height:4px}.img-3{width:6px;height:6px}.img-4{width:8px;height:8px}.img-5{width:10px;height:10px}.img-6{width:12px;height:12px}.img-7{width:14px;height:14px}.img-8{width:16px;height:16px}.img-9{width:18px;height:18px}.img-10{width:20px;height:20px}.img-11{width:22px;height:22px}.img-12{width:24px;height:24px}.img-13{width:26px;height:26px}.img-14{width:28px;height:28px}.img-15{width:30px;height:30px}.img-16{width:32px;height:32px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.home{padding-bottom:120px}.home .logo{max-width:250px}.home .hero h1,.home .hero h2{font-family:'PT Sans Narrow',sans-serif}.home .hero h1{font-size:7em}.home .hero h2{font-size:4em}.home .hero .octicon{color:#d9453d;font-size:60px;margin-right:10px}.home .hero.header{font-size:24px}.home p.large{font-size:20px}.home .stackable{padding-top:30px}.home a{color:#d9453d}.install{padding-top:45px;padding-bottom:120px}.install .attached.header{background:#f0f0f0}.install form label{text-align:right;width:40%!important}.install form input{width:35%!important}.install form .field{text-align:left}.install form .field .help{margin-left:41%}.install form .field.optional .title{margin-left:38%}.install .ui .checkbox{margin-left:40%!important}.install .ui .checkbox label{width:auto!important}.form .help{color:#999;padding-top:.6em;padding-bottom:.6em;display:inline-block}.repository{padding-top:15px;padding-bottom:120px}.repository .head{height:75px;padding-top:20px;background-color:#FCFCFC}.repository .head .mega-octicon{width:30px}.repository .head .fork-flag,.repository .head a{font-weight:300}.repository .head .ui.label{margin-top:5px;vertical-align:top}.repository .head .fork-flag{margin-left:38px;display:block;font-size:11px;line-height:10px;white-space:nowrap}.repository .head .button{margin-left:10px}.repository .head .button i{margin-right:5px}.repository .head .num{font-weight:700}.repository .head .octicon{height:5px}.repository .navbar{height:60px;padding-top:20px}.repository .navbar .ui.secondary.menu .item{margin-left:-10px;margin-top:-7px}.repository .navbar .ui.secondary.menu .item>.input .color-picker,.repository .navbar .ui.secondary.menu .item>.input .new-label-input{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.repository .navbar .ui.secondary.menu .item.input{margin-right:-7px}.repository .navbar .ui.secondary.menu .item .new-label-input{width:150px}.repository .navbar .ui.secondary.menu .item .color-picker{height:35px;width:auto;padding-left:30px}.repository .navbar .ui.secondary.menu .item .minicolors-swatch.minicolors-sprite{top:10px;left:10px;width:15px;height:15px}.repository .navbar .ui.secondary.menu .item.precolors{padding-left:0;padding-right:0;margin-right:10px;width:120px}.repository .navbar .ui.secondary.menu .item.precolors .color{float:left;width:15px;height:15px}.repository .filter.menu .label.color{margin-left:17px;padding:0 8px}.repository .filter.menu .octicon{float:left;margin-left:-5px;margin-right:-7px}.repository .filter.menu .menu{max-height:300px;overflow-x:auto;right:0!important;left:auto!important}.repository .filter.menu .menu .clickable .name{padding-left:15px!important}.repository .page.buttons{padding-top:15px}.repository .issue.list{clear:both;list-style:none}.repository .issue.list>.item{padding-top:15px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .issue.list>.item .title{color:#444;font-size:15px;font-weight:700;margin:0 6px}.repository .issue.list>.item .title:hover{color:#000}.repository .issue.list>.item .comment{padding-right:10px;color:#666}.repository .issue.list>.item .desc{padding-top:5px;color:#999}.repository .issue.list>.item .desc a.milestone{padding-left:5px;color:#999!important}.repository .issue.list>.item .desc a.milestone:hover{color:#000!important}.repository .label.list{clear:both;list-style:none}.repository .label.list .item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .label.list .item a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .label.list .item a:hover{color:#000}.repository .label.list .item a.open-issues{margin-right:30px}.repository .milestone.list{clear:both;list-style:none}.repository .milestone.list>.item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .milestone.list>.item>a{padding-top:5px;padding-right:10px;color:#000}.repository .milestone.list>.item>a:hover{color:#4078c0}.repository .milestone.list>.item .ui.progress{width:40%;padding:0;border:0;margin:0}.repository .milestone.list>.item .ui.progress .bar{height:20px}.repository .milestone.list>.item .meta{color:#999;padding-top:5px}.repository .milestone.list>.item .meta .issue-stats .octicon{padding-left:5px}.repository .milestone.list>.item .meta .overdue{color:red}.repository .milestone.list>.item .operate{margin-top:-15px}.repository .milestone.list>.item .operate>a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .milestone.list>.item .operate>a:hover{color:#000}.repository .milestone.list>.item .content{padding-top:10px}.repository.new.milestone textarea{height:200px}.edit-label.modal .color-picker{margin-top:-8px!important;height:35px;width:auto!important;padding-left:30px!important}.edit-label.modal .minicolors-swatch.minicolors-sprite{top:1px;left:10px;width:15px;height:15px}.edit-label.modal .precolors{margin-bottom:-11px!important;padding-left:0!important;padding-right:0!important;margin-right:10px!important;width:120px!important}.edit-label.modal .precolors .color{float:left;margin:0!important;width:15px;height:15px} \ No newline at end of file diff --git a/public/js/gogs.js b/public/js/gogs.js index 214cdf9f..8802ea64 100644 --- a/public/js/gogs.js +++ b/public/js/gogs.js @@ -51,21 +51,6 @@ function initRepository() { $('.color-picker').val(color_hex); $('.minicolors-swatch-color').css("background-color", color_hex); }); - $('.delete-label-button').click(function () { - var $this = $(this); - $('.delete-label.modal').modal({ - closable: false, - onApprove: function () { - $.post($this.data('url'), { - "_csrf": csrf, - "id": $this.data("id") - }).done(function (data) { - window.location.href = data.redirect; - }); - } - }).modal('show'); - return false; - }); $('.edit-label-button').click(function () { $('#label-modal-id').val($(this).data('id')); $('#label-modal-title').val($(this).data('title')); @@ -81,6 +66,9 @@ function initRepository() { } // Milestones + if ($('.repository.milestones').length > 0) { + + } if ($('.repository.new.milestone').length > 0) { var $datepicker = $('.milestone.datepicker') $datepicker.datetimepicker({ @@ -118,6 +106,23 @@ $(document).ready(function () { }); $('.poping.up').popup(); + // Helpers. + $('.delete-button').click(function () { + var $this = $(this); + $('.delete.modal').modal({ + closable: false, + onApprove: function () { + $.post($this.data('url'), { + "_csrf": csrf, + "id": $this.data("id") + }).done(function (data) { + window.location.href = data.redirect; + }); + } + }).modal('show'); + return false; + }); + initInstall(); initRepository(); }); \ No newline at end of file diff --git a/public/less/_repository.less b/public/less/_repository.less index e19d995d..db245e93 100644 --- a/public/less/_repository.less +++ b/public/less/_repository.less @@ -94,11 +94,12 @@ .menu { max-height: 300px; overflow-x: auto; - } - } - .type.item .menu { right: 0!important; left: auto!important; + .clickable .name { + padding-left: 15px!important; + } + } } .page.buttons { @@ -127,6 +128,13 @@ .desc { padding-top: 5px; color: #999; + a.milestone { + padding-left: 5px; + color: #999!important; + &:hover { + color: #000!important; + } + } } } } diff --git a/routers/repo/issue.go b/routers/repo/issue.go index e29f3380..d94c21ad 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -150,11 +150,20 @@ func Issues(ctx *middleware.Context) { issues[i].IsRead = true } } + ctx.Data["Issues"] = issues + + // Get milestones. + miles, err := models.GetAllRepoMilestones(repo.Id) + if err != nil { + ctx.Handle(500, "GetAllRepoMilestones: %v", err) + return + } + ctx.Data["Milestones"] = miles ctx.Data["IssueStats"] = issueStats ctx.Data["SelectLabels"] = com.StrTo(selectLabels).MustInt64() ctx.Data["ViewType"] = viewType - ctx.Data["Issues"] = issues + ctx.Data["MilestoneID"] = milestoneID ctx.Data["IsShowClosed"] = isShowClosed if isShowClosed { ctx.Data["State"] = "closed" @@ -247,12 +256,12 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) { form.AssigneeId = 0 } issue := &models.Issue{ - RepoId: ctx.Repo.Repository.Id, + RepoID: ctx.Repo.Repository.Id, Index: int64(ctx.Repo.Repository.NumIssues) + 1, Name: form.IssueName, - PosterId: ctx.User.Id, - MilestoneId: form.MilestoneId, - AssigneeId: form.AssigneeId, + PosterID: ctx.User.Id, + MilestoneID: form.MilestoneId, + AssigneeID: form.AssigneeId, LabelIds: form.Labels, Content: form.Content, } @@ -372,8 +381,8 @@ func ViewIssue(ctx *middleware.Context) { ctx.Data["Labels"] = labels // Get assigned milestone. - if issue.MilestoneId > 0 { - ctx.Data["Milestone"], err = models.MilestoneById(issue.MilestoneId) + if issue.MilestoneID > 0 { + ctx.Data["Milestone"], err = models.GetMilestoneById(issue.MilestoneID) if err != nil { if models.IsErrMilestoneNotExist(err) { log.Warn("GetMilestoneById: %v", err) @@ -447,7 +456,7 @@ func ViewIssue(ctx *middleware.Context) { ctx.Data["Title"] = issue.Name ctx.Data["Issue"] = issue ctx.Data["Comments"] = comments - ctx.Data["IsIssueOwner"] = ctx.Repo.IsOwner() || (ctx.IsSigned && issue.PosterId == ctx.User.Id) + ctx.Data["IsIssueOwner"] = ctx.Repo.IsOwner() || (ctx.IsSigned && issue.PosterID == ctx.User.Id) ctx.Data["IsRepoToolbarIssues"] = true ctx.Data["IsRepoToolbarIssuesList"] = false ctx.HTML(200, ISSUE_VIEW) @@ -470,7 +479,7 @@ func UpdateIssue(ctx *middleware.Context, form auth.CreateIssueForm) { return } - if ctx.User.Id != issue.PosterId && !ctx.Repo.IsOwner() { + if ctx.User.Id != issue.PosterID && !ctx.Repo.IsOwner() { ctx.Error(403) return } @@ -595,7 +604,7 @@ func UpdateIssueMilestone(ctx *middleware.Context) { return } - oldMid := issue.MilestoneId + oldMid := issue.MilestoneID mid := com.StrTo(ctx.Query("milestoneid")).MustInt64() if oldMid == mid { ctx.JSON(200, map[string]interface{}{ @@ -605,7 +614,7 @@ func UpdateIssueMilestone(ctx *middleware.Context) { } // Not check for invalid milestone id and give responsibility to owners. - issue.MilestoneId = mid + issue.MilestoneID = mid if err = models.ChangeMilestoneAssign(oldMid, mid, issue); err != nil { ctx.Handle(500, "issue.UpdateIssueMilestone(ChangeMilestoneAssign)", err) return @@ -643,7 +652,7 @@ func UpdateAssignee(ctx *middleware.Context) { aid := com.StrTo(ctx.Query("assigneeid")).MustInt64() // Not check for invalid assignee id and give responsibility to owners. - issue.AssigneeId = aid + issue.AssigneeID = aid if err = models.UpdateIssueUserPairByAssignee(aid, issue.ID); err != nil { ctx.Handle(500, "UpdateIssueUserPairByAssignee: %v", err) return @@ -766,7 +775,7 @@ func Comment(ctx *middleware.Context) { // Check if issue owner changes the status of issue. var newStatus string - if ctx.Repo.IsOwner() || issue.PosterId == ctx.User.Id { + if ctx.Repo.IsOwner() || issue.PosterID == ctx.User.Id { newStatus = ctx.Query("change_status") } if len(newStatus) > 0 { @@ -800,7 +809,7 @@ func Comment(ctx *middleware.Context) { } // Change open/closed issue counter for the associated milestone - if issue.MilestoneId > 0 { + if issue.MilestoneID > 0 { if err = models.ChangeMilestoneIssueStats(issue); err != nil { send(500, nil, err) } @@ -951,13 +960,10 @@ func UpdateLabel(ctx *middleware.Context, form auth.CreateLabelForm) { } func DeleteLabel(ctx *middleware.Context) { - id := ctx.QueryInt64("id") - if id > 0 { - if err := models.DeleteLabel(ctx.Repo.Repository.Id, id); err != nil { - ctx.Flash.Error("DeleteLabel: " + err.Error()) - } else { - ctx.Flash.Success(ctx.Tr("repo.issues.label_deletion_success")) - } + if err := models.DeleteLabel(ctx.Repo.Repository.Id, ctx.QueryInt64("id")); err != nil { + ctx.Flash.Error("DeleteLabel: " + err.Error()) + } else { + ctx.Flash.Success(ctx.Tr("repo.issues.label_deletion_success")) } ctx.JSON(200, map[string]interface{}{ @@ -1116,18 +1122,8 @@ func EditMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) { ctx.Redirect(ctx.Repo.RepoLink + "/milestones") } -func MilestoneActions(ctx *middleware.Context) { - ctx.Data["Title"] = "Update Milestone" - ctx.Data["IsRepoToolbarIssues"] = true - ctx.Data["IsRepoToolbarIssuesList"] = true - - idx := ctx.ParamsInt64(":index") - if idx == 0 { - ctx.Handle(404, "get milestone index", nil) - return - } - - mile, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, idx) +func ChangeMilestonStatus(ctx *middleware.Context) { + m, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, ctx.ParamsInt64(":index")) if err != nil { if models.IsErrMilestoneNotExist(err) { ctx.Handle(404, "GetMilestoneByIndex", err) @@ -1137,88 +1133,39 @@ func MilestoneActions(ctx *middleware.Context) { return } - action := ctx.Params(":action") - if len(action) > 0 { - switch action { - case "open": - if mile.IsClosed { - if err = models.ChangeMilestoneStatus(mile, false); err != nil { - ctx.Handle(500, "ChangeMilestoneStatus", err) - return - } - } - case "close": - if !mile.IsClosed { - mile.ClosedDate = time.Now() - if err = models.ChangeMilestoneStatus(mile, true); err != nil { - ctx.Handle(500, "ChangeMilestoneStatus", err) - return - } + switch ctx.Params(":action") { + case "open": + if m.IsClosed { + if err = models.ChangeMilestoneStatus(m, false); err != nil { + ctx.Handle(500, "ChangeMilestoneStatus", err) + return } - case "delete": - if err = models.DeleteMilestone(mile); err != nil { - ctx.Handle(500, "DeleteMilestone", err) + } + ctx.Redirect(ctx.Repo.RepoLink + "/milestones?state=open") + case "close": + if !m.IsClosed { + m.ClosedDate = time.Now() + if err = models.ChangeMilestoneStatus(m, true); err != nil { + ctx.Handle(500, "ChangeMilestoneStatus", err) return } } + ctx.Redirect(ctx.Repo.RepoLink + "/milestones?state=closed") + default: ctx.Redirect(ctx.Repo.RepoLink + "/milestones") - return - } - - mile.DeadlineString = mile.Deadline.UTC().Format("01/02/2006") - if mile.DeadlineString == "12/31/9999" { - mile.DeadlineString = "" } - ctx.Data["Milestone"] = mile - - ctx.HTML(200, MILESTONE_EDIT) } -func UpdateMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) { - ctx.Data["Title"] = "Update Milestone" - ctx.Data["IsRepoToolbarIssues"] = true - ctx.Data["IsRepoToolbarIssuesList"] = true - - idx := ctx.ParamsInt64(":index") - if idx == 0 { - ctx.Handle(404, "issue.UpdateMilestonePost", nil) - return - } - - mile, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, idx) - if err != nil { - if models.IsErrMilestoneNotExist(err) { - ctx.Handle(404, "GetMilestoneByIndex", err) - } else { - ctx.Handle(500, "GetMilestoneByIndex", err) - } - return - } - - if ctx.HasError() { - ctx.HTML(200, MILESTONE_EDIT) - return - } - - var deadline time.Time - if len(form.Deadline) == 0 { - form.Deadline = "12/31/9999" - } - deadline, err = time.Parse("01/02/2006", form.Deadline) - if err != nil { - ctx.Handle(500, "time.Parse", err) - return - } - - mile.Name = form.Title - mile.Content = form.Content - mile.Deadline = deadline - if err = models.UpdateMilestone(mile); err != nil { - ctx.Handle(500, "UpdateMilestone", err) - return +func DeleteMilestone(ctx *middleware.Context) { + if err := models.DeleteMilestoneByID(ctx.QueryInt64("id")); err != nil { + ctx.Flash.Error("DeleteMilestone: " + err.Error()) + } else { + ctx.Flash.Success(ctx.Tr("repo.milestones.deletion_success")) } - ctx.Redirect(ctx.Repo.RepoLink + "/milestones") + ctx.JSON(200, map[string]interface{}{ + "redirect": ctx.Repo.RepoLink + "/milestones", + }) } func IssueGetAttachment(ctx *middleware.Context) { diff --git a/routers/user/home.go b/routers/user/home.go index 503f9e36..257f7561 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -350,13 +350,13 @@ func Issues(ctx *middleware.Context) { } } - issues[i].Repo, err = models.GetRepositoryById(issues[i].RepoId) + issues[i].Repo, err = models.GetRepositoryById(issues[i].RepoID) if err != nil { if models.IsErrRepoNotExist(err) { - log.Warn("user.Issues(GetRepositoryById #%d): repository not exist", issues[i].RepoId) + log.Warn("GetRepositoryById[%d]: repository not exist", issues[i].RepoID) continue } else { - ctx.Handle(500, fmt.Sprintf("user.Issues(GetRepositoryById #%d)", issues[i].RepoId), err) + ctx.Handle(500, fmt.Sprintf("GetRepositoryById[%d]", issues[i].RepoID), err) return } } diff --git a/templates/.VERSION b/templates/.VERSION index 2d7fe898..b7559a24 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.6.3.0805 Beta \ No newline at end of file +0.6.4.0805 Beta \ No newline at end of file diff --git a/templates/repo/issue/create.tmpl b/templates/repo/issue/create.tmpl index f38c57d0..307be6aa 100644 --- a/templates/repo/issue/create.tmpl +++ b/templates/repo/issue/create.tmpl @@ -69,7 +69,7 @@ {{else}}