main dc09e6cd49f7 cached
1948 files
43.4 MB
11.5M tokens
10439 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (46,487K chars total). Download the full file to get everything.
Repository: Akash1362000/Django_Student_Management_System
Branch: main
Commit: dc09e6cd49f7
Files: 1948
Total size: 43.4 MB

Directory structure:
gitextract_xmbx1o6c/

├── .dockerignore
├── .flake8
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       └── tests.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── Dockerfile
├── LICENSE
├── Procfile
├── README.md
├── build.sh
├── docker-compose.yml
├── manage.py
├── requirements.dev.txt
├── requirements.txt
├── runtime.txt
├── static/
│   ├── admin/
│   │   ├── css/
│   │   │   ├── autocomplete.css
│   │   │   ├── base.css
│   │   │   ├── changelists.css
│   │   │   ├── dashboard.css
│   │   │   ├── fonts.css
│   │   │   ├── forms.css
│   │   │   ├── login.css
│   │   │   ├── responsive.css
│   │   │   ├── responsive_rtl.css
│   │   │   ├── rtl.css
│   │   │   ├── vendor/
│   │   │   │   └── select2/
│   │   │   │       ├── LICENSE-SELECT2.md
│   │   │   │       └── select2.css
│   │   │   └── widgets.css
│   │   ├── fonts/
│   │   │   ├── LICENSE.txt
│   │   │   └── README.txt
│   │   ├── img/
│   │   │   ├── LICENSE
│   │   │   └── README.txt
│   │   └── js/
│   │       ├── SelectBox.js
│   │       ├── SelectFilter2.js
│   │       ├── actions.js
│   │       ├── admin/
│   │       │   ├── DateTimeShortcuts.js
│   │       │   └── RelatedObjectLookups.js
│   │       ├── autocomplete.js
│   │       ├── calendar.js
│   │       ├── cancel.js
│   │       ├── change_form.js
│   │       ├── collapse.js
│   │       ├── core.js
│   │       ├── inlines.js
│   │       ├── jquery.init.js
│   │       ├── popup_response.js
│   │       ├── prepopulate.js
│   │       ├── prepopulate_init.js
│   │       ├── timeparse.js
│   │       ├── urlify.js
│   │       └── vendor/
│   │           ├── jquery/
│   │           │   ├── LICENSE.txt
│   │           │   └── jquery.js
│   │           ├── select2/
│   │           │   ├── LICENSE.md
│   │           │   ├── i18n/
│   │           │   │   ├── ar.js
│   │           │   │   ├── az.js
│   │           │   │   ├── bg.js
│   │           │   │   ├── ca.js
│   │           │   │   ├── cs.js
│   │           │   │   ├── da.js
│   │           │   │   ├── de.js
│   │           │   │   ├── el.js
│   │           │   │   ├── en.js
│   │           │   │   ├── es.js
│   │           │   │   ├── et.js
│   │           │   │   ├── eu.js
│   │           │   │   ├── fa.js
│   │           │   │   ├── fi.js
│   │           │   │   ├── fr.js
│   │           │   │   ├── gl.js
│   │           │   │   ├── he.js
│   │           │   │   ├── hi.js
│   │           │   │   ├── hr.js
│   │           │   │   ├── hu.js
│   │           │   │   ├── id.js
│   │           │   │   ├── is.js
│   │           │   │   ├── it.js
│   │           │   │   ├── ja.js
│   │           │   │   ├── km.js
│   │           │   │   ├── ko.js
│   │           │   │   ├── lt.js
│   │           │   │   ├── lv.js
│   │           │   │   ├── mk.js
│   │           │   │   ├── ms.js
│   │           │   │   ├── nb.js
│   │           │   │   ├── nl.js
│   │           │   │   ├── pl.js
│   │           │   │   ├── pt-BR.js
│   │           │   │   ├── pt.js
│   │           │   │   ├── ro.js
│   │           │   │   ├── ru.js
│   │           │   │   ├── sk.js
│   │           │   │   ├── sr-Cyrl.js
│   │           │   │   ├── sr.js
│   │           │   │   ├── sv.js
│   │           │   │   ├── th.js
│   │           │   │   ├── tr.js
│   │           │   │   ├── uk.js
│   │           │   │   ├── vi.js
│   │           │   │   ├── zh-CN.js
│   │           │   │   └── zh-TW.js
│   │           │   └── select2.full.js
│   │           └── xregexp/
│   │               ├── LICENSE.txt
│   │               └── xregexp.js
│   ├── bootstrap/
│   │   └── js/
│   │       ├── bootstrap.bundle.js
│   │       └── bootstrap.js
│   ├── bootstrap-colorpicker/
│   │   ├── css/
│   │   │   └── bootstrap-colorpicker.css
│   │   └── js/
│   │       └── bootstrap-colorpicker.js
│   ├── bootstrap-slider/
│   │   ├── bootstrap-slider.js
│   │   └── css/
│   │       └── bootstrap-slider.css
│   ├── bootstrap-switch/
│   │   ├── css/
│   │   │   ├── bootstrap2/
│   │   │   │   └── bootstrap-switch.css
│   │   │   └── bootstrap3/
│   │   │       └── bootstrap-switch.css
│   │   └── js/
│   │       └── bootstrap-switch.js
│   ├── bootstrap4-duallistbox/
│   │   ├── bootstrap-duallistbox.css
│   │   └── jquery.bootstrap-duallistbox.js
│   ├── bs-custom-file-input/
│   │   └── bs-custom-file-input.js
│   ├── chart.js/
│   │   ├── Chart.bundle.js
│   │   ├── Chart.css
│   │   └── Chart.js
│   ├── datatables/
│   │   └── jquery.dataTables.js
│   ├── datatables-autofill/
│   │   ├── css/
│   │   │   └── autoFill.bootstrap4.css
│   │   └── js/
│   │       ├── autoFill.bootstrap4.js
│   │       └── dataTables.autoFill.js
│   ├── datatables-bs4/
│   │   ├── css/
│   │   │   └── dataTables.bootstrap4.css
│   │   └── js/
│   │       └── dataTables.bootstrap4.js
│   ├── datatables-buttons/
│   │   ├── css/
│   │   │   └── buttons.bootstrap4.css
│   │   └── js/
│   │       ├── buttons.bootstrap4.js
│   │       ├── buttons.colVis.js
│   │       ├── buttons.flash.js
│   │       ├── buttons.html5.js
│   │       ├── buttons.print.js
│   │       └── dataTables.buttons.js
│   ├── datatables-colreorder/
│   │   ├── css/
│   │   │   └── colReorder.bootstrap4.css
│   │   └── js/
│   │       ├── colReorder.bootstrap4.js
│   │       └── dataTables.colReorder.js
│   ├── datatables-fixedcolumns/
│   │   ├── css/
│   │   │   └── fixedColumns.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.fixedColumns.js
│   │       └── fixedColumns.bootstrap4.js
│   ├── datatables-fixedheader/
│   │   ├── css/
│   │   │   └── fixedHeader.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.fixedHeader.js
│   │       └── fixedHeader.bootstrap4.js
│   ├── datatables-keytable/
│   │   ├── css/
│   │   │   └── keyTable.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.keyTable.js
│   │       └── keyTable.bootstrap4.js
│   ├── datatables-responsive/
│   │   ├── css/
│   │   │   └── responsive.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.responsive.js
│   │       └── responsive.bootstrap4.js
│   ├── datatables-rowgroup/
│   │   ├── css/
│   │   │   └── rowGroup.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.rowGroup.js
│   │       └── rowGroup.bootstrap4.js
│   ├── datatables-rowreorder/
│   │   ├── css/
│   │   │   └── rowReorder.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.rowReorder.js
│   │       └── rowReorder.bootstrap4.js
│   ├── datatables-scroller/
│   │   ├── css/
│   │   │   └── scroller.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.scroller.js
│   │       └── scroller.bootstrap4.js
│   ├── datatables-select/
│   │   ├── css/
│   │   │   └── select.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.select.js
│   │       └── select.bootstrap4.js
│   ├── daterangepicker/
│   │   ├── bower.json
│   │   ├── daterangepicker.css
│   │   ├── daterangepicker.js
│   │   ├── example/
│   │   │   ├── amd/
│   │   │   │   ├── index.html
│   │   │   │   ├── main.js
│   │   │   │   └── require.js
│   │   │   └── browserify/
│   │   │       ├── README.md
│   │   │       ├── bundle.js
│   │   │       ├── index.html
│   │   │       └── main.js
│   │   ├── package.js
│   │   ├── website/
│   │   │   ├── index.html
│   │   │   ├── website.css
│   │   │   └── website.js
│   │   ├── website.css
│   │   └── website.js
│   ├── ekko-lightbox/
│   │   ├── ekko-lightbox.css
│   │   └── ekko-lightbox.js
│   ├── fastclick/
│   │   └── fastclick.js
│   ├── filterizr/
│   │   ├── ActiveFilter.d.ts
│   │   ├── BrowserWindow.d.ts
│   │   ├── EventReceiver.d.ts
│   │   ├── FilterContainer/
│   │   │   ├── FilterContainer.d.ts
│   │   │   ├── StyledFilterContainer.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── styles.d.ts
│   │   ├── FilterContainer.d.ts
│   │   ├── FilterControls.d.ts
│   │   ├── FilterItem/
│   │   │   ├── FilterItem.d.ts
│   │   │   ├── StyledFilterItem.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── styles.d.ts
│   │   ├── FilterItem.d.ts
│   │   ├── FilterItems/
│   │   │   ├── FilterItems.d.ts
│   │   │   ├── StyledFilterItems.d.ts
│   │   │   └── index.d.ts
│   │   ├── FilterItems.d.ts
│   │   ├── Filterizr/
│   │   │   ├── Filterizr.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── installAsJQueryPlugin.d.ts
│   │   ├── Filterizr.d.ts
│   │   ├── FilterizrElement.d.ts
│   │   ├── FilterizrOptions/
│   │   │   ├── FilterizrOptions.d.ts
│   │   │   ├── defaultOptions.d.ts
│   │   │   └── index.d.ts
│   │   ├── Spinner/
│   │   │   ├── Spinner.d.ts
│   │   │   ├── StyledSpinner.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── makeSpinner.d.ts
│   │   ├── StyledFilterizrElement.d.ts
│   │   ├── StyledFilterizrElements.d.ts
│   │   ├── animate.d.ts
│   │   ├── config/
│   │   │   ├── cssEasingValuesRegexp.d.ts
│   │   │   ├── filterizrState.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── layout.d.ts
│   │   ├── getLayoutPositions.d.ts
│   │   ├── index.d.ts
│   │   ├── index.jquery.d.ts
│   │   ├── installAsJQueryPlugin.d.ts
│   │   ├── layouts/
│   │   │   ├── Packer.d.ts
│   │   │   ├── getHorizontalLayoutPositions.d.ts
│   │   │   ├── getPackedLayoutPositions.d.ts
│   │   │   ├── getSameHeightLayoutPositions.d.ts
│   │   │   ├── getSameSizeLayoutPosition.d.ts
│   │   │   ├── getSameWidthLayoutPositions.d.ts
│   │   │   └── getVerticalLayoutPositions.d.ts
│   │   ├── makeLayoutPositions/
│   │   │   ├── Packer.d.ts
│   │   │   ├── index.d.ts
│   │   │   ├── makeHorizontalLayoutPositions.d.ts
│   │   │   ├── makeLayoutPositions.d.ts
│   │   │   ├── makePackedLayoutPositions.d.ts
│   │   │   ├── makeSameHeightLayoutPositions.d.ts
│   │   │   ├── makeSameSizeLayoutPosition.d.ts
│   │   │   ├── makeSameWidthLayoutPositions.d.ts
│   │   │   └── makeVerticalLayoutPositions.d.ts
│   │   ├── types/
│   │   │   ├── index.d.ts
│   │   │   └── interfaces/
│   │   │       ├── BaseOptions.d.ts
│   │   │       ├── ContainerLayout.d.ts
│   │   │       ├── Destructible.d.ts
│   │   │       ├── Dictionary.d.ts
│   │   │       ├── Dimensions.d.ts
│   │   │       ├── Options.d.ts
│   │   │       ├── Position.d.ts
│   │   │       ├── RawOptions.d.ts
│   │   │       ├── RawOptionsCallbacks.d.ts
│   │   │       ├── Resizable.d.ts
│   │   │       ├── SpinnerOptions.d.ts
│   │   │       ├── Styleable.d.ts
│   │   │       └── index.d.ts
│   │   ├── utils/
│   │   │   ├── allStringsOfArray1InArray2.d.ts
│   │   │   ├── checkOptionForErrors.d.ts
│   │   │   ├── debounce.d.ts
│   │   │   ├── filterItemArraysHaveSameSorting.d.ts
│   │   │   ├── getDataAttributesOfHTMLNode.d.ts
│   │   │   ├── getHTMLElement.d.ts
│   │   │   ├── index.d.ts
│   │   │   ├── intersection.d.ts
│   │   │   ├── merge.d.ts
│   │   │   ├── noop.d.ts
│   │   │   ├── setStyles.d.ts
│   │   │   ├── shuffle.d.ts
│   │   │   └── sortBy.d.ts
│   │   └── utils.d.ts
│   ├── flag-icon-css/
│   │   └── css/
│   │       └── flag-icon.css
│   ├── flot/
│   │   └── jquery.flot.js
│   ├── flot-old/
│   │   ├── excanvas.js
│   │   ├── jquery.colorhelpers.js
│   │   ├── jquery.flot.canvas.js
│   │   ├── jquery.flot.categories.js
│   │   ├── jquery.flot.crosshair.js
│   │   ├── jquery.flot.errorbars.js
│   │   ├── jquery.flot.fillbetween.js
│   │   ├── jquery.flot.image.js
│   │   ├── jquery.flot.js
│   │   ├── jquery.flot.navigate.js
│   │   ├── jquery.flot.pie.js
│   │   ├── jquery.flot.resize.js
│   │   ├── jquery.flot.selection.js
│   │   ├── jquery.flot.stack.js
│   │   ├── jquery.flot.symbol.js
│   │   ├── jquery.flot.threshold.js
│   │   └── jquery.flot.time.js
│   ├── fontawesome-free/
│   │   └── css/
│   │       ├── all.css
│   │       ├── brands.css
│   │       ├── fontawesome.css
│   │       ├── regular.css
│   │       ├── solid.css
│   │       ├── svg-with-js.css
│   │       └── v4-shims.css
│   ├── fullcalendar/
│   │   ├── LICENSE.txt
│   │   ├── locales/
│   │   │   ├── af.js
│   │   │   ├── ar-dz.js
│   │   │   ├── ar-kw.js
│   │   │   ├── ar-ly.js
│   │   │   ├── ar-ma.js
│   │   │   ├── ar-sa.js
│   │   │   ├── ar-tn.js
│   │   │   ├── ar.js
│   │   │   ├── bg.js
│   │   │   ├── bs.js
│   │   │   ├── ca.js
│   │   │   ├── cs.js
│   │   │   ├── da.js
│   │   │   ├── de.js
│   │   │   ├── el.js
│   │   │   ├── en-au.js
│   │   │   ├── en-gb.js
│   │   │   ├── en-nz.js
│   │   │   ├── es-us.js
│   │   │   ├── es.js
│   │   │   ├── et.js
│   │   │   ├── eu.js
│   │   │   ├── fa.js
│   │   │   ├── fi.js
│   │   │   ├── fr-ca.js
│   │   │   ├── fr-ch.js
│   │   │   ├── fr.js
│   │   │   ├── gl.js
│   │   │   ├── he.js
│   │   │   ├── hi.js
│   │   │   ├── hr.js
│   │   │   ├── hu.js
│   │   │   ├── id.js
│   │   │   ├── is.js
│   │   │   ├── it.js
│   │   │   ├── ja.js
│   │   │   ├── ka.js
│   │   │   ├── kk.js
│   │   │   ├── ko.js
│   │   │   ├── lb.js
│   │   │   ├── lt.js
│   │   │   ├── lv.js
│   │   │   ├── mk.js
│   │   │   ├── ms.js
│   │   │   ├── nb.js
│   │   │   ├── nl.js
│   │   │   ├── nn.js
│   │   │   ├── pl.js
│   │   │   ├── pt-br.js
│   │   │   ├── pt.js
│   │   │   ├── ro.js
│   │   │   ├── ru.js
│   │   │   ├── sk.js
│   │   │   ├── sl.js
│   │   │   ├── sq.js
│   │   │   ├── sr-cyrl.js
│   │   │   ├── sr.js
│   │   │   ├── sv.js
│   │   │   ├── th.js
│   │   │   ├── tr.js
│   │   │   ├── uk.js
│   │   │   ├── vi.js
│   │   │   ├── zh-cn.js
│   │   │   └── zh-tw.js
│   │   ├── locales-all.js
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-bootstrap/
│   │   ├── LICENSE.txt
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-daygrid/
│   │   ├── LICENSE.txt
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-interaction/
│   │   ├── LICENSE.txt
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-timegrid/
│   │   ├── LICENSE.txt
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── icheck-bootstrap/
│   │   ├── LICENSE
│   │   └── icheck-bootstrap.css
│   ├── inputmask/
│   │   ├── inputmask/
│   │   │   ├── bindings/
│   │   │   │   └── inputmask.binding.js
│   │   │   ├── dependencyLibs/
│   │   │   │   ├── inputmask.dependencyLib.jqlite.js
│   │   │   │   ├── inputmask.dependencyLib.jquery.js
│   │   │   │   └── inputmask.dependencyLib.js
│   │   │   ├── global/
│   │   │   │   └── window.js
│   │   │   ├── inputmask.date.extensions.js
│   │   │   ├── inputmask.extensions.js
│   │   │   ├── inputmask.js
│   │   │   ├── inputmask.numeric.extensions.js
│   │   │   └── jquery.inputmask.js
│   │   └── jquery.inputmask.bundle.js
│   ├── ion-rangeslider/
│   │   ├── css/
│   │   │   └── ion.rangeSlider.css
│   │   ├── js/
│   │   │   └── ion.rangeSlider.js
│   │   └── less/
│   │       ├── _base.less
│   │       ├── _mixins.less
│   │       ├── irs.less
│   │       └── skins/
│   │           ├── big.less
│   │           ├── flat.less
│   │           ├── modern.less
│   │           ├── round.less
│   │           ├── sharp.less
│   │           └── square.less
│   ├── jquery/
│   │   ├── core.js
│   │   ├── jquery.js
│   │   └── jquery.slim.js
│   ├── jquery-mapael/
│   │   ├── jquery.mapael.js
│   │   └── maps/
│   │       ├── README.txt
│   │       ├── france_departments.js
│   │       ├── usa_states.js
│   │       ├── world_countries.js
│   │       ├── world_countries_mercator.js
│   │       └── world_countries_miller.js
│   ├── jquery-mousewheel/
│   │   ├── LICENSE.txt
│   │   └── jquery.mousewheel.js
│   ├── jquery-ui/
│   │   ├── AUTHORS.txt
│   │   ├── LICENSE.txt
│   │   ├── external/
│   │   │   └── jquery/
│   │   │       └── jquery.js
│   │   ├── jquery-ui.css
│   │   ├── jquery-ui.js
│   │   ├── jquery-ui.structure.css
│   │   └── jquery-ui.theme.css
│   ├── jquery-validation/
│   │   ├── additional-methods.js
│   │   ├── jquery.validate.js
│   │   └── localization/
│   │       ├── messages_ar.js
│   │       ├── messages_az.js
│   │       ├── messages_bg.js
│   │       ├── messages_bn_BD.js
│   │       ├── messages_ca.js
│   │       ├── messages_cs.js
│   │       ├── messages_da.js
│   │       ├── messages_de.js
│   │       ├── messages_el.js
│   │       ├── messages_es.js
│   │       ├── messages_es_AR.js
│   │       ├── messages_es_PE.js
│   │       ├── messages_et.js
│   │       ├── messages_eu.js
│   │       ├── messages_fa.js
│   │       ├── messages_fi.js
│   │       ├── messages_fr.js
│   │       ├── messages_ge.js
│   │       ├── messages_gl.js
│   │       ├── messages_he.js
│   │       ├── messages_hr.js
│   │       ├── messages_hu.js
│   │       ├── messages_hy_AM.js
│   │       ├── messages_id.js
│   │       ├── messages_is.js
│   │       ├── messages_it.js
│   │       ├── messages_ja.js
│   │       ├── messages_ka.js
│   │       ├── messages_kk.js
│   │       ├── messages_ko.js
│   │       ├── messages_lt.js
│   │       ├── messages_lv.js
│   │       ├── messages_mk.js
│   │       ├── messages_my.js
│   │       ├── messages_nl.js
│   │       ├── messages_no.js
│   │       ├── messages_pl.js
│   │       ├── messages_pt_BR.js
│   │       ├── messages_pt_PT.js
│   │       ├── messages_ro.js
│   │       ├── messages_ru.js
│   │       ├── messages_sd.js
│   │       ├── messages_si.js
│   │       ├── messages_sk.js
│   │       ├── messages_sl.js
│   │       ├── messages_sr.js
│   │       ├── messages_sr_lat.js
│   │       ├── messages_sv.js
│   │       ├── messages_th.js
│   │       ├── messages_tj.js
│   │       ├── messages_tr.js
│   │       ├── messages_uk.js
│   │       ├── messages_ur.js
│   │       ├── messages_vi.js
│   │       ├── messages_zh.js
│   │       ├── messages_zh_TW.js
│   │       ├── methods_de.js
│   │       ├── methods_es_CL.js
│   │       ├── methods_fi.js
│   │       ├── methods_it.js
│   │       ├── methods_nl.js
│   │       └── methods_pt.js
│   ├── jqvmap/
│   │   ├── jquery.vmap.js
│   │   ├── jqvmap.css
│   │   └── maps/
│   │       ├── continents/
│   │       │   ├── jquery.vmap.africa.js
│   │       │   ├── jquery.vmap.asia.js
│   │       │   ├── jquery.vmap.australia.js
│   │       │   ├── jquery.vmap.europe.js
│   │       │   ├── jquery.vmap.north-america.js
│   │       │   └── jquery.vmap.south-america.js
│   │       ├── jquery.vmap.algeria.js
│   │       ├── jquery.vmap.argentina.js
│   │       ├── jquery.vmap.brazil.js
│   │       ├── jquery.vmap.canada.js
│   │       ├── jquery.vmap.croatia.js
│   │       ├── jquery.vmap.europe.js
│   │       ├── jquery.vmap.france.js
│   │       ├── jquery.vmap.germany.js
│   │       ├── jquery.vmap.greece.js
│   │       ├── jquery.vmap.indonesia.js
│   │       ├── jquery.vmap.iran.js
│   │       ├── jquery.vmap.iraq.js
│   │       ├── jquery.vmap.new_regions_france.js
│   │       ├── jquery.vmap.russia.js
│   │       ├── jquery.vmap.serbia.js
│   │       ├── jquery.vmap.tunisia.js
│   │       ├── jquery.vmap.turkey.js
│   │       ├── jquery.vmap.ukraine.js
│   │       ├── jquery.vmap.usa.counties.js
│   │       ├── jquery.vmap.usa.districts.js
│   │       ├── jquery.vmap.usa.js
│   │       └── jquery.vmap.world.js
│   ├── jsgrid/
│   │   ├── demos/
│   │   │   ├── basic.html
│   │   │   ├── batch-delete.html
│   │   │   ├── custom-grid-field.html
│   │   │   ├── custom-load-indicator.html
│   │   │   ├── custom-row-renderer.html
│   │   │   ├── custom-view.html
│   │   │   ├── data-manipulation.html
│   │   │   ├── db.js
│   │   │   ├── demos.css
│   │   │   ├── external-pager.html
│   │   │   ├── index.html
│   │   │   ├── loading-by-page.html
│   │   │   ├── localization.html
│   │   │   ├── odata-service.html
│   │   │   ├── rows-reordering.html
│   │   │   ├── sorting.html
│   │   │   ├── static-data.html
│   │   │   └── validation.html
│   │   ├── i18n/
│   │   │   ├── jsgrid-de.js
│   │   │   ├── jsgrid-es.js
│   │   │   ├── jsgrid-fr.js
│   │   │   ├── jsgrid-he.js
│   │   │   ├── jsgrid-ja.js
│   │   │   ├── jsgrid-ka.js
│   │   │   ├── jsgrid-pl.js
│   │   │   ├── jsgrid-pt-br.js
│   │   │   ├── jsgrid-pt.js
│   │   │   ├── jsgrid-ru.js
│   │   │   ├── jsgrid-tr.js
│   │   │   ├── jsgrid-zh-cn.js
│   │   │   └── jsgrid-zh-tw.js
│   │   ├── jsgrid-theme.css
│   │   ├── jsgrid.css
│   │   └── jsgrid.js
│   ├── jszip/
│   │   └── jszip.js
│   ├── moment/
│   │   ├── locale/
│   │   │   ├── af.js
│   │   │   ├── ar-dz.js
│   │   │   ├── ar-kw.js
│   │   │   ├── ar-ly.js
│   │   │   ├── ar-ma.js
│   │   │   ├── ar-sa.js
│   │   │   ├── ar-tn.js
│   │   │   ├── ar.js
│   │   │   ├── az.js
│   │   │   ├── be.js
│   │   │   ├── bg.js
│   │   │   ├── bm.js
│   │   │   ├── bn.js
│   │   │   ├── bo.js
│   │   │   ├── br.js
│   │   │   ├── bs.js
│   │   │   ├── ca.js
│   │   │   ├── cs.js
│   │   │   ├── cv.js
│   │   │   ├── cy.js
│   │   │   ├── da.js
│   │   │   ├── de-at.js
│   │   │   ├── de-ch.js
│   │   │   ├── de.js
│   │   │   ├── dv.js
│   │   │   ├── el.js
│   │   │   ├── en-SG.js
│   │   │   ├── en-au.js
│   │   │   ├── en-ca.js
│   │   │   ├── en-gb.js
│   │   │   ├── en-ie.js
│   │   │   ├── en-il.js
│   │   │   ├── en-nz.js
│   │   │   ├── eo.js
│   │   │   ├── es-do.js
│   │   │   ├── es-us.js
│   │   │   ├── es.js
│   │   │   ├── et.js
│   │   │   ├── eu.js
│   │   │   ├── fa.js
│   │   │   ├── fi.js
│   │   │   ├── fo.js
│   │   │   ├── fr-ca.js
│   │   │   ├── fr-ch.js
│   │   │   ├── fr.js
│   │   │   ├── fy.js
│   │   │   ├── ga.js
│   │   │   ├── gd.js
│   │   │   ├── gl.js
│   │   │   ├── gom-latn.js
│   │   │   ├── gu.js
│   │   │   ├── he.js
│   │   │   ├── hi.js
│   │   │   ├── hr.js
│   │   │   ├── hu.js
│   │   │   ├── hy-am.js
│   │   │   ├── id.js
│   │   │   ├── is.js
│   │   │   ├── it-ch.js
│   │   │   ├── it.js
│   │   │   ├── ja.js
│   │   │   ├── jv.js
│   │   │   ├── ka.js
│   │   │   ├── kk.js
│   │   │   ├── km.js
│   │   │   ├── kn.js
│   │   │   ├── ko.js
│   │   │   ├── ku.js
│   │   │   ├── ky.js
│   │   │   ├── lb.js
│   │   │   ├── lo.js
│   │   │   ├── lt.js
│   │   │   ├── lv.js
│   │   │   ├── me.js
│   │   │   ├── mi.js
│   │   │   ├── mk.js
│   │   │   ├── ml.js
│   │   │   ├── mn.js
│   │   │   ├── mr.js
│   │   │   ├── ms-my.js
│   │   │   ├── ms.js
│   │   │   ├── mt.js
│   │   │   ├── my.js
│   │   │   ├── nb.js
│   │   │   ├── ne.js
│   │   │   ├── nl-be.js
│   │   │   ├── nl.js
│   │   │   ├── nn.js
│   │   │   ├── pa-in.js
│   │   │   ├── pl.js
│   │   │   ├── pt-br.js
│   │   │   ├── pt.js
│   │   │   ├── ro.js
│   │   │   ├── ru.js
│   │   │   ├── sd.js
│   │   │   ├── se.js
│   │   │   ├── si.js
│   │   │   ├── sk.js
│   │   │   ├── sl.js
│   │   │   ├── sq.js
│   │   │   ├── sr-cyrl.js
│   │   │   ├── sr.js
│   │   │   ├── ss.js
│   │   │   ├── sv.js
│   │   │   ├── sw.js
│   │   │   ├── ta.js
│   │   │   ├── te.js
│   │   │   ├── tet.js
│   │   │   ├── tg.js
│   │   │   ├── th.js
│   │   │   ├── tl-ph.js
│   │   │   ├── tlh.js
│   │   │   ├── tr.js
│   │   │   ├── tzl.js
│   │   │   ├── tzm-latn.js
│   │   │   ├── tzm.js
│   │   │   ├── ug-cn.js
│   │   │   ├── uk.js
│   │   │   ├── ur.js
│   │   │   ├── uz-latn.js
│   │   │   ├── uz.js
│   │   │   ├── vi.js
│   │   │   ├── x-pseudo.js
│   │   │   ├── yo.js
│   │   │   ├── zh-cn.js
│   │   │   ├── zh-hk.js
│   │   │   └── zh-tw.js
│   │   ├── locales.js
│   │   └── moment-with-locales.js
│   ├── overlayScrollbars/
│   │   ├── css/
│   │   │   └── OverlayScrollbars.css
│   │   └── js/
│   │       ├── OverlayScrollbars.js
│   │       └── jquery.overlayScrollbars.js
│   ├── pace-progress/
│   │   ├── pace.js
│   │   └── themes/
│   │       ├── black/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── blue/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── green/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── orange/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── pink/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── purple/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── red/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── silver/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── white/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       └── yellow/
│   │           ├── pace-theme-barber-shop.css
│   │           ├── pace-theme-big-counter.css
│   │           ├── pace-theme-bounce.css
│   │           ├── pace-theme-center-atom.css
│   │           ├── pace-theme-center-circle.css
│   │           ├── pace-theme-center-radar.css
│   │           ├── pace-theme-center-simple.css
│   │           ├── pace-theme-corner-indicator.css
│   │           ├── pace-theme-fill-left.css
│   │           ├── pace-theme-flash.css
│   │           ├── pace-theme-flat-top.css
│   │           ├── pace-theme-loading-bar.css
│   │           ├── pace-theme-mac-osx.css
│   │           ├── pace-theme-material.css
│   │           └── pace-theme-minimal.css
│   ├── package.json
│   ├── pdfmake/
│   │   ├── pdfmake.js
│   │   └── vfs_fonts.js
│   ├── popper/
│   │   ├── esm/
│   │   │   ├── popper-utils.js
│   │   │   └── popper.js
│   │   ├── popper-utils.js
│   │   ├── popper.js
│   │   └── umd/
│   │       ├── popper-utils.js
│   │       ├── popper.js
│   │       └── popper.js.flow
│   ├── raphael/
│   │   ├── Gruntfile.js
│   │   ├── bower.json
│   │   ├── dev/
│   │   │   ├── banner.txt
│   │   │   ├── raphael.amd.js
│   │   │   ├── raphael.core.js
│   │   │   ├── raphael.svg.js
│   │   │   ├── raphael.vml.js
│   │   │   ├── raphaelTest.html
│   │   │   └── test/
│   │   │       ├── index.html
│   │   │       ├── svg/
│   │   │       │   └── dom.js
│   │   │       └── vml/
│   │   │           └── dom.js
│   │   ├── license.txt
│   │   ├── raphael.js
│   │   ├── raphael.no-deps.js
│   │   └── webpack.config.js
│   ├── select2/
│   │   ├── css/
│   │   │   └── select2.css
│   │   └── js/
│   │       ├── i18n/
│   │       │   ├── af.js
│   │       │   ├── ar.js
│   │       │   ├── az.js
│   │       │   ├── bg.js
│   │       │   ├── bn.js
│   │       │   ├── bs.js
│   │       │   ├── build.txt
│   │       │   ├── ca.js
│   │       │   ├── cs.js
│   │       │   ├── da.js
│   │       │   ├── de.js
│   │       │   ├── dsb.js
│   │       │   ├── el.js
│   │       │   ├── en.js
│   │       │   ├── es.js
│   │       │   ├── et.js
│   │       │   ├── eu.js
│   │       │   ├── fa.js
│   │       │   ├── fi.js
│   │       │   ├── fr.js
│   │       │   ├── gl.js
│   │       │   ├── he.js
│   │       │   ├── hi.js
│   │       │   ├── hr.js
│   │       │   ├── hsb.js
│   │       │   ├── hu.js
│   │       │   ├── hy.js
│   │       │   ├── id.js
│   │       │   ├── is.js
│   │       │   ├── it.js
│   │       │   ├── ja.js
│   │       │   ├── ka.js
│   │       │   ├── km.js
│   │       │   ├── ko.js
│   │       │   ├── lt.js
│   │       │   ├── lv.js
│   │       │   ├── mk.js
│   │       │   ├── ms.js
│   │       │   ├── nb.js
│   │       │   ├── ne.js
│   │       │   ├── nl.js
│   │       │   ├── pl.js
│   │       │   ├── ps.js
│   │       │   ├── pt-BR.js
│   │       │   ├── pt.js
│   │       │   ├── ro.js
│   │       │   ├── ru.js
│   │       │   ├── sk.js
│   │       │   ├── sl.js
│   │       │   ├── sq.js
│   │       │   ├── sr-Cyrl.js
│   │       │   ├── sr.js
│   │       │   ├── sv.js
│   │       │   ├── th.js
│   │       │   ├── tk.js
│   │       │   ├── tr.js
│   │       │   ├── uk.js
│   │       │   ├── vi.js
│   │       │   ├── zh-CN.js
│   │       │   └── zh-TW.js
│   │       ├── select2.full.js
│   │       └── select2.js
│   ├── select2-bootstrap4-theme/
│   │   └── select2-bootstrap4.css
│   ├── sparklines/
│   │   └── sparkline.js
│   ├── summernote/
│   │   ├── lang/
│   │   │   ├── summernote-ar-AR.js
│   │   │   ├── summernote-bg-BG.js
│   │   │   ├── summernote-ca-ES.js
│   │   │   ├── summernote-cs-CZ.js
│   │   │   ├── summernote-da-DK.js
│   │   │   ├── summernote-de-DE.js
│   │   │   ├── summernote-el-GR.js
│   │   │   ├── summernote-es-ES.js
│   │   │   ├── summernote-es-EU.js
│   │   │   ├── summernote-fa-IR.js
│   │   │   ├── summernote-fi-FI.js
│   │   │   ├── summernote-fr-FR.js
│   │   │   ├── summernote-gl-ES.js
│   │   │   ├── summernote-he-IL.js
│   │   │   ├── summernote-hr-HR.js
│   │   │   ├── summernote-hu-HU.js
│   │   │   ├── summernote-id-ID.js
│   │   │   ├── summernote-it-IT.js
│   │   │   ├── summernote-ja-JP.js
│   │   │   ├── summernote-ko-KR.js
│   │   │   ├── summernote-lt-LT.js
│   │   │   ├── summernote-lt-LV.js
│   │   │   ├── summernote-mn-MN.js
│   │   │   ├── summernote-nb-NO.js
│   │   │   ├── summernote-nl-NL.js
│   │   │   ├── summernote-pl-PL.js
│   │   │   ├── summernote-pt-BR.js
│   │   │   ├── summernote-pt-PT.js
│   │   │   ├── summernote-ro-RO.js
│   │   │   ├── summernote-ru-RU.js
│   │   │   ├── summernote-sk-SK.js
│   │   │   ├── summernote-sl-SI.js
│   │   │   ├── summernote-sr-RS-Latin.js
│   │   │   ├── summernote-sr-RS.js
│   │   │   ├── summernote-sv-SE.js
│   │   │   ├── summernote-ta-IN.js
│   │   │   ├── summernote-th-TH.js
│   │   │   ├── summernote-tr-TR.js
│   │   │   ├── summernote-uk-UA.js
│   │   │   ├── summernote-uz-UZ.js
│   │   │   ├── summernote-vi-VN.js
│   │   │   ├── summernote-zh-CN.js
│   │   │   └── summernote-zh-TW.js
│   │   ├── summernote-bs4.css
│   │   ├── summernote-bs4.js
│   │   ├── summernote-lite.css
│   │   ├── summernote-lite.js
│   │   ├── summernote.css
│   │   └── summernote.js
│   ├── sweetalert2/
│   │   ├── sweetalert2.all.js
│   │   ├── sweetalert2.css
│   │   └── sweetalert2.js
│   ├── sweetalert2-theme-bootstrap-4/
│   │   ├── bootstrap-4.css
│   │   └── bootstrap-4.scss
│   ├── tempusdominus-bootstrap-4/
│   │   ├── css/
│   │   │   └── tempusdominus-bootstrap-4.css
│   │   └── js/
│   │       └── tempusdominus-bootstrap-4.js
│   └── toastr/
│       └── toastr.css
├── student_management_app/
│   ├── EditResultVIewClass.py
│   ├── EmailBackEnd.py
│   ├── HodViews.py
│   ├── LoginCheckMiddleWare.py
│   ├── StaffViews.py
│   ├── StudentViews.py
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── migrations/
│   │   ├── 0001_initial.py
│   │   ├── 0002_onlineclassroom.py
│   │   ├── 0003_alter_customuser_first_name.py
│   │   ├── 0004_alter_customuser_id.py
│   │   └── __init__.py
│   ├── models.py
│   ├── static/
│   │   ├── others/
│   │   │   └── socket.io.js
│   │   └── plugins/
│   │       ├── .npmignore
│   │       ├── bootstrap/
│   │       │   └── js/
│   │       │       ├── bootstrap.bundle.js
│   │       │       └── bootstrap.js
│   │       ├── bootstrap-colorpicker/
│   │       │   ├── css/
│   │       │   │   └── bootstrap-colorpicker.css
│   │       │   └── js/
│   │       │       └── bootstrap-colorpicker.js
│   │       ├── bootstrap-slider/
│   │       │   ├── bootstrap-slider.js
│   │       │   └── css/
│   │       │       └── bootstrap-slider.css
│   │       ├── bootstrap-switch/
│   │       │   ├── css/
│   │       │   │   ├── bootstrap2/
│   │       │   │   │   └── bootstrap-switch.css
│   │       │   │   └── bootstrap3/
│   │       │   │       └── bootstrap-switch.css
│   │       │   └── js/
│   │       │       └── bootstrap-switch.js
│   │       ├── bootstrap4-duallistbox/
│   │       │   ├── bootstrap-duallistbox.css
│   │       │   └── jquery.bootstrap-duallistbox.js
│   │       ├── bs-custom-file-input/
│   │       │   └── bs-custom-file-input.js
│   │       ├── chart.js/
│   │       │   ├── Chart.bundle.js
│   │       │   ├── Chart.css
│   │       │   └── Chart.js
│   │       ├── datatables/
│   │       │   └── jquery.dataTables.js
│   │       ├── datatables-autofill/
│   │       │   ├── css/
│   │       │   │   └── autoFill.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── autoFill.bootstrap4.js
│   │       │       └── dataTables.autoFill.js
│   │       ├── datatables-bs4/
│   │       │   ├── css/
│   │       │   │   └── dataTables.bootstrap4.css
│   │       │   └── js/
│   │       │       └── dataTables.bootstrap4.js
│   │       ├── datatables-buttons/
│   │       │   ├── css/
│   │       │   │   └── buttons.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── buttons.bootstrap4.js
│   │       │       ├── buttons.colVis.js
│   │       │       ├── buttons.flash.js
│   │       │       ├── buttons.html5.js
│   │       │       ├── buttons.print.js
│   │       │       └── dataTables.buttons.js
│   │       ├── datatables-colreorder/
│   │       │   ├── css/
│   │       │   │   └── colReorder.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── colReorder.bootstrap4.js
│   │       │       └── dataTables.colReorder.js
│   │       ├── datatables-fixedcolumns/
│   │       │   ├── css/
│   │       │   │   └── fixedColumns.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.fixedColumns.js
│   │       │       └── fixedColumns.bootstrap4.js
│   │       ├── datatables-fixedheader/
│   │       │   ├── css/
│   │       │   │   └── fixedHeader.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.fixedHeader.js
│   │       │       └── fixedHeader.bootstrap4.js
│   │       ├── datatables-keytable/
│   │       │   ├── css/
│   │       │   │   └── keyTable.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.keyTable.js
│   │       │       └── keyTable.bootstrap4.js
│   │       ├── datatables-responsive/
│   │       │   ├── css/
│   │       │   │   └── responsive.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.responsive.js
│   │       │       └── responsive.bootstrap4.js
│   │       ├── datatables-rowgroup/
│   │       │   ├── css/
│   │       │   │   └── rowGroup.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.rowGroup.js
│   │       │       └── rowGroup.bootstrap4.js
│   │       ├── datatables-rowreorder/
│   │       │   ├── css/
│   │       │   │   └── rowReorder.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.rowReorder.js
│   │       │       └── rowReorder.bootstrap4.js
│   │       ├── datatables-scroller/
│   │       │   ├── css/
│   │       │   │   └── scroller.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.scroller.js
│   │       │       └── scroller.bootstrap4.js
│   │       ├── datatables-select/
│   │       │   ├── css/
│   │       │   │   └── select.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.select.js
│   │       │       └── select.bootstrap4.js
│   │       ├── daterangepicker/
│   │       │   ├── bower.json
│   │       │   ├── daterangepicker.css
│   │       │   ├── daterangepicker.js
│   │       │   ├── example/
│   │       │   │   ├── amd/
│   │       │   │   │   ├── index.html
│   │       │   │   │   ├── main.js
│   │       │   │   │   └── require.js
│   │       │   │   └── browserify/
│   │       │   │       ├── README.md
│   │       │   │       ├── bundle.js
│   │       │   │       ├── index.html
│   │       │   │       └── main.js
│   │       │   ├── package.js
│   │       │   ├── website/
│   │       │   │   ├── index.html
│   │       │   │   ├── website.css
│   │       │   │   └── website.js
│   │       │   ├── website.css
│   │       │   └── website.js
│   │       ├── ekko-lightbox/
│   │       │   ├── ekko-lightbox.css
│   │       │   └── ekko-lightbox.js
│   │       ├── fastclick/
│   │       │   └── fastclick.js
│   │       ├── filterizr/
│   │       │   ├── ActiveFilter.d.ts
│   │       │   ├── BrowserWindow.d.ts
│   │       │   ├── EventReceiver.d.ts
│   │       │   ├── FilterContainer/
│   │       │   │   ├── FilterContainer.d.ts
│   │       │   │   ├── StyledFilterContainer.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── styles.d.ts
│   │       │   ├── FilterContainer.d.ts
│   │       │   ├── FilterControls.d.ts
│   │       │   ├── FilterItem/
│   │       │   │   ├── FilterItem.d.ts
│   │       │   │   ├── StyledFilterItem.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── styles.d.ts
│   │       │   ├── FilterItem.d.ts
│   │       │   ├── FilterItems/
│   │       │   │   ├── FilterItems.d.ts
│   │       │   │   ├── StyledFilterItems.d.ts
│   │       │   │   └── index.d.ts
│   │       │   ├── FilterItems.d.ts
│   │       │   ├── Filterizr/
│   │       │   │   ├── Filterizr.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── installAsJQueryPlugin.d.ts
│   │       │   ├── Filterizr.d.ts
│   │       │   ├── FilterizrElement.d.ts
│   │       │   ├── FilterizrOptions/
│   │       │   │   ├── FilterizrOptions.d.ts
│   │       │   │   ├── defaultOptions.d.ts
│   │       │   │   └── index.d.ts
│   │       │   ├── Spinner/
│   │       │   │   ├── Spinner.d.ts
│   │       │   │   ├── StyledSpinner.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── makeSpinner.d.ts
│   │       │   ├── StyledFilterizrElement.d.ts
│   │       │   ├── StyledFilterizrElements.d.ts
│   │       │   ├── animate.d.ts
│   │       │   ├── config/
│   │       │   │   ├── cssEasingValuesRegexp.d.ts
│   │       │   │   ├── filterizrState.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── layout.d.ts
│   │       │   ├── getLayoutPositions.d.ts
│   │       │   ├── index.d.ts
│   │       │   ├── index.jquery.d.ts
│   │       │   ├── installAsJQueryPlugin.d.ts
│   │       │   ├── layouts/
│   │       │   │   ├── Packer.d.ts
│   │       │   │   ├── getHorizontalLayoutPositions.d.ts
│   │       │   │   ├── getPackedLayoutPositions.d.ts
│   │       │   │   ├── getSameHeightLayoutPositions.d.ts
│   │       │   │   ├── getSameSizeLayoutPosition.d.ts
│   │       │   │   ├── getSameWidthLayoutPositions.d.ts
│   │       │   │   └── getVerticalLayoutPositions.d.ts
│   │       │   ├── makeLayoutPositions/
│   │       │   │   ├── Packer.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   ├── makeHorizontalLayoutPositions.d.ts
│   │       │   │   ├── makeLayoutPositions.d.ts
│   │       │   │   ├── makePackedLayoutPositions.d.ts
│   │       │   │   ├── makeSameHeightLayoutPositions.d.ts
│   │       │   │   ├── makeSameSizeLayoutPosition.d.ts
│   │       │   │   ├── makeSameWidthLayoutPositions.d.ts
│   │       │   │   └── makeVerticalLayoutPositions.d.ts
│   │       │   ├── types/
│   │       │   │   ├── index.d.ts
│   │       │   │   └── interfaces/
│   │       │   │       ├── BaseOptions.d.ts
│   │       │   │       ├── ContainerLayout.d.ts
│   │       │   │       ├── Destructible.d.ts
│   │       │   │       ├── Dictionary.d.ts
│   │       │   │       ├── Dimensions.d.ts
│   │       │   │       ├── Options.d.ts
│   │       │   │       ├── Position.d.ts
│   │       │   │       ├── RawOptions.d.ts
│   │       │   │       ├── RawOptionsCallbacks.d.ts
│   │       │   │       ├── Resizable.d.ts
│   │       │   │       ├── SpinnerOptions.d.ts
│   │       │   │       ├── Styleable.d.ts
│   │       │   │       └── index.d.ts
│   │       │   ├── utils/
│   │       │   │   ├── allStringsOfArray1InArray2.d.ts
│   │       │   │   ├── checkOptionForErrors.d.ts
│   │       │   │   ├── debounce.d.ts
│   │       │   │   ├── filterItemArraysHaveSameSorting.d.ts
│   │       │   │   ├── getDataAttributesOfHTMLNode.d.ts
│   │       │   │   ├── getHTMLElement.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   ├── intersection.d.ts
│   │       │   │   ├── merge.d.ts
│   │       │   │   ├── noop.d.ts
│   │       │   │   ├── setStyles.d.ts
│   │       │   │   ├── shuffle.d.ts
│   │       │   │   └── sortBy.d.ts
│   │       │   └── utils.d.ts
│   │       ├── flag-icon-css/
│   │       │   └── css/
│   │       │       └── flag-icon.css
│   │       ├── flot/
│   │       │   └── jquery.flot.js
│   │       ├── flot-old/
│   │       │   ├── excanvas.js
│   │       │   ├── jquery.colorhelpers.js
│   │       │   ├── jquery.flot.canvas.js
│   │       │   ├── jquery.flot.categories.js
│   │       │   ├── jquery.flot.crosshair.js
│   │       │   ├── jquery.flot.errorbars.js
│   │       │   ├── jquery.flot.fillbetween.js
│   │       │   ├── jquery.flot.image.js
│   │       │   ├── jquery.flot.js
│   │       │   ├── jquery.flot.navigate.js
│   │       │   ├── jquery.flot.pie.js
│   │       │   ├── jquery.flot.resize.js
│   │       │   ├── jquery.flot.selection.js
│   │       │   ├── jquery.flot.stack.js
│   │       │   ├── jquery.flot.symbol.js
│   │       │   ├── jquery.flot.threshold.js
│   │       │   └── jquery.flot.time.js
│   │       ├── fontawesome-free/
│   │       │   └── css/
│   │       │       ├── all.css
│   │       │       ├── brands.css
│   │       │       ├── fontawesome.css
│   │       │       ├── regular.css
│   │       │       ├── solid.css
│   │       │       ├── svg-with-js.css
│   │       │       └── v4-shims.css
│   │       ├── fullcalendar/
│   │       │   ├── LICENSE.txt
│   │       │   ├── locales/
│   │       │   │   ├── af.js
│   │       │   │   ├── ar-dz.js
│   │       │   │   ├── ar-kw.js
│   │       │   │   ├── ar-ly.js
│   │       │   │   ├── ar-ma.js
│   │       │   │   ├── ar-sa.js
│   │       │   │   ├── ar-tn.js
│   │       │   │   ├── ar.js
│   │       │   │   ├── bg.js
│   │       │   │   ├── bs.js
│   │       │   │   ├── ca.js
│   │       │   │   ├── cs.js
│   │       │   │   ├── da.js
│   │       │   │   ├── de.js
│   │       │   │   ├── el.js
│   │       │   │   ├── en-au.js
│   │       │   │   ├── en-gb.js
│   │       │   │   ├── en-nz.js
│   │       │   │   ├── es-us.js
│   │       │   │   ├── es.js
│   │       │   │   ├── et.js
│   │       │   │   ├── eu.js
│   │       │   │   ├── fa.js
│   │       │   │   ├── fi.js
│   │       │   │   ├── fr-ca.js
│   │       │   │   ├── fr-ch.js
│   │       │   │   ├── fr.js
│   │       │   │   ├── gl.js
│   │       │   │   ├── he.js
│   │       │   │   ├── hi.js
│   │       │   │   ├── hr.js
│   │       │   │   ├── hu.js
│   │       │   │   ├── id.js
│   │       │   │   ├── is.js
│   │       │   │   ├── it.js
│   │       │   │   ├── ja.js
│   │       │   │   ├── ka.js
│   │       │   │   ├── kk.js
│   │       │   │   ├── ko.js
│   │       │   │   ├── lb.js
│   │       │   │   ├── lt.js
│   │       │   │   ├── lv.js
│   │       │   │   ├── mk.js
│   │       │   │   ├── ms.js
│   │       │   │   ├── nb.js
│   │       │   │   ├── nl.js
│   │       │   │   ├── nn.js
│   │       │   │   ├── pl.js
│   │       │   │   ├── pt-br.js
│   │       │   │   ├── pt.js
│   │       │   │   ├── ro.js
│   │       │   │   ├── ru.js
│   │       │   │   ├── sk.js
│   │       │   │   ├── sl.js
│   │       │   │   ├── sq.js
│   │       │   │   ├── sr-cyrl.js
│   │       │   │   ├── sr.js
│   │       │   │   ├── sv.js
│   │       │   │   ├── th.js
│   │       │   │   ├── tr.js
│   │       │   │   ├── uk.js
│   │       │   │   ├── vi.js
│   │       │   │   ├── zh-cn.js
│   │       │   │   └── zh-tw.js
│   │       │   ├── locales-all.js
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-bootstrap/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-daygrid/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-interaction/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-timegrid/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── icheck-bootstrap/
│   │       │   ├── LICENSE
│   │       │   └── icheck-bootstrap.css
│   │       ├── inputmask/
│   │       │   ├── inputmask/
│   │       │   │   ├── bindings/
│   │       │   │   │   └── inputmask.binding.js
│   │       │   │   ├── dependencyLibs/
│   │       │   │   │   ├── inputmask.dependencyLib.jqlite.js
│   │       │   │   │   ├── inputmask.dependencyLib.jquery.js
│   │       │   │   │   └── inputmask.dependencyLib.js
│   │       │   │   ├── global/
│   │       │   │   │   └── window.js
│   │       │   │   ├── inputmask.date.extensions.js
│   │       │   │   ├── inputmask.extensions.js
│   │       │   │   ├── inputmask.js
│   │       │   │   ├── inputmask.numeric.extensions.js
│   │       │   │   └── jquery.inputmask.js
│   │       │   └── jquery.inputmask.bundle.js
│   │       ├── ion-rangeslider/
│   │       │   ├── .editorconfig
│   │       │   ├── css/
│   │       │   │   └── ion.rangeSlider.css
│   │       │   ├── js/
│   │       │   │   └── ion.rangeSlider.js
│   │       │   └── less/
│   │       │       ├── _base.less
│   │       │       ├── _mixins.less
│   │       │       ├── irs.less
│   │       │       └── skins/
│   │       │           ├── big.less
│   │       │           ├── flat.less
│   │       │           ├── modern.less
│   │       │           ├── round.less
│   │       │           ├── sharp.less
│   │       │           └── square.less
│   │       ├── jquery/
│   │       │   ├── core.js
│   │       │   ├── jquery.js
│   │       │   └── jquery.slim.js
│   │       ├── jquery-mapael/
│   │       │   ├── jquery.mapael.js
│   │       │   └── maps/
│   │       │       ├── README.txt
│   │       │       ├── france_departments.js
│   │       │       ├── usa_states.js
│   │       │       ├── world_countries.js
│   │       │       ├── world_countries_mercator.js
│   │       │       └── world_countries_miller.js
│   │       ├── jquery-mousewheel/
│   │       │   ├── LICENSE.txt
│   │       │   └── jquery.mousewheel.js
│   │       ├── jquery-ui/
│   │       │   ├── AUTHORS.txt
│   │       │   ├── LICENSE.txt
│   │       │   ├── external/
│   │       │   │   └── jquery/
│   │       │   │       └── jquery.js
│   │       │   ├── jquery-ui.css
│   │       │   ├── jquery-ui.js
│   │       │   ├── jquery-ui.structure.css
│   │       │   └── jquery-ui.theme.css
│   │       ├── jquery-validation/
│   │       │   ├── additional-methods.js
│   │       │   ├── jquery.validate.js
│   │       │   └── localization/
│   │       │       ├── messages_ar.js
│   │       │       ├── messages_az.js
│   │       │       ├── messages_bg.js
│   │       │       ├── messages_bn_BD.js
│   │       │       ├── messages_ca.js
│   │       │       ├── messages_cs.js
│   │       │       ├── messages_da.js
│   │       │       ├── messages_de.js
│   │       │       ├── messages_el.js
│   │       │       ├── messages_es.js
│   │       │       ├── messages_es_AR.js
│   │       │       ├── messages_es_PE.js
│   │       │       ├── messages_et.js
│   │       │       ├── messages_eu.js
│   │       │       ├── messages_fa.js
│   │       │       ├── messages_fi.js
│   │       │       ├── messages_fr.js
│   │       │       ├── messages_ge.js
│   │       │       ├── messages_gl.js
│   │       │       ├── messages_he.js
│   │       │       ├── messages_hr.js
│   │       │       ├── messages_hu.js
│   │       │       ├── messages_hy_AM.js
│   │       │       ├── messages_id.js
│   │       │       ├── messages_is.js
│   │       │       ├── messages_it.js
│   │       │       ├── messages_ja.js
│   │       │       ├── messages_ka.js
│   │       │       ├── messages_kk.js
│   │       │       ├── messages_ko.js
│   │       │       ├── messages_lt.js
│   │       │       ├── messages_lv.js
│   │       │       ├── messages_mk.js
│   │       │       ├── messages_my.js
│   │       │       ├── messages_nl.js
│   │       │       ├── messages_no.js
│   │       │       ├── messages_pl.js
│   │       │       ├── messages_pt_BR.js
│   │       │       ├── messages_pt_PT.js
│   │       │       ├── messages_ro.js
│   │       │       ├── messages_ru.js
│   │       │       ├── messages_sd.js
│   │       │       ├── messages_si.js
│   │       │       ├── messages_sk.js
│   │       │       ├── messages_sl.js
│   │       │       ├── messages_sr.js
│   │       │       ├── messages_sr_lat.js
│   │       │       ├── messages_sv.js
│   │       │       ├── messages_th.js
│   │       │       ├── messages_tj.js
│   │       │       ├── messages_tr.js
│   │       │       ├── messages_uk.js
│   │       │       ├── messages_ur.js
│   │       │       ├── messages_vi.js
│   │       │       ├── messages_zh.js
│   │       │       ├── messages_zh_TW.js
│   │       │       ├── methods_de.js
│   │       │       ├── methods_es_CL.js
│   │       │       ├── methods_fi.js
│   │       │       ├── methods_it.js
│   │       │       ├── methods_nl.js
│   │       │       └── methods_pt.js
│   │       ├── jqvmap/
│   │       │   ├── jquery.vmap.js
│   │       │   ├── jqvmap.css
│   │       │   └── maps/
│   │       │       ├── continents/
│   │       │       │   ├── jquery.vmap.africa.js
│   │       │       │   ├── jquery.vmap.asia.js
│   │       │       │   ├── jquery.vmap.australia.js
│   │       │       │   ├── jquery.vmap.europe.js
│   │       │       │   ├── jquery.vmap.north-america.js
│   │       │       │   └── jquery.vmap.south-america.js
│   │       │       ├── jquery.vmap.algeria.js
│   │       │       ├── jquery.vmap.argentina.js
│   │       │       ├── jquery.vmap.brazil.js
│   │       │       ├── jquery.vmap.canada.js
│   │       │       ├── jquery.vmap.croatia.js
│   │       │       ├── jquery.vmap.europe.js
│   │       │       ├── jquery.vmap.france.js
│   │       │       ├── jquery.vmap.germany.js
│   │       │       ├── jquery.vmap.greece.js
│   │       │       ├── jquery.vmap.indonesia.js
│   │       │       ├── jquery.vmap.iran.js
│   │       │       ├── jquery.vmap.iraq.js
│   │       │       ├── jquery.vmap.new_regions_france.js
│   │       │       ├── jquery.vmap.russia.js
│   │       │       ├── jquery.vmap.serbia.js
│   │       │       ├── jquery.vmap.tunisia.js
│   │       │       ├── jquery.vmap.turkey.js
│   │       │       ├── jquery.vmap.ukraine.js
│   │       │       ├── jquery.vmap.usa.counties.js
│   │       │       ├── jquery.vmap.usa.districts.js
│   │       │       ├── jquery.vmap.usa.js
│   │       │       └── jquery.vmap.world.js
│   │       ├── jsgrid/
│   │       │   ├── demos/
│   │       │   │   ├── basic.html
│   │       │   │   ├── batch-delete.html
│   │       │   │   ├── custom-grid-field.html
│   │       │   │   ├── custom-load-indicator.html
│   │       │   │   ├── custom-row-renderer.html
│   │       │   │   ├── custom-view.html
│   │       │   │   ├── data-manipulation.html
│   │       │   │   ├── db.js
│   │       │   │   ├── demos.css
│   │       │   │   ├── external-pager.html
│   │       │   │   ├── index.html
│   │       │   │   ├── loading-by-page.html
│   │       │   │   ├── localization.html
│   │       │   │   ├── odata-service.html
│   │       │   │   ├── rows-reordering.html
│   │       │   │   ├── sorting.html
│   │       │   │   ├── static-data.html
│   │       │   │   └── validation.html
│   │       │   ├── i18n/
│   │       │   │   ├── jsgrid-de.js
│   │       │   │   ├── jsgrid-es.js
│   │       │   │   ├── jsgrid-fr.js
│   │       │   │   ├── jsgrid-he.js
│   │       │   │   ├── jsgrid-ja.js
│   │       │   │   ├── jsgrid-ka.js
│   │       │   │   ├── jsgrid-pl.js
│   │       │   │   ├── jsgrid-pt-br.js
│   │       │   │   ├── jsgrid-pt.js
│   │       │   │   ├── jsgrid-ru.js
│   │       │   │   ├── jsgrid-tr.js
│   │       │   │   ├── jsgrid-zh-cn.js
│   │       │   │   └── jsgrid-zh-tw.js
│   │       │   ├── jsgrid-theme.css
│   │       │   ├── jsgrid.css
│   │       │   └── jsgrid.js
│   │       ├── jszip/
│   │       │   └── jszip.js
│   │       ├── moment/
│   │       │   ├── locale/
│   │       │   │   ├── af.js
│   │       │   │   ├── ar-dz.js
│   │       │   │   ├── ar-kw.js
│   │       │   │   ├── ar-ly.js
│   │       │   │   ├── ar-ma.js
│   │       │   │   ├── ar-sa.js
│   │       │   │   ├── ar-tn.js
│   │       │   │   ├── ar.js
│   │       │   │   ├── az.js
│   │       │   │   ├── be.js
│   │       │   │   ├── bg.js
│   │       │   │   ├── bm.js
│   │       │   │   ├── bn.js
│   │       │   │   ├── bo.js
│   │       │   │   ├── br.js
│   │       │   │   ├── bs.js
│   │       │   │   ├── ca.js
│   │       │   │   ├── cs.js
│   │       │   │   ├── cv.js
│   │       │   │   ├── cy.js
│   │       │   │   ├── da.js
│   │       │   │   ├── de-at.js
│   │       │   │   ├── de-ch.js
│   │       │   │   ├── de.js
│   │       │   │   ├── dv.js
│   │       │   │   ├── el.js
│   │       │   │   ├── en-SG.js
│   │       │   │   ├── en-au.js
│   │       │   │   ├── en-ca.js
│   │       │   │   ├── en-gb.js
│   │       │   │   ├── en-ie.js
│   │       │   │   ├── en-il.js
│   │       │   │   ├── en-nz.js
│   │       │   │   ├── eo.js
│   │       │   │   ├── es-do.js
│   │       │   │   ├── es-us.js
│   │       │   │   ├── es.js
│   │       │   │   ├── et.js
│   │       │   │   ├── eu.js
│   │       │   │   ├── fa.js
│   │       │   │   ├── fi.js
│   │       │   │   ├── fo.js
│   │       │   │   ├── fr-ca.js
│   │       │   │   ├── fr-ch.js
│   │       │   │   ├── fr.js
│   │       │   │   ├── fy.js
│   │       │   │   ├── ga.js
│   │       │   │   ├── gd.js
│   │       │   │   ├── gl.js
│   │       │   │   ├── gom-latn.js
│   │       │   │   ├── gu.js
│   │       │   │   ├── he.js
│   │       │   │   ├── hi.js
│   │       │   │   ├── hr.js
│   │       │   │   ├── hu.js
│   │       │   │   ├── hy-am.js
│   │       │   │   ├── id.js
│   │       │   │   ├── is.js
│   │       │   │   ├── it-ch.js
│   │       │   │   ├── it.js
│   │       │   │   ├── ja.js
│   │       │   │   ├── jv.js
│   │       │   │   ├── ka.js
│   │       │   │   ├── kk.js
│   │       │   │   ├── km.js
│   │       │   │   ├── kn.js
│   │       │   │   ├── ko.js
│   │       │   │   ├── ku.js
│   │       │   │   ├── ky.js
│   │       │   │   ├── lb.js
│   │       │   │   ├── lo.js
│   │       │   │   ├── lt.js
│   │       │   │   ├── lv.js
│   │       │   │   ├── me.js
│   │       │   │   ├── mi.js
│   │       │   │   ├── mk.js
│   │       │   │   ├── ml.js
│   │       │   │   ├── mn.js
│   │       │   │   ├── mr.js
│   │       │   │   ├── ms-my.js
│   │       │   │   ├── ms.js
│   │       │   │   ├── mt.js
│   │       │   │   ├── my.js
│   │       │   │   ├── nb.js
│   │       │   │   ├── ne.js
│   │       │   │   ├── nl-be.js
│   │       │   │   ├── nl.js
│   │       │   │   ├── nn.js
│   │       │   │   ├── pa-in.js
│   │       │   │   ├── pl.js
│   │       │   │   ├── pt-br.js
│   │       │   │   ├── pt.js
│   │       │   │   ├── ro.js
│   │       │   │   ├── ru.js
│   │       │   │   ├── sd.js
│   │       │   │   ├── se.js
│   │       │   │   ├── si.js
│   │       │   │   ├── sk.js
│   │       │   │   ├── sl.js
│   │       │   │   ├── sq.js
│   │       │   │   ├── sr-cyrl.js
│   │       │   │   ├── sr.js
│   │       │   │   ├── ss.js
│   │       │   │   ├── sv.js
│   │       │   │   ├── sw.js
│   │       │   │   ├── ta.js
│   │       │   │   ├── te.js
│   │       │   │   ├── tet.js
│   │       │   │   ├── tg.js
│   │       │   │   ├── th.js
│   │       │   │   ├── tl-ph.js
│   │       │   │   ├── tlh.js
│   │       │   │   ├── tr.js
│   │       │   │   ├── tzl.js
│   │       │   │   ├── tzm-latn.js
│   │       │   │   ├── tzm.js
│   │       │   │   ├── ug-cn.js
│   │       │   │   ├── uk.js
│   │       │   │   ├── ur.js
│   │       │   │   ├── uz-latn.js
│   │       │   │   ├── uz.js
│   │       │   │   ├── vi.js
│   │       │   │   ├── x-pseudo.js
│   │       │   │   ├── yo.js
│   │       │   │   ├── zh-cn.js
│   │       │   │   ├── zh-hk.js
│   │       │   │   └── zh-tw.js
│   │       │   ├── locales.js
│   │       │   └── moment-with-locales.js
│   │       ├── overlayScrollbars/
│   │       │   ├── css/
│   │       │   │   └── OverlayScrollbars.css
│   │       │   └── js/
│   │       │       ├── OverlayScrollbars.js
│   │       │       └── jquery.overlayScrollbars.js
│   │       ├── pace-progress/
│   │       │   ├── pace.js
│   │       │   └── themes/
│   │       │       ├── black/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── blue/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── green/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── orange/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── pink/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── purple/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── red/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── silver/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── white/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       └── yellow/
│   │       │           ├── pace-theme-barber-shop.css
│   │       │           ├── pace-theme-big-counter.css
│   │       │           ├── pace-theme-bounce.css
│   │       │           ├── pace-theme-center-atom.css
│   │       │           ├── pace-theme-center-circle.css
│   │       │           ├── pace-theme-center-radar.css
│   │       │           ├── pace-theme-center-simple.css
│   │       │           ├── pace-theme-corner-indicator.css
│   │       │           ├── pace-theme-fill-left.css
│   │       │           ├── pace-theme-flash.css
│   │       │           ├── pace-theme-flat-top.css
│   │       │           ├── pace-theme-loading-bar.css
│   │       │           ├── pace-theme-mac-osx.css
│   │       │           ├── pace-theme-material.css
│   │       │           └── pace-theme-minimal.css
│   │       ├── pdfmake/
│   │       │   ├── pdfmake.js
│   │       │   └── vfs_fonts.js
│   │       ├── popper/
│   │       │   ├── esm/
│   │       │   │   ├── popper-utils.js
│   │       │   │   └── popper.js
│   │       │   ├── popper-utils.js
│   │       │   ├── popper.js
│   │       │   └── umd/
│   │       │       ├── popper-utils.js
│   │       │       ├── popper.js
│   │       │       └── popper.js.flow
│   │       ├── raphael/
│   │       │   ├── .eslintrc.js
│   │       │   ├── Gruntfile.js
│   │       │   ├── bower.json
│   │       │   ├── dev/
│   │       │   │   ├── banner.txt
│   │       │   │   ├── raphael.amd.js
│   │       │   │   ├── raphael.core.js
│   │       │   │   ├── raphael.svg.js
│   │       │   │   ├── raphael.vml.js
│   │       │   │   ├── raphaelTest.html
│   │       │   │   └── test/
│   │       │   │       ├── index.html
│   │       │   │       ├── svg/
│   │       │   │       │   └── dom.js
│   │       │   │       └── vml/
│   │       │   │           └── dom.js
│   │       │   ├── license.txt
│   │       │   ├── raphael.js
│   │       │   ├── raphael.no-deps.js
│   │       │   └── webpack.config.js
│   │       ├── select2/
│   │       │   ├── css/
│   │       │   │   └── select2.css
│   │       │   └── js/
│   │       │       ├── i18n/
│   │       │       │   ├── af.js
│   │       │       │   ├── ar.js
│   │       │       │   ├── az.js
│   │       │       │   ├── bg.js
│   │       │       │   ├── bn.js
│   │       │       │   ├── bs.js
│   │       │       │   ├── build.txt
│   │       │       │   ├── ca.js
│   │       │       │   ├── cs.js
│   │       │       │   ├── da.js
│   │       │       │   ├── de.js
│   │       │       │   ├── dsb.js
│   │       │       │   ├── el.js
│   │       │       │   ├── en.js
│   │       │       │   ├── es.js
│   │       │       │   ├── et.js
│   │       │       │   ├── eu.js
│   │       │       │   ├── fa.js
│   │       │       │   ├── fi.js
│   │       │       │   ├── fr.js
│   │       │       │   ├── gl.js
│   │       │       │   ├── he.js
│   │       │       │   ├── hi.js
│   │       │       │   ├── hr.js
│   │       │       │   ├── hsb.js
│   │       │       │   ├── hu.js
│   │       │       │   ├── hy.js
│   │       │       │   ├── id.js
│   │       │       │   ├── is.js
│   │       │       │   ├── it.js
│   │       │       │   ├── ja.js
│   │       │       │   ├── ka.js
│   │       │       │   ├── km.js
│   │       │       │   ├── ko.js
│   │       │       │   ├── lt.js
│   │       │       │   ├── lv.js
│   │       │       │   ├── mk.js
│   │       │       │   ├── ms.js
│   │       │       │   ├── nb.js
│   │       │       │   ├── ne.js
│   │       │       │   ├── nl.js
│   │       │       │   ├── pl.js
│   │       │       │   ├── ps.js
│   │       │       │   ├── pt-BR.js
│   │       │       │   ├── pt.js
│   │       │       │   ├── ro.js
│   │       │       │   ├── ru.js
│   │       │       │   ├── sk.js
│   │       │       │   ├── sl.js
│   │       │       │   ├── sq.js
│   │       │       │   ├── sr-Cyrl.js
│   │       │       │   ├── sr.js
│   │       │       │   ├── sv.js
│   │       │       │   ├── th.js
│   │       │       │   ├── tk.js
│   │       │       │   ├── tr.js
│   │       │       │   ├── uk.js
│   │       │       │   ├── vi.js
│   │       │       │   ├── zh-CN.js
│   │       │       │   └── zh-TW.js
│   │       │       ├── select2.full.js
│   │       │       └── select2.js
│   │       ├── select2-bootstrap4-theme/
│   │       │   └── select2-bootstrap4.css
│   │       ├── sparklines/
│   │       │   └── sparkline.js
│   │       ├── summernote/
│   │       │   ├── lang/
│   │       │   │   ├── summernote-ar-AR.js
│   │       │   │   ├── summernote-bg-BG.js
│   │       │   │   ├── summernote-ca-ES.js
│   │       │   │   ├── summernote-cs-CZ.js
│   │       │   │   ├── summernote-da-DK.js
│   │       │   │   ├── summernote-de-DE.js
│   │       │   │   ├── summernote-el-GR.js
│   │       │   │   ├── summernote-es-ES.js
│   │       │   │   ├── summernote-es-EU.js
│   │       │   │   ├── summernote-fa-IR.js
│   │       │   │   ├── summernote-fi-FI.js
│   │       │   │   ├── summernote-fr-FR.js
│   │       │   │   ├── summernote-gl-ES.js
│   │       │   │   ├── summernote-he-IL.js
│   │       │   │   ├── summernote-hr-HR.js
│   │       │   │   ├── summernote-hu-HU.js
│   │       │   │   ├── summernote-id-ID.js
│   │       │   │   ├── summernote-it-IT.js
│   │       │   │   ├── summernote-ja-JP.js
│   │       │   │   ├── summernote-ko-KR.js
│   │       │   │   ├── summernote-lt-LT.js
│   │       │   │   ├── summernote-lt-LV.js
│   │       │   │   ├── summernote-mn-MN.js
│   │       │   │   ├── summernote-nb-NO.js
│   │       │   │   ├── summernote-nl-NL.js
│   │       │   │   ├── summernote-pl-PL.js
│   │       │   │   ├── summernote-pt-BR.js
│   │       │   │   ├── summernote-pt-PT.js
│   │       │   │   ├── summernote-ro-RO.js
│   │       │   │   ├── summernote-ru-RU.js
│   │       │   │   ├── summernote-sk-SK.js
│   │       │   │   ├── summernote-sl-SI.js
│   │       │   │   ├── summernote-sr-RS-Latin.js
│   │       │   │   ├── summernote-sr-RS.js
│   │       │   │   ├── summernote-sv-SE.js
│   │       │   │   ├── summernote-ta-IN.js
│   │       │   │   ├── summernote-th-TH.js
│   │       │   │   ├── summernote-tr-TR.js
│   │       │   │   ├── summernote-uk-UA.js
│   │       │   │   ├── summernote-uz-UZ.js
│   │       │   │   ├── summernote-vi-VN.js
│   │       │   │   ├── summernote-zh-CN.js
│   │       │   │   └── summernote-zh-TW.js
│   │       │   ├── summernote-bs4.css
│   │       │   ├── summernote-bs4.js
│   │       │   ├── summernote-lite.css
│   │       │   ├── summernote-lite.js
│   │       │   ├── summernote.css
│   │       │   └── summernote.js
│   │       ├── sweetalert2/
│   │       │   ├── sweetalert2.all.js
│   │       │   ├── sweetalert2.css
│   │       │   └── sweetalert2.js
│   │       ├── sweetalert2-theme-bootstrap-4/
│   │       │   ├── bootstrap-4.css
│   │       │   └── bootstrap-4.scss
│   │       ├── tempusdominus-bootstrap-4/
│   │       │   ├── css/
│   │       │   │   └── tempusdominus-bootstrap-4.css
│   │       │   └── js/
│   │       │       └── tempusdominus-bootstrap-4.js
│   │       └── toastr/
│   │           └── toastr.css
│   ├── templates/
│   │   ├── demo.html
│   │   ├── hod_template/
│   │   │   ├── add_course_template.html
│   │   │   ├── add_staff_template.html
│   │   │   ├── add_student_template.html
│   │   │   ├── add_subject_template.html
│   │   │   ├── admin_profile.html
│   │   │   ├── admin_view_attendance.html
│   │   │   ├── base_template.html
│   │   │   ├── edit_course_template.html
│   │   │   ├── edit_staff_template.html
│   │   │   ├── edit_student_template.html
│   │   │   ├── edit_subject_template.html
│   │   │   ├── footer.html
│   │   │   ├── form_template.html
│   │   │   ├── home_content.html
│   │   │   ├── manage_course_template.html
│   │   │   ├── manage_session_template.html
│   │   │   ├── manage_staff_template.html
│   │   │   ├── manage_student_template.html
│   │   │   ├── manage_subject_template.html
│   │   │   ├── sidebar_template.html
│   │   │   ├── staff_feedback_template.html
│   │   │   ├── staff_leave_view.html
│   │   │   ├── staff_notification.html
│   │   │   ├── student_feedback_template.html
│   │   │   ├── student_leave_view.html
│   │   │   └── student_notification.html
│   │   ├── login_page.html
│   │   ├── registration/
│   │   │   ├── base.html
│   │   │   ├── password_reset_complete.html
│   │   │   ├── password_reset_confirm.html
│   │   │   ├── password_reset_done.html
│   │   │   ├── password_reset_email.html
│   │   │   └── password_reset_form.html
│   │   ├── signup_admin_page.html
│   │   ├── signup_staff_page.html
│   │   ├── signup_student_page.html
│   │   ├── staff_template/
│   │   │   ├── all_notification.html
│   │   │   ├── base_template.html
│   │   │   ├── edit_student_result.html
│   │   │   ├── footer.html
│   │   │   ├── live_class_room_start.html
│   │   │   ├── sidebar_template.html
│   │   │   ├── staff_add_result.html
│   │   │   ├── staff_apply_leave.html
│   │   │   ├── staff_feedback.html
│   │   │   ├── staff_home_template.html
│   │   │   ├── staff_profile.html
│   │   │   ├── staff_take_attendance.html
│   │   │   ├── staff_update_attendance.html
│   │   │   └── start_live_classroom.html
│   │   ├── student_template/
│   │   │   ├── all_notification.html
│   │   │   ├── base_template.html
│   │   │   ├── footer.html
│   │   │   ├── join_class_room_start.html
│   │   │   ├── sidebar_template.html
│   │   │   ├── student_apply_leave.html
│   │   │   ├── student_attendance_data.html
│   │   │   ├── student_feedback.html
│   │   │   ├── student_home_template.html
│   │   │   ├── student_profile.html
│   │   │   ├── student_result.html
│   │   │   └── student_view_attendance.html
│   │   ├── widget.html
│   │   └── widget_student.html
│   ├── tests.py
│   └── views.py
└── student_management_system/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .dockerignore
================================================
*.pyc
*.pyo
*.mo
*.db
*.css.map
*.egg-info
*.sql.gz
.cache
.project
.idea
.pydevproject
.idea/workspace.xml
.DS_Store
.git/
.sass-cache
.vagrant/
__pycache__
dist
docs
env
venv
logs
src/{{ project_name }}/settings/local.py
src/node_modules
web/media
web/static/CACHE
stats
Dockerfile


================================================
FILE: .flake8
================================================
[flake8]
exclude =
    migrations,
    __pycache__,
    manage.py,
    settings.py,
    wsgi.py,
    venv/


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: shrivastava136
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: ['https://www.paypal.com/paypalme/akash1362']


================================================
FILE: .github/workflows/tests.yml
================================================
name: Tests
on:
  push:
    branches:
      - '*'
  pull_request:
    branches:
      - '*'

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ['3.11.3']

    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 🐍 ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install dependencies
        run: |
          pip install --upgrade pip
          pip install -r requirements.txt
          pip install -r requirements.dev.txt

      - name: Run Unit Tests ⚒
        env:
          DEBUG: False
          SECRET_KEY: "RANDOM_KEY"
          DATABASE_URL: "postgres://postgres:user@localhost:5432/db_name"
          CAPTCHA_SECRET: "RANDOM_KEY"
        run: |
          python manage.py collectstatic --no-input
          python manage.py test


================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Editor
.vscode

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
staticfiles/


================================================
FILE: .pre-commit-config.yaml
================================================
exclude: 'static'
repos:
- repo: https://github.com/pycqa/isort
  rev: 5.12.0
  hooks:
    - id: isort
      name: isort-py
- repo: https://github.com/ambv/black
  rev: 23.3.0
  hooks:
    - id: black
      name: black-py
- repo: https://github.com/asottile/pyupgrade
  rev: v3.3.2
  hooks:
  -   id: pyupgrade
      name: pyupgrade-py
- repo: https://github.com/pre-commit/pre-commit-hooks
  rev: v2.3.0
  hooks:
  -   id: end-of-file-fixer
  -   id: trailing-whitespace


================================================
FILE: .travis.yml
================================================
language: python
python:
  - "3.8.2"

install:
  - pip install -r requirements.txt

script:
  - python manage.py test


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
 advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
 address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
 professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at akash.shrivastava136@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: Dockerfile
================================================
FROM python:3.11-slim-buster
ENV PYTHONBUFFERED=1
WORKDIR /student_management_system
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2020 Akash Shrivastava

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: Procfile
================================================
web: python manage.py migrate && gunicorn 'student_management_system.wsgi'


================================================
FILE: README.md
================================================
# Django Student Management System 👨‍🎓

A modern Student Management System 👨‍🎓 with features like Interactive Dashboard 🤩 Attendance Management 🏫Provide Feedback ✍ Result Generation 📜 Leave Application 🍂

![SMS_Banner](https://github.com/Akash1362000/akash1362000.github.io/blob/master/styles/images/Django%20Student%20Management%20System%20Banner.jpg)

[![Website shields.io](https://img.shields.io/website-up-down-green-red/http/shields.io.svg)](https://student-management-webapp.herokuapp.com/)
[![travis-ci](https://api.travis-ci.com/Akash1362000/Django_Student_Management_System.svg?token=nv6BYq1BY3w4kf8uZuGj&branch=main)](https://travis-ci.com/github/Akash1362000/Django_Student_Management_System/)
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FAkash1362000%2FDjango_Student_Management_System%2F&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/Akash1362000/Django_Student_Management_System/graphs/commit-activity)


Checkout the live Website [here](https://student-management-system-4jym.onrender.com/)!

Find the detailed project report [here](https://drive.google.com/file/d/1DTqbRJBoFuCHJdtb0SJwdiLgE6iOgjUG/view?usp=sharing)! 📜

### Meet the Developers ✨🌟

<table>
		<tr>
			<td align="center"><img src="https://i.imgur.com/ZwcK1xV.jpg"  width=100px;"><br /><sub><b>Akash Shrivastava</b></sub><br/><a href="https://github.com/Akash1362000">👨‍💻🚴‍♂️📸</a></td>
		   <td align="center"><img src="https://i.imgur.com/zvN556m.jpg"  width=100px;"><br /><sub><b>Akanksha Tamboli</b></sub><br/><a href="https://github.com/akankshast">💻🎨</a></td>
			<td align="center"><img src="https://i.imgur.com/fVE1MSw.jpg"  width=100px;"><br /><sub><b>Shreejit Nair</b></sub><br/><a href="https://github.com/ShreejitNair">🎓🏏📱</a></td>			<td align="center"><img src="https://i.imgur.com/oKHebZM.jpg"  width=100px;"><br /><sub><b>Samiksha Naik</b></sub><br/><a href="https://github.com/samiksha8888989">💃📸</a></td>
		</tr>

</table>

## Development 👨‍💻
Note : Make sure you have Python version 3.8+

Environment Setup 🚀

`$ git clone https://github.com/Akash1362000/Django_Student_Management_System.git`

`$ cd Django_Student_Management_System/`

Create `.env` file (refer `.env.example` file)

Generate `SECRET_KEY` from [here](https://djecrety.ir/)

Generate your `CAPTCHA_SECRET` from [here](http://www.google.com/recaptcha/admin)

Copy your `SITE KEY` after generating `CAPTCHA_SECRET` and paste it in `data-sitekey` in `student_management_app/templates/login_page.html` (replace the current key with your key)

## Database Setup

Install Postgres Latest version from [here](https://www.postgresql.org/download/)

Install pgAdmin from [here](https://www.pgadmin.org/download/)

Create a Database using pgAdmin by following the steps mentioned [here](https://www.tutorialsteacher.com/postgresql/create-database)

Update your `DATABASE_URL` in `.env` with your DB details like `USER`, `PASSWORD` and `DB_NAME`

---

If virtualenv is not installed [(What is virtualenv?)](https://www.youtube.com/watch?v=N5vscPTWKOk&t=313s):

`$ pip install virtualenv`

Create a virtual environment

`$ virtualenv venv`

Activate the environment everytime you open the project

`$ source venv/Scripts/activate`

Install requirements 🛠

`$ pip install -r requirements.txt`

`$ pre-commit install`

Run migrations for Database

`$ python manage.py migrate`

Create superuser for Admin Login 🔐

`$ python manage.py createsuperuser`

Enter your desired username, email and password. Make sure you remember them as you'll need them in future.

eg.

    Username: admin

    Email: admin@admin.com

    Password: HighlyConfidentialPassword

All Set! 🤩

Now you can run the server to see your application up & running 🚀

`$ python manage.py runserver`

To exit the environment ❎

`$ deactivate`

Every time you want to open the application in browser, make sure you run:

`$ source venv/Scripts/activate`

`$ python manage.py runserver`

---
## Docker Setup (Optional) ![](https://skillicons.dev/icons?i=docker)

If you want to use Docker to run this project, you need to do the following steps:
- Install Docker for your OS from [here](https://www.docker.com/products/docker-desktop/)
- Run `docker --version` and `docker compose --version` [In Windows, you need to run `docker-compose --version` to check the version]
- If you see both the versions, then Docker is successfully installed on your system and you can follow along
- If you don't see the version, check with your Docker installation
- Open `docker-compose.yml` file and update the value of `CAPTCHA_SECRET` with your generated key. You can generate it from [here](http://www.google.com/recaptcha/admin) 
- Run `docker compose up -d`
- Run `docker exec -it student_management_system sh -c "python manage.py createsuperuser"` to create a new superuser
- Access the app at [http://localhost:8000](http://localhost:8000)
- To stop the container, run `docker compose stop` from the project root
- To restart the container, run `docker compose start` from the project root
- To delete the container, run `docker compose down` from the project root

---

## A Glimpse of the Dashboard 😍

![Dashboard](https://i.imgur.com/vN530l3.png)

## Stargazers

[![Stargazers](https://reporoster.com/stars/Akash1362000/Django_Student_Management_System)](https://github.com/Akash1362000/Django_Student_Management_System/stargazers)

Liked our work? 🤔 Do star [this](https://github.com/Akash1362000/Django_Student_Management_System) repository ⭐ It'll motivate us more 😁

---

### License ✍

```
MIT License

Copyright (c) 2020 Akash Shrivastava

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```


================================================
FILE: build.sh
================================================
#!/usr/bin/env bash

set -o errexit  # exit on error

pip install -r requirements.txt

python manage.py collectstatic --no-input
python manage.py migrate


================================================
FILE: docker-compose.yml
================================================
version: '3.8'
services:
  app:
    build: .
    volumes:
      - .:/student_management_system
    ports:
      - 8000:8000
    image: student_management_system:django
    container_name: student_management_system
    command:
      - /bin/bash
      - -c
      - |
        python3 ./manage.py migrate
        python3 ./manage.py collectstatic --noinput
        python3 ./manage.py runserver 0.0.0.0:8000
    environment:
      - DEBUG=True
      - SECRET_KEY=0l5agg-yx+4+&^ti&p*nm&^=s2l8awa8o4=%+9@98$*(vv9bo4
      - DATABASE_URL=postgres://postgres:postgres@db:5432/postgres
      - CAPTCHA_SECRET=your_captcha_secret
    depends_on:
      - db

  db:
    image: postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    ports:
      - 5440:5432
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    container_name: student_management_system_db


================================================
FILE: manage.py
================================================
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


def main():
    os.environ.setdefault(
        "DJANGO_SETTINGS_MODULE", "student_management_system.settings"
    )
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == "__main__":
    main()


================================================
FILE: requirements.dev.txt
================================================
flake8==6.0.0
black==23.1.0
pre-commit==3.3.1
isort==5.12.0


================================================
FILE: requirements.txt
================================================
dj-database-url==1.2.0
Django==4.1.13
gunicorn==20.1.0
requests==2.31.0
psycopg2-binary==2.9.5
python-dotenv==1.0.0
whitenoise==6.4.0
psutil==5.9.5
django-health-check==3.17.0


================================================
FILE: runtime.txt
================================================
python-3.10.6


================================================
FILE: static/admin/css/autocomplete.css
================================================
select.admin-autocomplete {
    width: 20em;
}

.select2-container--admin-autocomplete.select2-container {
    min-height: 30px;
}

.select2-container--admin-autocomplete .select2-selection--single,
.select2-container--admin-autocomplete .select2-selection--multiple {
    min-height: 30px;
    padding: 0;
}

.select2-container--admin-autocomplete.select2-container--focus .select2-selection,
.select2-container--admin-autocomplete.select2-container--open .select2-selection {
    border-color: #999;
    min-height: 30px;
}

.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single,
.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single {
    padding: 0;
}

.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple,
.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple {
    padding: 0;
}

.select2-container--admin-autocomplete .select2-selection--single {
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 30px;
}

.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
}

.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder {
    color: #999;
}

.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow {
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px;
}

.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b {
    border-color: #888 transparent transparent transparent;
    border-style: solid;
    border-width: 5px 4px 0 4px;
    height: 0;
    left: 50%;
    margin-left: -4px;
    margin-top: -2px;
    position: absolute;
    top: 50%;
    width: 0;
}

.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear {
    float: left;
}

.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow {
    left: 1px;
    right: auto;
}

.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single {
    background-color: #eee;
    cursor: default;
}

.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear {
    display: none;
}

.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #888 transparent;
    border-width: 0 4px 5px 4px;
}

.select2-container--admin-autocomplete .select2-selection--multiple {
    background-color: white;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: text;
}

.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered {
    box-sizing: border-box;
    list-style: none;
    margin: 0;
    padding: 0 5px;
    width: 100%;
}

.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li {
    list-style: none;
}

.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder {
    color: #999;
    margin-top: 5px;
    float: left;
}

.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin: 5px;
}

.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px;
}

.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove {
    color: #999;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px;
}

.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: #333;
}

.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline {
    float: right;
}

.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
    margin-left: 5px;
    margin-right: auto;
}

.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
    margin-left: 2px;
    margin-right: auto;
}

.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple {
    border: solid #999 1px;
    outline: 0;
}

.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple {
    background-color: #eee;
    cursor: default;
}

.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove {
    display: none;
}

.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field {
    border: 1px solid #ccc;
}

.select2-container--admin-autocomplete .select2-search--inline .select2-search__field {
    background: transparent;
    border: none;
    outline: 0;
    box-shadow: none;
    -webkit-appearance: textfield;
}

.select2-container--admin-autocomplete .select2-results > .select2-results__options {
    max-height: 200px;
    overflow-y: auto;
}

.select2-container--admin-autocomplete .select2-results__option[role=group] {
    padding: 0;
}

.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] {
    color: #999;
}

.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] {
    background-color: #ddd;
}

.select2-container--admin-autocomplete .select2-results__option .select2-results__option {
    padding-left: 1em;
}

.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group {
    padding-left: 0;
}

.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -1em;
    padding-left: 2em;
}

.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -2em;
    padding-left: 3em;
}

.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -3em;
    padding-left: 4em;
}

.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -4em;
    padding-left: 5em;
}

.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -5em;
    padding-left: 6em;
}

.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] {
    background-color: #79aec8;
    color: white;
}

.select2-container--admin-autocomplete .select2-results__group {
    cursor: default;
    display: block;
    padding: 6px;
}


================================================
FILE: static/admin/css/base.css
================================================
/*
    DJANGO Admin styles
*/

@import url(fonts.css);

body {
    margin: 0;
    padding: 0;
    font-size: 14px;
    font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;
    color: #333;
    background: #fff;
}

/* LINKS */

a:link, a:visited {
    color: #447e9b;
    text-decoration: none;
}

a:focus, a:hover {
    color: #036;
}

a:focus {
    text-decoration: underline;
}

a img {
    border: none;
}

a.section:link, a.section:visited {
    color: #fff;
    text-decoration: none;
}

a.section:focus, a.section:hover {
    text-decoration: underline;
}

/* GLOBAL DEFAULTS */

p, ol, ul, dl {
    margin: .2em 0 .8em 0;
}

p {
    padding: 0;
    line-height: 140%;
}

h1,h2,h3,h4,h5 {
    font-weight: bold;
}

h1 {
    margin: 0 0 20px;
    font-weight: 300;
    font-size: 20px;
    color: #666;
}

h2 {
    font-size: 16px;
    margin: 1em 0 .5em 0;
}

h2.subhead {
    font-weight: normal;
    margin-top: 0;
}

h3 {
    font-size: 14px;
    margin: .8em 0 .3em 0;
    color: #666;
    font-weight: bold;
}

h4 {
    font-size: 12px;
    margin: 1em 0 .8em 0;
    padding-bottom: 3px;
}

h5 {
    font-size: 10px;
    margin: 1.5em 0 .5em 0;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 1px;
}

ul li {
    list-style-type: square;
    padding: 1px 0;
}

li ul {
    margin-bottom: 0;
}

li, dt, dd {
    font-size: 13px;
    line-height: 20px;
}

dt {
    font-weight: bold;
    margin-top: 4px;
}

dd {
    margin-left: 0;
}

form {
    margin: 0;
    padding: 0;
}

fieldset {
    margin: 0;
    padding: 0;
    border: none;
    border-top: 1px solid #eee;
}

blockquote {
    font-size: 11px;
    color: #777;
    margin-left: 2px;
    padding-left: 10px;
    border-left: 5px solid #ddd;
}

code, pre {
    font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
    color: #666;
    font-size: 12px;
}

pre.literal-block {
    margin: 10px;
    background: #eee;
    padding: 6px 8px;
}

code strong {
    color: #930;
}

hr {
    clear: both;
    color: #eee;
    background-color: #eee;
    height: 1px;
    border: none;
    margin: 0;
    padding: 0;
    font-size: 1px;
    line-height: 1px;
}

/* TEXT STYLES & MODIFIERS */

.small {
    font-size: 11px;
}

.tiny {
    font-size: 10px;
}

p.tiny {
    margin-top: -2px;
}

.mini {
    font-size: 10px;
}

p.mini {
    margin-top: -3px;
}

.help, p.help, form p.help, div.help, form div.help, div.help li {
    font-size: 11px;
    color: #999;
}

div.help ul {
     margin-bottom: 0;
}

.help-tooltip {
    cursor: help;
}

p img, h1 img, h2 img, h3 img, h4 img, td img {
    vertical-align: middle;
}

.quiet, a.quiet:link, a.quiet:visited {
    color: #999;
    font-weight: normal;
}

.float-right {
    float: right;
}

.float-left {
    float: left;
}

.clear {
    clear: both;
}

.align-left {
    text-align: left;
}

.align-right {
    text-align: right;
}

.example {
    margin: 10px 0;
    padding: 5px 10px;
    background: #efefef;
}

.nowrap {
    white-space: nowrap;
}

/* TABLES */

table {
    border-collapse: collapse;
    border-color: #ccc;
}

td, th {
    font-size: 13px;
    line-height: 16px;
    border-bottom: 1px solid #eee;
    vertical-align: top;
    padding: 8px;
    font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif;
}

th {
    font-weight: 600;
    text-align: left;
}

thead th,
tfoot td {
    color: #666;
    padding: 5px 10px;
    font-size: 11px;
    background: #fff;
    border: none;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

tfoot td {
    border-bottom: none;
    border-top: 1px solid #eee;
}

thead th.required {
    color: #000;
}

tr.alt {
    background: #f6f6f6;
}

.row1 {
    background: #fff;
}

.row2 {
    background: #f9f9f9;
}

/* SORTABLE TABLES */

thead th {
    padding: 5px 10px;
    line-height: normal;
    text-transform: uppercase;
    background: #f6f6f6;
}

thead th a:link, thead th a:visited {
    color: #666;
}

thead th.sorted {
    background: #eee;
}

thead th.sorted .text {
    padding-right: 42px;
}

table thead th .text span {
    padding: 8px 10px;
    display: block;
}

table thead th .text a {
    display: block;
    cursor: pointer;
    padding: 8px 10px;
}

table thead th .text a:focus, table thead th .text a:hover {
    background: #eee;
}

thead th.sorted a.sortremove {
    visibility: hidden;
}

table thead th.sorted:hover a.sortremove {
    visibility: visible;
}

table thead th.sorted .sortoptions {
    display: block;
    padding: 9px 5px 0 5px;
    float: right;
    text-align: right;
}

table thead th.sorted .sortpriority {
    font-size: .8em;
    min-width: 12px;
    text-align: center;
    vertical-align: 3px;
    margin-left: 2px;
    margin-right: 2px;
}

table thead th.sorted .sortoptions a {
    position: relative;
    width: 14px;
    height: 14px;
    display: inline-block;
    background: url(../img/sorting-icons.svg) 0 0 no-repeat;
    background-size: 14px auto;
}

table thead th.sorted .sortoptions a.sortremove {
    background-position: 0 0;
}

table thead th.sorted .sortoptions a.sortremove:after {
    content: '\\';
    position: absolute;
    top: -6px;
    left: 3px;
    font-weight: 200;
    font-size: 18px;
    color: #999;
}

table thead th.sorted .sortoptions a.sortremove:focus:after,
table thead th.sorted .sortoptions a.sortremove:hover:after {
    color: #447e9b;
}

table thead th.sorted .sortoptions a.sortremove:focus,
table thead th.sorted .sortoptions a.sortremove:hover {
    background-position: 0 -14px;
}

table thead th.sorted .sortoptions a.ascending {
    background-position: 0 -28px;
}

table thead th.sorted .sortoptions a.ascending:focus,
table thead th.sorted .sortoptions a.ascending:hover {
    background-position: 0 -42px;
}

table thead th.sorted .sortoptions a.descending {
    top: 1px;
    background-position: 0 -56px;
}

table thead th.sorted .sortoptions a.descending:focus,
table thead th.sorted .sortoptions a.descending:hover {
    background-position: 0 -70px;
}

/* FORM DEFAULTS */

input, textarea, select, .form-row p, form .button {
    margin: 2px 0;
    padding: 2px 3px;
    vertical-align: middle;
    font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif;
    font-weight: normal;
    font-size: 13px;
}
.form-row div.help {
    padding: 2px 3px;
}

textarea {
    vertical-align: top;
}

input[type=text], input[type=password], input[type=email], input[type=url],
input[type=number], input[type=tel], textarea, select, .vTextField {
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 5px 6px;
    margin-top: 0;
}

input[type=text]:focus, input[type=password]:focus, input[type=email]:focus,
input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus,
textarea:focus, select:focus, .vTextField:focus {
    border-color: #999;
}

select {
    height: 30px;
}

select[multiple] {
    /* Allow HTML size attribute to override the height in the rule above. */
    height: auto;
    min-height: 150px;
}

/* FORM BUTTONS */

.button, input[type=submit], input[type=button], .submit-row input, a.button {
    background: #79aec8;
    padding: 10px 15px;
    border: none;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
}

a.button {
    padding: 4px 5px;
}

.button:active, input[type=submit]:active, input[type=button]:active,
.button:focus, input[type=submit]:focus, input[type=button]:focus,
.button:hover, input[type=submit]:hover, input[type=button]:hover {
    background: #609ab6;
}

.button[disabled], input[type=submit][disabled], input[type=button][disabled] {
    opacity: 0.4;
}

.button.default, input[type=submit].default, .submit-row input.default {
    float: right;
    border: none;
    font-weight: 400;
    background: #417690;
}

.button.default:active, input[type=submit].default:active,
.button.default:focus, input[type=submit].default:focus,
.button.default:hover, input[type=submit].default:hover {
    background: #205067;
}

.button[disabled].default,
input[type=submit][disabled].default,
input[type=button][disabled].default {
    opacity: 0.4;
}


/* MODULES */

.module {
    border: none;
    margin-bottom: 30px;
    background: #fff;
}

.module p, .module ul, .module h3, .module h4, .module dl, .module pre {
    padding-left: 10px;
    padding-right: 10px;
}

.module blockquote {
    margin-left: 12px;
}

.module ul, .module ol {
    margin-left: 1.5em;
}

.module h3 {
    margin-top: .6em;
}

.module h2, .module caption, .inline-group h2 {
    margin: 0;
    padding: 8px;
    font-weight: 400;
    font-size: 13px;
    text-align: left;
    background: #79aec8;
    color: #fff;
}

.module caption,
.inline-group h2 {
    font-size: 12px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.module table {
    border-collapse: collapse;
}

/* MESSAGES & ERRORS */

ul.messagelist {
    padding: 0;
    margin: 0;
}

ul.messagelist li {
    display: block;
    font-weight: 400;
    font-size: 13px;
    padding: 10px 10px 10px 65px;
    margin: 0 0 10px 0;
    background: #dfd url(../img/icon-yes.svg) 40px 12px no-repeat;
    background-size: 16px auto;
    color: #333;
}

ul.messagelist li.warning {
    background: #ffc url(../img/icon-alert.svg) 40px 14px no-repeat;
    background-size: 14px auto;
}

ul.messagelist li.error {
    background: #ffefef url(../img/icon-no.svg) 40px 12px no-repeat;
    background-size: 16px auto;
}

.errornote {
    font-size: 14px;
    font-weight: 700;
    display: block;
    padding: 10px 12px;
    margin: 0 0 10px 0;
    color: #ba2121;
    border: 1px solid #ba2121;
    border-radius: 4px;
    background-color: #fff;
    background-position: 5px 12px;
}

ul.errorlist {
    margin: 0 0 4px;
    padding: 0;
    color: #ba2121;
    background: #fff;
}

ul.errorlist li {
    font-size: 13px;
    display: block;
    margin-bottom: 4px;
}

ul.errorlist li:first-child {
    margin-top: 0;
}

ul.errorlist li a {
    color: inherit;
    text-decoration: underline;
}

td ul.errorlist {
    margin: 0;
    padding: 0;
}

td ul.errorlist li {
    margin: 0;
}

.form-row.errors {
    margin: 0;
    border: none;
    border-bottom: 1px solid #eee;
    background: none;
}

.form-row.errors ul.errorlist li {
    padding-left: 0;
}

.errors input, .errors select, .errors textarea {
    border: 1px solid #ba2121;
}

div.system-message {
    background: #ffc;
    margin: 10px;
    padding: 6px 8px;
    font-size: .8em;
}

div.system-message p.system-message-title {
    padding: 4px 5px 4px 25px;
    margin: 0;
    color: #c11;
    background: #ffefef url(../img/icon-no.svg) 5px 5px no-repeat;
}

.description {
    font-size: 12px;
    padding: 5px 0 0 12px;
}

/* BREADCRUMBS */

div.breadcrumbs {
    background: #79aec8;
    padding: 10px 40px;
    border: none;
    font-size: 14px;
    color: #c4dce8;
    text-align: left;
}

div.breadcrumbs a {
    color: #fff;
}

div.breadcrumbs a:focus, div.breadcrumbs a:hover {
    color: #c4dce8;
}

/* ACTION ICONS */

.viewlink, .inlineviewlink {
    padding-left: 16px;
    background: url(../img/icon-viewlink.svg) 0 1px no-repeat;
}

.addlink {
    padding-left: 16px;
    background: url(../img/icon-addlink.svg) 0 1px no-repeat;
}

.changelink, .inlinechangelink {
    padding-left: 16px;
    background: url(../img/icon-changelink.svg) 0 1px no-repeat;
}

.deletelink {
    padding-left: 16px;
    background: url(../img/icon-deletelink.svg) 0 1px no-repeat;
}

a.deletelink:link, a.deletelink:visited {
    color: #CC3434;
}

a.deletelink:focus, a.deletelink:hover {
    color: #993333;
    text-decoration: none;
}

/* OBJECT TOOLS */

.object-tools {
    font-size: 10px;
    font-weight: bold;
    padding-left: 0;
    float: right;
    position: relative;
    margin-top: -48px;
}

.form-row .object-tools {
    margin-top: 5px;
    margin-bottom: 5px;
    float: none;
    height: 2em;
    padding-left: 3.5em;
}

.object-tools li {
    display: block;
    float: left;
    margin-left: 5px;
    height: 16px;
}

.object-tools a {
    border-radius: 15px;
}

.object-tools a:link, .object-tools a:visited {
    display: block;
    float: left;
    padding: 3px 12px;
    background: #999;
    font-weight: 400;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #fff;
}

.object-tools a:focus, .object-tools a:hover {
    background-color: #417690;
}

.object-tools a:focus{
    text-decoration: none;
}

.object-tools a.viewsitelink, .object-tools a.golink,.object-tools a.addlink {
    background-repeat: no-repeat;
    background-position: right 7px center;
    padding-right: 26px;
}

.object-tools a.viewsitelink, .object-tools a.golink {
    background-image: url(../img/tooltag-arrowright.svg);
}

.object-tools a.addlink {
    background-image: url(../img/tooltag-add.svg);
}

/* OBJECT HISTORY */

table#change-history {
    width: 100%;
}

table#change-history tbody th {
    width: 16em;
}

/* PAGE STRUCTURE */

#container {
    position: relative;
    width: 100%;
    min-width: 980px;
    padding: 0;
}

#content {
    padding: 20px 40px;
}

.dashboard #content {
    width: 600px;
}

#content-main {
    float: left;
    width: 100%;
}

#content-related {
    float: right;
    width: 260px;
    position: relative;
    margin-right: -300px;
}

#footer {
    clear: both;
    padding: 10px;
}

/* COLUMN TYPES */

.colMS {
    margin-right: 300px;
}

.colSM {
    margin-left: 300px;
}

.colSM #content-related {
    float: left;
    margin-right: 0;
    margin-left: -300px;
}

.colSM #content-main {
    float: right;
}

.popup .colM {
    width: auto;
}

/* HEADER */

#header {
    width: auto;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 40px;
    background: #417690;
    color: #ffc;
    overflow: hidden;
}

#header a:link, #header a:visited {
    color: #fff;
}

#header a:focus , #header a:hover {
    text-decoration: underline;
}

#branding {
    float: left;
}

#branding h1 {
    padding: 0;
    margin: 0 20px 0 0;
    font-weight: 300;
    font-size: 24px;
    color: #f5dd5d;
}

#branding h1, #branding h1 a:link, #branding h1 a:visited {
    color: #f5dd5d;
}

#branding h2 {
    padding: 0 10px;
    font-size: 14px;
    margin: -8px 0 8px 0;
    font-weight: normal;
    color: #ffc;
}

#branding a:hover {
    text-decoration: none;
}

#user-tools {
    float: right;
    padding: 0;
    margin: 0 0 0 20px;
    font-weight: 300;
    font-size: 11px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-align: right;
}

#user-tools a {
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}

#user-tools a:focus, #user-tools a:hover {
    text-decoration: none;
    border-bottom-color: #79aec8;
    color: #79aec8;
}

/* SIDEBAR */

#content-related {
    background: #f8f8f8;
}

#content-related .module {
    background: none;
}

#content-related h3 {
    font-size: 14px;
    color: #666;
    padding: 0 16px;
    margin: 0 0 16px;
}

#content-related h4 {
    font-size: 13px;
}

#content-related p {
    padding-left: 16px;
    padding-right: 16px;
}

#content-related .actionlist {
    padding: 0;
    margin: 16px;
}

#content-related .actionlist li {
    line-height: 1.2;
    margin-bottom: 10px;
    padding-left: 18px;
}

#content-related .module h2 {
    background: none;
    padding: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid #eaeaea;
    font-size: 18px;
    color: #333;
}

.delete-confirmation form input[type="submit"] {
    background: #ba2121;
    border-radius: 4px;
    padding: 10px 15px;
    color: #fff;
}

.delete-confirmation form input[type="submit"]:active,
.delete-confirmation form input[type="submit"]:focus,
.delete-confirmation form input[type="submit"]:hover {
    background: #a41515;
}

.delete-confirmation form .cancel-link {
    display: inline-block;
    vertical-align: middle;
    height: 15px;
    line-height: 15px;
    background: #ddd;
    border-radius: 4px;
    padding: 10px 15px;
    color: #333;
    margin: 0 0 0 10px;
}

.delete-confirmation form .cancel-link:active,
.delete-confirmation form .cancel-link:focus,
.delete-confirmation form .cancel-link:hover {
    background: #ccc;
}

/* POPUP */
.popup #content {
    padding: 20px;
}

.popup #container {
    min-width: 0;
}

.popup #header {
    padding: 10px 20px;
}


================================================
FILE: static/admin/css/changelists.css
================================================
/* CHANGELISTS */

#changelist {
    position: relative;
    width: 100%;
}

#changelist table {
    width: 100%;
}

.change-list .hiddenfields { display:none; }

.change-list .filtered table {
    border-right: none;
}

.change-list .filtered {
    min-height: 400px;
}

.change-list .filtered .results, .change-list .filtered .paginator,
.filtered #toolbar, .filtered div.xfull {
    margin-right: 280px;
    width: auto;
}

.change-list .filtered table tbody th {
    padding-right: 1em;
}

#changelist-form .results {
  overflow-x: auto;
}

#changelist .toplinks {
    border-bottom: 1px solid #ddd;
}

#changelist .paginator {
    color: #666;
    border-bottom: 1px solid #eee;
    background: #fff;
    overflow: hidden;
}

/* CHANGELIST TABLES */

#changelist table thead th {
    padding: 0;
    white-space: nowrap;
    vertical-align: middle;
}

#changelist table thead th.action-checkbox-column {
    width: 1.5em;
    text-align: center;
}

#changelist table tbody td.action-checkbox {
    text-align: center;
}

#changelist table tfoot {
    color: #666;
}

/* TOOLBAR */

#changelist #toolbar {
    padding: 8px 10px;
    margin-bottom: 15px;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    background: #f8f8f8;
    color: #666;
}

#changelist #toolbar form input {
    border-radius: 4px;
    font-size: 14px;
    padding: 5px;
    color: #333;
}

#changelist #toolbar form #searchbar {
    height: 19px;
    border: 1px solid #ccc;
    padding: 2px 5px;
    margin: 0;
    vertical-align: top;
    font-size: 13px;
}

#changelist #toolbar form #searchbar:focus {
    border-color: #999;
}

#changelist #toolbar form input[type="submit"] {
    border: 1px solid #ccc;
    padding: 2px 10px;
    margin: 0;
    vertical-align: middle;
    background: #fff;
    box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
    cursor: pointer;
    color: #333;
}

#changelist #toolbar form input[type="submit"]:focus,
#changelist #toolbar form input[type="submit"]:hover {
    border-color: #999;
}

#changelist #changelist-search img {
    vertical-align: middle;
    margin-right: 4px;
}

/* FILTER COLUMN */

#changelist-filter {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1000;
    width: 240px;
    background: #f8f8f8;
    border-left: none;
    margin: 0;
}

#changelist-filter h2 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 5px 15px;
    margin-bottom: 12px;
    border-bottom: none;
}

#changelist-filter h3 {
    font-weight: 400;
    font-size: 14px;
    padding: 0 15px;
    margin-bottom: 10px;
}

#changelist-filter ul {
    margin: 5px 0;
    padding: 0 15px 15px;
    border-bottom: 1px solid #eaeaea;
}

#changelist-filter ul:last-child {
    border-bottom: none;
    padding-bottom: none;
}

#changelist-filter li {
    list-style-type: none;
    margin-left: 0;
    padding-left: 0;
}

#changelist-filter a {
    display: block;
    color: #999;
    text-overflow: ellipsis;
    overflow-x: hidden;
}

#changelist-filter li.selected {
    border-left: 5px solid #eaeaea;
    padding-left: 10px;
    margin-left: -15px;
}

#changelist-filter li.selected a {
    color: #5b80b2;
}

#changelist-filter a:focus, #changelist-filter a:hover,
#changelist-filter li.selected a:focus,
#changelist-filter li.selected a:hover {
    color: #036;
}

/* DATE DRILLDOWN */

.change-list ul.toplinks {
    display: block;
    float: left;
    padding: 0;
    margin: 0;
    width: 100%;
}

.change-list ul.toplinks li {
    padding: 3px 6px;
    font-weight: bold;
    list-style-type: none;
    display: inline-block;
}

.change-list ul.toplinks .date-back a {
    color: #999;
}

.change-list ul.toplinks .date-back a:focus,
.change-list ul.toplinks .date-back a:hover {
    color: #036;
}

/* PAGINATOR */

.paginator {
    font-size: 13px;
    padding-top: 10px;
    padding-bottom: 10px;
    line-height: 22px;
    margin: 0;
    border-top: 1px solid #ddd;
}

.paginator a:link, .paginator a:visited {
    padding: 2px 6px;
    background: #79aec8;
    text-decoration: none;
    color: #fff;
}

.paginator a.showall {
    padding: 0;
    border: none;
    background: none;
    color: #5b80b2;
}

.paginator a.showall:focus, .paginator a.showall:hover {
    background: none;
    color: #036;
}

.paginator .end {
    margin-right: 6px;
}

.paginator .this-page {
    padding: 2px 6px;
    font-weight: bold;
    font-size: 13px;
    vertical-align: top;
}

.paginator a:focus, .paginator a:hover {
    color: white;
    background: #036;
}

/* ACTIONS */

.filtered .actions {
    margin-right: 280px;
    border-right: none;
}

#changelist table input {
    margin: 0;
    vertical-align: baseline;
}

#changelist table tbody tr.selected {
    background-color: #FFFFCC;
}

#changelist .actions {
    padding: 10px;
    background: #fff;
    border-top: none;
    border-bottom: none;
    line-height: 24px;
    color: #999;
}

#changelist .actions.selected {
    background: #fffccf;
    border-top: 1px solid #fffee8;
    border-bottom: 1px solid #edecd6;
}

#changelist .actions span.all,
#changelist .actions span.action-counter,
#changelist .actions span.clear,
#changelist .actions span.question {
    font-size: 13px;
    margin: 0 0.5em;
    display: none;
}

#changelist .actions:last-child {
    border-bottom: none;
}

#changelist .actions select {
    vertical-align: top;
    height: 24px;
    background: none;
    color: #000;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
    padding: 0 0 0 4px;
    margin: 0;
    margin-left: 10px;
}

#changelist .actions select:focus {
    border-color: #999;
}

#changelist .actions label {
    display: inline-block;
    vertical-align: middle;
    font-size: 13px;
}

#changelist .actions .button {
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
    cursor: pointer;
    height: 24px;
    line-height: 1;
    padding: 4px 8px;
    margin: 0;
    color: #333;
}

#changelist .actions .button:focus, #changelist .actions .button:hover {
    border-color: #999;
}


================================================
FILE: static/admin/css/dashboard.css
================================================
/* DASHBOARD */

.dashboard .module table th {
    width: 100%;
}

.dashboard .module table td {
    white-space: nowrap;
}

.dashboard .module table td a {
    display: block;
    padding-right: .6em;
}

/* RECENT ACTIONS MODULE */

.module ul.actionlist {
    margin-left: 0;
}

ul.actionlist li {
    list-style-type: none;
    overflow: hidden;
    text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
}


================================================
FILE: static/admin/css/fonts.css
================================================
@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Bold-webfont.woff');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Regular-webfont.woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Light-webfont.woff');
    font-weight: 300;
    font-style: normal;
}


================================================
FILE: static/admin/css/forms.css
================================================
@import url('widgets.css');

/* FORM ROWS */

.form-row {
    overflow: hidden;
    padding: 10px;
    font-size: 13px;
    border-bottom: 1px solid #eee;
}

.form-row img, .form-row input {
    vertical-align: middle;
}

.form-row label input[type="checkbox"] {
    margin-top: 0;
    vertical-align: 0;
}

form .form-row p {
    padding-left: 0;
}

.hidden {
    display: none;
}

/* FORM LABELS */

label {
    font-weight: normal;
    color: #666;
    font-size: 13px;
}

.required label, label.required {
    font-weight: bold;
    color: #333;
}

/* RADIO BUTTONS */

form ul.radiolist li {
    list-style-type: none;
}

form ul.radiolist label {
    float: none;
    display: inline;
}

form ul.radiolist input[type="radio"] {
    margin: -2px 4px 0 0;
    padding: 0;
}

form ul.inline {
    margin-left: 0;
    padding: 0;
}

form ul.inline li {
    float: left;
    padding-right: 7px;
}

/* ALIGNED FIELDSETS */

.aligned label {
    display: block;
    padding: 4px 10px 0 0;
    float: left;
    width: 160px;
    word-wrap: break-word;
    line-height: 1;
}

.aligned label:not(.vCheckboxLabel):after {
    content: '';
    display: inline-block;
    vertical-align: middle;
    height: 26px;
}

.aligned label + p, .aligned label + div.help, .aligned label + div.readonly {
    padding: 6px 0;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 170px;
}

.aligned ul label {
    display: inline;
    float: none;
    width: auto;
}

.aligned .form-row input {
    margin-bottom: 0;
}

.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField {
    width: 350px;
}

form .aligned ul {
    margin-left: 160px;
    padding-left: 10px;
}

form .aligned ul.radiolist {
    display: inline-block;
    margin: 0;
    padding: 0;
}

form .aligned p.help,
form .aligned div.help {
    clear: left;
    margin-top: 0;
    margin-left: 160px;
    padding-left: 10px;
}

form .aligned label + p.help,
form .aligned label + div.help {
    margin-left: 0;
    padding-left: 0;
}

form .aligned p.help:last-child,
form .aligned div.help:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
}

form .aligned input + p.help,
form .aligned textarea + p.help,
form .aligned select + p.help,
form .aligned input + div.help,
form .aligned textarea + div.help,
form .aligned select + div.help {
    margin-left: 160px;
    padding-left: 10px;
}

form .aligned ul li {
    list-style: none;
}

form .aligned table p {
    margin-left: 0;
    padding-left: 0;
}

.aligned .vCheckboxLabel {
    float: none;
    width: auto;
    display: inline-block;
    vertical-align: -3px;
    padding: 0 0 5px 5px;
}

.aligned .vCheckboxLabel + p.help,
.aligned .vCheckboxLabel + div.help {
    margin-top: -4px;
}

.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField {
    width: 610px;
}

.checkbox-row p.help,
.checkbox-row div.help {
    margin-left: 0;
    padding-left: 0;
}

fieldset .fieldBox {
    float: left;
    margin-right: 20px;
}

/* WIDE FIELDSETS */

.wide label {
    width: 200px;
}

form .wide p,
form .wide input + p.help,
form .wide input + div.help {
    margin-left: 200px;
}

form .wide p.help,
form .wide div.help {
    padding-left: 38px;
}

form div.help ul {
    padding-left: 0;
    margin-left: 0;
}

.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField {
    width: 450px;
}

/* COLLAPSED FIELDSETS */

fieldset.collapsed * {
    display: none;
}

fieldset.collapsed h2, fieldset.collapsed {
    display: block;
}

fieldset.collapsed {
    border: 1px solid #eee;
    border-radius: 4px;
    overflow: hidden;
}

fieldset.collapsed h2 {
    background: #f8f8f8;
    color: #666;
}

fieldset .collapse-toggle {
    color: #fff;
}

fieldset.collapsed .collapse-toggle {
    background: transparent;
    display: inline;
    color: #447e9b;
}

/* MONOSPACE TEXTAREAS */

fieldset.monospace textarea {
    font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
}

/* SUBMIT ROW */

.submit-row {
    padding: 12px 14px;
    margin: 0 0 20px;
    background: #f8f8f8;
    border: 1px solid #eee;
    border-radius: 4px;
    text-align: right;
    overflow: hidden;
}

body.popup .submit-row {
    overflow: auto;
}

.submit-row input {
    height: 35px;
    line-height: 15px;
    margin: 0 0 0 5px;
}

.submit-row input.default {
    margin: 0 0 0 8px;
    text-transform: uppercase;
}

.submit-row p {
    margin: 0.3em;
}

.submit-row p.deletelink-box {
    float: left;
    margin: 0;
}

.submit-row a.deletelink {
    display: block;
    background: #ba2121;
    border-radius: 4px;
    padding: 10px 15px;
    height: 15px;
    line-height: 15px;
    color: #fff;
}

.submit-row a.closelink {
    display: inline-block;
    background: #bbbbbb;
    border-radius: 4px;
    padding: 10px 15px;
    height: 15px;
    line-height: 15px;
    margin: 0 0 0 5px;
    color: #fff;
}

.submit-row a.deletelink:focus,
.submit-row a.deletelink:hover,
.submit-row a.deletelink:active {
    background: #a41515;
}

.submit-row a.closelink:focus,
.submit-row a.closelink:hover,
.submit-row a.closelink:active {
    background: #aaaaaa;
}

/* CUSTOM FORM FIELDS */

.vSelectMultipleField {
    vertical-align: top;
}

.vCheckboxField {
    border: none;
}

.vDateField, .vTimeField {
    margin-right: 2px;
    margin-bottom: 4px;
}

.vDateField {
    min-width: 6.85em;
}

.vTimeField {
    min-width: 4.7em;
}

.vURLField {
    width: 30em;
}

.vLargeTextField, .vXMLLargeTextField {
    width: 48em;
}

.flatpages-flatpage #id_content {
    height: 40.2em;
}

.module table .vPositiveSmallIntegerField {
    width: 2.2em;
}

.vTextField, .vUUIDField {
    width: 20em;
}

.vIntegerField {
    width: 5em;
}

.vBigIntegerField {
    width: 10em;
}

.vForeignKeyRawIdAdminField {
    width: 5em;
}

/* INLINES */

.inline-group {
    padding: 0;
    margin: 0 0 30px;
}

.inline-group thead th {
    padding: 8px 10px;
}

.inline-group .aligned label {
    width: 160px;
}

.inline-related {
    position: relative;
}

.inline-related h3 {
    margin: 0;
    color: #666;
    padding: 5px;
    font-size: 13px;
    background: #f8f8f8;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

.inline-related h3 span.delete {
    float: right;
}

.inline-related h3 span.delete label {
    margin-left: 2px;
    font-size: 11px;
}

.inline-related fieldset {
    margin: 0;
    background: #fff;
    border: none;
    width: 100%;
}

.inline-related fieldset.module h3 {
    margin: 0;
    padding: 2px 5px 3px 5px;
    font-size: 11px;
    text-align: left;
    font-weight: bold;
    background: #bcd;
    color: #fff;
}

.inline-group .tabular fieldset.module {
    border: none;
}

.inline-related.tabular fieldset.module table {
    width: 100%;
}

.last-related fieldset {
    border: none;
}

.inline-group .tabular tr.has_original td {
    padding-top: 2em;
}

.inline-group .tabular tr td.original {
    padding: 2px 0 0 0;
    width: 0;
    _position: relative;
}

.inline-group .tabular th.original {
    width: 0px;
    padding: 0;
}

.inline-group .tabular td.original p {
    position: absolute;
    left: 0;
    height: 1.1em;
    padding: 2px 9px;
    overflow: hidden;
    font-size: 9px;
    font-weight: bold;
    color: #666;
    _width: 700px;
}

.inline-group ul.tools {
    padding: 0;
    margin: 0;
    list-style: none;
}

.inline-group ul.tools li {
    display: inline;
    padding: 0 5px;
}

.inline-group div.add-row,
.inline-group .tabular tr.add-row td {
    color: #666;
    background: #f8f8f8;
    padding: 8px 10px;
    border-bottom: 1px solid #eee;
}

.inline-group .tabular tr.add-row td {
    padding: 8px 10px;
    border-bottom: 1px solid #eee;
}

.inline-group ul.tools a.add,
.inline-group div.add-row a,
.inline-group .tabular tr.add-row td a {
    background: url(../img/icon-addlink.svg) 0 1px no-repeat;
    padding-left: 16px;
    font-size: 12px;
}

.empty-form {
    display: none;
}

/* RELATED FIELD ADD ONE / LOOKUP */

.add-another, .related-lookup {
    margin-left: 5px;
    display: inline-block;
    vertical-align: middle;
    background-repeat: no-repeat;
    background-size: 14px;
}

.add-another {
    width: 16px;
    height: 16px;
    background-image: url(../img/icon-addlink.svg);
}

.related-lookup {
    width: 16px;
    height: 16px;
    background-image: url(../img/search.svg);
}

form .related-widget-wrapper ul {
    display: inline-block;
    margin-left: 0;
    padding-left: 0;
}

.clearable-file-input input {
    margin-top: 0;
}


================================================
FILE: static/admin/css/login.css
================================================
/* LOGIN FORM */

body.login {
    background: #f8f8f8;
}

.login #header {
    height: auto;
    padding: 15px 16px;
    justify-content: center;
}

.login #header h1 {
    font-size: 18px;
}

.login #header h1 a {
    color: #fff;
}

.login #content {
    padding: 20px 20px 0;
}

.login #container {
    background: #fff;
    border: 1px solid #eaeaea;
    border-radius: 4px;
    overflow: hidden;
    width: 28em;
    min-width: 300px;
    margin: 100px auto;
}

.login #content-main {
    width: 100%;
}

.login .form-row {
    padding: 4px 0;
    float: left;
    width: 100%;
    border-bottom: none;
}

.login .form-row label {
    padding-right: 0.5em;
    line-height: 2em;
    font-size: 1em;
    clear: both;
    color: #333;
}

.login .form-row #id_username, .login .form-row #id_password {
    clear: both;
    padding: 8px;
    width: 100%;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
}

.login span.help {
    font-size: 10px;
    display: block;
}

.login .submit-row {
    clear: both;
    padding: 1em 0 0 9.4em;
    margin: 0;
    border: none;
    background: none;
    text-align: left;
}

.login .password-reset-link {
    text-align: center;
}


================================================
FILE: static/admin/css/responsive.css
================================================
/* Tablets */

input[type="submit"], button {
    -webkit-appearance: none;
    appearance: none;
}

@media (max-width: 1024px) {
    /* Basic */

    html {
        -webkit-text-size-adjust: 100%;
    }

    td, th {
        padding: 10px;
        font-size: 14px;
    }

    .small {
        font-size: 12px;
    }

    /* Layout */

    #container {
        min-width: 0;
    }

    #content {
        padding: 20px 30px 30px;
    }

    div.breadcrumbs {
        padding: 10px 30px;
    }

    /* Header */

    #header {
        flex-direction: column;
        padding: 15px 30px;
        justify-content: flex-start;
    }

    #branding h1 {
        margin: 0 0 8px;
        font-size: 20px;
        line-height: 1.2;
    }

    #user-tools {
        margin: 0;
        font-weight: 400;
        line-height: 1.85;
        text-align: left;
    }

    #user-tools a {
        display: inline-block;
        line-height: 1.4;
    }

    /* Dashboard */

    .dashboard #content {
        width: auto;
    }

    #content-related {
        margin-right: -290px;
    }

    .colSM #content-related {
        margin-left: -290px;
    }

    .colMS {
        margin-right: 290px;
    }

    .colSM {
        margin-left: 290px;
    }

    .dashboard .module table td a {
        padding-right: 0;
    }

    td .changelink, td .addlink {
        font-size: 13px;
    }

    /* Changelist */

    #changelist #toolbar {
        border: none;
        padding: 15px;
    }

    #changelist-search > div {
        display: -webkit-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        max-width: 480px;
    }

    #changelist-search label {
        line-height: 22px;
    }

    #changelist #toolbar form #searchbar {
        -webkit-flex: 1 0 auto;
        flex: 1 0 auto;
        width: 0;
        height: 22px;
        margin: 0 10px 0 6px;
    }

    #changelist-search .quiet {
        width: 100%;
        margin: 5px 0 0 25px;
    }

    #changelist .actions {
        display: flex;
        flex-wrap: wrap;
        padding: 15px 0;
    }

    #changelist .actions.selected {
        border: none;
    }

    #changelist .actions label {
        display: flex;
    }

    #changelist .actions select {
        background: #fff;
    }

    #changelist .actions .button {
        min-width: 48px;
        margin: 0 10px;
    }

    #changelist .actions span.all,
    #changelist .actions span.clear,
    #changelist .actions span.question,
    #changelist .actions span.action-counter {
        font-size: 11px;
        margin: 0 10px 0 0;
    }

    #changelist-filter {
        width: 200px;
    }

    .change-list .filtered .results,
    .change-list .filtered .paginator,
    .filtered #toolbar,
    .filtered .actions,
    .filtered div.xfull {
        margin-right: 230px;
    }

    #changelist .paginator {
        border-top-color: #eee;
    }

    #changelist .results + .paginator {
        border-top: none;
    }

    /* Forms */

    label {
        font-size: 14px;
    }

    .form-row input[type=text],
    .form-row input[type=password],
    .form-row input[type=email],
    .form-row input[type=url],
    .form-row input[type=tel],
    .form-row input[type=number],
    .form-row textarea,
    .form-row select,
    .form-row .vTextField {
        box-sizing: border-box;
        margin: 0;
        padding: 6px 8px;
        min-height: 36px;
        font-size: 14px;
    }

    .form-row select {
        height: 36px;
    }

    .form-row select[multiple] {
        height: auto;
        min-height: 0;
    }

    fieldset .fieldBox {
        float: none;
        margin: 0 -10px;
        padding: 0 10px;
    }

    fieldset .fieldBox + .fieldBox {
        margin-top: 10px;
        padding-top: 10px;
        border-top: 1px solid #eee;
    }

    textarea {
        max-width: 518px;
        max-height: 120px;
    }

    .aligned label {
        padding-top: 6px;
    }

    .aligned .add-another,
    .aligned .related-lookup,
    .aligned .datetimeshortcuts,
    .aligned .related-lookup + strong {
        align-self: center;
        margin-left: 15px;
    }

    form .aligned ul.radiolist {
        margin-left: 2px;
    }

    /* Related widget */

    .related-widget-wrapper {
        float: none;
    }

    .related-widget-wrapper-link + .selector {
        max-width: calc(100% - 30px);
        margin-right: 15px;
    }

    select + .related-widget-wrapper-link,
    .related-widget-wrapper-link + .related-widget-wrapper-link {
        margin-left: 10px;
    }

    /* Selector */

    .selector {
        display: flex;
        width: 100%;
    }

    .selector .selector-filter {
        display: flex;
        align-items: center;
    }

    .selector .selector-filter label {
        margin: 0 8px 0 0;
    }

    .selector .selector-filter input {
        width: auto;
        min-height: 0;
        flex: 1 1;
    }

    .selector-available, .selector-chosen {
        width: auto;
        flex: 1 1;
        display: flex;
        flex-direction: column;
    }

    .selector select {
        width: 100%;
        flex: 1 0 auto;
        margin-bottom: 5px;
    }

    .selector ul.selector-chooser {
        width: 26px;
        height: 52px;
        padding: 2px 0;
        margin: auto 15px;
        border-radius: 20px;
        transform: translateY(-10px);
    }

    .selector-add, .selector-remove {
        width: 20px;
        height: 20px;
        background-size: 20px auto;
    }

    .selector-add {
        background-position: 0 -120px;
    }

    .selector-remove {
        background-position: 0 -80px;
    }

    a.selector-chooseall, a.selector-clearall {
        align-self: center;
    }

    .stacked {
        flex-direction: column;
        max-width: 480px;
    }

    .stacked > * {
        flex: 0 1 auto;
    }

    .stacked select {
        margin-bottom: 0;
    }

    .stacked .selector-available, .stacked .selector-chosen {
        width: auto;
    }

    .stacked ul.selector-chooser {
        width: 52px;
        height: 26px;
        padding: 0 2px;
        margin: 15px auto;
        transform: none;
    }

    .stacked .selector-chooser li {
        padding: 3px;
    }

    .stacked .selector-add, .stacked .selector-remove {
        background-size: 20px auto;
    }

    .stacked .selector-add {
        background-position: 0 -40px;
    }

    .stacked .active.selector-add {
        background-position: 0 -60px;
    }

    .stacked .selector-remove {
        background-position: 0 0;
    }

    .stacked .active.selector-remove {
        background-position: 0 -20px;
    }

    .help-tooltip, .selector .help-icon {
        display: none;
    }

    form .form-row p.datetime {
        width: 100%;
    }

    .datetime input {
        width: 50%;
        max-width: 120px;
    }

    .datetime span {
        font-size: 13px;
    }

    .datetime .timezonewarning {
        display: block;
        font-size: 11px;
        color: #999;
    }

    .datetimeshortcuts {
        color: #ccc;
    }

    .inline-group {
        overflow: auto;
    }

    /* Messages */

    ul.messagelist li {
        padding-left: 55px;
        background-position: 30px 12px;
    }

    ul.messagelist li.error {
        background-position: 30px 12px;
    }

    ul.messagelist li.warning {
        background-position: 30px 14px;
    }

    /* Login */

    .login #header {
        padding: 15px 20px;
    }

    .login #branding h1 {
        margin: 0;
    }

    /* GIS */

    div.olMap {
        max-width: calc(100vw - 30px);
        max-height: 300px;
    }

    .olMap + .clear_features {
        display: block;
        margin-top: 10px;
    }

    /* Docs */

    .module table.xfull {
        width: 100%;
    }

    pre.literal-block {
        overflow: auto;
    }
}

/* Mobile */

@media (max-width: 767px) {
    /* Layout */

    #header, #content, #footer {
        padding: 15px;
    }

    #footer:empty {
        padding: 0;
    }

    div.breadcrumbs {
        padding: 10px 15px;
    }

    /* Dashboard */

    .colMS, .colSM {
        margin: 0;
    }

    #content-related, .colSM #content-related {
        width: 100%;
        margin: 0;
    }

    #content-related .module {
        margin-bottom: 0;
    }

    #content-related .module h2 {
        padding: 10px 15px;
        font-size: 16px;
    }

    /* Changelist */

    #changelist {
        display: flex;
        flex-direction: column;
    }

    #changelist #toolbar {
        order: 1;
        padding: 10px;
    }

    #changelist .xfull {
        order: 2;
    }

    #changelist-form {
        order: 3;
    }

    #changelist-filter {
        order: 4;
    }

    #changelist .actions label {
        flex: 1 1;
    }

    #changelist .actions select {
        flex: 1 0;
        width: 100%;
    }

    #changelist .actions span {
        flex: 1 0 100%;
    }

    .change-list .filtered .results, .change-list .filtered .paginator,
    .filtered #toolbar, .filtered .actions, .filtered div.xfull {
        margin-right: 0;
    }

    #changelist-filter {
        position: static;
        width: auto;
        margin-top: 30px;
    }

    .object-tools {
        float: none;
        margin: 0 0 15px;
        padding: 0;
        overflow: hidden;
    }

    .object-tools li {
        height: auto;
        margin-left: 0;
    }

    .object-tools li + li {
        margin-left: 15px;
    }

    /* Forms */

    .form-row {
        padding: 15px 0;
    }

    .aligned .form-row,
    .aligned .form-row > div {
        display: flex;
        flex-wrap: wrap;
        max-width: 100vw;
    }

    .aligned .form-row > div {
        width: calc(100vw - 30px);
    }

    textarea {
        max-width: none;
    }

    .vURLField {
        width: auto;
    }

    fieldset .fieldBox + .fieldBox {
        margin-top: 15px;
        padding-top: 15px;
    }

    fieldset.collapsed .form-row {
        display: none;
    }

    .aligned label {
        width: 100%;
        padding: 0 0 10px;
    }

    .aligned label:after {
        max-height: 0;
    }

    .aligned .form-row input,
    .aligned .form-row select,
    .aligned .form-row textarea {
        flex: 1 1 auto;
        max-width: 100%;
    }

    .aligned .checkbox-row {
        align-items: center;
    }

    .aligned .checkbox-row input {
        flex: 0 1 auto;
        margin: 0;
    }

    .aligned .vCheckboxLabel {
        flex: 1 0;
        padding: 1px 0 0 5px;
    }

    .aligned label + p,
    .aligned label + div.help,
    .aligned label + div.readonly {
        padding: 0;
        margin-left: 0;
    }

    .aligned p.file-upload {
        margin-left: 0;
        font-size: 13px;
    }

    span.clearable-file-input {
        margin-left: 15px;
    }

    span.clearable-file-input label {
        font-size: 13px;
        padding-bottom: 0;
    }

    .aligned .timezonewarning {
        flex: 1 0 100%;
        margin-top: 5px;
    }

    form .aligned .form-row div.help {
        width: 100%;
        margin: 5px 0 0;
        padding: 0;
    }

    form .aligned ul {
        margin-left: 0;
        padding-left: 0;
    }

    form .aligned ul.radiolist {
        margin-right: 15px;
        margin-bottom: -3px;
    }

    form .aligned ul.radiolist li + li {
        margin-top: 5px;
    }

    /* Related widget */

    .related-widget-wrapper {
        width: 100%;
        display: flex;
        align-items: flex-start;
    }

    .related-widget-wrapper .selector {
        order: 1;
    }

    .related-widget-wrapper > a {
        order: 2;
    }

    .related-widget-wrapper .radiolist ~ a {
        align-self: flex-end;
    }

    .related-widget-wrapper > select ~ a {
        align-self: center;
    }

    select + .related-widget-wrapper-link,
    .related-widget-wrapper-link + .related-widget-wrapper-link {
        margin-left: 15px;
    }

    /* Selector */

    .selector {
        flex-direction: column;
    }

    .selector > * {
        float: none;
    }

    .selector-available, .selector-chosen {
        margin-bottom: 0;
        flex: 1 1 auto;
    }

    .selector select {
        max-height: 96px;
    }

    .selector ul.selector-chooser {
        display: block;
        float: none;
        width: 52px;
        height: 26px;
        padding: 0 2px;
        margin: 15px auto 20px;
        transform: none;
    }

    .selector ul.selector-chooser li {
        float: left;
    }

    .selector-remove {
        background-position: 0 0;
    }

    .selector-add  {
        background-position: 0 -40px;
    }

    /* Inlines */

    .inline-group[data-inline-type="stacked"] .inline-related {
        border: 2px solid #eee;
        border-radius: 4px;
        margin-top: 15px;
        overflow: auto;
    }

    .inline-group[data-inline-type="stacked"] .inline-related > * {
        box-sizing: border-box;
    }

    .inline-group[data-inline-type="stacked"] .inline-related + .inline-related {
        margin-top: 30px;
    }

    .inline-group[data-inline-type="stacked"] .inline-related .module {
        padding: 0 10px;
    }

    .inline-group[data-inline-type="stacked"] .inline-related .module .form-row:last-child {
        border-bottom: none;
    }

    .inline-group[data-inline-type="stacked"] .inline-related h3 {
        padding: 10px;
        border-top-width: 0;
        border-bottom-width: 2px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }

    .inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label {
        margin-right: auto;
    }

    .inline-group[data-inline-type="stacked"] .inline-related h3 span.delete {
        float: none;
        flex: 1 1 100%;
        margin-top: 5px;
    }

    .inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) {
        width: 100%;
    }

    .inline-group[data-inline-type="stacked"] .aligned label {
        width: 100%;
    }

    .inline-group[data-inline-type="stacked"] div.add-row {
        margin-top: 15px;
        border: 1px solid #eee;
        border-radius: 4px;
    }

    .inline-group div.add-row,
    .inline-group .tabular tr.add-row td {
        padding: 0;
    }

    .inline-group div.add-row a,
    .inline-group .tabular tr.add-row td a {
        display: block;
        padding: 8px 10px 8px 26px;
        background-position: 8px 9px;
    }

    /* Submit row */

    .submit-row {
        padding: 10px 10px 0;
        margin: 0 0 15px;
        display: flex;
        flex-direction: column;
    }

    .submit-row > * {
        width: 100%;
    }

    .submit-row input, .submit-row input.default, .submit-row a, .submit-row a.closelink {
        float: none;
        margin: 0 0 10px;
        text-align: center;
    }

    .submit-row a.closelink {
        padding: 10px 0;
    }

    .submit-row p.deletelink-box {
        order: 4;
    }

    /* Messages */

    ul.messagelist li {
        padding-left: 40px;
        background-position: 15px 12px;
    }

    ul.messagelist li.error {
        background-position: 15px 12px;
    }

    ul.messagelist li.warning {
        background-position: 15px 14px;
    }

    /* Paginator */

    .paginator .this-page, .paginator a:link, .paginator a:visited {
        padding: 4px 10px;
    }

    /* Login */

    body.login {
        padding: 0 15px;
    }

    .login #container {
        width: auto;
        max-width: 480px;
        margin: 50px auto;
    }

    .login #header,
    .login #content {
        padding: 15px;
    }

    .login #content-main {
        float: none;
    }

    .login .form-row {
        padding: 0;
    }

    .login .form-row + .form-row {
        margin-top: 15px;
    }

    .login .form-row label {
        display: block;
        margin: 0 0 5px;
        padding: 0;
        line-height: 1.2;
    }

    .login .submit-row {
        padding: 15px 0 0;
    }

    .login br, .login .submit-row label {
        display: none;
    }

    .login .submit-row input {
        margin: 0;
        text-transform: uppercase;
    }

    .errornote {
        margin: 0 0 20px;
        padding: 8px 12px;
        font-size: 13px;
    }

    /* Calendar and clock */

    .calendarbox, .clockbox {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%);
        margin: 0;
        border: none;
        overflow: visible;
    }

    .calendarbox:before, .clockbox:before {
        content: '';
        position: fixed;
        top: 50%;
        left: 50%;
        width: 100vw;
        height: 100vh;
        background: rgba(0, 0, 0, 0.75);
        transform: translate(-50%, -50%);
    }

    .calendarbox > *, .clockbox > * {
        position: relative;
        z-index: 1;
    }

    .calendarbox > div:first-child {
        z-index: 2;
    }

    .calendarbox .calendar, .clockbox h2 {
        border-radius: 4px 4px 0 0;
        overflow: hidden;
    }

    .calendarbox .calendar-cancel, .clockbox .calendar-cancel {
        border-radius: 0 0 4px 4px;
        overflow: hidden;
    }

    .calendar-shortcuts {
        padding: 10px 0;
        font-size: 12px;
        line-height: 12px;
    }

    .calendar-shortcuts a {
        margin: 0 4px;
    }

    .timelist a {
        background: #fff;
        padding: 4px;
    }

    .calendar-cancel {
        padding: 8px 10px;
    }

    .clockbox h2 {
        padding: 8px 15px;
    }

    .calendar caption {
        padding: 10px;
    }

    .calendarbox .calendarnav-previous, .calendarbox .calendarnav-next {
        z-index: 1;
        top: 10px;
    }

    /* History */

    table#change-history tbody th, table#change-history tbody td {
        font-size: 13px;
        word-break: break-word;
    }

    table#change-history tbody th {
        width: auto;
    }

    /* Docs */

    table.model tbody th, table.model tbody td {
        font-size: 13px;
        word-break: break-word;
    }
}


================================================
FILE: static/admin/css/responsive_rtl.css
================================================
/* TABLETS */

@media (max-width: 1024px) {
    [dir="rtl"] .colMS {
        margin-right: 0;
    }

    [dir="rtl"] #user-tools {
        text-align: right;
    }

    [dir="rtl"] #changelist .actions label {
        padding-left: 10px;
        padding-right: 0;
    }

    [dir="rtl"] #changelist .actions select {
        margin-left: 0;
        margin-right: 15px;
    }

    [dir="rtl"] .change-list .filtered .results,
    [dir="rtl"] .change-list .filtered .paginator,
    [dir="rtl"] .filtered #toolbar,
    [dir="rtl"] .filtered div.xfull,
    [dir="rtl"] .filtered .actions {
        margin-right: 0;
        margin-left: 230px;
    }

    [dir="rtl"] .inline-group ul.tools a.add,
    [dir="rtl"] .inline-group div.add-row a,
    [dir="rtl"] .inline-group .tabular tr.add-row td a {
        padding: 8px 26px 8px 10px;
        background-position: calc(100% - 8px) 9px;
    }

    [dir="rtl"] .related-widget-wrapper-link + .selector {
        margin-right: 0;
        margin-left: 15px;
    }

    [dir="rtl"] .selector .selector-filter label {
        margin-right: 0;
        margin-left: 8px;
    }

    [dir="rtl"] .object-tools li {
        float: right;
    }

    [dir="rtl"] .object-tools li + li {
        margin-left: 0;
        margin-right: 15px;
    }

    [dir="rtl"] .dashboard .module table td a {
        padding-left: 0;
        padding-right: 16px;
    }
}

/* MOBILE */

@media (max-width: 767px) {
    [dir="rtl"] .change-list .filtered .results,
    [dir="rtl"] .change-list .filtered .paginator,
    [dir="rtl"] .filtered #toolbar,
    [dir="rtl"] .filtered div.xfull,
    [dir="rtl"] .filtered .actions {
        margin-left: 0;
    }

    [dir="rtl"] .aligned .add-another,
    [dir="rtl"] .aligned .related-lookup,
    [dir="rtl"] .aligned .datetimeshortcuts {
        margin-left: 0;
        margin-right: 15px;
    }

    [dir="rtl"] .aligned ul {
        margin-right: 0;
    }
}


================================================
FILE: static/admin/css/rtl.css
================================================
body {
    direction: rtl;
}

/* LOGIN */

.login .form-row {
    float: right;
}

.login .form-row label {
    float: right;
    padding-left: 0.5em;
    padding-right: 0;
    text-align: left;
}

.login .submit-row {
    clear: both;
    padding: 1em 9.4em 0 0;
}

/* GLOBAL */

th {
    text-align: right;
}

.module h2, .module caption {
    text-align: right;
}

.module ul, .module ol {
    margin-left: 0;
    margin-right: 1.5em;
}

.viewlink, .addlink, .changelink {
    padding-left: 0;
    padding-right: 16px;
    background-position: 100% 1px;
}

.deletelink {
    padding-left: 0;
    padding-right: 16px;
    background-position: 100% 1px;
}

.object-tools {
    float: left;
}

thead th:first-child,
tfoot td:first-child {
    border-left: none;
}

/* LAYOUT */

#user-tools {
    right: auto;
    left: 0;
    text-align: left;
}

div.breadcrumbs {
    text-align: right;
}

#content-main {
    float: right;
}

#content-related {
    float: left;
    margin-left: -300px;
    margin-right: auto;
}

.colMS {
    margin-left: 300px;
    margin-right: 0;
}

/* SORTABLE TABLES */

table thead th.sorted .sortoptions {
   float: left;
}

thead th.sorted .text {
    padding-right: 0;
    padding-left: 42px;
}

/* dashboard styles */

.dashboard .module table td a {
    padding-left: .6em;
    padding-right: 16px;
}

/* changelists styles */

.change-list .filtered table {
    border-left: none;
    border-right: 0px none;
}

#changelist-filter {
    right: auto;
    left: 0;
    border-left: none;
    border-right: none;
}

.change-list .filtered .results, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull {
    margin-right: 0;
    margin-left: 280px;
}

#changelist-filter li.selected {
    border-left: none;
    padding-left: 10px;
    margin-left: 0;
    border-right: 5px solid #eaeaea;
    padding-right: 10px;
    margin-right: -15px;
}

.filtered .actions {
    margin-left: 280px;
    margin-right: 0;
}

#changelist table tbody td:first-child, #changelist table tbody th:first-child {
    border-right: none;
    border-left: none;
}

/* FORMS */

.aligned label {
    padding: 0 0 3px 1em;
    float: right;
}

.submit-row {
    text-align: left
}

.submit-row p.deletelink-box {
    float: right;
}

.submit-row input.default {
    margin-left: 0;
}

.vDateField, .vTimeField {
    margin-left: 2px;
}

.aligned .form-row input {
    margin-left: 5px;
}

form .aligned p.help, form .aligned div.help {
    clear: right;
}

form .aligned ul {
    margin-right: 163px;
    margin-left: 0;
}

form ul.inline li {
    float: right;
    padding-right: 0;
    padding-left: 7px;
}

input[type=submit].default, .submit-row input.default {
    float: left;
}

fieldset .fieldBox {
    float: right;
    margin-left: 20px;
    margin-right: 0;
}

.errorlist li {
    background-position: 100% 12px;
    padding: 0;
}

.errornote {
    background-position: 100% 12px;
    padding: 10px 12px;
}

/* WIDGETS */

.calendarnav-previous {
    top: 0;
    left: auto;
    right: 10px;
}

.calendarnav-next {
    top: 0;
    right: auto;
    left: 10px;
}

.calendar caption, .calendarbox h2 {
    text-align: center;
}

.selector {
    float: right;
}

.selector .selector-filter {
    text-align: right;
}

.inline-deletelink {
    float: left;
}

form .form-row p.datetime {
    overflow: hidden;
}

.related-widget-wrapper {
    float: right;
}

/* MISC */

.inline-related h2, .inline-group h2 {
    text-align: right
}

.inline-related h3 span.delete {
    padding-right: 20px;
    padding-left: inherit;
    left: 10px;
    right: inherit;
    float:left;
}

.inline-related h3 span.delete label {
    margin-left: inherit;
    margin-right: 2px;
}

/* IE7 specific bug fixes */

div.colM {
    position: relative;
}

.submit-row input {
    float: left;
}


================================================
FILE: static/admin/css/vendor/select2/LICENSE-SELECT2.md
================================================
The MIT License (MIT)

Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: static/admin/css/vendor/select2/select2.css
================================================
.select2-container {
  box-sizing: border-box;
  display: inline-block;
  margin: 0;
  position: relative;
  vertical-align: middle; }
  .select2-container .select2-selection--single {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    height: 28px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--single .select2-selection__rendered {
      display: block;
      padding-left: 8px;
      padding-right: 20px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    .select2-container .select2-selection--single .select2-selection__clear {
      position: relative; }
  .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
    padding-right: 8px;
    padding-left: 20px; }
  .select2-container .select2-selection--multiple {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    min-height: 32px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--multiple .select2-selection__rendered {
      display: inline-block;
      overflow: hidden;
      padding-left: 8px;
      text-overflow: ellipsis;
      white-space: nowrap; }
  .select2-container .select2-search--inline {
    float: left; }
    .select2-container .select2-search--inline .select2-search__field {
      box-sizing: border-box;
      border: none;
      font-size: 100%;
      margin-top: 5px;
      padding: 0; }
      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
        -webkit-appearance: none; }

.select2-dropdown {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  box-sizing: border-box;
  display: block;
  position: absolute;
  left: -100000px;
  width: 100%;
  z-index: 1051; }

.select2-results {
  display: block; }

.select2-results__options {
  list-style: none;
  margin: 0;
  padding: 0; }

.select2-results__option {
  padding: 6px;
  user-select: none;
  -webkit-user-select: none; }
  .select2-results__option[aria-selected] {
    cursor: pointer; }

.select2-container--open .select2-dropdown {
  left: 0; }

.select2-container--open .select2-dropdown--above {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--open .select2-dropdown--below {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-search--dropdown {
  display: block;
  padding: 4px; }
  .select2-search--dropdown .select2-search__field {
    padding: 4px;
    width: 100%;
    box-sizing: border-box; }
    .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
      -webkit-appearance: none; }
  .select2-search--dropdown.select2-search--hide {
    display: none; }

.select2-close-mask {
  border: 0;
  margin: 0;
  padding: 0;
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  min-height: 100%;
  min-width: 100%;
  height: auto;
  width: auto;
  opacity: 0;
  z-index: 99;
  background-color: #fff;
  filter: alpha(opacity=0); }

.select2-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important; }

.select2-container--default .select2-selection--single {
  background-color: #fff;
  border: 1px solid #aaa;
  border-radius: 4px; }
  .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 28px; }
  .select2-container--default .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold; }
  .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px; }
    .select2-container--default .select2-selection--single .select2-selection__arrow b {
      border-color: #888 transparent transparent transparent;
      border-style: solid;
      border-width: 5px 4px 0 4px;
      height: 0;
      left: 50%;
      margin-left: -4px;
      margin-top: -2px;
      position: absolute;
      top: 50%;
      width: 0; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  left: 1px;
  right: auto; }

.select2-container--default.select2-container--disabled .select2-selection--single {
  background-color: #eee;
  cursor: default; }
  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
    display: none; }

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent #888 transparent;
  border-width: 0 4px 5px 4px; }

.select2-container--default .select2-selection--multiple {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  cursor: text; }
  .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    box-sizing: border-box;
    list-style: none;
    margin: 0;
    padding: 0 5px;
    width: 100%; }
    .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
      list-style: none; }
  .select2-container--default .select2-selection--multiple .select2-selection__placeholder {
    color: #999;
    margin-top: 5px;
    float: left; }
  .select2-container--default .select2-selection--multiple .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-top: 5px;
    margin-right: 10px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #aaa;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #999;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #333; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
  float: right; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  margin-left: 5px;
  margin-right: auto; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--default.select2-container--focus .select2-selection--multiple {
  border: solid black 1px;
  outline: 0; }

.select2-container--default.select2-container--disabled .select2-selection--multiple {
  background-color: #eee;
  cursor: default; }

.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
  display: none; }

.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid #aaa; }

.select2-container--default .select2-search--inline .select2-search__field {
  background: transparent;
  border: none;
  outline: 0;
  box-shadow: none;
  -webkit-appearance: textfield; }

.select2-container--default .select2-results > .select2-results__options {
  max-height: 200px;
  overflow-y: auto; }

.select2-container--default .select2-results__option[role=group] {
  padding: 0; }

.select2-container--default .select2-results__option[aria-disabled=true] {
  color: #999; }

.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: #ddd; }

.select2-container--default .select2-results__option .select2-results__option {
  padding-left: 1em; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
    padding-left: 0; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -1em;
    padding-left: 2em; }
    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
      margin-left: -2em;
      padding-left: 3em; }
      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
        margin-left: -3em;
        padding-left: 4em; }
        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
          margin-left: -4em;
          padding-left: 5em; }
          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
            margin-left: -5em;
            padding-left: 6em; }

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #5897fb;
  color: white; }

.select2-container--default .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic .select2-selection--single {
  background-color: #f7f7f7;
  border: 1px solid #aaa;
  border-radius: 4px;
  outline: 0;
  background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
  background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
  .select2-container--classic .select2-selection--single:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 28px; }
  .select2-container--classic .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-right: 10px; }
  .select2-container--classic .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--classic .select2-selection--single .select2-selection__arrow {
    background-color: #ddd;
    border: none;
    border-left: 1px solid #aaa;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px;
    background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
    background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
    background-repeat: repeat-x;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
    .select2-container--classic .select2-selection--single .select2-selection__arrow b {
      border-color: #888 transparent transparent transparent;
      border-style: solid;
      border-width: 5px 4px 0 4px;
      height: 0;
      left: 50%;
      margin-left: -4px;
      margin-top: -2px;
      position: absolute;
      top: 50%;
      width: 0; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  border: none;
  border-right: 1px solid #aaa;
  border-radius: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  left: 1px;
  right: auto; }

.select2-container--classic.select2-container--open .select2-selection--single {
  border: 1px solid #5897fb; }
  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
    background: transparent;
    border: none; }
    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
      border-color: transparent transparent #888 transparent;
      border-width: 0 4px 5px 4px; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
  background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
  background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }

.select2-container--classic .select2-selection--multiple {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  cursor: text;
  outline: 0; }
  .select2-container--classic .select2-selection--multiple:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {
    list-style: none;
    margin: 0;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__clear {
    display: none; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #aaa;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
    color: #888;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #555; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  float: right; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  margin-left: 5px;
  margin-right: auto; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--classic.select2-container--open .select2-selection--multiple {
  border: 1px solid #5897fb; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--classic .select2-search--dropdown .select2-search__field {
  border: 1px solid #aaa;
  outline: 0; }

.select2-container--classic .select2-search--inline .select2-search__field {
  outline: 0;
  box-shadow: none; }

.select2-container--classic .select2-dropdown {
  background-color: white;
  border: 1px solid transparent; }

.select2-container--classic .select2-dropdown--above {
  border-bottom: none; }

.select2-container--classic .select2-dropdown--below {
  border-top: none; }

.select2-container--classic .select2-results > .select2-results__options {
  max-height: 200px;
  overflow-y: auto; }

.select2-container--classic .select2-results__option[role=group] {
  padding: 0; }

.select2-container--classic .select2-results__option[aria-disabled=true] {
  color: grey; }

.select2-container--classic .select2-results__option--highlighted[aria-selected] {
  background-color: #3875d7;
  color: white; }

.select2-container--classic .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic.select2-container--open .select2-dropdown {
  border-color: #5897fb; }


================================================
FILE: static/admin/css/widgets.css
================================================
/* SELECTOR (FILTER INTERFACE) */

.selector {
    width: 800px;
    float: left;
}

.selector select {
    width: 380px;
    height: 17.2em;
}

.selector-available, .selector-chosen {
    float: left;
    width: 380px;
    text-align: center;
    margin-bottom: 5px;
}

.selector-chosen select {
    border-top: none;
}

.selector-available h2, .selector-chosen h2 {
    border: 1px solid #ccc;
    border-radius: 4px 4px 0 0;
}

.selector-chosen h2 {
    background: #79aec8;
    color: #fff;
}

.selector .selector-available h2 {
    background: #f8f8f8;
    color: #666;
}

.selector .selector-filter {
    background: white;
    border: 1px solid #ccc;
    border-width: 0 1px;
    padding: 8px;
    color: #999;
    font-size: 10px;
    margin: 0;
    text-align: left;
}

.selector .selector-filter label,
.inline-group .aligned .selector .selector-filter label {
    float: left;
    margin: 7px 0 0;
    width: 18px;
    height: 18px;
    padding: 0;
    overflow: hidden;
    line-height: 1;
}

.selector .selector-available input {
    width: 320px;
    margin-left: 8px;
}

.selector ul.selector-chooser {
    float: left;
    width: 22px;
    background-color: #eee;
    border-radius: 10px;
    margin: 10em 5px 0 5px;
    padding: 0;
}

.selector-chooser li {
    margin: 0;
    padding: 3px;
    list-style-type: none;
}

.selector select {
    padding: 0 10px;
    margin: 0 0 10px;
    border-radius: 0 0 4px 4px;
}

.selector-add, .selector-remove {
    width: 16px;
    height: 16px;
    display: block;
    text-indent: -3000px;
    overflow: hidden;
    cursor: default;
    opacity: 0.3;
}

.active.selector-add, .active.selector-remove {
    opacity: 1;
}

.active.selector-add:hover, .active.selector-remove:hover {
    cursor: pointer;
}

.selector-add {
    background: url(../img/selector-icons.svg) 0 -96px no-repeat;
}

.active.selector-add:focus, .active.selector-add:hover {
    background-position: 0 -112px;
}

.selector-remove {
    background: url(../img/selector-icons.svg) 0 -64px no-repeat;
}

.active.selector-remove:focus, .active.selector-remove:hover {
    background-position: 0 -80px;
}

a.selector-chooseall, a.selector-clearall {
    display: inline-block;
    height: 16px;
    text-align: left;
    margin: 1px auto 3px;
    overflow: hidden;
    font-weight: bold;
    line-height: 16px;
    color: #666;
    text-decoration: none;
    opacity: 0.3;
}

a.active.selector-chooseall:focus, a.active.selector-clearall:focus,
a.active.selector-chooseall:hover, a.active.selector-clearall:hover {
    color: #447e9b;
}

a.active.selector-chooseall, a.active.selector-clearall {
    opacity: 1;
}

a.active.selector-chooseall:hover, a.active.selector-clearall:hover {
    cursor: pointer;
}

a.selector-chooseall {
    padding: 0 18px 0 0;
    background: url(../img/selector-icons.svg) right -160px no-repeat;
    cursor: default;
}

a.active.selector-chooseall:focus, a.active.selector-chooseall:hover {
    background-position: 100% -176px;
}

a.selector-clearall {
    padding: 0 0 0 18px;
    background: url(../img/selector-icons.svg) 0 -128px no-repeat;
    cursor: default;
}

a.active.selector-clearall:focus, a.active.selector-clearall:hover {
    background-position: 0 -144px;
}

/* STACKED SELECTORS */

.stacked {
    float: left;
    width: 490px;
}

.stacked select {
    width: 480px;
    height: 10.1em;
}

.stacked .selector-available, .stacked .selector-chosen {
    width: 480px;
}

.stacked .selector-available {
    margin-bottom: 0;
}

.stacked .selector-available input {
    width: 422px;
}

.stacked ul.selector-chooser {
    height: 22px;
    width: 50px;
    margin: 0 0 10px 40%;
    background-color: #eee;
    border-radius: 10px;
}

.stacked .selector-chooser li {
    float: left;
    padding: 3px 3px 3px 5px;
}

.stacked .selector-chooseall, .stacked .selector-clearall {
    display: none;
}

.stacked .selector-add {
    background: url(../img/selector-icons.svg) 0 -32px no-repeat;
    cursor: default;
}

.stacked .active.selector-add {
    background-position: 0 -48px;
    cursor: pointer;
}

.stacked .selector-remove {
    background: url(../img/selector-icons.svg) 0 0 no-repeat;
    cursor: default;
}

.stacked .active.selector-remove {
    background-position: 0 -16px;
    cursor: pointer;
}

.selector .help-icon {
    background: url(../img/icon-unknown.svg) 0 0 no-repeat;
    display: inline-block;
    vertical-align: middle;
    margin: -2px 0 0 2px;
    width: 13px;
    height: 13px;
}

.selector .selector-chosen .help-icon {
    background: url(../img/icon-unknown-alt.svg) 0 0 no-repeat;
}

.selector .search-label-icon {
    background: url(../img/search.svg) 0 0 no-repeat;
    display: inline-block;
    height: 18px;
    width: 18px;
}

/* DATE AND TIME */

p.datetime {
    line-height: 20px;
    margin: 0;
    padding: 0;
    color: #666;
    font-weight: bold;
}

.datetime span {
    white-space: nowrap;
    font-weight: normal;
    font-size: 11px;
    color: #ccc;
}

.datetime input, .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField {
    min-width: 0;
    margin-left: 5px;
    margin-bottom: 4px;
}

table p.datetime {
    font-size: 11px;
    margin-left: 0;
    padding-left: 0;
}

.datetimeshortcuts .clock-icon, .datetimeshortcuts .date-icon {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    height: 16px;
    width: 16px;
    overflow: hidden;
}

.datetimeshortcuts .clock-icon {
    background: url(../img/icon-clock.svg) 0 0 no-repeat;
}

.datetimeshortcuts a:focus .clock-icon,
.datetimeshortcuts a:hover .clock-icon {
    background-position: 0 -16px;
}

.datetimeshortcuts .date-icon {
    background: url(../img/icon-calendar.svg) 0 0 no-repeat;
    top: -1px;
}

.datetimeshortcuts a:focus .date-icon,
.datetimeshortcuts a:hover .date-icon {
    background-position: 0 -16px;
}

.timezonewarning {
    font-size: 11px;
    color: #999;
}

/* URL */

p.url {
    line-height: 20px;
    margin: 0;
    padding: 0;
    color: #666;
    font-size: 11px;
    font-weight: bold;
}

.url a {
    font-weight: normal;
}

/* FILE UPLOADS */

p.file-upload {
    line-height: 20px;
    margin: 0;
    padding: 0;
    color: #666;
    font-size: 11px;
    font-weight: bold;
}

.aligned p.file-upload {
    margin-left: 170px;
}

.file-upload a {
    font-weight: normal;
}

.file-upload .deletelink {
    margin-left: 5px;
}

span.clearable-file-input label {
    color: #333;
    font-size: 11px;
    display: inline;
    float: none;
}

/* CALENDARS & CLOCKS */

.calendarbox, .clockbox {
    margin: 5px auto;
    font-size: 12px;
    width: 19em;
    text-align: center;
    background: white;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    position: relative;
}

.clockbox {
    width: auto;
}

.calendar {
    margin: 0;
    padding: 0;
}

.calendar table {
    margin: 0;
    padding: 0;
    border-collapse: collapse;
    background: white;
    width: 100%;
}

.calendar caption, .calendarbox h2 {
    margin: 0;
    text-align: center;
    border-top: none;
    background: #f5dd5d;
    font-weight: 700;
    font-size: 12px;
    color: #333;
}

.calendar th {
    padding: 8px 5px;
    background: #f8f8f8;
    border-bottom: 1px solid #ddd;
    font-weight: 400;
    font-size: 12px;
    text-align: center;
    color: #666;
}

.calendar td {
    font-weight: 400;
    font-size: 12px;
    text-align: center;
    padding: 0;
    border-top: 1px solid #eee;
    border-bottom: none;
}

.calendar td.selected a {
    background: #79aec8;
    color: #fff;
}

.calendar td.nonday {
    background: #f8f8f8;
}

.calendar td.today a {
    font-weight: 700;
}

.calendar td a, .timelist a {
    display: block;
    font-weight: 400;
    padding: 6px;
    text-decoration: none;
    color: #444;
}

.calendar td a:focus, .timelist a:focus,
.calendar td a:hover, .timelist a:hover {
    background: #79aec8;
    color: white;
}

.calendar td a:active, .timelist a:active {
    background: #417690;
    color: white;
}

.calendarnav {
    font-size: 10px;
    text-align: center;
    color: #ccc;
    margin: 0;
    padding: 1px 3px;
}

.calendarnav a:link, #calendarnav a:visited,
#calendarnav a:focus, #calendarnav a:hover {
    color: #999;
}

.calendar-shortcuts {
    background: white;
    font-size: 11px;
    line-height: 11px;
    border-top: 1px solid #eee;
    padding: 8px 0;
    color: #ccc;
}

.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next {
    display: block;
    position: absolute;
    top: 8px;
    width: 15px;
    height: 15px;
    text-indent: -9999px;
    padding: 0;
}

.calendarnav-previous {
    left: 10px;
    background: url(../img/calendar-icons.svg) 0 0 no-repeat;
}

.calendarbox .calendarnav-previous:focus,
.calendarbox .calendarnav-previous:hover {
    background-position: 0 -15px;
}

.calendarnav-next {
    right: 10px;
    background: url(../img/calendar-icons.svg) 0 -30px no-repeat;
}

.calendarbox .calendarnav-next:focus,
.calendarbox .calendarnav-next:hover {
    background-position: 0 -45px;
}

.calendar-cancel {
    margin: 0;
    padding: 4px 0;
    font-size: 12px;
    background: #eee;
    border-top: 1px solid #ddd;
    color: #333;
}

.calendar-cancel:focus, .calendar-cancel:hover {
    background: #ddd;
}

.calendar-cancel a {
    color: black;
    display: block;
}

ul.timelist, .timelist li {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.timelist a {
    padding: 2px;
}

/* EDIT INLINE */

.inline-deletelink {
    float: right;
    text-indent: -9999px;
    background: url(../img/inline-delete.svg) 0 0 no-repeat;
    width: 16px;
    height: 16px;
    border: 0px none;
}

.inline-deletelink:focus, .inline-deletelink:hover {
    cursor: pointer;
}

/* RELATED WIDGET WRAPPER */
.related-widget-wrapper {
    float: left;       /* display properly in form rows with multiple fields */
    overflow: hidden;  /* clear floated contents */
}

.related-widget-wrapper-link {
    opacity: 0.3;
}

.related-widget-wrapper-link:link {
    opacity: .8;
}

.related-widget-wrapper-link:link:focus,
.related-widget-wrapper-link:link:hover {
    opacity: 1;
}

select + .related-widget-wrapper-link,
.related-widget-wrapper-link + .related-widget-wrapper-link {
    margin-left: 7px;
}


================================================
FILE: static/admin/fonts/LICENSE.txt
================================================

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: static/admin/fonts/README.txt
================================================
Roboto webfont source: https://www.google.com/fonts/specimen/Roboto
WOFF files extracted using https://github.com/majodev/google-webfonts-helper
Weights used in this project: Light (300), Regular (400), Bold (700)


================================================
FILE: static/admin/img/LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2014 Code Charm Ltd

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: static/admin/img/README.txt
================================================
All icons are taken from Font Awesome (http://fontawesome.io/) project.
The Font Awesome font is licensed under the SIL OFL 1.1:
- https://scripts.sil.org/OFL

SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG
Font-Awesome-SVG-PNG is licensed under the MIT license (see file license
in current folder).


================================================
FILE: static/admin/js/SelectBox.js
================================================
(function($) {
    'use strict';
    var SelectBox = {
        cache: {},
        init: function(id) {
            var box = document.getElementById(id);
            var node;
            SelectBox.cache[id] = [];
            var cache = SelectBox.cache[id];
            var boxOptions = box.options;
            var boxOptionsLength = boxOptions.length;
            for (var i = 0, j = boxOptionsLength; i < j; i++) {
                node = boxOptions[i];
                cache.push({value: node.value, text: node.text, displayed: 1});
            }
        },
        redisplay: function(id) {
            // Repopulate HTML select box from cache
            var box = document.getElementById(id);
            var node;
            $(box).empty(); // clear all options
            var new_options = box.outerHTML.slice(0, -9); // grab just the opening tag
            var cache = SelectBox.cache[id];
            for (var i = 0, j = cache.length; i < j; i++) {
                node = cache[i];
                if (node.displayed) {
                    var new_option = new Option(node.text, node.value, false, false);
                    // Shows a tooltip when hovering over the option
                    new_option.setAttribute("title", node.text);
                    new_options += new_option.outerHTML;
                }
            }
            new_options += '</select>';
            box.outerHTML = new_options;
        },
        filter: function(id, text) {
            // Redisplay the HTML select box, displaying only the choices containing ALL
            // the words in text. (It's an AND search.)
            var tokens = text.toLowerCase().split(/\s+/);
            var node, token;
            var cache = SelectBox.cache[id];
            for (var i = 0, j = cache.length; i < j; i++) {
                node = cache[i];
                node.displayed = 1;
                var node_text = node.text.toLowerCase();
                var numTokens = tokens.length;
                for (var k = 0; k < numTokens; k++) {
                    token = tokens[k];
                    if (node_text.indexOf(token) === -1) {
                        node.displayed = 0;
                        break; // Once the first token isn't found we're done
                    }
                }
            }
            SelectBox.redisplay(id);
        },
        delete_from_cache: function(id, value) {
            var node, delete_index = null;
            var cache = SelectBox.cache[id];
            for (var i = 0, j = cache.length; i < j; i++) {
                node = cache[i];
                if (node.value === value) {
                    delete_index = i;
                    break;
                }
            }
            cache.splice(delete_index, 1);
        },
        add_to_cache: function(id, option) {
            SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1});
        },
        cache_contains: function(id, value) {
            // Check if an item is contained in the cache
            var node;
            var cache = SelectBox.cache[id];
            for (var i = 0, j = cache.length; i < j; i++) {
                node = cache[i];
                if (node.value === value) {
                    return true;
                }
            }
            return false;
        },
        move: function(from, to) {
            var from_box = document.getElementById(from);
            var option;
            var boxOptions = from_box.options;
            var boxOptionsLength = boxOptions.length;
            for (var i = 0, j = boxOptionsLength; i < j; i++) {
                option = boxOptions[i];
                var option_value = option.value;
                if (option.selected && SelectBox.cache_contains(from, option_value)) {
                    SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1});
                    SelectBox.delete_from_cache(from, option_value);
                }
            }
            SelectBox.redisplay(from);
            SelectBox.redisplay(to);
        },
        move_all: function(from, to) {
            var from_box = document.getElementById(from);
            var option;
            var boxOptions = from_box.options;
            var boxOptionsLength = boxOptions.length;
            for (var i = 0, j = boxOptionsLength; i < j; i++) {
                option = boxOptions[i];
                var option_value = option.value;
                if (SelectBox.cache_contains(from, option_value)) {
                    SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1});
                    SelectBox.delete_from_cache(from, option_value);
                }
            }
            SelectBox.redisplay(from);
            SelectBox.redisplay(to);
        },
        sort: function(id) {
            SelectBox.cache[id].sort(function(a, b) {
                a = a.text.toLowerCase();
                b = b.text.toLowerCase();
                try {
                    if (a > b) {
                        return 1;
                    }
                    if (a < b) {
                        return -1;
                    }
                }
                catch (e) {
                    // silently fail on IE 'unknown' exception
                }
                return 0;
            } );
        },
        select_all: function(id) {
            var box = document.getElementById(id);
            var boxOptions = box.options;
            var boxOptionsLength = boxOptions.length;
            for (var i = 0; i < boxOptionsLength; i++) {
                boxOptions[i].selected = 'selected';
            }
        }
    };
    window.SelectBox = SelectBox;
})(django.jQuery);


================================================
FILE: static/admin/js/SelectFilter2.js
================================================
/*global SelectBox, gettext, interpolate, quickElement, SelectFilter*/
/*
SelectFilter2 - Turns a multiple-select box into a filter interface.

Requires jQuery, core.js, and SelectBox.js.
*/
(function($) {
    'use strict';
    function findForm(node) {
        // returns the node of the form containing the given node
        if (node.tagName.toLowerCase() !== 'form') {
            return findForm(node.parentNode);
        }
        return node;
    }

    window.SelectFilter = {
        init: function(field_id, field_name, is_stacked) {
            if (field_id.match(/__prefix__/)) {
                // Don't initialize on empty forms.
                return;
            }
            var from_box = document.getElementById(field_id);
            from_box.id += '_from'; // change its ID
            from_box.className = 'filtered';

            var ps = from_box.parentNode.getElementsByTagName('p');
            for (var i = 0; i < ps.length; i++) {
                if (ps[i].className.indexOf("info") !== -1) {
                    // Remove <p class="info">, because it just gets in the way.
                    from_box.parentNode.removeChild(ps[i]);
                } else if (ps[i].className.indexOf("help") !== -1) {
                    // Move help text up to the top so it isn't below the select
                    // boxes or wrapped off on the side to the right of the add
                    // button:
                    from_box.parentNode.insertBefore(ps[i], from_box.parentNode.firstChild);
                }
            }

            // <div class="selector"> or <div class="selector stacked">
            var selector_div = quickElement('div', from_box.parentNode);
            selector_div.className = is_stacked ? 'selector stacked' : 'selector';

            // <div class="selector-available">
            var selector_available = quickElement('div', selector_div);
            selector_available.className = 'selector-available';
            var title_available = quickElement('h2', selector_available, interpolate(gettext('Available %s') + ' ', [field_name]));
            quickElement(
                'span', title_available, '',
                'class', 'help help-tooltip help-icon',
                'title', interpolate(
                    gettext(
                        'This is the list of available %s. You may choose some by ' +
                        'selecting them in the box below and then clicking the ' +
                        '"Choose" arrow between the two boxes.'
                    ),
                    [field_name]
                )
            );

            var filter_p = quickElement('p', selector_available, '', 'id', field_id + '_filter');
            filter_p.className = 'selector-filter';

            var search_filter_label = quickElement('label', filter_p, '', 'for', field_id + '_input');

            quickElement(
                'span', search_filter_label, '',
                'class', 'help-tooltip search-label-icon',
                'title', interpolate(gettext("Type into this box to filter down the list of available %s."), [field_name])
            );

            filter_p.appendChild(document.createTextNode(' '));

            var filter_input = quickElement('input', filter_p, '', 'type', 'text', 'placeholder', gettext("Filter"));
            filter_input.id = field_id + '_input';

            selector_available.appendChild(from_box);
            var choose_all = quickElement('a', selector_available, gettext('Choose all'), 'title', interpolate(gettext('Click to choose all %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_add_all_link');
            choose_all.className = 'selector-chooseall';

            // <ul class="selector-chooser">
            var selector_chooser = quickElement('ul', selector_div);
            selector_chooser.className = 'selector-chooser';
            var add_link = quickElement('a', quickElement('li', selector_chooser), gettext('Choose'), 'title', gettext('Choose'), 'href', '#', 'id', field_id + '_add_link');
            add_link.className = 'selector-add';
            var remove_link = quickElement('a', quickElement('li', selector_chooser), gettext('Remove'), 'title', gettext('Remove'), 'href', '#', 'id', field_id + '_remove_link');
            remove_link.className = 'selector-remove';

            // <div class="selector-chosen">
            var selector_chosen = quickElement('div', selector_div);
            selector_chosen.className = 'selector-chosen';
            var title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name]));
            quickElement(
                'span', title_chosen, '',
                'class', 'help help-tooltip help-icon',
                'title', interpolate(
                    gettext(
                        'This is the list of chosen %s. You may remove some by ' +
                        'selecting them in the box below and then clicking the ' +
                        '"Remove" arrow between the two boxes.'
                    ),
                    [field_name]
                )
            );

            var to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', 'multiple', 'size', from_box.size, 'name', from_box.getAttribute('name'));
            to_box.className = 'filtered';
            var clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_remove_all_link');
            clear_all.className = 'selector-clearall';

            from_box.setAttribute('name', from_box.getAttribute('name') + '_old');

            // Set up the JavaScript event handlers for the select box filter interface
            var move_selection = function(e, elem, move_func, from, to) {
                if (elem.className.indexOf('active') !== -1) {
                    move_func(from, to);
                    SelectFilter.refresh_icons(field_id);
                }
                e.preventDefault();
            };
            choose_all.addEventListener('click', function(e) {
                move_selection(e, this, SelectBox.move_all, field_id + '_from', field_id + '_to');
            });
            add_link.addEventListener('click', function(e) {
                move_selection(e, this, SelectBox.move, field_id + '_from', field_id + '_to');
            });
            remove_link.addEventListener('click', function(e) {
                move_selection(e, this, SelectBox.move, field_id + '_to', field_id + '_from');
            });
            clear_all.addEventListener('click', function(e) {
                move_selection(e, this, SelectBox.move_all, field_id + '_to', field_id + '_from');
            });
            filter_input.addEventListener('keypress', function(e) {
                SelectFilter.filter_key_press(e, field_id);
            });
            filter_input.addEventListener('keyup', function(e) {
                SelectFilter.filter_key_up(e, field_id);
            });
            filter_input.addEventListener('keydown', function(e) {
                SelectFilter.filter_key_down(e, field_id);
            });
            selector_div.addEventListener('change', function(e) {
                if (e.target.tagName === 'SELECT') {
                    SelectFilter.refresh_icons(field_id);
                }
            });
            selector_div.addEventListener('dblclick', function(e) {
                if (e.target.tagName === 'OPTION') {
                    if (e.target.closest('select').id === field_id + '_to') {
                        SelectBox.move(field_id + '_to', field_id + '_from');
                    } else {
                        SelectBox.move(field_id + '_from', field_id + '_to');
                    }
                    SelectFilter.refresh_icons(field_id);
                }
            });
            findForm(from_box).addEventListener('submit', function() {
                SelectBox.select_all(field_id + '_to');
            });
            SelectBox.init(field_id + '_from');
            SelectBox.init(field_id + '_to');
            // Move selected from_box options to to_box
            SelectBox.move(field_id + '_from', field_id + '_to');

            if (!is_stacked) {
                // In horizontal mode, give the same height to the two boxes.
                var j_from_box = $('#' + field_id + '_from');
                var j_to_box = $('#' + field_id + '_to');
                j_to_box.height($(filter_p).outerHeight() + j_from_box.outerHeight());
            }

            // Initial icon refresh
            SelectFilter.refresh_icons(field_id);
        },
        any_selected: function(field) {
            var any_selected = false;
            try {
                // Temporarily add the required attribute and check validity.
                // This is much faster in WebKit browsers than the fallback.
                field.attr('required', 'required');
                any_selected = field.is(':valid');
                field.removeAttr('required');
            } catch (e) {
                // Browsers that don't support :valid (IE < 10)
                any_selected = field.find('option:selected').length > 0;
            }
            return any_selected;
        },
        refresh_icons: function(field_id) {
            var from = $('#' + field_id + '_from');
            var to = $('#' + field_id + '_to');
            // Active if at least one item is selected
            $('#' + field_id + '_add_link').toggleClass('active', SelectFilter.any_selected(from));
            $('#' + field_id + '_remove_link').toggleClass('active', SelectFilter.any_selected(to));
            // Active if the corresponding box isn't empty
            $('#' + field_id + '_add_all_link').toggleClass('active', from.find('option').length > 0);
            $('#' + field_id + '_remove_all_link').toggleClass('active', to.find('option').length > 0);
        },
        filter_key_press: function(event, field_id) {
            var from = document.getElementById(field_id + '_from');
            // don't submit form if user pressed Enter
            if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) {
                from.selectedIndex = 0;
                SelectBox.move(field_id + '_from', field_id + '_to');
                from.selectedIndex = 0;
                event.preventDefault();
                return false;
            }
        },
        filter_key_up: function(event, field_id) {
            var from = document.getElementById(field_id + '_from');
            var temp = from.selectedIndex;
            SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value);
            from.selectedIndex = temp;
            return true;
        },
        filter_key_down: function(event, field_id) {
            var from = document.getElementById(field_id + '_from');
            // right arrow -- move across
            if ((event.which && event.which === 39) || (event.keyCode && event.keyCode === 39)) {
                var old_index = from.selectedIndex;
                SelectBox.move(field_id + '_from', field_id + '_to');
                from.selectedIndex = (old_index === from.length) ? from.length - 1 : old_index;
                return false;
            }
            // down arrow -- wrap around
            if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) {
                from.selectedIndex = (from.length === from.selectedIndex + 1) ? 0 : from.selectedIndex + 1;
            }
            // up arrow -- wrap around
            if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) {
                from.selectedIndex = (from.selectedIndex === 0) ? from.length - 1 : from.selectedIndex - 1;
            }
            return true;
        }
    };

    window.addEventListener('load', function(e) {
        $('select.selectfilter, select.selectfilterstacked').each(function() {
            var $el = $(this),
                data = $el.data();
            SelectFilter.init($el.attr('id'), data.fieldName, parseInt(data.isStacked, 10));
        });
    });

})(django.jQuery);


================================================
FILE: static/admin/js/actions.js
================================================
/*global gettext, interpolate, ngettext*/
(function($) {
    'use strict';
    var lastChecked;

    $.fn.actions = function(opts) {
        var options = $.extend({}, $.fn.actions.defaults, opts);
        var actionCheckboxes = $(this);
        var list_editable_changed = false;
        var showQuestion = function() {
                $(options.acrossClears).hide();
                $(options.acrossQuestions).show();
                $(options.allContainer).hide();
            },
            showClear = function() {
                $(options.acrossClears).show();
                $(options.acrossQuestions).hide();
                $(options.actionContainer).toggleClass(options.selectedClass);
                $(options.allContainer).show();
                $(options.counterContainer).hide();
            },
            reset = function() {
                $(options.acrossClears).hide();
                $(options.acrossQuestions).hide();
                $(options.allContainer).hide();
                $(options.counterContainer).show();
            },
            clearAcross = function() {
                reset();
                $(options.acrossInput).val(0);
                $(options.actionContainer).removeClass(options.selectedClass);
            },
            checker = function(checked) {
                if (checked) {
                    showQuestion();
                } else {
                    reset();
                }
                $(actionCheckboxes).prop("checked", checked)
                    .parent().parent().toggleClass(options.selectedClass, checked);
            },
            updateCounter = function() {
                var sel = $(actionCheckboxes).filter(":checked").length;
                // data-actions-icnt is defined in the generated HTML
                // and contains the total amount of objects in the queryset
                var actions_icnt = $('.action-counter').data('actionsIcnt');
                $(options.counterContainer).html(interpolate(
                    ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), {
                        sel: sel,
                        cnt: actions_icnt
                    }, true));
                $(options.allToggle).prop("checked", function() {
                    var value;
                    if (sel === actionCheckboxes.length) {
                        value = true;
                        showQuestion();
                    } else {
                        value = false;
                        clearAcross();
                    }
                    return value;
                });
            };
        // Show counter by default
        $(options.counterContainer).show();
        // Check state of checkboxes and reinit state if needed
        $(this).filter(":checked").each(function(i) {
            $(this).parent().parent().toggleClass(options.selectedClass);
            updateCounter();
            if ($(options.acrossInput).val() === 1) {
                showClear();
            }
        });
        $(options.allToggle).show().on('click', function() {
            checker($(this).prop("checked"));
            updateCounter();
        });
        $("a", options.acrossQuestions).on('click', function(event) {
            event.preventDefault();
            $(options.acrossInput).val(1);
            showClear();
        });
        $("a", options.acrossClears).on('click', function(event) {
            event.preventDefault();
            $(options.allToggle).prop("checked", false);
            clearAcross();
            checker(0);
            updateCounter();
        });
        lastChecked = null;
        $(actionCheckboxes).on('click', function(event) {
            if (!event) { event = window.event; }
            var target = event.target ? event.target : event.srcElement;
            if (lastChecked && $.data(lastChecked) !== $.data(target) && event.shiftKey === true) {
                var inrange = false;
                $(lastChecked).prop("checked", target.checked)
                    .parent().parent().toggleClass(options.selectedClass, target.checked);
                $(actionCheckboxes).each(function() {
                    if ($.data(this) === $.data(lastChecked) || $.data(this) === $.data(target)) {
                        inrange = (inrange) ? false : true;
                    }
                    if (inrange) {
                        $(this).prop("checked", target.checked)
                            .parent().parent().toggleClass(options.selectedClass, target.checked);
                    }
                });
            }
            $(target).parent().parent().toggleClass(options.selectedClass, target.checked);
            lastChecked = target;
            updateCounter();
        });
        $('form#changelist-form table#result_list tr').on('change', 'td:gt(0) :input', function() {
            list_editable_changed = true;
        });
        $('form#changelist-form button[name="index"]').on('click', function(event) {
            if (list_editable_changed) {
                return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost."));
            }
        });
        $('form#changelist-form input[name="_save"]').on('click', function(event) {
            var action_changed = false;
            $('select option:selected', options.actionContainer).each(function() {
                if ($(this).val()) {
                    action_changed = true;
                }
            });
            if (action_changed) {
                if (list_editable_changed) {
                    return confirm(gettext("You have selected an action, but you haven't saved your changes to individual fields yet. Please click OK to save. You'll need to re-run the action."));
                } else {
                    return confirm(gettext("You have selected an action, and you haven't made any changes on individual fields. You're probably looking for the Go button rather than the Save button."));
                }
            }
        });
    };
    /* Setup plugin defaults */
    $.fn.actions.defaults = {
        actionContainer: "div.actions",
        counterContainer: "span.action-counter",
        allContainer: "div.actions span.all",
        acrossInput: "div.actions input.select-across",
        acrossQuestions: "div.actions span.question",
        acrossClears: "div.actions span.clear",
        allToggle: "#action-toggle",
        selectedClass: "selected"
    };
    $(document).ready(function() {
        var $actionsEls = $('tr input.action-select');
        if ($actionsEls.length > 0) {
            $actionsEls.actions();
        }
    });
})(django.jQuery);


================================================
FILE: static/admin/js/admin/DateTimeShortcuts.js
================================================
/*global Calendar, findPosX, findPosY, getStyle, get_format, gettext, gettext_noop, interpolate, ngettext, quickElement*/
// Inserts shortcut buttons after all of the following:
//     <input type="text" class="vDateField">
//     <input type="text" class="vTimeField">
(function() {
    'use strict';
    var DateTimeShortcuts = {
        calendars: [],
        calendarInputs: [],
        clockInputs: [],
        clockHours: {
            default_: [
                [gettext_noop('Now'), -1],
                [gettext_noop('Midnight'), 0],
                [gettext_noop('6 a.m.'), 6],
                [gettext_noop('Noon'), 12],
                [gettext_noop('6 p.m.'), 18]
            ]
        },
        dismissClockFunc: [],
        dismissCalendarFunc: [],
        calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled
        calendarDivName2: 'calendarin', // name of <div> that contains calendar
        calendarLinkName: 'calendarlink', // name of the link that is used to toggle
        clockDivName: 'clockbox', // name of clock <div> that gets toggled
        clockLinkName: 'clocklink', // name of the link that is used to toggle
        shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts
        timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch
        timezoneOffset: 0,
        init: function() {
            var body = document.getElementsByTagName('body')[0];
            var serverOffset = body.getAttribute('data-admin-utc-offset');
            if (serverOffset) {
                var localOffset = new Date().getTimezoneOffset() * -60;
                DateTimeShortcuts.timezoneOffset = localOffset - serverOffset;
            }

            var inputs = document.getElementsByTagName('input');
            for (var i = 0; i < inputs.length; i++) {
                var inp = inputs[i];
                if (inp.getAttribute('type') === 'text' && inp.className.match(/vTimeField/)) {
                    DateTimeShortcuts.addClock(inp);
                    DateTimeShortcuts.addTimezoneWarning(inp);
                }
                else if (inp.getAttribute('type') === 'text' && inp.className.match(/vDateField/)) {
                    DateTimeShortcuts.addCalendar(inp);
                    DateTimeShortcuts.addTimezoneWarning(inp);
                }
            }
        },
        // Return the current time while accounting for the server timezone.
        now: function() {
            var body = document.getElementsByTagName('body')[0];
            var serverOffset = body.getAttribute('data-admin-utc-offset');
            if (serverOffset) {
                var localNow = new Date();
                var localOffset = localNow.getTimezoneOffset() * -60;
                localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset));
                return localNow;
            } else {
                return new Date();
            }
        },
        // Add a warning when the time zone in the browser and backend do not match.
        addTimezoneWarning: function(inp) {
            var warningClass = DateTimeShortcuts.timezoneWarningClass;
            var timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600;

            // Only warn if there is a time zone mismatch.
            if (!timezoneOffset) {
                return;
            }

            // Check if warning is already there.
            if (inp.parentNode.querySelectorAll('.' + warningClass).length) {
                return;
            }

            var message;
            if (timezoneOffset > 0) {
                message = ngettext(
                    'Note: You are %s hour ahead of server time.',
                    'Note: You are %s hours ahead of server time.',
                    timezoneOffset
                );
            }
            else {
                timezoneOffset *= -1;
                message = ngettext(
                    'Note: You are %s hour behind server time.',
                    'Note: You are %s hours behind server time.',
                    timezoneOffset
                );
            }
            message = interpolate(message, [timezoneOffset]);

            var warning = document.createElement('span');
            warning.className = warningClass;
            warning.textContent = message;
            inp.parentNode.appendChild(document.createElement('br'));
            inp.parentNode.appendChild(warning);
        },
        // Add clock widget to a given field
        addClock: function(inp) {
            var num = DateTimeShortcuts.clockInputs.length;
            DateTimeShortcuts.clockInputs[num] = inp;
            DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; };

            // Shortcut links (clock icon and "Now" link)
            var shortcuts_span = document.createElement('span');
            shortcuts_span.className = DateTimeShortcuts.shortCutsClass;
            inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
            var now_link = document.createElement('a');
            now_link.setAttribute('href', "#");
            now_link.textContent = gettext('Now');
            now_link.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.handleClockQuicklink(num, -1);
            });
            var clock_link = document.createElement('a');
            clock_link.setAttribute('href', '#');
            clock_link.id = DateTimeShortcuts.clockLinkName + num;
            clock_link.addEventListener('click', function(e) {
                e.preventDefault();
                // avoid triggering the document click handler to dismiss the clock
                e.stopPropagation();
                DateTimeShortcuts.openClock(num);
            });

            quickElement(
                'span', clock_link, '',
                'class', 'clock-icon',
                'title', gettext('Choose a Time')
            );
            shortcuts_span.appendChild(document.createTextNode('\u00A0'));
            shortcuts_span.appendChild(now_link);
            shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0'));
            shortcuts_span.appendChild(clock_link);

            // Create clock link div
            //
            // Markup looks like:
            // <div id="clockbox1" class="clockbox module">
            //     <h2>Choose a time</h2>
            //     <ul class="timelist">
            //         <li><a href="#">Now</a></li>
            //         <li><a href="#">Midnight</a></li>
            //         <li><a href="#">6 a.m.</a></li>
            //         <li><a href="#">Noon</a></li>
            //         <li><a href="#">6 p.m.</a></li>
            //     </ul>
            //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
            // </div>

            var clock_box = document.createElement('div');
            clock_box.style.display = 'none';
            clock_box.style.position = 'absolute';
            clock_box.className = 'clockbox module';
            clock_box.setAttribute('id', DateTimeShortcuts.clockDivName + num);
            document.body.appendChild(clock_box);
            clock_box.addEventListener('click', function(e) { e.stopPropagation(); });

            quickElement('h2', clock_box, gettext('Choose a time'));
            var time_list = quickElement('ul', clock_box);
            time_list.className = 'timelist';
            // The list of choices can be overridden in JavaScript like this:
            // DateTimeShortcuts.clockHours.name = [['3 a.m.', 3]];
            // where name is the name attribute of the <input>.
            var name = typeof DateTimeShortcuts.clockHours[inp.name] === 'undefined' ? 'default_' : inp.name;
            DateTimeShortcuts.clockHours[name].forEach(function(element) {
                var time_link = quickElement('a', quickElement('li', time_list), gettext(element[0]), 'href', '#');
                time_link.addEventListener('click', function(e) {
                    e.preventDefault();
                    DateTimeShortcuts.handleClockQuicklink(num, element[1]);
                });
            });

            var cancel_p = quickElement('p', clock_box);
            cancel_p.className = 'calendar-cancel';
            var cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#');
            cancel_link.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.dismissClock(num);
            });

            document.addEventListener('keyup', function(event) {
                if (event.which === 27) {
                    // ESC key closes popup
                    DateTimeShortcuts.dismissClock(num);
                    event.preventDefault();
                }
            });
        },
        openClock: function(num) {
            var clock_box = document.getElementById(DateTimeShortcuts.clockDivName + num);
            var clock_link = document.getElementById(DateTimeShortcuts.clockLinkName + num);

            // Recalculate the clockbox position
            // is it left-to-right or right-to-left layout ?
            if (getStyle(document.body, 'direction') !== 'rtl') {
                clock_box.style.left = findPosX(clock_link) + 17 + 'px';
            }
            else {
                // since style's width is in em, it'd be tough to calculate
                // px value of it. let's use an estimated px for now
                // TODO: IE returns wrong value for findPosX when in rtl mode
                //       (it returns as it was left aligned), needs to be fixed.
                clock_box.style.left = findPosX(clock_link) - 110 + 'px';
            }
            clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px';

            // Show the clock box
            clock_box.style.display = 'block';
            document.addEventListener('click', DateTimeShortcuts.dismissClockFunc[num]);
        },
        dismissClock: function(num) {
            document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none';
            document.removeEventListener('click', DateTimeShortcuts.dismissClockFunc[num]);
        },
        handleClockQuicklink: function(num, val) {
            var d;
            if (val === -1) {
                d = DateTimeShortcuts.now();
            }
            else {
                d = new Date(1970, 1, 1, val, 0, 0, 0);
            }
            DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]);
            DateTimeShortcuts.clockInputs[num].focus();
            DateTimeShortcuts.dismissClock(num);
        },
        // Add calendar widget to a given field.
        addCalendar: function(inp) {
            var num = DateTimeShortcuts.calendars.length;

            DateTimeShortcuts.calendarInputs[num] = inp;
            DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; };

            // Shortcut links (calendar icon and "Today" link)
            var shortcuts_span = document.createElement('span');
            shortcuts_span.className = DateTimeShortcuts.shortCutsClass;
            inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
            var today_link = document.createElement('a');
            today_link.setAttribute('href', '#');
            today_link.appendChild(document.createTextNode(gettext('Today')));
            today_link.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.handleCalendarQuickLink(num, 0);
            });
            var cal_link = document.createElement('a');
            cal_link.setAttribute('href', '#');
            cal_link.id = DateTimeShortcuts.calendarLinkName + num;
            cal_link.addEventListener('click', function(e) {
                e.preventDefault();
                // avoid triggering the document click handler to dismiss the calendar
                e.stopPropagation();
                DateTimeShortcuts.openCalendar(num);
            });
            quickElement(
                'span', cal_link, '',
                'class', 'date-icon',
                'title', gettext('Choose a Date')
            );
            shortcuts_span.appendChild(document.createTextNode('\u00A0'));
            shortcuts_span.appendChild(today_link);
            shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0'));
            shortcuts_span.appendChild(cal_link);

            // Create calendarbox div.
            //
            // Markup looks like:
            //
            // <div id="calendarbox3" class="calendarbox module">
            //     <h2>
            //           <a href="#" class="link-previous">&lsaquo;</a>
            //           <a href="#" class="link-next">&rsaquo;</a> February 2003
            //     </h2>
            //     <div class="calendar" id="calendarin3">
            //         <!-- (cal) -->
            //     </div>
            //     <div class="calendar-shortcuts">
            //          <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a>
            //     </div>
            //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
            // </div>
            var cal_box = document.createElement('div');
            cal_box.style.display = 'none';
            cal_box.style.position = 'absolute';
            cal_box.className = 'calendarbox module';
            cal_box.setAttribute('id', DateTimeShortcuts.calendarDivName1 + num);
            document.body.appendChild(cal_box);
            cal_box.addEventListener('click', function(e) { e.stopPropagation(); });

            // next-prev links
            var cal_nav = quickElement('div', cal_box);
            var cal_nav_prev = quickElement('a', cal_nav, '<', 'href', '#');
            cal_nav_prev.className = 'calendarnav-previous';
            cal_nav_prev.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.drawPrev(num);
            });

            var cal_nav_next = quickElement('a', cal_nav, '>', 'href', '#');
            cal_nav_next.className = 'calendarnav-next';
            cal_nav_next.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.drawNext(num);
            });

            // main box
            var cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num);
            cal_main.className = 'calendar';
            DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num));
            DateTimeShortcuts.calendars[num].drawCurrent();

            // calendar shortcuts
            var shortcuts = quickElement('div', cal_box);
            shortcuts.className = 'calendar-shortcuts';
            var day_link = quickElement('a', shortcuts, gettext('Yesterday'), 'href', '#');
            day_link.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.handleCalendarQuickLink(num, -1);
            });
            shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0'));
            day_link = quickElement('a', shortcuts, gettext('Today'), 'href', '#');
            day_link.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.handleCalendarQuickLink(num, 0);
            });
            shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0'));
            day_link = quickElement('a', shortcuts, gettext('Tomorrow'), 'href', '#');
            day_link.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.handleCalendarQuickLink(num, +1);
            });

            // cancel bar
            var cancel_p = quickElement('p', cal_box);
            cancel_p.className = 'calendar-cancel';
            var cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#');
            cancel_link.addEventListener('click', function(e) {
                e.preventDefault();
                DateTimeShortcuts.dismissCalendar(num);
            });
            document.addEventListener('keyup', function(event) {
                if (event.which === 27) {
                    // ESC key closes popup
                    DateTimeShortcuts.dismissCalendar(num);
                    event.preventDefault();
                }
            });
        },
        openCalendar: function(num) {
            var cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1 + num);
            var cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName + num);
            var inp = DateTimeShortcuts.calendarInputs[num];

            // Determine if the current value in the input has a valid date.
            // If so, draw the calendar with that date's year and month.
            if (inp.value) {
                var format = get_format('DATE_INPUT_FORMATS')[0];
                var selected = inp.value.strptime(format);
                var year = selected.getUTCFullYear();
                var month = selected.getUTCMonth() + 1;
                var re = /\d{4}/;
                if (re.test(year.toString()) && month >= 1 && month <= 12) {
                    DateTimeShortcuts.calendars[num].drawDate(month, year, selected);
                }
            }

            // Recalculate the clockbox position
            // is it left-to-right or right-to-left layout ?
            if (getStyle(document.body, 'direction') !== 'rtl') {
                cal_box.style.left = findPosX(cal_link) + 17 + 'px';
            }
            else {
                // since style's width is in em, it'd be tough to calculate
                // px value of it. let's use an estimated px for now
                // TODO: IE returns wrong value for findPosX when in rtl mode
                //       (it returns as it was left aligned), needs to be fixed.
                cal_box.style.left = findPosX(cal_link) - 180 + 'px';
            }
            cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px';

            cal_box.style.display = 'block';
            document.addEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
        },
        dismissCalendar: function(num) {
            document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
            document.removeEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
        },
        drawPrev: function(num) {
            DateTimeShortcuts.calendars[num].drawPreviousMonth();
        },
        drawNext: function(num) {
            DateTimeShortcuts.calendars[num].drawNextMonth();
        },
        handleCalendarCallback: function(num) {
            var format = get_format('DATE_INPUT_FORMATS')[0];
            // the format needs to be escaped a little
            format = format.replace('\\', '\\\\')
                .replace('\r', '\\r')
                .replace('\n', '\\n')
                .replace('\t', '\\t')
                .replace("'", "\\'");
            return function(y, m, d) {
                DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format);
                DateTimeShortcuts.calendarInputs[num].focus();
                document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
            };
        },
        handleCalendarQuickLink: function(num, offset) {
            var d = DateTimeShortcuts.now();
            d.setDate(d.getDate() + offset);
            DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]);
            DateTimeShortcuts.calendarInputs[num].focus();
            DateTimeShortcuts.dismissCalendar(num);
        }
    };

    window.addEventListener('load', DateTimeShortcuts.init);
    window.DateTimeShortcuts = DateTimeShortcuts;
})();


================================================
FILE: static/admin/js/admin/RelatedObjectLookups.js
================================================
/*global SelectBox, interpolate*/
// Handles related-objects functionality: lookup link for raw_id_fields
// and Add Another links.

(function($) {
    'use strict';

    // IE doesn't accept periods or dashes in the window name, but the element IDs
    // we use to generate popup window names may contain them, therefore we map them
    // to allowed characters in a reversible way so that we can locate the correct
    // element when the popup window is dismissed.
    function id_to_windowname(text) {
        text = text.replace(/\./g, '__dot__');
        text = text.replace(/\-/g, '__dash__');
        return text;
    }

    function windowname_to_id(text) {
        text = text.replace(/__dot__/g, '.');
        text = text.replace(/__dash__/g, '-');
        return text;
    }

    function showAdminPopup(triggeringLink, name_regexp, add_popup) {
        var name = triggeringLink.id.replace(name_regexp, '');
        name = id_to_windowname(name);
        var href = triggeringLink.href;
        if (add_popup) {
            if (href.indexOf('?') === -1) {
                href += '?_popup=1';
            } else {
                href += '&_popup=1';
            }
        }
        var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes');
        win.focus();
        return false;
    }

    function showRelatedObjectLookupPopup(triggeringLink) {
        return showAdminPopup(triggeringLink, /^lookup_/, true);
    }

    function dismissRelatedLookupPopup(win, chosenId) {
        var name = windowname_to_id(win.name);
        var elem = document.getElementById(name);
        if (elem.className.indexOf('vManyToManyRawIdAdminField') !== -1 && elem.value) {
            elem.value += ',' + chosenId;
        } else {
            document.getElementById(name).value = chosenId;
        }
        win.close();
    }

    function showRelatedObjectPopup(triggeringLink) {
        return showAdminPopup(triggeringLink, /^(change|add|delete)_/, false);
    }

    function updateRelatedObjectLinks(triggeringLink) {
        var $this = $(triggeringLink);
        var siblings = $this.nextAll('.view-related, .change-related, .delete-related');
        if (!siblings.length) {
            return;
        }
        var value = $this.val();
        if (value) {
            siblings.each(function() {
                var elm = $(this);
                elm.attr('href', elm.attr('data-href-template').replace('__fk__', value));
            });
        } else {
            siblings.removeAttr('href');
        }
    }

    function dismissAddRelatedObjectPopup(win, newId, newRepr) {
        var name = windowname_to_id(win.name);
        var elem = document.getElementById(name);
        if (elem) {
            var elemName = elem.nodeName.toUpperCase();
            if (elemName === 'SELECT') {
                elem.options[elem.options.length] = new Option(newRepr, newId, true, true);
            } else if (elemName === 'INPUT') {
                if (elem.className.indexOf('vManyToManyRawIdAdminField') !== -1 && elem.value) {
                    elem.value += ',' + newId;
                } else {
                    elem.value = newId;
                }
            }
            // Trigger a change event to update related links if required.
            $(elem).trigger('change');
        } else {
            var toId = name + "_to";
            var o = new Option(newRepr, newId);
            SelectBox.add_to_cache(toId, o);
            SelectBox.redisplay(toId);
        }
        win.close();
    }

    function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) {
        var id = windowname_to_id(win.name).replace(/^edit_/, '');
        var selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]);
        var selects = $(selectsSelector);
        selects.find('option').each(function() {
            if (this.value === objId) {
                this.textContent = newRepr;
                this.value = newId;
            }
        });
        selects.next().find('.select2-selection__rendered').each(function() {
            // The element can have a clear button as a child.
            // Use the lastChild to modify only the displayed value.
            this.lastChild.textContent = newRepr;
            this.title = newRepr;
        });
        win.close();
    }

    function dismissDeleteRelatedObjectPopup(win, objId) {
        var id = windowname_to_id(win.name).replace(/^delete_/, '');
        var selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]);
        var selects = $(selectsSelector);
        selects.find('option').each(function() {
            if (this.value === objId) {
                $(this).remove();
            }
        }).trigger('change');
        win.close();
    }

    // Global for testing purposes
    window.id_to_windowname = id_to_windowname;
    window.windowname_to_id = windowname_to_id;

    window.showRelatedObjectLookupPopup = showRelatedObjectLookupPopup;
    window.dismissRelatedLookupPopup = dismissRelatedLookupPopup;
    window.showRelatedObjectPopup = showRelatedObjectPopup;
    window.updateRelatedObjectLinks = updateRelatedObjectLinks;
    window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup;
    window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup;
    window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup;

    // Kept for backward compatibility
    window.showAddAnotherPopup = showRelatedObjectPopup;
    window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup;

    $(document).ready(function() {
        $("a[data-popup-opener]").on('click', function(event) {
            event.preventDefault();
            opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener"));
        });
        $('body').on('click', '.related-widget-wrapper-link', function(e) {
            e.preventDefault();
            if (this.href) {
                var event = $.Event('django:show-related', {href: this.href});
                $(this).trigger(event);
                if (!event.isDefaultPrevented()) {
                    showRelatedObjectPopup(this);
                }
            }
        });
        $('body').on('change', '.related-widget-wrapper select', function(e) {
            var event = $.Event('django:update-related');
            $(this).trigger(event);
            if (!event.isDefaultPrevented()) {
                updateRelatedObjectLinks(this);
            }
        });
        $('.related-widget-wrapper select').trigger('change');
        $('body').on('click', '.related-lookup', function(e) {
            e.preventDefault();
            var event = $.Event('django:lookup-related');
            $(this).trigger(event);
            if (!event.isDefaultPrevented()) {
                showRelatedObjectLookupPopup(this);
            }
        });
    });

})(django.jQuery);


================================================
FILE: static/admin/js/autocomplete.js
================================================
(function($) {
    'use strict';
    var init = function($element, options) {
        var settings = $.extend({
            ajax: {
                data: function(params) {
                    return {
                        term: params.term,
                        page: params.page
                    };
                }
            }
        }, options);
        $element.select2(settings);
    };

    $.fn.djangoAdminSelect2 = function(options) {
        var settings = $.extend({}, options);
        $.each(this, function(i, element) {
            var $element = $(element);
            init($element, settings);
        });
        return this;
    };

    $(function() {
        // Initialize all autocomplete widgets except the one in the template
        // form used when a new formset is added.
        $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2();
    });

    $(document).on('formset:added', (function() {
        return function(event, $newFormset) {
            return $newFormset.find('.admin-autocomplete').djangoAdminSelect2();
        };
    })(this));
}(django.jQuery));


================================================
FILE: static/admin/js/calendar.js
================================================
/*global gettext, pgettext, get_format, quickElement, removeChildren*/
/*
calendar.js - Calendar functions by Adrian Holovaty
depends on core.js for utility functions like removeChildren or quickElement
*/

(function() {
    'use strict';
    // CalendarNamespace -- Provides a collection of HTML calendar-related helper functions
    var CalendarNamespace = {
        monthsOfYear: [
            gettext('January'),
            gettext('February'),
            gettext('March'),
            gettext('April'),
            gettext('May'),
            gettext('June'),
            gettext('July'),
            gettext('August'),
            gettext('September'),
            gettext('October'),
            gettext('November'),
            gettext('December')
        ],
        daysOfWeek: [
            pgettext('one letter Sunday', 'S'),
            pgettext('one letter Monday', 'M'),
            pgettext('one letter Tuesday', 'T'),
            pgettext('one letter Wednesday', 'W'),
            pgettext('one letter Thursday', 'T'),
            pgettext('one letter Friday', 'F'),
            pgettext('one letter Saturday', 'S')
        ],
        firstDayOfWeek: parseInt(get_format('FIRST_DAY_OF_WEEK')),
        isLeapYear: function(year) {
            return (((year % 4) === 0) && ((year % 100) !== 0 ) || ((year % 400) === 0));
        },
        getDaysInMonth: function(month, year) {
            var days;
            if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) {
                days = 31;
            }
            else if (month === 4 || month === 6 || month === 9 || month === 11) {
                days = 30;
            }
            else if (month === 2 && CalendarNamespace.isLeapYear(year)) {
                days = 29;
            }
            else {
                days = 28;
            }
            return days;
        },
        draw: function(month, year, div_id, callback, selected) { // month = 1-12, year = 1-9999
            var today = new Date();
            var todayDay = today.getDate();
            var todayMonth = today.getMonth() + 1;
            var todayYear = today.getFullYear();
            var todayClass = '';

            // Use UTC functions here because the date field does not contain time
            // and using the UTC function variants prevent the local time offset
            // from altering the date, specifically the day field.  For example:
            //
            // ```
            // var x = new Date('2013-10-02');
            // var day = x.getDate();
            // ```
            //
            // The day variable above will be 1 instead of 2 in, say, US Pacific time
            // zone.
            var isSelectedMonth = false;
            if (typeof selected !== 'undefined') {
                isSelectedMonth = (selected.getUTCFullYear() === year && (selected.getUTCMonth() + 1) === month);
            }

            month = parseInt(month);
            year = parseInt(year);
            var calDiv = document.getElementById(div_id);
            removeChildren(calDiv);
            var calTable = document.createElement('table');
            quickElement('caption', calTable, CalendarNamespace.monthsOfYear[month - 1] + ' ' + year);
            var tableBody = quickElement('tbody', calTable);

            // Draw days-of-week header
            var tableRow = quickElement('tr', tableBody);
            for (var i = 0; i < 7; i++) {
                quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]);
            }

            var startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay();
            var days = CalendarNamespace.getDaysInMonth(month, year);

            var nonDayCell;

            // Draw blanks before first of month
            tableRow = quickElement('tr', tableBody);
            for (i = 0; i < startingPos; i++) {
                nonDayCell = quickElement('td', tableRow, ' ');
                nonDayCell.className = "nonday";
            }

            function calendarMonth(y, m) {
                function onClick(e) {
                    e.preventDefault();
                    callback(y, m, this.textContent);
                }
                return onClick;
            }

            // Draw days of month
            var currentDay = 1;
            for (i = startingPos; currentDay <= days; i++) {
                if (i % 7 === 0 && currentDay !== 1) {
                    tableRow = quickElement('tr', tableBody);
                }
                if ((currentDay === todayDay) && (month === todayMonth) && (year === todayYear)) {
                    todayClass = 'today';
                } else {
                    todayClass = '';
                }

                // use UTC function; see above for explanation.
                if (isSelectedMonth && currentDay === selected.getUTCDate()) {
                    if (todayClass !== '') {
                        todayClass += " ";
                    }
                    todayClass += "selected";
                }

                var cell = quickElement('td', tableRow, '', 'class', todayClass);
                var link = quickElement('a', cell, currentDay, 'href', '#');
                link.addEventListener('click', calendarMonth(year, month));
                currentDay++;
            }

            // Draw blanks after end of month (optional, but makes for valid code)
            while (tableRow.childNodes.length < 7) {
                nonDayCell = quickElement('td', tableRow, ' ');
                nonDayCell.className = "nonday";
            }

            calDiv.appendChild(calTable);
        }
    };

    // Calendar -- A calendar instance
    function Calendar(div_id, callback, selected) {
        // div_id (string) is the ID of the element in which the calendar will
        //     be displayed
        // callback (string) is the name of a JavaScript function that will be
        //     called with the parameters (year, month, day) when a day in the
        //     calendar is clicked
        this.div_id = div_id;
        this.callback = callback;
        this.today = new Date();
        this.currentMonth = this.today.getMonth() + 1;
        this.currentYear = this.today.getFullYear();
        if (typeof selected !== 'undefined') {
            this.selected = selected;
        }
    }
    Calendar.prototype = {
        drawCurrent: function() {
            CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback, this.selected);
        },
        drawDate: function(month, year, selected) {
            this.currentMonth = month;
            this.currentYear = year;

            if(selected) {
                this.selected = selected;
            }

            this.drawCurrent();
        },
        drawPreviousMonth: function() {
            if (this.currentMonth === 1) {
                this.currentMonth = 12;
                this.currentYear--;
            }
            else {
                this.currentMonth--;
            }
            this.drawCurrent();
        },
        drawNextMonth: function() {
            if (this.currentMonth === 12) {
                this.currentMonth = 1;
                this.currentYear++;
            }
            else {
                this.currentMonth++;
            }
            this.drawCurrent();
        },
        drawPreviousYear: function() {
            this.currentYear--;
            this.drawCurrent();
        },
        drawNextYear: function() {
            this.currentYear++;
            this.drawCurrent();
        }
    };
    window.Calendar = Calendar;
    window.CalendarNamespace = CalendarNamespace;
})();


================================================
FILE: static/admin/js/cancel.js
================================================
(function($) {
    'use strict';
    $(function() {
        $('.cancel-link').on('click', function(e) {
            e.preventDefault();
            if (window.location.search.indexOf('&_popup=1') === -1) {
                window.history.back(); // Go back if not a popup.
            } else {
                window.close(); // Otherwise, close the popup.
            }
        });
    });
})(django.jQuery);


================================================
FILE: static/admin/js/change_form.js
================================================
/*global showAddAnotherPopup, showRelatedObjectLookupPopup showRelatedObjectPopup updateRelatedObjectLinks*/

(function($) {
    'use strict';
    $(document).ready(function() {
        var modelName = $('#django-admin-form-add-constants').data('modelName');
        $('body').on('click', '.add-another', function(e) {
            e.preventDefault();
            var event = $.Event('django:add-another-related');
            $(this).trigger(event);
            if (!event.isDefaultPrevented()) {
                showAddAnotherPopup(this);
            }
        });

        if (modelName) {
            $('form#' + modelName + '_form :input:visible:enabled:first').focus();
        }
    });
})(django.jQuery);


================================================
FILE: static/admin/js/collapse.js
================================================
/*global gettext*/
(function() {
    'use strict';
    var closestElem = function(elem, tagName) {
        if (elem.nodeName === tagName.toUpperCase()) {
            return elem;
        }
        if (elem.parentNode.nodeName === 'BODY') {
            return null;
        }
        return elem.parentNode && closestElem(elem.parentNode, tagName);
    };

    window.addEventListener('load', function() {
        // Add anchor tag for Show/Hide link
        var fieldsets = document.querySelectorAll('fieldset.collapse');
        for (var i = 0; i < fieldsets.length; i++) {
            var elem = fieldsets[i];
            // Don't hide if fields in this fieldset have errors
            if (elem.querySelectorAll('div.errors').length === 0) {
                elem.classList.add('collapsed');
                var h2 = elem.querySelector('h2');
                var link = document.createElement('a');
                link.setAttribute('id', 'fieldsetcollapser' + i);
                link.setAttribute('class', 'collapse-toggle');
                link.setAttribute('href', '#');
                link.textContent = gettext('Show');
                h2.appendChild(document.createTextNode(' ('));
                h2.appendChild(link);
                h2.appendChild(document.createTextNode(')'));
            }
        }
        // Add toggle to hide/show anchor tag
        var toggleFunc = function(ev) {
            if (ev.target.matches('.collapse-toggle')) {
                ev.preventDefault();
                ev.stopPropagation();
                var fieldset = closestElem(ev.target, 'fieldset');
                if (fieldset.classList.contains('collapsed')) {
                    // Show
                    ev.target.textContent = gettext('Hide');
                    fieldset.classList.remove('collapsed');
                } else {
                    // Hide
                    ev.target.textContent = gettext('Show');
                    fieldset.classList.add('collapsed');
                }
            }
        };
        var inlineDivs = document.querySelectorAll('fieldset.module');
        for (i = 0; i < inlineDivs.length; i++) {
            inlineDivs[i].addEventListener('click', toggleFunc);
        }
    });
})();


================================================
FILE: static/admin/js/core.js
================================================
// Core javascript helper functions

// basic browser identification & version
var isOpera = (navigator.userAgent.indexOf("Opera") >= 0) && parseFloat(navigator.appVersion);
var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]);

// quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]);
function quickElement() {
    'use strict';
    var obj = document.createElement(arguments[0]);
    if (arguments[2]) {
        var textNode = document.createTextNode(arguments[2]);
        obj.appendChild(textNode);
    }
    var len = arguments.length;
    for (var i = 3; i < len; i += 2) {
        obj.setAttribute(arguments[i], arguments[i + 1]);
    }
    arguments[1].appendChild(obj);
    return obj;
}

// "a" is reference to an object
function removeChildren(a) {
    'use strict';
    while (a.hasChildNodes()) {
        a.removeChild(a.lastChild);
    }
}

// ----------------------------------------------------------------------------
// Find-position functions by PPK
// See https://www.quirksmode.org/js/findpos.html
// ----------------------------------------------------------------------------
function findPosX(obj) {
    'use strict';
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft);
            obj = obj.offsetParent;
        }
        // IE offsetParent does not include the top-level
        if (isIE && obj.parentElement) {
            curleft += obj.offsetLeft - obj.scrollLeft;
        }
    } else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}

function findPosY(obj) {
    'use strict';
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop);
            obj = obj.offsetParent;
        }
        // IE offsetParent does not include the top-level
        if (isIE && obj.parentElement) {
            curtop += obj.offsetTop - obj.scrollTop;
        }
    } else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}

//-----------------------------------------------------------------------------
// Date object extensions
// ----------------------------------------------------------------------------
(function() {
    'use strict';
    Date.prototype.getTwelveHours = function() {
        var hours = this.getHours();
        if (hours === 0) {
            return 12;
        }
        else {
            return hours <= 12 ? hours : hours - 12;
        }
    };

    Date.prototype.getTwoDigitMonth = function() {
        return (this.getMonth() < 9) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1);
    };

    Date.prototype.getTwoDigitDate = function() {
        return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();
    };

    Date.prototype.getTwoDigitTwelveHour = function() {
        return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours();
    };

    Date.prototype.getTwoDigitHour = function() {
        return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours();
    };

    Date.prototype.getTwoDigitMinute = function() {
        return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes();
    };

    Date.prototype.getTwoDigitSecond = function() {
        return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds();
    };

    Date.prototype.getHourMinute = function() {
        return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute();
    };

    Date.prototype.getHourMinuteSecond = function() {
        return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond();
    };

    Date.prototype.getFullMonthName = function() {
        return typeof window.CalendarNamespace === "undefined"
            ? this.getTwoDigitMonth()
            : window.CalendarNamespace.monthsOfYear[this.getMonth()];
    };

    Date.prototype.strftime = function(format) {
        var fields = {
            B: this.getFullMonthName(),
            c: this.toString(),
            d: this.getTwoDigitDate(),
            H: this.getTwoDigitHour(),
            I: this.getTwoDigitTwelveHour(),
            m: this.getTwoDigitMonth(),
            M: this.getTwoDigitMinute(),
            p: (this.getHours() >= 12) ? 'PM' : 'AM',
            S: this.getTwoDigitSecond(),
            w: '0' + this.getDay(),
            x: this.toLocaleDateSt
Download .txt
gitextract_xmbx1o6c/

├── .dockerignore
├── .flake8
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       └── tests.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── Dockerfile
├── LICENSE
├── Procfile
├── README.md
├── build.sh
├── docker-compose.yml
├── manage.py
├── requirements.dev.txt
├── requirements.txt
├── runtime.txt
├── static/
│   ├── admin/
│   │   ├── css/
│   │   │   ├── autocomplete.css
│   │   │   ├── base.css
│   │   │   ├── changelists.css
│   │   │   ├── dashboard.css
│   │   │   ├── fonts.css
│   │   │   ├── forms.css
│   │   │   ├── login.css
│   │   │   ├── responsive.css
│   │   │   ├── responsive_rtl.css
│   │   │   ├── rtl.css
│   │   │   ├── vendor/
│   │   │   │   └── select2/
│   │   │   │       ├── LICENSE-SELECT2.md
│   │   │   │       └── select2.css
│   │   │   └── widgets.css
│   │   ├── fonts/
│   │   │   ├── LICENSE.txt
│   │   │   └── README.txt
│   │   ├── img/
│   │   │   ├── LICENSE
│   │   │   └── README.txt
│   │   └── js/
│   │       ├── SelectBox.js
│   │       ├── SelectFilter2.js
│   │       ├── actions.js
│   │       ├── admin/
│   │       │   ├── DateTimeShortcuts.js
│   │       │   └── RelatedObjectLookups.js
│   │       ├── autocomplete.js
│   │       ├── calendar.js
│   │       ├── cancel.js
│   │       ├── change_form.js
│   │       ├── collapse.js
│   │       ├── core.js
│   │       ├── inlines.js
│   │       ├── jquery.init.js
│   │       ├── popup_response.js
│   │       ├── prepopulate.js
│   │       ├── prepopulate_init.js
│   │       ├── timeparse.js
│   │       ├── urlify.js
│   │       └── vendor/
│   │           ├── jquery/
│   │           │   ├── LICENSE.txt
│   │           │   └── jquery.js
│   │           ├── select2/
│   │           │   ├── LICENSE.md
│   │           │   ├── i18n/
│   │           │   │   ├── ar.js
│   │           │   │   ├── az.js
│   │           │   │   ├── bg.js
│   │           │   │   ├── ca.js
│   │           │   │   ├── cs.js
│   │           │   │   ├── da.js
│   │           │   │   ├── de.js
│   │           │   │   ├── el.js
│   │           │   │   ├── en.js
│   │           │   │   ├── es.js
│   │           │   │   ├── et.js
│   │           │   │   ├── eu.js
│   │           │   │   ├── fa.js
│   │           │   │   ├── fi.js
│   │           │   │   ├── fr.js
│   │           │   │   ├── gl.js
│   │           │   │   ├── he.js
│   │           │   │   ├── hi.js
│   │           │   │   ├── hr.js
│   │           │   │   ├── hu.js
│   │           │   │   ├── id.js
│   │           │   │   ├── is.js
│   │           │   │   ├── it.js
│   │           │   │   ├── ja.js
│   │           │   │   ├── km.js
│   │           │   │   ├── ko.js
│   │           │   │   ├── lt.js
│   │           │   │   ├── lv.js
│   │           │   │   ├── mk.js
│   │           │   │   ├── ms.js
│   │           │   │   ├── nb.js
│   │           │   │   ├── nl.js
│   │           │   │   ├── pl.js
│   │           │   │   ├── pt-BR.js
│   │           │   │   ├── pt.js
│   │           │   │   ├── ro.js
│   │           │   │   ├── ru.js
│   │           │   │   ├── sk.js
│   │           │   │   ├── sr-Cyrl.js
│   │           │   │   ├── sr.js
│   │           │   │   ├── sv.js
│   │           │   │   ├── th.js
│   │           │   │   ├── tr.js
│   │           │   │   ├── uk.js
│   │           │   │   ├── vi.js
│   │           │   │   ├── zh-CN.js
│   │           │   │   └── zh-TW.js
│   │           │   └── select2.full.js
│   │           └── xregexp/
│   │               ├── LICENSE.txt
│   │               └── xregexp.js
│   ├── bootstrap/
│   │   └── js/
│   │       ├── bootstrap.bundle.js
│   │       └── bootstrap.js
│   ├── bootstrap-colorpicker/
│   │   ├── css/
│   │   │   └── bootstrap-colorpicker.css
│   │   └── js/
│   │       └── bootstrap-colorpicker.js
│   ├── bootstrap-slider/
│   │   ├── bootstrap-slider.js
│   │   └── css/
│   │       └── bootstrap-slider.css
│   ├── bootstrap-switch/
│   │   ├── css/
│   │   │   ├── bootstrap2/
│   │   │   │   └── bootstrap-switch.css
│   │   │   └── bootstrap3/
│   │   │       └── bootstrap-switch.css
│   │   └── js/
│   │       └── bootstrap-switch.js
│   ├── bootstrap4-duallistbox/
│   │   ├── bootstrap-duallistbox.css
│   │   └── jquery.bootstrap-duallistbox.js
│   ├── bs-custom-file-input/
│   │   └── bs-custom-file-input.js
│   ├── chart.js/
│   │   ├── Chart.bundle.js
│   │   ├── Chart.css
│   │   └── Chart.js
│   ├── datatables/
│   │   └── jquery.dataTables.js
│   ├── datatables-autofill/
│   │   ├── css/
│   │   │   └── autoFill.bootstrap4.css
│   │   └── js/
│   │       ├── autoFill.bootstrap4.js
│   │       └── dataTables.autoFill.js
│   ├── datatables-bs4/
│   │   ├── css/
│   │   │   └── dataTables.bootstrap4.css
│   │   └── js/
│   │       └── dataTables.bootstrap4.js
│   ├── datatables-buttons/
│   │   ├── css/
│   │   │   └── buttons.bootstrap4.css
│   │   └── js/
│   │       ├── buttons.bootstrap4.js
│   │       ├── buttons.colVis.js
│   │       ├── buttons.flash.js
│   │       ├── buttons.html5.js
│   │       ├── buttons.print.js
│   │       └── dataTables.buttons.js
│   ├── datatables-colreorder/
│   │   ├── css/
│   │   │   └── colReorder.bootstrap4.css
│   │   └── js/
│   │       ├── colReorder.bootstrap4.js
│   │       └── dataTables.colReorder.js
│   ├── datatables-fixedcolumns/
│   │   ├── css/
│   │   │   └── fixedColumns.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.fixedColumns.js
│   │       └── fixedColumns.bootstrap4.js
│   ├── datatables-fixedheader/
│   │   ├── css/
│   │   │   └── fixedHeader.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.fixedHeader.js
│   │       └── fixedHeader.bootstrap4.js
│   ├── datatables-keytable/
│   │   ├── css/
│   │   │   └── keyTable.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.keyTable.js
│   │       └── keyTable.bootstrap4.js
│   ├── datatables-responsive/
│   │   ├── css/
│   │   │   └── responsive.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.responsive.js
│   │       └── responsive.bootstrap4.js
│   ├── datatables-rowgroup/
│   │   ├── css/
│   │   │   └── rowGroup.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.rowGroup.js
│   │       └── rowGroup.bootstrap4.js
│   ├── datatables-rowreorder/
│   │   ├── css/
│   │   │   └── rowReorder.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.rowReorder.js
│   │       └── rowReorder.bootstrap4.js
│   ├── datatables-scroller/
│   │   ├── css/
│   │   │   └── scroller.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.scroller.js
│   │       └── scroller.bootstrap4.js
│   ├── datatables-select/
│   │   ├── css/
│   │   │   └── select.bootstrap4.css
│   │   └── js/
│   │       ├── dataTables.select.js
│   │       └── select.bootstrap4.js
│   ├── daterangepicker/
│   │   ├── bower.json
│   │   ├── daterangepicker.css
│   │   ├── daterangepicker.js
│   │   ├── example/
│   │   │   ├── amd/
│   │   │   │   ├── index.html
│   │   │   │   ├── main.js
│   │   │   │   └── require.js
│   │   │   └── browserify/
│   │   │       ├── README.md
│   │   │       ├── bundle.js
│   │   │       ├── index.html
│   │   │       └── main.js
│   │   ├── package.js
│   │   ├── website/
│   │   │   ├── index.html
│   │   │   ├── website.css
│   │   │   └── website.js
│   │   ├── website.css
│   │   └── website.js
│   ├── ekko-lightbox/
│   │   ├── ekko-lightbox.css
│   │   └── ekko-lightbox.js
│   ├── fastclick/
│   │   └── fastclick.js
│   ├── filterizr/
│   │   ├── ActiveFilter.d.ts
│   │   ├── BrowserWindow.d.ts
│   │   ├── EventReceiver.d.ts
│   │   ├── FilterContainer/
│   │   │   ├── FilterContainer.d.ts
│   │   │   ├── StyledFilterContainer.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── styles.d.ts
│   │   ├── FilterContainer.d.ts
│   │   ├── FilterControls.d.ts
│   │   ├── FilterItem/
│   │   │   ├── FilterItem.d.ts
│   │   │   ├── StyledFilterItem.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── styles.d.ts
│   │   ├── FilterItem.d.ts
│   │   ├── FilterItems/
│   │   │   ├── FilterItems.d.ts
│   │   │   ├── StyledFilterItems.d.ts
│   │   │   └── index.d.ts
│   │   ├── FilterItems.d.ts
│   │   ├── Filterizr/
│   │   │   ├── Filterizr.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── installAsJQueryPlugin.d.ts
│   │   ├── Filterizr.d.ts
│   │   ├── FilterizrElement.d.ts
│   │   ├── FilterizrOptions/
│   │   │   ├── FilterizrOptions.d.ts
│   │   │   ├── defaultOptions.d.ts
│   │   │   └── index.d.ts
│   │   ├── Spinner/
│   │   │   ├── Spinner.d.ts
│   │   │   ├── StyledSpinner.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── makeSpinner.d.ts
│   │   ├── StyledFilterizrElement.d.ts
│   │   ├── StyledFilterizrElements.d.ts
│   │   ├── animate.d.ts
│   │   ├── config/
│   │   │   ├── cssEasingValuesRegexp.d.ts
│   │   │   ├── filterizrState.d.ts
│   │   │   ├── index.d.ts
│   │   │   └── layout.d.ts
│   │   ├── getLayoutPositions.d.ts
│   │   ├── index.d.ts
│   │   ├── index.jquery.d.ts
│   │   ├── installAsJQueryPlugin.d.ts
│   │   ├── layouts/
│   │   │   ├── Packer.d.ts
│   │   │   ├── getHorizontalLayoutPositions.d.ts
│   │   │   ├── getPackedLayoutPositions.d.ts
│   │   │   ├── getSameHeightLayoutPositions.d.ts
│   │   │   ├── getSameSizeLayoutPosition.d.ts
│   │   │   ├── getSameWidthLayoutPositions.d.ts
│   │   │   └── getVerticalLayoutPositions.d.ts
│   │   ├── makeLayoutPositions/
│   │   │   ├── Packer.d.ts
│   │   │   ├── index.d.ts
│   │   │   ├── makeHorizontalLayoutPositions.d.ts
│   │   │   ├── makeLayoutPositions.d.ts
│   │   │   ├── makePackedLayoutPositions.d.ts
│   │   │   ├── makeSameHeightLayoutPositions.d.ts
│   │   │   ├── makeSameSizeLayoutPosition.d.ts
│   │   │   ├── makeSameWidthLayoutPositions.d.ts
│   │   │   └── makeVerticalLayoutPositions.d.ts
│   │   ├── types/
│   │   │   ├── index.d.ts
│   │   │   └── interfaces/
│   │   │       ├── BaseOptions.d.ts
│   │   │       ├── ContainerLayout.d.ts
│   │   │       ├── Destructible.d.ts
│   │   │       ├── Dictionary.d.ts
│   │   │       ├── Dimensions.d.ts
│   │   │       ├── Options.d.ts
│   │   │       ├── Position.d.ts
│   │   │       ├── RawOptions.d.ts
│   │   │       ├── RawOptionsCallbacks.d.ts
│   │   │       ├── Resizable.d.ts
│   │   │       ├── SpinnerOptions.d.ts
│   │   │       ├── Styleable.d.ts
│   │   │       └── index.d.ts
│   │   ├── utils/
│   │   │   ├── allStringsOfArray1InArray2.d.ts
│   │   │   ├── checkOptionForErrors.d.ts
│   │   │   ├── debounce.d.ts
│   │   │   ├── filterItemArraysHaveSameSorting.d.ts
│   │   │   ├── getDataAttributesOfHTMLNode.d.ts
│   │   │   ├── getHTMLElement.d.ts
│   │   │   ├── index.d.ts
│   │   │   ├── intersection.d.ts
│   │   │   ├── merge.d.ts
│   │   │   ├── noop.d.ts
│   │   │   ├── setStyles.d.ts
│   │   │   ├── shuffle.d.ts
│   │   │   └── sortBy.d.ts
│   │   └── utils.d.ts
│   ├── flag-icon-css/
│   │   └── css/
│   │       └── flag-icon.css
│   ├── flot/
│   │   └── jquery.flot.js
│   ├── flot-old/
│   │   ├── excanvas.js
│   │   ├── jquery.colorhelpers.js
│   │   ├── jquery.flot.canvas.js
│   │   ├── jquery.flot.categories.js
│   │   ├── jquery.flot.crosshair.js
│   │   ├── jquery.flot.errorbars.js
│   │   ├── jquery.flot.fillbetween.js
│   │   ├── jquery.flot.image.js
│   │   ├── jquery.flot.js
│   │   ├── jquery.flot.navigate.js
│   │   ├── jquery.flot.pie.js
│   │   ├── jquery.flot.resize.js
│   │   ├── jquery.flot.selection.js
│   │   ├── jquery.flot.stack.js
│   │   ├── jquery.flot.symbol.js
│   │   ├── jquery.flot.threshold.js
│   │   └── jquery.flot.time.js
│   ├── fontawesome-free/
│   │   └── css/
│   │       ├── all.css
│   │       ├── brands.css
│   │       ├── fontawesome.css
│   │       ├── regular.css
│   │       ├── solid.css
│   │       ├── svg-with-js.css
│   │       └── v4-shims.css
│   ├── fullcalendar/
│   │   ├── LICENSE.txt
│   │   ├── locales/
│   │   │   ├── af.js
│   │   │   ├── ar-dz.js
│   │   │   ├── ar-kw.js
│   │   │   ├── ar-ly.js
│   │   │   ├── ar-ma.js
│   │   │   ├── ar-sa.js
│   │   │   ├── ar-tn.js
│   │   │   ├── ar.js
│   │   │   ├── bg.js
│   │   │   ├── bs.js
│   │   │   ├── ca.js
│   │   │   ├── cs.js
│   │   │   ├── da.js
│   │   │   ├── de.js
│   │   │   ├── el.js
│   │   │   ├── en-au.js
│   │   │   ├── en-gb.js
│   │   │   ├── en-nz.js
│   │   │   ├── es-us.js
│   │   │   ├── es.js
│   │   │   ├── et.js
│   │   │   ├── eu.js
│   │   │   ├── fa.js
│   │   │   ├── fi.js
│   │   │   ├── fr-ca.js
│   │   │   ├── fr-ch.js
│   │   │   ├── fr.js
│   │   │   ├── gl.js
│   │   │   ├── he.js
│   │   │   ├── hi.js
│   │   │   ├── hr.js
│   │   │   ├── hu.js
│   │   │   ├── id.js
│   │   │   ├── is.js
│   │   │   ├── it.js
│   │   │   ├── ja.js
│   │   │   ├── ka.js
│   │   │   ├── kk.js
│   │   │   ├── ko.js
│   │   │   ├── lb.js
│   │   │   ├── lt.js
│   │   │   ├── lv.js
│   │   │   ├── mk.js
│   │   │   ├── ms.js
│   │   │   ├── nb.js
│   │   │   ├── nl.js
│   │   │   ├── nn.js
│   │   │   ├── pl.js
│   │   │   ├── pt-br.js
│   │   │   ├── pt.js
│   │   │   ├── ro.js
│   │   │   ├── ru.js
│   │   │   ├── sk.js
│   │   │   ├── sl.js
│   │   │   ├── sq.js
│   │   │   ├── sr-cyrl.js
│   │   │   ├── sr.js
│   │   │   ├── sv.js
│   │   │   ├── th.js
│   │   │   ├── tr.js
│   │   │   ├── uk.js
│   │   │   ├── vi.js
│   │   │   ├── zh-cn.js
│   │   │   └── zh-tw.js
│   │   ├── locales-all.js
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-bootstrap/
│   │   ├── LICENSE.txt
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-daygrid/
│   │   ├── LICENSE.txt
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-interaction/
│   │   ├── LICENSE.txt
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── fullcalendar-timegrid/
│   │   ├── LICENSE.txt
│   │   ├── main.css
│   │   ├── main.d.ts
│   │   ├── main.esm.js
│   │   └── main.js
│   ├── icheck-bootstrap/
│   │   ├── LICENSE
│   │   └── icheck-bootstrap.css
│   ├── inputmask/
│   │   ├── inputmask/
│   │   │   ├── bindings/
│   │   │   │   └── inputmask.binding.js
│   │   │   ├── dependencyLibs/
│   │   │   │   ├── inputmask.dependencyLib.jqlite.js
│   │   │   │   ├── inputmask.dependencyLib.jquery.js
│   │   │   │   └── inputmask.dependencyLib.js
│   │   │   ├── global/
│   │   │   │   └── window.js
│   │   │   ├── inputmask.date.extensions.js
│   │   │   ├── inputmask.extensions.js
│   │   │   ├── inputmask.js
│   │   │   ├── inputmask.numeric.extensions.js
│   │   │   └── jquery.inputmask.js
│   │   └── jquery.inputmask.bundle.js
│   ├── ion-rangeslider/
│   │   ├── css/
│   │   │   └── ion.rangeSlider.css
│   │   ├── js/
│   │   │   └── ion.rangeSlider.js
│   │   └── less/
│   │       ├── _base.less
│   │       ├── _mixins.less
│   │       ├── irs.less
│   │       └── skins/
│   │           ├── big.less
│   │           ├── flat.less
│   │           ├── modern.less
│   │           ├── round.less
│   │           ├── sharp.less
│   │           └── square.less
│   ├── jquery/
│   │   ├── core.js
│   │   ├── jquery.js
│   │   └── jquery.slim.js
│   ├── jquery-mapael/
│   │   ├── jquery.mapael.js
│   │   └── maps/
│   │       ├── README.txt
│   │       ├── france_departments.js
│   │       ├── usa_states.js
│   │       ├── world_countries.js
│   │       ├── world_countries_mercator.js
│   │       └── world_countries_miller.js
│   ├── jquery-mousewheel/
│   │   ├── LICENSE.txt
│   │   └── jquery.mousewheel.js
│   ├── jquery-ui/
│   │   ├── AUTHORS.txt
│   │   ├── LICENSE.txt
│   │   ├── external/
│   │   │   └── jquery/
│   │   │       └── jquery.js
│   │   ├── jquery-ui.css
│   │   ├── jquery-ui.js
│   │   ├── jquery-ui.structure.css
│   │   └── jquery-ui.theme.css
│   ├── jquery-validation/
│   │   ├── additional-methods.js
│   │   ├── jquery.validate.js
│   │   └── localization/
│   │       ├── messages_ar.js
│   │       ├── messages_az.js
│   │       ├── messages_bg.js
│   │       ├── messages_bn_BD.js
│   │       ├── messages_ca.js
│   │       ├── messages_cs.js
│   │       ├── messages_da.js
│   │       ├── messages_de.js
│   │       ├── messages_el.js
│   │       ├── messages_es.js
│   │       ├── messages_es_AR.js
│   │       ├── messages_es_PE.js
│   │       ├── messages_et.js
│   │       ├── messages_eu.js
│   │       ├── messages_fa.js
│   │       ├── messages_fi.js
│   │       ├── messages_fr.js
│   │       ├── messages_ge.js
│   │       ├── messages_gl.js
│   │       ├── messages_he.js
│   │       ├── messages_hr.js
│   │       ├── messages_hu.js
│   │       ├── messages_hy_AM.js
│   │       ├── messages_id.js
│   │       ├── messages_is.js
│   │       ├── messages_it.js
│   │       ├── messages_ja.js
│   │       ├── messages_ka.js
│   │       ├── messages_kk.js
│   │       ├── messages_ko.js
│   │       ├── messages_lt.js
│   │       ├── messages_lv.js
│   │       ├── messages_mk.js
│   │       ├── messages_my.js
│   │       ├── messages_nl.js
│   │       ├── messages_no.js
│   │       ├── messages_pl.js
│   │       ├── messages_pt_BR.js
│   │       ├── messages_pt_PT.js
│   │       ├── messages_ro.js
│   │       ├── messages_ru.js
│   │       ├── messages_sd.js
│   │       ├── messages_si.js
│   │       ├── messages_sk.js
│   │       ├── messages_sl.js
│   │       ├── messages_sr.js
│   │       ├── messages_sr_lat.js
│   │       ├── messages_sv.js
│   │       ├── messages_th.js
│   │       ├── messages_tj.js
│   │       ├── messages_tr.js
│   │       ├── messages_uk.js
│   │       ├── messages_ur.js
│   │       ├── messages_vi.js
│   │       ├── messages_zh.js
│   │       ├── messages_zh_TW.js
│   │       ├── methods_de.js
│   │       ├── methods_es_CL.js
│   │       ├── methods_fi.js
│   │       ├── methods_it.js
│   │       ├── methods_nl.js
│   │       └── methods_pt.js
│   ├── jqvmap/
│   │   ├── jquery.vmap.js
│   │   ├── jqvmap.css
│   │   └── maps/
│   │       ├── continents/
│   │       │   ├── jquery.vmap.africa.js
│   │       │   ├── jquery.vmap.asia.js
│   │       │   ├── jquery.vmap.australia.js
│   │       │   ├── jquery.vmap.europe.js
│   │       │   ├── jquery.vmap.north-america.js
│   │       │   └── jquery.vmap.south-america.js
│   │       ├── jquery.vmap.algeria.js
│   │       ├── jquery.vmap.argentina.js
│   │       ├── jquery.vmap.brazil.js
│   │       ├── jquery.vmap.canada.js
│   │       ├── jquery.vmap.croatia.js
│   │       ├── jquery.vmap.europe.js
│   │       ├── jquery.vmap.france.js
│   │       ├── jquery.vmap.germany.js
│   │       ├── jquery.vmap.greece.js
│   │       ├── jquery.vmap.indonesia.js
│   │       ├── jquery.vmap.iran.js
│   │       ├── jquery.vmap.iraq.js
│   │       ├── jquery.vmap.new_regions_france.js
│   │       ├── jquery.vmap.russia.js
│   │       ├── jquery.vmap.serbia.js
│   │       ├── jquery.vmap.tunisia.js
│   │       ├── jquery.vmap.turkey.js
│   │       ├── jquery.vmap.ukraine.js
│   │       ├── jquery.vmap.usa.counties.js
│   │       ├── jquery.vmap.usa.districts.js
│   │       ├── jquery.vmap.usa.js
│   │       └── jquery.vmap.world.js
│   ├── jsgrid/
│   │   ├── demos/
│   │   │   ├── basic.html
│   │   │   ├── batch-delete.html
│   │   │   ├── custom-grid-field.html
│   │   │   ├── custom-load-indicator.html
│   │   │   ├── custom-row-renderer.html
│   │   │   ├── custom-view.html
│   │   │   ├── data-manipulation.html
│   │   │   ├── db.js
│   │   │   ├── demos.css
│   │   │   ├── external-pager.html
│   │   │   ├── index.html
│   │   │   ├── loading-by-page.html
│   │   │   ├── localization.html
│   │   │   ├── odata-service.html
│   │   │   ├── rows-reordering.html
│   │   │   ├── sorting.html
│   │   │   ├── static-data.html
│   │   │   └── validation.html
│   │   ├── i18n/
│   │   │   ├── jsgrid-de.js
│   │   │   ├── jsgrid-es.js
│   │   │   ├── jsgrid-fr.js
│   │   │   ├── jsgrid-he.js
│   │   │   ├── jsgrid-ja.js
│   │   │   ├── jsgrid-ka.js
│   │   │   ├── jsgrid-pl.js
│   │   │   ├── jsgrid-pt-br.js
│   │   │   ├── jsgrid-pt.js
│   │   │   ├── jsgrid-ru.js
│   │   │   ├── jsgrid-tr.js
│   │   │   ├── jsgrid-zh-cn.js
│   │   │   └── jsgrid-zh-tw.js
│   │   ├── jsgrid-theme.css
│   │   ├── jsgrid.css
│   │   └── jsgrid.js
│   ├── jszip/
│   │   └── jszip.js
│   ├── moment/
│   │   ├── locale/
│   │   │   ├── af.js
│   │   │   ├── ar-dz.js
│   │   │   ├── ar-kw.js
│   │   │   ├── ar-ly.js
│   │   │   ├── ar-ma.js
│   │   │   ├── ar-sa.js
│   │   │   ├── ar-tn.js
│   │   │   ├── ar.js
│   │   │   ├── az.js
│   │   │   ├── be.js
│   │   │   ├── bg.js
│   │   │   ├── bm.js
│   │   │   ├── bn.js
│   │   │   ├── bo.js
│   │   │   ├── br.js
│   │   │   ├── bs.js
│   │   │   ├── ca.js
│   │   │   ├── cs.js
│   │   │   ├── cv.js
│   │   │   ├── cy.js
│   │   │   ├── da.js
│   │   │   ├── de-at.js
│   │   │   ├── de-ch.js
│   │   │   ├── de.js
│   │   │   ├── dv.js
│   │   │   ├── el.js
│   │   │   ├── en-SG.js
│   │   │   ├── en-au.js
│   │   │   ├── en-ca.js
│   │   │   ├── en-gb.js
│   │   │   ├── en-ie.js
│   │   │   ├── en-il.js
│   │   │   ├── en-nz.js
│   │   │   ├── eo.js
│   │   │   ├── es-do.js
│   │   │   ├── es-us.js
│   │   │   ├── es.js
│   │   │   ├── et.js
│   │   │   ├── eu.js
│   │   │   ├── fa.js
│   │   │   ├── fi.js
│   │   │   ├── fo.js
│   │   │   ├── fr-ca.js
│   │   │   ├── fr-ch.js
│   │   │   ├── fr.js
│   │   │   ├── fy.js
│   │   │   ├── ga.js
│   │   │   ├── gd.js
│   │   │   ├── gl.js
│   │   │   ├── gom-latn.js
│   │   │   ├── gu.js
│   │   │   ├── he.js
│   │   │   ├── hi.js
│   │   │   ├── hr.js
│   │   │   ├── hu.js
│   │   │   ├── hy-am.js
│   │   │   ├── id.js
│   │   │   ├── is.js
│   │   │   ├── it-ch.js
│   │   │   ├── it.js
│   │   │   ├── ja.js
│   │   │   ├── jv.js
│   │   │   ├── ka.js
│   │   │   ├── kk.js
│   │   │   ├── km.js
│   │   │   ├── kn.js
│   │   │   ├── ko.js
│   │   │   ├── ku.js
│   │   │   ├── ky.js
│   │   │   ├── lb.js
│   │   │   ├── lo.js
│   │   │   ├── lt.js
│   │   │   ├── lv.js
│   │   │   ├── me.js
│   │   │   ├── mi.js
│   │   │   ├── mk.js
│   │   │   ├── ml.js
│   │   │   ├── mn.js
│   │   │   ├── mr.js
│   │   │   ├── ms-my.js
│   │   │   ├── ms.js
│   │   │   ├── mt.js
│   │   │   ├── my.js
│   │   │   ├── nb.js
│   │   │   ├── ne.js
│   │   │   ├── nl-be.js
│   │   │   ├── nl.js
│   │   │   ├── nn.js
│   │   │   ├── pa-in.js
│   │   │   ├── pl.js
│   │   │   ├── pt-br.js
│   │   │   ├── pt.js
│   │   │   ├── ro.js
│   │   │   ├── ru.js
│   │   │   ├── sd.js
│   │   │   ├── se.js
│   │   │   ├── si.js
│   │   │   ├── sk.js
│   │   │   ├── sl.js
│   │   │   ├── sq.js
│   │   │   ├── sr-cyrl.js
│   │   │   ├── sr.js
│   │   │   ├── ss.js
│   │   │   ├── sv.js
│   │   │   ├── sw.js
│   │   │   ├── ta.js
│   │   │   ├── te.js
│   │   │   ├── tet.js
│   │   │   ├── tg.js
│   │   │   ├── th.js
│   │   │   ├── tl-ph.js
│   │   │   ├── tlh.js
│   │   │   ├── tr.js
│   │   │   ├── tzl.js
│   │   │   ├── tzm-latn.js
│   │   │   ├── tzm.js
│   │   │   ├── ug-cn.js
│   │   │   ├── uk.js
│   │   │   ├── ur.js
│   │   │   ├── uz-latn.js
│   │   │   ├── uz.js
│   │   │   ├── vi.js
│   │   │   ├── x-pseudo.js
│   │   │   ├── yo.js
│   │   │   ├── zh-cn.js
│   │   │   ├── zh-hk.js
│   │   │   └── zh-tw.js
│   │   ├── locales.js
│   │   └── moment-with-locales.js
│   ├── overlayScrollbars/
│   │   ├── css/
│   │   │   └── OverlayScrollbars.css
│   │   └── js/
│   │       ├── OverlayScrollbars.js
│   │       └── jquery.overlayScrollbars.js
│   ├── pace-progress/
│   │   ├── pace.js
│   │   └── themes/
│   │       ├── black/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── blue/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── green/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── orange/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── pink/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── purple/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── red/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── silver/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       ├── white/
│   │       │   ├── pace-theme-barber-shop.css
│   │       │   ├── pace-theme-big-counter.css
│   │       │   ├── pace-theme-bounce.css
│   │       │   ├── pace-theme-center-atom.css
│   │       │   ├── pace-theme-center-circle.css
│   │       │   ├── pace-theme-center-radar.css
│   │       │   ├── pace-theme-center-simple.css
│   │       │   ├── pace-theme-corner-indicator.css
│   │       │   ├── pace-theme-fill-left.css
│   │       │   ├── pace-theme-flash.css
│   │       │   ├── pace-theme-flat-top.css
│   │       │   ├── pace-theme-loading-bar.css
│   │       │   ├── pace-theme-mac-osx.css
│   │       │   ├── pace-theme-material.css
│   │       │   └── pace-theme-minimal.css
│   │       └── yellow/
│   │           ├── pace-theme-barber-shop.css
│   │           ├── pace-theme-big-counter.css
│   │           ├── pace-theme-bounce.css
│   │           ├── pace-theme-center-atom.css
│   │           ├── pace-theme-center-circle.css
│   │           ├── pace-theme-center-radar.css
│   │           ├── pace-theme-center-simple.css
│   │           ├── pace-theme-corner-indicator.css
│   │           ├── pace-theme-fill-left.css
│   │           ├── pace-theme-flash.css
│   │           ├── pace-theme-flat-top.css
│   │           ├── pace-theme-loading-bar.css
│   │           ├── pace-theme-mac-osx.css
│   │           ├── pace-theme-material.css
│   │           └── pace-theme-minimal.css
│   ├── package.json
│   ├── pdfmake/
│   │   ├── pdfmake.js
│   │   └── vfs_fonts.js
│   ├── popper/
│   │   ├── esm/
│   │   │   ├── popper-utils.js
│   │   │   └── popper.js
│   │   ├── popper-utils.js
│   │   ├── popper.js
│   │   └── umd/
│   │       ├── popper-utils.js
│   │       ├── popper.js
│   │       └── popper.js.flow
│   ├── raphael/
│   │   ├── Gruntfile.js
│   │   ├── bower.json
│   │   ├── dev/
│   │   │   ├── banner.txt
│   │   │   ├── raphael.amd.js
│   │   │   ├── raphael.core.js
│   │   │   ├── raphael.svg.js
│   │   │   ├── raphael.vml.js
│   │   │   ├── raphaelTest.html
│   │   │   └── test/
│   │   │       ├── index.html
│   │   │       ├── svg/
│   │   │       │   └── dom.js
│   │   │       └── vml/
│   │   │           └── dom.js
│   │   ├── license.txt
│   │   ├── raphael.js
│   │   ├── raphael.no-deps.js
│   │   └── webpack.config.js
│   ├── select2/
│   │   ├── css/
│   │   │   └── select2.css
│   │   └── js/
│   │       ├── i18n/
│   │       │   ├── af.js
│   │       │   ├── ar.js
│   │       │   ├── az.js
│   │       │   ├── bg.js
│   │       │   ├── bn.js
│   │       │   ├── bs.js
│   │       │   ├── build.txt
│   │       │   ├── ca.js
│   │       │   ├── cs.js
│   │       │   ├── da.js
│   │       │   ├── de.js
│   │       │   ├── dsb.js
│   │       │   ├── el.js
│   │       │   ├── en.js
│   │       │   ├── es.js
│   │       │   ├── et.js
│   │       │   ├── eu.js
│   │       │   ├── fa.js
│   │       │   ├── fi.js
│   │       │   ├── fr.js
│   │       │   ├── gl.js
│   │       │   ├── he.js
│   │       │   ├── hi.js
│   │       │   ├── hr.js
│   │       │   ├── hsb.js
│   │       │   ├── hu.js
│   │       │   ├── hy.js
│   │       │   ├── id.js
│   │       │   ├── is.js
│   │       │   ├── it.js
│   │       │   ├── ja.js
│   │       │   ├── ka.js
│   │       │   ├── km.js
│   │       │   ├── ko.js
│   │       │   ├── lt.js
│   │       │   ├── lv.js
│   │       │   ├── mk.js
│   │       │   ├── ms.js
│   │       │   ├── nb.js
│   │       │   ├── ne.js
│   │       │   ├── nl.js
│   │       │   ├── pl.js
│   │       │   ├── ps.js
│   │       │   ├── pt-BR.js
│   │       │   ├── pt.js
│   │       │   ├── ro.js
│   │       │   ├── ru.js
│   │       │   ├── sk.js
│   │       │   ├── sl.js
│   │       │   ├── sq.js
│   │       │   ├── sr-Cyrl.js
│   │       │   ├── sr.js
│   │       │   ├── sv.js
│   │       │   ├── th.js
│   │       │   ├── tk.js
│   │       │   ├── tr.js
│   │       │   ├── uk.js
│   │       │   ├── vi.js
│   │       │   ├── zh-CN.js
│   │       │   └── zh-TW.js
│   │       ├── select2.full.js
│   │       └── select2.js
│   ├── select2-bootstrap4-theme/
│   │   └── select2-bootstrap4.css
│   ├── sparklines/
│   │   └── sparkline.js
│   ├── summernote/
│   │   ├── lang/
│   │   │   ├── summernote-ar-AR.js
│   │   │   ├── summernote-bg-BG.js
│   │   │   ├── summernote-ca-ES.js
│   │   │   ├── summernote-cs-CZ.js
│   │   │   ├── summernote-da-DK.js
│   │   │   ├── summernote-de-DE.js
│   │   │   ├── summernote-el-GR.js
│   │   │   ├── summernote-es-ES.js
│   │   │   ├── summernote-es-EU.js
│   │   │   ├── summernote-fa-IR.js
│   │   │   ├── summernote-fi-FI.js
│   │   │   ├── summernote-fr-FR.js
│   │   │   ├── summernote-gl-ES.js
│   │   │   ├── summernote-he-IL.js
│   │   │   ├── summernote-hr-HR.js
│   │   │   ├── summernote-hu-HU.js
│   │   │   ├── summernote-id-ID.js
│   │   │   ├── summernote-it-IT.js
│   │   │   ├── summernote-ja-JP.js
│   │   │   ├── summernote-ko-KR.js
│   │   │   ├── summernote-lt-LT.js
│   │   │   ├── summernote-lt-LV.js
│   │   │   ├── summernote-mn-MN.js
│   │   │   ├── summernote-nb-NO.js
│   │   │   ├── summernote-nl-NL.js
│   │   │   ├── summernote-pl-PL.js
│   │   │   ├── summernote-pt-BR.js
│   │   │   ├── summernote-pt-PT.js
│   │   │   ├── summernote-ro-RO.js
│   │   │   ├── summernote-ru-RU.js
│   │   │   ├── summernote-sk-SK.js
│   │   │   ├── summernote-sl-SI.js
│   │   │   ├── summernote-sr-RS-Latin.js
│   │   │   ├── summernote-sr-RS.js
│   │   │   ├── summernote-sv-SE.js
│   │   │   ├── summernote-ta-IN.js
│   │   │   ├── summernote-th-TH.js
│   │   │   ├── summernote-tr-TR.js
│   │   │   ├── summernote-uk-UA.js
│   │   │   ├── summernote-uz-UZ.js
│   │   │   ├── summernote-vi-VN.js
│   │   │   ├── summernote-zh-CN.js
│   │   │   └── summernote-zh-TW.js
│   │   ├── summernote-bs4.css
│   │   ├── summernote-bs4.js
│   │   ├── summernote-lite.css
│   │   ├── summernote-lite.js
│   │   ├── summernote.css
│   │   └── summernote.js
│   ├── sweetalert2/
│   │   ├── sweetalert2.all.js
│   │   ├── sweetalert2.css
│   │   └── sweetalert2.js
│   ├── sweetalert2-theme-bootstrap-4/
│   │   ├── bootstrap-4.css
│   │   └── bootstrap-4.scss
│   ├── tempusdominus-bootstrap-4/
│   │   ├── css/
│   │   │   └── tempusdominus-bootstrap-4.css
│   │   └── js/
│   │       └── tempusdominus-bootstrap-4.js
│   └── toastr/
│       └── toastr.css
├── student_management_app/
│   ├── EditResultVIewClass.py
│   ├── EmailBackEnd.py
│   ├── HodViews.py
│   ├── LoginCheckMiddleWare.py
│   ├── StaffViews.py
│   ├── StudentViews.py
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── migrations/
│   │   ├── 0001_initial.py
│   │   ├── 0002_onlineclassroom.py
│   │   ├── 0003_alter_customuser_first_name.py
│   │   ├── 0004_alter_customuser_id.py
│   │   └── __init__.py
│   ├── models.py
│   ├── static/
│   │   ├── others/
│   │   │   └── socket.io.js
│   │   └── plugins/
│   │       ├── .npmignore
│   │       ├── bootstrap/
│   │       │   └── js/
│   │       │       ├── bootstrap.bundle.js
│   │       │       └── bootstrap.js
│   │       ├── bootstrap-colorpicker/
│   │       │   ├── css/
│   │       │   │   └── bootstrap-colorpicker.css
│   │       │   └── js/
│   │       │       └── bootstrap-colorpicker.js
│   │       ├── bootstrap-slider/
│   │       │   ├── bootstrap-slider.js
│   │       │   └── css/
│   │       │       └── bootstrap-slider.css
│   │       ├── bootstrap-switch/
│   │       │   ├── css/
│   │       │   │   ├── bootstrap2/
│   │       │   │   │   └── bootstrap-switch.css
│   │       │   │   └── bootstrap3/
│   │       │   │       └── bootstrap-switch.css
│   │       │   └── js/
│   │       │       └── bootstrap-switch.js
│   │       ├── bootstrap4-duallistbox/
│   │       │   ├── bootstrap-duallistbox.css
│   │       │   └── jquery.bootstrap-duallistbox.js
│   │       ├── bs-custom-file-input/
│   │       │   └── bs-custom-file-input.js
│   │       ├── chart.js/
│   │       │   ├── Chart.bundle.js
│   │       │   ├── Chart.css
│   │       │   └── Chart.js
│   │       ├── datatables/
│   │       │   └── jquery.dataTables.js
│   │       ├── datatables-autofill/
│   │       │   ├── css/
│   │       │   │   └── autoFill.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── autoFill.bootstrap4.js
│   │       │       └── dataTables.autoFill.js
│   │       ├── datatables-bs4/
│   │       │   ├── css/
│   │       │   │   └── dataTables.bootstrap4.css
│   │       │   └── js/
│   │       │       └── dataTables.bootstrap4.js
│   │       ├── datatables-buttons/
│   │       │   ├── css/
│   │       │   │   └── buttons.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── buttons.bootstrap4.js
│   │       │       ├── buttons.colVis.js
│   │       │       ├── buttons.flash.js
│   │       │       ├── buttons.html5.js
│   │       │       ├── buttons.print.js
│   │       │       └── dataTables.buttons.js
│   │       ├── datatables-colreorder/
│   │       │   ├── css/
│   │       │   │   └── colReorder.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── colReorder.bootstrap4.js
│   │       │       └── dataTables.colReorder.js
│   │       ├── datatables-fixedcolumns/
│   │       │   ├── css/
│   │       │   │   └── fixedColumns.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.fixedColumns.js
│   │       │       └── fixedColumns.bootstrap4.js
│   │       ├── datatables-fixedheader/
│   │       │   ├── css/
│   │       │   │   └── fixedHeader.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.fixedHeader.js
│   │       │       └── fixedHeader.bootstrap4.js
│   │       ├── datatables-keytable/
│   │       │   ├── css/
│   │       │   │   └── keyTable.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.keyTable.js
│   │       │       └── keyTable.bootstrap4.js
│   │       ├── datatables-responsive/
│   │       │   ├── css/
│   │       │   │   └── responsive.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.responsive.js
│   │       │       └── responsive.bootstrap4.js
│   │       ├── datatables-rowgroup/
│   │       │   ├── css/
│   │       │   │   └── rowGroup.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.rowGroup.js
│   │       │       └── rowGroup.bootstrap4.js
│   │       ├── datatables-rowreorder/
│   │       │   ├── css/
│   │       │   │   └── rowReorder.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.rowReorder.js
│   │       │       └── rowReorder.bootstrap4.js
│   │       ├── datatables-scroller/
│   │       │   ├── css/
│   │       │   │   └── scroller.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.scroller.js
│   │       │       └── scroller.bootstrap4.js
│   │       ├── datatables-select/
│   │       │   ├── css/
│   │       │   │   └── select.bootstrap4.css
│   │       │   └── js/
│   │       │       ├── dataTables.select.js
│   │       │       └── select.bootstrap4.js
│   │       ├── daterangepicker/
│   │       │   ├── bower.json
│   │       │   ├── daterangepicker.css
│   │       │   ├── daterangepicker.js
│   │       │   ├── example/
│   │       │   │   ├── amd/
│   │       │   │   │   ├── index.html
│   │       │   │   │   ├── main.js
│   │       │   │   │   └── require.js
│   │       │   │   └── browserify/
│   │       │   │       ├── README.md
│   │       │   │       ├── bundle.js
│   │       │   │       ├── index.html
│   │       │   │       └── main.js
│   │       │   ├── package.js
│   │       │   ├── website/
│   │       │   │   ├── index.html
│   │       │   │   ├── website.css
│   │       │   │   └── website.js
│   │       │   ├── website.css
│   │       │   └── website.js
│   │       ├── ekko-lightbox/
│   │       │   ├── ekko-lightbox.css
│   │       │   └── ekko-lightbox.js
│   │       ├── fastclick/
│   │       │   └── fastclick.js
│   │       ├── filterizr/
│   │       │   ├── ActiveFilter.d.ts
│   │       │   ├── BrowserWindow.d.ts
│   │       │   ├── EventReceiver.d.ts
│   │       │   ├── FilterContainer/
│   │       │   │   ├── FilterContainer.d.ts
│   │       │   │   ├── StyledFilterContainer.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── styles.d.ts
│   │       │   ├── FilterContainer.d.ts
│   │       │   ├── FilterControls.d.ts
│   │       │   ├── FilterItem/
│   │       │   │   ├── FilterItem.d.ts
│   │       │   │   ├── StyledFilterItem.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── styles.d.ts
│   │       │   ├── FilterItem.d.ts
│   │       │   ├── FilterItems/
│   │       │   │   ├── FilterItems.d.ts
│   │       │   │   ├── StyledFilterItems.d.ts
│   │       │   │   └── index.d.ts
│   │       │   ├── FilterItems.d.ts
│   │       │   ├── Filterizr/
│   │       │   │   ├── Filterizr.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── installAsJQueryPlugin.d.ts
│   │       │   ├── Filterizr.d.ts
│   │       │   ├── FilterizrElement.d.ts
│   │       │   ├── FilterizrOptions/
│   │       │   │   ├── FilterizrOptions.d.ts
│   │       │   │   ├── defaultOptions.d.ts
│   │       │   │   └── index.d.ts
│   │       │   ├── Spinner/
│   │       │   │   ├── Spinner.d.ts
│   │       │   │   ├── StyledSpinner.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── makeSpinner.d.ts
│   │       │   ├── StyledFilterizrElement.d.ts
│   │       │   ├── StyledFilterizrElements.d.ts
│   │       │   ├── animate.d.ts
│   │       │   ├── config/
│   │       │   │   ├── cssEasingValuesRegexp.d.ts
│   │       │   │   ├── filterizrState.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   └── layout.d.ts
│   │       │   ├── getLayoutPositions.d.ts
│   │       │   ├── index.d.ts
│   │       │   ├── index.jquery.d.ts
│   │       │   ├── installAsJQueryPlugin.d.ts
│   │       │   ├── layouts/
│   │       │   │   ├── Packer.d.ts
│   │       │   │   ├── getHorizontalLayoutPositions.d.ts
│   │       │   │   ├── getPackedLayoutPositions.d.ts
│   │       │   │   ├── getSameHeightLayoutPositions.d.ts
│   │       │   │   ├── getSameSizeLayoutPosition.d.ts
│   │       │   │   ├── getSameWidthLayoutPositions.d.ts
│   │       │   │   └── getVerticalLayoutPositions.d.ts
│   │       │   ├── makeLayoutPositions/
│   │       │   │   ├── Packer.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   ├── makeHorizontalLayoutPositions.d.ts
│   │       │   │   ├── makeLayoutPositions.d.ts
│   │       │   │   ├── makePackedLayoutPositions.d.ts
│   │       │   │   ├── makeSameHeightLayoutPositions.d.ts
│   │       │   │   ├── makeSameSizeLayoutPosition.d.ts
│   │       │   │   ├── makeSameWidthLayoutPositions.d.ts
│   │       │   │   └── makeVerticalLayoutPositions.d.ts
│   │       │   ├── types/
│   │       │   │   ├── index.d.ts
│   │       │   │   └── interfaces/
│   │       │   │       ├── BaseOptions.d.ts
│   │       │   │       ├── ContainerLayout.d.ts
│   │       │   │       ├── Destructible.d.ts
│   │       │   │       ├── Dictionary.d.ts
│   │       │   │       ├── Dimensions.d.ts
│   │       │   │       ├── Options.d.ts
│   │       │   │       ├── Position.d.ts
│   │       │   │       ├── RawOptions.d.ts
│   │       │   │       ├── RawOptionsCallbacks.d.ts
│   │       │   │       ├── Resizable.d.ts
│   │       │   │       ├── SpinnerOptions.d.ts
│   │       │   │       ├── Styleable.d.ts
│   │       │   │       └── index.d.ts
│   │       │   ├── utils/
│   │       │   │   ├── allStringsOfArray1InArray2.d.ts
│   │       │   │   ├── checkOptionForErrors.d.ts
│   │       │   │   ├── debounce.d.ts
│   │       │   │   ├── filterItemArraysHaveSameSorting.d.ts
│   │       │   │   ├── getDataAttributesOfHTMLNode.d.ts
│   │       │   │   ├── getHTMLElement.d.ts
│   │       │   │   ├── index.d.ts
│   │       │   │   ├── intersection.d.ts
│   │       │   │   ├── merge.d.ts
│   │       │   │   ├── noop.d.ts
│   │       │   │   ├── setStyles.d.ts
│   │       │   │   ├── shuffle.d.ts
│   │       │   │   └── sortBy.d.ts
│   │       │   └── utils.d.ts
│   │       ├── flag-icon-css/
│   │       │   └── css/
│   │       │       └── flag-icon.css
│   │       ├── flot/
│   │       │   └── jquery.flot.js
│   │       ├── flot-old/
│   │       │   ├── excanvas.js
│   │       │   ├── jquery.colorhelpers.js
│   │       │   ├── jquery.flot.canvas.js
│   │       │   ├── jquery.flot.categories.js
│   │       │   ├── jquery.flot.crosshair.js
│   │       │   ├── jquery.flot.errorbars.js
│   │       │   ├── jquery.flot.fillbetween.js
│   │       │   ├── jquery.flot.image.js
│   │       │   ├── jquery.flot.js
│   │       │   ├── jquery.flot.navigate.js
│   │       │   ├── jquery.flot.pie.js
│   │       │   ├── jquery.flot.resize.js
│   │       │   ├── jquery.flot.selection.js
│   │       │   ├── jquery.flot.stack.js
│   │       │   ├── jquery.flot.symbol.js
│   │       │   ├── jquery.flot.threshold.js
│   │       │   └── jquery.flot.time.js
│   │       ├── fontawesome-free/
│   │       │   └── css/
│   │       │       ├── all.css
│   │       │       ├── brands.css
│   │       │       ├── fontawesome.css
│   │       │       ├── regular.css
│   │       │       ├── solid.css
│   │       │       ├── svg-with-js.css
│   │       │       └── v4-shims.css
│   │       ├── fullcalendar/
│   │       │   ├── LICENSE.txt
│   │       │   ├── locales/
│   │       │   │   ├── af.js
│   │       │   │   ├── ar-dz.js
│   │       │   │   ├── ar-kw.js
│   │       │   │   ├── ar-ly.js
│   │       │   │   ├── ar-ma.js
│   │       │   │   ├── ar-sa.js
│   │       │   │   ├── ar-tn.js
│   │       │   │   ├── ar.js
│   │       │   │   ├── bg.js
│   │       │   │   ├── bs.js
│   │       │   │   ├── ca.js
│   │       │   │   ├── cs.js
│   │       │   │   ├── da.js
│   │       │   │   ├── de.js
│   │       │   │   ├── el.js
│   │       │   │   ├── en-au.js
│   │       │   │   ├── en-gb.js
│   │       │   │   ├── en-nz.js
│   │       │   │   ├── es-us.js
│   │       │   │   ├── es.js
│   │       │   │   ├── et.js
│   │       │   │   ├── eu.js
│   │       │   │   ├── fa.js
│   │       │   │   ├── fi.js
│   │       │   │   ├── fr-ca.js
│   │       │   │   ├── fr-ch.js
│   │       │   │   ├── fr.js
│   │       │   │   ├── gl.js
│   │       │   │   ├── he.js
│   │       │   │   ├── hi.js
│   │       │   │   ├── hr.js
│   │       │   │   ├── hu.js
│   │       │   │   ├── id.js
│   │       │   │   ├── is.js
│   │       │   │   ├── it.js
│   │       │   │   ├── ja.js
│   │       │   │   ├── ka.js
│   │       │   │   ├── kk.js
│   │       │   │   ├── ko.js
│   │       │   │   ├── lb.js
│   │       │   │   ├── lt.js
│   │       │   │   ├── lv.js
│   │       │   │   ├── mk.js
│   │       │   │   ├── ms.js
│   │       │   │   ├── nb.js
│   │       │   │   ├── nl.js
│   │       │   │   ├── nn.js
│   │       │   │   ├── pl.js
│   │       │   │   ├── pt-br.js
│   │       │   │   ├── pt.js
│   │       │   │   ├── ro.js
│   │       │   │   ├── ru.js
│   │       │   │   ├── sk.js
│   │       │   │   ├── sl.js
│   │       │   │   ├── sq.js
│   │       │   │   ├── sr-cyrl.js
│   │       │   │   ├── sr.js
│   │       │   │   ├── sv.js
│   │       │   │   ├── th.js
│   │       │   │   ├── tr.js
│   │       │   │   ├── uk.js
│   │       │   │   ├── vi.js
│   │       │   │   ├── zh-cn.js
│   │       │   │   └── zh-tw.js
│   │       │   ├── locales-all.js
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-bootstrap/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-daygrid/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-interaction/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── fullcalendar-timegrid/
│   │       │   ├── LICENSE.txt
│   │       │   ├── main.css
│   │       │   ├── main.d.ts
│   │       │   ├── main.esm.js
│   │       │   └── main.js
│   │       ├── icheck-bootstrap/
│   │       │   ├── LICENSE
│   │       │   └── icheck-bootstrap.css
│   │       ├── inputmask/
│   │       │   ├── inputmask/
│   │       │   │   ├── bindings/
│   │       │   │   │   └── inputmask.binding.js
│   │       │   │   ├── dependencyLibs/
│   │       │   │   │   ├── inputmask.dependencyLib.jqlite.js
│   │       │   │   │   ├── inputmask.dependencyLib.jquery.js
│   │       │   │   │   └── inputmask.dependencyLib.js
│   │       │   │   ├── global/
│   │       │   │   │   └── window.js
│   │       │   │   ├── inputmask.date.extensions.js
│   │       │   │   ├── inputmask.extensions.js
│   │       │   │   ├── inputmask.js
│   │       │   │   ├── inputmask.numeric.extensions.js
│   │       │   │   └── jquery.inputmask.js
│   │       │   └── jquery.inputmask.bundle.js
│   │       ├── ion-rangeslider/
│   │       │   ├── .editorconfig
│   │       │   ├── css/
│   │       │   │   └── ion.rangeSlider.css
│   │       │   ├── js/
│   │       │   │   └── ion.rangeSlider.js
│   │       │   └── less/
│   │       │       ├── _base.less
│   │       │       ├── _mixins.less
│   │       │       ├── irs.less
│   │       │       └── skins/
│   │       │           ├── big.less
│   │       │           ├── flat.less
│   │       │           ├── modern.less
│   │       │           ├── round.less
│   │       │           ├── sharp.less
│   │       │           └── square.less
│   │       ├── jquery/
│   │       │   ├── core.js
│   │       │   ├── jquery.js
│   │       │   └── jquery.slim.js
│   │       ├── jquery-mapael/
│   │       │   ├── jquery.mapael.js
│   │       │   └── maps/
│   │       │       ├── README.txt
│   │       │       ├── france_departments.js
│   │       │       ├── usa_states.js
│   │       │       ├── world_countries.js
│   │       │       ├── world_countries_mercator.js
│   │       │       └── world_countries_miller.js
│   │       ├── jquery-mousewheel/
│   │       │   ├── LICENSE.txt
│   │       │   └── jquery.mousewheel.js
│   │       ├── jquery-ui/
│   │       │   ├── AUTHORS.txt
│   │       │   ├── LICENSE.txt
│   │       │   ├── external/
│   │       │   │   └── jquery/
│   │       │   │       └── jquery.js
│   │       │   ├── jquery-ui.css
│   │       │   ├── jquery-ui.js
│   │       │   ├── jquery-ui.structure.css
│   │       │   └── jquery-ui.theme.css
│   │       ├── jquery-validation/
│   │       │   ├── additional-methods.js
│   │       │   ├── jquery.validate.js
│   │       │   └── localization/
│   │       │       ├── messages_ar.js
│   │       │       ├── messages_az.js
│   │       │       ├── messages_bg.js
│   │       │       ├── messages_bn_BD.js
│   │       │       ├── messages_ca.js
│   │       │       ├── messages_cs.js
│   │       │       ├── messages_da.js
│   │       │       ├── messages_de.js
│   │       │       ├── messages_el.js
│   │       │       ├── messages_es.js
│   │       │       ├── messages_es_AR.js
│   │       │       ├── messages_es_PE.js
│   │       │       ├── messages_et.js
│   │       │       ├── messages_eu.js
│   │       │       ├── messages_fa.js
│   │       │       ├── messages_fi.js
│   │       │       ├── messages_fr.js
│   │       │       ├── messages_ge.js
│   │       │       ├── messages_gl.js
│   │       │       ├── messages_he.js
│   │       │       ├── messages_hr.js
│   │       │       ├── messages_hu.js
│   │       │       ├── messages_hy_AM.js
│   │       │       ├── messages_id.js
│   │       │       ├── messages_is.js
│   │       │       ├── messages_it.js
│   │       │       ├── messages_ja.js
│   │       │       ├── messages_ka.js
│   │       │       ├── messages_kk.js
│   │       │       ├── messages_ko.js
│   │       │       ├── messages_lt.js
│   │       │       ├── messages_lv.js
│   │       │       ├── messages_mk.js
│   │       │       ├── messages_my.js
│   │       │       ├── messages_nl.js
│   │       │       ├── messages_no.js
│   │       │       ├── messages_pl.js
│   │       │       ├── messages_pt_BR.js
│   │       │       ├── messages_pt_PT.js
│   │       │       ├── messages_ro.js
│   │       │       ├── messages_ru.js
│   │       │       ├── messages_sd.js
│   │       │       ├── messages_si.js
│   │       │       ├── messages_sk.js
│   │       │       ├── messages_sl.js
│   │       │       ├── messages_sr.js
│   │       │       ├── messages_sr_lat.js
│   │       │       ├── messages_sv.js
│   │       │       ├── messages_th.js
│   │       │       ├── messages_tj.js
│   │       │       ├── messages_tr.js
│   │       │       ├── messages_uk.js
│   │       │       ├── messages_ur.js
│   │       │       ├── messages_vi.js
│   │       │       ├── messages_zh.js
│   │       │       ├── messages_zh_TW.js
│   │       │       ├── methods_de.js
│   │       │       ├── methods_es_CL.js
│   │       │       ├── methods_fi.js
│   │       │       ├── methods_it.js
│   │       │       ├── methods_nl.js
│   │       │       └── methods_pt.js
│   │       ├── jqvmap/
│   │       │   ├── jquery.vmap.js
│   │       │   ├── jqvmap.css
│   │       │   └── maps/
│   │       │       ├── continents/
│   │       │       │   ├── jquery.vmap.africa.js
│   │       │       │   ├── jquery.vmap.asia.js
│   │       │       │   ├── jquery.vmap.australia.js
│   │       │       │   ├── jquery.vmap.europe.js
│   │       │       │   ├── jquery.vmap.north-america.js
│   │       │       │   └── jquery.vmap.south-america.js
│   │       │       ├── jquery.vmap.algeria.js
│   │       │       ├── jquery.vmap.argentina.js
│   │       │       ├── jquery.vmap.brazil.js
│   │       │       ├── jquery.vmap.canada.js
│   │       │       ├── jquery.vmap.croatia.js
│   │       │       ├── jquery.vmap.europe.js
│   │       │       ├── jquery.vmap.france.js
│   │       │       ├── jquery.vmap.germany.js
│   │       │       ├── jquery.vmap.greece.js
│   │       │       ├── jquery.vmap.indonesia.js
│   │       │       ├── jquery.vmap.iran.js
│   │       │       ├── jquery.vmap.iraq.js
│   │       │       ├── jquery.vmap.new_regions_france.js
│   │       │       ├── jquery.vmap.russia.js
│   │       │       ├── jquery.vmap.serbia.js
│   │       │       ├── jquery.vmap.tunisia.js
│   │       │       ├── jquery.vmap.turkey.js
│   │       │       ├── jquery.vmap.ukraine.js
│   │       │       ├── jquery.vmap.usa.counties.js
│   │       │       ├── jquery.vmap.usa.districts.js
│   │       │       ├── jquery.vmap.usa.js
│   │       │       └── jquery.vmap.world.js
│   │       ├── jsgrid/
│   │       │   ├── demos/
│   │       │   │   ├── basic.html
│   │       │   │   ├── batch-delete.html
│   │       │   │   ├── custom-grid-field.html
│   │       │   │   ├── custom-load-indicator.html
│   │       │   │   ├── custom-row-renderer.html
│   │       │   │   ├── custom-view.html
│   │       │   │   ├── data-manipulation.html
│   │       │   │   ├── db.js
│   │       │   │   ├── demos.css
│   │       │   │   ├── external-pager.html
│   │       │   │   ├── index.html
│   │       │   │   ├── loading-by-page.html
│   │       │   │   ├── localization.html
│   │       │   │   ├── odata-service.html
│   │       │   │   ├── rows-reordering.html
│   │       │   │   ├── sorting.html
│   │       │   │   ├── static-data.html
│   │       │   │   └── validation.html
│   │       │   ├── i18n/
│   │       │   │   ├── jsgrid-de.js
│   │       │   │   ├── jsgrid-es.js
│   │       │   │   ├── jsgrid-fr.js
│   │       │   │   ├── jsgrid-he.js
│   │       │   │   ├── jsgrid-ja.js
│   │       │   │   ├── jsgrid-ka.js
│   │       │   │   ├── jsgrid-pl.js
│   │       │   │   ├── jsgrid-pt-br.js
│   │       │   │   ├── jsgrid-pt.js
│   │       │   │   ├── jsgrid-ru.js
│   │       │   │   ├── jsgrid-tr.js
│   │       │   │   ├── jsgrid-zh-cn.js
│   │       │   │   └── jsgrid-zh-tw.js
│   │       │   ├── jsgrid-theme.css
│   │       │   ├── jsgrid.css
│   │       │   └── jsgrid.js
│   │       ├── jszip/
│   │       │   └── jszip.js
│   │       ├── moment/
│   │       │   ├── locale/
│   │       │   │   ├── af.js
│   │       │   │   ├── ar-dz.js
│   │       │   │   ├── ar-kw.js
│   │       │   │   ├── ar-ly.js
│   │       │   │   ├── ar-ma.js
│   │       │   │   ├── ar-sa.js
│   │       │   │   ├── ar-tn.js
│   │       │   │   ├── ar.js
│   │       │   │   ├── az.js
│   │       │   │   ├── be.js
│   │       │   │   ├── bg.js
│   │       │   │   ├── bm.js
│   │       │   │   ├── bn.js
│   │       │   │   ├── bo.js
│   │       │   │   ├── br.js
│   │       │   │   ├── bs.js
│   │       │   │   ├── ca.js
│   │       │   │   ├── cs.js
│   │       │   │   ├── cv.js
│   │       │   │   ├── cy.js
│   │       │   │   ├── da.js
│   │       │   │   ├── de-at.js
│   │       │   │   ├── de-ch.js
│   │       │   │   ├── de.js
│   │       │   │   ├── dv.js
│   │       │   │   ├── el.js
│   │       │   │   ├── en-SG.js
│   │       │   │   ├── en-au.js
│   │       │   │   ├── en-ca.js
│   │       │   │   ├── en-gb.js
│   │       │   │   ├── en-ie.js
│   │       │   │   ├── en-il.js
│   │       │   │   ├── en-nz.js
│   │       │   │   ├── eo.js
│   │       │   │   ├── es-do.js
│   │       │   │   ├── es-us.js
│   │       │   │   ├── es.js
│   │       │   │   ├── et.js
│   │       │   │   ├── eu.js
│   │       │   │   ├── fa.js
│   │       │   │   ├── fi.js
│   │       │   │   ├── fo.js
│   │       │   │   ├── fr-ca.js
│   │       │   │   ├── fr-ch.js
│   │       │   │   ├── fr.js
│   │       │   │   ├── fy.js
│   │       │   │   ├── ga.js
│   │       │   │   ├── gd.js
│   │       │   │   ├── gl.js
│   │       │   │   ├── gom-latn.js
│   │       │   │   ├── gu.js
│   │       │   │   ├── he.js
│   │       │   │   ├── hi.js
│   │       │   │   ├── hr.js
│   │       │   │   ├── hu.js
│   │       │   │   ├── hy-am.js
│   │       │   │   ├── id.js
│   │       │   │   ├── is.js
│   │       │   │   ├── it-ch.js
│   │       │   │   ├── it.js
│   │       │   │   ├── ja.js
│   │       │   │   ├── jv.js
│   │       │   │   ├── ka.js
│   │       │   │   ├── kk.js
│   │       │   │   ├── km.js
│   │       │   │   ├── kn.js
│   │       │   │   ├── ko.js
│   │       │   │   ├── ku.js
│   │       │   │   ├── ky.js
│   │       │   │   ├── lb.js
│   │       │   │   ├── lo.js
│   │       │   │   ├── lt.js
│   │       │   │   ├── lv.js
│   │       │   │   ├── me.js
│   │       │   │   ├── mi.js
│   │       │   │   ├── mk.js
│   │       │   │   ├── ml.js
│   │       │   │   ├── mn.js
│   │       │   │   ├── mr.js
│   │       │   │   ├── ms-my.js
│   │       │   │   ├── ms.js
│   │       │   │   ├── mt.js
│   │       │   │   ├── my.js
│   │       │   │   ├── nb.js
│   │       │   │   ├── ne.js
│   │       │   │   ├── nl-be.js
│   │       │   │   ├── nl.js
│   │       │   │   ├── nn.js
│   │       │   │   ├── pa-in.js
│   │       │   │   ├── pl.js
│   │       │   │   ├── pt-br.js
│   │       │   │   ├── pt.js
│   │       │   │   ├── ro.js
│   │       │   │   ├── ru.js
│   │       │   │   ├── sd.js
│   │       │   │   ├── se.js
│   │       │   │   ├── si.js
│   │       │   │   ├── sk.js
│   │       │   │   ├── sl.js
│   │       │   │   ├── sq.js
│   │       │   │   ├── sr-cyrl.js
│   │       │   │   ├── sr.js
│   │       │   │   ├── ss.js
│   │       │   │   ├── sv.js
│   │       │   │   ├── sw.js
│   │       │   │   ├── ta.js
│   │       │   │   ├── te.js
│   │       │   │   ├── tet.js
│   │       │   │   ├── tg.js
│   │       │   │   ├── th.js
│   │       │   │   ├── tl-ph.js
│   │       │   │   ├── tlh.js
│   │       │   │   ├── tr.js
│   │       │   │   ├── tzl.js
│   │       │   │   ├── tzm-latn.js
│   │       │   │   ├── tzm.js
│   │       │   │   ├── ug-cn.js
│   │       │   │   ├── uk.js
│   │       │   │   ├── ur.js
│   │       │   │   ├── uz-latn.js
│   │       │   │   ├── uz.js
│   │       │   │   ├── vi.js
│   │       │   │   ├── x-pseudo.js
│   │       │   │   ├── yo.js
│   │       │   │   ├── zh-cn.js
│   │       │   │   ├── zh-hk.js
│   │       │   │   └── zh-tw.js
│   │       │   ├── locales.js
│   │       │   └── moment-with-locales.js
│   │       ├── overlayScrollbars/
│   │       │   ├── css/
│   │       │   │   └── OverlayScrollbars.css
│   │       │   └── js/
│   │       │       ├── OverlayScrollbars.js
│   │       │       └── jquery.overlayScrollbars.js
│   │       ├── pace-progress/
│   │       │   ├── pace.js
│   │       │   └── themes/
│   │       │       ├── black/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── blue/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── green/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── orange/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── pink/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── purple/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── red/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── silver/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       ├── white/
│   │       │       │   ├── pace-theme-barber-shop.css
│   │       │       │   ├── pace-theme-big-counter.css
│   │       │       │   ├── pace-theme-bounce.css
│   │       │       │   ├── pace-theme-center-atom.css
│   │       │       │   ├── pace-theme-center-circle.css
│   │       │       │   ├── pace-theme-center-radar.css
│   │       │       │   ├── pace-theme-center-simple.css
│   │       │       │   ├── pace-theme-corner-indicator.css
│   │       │       │   ├── pace-theme-fill-left.css
│   │       │       │   ├── pace-theme-flash.css
│   │       │       │   ├── pace-theme-flat-top.css
│   │       │       │   ├── pace-theme-loading-bar.css
│   │       │       │   ├── pace-theme-mac-osx.css
│   │       │       │   ├── pace-theme-material.css
│   │       │       │   └── pace-theme-minimal.css
│   │       │       └── yellow/
│   │       │           ├── pace-theme-barber-shop.css
│   │       │           ├── pace-theme-big-counter.css
│   │       │           ├── pace-theme-bounce.css
│   │       │           ├── pace-theme-center-atom.css
│   │       │           ├── pace-theme-center-circle.css
│   │       │           ├── pace-theme-center-radar.css
│   │       │           ├── pace-theme-center-simple.css
│   │       │           ├── pace-theme-corner-indicator.css
│   │       │           ├── pace-theme-fill-left.css
│   │       │           ├── pace-theme-flash.css
│   │       │           ├── pace-theme-flat-top.css
│   │       │           ├── pace-theme-loading-bar.css
│   │       │           ├── pace-theme-mac-osx.css
│   │       │           ├── pace-theme-material.css
│   │       │           └── pace-theme-minimal.css
│   │       ├── pdfmake/
│   │       │   ├── pdfmake.js
│   │       │   └── vfs_fonts.js
│   │       ├── popper/
│   │       │   ├── esm/
│   │       │   │   ├── popper-utils.js
│   │       │   │   └── popper.js
│   │       │   ├── popper-utils.js
│   │       │   ├── popper.js
│   │       │   └── umd/
│   │       │       ├── popper-utils.js
│   │       │       ├── popper.js
│   │       │       └── popper.js.flow
│   │       ├── raphael/
│   │       │   ├── .eslintrc.js
│   │       │   ├── Gruntfile.js
│   │       │   ├── bower.json
│   │       │   ├── dev/
│   │       │   │   ├── banner.txt
│   │       │   │   ├── raphael.amd.js
│   │       │   │   ├── raphael.core.js
│   │       │   │   ├── raphael.svg.js
│   │       │   │   ├── raphael.vml.js
│   │       │   │   ├── raphaelTest.html
│   │       │   │   └── test/
│   │       │   │       ├── index.html
│   │       │   │       ├── svg/
│   │       │   │       │   └── dom.js
│   │       │   │       └── vml/
│   │       │   │           └── dom.js
│   │       │   ├── license.txt
│   │       │   ├── raphael.js
│   │       │   ├── raphael.no-deps.js
│   │       │   └── webpack.config.js
│   │       ├── select2/
│   │       │   ├── css/
│   │       │   │   └── select2.css
│   │       │   └── js/
│   │       │       ├── i18n/
│   │       │       │   ├── af.js
│   │       │       │   ├── ar.js
│   │       │       │   ├── az.js
│   │       │       │   ├── bg.js
│   │       │       │   ├── bn.js
│   │       │       │   ├── bs.js
│   │       │       │   ├── build.txt
│   │       │       │   ├── ca.js
│   │       │       │   ├── cs.js
│   │       │       │   ├── da.js
│   │       │       │   ├── de.js
│   │       │       │   ├── dsb.js
│   │       │       │   ├── el.js
│   │       │       │   ├── en.js
│   │       │       │   ├── es.js
│   │       │       │   ├── et.js
│   │       │       │   ├── eu.js
│   │       │       │   ├── fa.js
│   │       │       │   ├── fi.js
│   │       │       │   ├── fr.js
│   │       │       │   ├── gl.js
│   │       │       │   ├── he.js
│   │       │       │   ├── hi.js
│   │       │       │   ├── hr.js
│   │       │       │   ├── hsb.js
│   │       │       │   ├── hu.js
│   │       │       │   ├── hy.js
│   │       │       │   ├── id.js
│   │       │       │   ├── is.js
│   │       │       │   ├── it.js
│   │       │       │   ├── ja.js
│   │       │       │   ├── ka.js
│   │       │       │   ├── km.js
│   │       │       │   ├── ko.js
│   │       │       │   ├── lt.js
│   │       │       │   ├── lv.js
│   │       │       │   ├── mk.js
│   │       │       │   ├── ms.js
│   │       │       │   ├── nb.js
│   │       │       │   ├── ne.js
│   │       │       │   ├── nl.js
│   │       │       │   ├── pl.js
│   │       │       │   ├── ps.js
│   │       │       │   ├── pt-BR.js
│   │       │       │   ├── pt.js
│   │       │       │   ├── ro.js
│   │       │       │   ├── ru.js
│   │       │       │   ├── sk.js
│   │       │       │   ├── sl.js
│   │       │       │   ├── sq.js
│   │       │       │   ├── sr-Cyrl.js
│   │       │       │   ├── sr.js
│   │       │       │   ├── sv.js
│   │       │       │   ├── th.js
│   │       │       │   ├── tk.js
│   │       │       │   ├── tr.js
│   │       │       │   ├── uk.js
│   │       │       │   ├── vi.js
│   │       │       │   ├── zh-CN.js
│   │       │       │   └── zh-TW.js
│   │       │       ├── select2.full.js
│   │       │       └── select2.js
│   │       ├── select2-bootstrap4-theme/
│   │       │   └── select2-bootstrap4.css
│   │       ├── sparklines/
│   │       │   └── sparkline.js
│   │       ├── summernote/
│   │       │   ├── lang/
│   │       │   │   ├── summernote-ar-AR.js
│   │       │   │   ├── summernote-bg-BG.js
│   │       │   │   ├── summernote-ca-ES.js
│   │       │   │   ├── summernote-cs-CZ.js
│   │       │   │   ├── summernote-da-DK.js
│   │       │   │   ├── summernote-de-DE.js
│   │       │   │   ├── summernote-el-GR.js
│   │       │   │   ├── summernote-es-ES.js
│   │       │   │   ├── summernote-es-EU.js
│   │       │   │   ├── summernote-fa-IR.js
│   │       │   │   ├── summernote-fi-FI.js
│   │       │   │   ├── summernote-fr-FR.js
│   │       │   │   ├── summernote-gl-ES.js
│   │       │   │   ├── summernote-he-IL.js
│   │       │   │   ├── summernote-hr-HR.js
│   │       │   │   ├── summernote-hu-HU.js
│   │       │   │   ├── summernote-id-ID.js
│   │       │   │   ├── summernote-it-IT.js
│   │       │   │   ├── summernote-ja-JP.js
│   │       │   │   ├── summernote-ko-KR.js
│   │       │   │   ├── summernote-lt-LT.js
│   │       │   │   ├── summernote-lt-LV.js
│   │       │   │   ├── summernote-mn-MN.js
│   │       │   │   ├── summernote-nb-NO.js
│   │       │   │   ├── summernote-nl-NL.js
│   │       │   │   ├── summernote-pl-PL.js
│   │       │   │   ├── summernote-pt-BR.js
│   │       │   │   ├── summernote-pt-PT.js
│   │       │   │   ├── summernote-ro-RO.js
│   │       │   │   ├── summernote-ru-RU.js
│   │       │   │   ├── summernote-sk-SK.js
│   │       │   │   ├── summernote-sl-SI.js
│   │       │   │   ├── summernote-sr-RS-Latin.js
│   │       │   │   ├── summernote-sr-RS.js
│   │       │   │   ├── summernote-sv-SE.js
│   │       │   │   ├── summernote-ta-IN.js
│   │       │   │   ├── summernote-th-TH.js
│   │       │   │   ├── summernote-tr-TR.js
│   │       │   │   ├── summernote-uk-UA.js
│   │       │   │   ├── summernote-uz-UZ.js
│   │       │   │   ├── summernote-vi-VN.js
│   │       │   │   ├── summernote-zh-CN.js
│   │       │   │   └── summernote-zh-TW.js
│   │       │   ├── summernote-bs4.css
│   │       │   ├── summernote-bs4.js
│   │       │   ├── summernote-lite.css
│   │       │   ├── summernote-lite.js
│   │       │   ├── summernote.css
│   │       │   └── summernote.js
│   │       ├── sweetalert2/
│   │       │   ├── sweetalert2.all.js
│   │       │   ├── sweetalert2.css
│   │       │   └── sweetalert2.js
│   │       ├── sweetalert2-theme-bootstrap-4/
│   │       │   ├── bootstrap-4.css
│   │       │   └── bootstrap-4.scss
│   │       ├── tempusdominus-bootstrap-4/
│   │       │   ├── css/
│   │       │   │   └── tempusdominus-bootstrap-4.css
│   │       │   └── js/
│   │       │       └── tempusdominus-bootstrap-4.js
│   │       └── toastr/
│   │           └── toastr.css
│   ├── templates/
│   │   ├── demo.html
│   │   ├── hod_template/
│   │   │   ├── add_course_template.html
│   │   │   ├── add_staff_template.html
│   │   │   ├── add_student_template.html
│   │   │   ├── add_subject_template.html
│   │   │   ├── admin_profile.html
│   │   │   ├── admin_view_attendance.html
│   │   │   ├── base_template.html
│   │   │   ├── edit_course_template.html
│   │   │   ├── edit_staff_template.html
│   │   │   ├── edit_student_template.html
│   │   │   ├── edit_subject_template.html
│   │   │   ├── footer.html
│   │   │   ├── form_template.html
│   │   │   ├── home_content.html
│   │   │   ├── manage_course_template.html
│   │   │   ├── manage_session_template.html
│   │   │   ├── manage_staff_template.html
│   │   │   ├── manage_student_template.html
│   │   │   ├── manage_subject_template.html
│   │   │   ├── sidebar_template.html
│   │   │   ├── staff_feedback_template.html
│   │   │   ├── staff_leave_view.html
│   │   │   ├── staff_notification.html
│   │   │   ├── student_feedback_template.html
│   │   │   ├── student_leave_view.html
│   │   │   └── student_notification.html
│   │   ├── login_page.html
│   │   ├── registration/
│   │   │   ├── base.html
│   │   │   ├── password_reset_complete.html
│   │   │   ├── password_reset_confirm.html
│   │   │   ├── password_reset_done.html
│   │   │   ├── password_reset_email.html
│   │   │   └── password_reset_form.html
│   │   ├── signup_admin_page.html
│   │   ├── signup_staff_page.html
│   │   ├── signup_student_page.html
│   │   ├── staff_template/
│   │   │   ├── all_notification.html
│   │   │   ├── base_template.html
│   │   │   ├── edit_student_result.html
│   │   │   ├── footer.html
│   │   │   ├── live_class_room_start.html
│   │   │   ├── sidebar_template.html
│   │   │   ├── staff_add_result.html
│   │   │   ├── staff_apply_leave.html
│   │   │   ├── staff_feedback.html
│   │   │   ├── staff_home_template.html
│   │   │   ├── staff_profile.html
│   │   │   ├── staff_take_attendance.html
│   │   │   ├── staff_update_attendance.html
│   │   │   └── start_live_classroom.html
│   │   ├── student_template/
│   │   │   ├── all_notification.html
│   │   │   ├── base_template.html
│   │   │   ├── footer.html
│   │   │   ├── join_class_room_start.html
│   │   │   ├── sidebar_template.html
│   │   │   ├── student_apply_leave.html
│   │   │   ├── student_attendance_data.html
│   │   │   ├── student_feedback.html
│   │   │   ├── student_home_template.html
│   │   │   ├── student_profile.html
│   │   │   ├── student_result.html
│   │   │   └── student_view_attendance.html
│   │   ├── widget.html
│   │   └── widget_student.html
│   ├── tests.py
│   └── views.py
└── student_management_system/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
Download .txt
Showing preview only (846K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (10439 symbols across 372 files)

FILE: manage.py
  function main (line 7) | def main():

FILE: static/admin/js/SelectFilter2.js
  function findForm (line 9) | function findForm(node) {

FILE: static/admin/js/admin/RelatedObjectLookups.js
  function id_to_windowname (line 12) | function id_to_windowname(text) {
  function windowname_to_id (line 18) | function windowname_to_id(text) {
  function showAdminPopup (line 24) | function showAdminPopup(triggeringLink, name_regexp, add_popup) {
  function showRelatedObjectLookupPopup (line 40) | function showRelatedObjectLookupPopup(triggeringLink) {
  function dismissRelatedLookupPopup (line 44) | function dismissRelatedLookupPopup(win, chosenId) {
  function showRelatedObjectPopup (line 55) | function showRelatedObjectPopup(triggeringLink) {
  function updateRelatedObjectLinks (line 59) | function updateRelatedObjectLinks(triggeringLink) {
  function dismissAddRelatedObjectPopup (line 76) | function dismissAddRelatedObjectPopup(win, newId, newRepr) {
  function dismissChangeRelatedObjectPopup (line 101) | function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) {
  function dismissDeleteRelatedObjectPopup (line 120) | function dismissDeleteRelatedObjectPopup(win, objId) {

FILE: static/admin/js/calendar.js
  function calendarMonth (line 103) | function calendarMonth(y, m) {
  function Calendar (line 148) | function Calendar(div_id, callback, selected) {

FILE: static/admin/js/core.js
  function quickElement (line 8) | function quickElement() {
  function removeChildren (line 24) | function removeChildren(a) {
  function findPosX (line 35) | function findPosX(obj) {
  function findPosY (line 53) | function findPosY(obj) {
  function getStyle (line 199) | function getStyle(oElm, strCssRule) {

FILE: static/admin/js/timeparse.js
  function parseTimeString (line 93) | function parseTimeString(s) {

FILE: static/admin/js/urlify.js
  function downcode (line 153) | function downcode(slug) {
  function URLify (line 161) | function URLify(s, num_chars, allowUnicode) {

FILE: static/admin/js/vendor/jquery/jquery.js
  function DOMEval (line 97) | function DOMEval( code, doc, node ) {
  function toType (line 115) | function toType( obj ) {
  function isArrayLike (line 484) | function isArrayLike( obj ) {
  function Sizzle (line 716) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 855) | function createCache() {
  function markFunction (line 873) | function markFunction( fn ) {
  function assert (line 882) | function assert( fn ) {
  function addHandle (line 904) | function addHandle( attrs, handler ) {
  function siblingCheck (line 919) | function siblingCheck( a, b ) {
  function createInputPseudo (line 945) | function createInputPseudo( type ) {
  function createButtonPseudo (line 956) | function createButtonPseudo( type ) {
  function createDisabledPseudo (line 967) | function createDisabledPseudo( disabled ) {
  function createPositionalPseudo (line 1023) | function createPositionalPseudo( fn ) {
  function testContext (line 1046) | function testContext( context ) {
  function setFilters (line 2128) | function setFilters() {}
  function toSelector (line 2199) | function toSelector( tokens ) {
  function addCombinator (line 2209) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2273) | function elementMatcher( matchers ) {
  function multipleContexts (line 2287) | function multipleContexts( selector, contexts, results ) {
  function condense (line 2296) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2317) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2410) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2468) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function nodeName (line 2804) | function nodeName( elem, name ) {
  function winnow (line 2814) | function winnow( elements, qualifier, not ) {
  function sibling (line 3109) | function sibling( cur, dir ) {
  function createOptions (line 3196) | function createOptions( options ) {
  function Identity (line 3421) | function Identity( v ) {
  function Thrower (line 3424) | function Thrower( ex ) {
  function adoptValue (line 3428) | function adoptValue( value, resolve, reject, noValue ) {
  function resolve (line 3521) | function resolve( depth, deferred, handler, special ) {
  function completed (line 3886) | function completed() {
  function fcamelCase (line 3981) | function fcamelCase( all, letter ) {
  function camelCase (line 3988) | function camelCase( string ) {
  function Data (line 4005) | function Data() {
  function getData (line 4174) | function getData( data ) {
  function dataAttr (line 4199) | function dataAttr( elem, key, data ) {
  function adjustCSS (line 4512) | function adjustCSS( elem, prop, valueParts, tween ) {
  function getDefaultDisplay (line 4579) | function getDefaultDisplay( elem ) {
  function showHide (line 4602) | function showHide( elements, show ) {
  function getAll (line 4703) | function getAll( context, tag ) {
  function setGlobalEval (line 4728) | function setGlobalEval( elems, refElements ) {
  function buildFragment (line 4744) | function buildFragment( elems, context, scripts, selection, ignored ) {
  function returnTrue (line 4867) | function returnTrue() {
  function returnFalse (line 4871) | function returnFalse() {
  function safeActiveElement (line 4877) | function safeActiveElement() {
  function on (line 4883) | function on( elem, types, selector, data, fn, one ) {
  function manipulationTarget (line 5611) | function manipulationTarget( elem, content ) {
  function disableScript (line 5622) | function disableScript( elem ) {
  function restoreScript (line 5626) | function restoreScript( elem ) {
  function cloneCopyEvent (line 5636) | function cloneCopyEvent( src, dest ) {
  function fixInput (line 5671) | function fixInput( src, dest ) {
  function domManip (line 5684) | function domManip( collection, args, callback, ignored ) {
  function remove (line 5774) | function remove( elem, selector, keepData ) {
  function computeStyleTests (line 6067) | function computeStyleTests() {
  function roundPixelMeasures (line 6109) | function roundPixelMeasures( measure ) {
  function curCSS (line 6154) | function curCSS( elem, name, computed ) {
  function addGetHookIf (line 6207) | function addGetHookIf( conditionFn, hookFn ) {
  function vendorPropName (line 6244) | function vendorPropName( name ) {
  function finalPropName (line 6265) | function finalPropName( name ) {
  function setPositiveNumber (line 6273) | function setPositiveNumber( elem, value, subtract ) {
  function boxModelAdjustment (line 6285) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
  function getWidthOrHeight (line 6350) | function getWidthOrHeight( elem, dimension, extra ) {
  function Tween (line 6683) | function Tween( elem, options, prop, end, easing ) {
  function schedule (line 6806) | function schedule() {
  function createFxNow (line 6819) | function createFxNow() {
  function genFx (line 6827) | function genFx( type, includeWidth ) {
  function createTween (line 6847) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 6861) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 7033) | function propFilter( props, specialEasing ) {
  function Animation (line 7070) | function Animation( elem, properties, options ) {
  function stripAndCollapse (line 7785) | function stripAndCollapse( value ) {
  function getClass (line 7791) | function getClass( elem ) {
  function classesToArray (line 7795) | function classesToArray( value ) {
  function buildParams (line 8417) | function buildParams( prefix, obj, traditional, add ) {
  function addToPrefiltersOrTransports (line 8567) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 8601) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 8630) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 8650) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 8708) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 9221) | function done( status, nativeStatusText, responses, headers ) {

FILE: static/admin/js/vendor/select2/i18n/cs.js
  function e (line 3) | function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři"...

FILE: static/admin/js/vendor/select2/i18n/hr.js
  function e (line 3) | function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100...

FILE: static/admin/js/vendor/select2/i18n/lt.js
  function e (line 3) | function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%1...

FILE: static/admin/js/vendor/select2/i18n/lv.js
  function e (line 3) | function e(e,t,n,r){return e===11?t:e%10===1?n:r}

FILE: static/admin/js/vendor/select2/i18n/ru.js
  function e (line 3) | function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}

FILE: static/admin/js/vendor/select2/i18n/sr-Cyrl.js
  function e (line 3) | function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100...

FILE: static/admin/js/vendor/select2/i18n/sr.js
  function e (line 3) | function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100...

FILE: static/admin/js/vendor/select2/i18n/uk.js
  function e (line 3) | function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<...

FILE: static/admin/js/vendor/select2/select2.full.js
  function hasProp (line 53) | function hasProp(obj, prop) {
  function normalize (line 65) | function normalize(name, baseName) {
  function makeRequire (line 177) | function makeRequire(relName, forceSync) {
  function makeNormalize (line 194) | function makeNormalize(relName) {
  function makeLoad (line 200) | function makeLoad(depName) {
  function callDep (line 206) | function callDep(name) {
  function splitPrefix (line 223) | function splitPrefix(name) {
  function makeConfig (line 276) | function makeConfig(name) {
  function BaseConstructor (line 491) | function BaseConstructor () {
  function getMethods (line 508) | function getMethods (theClass) {
  function DecoratedClass (line 534) | function DecoratedClass () {
  function ctr (line 552) | function ctr () {
  function Results (line 764) | function Results ($element, options, dataAdapter) {
  function BaseSelection (line 1315) | function BaseSelection ($element, options) {
  function SingleSelection (line 1475) | function SingleSelection () {
  function MultipleSelection (line 1574) | function MultipleSelection ($element, options) {
  function Placeholder (line 1682) | function Placeholder (decorated, $element, options) {
  function AllowClear (line 1733) | function AllowClear () { }
  function Search (line 1832) | function Search (decorated, $element, options) {
  function EventRelay (line 2053) | function EventRelay () { }
  function Translation (line 2100) | function Translation (dict) {
  function BaseAdapter (line 2984) | function BaseAdapter ($element, options) {
  function SelectAdapter (line 3027) | function SelectAdapter ($element, options) {
  function ArrayAdapter (line 3313) | function ArrayAdapter ($element, options) {
  function onlyItem (line 3348) | function onlyItem (item) {
  function AjaxAdapter (line 3393) | function AjaxAdapter ($element, options) {
  function request (line 3454) | function request () {
  function Tags (line 3501) | function Tags (decorated, $element, options) {
  function wrapper (line 3540) | function wrapper (obj, child) {
  function Tokenizer (line 3627) | function Tokenizer (decorated, $element, options) {
  function createAndSelect (line 3647) | function createAndSelect (data) {
  function select (line 3670) | function select (data) {
  function MinimumInputLength (line 3744) | function MinimumInputLength (decorated, $e, options) {
  function MaximumInputLength (line 3775) | function MaximumInputLength (decorated, $e, options) {
  function MaximumSelectionLength (line 3807) | function MaximumSelectionLength (decorated, $e, options) {
  function Dropdown (line 3840) | function Dropdown ($element, options) {
  function Search (line 3883) | function Search () { }
  function HidePlaceholder (line 3984) | function HidePlaceholder (decorated, $element, options, dataAdapter) {
  function InfiniteScroll (line 4027) | function InfiniteScroll (decorated, $element, options, dataAdapter) {
  function AttachBody (line 4118) | function AttachBody (decorated, $element, options) {
  function countResults (line 4340) | function countResults (data) {
  function MinimumResultsForSearch (line 4356) | function MinimumResultsForSearch (decorated, $element, options, dataAdap...
  function SelectOnClose (line 4380) | function SelectOnClose () { }
  function CloseOnSelect (line 4431) | function CloseOnSelect () { }
  function Defaults (line 4561) | function Defaults () {
  function stripDiacritics (line 4808) | function stripDiacritics (text) {
  function matcher (line 4817) | function matcher (params, data) {
  function Options (line 4912) | function Options (options, $element) {
  function syncCssClasses (line 5645) | function syncCssClasses ($dest, $src, adapter) {
  function _containerAdapter (line 5691) | function _containerAdapter (clazz) {
  function ContainerCSS (line 5695) | function ContainerCSS () { }
  function _dropdownAdapter (line 5748) | function _dropdownAdapter (clazz) {
  function DropdownCSS (line 5752) | function DropdownCSS () { }
  function InitSelection (line 5803) | function InitSelection (decorated, $element, options) {
  function InputData (line 5846) | function InputData (decorated, $element, options) {
  function getSelected (line 5864) | function getSelected (data, selectedIds) {
  function oldMatcher (line 5974) | function oldMatcher (matcher) {
  function Query (line 6017) | function Query (decorated, $element, options) {
  function AttachContainer (line 6044) | function AttachContainer (decorated, $element, options) {
  function StopPropagation (line 6063) | function StopPropagation () { }
  function StopPropagation (line 6102) | function StopPropagation () { }
  function handler (line 6230) | function handler(event) {
  function nullLowestDelta (line 6343) | function nullLowestDelta() {
  function shouldAdjustOldDeltas (line 6347) | function shouldAdjustOldDeltas(orgEvent, absDelta) {

FILE: static/admin/js/vendor/xregexp/xregexp.js
  function augment (line 102) | function augment(regex, captureNames, isNative) {
  function getNativeFlags (line 120) | function getNativeFlags(regex) {
  function copy (line 139) | function copy(regex, addFlags, removeFlags) {
  function lastIndexOf (line 167) | function lastIndexOf(array, value) {
  function isType (line 187) | function isType(value, type) {
  function prepareOptions (line 197) | function prepareOptions(value) {
  function runTokens (line 219) | function runTokens(pattern, pos, scope, context) {
  function setExtensibility (line 255) | function setExtensibility(on) {
  function setNatives (line 265) | function setNatives(on) {
  function slug (line 1296) | function slug(name) {
  function expand (line 1301) | function expand(str) {
  function pad4 (line 1306) | function pad4(str) {
  function dec (line 1314) | function dec(hex) {
  function hex (line 1319) | function hex(dec) {
  function invert (line 1324) | function invert(range) {
  function cacheInversion (line 1348) | function cacheInversion(item) {
  function row (line 1874) | function row(value, name, start, end) {
  function deanchor (line 2064) | function deanchor(pattern) {
  function asXRegExp (line 2079) | function asXRegExp(value) {
  function extend (line 2217) | function extend(a, b) {

FILE: static/bootstrap-colorpicker/js/bootstrap-colorpicker.js
  function __webpack_require__ (line 24) | function __webpack_require__(moduleId) {
  function defineProperties (line 101) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 107) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 109) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function Extension (line 119) | function Extension(colorpicker) {
  function defineProperties (line 305) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 314) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 316) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function HSVAColor (line 329) | function HSVAColor(h, s, v, a) {
  function ColorItem (line 425) | function ColorItem() {
  function defineProperties (line 1366) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 1376) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 1378) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function _possibleConstructorReturn (line 1380) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
  function _inherits (line 1382) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
  function Palette (line 1438) | function Palette(colorpicker) {
  function comparativeDistance (line 1898) | function comparativeDistance(x, y) {
  function _interopRequireDefault (line 2612) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function defineProperties (line 2671) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 2717) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 2719) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function Colorpicker (line 2800) | function Colorpicker(element, options) {
  function _interopRequireDefault (line 3258) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function defineProperties (line 3282) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 3294) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 3296) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function _possibleConstructorReturn (line 3298) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
  function _inherits (line 3300) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
  function Debugger (line 3310) | function Debugger(colorpicker) {
  function defineProperties (line 3463) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 3475) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 3477) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function _possibleConstructorReturn (line 3479) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
  function _inherits (line 3481) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
  function Preview (line 3490) | function Preview(colorpicker) {
  function defineProperties (line 3552) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 3564) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 3566) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function _possibleConstructorReturn (line 3568) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
  function _inherits (line 3570) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
  function Swatches (line 3585) | function Swatches(colorpicker) {
  function defineProperties (line 3659) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 3665) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 3667) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function SliderHandler (line 3677) | function SliderHandler(colorpicker) {
  function defineProperties (line 3934) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 3944) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 3946) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function PopupHandler (line 3957) | function PopupHandler(colorpicker, root) {
  function defineProperties (line 4404) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 4414) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 4416) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function InputHandler (line 4426) | function InputHandler(colorpicker) {
  function Color (line 4740) | function Color(obj, model) {
  function roundTo (line 5135) | function roundTo(num, places) {
  function roundToPlace (line 5139) | function roundToPlace(places) {
  function getset (line 5145) | function getset(model, channel, modifier) {
  function maxfn (line 5176) | function maxfn(max) {
  function assertArray (line 5182) | function assertArray(val) {
  function zeroArray (line 5186) | function zeroArray(arr, length) {
  function clamp (line 5429) | function clamp(num, min, max) {
  function hexDouble (line 5433) | function hexDouble(num) {
  function wrapRaw (line 5503) | function wrapRaw(fn) {
  function wrapRounded (line 5524) | function wrapRounded(fn) {
  function buildGraph (line 5593) | function buildGraph() {
  function deriveBFS (line 5611) | function deriveBFS(fromModel) {
  function link (line 5636) | function link(from, to) {
  function wrapConversion (line 5642) | function wrapConversion(toModel, graph) {
  function defineProperties (line 5690) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 5700) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 5702) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function ColorHandler (line 5712) | function ColorHandler(colorpicker) {
  function defineProperties (line 5976) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _interopRequireDefault (line 5982) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
  function _classCallCheck (line 5984) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function PickerHandler (line 5994) | function PickerHandler(colorpicker) {
  function defineProperties (line 6133) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _classCallCheck (line 6135) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function AddonHandler (line 6141) | function AddonHandler(colorpicker) {

FILE: static/bootstrap-slider/bootstrap-slider.js
  function noop (line 95) | function noop() {}
  function defineBridget (line 99) | function defineBridget($) {
  function createNewSlider (line 333) | function createNewSlider(element, options) {
  function getPositionPercentages (line 1207) | function getPositionPercentages(state, reversed) {

FILE: static/bootstrap-switch/js/bootstrap-switch.js
  function _interopRequireDefault (line 27) | function _interopRequireDefault(obj) {
  function _classCallCheck (line 47) | function _classCallCheck(instance, Constructor) {
  function defineProperties (line 54) | function defineProperties(target, props) {
  function getClasses (line 73) | function getClasses(options, id) {
  function prvgetElementOptions (line 86) | function prvgetElementOptions() {
  function prvwidth (line 108) | function prvwidth() {
  function prvcontainerPosition (line 129) | function prvcontainerPosition() {
  function prvgetClass (line 152) | function prvgetClass(name) {
  function prvinit (line 156) | function prvinit() {
  function prvelementHandlers (line 176) | function prvelementHandlers() {
  function prvhandleHandlers (line 233) | function prvhandleHandlers() {
  function prvlabelHandlers (line 250) | function prvlabelHandlers() {
  function prvexternalLabelHandler (line 312) | function prvexternalLabelHandler() {
  function prvformHandler (line 325) | function prvformHandler() {
  function prvgetClasses (line 345) | function prvgetClasses(classes) {
  function BootstrapSwitch (line 357) | function BootstrapSwitch(element) {
  function bootstrapSwitch (line 724) | function bootstrapSwitch(option) {

FILE: static/bootstrap/js/bootstrap.bundle.js
  function _defineProperties (line 14) | function _defineProperties(target, props) {
  function _createClass (line 24) | function _createClass(Constructor, protoProps, staticProps) {
  function _defineProperty (line 30) | function _defineProperty(obj, key, value) {
  function _objectSpread (line 45) | function _objectSpread(target) {
  function _inheritsLoose (line 64) | function _inheritsLoose(subClass, superClass) {
  function toType (line 86) | function toType(obj) {
  function getSpecialTransitionEndEvent (line 90) | function getSpecialTransitionEndEvent() {
  function transitionEndEmulator (line 104) | function transitionEndEmulator(duration) {
  function setTransitionEndSupport (line 119) | function setTransitionEndSupport() {
  function Alert (line 260) | function Alert(element) {
  function Button (line 428) | function Button(element) {
  function Carousel (line 635) | function Carousel(element, config) {
  function Collapse (line 1195) | function Collapse(element, config) {
  function microtaskDebounce (line 1539) | function microtaskDebounce(fn) {
  function taskDebounce (line 1553) | function taskDebounce(fn) {
  function isFunction (line 1586) | function isFunction(functionToCheck) {
  function getStyleComputedProperty (line 1598) | function getStyleComputedProperty(element, property) {
  function getParentNode (line 1615) | function getParentNode(element) {
  function getScrollParent (line 1629) | function getScrollParent(element) {
  function isIE (line 1667) | function isIE(version) {
  function getOffsetParent (line 1684) | function getOffsetParent(element) {
  function isOffsetContainer (line 1713) | function isOffsetContainer(element) {
  function getRoot (line 1729) | function getRoot(node) {
  function findCommonOffsetParent (line 1745) | function findCommonOffsetParent(element1, element2) {
  function getScroll (line 1789) | function getScroll(element) {
  function includeScroll (line 1813) | function includeScroll(rect, element) {
  function getBordersSize (line 1836) | function getBordersSize(styles, axis) {
  function getSize (line 1843) | function getSize(axis, body, html, computedStyle) {
  function getWindowSizes (line 1847) | function getWindowSizes(document) {
  function defineProperties (line 1865) | function defineProperties(target, props) {
  function getClientRect (line 1922) | function getClientRect(offsets) {
  function getBoundingClientRect (line 1936) | function getBoundingClientRect(element) {
  function getOffsetRectRelativeToArbitraryNode (line 1985) | function getOffsetRectRelativeToArbitraryNode(children, parent) {
  function getViewportOffsetRectRelativeToArtbitraryNode (line 2037) | function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  function isFixed (line 2066) | function isFixed(element) {
  function getFixedPositionOffsetParent (line 2089) | function getFixedPositionOffsetParent(element) {
  function getBoundaries (line 2112) | function getBoundaries(popper, reference, padding, boundariesElement) {
  function getArea (line 2166) | function getArea(_ref) {
  function computeAutoPlacement (line 2182) | function computeAutoPlacement(placement, refRect, popper, reference, bou...
  function getReferenceOffsets (line 2243) | function getReferenceOffsets(state, popper, reference) {
  function getOuterSizes (line 2257) | function getOuterSizes(element) {
  function getOppositePlacement (line 2276) | function getOppositePlacement(placement) {
  function getPopperOffsets (line 2293) | function getPopperOffsets(popper, referenceOffsets, placement) {
  function find (line 2331) | function find(arr, check) {
  function findIndex (line 2350) | function findIndex(arr, prop, value) {
  function runModifiers (line 2375) | function runModifiers(modifiers, data, ends) {
  function update (line 2405) | function update() {
  function isModifierEnabled (line 2457) | function isModifierEnabled(modifiers, modifierName) {
  function getSupportedPropertyName (line 2472) | function getSupportedPropertyName(property) {
  function destroy (line 2491) | function destroy() {
  function getWindow (line 2521) | function getWindow(element) {
  function attachToScrollParents (line 2526) | function attachToScrollParents(scrollParent, event, callback, scrollPare...
  function setupEventListeners (line 2543) | function setupEventListeners(reference, options, state, updateBound) {
  function enableEventListeners (line 2563) | function enableEventListeners() {
  function removeEventListeners (line 2575) | function removeEventListeners(reference, state) {
  function disableEventListeners (line 2599) | function disableEventListeners() {
  function isNumeric (line 2613) | function isNumeric(n) {
  function setStyles (line 2625) | function setStyles(element, styles) {
  function setAttributes (line 2644) | function setAttributes(element, attributes) {
  function applyStyle (line 2664) | function applyStyle(data) {
  function applyStyleOnLoad (line 2693) | function applyStyleOnLoad(reference, popper, options, modifierOptions, s...
  function getRoundedOffsets (line 2730) | function getRoundedOffsets(data, shouldRound) {
  function computeStyle (line 2769) | function computeStyle(data, options) {
  function isModifierRequired (line 2870) | function isModifierRequired(modifiers, requestingName, requestedName) {
  function arrow (line 2895) | function arrow(data, options) {
  function getOppositeVariation (line 2977) | function getOppositeVariation(variation) {
  function clockwise (line 3032) | function clockwise(placement) {
  function flip (line 3053) | function flip(data, options) {
  function keepTogether (line 3143) | function keepTogether(data) {
  function toValue (line 3177) | function toValue(str, measurement, popperOffsets, referenceOffsets) {
  function parseOffset (line 3229) | function parseOffset(offset, popperOffsets, referenceOffsets, basePlacem...
  function offset (line 3305) | function offset(data, _ref) {
  function preventOverflow (line 3346) | function preventOverflow(data, options) {
  function shift (line 3417) | function shift(data) {
  function hide (line 3450) | function hide(data) {
  function inner (line 3488) | function inner(data) {
  function Popper (line 3939) | function Popper(reference, popper) {
  function Dropdown (line 4169) | function Dropdown(element, config) {
  function Modal (line 4674) | function Modal(element, config) {
  function allowedAttribute (line 5247) | function allowedAttribute(attr, allowedAttributeList) {
  function sanitizeHtml (line 5271) | function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
  function Tooltip (line 5408) | function Tooltip(element, config) {
  function Popover (line 6086) | function Popover() {
  function ScrollSpy (line 6273) | function ScrollSpy(element, config) {
  function Tab (line 6568) | function Tab(element) {
  function Toast (line 6805) | function Toast(element, config) {

FILE: static/bootstrap/js/bootstrap.js
  function _defineProperties (line 15) | function _defineProperties(target, props) {
  function _createClass (line 25) | function _createClass(Constructor, protoProps, staticProps) {
  function _defineProperty (line 31) | function _defineProperty(obj, key, value) {
  function _objectSpread (line 46) | function _objectSpread(target) {
  function _inheritsLoose (line 65) | function _inheritsLoose(subClass, superClass) {
  function toType (line 87) | function toType(obj) {
  function getSpecialTransitionEndEvent (line 91) | function getSpecialTransitionEndEvent() {
  function transitionEndEmulator (line 105) | function transitionEndEmulator(duration) {
  function setTransitionEndSupport (line 120) | function setTransitionEndSupport() {
  function Alert (line 261) | function Alert(element) {
  function Button (line 429) | function Button(element) {
  function Carousel (line 636) | function Carousel(element, config) {
  function Collapse (line 1196) | function Collapse(element, config) {
  function Dropdown (line 1591) | function Dropdown(element, config) {
  function Modal (line 2096) | function Modal(element, config) {
  function allowedAttribute (line 2669) | function allowedAttribute(attr, allowedAttributeList) {
  function sanitizeHtml (line 2693) | function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
  function Tooltip (line 2830) | function Tooltip(element, config) {
  function Popover (line 3508) | function Popover() {
  function ScrollSpy (line 3695) | function ScrollSpy(element, config) {
  function Tab (line 3990) | function Tab(element) {
  function Toast (line 4227) | function Toast(element, config) {

FILE: static/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.js
  function BootstrapDualListbox (line 68) | function BootstrapDualListbox(element, options) {
  function triggerChangeEvent (line 80) | function triggerChangeEvent(dualListbox) {
  function updateSelectionStates (line 84) | function updateSelectionStates(dualListbox) {
  function changeSelectionState (line 96) | function changeSelectionState(dualListbox, original_index, selected) {
  function formatString (line 111) | function formatString(s, args) {
  function refreshInfo (line 118) | function refreshInfo(dualListbox) {
  function refreshSelects (line 152) | function refreshSelects(dualListbox) {
  function filter (line 175) | function filter(dualListbox, selectIndex) {
  function saveSelections (line 214) | function saveSelections(dualListbox, selectIndex) {
  function sortOptionsByInputOrder (line 222) | function sortOptionsByInputOrder(select){
  function sortOptions (line 241) | function sortOptions(select) {
  function clearSelections (line 247) | function clearSelections(dualListbox) {
  function move (line 253) | function move(dualListbox) {
  function remove (line 277) | function remove(dualListbox) {
  function moveAll (line 300) | function moveAll(dualListbox) {
  function removeAll (line 321) | function removeAll(dualListbox) {
  function bindEvents (line 341) | function bindEvents(dualListbox) {

FILE: static/bs-custom-file-input/bs-custom-file-input.js
  function handleInputChange (line 77) | function handleInputChange() {
  function handleFormReset (line 92) | function handleFormReset() {

FILE: static/chart.js/Chart.bundle.js
  function commonjsRequire (line 15) | function commonjsRequire () {
  function createCommonjsModule (line 19) | function createCommonjsModule(fn, module) {
  function getCjsExportFromNamespace (line 23) | function getCjsExportFromNamespace (n) {
  function comparativeDistance (line 352) | function comparativeDistance(x, y) {
  function buildGraph (line 1075) | function buildGraph() {
  function deriveBFS (line 1093) | function deriveBFS(fromModel) {
  function link (line 1118) | function link(from, to) {
  function wrapConversion (line 1124) | function wrapConversion(toModel, graph) {
  function wrapRaw (line 1163) | function wrapRaw(fn) {
  function wrapRounded (line 1184) | function wrapRounded(fn) {
  function getRgba (line 1408) | function getRgba(string) {
  function getHsla (line 1477) | function getHsla(string) {
  function getHwb (line 1493) | function getHwb(string) {
  function getRgb (line 1509) | function getRgb(string) {
  function getHsl (line 1514) | function getHsl(string) {
  function getAlpha (line 1519) | function getAlpha(string) {
  function hexString (line 1533) | function hexString(rgba, a) {
  function rgbString (line 1545) | function rgbString(rgba, alpha) {
  function rgbaString (line 1552) | function rgbaString(rgba, alpha) {
  function percentString (line 1560) | function percentString(rgba, alpha) {
  function percentaString (line 1571) | function percentaString(rgba, alpha) {
  function hslString (line 1578) | function hslString(hsla, alpha) {
  function hslaString (line 1585) | function hslaString(hsla, alpha) {
  function hwbString (line 1595) | function hwbString(hwb, alpha) {
  function keyword (line 1603) | function keyword(rgb) {
  function scale (line 1608) | function scale(num, min, max) {
  function hexDouble (line 1612) | function hexDouble(num) {
  function toFontString (line 3002) | function toFontString(font) {
  function interpolate (line 3275) | function interpolate(start, view, model, ease) {
  function listenArrayEvents (line 3555) | function listenArrayEvents(array, listener) {
  function unlistenArrayEvents (line 3596) | function unlistenArrayEvents(array, listener) {
  function clipArc (line 4131) | function clipArc(ctx, arc) {
  function drawFullCircleBorders (line 4153) | function drawFullCircleBorders(ctx, vm, arc, inner) {
  function drawBorder (line 4180) | function drawBorder(ctx, vm, arc) {
  function xRange (line 4447) | function xRange(mouseX) {
  function yRange (line 4452) | function yRange(mouseY) {
  function isVertical (line 4528) | function isVertical(vm) {
  function getBarBounds (line 4538) | function getBarBounds(vm) {
  function swap (line 4563) | function swap(orig, v1, v2) {
  function parseBorderSkipped (line 4567) | function parseBorderSkipped(vm) {
  function parseBorderWidth (line 4587) | function parseBorderWidth(vm, maxW, maxH) {
  function boundingRects (line 4609) | function boundingRects(vm) {
  function inRange (line 4631) | function inRange(vm, x, y) {
  function computeMinSampleSize (line 4769) | function computeMinSampleSize(scale, pixels) {
  function computeFitCategoryTraits (line 4792) | function computeFitCategoryTraits(index, ruler, options) {
  function computeFlexCategoryTraits (line 4825) | function computeFlexCategoryTraits(index, ruler, options) {
  function scaleClip (line 5791) | function scaleClip(scale, halfBorderWidth) {
  function defaultClip (line 5802) | function defaultClip(xScale, yScale, borderWidth) {
  function toClip (line 5815) | function toClip(value) {
  function capControlPoint (line 6039) | function capControlPoint(pt, min, max) {
  function capControlPoint (line 6596) | function capControlPoint(pt, min, max) {
  function getRelativePosition (line 6699) | function getRelativePosition(e, chart) {
  function parseVisibleItems (line 6715) | function parseVisibleItems(chart, handler) {
  function getIntersectItems (line 6736) | function getIntersectItems(chart, position) {
  function getNearestItems (line 6756) | function getNearestItems(chart, position, intersect, distanceMetric) {
  function getDistanceMetricForAxis (line 6784) | function getDistanceMetricForAxis(axis) {
  function indexMode (line 6795) | function indexMode(chart, e, options) {
  function filterByPosition (line 6995) | function filterByPosition(array, position) {
  function sortByWeight (line 7001) | function sortByWeight(array, reverse) {
  function wrapBoxes (line 7011) | function wrapBoxes(boxes) {
  function setLayoutDims (line 7028) | function setLayoutDims(layouts, params) {
  function buildLayoutBoxes (line 7041) | function buildLayoutBoxes(boxes) {
  function getCombinedMax (line 7057) | function getCombinedMax(maxPadding, chartArea, a, b) {
  function updateDims (line 7061) | function updateDims(chartArea, params, layout) {
  function handleMaxPadding (line 7093) | function handleMaxPadding(chartArea) {
  function getMargins (line 7107) | function getMargins(horizontal, chartArea) {
  function fitBoxes (line 7123) | function fitBoxes(boxes, chartArea, params) {
  function placeBoxes (line 7152) | function placeBoxes(boxes, chartArea, params) {
  function readUsedSize (line 7435) | function readUsedSize(element, property) {
  function initCanvas (line 7446) | function initCanvas(canvas, config) {
  function addListener (line 7521) | function addListener(node, type, listener) {
  function removeListener (line 7525) | function removeListener(node, type, listener) {
  function createEvent (line 7529) | function createEvent(type, chart, x, y, nativeEvent) {
  function fromNativeEvent (line 7539) | function fromNativeEvent(event, chart) {
  function throttled (line 7545) | function throttled(fn, thisArg) {
  function createDiv (line 7563) | function createDiv(cls) {
  function createResizer (line 7570) | function createResizer(handler) {
  function watchForRender (line 7603) | function watchForRender(node, handler) {
  function unwatchForRender (line 7625) | function unwatchForRender(node) {
  function addResizeListener (line 7640) | function addResizeListener(node, listener, chart) {
  function removeResizeListener (line 7677) | function removeResizeListener(node) {
  function injectCSS (line 7694) | function injectCSS(rootNode, css) {
  function pushOrConcat (line 8293) | function pushOrConcat(base, toPush) {
  function splitNewlines (line 8312) | function splitNewlines(str) {
  function createTooltipItem (line 8325) | function createTooltipItem(element) {
  function getBaseModel (line 8350) | function getBaseModel(tooltipOpts) {
  function getTooltipSize (line 8405) | function getTooltipSize(tooltip, model) {
  function determineAlignment (line 8473) | function determineAlignment(tooltip, size) {
  function getBackgroundPoint (line 8546) | function getBackgroundPoint(vm, size, alignment, chart) {
  function getAlignedX (line 8597) | function getAlignedX(vm, align) {
  function getBeforeAfterBodyLines (line 8608) | function getBeforeAfterBodyLines(callback) {
  function mergeScaleConfig (line 9175) | function mergeScaleConfig(/* config objects ... */) {
  function mergeConfig (line 9215) | function mergeConfig(/* config objects ... */) {
  function initConfig (line 9234) | function initConfig(config) {
  function updateConfig (line 9251) | function updateConfig(chart) {
  function nextAvailableScaleId (line 9272) | function nextAvailableScaleId(axesOpts, prefix, index) {
  function positionIsHorizontal (line 9285) | function positionIsHorizontal(position) {
  function compare2Level (line 9289) | function compare2Level(l1, l2) {
  function parseMaxStyle (line 10675) | function parseMaxStyle(styleValue, node, parentProperty) {
  function isConstrainedValue (line 10695) | function isConstrainedValue(value) {
  function getConstraintDimension (line 10706) | function getConstraintDimension(domNode, maxStyle, percentageProperty) {
  function abstract (line 10900) | function abstract() {
  function DateAdapter (line 10924) | function DateAdapter(options) {
  function sample (line 11154) | function sample(arr, numItems) {
  function getPixelForGridLine (line 11166) | function getPixelForGridLine(scale, index, offsetGridLines) {
  function garbageCollect (line 11193) | function garbageCollect(caches, length) {
  function computeLabelSizes (line 11211) | function computeLabelSizes(ctx, tickFonts, ticks, caches) {
  function getTickMarkLength (line 11265) | function getTickMarkLength(options) {
  function getScaleLabelHeight (line 11269) | function getScaleLabelHeight(options) {
  function parseFontOptions (line 11282) | function parseFontOptions(options, nestedOpts) {
  function parseTickFontOptions (line 11293) | function parseTickFontOptions(options) {
  function nonSkipped (line 11300) | function nonSkipped(ticksToFilter) {
  function getEvenSpacing (line 11312) | function getEvenSpacing(arr) {
  function calculateSpacing (line 11328) | function calculateSpacing(majorIndices, ticks, axisLength, ticksLimit) {
  function getMajorIndices (line 11349) | function getMajorIndices(ticks) {
  function skipMajors (line 11360) | function skipMajors(ticks, majorIndices, spacing) {
  function skip (line 11378) | function skip(ticks, spacing, majorStart, majorEnd) {
  function generateTicks (line 12665) | function generateTicks(generationOptions, dataRange) {
  function getOrCreateStack (line 12916) | function getOrCreateStack(stacks, stacked, meta) {
  function stackData (line 12934) | function stackData(scale, stacks, meta, data) {
  function updateMinMax (line 12962) | function updateMinMax(scale, meta, data) {
  function generateTicks$1 (line 13078) | function generateTicks$1(generationOptions, dataRange) {
  function nonNegativeOrDefault (line 13128) | function nonNegativeOrDefault(value, defaultValue) {
  function IDMatches (line 13139) | function IDMatches(meta) {
  function getTickBackdropHeight (line 13426) | function getTickBackdropHeight(opts) {
  function measureLabelSize (line 13435) | function measureLabelSize(ctx, lineHeight, label) {
  function determineLimits (line 13449) | function determineLimits(angle, pos, size, min, max) {
  function fitWithPointLabels (line 13471) | function fitWithPointLabels(scale) {
  function getTextAlignForAngle (line 13551) | function getTextAlignForAngle(angle) {
  function fillText (line 13561) | function fillText(ctx, text, position, lineHeight) {
  function adjustPointPositionForLabelHeight (line 13575) | function adjustPointPositionForLabelHeight(angle, textSize, position) {
  function drawPointLabels (line 13583) | function drawPointLabels(scale) {
  function drawRadiusLine (line 13614) | function drawRadiusLine(scale, gridLineOpts, radius, index) {
  function numberOrZero (line 13653) | function numberOrZero(param) {
  function sorter (line 13982) | function sorter(a, b) {
  function arrayUnique (line 13986) | function arrayUnique(items) {
  function getMin (line 14002) | function getMin(options) {
  function getMax (line 14006) | function getMax(options) {
  function buildLookupTable (line 14025) | function buildLookupTable(timestamps, min, max, distribution) {
  function lookup (line 14061) | function lookup(table, key, value) {
  function interpolate$1 (line 14093) | function interpolate$1(table, skey, sval, tkey) {
  function toTimestamp (line 14107) | function toTimestamp(scale, input) {
  function parse (line 14143) | function parse(scale, input) {
  function determineUnitForAutoTicks (line 14164) | function determineUnitForAutoTicks(minUnit, min, max, capacity) {
  function determineUnitForFormatting (line 14183) | function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {
  function determineMajorUnit (line 14196) | function determineMajorUnit(unit) {
  function generate (line 14210) | function generate(scale, min, max, capacity) {
  function computeOffsets (line 14251) | function computeOffsets(table, ticks, min, max, options) {
  function setMajorTicks (line 14274) | function setMajorTicks(scale, ticks, map, majorUnit) {
  function ticksFromTimestamps (line 14289) | function ticksFromTimestamps(scale, values, majorUnit) {
  function hooks (line 14698) | function hooks () {
  function setHookCallback (line 14704) | function setHookCallback (callback) {
  function isArray (line 14708) | function isArray(input) {
  function isObject (line 14712) | function isObject(input) {
  function isObjectEmpty (line 14718) | function isObjectEmpty(obj) {
  function isUndefined (line 14732) | function isUndefined(input) {
  function isNumber (line 14736) | function isNumber(input) {
  function isDate (line 14740) | function isDate(input) {
  function map (line 14744) | function map(arr, fn) {
  function hasOwnProp (line 14752) | function hasOwnProp(a, b) {
  function extend (line 14756) | function extend(a, b) {
  function createUTC (line 14774) | function createUTC (input, format, locale, strict) {
  function defaultParsingFlags (line 14778) | function defaultParsingFlags() {
  function getParsingFlags (line 14798) | function getParsingFlags(m) {
  function isValid (line 14823) | function isValid(m) {
  function createInvalid (line 14857) | function createInvalid (flags) {
  function copyConfig (line 14873) | function copyConfig(to, from) {
  function Moment (line 14923) | function Moment(config) {
  function isMoment (line 14938) | function isMoment (obj) {
  function absFloor (line 14942) | function absFloor (number) {
  function toInt (line 14951) | function toInt(argumentForCoercion) {
  function compareArrays (line 14963) | function compareArrays(array1, array2, dontConvert) {
  function warn (line 14977) | function warn(msg) {
  function deprecate (line 14984) | function deprecate(msg, fn) {
  function deprecateSimple (line 15016) | function deprecateSimple(name, msg) {
  function isFunction (line 15029) | function isFunction(input) {
  function set (line 15033) | function set (config) {
  function mergeConfigs (line 15052) | function mergeConfigs(parentConfig, childConfig) {
  function Locale (line 15078) | function Locale(config) {
  function calendar (line 15109) | function calendar (key, mom, now) {
  function longDateFormat (line 15123) | function longDateFormat (key) {
  function invalidDate (line 15140) | function invalidDate () {
  function ordinal (line 15147) | function ordinal (number) {
  function relativeTime (line 15168) | function relativeTime (number, withoutSuffix, string, isFuture) {
  function pastFuture (line 15175) | function pastFuture (diff, output) {
  function addUnitAlias (line 15182) | function addUnitAlias (unit, shorthand) {
  function normalizeUnits (line 15187) | function normalizeUnits(units) {
  function normalizeObjectUnits (line 15191) | function normalizeObjectUnits(inputObject) {
  function addUnitPriority (line 15210) | function addUnitPriority(unit, priority) {
  function getPrioritizedUnits (line 15214) | function getPrioritizedUnits(unitsObj) {
  function zeroFill (line 15225) | function zeroFill(number, targetLength, forceSign) {
  function addFormatToken (line 15245) | function addFormatToken (token, padded, ordinal, callback) {
  function removeFormattingTokens (line 15267) | function removeFormattingTokens(input) {
  function makeFormatFunction (line 15274) | function makeFormatFunction(format) {
  function formatMoment (line 15295) | function formatMoment(m, format) {
  function expandFormat (line 15306) | function expandFormat(format, locale) {
  function addRegexToken (line 15349) | function addRegexToken (token, regex, strictRegex) {
  function getParseRegexForToken (line 15355) | function getParseRegexForToken (token, config) {
  function unescapeFormat (line 15364) | function unescapeFormat(s) {
  function regexEscape (line 15370) | function regexEscape(s) {
  function addParseToken (line 15376) | function addParseToken (token, callback) {
  function addWeekParseToken (line 15391) | function addWeekParseToken (token, callback) {
  function addTimeToArrayFromToken (line 15398) | function addTimeToArrayFromToken(token, input, config) {
  function daysInYear (line 15458) | function daysInYear(year) {
  function isLeapYear (line 15462) | function isLeapYear(year) {
  function getIsLeapYear (line 15476) | function getIsLeapYear () {
  function makeGetSet (line 15480) | function makeGetSet (unit, keepTime) {
  function get (line 15492) | function get (mom, unit) {
  function set$1 (line 15497) | function set$1 (mom, unit, value) {
  function stringGet (line 15510) | function stringGet (units) {
  function stringSet (line 15519) | function stringSet (units, value) {
  function mod (line 15535) | function mod(n, x) {
  function daysInMonth (line 15556) | function daysInMonth(year, month) {
  function localeMonths (line 15616) | function localeMonths (m, format) {
  function localeMonthsShort (line 15626) | function localeMonthsShort (m, format) {
  function handleStrictParse (line 15635) | function handleStrictParse(monthName, format, strict) {
  function localeMonthsParse (line 15676) | function localeMonthsParse (monthName, format, strict) {
  function setMonth (line 15716) | function setMonth (mom, value) {
  function getSetMonth (line 15741) | function getSetMonth (value) {
  function getDaysInMonth (line 15751) | function getDaysInMonth () {
  function monthsShortRegex (line 15756) | function monthsShortRegex (isStrict) {
  function monthsRegex (line 15776) | function monthsRegex (isStrict) {
  function computeMonthsParse (line 15795) | function computeMonthsParse () {
  function createDate (line 15829) | function createDate (y, m, d, h, M, s, ms) {
  function createUTCDate (line 15847) | function createUTCDate (y) {
  function firstWeekOffset (line 15866) | function firstWeekOffset(year, dow, doy) {
  function dayOfYearFromWeeks (line 15876) | function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
  function weekOfYear (line 15899) | function weekOfYear(mom, dow, doy) {
  function weeksInYear (line 15921) | function weeksInYear(year, dow, doy) {
  function localeWeek (line 15957) | function localeWeek (mom) {
  function localeFirstDayOfWeek (line 15966) | function localeFirstDayOfWeek () {
  function localeFirstDayOfYear (line 15970) | function localeFirstDayOfYear () {
  function getSetWeek (line 15976) | function getSetWeek (input) {
  function getSetISOWeek (line 15981) | function getSetISOWeek (input) {
  function parseWeekday (line 16047) | function parseWeekday(input, locale) {
  function parseIsoWeekday (line 16064) | function parseIsoWeekday(input, locale) {
  function shiftWeekdays (line 16072) | function shiftWeekdays (ws, n) {
  function localeWeekdays (line 16077) | function localeWeekdays (m, format) {
  function localeWeekdaysShort (line 16085) | function localeWeekdaysShort (m) {
  function localeWeekdaysMin (line 16091) | function localeWeekdaysMin (m) {
  function handleStrictParse$1 (line 16096) | function handleStrictParse$1(weekdayName, format, strict) {
  function localeWeekdaysParse (line 16160) | function localeWeekdaysParse (weekdayName, format, strict) {
  function getSetDayOfWeek (line 16202) | function getSetDayOfWeek (input) {
  function getSetLocaleDayOfWeek (line 16215) | function getSetLocaleDayOfWeek (input) {
  function getSetISODayOfWeek (line 16223) | function getSetISODayOfWeek (input) {
  function weekdaysRegex (line 16241) | function weekdaysRegex (isStrict) {
  function weekdaysShortRegex (line 16261) | function weekdaysShortRegex (isStrict) {
  function weekdaysMinRegex (line 16281) | function weekdaysMinRegex (isStrict) {
  function computeWeekdaysParse (line 16301) | function computeWeekdaysParse () {
  function hFormat (line 16344) | function hFormat() {
  function kFormat (line 16348) | function kFormat() {
  function meridiem (line 16374) | function meridiem (token, lowercase) {
  function matchMeridiem (line 16392) | function matchMeridiem (isStrict, locale) {
  function localeIsPM (line 16452) | function localeIsPM (input) {
  function localeMeridiem (line 16459) | function localeMeridiem (hours, minutes, isLower) {
  function normalizeLocale (line 16501) | function normalizeLocale(key) {
  function chooseLocale (line 16508) | function chooseLocale(names) {
  function loadLocale (line 16532) | function loadLocale(name) {
  function getSetGlobalLocale (line 16550) | function getSetGlobalLocale (key, values) {
  function defineLocale (line 16575) | function defineLocale (name, config) {
  function updateLocale (line 16627) | function updateLocale(name, config) {
  function getLocale (line 16656) | function getLocale (key) {
  function listLocales (line 16679) | function listLocales() {
  function checkOverflow (line 16683) | function checkOverflow (m) {
  function defaults (line 16714) | function defaults(a, b, c) {
  function currentDateArray (line 16724) | function currentDateArray(config) {
  function configFromArray (line 16737) | function configFromArray (config) {
  function dayOfYearFromWeekInfo (line 16806) | function dayOfYearFromWeekInfo(config) {
  function configFromISO (line 16901) | function configFromISO(config) {
  function extractFromRFC2822Strings (line 16956) | function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, m...
  function untruncateYear (line 16972) | function untruncateYear(yearStr) {
  function preprocessRFC2822 (line 16982) | function preprocessRFC2822(s) {
  function checkWeekday (line 16987) | function checkWeekday(weekdayStr, parsedInput, config) {
  function calculateOffset (line 17014) | function calculateOffset(obsOffset, militaryOffset, numOffset) {
  function configFromRFC2822 (line 17028) | function configFromRFC2822(config) {
  function configFromString (line 17049) | function configFromString(config) {
  function configFromStringAndFormat (line 17092) | function configFromStringAndFormat(config) {
  function meridiemFixWrap (line 17164) | function meridiemFixWrap (locale, hour, meridiem) {
  function configFromStringAndArray (line 17190) | function configFromStringAndArray(config) {
  function configFromObject (line 17234) | function configFromObject(config) {
  function createFromConfig (line 17247) | function createFromConfig (config) {
  function prepareConfig (line 17258) | function prepareConfig (config) {
  function configFromInput (line 17291) | function configFromInput(config) {
  function createLocalOrUTC (line 17314) | function createLocalOrUTC (input, format, locale, strict, isUTC) {
  function createLocal (line 17338) | function createLocal (input, format, locale, strict) {
  function pickBy (line 17371) | function pickBy(fn, moments) {
  function min (line 17389) | function min () {
  function max (line 17395) | function max () {
  function isDurationValid (line 17407) | function isDurationValid(m) {
  function isValid$1 (line 17429) | function isValid$1() {
  function createInvalid$1 (line 17433) | function createInvalid$1() {
  function Duration (line 17437) | function Duration (duration) {
  function isDuration (line 17474) | function isDuration (obj) {
  function absRound (line 17478) | function absRound (number) {
  function offset (line 17488) | function offset (token, separator) {
  function offsetFromString (line 17519) | function offsetFromString(matcher, string) {
  function cloneWithOffset (line 17536) | function cloneWithOffset(input, model) {
  function getDateOffset (line 17550) | function getDateOffset (m) {
  function getSetOffset (line 17574) | function getSetOffset (input, keepLocalTime, keepMinutes) {
  function getSetZone (line 17612) | function getSetZone (input, keepLocalTime) {
  function setOffsetToUTC (line 17626) | function setOffsetToUTC (keepLocalTime) {
  function setOffsetToLocal (line 17630) | function setOffsetToLocal (keepLocalTime) {
  function setOffsetToParsedOffset (line 17642) | function setOffsetToParsedOffset () {
  function hasAlignedHourOffset (line 17657) | function hasAlignedHourOffset (input) {
  function isDaylightSavingTime (line 17666) | function isDaylightSavingTime () {
  function isDaylightSavingTimeShifted (line 17673) | function isDaylightSavingTimeShifted () {
  function isLocal (line 17694) | function isLocal () {
  function isUtcOffset (line 17698) | function isUtcOffset () {
  function isUtc (line 17702) | function isUtc () {
  function createDuration (line 17714) | function createDuration (input, key) {
  function parseIso (line 17778) | function parseIso (inp, sign) {
  function positiveMomentsDifference (line 17787) | function positiveMomentsDifference(base, other) {
  function momentsDifference (line 17801) | function momentsDifference(base, other) {
  function createAdder (line 17820) | function createAdder(direction, name) {
  function addSubtract (line 17837) | function addSubtract (mom, duration, isAdding, updateOffset) {
  function getCalendarFormat (line 17866) | function getCalendarFormat(myMoment, now) {
  function calendar$1 (line 17876) | function calendar$1 (time, formats) {
  function clone (line 17888) | function clone () {
  function isAfter (line 17892) | function isAfter (input, units) {
  function isBefore (line 17905) | function isBefore (input, units) {
  function isBetween (line 17918) | function isBetween (from, to, units, inclusivity) {
  function isSame (line 17929) | function isSame (input, units) {
  function isSameOrAfter (line 17944) | function isSameOrAfter (input, units) {
  function isSameOrBefore (line 17948) | function isSameOrBefore (input, units) {
  function diff (line 17952) | function diff (input, units, asFloat) {
  function monthDiff (line 17986) | function monthDiff (a, b) {
  function toString (line 18010) | function toString () {
  function toISOString (line 18014) | function toISOString(keepOffset) {
  function inspect (line 18040) | function inspect () {
  function format (line 18058) | function format (inputString) {
  function from (line 18066) | function from (time, withoutSuffix) {
  function fromNow (line 18076) | function fromNow (withoutSuffix) {
  function to (line 18080) | function to (time, withoutSuffix) {
  function toNow (line 18090) | function toNow (withoutSuffix) {
  function locale (line 18097) | function locale (key) {
  function localeData (line 18122) | function localeData () {
  function mod$1 (line 18132) | function mod$1(dividend, divisor) {
  function localStartOfDate (line 18136) | function localStartOfDate(y, m, d) {
  function utcStartOfDate (line 18146) | function utcStartOfDate(y, m, d) {
  function startOf (line 18156) | function startOf (units) {
  function endOf (line 18204) | function endOf (units) {
  function valueOf (line 18252) | function valueOf () {
  function unix (line 18256) | function unix () {
  function toDate (line 18260) | function toDate () {
  function toArray (line 18264) | function toArray () {
  function toObject (line 18269) | function toObject () {
  function toJSON (line 18282) | function toJSON () {
  function isValid$2 (line 18287) | function isValid$2 () {
  function parsingFlags (line 18291) | function parsingFlags () {
  function invalidAt (line 18295) | function invalidAt () {
  function creationData (line 18299) | function creationData() {
  function addWeekYearFormatToken (line 18319) | function addWeekYearFormatToken (token, getter) {
  function getSetWeekYear (line 18360) | function getSetWeekYear (input) {
  function getSetISOWeekYear (line 18369) | function getSetISOWeekYear (input) {
  function getISOWeeksInYear (line 18374) | function getISOWeeksInYear () {
  function getWeeksInYear (line 18378) | function getWeeksInYear () {
  function getSetWeekYearHelper (line 18383) | function getSetWeekYearHelper(input, week, weekday, dow, doy) {
  function setWeekAll (line 18396) | function setWeekAll(weekYear, week, weekday, dow, doy) {
  function getSetQuarter (line 18427) | function getSetQuarter (input) {
  function getSetDayOfYear (line 18485) | function getSetDayOfYear (input) {
  function parseMs (line 18584) | function parseMs(input, array) {
  function getZoneAbbr (line 18602) | function getZoneAbbr () {
  function getZoneName (line 18606) | function getZoneName () {
  function createUnix (line 18688) | function createUnix (input) {
  function createInZone (line 18692) | function createInZone () {
  function preParsePostFormat (line 18696) | function preParsePostFormat (string) {
  function get$1 (line 18733) | function get$1 (format, index, field, setter) {
  function listMonthsImpl (line 18739) | function listMonthsImpl (format, index, field) {
  function listWeekdaysImpl (line 18767) | function listWeekdaysImpl (localeSorted, format, index, field) {
  function listMonths (line 18803) | function listMonths (format, index) {
  function listMonthsShort (line 18807) | function listMonthsShort (format, index) {
  function listWeekdays (line 18811) | function listWeekdays (localeSorted, format, index) {
  function listWeekdaysShort (line 18815) | function listWeekdaysShort (localeSorted, format, index) {
  function listWeekdaysMin (line 18819) | function listWeekdaysMin (localeSorted, format, index) {
  function abs (line 18842) | function abs () {
  function addSubtract$1 (line 18859) | function addSubtract$1 (duration, input, value, direction) {
  function add$1 (line 18870) | function add$1 (input, value) {
  function subtract$1 (line 18875) | function subtract$1 (input, value) {
  function absCeil (line 18879) | function absCeil (number) {
  function bubble (line 18887) | function bubble () {
  function daysToMonths (line 18934) | function daysToMonths (days) {
  function monthsToDays (line 18940) | function monthsToDays (months) {
  function as (line 18945) | function as (units) {
  function valueOf$1 (line 18980) | function valueOf$1 () {
  function makeAs (line 18992) | function makeAs (alias) {
  function clone$1 (line 19008) | function clone$1 () {
  function get$2 (line 19012) | function get$2 (units) {
  function makeGetter (line 19017) | function makeGetter(name) {
  function weeks (line 19031) | function weeks () {
  function substituteTimeAgo (line 19046) | function substituteTimeAgo(string, number, withoutSuffix, isFuture, loca...
  function relativeTime$1 (line 19050) | function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
  function getSetRelativeTimeRounding (line 19078) | function getSetRelativeTimeRounding (roundingFunction) {
  function getSetRelativeTimeThreshold (line 19090) | function getSetRelativeTimeThreshold (threshold, limit) {
  function humanize (line 19104) | function humanize (withSuffix) {
  function sign (line 19121) | function sign(x) {
  function toISOString$1 (line 19125) | function toISOString$1() {
  function decodeFill (line 19401) | function decodeFill(el, index, count) {
  function computeLinearBoundary (line 19450) | function computeLinearBoundary(source) {
  function computeCircularBoundary (line 19492) | function computeCircularBoundary(source) {
  function computeBoundary (line 19521) | function computeBoundary(source) {
  function resolveTarget (line 19530) | function resolveTarget(sources, index, propagate) {
  function createMapper (line 19561) | function createMapper(source) {
  function isDrawable (line 19576) | function isDrawable(point) {
  function drawArea (line 19580) | function drawArea(ctx, curve0, curve1, len0, len1) {
  function doFill (line 19612) | function doFill(ctx, points, mapper, view, color, loop) {
  function getBoxWidth (line 19826) | function getBoxWidth(labelOpts, fontSize) {
  function createNewLegendAndAttach (line 20298) | function createNewLegendAndAttach(chart, legendOpts) {
  function createNewTitleBlockAndAttach (line 20542) | function createNewTitleBlockAndAttach(chart, titleOpts) {

FILE: static/chart.js/Chart.js
  function createCommonjsModule (line 15) | function createCommonjsModule(fn, module) {
  function getCjsExportFromNamespace (line 19) | function getCjsExportFromNamespace (n) {
  function comparativeDistance (line 348) | function comparativeDistance(x, y) {
  function buildGraph (line 1071) | function buildGraph() {
  function deriveBFS (line 1089) | function deriveBFS(fromModel) {
  function link (line 1114) | function link(from, to) {
  function wrapConversion (line 1120) | function wrapConversion(toModel, graph) {
  function wrapRaw (line 1159) | function wrapRaw(fn) {
  function wrapRounded (line 1180) | function wrapRounded(fn) {
  function getRgba (line 1404) | function getRgba(string) {
  function getHsla (line 1473) | function getHsla(string) {
  function getHwb (line 1489) | function getHwb(string) {
  function getRgb (line 1505) | function getRgb(string) {
  function getHsl (line 1510) | function getHsl(string) {
  function getAlpha (line 1515) | function getAlpha(string) {
  function hexString (line 1529) | function hexString(rgba, a) {
  function rgbString (line 1541) | function rgbString(rgba, alpha) {
  function rgbaString (line 1548) | function rgbaString(rgba, alpha) {
  function percentString (line 1556) | function percentString(rgba, alpha) {
  function percentaString (line 1567) | function percentaString(rgba, alpha) {
  function hslString (line 1574) | function hslString(hsla, alpha) {
  function hslaString (line 1581) | function hslaString(hsla, alpha) {
  function hwbString (line 1591) | function hwbString(hwb, alpha) {
  function keyword (line 1599) | function keyword(rgb) {
  function scale (line 1604) | function scale(num, min, max) {
  function hexDouble (line 1608) | function hexDouble(num) {
  function toFontString (line 2998) | function toFontString(font) {
  function interpolate (line 3271) | function interpolate(start, view, model, ease) {
  function listenArrayEvents (line 3551) | function listenArrayEvents(array, listener) {
  function unlistenArrayEvents (line 3592) | function unlistenArrayEvents(array, listener) {
  function clipArc (line 4127) | function clipArc(ctx, arc) {
  function drawFullCircleBorders (line 4149) | function drawFullCircleBorders(ctx, vm, arc, inner) {
  function drawBorder (line 4176) | function drawBorder(ctx, vm, arc) {
  function xRange (line 4443) | function xRange(mouseX) {
  function yRange (line 4448) | function yRange(mouseY) {
  function isVertical (line 4524) | function isVertical(vm) {
  function getBarBounds (line 4534) | function getBarBounds(vm) {
  function swap (line 4559) | function swap(orig, v1, v2) {
  function parseBorderSkipped (line 4563) | function parseBorderSkipped(vm) {
  function parseBorderWidth (line 4583) | function parseBorderWidth(vm, maxW, maxH) {
  function boundingRects (line 4605) | function boundingRects(vm) {
  function inRange (line 4627) | function inRange(vm, x, y) {
  function computeMinSampleSize (line 4765) | function computeMinSampleSize(scale, pixels) {
  function computeFitCategoryTraits (line 4788) | function computeFitCategoryTraits(index, ruler, options) {
  function computeFlexCategoryTraits (line 4821) | function computeFlexCategoryTraits(index, ruler, options) {
  function scaleClip (line 5787) | function scaleClip(scale, halfBorderWidth) {
  function defaultClip (line 5798) | function defaultClip(xScale, yScale, borderWidth) {
  function toClip (line 5811) | function toClip(value) {
  function capControlPoint (line 6035) | function capControlPoint(pt, min, max) {
  function capControlPoint (line 6592) | function capControlPoint(pt, min, max) {
  function getRelativePosition (line 6695) | function getRelativePosition(e, chart) {
  function parseVisibleItems (line 6711) | function parseVisibleItems(chart, handler) {
  function getIntersectItems (line 6732) | function getIntersectItems(chart, position) {
  function getNearestItems (line 6752) | function getNearestItems(chart, position, intersect, distanceMetric) {
  function getDistanceMetricForAxis (line 6780) | function getDistanceMetricForAxis(axis) {
  function indexMode (line 6791) | function indexMode(chart, e, options) {
  function filterByPosition (line 6991) | function filterByPosition(array, position) {
  function sortByWeight (line 6997) | function sortByWeight(array, reverse) {
  function wrapBoxes (line 7007) | function wrapBoxes(boxes) {
  function setLayoutDims (line 7024) | function setLayoutDims(layouts, params) {
  function buildLayoutBoxes (line 7037) | function buildLayoutBoxes(boxes) {
  function getCombinedMax (line 7053) | function getCombinedMax(maxPadding, chartArea, a, b) {
  function updateDims (line 7057) | function updateDims(chartArea, params, layout) {
  function handleMaxPadding (line 7089) | function handleMaxPadding(chartArea) {
  function getMargins (line 7103) | function getMargins(horizontal, chartArea) {
  function fitBoxes (line 7119) | function fitBoxes(boxes, chartArea, params) {
  function placeBoxes (line 7148) | function placeBoxes(boxes, chartArea, params) {
  function readUsedSize (line 7431) | function readUsedSize(element, property) {
  function initCanvas (line 7442) | function initCanvas(canvas, config) {
  function addListener (line 7517) | function addListener(node, type, listener) {
  function removeListener (line 7521) | function removeListener(node, type, listener) {
  function createEvent (line 7525) | function createEvent(type, chart, x, y, nativeEvent) {
  function fromNativeEvent (line 7535) | function fromNativeEvent(event, chart) {
  function throttled (line 7541) | function throttled(fn, thisArg) {
  function createDiv (line 7559) | function createDiv(cls) {
  function createResizer (line 7566) | function createResizer(handler) {
  function watchForRender (line 7599) | function watchForRender(node, handler) {
  function unwatchForRender (line 7621) | function unwatchForRender(node) {
  function addResizeListener (line 7636) | function addResizeListener(node, listener, chart) {
  function removeResizeListener (line 7673) | function removeResizeListener(node) {
  function injectCSS (line 7690) | function injectCSS(rootNode, css) {
  function pushOrConcat (line 8289) | function pushOrConcat(base, toPush) {
  function splitNewlines (line 8308) | function splitNewlines(str) {
  function createTooltipItem (line 8321) | function createTooltipItem(element) {
  function getBaseModel (line 8346) | function getBaseModel(tooltipOpts) {
  function getTooltipSize (line 8401) | function getTooltipSize(tooltip, model) {
  function determineAlignment (line 8469) | function determineAlignment(tooltip, size) {
  function getBackgroundPoint (line 8542) | function getBackgroundPoint(vm, size, alignment, chart) {
  function getAlignedX (line 8593) | function getAlignedX(vm, align) {
  function getBeforeAfterBodyLines (line 8604) | function getBeforeAfterBodyLines(callback) {
  function mergeScaleConfig (line 9171) | function mergeScaleConfig(/* config objects ... */) {
  function mergeConfig (line 9211) | function mergeConfig(/* config objects ... */) {
  function initConfig (line 9230) | function initConfig(config) {
  function updateConfig (line 9247) | function updateConfig(chart) {
  function nextAvailableScaleId (line 9268) | function nextAvailableScaleId(axesOpts, prefix, index) {
  function positionIsHorizontal (line 9281) | function positionIsHorizontal(position) {
  function compare2Level (line 9285) | function compare2Level(l1, l2) {
  function parseMaxStyle (line 10671) | function parseMaxStyle(styleValue, node, parentProperty) {
  function isConstrainedValue (line 10691) | function isConstrainedValue(value) {
  function getConstraintDimension (line 10702) | function getConstraintDimension(domNode, maxStyle, percentageProperty) {
  function abstract (line 10896) | function abstract() {
  function DateAdapter (line 10920) | function DateAdapter(options) {
  function sample (line 11150) | function sample(arr, numItems) {
  function getPixelForGridLine (line 11162) | function getPixelForGridLine(scale, index, offsetGridLines) {
  function garbageCollect (line 11189) | function garbageCollect(caches, length) {
  function computeLabelSizes (line 11207) | function computeLabelSizes(ctx, tickFonts, ticks, caches) {
  function getTickMarkLength (line 11261) | function getTickMarkLength(options) {
  function getScaleLabelHeight (line 11265) | function getScaleLabelHeight(options) {
  function parseFontOptions (line 11278) | function parseFontOptions(options, nestedOpts) {
  function parseTickFontOptions (line 11289) | function parseTickFontOptions(options) {
  function nonSkipped (line 11296) | function nonSkipped(ticksToFilter) {
  function getEvenSpacing (line 11308) | function getEvenSpacing(arr) {
  function calculateSpacing (line 11324) | function calculateSpacing(majorIndices, ticks, axisLength, ticksLimit) {
  function getMajorIndices (line 11345) | function getMajorIndices(ticks) {
  function skipMajors (line 11356) | function skipMajors(ticks, majorIndices, spacing) {
  function skip (line 11374) | function skip(ticks, spacing, majorStart, majorEnd) {
  function generateTicks (line 12661) | function generateTicks(generationOptions, dataRange) {
  function getOrCreateStack (line 12912) | function getOrCreateStack(stacks, stacked, meta) {
  function stackData (line 12930) | function stackData(scale, stacks, meta, data) {
  function updateMinMax (line 12958) | function updateMinMax(scale, meta, data) {
  function generateTicks$1 (line 13074) | function generateTicks$1(generationOptions, dataRange) {
  function nonNegativeOrDefault (line 13124) | function nonNegativeOrDefault(value, defaultValue) {
  function IDMatches (line 13135) | function IDMatches(meta) {
  function getTickBackdropHeight (line 13422) | function getTickBackdropHeight(opts) {
  function measureLabelSize (line 13431) | function measureLabelSize(ctx, lineHeight, label) {
  function determineLimits (line 13445) | function determineLimits(angle, pos, size, min, max) {
  function fitWithPointLabels (line 13467) | function fitWithPointLabels(scale) {
  function getTextAlignForAngle (line 13547) | function getTextAlignForAngle(angle) {
  function fillText (line 13557) | function fillText(ctx, text, position, lineHeight) {
  function adjustPointPositionForLabelHeight (line 13571) | function adjustPointPositionForLabelHeight(angle, textSize, position) {
  function drawPointLabels (line 13579) | function drawPointLabels(scale) {
  function drawRadiusLine (line 13610) | function drawRadiusLine(scale, gridLineOpts, radius, index) {
  function numberOrZero (line 13649) | function numberOrZero(param) {
  function sorter (line 13978) | function sorter(a, b) {
  function arrayUnique (line 13982) | function arrayUnique(items) {
  function getMin (line 13998) | function getMin(options) {
  function getMax (line 14002) | function getMax(options) {
  function buildLookupTable (line 14021) | function buildLookupTable(timestamps, min, max, distribution) {
  function lookup (line 14057) | function lookup(table, key, value) {
  function interpolate$1 (line 14089) | function interpolate$1(table, skey, sval, tkey) {
  function toTimestamp (line 14103) | function toTimestamp(scale, input) {
  function parse (line 14139) | function parse(scale, input) {
  function determineUnitForAutoTicks (line 14160) | function determineUnitForAutoTicks(minUnit, min, max, capacity) {
  function determineUnitForFormatting (line 14179) | function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {
  function determineMajorUnit (line 14192) | function determineMajorUnit(unit) {
  function generate (line 14206) | function generate(scale, min, max, capacity) {
  function computeOffsets (line 14247) | function computeOffsets(table, ticks, min, max, options) {
  function setMajorTicks (line 14270) | function setMajorTicks(scale, ticks, map, majorUnit) {
  function ticksFromTimestamps (line 14285) | function ticksFromTimestamps(scale, values, majorUnit) {
  function decodeFill (line 14797) | function decodeFill(el, index, count) {
  function computeLinearBoundary (line 14846) | function computeLinearBoundary(source) {
  function computeCircularBoundary (line 14888) | function computeCircularBoundary(source) {
  function computeBoundary (line 14917) | function computeBoundary(source) {
  function resolveTarget (line 14926) | function resolveTarget(sources, index, propagate) {
  function createMapper (line 14957) | function createMapper(source) {
  function isDrawable (line 14972) | function isDrawable(point) {
  function drawArea (line 14976) | function drawArea(ctx, curve0, curve1, len0, len1) {
  function doFill (line 15008) | function doFill(ctx, points, mapper, view, color, loop) {
  function getBoxWidth (line 15222) | function getBoxWidth(labelOpts, fontSize) {
  function createNewLegendAndAttach (line 15694) | function createNewLegendAndAttach(chart, legendOpts) {
  function createNewTitleBlockAndAttach (line 15938) | function createNewTitleBlockAndAttach(chart, titleOpts) {

FILE: static/datatables-buttons/js/buttons.flash.js
  function createCellPos (line 651) | function createCellPos( n ){
  function _createNode (line 675) | function _createNode( doc, nodeName, opts ){
  function _excelColWidth (line 703) | function _excelColWidth( data, col ) {
  function _xlsxToStrings (line 765) | function _xlsxToStrings( obj ) {

FILE: static/datatables-buttons/js/buttons.html5.js
  function _jsZip (line 44) | function _jsZip () {
  function _pdfMake (line 47) | function _pdfMake () {
  function createCellPos (line 355) | function createCellPos( n ){
  function _addToZip (line 383) | function _addToZip( zip, obj ) {
  function _createNode (line 463) | function _createNode( doc, nodeName, opts ) {
  function _excelColWidth (line 491) | function _excelColWidth( data, col ) {

FILE: static/datatables-buttons/js/dataTables.buttons.js
  function _init (line 1995) | function _init ( settings ) {

FILE: static/datatables-colreorder/js/dataTables.colReorder.js
  function fnInvertKeyValues (line 60) | function fnInvertKeyValues( aIn )
  function fnArraySwitch (line 79) | function fnArraySwitch( aArray, iFrom, iTo )
  function fnDomSwitch (line 95) | function fnDomSwitch( nParent, iFrom, iTo )

FILE: static/datatables-responsive/js/dataTables.responsive.js
  function _childNodes (line 1122) | function _childNodes( dt, row, col ) {
  function _childNodesRestore (line 1141) | function _childNodesRestore( dt, row, col ) {

FILE: static/datatables-select/js/dataTables.select.js
  function cellRange (line 234) | function cellRange( dt, idx, last )
  function disableMouseSelection (line 315) | function disableMouseSelection( dt )
  function enableMouseSelection (line 334) | function enableMouseSelection ( dt )
  function eventTrigger (line 454) | function eventTrigger ( api, type, args, any )
  function info (line 476) | function info ( api )
  function init (line 530) | function init ( ctx ) {
  function rowColumnRange (line 614) | function rowColumnRange( dt, type, idx, last )
  function clear (line 657) | function clear( ctx, force )
  function typeSelect (line 678) | function typeSelect ( e, dt, ctx, type, idx )
  function _safeId (line 738) | function _safeId( node ) {
  function i18n (line 1060) | function i18n( label, def ) {
  function namespacedEvents (line 1067) | function namespacedEvents ( config ) {
  function enabled (line 1073) | function enabled ( dt, config ) {

FILE: static/datatables/jquery.dataTables.js
  function _fnHungarianMap (line 1655) | function _fnHungarianMap ( o )
  function _fnCamelToHungarian (line 1693) | function _fnCamelToHungarian ( src, user, force )
  function _fnLanguageCompat (line 1732) | function _fnLanguageCompat( lang )
  function _fnCompatOpts (line 1794) | function _fnCompatOpts ( init )
  function _fnCompatCols (line 1835) | function _fnCompatCols ( init )
  function _fnBrowserDetect (line 1855) | function _fnBrowserDetect( settings )
  function _fnReduce (line 1935) | function _fnReduce ( that, fn, init, start, end, inc )
  function _fnAddColumn (line 1969) | function _fnAddColumn( oSettings, nTh )
  function _fnColumnOptions (line 2001) | function _fnColumnOptions( oSettings, iCol, oOptions )
  function _fnAdjustColumnSizing (line 2132) | function _fnAdjustColumnSizing ( settings )
  function _fnVisibleToColumnIndex (line 2164) | function _fnVisibleToColumnIndex( oSettings, iMatch )
  function _fnColumnIndexToVisible (line 2182) | function _fnColumnIndexToVisible( oSettings, iMatch )
  function _fnVisbleColumns (line 2197) | function _fnVisbleColumns( oSettings )
  function _fnGetColumns (line 2220) | function _fnGetColumns( oSettings, sParam )
  function _fnColumnTypes (line 2239) | function _fnColumnTypes ( settings )
  function _fnApplyColumnDefs (line 2310) | function _fnApplyColumnDefs( oSettings, aoColDefs, aoCols, fn )
  function _fnAddData (line 2390) | function _fnAddData ( oSettings, aDataIn, nTr, anTds )
  function _fnAddTr (line 2440) | function _fnAddTr( settings, trs )
  function _fnNodeToDataIndex (line 2463) | function _fnNodeToDataIndex( oSettings, n )
  function _fnNodeToColumnIndex (line 2477) | function _fnNodeToColumnIndex( oSettings, iRow, n )
  function _fnGetCellData (line 2492) | function _fnGetCellData( settings, rowIdx, colIdx, type )
  function _fnSetCellData (line 2540) | function _fnSetCellData( settings, rowIdx, colIdx, val )
  function _fnSplitObjNotation (line 2562) | function _fnSplitObjNotation( str )
  function _fnGetObjectDataFn (line 2577) | function _fnGetObjectDataFn( mSource )
  function _fnSetObjectDataFn (line 2702) | function _fnSetObjectDataFn( mSource )
  function _fnGetDataMaster (line 2821) | function _fnGetDataMaster ( settings )
  function _fnClearTable (line 2832) | function _fnClearTable( settings )
  function _fnDeleteIndex (line 2848) | function _fnDeleteIndex( a, iTarget, splice )
  function _fnInvalidate (line 2887) | function _fnInvalidate( settings, rowIdx, src, colIdx )
  function _fnGetRowElements (line 2965) | function _fnGetRowElements( settings, row, colIdx, d )
  function _fnCreateTr (line 3074) | function _fnCreateTr ( oSettings, iRow, nTrIn, anTds )
  function _fnRowAttributes (line 3159) | function _fnRowAttributes( settings, row )
  function _fnBuildHead (line 3199) | function _fnBuildHead( oSettings )
  function _fnDrawHead (line 3285) | function _fnDrawHead( oSettings, aoSource, bIncludeHidden )
  function _fnDraw (line 3383) | function _fnDraw( oSettings )
  function _fnReDraw (line 3524) | function _fnReDraw( settings, holdPosition )
  function _fnAddOptionsHtml (line 3562) | function _fnAddOptionsHtml ( oSettings )
  function _fnDetectHeader (line 3718) | function _fnDetectHeader ( aLayout, nThead )
  function _fnGetUniqueThs (line 3793) | function _fnGetUniqueThs ( oSettings, nHeader, aLayout )
  function _fnBuildAjax (line 3830) | function _fnBuildAjax( oSettings, data, fn )
  function _fnAjaxUpdate (line 3963) | function _fnAjaxUpdate( settings )
  function _fnAjaxParameters (line 3994) | function _fnAjaxParameters( settings )
  function _fnAjaxUpdateDraw (line 4102) | function _fnAjaxUpdateDraw ( settings, json )
  function _fnAjaxDataSrc (line 4152) | function _fnAjaxDataSrc ( oSettings, json )
  function _fnFeatureHtmlFilter (line 4175) | function _fnFeatureHtmlFilter ( settings )
  function _fnFilterComplete (line 4263) | function _fnFilterComplete ( oSettings, oInput, iForce )
  function _fnFilterCustom (line 4316) | function _fnFilterCustom( settings )
  function _fnFilterColumn (line 4353) | function _fnFilterColumn ( settings, searchStr, colIdx, regex, smart, ca...
  function _fnFilter (line 4386) | function _fnFilter( settings, input, force, regex, smart, caseInsensitive )
  function _fnFilterCreateSearch (line 4442) | function _fnFilterCreateSearch( search, regex, smart, caseInsensitive )
  function _fnFilterData (line 4484) | function _fnFilterData ( settings )
  function _fnSearchToCamel (line 4557) | function _fnSearchToCamel ( obj )
  function _fnSearchToHung (line 4576) | function _fnSearchToHung ( obj )
  function _fnFeatureHtmlInfo (line 4592) | function _fnFeatureHtmlInfo ( settings )
  function _fnUpdateInfo (line 4626) | function _fnUpdateInfo ( settings )
  function _fnInfoMacros (line 4664) | function _fnInfoMacros ( settings, str )
  function _fnInitialise (line 4691) | function _fnInitialise ( settings )
  function _fnInitComplete (line 4775) | function _fnInitComplete ( settings, json )
  function _fnLengthChange (line 4790) | function _fnLengthChange ( settings, val )
  function _fnFeatureHtmlLength (line 4808) | function _fnFeatureHtmlLength ( settings )
  function _fnFeatureHtmlPaginate (line 4874) | function _fnFeatureHtmlPaginate ( settings )
  function _fnPageChange (line 4935) | function _fnPageChange ( settings, action, redraw )
  function _fnFeatureHtmlProcessing (line 5008) | function _fnFeatureHtmlProcessing ( settings )
  function _fnProcessingDisplay (line 5025) | function _fnProcessingDisplay ( settings, show )
  function _fnFeatureHtmlTable (line 5040) | function _fnFeatureHtmlTable ( settings )
  function _fnScrollDraw (line 5198) | function _fnScrollDraw ( settings )
  function _fnApplyToChildren (line 5481) | function _fnApplyToChildren( fn, an1, an2 )
  function _fnCalculateColumnWidths (line 5520) | function _fnCalculateColumnWidths ( oSettings )
  function _fnConvertToWidth (line 5758) | function _fnConvertToWidth ( width, parent )
  function _fnGetWidestNode (line 5782) | function _fnGetWidestNode( settings, colIdx )
  function _fnGetMaxLenString (line 5803) | function _fnGetMaxLenString( settings, colIdx )
  function _fnStringToCss (line 5828) | function _fnStringToCss( s )
  function _fnSortFlatten (line 5848) | function _fnSortFlatten ( settings )
  function _fnSort (line 5920) | function _fnSort ( oSettings )
  function _fnSortAria (line 6046) | function _fnSortAria ( settings )
  function _fnSortListener (line 6101) | function _fnSortListener ( settings, colIdx, append, callback )
  function _fnSortAttachListener (line 6185) | function _fnSortAttachListener ( settings, attachTo, colIdx, callback )
  function _fnSortingClasses (line 6223) | function _fnSortingClasses( settings )
  function _fnSortData (line 6256) | function _fnSortData( settings, idx )
  function _fnSaveState (line 6299) | function _fnSaveState ( settings )
  function _fnLoadState (line 6335) | function _fnLoadState ( settings, oInit, callback )
  function _fnSettingsFromNode (line 6437) | function _fnSettingsFromNode ( table )
  function _fnLog (line 6456) | function _fnLog( settings, level, msg, tn )
  function _fnMap (line 6499) | function _fnMap( ret, src, name, mappedName )
  function _fnExtend (line 6541) | function _fnExtend( out, extender, breakRefs )
  function _fnBindAction (line 6577) | function _fnBindAction( n, oData, fn )
  function _fnCallbackReg (line 6606) | function _fnCallbackReg( oSettings, sStore, fn, sName )
  function _fnCallbackFire (line 6632) | function _fnCallbackFire( settings, callbackArr, eventName, args )
  function _fnLengthOverflow (line 6654) | function _fnLengthOverflow ( settings )
  function _fnRenderer (line 6679) | function _fnRenderer( settings, type )
  function _fnDataSource (line 6708) | function _fnDataSource ( settings )
  function _numbers (line 14478) | function _numbers ( page, pages ) {
  function _addNumericSort (line 14783) | function _addNumericSort ( decimalPlace ) {
  function _fnExternApiFunc (line 15034) | function _fnExternApiFunc (fn)

FILE: static/daterangepicker/example/amd/main.js
  function updateConfig (line 36) | function updateConfig() {

FILE: static/daterangepicker/example/amd/require.js
  function ka (line 6) | function ka(b,c,d,g){return g||""}
  function K (line 6) | function K(b){return"[object Function]"===Q.call(b)}
  function L (line 6) | function L(b){return"[object Array]"===Q.call(b)}
  function y (line 6) | function y(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+...
  function X (line 6) | function X(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b))...
  function x (line 6) | function x(b,c){return la.call(b,c)}
  function e (line 6) | function e(b,c){return x(b,c)&&b[c]}
  function D (line 6) | function D(b,c){for(var d in b)if(x(b,d)&&c(b[d],d))break}
  function Y (line 6) | function Y(b,c,d,g){c&&D(c,function(c,e){if(d||!x(b,e))!g||"object"!==
  function z (line 7) | function z(b,c){return function(){return c.apply(b,arguments)}}
  function ha (line 7) | function ha(b){throw b;}
  function ia (line 7) | function ia(b){if(!b)return b;var c=ga;y(b.split("."),function(b){c=c[b]...
  function F (line 7) | function F(b,c,d,g){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"...
  function ma (line 7) | function ma(b){function c(a,n,b){var h,k,f,c,d,l,g,r;n=n&&n.split("/");v...
  function pa (line 30) | function pa(){if(N&&"interactive"===N.readyState)return N;X(document.get...

FILE: static/daterangepicker/example/browserify/main.js
  function updateConfig (line 31) | function updateConfig() {

FILE: static/daterangepicker/website.js
  function updateConfig (line 27) | function updateConfig() {

FILE: static/daterangepicker/website/website.js
  function updateConfig (line 27) | function updateConfig() {

FILE: static/ekko-lightbox/ekko-lightbox.js
  function defineProperties (line 11) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _classCallCheck (line 13) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function Lightbox (line 76) | function Lightbox($element, config) {

FILE: static/fastclick/fastclick.js
  function FastClick (line 23) | function FastClick(layer, options) {

FILE: static/filterizr/ActiveFilter.d.ts
  class ActiveFilter (line 8) | class ActiveFilter {

FILE: static/filterizr/BrowserWindow.d.ts
  class BrowserWindow (line 9) | class BrowserWindow {

FILE: static/filterizr/EventReceiver.d.ts
  type Receiver (line 2) | type Receiver = NodeListOf<Element> | Element | Window;
  class EventReceiver (line 3) | class EventReceiver implements Destructible {

FILE: static/filterizr/FilterContainer.d.ts
  class FilterContainer (line 7) | class FilterContainer {

FILE: static/filterizr/FilterContainer/FilterContainer.d.ts
  class FilterContainer (line 9) | class FilterContainer extends FilterizrElement {

FILE: static/filterizr/FilterContainer/StyledFilterContainer.d.ts
  class StyledFilterContainer (line 2) | class StyledFilterContainer extends StyledFilterizrElement {

FILE: static/filterizr/FilterControls.d.ts
  class FilterControls (line 3) | class FilterControls implements Destructible {

FILE: static/filterizr/FilterItem.d.ts
  type Position (line 3) | interface Position {
  class FilterItem (line 10) | class FilterItem {

FILE: static/filterizr/FilterItem/FilterItem.d.ts
  class FilterItem (line 8) | class FilterItem extends FilterizrElement {

FILE: static/filterizr/FilterItem/StyledFilterItem.d.ts
  class StyledFilterItem (line 4) | class StyledFilterItem extends StyledFilterizrElement {

FILE: static/filterizr/FilterItems.d.ts
  class FilterItems (line 4) | class FilterItems {

FILE: static/filterizr/FilterItems/FilterItems.d.ts
  class FilterItems (line 6) | class FilterItems implements Destructible, Styleable {

FILE: static/filterizr/FilterItems/StyledFilterItems.d.ts
  class StyledFilterItems (line 3) | class StyledFilterItems extends StyledFilterizrElements {

FILE: static/filterizr/Filterizr.d.ts
  class Filterizr (line 6) | class Filterizr {

FILE: static/filterizr/Filterizr/Filterizr.d.ts
  class Filterizr (line 6) | class Filterizr implements Destructible {

FILE: static/filterizr/FilterizrOptions/FilterizrOptions.d.ts
  type Options (line 4) | interface Options extends BaseOptions {
  class FilterizrOptions (line 7) | class FilterizrOptions {

FILE: static/filterizr/Spinner/Spinner.d.ts
  class Spinner (line 5) | class Spinner implements Destructible, Styleable {

FILE: static/filterizr/Spinner/StyledSpinner.d.ts
  class StyledSpinner (line 2) | class StyledSpinner extends StyledFilterizrElement {

FILE: static/filterizr/animate.d.ts
  class Animator (line 1) | class Animator {

FILE: static/filterizr/config/filterizrState.d.ts
  type FilterizrState (line 1) | interface FilterizrState {

FILE: static/filterizr/config/layout.d.ts
  type Layout (line 1) | interface Layout {

FILE: static/filterizr/layouts/Packer.d.ts
  type PackerRoot (line 5) | interface PackerRoot {
  type PackerBlock (line 14) | interface PackerBlock {
  class Packer (line 21) | class Packer {

FILE: static/filterizr/makeLayoutPositions/Packer.d.ts
  type PackerRoot (line 5) | interface PackerRoot {
  type PackerBlock (line 14) | interface PackerBlock {
  class Packer (line 21) | class Packer {

FILE: static/filterizr/types/index.d.ts
  type Filter (line 1) | type Filter = string | string[];
  type FilterizrState (line 2) | type FilterizrState = 'IDLE' | 'FILTERING' | 'SORTING' | 'SHUFFLING';
  type Layout (line 3) | type Layout = 'horizontal' | 'vertical' | 'sameHeight' | 'sameWidth' | '...

FILE: static/filterizr/types/interfaces/BaseOptions.d.ts
  type BaseOptions (line 4) | interface BaseOptions {

FILE: static/filterizr/types/interfaces/ContainerLayout.d.ts
  type ContainerLayout (line 2) | interface ContainerLayout {

FILE: static/filterizr/types/interfaces/Destructible.d.ts
  type Destructible (line 1) | interface Destructible {

FILE: static/filterizr/types/interfaces/Dictionary.d.ts
  type Dictionary (line 1) | interface Dictionary {

FILE: static/filterizr/types/interfaces/Dimensions.d.ts
  type Dimensions (line 1) | interface Dimensions {

FILE: static/filterizr/types/interfaces/Options.d.ts
  type Options (line 3) | interface Options extends BaseOptions {

FILE: static/filterizr/types/interfaces/Position.d.ts
  type Position (line 1) | interface Position {

FILE: static/filterizr/types/interfaces/RawOptions.d.ts
  type RawOptions (line 2) | interface RawOptions extends BaseOptions {

FILE: static/filterizr/types/interfaces/RawOptionsCallbacks.d.ts
  type RawOptionsCallbacks (line 1) | interface RawOptionsCallbacks {

FILE: static/filterizr/types/interfaces/Resizable.d.ts
  type Resizable (line 1) | interface Resizable {

FILE: static/filterizr/types/interfaces/SpinnerOptions.d.ts
  type SpinnerOptions (line 2) | interface SpinnerOptions {

FILE: static/filterizr/types/interfaces/Styleable.d.ts
  type Styleable (line 3) | interface Styleable {

FILE: static/flot-old/excanvas.js
  function getContext (line 59) | function getContext() {
  function bind (line 82) | function bind(f, obj, var_args) {
  function encodeHtmlAttribute (line 89) | function encodeHtmlAttribute(s) {
  function addNamespace (line 93) | function addNamespace(doc, prefix, urn) {
  function addNamespacesAndStylesheet (line 99) | function addNamespacesAndStylesheet(doc) {
  function onPropertyChange (line 178) | function onPropertyChange(e) {
  function onResize (line 196) | function onResize(e) {
  function createMatrixIdentity (line 214) | function createMatrixIdentity() {
  function matrixMultiply (line 222) | function matrixMultiply(m1, m2) {
  function copyState (line 239) | function copyState(o1, o2) {
  function getRgbHslContent (line 394) | function getRgbHslContent(styleString) {
  function percent (line 405) | function percent(s) {
  function clamp (line 409) | function clamp(v, min, max) {
  function hslToRgb (line 413) | function hslToRgb(parts){
  function hueToRgb (line 435) | function hueToRgb(m1, m2, h) {
  function processStyle (line 453) | function processStyle(styleString) {
  function processFontStyle (line 496) | function processFontStyle(styleString) {
  function getComputedStyle (line 518) | function getComputedStyle(style, element) {
  function buildStyle (line 550) | function buildStyle(style) {
  function processLineCap (line 560) | function processLineCap(lineCap) {
  function CanvasRenderingContext2D_ (line 570) | function CanvasRenderingContext2D_(canvasElement) {
  function bezierCurveTo (line 649) | function bezierCurveTo(self, cp1, cp2, p) {
  function appendStroke (line 978) | function appendStroke(ctx, lineStr) {
  function appendFill (line 1001) | function appendFill(ctx, lineStr, min, max) {
  function getCoords (line 1112) | function getCoords(ctx, aX, aY) {
  function matrixIsFinite (line 1134) | function matrixIsFinite(m) {
  function setM (line 1140) | function setM(ctx, m, updateLineScale) {
  function CanvasGradient_ (line 1343) | function CanvasGradient_(aType) {
  function CanvasPattern_ (line 1361) | function CanvasPattern_(image, repetition) {
  function throwException (line 1383) | function throwException(s) {
  function assertImageIsValid (line 1387) | function assertImageIsValid(img) {
  function DOMException_ (line 1396) | function DOMException_(s) {

FILE: static/flot-old/jquery.colorhelpers.js
  function clamp (line 55) | function clamp(min, value, max) {

FILE: static/flot-old/jquery.flot.canvas.js
  function init (line 42) | function init(plot, classes) {

FILE: static/flot-old/jquery.flot.categories.js
  function processRawData (line 56) | function processRawData(plot, series, data, datapoints) {
  function getNextIndex (line 97) | function getNextIndex(categories) {
  function categoriesTickGenerator (line 107) | function categoriesTickGenerator(axis) {
  function setupCategoriesForAxis (line 120) | function setupCategoriesForAxis(series, axis, datapoints) {
  function transformPointsOnAxis (line 146) | function transformPointsOnAxis(datapoints, axis, categories) {
  function processDatapoints (line 174) | function processDatapoints(plot, series, datapoints) {
  function init (line 179) | function init(plot) {

FILE: static/flot-old/jquery.flot.crosshair.js
  function init (line 70) | function init(plot) {

FILE: static/flot-old/jquery.flot.errorbars.js
  function processRawData (line 76) | function processRawData(plot, series, data, datapoints){
  function parseErrors (line 107) | function parseErrors(series, i){
  function drawSeriesErrors (line 162) | function drawSeriesErrors(plot, ctx, s){
  function drawError (line 275) | function drawError(ctx,err,x,y,upper,lower,drawUpper,drawLower,radius,of...
  function drawPath (line 322) | function drawPath(ctx, pts){
  function draw (line 330) | function draw(plot, ctx){
  function init (line 342) | function init(plot) {

FILE: static/flot-old/jquery.flot.fillbetween.js
  function init (line 40) | function init( plot ) {

FILE: static/flot-old/jquery.flot.image.js
  function drawSeries (line 118) | function drawSeries(plot, ctx, series) {
  function processRawData (line 216) | function processRawData(plot, series, data, datapoints) {
  function init (line 230) | function init(plot) {

FILE: static/flot-old/jquery.flot.js
  function clamp (line 32) | function clamp(min,value,max){return value<min?min:value>max?max:value}
  function Canvas (line 51) | function Canvas(cls, container) {
  function Plot (line 492) | function Plot(placeholder, data_, options_, plugins) {
  function floorInBase (line 3133) | function floorInBase(n, base) {

FILE: static/flot-old/jquery.flot.navigate.js
  function e (line 90) | function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,...
  function f (line 90) | function f(b,c,d){b.type=c;var e=a.event.dispatch.call(d,b);return e===!...
  function g (line 90) | function g(a){return Math.pow(a,2)}
  function h (line 90) | function h(){return d.dragging===!1}
  function i (line 90) | function i(a,b){a&&(a.unselectable=b?"off":"on",a.onselectstart=function...
  function e (line 103) | function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0...
  function init (line 126) | function init(plot) {

FILE: static/flot-old/jquery.flot.pie.js
  function init (line 68) | function init(plot) {

FILE: static/flot-old/jquery.flot.resize.js
  function p (line 23) | function p(){for(var n=r.length-1;n>=0;n--){var o=$(r[n]);if(o[0]==t||o....
  function s (line 23) | function s(t,i,s){var o=$(this),u=o.data(a);u.w=i!==n?i:o.width(),u.h=s!...
  function init (line 28) | function init(plot) {

FILE: static/flot-old/jquery.flot.selection.js
  function init (line 82) | function init(plot) {

FILE: static/flot-old/jquery.flot.stack.js
  function init (line 43) | function init(plot) {

FILE: static/flot-old/jquery.flot.symbol.js
  function processRawData (line 17) | function processRawData(plot, series, datapoints) {
  function init (line 62) | function init(plot) {

FILE: static/flot-old/jquery.flot.threshold.js
  function init (line 50) | function init(plot) {

FILE: static/flot-old/jquery.flot.time.js
  function floorInBase (line 24) | function floorInBase(n, base) {
  function formatDate (line 31) | function formatDate(d, fmt, monthNames, dayNames) {
  function makeUtcWrapper (line 111) | function makeUtcWrapper(d) {
  function dateGenerator (line 143) | function dateGenerator(ts, opts) {
  function init (line 195) | function init(plot) {

FILE: static/flot/jquery.flot.js
  function _typeof (line 1) | function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==...
  function _typeof (line 1) | function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==...
  function f (line 1) | function f(e,t){e.transform.baseVal.clear(),t&&t.forEach(function(t){e.t...
  function t (line 1) | function t(t,e,n){return e<t?t:n<e?n:e}
  function $ (line 1) | function $(t){var e,n=[],o=J.plot.saturated.saturate(J.plot.saturated.fl...
  function tt (line 1) | function tt(t,e,n){var o=e.tickDecimals;if(-1!==(""+t).indexOf("e"))retu...
  function l (line 1) | function l(t,e,n){var o=(""+t).indexOf("e"),i=parseInt((""+t).substr(o+1...
  function c (line 1) | function c(t,e){var n=Math.log(Math.abs(t))*Math.LOG10E,o=Math.abs(n+e);...
  function o (line 1) | function o(l,t,e,o){var y=[],f={colors:["#edc240","#afd8f8","#cb4b4b","#...
  function f (line 1) | function f(t,e,n,o,i,a,r,s,l,c,u){var p,h,d,f,m=t+o,g=t+i,x=n,v=e,b=!1;p...
  function m (line 1) | function m(t,e,n,o,i){var a=t.fill;if(!a)return null;if(t.fillColor)retu...
  function r (line 1) | function r(t,e,n,o,i,a){t.moveTo(e+o,n),t.arc(e,n,o,0,i?Math.PI:2*Math.P...
  function e (line 1) | function e(t,e,n,o){if(e.points.errorbars){var i=[{x:!0,number:!0,requir...
  function M (line 1) | function M(t,e){var n=t.datapoints.points,o=null,i=null,a=null,r=null,s=...
  function S (line 1) | function S(t,e,n,o,i,a,r,s,l,c,u){o+=c,i+=c,a+=c,"x"===e.err?(n+l<i?h(t,...
  function h (line 1) | function h(t,e){t.beginPath(),t.moveTo(e[0][0],e[0][1]);for(var n=1;n<e....
  function n (line 1) | function n(t,n){var e=t.getPlotOffset();n.save(),n.translate(e.left,e.to...
  function t (line 1) | function t(t,e){for(var n,o,i=Math.floor(Math.log(t)*Math.LOG10E)-1,a=[]...
  function p (line 1) | function p(t,e){"log"===e.options.mode&&e.datamin<=0&&(null===e.datamin?...
  function h (line 1) | function h(e,n){var t=e.getData().filter(function(t){return t.xaxis===n|...
  function d (line 1) | function d(t){return 0<t}
  function e (line 1) | function e(t,e,n,o){if(!0===e.flatdata){var i=e.start||0,a="number"==typ...
  function e (line 1) | function e(y,t){var s=null,i=!1,a="manual"===t.pan.mode,o="smartLock"===...
  function e (line 1) | function e(t,e,n,o){var i="categories"===e.xaxis.options.mode,a="categor...
  function l (line 1) | function l(t){var e=[];for(var n in t.categories){var o=t.categories[n];...
  function o (line 1) | function o(t,e,n){if("categories"===t[e].options.mode){if(!t[e].categori...
  function n (line 1) | function n(t,e,n){o(e,"xaxis",n),o(e,"yaxis",n)}
  function e (line 1) | function e(u,t){var o,i,a,p,h={zoomEnable:!1,prevDistance:null,prevTapTi...
  function g (line 1) | function g(t){return!t.touchedAxis||0===t.touchedAxis.length}
  function l (line 1) | function l(t,e,n,o){var i,a=y(t,e);switch(o.navigationConstraint){case"u...
  function x (line 1) | function x(t){var e,n,o,i,a=t.detail.touches[0],r=t.detail.touches[1];re...
  function v (line 1) | function v(t,e,n,o){var i=y(t,e);switch(o.navigationConstraint){case"unc...
  function b (line 1) | function b(t,e,n){var o=y(t,e);return{x:o.x-n.prevPanPosition.x,y:o.y-n....
  function y (line 1) | function y(t,e){return"pinch"===e?{x:(t.detail.touches[0].pageX+t.detail...
  function o (line 1) | function o(t){var e=f.getOptions(),n=new CustomEvent("mouseevent");retur...
  function i (line 1) | function i(t,e,n){var o=f.getData();if(void 0!==t&&0<o.length&&void 0!==...
  function a (line 1) | function a(t){n=t,i(f.getPlaceholder()[0].lastMouseMoveEvent=t,T)}
  function r (line 1) | function r(t){n=void 0,f.getPlaceholder()[0].lastMouseMoveEvent=void 0,c...
  function s (line 1) | function s(t){i(t,e)}
  function l (line 1) | function l(){f.unhighlight(),f.getPlaceholder().trigger("plothovercleanu...
  function c (line 1) | function c(t,e,n,o){var i=f.getOptions(),a=f.offset(),r=w.getPageXY(e),s...
  function g (line 1) | function g(t,e,n){if("number"==typeof t&&(t=f.getData()[t]),"number"==ty...
  function x (line 1) | function x(t,e){if(null==t&&null==e)return m=[],void f.triggerRedrawOver...
  function u (line 1) | function u(t,e){for(var n=0;n<m.length;++n){var o=m[n];if(o.series===t&&...
  function p (line 1) | function p(){l(),i(n,T)}
  function h (line 1) | function h(){i(n,T)}
  function d (line 1) | function d(t,e,n){var o,i,a=t.getPlotOffset();for(e.save(),e.translate(a...
  function v (line 1) | function v(t,e,n,o){var i=e[0],a=e[1],r=t.xaxis,s=t.yaxis,l="string"==ty...
  function b (line 1) | function b(t,e,n){var o,i="string"==typeof t.highlightColor?t.highlightC...
  function e (line 1) | function e(n,t){var o,i={twoTouches:!1,currentTapStart:{x:0,y:0},current...
  function d (line 1) | function d(t,e,n,o){if("function"==typeof t.strftime)return t.strftime(e...
  function a (line 1) | function a(t){function e(t,e,n,o){t[e]=function(){return n[o].apply(n,ar...
  function w (line 1) | function w(t,e){var n=864e13;if(e&&"seconds"===e.timeBase?t*=1e3:"micros...
  function n (line 1) | function n(t){var e,n=t.options,o=[],i=w(t.min,n),a=0,r=n.tickSize&&"qua...
  function s (line 1) | function s(t,e,n,o,i,a){this.axisName=t,this.position=e,this.padding=n,t...
  function o (line 1) | function o(t){T.active&&(p(t),c.getPlaceholder().trigger("plotselecting"...
  function a (line 1) | function a(t){var e=c.getOptions();1===t.which&&null!==e.selection.mode&...
  function r (line 1) | function r(t){return void 0!==document.onselectstart&&(document.onselect...
  function e (line 1) | function e(){if(!M())return null;if(!T.show)return null;var i={},a={x:T....
  function s (line 1) | function s(){var t=e();c.getPlaceholder().trigger("plotselected",[t]),t....
  function l (line 1) | function l(t,e,n){return e<t?t:n<e?n:e}
  function k (line 1) | function k(t){var e=t.getOptions();return"smart"===e.selection.mode?T.cu...
  function u (line 1) | function u(t,e){var n=c.getPlaceholder().offset(),o=c.getPlotOffset();t....
  function p (line 1) | function p(t){null!=t.pageX&&(u(T.second,t),M()?(T.show=!0,c.triggerRedr...
  function h (line 1) | function h(t){T.show&&(T.show=!1,T.currentMode="",c.triggerRedrawOverlay...
  function d (line 1) | function d(t,e){var n,o,i,a,r=c.getAxes();for(var s in r)if((n=r[s]).dir...
  function M (line 1) | function M(){var t=c.getOptions().selection.minSize;return Math.abs(T.se...
  function n (line 1) | function n(t,e){var n=t.filter(r);h=a(e.getContext("2d"));var o,i=n.map(...
  function r (line 1) | function r(t){var e=!0,n=!0;return null==t?n=!1:"CANVAS"===t.tagName&&(t...
  function x (line 1) | function x(t){for(var e=t.styleSheets,n=[],o=0;o<e.length;o++)try{for(va...
  function v (line 1) | function v(t,e){return['<svg class="snapshot '+e.classList+'" width="'+e...
  function b (line 1) | function b(t){var e="";return t.match(/^<svg[^>]+xmlns="http:\/\/www\.w3...
  function s (line 1) | function s(){return e}
  function S (line 1) | function S(t){var e="",n=t.name,o=t.xPos,i=t.yPos,a=t.fillColor,r=t.stro...
  function l (line 1) | function l(t,e){for(var n in t)if(t.hasOwnProperty(n)&&t[n]!==e[n])retur...

FILE: static/fullcalendar-bootstrap/main.d.ts
  class BootstrapTheme (line 7) | class BootstrapTheme extends Theme {

FILE: static/fullcalendar-bootstrap/main.esm.js
  function __extends (line 32) | function __extends(d, b) {
  function BootstrapTheme (line 40) | function BootstrapTheme() {

FILE: static/fullcalendar-bootstrap/main.js
  function __extends (line 36) | function __extends(d, b) {
  function BootstrapTheme (line 44) | function BootstrapTheme() {

FILE: static/fullcalendar-daygrid/main.d.ts
  type SimpleDayGridProps (line 18) | interface SimpleDayGridProps {
  class SimpleDayGrid (line 32) | class SimpleDayGrid extends DateComponent<SimpleDayGridProps> {
  class DayGridSlicer (line 40) | class DayGridSlicer extends Slicer<DayGridSeg, [DayTable]> {
  type RenderProps (line 50) | interface RenderProps {
  type DayGridSeg (line 57) | interface DayGridSeg extends Seg {
  type DayGridCell (line 62) | interface DayGridCell {
  type DayGridProps (line 66) | interface DayGridProps {
  class DayGrid (line 79) | class DayGrid extends DateComponent<DayGridProps> {
  class DayGridView (line 185) | class DayGridView extends AbstractDayGridView {
  type DayBgCell (line 198) | interface DayBgCell {
  type DayBgRowProps (line 202) | interface DayBgRowProps {
  class DayBgRow (line 208) | class DayBgRow {
  type PopoverOptions (line 216) | interface PopoverOptions {
  class Popover (line 227) | class Popover {
  class DayGridEventRenderer (line 248) | class DayGridEventRenderer extends SimpleDayGridEventRenderer {
  type DayTileProps (line 272) | interface DayTileProps {
  class DayTile (line 280) | class DayTile extends DateComponent<DayTileProps> {
  class DayTileEventRenderer (line 288) | class DayTileEventRenderer extends SimpleDayGridEventRenderer {

FILE: static/fullcalendar-daygrid/main.esm.js
  function __extends (line 32) | function __extends(d, b) {
  function DayGridDateProfileGenerator (line 51) | function DayGridDateProfileGenerator() {
  function Popover (line 96) | function Popover(options) {
  function SimpleDayGridEventRenderer (line 208) | function SimpleDayGridEventRenderer() {
  function DayGridEventRenderer (line 279) | function DayGridEventRenderer(dayGrid) {
  function emptyCellsUntil (line 339) | function emptyCellsUntil(endCol) {
  function isDaySegCollision (line 458) | function isDaySegCollision(seg, otherSegs) {
  function compareDaySegCols (line 471) | function compareDaySegCols(a, b) {
  function DayGridMirrorRenderer (line 477) | function DayGridMirrorRenderer() {
  function DayGridFillRenderer (line 511) | function DayGridFillRenderer(dayGrid) {
  function DayTile (line 588) | function DayTile(context, el) {
  function DayTileEventRenderer (line 654) | function DayTileEventRenderer(dayTile) {
  function DayBgRow (line 675) | function DayBgRow(context) {
  function renderCellHtml (line 697) | function renderCellHtml(date, dateProfile, context, otherAttrs) {
  function DayGrid (line 716) | function DayGrid(context, el, renderProps) {
  function DayGridView (line 1283) | function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) {
  function SimpleDayGrid (line 1504) | function SimpleDayGrid(context, dayGrid) {
  function DayGridSlicer (line 1544) | function DayGridSlicer() {
  function DayGridView (line 1555) | function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) {
  function buildDayTable (line 1600) | function buildDayTable(dateProfile, dateProfileGenerator) {

FILE: static/fullcalendar-daygrid/main.js
  function __extends (line 36) | function __extends(d, b) {
  function DayGridDateProfileGenerator (line 55) | function DayGridDateProfileGenerator() {
  function Popover (line 100) | function Popover(options) {
  function SimpleDayGridEventRenderer (line 212) | function SimpleDayGridEventRenderer() {
  function DayGridEventRenderer (line 283) | function DayGridEventRenderer(dayGrid) {
  function emptyCellsUntil (line 343) | function emptyCellsUntil(endCol) {
  function isDaySegCollision (line 462) | function isDaySegCollision(seg, otherSegs) {
  function compareDaySegCols (line 475) | function compareDaySegCols(a, b) {
  function DayGridMirrorRenderer (line 481) | function DayGridMirrorRenderer() {
  function DayGridFillRenderer (line 515) | function DayGridFillRenderer(dayGrid) {
  function DayTile (line 592) | function DayTile(context, el) {
  function DayTileEventRenderer (line 658) | function DayTileEventRenderer(dayTile) {
  function DayBgRow (line 679) | function DayBgRow(context) {
  function renderCellHtml (line 701) | function renderCellHtml(date, dateProfile, context, otherAttrs) {
  function DayGrid (line 720) | function DayGrid(context, el, renderProps) {
  function DayGridView (line 1287) | function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) {
  function SimpleDayGrid (line 1508) | function SimpleDayGrid(context, dayGrid) {
  function DayGridSlicer (line 1548) | function DayGridSlicer() {
  function DayGridView (line 1559) | function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) {
  function buildDayTable (line 1604) | function buildDayTable(dateProfile, dateProfileGenerator) {

FILE: static/fullcalendar-interaction/main.d.ts
  class FeaturefulElementDragging (line 21) | class FeaturefulElementDragging extends ElementDragging {
  class PointerDragging (line 55) | class PointerDragging {
  type ExternalDraggableSettings (line 100) | interface ExternalDraggableSettings {
  class ExternalDraggable (line 108) | class ExternalDraggable {
  type ThirdPartyDraggableSettings (line 121) | interface ThirdPartyDraggableSettings {
  class ThirdPartyDraggable (line 127) | class ThirdPartyDraggable {
  class ElementMirror (line 137) | class ElementMirror {
  class AutoScroller (line 163) | class AutoScroller {
  type DragMetaGenerator (line 187) | type DragMetaGenerator = DragMetaInput | ((el: HTMLElement) => DragMetaI...
  type ExternalDropApi (line 188) | interface ExternalDropApi extends DatePointApi {
  class ExternalElementDragging (line 194) | class ExternalElementDragging {
  class InferredElementDragging (line 215) | class InferredElementDragging extends ElementDragging {
  class ElementScrollGeomCache (line 259) | class ElementScrollGeomCache extends ScrollGeomCache {
  class WindowScrollGeomCache (line 269) | class WindowScrollGeomCache extends ScrollGeomCache {
  class HitDragging (line 281) | class HitDragging {
  class OffsetTracker (line 313) | class OffsetTracker {

FILE: static/fullcalendar-interaction/main.esm.js
  function __extends (line 32) | function __extends(d, b) {
  function PointerDragging (line 67) | function PointerDragging(containerEl) {
  function isPrimaryMouseButton (line 297) | function isPrimaryMouseButton(ev) {
  function startIgnoringMouse (line 302) | function startIgnoringMouse() {
  function listenerCreated (line 310) | function listenerCreated() {
  function listenerDestroyed (line 315) | function listenerDestroyed() {
  function onWindowTouchMove (line 320) | function onWindowTouchMove(ev) {
  function ElementMirror (line 332) | function ElementMirror() {
  function ScrollGeomCache (line 462) | function ScrollGeomCache(scrollController, doesListening) {
  function ElementScrollGeomCache (line 530) | function ElementScrollGeomCache(el, doesListening) {
  function WindowScrollGeomCache (line 543) | function WindowScrollGeomCache(doesListening) {
  function AutoScroller (line 576) | function AutoScroller() {
  function FeaturefulElementDragging (line 749) | function FeaturefulElementDragging(containerEl) {
  function OffsetTracker (line 904) | function OffsetTracker(el) {
  function isIgnoredClipping (line 948) | function isIgnoredClipping(node) {
  function HitDragging (line 967) | function HitDragging(dragging, droppableStore) {
  function isHitsEqual (line 1103) | function isHitsEqual(hit0, hit1) {
  function DateClicking (line 1119) | function DateClicking(settings) {
  function DateSelecting (line 1158) | function DateSelecting(settings) {
  function getComponentTouchDelay (line 1224) | function getComponentTouchDelay(component) {
  function joinHitsIntoSelection (line 1231) | function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {
  function EventDragging (line 1259) | function EventDragging(settings) {
  function computeEventMutation (line 1537) | function computeEventMutation(hit0, hit1, massagers) {
  function getComponentTouchDelay$1 (line 1568) | function getComponentTouchDelay$1(component) {
  function EventDragging (line 1578) | function EventDragging(settings) {
  function computeMutation (line 1729) | function computeMutation(hit0, hit1, isFromStart, instanceRange, transfo...
  function UnselectAuto (line 1761) | function UnselectAuto(calendar) {
  function ExternalElementDragging (line 1814) | function ExternalElementDragging(dragging, suppliedDragMeta) {
  function computeEventForDateSpan (line 1941) | function computeEventForDateSpan(dateSpan, dragMeta, calendar) {
  function getDragMetaFromEl (line 1963) | function getDragMetaFromEl(el) {
  function getEmbeddedElData (line 1971) | function getEmbeddedElData(el, name) {
  function ExternalDraggable (line 1983) | function ExternalDraggable(el, settings) {
  function InferredElementDragging (line 2032) | function InferredElementDragging(containerEl) {
  function ThirdPartyDraggable (line 2095) | function ThirdPartyDraggable(containerOrSettings, settings) {

FILE: static/fullcalendar-interaction/main.js
  function __extends (line 36) | function __extends(d, b) {
  function PointerDragging (line 71) | function PointerDragging(containerEl) {
  function isPrimaryMouseButton (line 301) | function isPrimaryMouseButton(ev) {
  function startIgnoringMouse (line 306) | function startIgnoringMouse() {
  function listenerCreated (line 314) | function listenerCreated() {
  function listenerDestroyed (line 319) | function listenerDestroyed() {
  function onWindowTouchMove (line 324) | function onWindowTouchMove(ev) {
  function ElementMirror (line 336) | function ElementMirror() {
  function ScrollGeomCache (line 466) | function ScrollGeomCache(scrollController, doesListening) {
  function ElementScrollGeomCache (line 534) | function ElementScrollGeomCache(el, doesListening) {
  function WindowScrollGeomCache (line 547) | function WindowScrollGeomCache(doesListening) {
  function AutoScroller (line 580) | function AutoScroller() {
  function FeaturefulElementDragging (line 753) | function FeaturefulElementDragging(containerEl) {
  function OffsetTracker (line 908) | function OffsetTracker(el) {
  function isIgnoredClipping (line 952) | function isIgnoredClipping(node) {
  function HitDragging (line 971) | function HitDragging(dragging, droppableStore) {
  function isHitsEqual (line 1107) | function isHitsEqual(hit0, hit1) {
  function DateClicking (line 1123) | function DateClicking(settings) {
  function DateSelecting (line 1162) | function DateSelecting(settings) {
  function getComponentTouchDelay (line 1228) | function getComponentTouchDelay(component) {
  function joinHitsIntoSelection (line 1235) | function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {
  function EventDragging (line 1263) | function EventDragging(settings) {
  function computeEventMutation (line 1541) | function computeEventMutation(hit0, hit1, massagers) {
  function getComponentTouchDelay$1 (line 1572) | function getComponentTouchDelay$1(component) {
  function EventDragging (line 1582) | function EventDragging(settings) {
  function computeMutation (line 1733) | function computeMutation(hit0, hit1, isFromStart, instanceRange, transfo...
  function UnselectAuto (line 1765) | function UnselectAuto(calendar) {
  function ExternalElementDragging (line 1818) | function ExternalElementDragging(dragging, suppliedDragMeta) {
  function computeEventForDateSpan (line 1945) | function computeEventForDateSpan(dateSpan, dragMeta, calendar) {
  function getDragMetaFromEl (line 1967) | function getDragMetaFromEl(el) {
  function getEmbeddedElData (line 1975) | function getEmbeddedElData(el, name) {
  function ExternalDraggable (line 1987) | function ExternalDraggable(el, settings) {
  function InferredElementDragging (line 2036) | function InferredElementDragging(containerEl) {
  function ThirdPartyDraggable (line 2099) | function ThirdPartyDraggable(containerOrSettings, settings) {

FILE: static/fullcalendar-timegrid/main.d.ts
  class TimeGridView (line 59) | class TimeGridView extends AbstractTimeGridView {
  type RenderProps (line 73) | interface RenderProps {
  type TimeGridSeg (line 77) | interface TimeGridSeg extends Seg {
  type TimeGridCell (line 82) | interface TimeGridCell {
  type TimeGridProps (line 86) | interface TimeGridProps {
  class TimeGrid (line 98) | class TimeGrid extends DateComponent<TimeGridProps> {
  type SimpleTimeGridProps (line 181) | interface SimpleTimeGridProps {
  class SimpleTimeGrid (line 193) | class SimpleTimeGrid extends DateComponent<SimpleTimeGridProps> {
  class TimeGridSlicer (line 203) | class TimeGridSlicer extends Slicer<TimeGridSeg, [DateRange[]]> {
  class AllDaySplitter (line 211) | class AllDaySplitter extends Splitter {

FILE: static/fullcalendar-timegrid/main.esm.js
  function __extends (line 33) | function __extends(d, b) {
  function TimeGridEventRenderer (line 56) | function TimeGridEventRenderer(timeGrid) {
  function buildSlotSegLevels (line 304) | function buildSlotSegLevels(segs) {
  function computeForwardSlotSegs (line 324) | function computeForwardSlotSegs(levels) {
  function computeSlotSegPressures (line 343) | function computeSlotSegPressures(seg) {
  function computeSlotSegCollisions (line 362) | function computeSlotSegCollisions(seg, otherSegs, results) {
  function isSlotSegCollision (line 372) | function isSlotSegCollision(seg1, seg2) {
  function buildTimeGridSegCompareObj (line 375) | function buildTimeGridSegCompareObj(seg) {
  function TimeGridMirrorRenderer (line 384) | function TimeGridMirrorRenderer() {
  function TimeGridFillRenderer (line 409) | function TimeGridFillRenderer(timeGrid) {
  function TimeGrid (line 454) | function TimeGrid(context, el, renderProps) {
  function AllDaySplitter (line 918) | function AllDaySplitter() {
  function TimeGridView (line 957) | function TimeGridView(context, viewSpec, dateProfileGenerator, parentEl) {
  function SimpleTimeGrid (line 1191) | function SimpleTimeGrid(context, timeGrid) {
  function buildDayRanges (line 1235) | function buildDayRanges(dayTable, dateProfile, dateEnv) {
  function TimeGridSlicer (line 1248) | function TimeGridSlicer() {
  function TimeGridView (line 1272) | function TimeGridView(_context, viewSpec, dateProfileGenerator, parentEl) {
  function buildDayTable (line 1319) | function buildDayTable(dateProfile, dateProfileGenerator) {

FILE: static/fullcalendar-timegrid/main.js
  function __extends (line 36) | function __extends(d, b) {
  function TimeGridEventRenderer (line 59) | function TimeGridEventRenderer(timeGrid) {
  function buildSlotSegLevels (line 307) | function buildSlotSegLevels(segs) {
  function computeForwardSlotSegs (line 327) | function computeForwardSlotSegs(levels) {
  function computeSlotSegPressures (line 346) | function computeSlotSegPressures(seg) {
  function computeSlotSegCollisions (line 365) | function computeSlotSegCollisions(seg, otherSegs, results) {
  function isSlotSegCollision (line 375) | function isSlotSegCollision(seg1, seg2) {
  function buildTimeGridSegCompareObj (line 378) | function buildTimeGridSegCompareObj(seg) {
  function TimeGridMirrorRenderer (line 387) | function TimeGridMirrorRenderer() {
  function TimeGridFillRenderer (line 412) | function TimeGridFillRenderer(timeGrid) {
  function TimeGrid (line 457) | function TimeGrid(context, el, renderProps) {
  function AllDaySplitter (line 921) | function AllDaySplitter() {
  function TimeGridView (line 960) | function TimeGridView(context, viewSpec, dateProfileGenerator, parentEl) {
  function SimpleTimeGrid (line 1194) | function SimpleTimeGrid(context, timeGrid) {
  function buildDayRanges (line 1238) | function buildDayRanges(dayTable, dateProfile, dateEnv) {
  function TimeGridSlicer (line 1251) | function TimeGridSlicer() {
  function TimeGridView (line 1275) | function TimeGridView(_context, viewSpec, dateProfileGenerator, parentEl) {
  function buildDayTable (line 1322) | function buildDayTable(dateProfile, dateProfileGenerator) {

FILE: static/fullcalendar/main.d.ts
  type ToolbarInput (line 88) | interface ToolbarInput {
  type CustomButtonInput (line 93) | interface CustomButtonInput {
  type ButtonIconsInput (line 100) | interface ButtonIconsInput {
  type ButtonTextCompoundInput (line 106) | interface ButtonTextCompoundInput {
  type EventSegment (line 117) | interface EventSegment {
  type CellInfo (line 124) | interface CellInfo {
  type DropInfo (line 131) | interface DropInfo {
  type EventHandlerName (line 135) | type EventHandlerName = '_init' | 'selectAllow' | 'eventAllow' | 'eventD...
  type EventHandlerArgs (line 136) | type EventHandlerArgs<T extends EventHandlerName> = Parameters<Extract<O...
  type EventHandlerArg (line 137) | type EventHandlerArg<T extends EventHandlerName> = EventHandlerArgs<T>[0];
  type OptionsInputBase (line 138) | interface OptionsInputBase {
  type ViewOptionsInput (line 426) | interface ViewOptionsInput extends OptionsInputBase {
  type OptionsInput (line 430) | interface OptionsInput extends OptionsInputBase {
  type EventRenderingChoice (line 445) | type EventRenderingChoice = '' | 'background' | 'inverse-background' | '...
  type EventNonDateInput (line 446) | interface EventNonDateInput extends UnscopedEventUiInput {
  type EventDateInput (line 455) | interface EventDateInput {
  type EventInput (line 461) | type EventInput = EventNonDateInput & EventDateInput;
  type EventDef (line 462) | interface EventDef {
  type EventInstance (line 480) | interface EventInstance {
  type EventTuple (line 487) | interface EventTuple {
  type EventInstanceHash (line 491) | type EventInstanceHash = {
  type EventDefHash (line 494) | type EventDefHash = {
  type eventDefParserFunc (line 513) | type eventDefParserFunc = (def: EventDef, props: any, leftovers: any) =>...
  type BusinessHoursInput (line 521) | type BusinessHoursInput = boolean | EventInput | EventInput[];
  type GenericHash (line 553) | type GenericHash = {
  type ClassNameInput (line 567) | type ClassNameInput = string | string[];
  type MemoizedRendering (line 583) | interface MemoizedRendering<ArgsType extends any[]> {
  type Point (line 592) | interface Point {
  type Rect (line 596) | interface Rect {
  type ElementContent (line 629) | type ElementContent = string | Node | Node[] | NodeList;
  type EventStore (line 648) | interface EventStore {
  type UnscopedEventUiInput (line 666) | interface UnscopedEventUiInput {
  type EventUi (line 680) | interface EventUi {
  type EventUiHash (line 691) | type EventUiHash = {
  type SplittableProps (line 719) | interface SplittableProps {
  type EdgeInfo (line 762) | interface EdgeInfo {
  type EmitterInterface (line 795) | interface EmitterInterface {
  class EmitterMixin (line 804) | class EmitterMixin extends Mixin implements EmitterInterface {
  type DateRangeInput (line 819) | interface DateRangeInput {
  type OpenDateRange (line 823) | interface OpenDateRange {
  type DateRange (line 827) | interface DateRange {
  class Mixin (line 843) | class Mixin {
  class PositionCache (line 852) | class PositionCache {
  type ScrollbarWidths (line 875) | interface ScrollbarWidths {
  class ScrollComponent (line 881) | class ScrollComponent extends ElementScrollController {
  class ElementScrollController (line 913) | class ElementScrollController extends ScrollController {
  class WindowScrollController (line 925) | class WindowScrollController extends ScrollController {
  class Theme (line 939) | class Theme {
  type ThemeClass (line 955) | type ThemeClass = {
  type ComponentContext (line 965) | interface ComponentContext {
  type EqualityFuncHash (line 972) | type EqualityFuncHash = {
  class Component (line 976) | class Component<PropsType> {
  type DateComponentHash (line 1005) | type DateComponentHash = {
  type Seg (line 1008) | interface Seg {
  type EventSegUiInteractionState (line 1016) | interface EventSegUiInteractionState {
  class DateComponent (line 1023) | class DateComponent<PropsType> extends Component<PropsType> {
  type DateClickApi (line 1075) | interface DateClickApi extends DatePointApi {
  type DateSelectionApi (line 1080) | interface DateSelectionApi extends DateSpanApi {
  type DatePointTransform (line 1084) | type DatePointTransform = (dateSpan: DateSpan, calendar: Calendar) => any;
  type DateSpanTransform (line 1085) | type DateSpanTransform = (dateSpan: DateSpan, calendar: Calendar) => any;
  type CalendarInteraction (line 1086) | type CalendarInteraction = {
  type CalendarInteractionClass (line 1089) | type CalendarInteractionClass = {
  type OptionChangeHandler (line 1092) | type OptionChangeHandler = (propValue: any, calendar: Calendar, deepEqua...
  type OptionChangeHandlerMap (line 1093) | type OptionChangeHandlerMap = {
  class Calendar (line 1097) | class Calendar {
  type ViewProps (line 1231) | interface ViewProps {
  type DateProfile (line 1398) | interface DateProfile {
  class DateProfileGenerator (line 1411) | class DateProfileGenerator {
  type ViewDef (line 1451) | interface ViewDef {
  type ViewDefHash (line 1457) | type ViewDefHash = {
  type ViewSpec (line 1467) | interface ViewSpec {
  type ViewSpecHash (line 1477) | type ViewSpecHash = {
  type OpenDateSpanInput (line 1490) | interface OpenDateSpanInput {
  type DateSpanInput (line 1496) | interface DateSpanInput extends OpenDateSpanInput {
  type OpenDateSpan (line 1500) | interface OpenDateSpan {
  type DateSpan (line 1505) | interface DateSpan extends OpenDateSpan {
  type DateSpanApi (line 1508) | interface DateSpanApi {
  type DatePointApi (line 1515) | interface DatePointApi {
  type DateMarker (line 1530) | type DateMarker = Date;
  type DurationInput (line 1557) | type DurationInput = DurationObjectInput | string | number;
  type DurationObjectInput (line 1558) | interface DurationObjectInput {
  type Duration (line 1577) | interface Duration {
  type DateEnvSettings (line 1622) | interface DateEnvSettings {
  type DateInput (line 1632) | type DateInput = Date | string | number | number[];
  type DateMarkerMeta (line 1633) | interface DateMarkerMeta {
  class DateEnv (line 1638) | class DateEnv {
  type ZonedMarker (line 1697) | interface ZonedMarker {
  type ExpandedZonedMarker (line 1701) | interface ExpandedZonedMarker extends ZonedMarker {
  type VerboseFormattingArg (line 1711) | interface VerboseFormattingArg {
  type DateFormattingContext (line 1719) | interface DateFormattingContext {
  type DateFormatter (line 1727) | interface DateFormatter {
  type FormatterInput (line 1731) | type FormatterInput = object | string | FuncFormatterFunc;
  type NamedTimeZoneImplClass (line 1746) | type NamedTimeZoneImplClass = {
  type EventSourceError (line 1766) | type EventSourceError = {
  type EventInputTransformer (line 1771) | type EventInputTransformer = (eventInput: EventInput) => EventInput | null;
  type EventSourceSuccessResponseHandler (line 1772) | type EventSourceSuccessResponseHandler = (rawData: any, response: any) =...
  type EventSourceErrorResponseHandler (line 1773) | type EventSourceErrorResponseHandler = (error: EventSourceError) => void;
  type ExtendedEventSourceInput (line 1774) | interface ExtendedEventSourceInput {
  type EventSourceInput (line 1801) | type EventSourceInput = ExtendedEventSourceInput | // object in extended...
  type EventSource (line 1804) | interface EventSource {
  type EventSourceHash (line 1820) | type EventSourceHash = {
  type EventSourceFetcher (line 1823) | type EventSourceFetcher = (arg: {
  type EventSourceDef (line 1831) | interface EventSourceDef {
  type InteractionClass (line 1847) | type InteractionClass = {
  type InteractionSettingsInput (line 1850) | interface InteractionSettingsInput {
  type InteractionSettings (line 1854) | interface InteractionSettings {
  type InteractionSettingsStore (line 1859) | type InteractionSettingsStore = {
  type PointerDragEvent (line 1870) | interface PointerDragEvent {
  type Hit (line 1885) | interface Hit {
  type dateSelectionJoinTransformer (line 1896) | type dateSelectionJoinTransformer = (hit0: Hit, hit1: Hit) => any;
  type eventDragMutationMassager (line 1906) | type eventDragMutationMassager = (mutation: EventMutation, hit0: Hit, hi...
  type EventDropTransformers (line 1907) | type EventDropTransformers = (mutation: EventMutation, calendar: Calenda...
  type eventIsDraggableTransformer (line 1908) | type eventIsDraggableTransformer = (val: boolean, eventDef: EventDef, ev...
  type EventResizeJoinTransforms (line 1913) | type EventResizeJoinTransforms = (hit0: Hit, hit1: Hit) => false | object;
  type ElementDraggingClass (line 1928) | type ElementDraggingClass = {
  type ParsedRecurring (line 2017) | interface ParsedRecurring {
  type RecurringType (line 2022) | interface RecurringType {
  type DragMetaInput (line 2038) | interface DragMetaInput extends EventNonDateInput {
  type DragMeta (line 2044) | interface DragMeta {
  type PluginDefInput (line 2075) | interface PluginDefInput {
  type PluginHooks (line 2105) | interface PluginHooks {
  type PluginDef (line 2134) | interface PluginDef extends PluginHooks {
  type ViewPropsTransformerClass (line 2138) | type ViewPropsTransformerClass = new () => ViewPropsTransformer;
  type ViewPropsTransformer (line 2139) | interface ViewPropsTransformer {
  type ViewContainerModifier (line 2142) | type ViewContainerModifier = (contentEl: HTMLElement, calendar: Calendar...
  class PluginSystem (line 2144) | class PluginSystem {
  type CalendarState (line 2166) | interface CalendarState {
  type reducerFunc (line 2179) | type reducerFunc = (state: CalendarState, action: Action, calendar: Cale...
  type Action (line 2180) | type Action = {
  type CalendarComponentProps (line 2277) | interface CalendarComponentProps extends CalendarState {
  class CalendarComponent (line 2283) | class CalendarComponent extends Component<CalendarComponentProps> {
  type DayTableHeaderProps (line 2311) | interface DayTableHeaderProps {
  class DayHeader (line 2318) | class DayHeader extends Component<DayTableHeaderProps> {
  type DaySeriesSeg (line 2349) | interface DaySeriesSeg {
  class DaySeries (line 2356) | class DaySeries {
  type EventInteractionState (line 2368) | interface EventInteractionState {
  type EventRenderRange (line 2384) | interface EventRenderRange extends EventTuple {
  type DayTableSeg (line 2408) | interface DayTableSeg extends Seg {
  type DayTableCell (line 2413) | interface DayTableCell {
  class DayTable (line 2418) | class DayTable {
  type SliceableProps (line 2438) | interface SliceableProps {
  type SlicedProps (line 2447) | interface SlicedProps<SegType extends Seg> {
  type EventMutation (line 2473) | interface EventMutation {
  type eventDefMutationApplier (line 2481) | type eventDefMutationApplier = (eventDef: EventDef, mutation: EventMutat...
  type ConstraintInput (line 2492) | type ConstraintInput = 'businessHours' | string | EventInput | EventInpu...
  type Constraint (line 2493) | type Constraint = 'businessHours' | string | EventStore | false;
  type OverlapFunc (line 2494) | type OverlapFunc = ((stillEvent: EventApi, movingEvent: EventApi | null)...
  type AllowFunc (line 2495) | type AllowFunc = (span: DateSpanApi, movingEvent: EventApi | null) => bo...
  type isPropsValidTester (line 2496) | type isPropsValidTester = (props: SplittableProps, calendar: Calendar) =...
  class EventApi (line 2512) | class EventApi {
  type LocaleCodeArg (line 2566) | type LocaleCodeArg = string | string[];
  type LocaleSingularArg (line 2567) | type LocaleSingularArg = LocaleCodeArg | RawLocale;
  type Locale (line 2568) | interface Locale {
  type RawLocale (line 2578) | interface RawLocale {
  type RawLocaleMap (line 2582) | type RawLocaleMap = {
  type RawLocaleInfo (line 2585) | interface RawLocaleInfo {
  class OptionsManager (line 2595) | class OptionsManager {
  class EventSourceApi (line 2611) | class EventSourceApi {
  type ViewClass (line 2627) | type ViewClass = new (context: ComponentContext, viewSpec: ViewSpec, dat...
  type ViewConfigObjectInput (line 2628) | interface ViewConfigObjectInput {
  type ViewConfigInput (line 2633) | type ViewConfigInput = ViewClass | ViewConfigObjectInput;
  type ViewConfigInputHash (line 2634) | type ViewConfigInputHash = {
  type ViewConfig (line 2637) | interface ViewConfig {
  type ViewConfigHash (line 2642) | type ViewConfigHash = {
  type CalendarSystem (line 2650) | interface CalendarSystem {
  type CmdFormatterFunc (line 2663) | type CmdFormatterFunc = (cmd: string, arg: VerboseFormattingArg) => string;
  class CmdFormatter (line 2664) | class CmdFormatter implements DateFormatter {
  type FuncFormatterFunc (line 2675) | type FuncFormatterFunc = (arg: VerboseFormattingArg) => string;
  class FuncFormatter (line 2676) | class FuncFormatter implements DateFormatter {
  type EventSourceFunc (line 2687) | type EventSourceFunc = (arg: {
  type ExternalDefTransform (line 2699) | type ExternalDefTransform = (dateSpan: DateSpan, dragMeta: DragMeta) => ...
  type ToolbarRenderProps (line 2704) | interface ToolbarRenderProps {
  class Toolbar (line 2713) | class Toolbar extends Component<ToolbarRenderProps> {

FILE: static/fullcalendar/main.esm.js
  function createElement (line 18) | function createElement(tagName, attrs, content) {
  function htmlToElement (line 41) | function htmlToElement(html) {
  function htmlToElements (line 47) | function htmlToElements(html) {
  function htmlToNodeList (line 50) | function htmlToNodeList(html) {
  function computeContainerTag (line 57) | function computeContainerTag(html) {
  function appendToElement (line 61) | function appendToElement(el, content) {
  function prependToElement (line 67) | function prependToElement(parent, content) {
  function insertAfterElement (line 74) | function insertAfterElement(refEl, content) {
  function normalizeContent (line 81) | function normalizeContent(content) {
  function removeElement (line 94) | function removeElement(el) {
  function elementClosest (line 119) | function elementClosest(el, selector) {
  function elementMatches (line 122) | function elementMatches(el, selector) {
  function findElements (line 127) | function findElements(container, selector) {
  function findChildren (line 140) | function findChildren(parent, selector) {
  function forceClassName (line 156) | function forceClassName(el, className, bool) {
  function applyStyle (line 167) | function applyStyle(el, props) {
  function applyStyleProp (line 172) | function applyStyleProp(el, name, val) {
  function pointInsideRect (line 184) | function pointInsideRect(point, rect) {
  function intersectRects (line 191) | function intersectRects(rect1, rect2) {
  function translateRect (line 203) | function translateRect(rect, deltaX, deltaY) {
  function constrainPoint (line 212) | function constrainPoint(point, rect) {
  function getRectCenter (line 219) | function getRectCenter(rect) {
  function diffPoints (line 226) | function diffPoints(point1, point2) {
  function getIsRtlScrollbarOnLeft (line 235) | function getIsRtlScrollbarOnLeft() {
  function computeIsRtlScrollbarOnLeft (line 241) | function computeIsRtlScrollbarOnLeft() {
  function sanitizeScrollbarWidth (line 261) | function sanitizeScrollbarWidth(width) {
  function computeEdges (line 267) | function computeEdges(el, getPadding) {
  function computeInnerRect (line 300) | function computeInnerRect(el, goWithinPadding) {
  function computeRect (line 318) | function computeRect(el) {
  function computeViewportRect (line 327) | function computeViewportRect() {
  function computeHeightAndMargins (line 335) | function computeHeightAndMargins(el) {
  function computeVMargins (line 338) | function computeVMargins(el) {
  function getClippingParents (line 344) | function getClippingParents(el) {
  function computeClippingRect (line 358) | function computeClippingRect(el) {
  function preventDefault (line 370) | function preventDefault(ev) {
  function listenBySelector (line 375) | function listenBySelector(container, eventType, selector, handler) {
  function listenToHoverBySelector (line 387) | function listenToHoverBySelector(container, selector, onMouseEnter, onMo...
  function whenTransitionDone (line 413) | function whenTransitionDone(el, callback) {
  function addWeeks (line 427) | function addWeeks(m, n) {
  function addDays (line 432) | function addDays(m, n) {
  function addMs (line 437) | function addMs(m, n) {
  function diffWeeks (line 443) | function diffWeeks(m0, m1) {
  function diffDays (line 446) | function diffDays(m0, m1) {
  function diffHours (line 449) | function diffHours(m0, m1) {
  function diffMinutes (line 452) | function diffMinutes(m0, m1) {
  function diffSeconds (line 455) | function diffSeconds(m0, m1) {
  function diffDayAndTime (line 458) | function diffDayAndTime(m0, m1) {
  function diffWholeWeeks (line 469) | function diffWholeWeeks(m0, m1) {
  function diffWholeDays (line 476) | function diffWholeDays(m0, m1) {
  function startOfDay (line 483) | function startOfDay(m) {
  function startOfHour (line 490) | function startOfHour(m) {
  function startOfMinute (line 498) | function startOfMinute(m) {
  function startOfSecond (line 507) | function startOfSecond(m) {
  function weekOfYear (line 518) | function weekOfYear(marker, dow, doy) {
  function weekOfGivenYear (line 530) | function weekOfGivenYear(marker, year, dow, doy) {
  function firstWeekOffset (line 537) | function firstWeekOffset(year, dow, doy) {
  function dateToLocalArray (line 545) | function dateToLocalArray(date) {
  function arrayToLocalDate (line 556) | function arrayToLocalDate(a) {
  function dateToUtcArray (line 560) | function dateToUtcArray(date) {
  function arrayToUtcDate (line 571) | function arrayToUtcDate(a) {
  function isValidDate (line 580) | function isValidDate(m) {
  function timeAsMs (line 583) | function timeAsMs(m) {
  function createDuration (line 593) | function createDuration(input, unit) {
  function parseString (line 608) | function parseString(s) {
  function normalizeObject (line 625) | function normalizeObject(obj) {
  function getWeeksFromInput (line 637) | function getWeeksFromInput(obj) {
  function durationsEqual (line 641) | function durationsEqual(d0, d1) {
  function isSingleDay (line 647) | function isSingleDay(dur) {
  function addDurations (line 651) | function addDurations(d0, d1) {
  function subtractDurations (line 659) | function subtractDurations(d1, d0) {
  function multiplyDuration (line 667) | function multiplyDuration(d, n) {
  function asRoughYears (line 677) | function asRoughYears(dur) {
  function asRoughMonths (line 680) | function asRoughMonths(dur) {
  function asRoughDays (line 683) | function asRoughDays(dur) {
  function asRoughMinutes (line 686) | function asRoughMinutes(dur) {
  function asRoughSeconds (line 689) | function asRoughSeconds(dur) {
  function asRoughMs (line 692) | function asRoughMs(dur) {
  function wholeDivideDurations (line 699) | function wholeDivideDurations(numerator, denominator) {
  function greatestDurationDenominator (line 717) | function greatestDurationDenominator(dur, dontReturnWeeks) {
  function compensateScroll (line 752) | function compensateScroll(rowEl, scrollbarWidths) {
  function uncompensateScroll (line 767) | function uncompensateScroll(rowEl) {
  function disableCursor (line 776) | function disableCursor() {
  function enableCursor (line 780) | function enableCursor() {
  function distributeHeight (line 787) | function distributeHeight(els, availableHeight, shouldRedistribute) {
  function undistributeHeight (line 831) | function undistributeHeight(els) {
  function matchCellWidths (line 839) | function matchCellWidths(els) {
  function subtractInnerElHeight (line 858) | function subtractInnerElHeight(outerEl, innerEl) {
  function preventSelection (line 877) | function preventSelection(el) {
  function allowSelection (line 881) | function allowSelection(el) {
  function preventContextMenu (line 887) | function preventContextMenu(el) {
  function allowContextMenu (line 890) | function allowContextMenu(el) {
  function parseFieldSpecs (line 895) | function parseFieldSpecs(input) {
  function compareByFieldSpecs (line 922) | function compareByFieldSpecs(obj0, obj1, fieldSpecs) {
  function compareByFieldSpec (line 933) | function compareByFieldSpec(obj0, obj1, fieldSpec) {
  function flexibleCompare (line 940) | function flexibleCompare(a, b) {
  function capitaliseFirstLetter (line 957) | function capitaliseFirstLetter(str) {
  function padStart (line 960) | function padStart(val, len) {
  function compareNumbers (line 966) | function compareNumbers(a, b) {
  function isInt (line 969) | function isInt(n) {
  function applyAll (line 974) | function applyAll(functions, thisObj, args) {
  function firstDefined (line 987) | function firstDefined() {
  function debounce (line 1003) | function debounce(func, wait) {
  function refineProps (line 1032) | function refineProps(rawProps, processors, defaults, leftoverProps) {
  function computeAlignedDayRange (line 1079) | function computeAlignedDayRange(timedRange) {
  function computeVisibleDayRange (line 1087) | function computeVisibleDayRange(timedRange, nextDayThreshold) {
  function isMultiDayRange (line 1111) | function isMultiDayRange(range) {
  function diffDates (line 1115) | function diffDates(date0, date1, dateEnv, largeUnit) {
  function __extends (line 1150) | function __extends(d, b) {
  function parseRecurring (line 1167) | function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTyp...
  function expandRecurringRanges (line 1197) | function expandRecurringRanges(eventDef, duration, framingRange, dateEnv...
  function mergeProps (line 1213) | function mergeProps(propObjs, complexProps) {
  function filterHash (line 1253) | function filterHash(hash, func) {
  function mapHash (line 1262) | function mapHash(hash, func) {
  function arrayToHash (line 1269) | function arrayToHash(a) {
  function hashValuesToArray (line 1277) | function hashValuesToArray(obj) {
  function isPropsEqual (line 1284) | function isPropsEqual(obj0, obj1) {
  function parseEvents (line 1302) | function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) {
  function eventTupleToStore (line 1313) | function eventTupleToStore(tuple, eventStore) {
  function expandRecurring (line 1321) | function expandRecurring(eventStore, framingRange, calendar) {
  function getRelevantEvents (line 1353) | function getRelevantEvents(eventStore, instanceId) {
  function isEventDefsGrouped (line 1369) | function isEventDefsGrouped(def0, def1) {
  function transformRawEvents (line 1372) | function transformRawEvents(rawEvents, eventSource, calendar) {
  function transformEachRawEvent (line 1383) | function transformEachRawEvent(rawEvents, func) {
  function createEmptyEventStore (line 1403) | function createEmptyEventStore() {
  function mergeEventStores (line 1406) | function mergeEventStores(store0, store1) {
  function filterEventStoreDefs (line 1412) | function filterEventStoreDefs(eventStore, filterFunc) {
  function parseRange (line 1420) | function parseRange(input, dateEnv) {
  function invertRanges (line 1439) | function invertRanges(ranges, constraintRange) {
  function compareRanges (line 1462) | function compareRanges(range0, range1) {
  function intersectRanges (line 1465) | function intersectRanges(range0, range1) {
  function rangesEqual (line 1490) | function rangesEqual(range0, range1) {
  function rangesIntersect (line 1494) | function rangesIntersect(range0, range1) {
  function rangeContainsRange (line 1498) | function rangeContainsRange(outerRange, innerRange) {
  function rangeContainsMarker (line 1502) | function rangeContainsMarker(range, date) {
  function constrainMarkerToRange (line 1508) | function constrainMarkerToRange(date, range) {
  function removeExact (line 1518) | function removeExact(array, exactVal) {
  function isArraysEqual (line 1532) | function isArraysEqual(a0, a1) {
  function memoize (line 1546) | function memoize(workerFunc) {
  function memoizeOutput (line 1561) | function memoizeOutput(workerFunc, equalityFunc) {
  function NativeFormatter (line 1596) | function NativeFormatter(formatSettings) {
  function buildFormattingFunc (line 1665) | function buildFormattingFunc(standardDateProps, extendedSettings, contex...
  function buildNativeFormattingFunc (line 1679) | function buildNativeFormattingFunc(standardDateProps, extendedSettings, ...
  function sanitizeSettings (line 1704) | function sanitizeSettings(standardDateProps, extendedSettings) {
  function postProcess (line 1724) | function postProcess(s, date, standardDateProps, extendedSettings, conte...
  function injectTzoStr (line 1761) | function injectTzoStr(s, tzoStr) {
  function formatWeekNumber (line 1773) | function formatWeekNumber(num, weekLabel, locale, display) {
  function computeMarkerDiffSeverity (line 1792) | function computeMarkerDiffSeverity(d0, d1, ca) {
  function computePartialFormattingOptions (line 1807) | function computePartialFormattingOptions(options, biggestUnit) {
  function findCommonInsertion (line 1817) | function findCommonInsertion(full0, partial0, full1, partial1) {
  function CmdFormatter (line 1855) | function CmdFormatter(cmdStr, separator) {
  function FuncFormatter (line 1869) | function FuncFormatter(func) {
  function createFormatter (line 1882) | function createFormatter(input, defaultSeparator) {
  function buildIsoString (line 1898) | function buildIsoString(marker, timeZoneOffset, stripZeroTime) {
  function formatIsoTimeString (line 1916) | function formatIsoTimeString(marker) {
  function formatTimeZoneOffset (line 1921) | function formatTimeZoneOffset(minutes, doIso) {
  function createVerboseFormattingArg (line 1935) | function createVerboseFormattingArg(start, end, context, separator) {
  function expandZonedMarker (line 1947) | function expandZonedMarker(dateInfo, calendarSystem) {
  function EventSourceApi (line 1964) | function EventSourceApi(calendar, internalEventSource) {
  function EventApi (line 1999) | function EventApi(calendar, def, instance) {
  function sliceEventStore (line 2301) | function sliceEventStore(eventStore, eventUiBases, framingRange, nextDay...
  function hasBgRendering (line 2386) | function hasBgRendering(def) {
  function filterSegsViaEls (line 2389) | function filterSegsViaEls(view, segs, isMirror) {
  function setElSeg (line 2418) | function setElSeg(el, seg) {
  function getElSeg (line 2421) | function getElSeg(el) {
  function compileEventUis (line 2425) | function compileEventUis(eventDefs, eventUiBases) {
  function compileEventUi (line 2430) | function compileEventUi(eventDef, eventUiBases) {
  function applyMutationToEventStore (line 2443) | function applyMutationToEventStore(eventStore, eventConfigBase, mutation...
  function applyMutationToEventDef (line 2457) | function applyMutationToEventDef(eventDef, eventConfig, mutation, applie...
  function applyMutationToEventInstance (line 2480) | function applyMutationToEventInstance(eventInstance, eventDef, // must f...
  function reduceEventStore (line 2528) | function reduceEventStore (eventStore, action, eventSources, dateProfile...
  function receiveRawEvents (line 2574) | function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, ...
  function addEvent (line 2586) | function addEvent(eventStore, subset, expandRange, calendar) {
  function rezoneDates (line 2592) | function rezoneDates(eventStore, oldDateEnv, newDateEnv) {
  function applyMutationToRelated (line 2608) | function applyMutationToRelated(eventStore, instanceId, mutation, fromAp...
  function excludeEventsBySourceId (line 2626) | function excludeEventsBySourceId(eventStore, sourceId) {
  function excludeInstances (line 2632) | function excludeInstances(eventStore, removals) {
  function isInteractionValid (line 2643) | function isInteractionValid(interaction, calendar) {
  function isDateSelectionValid (line 2646) | function isDateSelectionValid(dateSelection, calendar) {
  function isNewPropsValid (line 2649) | function isNewPropsValid(newProps, calendar) {
  function isPropsValid (line 2654) | function isPropsValid(state, calendar, dateSpanMeta, filterConfig) {
  function isInteractionPropsValid (line 2666) | function isInteractionPropsValid(state, calendar, dateSpanMeta, filterCo...
  function isDateSelectionPropsValid (line 2738) | function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filter...
  function allConstraintsPass (line 2781) | function allConstraintsPass(constraints, subjectRange, otherEventStore, ...
  function constraintToRanges (line 2790) | function constraintToRanges(constraint, subjectRange, // for expanding a...
  function eventStoreToRanges (line 2809) | function eventStoreToRanges(eventStore) {
  function anyRangesContainRange (line 2818) | function anyRangesContainRange(outerRanges, innerRange) {
  function normalizeConstraint (line 2829) | function normalizeConstraint(input, calendar) {
  function htmlEscape (line 2844) | function htmlEscape(s) {
  function cssToStr (line 2854) | function cssToStr(cssProps) {
  function attrsToStr (line 2866) | function attrsToStr(attrs) {
  function parseClassName (line 2876) | function parseClassName(raw) {
  function processUnscopedUiProps (line 2902) | function processUnscopedUiProps(rawProps, calendar, leftovers) {
  function processScopedUiProps (line 2917) | function processScopedUiProps(prefix, rawScoped, calendar, leftovers) {
  function combineEventUis (line 2949) | function combineEventUis(uis) {
  function combineTwoEventUis (line 2952) | function combineTwoEventUis(item0, item1) {
  function parseEvent (line 2981) | function parseEvent(raw, sourceId, calendar, allowOpenRange) {
  function parseEventDef (line 3012) | function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) {
  function createEventInstance (line 3031) | function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {
  function parseSingle (line 3040) | function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenR...
  function pluckDateProps (line 3097) | function pluckDateProps(raw, leftovers) {
  function pluckNonDateProps (line 3103) | function pluckNonDateProps(raw, calendar, leftovers) {
  function computeIsAllDayDefault (line 3112) | function computeIsAllDayDefault(sourceId, calendar) {
  function parseBusinessHours (line 3135) | function parseBusinessHours(input, calendar) {
  function refineInputs (line 3138) | function refineInputs(input) {
  function memoizeRendering (line 3161) | function memoizeRendering(renderFunc, unrenderFunc, dependencies) {
  function Splitter (line 3197) | function Splitter() {
  function buildEventUiForKey (line 3319) | function buildEventUiForKey(allUi, eventUiForKey, individualUi) {
  function buildGotoAnchorHtml (line 3342) | function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) {
  function getAllDayHtml (line 3378) | function getAllDayHtml(component) {
  function getDayClasses (line 3382) | function getDayClasses(date, dateProfile, context, noThemeHighlight) {
  function unpromisify (line 3418) | function unpromisify(func, success, failure) {
  function Mixin (line 3443) | function Mixin() {
  function EmitterMixin (line 3486) | function EmitterMixin() {
  function addToHash (line 3531) | function addToHash(hash, type, handler) {
  function removeFromHash (line 3535) | function removeFromHash(hash, type, handler) {
  function PositionCache (line 3554) | function PositionCache(originEl, els, isHorizontal, isVertical) {
  function ScrollController (line 3642) | function ScrollController() {
  function ElementScrollController (line 3672) | function ElementScrollController(el) {
  function WindowScrollController (line 3705) | function WindowScrollController() {
  function ScrollComponent (line 3740) | function ScrollComponent(overflowX, overflowY) {
  function Theme (line 3799) | function Theme(calendarOptions) {
  function Component (line 3858) | function Component(context, isView) {
  function recycleProps (line 3896) | function recycleProps(oldProps, newProps, equalityFuncs) {
  function DateComponent (line 3926) | function DateComponent(context, el, isView) {
  function createPlugin (line 4082) | function createPlugin(input) {
  function PluginSystem (line 4114) | function PluginSystem() {
  function combineHooks (line 4156) | function combineHooks(hooks0, hooks1) {
  function requestJson (line 4236) | function requestJson(method, url, params, successCallback, failureCallba...
  function injectQueryStringParams (line 4269) | function injectQueryStringParams(url, params) {
  function encodeParams (line 4274) | function encodeParams(params) {
  function buildRequestParams (line 4312) | function buildRequestParams(meta, range, calendar) {
  function expandRanges (line 4397) | function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {
  function handleEventSources (line 4430) | function handleEventSources(inputs, calendar, deepEqual) {
  function handlePlugins (line 4460) | function handlePlugins(inputs, calendar) {
  function mergeOptions (line 4545) | function mergeOptions(optionObjs) {
  function refinePluginDefs (line 4556) | function refinePluginDefs(pluginInputs) {
  function parseRawLocales (line 4600) | function parseRawLocales(explicitRawLocales) {
  function buildLocale (line 4620) | function buildLocale(inputSingular, available) {
  function queryLocale (line 4628) | function queryLocale(codeArg, available) {
  function queryRawLocale (line 4633) | function queryRawLocale(codes, available) {
  function parseLocale (line 4645) | function parseLocale(codeArg, codes, raw) {
  function OptionsManager (line 4660) | function OptionsManager(overrides) {
  function registerCalendarSystem (line 4701) | function registerCalendarSystem(name, theClass) {
  function createCalendarSystem (line 4704) | function createCalendarSystem(name) {
  function GregorianCalendarSystem (line 4708) | function GregorianCalendarSystem() {
  function parse (line 4730) | function parse(str) {
  function DateEnv (line 4751) | function DateEnv(settings) {
  function doesSourceNeedRange (line 5083) | function doesSourceNeedRange(eventSource, calendar) {
  function parseEventSource (line 5087) | function parseEventSource(raw, calendar) {
  function parseEventSourceProps (line 5100) | function parseEventSourceProps(raw, meta, sourceDefId, calendar) {
  function reduceEventSources (line 5117) | function reduceEventSources (eventSources, action, dateProfile, calendar) {
  function addSources (line 5148) | function addSources(eventSourceHash, sources, fetchRange, calendar) {
  function removeSource (line 5159) | function removeSource(eventSourceHash, sourceId) {
  function fetchDirtySources (line 5164) | function fetchDirtySources(sourceHash, fetchRange, calendar) {
  function isSourceDirty (line 5169) | function isSourceDirty(eventSource, fetchRange, calendar) {
  function fetchSourcesByIds (line 5180) | function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calend...
  function fetchSource (line 5193) | function fetchSource(eventSource, fetchRange, calendar) {
  function receiveResponse (line 5238) | function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {
  function excludeStaticSources (line 5247) | function excludeStaticSources(eventSources, calendar) {
  function DateProfileGenerator (line 5254) | function DateProfileGenerator(viewSpec, calendar) {
  function computeRes (line 5430) | function computeRes() {
  function isDateProfilesEqual (line 5579) | function isDateProfilesEqual(p0, p1) {
  function reduce (line 5595) | function reduce (state, action, calendar) {
  function reduceViewType (line 5608) | function reduceViewType(currentViewType, action) {
  function reduceDateProfile (line 5616) | function reduceDateProfile(currentDateProfile, action, currentDate, view...
  function reduceCurrentDate (line 5652) | function reduceCurrentDate(currentDate, action, dateProfile) {
  function reduceDateSelection (line 5675) | function reduceDateSelection(currentSelection, action, calendar) {
  function reduceSelectedEvent (line 5685) | function reduceSelectedEvent(currentInstanceId, action) {
  function reduceEventDrag (line 5695) | function reduceEventDrag(currentDrag, action, sources, calendar) {
  function reduceEventResize (line 5711) | function reduceEventResize(currentResize, action, sources, calendar) {
  function computeLoadingLevel (line 5727) | function computeLoadingLevel(eventSources) {
  function parseDateSpan (line 5742) | function parseDateSpan(raw, dateEnv, defaultDuration) {
  function parseOpenDateSpan (line 5762) | function parseOpenDateSpan(raw, dateEnv) {
  function isDateSpansEqual (line 5780) | function isDateSpansEqual(span0, span1) {
  function isSpanPropsEqual (line 5786) | function isSpanPropsEqual(span0, span1) {
  function buildDateSpanApi (line 5803) | function buildDateSpanApi(span, dateEnv) {
  function buildDatePointApi (line 5812) | function buildDatePointApi(span, dateEnv) {
  function fabricateEventRange (line 5819) | function fabricateEventRange(dateSpan, eventUiBases, calendar) {
  function compileViewDefs (line 5833) | function compileViewDefs(defaultConfigs, overrideConfigs) {
  function ensureViewDef (line 5844) | function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {
  function buildViewDef (line 5854) | function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {
  function findViewNameBySubclass (line 5888) | function findViewNameBySubclass(viewSubclass, configs) {
  function parseViewConfigs (line 5900) | function parseViewConfigs(inputs) {
  function parseViewConfig (line 5907) | function parseViewConfig(input) {
  function buildViewSpecs (line 5920) | function buildViewSpecs(defaultInputs, optionsManager) {
  function buildViewSpec (line 5928) | function buildViewSpec(viewDef, overrideConfigs, optionsManager) {
  function Toolbar (line 5981) | function Toolbar(context, extraClassName) {
  function CalendarComponent (line 6145) | function CalendarComponent(context, el) {
  function computeTitle (line 6343) | function computeTitle(dateProfile, viewOptions) {
  function computeTitleFormat (line 6356) | function computeTitleFormat(dateProfile) {
  function buildViewPropTransformers (line 6378) | function buildViewPropTransformers(theClasses) {
  function Interaction (line 6385) | function Interaction(settings) {
  function parseInteractionSettings (line 6392) | function parseInteractionSettings(component, input) {
  function interactionSettingsToStore (line 6399) | function interactionSettingsToStore(settings) {
  function EventClicking (line 6413) | function EventClicking(settings) {
  function EventHovering (line 6450) | function EventHovering(settings) {
  function StandardTheme (line 6500) | function StandardTheme() {
  function Calendar (line 6533) | function Calendar(el, overrides) {
  function buildDateEnv (line 7408) | function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, wee...
  function buildTheme (line 7420) | function buildTheme(calendarOptions) {
  function buildDelayedRerender (line 7424) | function buildDelayedRerender(wait) {
  function buildEventUiBySource (line 7431) | function buildEventUiBySource(eventSources) {
  function buildEventUiBases (line 7436) | function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {
  function View (line 7449) | function View(context, viewSpec, dateProfileGenerator, parentEl) {
  function FgEventRenderer (line 7754) | function FgEventRenderer(context) {
  function buildSegCompareObj (line 7962) | function buildSegCompareObj(seg) {
  function FillRenderer (line 7973) | function FillRenderer(context) {
  function NamedTimeZoneImpl (line 8089) | function NamedTimeZoneImpl(timeZoneName) {
  function ElementDragging (line 8109) | function ElementDragging(el) {
  function formatDate (line 8126) | function formatDate(dateInput, settings) {
  function formatRange (line 8138) | function formatRange(startInput, endInput, settings // mixture of env an...
  function buildDateEnv$1 (line 8154) | function buildDateEnv$1(settings) {
  function parseDragMeta (line 8170) | function parseDragMeta(raw) {
  function computeFallbackHeaderFormat (line 8178) | function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {
  function renderDateCell (line 8191) | function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, c...
  function DayHeader (line 8240) | function DayHeader(context, parentEl) {
  function DaySeries (line 8275) | function DaySeries(range, dateProfileGenerator) {
  function DayTable (line 8338) | function DayTable(daySeries, breakOnWeeks) {
  function Slicer (line 8412) | function Slicer() {
  function computeActiveRange (line 8543) | function computeActiveRange(dateProfile, isComponentAllDay) {

FILE: static/fullcalendar/main.js
  function createElement (line 24) | function createElement(tagName, attrs, content) {
  function htmlToElement (line 47) | function htmlToElement(html) {
  function htmlToElements (line 53) | function htmlToElements(html) {
  function htmlToNodeList (line 56) | function htmlToNodeList(html) {
  function computeContainerTag (line 63) | function computeContainerTag(html) {
  function appendToElement (line 67) | function appendToElement(el, content) {
  function prependToElement (line 73) | function prependToElement(parent, content) {
  function insertAfterElement (line 80) | function insertAfterElement(refEl, content) {
  function normalizeContent (line 87) | function normalizeContent(content) {
  function removeElement (line 100) | function removeElement(el) {
  function elementClosest (line 125) | function elementClosest(el, selector) {
  function elementMatches (line 128) | function elementMatches(el, selector) {
  function findElements (line 133) | function findElements(container, selector) {
  function findChildren (line 146) | function findChildren(parent, selector) {
  function forceClassName (line 162) | function forceClassName(el, className, bool) {
  function applyStyle (line 173) | function applyStyle(el, props) {
  function applyStyleProp (line 178) | function applyStyleProp(el, name, val) {
  function pointInsideRect (line 190) | function pointInsideRect(point, rect) {
  function intersectRects (line 197) | function intersectRects(rect1, rect2) {
  function translateRect (line 209) | function translateRect(rect, deltaX, deltaY) {
  function constrainPoint (line 218) | function constrainPoint(point, rect) {
  function getRectCenter (line 225) | function getRectCenter(rect) {
  function diffPoints (line 232) | function diffPoints(point1, point2) {
  function getIsRtlScrollbarOnLeft (line 241) | function getIsRtlScrollbarOnLeft() {
  function computeIsRtlScrollbarOnLeft (line 247) | function computeIsRtlScrollbarOnLeft() {
  function sanitizeScrollbarWidth (line 267) | function sanitizeScrollbarWidth(width) {
  function computeEdges (line 273) | function computeEdges(el, getPadding) {
  function computeInnerRect (line 306) | function computeInnerRect(el, goWithinPadding) {
  function computeRect (line 324) | function computeRect(el) {
  function computeViewportRect (line 333) | function computeViewportRect() {
  function computeHeightAndMargins (line 341) | function computeHeightAndMargins(el) {
  function computeVMargins (line 344) | function computeVMargins(el) {
  function getClippingParents (line 350) | function getClippingParents(el) {
  function computeClippingRect (line 364) | function computeClippingRect(el) {
  function preventDefault (line 376) | function preventDefault(ev) {
  function listenBySelector (line 381) | function listenBySelector(container, eventType, selector, handler) {
  function listenToHoverBySelector (line 393) | function listenToHoverBySelector(container, selector, onMouseEnter, onMo...
  function whenTransitionDone (line 419) | function whenTransitionDone(el, callback) {
  function addWeeks (line 433) | function addWeeks(m, n) {
  function addDays (line 438) | function addDays(m, n) {
  function addMs (line 443) | function addMs(m, n) {
  function diffWeeks (line 449) | function diffWeeks(m0, m1) {
  function diffDays (line 452) | function diffDays(m0, m1) {
  function diffHours (line 455) | function diffHours(m0, m1) {
  function diffMinutes (line 458) | function diffMinutes(m0, m1) {
  function diffSeconds (line 461) | function diffSeconds(m0, m1) {
  function diffDayAndTime (line 464) | function diffDayAndTime(m0, m1) {
  function diffWholeWeeks (line 475) | function diffWholeWeeks(m0, m1) {
  function diffWholeDays (line 482) | function diffWholeDays(m0, m1) {
  function startOfDay (line 489) | function startOfDay(m) {
  function startOfHour (line 496) | function startOfHour(m) {
  function startOfMinute (line 504) | function startOfMinute(m) {
  function startOfSecond (line 513) | function startOfSecond(m) {
  function weekOfYear (line 524) | function weekOfYear(marker, dow, doy) {
  function weekOfGivenYear (line 536) | function weekOfGivenYear(marker, year, dow, doy) {
  function firstWeekOffset (line 543) | function firstWeekOffset(year, dow, doy) {
  function dateToLocalArray (line 551) | function dateToLocalArray(date) {
  function arrayToLocalDate (line 562) | function arrayToLocalDate(a) {
  function dateToUtcArray (line 566) | function dateToUtcArray(date) {
  function arrayToUtcDate (line 577) | function arrayToUtcDate(a) {
  function isValidDate (line 586) | function isValidDate(m) {
  function timeAsMs (line 589) | function timeAsMs(m) {
  function createDuration (line 599) | function createDuration(input, unit) {
  function parseString (line 614) | function parseString(s) {
  function normalizeObject (line 631) | function normalizeObject(obj) {
  function getWeeksFromInput (line 643) | function getWeeksFromInput(obj) {
  function durationsEqual (line 647) | function durationsEqual(d0, d1) {
  function isSingleDay (line 653) | function isSingleDay(dur) {
  function addDurations (line 657) | function addDurations(d0, d1) {
  function subtractDurations (line 665) | function subtractDurations(d1, d0) {
  function multiplyDuration (line 673) | function multiplyDuration(d, n) {
  function asRoughYears (line 683) | function asRoughYears(dur) {
  function asRoughMonths (line 686) | function asRoughMonths(dur) {
  function asRoughDays (line 689) | function asRoughDays(dur) {
  function asRoughMinutes (line 692) | function asRoughMinutes(dur) {
  function asRoughSeconds (line 695) | function asRoughSeconds(dur) {
  function asRoughMs (line 698) | function asRoughMs(dur) {
  function wholeDivideDurations (line 705) | function wholeDivideDurations(numerator, denominator) {
  function greatestDurationDenominator (line 723) | function greatestDurationDenominator(dur, dontReturnWeeks) {
  function compensateScroll (line 758) | function compensateScroll(rowEl, scrollbarWidths) {
  function uncompensateScroll (line 773) | function uncompensateScroll(rowEl) {
  function disableCursor (line 782) | function disableCursor() {
  function enableCursor (line 786) | function enableCursor() {
  function distributeHeight (line 793) | function distributeHeight(els, availableHeight, shouldRedistribute) {
  function undistributeHeight (line 837) | function undistributeHeight(els) {
  function matchCellWidths (line 845) | function matchCellWidths(els) {
  function subtractInnerElHeight (line 864) | function subtractInnerElHeight(outerEl, innerEl) {
  function preventSelection (line 883) | function preventSelection(el) {
  function allowSelection (line 887) | function allowSelection(el) {
  function preventContextMenu (line 893) | function preventContextMenu(el) {
  function allowContextMenu (line 896) | function allowContextMenu(el) {
  function parseFieldSpecs (line 901) | function parseFieldSpecs(input) {
  function compareByFieldSpecs (line 928) | function compareByFieldSpecs(obj0, obj1, fieldSpecs) {
  function compareByFieldSpec (line 939) | function compareByFieldSpec(obj0, obj1, fieldSpec) {
  function flexibleCompare (line 946) | function flexibleCompare(a, b) {
  function capitaliseFirstLetter (line 963) | function capitaliseFirstLetter(str) {
  function padStart (line 966) | function padStart(val, len) {
  function compareNumbers (line 972) | function compareNumbers(a, b) {
  function isInt (line 975) | function isInt(n) {
  function applyAll (line 980) | function applyAll(functions, thisObj, args) {
  function firstDefined (line 993) | function firstDefined() {
  function debounce (line 1009) | function debounce(func, wait) {
  function refineProps (line 1038) | function refineProps(rawProps, processors, defaults, leftoverProps) {
  function computeAlignedDayRange (line 1085) | function computeAlignedDayRange(timedRange) {
  function computeVisibleDayRange (line 1093) | function computeVisibleDayRange(timedRange, nextDayThreshold) {
  function isMultiDayRange (line 1117) | function isMultiDayRange(range) {
  function diffDates (line 1121) | function diffDates(date0, date1, dateEnv, largeUnit) {
  function __extends (line 1156) | function __extends(d, b) {
  function parseRecurring (line 1173) | function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTyp...
  function expandRecurringRanges (line 1203) | function expandRecurringRanges(eventDef, duration, framingRange, dateEnv...
  function mergeProps (line 1219) | function mergeProps(propObjs, complexProps) {
  function filterHash (line 1259) | function filterHash(hash, func) {
  function mapHash (line 1268) | function mapHash(hash, func) {
  function arrayToHash (line 1275) | function arrayToHash(a) {
  function hashValuesToArray (line 1283) | function hashValuesToArray(obj) {
  function isPropsEqual (line 1290) | function isPropsEqual(obj0, obj1) {
  function parseEvents (line 1308) | function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) {
  function eventTupleToStore (line 1319) | function eventTupleToStore(tuple, eventStore) {
  function expandRecurring (line 1327) | function expandRecurring(eventStore, framingRange, calendar) {
  function getRelevantEvents (line 1359) | function getRelevantEvents(eventStore, instanceId) {
  function isEventDefsGrouped (line 1375) | function isEventDefsGrouped(def0, def1) {
  function transformRawEvents (line 1378) | function transformRawEvents(rawEvents, eventSource, calendar) {
  function transformEachRawEvent (line 1389) | function transformEachRawEvent(rawEvents, func) {
  function createEmptyEventStore (line 1409) | function createEmptyEventStore() {
  function mergeEventStores (line 1412) | function mergeEventStores(store0, store1) {
  function filterEventStoreDefs (line 1418) | function filterEventStoreDefs(eventStore, filterFunc) {
  function parseRange (line 1426) | function parseRange(input, dateEnv) {
  function invertRanges (line 1445) | function invertRanges(ranges, constraintRange) {
  function compareRanges (line 1468) | function compareRanges(range0, range1) {
  function intersectRanges (line 1471) | function intersectRanges(range0, range1) {
  function rangesEqual (line 1496) | function rangesEqual(range0, range1) {
  function rangesIntersect (line 1500) | function rangesIntersect(range0, range1) {
  function rangeContainsRange (line 1504) | function rangeContainsRange(outerRange, innerRange) {
  function rangeContainsMarker (line 1508) | function rangeContainsMarker(range, date) {
  function constrainMarkerToRange (line 1514) | function constrainMarkerToRange(date, range) {
  function removeExact (line 1524) | function removeExact(array, exactVal) {
  function isArraysEqual (line 1538) | function isArraysEqual(a0, a1) {
  function memoize (line 1552) | function memoize(workerFunc) {
  function memoizeOutput (line 1567) | function memoizeOutput(workerFunc, equalityFunc) {
  function NativeFormatter (line 1602) | function NativeFormatter(formatSettings) {
  function buildFormattingFunc (line 1671) | function buildFormattingFunc(standardDateProps, extendedSettings, contex...
  function buildNativeFormattingFunc (line 1685) | function buildNativeFormattingFunc(standardDateProps, extendedSettings, ...
  function sanitizeSettings (line 1710) | function sanitizeSettings(standardDateProps, extendedSettings) {
  function postProcess (line 1730) | function postProcess(s, date, standardDateProps, extendedSettings, conte...
  function injectTzoStr (line 1767) | function injectTzoStr(s, tzoStr) {
  function formatWeekNumber (line 1779) | function formatWeekNumber(num, weekLabel, locale, display) {
  function computeMarkerDiffSeverity (line 1798) | function computeMarkerDiffSeverity(d0, d1, ca) {
  function computePartialFormattingOptions (line 1813) | function computePartialFormattingOptions(options, biggestUnit) {
  function findCommonInsertion (line 1823) | function findCommonInsertion(full0, partial0, full1, partial1) {
  function CmdFormatter (line 1861) | function CmdFormatter(cmdStr, separator) {
  function FuncFormatter (line 1875) | function FuncFormatter(func) {
  function createFormatter (line 1888) | function createFormatter(input, defaultSeparator) {
  function buildIsoString (line 1904) | function buildIsoString(marker, timeZoneOffset, stripZeroTime) {
  function formatIsoTimeString (line 1922) | function formatIsoTimeString(marker) {
  function formatTimeZoneOffset (line 1927) | function formatTimeZoneOffset(minutes, doIso) {
  function createVerboseFormattingArg (line 1941) | function createVerboseFormattingArg(start, end, context, separator) {
  function expandZonedMarker (line 1953) | function expandZonedMarker(dateInfo, calendarSystem) {
  function EventSourceApi (line 1970) | function EventSourceApi(calendar, internalEventSource) {
  function EventApi (line 2005) | function EventApi(calendar, def, instance) {
  function sliceEventStore (line 2307) | function sliceEventStore(eventStore, eventUiBases, framingRange, nextDay...
  function hasBgRendering (line 2392) | function hasBgRendering(def) {
  function filterSegsViaEls (line 2395) | function filterSegsViaEls(view, segs, isMirror) {
  function setElSeg (line 2424) | function setElSeg(el, seg) {
  function getElSeg (line 2427) | function getElSeg(el) {
  function compileEventUis (line 2431) | function compileEventUis(eventDefs, eventUiBases) {
  function compileEventUi (line 2436) | function compileEventUi(eventDef, eventUiBases) {
  function applyMutationToEventStore (line 2449) | function applyMutationToEventStore(eventStore, eventConfigBase, mutation...
  function applyMutationToEventDef (line 2463) | function applyMutationToEventDef(eventDef, eventConfig, mutation, applie...
  function applyMutationToEventInstance (line 2486) | function applyMutationToEventInstance(eventInstance, eventDef, // must f...
  function reduceEventStore (line 2534) | function reduceEventStore (eventStore, action, eventSources, dateProfile...
  function receiveRawEvents (line 2580) | function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, ...
  function addEvent (line 2592) | function addEvent(eventStore, subset, expandRange, calendar) {
  function rezoneDates (line 2598) | function rezoneDates(eventStore, oldDateEnv, newDateEnv) {
  function applyMutationToRelated (line 2614) | function applyMutationToRelated(eventStore, instanceId, mutation, fromAp...
  function excludeEventsBySourceId (line 2632) | function excludeEventsBySourceId(eventStore, sourceId) {
  function excludeInstances (line 2638) | function excludeInstances(eventStore, removals) {
  function isInteractionValid (line 2649) | function isInteractionValid(interaction, calendar) {
  function isDateSelectionValid (line 2652) | function isDateSelectionValid(dateSelection, calendar) {
  function isNewPropsValid (line 2655) | function isNewPropsValid(newProps, calendar) {
  function isPropsValid (line 2660) | function isPropsValid(state, calendar, dateSpanMeta, filterConfig) {
  function isInteractionPropsValid (line 2672) | function isInteractionPropsValid(state, calendar, dateSpanMeta, filterCo...
  function isDateSelectionPropsValid (line 2744) | function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filter...
  function allConstraintsPass (line 2787) | function allConstraintsPass(constraints, subjectRange, otherEventStore, ...
  function constraintToRanges (line 2796) | function constraintToRanges(constraint, subjectRange, // for expanding a...
  function eventStoreToRanges (line 2815) | function eventStoreToRanges(eventStore) {
  function anyRangesContainRange (line 2824) | function anyRangesContainRange(outerRanges, innerRange) {
  function normalizeConstraint (line 2835) | function normalizeConstraint(input, calendar) {
  function htmlEscape (line 2850) | function htmlEscape(s) {
  function cssToStr (line 2860) | function cssToStr(cssProps) {
  function attrsToStr (line 2872) | function attrsToStr(attrs) {
  function parseClassName (line 2882) | function parseClassName(raw) {
  function processUnscopedUiProps (line 2908) | function processUnscopedUiProps(rawProps, calendar, leftovers) {
  function processScopedUiProps (line 2923) | function processScopedUiProps(prefix, rawScoped, calendar, leftovers) {
  function combineEventUis (line 2955) | function combineEventUis(uis) {
  function combineTwoEventUis (line 2958) | function combineTwoEventUis(item0, item1) {
  function parseEvent (line 2987) | function parseEvent(raw, sourceId, calendar, allowOpenRange) {
  function parseEventDef (line 3018) | function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) {
  function createEventInstance (line 3037) | function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {
  function parseSingle (line 3046) | function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenR...
  function pluckDateProps (line 3103) | function pluckDateProps(raw, leftovers) {
  function pluckNonDateProps (line 3109) | function pluckNonDateProps(raw, calendar, leftovers) {
  function computeIsAllDayDefault (line 3118) | function computeIsAllDayDefault(sourceId, calendar) {
  function parseBusinessHours (line 3141) | function parseBusinessHours(input, calendar) {
  function refineInputs (line 3144) | function refineInputs(input) {
  function memoizeRendering (line 3167) | function memoizeRendering(renderFunc, unrenderFunc, dependencies) {
  function Splitter (line 3203) | function Splitter() {
  function buildEventUiForKey (line 3325) | function buildEventUiForKey(allUi, eventUiForKey, individualUi) {
  function buildGotoAnchorHtml (line 3348) | function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) {
  function getAllDayHtml (line 3384) | function getAllDayHtml(component) {
  function getDayClasses (line 3388) | function getDayClasses(date, dateProfile, context, noThemeHighlight) {
  function unpromisify (line 3424) | function unpromisify(func, success, failure) {
  function Mixin (line 3449) | function Mixin() {
  function EmitterMixin (line 3492) | function EmitterMixin() {
  function addToHash (line 3537) | function addToHash(hash, type, handler) {
  function removeFromHash (line 3541) | function removeFromHash(hash, type, handler) {
  function PositionCache (line 3560) | function PositionCache(originEl, els, isHorizontal, isVertical) {
  function ScrollController (line 3648) | function ScrollController() {
  function ElementScrollController (line 3678) | function ElementScrollController(el) {
  function WindowScrollController (line 3711) | function WindowScrollController() {
  function ScrollComponent (line 3746) | function ScrollComponent(overflowX, overflowY) {
  function Theme (line 3805) | function Theme(calendarOptions) {
  function Component (line 3864) | function Component(context, isView) {
  function recycleProps (line 3902) | function recycleProps(oldProps, newProps, equalityFuncs) {
  function DateComponent (line 3932) | function DateComponent(context, el, isView) {
  function createPlugin (line 4088) | function createPlugin(input) {
  function PluginSystem (line 4120) | function PluginSystem() {
  function combineHooks (line 4162) | function combineHooks(hooks0, hooks1) {
  function requestJson (line 4242) | function requestJson(method, url, params, successCallback, failureCallba...
  function injectQueryStringParams (line 4275) | function injectQueryStringParams(url, params) {
  function encodeParams (line 4280) | function encodeParams(params) {
  function buildRequestParams (line 4318) | function buildRequestParams(meta, range, calendar) {
  function expandRanges (line 4403) | function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {
  function handleEventSources (line 4436) | function handleEventSources(inputs, calendar, deepEqual) {
  function handlePlugins (line 4466) | function handlePlugins(inputs, calendar) {
  function mergeOptions (line 4551) | function mergeOptions(optionObjs) {
  function refinePluginDefs (line 4562) | function refinePluginDefs(pluginInputs) {
  function parseRawLocales (line 4606) | function parseRawLocales(explicitRawLocales) {
  function buildLocale (line 4626) | function buildLocale(inputSingular, available) {
  function queryLocale (line 4634) | function queryLocale(codeArg, available) {
  function queryRawLocale (line 4639) | function queryRawLocale(codes, available) {
  function parseLocale (line 4651) | function parseLocale(codeArg, codes, raw) {
  function OptionsManager (line 4666) | function OptionsManager(overrides) {
  function registerCalendarSystem (line 4707) | function registerCalendarSystem(name, theClass) {
  function createCalendarSystem (line 4710) | function createCalendarSystem(name) {
  function GregorianCalendarSystem (line 4714) | function GregorianCalendarSystem() {
  function parse (line 4736) | function parse(str) {
  function DateEnv (line 4757) | function DateEnv(settings) {
  function doesSourceNeedRange (line 5089) | function doesSourceNeedRange(eventSource, calendar) {
  function parseEventSource (line 5093) | function parseEventSource(raw, calendar) {
  function parseEventSourceProps (line 5106) | function parseEventSourceProps(raw, meta, sourceDefId, calendar) {
  function reduceEventSources (line 5123) | function reduceEventSources (eventSources, action, dateProfile, calendar) {
  function addSources (line 5154) | function addSources(eventSourceHash, sources, fetchRange, calendar) {
  function removeSource (line 5165) | function removeSource(eventSourceHash, sourceId) {
  function fetchDirtySources (line 5170) | function fetchDirtySources(sourceHash, fetchRange, calendar) {
  function isSourceDirty (line 5175) | function isSourceDirty(eventSource, fetchRange, calendar) {
  function fetchSourcesByIds (line 5186) | function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calend...
  function fetchSource (line 5199) | function fetchSource(eventSource, fetchRange, calendar) {
  function receiveResponse (line 5244) | function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {
  function excludeStaticSources (line 5253) | function excludeStaticSources(eventSources, calendar) {
  function DateProfileGenerator (line 5260) | function DateProfileGenerator(viewSpec, calendar) {
  function computeRes (line 5436) | function computeRes() {
  function isDateProfilesEqual (line 5585) | function isDateProfilesEqual(p0, p1) {
  function reduce (line 5601) | function reduce (state, action, calendar) {
  function reduceViewType (line 5614) | function reduceViewType(currentViewType, action) {
  function reduceDateProfile (line 5622) | function reduceDateProfile(currentDateProfile, action, currentDate, view...
  function reduceCurrentDate (line 5658) | function reduceCurrentDate(currentDate, action, dateProfile) {
  function reduceDateSelection (line 5681) | function reduceDateSelection(currentSelection, action, calendar) {
  function reduceSelectedEvent (line 5691) | function reduceSelectedEvent(currentInstanceId, action) {
  function reduceEventDrag (line 5701) | function reduceEventDrag(currentDrag, action, sources, calendar) {
  function reduceEventResize (line 5717) | function reduceEventResize(currentResize, action, sources, calendar) {
  function computeLoadingLevel (line 5733) | function computeLoadingLevel(eventSources) {
  function parseDateSpan (line 5748) | function parseDateSpan(raw, dateEnv, defaultDuration) {
  function parseOpenDateSpan (line 5768) | function parseOpenDateSpan(raw, dateEnv) {
  function isDateSpansEqual (line 5786) | function isDateSpansEqual(span0, span1) {
  function isSpanPropsEqual (line 5792) | function isSpanPropsEqual(span0, span1) {
  function buildDateSpanApi (line 5809) | function buildDateSpanApi(span, dateEnv) {
  function buildDatePointApi (line 5818) | function buildDatePointApi(span, dateEnv) {
  function fabricateEventRange (line 5825) | function fabricateEventRange(dateSpan, eventUiBases, calendar) {
  function compileViewDefs (line 5839) | function compileViewDefs(defaultConfigs, overrideConfigs) {
  function ensureViewDef (line 5850) | function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {
  function buildViewDef (line 5860) | function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {
  function findViewNameBySubclass (line 5894) | function findViewNameBySubclass(viewSubclass, configs) {
  function parseViewConfigs (line 5906) | function parseViewConfigs(inputs) {
  function parseViewConfig (line 5913) | function parseViewConfig(input) {
  function buildViewSpecs (line 5926) | function buildViewSpecs(defaultInputs, optionsManager) {
  function buildViewSpec (line 5934) | function buildViewSpec(viewDef, overrideConfigs, optionsManager) {
  function Toolbar (line 5987) | function Toolbar(context, extraClassName) {
  function CalendarComponent (line 6151) | function CalendarComponent(context, el) {
  function computeTitle (line 6349) | function computeTitle(dateProfile, viewOptions) {
  function computeTitleFormat (line 6362) | function computeTitleFormat(dateProfile) {
  function buildViewPropTransformers (line 6384) | function buildViewPropTransformers(theClasses) {
  function Interaction (line 6391) | function Interaction(settings) {
  function parseInteractionSettings (line 6398) | function parseInteractionSettings(component, input) {
  function interactionSettingsToStore (line 6405) | function interactionSettingsToStore(settings) {
  function EventClicking (line 6419) | function EventClicking(settings) {
  function EventHovering (line 6456) | function EventHovering(settings) {
  function StandardTheme (line 6506) | function StandardTheme() {
  function Calendar (line 6539) | function Calendar(el, overrides) {
  function buildDateEnv (line 7414) | function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, wee...
  function buildTheme (line 7426) | function buildTheme(calendarOptions) {
  function buildDelayedRerender (line 7430) | function buildDelayedRerender(wait) {
  function buildEventUiBySource (line 7437) | function buildEventUiBySource(eventSources) {
  function buildEventUiBases (line 7442) | function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {
  function View (line 7455) | function View(context, viewSpec, dateProfileGenerator, parentEl) {
  function FgEventRenderer (line 7760) | function FgEventRenderer(context) {
  function buildSegCompareObj (line 7968) | function buildSegCompareObj(seg) {
  function FillRenderer (line 7979) | function FillRenderer(context) {
  function NamedTimeZoneImpl (line 8095) | function NamedTimeZoneImpl(timeZoneName) {
  function ElementDragging (line 8115) | function ElementDragging(el) {
  function formatDate (line 8132) | function formatDate(dateInput, settings) {
  function formatRange (line 8144) | function formatRange(startInput, endInput, settings // mixture of env an...
  function buildDateEnv$1 (line 8160) | function buildDateEnv$1(settings) {
  function parseDragMeta (line 8176) | function parseDragMeta(raw) {
  function computeFallbackHeaderFormat (line 8184) | function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {
  function renderDateCell (line 8197) | function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, c...
  function DayHeader (line 8246) | function DayHeader(context, parentEl) {
  function DaySeries (line 8281) | function DaySeries(range, dateProfileGenerator) {
  function DayTable (line 8344) | function DayTable(daySeries, breakOnWeeks) {
  function Slicer (line 8418) | function Slicer() {
  function computeActiveRange (line 8549) | function computeActiveRange(dateProfile, isComponentAllDay) {

FILE: static/inputmask/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js
  function indexOf (line 19) | function indexOf(list, elem) {
  function isWindow (line 28) | function isWindow(obj) {
  function isArraylike (line 31) | function isArraylike(obj) {

FILE: static/inputmask/inputmask/dependencyLibs/inputmask.dependencyLib.js
  function indexOf (line 19) | function indexOf(list, elem) {
  function isWindow (line 28) | function isWindow(obj) {
  function isArraylike (line 31) | function isArraylike(obj) {
  function isValidElement (line 41) | function isValidElement(elem) {
  function DependencyLib (line 44) | function DependencyLib(elem) {
  function getWindow (line 58) | function getWindow(elem) {

FILE: static/inputmask/inputmask/inputmask.date.extensions.js
  function getTokenizer (line 76) | function getTokenizer(opts) {
  function isValidDate (line 87) | function isValidDate(dateParts, currentResult) {
  function isDateInRange (line 90) | function isDateInRange(dateParts, opts) {
  function parse (line 108) | function parse(format, dateObjValue, opts, raw) {
  function pad (line 139) | function pad(val, len) {
  function analyseMask (line 145) | function analyseMask(maskString, format, opts) {

FILE: static/inputmask/inputmask/inputmask.js
  function Inputmask (line 19) | function Inputmask(alias, options, internal) {
  function importAttributeOptions (line 118) | function importAttributeOptions(npt, opts, userOptions, dataAttribute) {
  function MaskToken (line 266) | function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {
  function insertTestDefinition (line 279) | function insertTestDefinition(mtoken, element, position) {
  function verifyGroupMarker (line 337) | function verifyGroupMarker(maskToken) {
  function defaultCase (line 354) | function defaultCase() {
  function reverseTokens (line 374) | function reverseTokens(maskToken) {
  function groupify (line 397) | function groupify(matches) {
  function resolveAlias (line 631) | function resolveAlias(aliasStr, options, opts) {
  function generateMaskSet (line 643) | function generateMaskSet(opts, nocache) {
  function isInputEventSupported (line 721) | function isInputEventSupported(eventName) {
  function maskScope (line 730) | function maskScope(actionObj, maskset, opts) {

FILE: static/inputmask/inputmask/inputmask.numeric.extensions.js
  function autoEscape (line 19) | function autoEscape(txt, opts) {
  function alignDigits (line 28) | function alignDigits(buffer, digits, opts) {
  function buildPostMask (line 158) | function buildPostMask(buffer, opts) {
  function parseMinMaxOptions (line 280) | function parseMinMaxOptions(opts) {

FILE: static/inputmask/jquery.inputmask.bundle.js
  function __webpack_require__ (line 11) | function __webpack_require__(moduleId) {
  function _interopRequireDefault (line 84) | function _interopRequireDefault(obj) {
  function Inputmask (line 204) | function Inputmask(alias, options, internal) {
  function importAttributeOptions (line 303) | function importAttributeOptions(npt, opts, userOptions, data
Copy disabled (too large) Download .json
Condensed preview — 1948 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (48,128K chars).
[
  {
    "path": ".dockerignore",
    "chars": 284,
    "preview": "*.pyc\n*.pyo\n*.mo\n*.db\n*.css.map\n*.egg-info\n*.sql.gz\n.cache\n.project\n.idea\n.pydevproject\n.idea/workspace.xml\n.DS_Store\n.g"
  },
  {
    "path": ".flake8",
    "chars": 107,
    "preview": "[flake8]\nexclude =\n    migrations,\n    __pycache__,\n    manage.py,\n    settings.py,\n    wsgi.py,\n    venv/\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 751,
    "preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
  },
  {
    "path": ".github/workflows/tests.yml",
    "chars": 900,
    "preview": "name: Tests\non:\n  push:\n    branches:\n      - '*'\n  pull_request:\n    branches:\n      - '*'\n\njobs:\n  build:\n    runs-on:"
  },
  {
    "path": ".gitignore",
    "chars": 1800,
    "preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 472,
    "preview": "exclude: 'static'\nrepos:\n- repo: https://github.com/pycqa/isort\n  rev: 5.12.0\n  hooks:\n    - id: isort\n      name: isort"
  },
  {
    "path": ".travis.yml",
    "chars": 118,
    "preview": "language: python\npython:\n  - \"3.8.2\"\n\ninstall:\n  - pip install -r requirements.txt\n\nscript:\n  - python manage.py test\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3362,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "Dockerfile",
    "chars": 161,
    "preview": "FROM python:3.11-slim-buster\nENV PYTHONBUFFERED=1\nWORKDIR /student_management_system\nCOPY requirements.txt requirements."
  },
  {
    "path": "LICENSE",
    "chars": 1074,
    "preview": "MIT License\n\nCopyright (c) 2020 Akash Shrivastava\n\nPermission is hereby granted, free of charge, to any person obtaining"
  },
  {
    "path": "Procfile",
    "chars": 75,
    "preview": "web: python manage.py migrate && gunicorn 'student_management_system.wsgi'\n"
  },
  {
    "path": "README.md",
    "chars": 6800,
    "preview": "# Django Student Management System 👨‍🎓\n\nA modern Student Management System 👨‍🎓 with features like Interactive Dashboard "
  },
  {
    "path": "build.sh",
    "chars": 154,
    "preview": "#!/usr/bin/env bash\n\nset -o errexit  # exit on error\n\npip install -r requirements.txt\n\npython manage.py collectstatic --"
  },
  {
    "path": "docker-compose.yml",
    "chars": 921,
    "preview": "version: '3.8'\nservices:\n  app:\n    build: .\n    volumes:\n      - .:/student_management_system\n    ports:\n      - 8000:8"
  },
  {
    "path": "manage.py",
    "chars": 682,
    "preview": "#!/usr/bin/env python\r\n\"\"\"Django's command-line utility for administrative tasks.\"\"\"\r\nimport os\r\nimport sys\r\n\r\n\r\ndef mai"
  },
  {
    "path": "requirements.dev.txt",
    "chars": 60,
    "preview": "flake8==6.0.0\nblack==23.1.0\npre-commit==3.3.1\nisort==5.12.0\n"
  },
  {
    "path": "requirements.txt",
    "chars": 184,
    "preview": "dj-database-url==1.2.0\r\nDjango==4.1.13\r\ngunicorn==20.1.0\r\nrequests==2.31.0\r\npsycopg2-binary==2.9.5\r\npython-dotenv==1.0.0"
  },
  {
    "path": "runtime.txt",
    "chars": 14,
    "preview": "python-3.10.6\n"
  },
  {
    "path": "static/admin/css/autocomplete.css",
    "chars": 8440,
    "preview": "select.admin-autocomplete {\n    width: 20em;\n}\n\n.select2-container--admin-autocomplete.select2-container {\n    min-heigh"
  },
  {
    "path": "static/admin/css/base.css",
    "chars": 16378,
    "preview": "/*\n    DJANGO Admin styles\n*/\n\n@import url(fonts.css);\n\nbody {\n    margin: 0;\n    padding: 0;\n    font-size: 14px;\n    f"
  },
  {
    "path": "static/admin/css/changelists.css",
    "chars": 6170,
    "preview": "/* CHANGELISTS */\n\n#changelist {\n    position: relative;\n    width: 100%;\n}\n\n#changelist table {\n    width: 100%;\n}\n\n.ch"
  },
  {
    "path": "static/admin/css/dashboard.css",
    "chars": 412,
    "preview": "/* DASHBOARD */\n\n.dashboard .module table th {\n    width: 100%;\n}\n\n.dashboard .module table td {\n    white-space: nowrap"
  },
  {
    "path": "static/admin/css/fonts.css",
    "chars": 423,
    "preview": "@font-face {\n    font-family: 'Roboto';\n    src: url('../fonts/Roboto-Bold-webfont.woff');\n    font-weight: 700;\n    fon"
  },
  {
    "path": "static/admin/css/forms.css",
    "chars": 8518,
    "preview": "@import url('widgets.css');\n\n/* FORM ROWS */\n\n.form-row {\n    overflow: hidden;\n    padding: 10px;\n    font-size: 13px;\n"
  },
  {
    "path": "static/admin/css/login.css",
    "chars": 1233,
    "preview": "/* LOGIN FORM */\n\nbody.login {\n    background: #f8f8f8;\n}\n\n.login #header {\n    height: auto;\n    padding: 15px 16px;\n  "
  },
  {
    "path": "static/admin/css/responsive.css",
    "chars": 17944,
    "preview": "/* Tablets */\n\ninput[type=\"submit\"], button {\n    -webkit-appearance: none;\n    appearance: none;\n}\n\n@media (max-width: "
  },
  {
    "path": "static/admin/css/responsive_rtl.css",
    "chars": 1921,
    "preview": "/* TABLETS */\n\n@media (max-width: 1024px) {\n    [dir=\"rtl\"] .colMS {\n        margin-right: 0;\n    }\n\n    [dir=\"rtl\"] #us"
  },
  {
    "path": "static/admin/css/rtl.css",
    "chars": 3808,
    "preview": "body {\n    direction: rtl;\n}\n\n/* LOGIN */\n\n.login .form-row {\n    float: right;\n}\n\n.login .form-row label {\n    float: r"
  },
  {
    "path": "static/admin/css/vendor/select2/LICENSE-SELECT2.md",
    "chars": 1124,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors\n\nPermission is hereb"
  },
  {
    "path": "static/admin/css/vendor/select2/select2.css",
    "chars": 17604,
    "preview": ".select2-container {\n  box-sizing: border-box;\n  display: inline-block;\n  margin: 0;\n  position: relative;\n  vertical-al"
  },
  {
    "path": "static/admin/css/widgets.css",
    "chars": 10340,
    "preview": "/* SELECTOR (FILTER INTERFACE) */\n\n.selector {\n    width: 800px;\n    float: left;\n}\n\n.selector select {\n    width: 380px"
  },
  {
    "path": "static/admin/fonts/LICENSE.txt",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "static/admin/fonts/README.txt",
    "chars": 214,
    "preview": "Roboto webfont source: https://www.google.com/fonts/specimen/Roboto\nWOFF files extracted using https://github.com/majode"
  },
  {
    "path": "static/admin/img/LICENSE",
    "chars": 1081,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2014 Code Charm Ltd\n\nPermission is hereby granted, free of charge, to any person ob"
  },
  {
    "path": "static/admin/img/README.txt",
    "chars": 319,
    "preview": "All icons are taken from Font Awesome (http://fontawesome.io/) project.\nThe Font Awesome font is licensed under the SIL "
  },
  {
    "path": "static/admin/js/SelectBox.js",
    "chars": 5753,
    "preview": "(function($) {\n    'use strict';\n    var SelectBox = {\n        cache: {},\n        init: function(id) {\n            var b"
  },
  {
    "path": "static/admin/js/SelectFilter2.js",
    "chars": 12322,
    "preview": "/*global SelectBox, gettext, interpolate, quickElement, SelectFilter*/\n/*\nSelectFilter2 - Turns a multiple-select box in"
  },
  {
    "path": "static/admin/js/actions.js",
    "chars": 6766,
    "preview": "/*global gettext, interpolate, ngettext*/\n(function($) {\n    'use strict';\n    var lastChecked;\n\n    $.fn.actions = func"
  },
  {
    "path": "static/admin/js/admin/DateTimeShortcuts.js",
    "chars": 20218,
    "preview": "/*global Calendar, findPosX, findPosY, getStyle, get_format, gettext, gettext_noop, interpolate, ngettext, quickElement*"
  },
  {
    "path": "static/admin/js/admin/RelatedObjectLookups.js",
    "chars": 6918,
    "preview": "/*global SelectBox, interpolate*/\n// Handles related-objects functionality: lookup link for raw_id_fields\n// and Add Ano"
  },
  {
    "path": "static/admin/js/autocomplete.js",
    "chars": 1124,
    "preview": "(function($) {\n    'use strict';\n    var init = function($element, options) {\n        var settings = $.extend({\n        "
  },
  {
    "path": "static/admin/js/calendar.js",
    "chars": 7777,
    "preview": "/*global gettext, pgettext, get_format, quickElement, removeChildren*/\n/*\ncalendar.js - Calendar functions by Adrian Hol"
  },
  {
    "path": "static/admin/js/cancel.js",
    "chars": 409,
    "preview": "(function($) {\n    'use strict';\n    $(function() {\n        $('.cancel-link').on('click', function(e) {\n            e.pr"
  },
  {
    "path": "static/admin/js/change_form.js",
    "chars": 712,
    "preview": "/*global showAddAnotherPopup, showRelatedObjectLookupPopup showRelatedObjectPopup updateRelatedObjectLinks*/\n\n(function("
  },
  {
    "path": "static/admin/js/collapse.js",
    "chars": 2239,
    "preview": "/*global gettext*/\n(function() {\n    'use strict';\n    var closestElem = function(elem, tagName) {\n        if (elem.node"
  },
  {
    "path": "static/admin/js/core.js",
    "chars": 7099,
    "preview": "// Core javascript helper functions\n\n// basic browser identification & version\nvar isOpera = (navigator.userAgent.indexO"
  },
  {
    "path": "static/admin/js/inlines.js",
    "chars": 13773,
    "preview": "/*global DateTimeShortcuts, SelectFilter*/\n/**\n * Django admin inlines\n *\n * Based on jQuery Formset 1.1\n * @author Stan"
  },
  {
    "path": "static/admin/js/jquery.init.js",
    "chars": 363,
    "preview": "/*global django:true, jQuery:false*/\n/* Puts the included jQuery into our own namespace using noConflict and passing\n * "
  },
  {
    "path": "static/admin/js/popup_response.js",
    "chars": 569,
    "preview": "/*global opener */\n(function() {\n    'use strict';\n    var initData = JSON.parse(document.getElementById('django-admin-p"
  },
  {
    "path": "static/admin/js/prepopulate.js",
    "chars": 1530,
    "preview": "/*global URLify*/\n(function($) {\n    'use strict';\n    $.fn.prepopulate = function(dependencies, maxLength, allowUnicode"
  },
  {
    "path": "static/admin/js/prepopulate_init.js",
    "chars": 495,
    "preview": "(function($) {\n    'use strict';\n    var fields = $('#django-admin-prepopulated-fields-constants').data('prepopulatedFie"
  },
  {
    "path": "static/admin/js/timeparse.js",
    "chars": 2984,
    "preview": "(function() {\n    'use strict';\n    var timeParsePatterns = [\n        // 9\n        {\n            re: /^\\d{1,2}$/i,\n     "
  },
  {
    "path": "static/admin/js/urlify.js",
    "chars": 8476,
    "preview": "/*global XRegExp*/\n(function() {\n    'use strict';\n\n    var LATIN_MAP = {\n        'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A'"
  },
  {
    "path": "static/admin/js/vendor/jquery/LICENSE.txt",
    "chars": 1282,
    "preview": "Copyright jQuery Foundation and other contributors, https://jquery.org/\n\nThis software consists of voluntary contributio"
  },
  {
    "path": "static/admin/js/vendor/jquery/jquery.js",
    "chars": 271817,
    "preview": "/*!\n * jQuery JavaScript Library v3.3.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * C"
  },
  {
    "path": "static/admin/js/vendor/select2/LICENSE.md",
    "chars": 1124,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors\n\nPermission is hereb"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/ar.js",
    "chars": 768,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/az.js",
    "chars": 681,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/bg.js",
    "chars": 783,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/ca.js",
    "chars": 865,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/cs.js",
    "chars": 1175,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/da.js",
    "chars": 810,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/de.js",
    "chars": 767,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/el.js",
    "chars": 925,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/en.js",
    "chars": 823,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/es.js",
    "chars": 862,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/et.js",
    "chars": 768,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/eu.js",
    "chars": 840,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/fa.js",
    "chars": 833,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/fi.js",
    "chars": 691,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/fr.js",
    "chars": 886,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/gl.js",
    "chars": 792,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/he.js",
    "chars": 827,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/hi.js",
    "chars": 829,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/hr.js",
    "chars": 833,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/hu.js",
    "chars": 711,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/id.js",
    "chars": 748,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/is.js",
    "chars": 755,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/it.js",
    "chars": 870,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/ja.js",
    "chars": 698,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/km.js",
    "chars": 781,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/ko.js",
    "chars": 718,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/lt.js",
    "chars": 896,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/lv.js",
    "chars": 855,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/mk.js",
    "chars": 837,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/ms.js",
    "chars": 787,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/nb.js",
    "chars": 780,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/nl.js",
    "chars": 890,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/pl.js",
    "chars": 910,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/pt-BR.js",
    "chars": 846,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/pt.js",
    "chars": 853,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/ro.js",
    "chars": 888,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/ru.js",
    "chars": 958,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/sk.js",
    "chars": 1148,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/sr-Cyrl.js",
    "chars": 931,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/sr.js",
    "chars": 928,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/sv.js",
    "chars": 777,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/th.js",
    "chars": 715,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/tr.js",
    "chars": 712,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/uk.js",
    "chars": 933,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/vi.js",
    "chars": 747,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/zh-CN.js",
    "chars": 675,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/i18n/zh-TW.js",
    "chars": 632,
    "preview": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQue"
  },
  {
    "path": "static/admin/js/vendor/select2/select2.full.js",
    "chars": 161828,
    "preview": "/*!\n * Select2 4.0.3\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/sel"
  },
  {
    "path": "static/admin/js/vendor/xregexp/LICENSE.txt",
    "chars": 1103,
    "preview": "The MIT License\n\nCopyright (c) 2007-2012 Steven Levithan <http://xregexp.com/>\n\nPermission is hereby granted, free of ch"
  },
  {
    "path": "static/admin/js/vendor/xregexp/xregexp.js",
    "chars": 128820,
    "preview": "\n/***** xregexp.js *****/\n\n/*!\n * XRegExp v2.0.0\n * (c) 2007-2012 Steven Levithan <http://xregexp.com/>\n * MIT License\n "
  },
  {
    "path": "static/bootstrap/js/bootstrap.bundle.js",
    "chars": 222909,
    "preview": "/*!\n  * Bootstrap v4.3.1 (https://getbootstrap.com/)\n  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/t"
  },
  {
    "path": "static/bootstrap/js/bootstrap.js",
    "chars": 131637,
    "preview": "/*!\n  * Bootstrap v4.3.1 (https://getbootstrap.com/)\n  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/t"
  },
  {
    "path": "static/bootstrap-colorpicker/css/bootstrap-colorpicker.css",
    "chars": 11611,
    "preview": "/*!\n * Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.\n * @package boots"
  },
  {
    "path": "static/bootstrap-colorpicker/js/bootstrap-colorpicker.js",
    "chars": 162110,
    "preview": "/*!\n * Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.\n * @package boots"
  },
  {
    "path": "static/bootstrap-slider/bootstrap-slider.js",
    "chars": 71385,
    "preview": "/*! =======================================================\n                      VERSION  10.6.2              \n========"
  },
  {
    "path": "static/bootstrap-slider/css/bootstrap-slider.css",
    "chars": 10368,
    "preview": "/*! =======================================================\n                      VERSION  10.6.2              \n========"
  },
  {
    "path": "static/bootstrap-switch/css/bootstrap2/bootstrap-switch.css",
    "chars": 23698,
    "preview": "/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4.0\n  * @homepage"
  },
  {
    "path": "static/bootstrap-switch/css/bootstrap3/bootstrap-switch.css",
    "chars": 6345,
    "preview": "/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4.0\n  * @homepage"
  },
  {
    "path": "static/bootstrap-switch/js/bootstrap-switch.js",
    "chars": 25237,
    "preview": "/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4.0\n  * @homepage"
  },
  {
    "path": "static/bootstrap4-duallistbox/bootstrap-duallistbox.css",
    "chars": 2053,
    "preview": "/*\n *  Bootstrap Duallistbox - v4.0.1\n *  A responsive dual listbox widget optimized for Twitter Bootstrap. It works on "
  },
  {
    "path": "static/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.js",
    "chars": 33047,
    "preview": "/*\n *  Bootstrap Duallistbox - v4.0.1\n *  A responsive dual listbox widget optimized for Twitter Bootstrap. It works on "
  },
  {
    "path": "static/bs-custom-file-input/bs-custom-file-input.js",
    "chars": 5001,
    "preview": "/*!\n * bsCustomFileInput v1.3.2 (https://github.com/Johann-S/bs-custom-file-input)\n * Copyright 2018 - 2019 Johann-S <jo"
  },
  {
    "path": "static/chart.js/Chart.bundle.js",
    "chars": 578945,
    "preview": "/*!\n * Chart.js v2.9.3\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n *"
  },
  {
    "path": "static/chart.js/Chart.css",
    "chars": 811,
    "preview": "/*\n * DOM element rendering detection\n * https://davidwalsh.name/detect-node-insertion\n */\n@keyframes chartjs-render-ani"
  },
  {
    "path": "static/chart.js/Chart.js",
    "chars": 428067,
    "preview": "/*!\n * Chart.js v2.9.3\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n *"
  },
  {
    "path": "static/datatables/jquery.dataTables.js",
    "chars": 448555,
    "preview": "/*! DataTables 1.10.20\n * ©2008-2019 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     DataTables\n * @desc"
  },
  {
    "path": "static/datatables-autofill/css/autoFill.bootstrap4.css",
    "chars": 2073,
    "preview": "div.dt-autofill-handle {\n  position: absolute;\n  height: 8px;\n  width: 8px;\n  z-index: 102;\n  box-sizing: border-box;\n  "
  },
  {
    "path": "static/datatables-autofill/js/autoFill.bootstrap4.js",
    "chars": 941,
    "preview": "/*! Bootstrap integration for DataTables' AutoFill\n * ©2015 SpryMedia Ltd - datatables.net/license\n */\n\n(function( facto"
  },
  {
    "path": "static/datatables-autofill/js/dataTables.autoFill.js",
    "chars": 30452,
    "preview": "/*! AutoFill 2.3.4\n * ©2008-2019 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     AutoFill\n * @descriptio"
  },
  {
    "path": "static/datatables-bs4/css/dataTables.bootstrap4.css",
    "chars": 5799,
    "preview": "table.dataTable {\n  clear: both;\n  margin-top: 6px !important;\n  margin-bottom: 6px !important;\n  max-width: none !impor"
  },
  {
    "path": "static/datatables-bs4/js/dataTables.bootstrap4.js",
    "chars": 4692,
    "preview": "/*! DataTables Bootstrap 4 integration\n * ©2011-2017 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * DataTables integ"
  },
  {
    "path": "static/datatables-buttons/css/buttons.bootstrap4.css",
    "chars": 4165,
    "preview": "@keyframes dtb-spinner {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n@-o-keyframes dtb-spinner {\n  100% {\n    -o-trans"
  },
  {
    "path": "static/datatables-buttons/js/buttons.bootstrap4.js",
    "chars": 1541,
    "preview": "/*! Bootstrap integration for DataTables' Buttons\n * ©2016 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factor"
  },
  {
    "path": "static/datatables-buttons/js/buttons.colVis.js",
    "chars": 5405,
    "preview": "/*!\n * Column visibility buttons for Buttons and DataTables.\n * 2016 SpryMedia Ltd - datatables.net/license\n */\n\n(functi"
  },
  {
    "path": "static/datatables-buttons/js/buttons.flash.js",
    "chars": 46165,
    "preview": "/*!\n * Flash export buttons for Buttons and DataTables.\n * 2015-2017 SpryMedia Ltd - datatables.net/license\n *\n * ZeroCl"
  },
  {
    "path": "static/datatables-buttons/js/buttons.html5.js",
    "chars": 43980,
    "preview": "/*!\n * HTML5 export buttons for Buttons and DataTables.\n * 2016 SpryMedia Ltd - datatables.net/license\n *\n * FileSaver.j"
  },
  {
    "path": "static/datatables-buttons/js/buttons.print.js",
    "chars": 5066,
    "preview": "/*!\n * Print button for Buttons and DataTables.\n * 2016 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory )"
  },
  {
    "path": "static/datatables-buttons/js/dataTables.buttons.js",
    "chars": 49397,
    "preview": "/*! Buttons for DataTables 1.6.1\n * ©2016-2019 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( t"
  },
  {
    "path": "static/datatables-colreorder/css/colReorder.bootstrap4.css",
    "chars": 213,
    "preview": "table.DTCR_clonedTable.dataTable {\n  position: absolute !important;\n  background-color: rgba(255, 255, 255, 0.7);\n  z-in"
  },
  {
    "path": "static/datatables-colreorder/js/colReorder.bootstrap4.js",
    "chars": 848,
    "preview": "/*! Bootstrap 4 styling wrapper for ColReorder\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory )"
  },
  {
    "path": "static/datatables-colreorder/js/dataTables.colReorder.js",
    "chars": 39360,
    "preview": "/*! ColReorder 1.5.2\n * ©2010-2019 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     ColReorder\n * @descri"
  },
  {
    "path": "static/datatables-fixedcolumns/css/fixedColumns.bootstrap4.css",
    "chars": 2270,
    "preview": "table.DTFC_Cloned tr {\n  background-color: white;\n  margin-bottom: 0;\n}\n\ndiv.DTFC_LeftHeadWrapper table,\ndiv.DTFC_RightH"
  },
  {
    "path": "static/datatables-fixedcolumns/js/dataTables.fixedColumns.js",
    "chars": 46912,
    "preview": "/*! FixedColumns 3.8.0\n * ©2010-2018 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     FixedColumns\n * @de"
  },
  {
    "path": "static/datatables-fixedcolumns/js/fixedColumns.bootstrap4.js",
    "chars": 856,
    "preview": "/*! Bootstrap 4 styling wrapper for FixedColumns\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory"
  },
  {
    "path": "static/datatables-fixedheader/css/fixedHeader.bootstrap4.css",
    "chars": 380,
    "preview": "table.dataTable.fixedHeader-floating,\ntable.dataTable.fixedHeader-locked {\n  background-color: white;\n  margin-top: 0 !i"
  },
  {
    "path": "static/datatables-fixedheader/js/dataTables.fixedHeader.js",
    "chars": 17613,
    "preview": "/*! FixedHeader 3.1.6-dev\n * ©2009-2018 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     FixedHeader\n * @"
  },
  {
    "path": "static/datatables-fixedheader/js/fixedHeader.bootstrap4.js",
    "chars": 852,
    "preview": "/*! Bootstrap 4 styling wrapper for FixedHeader\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory "
  },
  {
    "path": "static/datatables-keytable/css/keyTable.bootstrap4.css",
    "chars": 253,
    "preview": "table.dataTable tbody th.focus,\ntable.dataTable tbody td.focus {\n  box-shadow: inset 0 0 1px 2px #0275d8;\n}\n\ndiv.dtk-foc"
  },
  {
    "path": "static/datatables-keytable/js/dataTables.keyTable.js",
    "chars": 29462,
    "preview": "/*! KeyTable 2.5.1\n * ©2009-2019 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     KeyTable\n * @descriptio"
  },
  {
    "path": "static/datatables-keytable/js/keyTable.bootstrap4.js",
    "chars": 840,
    "preview": "/*! Bootstrap 4 styling wrapper for KeyTable\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n"
  },
  {
    "path": "static/datatables-responsive/css/responsive.bootstrap4.css",
    "chars": 4739,
    "preview": "table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th.chi"
  },
  {
    "path": "static/datatables-responsive/js/dataTables.responsive.js",
    "chars": 38605,
    "preview": "/*! Responsive 2.2.3\n * 2014-2018 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     Responsive\n * @descrip"
  },
  {
    "path": "static/datatables-responsive/js/responsive.bootstrap4.js",
    "chars": 1996,
    "preview": "/*! Bootstrap 4 integration for DataTables' Responsive\n * ©2016 SpryMedia Ltd - datatables.net/license\n */\n\n(function( f"
  },
  {
    "path": "static/datatables-rowgroup/css/rowGroup.bootstrap4.css",
    "chars": 435,
    "preview": "table.dataTable tr.dtrg-group td {\n  background-color: #e0e0e0;\n}\n\ntable.dataTable tr.dtrg-group.dtrg-level-0 td {\n  fon"
  },
  {
    "path": "static/datatables-rowgroup/js/dataTables.rowGroup.js",
    "chars": 10260,
    "preview": "/*! RowGroup 1.1.1\n * ©2017-2019 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     RowGroup\n * @descriptio"
  },
  {
    "path": "static/datatables-rowgroup/js/rowGroup.bootstrap4.js",
    "chars": 840,
    "preview": "/*! Bootstrap 4 styling wrapper for RowGroup\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n"
  },
  {
    "path": "static/datatables-rowreorder/css/rowReorder.bootstrap4.css",
    "chars": 383,
    "preview": "table.dt-rowReorder-float {\n  position: absolute !important;\n  opacity: 0.8;\n  table-layout: fixed;\n  outline: 2px solid"
  },
  {
    "path": "static/datatables-rowreorder/js/dataTables.rowReorder.js",
    "chars": 21200,
    "preview": "/*! RowReorder 1.2.6\n * 2015-2019 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     RowReorder\n * @descrip"
  },
  {
    "path": "static/datatables-rowreorder/js/rowReorder.bootstrap4.js",
    "chars": 848,
    "preview": "/*! Bootstrap 4 styling wrapper for RowReorder\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory )"
  },
  {
    "path": "static/datatables-scroller/css/scroller.bootstrap4.css",
    "chars": 744,
    "preview": "div.dts {\n  display: block !important;\n}\ndiv.dts tbody th,\ndiv.dts tbody td {\n  white-space: nowrap;\n}\ndiv.dts div.dts_l"
  },
  {
    "path": "static/datatables-scroller/js/dataTables.scroller.js",
    "chars": 38806,
    "preview": "/*! Scroller 2.0.1\n * ©2011-2019 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     Scroller\n * @descriptio"
  },
  {
    "path": "static/datatables-scroller/js/scroller.bootstrap4.js",
    "chars": 840,
    "preview": "/*! Bootstrap 4 styling wrapper for Scroller\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n"
  },
  {
    "path": "static/datatables-select/css/select.bootstrap4.css",
    "chars": 4626,
    "preview": "table.dataTable tbody > tr.selected,\ntable.dataTable tbody > tr > .selected {\n  background-color: #0275d8;\n}\ntable.dataT"
  },
  {
    "path": "static/datatables-select/js/dataTables.select.js",
    "chars": 32597,
    "preview": "/*! Select for DataTables 1.3.1\n * 2015-2019 SpryMedia Ltd - datatables.net/license/mit\n */\n\n/**\n * @summary     Select "
  },
  {
    "path": "static/datatables-select/js/select.bootstrap4.js",
    "chars": 832,
    "preview": "/*! Bootstrap 4 styling wrapper for Select\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\ti"
  },
  {
    "path": "static/daterangepicker/bower.json",
    "chars": 314,
    "preview": "{\n  \"name\": \"daterangepicker\",\n  \"main\": [\n    \"daterangepicker.js\",\n    \"daterangepicker.css\"\n  ],\n  \"ignore\": [\n    \"*"
  },
  {
    "path": "static/daterangepicker/daterangepicker.css",
    "chars": 7659,
    "preview": ".daterangepicker {\n  position: absolute;\n  color: inherit;\n  background-color: #fff;\n  border-radius: 4px;\n  border: 1px"
  },
  {
    "path": "static/daterangepicker/daterangepicker.js",
    "chars": 65703,
    "preview": "/**\n* @version: 3.0.5\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2019 Dan Gro"
  },
  {
    "path": "static/daterangepicker/example/amd/index.html",
    "chars": 6953,
    "preview": "<!DOCTYPE html>\n<html dir=\"ltr\" lang=\"en-US\">\n   <head>\n      <meta charset=\"UTF-8\" />\n      <title>A date range picker "
  },
  {
    "path": "static/daterangepicker/example/amd/main.js",
    "chars": 4636,
    "preview": "requirejs.config({\n    \"paths\": {\n      \"jquery\": \"https://code.jquery.com/jquery-1.11.3.min\",\n      \"moment\": \"../../mo"
  },
  {
    "path": "static/daterangepicker/example/amd/require.js",
    "chars": 15924,
    "preview": "/*\n RequireJS 2.2.0 Copyright jQuery Foundation and other contributors.\n Released under MIT license, http://github.com/r"
  },
  {
    "path": "static/daterangepicker/example/browserify/README.md",
    "chars": 180,
    "preview": "# Browserify example\n\nTwo steps need to be done for this to work\n\nIn the project root\n\n    npm install\n\nIn this folder\n\n"
  },
  {
    "path": "static/daterangepicker/example/browserify/bundle.js",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "static/daterangepicker/example/browserify/index.html",
    "chars": 6931,
    "preview": "<!DOCTYPE html>\n<html dir=\"ltr\" lang=\"en-US\">\n   <head>\n      <meta charset=\"UTF-8\" />\n      <title>A date range picker "
  },
  {
    "path": "static/daterangepicker/example/browserify/main.js",
    "chars": 4467,
    "preview": "require('../../daterangepicker.js');\nvar $ = require('jquery'),\n    moment = require('moment');\n\n$(document).ready(funct"
  },
  {
    "path": "static/daterangepicker/package.js",
    "chars": 484,
    "preview": "Package.describe({\n  name: 'dangrossman:bootstrap-daterangepicker',\n  version: '3.0.5',\n  summary: 'Date range picker co"
  },
  {
    "path": "static/daterangepicker/website/index.html",
    "chars": 42665,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n\n        <meta charset=\"utf-8\">\n        <meta name=\"viewport\" content=\"width"
  },
  {
    "path": "static/daterangepicker/website/website.css",
    "chars": 2082,
    "preview": "body {\n    font-size: 15px;\n    line-height: 1.6em;\n    position: relative;\n    margin: 0;\n}\n\n.navbar .nav-item {\n    pa"
  },
  {
    "path": "static/daterangepicker/website/website.js",
    "chars": 6466,
    "preview": "$(document).ready(function() {\n\n    $('#config-text').keyup(function() {\n      eval($(this).val());\n    });\n    \n    $('"
  },
  {
    "path": "static/daterangepicker/website.css",
    "chars": 2082,
    "preview": "body {\n    font-size: 15px;\n    line-height: 1.6em;\n    position: relative;\n    margin: 0;\n}\n\n.navbar .nav-item {\n    pa"
  },
  {
    "path": "static/daterangepicker/website.js",
    "chars": 6466,
    "preview": "$(document).ready(function() {\n\n    $('#config-text').keyup(function() {\n      eval($(this).val());\n    });\n    \n    $('"
  },
  {
    "path": "static/ekko-lightbox/ekko-lightbox.css",
    "chars": 7143,
    "preview": ".ekko-lightbox{display:-ms-flexbox!important;display:flex!important;-ms-flex-align:center;align-items:center;-ms-flex-pa"
  },
  {
    "path": "static/ekko-lightbox/ekko-lightbox.js",
    "chars": 24945,
    "preview": "/*!\n * Lightbox for Bootstrap by @ashleydw\n * https://github.com/ashleydw/lightbox\n *\n * License: https://github.com/ash"
  },
  {
    "path": "static/fastclick/fastclick.js",
    "chars": 25965,
    "preview": ";(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs"
  },
  {
    "path": "static/filterizr/ActiveFilter.d.ts",
    "chars": 389,
    "preview": "import { Filter } from './types';\n/**\n * ActiveFilter represents the currently active filter over\n * the grid.\n *\n * It "
  },
  {
    "path": "static/filterizr/BrowserWindow.d.ts",
    "chars": 474,
    "preview": "/**\n * A wrapper class around the window object to manage the\n * resize event.\n *\n * When the user resizes the window, F"
  },
  {
    "path": "static/filterizr/EventReceiver.d.ts",
    "chars": 423,
    "preview": "import { Destructible } from './types/interfaces';\ndeclare type Receiver = NodeListOf<Element> | Element | Window;\nexpor"
  },
  {
    "path": "static/filterizr/FilterContainer/FilterContainer.d.ts",
    "chars": 1055,
    "preview": "import { FilterizrState } from '../types';\nimport FilterizrOptions from '../FilterizrOptions';\nimport FilterItems from '"
  },
  {
    "path": "static/filterizr/FilterContainer/StyledFilterContainer.d.ts",
    "chars": 234,
    "preview": "import StyledFilterizrElement from '../StyledFilterizrElement';\nexport default class StyledFilterContainer extends Style"
  },
  {
    "path": "static/filterizr/FilterContainer/index.d.ts",
    "chars": 45,
    "preview": "export { default } from './FilterContainer';\n"
  },
  {
    "path": "static/filterizr/FilterContainer/styles.d.ts",
    "chars": 277,
    "preview": "import FilterizrOptions from '../FilterizrOptions';\nexport declare const makePaddingStyles: (options: FilterizrOptions) "
  },
  {
    "path": "static/filterizr/FilterContainer.d.ts",
    "chars": 1256,
    "preview": "import { RawOptionsCallbacks } from './FilterizrOptions/defaultOptions';\nimport FilterizrOptions from './FilterizrOption"
  },
  {
    "path": "static/filterizr/FilterControls.d.ts",
    "chars": 655,
    "preview": "import Filterizr from './Filterizr';\nimport { Destructible } from './types/interfaces';\nexport default class FilterContr"
  },
  {
    "path": "static/filterizr/FilterItem/FilterItem.d.ts",
    "chars": 1485,
    "preview": "import { Position } from '../types/interfaces';\nimport FilterizrOptions from '../FilterizrOptions';\nimport FilterizrElem"
  },
  {
    "path": "static/filterizr/FilterItem/StyledFilterItem.d.ts",
    "chars": 1312,
    "preview": "import { Position } from './../types/interfaces';\nimport StyledFilterizrElement from '../StyledFilterizrElement';\nimport"
  },
  {
    "path": "static/filterizr/FilterItem/index.d.ts",
    "chars": 40,
    "preview": "export { default } from './FilterItem';\n"
  },
  {
    "path": "static/filterizr/FilterItem/styles.d.ts",
    "chars": 392,
    "preview": "import FilterizrOptions from '../FilterizrOptions';\nimport { Dictionary, Position } from '../types/interfaces';\nexport d"
  },
  {
    "path": "static/filterizr/FilterItem.d.ts",
    "chars": 3413,
    "preview": "import { Dictionary } from './types/interfaces/Dictionary';\nimport FilterizrOptions from './FilterizrOptions/FilterizrOp"
  },
  {
    "path": "static/filterizr/FilterItems/FilterItems.d.ts",
    "chars": 920,
    "preview": "import StyledFilterItems from './StyledFilterItems';\nimport { Filter } from '../types';\nimport FilterItem from '../Filte"
  },
  {
    "path": "static/filterizr/FilterItems/StyledFilterItems.d.ts",
    "chars": 464,
    "preview": "import StyledFilterizrElements from '../StyledFilterizrElements';\nimport FilterItem from '../FilterItem/FilterItem';\nexp"
  },
  {
    "path": "static/filterizr/FilterItems/index.d.ts",
    "chars": 41,
    "preview": "export { default } from './FilterItems';\n"
  },
  {
    "path": "static/filterizr/FilterItems.d.ts",
    "chars": 853,
    "preview": "import { Filter } from './ActiveFilter';\nimport FilterItem from './FilterItem';\nimport FilterizrOptions from './Filteriz"
  },
  {
    "path": "static/filterizr/Filterizr/Filterizr.d.ts",
    "chars": 2564,
    "preview": "import { Filter } from '../types';\nimport { RawOptions, Destructible } from '../types/interfaces';\nimport FilterizrOptio"
  },
  {
    "path": "static/filterizr/Filterizr/index.d.ts",
    "chars": 39,
    "preview": "export { default } from './Filterizr';\n"
  }
]

// ... and 1748 more files (download for full content)

About this extraction

This page contains the full source code of the Akash1362000/Django_Student_Management_System GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1948 files (43.4 MB), approximately 11.5M tokens, and a symbol index with 10439 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!