diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe1d84c38..b251e7ec3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -123,7 +123,8 @@ jobs: sudo modprobe fuse sudo chmod 666 /dev/fuse sudo chown root:$USER /etc/fuse.conf - sudo apt-get install fuse3 libfuse-dev rpm pkg-config git-annex git-annex-remote-rclone nfs-common + sudo apt-get update + sudo apt-get install -y fuse3 libfuse-dev rpm pkg-config git-annex git-annex-remote-rclone nfs-common if: matrix.os == 'ubuntu-latest' - name: Install Libraries on macOS diff --git a/backend/dropbox/dropbox.go b/backend/dropbox/dropbox.go index f2f1fc852..520c5dbc2 100644 --- a/backend/dropbox/dropbox.go +++ b/backend/dropbox/dropbox.go @@ -47,6 +47,7 @@ import ( "github.com/rclone/rclone/fs/config/obscure" "github.com/rclone/rclone/fs/fserrors" "github.com/rclone/rclone/fs/hash" + "github.com/rclone/rclone/fs/operations" "github.com/rclone/rclone/lib/batcher" "github.com/rclone/rclone/lib/encoder" "github.com/rclone/rclone/lib/oauthutil" @@ -1020,13 +1021,20 @@ func (f *Fs) Precision() time.Duration { // Will only be called if src.Fs().Name() == f.Name() // // If it isn't possible then return fs.ErrorCantCopy -func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, error) { +func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (dst fs.Object, err error) { srcObj, ok := src.(*Object) if !ok { fs.Debugf(src, "Can't copy - not same remote type") return nil, fs.ErrorCantCopy } + // Find and remove existing object + cleanup, err := operations.RemoveExisting(ctx, f, remote, "server side copy") + if err != nil { + return nil, err + } + defer cleanup(&err) + // Temporary Object under construction dstObj := &Object{ fs: f, @@ -1040,7 +1048,6 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, ToPath: f.opt.Enc.FromStandardPath(dstObj.remotePath()), }, } - var err error var result *files.RelocationResult err = f.pacer.Call(func() (bool, error) { result, err = f.srv.CopyV2(&arg) diff --git a/backend/gofile/gofile.go b/backend/gofile/gofile.go index 8f7b98b89..ca4091046 100644 --- a/backend/gofile/gofile.go +++ b/backend/gofile/gofile.go @@ -1214,7 +1214,7 @@ func (f *Fs) copyTo(ctx context.Context, srcID, srcLeaf, dstLeaf, dstDirectoryID // Will only be called if src.Fs().Name() == f.Name() // // If it isn't possible then return fs.ErrorCantCopy -func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, error) { +func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (dst fs.Object, err error) { srcObj, ok := src.(*Object) if !ok { fs.Debugf(src, "Can't copy - not same remote type") @@ -1228,6 +1228,19 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, return nil, fmt.Errorf("can't copy %q -> %q as are same name", srcPath, dstPath) } + // Find existing object + existingObj, err := f.NewObject(ctx, remote) + if err == nil { + defer func() { + // Don't remove existing object if returning an error + if err != nil { + return + } + fs.Debugf(existingObj, "Server side copy: removing existing object after successful copy") + err = existingObj.Remove(ctx) + }() + } + // Create temporary object dstObj, dstLeaf, dstDirectoryID, err := f.createObject(ctx, remote, srcObj.modTime, srcObj.size) if err != nil { diff --git a/backend/local/lchmod.go b/backend/local/lchmod.go new file mode 100644 index 000000000..823718dfe --- /dev/null +++ b/backend/local/lchmod.go @@ -0,0 +1,16 @@ +//go:build windows || plan9 || js || linux + +package local + +import "os" + +const haveLChmod = false + +// lChmod changes the mode of the named file to mode. If the file is a symbolic +// link, it changes the link, not the target. If there is an error, +// it will be of type *PathError. +func lChmod(name string, mode os.FileMode) error { + // Can't do this safely on this OS - chmoding a symlink always + // changes the destination. + return nil +} diff --git a/backend/local/lchmod_unix.go b/backend/local/lchmod_unix.go new file mode 100644 index 000000000..f1fdc4745 --- /dev/null +++ b/backend/local/lchmod_unix.go @@ -0,0 +1,41 @@ +//go:build !windows && !plan9 && !js && !linux + +package local + +import ( + "os" + "syscall" + + "golang.org/x/sys/unix" +) + +const haveLChmod = true + +// syscallMode returns the syscall-specific mode bits from Go's portable mode bits. +// +// Borrowed from the syscall source since it isn't public. +func syscallMode(i os.FileMode) (o uint32) { + o |= uint32(i.Perm()) + if i&os.ModeSetuid != 0 { + o |= syscall.S_ISUID + } + if i&os.ModeSetgid != 0 { + o |= syscall.S_ISGID + } + if i&os.ModeSticky != 0 { + o |= syscall.S_ISVTX + } + return o +} + +// lChmod changes the mode of the named file to mode. If the file is a symbolic +// link, it changes the link, not the target. If there is an error, +// it will be of type *PathError. +func lChmod(name string, mode os.FileMode) error { + // NB linux does not support AT_SYMLINK_NOFOLLOW as a parameter to fchmodat + // and returns ENOTSUP if you try, so we don't support this on linux + if e := unix.Fchmodat(unix.AT_FDCWD, name, syscallMode(mode), unix.AT_SYMLINK_NOFOLLOW); e != nil { + return &os.PathError{Op: "lChmod", Path: name, Err: e} + } + return nil +} diff --git a/backend/local/lchtimes.go b/backend/local/lchtimes.go index c8f03ef46..fcabdcc34 100644 --- a/backend/local/lchtimes.go +++ b/backend/local/lchtimes.go @@ -1,4 +1,4 @@ -//go:build windows || plan9 || js +//go:build plan9 || js package local diff --git a/backend/local/lchtimes_windows.go b/backend/local/lchtimes_windows.go new file mode 100644 index 000000000..a6dec9a12 --- /dev/null +++ b/backend/local/lchtimes_windows.go @@ -0,0 +1,19 @@ +//go:build windows + +package local + +import ( + "time" +) + +const haveLChtimes = true + +// lChtimes changes the access and modification times of the named +// link, similar to the Unix utime() or utimes() functions. +// +// The underlying filesystem may truncate or round the values to a +// less precise time unit. +// If there is an error, it will be of type *PathError. +func lChtimes(name string, atime time.Time, mtime time.Time) error { + return setTimes(name, atime, mtime, time.Time{}, true) +} diff --git a/backend/local/local_internal_test.go b/backend/local/local_internal_test.go index ea0fdc765..b3b9b8ba1 100644 --- a/backend/local/local_internal_test.go +++ b/backend/local/local_internal_test.go @@ -268,22 +268,66 @@ func TestMetadata(t *testing.T) { r := fstest.NewRun(t) const filePath = "metafile.txt" when := time.Now() - const dayLength = len("2001-01-01") - whenRFC := when.Format(time.RFC3339Nano) r.WriteFile(filePath, "metadata file contents", when) f := r.Flocal.(*Fs) + // Set fs into "-l" / "--links" mode + f.opt.TranslateSymlinks = true + + // Write a symlink to the file + symlinkPath := "metafile-link.txt" + osSymlinkPath := filepath.Join(f.root, symlinkPath) + symlinkPath += linkSuffix + require.NoError(t, os.Symlink(filePath, osSymlinkPath)) + symlinkModTime := fstest.Time("2002-02-03T04:05:10.123123123Z") + require.NoError(t, lChtimes(osSymlinkPath, symlinkModTime, symlinkModTime)) + // Get the object obj, err := f.NewObject(ctx, filePath) require.NoError(t, err) o := obj.(*Object) + // Get the symlink object + symlinkObj, err := f.NewObject(ctx, symlinkPath) + require.NoError(t, err) + symlinkO := symlinkObj.(*Object) + + // Record metadata for o + oMeta, err := o.Metadata(ctx) + require.NoError(t, err) + + // Test symlink first to check it doesn't mess up file + t.Run("Symlink", func(t *testing.T) { + testMetadata(t, r, symlinkO, symlinkModTime) + }) + + // Read it again + oMetaNew, err := o.Metadata(ctx) + require.NoError(t, err) + + // Check that operating on the symlink didn't change the file it was pointing to + // See: https://github.com/rclone/rclone/security/advisories/GHSA-hrxh-9w67-g4cv + assert.Equal(t, oMeta, oMetaNew, "metadata setting on symlink messed up file") + + // Now run the same tests on the file + t.Run("File", func(t *testing.T) { + testMetadata(t, r, o, when) + }) +} + +func testMetadata(t *testing.T, r *fstest.Run, o *Object, when time.Time) { + ctx := context.Background() + whenRFC := when.Format(time.RFC3339Nano) + const dayLength = len("2001-01-01") + + f := r.Flocal.(*Fs) features := f.Features() - var hasXID, hasAtime, hasBtime bool + var hasXID, hasAtime, hasBtime, canSetXattrOnLinks bool switch runtime.GOOS { case "darwin", "freebsd", "netbsd", "linux": hasXID, hasAtime, hasBtime = true, true, true + canSetXattrOnLinks = runtime.GOOS != "linux" case "openbsd", "solaris": hasXID, hasAtime = true, true case "windows": @@ -306,6 +350,10 @@ func TestMetadata(t *testing.T) { require.NoError(t, err) assert.Nil(t, m) + if !canSetXattrOnLinks && o.translatedLink { + t.Skip("Skip remainder of test as can't set xattr on symlinks on this OS") + } + inM := fs.Metadata{ "potato": "chips", "cabbage": "soup", @@ -320,18 +368,21 @@ func TestMetadata(t *testing.T) { }) checkTime := func(m fs.Metadata, key string, when time.Time) { + t.Helper() mt, ok := o.parseMetadataTime(m, key) assert.True(t, ok) dt := mt.Sub(when) precision := time.Second - assert.True(t, dt >= -precision && dt <= precision, fmt.Sprintf("%s: dt %v outside +/- precision %v", key, dt, precision)) + assert.True(t, dt >= -precision && dt <= precision, fmt.Sprintf("%s: dt %v outside +/- precision %v want %v got %v", key, dt, precision, mt, when)) } checkInt := func(m fs.Metadata, key string, base int) int { + t.Helper() value, ok := o.parseMetadataInt(m, key, base) assert.True(t, ok) return value } + t.Run("Read", func(t *testing.T) { m, err := o.Metadata(ctx) require.NoError(t, err) @@ -341,13 +392,12 @@ func TestMetadata(t *testing.T) { checkInt(m, "mode", 8) checkTime(m, "mtime", when) - assert.Equal(t, len(whenRFC), len(m["mtime"])) assert.Equal(t, whenRFC[:dayLength], m["mtime"][:dayLength]) - if hasAtime { + if hasAtime && !o.translatedLink { // symlinks generally don't record atime checkTime(m, "atime", when) } - if hasBtime { + if hasBtime && !o.translatedLink { // symlinks generally don't record btime checkTime(m, "btime", when) } if hasXID { @@ -371,6 +421,10 @@ func TestMetadata(t *testing.T) { "mode": "0767", "potato": "wedges", } + if !canSetXattrOnLinks && o.translatedLink { + // Don't change xattr if not supported on symlinks + delete(newM, "potato") + } err := o.writeMetadata(newM) require.NoError(t, err) @@ -380,7 +434,11 @@ func TestMetadata(t *testing.T) { mode := checkInt(m, "mode", 8) if runtime.GOOS != "windows" { - assert.Equal(t, 0767, mode&0777, fmt.Sprintf("mode wrong - expecting 0767 got 0%o", mode&0777)) + expectedMode := 0767 + if o.translatedLink && runtime.GOOS == "linux" { + expectedMode = 0777 // perms of symlinks always read as 0777 on linux + } + assert.Equal(t, expectedMode, mode&0777, fmt.Sprintf("mode wrong - expecting 0%o got 0%o", expectedMode, mode&0777)) } checkTime(m, "mtime", newMtime) @@ -390,7 +448,7 @@ func TestMetadata(t *testing.T) { if haveSetBTime { checkTime(m, "btime", newBtime) } - if xattrSupported { + if xattrSupported && (canSetXattrOnLinks || !o.translatedLink) { assert.Equal(t, "wedges", m["potato"]) } }) diff --git a/backend/local/metadata.go b/backend/local/metadata.go index 7ab69af30..75b195e64 100644 --- a/backend/local/metadata.go +++ b/backend/local/metadata.go @@ -105,7 +105,11 @@ func (o *Object) writeMetadataToFile(m fs.Metadata) (outErr error) { } if haveSetBTime { if btimeOK { - err = setBTime(o.path, btime) + if o.translatedLink { + err = lsetBTime(o.path, btime) + } else { + err = setBTime(o.path, btime) + } if err != nil { outErr = fmt.Errorf("failed to set birth (creation) time: %w", err) } @@ -121,7 +125,11 @@ func (o *Object) writeMetadataToFile(m fs.Metadata) (outErr error) { if runtime.GOOS == "windows" || runtime.GOOS == "plan9" { fs.Debugf(o, "Ignoring request to set ownership %o.%o on this OS", gid, uid) } else { - err = os.Chown(o.path, uid, gid) + if o.translatedLink { + err = os.Lchown(o.path, uid, gid) + } else { + err = os.Chown(o.path, uid, gid) + } if err != nil { outErr = fmt.Errorf("failed to change ownership: %w", err) } @@ -132,7 +140,16 @@ func (o *Object) writeMetadataToFile(m fs.Metadata) (outErr error) { if mode >= 0 { umode := uint(mode) if umode <= math.MaxUint32 { - err = os.Chmod(o.path, os.FileMode(umode)) + if o.translatedLink { + if haveLChmod { + err = lChmod(o.path, os.FileMode(umode)) + } else { + fs.Debugf(o, "Unable to set mode %v on a symlink on this OS", os.FileMode(umode)) + err = nil + } + } else { + err = os.Chmod(o.path, os.FileMode(umode)) + } if err != nil { outErr = fmt.Errorf("failed to change permissions: %w", err) } diff --git a/backend/local/setbtime.go b/backend/local/setbtime.go index 5c946348f..bb37b1735 100644 --- a/backend/local/setbtime.go +++ b/backend/local/setbtime.go @@ -13,3 +13,9 @@ func setBTime(name string, btime time.Time) error { // Does nothing return nil } + +// lsetBTime changes the birth time of the link passed in +func lsetBTime(name string, btime time.Time) error { + // Does nothing + return nil +} diff --git a/backend/local/setbtime_windows.go b/backend/local/setbtime_windows.go index 510a4da6a..8ae499826 100644 --- a/backend/local/setbtime_windows.go +++ b/backend/local/setbtime_windows.go @@ -9,15 +9,20 @@ import ( const haveSetBTime = true -// setBTime sets the birth time of the file passed in -func setBTime(name string, btime time.Time) (err error) { +// setTimes sets any of atime, mtime or btime +// if link is set it sets a link rather than the target +func setTimes(name string, atime, mtime, btime time.Time, link bool) (err error) { pathp, err := syscall.UTF16PtrFromString(name) if err != nil { return err } + fileFlag := uint32(syscall.FILE_FLAG_BACKUP_SEMANTICS) + if link { + fileFlag |= syscall.FILE_FLAG_OPEN_REPARSE_POINT + } h, err := syscall.CreateFile(pathp, syscall.FILE_WRITE_ATTRIBUTES, syscall.FILE_SHARE_WRITE, nil, - syscall.OPEN_EXISTING, syscall.FILE_FLAG_BACKUP_SEMANTICS, 0) + syscall.OPEN_EXISTING, fileFlag, 0) if err != nil { return err } @@ -27,6 +32,28 @@ func setBTime(name string, btime time.Time) (err error) { err = closeErr } }() - bFileTime := syscall.NsecToFiletime(btime.UnixNano()) - return syscall.SetFileTime(h, &bFileTime, nil, nil) + var patime, pmtime, pbtime *syscall.Filetime + if !atime.IsZero() { + t := syscall.NsecToFiletime(atime.UnixNano()) + patime = &t + } + if !mtime.IsZero() { + t := syscall.NsecToFiletime(mtime.UnixNano()) + pmtime = &t + } + if !btime.IsZero() { + t := syscall.NsecToFiletime(btime.UnixNano()) + pbtime = &t + } + return syscall.SetFileTime(h, pbtime, patime, pmtime) +} + +// setBTime sets the birth time of the file passed in +func setBTime(name string, btime time.Time) (err error) { + return setTimes(name, time.Time{}, time.Time{}, btime, false) +} + +// lsetBTime changes the birth time of the link passed in +func lsetBTime(name string, btime time.Time) error { + return setTimes(name, time.Time{}, time.Time{}, btime, true) } diff --git a/backend/onedrive/api/types.go b/backend/onedrive/api/types.go index 0332f1c12..7fe032c23 100644 --- a/backend/onedrive/api/types.go +++ b/backend/onedrive/api/types.go @@ -202,9 +202,14 @@ type SharingLinkType struct { type LinkType string const ( - ViewLinkType LinkType = "view" // ViewLinkType (role: read) A view-only sharing link, allowing read-only access. - EditLinkType LinkType = "edit" // EditLinkType (role: write) An edit sharing link, allowing read-write access. - EmbedLinkType LinkType = "embed" // EmbedLinkType (role: read) A view-only sharing link that can be used to embed content into a host webpage. Embed links are not available for OneDrive for Business or SharePoint. + // ViewLinkType (role: read) A view-only sharing link, allowing read-only access. + ViewLinkType LinkType = "view" + // EditLinkType (role: write) An edit sharing link, allowing read-write access. + EditLinkType LinkType = "edit" + // EmbedLinkType (role: read) A view-only sharing link that can be used to embed + // content into a host webpage. Embed links are not available for OneDrive for + // Business or SharePoint. + EmbedLinkType LinkType = "embed" ) // LinkScope represents the scope of the link represented by this permission. @@ -212,9 +217,12 @@ const ( type LinkScope string const ( - AnonymousScope LinkScope = "anonymous" // AnonymousScope = Anyone with the link has access, without needing to sign in. This may include people outside of your organization. - OrganizationScope LinkScope = "organization" // OrganizationScope = Anyone signed into your organization (tenant) can use the link to get access. Only available in OneDrive for Business and SharePoint. - + // AnonymousScope = Anyone with the link has access, without needing to sign in. + // This may include people outside of your organization. + AnonymousScope LinkScope = "anonymous" + // OrganizationScope = Anyone signed into your organization (tenant) can use the + // link to get access. Only available in OneDrive for Business and SharePoint. + OrganizationScope LinkScope = "organization" ) // PermissionsType provides information about a sharing permission granted for a DriveItem resource. @@ -236,10 +244,14 @@ type PermissionsType struct { type Role string const ( - ReadRole Role = "read" // ReadRole provides the ability to read the metadata and contents of the item. - WriteRole Role = "write" // WriteRole provides the ability to read and modify the metadata and contents of the item. - OwnerRole Role = "owner" // OwnerRole represents the owner role for SharePoint and OneDrive for Business. - MemberRole Role = "member" // MemberRole represents the member role for SharePoint and OneDrive for Business. + // ReadRole provides the ability to read the metadata and contents of the item. + ReadRole Role = "read" + // WriteRole provides the ability to read and modify the metadata and contents of the item. + WriteRole Role = "write" + // OwnerRole represents the owner role for SharePoint and OneDrive for Business. + OwnerRole Role = "owner" + // MemberRole represents the member role for SharePoint and OneDrive for Business. + MemberRole Role = "member" ) // PermissionsResponse is the response to the list permissions method diff --git a/backend/onedrive/onedrive.go b/backend/onedrive/onedrive.go index f7555017e..97dc8245f 100644 --- a/backend/onedrive/onedrive.go +++ b/backend/onedrive/onedrive.go @@ -1609,7 +1609,7 @@ func (f *Fs) waitForJob(ctx context.Context, location string, o *Object) error { // Will only be called if src.Fs().Name() == f.Name() // // If it isn't possible then return fs.ErrorCantCopy -func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, error) { +func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (dst fs.Object, err error) { srcObj, ok := src.(*Object) if !ok { fs.Debugf(src, "Can't copy - not same remote type") @@ -1624,11 +1624,18 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, return nil, fs.ErrorCantCopy } - err := srcObj.readMetaData(ctx) + err = srcObj.readMetaData(ctx) if err != nil { return nil, err } + // Find and remove existing object + cleanup, err := operations.RemoveExisting(ctx, f, remote, "server side copy") + if err != nil { + return nil, err + } + defer cleanup(&err) + // Check we aren't overwriting a file on the same remote if srcObj.fs == f { srcPath := srcObj.rootPath() diff --git a/backend/onedrive/onedrive_internal_test.go b/backend/onedrive/onedrive_internal_test.go index 5ac2141d0..843ede35f 100644 --- a/backend/onedrive/onedrive_internal_test.go +++ b/backend/onedrive/onedrive_internal_test.go @@ -215,11 +215,11 @@ func (f *Fs) TestDirectoryMetadata(t *testing.T, r *fstest.Run) { compareDirMeta(expectedMeta, actualMeta, false) // modtime - assert.Equal(t, t1.Truncate(f.Precision()), newDst.ModTime(ctx)) + fstest.AssertTimeEqualWithPrecision(t, newDst.Remote(), t1, newDst.ModTime(ctx), f.Precision()) // try changing it and re-check it newDst, err = operations.SetDirModTime(ctx, f, newDst, "", t2) assert.NoError(t, err) - assert.Equal(t, t2.Truncate(f.Precision()), newDst.ModTime(ctx)) + fstest.AssertTimeEqualWithPrecision(t, newDst.Remote(), t2, newDst.ModTime(ctx), f.Precision()) // ensure that f.DirSetModTime also works err = f.DirSetModTime(ctx, "subdir", t3) assert.NoError(t, err) @@ -227,7 +227,7 @@ func (f *Fs) TestDirectoryMetadata(t *testing.T, r *fstest.Run) { assert.NoError(t, err) entries.ForDir(func(dir fs.Directory) { if dir.Remote() == "subdir" { - assert.True(t, t3.Truncate(f.Precision()).Equal(dir.ModTime(ctx)), fmt.Sprintf("got %v", dir.ModTime(ctx))) + fstest.AssertTimeEqualWithPrecision(t, dir.Remote(), t3, dir.ModTime(ctx), f.Precision()) } }) diff --git a/backend/pikpak/pikpak.go b/backend/pikpak/pikpak.go index b70ecf92a..f2a1390f1 100644 --- a/backend/pikpak/pikpak.go +++ b/backend/pikpak/pikpak.go @@ -561,6 +561,7 @@ func newFs(ctx context.Context, name, path string, m configmap.Mapper) (*Fs, err if strings.Contains(err.Error(), "invalid_grant") { return f, f.reAuthorize(ctx) } + return nil, err } return f, nil diff --git a/backend/putio/fs.go b/backend/putio/fs.go index cc21cac00..cdd89ceba 100644 --- a/backend/putio/fs.go +++ b/backend/putio/fs.go @@ -572,6 +572,17 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (o fs.Objec if err != nil { return nil, err } + + // We have successfully copied the file to random name + // Check to see if file already exists first and delete it if so + existingObj, err := f.NewObject(ctx, remote) + if err == nil { + err = existingObj.Remove(ctx) + if err != nil { + return nil, fmt.Errorf("server side copy: failed to remove existing file: %w", err) + } + } + err = f.pacer.Call(func() (bool, error) { params := url.Values{} params.Set("file_id", strconv.FormatInt(resp.File.ID, 10)) diff --git a/backend/s3/s3.go b/backend/s3/s3.go index 3c62dd3c5..e27e3a60a 100644 --- a/backend/s3/s3.go +++ b/backend/s3/s3.go @@ -5866,6 +5866,25 @@ func (o *Object) downloadFromURL(ctx context.Context, bucketPath string, options return resp.Body, err } +// middleware to stop the SDK adding `Accept-Encoding: identity` +func removeDisableGzip() func(*middleware.Stack) error { + return func(stack *middleware.Stack) error { + _, err := stack.Finalize.Remove("DisableAcceptEncodingGzip") + return err + } +} + +// middleware to set Accept-Encoding to how we want it +// +// This make sure we download compressed files as-is from all platforms +func (f *Fs) acceptEncoding() (APIOptions []func(*middleware.Stack) error) { + APIOptions = append(APIOptions, removeDisableGzip()) + if f.opt.UseAcceptEncodingGzip.Value { + APIOptions = append(APIOptions, smithyhttp.AddHeaderValue("Accept-Encoding", "gzip")) + } + return APIOptions +} + // Open an object for read func (o *Object) Open(ctx context.Context, options ...fs.OpenOption) (in io.ReadCloser, err error) { bucket, bucketPath := o.split() @@ -5899,11 +5918,8 @@ func (o *Object) Open(ctx context.Context, options ...fs.OpenOption) (in io.Read var APIOptions []func(*middleware.Stack) error - // Override the automatic decompression in the transport to - // download compressed files as-is - if o.fs.opt.UseAcceptEncodingGzip.Value { - APIOptions = append(APIOptions, smithyhttp.AddHeaderValue("Accept-Encoding", "gzip")) - } + // Set the SDK to always download compressed files as-is + APIOptions = append(APIOptions, o.fs.acceptEncoding()...) for _, option := range options { switch option.(type) { @@ -6054,8 +6070,8 @@ func (f *Fs) OpenChunkWriter(ctx context.Context, remote string, src fs.ObjectIn chunkSize: int64(chunkSize), size: size, f: f, - bucket: mOut.Bucket, - key: mOut.Key, + bucket: ui.req.Bucket, + key: ui.req.Key, uploadID: mOut.UploadId, multiPartUploadInput: &mReq, completedParts: make([]types.CompletedPart, 0), diff --git a/backend/s3/s3_test.go b/backend/s3/s3_test.go index e0499ba66..6d00d8761 100644 --- a/backend/s3/s3_test.go +++ b/backend/s3/s3_test.go @@ -23,14 +23,20 @@ func SetupS3Test(t *testing.T) (context.Context, *Options, *http.Client) { // TestIntegration runs integration tests against the remote func TestIntegration(t *testing.T) { - fstests.Run(t, &fstests.Opt{ + opt := &fstests.Opt{ RemoteName: "TestS3:", NilObject: (*Object)(nil), - TiersToTest: []string{"STANDARD", "STANDARD_IA"}, + TiersToTest: []string{"STANDARD"}, ChunkedUpload: fstests.ChunkedUploadConfig{ MinChunkSize: minChunkSize, }, - }) + } + // Test wider range of tiers on AWS + if *fstest.RemoteName == "" || *fstest.RemoteName == "TestS3:" { + opt.TiersToTest = []string{"STANDARD", "STANDARD_IA"} + } + fstests.Run(t, opt) + } func TestIntegration2(t *testing.T) { diff --git a/backend/sftp/sftp.go b/backend/sftp/sftp.go index c3c60aade..3becf7b5c 100644 --- a/backend/sftp/sftp.go +++ b/backend/sftp/sftp.go @@ -2101,10 +2101,10 @@ func (file *objectReader) Read(p []byte) (n int, err error) { // Close a reader of a remote sftp file func (file *objectReader) Close() (err error) { - // Close the sftpFile - this will likely cause the WriteTo to error - err = file.sftpFile.Close() // Close the pipeReader so writes to the pipeWriter fail _ = file.pipeReader.Close() + // Close the sftpFile - this will likely cause the WriteTo to error + err = file.sftpFile.Close() // Wait for the background process to finish <-file.done // Show connection no longer in use diff --git a/backend/sugarsync/sugarsync.go b/backend/sugarsync/sugarsync.go index da5143643..880776698 100644 --- a/backend/sugarsync/sugarsync.go +++ b/backend/sugarsync/sugarsync.go @@ -35,6 +35,7 @@ import ( "github.com/rclone/rclone/fs/fserrors" "github.com/rclone/rclone/fs/fshttp" "github.com/rclone/rclone/fs/hash" + "github.com/rclone/rclone/fs/operations" "github.com/rclone/rclone/lib/dircache" "github.com/rclone/rclone/lib/encoder" "github.com/rclone/rclone/lib/pacer" @@ -867,13 +868,13 @@ func (f *Fs) Precision() time.Duration { // Will only be called if src.Fs().Name() == f.Name() // // If it isn't possible then return fs.ErrorCantCopy -func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, error) { +func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (dst fs.Object, err error) { srcObj, ok := src.(*Object) if !ok { fs.Debugf(src, "Can't copy - not same remote type") return nil, fs.ErrorCantCopy } - err := srcObj.readMetaData(ctx) + err = srcObj.readMetaData(ctx) if err != nil { return nil, err } @@ -890,6 +891,13 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, return nil, err } + // Find and remove existing object + cleanup, err := operations.RemoveExisting(ctx, f, remote, "server side copy") + if err != nil { + return nil, err + } + defer cleanup(&err) + // Copy the object opts := rest.Opts{ Method: "POST", diff --git a/backend/yandex/yandex.go b/backend/yandex/yandex.go index 7171491ea..0d5f18e18 100644 --- a/backend/yandex/yandex.go +++ b/backend/yandex/yandex.go @@ -22,6 +22,7 @@ import ( "github.com/rclone/rclone/fs/config/obscure" "github.com/rclone/rclone/fs/fserrors" "github.com/rclone/rclone/fs/hash" + "github.com/rclone/rclone/fs/operations" "github.com/rclone/rclone/lib/encoder" "github.com/rclone/rclone/lib/oauthutil" "github.com/rclone/rclone/lib/pacer" @@ -713,7 +714,7 @@ func (f *Fs) copyOrMove(ctx context.Context, method, src, dst string, overwrite // Will only be called if src.Fs().Name() == f.Name() // // If it isn't possible then return fs.ErrorCantCopy -func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, error) { +func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (dst fs.Object, err error) { srcObj, ok := src.(*Object) if !ok { fs.Debugf(src, "Can't copy - not same remote type") @@ -721,12 +722,21 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object, } dstPath := f.filePath(remote) - err := f.mkParentDirs(ctx, dstPath) + err = f.mkParentDirs(ctx, dstPath) if err != nil { return nil, err } - err = f.copyOrMove(ctx, "copy", srcObj.filePath(), dstPath, false) + // Find and remove existing object + // + // Note that the overwrite flag doesn't seem to work for server side copy + cleanup, err := operations.RemoveExisting(ctx, f, remote, "server side copy") + if err != nil { + return nil, err + } + defer cleanup(&err) + + err = f.copyOrMove(ctx, "copy", srcObj.filePath(), dstPath, false) if err != nil { return nil, fmt.Errorf("couldn't copy file: %w", err) } diff --git a/bin/backend-versions.sh b/bin/backend-versions.sh index f6fb0bdb5..9fdbdcc05 100755 --- a/bin/backend-versions.sh +++ b/bin/backend-versions.sh @@ -7,11 +7,11 @@ for backend in $( find backend -maxdepth 1 -type d ); do continue fi - commit=$(git log --oneline -- $backend | tail -1 | cut -d' ' -f1) + commit=$(git log --oneline -- $backend | tail -n 1 | cut -d' ' -f1) if [ "$commit" == "" ]; then - commit=$(git log --oneline -- backend/$backend | tail -1 | cut -d' ' -f1) + commit=$(git log --oneline -- backend/$backend | tail -n 1 | cut -d' ' -f1) fi - version=$(git tag --contains $commit | grep ^v | sort -n | head -1) + version=$(git tag --contains $commit | grep ^v | sort -n | head -n 1) echo $backend $version sed -i~ "4i versionIntroduced: \"$version\"" docs/content/${backend}.md done diff --git a/bin/upload-github b/bin/upload-github index ba4079323..0ebdc708d 100755 --- a/bin/upload-github +++ b/bin/upload-github @@ -13,7 +13,7 @@ if [ "$1" == "" ]; then exit 1 fi VERSION="$1" -ANCHOR=$(grep '^## v' docs/content/changelog.md | head -1 | sed 's/^## //; s/[^A-Za-z0-9-]/-/g; s/--*/-/g') +ANCHOR=$(grep '^## v' docs/content/changelog.md | head -n 1 | sed 's/^## //; s/[^A-Za-z0-9-]/-/g; s/--*/-/g') cat > "/tmp/${VERSION}-release-notes" <}} * Diego Monti * tgfisher * Moises Lima + * Dimitar Ivanov + * shenpengfeng + * Dimitrios Slamaris + * vintagefuture <39503528+vintagefuture@users.noreply.github.com> + * David Seifert diff --git a/docs/content/box.md b/docs/content/box.md index 2c70d4c4d..63e42133c 100644 --- a/docs/content/box.md +++ b/docs/content/box.md @@ -64,7 +64,7 @@ If not sure try Y. If Y failed, try N. y) Yes n) No y/n> y -If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth +If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=XXXXXXXXXXXXXXXXXXXXXX Log in and authorize rclone for access Waiting for code... Got code diff --git a/docs/content/changelog.md b/docs/content/changelog.md index 3f04c6746..5e31f318e 100644 --- a/docs/content/changelog.md +++ b/docs/content/changelog.md @@ -5,6 +5,36 @@ description: "Rclone Changelog" # Changelog +## v1.68.2 - 2024-11-15 + +[See commits](https://github.com/rclone/rclone/compare/v1.68.1...v1.68.2) + +* Security fixes + * local backend: CVE-2024-52522: fix permission and ownership on symlinks with `--links` and `--metadata` (Nick Craig-Wood) + * Only affects users using `--metadata` and `--links` and copying files to the local backend + * See https://github.com/rclone/rclone/security/advisories/GHSA-hrxh-9w67-g4cv + * build: bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 (dependabot) + * This is an issue in a dependency which is used for JWT certificates + * See https://github.com/golang-jwt/jwt/security/advisories/GHSA-29wx-vh33-7x7r +* Bug Fixes + * accounting: Fix wrong message on SIGUSR2 to enable/disable bwlimit (Nick Craig-Wood) + * bisync: Fix output capture restoring the wrong output for logrus (Dimitrios Slamaris) + * dlna: Fix loggingResponseWriter disregarding log level (Simon Bos) + * serve s3: Fix excess locking which was making serve s3 single threaded (Nick Craig-Wood) + * doc fixes (Nick Craig-Wood, tgfisher, Alexandre Hamez, Randy Bush) +* Local + * Fix permission and ownership on symlinks with `--links` and `--metadata` (Nick Craig-Wood) + * Fix `--copy-links` on macOS when cloning (nielash) +* Onedrive + * Fix Retry-After handling to look at 503 errors also (Nick Craig-Wood) +* Pikpak + * Fix cid/gcid calculations for fs.OverrideRemote (wiserain) + * Fix fatal crash on startup with token that can't be refreshed (Nick Craig-Wood) +* S3 + * Fix crash when using `--s3-download-url` after migration to SDKv2 (Nick Craig-Wood) + * Storj provider: fix server-side copy of files bigger than 5GB (Kaloyan Raev) + * Fix multitenant multipart uploads with CEPH (Nick Craig-Wood) + ## v1.68.1 - 2024-09-24 [See commits](https://github.com/rclone/rclone/compare/v1.68.0...v1.68.1) diff --git a/docs/content/filescom.md b/docs/content/filescom.md index 613c0b9a6..2a718a7a5 100644 --- a/docs/content/filescom.md +++ b/docs/content/filescom.md @@ -4,7 +4,7 @@ description: "Rclone docs for Files.com" versionIntroduced: "v1.68" --- -# {{< icon "fa fa-file-alt" >}} Files.com +# {{< icon "fa fa-brands fa-files-pinwheel" >}} Files.com [Files.com](https://www.files.com/) is a cloud storage service that provides a secure and easy way to store and share files. diff --git a/docs/content/googlecloudstorage.md b/docs/content/googlecloudstorage.md index be52111a6..7d346a066 100644 --- a/docs/content/googlecloudstorage.md +++ b/docs/content/googlecloudstorage.md @@ -201,6 +201,55 @@ the rclone config file, you can set `service_account_credentials` with the actual contents of the file instead, or set the equivalent environment variable. +### Service Account Authentication with Access Tokens + +Another option for service account authentication is to use access tokens via *gcloud impersonate-service-account*. Access tokens protect security by avoiding the use of the JSON +key file, which can be breached. They also bypass oauth login flow, which is simpler +on remote VMs that lack a web browser. + +If you already have a working service account, skip to step 3. + +#### 1. Create a service account using + + gcloud iam service-accounts create gcs-read-only + +You can re-use an existing service account as well (like the one created above) + +#### 2. Attach a Viewer (read-only) or User (read-write) role to the service account + $ PROJECT_ID=my-project + $ gcloud --verbose iam service-accounts add-iam-policy-binding \ + gcs-read-only@${PROJECT_ID}.iam.gserviceaccount.com \ + --member=serviceAccount:gcs-read-only@${PROJECT_ID}.iam.gserviceaccount.com \ + --role=roles/storage.objectViewer + +Use the Google Cloud console to identify a limited role. Some relevant pre-defined roles: + +* *roles/storage.objectUser* -- read-write access but no admin privileges +* *roles/storage.objectViewer* -- read-only access to objects +* *roles/storage.admin* -- create buckets & administrative roles + +#### 3. Get a temporary access key for the service account + + $ gcloud auth application-default print-access-token \ + --impersonate-service-account \ + dev-gcloud-go@${PROJECT_ID}.iam.gserviceaccount.com + + ya29.c.c0ASRK0GbAFEewXD [truncated] + +#### 4. Update `access_token` setting +hit `CTRL-C` when you see *waiting for code*. This will save the config without doing oauth flow + + rclone config update ${REMOTE_NAME} access_token ya29.c.c0Axxxx + +#### 5. Run rclone as usual + + rclone ls dev-gcs:${MY_BUCKET}/ + +### More Info on Service Accounts + +* [Official GCS Docs](https://cloud.google.com/compute/docs/access/service-accounts) +* [Guide on Service Accounts using Key Files (less secure, but similar concepts)](https://forum.rclone.org/t/access-using-google-service-account/24822/2) + ### Anonymous Access For downloads of objects that permit public access you can configure rclone diff --git a/docs/content/iclouddrive.md b/docs/content/iclouddrive.md index e4982cc4b..a580aa69d 100644 --- a/docs/content/iclouddrive.md +++ b/docs/content/iclouddrive.md @@ -9,8 +9,11 @@ versionIntroduced: "v1.69" ## Configuration -The initial setup for an iCloud Drive backend involves getting a trust token/session. -`rclone config` walks you through it. The trust token is valid for 30 days. After which you will have to reauthenticate with rclone reconnect or rclone config. +The initial setup for an iCloud Drive backend involves getting a trust token/session. This can be done by simply using the regular iCloud password, and accepting the code prompt on another iCloud connected device. + +`IMPORTANT: At the moment an app specific password won't be accepted. Only use your regular password and 2FA.` + +`rclone config` walks you through the token creation. The trust token is valid for 30 days. After which you will have to reauthenticate with rclone reconnect or rclone config. Here is an example of how to make a remote called `iclouddrive`. First run: diff --git a/docs/content/s3.md b/docs/content/s3.md index 58b16b79a..ac62e61ed 100644 --- a/docs/content/s3.md +++ b/docs/content/s3.md @@ -2503,6 +2503,9 @@ Note that Cloudflare decompresses files uploaded with does. If this is causing a problem then upload the files with `--header-upload "Cache-Control: no-transform"` +A consequence of this is that `Content-Encoding: gzip` will never +appear in the metadata on Cloudflare. + ### Dreamhost Dreamhost [DreamObjects](https://www.dreamhost.com/cloud/storage/) is diff --git a/docs/layouts/_default/baseof.html b/docs/layouts/_default/baseof.html index 8884200cb..738c05160 100644 --- a/docs/layouts/_default/baseof.html +++ b/docs/layouts/_default/baseof.html @@ -11,7 +11,9 @@ {{ block "title" . }}{{ .Title }}{{ end }} - + + + {{ $RSSLink := "" }}{{ with .OutputFormats.Get "RSS" }}{{ $RSSLink = .RelPermalink }}{{ end }}{{ if $RSSLink }}{{ end }} diff --git a/docs/layouts/chrome/navbar.html b/docs/layouts/chrome/navbar.html index c6fa0db6f..bc7bb0ce3 100644 --- a/docs/layouts/chrome/navbar.html +++ b/docs/layouts/chrome/navbar.html @@ -65,7 +65,7 @@ Digi Storage Dropbox Enterprise File Fabric - Files.com + Files.com FTP Gofile Google Cloud Storage diff --git a/docs/static/css/font-awesome.min.5.10.2.css b/docs/static/css/font-awesome.min.5.10.2.css deleted file mode 100644 index 3158702f5..000000000 --- a/docs/static/css/font-awesome.min.5.10.2.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/docs/static/fontawesome/css/brands.min.css b/docs/static/fontawesome/css/brands.min.css new file mode 100644 index 000000000..098502ba1 --- /dev/null +++ b/docs/static/fontawesome/css/brands.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero{--fa:"\f3d0"}.fa-hooli{--fa:"\f427"}.fa-yelp{--fa:"\f1e9"}.fa-cc-visa{--fa:"\f1f0"}.fa-lastfm{--fa:"\f202"}.fa-shopware{--fa:"\f5b5"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-aws{--fa:"\f375"}.fa-redhat{--fa:"\f7bc"}.fa-yoast{--fa:"\f2b1"}.fa-cloudflare{--fa:"\e07d"}.fa-ups{--fa:"\f7e0"}.fa-pixiv{--fa:"\e640"}.fa-wpexplorer{--fa:"\f2de"}.fa-dyalog{--fa:"\f399"}.fa-bity{--fa:"\f37a"}.fa-stackpath{--fa:"\f842"}.fa-buysellads{--fa:"\f20d"}.fa-first-order{--fa:"\f2b0"}.fa-modx{--fa:"\f285"}.fa-guilded{--fa:"\e07e"}.fa-vnv{--fa:"\f40b"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-microsoft{--fa:"\f3ca"}.fa-qq{--fa:"\f1d6"}.fa-orcid{--fa:"\f8d2"}.fa-java{--fa:"\f4e4"}.fa-invision{--fa:"\f7b0"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-centercode{--fa:"\f380"}.fa-glide-g{--fa:"\f2a6"}.fa-drupal{--fa:"\f1a9"}.fa-jxl{--fa:"\e67b"}.fa-dart-lang{--fa:"\e693"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-unity{--fa:"\e049"}.fa-whmcs{--fa:"\f40d"}.fa-rocketchat{--fa:"\f3e8"}.fa-vk{--fa:"\f189"}.fa-untappd{--fa:"\f405"}.fa-mailchimp{--fa:"\f59e"}.fa-css3-alt{--fa:"\f38b"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-vimeo-v{--fa:"\f27d"}.fa-contao{--fa:"\f26d"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-deskpro{--fa:"\f38f"}.fa-brave{--fa:"\e63c"}.fa-sistrix{--fa:"\f3ee"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-battle-net{--fa:"\f835"}.fa-the-red-yeti{--fa:"\f69d"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-edge{--fa:"\f282"}.fa-threads{--fa:"\e618"}.fa-napster{--fa:"\f3d2"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-google-plus-g{--fa:"\f0d5"}.fa-artstation{--fa:"\f77a"}.fa-markdown{--fa:"\f60f"}.fa-sourcetree{--fa:"\f7d3"}.fa-google-plus{--fa:"\f2b3"}.fa-diaspora{--fa:"\f791"}.fa-foursquare{--fa:"\f180"}.fa-stack-overflow{--fa:"\f16c"}.fa-github-alt{--fa:"\f113"}.fa-phoenix-squadron{--fa:"\f511"}.fa-pagelines{--fa:"\f18c"}.fa-algolia{--fa:"\f36c"}.fa-red-river{--fa:"\f3e3"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-safari{--fa:"\f267"}.fa-google{--fa:"\f1a0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-atlassian{--fa:"\f77b"}.fa-linkedin-in{--fa:"\f0e1"}.fa-digital-ocean{--fa:"\f391"}.fa-nimblr{--fa:"\f5a8"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-hacker-news{--fa:"\f1d4"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-adversal{--fa:"\f36a"}.fa-creative-commons{--fa:"\f25e"}.fa-watchman-monitoring{--fa:"\e087"}.fa-fonticons{--fa:"\f280"}.fa-weixin{--fa:"\f1d7"}.fa-shirtsinbulk{--fa:"\f214"}.fa-codepen{--fa:"\f1cb"}.fa-git-alt{--fa:"\f841"}.fa-lyft{--fa:"\f3c3"}.fa-rev{--fa:"\f5b2"}.fa-windows{--fa:"\f17a"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-meetup{--fa:"\f2e0"}.fa-centos{--fa:"\f789"}.fa-adn{--fa:"\f170"}.fa-cloudsmith{--fa:"\f384"}.fa-opensuse{--fa:"\e62b"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-codiepie{--fa:"\f284"}.fa-node{--fa:"\f419"}.fa-mix{--fa:"\f3cb"}.fa-steam{--fa:"\f1b6"}.fa-cc-apple-pay{--fa:"\f416"}.fa-scribd{--fa:"\f28a"}.fa-debian{--fa:"\e60b"}.fa-openid{--fa:"\f19b"}.fa-instalod{--fa:"\e081"}.fa-files-pinwheel{--fa:"\e69f"}.fa-expeditedssl{--fa:"\f23e"}.fa-sellcast{--fa:"\f2da"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-r-project{--fa:"\f4f7"}.fa-delicious{--fa:"\f1a5"}.fa-freebsd{--fa:"\f3a4"}.fa-vuejs{--fa:"\f41f"}.fa-accusoft{--fa:"\f369"}.fa-ioxhost{--fa:"\f208"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-app-store{--fa:"\f36f"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-itunes-note{--fa:"\f3b5"}.fa-golang{--fa:"\e40f"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-grav{--fa:"\f2d6"}.fa-weibo{--fa:"\f18a"}.fa-uncharted{--fa:"\e084"}.fa-firstdraft{--fa:"\f3a1"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-wikipedia-w{--fa:"\f266"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-angellist{--fa:"\f209"}.fa-galactic-republic{--fa:"\f50c"}.fa-nfc-directional{--fa:"\e530"}.fa-skype{--fa:"\f17e"}.fa-joget{--fa:"\f3b7"}.fa-fedora{--fa:"\f798"}.fa-stripe-s{--fa:"\f42a"}.fa-meta{--fa:"\e49b"}.fa-laravel{--fa:"\f3bd"}.fa-hotjar{--fa:"\f3b1"}.fa-bluetooth-b{--fa:"\f294"}.fa-square-letterboxd{--fa:"\e62e"}.fa-sticker-mule{--fa:"\f3f7"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-hips{--fa:"\f452"}.fa-css{--fa:"\e6a2"}.fa-behance{--fa:"\f1b4"}.fa-reddit{--fa:"\f1a1"}.fa-discord{--fa:"\f392"}.fa-chrome{--fa:"\f268"}.fa-app-store-ios{--fa:"\f370"}.fa-cc-discover{--fa:"\f1f2"}.fa-wpbeginner{--fa:"\f297"}.fa-confluence{--fa:"\f78d"}.fa-shoelace{--fa:"\e60c"}.fa-mdb{--fa:"\f8ca"}.fa-dochub{--fa:"\f394"}.fa-accessible-icon{--fa:"\f368"}.fa-ebay{--fa:"\f4f4"}.fa-amazon{--fa:"\f270"}.fa-unsplash{--fa:"\e07c"}.fa-yarn{--fa:"\f7e3"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-500px{--fa:"\f26e"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-asymmetrik{--fa:"\f372"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-gratipay{--fa:"\f184"}.fa-apple{--fa:"\f179"}.fa-hive{--fa:"\e07f"}.fa-gitkraken{--fa:"\f3a6"}.fa-keybase{--fa:"\f4f5"}.fa-apple-pay{--fa:"\f415"}.fa-padlet{--fa:"\e4a0"}.fa-amazon-pay{--fa:"\f42c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-stumbleupon{--fa:"\f1a4"}.fa-fedex{--fa:"\f797"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-shopify{--fa:"\e057"}.fa-neos{--fa:"\f612"}.fa-square-threads{--fa:"\e619"}.fa-hackerrank{--fa:"\f5f7"}.fa-researchgate{--fa:"\f4f8"}.fa-swift{--fa:"\f8e1"}.fa-angular{--fa:"\f420"}.fa-speakap{--fa:"\f3f3"}.fa-angrycreative{--fa:"\f36e"}.fa-y-combinator{--fa:"\f23b"}.fa-empire{--fa:"\f1d1"}.fa-envira{--fa:"\f299"}.fa-google-scholar{--fa:"\e63b"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-studiovinari{--fa:"\f3f8"}.fa-pied-piper{--fa:"\f2ae"}.fa-wordpress{--fa:"\f19a"}.fa-product-hunt{--fa:"\f288"}.fa-firefox{--fa:"\f269"}.fa-linode{--fa:"\f2b8"}.fa-goodreads{--fa:"\f3a8"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-jsfiddle{--fa:"\f1cc"}.fa-sith{--fa:"\f512"}.fa-themeisle{--fa:"\f2b2"}.fa-page4{--fa:"\f3d7"}.fa-hashnode{--fa:"\e499"}.fa-react{--fa:"\f41b"}.fa-cc-paypal{--fa:"\f1f4"}.fa-squarespace{--fa:"\f5be"}.fa-cc-stripe{--fa:"\f1f5"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-bitcoin{--fa:"\f379"}.fa-keycdn{--fa:"\f3ba"}.fa-opera{--fa:"\f26a"}.fa-itch-io{--fa:"\f83a"}.fa-umbraco{--fa:"\f8e8"}.fa-galactic-senate{--fa:"\f50d"}.fa-ubuntu{--fa:"\f7df"}.fa-draft2digital{--fa:"\f396"}.fa-stripe{--fa:"\f429"}.fa-houzz{--fa:"\f27c"}.fa-gg{--fa:"\f260"}.fa-dhl{--fa:"\f790"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-xing{--fa:"\f168"}.fa-blackberry{--fa:"\f37b"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-playstation{--fa:"\f3df"}.fa-quinscape{--fa:"\f459"}.fa-less{--fa:"\f41d"}.fa-blogger-b{--fa:"\f37d"}.fa-opencart{--fa:"\f23d"}.fa-vine{--fa:"\f1ca"}.fa-signal-messenger{--fa:"\e663"}.fa-paypal{--fa:"\f1ed"}.fa-gitlab{--fa:"\f296"}.fa-typo3{--fa:"\f42b"}.fa-reddit-alien{--fa:"\f281"}.fa-yahoo{--fa:"\f19e"}.fa-dailymotion{--fa:"\e052"}.fa-affiliatetheme{--fa:"\f36b"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-bootstrap{--fa:"\f836"}.fa-odnoklassniki{--fa:"\f263"}.fa-nfc-symbol{--fa:"\e531"}.fa-mintbit{--fa:"\e62f"}.fa-ethereum{--fa:"\f42e"}.fa-speaker-deck{--fa:"\f83c"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-patreon{--fa:"\f3d9"}.fa-avianex{--fa:"\f374"}.fa-ello{--fa:"\f5f1"}.fa-gofore{--fa:"\f3a7"}.fa-bimobject{--fa:"\f378"}.fa-brave-reverse{--fa:"\e63d"}.fa-facebook-f{--fa:"\f39e"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-web-awesome{--fa:"\e682"}.fa-mandalorian{--fa:"\f50f"}.fa-first-order-alt{--fa:"\f50a"}.fa-osi{--fa:"\f41a"}.fa-google-wallet{--fa:"\f1ee"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-periscope{--fa:"\f3da"}.fa-fulcrum{--fa:"\f50b"}.fa-cloudscale{--fa:"\f383"}.fa-forumbee{--fa:"\f211"}.fa-mizuni{--fa:"\f3cc"}.fa-schlix{--fa:"\f3ea"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-bandcamp{--fa:"\f2d5"}.fa-wpforms{--fa:"\f298"}.fa-cloudversify{--fa:"\f385"}.fa-usps{--fa:"\f7e1"}.fa-megaport{--fa:"\f5a3"}.fa-magento{--fa:"\f3c4"}.fa-spotify{--fa:"\f1bc"}.fa-optin-monster{--fa:"\f23c"}.fa-fly{--fa:"\f417"}.fa-square-bluesky{--fa:"\e6a3"}.fa-aviato{--fa:"\f421"}.fa-itunes{--fa:"\f3b4"}.fa-cuttlefish{--fa:"\f38c"}.fa-blogger{--fa:"\f37c"}.fa-flickr{--fa:"\f16e"}.fa-viber{--fa:"\f409"}.fa-soundcloud{--fa:"\f1be"}.fa-digg{--fa:"\f1a6"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-letterboxd{--fa:"\e62d"}.fa-symfony{--fa:"\f83d"}.fa-maxcdn{--fa:"\f136"}.fa-etsy{--fa:"\f2d7"}.fa-facebook-messenger{--fa:"\f39f"}.fa-audible{--fa:"\f373"}.fa-think-peaks{--fa:"\f731"}.fa-bilibili{--fa:"\e3d9"}.fa-erlang{--fa:"\f39d"}.fa-x-twitter{--fa:"\e61b"}.fa-cotton-bureau{--fa:"\f89e"}.fa-dashcube{--fa:"\f210"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-stack-exchange{--fa:"\f18d"}.fa-elementor{--fa:"\f430"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-palfed{--fa:"\f3d8"}.fa-superpowers{--fa:"\f2dd"}.fa-resolving{--fa:"\f3e7"}.fa-xbox{--fa:"\f412"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-searchengin{--fa:"\f3eb"}.fa-tiktok{--fa:"\e07b"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-renren{--fa:"\f18b"}.fa-linux{--fa:"\f17c"}.fa-glide{--fa:"\f2a5"}.fa-linkedin{--fa:"\f08c"}.fa-hubspot{--fa:"\f3b2"}.fa-deploydog{--fa:"\f38e"}.fa-twitch{--fa:"\f1e8"}.fa-flutter{--fa:"\e694"}.fa-ravelry{--fa:"\f2d9"}.fa-mixer{--fa:"\e056"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-vimeo{--fa:"\f40a"}.fa-mendeley{--fa:"\f7b3"}.fa-uniregistry{--fa:"\f404"}.fa-figma{--fa:"\f799"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-dropbox{--fa:"\f16b"}.fa-instagram{--fa:"\f16d"}.fa-cmplid{--fa:"\e360"}.fa-upwork{--fa:"\e641"}.fa-facebook{--fa:"\f09a"}.fa-gripfire{--fa:"\f3ac"}.fa-jedi-order{--fa:"\f50e"}.fa-uikit{--fa:"\f403"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-phabricator{--fa:"\f3db"}.fa-ussunnah{--fa:"\f407"}.fa-earlybirds{--fa:"\f39a"}.fa-trade-federation{--fa:"\f513"}.fa-autoprefixer{--fa:"\f41c"}.fa-whatsapp{--fa:"\f232"}.fa-square-upwork{--fa:"\e67c"}.fa-slideshare{--fa:"\f1e7"}.fa-google-play{--fa:"\f3ab"}.fa-viadeo{--fa:"\f2a9"}.fa-line{--fa:"\f3c0"}.fa-google-drive{--fa:"\f3aa"}.fa-servicestack{--fa:"\f3ec"}.fa-simplybuilt{--fa:"\f215"}.fa-bitbucket{--fa:"\f171"}.fa-imdb{--fa:"\f2d8"}.fa-deezer{--fa:"\e077"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-jira{--fa:"\f7b1"}.fa-docker{--fa:"\f395"}.fa-screenpal{--fa:"\e570"}.fa-bluetooth{--fa:"\f293"}.fa-gitter{--fa:"\f426"}.fa-d-and-d{--fa:"\f38d"}.fa-microblog{--fa:"\e01a"}.fa-cc-diners-club{--fa:"\f24c"}.fa-gg-circle{--fa:"\f261"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-yandex{--fa:"\f413"}.fa-readme{--fa:"\f4d5"}.fa-html5{--fa:"\f13b"}.fa-sellsy{--fa:"\f213"}.fa-square-web-awesome{--fa:"\e683"}.fa-sass{--fa:"\f41e"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-buromobelexperte{--fa:"\f37f"}.fa-salesforce{--fa:"\f83b"}.fa-octopus-deploy{--fa:"\e082"}.fa-medapps{--fa:"\f3c6"}.fa-ns8{--fa:"\f3d5"}.fa-pinterest-p{--fa:"\f231"}.fa-apper{--fa:"\f371"}.fa-fort-awesome{--fa:"\f286"}.fa-waze{--fa:"\f83f"}.fa-bluesky{--fa:"\e671"}.fa-cc-jcb{--fa:"\f24b"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-rust{--fa:"\e07a"}.fa-wix{--fa:"\f5cf"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-supple{--fa:"\f3f9"}.fa-webflow{--fa:"\e65c"}.fa-rebel{--fa:"\f1d0"}.fa-css3{--fa:"\f13c"}.fa-staylinked{--fa:"\f3f5"}.fa-kaggle{--fa:"\f5fa"}.fa-space-awesome{--fa:"\e5ac"}.fa-deviantart{--fa:"\f1bd"}.fa-cpanel{--fa:"\f388"}.fa-goodreads-g{--fa:"\f3a9"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-trello{--fa:"\f181"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-get-pocket{--fa:"\f265"}.fa-perbyte{--fa:"\e083"}.fa-grunt{--fa:"\f3ad"}.fa-weebly{--fa:"\f5cc"}.fa-connectdevelop{--fa:"\f20e"}.fa-leanpub{--fa:"\f212"}.fa-black-tie{--fa:"\f27e"}.fa-themeco{--fa:"\f5c6"}.fa-python{--fa:"\f3e2"}.fa-android{--fa:"\f17b"}.fa-bots{--fa:"\e340"}.fa-free-code-camp{--fa:"\f2c5"}.fa-hornbill{--fa:"\f592"}.fa-js{--fa:"\f3b8"}.fa-ideal{--fa:"\e013"}.fa-git{--fa:"\f1d3"}.fa-dev{--fa:"\f6cc"}.fa-sketch{--fa:"\f7c6"}.fa-yandex-international{--fa:"\f414"}.fa-cc-amex{--fa:"\f1f3"}.fa-uber{--fa:"\f402"}.fa-github{--fa:"\f09b"}.fa-php{--fa:"\f457"}.fa-alipay{--fa:"\f642"}.fa-youtube{--fa:"\f167"}.fa-skyatlas{--fa:"\f216"}.fa-firefox-browser{--fa:"\e007"}.fa-replyd{--fa:"\f3e6"}.fa-suse{--fa:"\f7d6"}.fa-jenkins{--fa:"\f3b6"}.fa-twitter{--fa:"\f099"}.fa-rockrms{--fa:"\f3e9"}.fa-pinterest{--fa:"\f0d2"}.fa-buffer{--fa:"\f837"}.fa-npm{--fa:"\f3d4"}.fa-yammer{--fa:"\f840"}.fa-btc{--fa:"\f15a"}.fa-dribbble{--fa:"\f17d"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-internet-explorer{--fa:"\f26b"}.fa-stubber{--fa:"\e5c7"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-old-republic{--fa:"\f510"}.fa-odysee{--fa:"\e5c6"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-node-js{--fa:"\f3d3"}.fa-edge-legacy{--fa:"\e078"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-medrt{--fa:"\f3c8"}.fa-usb{--fa:"\f287"}.fa-tumblr{--fa:"\f173"}.fa-vaadin{--fa:"\f408"}.fa-quora{--fa:"\f2c4"}.fa-square-x-twitter{--fa:"\e61a"}.fa-reacteurope{--fa:"\f75d"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-amilia{--fa:"\f36d"}.fa-mixcloud{--fa:"\f289"}.fa-flipboard{--fa:"\f44d"}.fa-viacoin{--fa:"\f237"}.fa-critical-role{--fa:"\f6c9"}.fa-sitrox{--fa:"\e44a"}.fa-discourse{--fa:"\f393"}.fa-joomla{--fa:"\f1aa"}.fa-mastodon{--fa:"\f4f6"}.fa-airbnb{--fa:"\f834"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-buy-n-large{--fa:"\f8a6"}.fa-gulp{--fa:"\f3ae"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-strava{--fa:"\f428"}.fa-ember{--fa:"\f423"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-teamspeak{--fa:"\f4f9"}.fa-pushed{--fa:"\f3e1"}.fa-wordpress-simple{--fa:"\f411"}.fa-nutritionix{--fa:"\f3d6"}.fa-wodu{--fa:"\e088"}.fa-google-pay{--fa:"\e079"}.fa-intercom{--fa:"\f7af"}.fa-zhihu{--fa:"\f63f"}.fa-korvue{--fa:"\f42f"}.fa-pix{--fa:"\e43a"}.fa-steam-symbol{--fa:"\f3f6"} \ No newline at end of file diff --git a/docs/static/fontawesome/css/fontawesome.min.css b/docs/static/fontawesome/css/fontawesome.min.css new file mode 100644 index 000000000..67acf84da --- /dev/null +++ b/docs/static/fontawesome/css/fontawesome.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-regular,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-brands:before,.fa-regular:before,.fa-solid:before,.fa:before,.fab:before,.far:before,.fas:before{content:var(--fa)}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0{--fa:"\30";--fa--fa:"\30\30"}.fa-1{--fa:"\31";--fa--fa:"\31\31"}.fa-2{--fa:"\32";--fa--fa:"\32\32"}.fa-3{--fa:"\33";--fa--fa:"\33\33"}.fa-4{--fa:"\34";--fa--fa:"\34\34"}.fa-5{--fa:"\35";--fa--fa:"\35\35"}.fa-6{--fa:"\36";--fa--fa:"\36\36"}.fa-7{--fa:"\37";--fa--fa:"\37\37"}.fa-8{--fa:"\38";--fa--fa:"\38\38"}.fa-9{--fa:"\39";--fa--fa:"\39\39"}.fa-fill-drip{--fa:"\f576";--fa--fa:"\f576\f576"}.fa-arrows-to-circle{--fa:"\e4bd";--fa--fa:"\e4bd\e4bd"}.fa-chevron-circle-right,.fa-circle-chevron-right{--fa:"\f138";--fa--fa:"\f138\f138"}.fa-at{--fa:"\40";--fa--fa:"\40\40"}.fa-trash-alt,.fa-trash-can{--fa:"\f2ed";--fa--fa:"\f2ed\f2ed"}.fa-text-height{--fa:"\f034";--fa--fa:"\f034\f034"}.fa-user-times,.fa-user-xmark{--fa:"\f235";--fa--fa:"\f235\f235"}.fa-stethoscope{--fa:"\f0f1";--fa--fa:"\f0f1\f0f1"}.fa-comment-alt,.fa-message{--fa:"\f27a";--fa--fa:"\f27a\f27a"}.fa-info{--fa:"\f129";--fa--fa:"\f129\f129"}.fa-compress-alt,.fa-down-left-and-up-right-to-center{--fa:"\f422";--fa--fa:"\f422\f422"}.fa-explosion{--fa:"\e4e9";--fa--fa:"\e4e9\e4e9"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\f15c";--fa--fa:"\f15c\f15c"}.fa-wave-square{--fa:"\f83e";--fa--fa:"\f83e\f83e"}.fa-ring{--fa:"\f70b";--fa--fa:"\f70b\f70b"}.fa-building-un{--fa:"\e4d9";--fa--fa:"\e4d9\e4d9"}.fa-dice-three{--fa:"\f527";--fa--fa:"\f527\f527"}.fa-calendar-alt,.fa-calendar-days{--fa:"\f073";--fa--fa:"\f073\f073"}.fa-anchor-circle-check{--fa:"\e4aa";--fa--fa:"\e4aa\e4aa"}.fa-building-circle-arrow-right{--fa:"\e4d1";--fa--fa:"\e4d1\e4d1"}.fa-volleyball,.fa-volleyball-ball{--fa:"\f45f";--fa--fa:"\f45f\f45f"}.fa-arrows-up-to-line{--fa:"\e4c2";--fa--fa:"\e4c2\e4c2"}.fa-sort-desc,.fa-sort-down{--fa:"\f0dd";--fa--fa:"\f0dd\f0dd"}.fa-circle-minus,.fa-minus-circle{--fa:"\f056";--fa--fa:"\f056\f056"}.fa-door-open{--fa:"\f52b";--fa--fa:"\f52b\f52b"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\f2f5";--fa--fa:"\f2f5\f2f5"}.fa-atom{--fa:"\f5d2";--fa--fa:"\f5d2\f5d2"}.fa-soap{--fa:"\e06e";--fa--fa:"\e06e\e06e"}.fa-heart-music-camera-bolt,.fa-icons{--fa:"\f86d";--fa--fa:"\f86d\f86d"}.fa-microphone-alt-slash,.fa-microphone-lines-slash{--fa:"\f539";--fa--fa:"\f539\f539"}.fa-bridge-circle-check{--fa:"\e4c9";--fa--fa:"\e4c9\e4c9"}.fa-pump-medical{--fa:"\e06a";--fa--fa:"\e06a\e06a"}.fa-fingerprint{--fa:"\f577";--fa--fa:"\f577\f577"}.fa-hand-point-right{--fa:"\f0a4";--fa--fa:"\f0a4\f0a4"}.fa-magnifying-glass-location,.fa-search-location{--fa:"\f689";--fa--fa:"\f689\f689"}.fa-forward-step,.fa-step-forward{--fa:"\f051";--fa--fa:"\f051\f051"}.fa-face-smile-beam,.fa-smile-beam{--fa:"\f5b8";--fa--fa:"\f5b8\f5b8"}.fa-flag-checkered{--fa:"\f11e";--fa--fa:"\f11e\f11e"}.fa-football,.fa-football-ball{--fa:"\f44e";--fa--fa:"\f44e\f44e"}.fa-school-circle-exclamation{--fa:"\e56c";--fa--fa:"\e56c\e56c"}.fa-crop{--fa:"\f125";--fa--fa:"\f125\f125"}.fa-angle-double-down,.fa-angles-down{--fa:"\f103";--fa--fa:"\f103\f103"}.fa-users-rectangle{--fa:"\e594";--fa--fa:"\e594\e594"}.fa-people-roof{--fa:"\e537";--fa--fa:"\e537\e537"}.fa-people-line{--fa:"\e534";--fa--fa:"\e534\e534"}.fa-beer,.fa-beer-mug-empty{--fa:"\f0fc";--fa--fa:"\f0fc\f0fc"}.fa-diagram-predecessor{--fa:"\e477";--fa--fa:"\e477\e477"}.fa-arrow-up-long,.fa-long-arrow-up{--fa:"\f176";--fa--fa:"\f176\f176"}.fa-burn,.fa-fire-flame-simple{--fa:"\f46a";--fa--fa:"\f46a\f46a"}.fa-male,.fa-person{--fa:"\f183";--fa--fa:"\f183\f183"}.fa-laptop{--fa:"\f109";--fa--fa:"\f109\f109"}.fa-file-csv{--fa:"\f6dd";--fa--fa:"\f6dd\f6dd"}.fa-menorah{--fa:"\f676";--fa--fa:"\f676\f676"}.fa-truck-plane{--fa:"\e58f";--fa--fa:"\e58f\e58f"}.fa-record-vinyl{--fa:"\f8d9";--fa--fa:"\f8d9\f8d9"}.fa-face-grin-stars,.fa-grin-stars{--fa:"\f587";--fa--fa:"\f587\f587"}.fa-bong{--fa:"\f55c";--fa--fa:"\f55c\f55c"}.fa-pastafarianism,.fa-spaghetti-monster-flying{--fa:"\f67b";--fa--fa:"\f67b\f67b"}.fa-arrow-down-up-across-line{--fa:"\e4af";--fa--fa:"\e4af\e4af"}.fa-spoon,.fa-utensil-spoon{--fa:"\f2e5";--fa--fa:"\f2e5\f2e5"}.fa-jar-wheat{--fa:"\e517";--fa--fa:"\e517\e517"}.fa-envelopes-bulk,.fa-mail-bulk{--fa:"\f674";--fa--fa:"\f674\f674"}.fa-file-circle-exclamation{--fa:"\e4eb";--fa--fa:"\e4eb\e4eb"}.fa-circle-h,.fa-hospital-symbol{--fa:"\f47e";--fa--fa:"\f47e\f47e"}.fa-pager{--fa:"\f815";--fa--fa:"\f815\f815"}.fa-address-book,.fa-contact-book{--fa:"\f2b9";--fa--fa:"\f2b9\f2b9"}.fa-strikethrough{--fa:"\f0cc";--fa--fa:"\f0cc\f0cc"}.fa-k{--fa:"\4b";--fa--fa:"\4b\4b"}.fa-landmark-flag{--fa:"\e51c";--fa--fa:"\e51c\e51c"}.fa-pencil,.fa-pencil-alt{--fa:"\f303";--fa--fa:"\f303\f303"}.fa-backward{--fa:"\f04a";--fa--fa:"\f04a\f04a"}.fa-caret-right{--fa:"\f0da";--fa--fa:"\f0da\f0da"}.fa-comments{--fa:"\f086";--fa--fa:"\f086\f086"}.fa-file-clipboard,.fa-paste{--fa:"\f0ea";--fa--fa:"\f0ea\f0ea"}.fa-code-pull-request{--fa:"\e13c";--fa--fa:"\e13c\e13c"}.fa-clipboard-list{--fa:"\f46d";--fa--fa:"\f46d\f46d"}.fa-truck-loading,.fa-truck-ramp-box{--fa:"\f4de";--fa--fa:"\f4de\f4de"}.fa-user-check{--fa:"\f4fc";--fa--fa:"\f4fc\f4fc"}.fa-vial-virus{--fa:"\e597";--fa--fa:"\e597\e597"}.fa-sheet-plastic{--fa:"\e571";--fa--fa:"\e571\e571"}.fa-blog{--fa:"\f781";--fa--fa:"\f781\f781"}.fa-user-ninja{--fa:"\f504";--fa--fa:"\f504\f504"}.fa-person-arrow-up-from-line{--fa:"\e539";--fa--fa:"\e539\e539"}.fa-scroll-torah,.fa-torah{--fa:"\f6a0";--fa--fa:"\f6a0\f6a0"}.fa-broom-ball,.fa-quidditch,.fa-quidditch-broom-ball{--fa:"\f458";--fa--fa:"\f458\f458"}.fa-toggle-off{--fa:"\f204";--fa--fa:"\f204\f204"}.fa-archive,.fa-box-archive{--fa:"\f187";--fa--fa:"\f187\f187"}.fa-person-drowning{--fa:"\e545";--fa--fa:"\e545\e545"}.fa-arrow-down-9-1,.fa-sort-numeric-desc,.fa-sort-numeric-down-alt{--fa:"\f886";--fa--fa:"\f886\f886"}.fa-face-grin-tongue-squint,.fa-grin-tongue-squint{--fa:"\f58a";--fa--fa:"\f58a\f58a"}.fa-spray-can{--fa:"\f5bd";--fa--fa:"\f5bd\f5bd"}.fa-truck-monster{--fa:"\f63b";--fa--fa:"\f63b\f63b"}.fa-w{--fa:"\57";--fa--fa:"\57\57"}.fa-earth-africa,.fa-globe-africa{--fa:"\f57c";--fa--fa:"\f57c\f57c"}.fa-rainbow{--fa:"\f75b";--fa--fa:"\f75b\f75b"}.fa-circle-notch{--fa:"\f1ce";--fa--fa:"\f1ce\f1ce"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\f3fa";--fa--fa:"\f3fa\f3fa"}.fa-paw{--fa:"\f1b0";--fa--fa:"\f1b0\f1b0"}.fa-cloud{--fa:"\f0c2";--fa--fa:"\f0c2\f0c2"}.fa-trowel-bricks{--fa:"\e58a";--fa--fa:"\e58a\e58a"}.fa-face-flushed,.fa-flushed{--fa:"\f579";--fa--fa:"\f579\f579"}.fa-hospital-user{--fa:"\f80d";--fa--fa:"\f80d\f80d"}.fa-tent-arrow-left-right{--fa:"\e57f";--fa--fa:"\e57f\e57f"}.fa-gavel,.fa-legal{--fa:"\f0e3";--fa--fa:"\f0e3\f0e3"}.fa-binoculars{--fa:"\f1e5";--fa--fa:"\f1e5\f1e5"}.fa-microphone-slash{--fa:"\f131";--fa--fa:"\f131\f131"}.fa-box-tissue{--fa:"\e05b";--fa--fa:"\e05b\e05b"}.fa-motorcycle{--fa:"\f21c";--fa--fa:"\f21c\f21c"}.fa-bell-concierge,.fa-concierge-bell{--fa:"\f562";--fa--fa:"\f562\f562"}.fa-pen-ruler,.fa-pencil-ruler{--fa:"\f5ae";--fa--fa:"\f5ae\f5ae"}.fa-people-arrows,.fa-people-arrows-left-right{--fa:"\e068";--fa--fa:"\e068\e068"}.fa-mars-and-venus-burst{--fa:"\e523";--fa--fa:"\e523\e523"}.fa-caret-square-right,.fa-square-caret-right{--fa:"\f152";--fa--fa:"\f152\f152"}.fa-cut,.fa-scissors{--fa:"\f0c4";--fa--fa:"\f0c4\f0c4"}.fa-sun-plant-wilt{--fa:"\e57a";--fa--fa:"\e57a\e57a"}.fa-toilets-portable{--fa:"\e584";--fa--fa:"\e584\e584"}.fa-hockey-puck{--fa:"\f453";--fa--fa:"\f453\f453"}.fa-table{--fa:"\f0ce";--fa--fa:"\f0ce\f0ce"}.fa-magnifying-glass-arrow-right{--fa:"\e521";--fa--fa:"\e521\e521"}.fa-digital-tachograph,.fa-tachograph-digital{--fa:"\f566";--fa--fa:"\f566\f566"}.fa-users-slash{--fa:"\e073";--fa--fa:"\e073\e073"}.fa-clover{--fa:"\e139";--fa--fa:"\e139\e139"}.fa-mail-reply,.fa-reply{--fa:"\f3e5";--fa--fa:"\f3e5\f3e5"}.fa-star-and-crescent{--fa:"\f699";--fa--fa:"\f699\f699"}.fa-house-fire{--fa:"\e50c";--fa--fa:"\e50c\e50c"}.fa-minus-square,.fa-square-minus{--fa:"\f146";--fa--fa:"\f146\f146"}.fa-helicopter{--fa:"\f533";--fa--fa:"\f533\f533"}.fa-compass{--fa:"\f14e";--fa--fa:"\f14e\f14e"}.fa-caret-square-down,.fa-square-caret-down{--fa:"\f150";--fa--fa:"\f150\f150"}.fa-file-circle-question{--fa:"\e4ef";--fa--fa:"\e4ef\e4ef"}.fa-laptop-code{--fa:"\f5fc";--fa--fa:"\f5fc\f5fc"}.fa-swatchbook{--fa:"\f5c3";--fa--fa:"\f5c3\f5c3"}.fa-prescription-bottle{--fa:"\f485";--fa--fa:"\f485\f485"}.fa-bars,.fa-navicon{--fa:"\f0c9";--fa--fa:"\f0c9\f0c9"}.fa-people-group{--fa:"\e533";--fa--fa:"\e533\e533"}.fa-hourglass-3,.fa-hourglass-end{--fa:"\f253";--fa--fa:"\f253\f253"}.fa-heart-broken,.fa-heart-crack{--fa:"\f7a9";--fa--fa:"\f7a9\f7a9"}.fa-external-link-square-alt,.fa-square-up-right{--fa:"\f360";--fa--fa:"\f360\f360"}.fa-face-kiss-beam,.fa-kiss-beam{--fa:"\f597";--fa--fa:"\f597\f597"}.fa-film{--fa:"\f008";--fa--fa:"\f008\f008"}.fa-ruler-horizontal{--fa:"\f547";--fa--fa:"\f547\f547"}.fa-people-robbery{--fa:"\e536";--fa--fa:"\e536\e536"}.fa-lightbulb{--fa:"\f0eb";--fa--fa:"\f0eb\f0eb"}.fa-caret-left{--fa:"\f0d9";--fa--fa:"\f0d9\f0d9"}.fa-circle-exclamation,.fa-exclamation-circle{--fa:"\f06a";--fa--fa:"\f06a\f06a"}.fa-school-circle-xmark{--fa:"\e56d";--fa--fa:"\e56d\e56d"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\f08b";--fa--fa:"\f08b\f08b"}.fa-chevron-circle-down,.fa-circle-chevron-down{--fa:"\f13a";--fa--fa:"\f13a\f13a"}.fa-unlock-alt,.fa-unlock-keyhole{--fa:"\f13e";--fa--fa:"\f13e\f13e"}.fa-cloud-showers-heavy{--fa:"\f740";--fa--fa:"\f740\f740"}.fa-headphones-alt,.fa-headphones-simple{--fa:"\f58f";--fa--fa:"\f58f\f58f"}.fa-sitemap{--fa:"\f0e8";--fa--fa:"\f0e8\f0e8"}.fa-circle-dollar-to-slot,.fa-donate{--fa:"\f4b9";--fa--fa:"\f4b9\f4b9"}.fa-memory{--fa:"\f538";--fa--fa:"\f538\f538"}.fa-road-spikes{--fa:"\e568";--fa--fa:"\e568\e568"}.fa-fire-burner{--fa:"\e4f1";--fa--fa:"\e4f1\e4f1"}.fa-flag{--fa:"\f024";--fa--fa:"\f024\f024"}.fa-hanukiah{--fa:"\f6e6";--fa--fa:"\f6e6\f6e6"}.fa-feather{--fa:"\f52d";--fa--fa:"\f52d\f52d"}.fa-volume-down,.fa-volume-low{--fa:"\f027";--fa--fa:"\f027\f027"}.fa-comment-slash{--fa:"\f4b3";--fa--fa:"\f4b3\f4b3"}.fa-cloud-sun-rain{--fa:"\f743";--fa--fa:"\f743\f743"}.fa-compress{--fa:"\f066";--fa--fa:"\f066\f066"}.fa-wheat-alt,.fa-wheat-awn{--fa:"\e2cd";--fa--fa:"\e2cd\e2cd"}.fa-ankh{--fa:"\f644";--fa--fa:"\f644\f644"}.fa-hands-holding-child{--fa:"\e4fa";--fa--fa:"\e4fa\e4fa"}.fa-asterisk{--fa:"\2a";--fa--fa:"\2a\2a"}.fa-check-square,.fa-square-check{--fa:"\f14a";--fa--fa:"\f14a\f14a"}.fa-peseta-sign{--fa:"\e221";--fa--fa:"\e221\e221"}.fa-header,.fa-heading{--fa:"\f1dc";--fa--fa:"\f1dc\f1dc"}.fa-ghost{--fa:"\f6e2";--fa--fa:"\f6e2\f6e2"}.fa-list,.fa-list-squares{--fa:"\f03a";--fa--fa:"\f03a\f03a"}.fa-phone-square-alt,.fa-square-phone-flip{--fa:"\f87b";--fa--fa:"\f87b\f87b"}.fa-cart-plus{--fa:"\f217";--fa--fa:"\f217\f217"}.fa-gamepad{--fa:"\f11b";--fa--fa:"\f11b\f11b"}.fa-circle-dot,.fa-dot-circle{--fa:"\f192";--fa--fa:"\f192\f192"}.fa-dizzy,.fa-face-dizzy{--fa:"\f567";--fa--fa:"\f567\f567"}.fa-egg{--fa:"\f7fb";--fa--fa:"\f7fb\f7fb"}.fa-house-medical-circle-xmark{--fa:"\e513";--fa--fa:"\e513\e513"}.fa-campground{--fa:"\f6bb";--fa--fa:"\f6bb\f6bb"}.fa-folder-plus{--fa:"\f65e";--fa--fa:"\f65e\f65e"}.fa-futbol,.fa-futbol-ball,.fa-soccer-ball{--fa:"\f1e3";--fa--fa:"\f1e3\f1e3"}.fa-paint-brush,.fa-paintbrush{--fa:"\f1fc";--fa--fa:"\f1fc\f1fc"}.fa-lock{--fa:"\f023";--fa--fa:"\f023\f023"}.fa-gas-pump{--fa:"\f52f";--fa--fa:"\f52f\f52f"}.fa-hot-tub,.fa-hot-tub-person{--fa:"\f593";--fa--fa:"\f593\f593"}.fa-map-location,.fa-map-marked{--fa:"\f59f";--fa--fa:"\f59f\f59f"}.fa-house-flood-water{--fa:"\e50e";--fa--fa:"\e50e\e50e"}.fa-tree{--fa:"\f1bb";--fa--fa:"\f1bb\f1bb"}.fa-bridge-lock{--fa:"\e4cc";--fa--fa:"\e4cc\e4cc"}.fa-sack-dollar{--fa:"\f81d";--fa--fa:"\f81d\f81d"}.fa-edit,.fa-pen-to-square{--fa:"\f044";--fa--fa:"\f044\f044"}.fa-car-side{--fa:"\f5e4";--fa--fa:"\f5e4\f5e4"}.fa-share-alt,.fa-share-nodes{--fa:"\f1e0";--fa--fa:"\f1e0\f1e0"}.fa-heart-circle-minus{--fa:"\e4ff";--fa--fa:"\e4ff\e4ff"}.fa-hourglass-2,.fa-hourglass-half{--fa:"\f252";--fa--fa:"\f252\f252"}.fa-microscope{--fa:"\f610";--fa--fa:"\f610\f610"}.fa-sink{--fa:"\e06d";--fa--fa:"\e06d\e06d"}.fa-bag-shopping,.fa-shopping-bag{--fa:"\f290";--fa--fa:"\f290\f290"}.fa-arrow-down-z-a,.fa-sort-alpha-desc,.fa-sort-alpha-down-alt{--fa:"\f881";--fa--fa:"\f881\f881"}.fa-mitten{--fa:"\f7b5";--fa--fa:"\f7b5\f7b5"}.fa-person-rays{--fa:"\e54d";--fa--fa:"\e54d\e54d"}.fa-users{--fa:"\f0c0";--fa--fa:"\f0c0\f0c0"}.fa-eye-slash{--fa:"\f070";--fa--fa:"\f070\f070"}.fa-flask-vial{--fa:"\e4f3";--fa--fa:"\e4f3\e4f3"}.fa-hand,.fa-hand-paper{--fa:"\f256";--fa--fa:"\f256\f256"}.fa-om{--fa:"\f679";--fa--fa:"\f679\f679"}.fa-worm{--fa:"\e599";--fa--fa:"\e599\e599"}.fa-house-circle-xmark{--fa:"\e50b";--fa--fa:"\e50b\e50b"}.fa-plug{--fa:"\f1e6";--fa--fa:"\f1e6\f1e6"}.fa-chevron-up{--fa:"\f077";--fa--fa:"\f077\f077"}.fa-hand-spock{--fa:"\f259";--fa--fa:"\f259\f259"}.fa-stopwatch{--fa:"\f2f2";--fa--fa:"\f2f2\f2f2"}.fa-face-kiss,.fa-kiss{--fa:"\f596";--fa--fa:"\f596\f596"}.fa-bridge-circle-xmark{--fa:"\e4cb";--fa--fa:"\e4cb\e4cb"}.fa-face-grin-tongue,.fa-grin-tongue{--fa:"\f589";--fa--fa:"\f589\f589"}.fa-chess-bishop{--fa:"\f43a";--fa--fa:"\f43a\f43a"}.fa-face-grin-wink,.fa-grin-wink{--fa:"\f58c";--fa--fa:"\f58c\f58c"}.fa-deaf,.fa-deafness,.fa-ear-deaf,.fa-hard-of-hearing{--fa:"\f2a4";--fa--fa:"\f2a4\f2a4"}.fa-road-circle-check{--fa:"\e564";--fa--fa:"\e564\e564"}.fa-dice-five{--fa:"\f523";--fa--fa:"\f523\f523"}.fa-rss-square,.fa-square-rss{--fa:"\f143";--fa--fa:"\f143\f143"}.fa-land-mine-on{--fa:"\e51b";--fa--fa:"\e51b\e51b"}.fa-i-cursor{--fa:"\f246";--fa--fa:"\f246\f246"}.fa-stamp{--fa:"\f5bf";--fa--fa:"\f5bf\f5bf"}.fa-stairs{--fa:"\e289";--fa--fa:"\e289\e289"}.fa-i{--fa:"\49";--fa--fa:"\49\49"}.fa-hryvnia,.fa-hryvnia-sign{--fa:"\f6f2";--fa--fa:"\f6f2\f6f2"}.fa-pills{--fa:"\f484";--fa--fa:"\f484\f484"}.fa-face-grin-wide,.fa-grin-alt{--fa:"\f581";--fa--fa:"\f581\f581"}.fa-tooth{--fa:"\f5c9";--fa--fa:"\f5c9\f5c9"}.fa-v{--fa:"\56";--fa--fa:"\56\56"}.fa-bangladeshi-taka-sign{--fa:"\e2e6";--fa--fa:"\e2e6\e2e6"}.fa-bicycle{--fa:"\f206";--fa--fa:"\f206\f206"}.fa-rod-asclepius,.fa-rod-snake,.fa-staff-aesculapius,.fa-staff-snake{--fa:"\e579";--fa--fa:"\e579\e579"}.fa-head-side-cough-slash{--fa:"\e062";--fa--fa:"\e062\e062"}.fa-ambulance,.fa-truck-medical{--fa:"\f0f9";--fa--fa:"\f0f9\f0f9"}.fa-wheat-awn-circle-exclamation{--fa:"\e598";--fa--fa:"\e598\e598"}.fa-snowman{--fa:"\f7d0";--fa--fa:"\f7d0\f7d0"}.fa-mortar-pestle{--fa:"\f5a7";--fa--fa:"\f5a7\f5a7"}.fa-road-barrier{--fa:"\e562";--fa--fa:"\e562\e562"}.fa-school{--fa:"\f549";--fa--fa:"\f549\f549"}.fa-igloo{--fa:"\f7ae";--fa--fa:"\f7ae\f7ae"}.fa-joint{--fa:"\f595";--fa--fa:"\f595\f595"}.fa-angle-right{--fa:"\f105";--fa--fa:"\f105\f105"}.fa-horse{--fa:"\f6f0";--fa--fa:"\f6f0\f6f0"}.fa-q{--fa:"\51";--fa--fa:"\51\51"}.fa-g{--fa:"\47";--fa--fa:"\47\47"}.fa-notes-medical{--fa:"\f481";--fa--fa:"\f481\f481"}.fa-temperature-2,.fa-temperature-half,.fa-thermometer-2,.fa-thermometer-half{--fa:"\f2c9";--fa--fa:"\f2c9\f2c9"}.fa-dong-sign{--fa:"\e169";--fa--fa:"\e169\e169"}.fa-capsules{--fa:"\f46b";--fa--fa:"\f46b\f46b"}.fa-poo-bolt,.fa-poo-storm{--fa:"\f75a";--fa--fa:"\f75a\f75a"}.fa-face-frown-open,.fa-frown-open{--fa:"\f57a";--fa--fa:"\f57a\f57a"}.fa-hand-point-up{--fa:"\f0a6";--fa--fa:"\f0a6\f0a6"}.fa-money-bill{--fa:"\f0d6";--fa--fa:"\f0d6\f0d6"}.fa-bookmark{--fa:"\f02e";--fa--fa:"\f02e\f02e"}.fa-align-justify{--fa:"\f039";--fa--fa:"\f039\f039"}.fa-umbrella-beach{--fa:"\f5ca";--fa--fa:"\f5ca\f5ca"}.fa-helmet-un{--fa:"\e503";--fa--fa:"\e503\e503"}.fa-bullseye{--fa:"\f140";--fa--fa:"\f140\f140"}.fa-bacon{--fa:"\f7e5";--fa--fa:"\f7e5\f7e5"}.fa-hand-point-down{--fa:"\f0a7";--fa--fa:"\f0a7\f0a7"}.fa-arrow-up-from-bracket{--fa:"\e09a";--fa--fa:"\e09a\e09a"}.fa-folder,.fa-folder-blank{--fa:"\f07b";--fa--fa:"\f07b\f07b"}.fa-file-medical-alt,.fa-file-waveform{--fa:"\f478";--fa--fa:"\f478\f478"}.fa-radiation{--fa:"\f7b9";--fa--fa:"\f7b9\f7b9"}.fa-chart-simple{--fa:"\e473";--fa--fa:"\e473\e473"}.fa-mars-stroke{--fa:"\f229";--fa--fa:"\f229\f229"}.fa-vial{--fa:"\f492";--fa--fa:"\f492\f492"}.fa-dashboard,.fa-gauge,.fa-gauge-med,.fa-tachometer-alt-average{--fa:"\f624";--fa--fa:"\f624\f624"}.fa-magic-wand-sparkles,.fa-wand-magic-sparkles{--fa:"\e2ca";--fa--fa:"\e2ca\e2ca"}.fa-e{--fa:"\45";--fa--fa:"\45\45"}.fa-pen-alt,.fa-pen-clip{--fa:"\f305";--fa--fa:"\f305\f305"}.fa-bridge-circle-exclamation{--fa:"\e4ca";--fa--fa:"\e4ca\e4ca"}.fa-user{--fa:"\f007";--fa--fa:"\f007\f007"}.fa-school-circle-check{--fa:"\e56b";--fa--fa:"\e56b\e56b"}.fa-dumpster{--fa:"\f793";--fa--fa:"\f793\f793"}.fa-shuttle-van,.fa-van-shuttle{--fa:"\f5b6";--fa--fa:"\f5b6\f5b6"}.fa-building-user{--fa:"\e4da";--fa--fa:"\e4da\e4da"}.fa-caret-square-left,.fa-square-caret-left{--fa:"\f191";--fa--fa:"\f191\f191"}.fa-highlighter{--fa:"\f591";--fa--fa:"\f591\f591"}.fa-key{--fa:"\f084";--fa--fa:"\f084\f084"}.fa-bullhorn{--fa:"\f0a1";--fa--fa:"\f0a1\f0a1"}.fa-globe{--fa:"\f0ac";--fa--fa:"\f0ac\f0ac"}.fa-synagogue{--fa:"\f69b";--fa--fa:"\f69b\f69b"}.fa-person-half-dress{--fa:"\e548";--fa--fa:"\e548\e548"}.fa-road-bridge{--fa:"\e563";--fa--fa:"\e563\e563"}.fa-location-arrow{--fa:"\f124";--fa--fa:"\f124\f124"}.fa-c{--fa:"\43";--fa--fa:"\43\43"}.fa-tablet-button{--fa:"\f10a";--fa--fa:"\f10a\f10a"}.fa-building-lock{--fa:"\e4d6";--fa--fa:"\e4d6\e4d6"}.fa-pizza-slice{--fa:"\f818";--fa--fa:"\f818\f818"}.fa-money-bill-wave{--fa:"\f53a";--fa--fa:"\f53a\f53a"}.fa-area-chart,.fa-chart-area{--fa:"\f1fe";--fa--fa:"\f1fe\f1fe"}.fa-house-flag{--fa:"\e50d";--fa--fa:"\e50d\e50d"}.fa-person-circle-minus{--fa:"\e540";--fa--fa:"\e540\e540"}.fa-ban,.fa-cancel{--fa:"\f05e";--fa--fa:"\f05e\f05e"}.fa-camera-rotate{--fa:"\e0d8";--fa--fa:"\e0d8\e0d8"}.fa-air-freshener,.fa-spray-can-sparkles{--fa:"\f5d0";--fa--fa:"\f5d0\f5d0"}.fa-star{--fa:"\f005";--fa--fa:"\f005\f005"}.fa-repeat{--fa:"\f363";--fa--fa:"\f363\f363"}.fa-cross{--fa:"\f654";--fa--fa:"\f654\f654"}.fa-box{--fa:"\f466";--fa--fa:"\f466\f466"}.fa-venus-mars{--fa:"\f228";--fa--fa:"\f228\f228"}.fa-arrow-pointer,.fa-mouse-pointer{--fa:"\f245";--fa--fa:"\f245\f245"}.fa-expand-arrows-alt,.fa-maximize{--fa:"\f31e";--fa--fa:"\f31e\f31e"}.fa-charging-station{--fa:"\f5e7";--fa--fa:"\f5e7\f5e7"}.fa-shapes,.fa-triangle-circle-square{--fa:"\f61f";--fa--fa:"\f61f\f61f"}.fa-random,.fa-shuffle{--fa:"\f074";--fa--fa:"\f074\f074"}.fa-person-running,.fa-running{--fa:"\f70c";--fa--fa:"\f70c\f70c"}.fa-mobile-retro{--fa:"\e527";--fa--fa:"\e527\e527"}.fa-grip-lines-vertical{--fa:"\f7a5";--fa--fa:"\f7a5\f7a5"}.fa-spider{--fa:"\f717";--fa--fa:"\f717\f717"}.fa-hands-bound{--fa:"\e4f9";--fa--fa:"\e4f9\e4f9"}.fa-file-invoice-dollar{--fa:"\f571";--fa--fa:"\f571\f571"}.fa-plane-circle-exclamation{--fa:"\e556";--fa--fa:"\e556\e556"}.fa-x-ray{--fa:"\f497";--fa--fa:"\f497\f497"}.fa-spell-check{--fa:"\f891";--fa--fa:"\f891\f891"}.fa-slash{--fa:"\f715";--fa--fa:"\f715\f715"}.fa-computer-mouse,.fa-mouse{--fa:"\f8cc";--fa--fa:"\f8cc\f8cc"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\f090";--fa--fa:"\f090\f090"}.fa-shop-slash,.fa-store-alt-slash{--fa:"\e070";--fa--fa:"\e070\e070"}.fa-server{--fa:"\f233";--fa--fa:"\f233\f233"}.fa-virus-covid-slash{--fa:"\e4a9";--fa--fa:"\e4a9\e4a9"}.fa-shop-lock{--fa:"\e4a5";--fa--fa:"\e4a5\e4a5"}.fa-hourglass-1,.fa-hourglass-start{--fa:"\f251";--fa--fa:"\f251\f251"}.fa-blender-phone{--fa:"\f6b6";--fa--fa:"\f6b6\f6b6"}.fa-building-wheat{--fa:"\e4db";--fa--fa:"\e4db\e4db"}.fa-person-breastfeeding{--fa:"\e53a";--fa--fa:"\e53a\e53a"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\f2f6";--fa--fa:"\f2f6\f2f6"}.fa-venus{--fa:"\f221";--fa--fa:"\f221\f221"}.fa-passport{--fa:"\f5ab";--fa--fa:"\f5ab\f5ab"}.fa-thumb-tack-slash,.fa-thumbtack-slash{--fa:"\e68f";--fa--fa:"\e68f\e68f"}.fa-heart-pulse,.fa-heartbeat{--fa:"\f21e";--fa--fa:"\f21e\f21e"}.fa-people-carry,.fa-people-carry-box{--fa:"\f4ce";--fa--fa:"\f4ce\f4ce"}.fa-temperature-high{--fa:"\f769";--fa--fa:"\f769\f769"}.fa-microchip{--fa:"\f2db";--fa--fa:"\f2db\f2db"}.fa-crown{--fa:"\f521";--fa--fa:"\f521\f521"}.fa-weight-hanging{--fa:"\f5cd";--fa--fa:"\f5cd\f5cd"}.fa-xmarks-lines{--fa:"\e59a";--fa--fa:"\e59a\e59a"}.fa-file-prescription{--fa:"\f572";--fa--fa:"\f572\f572"}.fa-weight,.fa-weight-scale{--fa:"\f496";--fa--fa:"\f496\f496"}.fa-user-friends,.fa-user-group{--fa:"\f500";--fa--fa:"\f500\f500"}.fa-arrow-up-a-z,.fa-sort-alpha-up{--fa:"\f15e";--fa--fa:"\f15e\f15e"}.fa-chess-knight{--fa:"\f441";--fa--fa:"\f441\f441"}.fa-face-laugh-squint,.fa-laugh-squint{--fa:"\f59b";--fa--fa:"\f59b\f59b"}.fa-wheelchair{--fa:"\f193";--fa--fa:"\f193\f193"}.fa-arrow-circle-up,.fa-circle-arrow-up{--fa:"\f0aa";--fa--fa:"\f0aa\f0aa"}.fa-toggle-on{--fa:"\f205";--fa--fa:"\f205\f205"}.fa-person-walking,.fa-walking{--fa:"\f554";--fa--fa:"\f554\f554"}.fa-l{--fa:"\4c";--fa--fa:"\4c\4c"}.fa-fire{--fa:"\f06d";--fa--fa:"\f06d\f06d"}.fa-bed-pulse,.fa-procedures{--fa:"\f487";--fa--fa:"\f487\f487"}.fa-shuttle-space,.fa-space-shuttle{--fa:"\f197";--fa--fa:"\f197\f197"}.fa-face-laugh,.fa-laugh{--fa:"\f599";--fa--fa:"\f599\f599"}.fa-folder-open{--fa:"\f07c";--fa--fa:"\f07c\f07c"}.fa-heart-circle-plus{--fa:"\e500";--fa--fa:"\e500\e500"}.fa-code-fork{--fa:"\e13b";--fa--fa:"\e13b\e13b"}.fa-city{--fa:"\f64f";--fa--fa:"\f64f\f64f"}.fa-microphone-alt,.fa-microphone-lines{--fa:"\f3c9";--fa--fa:"\f3c9\f3c9"}.fa-pepper-hot{--fa:"\f816";--fa--fa:"\f816\f816"}.fa-unlock{--fa:"\f09c";--fa--fa:"\f09c\f09c"}.fa-colon-sign{--fa:"\e140";--fa--fa:"\e140\e140"}.fa-headset{--fa:"\f590";--fa--fa:"\f590\f590"}.fa-store-slash{--fa:"\e071";--fa--fa:"\e071\e071"}.fa-road-circle-xmark{--fa:"\e566";--fa--fa:"\e566\e566"}.fa-user-minus{--fa:"\f503";--fa--fa:"\f503\f503"}.fa-mars-stroke-up,.fa-mars-stroke-v{--fa:"\f22a";--fa--fa:"\f22a\f22a"}.fa-champagne-glasses,.fa-glass-cheers{--fa:"\f79f";--fa--fa:"\f79f\f79f"}.fa-clipboard{--fa:"\f328";--fa--fa:"\f328\f328"}.fa-house-circle-exclamation{--fa:"\e50a";--fa--fa:"\e50a\e50a"}.fa-file-arrow-up,.fa-file-upload{--fa:"\f574";--fa--fa:"\f574\f574"}.fa-wifi,.fa-wifi-3,.fa-wifi-strong{--fa:"\f1eb";--fa--fa:"\f1eb\f1eb"}.fa-bath,.fa-bathtub{--fa:"\f2cd";--fa--fa:"\f2cd\f2cd"}.fa-underline{--fa:"\f0cd";--fa--fa:"\f0cd\f0cd"}.fa-user-edit,.fa-user-pen{--fa:"\f4ff";--fa--fa:"\f4ff\f4ff"}.fa-signature{--fa:"\f5b7";--fa--fa:"\f5b7\f5b7"}.fa-stroopwafel{--fa:"\f551";--fa--fa:"\f551\f551"}.fa-bold{--fa:"\f032";--fa--fa:"\f032\f032"}.fa-anchor-lock{--fa:"\e4ad";--fa--fa:"\e4ad\e4ad"}.fa-building-ngo{--fa:"\e4d7";--fa--fa:"\e4d7\e4d7"}.fa-manat-sign{--fa:"\e1d5";--fa--fa:"\e1d5\e1d5"}.fa-not-equal{--fa:"\f53e";--fa--fa:"\f53e\f53e"}.fa-border-style,.fa-border-top-left{--fa:"\f853";--fa--fa:"\f853\f853"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\f5a0";--fa--fa:"\f5a0\f5a0"}.fa-jedi{--fa:"\f669";--fa--fa:"\f669\f669"}.fa-poll,.fa-square-poll-vertical{--fa:"\f681";--fa--fa:"\f681\f681"}.fa-mug-hot{--fa:"\f7b6";--fa--fa:"\f7b6\f7b6"}.fa-battery-car,.fa-car-battery{--fa:"\f5df";--fa--fa:"\f5df\f5df"}.fa-gift{--fa:"\f06b";--fa--fa:"\f06b\f06b"}.fa-dice-two{--fa:"\f528";--fa--fa:"\f528\f528"}.fa-chess-queen{--fa:"\f445";--fa--fa:"\f445\f445"}.fa-glasses{--fa:"\f530";--fa--fa:"\f530\f530"}.fa-chess-board{--fa:"\f43c";--fa--fa:"\f43c\f43c"}.fa-building-circle-check{--fa:"\e4d2";--fa--fa:"\e4d2\e4d2"}.fa-person-chalkboard{--fa:"\e53d";--fa--fa:"\e53d\e53d"}.fa-mars-stroke-h,.fa-mars-stroke-right{--fa:"\f22b";--fa--fa:"\f22b\f22b"}.fa-hand-back-fist,.fa-hand-rock{--fa:"\f255";--fa--fa:"\f255\f255"}.fa-caret-square-up,.fa-square-caret-up{--fa:"\f151";--fa--fa:"\f151\f151"}.fa-cloud-showers-water{--fa:"\e4e4";--fa--fa:"\e4e4\e4e4"}.fa-bar-chart,.fa-chart-bar{--fa:"\f080";--fa--fa:"\f080\f080"}.fa-hands-bubbles,.fa-hands-wash{--fa:"\e05e";--fa--fa:"\e05e\e05e"}.fa-less-than-equal{--fa:"\f537";--fa--fa:"\f537\f537"}.fa-train{--fa:"\f238";--fa--fa:"\f238\f238"}.fa-eye-low-vision,.fa-low-vision{--fa:"\f2a8";--fa--fa:"\f2a8\f2a8"}.fa-crow{--fa:"\f520";--fa--fa:"\f520\f520"}.fa-sailboat{--fa:"\e445";--fa--fa:"\e445\e445"}.fa-window-restore{--fa:"\f2d2";--fa--fa:"\f2d2\f2d2"}.fa-plus-square,.fa-square-plus{--fa:"\f0fe";--fa--fa:"\f0fe\f0fe"}.fa-torii-gate{--fa:"\f6a1";--fa--fa:"\f6a1\f6a1"}.fa-frog{--fa:"\f52e";--fa--fa:"\f52e\f52e"}.fa-bucket{--fa:"\e4cf";--fa--fa:"\e4cf\e4cf"}.fa-image{--fa:"\f03e";--fa--fa:"\f03e\f03e"}.fa-microphone{--fa:"\f130";--fa--fa:"\f130\f130"}.fa-cow{--fa:"\f6c8";--fa--fa:"\f6c8\f6c8"}.fa-caret-up{--fa:"\f0d8";--fa--fa:"\f0d8\f0d8"}.fa-screwdriver{--fa:"\f54a";--fa--fa:"\f54a\f54a"}.fa-folder-closed{--fa:"\e185";--fa--fa:"\e185\e185"}.fa-house-tsunami{--fa:"\e515";--fa--fa:"\e515\e515"}.fa-square-nfi{--fa:"\e576";--fa--fa:"\e576\e576"}.fa-arrow-up-from-ground-water{--fa:"\e4b5";--fa--fa:"\e4b5\e4b5"}.fa-glass-martini-alt,.fa-martini-glass{--fa:"\f57b";--fa--fa:"\f57b\f57b"}.fa-square-binary{--fa:"\e69b";--fa--fa:"\e69b\e69b"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\f2ea";--fa--fa:"\f2ea\f2ea"}.fa-columns,.fa-table-columns{--fa:"\f0db";--fa--fa:"\f0db\f0db"}.fa-lemon{--fa:"\f094";--fa--fa:"\f094\f094"}.fa-head-side-mask{--fa:"\e063";--fa--fa:"\e063\e063"}.fa-handshake{--fa:"\f2b5";--fa--fa:"\f2b5\f2b5"}.fa-gem{--fa:"\f3a5";--fa--fa:"\f3a5\f3a5"}.fa-dolly,.fa-dolly-box{--fa:"\f472";--fa--fa:"\f472\f472"}.fa-smoking{--fa:"\f48d";--fa--fa:"\f48d\f48d"}.fa-compress-arrows-alt,.fa-minimize{--fa:"\f78c";--fa--fa:"\f78c\f78c"}.fa-monument{--fa:"\f5a6";--fa--fa:"\f5a6\f5a6"}.fa-snowplow{--fa:"\f7d2";--fa--fa:"\f7d2\f7d2"}.fa-angle-double-right,.fa-angles-right{--fa:"\f101";--fa--fa:"\f101\f101"}.fa-cannabis{--fa:"\f55f";--fa--fa:"\f55f\f55f"}.fa-circle-play,.fa-play-circle{--fa:"\f144";--fa--fa:"\f144\f144"}.fa-tablets{--fa:"\f490";--fa--fa:"\f490\f490"}.fa-ethernet{--fa:"\f796";--fa--fa:"\f796\f796"}.fa-eur,.fa-euro,.fa-euro-sign{--fa:"\f153";--fa--fa:"\f153\f153"}.fa-chair{--fa:"\f6c0";--fa--fa:"\f6c0\f6c0"}.fa-check-circle,.fa-circle-check{--fa:"\f058";--fa--fa:"\f058\f058"}.fa-circle-stop,.fa-stop-circle{--fa:"\f28d";--fa--fa:"\f28d\f28d"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\f568";--fa--fa:"\f568\f568"}.fa-plate-wheat{--fa:"\e55a";--fa--fa:"\e55a\e55a"}.fa-icicles{--fa:"\f7ad";--fa--fa:"\f7ad\f7ad"}.fa-person-shelter{--fa:"\e54f";--fa--fa:"\e54f\e54f"}.fa-neuter{--fa:"\f22c";--fa--fa:"\f22c\f22c"}.fa-id-badge{--fa:"\f2c1";--fa--fa:"\f2c1\f2c1"}.fa-marker{--fa:"\f5a1";--fa--fa:"\f5a1\f5a1"}.fa-face-laugh-beam,.fa-laugh-beam{--fa:"\f59a";--fa--fa:"\f59a\f59a"}.fa-helicopter-symbol{--fa:"\e502";--fa--fa:"\e502\e502"}.fa-universal-access{--fa:"\f29a";--fa--fa:"\f29a\f29a"}.fa-chevron-circle-up,.fa-circle-chevron-up{--fa:"\f139";--fa--fa:"\f139\f139"}.fa-lari-sign{--fa:"\e1c8";--fa--fa:"\e1c8\e1c8"}.fa-volcano{--fa:"\f770";--fa--fa:"\f770\f770"}.fa-person-walking-dashed-line-arrow-right{--fa:"\e553";--fa--fa:"\e553\e553"}.fa-gbp,.fa-pound-sign,.fa-sterling-sign{--fa:"\f154";--fa--fa:"\f154\f154"}.fa-viruses{--fa:"\e076";--fa--fa:"\e076\e076"}.fa-square-person-confined{--fa:"\e577";--fa--fa:"\e577\e577"}.fa-user-tie{--fa:"\f508";--fa--fa:"\f508\f508"}.fa-arrow-down-long,.fa-long-arrow-down{--fa:"\f175";--fa--fa:"\f175\f175"}.fa-tent-arrow-down-to-line{--fa:"\e57e";--fa--fa:"\e57e\e57e"}.fa-certificate{--fa:"\f0a3";--fa--fa:"\f0a3\f0a3"}.fa-mail-reply-all,.fa-reply-all{--fa:"\f122";--fa--fa:"\f122\f122"}.fa-suitcase{--fa:"\f0f2";--fa--fa:"\f0f2\f0f2"}.fa-person-skating,.fa-skating{--fa:"\f7c5";--fa--fa:"\f7c5\f7c5"}.fa-filter-circle-dollar,.fa-funnel-dollar{--fa:"\f662";--fa--fa:"\f662\f662"}.fa-camera-retro{--fa:"\f083";--fa--fa:"\f083\f083"}.fa-arrow-circle-down,.fa-circle-arrow-down{--fa:"\f0ab";--fa--fa:"\f0ab\f0ab"}.fa-arrow-right-to-file,.fa-file-import{--fa:"\f56f";--fa--fa:"\f56f\f56f"}.fa-external-link-square,.fa-square-arrow-up-right{--fa:"\f14c";--fa--fa:"\f14c\f14c"}.fa-box-open{--fa:"\f49e";--fa--fa:"\f49e\f49e"}.fa-scroll{--fa:"\f70e";--fa--fa:"\f70e\f70e"}.fa-spa{--fa:"\f5bb";--fa--fa:"\f5bb\f5bb"}.fa-location-pin-lock{--fa:"\e51f";--fa--fa:"\e51f\e51f"}.fa-pause{--fa:"\f04c";--fa--fa:"\f04c\f04c"}.fa-hill-avalanche{--fa:"\e507";--fa--fa:"\e507\e507"}.fa-temperature-0,.fa-temperature-empty,.fa-thermometer-0,.fa-thermometer-empty{--fa:"\f2cb";--fa--fa:"\f2cb\f2cb"}.fa-bomb{--fa:"\f1e2";--fa--fa:"\f1e2\f1e2"}.fa-registered{--fa:"\f25d";--fa--fa:"\f25d\f25d"}.fa-address-card,.fa-contact-card,.fa-vcard{--fa:"\f2bb";--fa--fa:"\f2bb\f2bb"}.fa-balance-scale-right,.fa-scale-unbalanced-flip{--fa:"\f516";--fa--fa:"\f516\f516"}.fa-subscript{--fa:"\f12c";--fa--fa:"\f12c\f12c"}.fa-diamond-turn-right,.fa-directions{--fa:"\f5eb";--fa--fa:"\f5eb\f5eb"}.fa-burst{--fa:"\e4dc";--fa--fa:"\e4dc\e4dc"}.fa-house-laptop,.fa-laptop-house{--fa:"\e066";--fa--fa:"\e066\e066"}.fa-face-tired,.fa-tired{--fa:"\f5c8";--fa--fa:"\f5c8\f5c8"}.fa-money-bills{--fa:"\e1f3";--fa--fa:"\e1f3\e1f3"}.fa-smog{--fa:"\f75f";--fa--fa:"\f75f\f75f"}.fa-crutch{--fa:"\f7f7";--fa--fa:"\f7f7\f7f7"}.fa-cloud-arrow-up,.fa-cloud-upload,.fa-cloud-upload-alt{--fa:"\f0ee";--fa--fa:"\f0ee\f0ee"}.fa-palette{--fa:"\f53f";--fa--fa:"\f53f\f53f"}.fa-arrows-turn-right{--fa:"\e4c0";--fa--fa:"\e4c0\e4c0"}.fa-vest{--fa:"\e085";--fa--fa:"\e085\e085"}.fa-ferry{--fa:"\e4ea";--fa--fa:"\e4ea\e4ea"}.fa-arrows-down-to-people{--fa:"\e4b9";--fa--fa:"\e4b9\e4b9"}.fa-seedling,.fa-sprout{--fa:"\f4d8";--fa--fa:"\f4d8\f4d8"}.fa-arrows-alt-h,.fa-left-right{--fa:"\f337";--fa--fa:"\f337\f337"}.fa-boxes-packing{--fa:"\e4c7";--fa--fa:"\e4c7\e4c7"}.fa-arrow-circle-left,.fa-circle-arrow-left{--fa:"\f0a8";--fa--fa:"\f0a8\f0a8"}.fa-group-arrows-rotate{--fa:"\e4f6";--fa--fa:"\e4f6\e4f6"}.fa-bowl-food{--fa:"\e4c6";--fa--fa:"\e4c6\e4c6"}.fa-candy-cane{--fa:"\f786";--fa--fa:"\f786\f786"}.fa-arrow-down-wide-short,.fa-sort-amount-asc,.fa-sort-amount-down{--fa:"\f160";--fa--fa:"\f160\f160"}.fa-cloud-bolt,.fa-thunderstorm{--fa:"\f76c";--fa--fa:"\f76c\f76c"}.fa-remove-format,.fa-text-slash{--fa:"\f87d";--fa--fa:"\f87d\f87d"}.fa-face-smile-wink,.fa-smile-wink{--fa:"\f4da";--fa--fa:"\f4da\f4da"}.fa-file-word{--fa:"\f1c2";--fa--fa:"\f1c2\f1c2"}.fa-file-powerpoint{--fa:"\f1c4";--fa--fa:"\f1c4\f1c4"}.fa-arrows-h,.fa-arrows-left-right{--fa:"\f07e";--fa--fa:"\f07e\f07e"}.fa-house-lock{--fa:"\e510";--fa--fa:"\e510\e510"}.fa-cloud-arrow-down,.fa-cloud-download,.fa-cloud-download-alt{--fa:"\f0ed";--fa--fa:"\f0ed\f0ed"}.fa-children{--fa:"\e4e1";--fa--fa:"\e4e1\e4e1"}.fa-blackboard,.fa-chalkboard{--fa:"\f51b";--fa--fa:"\f51b\f51b"}.fa-user-alt-slash,.fa-user-large-slash{--fa:"\f4fa";--fa--fa:"\f4fa\f4fa"}.fa-envelope-open{--fa:"\f2b6";--fa--fa:"\f2b6\f2b6"}.fa-handshake-alt-slash,.fa-handshake-simple-slash{--fa:"\e05f";--fa--fa:"\e05f\e05f"}.fa-mattress-pillow{--fa:"\e525";--fa--fa:"\e525\e525"}.fa-guarani-sign{--fa:"\e19a";--fa--fa:"\e19a\e19a"}.fa-arrows-rotate,.fa-refresh,.fa-sync{--fa:"\f021";--fa--fa:"\f021\f021"}.fa-fire-extinguisher{--fa:"\f134";--fa--fa:"\f134\f134"}.fa-cruzeiro-sign{--fa:"\e152";--fa--fa:"\e152\e152"}.fa-greater-than-equal{--fa:"\f532";--fa--fa:"\f532\f532"}.fa-shield-alt,.fa-shield-halved{--fa:"\f3ed";--fa--fa:"\f3ed\f3ed"}.fa-atlas,.fa-book-atlas{--fa:"\f558";--fa--fa:"\f558\f558"}.fa-virus{--fa:"\e074";--fa--fa:"\e074\e074"}.fa-envelope-circle-check{--fa:"\e4e8";--fa--fa:"\e4e8\e4e8"}.fa-layer-group{--fa:"\f5fd";--fa--fa:"\f5fd\f5fd"}.fa-arrows-to-dot{--fa:"\e4be";--fa--fa:"\e4be\e4be"}.fa-archway{--fa:"\f557";--fa--fa:"\f557\f557"}.fa-heart-circle-check{--fa:"\e4fd";--fa--fa:"\e4fd\e4fd"}.fa-house-chimney-crack,.fa-house-damage{--fa:"\f6f1";--fa--fa:"\f6f1\f6f1"}.fa-file-archive,.fa-file-zipper{--fa:"\f1c6";--fa--fa:"\f1c6\f1c6"}.fa-square{--fa:"\f0c8";--fa--fa:"\f0c8\f0c8"}.fa-glass-martini,.fa-martini-glass-empty{--fa:"\f000";--fa--fa:"\f000\f000"}.fa-couch{--fa:"\f4b8";--fa--fa:"\f4b8\f4b8"}.fa-cedi-sign{--fa:"\e0df";--fa--fa:"\e0df\e0df"}.fa-italic{--fa:"\f033";--fa--fa:"\f033\f033"}.fa-table-cells-column-lock{--fa:"\e678";--fa--fa:"\e678\e678"}.fa-church{--fa:"\f51d";--fa--fa:"\f51d\f51d"}.fa-comments-dollar{--fa:"\f653";--fa--fa:"\f653\f653"}.fa-democrat{--fa:"\f747";--fa--fa:"\f747\f747"}.fa-z{--fa:"\5a";--fa--fa:"\5a\5a"}.fa-person-skiing,.fa-skiing{--fa:"\f7c9";--fa--fa:"\f7c9\f7c9"}.fa-road-lock{--fa:"\e567";--fa--fa:"\e567\e567"}.fa-a{--fa:"\41";--fa--fa:"\41\41"}.fa-temperature-arrow-down,.fa-temperature-down{--fa:"\e03f";--fa--fa:"\e03f\e03f"}.fa-feather-alt,.fa-feather-pointed{--fa:"\f56b";--fa--fa:"\f56b\f56b"}.fa-p{--fa:"\50";--fa--fa:"\50\50"}.fa-snowflake{--fa:"\f2dc";--fa--fa:"\f2dc\f2dc"}.fa-newspaper{--fa:"\f1ea";--fa--fa:"\f1ea\f1ea"}.fa-ad,.fa-rectangle-ad{--fa:"\f641";--fa--fa:"\f641\f641"}.fa-arrow-circle-right,.fa-circle-arrow-right{--fa:"\f0a9";--fa--fa:"\f0a9\f0a9"}.fa-filter-circle-xmark{--fa:"\e17b";--fa--fa:"\e17b\e17b"}.fa-locust{--fa:"\e520";--fa--fa:"\e520\e520"}.fa-sort,.fa-unsorted{--fa:"\f0dc";--fa--fa:"\f0dc\f0dc"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\f0cb";--fa--fa:"\f0cb\f0cb"}.fa-person-dress-burst{--fa:"\e544";--fa--fa:"\e544\e544"}.fa-money-check-alt,.fa-money-check-dollar{--fa:"\f53d";--fa--fa:"\f53d\f53d"}.fa-vector-square{--fa:"\f5cb";--fa--fa:"\f5cb\f5cb"}.fa-bread-slice{--fa:"\f7ec";--fa--fa:"\f7ec\f7ec"}.fa-language{--fa:"\f1ab";--fa--fa:"\f1ab\f1ab"}.fa-face-kiss-wink-heart,.fa-kiss-wink-heart{--fa:"\f598";--fa--fa:"\f598\f598"}.fa-filter{--fa:"\f0b0";--fa--fa:"\f0b0\f0b0"}.fa-question{--fa:"\3f";--fa--fa:"\3f\3f"}.fa-file-signature{--fa:"\f573";--fa--fa:"\f573\f573"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\f0b2";--fa--fa:"\f0b2\f0b2"}.fa-house-chimney-user{--fa:"\e065";--fa--fa:"\e065\e065"}.fa-hand-holding-heart{--fa:"\f4be";--fa--fa:"\f4be\f4be"}.fa-puzzle-piece{--fa:"\f12e";--fa--fa:"\f12e\f12e"}.fa-money-check{--fa:"\f53c";--fa--fa:"\f53c\f53c"}.fa-star-half-alt,.fa-star-half-stroke{--fa:"\f5c0";--fa--fa:"\f5c0\f5c0"}.fa-code{--fa:"\f121";--fa--fa:"\f121\f121"}.fa-glass-whiskey,.fa-whiskey-glass{--fa:"\f7a0";--fa--fa:"\f7a0\f7a0"}.fa-building-circle-exclamation{--fa:"\e4d3";--fa--fa:"\e4d3\e4d3"}.fa-magnifying-glass-chart{--fa:"\e522";--fa--fa:"\e522\e522"}.fa-arrow-up-right-from-square,.fa-external-link{--fa:"\f08e";--fa--fa:"\f08e\f08e"}.fa-cubes-stacked{--fa:"\e4e6";--fa--fa:"\e4e6\e4e6"}.fa-krw,.fa-won,.fa-won-sign{--fa:"\f159";--fa--fa:"\f159\f159"}.fa-virus-covid{--fa:"\e4a8";--fa--fa:"\e4a8\e4a8"}.fa-austral-sign{--fa:"\e0a9";--fa--fa:"\e0a9\e0a9"}.fa-f{--fa:"\46";--fa--fa:"\46\46"}.fa-leaf{--fa:"\f06c";--fa--fa:"\f06c\f06c"}.fa-road{--fa:"\f018";--fa--fa:"\f018\f018"}.fa-cab,.fa-taxi{--fa:"\f1ba";--fa--fa:"\f1ba\f1ba"}.fa-person-circle-plus{--fa:"\e541";--fa--fa:"\e541\e541"}.fa-chart-pie,.fa-pie-chart{--fa:"\f200";--fa--fa:"\f200\f200"}.fa-bolt-lightning{--fa:"\e0b7";--fa--fa:"\e0b7\e0b7"}.fa-sack-xmark{--fa:"\e56a";--fa--fa:"\e56a\e56a"}.fa-file-excel{--fa:"\f1c3";--fa--fa:"\f1c3\f1c3"}.fa-file-contract{--fa:"\f56c";--fa--fa:"\f56c\f56c"}.fa-fish-fins{--fa:"\e4f2";--fa--fa:"\e4f2\e4f2"}.fa-building-flag{--fa:"\e4d5";--fa--fa:"\e4d5\e4d5"}.fa-face-grin-beam,.fa-grin-beam{--fa:"\f582";--fa--fa:"\f582\f582"}.fa-object-ungroup{--fa:"\f248";--fa--fa:"\f248\f248"}.fa-poop{--fa:"\f619";--fa--fa:"\f619\f619"}.fa-location-pin,.fa-map-marker{--fa:"\f041";--fa--fa:"\f041\f041"}.fa-kaaba{--fa:"\f66b";--fa--fa:"\f66b\f66b"}.fa-toilet-paper{--fa:"\f71e";--fa--fa:"\f71e\f71e"}.fa-hard-hat,.fa-hat-hard,.fa-helmet-safety{--fa:"\f807";--fa--fa:"\f807\f807"}.fa-eject{--fa:"\f052";--fa--fa:"\f052\f052"}.fa-arrow-alt-circle-right,.fa-circle-right{--fa:"\f35a";--fa--fa:"\f35a\f35a"}.fa-plane-circle-check{--fa:"\e555";--fa--fa:"\e555\e555"}.fa-face-rolling-eyes,.fa-meh-rolling-eyes{--fa:"\f5a5";--fa--fa:"\f5a5\f5a5"}.fa-object-group{--fa:"\f247";--fa--fa:"\f247\f247"}.fa-chart-line,.fa-line-chart{--fa:"\f201";--fa--fa:"\f201\f201"}.fa-mask-ventilator{--fa:"\e524";--fa--fa:"\e524\e524"}.fa-arrow-right{--fa:"\f061";--fa--fa:"\f061\f061"}.fa-map-signs,.fa-signs-post{--fa:"\f277";--fa--fa:"\f277\f277"}.fa-cash-register{--fa:"\f788";--fa--fa:"\f788\f788"}.fa-person-circle-question{--fa:"\e542";--fa--fa:"\e542\e542"}.fa-h{--fa:"\48";--fa--fa:"\48\48"}.fa-tarp{--fa:"\e57b";--fa--fa:"\e57b\e57b"}.fa-screwdriver-wrench,.fa-tools{--fa:"\f7d9";--fa--fa:"\f7d9\f7d9"}.fa-arrows-to-eye{--fa:"\e4bf";--fa--fa:"\e4bf\e4bf"}.fa-plug-circle-bolt{--fa:"\e55b";--fa--fa:"\e55b\e55b"}.fa-heart{--fa:"\f004";--fa--fa:"\f004\f004"}.fa-mars-and-venus{--fa:"\f224";--fa--fa:"\f224\f224"}.fa-home-user,.fa-house-user{--fa:"\e1b0";--fa--fa:"\e1b0\e1b0"}.fa-dumpster-fire{--fa:"\f794";--fa--fa:"\f794\f794"}.fa-house-crack{--fa:"\e3b1";--fa--fa:"\e3b1\e3b1"}.fa-cocktail,.fa-martini-glass-citrus{--fa:"\f561";--fa--fa:"\f561\f561"}.fa-face-surprise,.fa-surprise{--fa:"\f5c2";--fa--fa:"\f5c2\f5c2"}.fa-bottle-water{--fa:"\e4c5";--fa--fa:"\e4c5\e4c5"}.fa-circle-pause,.fa-pause-circle{--fa:"\f28b";--fa--fa:"\f28b\f28b"}.fa-toilet-paper-slash{--fa:"\e072";--fa--fa:"\e072\e072"}.fa-apple-alt,.fa-apple-whole{--fa:"\f5d1";--fa--fa:"\f5d1\f5d1"}.fa-kitchen-set{--fa:"\e51a";--fa--fa:"\e51a\e51a"}.fa-r{--fa:"\52";--fa--fa:"\52\52"}.fa-temperature-1,.fa-temperature-quarter,.fa-thermometer-1,.fa-thermometer-quarter{--fa:"\f2ca";--fa--fa:"\f2ca\f2ca"}.fa-cube{--fa:"\f1b2";--fa--fa:"\f1b2\f1b2"}.fa-bitcoin-sign{--fa:"\e0b4";--fa--fa:"\e0b4\e0b4"}.fa-shield-dog{--fa:"\e573";--fa--fa:"\e573\e573"}.fa-solar-panel{--fa:"\f5ba";--fa--fa:"\f5ba\f5ba"}.fa-lock-open{--fa:"\f3c1";--fa--fa:"\f3c1\f3c1"}.fa-elevator{--fa:"\e16d";--fa--fa:"\e16d\e16d"}.fa-money-bill-transfer{--fa:"\e528";--fa--fa:"\e528\e528"}.fa-money-bill-trend-up{--fa:"\e529";--fa--fa:"\e529\e529"}.fa-house-flood-water-circle-arrow-right{--fa:"\e50f";--fa--fa:"\e50f\e50f"}.fa-poll-h,.fa-square-poll-horizontal{--fa:"\f682";--fa--fa:"\f682\f682"}.fa-circle{--fa:"\f111";--fa--fa:"\f111\f111"}.fa-backward-fast,.fa-fast-backward{--fa:"\f049";--fa--fa:"\f049\f049"}.fa-recycle{--fa:"\f1b8";--fa--fa:"\f1b8\f1b8"}.fa-user-astronaut{--fa:"\f4fb";--fa--fa:"\f4fb\f4fb"}.fa-plane-slash{--fa:"\e069";--fa--fa:"\e069\e069"}.fa-trademark{--fa:"\f25c";--fa--fa:"\f25c\f25c"}.fa-basketball,.fa-basketball-ball{--fa:"\f434";--fa--fa:"\f434\f434"}.fa-satellite-dish{--fa:"\f7c0";--fa--fa:"\f7c0\f7c0"}.fa-arrow-alt-circle-up,.fa-circle-up{--fa:"\f35b";--fa--fa:"\f35b\f35b"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\f3cd";--fa--fa:"\f3cd\f3cd"}.fa-volume-high,.fa-volume-up{--fa:"\f028";--fa--fa:"\f028\f028"}.fa-users-rays{--fa:"\e593";--fa--fa:"\e593\e593"}.fa-wallet{--fa:"\f555";--fa--fa:"\f555\f555"}.fa-clipboard-check{--fa:"\f46c";--fa--fa:"\f46c\f46c"}.fa-file-audio{--fa:"\f1c7";--fa--fa:"\f1c7\f1c7"}.fa-burger,.fa-hamburger{--fa:"\f805";--fa--fa:"\f805\f805"}.fa-wrench{--fa:"\f0ad";--fa--fa:"\f0ad\f0ad"}.fa-bugs{--fa:"\e4d0";--fa--fa:"\e4d0\e4d0"}.fa-rupee,.fa-rupee-sign{--fa:"\f156";--fa--fa:"\f156\f156"}.fa-file-image{--fa:"\f1c5";--fa--fa:"\f1c5\f1c5"}.fa-circle-question,.fa-question-circle{--fa:"\f059";--fa--fa:"\f059\f059"}.fa-plane-departure{--fa:"\f5b0";--fa--fa:"\f5b0\f5b0"}.fa-handshake-slash{--fa:"\e060";--fa--fa:"\e060\e060"}.fa-book-bookmark{--fa:"\e0bb";--fa--fa:"\e0bb\e0bb"}.fa-code-branch{--fa:"\f126";--fa--fa:"\f126\f126"}.fa-hat-cowboy{--fa:"\f8c0";--fa--fa:"\f8c0\f8c0"}.fa-bridge{--fa:"\e4c8";--fa--fa:"\e4c8\e4c8"}.fa-phone-alt,.fa-phone-flip{--fa:"\f879";--fa--fa:"\f879\f879"}.fa-truck-front{--fa:"\e2b7";--fa--fa:"\e2b7\e2b7"}.fa-cat{--fa:"\f6be";--fa--fa:"\f6be\f6be"}.fa-anchor-circle-exclamation{--fa:"\e4ab";--fa--fa:"\e4ab\e4ab"}.fa-truck-field{--fa:"\e58d";--fa--fa:"\e58d\e58d"}.fa-route{--fa:"\f4d7";--fa--fa:"\f4d7\f4d7"}.fa-clipboard-question{--fa:"\e4e3";--fa--fa:"\e4e3\e4e3"}.fa-panorama{--fa:"\e209";--fa--fa:"\e209\e209"}.fa-comment-medical{--fa:"\f7f5";--fa--fa:"\f7f5\f7f5"}.fa-teeth-open{--fa:"\f62f";--fa--fa:"\f62f\f62f"}.fa-file-circle-minus{--fa:"\e4ed";--fa--fa:"\e4ed\e4ed"}.fa-tags{--fa:"\f02c";--fa--fa:"\f02c\f02c"}.fa-wine-glass{--fa:"\f4e3";--fa--fa:"\f4e3\f4e3"}.fa-fast-forward,.fa-forward-fast{--fa:"\f050";--fa--fa:"\f050\f050"}.fa-face-meh-blank,.fa-meh-blank{--fa:"\f5a4";--fa--fa:"\f5a4\f5a4"}.fa-parking,.fa-square-parking{--fa:"\f540";--fa--fa:"\f540\f540"}.fa-house-signal{--fa:"\e012";--fa--fa:"\e012\e012"}.fa-bars-progress,.fa-tasks-alt{--fa:"\f828";--fa--fa:"\f828\f828"}.fa-faucet-drip{--fa:"\e006";--fa--fa:"\e006\e006"}.fa-cart-flatbed,.fa-dolly-flatbed{--fa:"\f474";--fa--fa:"\f474\f474"}.fa-ban-smoking,.fa-smoking-ban{--fa:"\f54d";--fa--fa:"\f54d\f54d"}.fa-terminal{--fa:"\f120";--fa--fa:"\f120\f120"}.fa-mobile-button{--fa:"\f10b";--fa--fa:"\f10b\f10b"}.fa-house-medical-flag{--fa:"\e514";--fa--fa:"\e514\e514"}.fa-basket-shopping,.fa-shopping-basket{--fa:"\f291";--fa--fa:"\f291\f291"}.fa-tape{--fa:"\f4db";--fa--fa:"\f4db\f4db"}.fa-bus-alt,.fa-bus-simple{--fa:"\f55e";--fa--fa:"\f55e\f55e"}.fa-eye{--fa:"\f06e";--fa--fa:"\f06e\f06e"}.fa-face-sad-cry,.fa-sad-cry{--fa:"\f5b3";--fa--fa:"\f5b3\f5b3"}.fa-audio-description{--fa:"\f29e";--fa--fa:"\f29e\f29e"}.fa-person-military-to-person{--fa:"\e54c";--fa--fa:"\e54c\e54c"}.fa-file-shield{--fa:"\e4f0";--fa--fa:"\e4f0\e4f0"}.fa-user-slash{--fa:"\f506";--fa--fa:"\f506\f506"}.fa-pen{--fa:"\f304";--fa--fa:"\f304\f304"}.fa-tower-observation{--fa:"\e586";--fa--fa:"\e586\e586"}.fa-file-code{--fa:"\f1c9";--fa--fa:"\f1c9\f1c9"}.fa-signal,.fa-signal-5,.fa-signal-perfect{--fa:"\f012";--fa--fa:"\f012\f012"}.fa-bus{--fa:"\f207";--fa--fa:"\f207\f207"}.fa-heart-circle-xmark{--fa:"\e501";--fa--fa:"\e501\e501"}.fa-home-lg,.fa-house-chimney{--fa:"\e3af";--fa--fa:"\e3af\e3af"}.fa-window-maximize{--fa:"\f2d0";--fa--fa:"\f2d0\f2d0"}.fa-face-frown,.fa-frown{--fa:"\f119";--fa--fa:"\f119\f119"}.fa-prescription{--fa:"\f5b1";--fa--fa:"\f5b1\f5b1"}.fa-shop,.fa-store-alt{--fa:"\f54f";--fa--fa:"\f54f\f54f"}.fa-floppy-disk,.fa-save{--fa:"\f0c7";--fa--fa:"\f0c7\f0c7"}.fa-vihara{--fa:"\f6a7";--fa--fa:"\f6a7\f6a7"}.fa-balance-scale-left,.fa-scale-unbalanced{--fa:"\f515";--fa--fa:"\f515\f515"}.fa-sort-asc,.fa-sort-up{--fa:"\f0de";--fa--fa:"\f0de\f0de"}.fa-comment-dots,.fa-commenting{--fa:"\f4ad";--fa--fa:"\f4ad\f4ad"}.fa-plant-wilt{--fa:"\e5aa";--fa--fa:"\e5aa\e5aa"}.fa-diamond{--fa:"\f219";--fa--fa:"\f219\f219"}.fa-face-grin-squint,.fa-grin-squint{--fa:"\f585";--fa--fa:"\f585\f585"}.fa-hand-holding-dollar,.fa-hand-holding-usd{--fa:"\f4c0";--fa--fa:"\f4c0\f4c0"}.fa-chart-diagram{--fa:"\e695";--fa--fa:"\e695\e695"}.fa-bacterium{--fa:"\e05a";--fa--fa:"\e05a\e05a"}.fa-hand-pointer{--fa:"\f25a";--fa--fa:"\f25a\f25a"}.fa-drum-steelpan{--fa:"\f56a";--fa--fa:"\f56a\f56a"}.fa-hand-scissors{--fa:"\f257";--fa--fa:"\f257\f257"}.fa-hands-praying,.fa-praying-hands{--fa:"\f684";--fa--fa:"\f684\f684"}.fa-arrow-right-rotate,.fa-arrow-rotate-forward,.fa-arrow-rotate-right,.fa-redo{--fa:"\f01e";--fa--fa:"\f01e\f01e"}.fa-biohazard{--fa:"\f780";--fa--fa:"\f780\f780"}.fa-location,.fa-location-crosshairs{--fa:"\f601";--fa--fa:"\f601\f601"}.fa-mars-double{--fa:"\f227";--fa--fa:"\f227\f227"}.fa-child-dress{--fa:"\e59c";--fa--fa:"\e59c\e59c"}.fa-users-between-lines{--fa:"\e591";--fa--fa:"\e591\e591"}.fa-lungs-virus{--fa:"\e067";--fa--fa:"\e067\e067"}.fa-face-grin-tears,.fa-grin-tears{--fa:"\f588";--fa--fa:"\f588\f588"}.fa-phone{--fa:"\f095";--fa--fa:"\f095\f095"}.fa-calendar-times,.fa-calendar-xmark{--fa:"\f273";--fa--fa:"\f273\f273"}.fa-child-reaching{--fa:"\e59d";--fa--fa:"\e59d\e59d"}.fa-head-side-virus{--fa:"\e064";--fa--fa:"\e064\e064"}.fa-user-cog,.fa-user-gear{--fa:"\f4fe";--fa--fa:"\f4fe\f4fe"}.fa-arrow-up-1-9,.fa-sort-numeric-up{--fa:"\f163";--fa--fa:"\f163\f163"}.fa-door-closed{--fa:"\f52a";--fa--fa:"\f52a\f52a"}.fa-shield-virus{--fa:"\e06c";--fa--fa:"\e06c\e06c"}.fa-dice-six{--fa:"\f526";--fa--fa:"\f526\f526"}.fa-mosquito-net{--fa:"\e52c";--fa--fa:"\e52c\e52c"}.fa-file-fragment{--fa:"\e697";--fa--fa:"\e697\e697"}.fa-bridge-water{--fa:"\e4ce";--fa--fa:"\e4ce\e4ce"}.fa-person-booth{--fa:"\f756";--fa--fa:"\f756\f756"}.fa-text-width{--fa:"\f035";--fa--fa:"\f035\f035"}.fa-hat-wizard{--fa:"\f6e8";--fa--fa:"\f6e8\f6e8"}.fa-pen-fancy{--fa:"\f5ac";--fa--fa:"\f5ac\f5ac"}.fa-digging,.fa-person-digging{--fa:"\f85e";--fa--fa:"\f85e\f85e"}.fa-trash{--fa:"\f1f8";--fa--fa:"\f1f8\f1f8"}.fa-gauge-simple,.fa-gauge-simple-med,.fa-tachometer-average{--fa:"\f629";--fa--fa:"\f629\f629"}.fa-book-medical{--fa:"\f7e6";--fa--fa:"\f7e6\f7e6"}.fa-poo{--fa:"\f2fe";--fa--fa:"\f2fe\f2fe"}.fa-quote-right,.fa-quote-right-alt{--fa:"\f10e";--fa--fa:"\f10e\f10e"}.fa-shirt,.fa-t-shirt,.fa-tshirt{--fa:"\f553";--fa--fa:"\f553\f553"}.fa-cubes{--fa:"\f1b3";--fa--fa:"\f1b3\f1b3"}.fa-divide{--fa:"\f529";--fa--fa:"\f529\f529"}.fa-tenge,.fa-tenge-sign{--fa:"\f7d7";--fa--fa:"\f7d7\f7d7"}.fa-headphones{--fa:"\f025";--fa--fa:"\f025\f025"}.fa-hands-holding{--fa:"\f4c2";--fa--fa:"\f4c2\f4c2"}.fa-hands-clapping{--fa:"\e1a8";--fa--fa:"\e1a8\e1a8"}.fa-republican{--fa:"\f75e";--fa--fa:"\f75e\f75e"}.fa-arrow-left{--fa:"\f060";--fa--fa:"\f060\f060"}.fa-person-circle-xmark{--fa:"\e543";--fa--fa:"\e543\e543"}.fa-ruler{--fa:"\f545";--fa--fa:"\f545\f545"}.fa-align-left{--fa:"\f036";--fa--fa:"\f036\f036"}.fa-dice-d6{--fa:"\f6d1";--fa--fa:"\f6d1\f6d1"}.fa-restroom{--fa:"\f7bd";--fa--fa:"\f7bd\f7bd"}.fa-j{--fa:"\4a";--fa--fa:"\4a\4a"}.fa-users-viewfinder{--fa:"\e595";--fa--fa:"\e595\e595"}.fa-file-video{--fa:"\f1c8";--fa--fa:"\f1c8\f1c8"}.fa-external-link-alt,.fa-up-right-from-square{--fa:"\f35d";--fa--fa:"\f35d\f35d"}.fa-table-cells,.fa-th{--fa:"\f00a";--fa--fa:"\f00a\f00a"}.fa-file-pdf{--fa:"\f1c1";--fa--fa:"\f1c1\f1c1"}.fa-bible,.fa-book-bible{--fa:"\f647";--fa--fa:"\f647\f647"}.fa-o{--fa:"\4f";--fa--fa:"\4f\4f"}.fa-medkit,.fa-suitcase-medical{--fa:"\f0fa";--fa--fa:"\f0fa\f0fa"}.fa-user-secret{--fa:"\f21b";--fa--fa:"\f21b\f21b"}.fa-otter{--fa:"\f700";--fa--fa:"\f700\f700"}.fa-female,.fa-person-dress{--fa:"\f182";--fa--fa:"\f182\f182"}.fa-comment-dollar{--fa:"\f651";--fa--fa:"\f651\f651"}.fa-briefcase-clock,.fa-business-time{--fa:"\f64a";--fa--fa:"\f64a\f64a"}.fa-table-cells-large,.fa-th-large{--fa:"\f009";--fa--fa:"\f009\f009"}.fa-book-tanakh,.fa-tanakh{--fa:"\f827";--fa--fa:"\f827\f827"}.fa-phone-volume,.fa-volume-control-phone{--fa:"\f2a0";--fa--fa:"\f2a0\f2a0"}.fa-hat-cowboy-side{--fa:"\f8c1";--fa--fa:"\f8c1\f8c1"}.fa-clipboard-user{--fa:"\f7f3";--fa--fa:"\f7f3\f7f3"}.fa-child{--fa:"\f1ae";--fa--fa:"\f1ae\f1ae"}.fa-lira-sign{--fa:"\f195";--fa--fa:"\f195\f195"}.fa-satellite{--fa:"\f7bf";--fa--fa:"\f7bf\f7bf"}.fa-plane-lock{--fa:"\e558";--fa--fa:"\e558\e558"}.fa-tag{--fa:"\f02b";--fa--fa:"\f02b\f02b"}.fa-comment{--fa:"\f075";--fa--fa:"\f075\f075"}.fa-birthday-cake,.fa-cake,.fa-cake-candles{--fa:"\f1fd";--fa--fa:"\f1fd\f1fd"}.fa-envelope{--fa:"\f0e0";--fa--fa:"\f0e0\f0e0"}.fa-angle-double-up,.fa-angles-up{--fa:"\f102";--fa--fa:"\f102\f102"}.fa-paperclip{--fa:"\f0c6";--fa--fa:"\f0c6\f0c6"}.fa-arrow-right-to-city{--fa:"\e4b3";--fa--fa:"\e4b3\e4b3"}.fa-ribbon{--fa:"\f4d6";--fa--fa:"\f4d6\f4d6"}.fa-lungs{--fa:"\f604";--fa--fa:"\f604\f604"}.fa-arrow-up-9-1,.fa-sort-numeric-up-alt{--fa:"\f887";--fa--fa:"\f887\f887"}.fa-litecoin-sign{--fa:"\e1d3";--fa--fa:"\e1d3\e1d3"}.fa-border-none{--fa:"\f850";--fa--fa:"\f850\f850"}.fa-circle-nodes{--fa:"\e4e2";--fa--fa:"\e4e2\e4e2"}.fa-parachute-box{--fa:"\f4cd";--fa--fa:"\f4cd\f4cd"}.fa-indent{--fa:"\f03c";--fa--fa:"\f03c\f03c"}.fa-truck-field-un{--fa:"\e58e";--fa--fa:"\e58e\e58e"}.fa-hourglass,.fa-hourglass-empty{--fa:"\f254";--fa--fa:"\f254\f254"}.fa-mountain{--fa:"\f6fc";--fa--fa:"\f6fc\f6fc"}.fa-user-doctor,.fa-user-md{--fa:"\f0f0";--fa--fa:"\f0f0\f0f0"}.fa-circle-info,.fa-info-circle{--fa:"\f05a";--fa--fa:"\f05a\f05a"}.fa-cloud-meatball{--fa:"\f73b";--fa--fa:"\f73b\f73b"}.fa-camera,.fa-camera-alt{--fa:"\f030";--fa--fa:"\f030\f030"}.fa-square-virus{--fa:"\e578";--fa--fa:"\e578\e578"}.fa-meteor{--fa:"\f753";--fa--fa:"\f753\f753"}.fa-car-on{--fa:"\e4dd";--fa--fa:"\e4dd\e4dd"}.fa-sleigh{--fa:"\f7cc";--fa--fa:"\f7cc\f7cc"}.fa-arrow-down-1-9,.fa-sort-numeric-asc,.fa-sort-numeric-down{--fa:"\f162";--fa--fa:"\f162\f162"}.fa-hand-holding-droplet,.fa-hand-holding-water{--fa:"\f4c1";--fa--fa:"\f4c1\f4c1"}.fa-water{--fa:"\f773";--fa--fa:"\f773\f773"}.fa-calendar-check{--fa:"\f274";--fa--fa:"\f274\f274"}.fa-braille{--fa:"\f2a1";--fa--fa:"\f2a1\f2a1"}.fa-prescription-bottle-alt,.fa-prescription-bottle-medical{--fa:"\f486";--fa--fa:"\f486\f486"}.fa-landmark{--fa:"\f66f";--fa--fa:"\f66f\f66f"}.fa-truck{--fa:"\f0d1";--fa--fa:"\f0d1\f0d1"}.fa-crosshairs{--fa:"\f05b";--fa--fa:"\f05b\f05b"}.fa-person-cane{--fa:"\e53c";--fa--fa:"\e53c\e53c"}.fa-tent{--fa:"\e57d";--fa--fa:"\e57d\e57d"}.fa-vest-patches{--fa:"\e086";--fa--fa:"\e086\e086"}.fa-check-double{--fa:"\f560";--fa--fa:"\f560\f560"}.fa-arrow-down-a-z,.fa-sort-alpha-asc,.fa-sort-alpha-down{--fa:"\f15d";--fa--fa:"\f15d\f15d"}.fa-money-bill-wheat{--fa:"\e52a";--fa--fa:"\e52a\e52a"}.fa-cookie{--fa:"\f563";--fa--fa:"\f563\f563"}.fa-arrow-left-rotate,.fa-arrow-rotate-back,.fa-arrow-rotate-backward,.fa-arrow-rotate-left,.fa-undo{--fa:"\f0e2";--fa--fa:"\f0e2\f0e2"}.fa-hard-drive,.fa-hdd{--fa:"\f0a0";--fa--fa:"\f0a0\f0a0"}.fa-face-grin-squint-tears,.fa-grin-squint-tears{--fa:"\f586";--fa--fa:"\f586\f586"}.fa-dumbbell{--fa:"\f44b";--fa--fa:"\f44b\f44b"}.fa-list-alt,.fa-rectangle-list{--fa:"\f022";--fa--fa:"\f022\f022"}.fa-tarp-droplet{--fa:"\e57c";--fa--fa:"\e57c\e57c"}.fa-house-medical-circle-check{--fa:"\e511";--fa--fa:"\e511\e511"}.fa-person-skiing-nordic,.fa-skiing-nordic{--fa:"\f7ca";--fa--fa:"\f7ca\f7ca"}.fa-calendar-plus{--fa:"\f271";--fa--fa:"\f271\f271"}.fa-plane-arrival{--fa:"\f5af";--fa--fa:"\f5af\f5af"}.fa-arrow-alt-circle-left,.fa-circle-left{--fa:"\f359";--fa--fa:"\f359\f359"}.fa-subway,.fa-train-subway{--fa:"\f239";--fa--fa:"\f239\f239"}.fa-chart-gantt{--fa:"\e0e4";--fa--fa:"\e0e4\e0e4"}.fa-indian-rupee,.fa-indian-rupee-sign,.fa-inr{--fa:"\e1bc";--fa--fa:"\e1bc\e1bc"}.fa-crop-alt,.fa-crop-simple{--fa:"\f565";--fa--fa:"\f565\f565"}.fa-money-bill-1,.fa-money-bill-alt{--fa:"\f3d1";--fa--fa:"\f3d1\f3d1"}.fa-left-long,.fa-long-arrow-alt-left{--fa:"\f30a";--fa--fa:"\f30a\f30a"}.fa-dna{--fa:"\f471";--fa--fa:"\f471\f471"}.fa-virus-slash{--fa:"\e075";--fa--fa:"\e075\e075"}.fa-minus,.fa-subtract{--fa:"\f068";--fa--fa:"\f068\f068"}.fa-chess{--fa:"\f439";--fa--fa:"\f439\f439"}.fa-arrow-left-long,.fa-long-arrow-left{--fa:"\f177";--fa--fa:"\f177\f177"}.fa-plug-circle-check{--fa:"\e55c";--fa--fa:"\e55c\e55c"}.fa-street-view{--fa:"\f21d";--fa--fa:"\f21d\f21d"}.fa-franc-sign{--fa:"\e18f";--fa--fa:"\e18f\e18f"}.fa-volume-off{--fa:"\f026";--fa--fa:"\f026\f026"}.fa-american-sign-language-interpreting,.fa-asl-interpreting,.fa-hands-american-sign-language-interpreting,.fa-hands-asl-interpreting{--fa:"\f2a3";--fa--fa:"\f2a3\f2a3"}.fa-cog,.fa-gear{--fa:"\f013";--fa--fa:"\f013\f013"}.fa-droplet-slash,.fa-tint-slash{--fa:"\f5c7";--fa--fa:"\f5c7\f5c7"}.fa-mosque{--fa:"\f678";--fa--fa:"\f678\f678"}.fa-mosquito{--fa:"\e52b";--fa--fa:"\e52b\e52b"}.fa-star-of-david{--fa:"\f69a";--fa--fa:"\f69a\f69a"}.fa-person-military-rifle{--fa:"\e54b";--fa--fa:"\e54b\e54b"}.fa-cart-shopping,.fa-shopping-cart{--fa:"\f07a";--fa--fa:"\f07a\f07a"}.fa-vials{--fa:"\f493";--fa--fa:"\f493\f493"}.fa-plug-circle-plus{--fa:"\e55f";--fa--fa:"\e55f\e55f"}.fa-place-of-worship{--fa:"\f67f";--fa--fa:"\f67f\f67f"}.fa-grip-vertical{--fa:"\f58e";--fa--fa:"\f58e\f58e"}.fa-hexagon-nodes{--fa:"\e699";--fa--fa:"\e699\e699"}.fa-arrow-turn-up,.fa-level-up{--fa:"\f148";--fa--fa:"\f148\f148"}.fa-u{--fa:"\55";--fa--fa:"\55\55"}.fa-square-root-alt,.fa-square-root-variable{--fa:"\f698";--fa--fa:"\f698\f698"}.fa-clock,.fa-clock-four{--fa:"\f017";--fa--fa:"\f017\f017"}.fa-backward-step,.fa-step-backward{--fa:"\f048";--fa--fa:"\f048\f048"}.fa-pallet{--fa:"\f482";--fa--fa:"\f482\f482"}.fa-faucet{--fa:"\e005";--fa--fa:"\e005\e005"}.fa-baseball-bat-ball{--fa:"\f432";--fa--fa:"\f432\f432"}.fa-s{--fa:"\53";--fa--fa:"\53\53"}.fa-timeline{--fa:"\e29c";--fa--fa:"\e29c\e29c"}.fa-keyboard{--fa:"\f11c";--fa--fa:"\f11c\f11c"}.fa-caret-down{--fa:"\f0d7";--fa--fa:"\f0d7\f0d7"}.fa-clinic-medical,.fa-house-chimney-medical{--fa:"\f7f2";--fa--fa:"\f7f2\f7f2"}.fa-temperature-3,.fa-temperature-three-quarters,.fa-thermometer-3,.fa-thermometer-three-quarters{--fa:"\f2c8";--fa--fa:"\f2c8\f2c8"}.fa-mobile-android-alt,.fa-mobile-screen{--fa:"\f3cf";--fa--fa:"\f3cf\f3cf"}.fa-plane-up{--fa:"\e22d";--fa--fa:"\e22d\e22d"}.fa-piggy-bank{--fa:"\f4d3";--fa--fa:"\f4d3\f4d3"}.fa-battery-3,.fa-battery-half{--fa:"\f242";--fa--fa:"\f242\f242"}.fa-mountain-city{--fa:"\e52e";--fa--fa:"\e52e\e52e"}.fa-coins{--fa:"\f51e";--fa--fa:"\f51e\f51e"}.fa-khanda{--fa:"\f66d";--fa--fa:"\f66d\f66d"}.fa-sliders,.fa-sliders-h{--fa:"\f1de";--fa--fa:"\f1de\f1de"}.fa-folder-tree{--fa:"\f802";--fa--fa:"\f802\f802"}.fa-network-wired{--fa:"\f6ff";--fa--fa:"\f6ff\f6ff"}.fa-map-pin{--fa:"\f276";--fa--fa:"\f276\f276"}.fa-hamsa{--fa:"\f665";--fa--fa:"\f665\f665"}.fa-cent-sign{--fa:"\e3f5";--fa--fa:"\e3f5\e3f5"}.fa-flask{--fa:"\f0c3";--fa--fa:"\f0c3\f0c3"}.fa-person-pregnant{--fa:"\e31e";--fa--fa:"\e31e\e31e"}.fa-wand-sparkles{--fa:"\f72b";--fa--fa:"\f72b\f72b"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\f142";--fa--fa:"\f142\f142"}.fa-ticket{--fa:"\f145";--fa--fa:"\f145\f145"}.fa-power-off{--fa:"\f011";--fa--fa:"\f011\f011"}.fa-long-arrow-alt-right,.fa-right-long{--fa:"\f30b";--fa--fa:"\f30b\f30b"}.fa-flag-usa{--fa:"\f74d";--fa--fa:"\f74d\f74d"}.fa-laptop-file{--fa:"\e51d";--fa--fa:"\e51d\e51d"}.fa-teletype,.fa-tty{--fa:"\f1e4";--fa--fa:"\f1e4\f1e4"}.fa-diagram-next{--fa:"\e476";--fa--fa:"\e476\e476"}.fa-person-rifle{--fa:"\e54e";--fa--fa:"\e54e\e54e"}.fa-house-medical-circle-exclamation{--fa:"\e512";--fa--fa:"\e512\e512"}.fa-closed-captioning{--fa:"\f20a";--fa--fa:"\f20a\f20a"}.fa-hiking,.fa-person-hiking{--fa:"\f6ec";--fa--fa:"\f6ec\f6ec"}.fa-venus-double{--fa:"\f226";--fa--fa:"\f226\f226"}.fa-images{--fa:"\f302";--fa--fa:"\f302\f302"}.fa-calculator{--fa:"\f1ec";--fa--fa:"\f1ec\f1ec"}.fa-people-pulling{--fa:"\e535";--fa--fa:"\e535\e535"}.fa-n{--fa:"\4e";--fa--fa:"\4e\4e"}.fa-cable-car,.fa-tram{--fa:"\f7da";--fa--fa:"\f7da\f7da"}.fa-cloud-rain{--fa:"\f73d";--fa--fa:"\f73d\f73d"}.fa-building-circle-xmark{--fa:"\e4d4";--fa--fa:"\e4d4\e4d4"}.fa-ship{--fa:"\f21a";--fa--fa:"\f21a\f21a"}.fa-arrows-down-to-line{--fa:"\e4b8";--fa--fa:"\e4b8\e4b8"}.fa-download{--fa:"\f019";--fa--fa:"\f019\f019"}.fa-face-grin,.fa-grin{--fa:"\f580";--fa--fa:"\f580\f580"}.fa-backspace,.fa-delete-left{--fa:"\f55a";--fa--fa:"\f55a\f55a"}.fa-eye-dropper,.fa-eye-dropper-empty,.fa-eyedropper{--fa:"\f1fb";--fa--fa:"\f1fb\f1fb"}.fa-file-circle-check{--fa:"\e5a0";--fa--fa:"\e5a0\e5a0"}.fa-forward{--fa:"\f04e";--fa--fa:"\f04e\f04e"}.fa-mobile,.fa-mobile-android,.fa-mobile-phone{--fa:"\f3ce";--fa--fa:"\f3ce\f3ce"}.fa-face-meh,.fa-meh{--fa:"\f11a";--fa--fa:"\f11a\f11a"}.fa-align-center{--fa:"\f037";--fa--fa:"\f037\f037"}.fa-book-dead,.fa-book-skull{--fa:"\f6b7";--fa--fa:"\f6b7\f6b7"}.fa-drivers-license,.fa-id-card{--fa:"\f2c2";--fa--fa:"\f2c2\f2c2"}.fa-dedent,.fa-outdent{--fa:"\f03b";--fa--fa:"\f03b\f03b"}.fa-heart-circle-exclamation{--fa:"\e4fe";--fa--fa:"\e4fe\e4fe"}.fa-home,.fa-home-alt,.fa-home-lg-alt,.fa-house{--fa:"\f015";--fa--fa:"\f015\f015"}.fa-calendar-week{--fa:"\f784";--fa--fa:"\f784\f784"}.fa-laptop-medical{--fa:"\f812";--fa--fa:"\f812\f812"}.fa-b{--fa:"\42";--fa--fa:"\42\42"}.fa-file-medical{--fa:"\f477";--fa--fa:"\f477\f477"}.fa-dice-one{--fa:"\f525";--fa--fa:"\f525\f525"}.fa-kiwi-bird{--fa:"\f535";--fa--fa:"\f535\f535"}.fa-arrow-right-arrow-left,.fa-exchange{--fa:"\f0ec";--fa--fa:"\f0ec\f0ec"}.fa-redo-alt,.fa-rotate-forward,.fa-rotate-right{--fa:"\f2f9";--fa--fa:"\f2f9\f2f9"}.fa-cutlery,.fa-utensils{--fa:"\f2e7";--fa--fa:"\f2e7\f2e7"}.fa-arrow-up-wide-short,.fa-sort-amount-up{--fa:"\f161";--fa--fa:"\f161\f161"}.fa-mill-sign{--fa:"\e1ed";--fa--fa:"\e1ed\e1ed"}.fa-bowl-rice{--fa:"\e2eb";--fa--fa:"\e2eb\e2eb"}.fa-skull{--fa:"\f54c";--fa--fa:"\f54c\f54c"}.fa-broadcast-tower,.fa-tower-broadcast{--fa:"\f519";--fa--fa:"\f519\f519"}.fa-truck-pickup{--fa:"\f63c";--fa--fa:"\f63c\f63c"}.fa-long-arrow-alt-up,.fa-up-long{--fa:"\f30c";--fa--fa:"\f30c\f30c"}.fa-stop{--fa:"\f04d";--fa--fa:"\f04d\f04d"}.fa-code-merge{--fa:"\f387";--fa--fa:"\f387\f387"}.fa-upload{--fa:"\f093";--fa--fa:"\f093\f093"}.fa-hurricane{--fa:"\f751";--fa--fa:"\f751\f751"}.fa-mound{--fa:"\e52d";--fa--fa:"\e52d\e52d"}.fa-toilet-portable{--fa:"\e583";--fa--fa:"\e583\e583"}.fa-compact-disc{--fa:"\f51f";--fa--fa:"\f51f\f51f"}.fa-file-arrow-down,.fa-file-download{--fa:"\f56d";--fa--fa:"\f56d\f56d"}.fa-caravan{--fa:"\f8ff";--fa--fa:"\f8ff\f8ff"}.fa-shield-cat{--fa:"\e572";--fa--fa:"\e572\e572"}.fa-bolt,.fa-zap{--fa:"\f0e7";--fa--fa:"\f0e7\f0e7"}.fa-glass-water{--fa:"\e4f4";--fa--fa:"\e4f4\e4f4"}.fa-oil-well{--fa:"\e532";--fa--fa:"\e532\e532"}.fa-vault{--fa:"\e2c5";--fa--fa:"\e2c5\e2c5"}.fa-mars{--fa:"\f222";--fa--fa:"\f222\f222"}.fa-toilet{--fa:"\f7d8";--fa--fa:"\f7d8\f7d8"}.fa-plane-circle-xmark{--fa:"\e557";--fa--fa:"\e557\e557"}.fa-cny,.fa-jpy,.fa-rmb,.fa-yen,.fa-yen-sign{--fa:"\f157";--fa--fa:"\f157\f157"}.fa-rouble,.fa-rub,.fa-ruble,.fa-ruble-sign{--fa:"\f158";--fa--fa:"\f158\f158"}.fa-sun{--fa:"\f185";--fa--fa:"\f185\f185"}.fa-guitar{--fa:"\f7a6";--fa--fa:"\f7a6\f7a6"}.fa-face-laugh-wink,.fa-laugh-wink{--fa:"\f59c";--fa--fa:"\f59c\f59c"}.fa-horse-head{--fa:"\f7ab";--fa--fa:"\f7ab\f7ab"}.fa-bore-hole{--fa:"\e4c3";--fa--fa:"\e4c3\e4c3"}.fa-industry{--fa:"\f275";--fa--fa:"\f275\f275"}.fa-arrow-alt-circle-down,.fa-circle-down{--fa:"\f358";--fa--fa:"\f358\f358"}.fa-arrows-turn-to-dots{--fa:"\e4c1";--fa--fa:"\e4c1\e4c1"}.fa-florin-sign{--fa:"\e184";--fa--fa:"\e184\e184"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\f884";--fa--fa:"\f884\f884"}.fa-less-than{--fa:"\3c";--fa--fa:"\3c\3c"}.fa-angle-down{--fa:"\f107";--fa--fa:"\f107\f107"}.fa-car-tunnel{--fa:"\e4de";--fa--fa:"\e4de\e4de"}.fa-head-side-cough{--fa:"\e061";--fa--fa:"\e061\e061"}.fa-grip-lines{--fa:"\f7a4";--fa--fa:"\f7a4\f7a4"}.fa-thumbs-down{--fa:"\f165";--fa--fa:"\f165\f165"}.fa-user-lock{--fa:"\f502";--fa--fa:"\f502\f502"}.fa-arrow-right-long,.fa-long-arrow-right{--fa:"\f178";--fa--fa:"\f178\f178"}.fa-anchor-circle-xmark{--fa:"\e4ac";--fa--fa:"\e4ac\e4ac"}.fa-ellipsis,.fa-ellipsis-h{--fa:"\f141";--fa--fa:"\f141\f141"}.fa-chess-pawn{--fa:"\f443";--fa--fa:"\f443\f443"}.fa-first-aid,.fa-kit-medical{--fa:"\f479";--fa--fa:"\f479\f479"}.fa-person-through-window{--fa:"\e5a9";--fa--fa:"\e5a9\e5a9"}.fa-toolbox{--fa:"\f552";--fa--fa:"\f552\f552"}.fa-hands-holding-circle{--fa:"\e4fb";--fa--fa:"\e4fb\e4fb"}.fa-bug{--fa:"\f188";--fa--fa:"\f188\f188"}.fa-credit-card,.fa-credit-card-alt{--fa:"\f09d";--fa--fa:"\f09d\f09d"}.fa-automobile,.fa-car{--fa:"\f1b9";--fa--fa:"\f1b9\f1b9"}.fa-hand-holding-hand{--fa:"\e4f7";--fa--fa:"\e4f7\e4f7"}.fa-book-open-reader,.fa-book-reader{--fa:"\f5da";--fa--fa:"\f5da\f5da"}.fa-mountain-sun{--fa:"\e52f";--fa--fa:"\e52f\e52f"}.fa-arrows-left-right-to-line{--fa:"\e4ba";--fa--fa:"\e4ba\e4ba"}.fa-dice-d20{--fa:"\f6cf";--fa--fa:"\f6cf\f6cf"}.fa-truck-droplet{--fa:"\e58c";--fa--fa:"\e58c\e58c"}.fa-file-circle-xmark{--fa:"\e5a1";--fa--fa:"\e5a1\e5a1"}.fa-temperature-arrow-up,.fa-temperature-up{--fa:"\e040";--fa--fa:"\e040\e040"}.fa-medal{--fa:"\f5a2";--fa--fa:"\f5a2\f5a2"}.fa-bed{--fa:"\f236";--fa--fa:"\f236\f236"}.fa-h-square,.fa-square-h{--fa:"\f0fd";--fa--fa:"\f0fd\f0fd"}.fa-podcast{--fa:"\f2ce";--fa--fa:"\f2ce\f2ce"}.fa-temperature-4,.fa-temperature-full,.fa-thermometer-4,.fa-thermometer-full{--fa:"\f2c7";--fa--fa:"\f2c7\f2c7"}.fa-bell{--fa:"\f0f3";--fa--fa:"\f0f3\f0f3"}.fa-superscript{--fa:"\f12b";--fa--fa:"\f12b\f12b"}.fa-plug-circle-xmark{--fa:"\e560";--fa--fa:"\e560\e560"}.fa-star-of-life{--fa:"\f621";--fa--fa:"\f621\f621"}.fa-phone-slash{--fa:"\f3dd";--fa--fa:"\f3dd\f3dd"}.fa-paint-roller{--fa:"\f5aa";--fa--fa:"\f5aa\f5aa"}.fa-hands-helping,.fa-handshake-angle{--fa:"\f4c4";--fa--fa:"\f4c4\f4c4"}.fa-location-dot,.fa-map-marker-alt{--fa:"\f3c5";--fa--fa:"\f3c5\f3c5"}.fa-file{--fa:"\f15b";--fa--fa:"\f15b\f15b"}.fa-greater-than{--fa:"\3e";--fa--fa:"\3e\3e"}.fa-person-swimming,.fa-swimmer{--fa:"\f5c4";--fa--fa:"\f5c4\f5c4"}.fa-arrow-down{--fa:"\f063";--fa--fa:"\f063\f063"}.fa-droplet,.fa-tint{--fa:"\f043";--fa--fa:"\f043\f043"}.fa-eraser{--fa:"\f12d";--fa--fa:"\f12d\f12d"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\f57d";--fa--fa:"\f57d\f57d"}.fa-person-burst{--fa:"\e53b";--fa--fa:"\e53b\e53b"}.fa-dove{--fa:"\f4ba";--fa--fa:"\f4ba\f4ba"}.fa-battery-0,.fa-battery-empty{--fa:"\f244";--fa--fa:"\f244\f244"}.fa-socks{--fa:"\f696";--fa--fa:"\f696\f696"}.fa-inbox{--fa:"\f01c";--fa--fa:"\f01c\f01c"}.fa-section{--fa:"\e447";--fa--fa:"\e447\e447"}.fa-gauge-high,.fa-tachometer-alt,.fa-tachometer-alt-fast{--fa:"\f625";--fa--fa:"\f625\f625"}.fa-envelope-open-text{--fa:"\f658";--fa--fa:"\f658\f658"}.fa-hospital,.fa-hospital-alt,.fa-hospital-wide{--fa:"\f0f8";--fa--fa:"\f0f8\f0f8"}.fa-wine-bottle{--fa:"\f72f";--fa--fa:"\f72f\f72f"}.fa-chess-rook{--fa:"\f447";--fa--fa:"\f447\f447"}.fa-bars-staggered,.fa-reorder,.fa-stream{--fa:"\f550";--fa--fa:"\f550\f550"}.fa-dharmachakra{--fa:"\f655";--fa--fa:"\f655\f655"}.fa-hotdog{--fa:"\f80f";--fa--fa:"\f80f\f80f"}.fa-blind,.fa-person-walking-with-cane{--fa:"\f29d";--fa--fa:"\f29d\f29d"}.fa-drum{--fa:"\f569";--fa--fa:"\f569\f569"}.fa-ice-cream{--fa:"\f810";--fa--fa:"\f810\f810"}.fa-heart-circle-bolt{--fa:"\e4fc";--fa--fa:"\e4fc\e4fc"}.fa-fax{--fa:"\f1ac";--fa--fa:"\f1ac\f1ac"}.fa-paragraph{--fa:"\f1dd";--fa--fa:"\f1dd\f1dd"}.fa-check-to-slot,.fa-vote-yea{--fa:"\f772";--fa--fa:"\f772\f772"}.fa-star-half{--fa:"\f089";--fa--fa:"\f089\f089"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\f468";--fa--fa:"\f468\f468"}.fa-chain,.fa-link{--fa:"\f0c1";--fa--fa:"\f0c1\f0c1"}.fa-assistive-listening-systems,.fa-ear-listen{--fa:"\f2a2";--fa--fa:"\f2a2\f2a2"}.fa-tree-city{--fa:"\e587";--fa--fa:"\e587\e587"}.fa-play{--fa:"\f04b";--fa--fa:"\f04b\f04b"}.fa-font{--fa:"\f031";--fa--fa:"\f031\f031"}.fa-table-cells-row-lock{--fa:"\e67a";--fa--fa:"\e67a\e67a"}.fa-rupiah-sign{--fa:"\e23d";--fa--fa:"\e23d\e23d"}.fa-magnifying-glass,.fa-search{--fa:"\f002";--fa--fa:"\f002\f002"}.fa-ping-pong-paddle-ball,.fa-table-tennis,.fa-table-tennis-paddle-ball{--fa:"\f45d";--fa--fa:"\f45d\f45d"}.fa-diagnoses,.fa-person-dots-from-line{--fa:"\f470";--fa--fa:"\f470\f470"}.fa-trash-can-arrow-up,.fa-trash-restore-alt{--fa:"\f82a";--fa--fa:"\f82a\f82a"}.fa-naira-sign{--fa:"\e1f6";--fa--fa:"\e1f6\e1f6"}.fa-cart-arrow-down{--fa:"\f218";--fa--fa:"\f218\f218"}.fa-walkie-talkie{--fa:"\f8ef";--fa--fa:"\f8ef\f8ef"}.fa-file-edit,.fa-file-pen{--fa:"\f31c";--fa--fa:"\f31c\f31c"}.fa-receipt{--fa:"\f543";--fa--fa:"\f543\f543"}.fa-pen-square,.fa-pencil-square,.fa-square-pen{--fa:"\f14b";--fa--fa:"\f14b\f14b"}.fa-suitcase-rolling{--fa:"\f5c1";--fa--fa:"\f5c1\f5c1"}.fa-person-circle-exclamation{--fa:"\e53f";--fa--fa:"\e53f\e53f"}.fa-chevron-down{--fa:"\f078";--fa--fa:"\f078\f078"}.fa-battery,.fa-battery-5,.fa-battery-full{--fa:"\f240";--fa--fa:"\f240\f240"}.fa-skull-crossbones{--fa:"\f714";--fa--fa:"\f714\f714"}.fa-code-compare{--fa:"\e13a";--fa--fa:"\e13a\e13a"}.fa-list-dots,.fa-list-ul{--fa:"\f0ca";--fa--fa:"\f0ca\f0ca"}.fa-school-lock{--fa:"\e56f";--fa--fa:"\e56f\e56f"}.fa-tower-cell{--fa:"\e585";--fa--fa:"\e585\e585"}.fa-down-long,.fa-long-arrow-alt-down{--fa:"\f309";--fa--fa:"\f309\f309"}.fa-ranking-star{--fa:"\e561";--fa--fa:"\e561\e561"}.fa-chess-king{--fa:"\f43f";--fa--fa:"\f43f\f43f"}.fa-person-harassing{--fa:"\e549";--fa--fa:"\e549\e549"}.fa-brazilian-real-sign{--fa:"\e46c";--fa--fa:"\e46c\e46c"}.fa-landmark-alt,.fa-landmark-dome{--fa:"\f752";--fa--fa:"\f752\f752"}.fa-arrow-up{--fa:"\f062";--fa--fa:"\f062\f062"}.fa-television,.fa-tv,.fa-tv-alt{--fa:"\f26c";--fa--fa:"\f26c\f26c"}.fa-shrimp{--fa:"\e448";--fa--fa:"\e448\e448"}.fa-list-check,.fa-tasks{--fa:"\f0ae";--fa--fa:"\f0ae\f0ae"}.fa-jug-detergent{--fa:"\e519";--fa--fa:"\e519\e519"}.fa-circle-user,.fa-user-circle{--fa:"\f2bd";--fa--fa:"\f2bd\f2bd"}.fa-user-shield{--fa:"\f505";--fa--fa:"\f505\f505"}.fa-wind{--fa:"\f72e";--fa--fa:"\f72e\f72e"}.fa-car-burst,.fa-car-crash{--fa:"\f5e1";--fa--fa:"\f5e1\f5e1"}.fa-y{--fa:"\59";--fa--fa:"\59\59"}.fa-person-snowboarding,.fa-snowboarding{--fa:"\f7ce";--fa--fa:"\f7ce\f7ce"}.fa-shipping-fast,.fa-truck-fast{--fa:"\f48b";--fa--fa:"\f48b\f48b"}.fa-fish{--fa:"\f578";--fa--fa:"\f578\f578"}.fa-user-graduate{--fa:"\f501";--fa--fa:"\f501\f501"}.fa-adjust,.fa-circle-half-stroke{--fa:"\f042";--fa--fa:"\f042\f042"}.fa-clapperboard{--fa:"\e131";--fa--fa:"\e131\e131"}.fa-circle-radiation,.fa-radiation-alt{--fa:"\f7ba";--fa--fa:"\f7ba\f7ba"}.fa-baseball,.fa-baseball-ball{--fa:"\f433";--fa--fa:"\f433\f433"}.fa-jet-fighter-up{--fa:"\e518";--fa--fa:"\e518\e518"}.fa-diagram-project,.fa-project-diagram{--fa:"\f542";--fa--fa:"\f542\f542"}.fa-copy{--fa:"\f0c5";--fa--fa:"\f0c5\f0c5"}.fa-volume-mute,.fa-volume-times,.fa-volume-xmark{--fa:"\f6a9";--fa--fa:"\f6a9\f6a9"}.fa-hand-sparkles{--fa:"\e05d";--fa--fa:"\e05d\e05d"}.fa-grip,.fa-grip-horizontal{--fa:"\f58d";--fa--fa:"\f58d\f58d"}.fa-share-from-square,.fa-share-square{--fa:"\f14d";--fa--fa:"\f14d\f14d"}.fa-child-combatant,.fa-child-rifle{--fa:"\e4e0";--fa--fa:"\e4e0\e4e0"}.fa-gun{--fa:"\e19b";--fa--fa:"\e19b\e19b"}.fa-phone-square,.fa-square-phone{--fa:"\f098";--fa--fa:"\f098\f098"}.fa-add,.fa-plus{--fa:"\2b";--fa--fa:"\2b\2b"}.fa-expand{--fa:"\f065";--fa--fa:"\f065\f065"}.fa-computer{--fa:"\e4e5";--fa--fa:"\e4e5\e4e5"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\f00d";--fa--fa:"\f00d\f00d"}.fa-arrows,.fa-arrows-up-down-left-right{--fa:"\f047";--fa--fa:"\f047\f047"}.fa-chalkboard-teacher,.fa-chalkboard-user{--fa:"\f51c";--fa--fa:"\f51c\f51c"}.fa-peso-sign{--fa:"\e222";--fa--fa:"\e222\e222"}.fa-building-shield{--fa:"\e4d8";--fa--fa:"\e4d8\e4d8"}.fa-baby{--fa:"\f77c";--fa--fa:"\f77c\f77c"}.fa-users-line{--fa:"\e592";--fa--fa:"\e592\e592"}.fa-quote-left,.fa-quote-left-alt{--fa:"\f10d";--fa--fa:"\f10d\f10d"}.fa-tractor{--fa:"\f722";--fa--fa:"\f722\f722"}.fa-trash-arrow-up,.fa-trash-restore{--fa:"\f829";--fa--fa:"\f829\f829"}.fa-arrow-down-up-lock{--fa:"\e4b0";--fa--fa:"\e4b0\e4b0"}.fa-lines-leaning{--fa:"\e51e";--fa--fa:"\e51e\e51e"}.fa-ruler-combined{--fa:"\f546";--fa--fa:"\f546\f546"}.fa-copyright{--fa:"\f1f9";--fa--fa:"\f1f9\f1f9"}.fa-equals{--fa:"\3d";--fa--fa:"\3d\3d"}.fa-blender{--fa:"\f517";--fa--fa:"\f517\f517"}.fa-teeth{--fa:"\f62e";--fa--fa:"\f62e\f62e"}.fa-ils,.fa-shekel,.fa-shekel-sign,.fa-sheqel,.fa-sheqel-sign{--fa:"\f20b";--fa--fa:"\f20b\f20b"}.fa-map{--fa:"\f279";--fa--fa:"\f279\f279"}.fa-rocket{--fa:"\f135";--fa--fa:"\f135\f135"}.fa-photo-film,.fa-photo-video{--fa:"\f87c";--fa--fa:"\f87c\f87c"}.fa-folder-minus{--fa:"\f65d";--fa--fa:"\f65d\f65d"}.fa-hexagon-nodes-bolt{--fa:"\e69a";--fa--fa:"\e69a\e69a"}.fa-store{--fa:"\f54e";--fa--fa:"\f54e\f54e"}.fa-arrow-trend-up{--fa:"\e098";--fa--fa:"\e098\e098"}.fa-plug-circle-minus{--fa:"\e55e";--fa--fa:"\e55e\e55e"}.fa-sign,.fa-sign-hanging{--fa:"\f4d9";--fa--fa:"\f4d9\f4d9"}.fa-bezier-curve{--fa:"\f55b";--fa--fa:"\f55b\f55b"}.fa-bell-slash{--fa:"\f1f6";--fa--fa:"\f1f6\f1f6"}.fa-tablet,.fa-tablet-android{--fa:"\f3fb";--fa--fa:"\f3fb\f3fb"}.fa-school-flag{--fa:"\e56e";--fa--fa:"\e56e\e56e"}.fa-fill{--fa:"\f575";--fa--fa:"\f575\f575"}.fa-angle-up{--fa:"\f106";--fa--fa:"\f106\f106"}.fa-drumstick-bite{--fa:"\f6d7";--fa--fa:"\f6d7\f6d7"}.fa-holly-berry{--fa:"\f7aa";--fa--fa:"\f7aa\f7aa"}.fa-chevron-left{--fa:"\f053";--fa--fa:"\f053\f053"}.fa-bacteria{--fa:"\e059";--fa--fa:"\e059\e059"}.fa-hand-lizard{--fa:"\f258";--fa--fa:"\f258\f258"}.fa-notdef{--fa:"\e1fe";--fa--fa:"\e1fe\e1fe"}.fa-disease{--fa:"\f7fa";--fa--fa:"\f7fa\f7fa"}.fa-briefcase-medical{--fa:"\f469";--fa--fa:"\f469\f469"}.fa-genderless{--fa:"\f22d";--fa--fa:"\f22d\f22d"}.fa-chevron-right{--fa:"\f054";--fa--fa:"\f054\f054"}.fa-retweet{--fa:"\f079";--fa--fa:"\f079\f079"}.fa-car-alt,.fa-car-rear{--fa:"\f5de";--fa--fa:"\f5de\f5de"}.fa-pump-soap{--fa:"\e06b";--fa--fa:"\e06b\e06b"}.fa-video-slash{--fa:"\f4e2";--fa--fa:"\f4e2\f4e2"}.fa-battery-2,.fa-battery-quarter{--fa:"\f243";--fa--fa:"\f243\f243"}.fa-radio{--fa:"\f8d7";--fa--fa:"\f8d7\f8d7"}.fa-baby-carriage,.fa-carriage-baby{--fa:"\f77d";--fa--fa:"\f77d\f77d"}.fa-traffic-light{--fa:"\f637";--fa--fa:"\f637\f637"}.fa-thermometer{--fa:"\f491";--fa--fa:"\f491\f491"}.fa-vr-cardboard{--fa:"\f729";--fa--fa:"\f729\f729"}.fa-hand-middle-finger{--fa:"\f806";--fa--fa:"\f806\f806"}.fa-percent,.fa-percentage{--fa:"\25";--fa--fa:"\25\25"}.fa-truck-moving{--fa:"\f4df";--fa--fa:"\f4df\f4df"}.fa-glass-water-droplet{--fa:"\e4f5";--fa--fa:"\e4f5\e4f5"}.fa-display{--fa:"\e163";--fa--fa:"\e163\e163"}.fa-face-smile,.fa-smile{--fa:"\f118";--fa--fa:"\f118\f118"}.fa-thumb-tack,.fa-thumbtack{--fa:"\f08d";--fa--fa:"\f08d\f08d"}.fa-trophy{--fa:"\f091";--fa--fa:"\f091\f091"}.fa-person-praying,.fa-pray{--fa:"\f683";--fa--fa:"\f683\f683"}.fa-hammer{--fa:"\f6e3";--fa--fa:"\f6e3\f6e3"}.fa-hand-peace{--fa:"\f25b";--fa--fa:"\f25b\f25b"}.fa-rotate,.fa-sync-alt{--fa:"\f2f1";--fa--fa:"\f2f1\f2f1"}.fa-spinner{--fa:"\f110";--fa--fa:"\f110\f110"}.fa-robot{--fa:"\f544";--fa--fa:"\f544\f544"}.fa-peace{--fa:"\f67c";--fa--fa:"\f67c\f67c"}.fa-cogs,.fa-gears{--fa:"\f085";--fa--fa:"\f085\f085"}.fa-warehouse{--fa:"\f494";--fa--fa:"\f494\f494"}.fa-arrow-up-right-dots{--fa:"\e4b7";--fa--fa:"\e4b7\e4b7"}.fa-splotch{--fa:"\f5bc";--fa--fa:"\f5bc\f5bc"}.fa-face-grin-hearts,.fa-grin-hearts{--fa:"\f584";--fa--fa:"\f584\f584"}.fa-dice-four{--fa:"\f524";--fa--fa:"\f524\f524"}.fa-sim-card{--fa:"\f7c4";--fa--fa:"\f7c4\f7c4"}.fa-transgender,.fa-transgender-alt{--fa:"\f225";--fa--fa:"\f225\f225"}.fa-mercury{--fa:"\f223";--fa--fa:"\f223\f223"}.fa-arrow-turn-down,.fa-level-down{--fa:"\f149";--fa--fa:"\f149\f149"}.fa-person-falling-burst{--fa:"\e547";--fa--fa:"\e547\e547"}.fa-award{--fa:"\f559";--fa--fa:"\f559\f559"}.fa-ticket-alt,.fa-ticket-simple{--fa:"\f3ff";--fa--fa:"\f3ff\f3ff"}.fa-building{--fa:"\f1ad";--fa--fa:"\f1ad\f1ad"}.fa-angle-double-left,.fa-angles-left{--fa:"\f100";--fa--fa:"\f100\f100"}.fa-qrcode{--fa:"\f029";--fa--fa:"\f029\f029"}.fa-clock-rotate-left,.fa-history{--fa:"\f1da";--fa--fa:"\f1da\f1da"}.fa-face-grin-beam-sweat,.fa-grin-beam-sweat{--fa:"\f583";--fa--fa:"\f583\f583"}.fa-arrow-right-from-file,.fa-file-export{--fa:"\f56e";--fa--fa:"\f56e\f56e"}.fa-shield,.fa-shield-blank{--fa:"\f132";--fa--fa:"\f132\f132"}.fa-arrow-up-short-wide,.fa-sort-amount-up-alt{--fa:"\f885";--fa--fa:"\f885\f885"}.fa-comment-nodes{--fa:"\e696";--fa--fa:"\e696\e696"}.fa-house-medical{--fa:"\e3b2";--fa--fa:"\e3b2\e3b2"}.fa-golf-ball,.fa-golf-ball-tee{--fa:"\f450";--fa--fa:"\f450\f450"}.fa-chevron-circle-left,.fa-circle-chevron-left{--fa:"\f137";--fa--fa:"\f137\f137"}.fa-house-chimney-window{--fa:"\e00d";--fa--fa:"\e00d\e00d"}.fa-pen-nib{--fa:"\f5ad";--fa--fa:"\f5ad\f5ad"}.fa-tent-arrow-turn-left{--fa:"\e580";--fa--fa:"\e580\e580"}.fa-tents{--fa:"\e582";--fa--fa:"\e582\e582"}.fa-magic,.fa-wand-magic{--fa:"\f0d0";--fa--fa:"\f0d0\f0d0"}.fa-dog{--fa:"\f6d3";--fa--fa:"\f6d3\f6d3"}.fa-carrot{--fa:"\f787";--fa--fa:"\f787\f787"}.fa-moon{--fa:"\f186";--fa--fa:"\f186\f186"}.fa-wine-glass-alt,.fa-wine-glass-empty{--fa:"\f5ce";--fa--fa:"\f5ce\f5ce"}.fa-cheese{--fa:"\f7ef";--fa--fa:"\f7ef\f7ef"}.fa-yin-yang{--fa:"\f6ad";--fa--fa:"\f6ad\f6ad"}.fa-music{--fa:"\f001";--fa--fa:"\f001\f001"}.fa-code-commit{--fa:"\f386";--fa--fa:"\f386\f386"}.fa-temperature-low{--fa:"\f76b";--fa--fa:"\f76b\f76b"}.fa-biking,.fa-person-biking{--fa:"\f84a";--fa--fa:"\f84a\f84a"}.fa-broom{--fa:"\f51a";--fa--fa:"\f51a\f51a"}.fa-shield-heart{--fa:"\e574";--fa--fa:"\e574\e574"}.fa-gopuram{--fa:"\f664";--fa--fa:"\f664\f664"}.fa-earth-oceania,.fa-globe-oceania{--fa:"\e47b";--fa--fa:"\e47b\e47b"}.fa-square-xmark,.fa-times-square,.fa-xmark-square{--fa:"\f2d3";--fa--fa:"\f2d3\f2d3"}.fa-hashtag{--fa:"\23";--fa--fa:"\23\23"}.fa-expand-alt,.fa-up-right-and-down-left-from-center{--fa:"\f424";--fa--fa:"\f424\f424"}.fa-oil-can{--fa:"\f613";--fa--fa:"\f613\f613"}.fa-t{--fa:"\54";--fa--fa:"\54\54"}.fa-hippo{--fa:"\f6ed";--fa--fa:"\f6ed\f6ed"}.fa-chart-column{--fa:"\e0e3";--fa--fa:"\e0e3\e0e3"}.fa-infinity{--fa:"\f534";--fa--fa:"\f534\f534"}.fa-vial-circle-check{--fa:"\e596";--fa--fa:"\e596\e596"}.fa-person-arrow-down-to-line{--fa:"\e538";--fa--fa:"\e538\e538"}.fa-voicemail{--fa:"\f897";--fa--fa:"\f897\f897"}.fa-fan{--fa:"\f863";--fa--fa:"\f863\f863"}.fa-person-walking-luggage{--fa:"\e554";--fa--fa:"\e554\e554"}.fa-arrows-alt-v,.fa-up-down{--fa:"\f338";--fa--fa:"\f338\f338"}.fa-cloud-moon-rain{--fa:"\f73c";--fa--fa:"\f73c\f73c"}.fa-calendar{--fa:"\f133";--fa--fa:"\f133\f133"}.fa-trailer{--fa:"\e041";--fa--fa:"\e041\e041"}.fa-bahai,.fa-haykal{--fa:"\f666";--fa--fa:"\f666\f666"}.fa-sd-card{--fa:"\f7c2";--fa--fa:"\f7c2\f7c2"}.fa-dragon{--fa:"\f6d5";--fa--fa:"\f6d5\f6d5"}.fa-shoe-prints{--fa:"\f54b";--fa--fa:"\f54b\f54b"}.fa-circle-plus,.fa-plus-circle{--fa:"\f055";--fa--fa:"\f055\f055"}.fa-face-grin-tongue-wink,.fa-grin-tongue-wink{--fa:"\f58b";--fa--fa:"\f58b\f58b"}.fa-hand-holding{--fa:"\f4bd";--fa--fa:"\f4bd\f4bd"}.fa-plug-circle-exclamation{--fa:"\e55d";--fa--fa:"\e55d\e55d"}.fa-chain-broken,.fa-chain-slash,.fa-link-slash,.fa-unlink{--fa:"\f127";--fa--fa:"\f127\f127"}.fa-clone{--fa:"\f24d";--fa--fa:"\f24d\f24d"}.fa-person-walking-arrow-loop-left{--fa:"\e551";--fa--fa:"\e551\e551"}.fa-arrow-up-z-a,.fa-sort-alpha-up-alt{--fa:"\f882";--fa--fa:"\f882\f882"}.fa-fire-alt,.fa-fire-flame-curved{--fa:"\f7e4";--fa--fa:"\f7e4\f7e4"}.fa-tornado{--fa:"\f76f";--fa--fa:"\f76f\f76f"}.fa-file-circle-plus{--fa:"\e494";--fa--fa:"\e494\e494"}.fa-book-quran,.fa-quran{--fa:"\f687";--fa--fa:"\f687\f687"}.fa-anchor{--fa:"\f13d";--fa--fa:"\f13d\f13d"}.fa-border-all{--fa:"\f84c";--fa--fa:"\f84c\f84c"}.fa-angry,.fa-face-angry{--fa:"\f556";--fa--fa:"\f556\f556"}.fa-cookie-bite{--fa:"\f564";--fa--fa:"\f564\f564"}.fa-arrow-trend-down{--fa:"\e097";--fa--fa:"\e097\e097"}.fa-feed,.fa-rss{--fa:"\f09e";--fa--fa:"\f09e\f09e"}.fa-draw-polygon{--fa:"\f5ee";--fa--fa:"\f5ee\f5ee"}.fa-balance-scale,.fa-scale-balanced{--fa:"\f24e";--fa--fa:"\f24e\f24e"}.fa-gauge-simple-high,.fa-tachometer,.fa-tachometer-fast{--fa:"\f62a";--fa--fa:"\f62a\f62a"}.fa-shower{--fa:"\f2cc";--fa--fa:"\f2cc\f2cc"}.fa-desktop,.fa-desktop-alt{--fa:"\f390";--fa--fa:"\f390\f390"}.fa-m{--fa:"\4d";--fa--fa:"\4d\4d"}.fa-table-list,.fa-th-list{--fa:"\f00b";--fa--fa:"\f00b\f00b"}.fa-comment-sms,.fa-sms{--fa:"\f7cd";--fa--fa:"\f7cd\f7cd"}.fa-book{--fa:"\f02d";--fa--fa:"\f02d\f02d"}.fa-user-plus{--fa:"\f234";--fa--fa:"\f234\f234"}.fa-check{--fa:"\f00c";--fa--fa:"\f00c\f00c"}.fa-battery-4,.fa-battery-three-quarters{--fa:"\f241";--fa--fa:"\f241\f241"}.fa-house-circle-check{--fa:"\e509";--fa--fa:"\e509\e509"}.fa-angle-left{--fa:"\f104";--fa--fa:"\f104\f104"}.fa-diagram-successor{--fa:"\e47a";--fa--fa:"\e47a\e47a"}.fa-truck-arrow-right{--fa:"\e58b";--fa--fa:"\e58b\e58b"}.fa-arrows-split-up-and-left{--fa:"\e4bc";--fa--fa:"\e4bc\e4bc"}.fa-fist-raised,.fa-hand-fist{--fa:"\f6de";--fa--fa:"\f6de\f6de"}.fa-cloud-moon{--fa:"\f6c3";--fa--fa:"\f6c3\f6c3"}.fa-briefcase{--fa:"\f0b1";--fa--fa:"\f0b1\f0b1"}.fa-person-falling{--fa:"\e546";--fa--fa:"\e546\e546"}.fa-image-portrait,.fa-portrait{--fa:"\f3e0";--fa--fa:"\f3e0\f3e0"}.fa-user-tag{--fa:"\f507";--fa--fa:"\f507\f507"}.fa-rug{--fa:"\e569";--fa--fa:"\e569\e569"}.fa-earth-europe,.fa-globe-europe{--fa:"\f7a2";--fa--fa:"\f7a2\f7a2"}.fa-cart-flatbed-suitcase,.fa-luggage-cart{--fa:"\f59d";--fa--fa:"\f59d\f59d"}.fa-rectangle-times,.fa-rectangle-xmark,.fa-times-rectangle,.fa-window-close{--fa:"\f410";--fa--fa:"\f410\f410"}.fa-baht-sign{--fa:"\e0ac";--fa--fa:"\e0ac\e0ac"}.fa-book-open{--fa:"\f518";--fa--fa:"\f518\f518"}.fa-book-journal-whills,.fa-journal-whills{--fa:"\f66a";--fa--fa:"\f66a\f66a"}.fa-handcuffs{--fa:"\e4f8";--fa--fa:"\e4f8\e4f8"}.fa-exclamation-triangle,.fa-triangle-exclamation,.fa-warning{--fa:"\f071";--fa--fa:"\f071\f071"}.fa-database{--fa:"\f1c0";--fa--fa:"\f1c0\f1c0"}.fa-mail-forward,.fa-share{--fa:"\f064";--fa--fa:"\f064\f064"}.fa-bottle-droplet{--fa:"\e4c4";--fa--fa:"\e4c4\e4c4"}.fa-mask-face{--fa:"\e1d7";--fa--fa:"\e1d7\e1d7"}.fa-hill-rockslide{--fa:"\e508";--fa--fa:"\e508\e508"}.fa-exchange-alt,.fa-right-left{--fa:"\f362";--fa--fa:"\f362\f362"}.fa-paper-plane{--fa:"\f1d8";--fa--fa:"\f1d8\f1d8"}.fa-road-circle-exclamation{--fa:"\e565";--fa--fa:"\e565\e565"}.fa-dungeon{--fa:"\f6d9";--fa--fa:"\f6d9\f6d9"}.fa-align-right{--fa:"\f038";--fa--fa:"\f038\f038"}.fa-money-bill-1-wave,.fa-money-bill-wave-alt{--fa:"\f53b";--fa--fa:"\f53b\f53b"}.fa-life-ring{--fa:"\f1cd";--fa--fa:"\f1cd\f1cd"}.fa-hands,.fa-sign-language,.fa-signing{--fa:"\f2a7";--fa--fa:"\f2a7\f2a7"}.fa-calendar-day{--fa:"\f783";--fa--fa:"\f783\f783"}.fa-ladder-water,.fa-swimming-pool,.fa-water-ladder{--fa:"\f5c5";--fa--fa:"\f5c5\f5c5"}.fa-arrows-up-down,.fa-arrows-v{--fa:"\f07d";--fa--fa:"\f07d\f07d"}.fa-face-grimace,.fa-grimace{--fa:"\f57f";--fa--fa:"\f57f\f57f"}.fa-wheelchair-alt,.fa-wheelchair-move{--fa:"\e2ce";--fa--fa:"\e2ce\e2ce"}.fa-level-down-alt,.fa-turn-down{--fa:"\f3be";--fa--fa:"\f3be\f3be"}.fa-person-walking-arrow-right{--fa:"\e552";--fa--fa:"\e552\e552"}.fa-envelope-square,.fa-square-envelope{--fa:"\f199";--fa--fa:"\f199\f199"}.fa-dice{--fa:"\f522";--fa--fa:"\f522\f522"}.fa-bowling-ball{--fa:"\f436";--fa--fa:"\f436\f436"}.fa-brain{--fa:"\f5dc";--fa--fa:"\f5dc\f5dc"}.fa-band-aid,.fa-bandage{--fa:"\f462";--fa--fa:"\f462\f462"}.fa-calendar-minus{--fa:"\f272";--fa--fa:"\f272\f272"}.fa-circle-xmark,.fa-times-circle,.fa-xmark-circle{--fa:"\f057";--fa--fa:"\f057\f057"}.fa-gifts{--fa:"\f79c";--fa--fa:"\f79c\f79c"}.fa-hotel{--fa:"\f594";--fa--fa:"\f594\f594"}.fa-earth-asia,.fa-globe-asia{--fa:"\f57e";--fa--fa:"\f57e\f57e"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\f47f";--fa--fa:"\f47f\f47f"}.fa-magnifying-glass-plus,.fa-search-plus{--fa:"\f00e";--fa--fa:"\f00e\f00e"}.fa-thumbs-up{--fa:"\f164";--fa--fa:"\f164\f164"}.fa-user-clock{--fa:"\f4fd";--fa--fa:"\f4fd\f4fd"}.fa-allergies,.fa-hand-dots{--fa:"\f461";--fa--fa:"\f461\f461"}.fa-file-invoice{--fa:"\f570";--fa--fa:"\f570\f570"}.fa-window-minimize{--fa:"\f2d1";--fa--fa:"\f2d1\f2d1"}.fa-coffee,.fa-mug-saucer{--fa:"\f0f4";--fa--fa:"\f0f4\f0f4"}.fa-brush{--fa:"\f55d";--fa--fa:"\f55d\f55d"}.fa-file-half-dashed{--fa:"\e698";--fa--fa:"\e698\e698"}.fa-mask{--fa:"\f6fa";--fa--fa:"\f6fa\f6fa"}.fa-magnifying-glass-minus,.fa-search-minus{--fa:"\f010";--fa--fa:"\f010\f010"}.fa-ruler-vertical{--fa:"\f548";--fa--fa:"\f548\f548"}.fa-user-alt,.fa-user-large{--fa:"\f406";--fa--fa:"\f406\f406"}.fa-train-tram{--fa:"\e5b4";--fa--fa:"\e5b4\e5b4"}.fa-user-nurse{--fa:"\f82f";--fa--fa:"\f82f\f82f"}.fa-syringe{--fa:"\f48e";--fa--fa:"\f48e\f48e"}.fa-cloud-sun{--fa:"\f6c4";--fa--fa:"\f6c4\f6c4"}.fa-stopwatch-20{--fa:"\e06f";--fa--fa:"\e06f\e06f"}.fa-square-full{--fa:"\f45c";--fa--fa:"\f45c\f45c"}.fa-magnet{--fa:"\f076";--fa--fa:"\f076\f076"}.fa-jar{--fa:"\e516";--fa--fa:"\e516\e516"}.fa-note-sticky,.fa-sticky-note{--fa:"\f249";--fa--fa:"\f249\f249"}.fa-bug-slash{--fa:"\e490";--fa--fa:"\e490\e490"}.fa-arrow-up-from-water-pump{--fa:"\e4b6";--fa--fa:"\e4b6\e4b6"}.fa-bone{--fa:"\f5d7";--fa--fa:"\f5d7\f5d7"}.fa-table-cells-row-unlock{--fa:"\e691";--fa--fa:"\e691\e691"}.fa-user-injured{--fa:"\f728";--fa--fa:"\f728\f728"}.fa-face-sad-tear,.fa-sad-tear{--fa:"\f5b4";--fa--fa:"\f5b4\f5b4"}.fa-plane{--fa:"\f072";--fa--fa:"\f072\f072"}.fa-tent-arrows-down{--fa:"\e581";--fa--fa:"\e581\e581"}.fa-exclamation{--fa:"\21";--fa--fa:"\21\21"}.fa-arrows-spin{--fa:"\e4bb";--fa--fa:"\e4bb\e4bb"}.fa-print{--fa:"\f02f";--fa--fa:"\f02f\f02f"}.fa-try,.fa-turkish-lira,.fa-turkish-lira-sign{--fa:"\e2bb";--fa--fa:"\e2bb\e2bb"}.fa-dollar,.fa-dollar-sign,.fa-usd{--fa:"\24";--fa--fa:"\24\24"}.fa-x{--fa:"\58";--fa--fa:"\58\58"}.fa-magnifying-glass-dollar,.fa-search-dollar{--fa:"\f688";--fa--fa:"\f688\f688"}.fa-users-cog,.fa-users-gear{--fa:"\f509";--fa--fa:"\f509\f509"}.fa-person-military-pointing{--fa:"\e54a";--fa--fa:"\e54a\e54a"}.fa-bank,.fa-building-columns,.fa-institution,.fa-museum,.fa-university{--fa:"\f19c";--fa--fa:"\f19c\f19c"}.fa-umbrella{--fa:"\f0e9";--fa--fa:"\f0e9\f0e9"}.fa-trowel{--fa:"\e589";--fa--fa:"\e589\e589"}.fa-d{--fa:"\44";--fa--fa:"\44\44"}.fa-stapler{--fa:"\e5af";--fa--fa:"\e5af\e5af"}.fa-masks-theater,.fa-theater-masks{--fa:"\f630";--fa--fa:"\f630\f630"}.fa-kip-sign{--fa:"\e1c4";--fa--fa:"\e1c4\e1c4"}.fa-hand-point-left{--fa:"\f0a5";--fa--fa:"\f0a5\f0a5"}.fa-handshake-alt,.fa-handshake-simple{--fa:"\f4c6";--fa--fa:"\f4c6\f4c6"}.fa-fighter-jet,.fa-jet-fighter{--fa:"\f0fb";--fa--fa:"\f0fb\f0fb"}.fa-share-alt-square,.fa-square-share-nodes{--fa:"\f1e1";--fa--fa:"\f1e1\f1e1"}.fa-barcode{--fa:"\f02a";--fa--fa:"\f02a\f02a"}.fa-plus-minus{--fa:"\e43c";--fa--fa:"\e43c\e43c"}.fa-video,.fa-video-camera{--fa:"\f03d";--fa--fa:"\f03d\f03d"}.fa-graduation-cap,.fa-mortar-board{--fa:"\f19d";--fa--fa:"\f19d\f19d"}.fa-hand-holding-medical{--fa:"\e05c";--fa--fa:"\e05c\e05c"}.fa-person-circle-check{--fa:"\e53e";--fa--fa:"\e53e\e53e"}.fa-level-up-alt,.fa-turn-up{--fa:"\f3bf";--fa--fa:"\f3bf\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0} \ No newline at end of file diff --git a/docs/static/fontawesome/css/solid.min.css b/docs/static/fontawesome/css/solid.min.css new file mode 100644 index 000000000..93b0f2c6b --- /dev/null +++ b/docs/static/fontawesome/css/solid.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} \ No newline at end of file diff --git a/docs/static/fontawesome/webfonts/fa-brands-400.ttf b/docs/static/fontawesome/webfonts/fa-brands-400.ttf new file mode 100644 index 000000000..c739a3965 Binary files /dev/null and b/docs/static/fontawesome/webfonts/fa-brands-400.ttf differ diff --git a/docs/static/fontawesome/webfonts/fa-brands-400.woff2 b/docs/static/fontawesome/webfonts/fa-brands-400.woff2 new file mode 100644 index 000000000..cb888623c Binary files /dev/null and b/docs/static/fontawesome/webfonts/fa-brands-400.woff2 differ diff --git a/docs/static/fontawesome/webfonts/fa-solid-900.ttf b/docs/static/fontawesome/webfonts/fa-solid-900.ttf new file mode 100644 index 000000000..f3b468e5b Binary files /dev/null and b/docs/static/fontawesome/webfonts/fa-solid-900.ttf differ diff --git a/docs/static/fontawesome/webfonts/fa-solid-900.woff2 b/docs/static/fontawesome/webfonts/fa-solid-900.woff2 new file mode 100644 index 000000000..42eaaa697 Binary files /dev/null and b/docs/static/fontawesome/webfonts/fa-solid-900.woff2 differ diff --git a/docs/static/fontawesome/webfonts/fa-v4compatibility.ttf b/docs/static/fontawesome/webfonts/fa-v4compatibility.ttf new file mode 100644 index 000000000..ba780aa89 Binary files /dev/null and b/docs/static/fontawesome/webfonts/fa-v4compatibility.ttf differ diff --git a/docs/static/fontawesome/webfonts/fa-v4compatibility.woff2 b/docs/static/fontawesome/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 000000000..bb61b5894 Binary files /dev/null and b/docs/static/fontawesome/webfonts/fa-v4compatibility.woff2 differ diff --git a/docs/static/webfonts/fa-brands-400.eot b/docs/static/webfonts/fa-brands-400.eot deleted file mode 100644 index 85d81ebcf..000000000 Binary files a/docs/static/webfonts/fa-brands-400.eot and /dev/null differ diff --git a/docs/static/webfonts/fa-brands-400.svg b/docs/static/webfonts/fa-brands-400.svg deleted file mode 100644 index 594d6198d..000000000 --- a/docs/static/webfonts/fa-brands-400.svg +++ /dev/null @@ -1,3449 +0,0 @@ - - - - - -Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/static/webfonts/fa-brands-400.ttf b/docs/static/webfonts/fa-brands-400.ttf deleted file mode 100644 index aa1687de5..000000000 Binary files a/docs/static/webfonts/fa-brands-400.ttf and /dev/null differ diff --git a/docs/static/webfonts/fa-brands-400.woff b/docs/static/webfonts/fa-brands-400.woff deleted file mode 100644 index 6d1c6148e..000000000 Binary files a/docs/static/webfonts/fa-brands-400.woff and /dev/null differ diff --git a/docs/static/webfonts/fa-brands-400.woff2 b/docs/static/webfonts/fa-brands-400.woff2 deleted file mode 100644 index 1727af3eb..000000000 Binary files a/docs/static/webfonts/fa-brands-400.woff2 and /dev/null differ diff --git a/docs/static/webfonts/fa-regular-400.eot b/docs/static/webfonts/fa-regular-400.eot deleted file mode 100644 index ea607caa7..000000000 Binary files a/docs/static/webfonts/fa-regular-400.eot and /dev/null differ diff --git a/docs/static/webfonts/fa-regular-400.svg b/docs/static/webfonts/fa-regular-400.svg deleted file mode 100644 index a35e6d911..000000000 --- a/docs/static/webfonts/fa-regular-400.svg +++ /dev/null @@ -1,803 +0,0 @@ - - - - - -Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/static/webfonts/fa-regular-400.ttf b/docs/static/webfonts/fa-regular-400.ttf deleted file mode 100644 index 34629a6de..000000000 Binary files a/docs/static/webfonts/fa-regular-400.ttf and /dev/null differ diff --git a/docs/static/webfonts/fa-regular-400.woff b/docs/static/webfonts/fa-regular-400.woff deleted file mode 100644 index e115b8b98..000000000 Binary files a/docs/static/webfonts/fa-regular-400.woff and /dev/null differ diff --git a/docs/static/webfonts/fa-regular-400.woff2 b/docs/static/webfonts/fa-regular-400.woff2 deleted file mode 100644 index cb441b700..000000000 Binary files a/docs/static/webfonts/fa-regular-400.woff2 and /dev/null differ diff --git a/docs/static/webfonts/fa-solid-900.eot b/docs/static/webfonts/fa-solid-900.eot deleted file mode 100644 index 4101e3180..000000000 Binary files a/docs/static/webfonts/fa-solid-900.eot and /dev/null differ diff --git a/docs/static/webfonts/fa-solid-900.svg b/docs/static/webfonts/fa-solid-900.svg deleted file mode 100644 index 228a9b67a..000000000 --- a/docs/static/webfonts/fa-solid-900.svg +++ /dev/null @@ -1,4649 +0,0 @@ - - - - - -Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/static/webfonts/fa-solid-900.ttf b/docs/static/webfonts/fa-solid-900.ttf deleted file mode 100644 index 704a2a996..000000000 Binary files a/docs/static/webfonts/fa-solid-900.ttf and /dev/null differ diff --git a/docs/static/webfonts/fa-solid-900.woff b/docs/static/webfonts/fa-solid-900.woff deleted file mode 100644 index 7adb9d591..000000000 Binary files a/docs/static/webfonts/fa-solid-900.woff and /dev/null differ diff --git a/docs/static/webfonts/fa-solid-900.woff2 b/docs/static/webfonts/fa-solid-900.woff2 deleted file mode 100644 index ac6a6e313..000000000 Binary files a/docs/static/webfonts/fa-solid-900.woff2 and /dev/null differ diff --git a/fs/operations/operations.go b/fs/operations/operations.go index 53d846525..eeba711fb 100644 --- a/fs/operations/operations.go +++ b/fs/operations/operations.go @@ -1188,6 +1188,57 @@ func Delete(ctx context.Context, f fs.Fs) error { return err } +// RemoveExisting removes an existing file in a safe way so that it +// can be restored if the operation fails. +// +// This first detects if there is an existing file and renames it to a +// temporary name if there is. +// +// The returned cleanup function should be called on a defer statement +// with a pointer to the error returned. It will revert the changes if +// there is an error or delete the existing file if not. +func RemoveExisting(ctx context.Context, f fs.Fs, remote string, operation string) (cleanup func(*error), err error) { + existingObj, err := f.NewObject(ctx, remote) + if err != nil { + return func(*error) {}, nil + } + doMove := f.Features().Move + if doMove == nil { + return nil, fmt.Errorf("%s: destination file exists already and can't rename", operation) + } + + // Avoid making the leaf name longer if it's already lengthy to avoid + // trouble with file name length limits. + suffix := "." + random.String(8) + var remoteSaved string + if len(path.Base(remote)) > 100 { + remoteSaved = TruncateString(remote, len(remote)-len(suffix)) + suffix + } else { + remoteSaved = remote + suffix + } + + fs.Debugf(existingObj, "%s: renaming existing object to %q before starting", operation, remoteSaved) + existingObj, err = doMove(ctx, existingObj, remoteSaved) + if err != nil { + return nil, fmt.Errorf("%s: failed to rename existing file: %w", operation, err) + } + return func(perr *error) { + if *perr == nil { + fs.Debugf(existingObj, "%s: removing renamed existing file after operation", operation) + err := existingObj.Remove(ctx) + if err != nil { + *perr = fmt.Errorf("%s: failed to remove renamed existing file: %w", operation, err) + } + } else { + fs.Debugf(existingObj, "%s: renaming existing back after failed operation", operation) + _, renameErr := doMove(ctx, existingObj, remote) + if renameErr != nil { + fs.Errorf(existingObj, "%s: failed to restore existing file after failed operation: %v", operation, renameErr) + } + } + }, nil +} + // listToChan will transfer all objects in the listing to the output // // If an error occurs, the error will be logged, and it will close the diff --git a/fs/operations/operations_test.go b/fs/operations/operations_test.go index 96ce5704a..3f02c1bf1 100644 --- a/fs/operations/operations_test.go +++ b/fs/operations/operations_test.go @@ -1884,3 +1884,76 @@ func TestDirsEqual(t *testing.T) { equal = operations.DirsEqual(ctx, src, dst, opt) assert.True(t, equal) } + +func TestRemoveExisting(t *testing.T) { + ctx := context.Background() + r := fstest.NewRun(t) + if r.Fremote.Features().Move == nil { + t.Skip("Skipping as remote can't Move") + } + + file1 := r.WriteObject(ctx, "sub dir/test remove existing", "hello world", t1) + file2 := r.WriteObject(ctx, "sub dir/test remove existing with long name 123456789012345678901234567890123456789012345678901234567890123456789", "hello long name world", t1) + + r.CheckRemoteItems(t, file1, file2) + + var returnedError error + + // Check not found first + cleanup, err := operations.RemoveExisting(ctx, r.Fremote, "not found", "TEST") + assert.Equal(t, err, nil) + r.CheckRemoteItems(t, file1, file2) + cleanup(&returnedError) + r.CheckRemoteItems(t, file1, file2) + + // Remove file1 + cleanup, err = operations.RemoveExisting(ctx, r.Fremote, file1.Path, "TEST") + assert.Equal(t, err, nil) + //r.CheckRemoteItems(t, file1, file2) + + // Check file1 with temporary name exists + var buf bytes.Buffer + err = operations.List(ctx, r.Fremote, &buf) + require.NoError(t, err) + res := buf.String() + assert.NotContains(t, res, " 11 "+file1.Path+"\n") + assert.Contains(t, res, " 11 "+file1.Path+".") + assert.Contains(t, res, " 21 "+file2.Path+"\n") + + cleanup(&returnedError) + r.CheckRemoteItems(t, file2) + + // Remove file2 with an error + cleanup, err = operations.RemoveExisting(ctx, r.Fremote, file2.Path, "TEST") + assert.Equal(t, err, nil) + + // Check file2 with truncated temporary name exists + buf.Reset() + err = operations.List(ctx, r.Fremote, &buf) + require.NoError(t, err) + res = buf.String() + assert.NotContains(t, res, " 21 "+file2.Path+"\n") + assert.NotContains(t, res, " 21 "+file2.Path+".") + assert.Contains(t, res, " 21 "+file2.Path[:100]) + + returnedError = errors.New("BOOM") + cleanup(&returnedError) + r.CheckRemoteItems(t, file2) + + // Remove file2 + cleanup, err = operations.RemoveExisting(ctx, r.Fremote, file2.Path, "TEST") + assert.Equal(t, err, nil) + + // Check file2 with truncated temporary name exists + buf.Reset() + err = operations.List(ctx, r.Fremote, &buf) + require.NoError(t, err) + res = buf.String() + assert.NotContains(t, res, " 21 "+file2.Path+"\n") + assert.NotContains(t, res, " 21 "+file2.Path+".") + assert.Contains(t, res, " 21 "+file2.Path[:100]) + + returnedError = nil + cleanup(&returnedError) + r.CheckRemoteItems(t) +} diff --git a/fstest/test_all/config.yaml b/fstest/test_all/config.yaml index 3aa68afab..1565c7e8e 100644 --- a/fstest/test_all/config.yaml +++ b/fstest/test_all/config.yaml @@ -55,17 +55,17 @@ backends: remote: "TestChunkerChunk3bNoRenameLocal:" fastlist: true maxfile: 6k - - backend: "chunker" - remote: "TestChunkerMailru:" - fastlist: true - ignore: - - TestApplyTransforms - - backend: "chunker" - remote: "TestChunkerChunk50bMailru:" - fastlist: true - maxfile: 10k - ignore: - - TestApplyTransforms + # - backend: "chunker" + # remote: "TestChunkerMailru:" + # fastlist: true + # ignore: + # - TestApplyTransforms + # - backend: "chunker" + # remote: "TestChunkerChunk50bMailru:" + # fastlist: true + # maxfile: 10k + # ignore: + # - TestApplyTransforms - backend: "chunker" remote: "TestChunkerChunk50bYandex:" fastlist: true @@ -449,6 +449,7 @@ backends: remote: "TestMailru:" subdir: false fastlist: false + oneonly: true ignore: - TestApplyTransforms - backend: "seafile" diff --git a/fstest/testserver/init.d/docker.bash b/fstest/testserver/init.d/docker.bash index 4a3dd9ecc..1bcc2c261 100644 --- a/fstest/testserver/init.d/docker.bash +++ b/fstest/testserver/init.d/docker.bash @@ -18,5 +18,5 @@ status() { } docker_ip() { - docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{"\n"}}{{end}}' "$NAME" | head -1 + docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{"\n"}}{{end}}' "$NAME" | head -n 1 } diff --git a/go.mod b/go.mod index fd6c96bc8..77bf388b6 100644 --- a/go.mod +++ b/go.mod @@ -4,25 +4,25 @@ go 1.21 require ( bazil.org/fuse v0.0.0-20230120002735-62a210ff1fd5 - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 - github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.2.2 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.1 + github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.3.1 github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 - github.com/Files-com/files-sdk-go/v3 v3.2.34 + github.com/Files-com/files-sdk-go/v3 v3.2.78 github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd github.com/a8m/tree v0.0.0-20240104212747-2c8764a5f17e github.com/aalpar/deheap v0.0.0-20210914013432-0cc84d79dec3 github.com/abbot/go-http-auth v0.4.0 github.com/anacrolix/dms v1.7.1 - github.com/anacrolix/log v0.15.2 + github.com/anacrolix/log v0.16.0 github.com/atotto/clipboard v0.1.4 - github.com/aws/aws-sdk-go-v2 v1.30.3 - github.com/aws/aws-sdk-go-v2/config v1.27.27 - github.com/aws/aws-sdk-go-v2/credentials v1.17.27 - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.10 - github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3 - github.com/aws/smithy-go v1.20.3 + github.com/aws/aws-sdk-go-v2 v1.32.4 + github.com/aws/aws-sdk-go-v2/config v1.28.3 + github.com/aws/aws-sdk-go-v2/credentials v1.17.44 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37 + github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 + github.com/aws/smithy-go v1.22.0 github.com/buengese/sgzip v0.1.1 github.com/cloudsoda/go-smb2 v0.0.0-20231124195312-f3ec8ae2c891 github.com/colinmarc/hdfs/v2 v2.4.0 @@ -30,33 +30,33 @@ require ( github.com/coreos/go-systemd/v22 v22.5.0 github.com/dop251/scsu v0.0.0-20220106150536-84ac88021d00 github.com/dropbox/dropbox-sdk-go-unofficial/v6 v6.0.5 - github.com/gabriel-vasile/mimetype v1.4.4 + github.com/gabriel-vasile/mimetype v1.4.6 github.com/gdamore/tcell/v2 v2.7.4 github.com/go-chi/chi/v5 v5.1.0 github.com/go-darwin/apfs v0.0.0-20211011131704-f84b94dbf348 - github.com/go-git/go-billy/v5 v5.5.0 + github.com/go-git/go-billy/v5 v5.6.0 github.com/google/uuid v1.6.0 - github.com/hanwen/go-fuse/v2 v2.5.1 + github.com/hanwen/go-fuse/v2 v2.6.3 github.com/henrybear327/Proton-API-Bridge v1.0.0 github.com/henrybear327/go-proton-api v1.0.0 github.com/jcmturner/gokrb5/v8 v8.4.4 github.com/jlaffaye/ftp v0.2.0 - github.com/josephspurrier/goversioninfo v1.4.0 + github.com/josephspurrier/goversioninfo v1.4.1 github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004 - github.com/klauspost/compress v1.17.9 + github.com/klauspost/compress v1.17.11 github.com/koofr/go-httpclient v0.0.0-20240520111329-e20f8f203988 github.com/koofr/go-koofrclient v0.0.0-20221207135200-cbd7fc9ad6a6 github.com/mattn/go-colorable v0.1.13 - github.com/mattn/go-runewidth v0.0.15 + github.com/mattn/go-runewidth v0.0.16 github.com/minio/minio-go/v7 v7.0.74 github.com/mitchellh/go-homedir v1.1.0 github.com/moby/sys/mountinfo v0.7.2 github.com/ncw/swift/v2 v2.0.3 - github.com/oracle/oci-go-sdk/v65 v65.69.2 + github.com/oracle/oci-go-sdk/v65 v65.78.0 github.com/patrickmn/go-cache v2.1.0+incompatible - github.com/pkg/sftp v1.13.6 + github.com/pkg/sftp v1.13.7 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 - github.com/prometheus/client_golang v1.19.1 + github.com/prometheus/client_golang v1.20.5 github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8 github.com/quasilyte/go-ruleguard/dsl v0.3.22 github.com/rclone/gofakes3 v0.0.3 @@ -74,27 +74,27 @@ require ( github.com/willscott/go-nfs v0.0.3-0.20240425122109-91bc38957cc9 github.com/winfsp/cgofuse v1.5.1-0.20221118130120-84c0898ad2e0 github.com/xanzy/ssh-agent v0.3.3 - github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a + github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 github.com/yunify/qingstor-sdk-go/v3 v3.2.0 go.etcd.io/bbolt v1.3.10 goftp.io/server/v2 v2.0.1 - golang.org/x/crypto v0.25.0 - golang.org/x/net v0.27.0 - golang.org/x/oauth2 v0.21.0 - golang.org/x/sync v0.8.0 - golang.org/x/sys v0.22.0 - golang.org/x/text v0.17.0 - golang.org/x/time v0.5.0 - google.golang.org/api v0.188.0 + golang.org/x/crypto v0.29.0 + golang.org/x/net v0.31.0 + golang.org/x/oauth2 v0.24.0 + golang.org/x/sync v0.9.0 + golang.org/x/sys v0.27.0 + golang.org/x/text v0.20.0 + golang.org/x/time v0.8.0 + google.golang.org/api v0.205.0 gopkg.in/validator.v2 v2.0.1 gopkg.in/yaml.v2 v2.4.0 storj.io/uplink v1.13.1 ) require ( - cloud.google.com/go/auth v0.7.0 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect - cloud.google.com/go/compute/metadata v0.4.0 // indirect + cloud.google.com/go/auth v0.10.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect + cloud.google.com/go/compute/metadata v0.5.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf // indirect @@ -107,24 +107,24 @@ require ( github.com/anacrolix/generics v0.0.1 // indirect github.com/andybalholm/cascadia v1.3.2 // indirect github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bradenaw/juniper v0.15.2 // indirect github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect github.com/calebcase/tmpfile v1.0.3 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect @@ -139,7 +139,7 @@ require ( github.com/gdamore/encoding v1.0.0 // indirect github.com/geoffgarside/ber v1.1.0 // indirect github.com/go-ini/ini v1.67.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-resty/resty/v2 v2.11.0 // indirect @@ -147,10 +147,9 @@ require ( github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/s2a-go v0.1.7 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.5 // indirect + github.com/google/s2a-go v0.1.8 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/gax-go/v2 v2.13.0 // indirect github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -173,15 +172,16 @@ require ( github.com/lufia/plan9stats v0.0.0-20231016141302-07b5767bb0ed // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/minio/md5-simd v1.1.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/onsi/ginkgo v1.16.5 // indirect github.com/panjf2000/ants/v2 v2.9.1 // indirect github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.48.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93 // indirect github.com/relvacode/iso8601 v1.3.0 // indirect github.com/rs/xid v1.5.0 // indirect @@ -200,17 +200,17 @@ require ( github.com/zeebo/blake3 v0.2.3 // indirect github.com/zeebo/errs v1.3.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/otel v1.24.0 // indirect - go.opentelemetry.io/otel/metric v1.24.0 // indirect - go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect + go.opentelemetry.io/otel v1.29.0 // indirect + go.opentelemetry.io/otel/metric v1.29.0 // indirect + go.opentelemetry.io/otel/trace v1.29.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/tools v0.23.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect - google.golang.org/grpc v1.64.1 // indirect - google.golang.org/protobuf v1.34.2 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect + google.golang.org/grpc v1.67.1 // indirect + google.golang.org/protobuf v1.35.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect moul.io/http2curl/v2 v2.3.0 // indirect storj.io/common v0.0.0-20240812101423-26b53789c348 // indirect @@ -222,10 +222,10 @@ require ( require ( github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.0.0 - github.com/golang-jwt/jwt/v4 v4.5.0 + github.com/ProtonMail/go-crypto v1.1.2 + github.com/golang-jwt/jwt/v4 v4.5.1 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/pkg/xattr v0.4.9 + github.com/pkg/xattr v0.4.10 golang.org/x/mobile v0.0.0-20240716161057-1ad2df20a8b6 - golang.org/x/term v0.22.0 + golang.org/x/term v0.26.0 ) diff --git a/go.sum b/go.sum index e1dff78eb..68b597bbb 100644 --- a/go.sum +++ b/go.sum @@ -15,18 +15,18 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts= -cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw= -cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= -cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= +cloud.google.com/go/auth v0.10.1 h1:TnK46qldSfHWt2a0b/hciaiVJsmDXWy9FqyUan0uYiI= +cloud.google.com/go/auth v0.10.1/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= +cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= +cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute/metadata v0.4.0 h1:vHzJCWaM4g8XIcm8kopr3XmDA4Gy/lblD3EhhSux05c= -cloud.google.com/go/compute/metadata v0.4.0/go.mod h1:SIQh1Kkb4ZJ8zJ874fqVkslA29PRXuleyj6vOzlbK7M= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= @@ -39,26 +39,30 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 h1:JZg6HRh6W6U4OLl6lk7BZ7BLisIzM9dG1R50zUk9C/M= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0/go.mod h1:YL1xnZ6QejvQHWJrX/AvhFl4WW4rqHVoKspWNVwFk0M= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 h1:B/dfvscEQtew9dVuoxqxrUKKv8Ih2f55PydknDamU+g= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0/go.mod h1:fiPSssYvltE08HJchL04dOy+RD4hgrjph0cwGGMntdI= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 h1:+m0M/LFxN43KvULkDNfdXOgrjtg6UYJPFBJyuEcRCAw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0/go.mod h1:PwOyop78lveYMRs6oCxjiVyBdyCgIYH6XHIVZO9/SFQ= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0 h1:AifHbc4mg0x9zW52WOpKbsHaDKuRhlI7TVl47thgQ70= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0/go.mod h1:T5RfihdXtBDxt1Ch2wobif3TvzTdumDy29kahv6AV9A= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 h1:YUUxeiOWgdAQE3pXt2H7QXzZs0q8UBjgRbl56qo8GYM= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2/go.mod h1:dmXQgZuiSubAecswZE+Sm8jkvEa7kQgTPVRvwL/nd0E= -github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.2.2 h1:PmDhkIT8S5U4nkY/s78Xmf7CXT8qCliNEBhbrkBp3Q0= -github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.2.2/go.mod h1:Kj2pCkQ47klX1aAlDnlN/BUvwBiARqIJkc9iw1Up7q8= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0 h1:PiSrjRPpkQNjrM8H0WwKMnZUdu1RGMtd/LdGKUrOo+c= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0/go.mod h1:oDrbWx4ewMylP7xHivfgixbfGBT6APAwsSoHRKotnIc= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.1 h1:cf+OIKbkmMHBaC3u78AXomweqM0oxQSgBXRZf3WH4yM= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.1/go.mod h1:ap1dmS6vQKJxSMNiGJcq4QuUQkOynyD93gLw6MDF7ek= +github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.3.1 h1:a1U6j4GPI18JQCqgz7/DcqXA1vzvGBugm14AXZfU0gs= +github.com/Azure/azure-sdk-for-go/sdk/storage/azfile v1.3.1/go.mod h1:tZyRNcHi2/yo+ugYHTUuOrHiboKilaizLnRL5aZTe6A= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Files-com/files-sdk-go/v3 v3.2.34 h1:j6gSzu6BF1wWH1z4itRe7eKhQSCrx/I78SDNiBBUtvI= -github.com/Files-com/files-sdk-go/v3 v3.2.34/go.mod h1:Y/bCHoPJNPKz2hw1ADXjQXJP378HODwK+g/5SR2gqfU= +github.com/Files-com/files-sdk-go/v3 v3.2.78 h1:mqZLLi/ditE8osCggrXhVSOG67xNdTLG0SdxkSB0EBI= +github.com/Files-com/files-sdk-go/v3 v3.2.78/go.mod h1:Y/bCHoPJNPKz2hw1ADXjQXJP378HODwK+g/5SR2gqfU= github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd h1:nzE1YQBdx1bq9IlZinHa+HVffy+NmVRoKr+wHN8fpLE= @@ -73,8 +77,8 @@ github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e h1:lCsqUUACrcM github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e/go.mod h1:Og5/Dz1MiGpCJn51XujZwxiLG7WzvvjE5PRpZBQmAHo= github.com/ProtonMail/go-crypto v0.0.0-20230321155629-9a39f2531310/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= -github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v1.1.2 h1:A7JbD57ThNqh7XjmHE+PXpQ3Dqt3BrSAC0AL0Go3KS0= +github.com/ProtonMail/go-crypto v1.1.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw= github.com/ProtonMail/go-srp v0.0.7 h1:Sos3Qk+th4tQR64vsxGIxYpN3rdnG9Wf9K4ZloC1JrI= @@ -95,8 +99,8 @@ github.com/anacrolix/dms v1.7.1 h1:XVOpT3eoO5Ds34B1X+TE3R2ApfqGGeqotEoCVNP8BaI= github.com/anacrolix/dms v1.7.1/go.mod h1:excFJW5MKBhn5yt5ZMyeE9iFVqnO6tEGQl7YG/2tUoQ= github.com/anacrolix/generics v0.0.1 h1:4WVhK6iLb3UAAAQP6I3uYlMOHcp9FqJC9j4n81Wv9Ks= github.com/anacrolix/generics v0.0.1/go.mod h1:ff2rHB/joTV03aMSSn/AZNnaIpUw0h3njetGsaXcMy8= -github.com/anacrolix/log v0.15.2 h1:LTSf5Wm6Q4GNWPFMBP7NPYV6UBVZzZLKckL+/Lj72Oo= -github.com/anacrolix/log v0.15.2/go.mod h1:m0poRtlr41mriZlXBQ9SOVZ8yZBkLjOkDhd5Li5pITA= +github.com/anacrolix/log v0.16.0 h1:DSuyb5kAJwl3Y0X1TRcStVrTS9ST9b0BHW+7neE4Xho= +github.com/anacrolix/log v0.16.0/go.mod h1:m0poRtlr41mriZlXBQ9SOVZ8yZBkLjOkDhd5Li5pITA= github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= @@ -104,44 +108,44 @@ github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc h1:LoL75er github.com/appscode/go-querystring v0.0.0-20170504095604-0126cfb3f1dc/go.mod h1:w648aMHEgFYS6xb0KVMMtZ2uMeemhiKCuD2vj6gY52A= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= -github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 h1:tW1/Rkad38LA15X4UQtjXZXNKsCgkshC3EbmcUmghTg= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3/go.mod h1:UbnqO+zjqk3uIt9yCACHJ9IVNhyhOCnYk8yA19SAWrM= -github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90= -github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg= -github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI= -github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.10 h1:zeN9UtUlA6FTx0vFSayxSX32HDw73Yb6Hh2izDSFxXY= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.10/go.mod h1:3HKuexPDcwLWPaqpW2UR/9n8N/u/3CKcGAzSs8p8u8g= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15/go.mod h1:ZQLZqhcu+JhSrA9/NXRm8SkDvsycE+JkV3WGY41e+IM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 h1:Z5r7SycxmSllHYmaAZPpmN8GviDrSGhMS6bldqtXZPw= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15/go.mod h1:CetW7bDE00QoGEmPUoZuRog07SGVAUVW6LFpNP0YfIg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvGhSoaIhRseqw2I0yH81l7wiR2vjs57O51EAm8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 h1:YPYe6ZmvUfDDDELqEKtAd6bo8zxhkm+XEFEzQisqUIE= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17/go.mod h1:oBtcnYua/CgzCWYN7NZ5j7PotFDaFSUjCYVTtfyn7vw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 h1:HGErhhrxZlQ044RiM+WdoZxp0p+EGM62y3L6pwA4olE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17/go.mod h1:RkZEx4l0EHYDJpWppMJ3nD9wZJAa8/0lq9aVC+r2UII= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 h1:246A4lSTXWJw/rmlQI+TT2OcqeDMKBdyjEQrafMaQdA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15/go.mod h1:haVfg3761/WF7YPuJOER2MP0k4UAXyHaLclKXB6usDg= -github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3 h1:hT8ZAZRIfqBqHbzKTII+CIiY8G2oC9OpLedkZ51DWl8= -github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3/go.mod h1:Lcxzg5rojyVPU/0eFwLtcyTaek/6Mtic5B1gJo7e/zE= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4/go.mod h1:0oxfLkpz3rQ/CHlx5hB7H69YUpFiI1tql6Q6Ne+1bCw= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 h1:ZsDKRLXGWHk8WdtyYMoGNO7bTudrvuKpDKgMVRlepGE= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.3/go.mod h1:zwySh8fpFyXp9yOr/KVzxOl8SRqgf/IDw5aUt9UKFcQ= -github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= -github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/aws-sdk-go-v2 v1.32.4 h1:S13INUiTxgrPueTmrm5DZ+MiAo99zYzHEFh1UNkOxNE= +github.com/aws/aws-sdk-go-v2 v1.32.4/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= +github.com/aws/aws-sdk-go-v2/config v1.28.3 h1:kL5uAptPcPKaJ4q0sDUjUIdueO18Q7JDzl64GpVwdOM= +github.com/aws/aws-sdk-go-v2/config v1.28.3/go.mod h1:SPEn1KA8YbgQnwiJ/OISU4fz7+F6Fe309Jf0QTsRCl4= +github.com/aws/aws-sdk-go-v2/credentials v1.17.44 h1:qqfs5kulLUHUEXlHEZXLJkgGoF3kkUeFUTVA585cFpU= +github.com/aws/aws-sdk-go-v2/credentials v1.17.44/go.mod h1:0Lm2YJ8etJdEdw23s+q/9wTpOeo2HhNE97XcRa7T8MA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 h1:woXadbf0c7enQ2UGCi8gW/WuKmE0xIzxBF/eD94jMKQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19/go.mod h1:zminj5ucw7w0r65bP6nhyOd3xL6veAUMc3ElGMoLVb4= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37 h1:jHKR76E81sZvz1+x1vYYrHMxphG5LFBJPhSqEr4CLlE= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37/go.mod h1:iMkyPkmoJWQKzSOtaX+8oEJxAuqr7s8laxcqGDSHeII= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 h1:A2w6m6Tmr+BNXjDsr7M90zkWjsu4JXHwrzPg235STs4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23/go.mod h1:35EVp9wyeANdujZruvHiQUAo9E3vbhnIO1mTCAxMlY0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 h1:pgYW9FCabt2M25MoHYCfMrVY2ghiiBKYWUVXfwZs+sU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23/go.mod h1:c48kLgzO19wAu3CPkDWC28JbaJ+hfQlsdl7I2+oqIbk= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23 h1:1SZBDiRzzs3sNhOMVApyWPduWYGAX0imGy06XiBnCAM= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23/go.mod h1:i9TkxgbZmHVh2S0La6CAXtnyFhlCX/pJ0JsOvBAS6Mk= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4 h1:aaPpoG15S2qHkWm4KlEyF01zovK1nW4BBbyXuHNSE90= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4/go.mod h1:eD9gS2EARTKgGr/W5xwgY/ik9z/zqpW+m/xOQbVxrMk= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 h1:tHxQi/XHPK0ctd/wdOw0t7Xrc2OxcRCnVzv8lwWPu0c= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4/go.mod h1:4GQbF1vJzG60poZqWatZlhP31y8PGCCVTvIGPdaaYJ0= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 h1:E5ZAVOmI2apR8ADb72Q63KqwwwdW1XcMeXIlrZ1Psjg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4/go.mod h1:wezzqVUOVVdk+2Z/JzQT4NxAU0NbhRe5W8pIE72jsWI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 h1:neNOYJl72bHrz9ikAEED4VqWyND/Po0DnEx64RW6YM4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3/go.mod h1:TMhLIyRIyoGVlaEMAt+ITMbwskSTpcGsCPDq91/ihY0= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 h1:HJwZwRt2Z2Tdec+m+fPjvdmkq2s9Ra+VR0hjF7V2o40= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.5/go.mod h1:wrMCEwjFPms+V86TCQQeOxQF/If4vT44FGIOFiMC2ck= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 h1:zcx9LiGWZ6i6pjdcoE9oXAB6mUdeyC36Ia/QEiIvYdg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4/go.mod h1:Tp/ly1cTjRLGBBmNccFumbZ8oqpZlpdhFf80SrRh4is= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 h1:yDxvkz3/uOKfxnv8YhzOi9m+2OGIxF+on3KOISbK5IU= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.4/go.mod h1:9XEUty5v5UAsMiFOBJrNibZgwCeOma73jgGwwhgffa8= +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradenaw/juniper v0.15.2 h1:0JdjBGEF2jP1pOxmlNIrPhAoQN7Ng5IMAY5D0PHMW4U= @@ -159,8 +163,8 @@ github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4 github.com/calebcase/tmpfile v1.0.3 h1:BZrOWZ79gJqQ3XbAQlihYZf/YCV0H4KPIdM5K5oMpJo= github.com/calebcase/tmpfile v1.0.3/go.mod h1:UAUc01aHeC+pudPagY/lWvt2qS9ZO5Zzof6/tIUzqeI= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9 h1:z0uK8UQqjMVYzvk4tiiu3obv2B44+XBsvgEJREQfnO8= github.com/chilts/sid v0.0.0-20190607042430-660e94789ec9/go.mod h1:Jl2neWsQaDanWORdqZ4emBl50J4/aRBBS4FyyG9/PFo= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -192,6 +196,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/dop251/scsu v0.0.0-20220106150536-84ac88021d00 h1:xJBhC00smQpSZw3Kr0ErMUBXhUSjYoLRm2szxdbRBL0= @@ -225,8 +231,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/gabriel-vasile/mimetype v1.4.4 h1:QjV6pZ7/XZ7ryI2KuyeEDE8wnh7fHP9YnQy+R0LnH8I= -github.com/gabriel-vasile/mimetype v1.4.4/go.mod h1:JwLei5XPtWdGiMFB5Pjle1oEeoSeEuJfJE+TtfvdB/s= +github.com/gabriel-vasile/mimetype v1.4.6 h1:3+PzJTKLkvgjeTbts6msPJt4DixhT4YtFNf1gtGe3zc= +github.com/gabriel-vasile/mimetype v1.4.6/go.mod h1:JX1qVKqZd40hUPpAfiNTe0Sne7hdfKSbOqqmkq8GCXc= github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= github.com/gdamore/tcell/v2 v2.7.4 h1:sg6/UnTM9jGpZU+oFYAsDahfchWAFW8Xx2yFinNSAYU= @@ -241,16 +247,16 @@ github.com/go-chi/chi/v5 v5.1.0 h1:acVI1TYaD+hhedDJ3r54HyA6sExp3HfXq7QWEEY/xMw= github.com/go-chi/chi/v5 v5.1.0/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-darwin/apfs v0.0.0-20211011131704-f84b94dbf348 h1:JnrjqG5iR07/8k7NqrLNilRsl3s1EPRQEGvbPyOce68= github.com/go-darwin/apfs v0.0.0-20211011131704-f84b94dbf348/go.mod h1:Czxo/d1g948LtrALAZdL04TL/HnkopquAjxYUuI02bo= -github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= -github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-billy/v5 v5.6.0 h1:w2hPNtoehvJIxR00Vb4xX94qHQi/ApZfX+nBE2Cjio8= +github.com/go-git/go-billy/v5 v5.6.0/go.mod h1:sFDq7xD3fn3E0GOwUSZqHo9lrkmx8xJhA0ZrfvjBRGM= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= @@ -275,8 +281,8 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -306,8 +312,6 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -332,17 +336,17 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 h1:velgFPYr1X9TDwLIfkV7fWqsFlf7TeP11M/7kPd/dVI= github.com/google/pprof v0.0.0-20240509144519-723abb6459b7/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA= -github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg= github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -350,8 +354,8 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/hanwen/go-fuse/v2 v2.5.1 h1:OQBE8zVemSocRxA4OaFJbjJ5hlpCmIWbGr7r0M4uoQQ= -github.com/hanwen/go-fuse/v2 v2.5.1/go.mod h1:xKwi1cF7nXAOBCXujD5ie0ZKsxc8GGSA1rlMJc+8IJs= +github.com/hanwen/go-fuse/v2 v2.6.3 h1:tDcEkLRx93lXu4XyN1/j8Z74VWvhHDl6qU1kNnvFUqI= +github.com/hanwen/go-fuse/v2 v2.6.3/go.mod h1:ugNaD/iv5JYyS1Rcvi57Wz7/vrLQJo10mmketmoef48= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -393,8 +397,8 @@ github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJk github.com/jlaffaye/ftp v0.0.0-20190624084859-c1312a7102bf/go.mod h1:lli8NYPQOFy3O++YmYbqVgOcQ1JPCwdOy+5zSjKJ9qY= github.com/jlaffaye/ftp v0.2.0 h1:lXNvW7cBu7R/68bknOX3MrRIIqZ61zELs1P2RAiA3lg= github.com/jlaffaye/ftp v0.2.0/go.mod h1:is2Ds5qkhceAPy2xD6RLI6hmp/qysSoymZ+Z2uTnspI= -github.com/josephspurrier/goversioninfo v1.4.0 h1:Puhl12NSHUSALHSuzYwPYQkqa2E1+7SrtAPJorKK0C8= -github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= +github.com/josephspurrier/goversioninfo v1.4.1 h1:5LvrkP+n0tg91J9yTkoVnt/QgNnrI1t4uSsWjIonrqY= +github.com/josephspurrier/goversioninfo v1.4.1/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -405,10 +409,12 @@ github.com/jtolio/noiseconn v0.0.0-20231127013910-f6d9ecbf1de7 h1:JcltaO1HXM5S2K github.com/jtolio/noiseconn v0.0.0-20231127013910-f6d9ecbf1de7/go.mod h1:MEkhEPFwP3yudWO0lj6vfYpLIB+3eIcuIW+e0AZzUQk= github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004 h1:G+9t9cEtnC9jFiTxyptEKuNIAbiN5ZCQzX2a74lj3xg= github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004/go.mod h1:KmHnJWQrgEvbuy0vcvj00gtMqbvNn1L+3YUZLK/B92c= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= @@ -428,7 +434,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= @@ -444,8 +449,9 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/minio-go/v6 v6.0.46/go.mod h1:qD0lajrGW49lKZLtXKtCB4X/qkMf0a5tBvN2PaZg7Gg= @@ -454,13 +460,14 @@ github.com/minio/minio-go/v7 v7.0.74/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg= github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/ncw/swift/v2 v2.0.3 h1:8R9dmgFIWs+RiVlisCEfiQiik1hjuR0JnOkLxaP9ihg= github.com/ncw/swift/v2 v2.0.3/go.mod h1:cbAO76/ZwcFrFlHdXPjaqWZ9R7Hdar7HpjRXBfbjigk= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -474,10 +481,10 @@ github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -github.com/oracle/oci-go-sdk/v65 v65.69.2 h1:lROMJ8/VakGOGObAWUxTVY2AX1wQCUIzVqfL4Fb2Ay8= -github.com/oracle/oci-go-sdk/v65 v65.69.2/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= +github.com/oracle/oci-go-sdk/v65 v65.78.0 h1:iM7lFFA7cJkUD4tmrlsAHWgL3HuTuF9mdvTAliMkcFA= +github.com/oracle/oci-go-sdk/v65 v65.78.0/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0= github.com/panjf2000/ants/v2 v2.9.1 h1:Q5vh5xohbsZXGcD6hhszzGqB7jSSc2/CRr3QKIga8Kw= github.com/panjf2000/ants/v2 v2.9.1/go.mod h1:7ZxyxsqE4vvW0M7LSD8aI3cKwgFhBHbxnlN8mDqHa1I= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= @@ -491,24 +498,24 @@ github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjL github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo= -github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk= -github.com/pkg/xattr v0.4.9 h1:5883YPCtkSd8LFbs13nXplj9g9tlrwoJRjgpgMu1/fE= -github.com/pkg/xattr v0.4.9/go.mod h1:di8WF84zAKk8jzR1UBTEWh9AUlIZZ7M/JNt8e9B6ktU= +github.com/pkg/sftp v1.13.7 h1:uv+I3nNJvlKZIQGSr8JVQLNHFU9YhhNpvC14Y6KgmSM= +github.com/pkg/sftp v1.13.7/go.mod h1:KMKI0t3T6hfA+lTR/ssZdunHo+uwq7ghoN09/FSu3DY= +github.com/pkg/xattr v0.4.10 h1:Qe0mtiNFHQZ296vRgUjRCoPHPqH7VdTOrZx3g0T+pGA= +github.com/pkg/xattr v0.4.10/go.mod h1:di8WF84zAKk8jzR1UBTEWh9AUlIZZ7M/JNt8e9B6ktU= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b h1:0LFwY6Q3gMACTjAbMZBjXAqTOzOwFaj2Ld6cjeQ7Rig= github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8 h1:Y258uzXU/potCYnQd1r6wlAnoMB68BiCkCcCnKx1SH8= github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8/go.mod h1:bSJjRokAHHOhA+XFxplld8w2R/dXLH7Z3BZ532vhFwU= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= @@ -521,6 +528,8 @@ github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93 h1:UVArwN/wkKjMVhh2EQ github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93/go.mod h1:Nfe4efndBz4TibWycNE+lqyJZiMX4ycx+QKV8Ta0f/o= github.com/rclone/gofakes3 v0.0.3 h1:0sKCxJ8TUUAG5KXGuc/fcDKGnzB/j6IjNQui9ntIZPo= github.com/rclone/gofakes3 v0.0.3/go.mod h1:z7+o2VUwitO0WuVHReQlOW9jZ03LpeJ0PUFSULyTIds= +github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= +github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/relvacode/iso8601 v1.3.0 h1:HguUjsGpIMh/zsTczGN3DVJFxTU/GX+MMmzcKoMO7ko= github.com/relvacode/iso8601 v1.3.0/go.mod h1:FlNp+jz+TXpyRqgmM7tnzHHzBnz776kmAH2h3sZCn0I= github.com/rfjakob/eme v1.1.2 h1:SxziR8msSOElPayZNFfQw4Tjx/Sbaeeh3eRvrHVMUs4= @@ -614,8 +623,8 @@ github.com/winfsp/cgofuse v1.5.1-0.20221118130120-84c0898ad2e0 h1:j3un8DqYvvAOqK github.com/winfsp/cgofuse v1.5.1-0.20221118130120-84c0898ad2e0/go.mod h1:uxjoF2jEYT3+x+vC2KJddEGdk/LU8pRowXmyVMHSV5I= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= -github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= +github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM= +github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -643,14 +652,14 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= -go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= -go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= -go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= -go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= -go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= +go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= +go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= +go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= +go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo= @@ -665,7 +674,6 @@ golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -675,8 +683,9 @@ golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2Uz golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -759,16 +768,16 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -778,12 +787,11 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -838,9 +846,10 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -850,9 +859,10 @@ golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= +golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -866,14 +876,14 @@ golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -944,8 +954,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw= -google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag= +google.golang.org/api v0.205.0 h1:LFaxkAIpDb/GsrWV20dMMo5MR0h8UARTbn24LmD+0Pg= +google.golang.org/api v0.205.0/go.mod h1:NrK1EMqO8Xk6l6QwRAmrXXg2v6dzukhlOyvkYtnvUuc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -981,10 +991,10 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 h1:0+ozOGcrp+Y8Aq8TLNN2Aliibms5LEzsq99ZZmAGYm0= -google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094/go.mod h1:fJ/e3If/Q67Mj99hin0hMhiNyCRmt6BQ2aWIJshUSJw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U= +google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -998,8 +1008,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1010,8 +1020,8 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/lib/multipart/multipart.go b/lib/multipart/multipart.go index c388acc01..1545f4ced 100644 --- a/lib/multipart/multipart.go +++ b/lib/multipart/multipart.go @@ -17,7 +17,8 @@ import ( ) const ( - BufferSize = 1024 * 1024 // BufferSize is the default size of the pages used in the reader + // BufferSize is the default size of the pages used in the reader + BufferSize = 1024 * 1024 bufferCacheSize = 64 // max number of buffers to keep in cache bufferCacheFlushTime = 5 * time.Second // flush the cached buffers after this long )