.gitignore:1:RapidApp-*
.travis.yml:3:   - "5.22"
.travis.yml:4:   - "5.20"
.travis.yml:5:   - "5.18"
.travis.yml:6:   - "5.16"
.travis.yml:7:   - "5.14"
.travis.yml:8:   - "5.12"
.travis.yml:9:   - "5.10"
.travis.yml:12:   - cpanm --quiet --notest --skip-satisfied Dist::Zilla
.travis.yml:13:   - cpanm --quiet --notest --skip-satisfied Devel::Cover::Report::Coveralls
.travis.yml:15:   - cpanm --quiet --notest --skip-satisfied DBIx::Class
.travis.yml:16:   - cpanm --quiet --notest --skip-satisfied Catalyst
.travis.yml:17:   - "dzil authordeps | cpanm --quiet --notest --skip-satisfied"
.travis.yml:22:   - "dzil listdeps   | cpanm --quiet --notest --skip-satisfied"
.travis.yml:23:   #- "dzil listdeps   | cpanm --quiet --skip-satisfied"
.travis.yml:27:   - HARNESS_PERL_SWITCHES=-MDevel::Cover=-coverage,statement,branch,condition,path,subroutine dzil test --author --release --keep
.travis.yml:30:  - cd .build/latest && cover && cover -report coveralls
Changes:3:1.2111 2017-02-26
Changes:4:    - Minor bugfix in edge-case mutli-rel render (VANSTYN)
Changes:6:1.2110 2017-02-03
Changes:7:    - NavCore Manage Navtree now supports 'Custom Link' node types (VANSTYN)
Changes:8:    - Tree API now supports custom-defined node types (VANSTYN)
Changes:9:    - Auto-generation of icon-selector combo of all icon assets (VANSTYN)
Changes:10:    - Fix edge-case bug in recently added _table_name_safe func (VANSTYN)
Changes:11:    - Require Catalyst::Controller::AutoAssets 0.40 (VANSTYN)
Changes:12:    - Require Catalyst 5.90114 (VANSTYN)
Changes:14:1.2101 2016-12-01
Changes:15:    - Require JSON 2.90 (VANSTYN)
Changes:16:    - Require JSON::PP 2.27400 (VANSTYN)
Changes:17:    - Bugfix in ExcelExport when not mounted at '/' - #172 (VANSTYN)
Changes:18:    - Merge PR #171 (RIBASUSHI)
Changes:20:1.2100 2016-10-21
Changes:21:    - Virtual columns now support quick search (VANSTYN)
Changes:22:    - Exlcude blob columns from quick search (treat as integer) (VANSTYN)
Changes:23:    - Fix "Open Another ..." tab when one is already open (VANSTYN)
Changes:24:    - Now using '_skip_namespace_frames' for better DBIC errors (VANSTYN)
Changes:25:    - Fix legacy multi-rel renderer edge case (VANSTYN)
Changes:26:    - Improve JavaScript error/exception handling in AutoPanel (VANSTYN)
Changes:27:    - REALLY fix bug preventing col profiles from changing allow_add_edit (VANSTYN)
Changes:28:    - Fix bug in DbicLnk rest urls with case-sensitive key/cols (VANSTYN)
Changes:29:    - Fix bug in rest PK vals containing slash '/' (VANSTYN)
Changes:30:    - Merge PR #169 (RIBASUSHI)
Changes:31:    - Require Path::Class 0.37 with important bug fix (VANSTYN)
Changes:32:    - Require DBIx::Class 0.082840 (VANSTYN)
Changes:33:    - Require Catalyst 5.90112 (VANSTYN)
Changes:34:    - Require Plack 1.0042 (VANSTYN)
Changes:35:    - Misc bug fixes (VANSTYN)
Changes:37:1.2000 2016-06-15
Changes:38:    - RapidApp::Util::RapidDbic::CfgWriter system (VANSTYN)
Changes:41:    - Started new 'rau.pl' script/system (VANSTYN)
Changes:42:    - RapidDbic bootstraps new apps with local grid_class (VANSTYN)
Changes:43:    - TC: template_render() auto detects/uses $c, if available (VANSTYN)
Changes:44:    - More consistent handling for 'default_favicon_url' (VANSTYN)
Changes:45:    - rapidapp.pl no longer supports "upgrade" from catalyst.pl (VANSTYN)
Changes:46:    - rapidapp.pl custom logic within rapi/psgi (VANSTYN)
Changes:47:    - rapidapp.pl cmd used now recorded as comment in bootstrapped app (VANSTYN)
Changes:48:    - Fix bug preventing column profiles from changing allow_add_edit (VANSTYN)
Changes:49:    - Now using Catalyst::Plugin::SimpleCAS (1.000) API (VANSTYN)
Changes:51:1.1100 2016-04-27
Changes:52:    - Added '--total-counts-off' option to rdbic.pl - #168 (VANSTYN)
Changes:53:    - Grids now support turning the total count on/off (UI) - #168 (VANSTYN)
Changes:54:    - Moved Column Summary function defs to be client-side - #68 (VANSTYN)
Changes:55:    - Refactoring of Column Summaries internals (VANSTYN)
Changes:56:    - Fix 5.18+ bugs in extconfig hash order using Tie::IxHash (VANSTYN)
Changes:58:1.1008 2016-04-16
Changes:59:    - Silence DBIC-generated nullable PK warnings for now - #167 (VANSTYN)
Changes:60:    - Override force all joins 'LEFT' within grid/module read scope (VANSTYN)
Changes:62:1.1007 2016-04-01
Changes:63:    - Loader default 'qualify_objects=1' set with 'db_schema' - #164 (VANSTYN)
Changes:64:    - Added dev utility devel/source_dev_shell_vars.bash - #166 (VANSTYN)
Changes:65:    - Fix virtual column bugs/regressions introduced in 1.1006 - #165 (VANSTYN)
Changes:66:    - More improvements to MSSQL support (VANSTYN)
Changes:68:1.1006 2016-03-25
Changes:69:    - rdbic.pl/rapidapp.pl --loader-option + --connect-option (VANSTYN)
Changes:70:    - Updated usage docs with examples setting db_schema and MSSQL dsn (VANSTYN)
Changes:71:    - Update shebang of all scripts/* to use '#!/usr/bin/env perl' (VANSTYN)
Changes:72:    - Misc fixes/improvements for MSSQL support (VANSTYN)
Changes:73:    - Properly detect/load MSSQL DBIC::SL driver during bootstrap (VANSTYN)
Changes:74:    - JSON encoder handles \'now()' values (sets undef) (VANSTYN)
Changes:75:    - Require IPC::Cmd 0.94 (VANSTYN)
Changes:76:    - Require DBIx::Class::Schema::Loader 0.07045 (VANSTYN)
Changes:77:    - Require DBIx::Class 0.082821 (VANSTYN)
Changes:78:    - Add travis job for perl 5.22 (VANSTYN)
Changes:79:    - Stop running unit tests for deps in travis (VANSTYN)
Changes:81:1.1005 2016-01-31
Changes:82:    - New RapidDbic apps bootstrapped with 'regen_schema' scripts (VANSTYN)
Changes:83:    - Added new RapidDbic bootstrap options: (VANSTYN)
Changes:84:        * --from-sqlite-ddl
Changes:85:        * --blank-ddl
Changes:86:    - New utility function RapidApp::Util::find_app_home() (VANSTYN)
Changes:87:    - All new apps bootstrap with an app.psgi for 'plackup' (VANSTYN)
Changes:89:1.1004 2015-12-17
Changes:90:    - Fix the way the default allow_view is calculated (VANSTYN)
Changes:92:1.1003 2015-12-14
Changes:93:    - Tweaks/fixes to allow add/edit rules (VANSTYN)
Changes:95:1.1002 2015-12-01
Changes:96:    - AppDV: added option 'multi_editable_autofield' (VANSTYN)
Changes:98:1.1001 2015-11-30
Changes:99:    - Improve the way windows/dialogs limit to local Tab - #6 (VANSTYN)
Changes:100:    - AppDV: experimental, dynamically generated stylesheets (VANSTYN)
Changes:101:    - Minor tweaks to MimeIframe module (VANSTYN)
Changes:102:    - Bugfix for normalize allow_add/allow_edit changes in 1.1000 (VANSTYN)
Changes:103:    - Bugfix for dirty (changed but unsaved) single rel cols (VANSTYN)
Changes:104:    - Misc AppDV bugfixes (VANSTYN)
Changes:105:    - Require Catalyst::Controller::SimpleCAS 0.9982 (VANSTYN)
Changes:106:    - Require Catalyst 5.90103 (VANSTYN)
Changes:107:    - misc other bugfixes (VANSTYN)
Changes:109:1.1000 2015-10-19
Changes:110:    - Better handling for dirty (changed but unsaved) single rel cols (VANSTYN)
Changes:111:    - FK single rel column ordering next to the physical FK - #163 (VANSTYN)
Changes:112:    - MultiFilter dialog open animation + fixed race-condition bug (VANSTYN)
Changes:113:    - Most windows/dialogs now limited to local Tab - #6 (VANSTYN)
Changes:114:    - Ajax timeout now produces a single dialog (VANSTYN)
Changes:115:    - AppDV: Expose column attrs in tpls via 'r.column_info' (VANSTYN)
Changes:116:    - AppDV: expose 'resData' to JavaScript-side tempalte env (VANSTYN)
Changes:117:    - AppDV: Fixes to enable/disable logic for store buttons (VANSTYN)
Changes:118:    - AppDV: improvements to field controls show/hide rules (VANSTYN)
Changes:119:    - AppDV: full-blown, per field validation monitoring (VANSTYN)
Changes:120:    - AppDV: new attr feature options: (VANSTYN) 
Changes:121:        - refresh_on_hash_change
Changes:122:        - init_record_editable
Changes:123:        - refresh_on_save
Changes:124:    - AppDV: now allows normal browser behavior of form submits (VANSTYN)
Changes:125:    - Lots of other fixes/tweaks/improvements to AppDV (VANSTYN)
Changes:126:    - Misc improvements to the DbicDV subclass (VANSTYN)
Changes:127:    - Improvements to dirty value rendering for date columns (VANSTYN)
Changes:128:    - Refactoring/cleanup of column 'allow_' flags logic to backend (VANSTYN)
Changes:129:    - Moved RapidApp::Column to RapidApp::Module::DatStor::Column (VANSTYN)
Changes:130:    - Fix bug in filename in Excel/CSV export, + append timestamp (VANSTYN)
Changes:131:    - New sugar func 'throw_prompt_ok' (custom prompt system) (VANSTYN)
Changes:132:    - Virtual Columns /w 'set_function' auto call ->update, if dirty (VANSTYN)
Changes:133:    - DataStorePlus 'firstload' event now available in all contexts (VANSTYN)
Changes:134:    - More improvements to Date/Time editors (VANSTYN)
Changes:135:    - Fixed display bug related to autoload_added_record - #161 (VANSTYN)
Changes:136:    - Fix 'Useless bare catch' via TT (lost exceptions) (VANSTYN/RIBASUSHI)
Changes:137:    - Fix bug MetaKeys::Loader subclass - PR #159 (ILMARI)
Changes:138:    - New feature: ra-async-box (VANSTYN)
Changes:139:    - New column property 'documentation' - shows up: (VANSTYN)
Changes:140:       - Add/edit forms
Changes:141:       - Column Properties menupoint (grid column hmenu)
Changes:142:       - Default Property Grid (default row page)
Changes:143:    - Fix overly thick borders in a number of dialog boxes (VANSTYN)
Changes:144:    - Reauth dialog now utilizes queue to prevent duplicates (VANSTYN)
Changes:145:    - Module attr trait 'ExtProp' auto applies extconfig (VANSTYN)
Changes:146:    - DataStorePlus 'lastJsonData' saved in store obj for all CRUD reqs (VANSTYN)
Changes:147:    - DataStorePlus: new attr option 'reload_on_save' (VANSTYN)
Changes:148:    - CSS 'scopify' assets now support rule groups (VANSTYN)
Changes:149:    - Moved JS renderer function collection into 530-renderers.js (VANSTYN)
Changes:150:    - Require Catalyst::Controller::AutoAssets 0.33 (VANSTYN)
Changes:151:    - Require Catalyst::Controller::SimpleCAS 0.9981 (VANSTYN)
Changes:152:    - Require Template 2.26 (VANSTYN)
Changes:153:    - Require Plack 1.0037 (VANSTYN)
Changes:154:    - Require Catalyst 5.90101 (VANSTYN)
Changes:155:    - Lots of other misc tweaks and bug fixes (VANSTYN)
Changes:157:1.0601 2015-07-14
Changes:158:    - DbicRowDV: fix bug in the way tt_include_path is parsed (VANSTYN)
Changes:159:    - AppDV: fix rendering bug with zero records - #157 (VANSTYN)
Changes:161:1.0600 2015-07-06
Changes:162:    - Column Summaries on virtual (including multi-rel) columns - #93 (VANSTYN)
Changes:163:    - Add Row via REST multi-rel pre-sets parent FK (rs_lock_keys') (VANSTYN)
Changes:164:    - Multi-rel columns show open link even if the count is 0 (VANSTYN)
Changes:165:    - Fix ability to set 'require_role' in grid_configs (VANSTYN)
Changes:166:    - Add magic relative path keyword '_ra-rel-mnt_' - #153 (VANSTYN)
Changes:167:    - Fix asset paths/links for odd module dispatch - also #153 (VANSTYN)
Changes:168:    - Module 'printview' now shows loading indicator (VANSTYN)
Changes:169:    - Fix misc Perl and JS warn bugs (VANSTYN)
Changes:170:    - More 'datetime' column editor improvements (VANSTYN)
Changes:171:    - Fix broken local app :Path() actions - ref PR #142 (VANSTYN)
Changes:172:    - Fix bug in reauth when app is mounted at sub-url (VANSTYN)
Changes:173:    - DirectCmp module dispatch refactors/improvements (VANSTYN)
Changes:174:    - grid-toggle-edit-cells - initiation bugfixes (VANSTYN)
Changes:175:    - total_count via pk col instead of count(*) in Pg (for speed) (VANSTYN)
Changes:177:1.0502 2015-06-16
Changes:178:    - rdbic.pl: ADDED EXPERIMENTAL limit/exclude OPTS - #152 (VANSTYN/TIMB)
Changes:179:    - Require DBIx::Class::Schema::Loader 0.07043 (dist.ini)
Changes:180:    - Fix subroutine redefine warnings (Dumper()) (VANSTYN)
Changes:181:    - Misc POD spelling/typo fixes - PR #151 (SCROTTIE)
Changes:183:1.0501 2015-06-15
Changes:184:    - Support Postgres for m2m columns - PR #150 (TBSliver/MST)
Changes:186:1.0500 2015-06-03
Changes:187:    - Lots of fixes/improvements to AppDV (VANSTYN)
Changes:188:    - DataStorePlus fixes and improvements (VANSTYN)
Changes:189:    - Fix bug in drag/drop ordering in navtree (VANSTYN)
Changes:190:    - factored out virtual column statement code to reduce duplication
Changes:191:        - PR #148 (TBSliver)
Changes:192:    - Fixes to DateTime field triggers (VANSTYN)
Changes:193:    - Declare JS namespeace RA.ux officially for client apps (VANSTYN)
Changes:194:    - Fixing _load_connect_schema in Model::CoreSchema - PR #147 (GETTY)
Changes:195:    - RapidApp::Builder: new base_plugins/base_config for added (VANSTYN)
Changes:196:    - CoreSchema fixes for PostgreSQL compatability - PR #146 (TBSliver)
Changes:197:    - TabGui: expose main_module_(class|params) in cfg (VANSTYN)
Changes:198:    - Add column profile 'cas_img' (VANSTYN)
Changes:199:    - CSS tweaks and changes (VANSTYN)
Changes:200:    - Module dispatch improvements + additions (VANSTYN)
Changes:201:    - Require Catalyst::Controller::SimpleCAS 0.998 (VANSTYN/GETTY)
Changes:202:    - New separate AppDV subclasses DbicDV and DbicRowDV (VANSTYN)
Changes:203:    - DbicLnk: include_colspec now defaults to ['*'] (VANSTYN)
Changes:204:    - Fix bug in rendering of SQLite date columns (VANSTYN)
Changes:205:    - Lots of misc bug fixes (VANSTYN)
Changes:207:1.0401 2015-05-11
Changes:208:    - Hotfix for wrong enforced alphabetical sorting of colspec (GETTY)
Changes:210:1.0400 2015-05-11
Changes:211:    - Require latest versions of key deps (VANSTYN)
Changes:212:        - Catalyst 5.90091
Changes:213:        - Catalyst::Controller::SimpleCAS 0.995
Changes:214:        - Catalyst::Controller::AutoAssets 0.32
Changes:215:        - SQL::Translator 0.11021
Changes:216:        - Moose 2.1404, Moo 2.000001
Changes:217:        - base 2.18, parent 0.232, namespace::autoclean  0.24 
Changes:218:    - Switch to AUTHOR_TESTING for all release tests - PR #144 (GETTY)
Changes:219:    - Introduce general 'RapidAppCache' - PR #143 (GETTY)
Changes:220:        - General-purpose caching in tmpdir using CHI
Changes:221:        - colspec calculations now cached for faster subsequent startups
Changes:222:    - Internal controller dispatch now uses Chained - PR #142 (GETTY)
Changes:223:    - 'sql' param of virtual_columns can now be a CodeRef - PR #141 (GETTY)
Changes:224:    - Max width of TabGui tab titles now enforced - PR #140 (GETTY/VANSTYN)
Changes:225:        - configurable with new 'tab_title_max_width' param (def 350px)
Changes:226:    - Fix regression in 1.02 regarding 'load_modules' handling (VANSTYN)
Changes:227:    - Misc other tweaks/bugfixes (VANSTYN/GETTY)
Changes:229:1.0303 2015-04-29
Changes:230:    - 'gridsearch_remote' option now only enabled in Module::DbicGrid, not the
Changes:231:      parent Module::Grid - fixes #139 (VANSTYN)
Changes:232:    - inject_components compat fix for new Catalyst 5.90090 - #138 (VANSTYN)
Changes:234:1.0302 2015-04-28
Changes:235:    - Fixing bug in order of logout/delete_session in Auth Controller (GETTY)
Changes:236:    - Requires DBIx::Class::Schema::Diff 1.03 (dist.ini) - fixes #136 (VANSTYN)
Changes:237:    - Drop JSON::DWIW (Michael Lackhoff)
Changes:238:    - Added all missing stopwords for podspelling release test (GETTY)
Changes:240:1.0301 2015-04-26
Changes:241:    - Fix for the "Add to sort" functionality of Grid Multi-Sort (GETTY)
Changes:243:1.0300 2015-04-23
Changes:244:    - Grid Multi-Sort (#128, PR #133/#134) (GETTY)
Changes:246:1.0205 2015-04-16
Changes:247:    - Fix bug in relative date query handling
Changes:248:    - login_logo_url now properly handles mount_url
Changes:249:    - App name is now shown in the loaded time banner (console)
Changes:251:1.0204 2015-03-27
Changes:252:    - New ctx method $c->ra_builder returns RapidApp::Builder object - undef
Changes:254:    - New top-level Catalyst cfg option 'inject_components' (see below)
Changes:255:    - New attr 'inject_components' available in RapidApp::Builder (see POD)
Changes:256:    - Require Catalyst 5.90085 + DBIx::Class 0.082820
Changes:258:1.0203 2015-03-24
Changes:259:    - Fixes related to internal Ajax JS queues (added in 1.02)
Changes:261:    - Fixes/improvements to browser title update
Changes:263:1.0202 2015-03-17
Changes:264:    - POD tweak
Changes:265:    - Fix js undef err outside of nav context (tree click)
Changes:266:    - Add Module util method local_url()
Changes:267:    - Require Catalyst 5.90084 + Plack 1.0034
Changes:269:1.0201 2015-03-14
Changes:270:    - Add back dummy vers of previously deleted share dir files to ensure clean on 
Changes:273:1.0200 2015-03-13
Changes:274:    - NEW FEATURE/CLASS: RapidApp::Builder
Changes:275:    - Simplified and more flexible cfg for favicon - 'default_favicon_url'
Changes:276:    - Internal Ajax JS now queues and limits to 2 simultaneous requests
Changes:277:    - Browser title update now works for all (TabGui) tabs (#117)
Changes:278:    - Template::Controller cfg now supports 'include_paths' option
Changes:279:    - local_assets_dir cfg no longer has to be relative to app home (which may not exist)
Changes:280:    - Catalyst 'name' config now auto-applied if not already configured
Changes:281:    - TabGui 'navtrees' cfg can now reference existing modules by path string
Changes:282:    - auto_hashnav_redirect_current() can now override via Module
Changes:283:    - Tree node expand state resets on load exception (#127)
Changes:284:    - Loading mask shown for initial tree load (#126)
Changes:285:    - Lots of fixes and improvements to Tree module internals
Changes:286:    - CoreSchema model now properly enforces DBIC 'deploy' deps
Changes:287:    - Misc CSS and icon asset additions + removal of unused CSS
Changes:288:    - Misc bugfixes and improvements
Changes:290:1.0010 2015-02-21
Changes:291:    - rapidapp.pl now bootstraps 'Templates' to be editable by default (#125)
Changes:292:    - Fix bug in rDbic with Sqlt files contraining dash '-' (#124)
Changes:293:    - Fix Dumper sub redefine warning in Module class
Changes:294:    - Minor doc tweaks (PR #122)
Changes:295:    - Improvements to relationship column rendering for bad FKs:
Changes:296:        - ommits "open" (tiny mag glass) links
Changes:297:        - renders raw value only for physical columns, undef otherwise
Changes:298:    - Now requires Catalyst::Controller::AutoAssets 0.31
Changes:300:1.0000 2015-02-07 
Changes:301:    - First official "1.0" release  ** API CHANGES **
Changes:302:    - New internal class structure for Modules with significant cleanup (#74)
Changes:303:    - Replaced RapidApp::Include with simple RapidApp::Util exporter (#115)
Changes:304:    - upgr-rapidapp.pl script converts existing code bases (although these 
Changes:306:      internal -- the existing public config/plugin APIs remain the same)
Changes:307:    - Lots of fixes and improvements related to apps mounted at sub-urls (#114)
Changes:308:    - Added experimental "metakeys" feature (rdbic.pl)
Changes:309:    - Fixed broken Load MHTML feature (HtmlEditor)
Changes:312:    - Require Moo 1.007000 (although classes remain mostly Moose, but this
Changes:314:    - Misc forward-compat changes for a future conversion to Moo (see #75)
Changes:315:    - Lots of misc bug fixes
Changes:317:0.99700 2015-01-20
Changes:318:    - Unfactor, consolidate & cleanup lots legacy code (#106)
Changes:320:    - Removed lots of CPAN deps
Changes:321:    - Got all package files properly separated into their own pm files (#110)
Changes:322:    - All remaining CPAN deps w/ version numbers now listed in dist.ini (#107)
Changes:323:    - Setup separate Runtime/Test/Develop Prereqs sections (dist.ini)
Changes:324:    - Require Catalyst::Controller::SimpleCAS 0.992 (fixes broken Insert Image)
Changes:326:0.99664 2015-01-12
Changes:327:    - Fix scrollbar issue in Organize Navtree (#104)
Changes:328:    - Fix sort issue with single col rels sharing the real column name (#105)
Changes:329:    - Handle special \'true' and \'false' ScalarRef vals in JSON MixedEncoder
Changes:330:    - Require Catalyst 5.90080 (dist.ini)
Changes:331:    - Properly handle the case of the Plack env var SCRIPT_NAME='/' (instead of '')
Changes:333:0.99663 2015-01-01
Changes:334:    - Auto retry on DBI LongReadLen exception (DbicLink)
Changes:335:    - Improvements to Ajax error/warning dialogs
Changes:336:    - AppCombo: improvements to "Enter" key event behavior
Changes:337:    - DbicTemplate: fixes/improvements to 'tabify_data' mode
Changes:338:    - Misc internal bug fixes
Changes:340:0.99662 2014-12-30
Changes:341:    - Fix possible Bareword exception in app cfgs generated via ForRapidDbic
Changes:343:    - Fix bug in rel combos pre-initialized with a default value
Changes:345:0.99661 2014-12-22
Changes:346:    - Fix store exception handler regression from previoud release
Changes:348:0.99660 2014-12-21
Changes:349:    - Fix caching bug in perl 5.18+ (#100)
Changes:350:    - Fixes for NavCore w/o AuthCore use case (in Organize Tree)
Changes:352:0.99652 2014-12-18
Changes:353:    - Removed hard requirement for 'quote_names' to be enabled on DBIC models (#99)
Changes:355:0.99651 2014-12-16
Changes:356:    - Added more flexible 'grid_class' param (RapidDbic)
Changes:357:    - Support for reading model config from Model::NAME cnf key (RapidDbic)
Changes:358:    - Misc POD updates
Changes:360:0.99650 2014-12-09
Changes:361:    - Added Plack::App::RapidApp::rDbic
Changes:362:    - Misc Plack-specific fixes/improvements
Changes:363:    - Requires Catalyst::Controller::AutoAssets 0.30
Changes:365:0.99602 2014-12-07
Changes:366:    - Fixed bug in app bootstrap with dsns w/o a user/pass
Changes:367:    - Switched to Alien::Web::ExtJS::V3 for ExtJS sources
Changes:368:    - AppPropertyGrid now has a 'Save' tool icon/control
Changes:369:    - Fix bug in quick_search on integer columns
Changes:370:    - New TableSpec column param 'search_operator_strf' - (#97)
Changes:371:    - Add experimental --run-webapi option to rdbic.pl
Changes:372:    - Really handle 'where' attrs - tmp conditional logic fallback (#95)
Changes:374:0.99601 2014-12-03
Changes:375:    - rdbic.pl - new db utility script/server for instant CRUD (#96)
Changes:376:    - SQLite schemas now show a different top icon in navtree (RapidDbic)
Changes:377:    - Relationships with 'where' attrs handled again (#95)
Changes:378:    - Improvements to error messages in rapidapp.pl
Changes:380:0.99600 2014-11-26
Changes:381:    - Column data type 'ipaddr' set to 'unsearchable' (#81)
Changes:382:    - The 'email' column profile now validates for emails in editor
Changes:383:    - Cleanup crud POST params - remove 'create_columns' + rename
Changes:385:    - quick_search_mode can now be set via url qry string (#94)
Changes:386:    - "Doesn't contain" now implies not NULL
Changes:387:    - Fixed "null or empty" conditions (#89) (#88)
Changes:388:    - Multiple fixes improvements to DbicLink2 rest_query/base_params, etc
Changes:389:    - Added /rapidapp/module/printview/[path] (DirectCmp)
Changes:390:    - Dedicated Add Form (#85)
Changes:391:    - 'bigtext' column profile wraps long lines by default (incl grid cells)
Changes:392:    - Fix bug in AutoPanel tab right-click reload
Changes:393:    - Fixes/improvements to DataStorePlus
Changes:394:    - Fixes to column profile logic for rel columns (#77)
Changes:395:    - More improvements and fixes to generated combos (misc + #83)
Changes:396:    - Lots of misc fixes
Changes:398:0.99501 2014-11-1
Changes:399:    - Combos behave properly on property grid page
Changes:400:    - Random 'favicon.ico' requests handled (#57)
Changes:401:    - Bad module paths now render 404 page instead of exception (#73)
Changes:402:    - Name mismatch between source/table name working again (#72)
Changes:403:    - Fix regression related to #68 changes for _resolve_condition calls
Changes:404:    - Purge most code of buggy $1 calls (really fixes #70)
Changes:405:    - Unit test for _binary_op_fuser() 
Changes:407:0.99500 2014-10-31 🎃
Changes:408:    - Apps now work properly when started via 'plackup' (#70)
Changes:409:    - Major improvements to default 'combo' (fk/single rel) editors:
Changes:412:    - Added special 'soft_rel' column profile
Changes:413:    - Lots of fixes/improvements to AppCombo UI controls in general
Changes:414:    - Fix bug in RapidDbic-generated urls when ->table('db.table') (#71)
Changes:415:    - Fix bug in text filtering single rels w/ virtual display_column (#69)
Changes:416:    - Fix deprecated usage of DBIC _resolve_condition method (#68)
Changes:417:    - Fix _binary_op_fuser func to work with new SQLA 1.80 (thanks ribasushi)
Changes:418:    - Better looking DB error dialogs
Changes:419:    - Now requires Catalyst 5.90075
Changes:420:    - Now requires DBIx::Class 0.082810
Changes:421:    - Now requires SQL::Abstract 1.81
Changes:422:    - Now requires SQL::Translator 0.11020
Changes:423:    - Now requires Plack 1.0033
Changes:424:    - Now requires DBIx::Class::Schema::Diff 1.02
Changes:425:    - Lots of misc/minor bug fixes
Changes:427:0.99402 2014-10-06
Changes:428:    - Added a real "set password" dialog for setting user passwords in CoreSchema
Changes:429:    - Improvements to CoreSchema interfaces (icons, headers, etc)
Changes:430:    - Fixed bug in REST/nav logic with '0' value keys (#67)
Changes:432:0.99401 2014-09-29
Changes:433:    - Fixed bug in DbicAppCombo2 (#66)
Changes:435:0.99400 2014-09-28
Changes:436:    - DbicAppCombo2: Added fail-safe max rows (temp)
Changes:437:    - Fix undef exception in 'duimp_these' (debug mode)
Changes:438:    - formSubmitHandler: special handling for '_append_action_url'
Changes:439:    - ClickActionField and cas-upload-field improvements
Changes:440:    - TableSpec column profile 'cas_link' _ releated new editors/renderers
Changes:441:    - AppDV css improvements for edit icons
Changes:442:    - Officially require at least perl 5.10
Changes:443:    - Require new Email::MIME::CreateHTML 1.040 - install on 5.18 works
Changes:444:    - Started 'Rapi' namespace (future)
Changes:445:    - Remove misc deprecated packages
Changes:446:    - Require Catalyst 5.90071
Changes:447:    - pod coverage/spelling/kwalitee tests
Changes:448:    - Bumped dep ver for SQLT to 0.11018
Changes:449:    - Unfactored SimpleCAS into external cpan pkg (#62)
Changes:451:    - Travis cfg improvements, Coveralls, 5.20 job
Changes:452:    - Lots of misc/minor bug fixes
Changes:454:0.99333 2014-07-17
Changes:455:    - Fixed insert image (broken in v0.99310) - Github Issue #54
Changes:457:0.99332 2014-07-16
Changes:458:    - Properly support virtual column conditions (i.e. MultiFilters) under
Changes:461:0.99331 2014-07-08
Changes:462:    - Editor for bool columns now correctly handles nullability (Github Issue #61)
Changes:463:    - Proper support for PostgeSQL 'boolean' and 'double float' column types,
Changes:464:      including Quick Search pre-validation (Github Issue #60)
Changes:465:    - Tweak regex for numeric Quick Search pre-validation (Github PR #58)
Changes:467:0.99330 2014-07-04
Changes:468:    - Misc PostgreSQL-specific fixes and improvements:
Changes:473:       * Pre-validation for numeric cols in quick search (Github Issue #52)
Changes:474:       * Pre-validation for enum cols in quick search (Github Issue #56)
Changes:476:0.99321 2014-06-22
Changes:477:    - Bugfix for edge-case/random scenario in RapidDbic generation of 'auto_editor_type'
Changes:480:0.99320 2014-06-21
Changes:481:    - Grid export supports CSV, TSV and JSON as well as Excel
Changes:482:    - POD tweaks
Changes:484:0.99312 2014-06-17
Changes:485:    - Updated documentation
Changes:486:    - Improvements to default login redirect handling in AuthCore
Changes:487:    - Requires Catalyst::Controller::AutoAssets 0.29 
Changes:490:0.99311 2014-06-16
Changes:491:    - Updated documentation
Changes:492:    - Added 'load_modules' cfg option
Changes:494:0.99310 2014-06-06
Changes:495:    - All relationship columns now link to REST paths
Changes:496:    - Virtualized and complex relationship columns now render with links
Changes:497:    - Misc updates to POD and Manual
Changes:498:    - Fixed default favicon
Changes:499:    - Date renderers handle 0000-00-00 better
Changes:500:    - Template controller aliases '/tpl' and '/tple' can be changed
Changes:501:    - Added support for rendering columns containing binary image data
Changes:502:    - Binary and blob columns now render in hex by default
Changes:503:    - Added very simple hex editor for binary/blob columns (must be enabled)
Changes:504:    - DBIC virtual sources (DBIx::Class::ResultSource::View) fully supported
Changes:505:    - Default icons for virtual sources have different color
Changes:506:    - Browser text select/highlight allowed in row page/property grid (copy/paste)
Changes:507:    - RapidDbic helper now creates configs in the model instead of plugin config
Changes:508:    - Misc other improvements to helper scripts
Changes:509:    - Misc other bugfixes and improvements
Changes:510:    - Removed dependency to CSS::Inliner
Changes:511:    - Requires JavaScript::ExtJS::V3 3.4.11 (minor warning fix)
Changes:512:    - Requires Catalyst::Controller::AutoAssets 0.28 
Changes:515:0.99302 2014-05-27
Changes:516:    - Fixed typo in dist.ini preventing proper script install
Changes:518:0.99301 2014-05-26
Changes:519:    - Added back $VERSION accidently removed from 2 classes which prevented proper
Changes:522:0.99300 2014-05-26
Changes:523:    - rapidapp.pl script now available using 'RapidApp::Helper' and friends
Changes:524:    - RapidDbic config can now be read from model config (from config key 
Changes:526:    - Lots of improvements to CoreSchema + plugins
Changes:527:    - CoreSchemaAdmin plugin now only sets up grids for CoreSchema sources actually 
Changes:529:    - Improvements to RapidApp::View - now supports 'panel_cfg' option
Changes:530:    - Lots of improvements to AuthCore - more restrictive defaults + generalized 
Changes:532:    - Fixed delete_expired_sessions AuthCore bug
Changes:533:    - Added 'DirectCmp' controller allowing direct module dispatch via special
Changes:536:    - Public core/template dispatch in its own controller
Changes:537:    - New 'module_root_namespace' option allows mounting the root module in
Changes:539:    - Fixed issue in tree scrolling in TabGui (although not yet perfect)
Changes:540:    - Many improvements/customizations to dispatch/exception handling
Changes:541:    - Improvements to AutoPanel JS - now used for the main/first ajax loading
Changes:542:    - Added new TabGui cnf options 'nav_title_iconcls' & 'navtree_init_width'
Changes:543:    - Module loading and app start time now logged/displayed
Changes:544:    - Misc performance improvements (faster startup)
Changes:545:    - Removed NYTProf profiling classes from core
Changes:546:    - Requires new module versions, fixing a number of bugs:
Changes:550:    - Lots of misc bug fixes
Changes:551:    - Logging now utilizes/expects the upcoming Catalyst::Log 'autoflush'
Changes:555:    - Removed the 'disable_tabgui' option added in prev version (supplanted
Changes:558:0.99203 2014-05-04
Changes:559:    - Added new 'disable_tabgui' config/session option
Changes:561:0.99202 2014-05-02
Changes:562:    - Added support for Travis CI
Changes:563:    - Misc bug fixes
Changes:564:    - Improvements to testing classes + expanded unit tests
Changes:565:    - Misc kwalitee fixes + kwalitee unit tests
Changes:566:    - Fixed POD syntax errors
Changes:568:0.99201 2014-04-25
Changes:569:    - Fixed build/install error from bad dependency (TestRA:: namespace)
Changes:570:    - Expanded unit tests
Changes:572:0.99200 2014-04-23
Changes:573:    - Added preliminary working 'testapp' unit tests under t/
Changes:574:    - Turned off last remaining non-debug mode console messages
Changes:575:    - Now requires Catalyst::Controller::AutoAssets v 0.25
Changes:576:    - Fixed/cleaned up misc asset controller code
Changes:577:    - Fixed bug that prevented apps with no Catalyst home dir from starting
Changes:578:    - Stopped using smartmatch (~~) operators in various places
Changes:579:    - Refactored CoreSchema model class internals (fixing several bugs)
Changes:580:    - Fixed misc JS race-condition bugs in AppPropertyGrid
Changes:581:    - Now uses DBIx::Class::Schema::Diff to check for changes in the
Changes:584:0.99104 2014-04-15
Changes:585:    - Enabled 'strict' in TableSpec class
Changes:587:0.99103 2014-04-15
Changes:588:    - Fixed scrolling issue with hash label links in tabs (GitHub Issue #46)
Changes:589:    - Fixed bug clicking <a> links with no href at all
Changes:590:    - Fixed utf8 bug when viewing templates (Template::Controller)
Changes:592:0.99102 2014-03-15
Changes:593:    - Removed all perl switch/case blocks (Github Issue #45)
Changes:594:    - Removed a bunch more deprecated classes
Changes:596:0.99101 2014-03-10
Changes:597:    - Removed rouge/leftover classes referencing previously removed classes
Changes:598:    - Fixed minor issue with LinkClickCatcher
Changes:600:0.99100 2014-03-10
Changes:601:    - Requires Catalyst::Runtime 5.90061 with bugfix
Changes:602:    - Expanded Template Access class API (template_css_class + 
Changes:604:    - Fixed bug in relative links within tabs (Github Issue #43)
Changes:605:    - Major refactoring of dispatch and exception internals (Github Issue #41)
Changes:606:    - Improvements and fixes to Unicode handling
Changes:607:    - Removed GD as a dependency (Image::Resize) and refactored to use only if
Changes:609:    - AutoPanel now supports auto refresh (autopanel_refresh_interval)
Changes:610:    - Template::Controller dispatch/redirect fixes
Changes:611:    - More fixes to TableSpec_cnf internals
Changes:612:    - Refactored 'ra-scoped-reset' CSS behavior
Changes:613:    - Misc other bugfixes
Changes:614:    - Removed lots of old deprecated classes
Changes:616:0.99031 2014-02-16
Changes:617:    - Added JS render func Ext.ux.RapidApp.withFilenameIcon
Changes:618:    - Misc fixes/improvements to RapidApp::AppExplorer
Changes:619:    - Added Catalyst::Devel build/install dep (temp)
Changes:620:    - All Carp funcs exported by: use RapidApp::Include qw(sugar perlutil);
Changes:621:    - Misc TableSpec_cnf fixes/improvements
Changes:623:0.99030 2014-02-08
Changes:624:    - Relationships with complex conditions now supported (Github Issue #40)
Changes:625:    - Refactored internal TableSpec_cnf format somewhat (no API changes)
Changes:626:    - Started Changes file (this file). See commit history for change log prior
LICENSE:13:--- The GNU General Public License, Version 1, February 1989 ---
LICENSE:25: 51 Franklin St, Suite 500, Boston, MA  02110-1335  USA
LICENSE:35:software--to make sure the software is free for all its users.  The
LICENSE:126:    a) accompany it with the complete corresponding machine-readable
LICENSE:132:    for the cost of distribution) a complete machine-readable copy of the
LICENSE:240:    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA
LICENSE:256:c'; they could even be mouse-clicks or menu items--whatever suits your
LICENSE:273:--- The Artistic License 1.0 ---
LICENSE:288:the package the right to use and distribute the Package in a more-or-less
LICENSE:293:  - "Package" refers to the collection of files distributed by the Copyright
LICENSE:296:  - "Standard Version" refers to such a Package if it has not been modified,
LICENSE:299:  - "Copyright Holder" is whoever is named in the copyright or copyrights for
LICENSE:301:  - "You" is you, if you're thinking about copying or distributing this Package.
LICENSE:302:  - "Reasonable copying fee" is whatever you can justify on the basis of media
LICENSE:306:  - "Freely Available" means that no fee is charged for the item itself, though
LICENSE:331:  c) rename any non-standard executables so the names do not conflict with
LICENSE:333:     manual page for each non-standard executable that clearly documents how it
LICENSE:345:  b) accompany the distribution with the machine-readable source of the Package
LICENSE:348:  c) accompany any non-standard executables with their corresponding Standard
LICENSE:349:     Version executables, giving the non-standard executables non-standard
README.pod:5:RapidApp - Turnkey ajaxy webapps
README.pod:12:  rapidapp.pl --helpers RapidDbic,Templates,TabGui,AuthCore,NavCore MyApp \
README.pod:13:    -- --dsn dbi:mysql:database=somedb,root,''
README.pod:24:RapidApp is an extension to L<Catalyst> - the Perl MVC framework. It provides a feature-rich
README.pod:25:extended development stack, as well as easy access to common out-of-the-box application paradigms, 
README.pod:26:such as powerful CRUD-based front-ends for L<DBIx::Class> models, user access and authorization, 
README.pod:28:with front-side CMS features, declarative configuration layers, and more...
README.pod:31:and snap-in components to existing applications, as well as for rapid prototyping.
README.pod:38:ever since. It has been used very successfully for multiple medium to large-scale client 
README.pod:42:We started open-sourcing RapidApp in 2013, and this work is ongoing...
README.pod:44:RapidApp is built on top of a number of powerful open-source tools and technologies including:
README.pod:70:Documentation is still a work-in-progress. Much of it has been done, but much of it still
devel/convert_to_moo.pl:3:# -- GitHub Issue #75 "Convert from Moose to Moo"
devel/convert_to_moo.pl:6:# Preliminary/experimental script performs in-place conversions
devel/convert_to_moo.pl:17:my $start_dir = dir( $ARGV[0] || "$FindBin::Bin/../lib/RapidApp/" )->resolve;
devel/convert_to_moo.pl:26:my $reg = Type::Registry->for_me;
devel/convert_to_moo.pl:27:$reg->add_types("Types::Standard");
devel/convert_to_moo.pl:31:$start_dir->recurse(
devel/convert_to_moo.pl:35:    if (-f $File && $File =~ /.pm$/) {
devel/convert_to_moo.pl:36:      my @lines = $File->slurp(iomode => '<:encoding(UTF-8)');
devel/convert_to_moo.pl:51:          $line =~ /^__PACKAGE__\-\>meta\-\>make_immutable/ ||
devel/convert_to_moo.pl:100:            $new = $Type->display_name;
devel/convert_to_moo.pl:140:      print join('','  ',$File->relative($start_dir)->stringify);
devel/convert_to_moo.pl:143:        $File->spew( join('',@nlines) );
devel/print_dev_exports.pl:3:# -----------------------------------------------------------------------------
devel/print_dev_exports.pl:12:# -----------------------------------------------------------------------------
devel/print_dev_exports.pl:19:my $repo_dir = file($0)->parent->parent->absolute; 
devel/print_dev_exports.pl:22:  -f $repo_dir->subdir('script')->file('rdbic.pl')
devel/print_dev_exports.pl:26:  PERLLIB => &_prepend_colon_list( $ENV{PERLLIB}, $repo_dir->subdir('lib')->stringify ),
devel/print_dev_exports.pl:27:  PATH    => &_prepend_colon_list( $ENV{PATH},    $repo_dir->subdir('script')->stringify ),
devel/print_dev_exports.pl:28:  RAPIDAPP_SHARE_DIR => $repo_dir->subdir('share')
devel/print_dev_exports.pl:32:print join("\n", map { "export $_=$exports->{$_}" } keys %$exports);
devel/source_dev_shell_vars.bash:1:# ------------------------------------------------------------------
devel/source_dev_shell_vars.bash:13:# ------------------------------------------------------------------
devel/source_dev_shell_vars.bash:16:  echo "Oops! This script needs to be 'sourced' to work -- like this:";
devel/source_dev_shell_vars.bash:17:  echo -e "\n  source $0\n";
devel/source_dev_shell_vars.bash:25:  if [ -e "$dir/$prl" ]; then
devel/source_dev_shell_vars.bash:29:    if [ $exit -ne 0 ]; then
devel/source_dev_shell_vars.bash:34:      if [ $exit -ne 0 ]; then
devel/source_dev_shell_vars.bash:37:        echo " -- Exported RapidApp env variables to your shell: --";
devel/source_dev_shell_vars.bash:38:        echo -e "\n$export_cmds\n";
dist.ini:23:contributor = Nicholas Foos <nfoos@rm-f.me>
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:12:Catalyst::Helper::Model::DBIC::Schema::ForRapidDbic - Helper for DBIC Schema Models
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:16:  rapidapp.pl --helpers RapidDbic My::App -- --from-sqlite /path/to/existing/sqlt.db
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:47:# This is ugly/temporary -- mechanism to pull in additional configs from the
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:48:# RapidDbic helper trait. Currently this is only exposed in rdbic.pl (--crud-profile)
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:51:  $self->{_ra_rapiddbic_opts} ||= (
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:58:  my $prof = ($self->{_crud_profile} ||= (
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:59:    $self->_ra_rapiddbic_opts->{crud_profile} || 'read-only'
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:62:  my @valid = qw(read-only editable edit-instant edit-gridadd ed-inst-gridadd);
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:66:    "Unknown crud_profile '$prof' -- must be one of (",
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:76:    my $opts = $self->_ra_rapiddbic_opts;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:77:    my $grid_class = $opts->{grid_class} || 'Catalyst::Plugin::RapidApp::RapidDbic::TableBase';
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:80:             include_colspec     => ['*'], #<-- default already ['*']
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:85:    my $maybe_total_counts = $opts->{total_counts_off}
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:92:    if ($self->crud_profile eq 'read-only' ) {
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:94:             include_colspec      => ['*'], #<-- default already ['*']
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:100:    elsif ($self->crud_profile eq 'editable') {
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:108:    elsif ($self->crud_profile eq 'edit-gridadd') {
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:116:    elsif ($self->crud_profile eq 'edit-instant') {
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:124:    elsif ($self->crud_profile eq 'ed-inst-gridadd') {
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:158:    my $helper = $self->helper;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:160:    $helper->{grid_params_section} = $self->_get_grid_params_section;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:162:    my @sources = $self->_get_source_list;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:163:    $helper->{source_names} = \@sources;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:166:      my $nfo = $self->{connect_info};
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:168:      if($nfo && $nfo->{dsn} && $nfo->{dsn} =~ /\:sqlite\:/i) {
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:169:        my ($dbi,$drv,$db) = split(/\:/,$nfo->{dsn},3);
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:171:        my $db_file = file($db)->resolve->absolute;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:172:        my $base_dir = dir($helper->{base})->resolve->absolute;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:174:        if($base_dir->contains($db_file)) {
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:175:          my $rel = $db_file->relative($base_dir);
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:177:          $helper->{pre_config_perl_code} = join('',
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:181:              $helper->{app},q{'),'},$rel->stringify,q{');},"\n",
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:185:          $helper->{post_config_perl_code} = join("\n",
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:186:            q!## ------!,
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:187:            q!## Uncomment these lines to have the schema auto-deployed during!,
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:191:            q!#  return if (-f $db_path);!,
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:192:            q!#  $self->schema_class->connect($self->connect_info->{dsn})->deploy;!,
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:194:            q!## ------!,''
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:197:          $helper->{connect_info}{dsn} = join('','"',$dbi,':',$drv,':','$db_path','"');
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:203:    $helper->render_file('compclass', $helper->{file} );
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:205:    my $CfgW = RapidApp::Util::RapidDbic::CfgWriter->new({ pm_file => "$helper->{file}" });
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:206:    $CfgW->save_to( "$helper->{file}" );
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:214:  my $class = $self->{schema_class} or die "No schema class!";
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:217:  # Connect to a one-off SQLite memory database just so we can get the sources
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:218:  my $schema = $class->connect('dbi:SQLite::memory:');
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:220:  return sort ($schema->sources);
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:225:#  -- See Catalyst::Helper::Model::DBIC::Schema::_gen_static_schema to understand why
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:231:    $self->_ra_rapiddbic_opts->{$_} 
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:232:      ? ( $_ => $self->_ra_rapiddbic_opts->{$_} )
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:236:  my $connect_info = $self->connect_info;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:237:  my $loader_args  = $self->loader_args;
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:239:  # ---
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:243:  $loader_args->{moniker_map} = sub { 
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:247:  # ---
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:261:  $self->$orig(@args)
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:279:__PACKAGE__->loader_options(
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:280:    [%- FOREACH key = loader_args.keys %]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:282:    [%- END -%]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:288:[% schema_class %] - L<DBIx::Class::Schema::Loader> class
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:300:[% generator %] - [% generator_version %]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:326:__PACKAGE__->config(
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:330:       [%- FOREACH key = connect_info.keys %]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:332:       [%- END -%]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:339:       # use only the relationship column of a foreign-key and hide the 
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:345:[%- grid_params_section -%]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:347:       # TableSpecs define extra RapidApp-specific metadata for each source
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:350:          [%- FOREACH name IN source_names %]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:353:          [%- END -%]
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:364:[% class %] - Catalyst/RapidApp DBIC Schema Model
lib/Catalyst/Helper/Model/DBIC/Schema/ForRapidDbic.pm:376:[% generator %] - [% generator_version %]
lib/Catalyst/Model/RapidApp/CoreSchema.pm:23:  unless ( DBIx::Class::Optional::Dependencies->req_ok_for('deploy') ) {
lib/Catalyst/Model/RapidApp/CoreSchema.pm:26:     . ( values %{ DBIx::Class::Optional::Dependencies->req_errorlist_for('deploy') } )[0] 
lib/Catalyst/Model/RapidApp/CoreSchema.pm:31:# --------------------
lib/Catalyst/Model/RapidApp/CoreSchema.pm:34:#  __PACKAGE__->config(
lib/Catalyst/Model/RapidApp/CoreSchema.pm:41:#  __PACKAGE__->config(
lib/Catalyst/Model/RapidApp/CoreSchema.pm:50:# --------------------
lib/Catalyst/Model/RapidApp/CoreSchema.pm:59:  my $cust_cnf = try{$app_class->config->{'Model::RapidApp::CoreSchema'}} || {};
lib/Catalyst/Model/RapidApp/CoreSchema.pm:61:  $cust_cnf->{sqlite_file} ||= 'rapidapp_coreschema.db';
lib/Catalyst/Model/RapidApp/CoreSchema.pm:62:  my $db_file = file($cust_cnf->{sqlite_file});
lib/Catalyst/Model/RapidApp/CoreSchema.pm:63:  $db_file = file(dir($home),$db_file) if ($db_file->is_relative);
lib/Catalyst/Model/RapidApp/CoreSchema.pm:65:  $class->config(
lib/Catalyst/Model/RapidApp/CoreSchema.pm:75:    # Allow user-defined config overrides:
lib/Catalyst/Model/RapidApp/CoreSchema.pm:82:  $self->_auto_deploy_schema( $self->schema );
lib/Catalyst/Model/RapidApp/CoreSchema.pm:89:  return $self->config->{connect_info}{dsn};
lib/Catalyst/Model/RapidApp/CoreSchema.pm:94:  return $self->config->{connect_info}{user};
lib/Catalyst/Model/RapidApp/CoreSchema.pm:99:  return $self->config->{connect_info}{password};
lib/Catalyst/Model/RapidApp/CoreSchema.pm:107:    dir(RapidApp->share_dir)->subdir('coreschema'),
lib/Catalyst/Model/RapidApp/CoreSchema.pm:109:  )->resolve;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:117:	my $deploy_statements = $schema->deployment_statements;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:118:	my $md5 = $self->get_clean_md5($deploy_statements);
lib/Catalyst/Model/RapidApp/CoreSchema.pm:119:	my $Rs = $schema->resultset('DeployInfo');
lib/Catalyst/Model/RapidApp/CoreSchema.pm:120:	my $Source = $Rs->result_source;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:121:	my $table = $schema->class($Source->source_name)->table;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:122:	$table = (split(/\./,$table,2))[1] || $table; #<-- get 'table' for both 'db.table' and 'table' format
lib/Catalyst/Model/RapidApp/CoreSchema.pm:126:		$deployRow = $Rs->find($md5);
lib/Catalyst/Model/RapidApp/CoreSchema.pm:130:		$schema->deploy;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:132:		$Rs->create({
lib/Catalyst/Model/RapidApp/CoreSchema.pm:134:      schema_class => $self->schema_class,
lib/Catalyst/Model/RapidApp/CoreSchema.pm:135:      schema_version  => (eval '$' . $self->schema_class . '::VERSION'),
lib/Catalyst/Model/RapidApp/CoreSchema.pm:138:			deployed_ts			=> DateTime->now( time_zone => 'local' ),
lib/Catalyst/Model/RapidApp/CoreSchema.pm:141:    $self->_insert_default_rows($schema);
lib/Catalyst/Model/RapidApp/CoreSchema.pm:147:	my $count = $Rs->count;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:148:	my $dsn = $self->dsn;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:156:	my $exist_md5 = $Rs->first->md5 or die "Database error; found deploy_info row in table '$table' " .
lib/Catalyst/Model/RapidApp/CoreSchema.pm:168:  # be caused by specific loaded components, and other code-level changes that
lib/Catalyst/Model/RapidApp/CoreSchema.pm:171:  my $Differ = DBIx::Class::Schema::Diff->new(
lib/Catalyst/Model/RapidApp/CoreSchema.pm:172:    old_schema => $self->_load_connect_schema_ref,
lib/Catalyst/Model/RapidApp/CoreSchema.pm:173:    new_schema => $self->_load_connect_schema
lib/Catalyst/Model/RapidApp/CoreSchema.pm:176:  unless( $Differ->diff ) {
lib/Catalyst/Model/RapidApp/CoreSchema.pm:185:    # because it hasn't happened yet -- we're still on Version 1 of the
lib/Catalyst/Model/RapidApp/CoreSchema.pm:190:    # as user-supplied databases to be used as the CoreSchema. Obviously, 
lib/Catalyst/Model/RapidApp/CoreSchema.pm:200:    # fine-grained filtering (and, in fact, this planned RapidApp feature is
lib/Catalyst/Model/RapidApp/CoreSchema.pm:222:   Dumper( $Differ->diff ),'','',''
lib/Catalyst/Model/RapidApp/CoreSchema.pm:231:    ! /^\-\-/ && 
lib/Catalyst/Model/RapidApp/CoreSchema.pm:238:	my $clean = $self->clean_deploy_statements($deploy_statements); 
lib/Catalyst/Model/RapidApp/CoreSchema.pm:246:  $schema->resultset('NavtreeNode')->create({
lib/Catalyst/Model/RapidApp/CoreSchema.pm:253:  $schema->resultset('User')->create({
lib/Catalyst/Model/RapidApp/CoreSchema.pm:255:    set_pw => $self->init_admin_password
lib/Catalyst/Model/RapidApp/CoreSchema.pm:258:  $schema->resultset('Role')->create({
lib/Catalyst/Model/RapidApp/CoreSchema.pm:263:  $schema->resultset('UserToRole')->create({
lib/Catalyst/Model/RapidApp/CoreSchema.pm:275:  my $dsn = shift || $self->dsn;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:278:  $user = $self->connect_user unless defined $user;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:279:  $password = $self->connect_password unless defined $password;
lib/Catalyst/Model/RapidApp/CoreSchema.pm:291:  $self->_load_connect_schema('RapidApp::CoreSchemaLoadRef',$self->ref_dsn,'','');
lib/Catalyst/Model/RapidApp/CoreSchema.pm:301:Catalyst::Model::RapidApp::CoreSchema - DBIC model for the CoreSchema database
lib/Catalyst/Plugin/RapidApp.pm:9:# Built-in plugins required for all RapidApp Applications:
lib/Catalyst/Plugin/RapidApp.pm:24:Catalyst::Plugin::RapidApp - main plugin class for RapidApp
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:36:  my $plugins = [ grep { ! $c->registered_plugins($_) } @req_plugins ];
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:37:  $c->setup_plugins($plugins) if (scalar(@$plugins) > 0);
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:44:  $c->_authcore_load_plugins;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:46:  $c->config->{'Plugin::RapidApp::AuthCore'} ||= {};
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:47:  my $config = $c->config->{'Plugin::RapidApp::AuthCore'};
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:50:  #  - automatically includes administrator - Used by other modules, such as
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:52:  $config->{role_checker} ||= sub {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:53:    my $ctx = shift; #<-- expects CONTEXT object
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:54:    return $ctx->check_any_user_role('administrator',@_);
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:58:  if($config->{init_admin_password}) {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:59:    $c->config->{'Model::RapidApp::CoreSchema'} ||= {};
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:60:    my $cs_cnf = $c->config->{'Model::RapidApp::CoreSchema'};
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:62:      if ($cs_cnf->{init_admin_password});
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:63:    $cs_cnf->{init_admin_password} = $config->{init_admin_password};
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:67:  $config->{expires} ||= 60*60;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:69:  $config->{credential} ||= {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:75:  $config->{store} ||= {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:83:  if($config->{passphrase_class}) {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:84:    Module::Runtime::require_module($config->{passphrase_class});
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:86:    $rclass->authen_passphrase_class($config->{passphrase_class});
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:87:    if(exists $config->{passphrase_params}) {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:89:        unless (ref $config->{passphrase_params} eq 'HASH');
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:90:      $rclass->authen_passphrase_params($config->{passphrase_params});
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:97:  if($config->{no_validate_passwords} && !$c->config->{'Plugin::Authentication'}) {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:98:    $c->log->warn(join("\n",'',
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:103:    $config->{credential}{password_type} = 'none';
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:106:  $c->log->warn(
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:108:  ) if ($c->config->{'Plugin::Authentication'});
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:111:  $c->config->{'Plugin::Authentication'} ||= {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:115:        credential  => $config->{credential},
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:116:        store       => $config->{store}
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:121:  $c->log->warn(
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:123:  ) if ($c->config->{'Plugin::Session'});
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:125:  $c->config->{'Plugin::Session'} ||= {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:127:    expires     => $config->{expires}
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:135:  CatalystX::InjectComponent->inject(
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:145:  $class->rapidApp->rootModule->_around_Controller(sub {
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:148:    my $c = $self->c;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:149:    my $args = $c->req->arguments;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:152:    $c->controller('Auth')->auth_verify($c) if $class->is_auth_required_path($self,@$args);
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:154:    return $self->$orig(@_);
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:157:  $class->_initialize_linked_user_model;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:165:  #  OR - user can wrap this method to override a given path/request
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:170:  return 1 if ($c->module_root_namespace ne '');
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:173:  return 1 if ($path[0] && $rootModule->has_subarg($path[0]));
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:175:  # Special handling for '/' - require auth unless a root template has
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:179:    ! $c->config->{'Model::RapidApp'}->{root_template}
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:182:  # Temp - no auth on other paths (template alias paths)
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:186:# Updated version of original method from Catalyst::Plugin::Session::Store::DBIC -
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:190:  $c->session_store_model->search([
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:191:    $c->session_store_dbic_expires_field => { '<', time() },
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:192:    $c->session_store_dbic_expires_field => undef,
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:193:  ])->delete;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:199:  my $model = $c->config->{'Plugin::RapidApp::AuthCore'}{linked_user_model} or return undef;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:200:  my $M = $c->model($model) or die "AuthCore: Failed to load linked_user_model '$model'";
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:202:  my $lSource = $M->result_source;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:203:  my $lClass  = $lSource->result_class;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:205:  my $cSource = $c->model('RapidApp::CoreSchema::User')->result_source;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:206:  my $cClass  = $cSource->result_class;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:211:    unless ($lSource->has_column($key_col));
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:214:    $_ ne 'id' && $cClass->has_column($_) 
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:215:  } $lClass->columns;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:217:  $lClass->load_components('+RapidApp::DBIC::Component::LinkedResult');
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:218:  $lSource->{_linked_source} = $cSource;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:219:  $lSource->{_linked_key_column} = $key_col;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:220:  $lSource->{_linked_shared_columns} = [@shared_cols];
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:222:  $cClass->load_components('+RapidApp::DBIC::Component::LinkedResult');
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:223:  $cSource->{_linked_source} = $lSource;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:224:  $cSource->{_linked_key_column} = $key_col;
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:225:  $cSource->{_linked_shared_columns} = [@shared_cols];
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:236:Catalyst::Plugin::RapidApp::AuthCore - instant authentication, authorization and sessions
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:249:It loads and auto-configures a bundle of standard Catalyst plugins:
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:260:The common DBIC-based L<Catalyst::Model::RapidApp::CoreSchema> database is used for 
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:302:The login form is also internally rendered from other URL paths which are password-protected (which
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:303:by default is all Module paths when AuthCore is loaded). The built-in login form template automatically
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:341:Optional CodeRef used to check user roles. By default, this is just a pass-through to the standard
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:350:role (which will both hide the menu point and block module paths to non-administrator users).
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:352:Note that the C<role_checker> is only called by AuthCore-aware code (Modules or custom user-code), 
lib/Catalyst/Plugin/RapidApp/AuthCore.pm:371:(which will break all pre-existing passwords already in the database) to be able to get back
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:20:  # NEW: allow this action to be dual-use to display the login page
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:22:  return $self->render_login_page($c) if ($c->req->method eq 'GET');
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:27:  my $haveSessionForUser = ($c->session_is_valid && $c->session->{RapidApp_username}) ? 1 : 0;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:29:  # If a username has been posted, we force a re-login, even if we already have a session:
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:30:  $haveSessionForUser = 0 if ($c->req->params->{'username'});
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:32:  $self->handle_fresh_login($c) unless ($haveSessionForUser);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:34:  return $self->do_redirect($c);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:44:  if(my $referer = $c->req->referer) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:45:    my $uri = $c->req->uri;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:46:    my $ruri = URI->new( $referer );
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:48:    if($uri->host_port eq $ruri->host_port) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:49:      # encode/pass along the special query-string '_fragment'
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:50:      if(my $fragment = $c->req->params->{_fragment}) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:51:        $ruri->query_form( $ruri->query_form, _fragment => $fragment );
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:53:      $to = $ruri->path_query;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:65:  my $url = join($c->mount_url,'/auth/login');
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:67:  if(my $to = $self->_parse_to_referer($c)) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:68:    if ($c->session && $c->session_is_valid and $c->user_exists) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:70:      $url = $self->_url_extract_convert_fragment($to);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:77:  $c->response->redirect($url, 307);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:78:  return $c->detach;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:87:  if(my $to = $self->_parse_to_referer($c)) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:88:    $url = $self->_url_extract_convert_fragment($to);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:91:  $c->delete_session('logout');
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:92:  $c->logout;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:93:  $c->delete_expired_sessions;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:95:  $c->response->redirect($url, 307);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:96:  return $c->detach;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:103:  $c->delete_session('logout');
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:104:  $c->logout;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:105:  $c->delete_expired_sessions;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:107:  return $self->do_redirect($c);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:112:  $c ||= RapidApp->active_request_context;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:113:  $href ||= $c->req->params->{redirect} || '/';
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:115:  my $pfx = $c->mount_url || '';
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:121:  if($href =~ /^\/auth\/login\// && $c->session->{RapidApp_username}) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:122:    my $new = join('/','',$c->module_root_namespace,'');
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:123:    $new =~ s/\/+/\//g; #<-- strip double //
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:128:  $href = "/$href" unless ($href =~ /^\//); #<-- enforce local
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:129:  $c->response->redirect("$pfx$href");
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:130:  return $c->detach;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:133:# For session timeout, re-auth by RapidApp JavaScript client:
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:138:	my ($user, $pass)= ($c->req->params->{'username'}, $c->req->params->{'password'});
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:140:	$c->stash->{current_view} = 'RapidApp::JSON';
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:141:  $c->stash->{json} = $self->do_login($c,$user,$pass) ? 
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:151:  $c->delete_expired_sessions;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:153:  if ($c->session && $c->session_is_valid and $c->user_exists) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:154:    $c->res->header('X-RapidApp-Authenticated' => $c->user->username);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:157:    $c->res->header('X-RapidApp-Authenticated' => 0);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:158:    if ( $c->is_ra_ajax_req ) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:159:      # The false X-RapidApp-Authenticated header will automatically trigger
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:161:      $c->res->header( 'Content-Type' => 'text/plain' );
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:162:      $c->res->body('not authenticated');
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:163:      return $c->detach;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:167:      return $self->render_login_page($c);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:175:  my $uri = URI->new( $url );
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:176:  my %qs = $uri->query_form;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:179:    $uri->query_form( \%qs );
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:180:    $url = join('#',$uri->path_query,$fragment);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:191:  $c->delete_expired_sessions;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:193:	if($c->authenticate({ username => $user, password => $pass })) {
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:194:    $c->session->{RapidApp_username} = $user;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:196:    # New: set the X-RapidApp-Authenticated header now so the response
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:199:    $c->res->header('X-RapidApp-Authenticated' => $c->user->username);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:201:    $c->log->info("Successfully authenticated user '$user'") if ($c->debug);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:202:    $c->user->update({ 
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:203:      last_login_ts => DateTime->now( time_zone => 'local' ) 
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:207:    $c->_save_session_expires;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:209:    # New: upon successful login, override redirect target with client-supplied 'to' if present.
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:211:    my $to = $c->req->params->{to};
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:213:      $to = $self->_url_extract_convert_fragment( uri_unescape($to) );
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:214:      $c->req->params->{redirect} = $to; 
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:220:    $c->log->info("Authentication failed for user '$user'") if ($c->debug);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:230:	my ($user, $pass)= ($c->req->params->{'username'}, $c->req->params->{'password'});
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:235:	try{$c->logout};
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:237:	return if ($self->do_login($c,$user,$pass));
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:239:	$c->session->{login_error} ||= 'Authentication failure';
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:242:  $c->_save_session_expires;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:253:  my $t = $c->req->params->{redirect};
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:255:  return $self->do_redirect($c,$redirect);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:264:#	my $c = $self->c;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:266:#	my $User = $self->c->model('DB::User')->search_rs({
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:268:#	})->first or return 0;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:271:#	my $ret = $User->can_login(\$reason);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:272:#	$c->session->{login_error} = $reason if (!$ret && $reason);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:282:  my $config = $c->config->{'Plugin::RapidApp::AuthCore'} || {};
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:283:  $config->{login_template} ||= 'rapidapp/public/login.html';
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:289:	$cnf->{error_status} = delete $c->session->{login_error}
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:290:		if($c->session && $c->session->{login_error});
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:293:  my $TC = $c->template_controller;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:294:  my $body = $TC->template_render($config->{login_template},{
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:295:    login_logo_url => $config->{login_logo_url}, #<-- default undef
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:296:    form_post_url => join('/','',$self->action_namespace($c),'login'),
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:298:    title => $ver_string . ' - Login',
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:302:  $c->response->content_type('text/html; charset=utf-8');
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:303:  $c->response->status(200);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:304:  $c->response->body($body);
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:305:  return $c->detach;
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:307:	#%{$c->stash} = (
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:308:	#	%{$c->stash},
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:309:	#	template => $config->{login_template},
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:310:  #  login_logo_url => $config->{login_logo_url}, #<-- default undef
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:313:  #  title => $ver_string . ' - Login',
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:317:	#return $c->detach( $c->view('RapidApp::TT') );
lib/Catalyst/Plugin/RapidApp/AuthCore/Controller/Auth.pm:327:Catalyst::Plugin::RapidApp::AuthCore::Controller::Auth - AuthCore Authentication Controller
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:21:# ---- FIXME  FIXME  FIXME (2013-08-25 by HV) ----
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:37:#   __PACKAGE__->setup(qw(
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:52:# $c->setup_dispatcher() because that is what is called immediately after
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:53:# $c->setup_plugins() in Catalyst.pm, and so it should be the earliest
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:55:# using 'with' or loaded using the older use Catalyst @plg/__PACKAGE__->setup(@plg)
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:59:# best point I have found to do it -- Is there some totally different place
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:66:# hook locations, like overriding '$c->arguments' and manually pushing the
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:98:  if($c->_user) {
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:99:    my $expires = $c->session_expires;
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:100:    my $sid = $c->sessionid;
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:101:    $c->store_session_data( "expires:$sid" => $expires );
lib/Catalyst/Plugin/RapidApp/AuthCore/PlugHook.pm:104:  $c->$orig(@_);
lib/Catalyst/Plugin/RapidApp/CoreSchema.pm:16:  $c->injectUnlessExist(
lib/Catalyst/Plugin/RapidApp/CoreSchema.pm:29:Catalyst::Plugin::RapidApp::CoreSchema - Injects the CoreSchema model
lib/Catalyst/Plugin/RapidApp/CoreSchema.pm:44:All plugins which use the CoreSchema and provide actual end-user features automatically
lib/Catalyst/Plugin/RapidApp/CoreSchema.pm:47:This plugin simply injects the special DBIC-based 
lib/Catalyst/Plugin/RapidApp/CoreSchema.pm:51: $c->model('RapidApp::CoreSchema');
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:12:  my $config = $c->config->{'Plugin::RapidApp::CoreSchemaAdmin'} || {};
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:17:  my $cnf = $config->{RapidDbic} || {};
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:21:  unless($config->{all_sources} || $cnf->{limit_sources}) {
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:23:    ++$src{Session} if ($c->can('session'));
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:24:    ++$src{User} and ++$src{Role} if ($c->can('_authcore_load_plugins'));
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:25:    ++$src{DefaultView} if ($c->can('_navcore_inject_controller'));
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:26:    ++$src{SavedState} if ($c->can('_navcore_inject_controller'));
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:31:    $cnf->{limit_sources} = \@limit_sources;
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:36:  # these system-level configs. Note that no default role_checker is
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:39:  $cnf->{require_role} ||= 'administrator';
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:41:  $cnf->{grid_params} ||= {
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:58:  $cmp_class->config( RapidDbic => $cnf );
lib/Catalyst/Plugin/RapidApp/CoreSchemaAdmin.pm:68:Catalyst::Plugin::RapidApp::CoreSchemaAdmin - CRUD access to the CoreSchema via RapidDbic
lib/Catalyst/Plugin/RapidApp/NavCore.pm:10:after 'setup_components' => sub { (shift)->_navcore_inject_controller(@_) };
lib/Catalyst/Plugin/RapidApp/NavCore.pm:14:  CatalystX::InjectComponent->inject(
lib/Catalyst/Plugin/RapidApp/NavCore.pm:29:Catalyst::Plugin::RapidApp::NavCore - Saved views and editable navtrees for RapidDbic
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:18:  ## ---
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:21:  $c->auto_hashnav_redirect_current;
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:22:  # ---
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:24:  my $Rs = $c->model('RapidApp::CoreSchema::SavedState');
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:26:  my $Row = $Rs->find($search_id) or die usererr "Search ID $search_id not found.";
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:28:	my $data = { $Row->get_columns };
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:33:	$c->stash->{apply_extconfig} = {
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:34:		tabTitle => $data->{title},
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:35:		tabIconCls => $data->{iconcls}
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:38:	my $params = decode_json($data->{params});
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:41:	exists $params->{$_} and delete $params->{$_} for (@not_allowed_params);
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:43:	$params->{search_id} = $data->{id};
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:45:	%{$c->req->params} = ( %{$c->req->params}, %$params );
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:46:  return $c->redispatch_public_path( $data->{url} );
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:48:  ## This is how we did it before $c->redispatch_public_path():
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:49:  #$data->{url} =~ s/^\///; #<-- strip leading / (needed for split below)
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:50:  #my @arg_path = split(/\//,$data->{url});
lib/Catalyst/Plugin/RapidApp/NavCore/Controller.pm:51:  #$c->detach('/approot',\@arg_path);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:15:  my $c = $self->c;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:17:    $c->does('Catalyst::Plugin::RapidApp::NavCore') ||
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:18:    $c->registered_plugins('RapidApp::NavCore') #<-- this one doesn't seem to apply
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:24:  my $c = $self->app;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:25:  my $config = clone($c->config->{'Plugin::RapidApp::NavCore'} || {});
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:27:  # -- Default configs --
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:30:  $config->{allow_manage} //= 1;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:32:  # user_views: Whether or not to enable saved views/searches on a per-user basis
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:34:  $config->{user_views} //= 1;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:43:  return $self->$orig(@_) unless ($self->_navcore_enabled);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:46:	$save_cnf->{save_url} = $self->suburl('/save_search');
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:47:	$save_cnf->{search_id} = $self->c->req->params->{search_id} if (defined $self->c->req->params->{search_id});
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:48:	$save_cnf->{is_pub} = \1 if ($self->c->req->params->{public_search});
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:50:	# Turned off "Public Searches" now that we have the Manageable Public Navtree: (2012-02-18 by HV):
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:51:	#$save_cnf->{pub_allowed} = \1 if ($self->c->model('DB')->has_roles(qw/admin modify_public_searches/));
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:53:	my $params = { %{$self->c->req->params} };
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:54:	delete $params->{_dc} if (defined $params->{_dc});
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:57:	delete $params->{search_id} if (exists $params->{search_id});
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:59:	$save_cnf->{target_url} = $self->base_url;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:60:	$save_cnf->{target_params} = $self->json->encode($params);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:62:	my $items = $self->$orig(@_) || [];
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:66:		iconCls	=> 'ra-icon-save-as',
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:67:		handler	=> RapidApp::JSONFunc->new( raw => 1, func =>
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:68:			'function(cmp) { Ext.ux.RapidApp.NavCore.SaveSearchHandler(cmp,' . $self->json->encode($save_cnf) . '); }'
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:73:	if ($self->c->req->params->{search_id}) {
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:76:			iconCls	=> 'ra-icon-delete',
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:77:			handler	=> RapidApp::JSONFunc->new( raw => 1, func =>
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:79:          $self->suburl('/delete_search') . '","' . $self->c->req->params->{search_id} . '"); }'
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:82:			$self->c->req->params->{public_search} 
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:83:			and not $self->c->model('DB')->has_roles(qw/admin modify_public_searches/)
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:95:	my $search_id = $self->c->req->params->{search_id} or return 0;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:98:  return 0 unless ($self->_navcore_enabled);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:101:	my $Search = $self->c->model('RapidApp::CoreSchema::SavedState')->find($search_id)
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:104:	$self->apply_extconfig(
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:105:		tabTitle => $Search->get_column('title'),
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:106:		tabIconCls => $Search->get_column('iconcls'),
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:110:	my $search_params = try{$self->json->decode($Search->get_column('params'))} || {};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:114:	exists $search_params->{$_} and delete $search_params->{$_} for (@not_allowed_params);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:116:	%{$self->c->req->params} = ( %{$self->c->req->params}, %$search_params );
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:119:	$self->c->req->params->{search_id} = $search_id;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:121:	# Update the DataStore 'baseParams' - needed because this already happened by this point...
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:122:	my $baseParams = $self->DataStore->get_extconfig_param('baseParams') || {};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:123:	my $new_base_params = try{$self->json->decode($search_params->{base_params})} || {};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:125:	$self->DataStore->apply_extconfig( baseParams => $baseParams );
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:128:	my $search_data = $self->json->decode($Search->state_data) or die usererr "Error deserializing grid_state";
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:130:	$self->apply_to_all_columns( hidden => \1 );
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:132:	return $self->batch_apply_opts_existing($search_data);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:139:	my $search_name = $self->c->req->params->{search_name}; 
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:140:	my $state_data = $self->c->req->params->{state_data};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:141:	my $target_url = $self->c->req->params->{target_url};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:142:	my $target_params = $self->c->req->params->{target_params};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:143:	my $target_iconcls = $self->c->req->params->{target_iconcls};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:145:	delete $self->c->req->params->{public_search} if (
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:146:		defined $self->c->req->params->{public_search} and
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:147:		$self->c->req->params->{public_search} eq 'false'
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:150:	my $public = $self->c->req->params->{public_search};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:156:	#	not $self->c->model('DB')->has_roles(qw/admin modify_public_searches/)
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:165:	my $Rs = $self->c->model('RapidApp::CoreSchema::SavedState');
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:168:	my $cur_id = $self->c->req->params->{cur_search_id};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:169:	if ($cur_id and not $self->c->req->params->{create_search}) {
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:173:    my $Search = $Rs->find($cur_id) 
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:176:		return $Search->update({ state_data => $state_data });
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:183:	$Rs->search_rs({ 'me.title' => $search_name })->count 
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:194:  my $User = try{$self->c->user->get_from_storage};
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:195:  if ($User && $self->plugin_config->{user_views}) {
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:197:    $create->{user_id} = $User->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:201:    $create->{node_id} = 0;
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:205:	#$create->{owner_id} = 1 if ($public);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:207:	my $Row = $Rs->create($create);
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:212:		loadCnf => $Row->loadContentCnf
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:220:	my $search_id = $self->c->req->params->{search_id} or die usererr "Missing search_id";
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:225:  my $Search = $self->c->model('RapidApp::CoreSchema::SavedState')->find($search_id)
lib/Catalyst/Plugin/RapidApp/NavCore/GridRole.pm:228:  return $Search->delete;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:11:  my $c = $self->app;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:12:  my $config = clone($c->config->{'Plugin::RapidApp::NavCore'} || {});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:14:  # -- Default configs --
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:17:  $config->{allow_manage} //= 1;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:19:  # user_views: Whether or not to enable saved views/searches on a per-user basis
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:21:  $config->{user_views} //= $c->can('_authcore_load_plugins') ? 1 : 0;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:29:  if($self->plugin_config->{allow_manage}) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:30:    $self->apply_init_modules(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:32:    ) unless ($self->isa('Catalyst::Plugin::RapidApp::NavCore::NavTree::Manage'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:37:#has '+module_scope', default => sub { return (shift)->parent_module };
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:38:has '+instance_id', default => 'main-nav-tree';
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:47:	my $Rs = $self->c->model('RapidApp::CoreSchema::NavtreeNode')->search_rs(undef,{ 
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:48:		order_by => { -asc => 'me.ordering' },
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:55:	#my $uid = $self->c->model("DB")->current_user_id;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:56:	#my @roles = uniq($self->c->model('DB::Role')->search_rs({
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:58:	#},{ join => 'user_to_roles' })->get_column('role')->all);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:60:	#$Rs = $Rs->search_rs([
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:61:	#	{ 'navtree_node_to_roles.role' => { '-in' => \@roles } },
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:63:	#],{ join => 'navtree_node_to_roles' }) unless ($self->c->model('DB')->has_roles(qw/admin/));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:70:	return $self->c->model('RapidApp::CoreSchema::SavedState')->search_rs(undef,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:72:    { order_by => { -asc => 'me.ordering' }}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:73:	)->search_rs(undef,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:75:    { order_by => { -asc => 'me.title' }}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:81:	return $self->c->model('RapidApp::CoreSchema::User')->search_rs(undef,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:82:		{ order_by => { -asc => 'me.username' }}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:92:		return $node->get_column('id') if (ref($node) =~ /NavtreeNode/);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:93:		return 's-' . $node->get_column('id') if (ref($node) =~ /SavedState/);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:115:	my $id = $self->get_node_id($node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:118:	if($id =~ /^s\-/) { #<-- if the id starts with 's-' its a SavedState id
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:119:		$id =~ s/^s\-//;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:120:		return $self->SearchesRs->search_rs({ 'me.id' => $id })->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:123:	return $self->Rs->search_rs({ 'me.id' => $id })->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:129:	return $self->get_node_Row($node,1);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:137:	my $id = $self->get_node_id($node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:140:	$count += $self->Rs->search_rs({ 'me.pid' => $id })->count;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:141:	$count += $self->SearchesRs->search_rs({ 'me.node_id' => $id })->count;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:151:	my $d = { $Node->get_columns };
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:152:	#my $snode = $node . '/' . $d->{id};
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:155:		id => $d->{id},
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:156:		sort_order => $d->{ordering},
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:157:		text	=> $d->{text} || $d->{title},
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:158:		iconCls => $d->{iconcls},
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:161:	$opts->{expanded} = ($d->{expanded} ? \1 : \0) if (defined $d->{expanded});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:164:	if($Node->can('node_id')) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:165:		$opts->{$_} = \1 for(qw(leaf expanded loaded allowDelete));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:167:			id => 's-' . $opts->{id},
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:168:			loadContentCnf => $Node->loadContentCnf,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:169:			#href => '#!/view/' . $opts->{id}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:173:    # This module supports one custom node type - 'link' - which is identified if the Node
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:175:    if (my $attrs = $Node->customAttrs) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:176:      $opts->{nodeTypeName} = 'link';
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:177:      $opts->{customAttrs}  = $attrs;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:183:		$opts->{allowCopy} = \0;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:194:	my $id = $self->get_node_id($node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:196:	# Ignore non-numeric node ids:
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:202:	foreach my $Node ($self->Rs->search_rs({ 'me.pid' => $id })->all) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:204:		my $opts = $self->get_Node_config($Node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:205:		my $snode = $node . '/' . $opts->{id};
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:207:		unless ($self->fetch_nodes_deep or $self->node_child_count($snode)) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:208:			# Set loaded/expanded to true if this node is empty (causes +/- to not be displayed initially):
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:209:			$opts->{loaded} = \1;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:210:			delete $opts->{expanded};
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:211:			#$opts->{expanded} = \1;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:218:	foreach my $State ($self->SearchesRs->search_rs({ 'me.node_id' => $id })->all) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:219:		my $opts = $self->get_Node_config($State);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:223:	# Re-Sort heterogeneous node types together (navtree_nodes and saved_states)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:224:	@$data = sort { $a->{sort_order} <=> $b->{sort_order} } @$data;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:227:	push @$data, @{$self->next::method} if ($node eq 'root');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:237:#	return 1 if ($self->c->model('DB')->has_roles(qw/admin/));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:242:#	return 1 if ($self->c->model('DB')->has_roles(qw/admin edit_navtree/));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:247:#	return 1 if ($self->c->model('DB')->has_roles(qw/admin delete/));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:257:  return $self->c->check_user_roles('administrator')
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:258:    if ($self->c->can('check_user_roles'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:260:  # If we're here it means no Auth is loaded and we're in "single-user" mode
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:269:  if ($self->plugin_config->{user_views}) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:270:    my $User = try{$self->c->user->get_from_storage};
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:271:    push @items, $self->saved_search_tree_items($User) if ($User);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:274:	push @items, $self->organize_navtree_node 
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:275:    if ($self->plugin_config->{allow_manage});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:287:	#my $Rs = $self->c->model('DB::SavedState')->my_saved_states;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:288:  #my $Rs = $self->c->model('RapidApp::CoreSchema::SavedState');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:289:  my $Rs = $User->saved_states;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:292:	$Rs = $Rs->search_rs(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:294:    { order_by => { -asc => 'me.ordering' } }
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:297:	foreach my $State ($Rs->all) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:298:		my $search_id = $State->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:300:			id			=> 'search-' . $search_id,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:301:			text		=> $State->title,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:302:			iconCls	=> $State->iconcls,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:303:			loadContentCnf => $State->loadContentCnf,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:312:		id			=> 'my-saved-searches',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:314:		iconCls		=> 'ra-icon-folder-view',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:328:		text		=> $self->is_admin ? 'Organize Tree' : 'Organize Views',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:329:		cls		=> 'pad-top-7px-bottom-4px',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:330:		iconCls		=> 'ra-icon-tree-edit',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:341:#	cls		=> 'pad-top-bottom-4px',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree.pm:342:#	iconCls	=> 'ra-icon-garbage-full',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:14:#has '+add_button_iconCls' => ( default => 'ra-icon-folder-add' );
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:25:has '+instance_id', default => 'manage-nav-tree';
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:28:# -- Turn off AppNavTree features:
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:33:# --
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:42:    iconCls  => 'ra-icon-folder',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:55:    iconCls  => 'ra-icon-link-go',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:63:      xtype => 'ra-all-icon-assets-combo',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:64:      value => 'ra-icon-link-go',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:86:  return $self->c->can('user') ? 1 : 0;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:92:	$self->apply_extconfig(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:95:    tabIconCls => 'ra-icon-tree-edit',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:100:	$self->add_listener( removed => 'Ext.ux.RapidApp.NavCore.reloadMainNavTrees' );
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:102:	$self->root_node->{allowDrop} = \0;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:103:	$self->root_node->{allowAdd} = \0;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:105:	$self->add_ONCONTENT_calls('apply_permissions');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:110:	return if ($self->can_edit_navtree);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:112:	$self->apply_extconfig(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:123:	my $admin = $self->is_admin;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:130:			id => 'manage/root', #<-- because the id ends in "root" the root nodes will be fetched into this node
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:132:			iconCls => 'ra-icon-server-database',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:134:			rootValidActions => \1 #<-- prevents actions that wouldn't be valid for the root node (rename, etc)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:137:    if($self->auth_active) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:142:        iconCls => 'ra-icon-folder-view',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:144:        rootValidActions => \1, #<-- prevents actions that wouldn't be valid for the root node (rename, etc)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:151:      $my_searches->{cls} = 'pad-top-7px' if ($admin);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:158:        iconCls => 'ra-icon-data-views',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:159:        cls => 'pad-top-7px',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:161:        rootValidActions => \1, #<-- prevents actions that wouldn't be valid for the root node (rename, etc)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:172:  return $self->next::method(@_) unless ($self->plugin_config->{user_views});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:174:	return $self->my_searches_nodes if ($node =~ /my_searches$/);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:176:	return [] unless ($admin); #<-- fail-safe, non-admins should never get this far
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:178:	return $self->user_searches_nodes if ($node =~ /user_searches$/);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:179:	return $self->next::method(@_);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:185:	my $User = $self->c->user->get_from_storage or die "Failed to get user";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:186:	return $self->searches_nodes_for_User($User);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:193:	my $path = 'user_searches/' . $User->get_column('username');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:196:	my $PrivSearchesRs = $self->SearchesRs->search_rs(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:198:    { order_by => { -asc => 'me.ordering' } }
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:200:	#my $SearchObjectsRs = $self->c->model('DB::Object')->search_rs(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:206:	foreach my $State ($PrivSearchesRs->search_rs({ 'me.user_id' => $User->get_column('id') })->all) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:207:	#foreach my $Object ($SearchObjectsRs->search_rs({ 'me.owner_id' => $User->get_column('id') })->all) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:208:		#my $State = $Object->saved_state;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:211:		#next unless ($State->object);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:213:		my $cnf = $self->get_Node_config($State);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:215:			id => $path . '/' . $cnf->{id},
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:230:	return [] unless ($self->can_edit_navtree); #<-- fail-safe, non-admins should never get this far
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:234:	my $UserRs = $self->UsersRs;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:238:	my $uid = $self->c->user->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:240:	foreach my $User ($UserRs->all) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:243:		next if($User->get_column('id') == $uid);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:245:		my $path = 'user_searches/' . $User->username;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:247:		my $children = $self->searches_nodes_for_User($User);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:251:			text => $User->full_name . ' [' . $User->username . ']',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:252:			iconCls => 'ra-icon-user',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:253:			rootValidActions => \1, #<-- prevents actions that wouldn't be valid for the root node (rename, etc)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:273:			next if ($User->disabled);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:288:	my $id = $self->get_node_id($node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:294:	my $order = $self->get_order_string($id,'append');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:297:  if(($params->{nodeTypeName}||'folder') eq 'link') {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:298:    my $url = $params->{url} or die usererr "Link URL is required";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:299:    my $uid = $self->c->user->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:301:    $Node = $self->SearchesRs->create({
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:307:      iconcls => $params->{iconcls} || 'ra-icon-link-go',
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:311:    $Node = $self->Rs->create({
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:321:		child => $self->get_Node_config($Node)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:327:	my $User = $self->c->user->get_from_storage or die "Failed to get current User!!";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:328:	return 'user_searches/' . $User->get_column('username');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:338:	$target = $self->my_searches_target if ($target =~ /my_searches/);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:343:	return $self->move_to_private_search($node,$target,$point,$point_node) if ($target =~ /user_searches/);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:346:	my $Node = $self->get_node_Row($node) || die "Node not found! ($node)";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:348:	my $pid = $self->get_node_id($target);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:352:    ? $self->get_order_string($point_node,$point)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:353:    : $self->_ordering_for_target_pid($pid,$Node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:355:	return $Node->update({ 'node_id' => $pid, 'ordering' => $order }) if ($Node->can('node_id')); #<-- SavedSearch row
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:356:	return $Node->update({ 'pid' => $pid, 'ordering' => $order });
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:366:	my $State = $self->get_node_Row($node) || die "move_to_private_search failed";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:372:	my $User = $self->UsersRs->
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:373:    search_rs({ username => $username })->first
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:376:	my $uid = $User->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:379:    ? $self->get_order_string($point_node,$point)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:380:    : $self->_ordering_for_target_uid($uid,$State);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:382:	$State->update({ user_id => $uid });
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:383:	$self->unlink_search($State);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:385:	$State->update({ ordering => $order });
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:392:  $self->_ordering_for_target_pid_uid($pid,$Node,undef)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:397:  $self->_ordering_for_target_pid_uid(undef,$Node,$uid)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:403:  my $cond = { $Node->can('node_id') ? 'node_id' : 'pid' => $pid };
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:404:  $cond->{user_id} = $uid if ($uid);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:406:  my $LastCurNode = $Node->result_source->resultset
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:407:    ->search_rs($cond,{ order_by => { -desc => 'ordering' } })
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:408:    ->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:410:  $LastCurNode ? $LastCurNode->ordering + 1000 : 3000000;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:423:	my $State = $self->get_node_Row($node) || die "Failed to find source!";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:424:	die usererr "Only Saved Searches can be copied currently!" unless ($State->can('node_id'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:428:	$self->enforce_valid_new_search_name($name);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:430:	my $create = { $State->get_columns };
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:431:  delete $create->{id};
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:432:	$create->{title} = $name if ($name);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:434:	#delete $create->{$_} for(qw(id type_id name disp_name creator_id created owner_id));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:435:	#delete $create->{saved_state}->{$_} for(qw(id));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:437:	my $NewRow = $self->SearchesRs->create($create);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:439:	$self->move_node($NewRow,$target,$point,$point_node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:444:		child => $self->get_Node_config($NewRow)
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:452:  return unless ($self->c->can('user'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:454:	my $uid = $self->c->user->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:456:	my $Rs = $self->SearchesRs->search_rs({ 'me.user_id' => $uid, 'me.title' => $name });
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:458:	die usererr "You already own a search named '$name'" if ($Rs->count);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:467:	my $Node = ref($node) ? $node : $self->get_node_Row($node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:469:	return $Node->get_column('node_id') if ($Node->can('node_id')); #<-- SavedSearch row
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:470:	return $Node->get_column('pid');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:483:	my $Node = $self->get_node_Row(shift);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:485:	my $pid = $self->get_node_pid($Node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:488:		$self->Rs->search_rs({ 'me.pid' => $pid }),
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:489:		$self->SearchesRs->search_rs({'me.node_id' => $pid })
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:494:	return $self->$method($Rs_list,$Node->ordering);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:496:sub get_node_order_boundary_high	{ (shift)->get_node_order_boundary('high',@_)	}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:497:sub get_node_order_boundary_low	{ (shift)->get_node_order_boundary('low',@_)	}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:509:			for( map { $self->get_Rs_order_boundary_high($_,$order) } @$Rs );
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:514:	die "First argument was not a ResultSet!!!" unless ($Rs && $Rs->can('search_rs'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:516:	$Rs = $Rs->search_rs({ ordering => { '>' => $order }},{ order_by => { -asc => 'me.ordering' }});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:517:	my $Next = $Rs->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:519:	return $Next ? $Next->ordering : $val;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:532:			for( map { $self->get_Rs_order_boundary_low($_,$order) } @$Rs );
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:537:	die "First argument was not a ResultSet!!!" unless ($Rs && $Rs->can('search_rs'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:539:	$Rs = $Rs->search_rs({ ordering => { '<' => $order }},{ order_by => { -desc => 'me.ordering' }});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:540:	my $Next = $Rs->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:542:	return $Next ? $Next->ordering : $val;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:550:	return $self->get_highest_order_saved_search($node) if ($node =~ /user_searches/);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:552:	my $Node = $self->get_node_Row($node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:554:	return undef unless ($Node->can('pid')); #<-- only NavtreeNode rows can have children
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:556:	my $id = $Node->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:558:	my $ChildNode = $self->Rs->search_rs(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:560:		{ order_by => { -desc => 'me.ordering' }}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:561:	)->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:563:	my $ChildSearch = $self->SearchesRs->search_rs(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:565:		{ order_by => { -desc => 'me.ordering' }}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:566:	)->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:572:	return $ChildSearch if ($ChildSearch->ordering > $ChildNode->ordering);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:585:	my $User = $self->UsersRs->search_rs({ username => $username })->first
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:588:	my $ChildSearch = $self->SearchesRs->search_rs(
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:589:		{ 'object.owner_id' => $User->get_column('id'), 'me.ordering' => { '!=' => undef } },
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:590:		{ order_by => { -desc => 'me.ordering' }}
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:591:	)->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:598:	my $PointNode = $self->get_node_Row(shift) || return 5000000;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:605:		my $Child = $self->get_highest_order_child($PointNode);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:606:		return $self->get_order_string($Child,'below');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:610:		$min = $PointNode->ordering + 1;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:611:		$max = $self->get_node_order_boundary_high($PointNode);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:614:		$max = $PointNode->ordering - 1;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:615:		$min = $self->get_node_order_boundary_low($PointNode);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:620:	my $range = $max - $min;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:637:	#my $id = $self->get_node_id($node);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:638:	my $Node = $self->get_node_Row($node) or die "Failed to get Node";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:639:	return $self->rename_search($Node,$name,$params) if ($Node->can('node_id'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:641:	#my $Node = $self->Rs->search_rs({ 'me.id' => $id })->first;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:642:	$Node->update({ 'text' => $name });
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:647:		new_text => $Node->text,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:654:  my $nodeTypeName = $params->{nodeTypeName} || '';
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:658:    $update->{url}     = $params->{url}     if ($params->{url});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:659:    $update->{iconcls} = $params->{iconcls} if ($params->{iconcls});
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:662:  if ($State->update($update)) {
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:666:      new_text => $State->title,
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:667:      new_iconcls => $State->iconcls
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:671:      $res->{new_attributes} = $self->get_Node_config($State);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:686:	my $Node = $self->get_node_Row($node) or die "Failed to get Node";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:687:	#return $self->unlink_search($Node) if ($Node->can('node_id'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:688:	return $self->delete_search($Node) if ($Node->can('node_id'));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:694:			$self->c->model('RapidApp::CoreSchema')->txn_do(sub { $count = $self->Node_delete_recursive($Node) });
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:702:		die usererr "Cannot delete - not empty" if ($self->node_child_count($Node));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:703:		$Node->delete or die "Non-Recursive Node delete failed.";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:715:	return $State->update({ node_id => undef }) if (defined $State->node_id);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:723:	$self->unlink_search($State);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:724:	return $State->delete;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:731:	my $id = $Node->get_column('id');
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:736:	$count += $self->Node_delete_recursive($_) for ($self->Rs->search_rs({ 'me.pid' => $id })->all);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:739:	#$self->unlink_search($_) and $count++ for ($self->SearchesRs->search_rs({ 'me.node_id' => $id })->all);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:740:	$self->delete_search($_) and $count++ for ($self->SearchesRs->search_rs({ 'me.node_id' => $id })->all);
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:744:		if ($self->node_child_count($Node));
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:747:	$Node->delete or die "Recursive Node delete failed.";
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:751:# always return true/success - the info isn't important enough to take failure actions:
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:757:	my $NavtreeNode = $self->get_NavtreeNode($node) || return 1;
lib/Catalyst/Plugin/RapidApp/NavCore/NavTree/Manage.pm:758:	$NavtreeNode->update({ 'expanded' => $expanded });
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:16:  $c->config->{'Plugin::RapidApp::RapidDbic'} ||= {};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:17:  my $config = $c->config->{'Plugin::RapidApp::RapidDbic'};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:18:  $config->{dbic_models} ||= [];
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:20:  $config->{dbic_tree_module_name} = 'db';
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:21:  $config->{table_class} = $config->{grid_class} if ($config->{grid_class});
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:22:  $config->{table_class} ||= 'Catalyst::Plugin::RapidApp::RapidDbic::TableBase';
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:23:  $config->{navcore_default_views} //= 1;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:24:  $config->{configs} ||= {};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:26:  $c->config->{'Plugin::RapidApp::TabGui'} ||= {};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:27:  my $tgui_cnf = $c->config->{'Plugin::RapidApp::TabGui'};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:28:  $tgui_cnf->{navtrees} ||= [];
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:30:  push @{$tgui_cnf->{navtrees}}, {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:31:    module => $config->{dbic_tree_module_name},
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:34:      dbic_models => $config->{dbic_models},
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:35:      table_class	=> $config->{table_class},
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:36:      configs => $config->{configs},
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:40:      menu_require_role => $config->{menu_require_role}
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:49:  my $cfg = $c->config->{'Plugin::RapidApp::RapidDbic'};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:54:  my $mdls = $cfg->{dbic_models};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:70:  my $config = $c->config->{'Plugin::RapidApp::RapidDbic'};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:75:  # -- New: read in optional RapidDbic config from the model itself, or from the main 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:78:        try{ $component->config          ->{RapidDbic}  }
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:79:     || try{ $c->config->{$loc_cmp_name} ->{RapidDbic}  }
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:85:      $config->{dbic_models} ||= [];
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:86:      push @{$config->{dbic_models}}, $name unless (
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:87:        List::Util::first {$_ eq $name} @{$config->{dbic_models}}
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:90:      $config->{configs}{$name} ||= $local_cnf;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:91:      $local_cnf = $config->{configs}{$name};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:95:  # --
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:98:  foreach my $model (@{$config->{dbic_models}}) {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:106:  #my $config = $c->config->{ $suffix } || {};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:107:  my $cmp_config = try{$component->config} || {};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:113:  my $schema_class = $cnf->{schema_class} or return;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:119:  my ($model_name) = reverse split(/\:\:/,$component); #<-- educated guess, see temp/hack below
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:122:  my $lim_sources = $local_cnf->{limit_sources} ? {map{$_=>1} @{$local_cnf->{limit_sources}}} : undef;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:123:  my $exclude_sources = $local_cnf->{exclude_sources} || [];
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:127:  my $mod_path = join('/','',$c->module_root_namespace,'main');
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:128:  $mod_path =~ s/\/+/\//g; #<-- strip double //
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:130:  for my $class (keys %{$schema_class->class_mappings}) {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:131:    my $source_name = $schema_class->class_mappings->{$class};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:133:    next if ($lim_sources && ! $lim_sources->{$source_name});
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:136:    my $virtual_columns = try{$config->{configs}{$model_name}{virtual_columns}{$source_name}};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:137:    if ($class->can('TableSpec_cnf')) {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:138:      die "Cannot setup virtual columns on $class - already has TableSpec loaded"
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:142:      $class->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:143:      $class->add_virtual_columns(%$virtual_columns) if ($virtual_columns);
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:144:      $class->apply_TableSpec;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:147:    # ----
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:148:    # *predict* (guess) what the auto-generated grid module paths will be and set
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:150:    # just a stop-gap until this functionality is factored into the RapidApp API 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:154:    my $grid_url = join('/',$mod_path,$config->{dbic_tree_module_name},$module_name);
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:155:    $class->TableSpec_set_conf(
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:160:    # ----
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:162:    my $is_virtual = $class->_is_virtual_source;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:163:    my $defs_i = $is_virtual ? 'ra-icon-pg-red' : 'ra-icon-pg';
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:164:    my $defm_i = $is_virtual ? 'ra-icon-pg-multi-red' : 'ra-icon-pg-multi';
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:167:    $class->TableSpec_set_conf(
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:168:    	title => ($class->TableSpec_get_set_conf('title') || $source_name),
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:169:      title_multi => ($class->TableSpec_get_set_conf('title_multi') || "$source_name Rows"),
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:170:      iconCls => ($class->TableSpec_get_set_conf('iconCls') || $defs_i),
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:171:      multiIconCls => ($class->TableSpec_get_set_conf('multiIconCls') || $defm_i),
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:174:    # ----------------
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:175:    # Apply some column-specific defaults:
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:178:    my %col_props = %{ $class->TableSpec_get_set_conf('column_properties') || {} };
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:179:    for my $col ($class->columns,$class->relationships) {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:183:    # For single-relationship columns (belongs_to) we want to hide
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:187:    if($local_cnf->{hide_fk_columns} || $config->{hide_fk_columns}) {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:188:      for my $rel ( $class->relationships ) {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:189:        my $rel_info = $class->relationship_info($rel);
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:190:        next unless ($rel_info->{attrs}->{accessor} eq 'single');
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:191:        my $fk_columns = $rel_info->{attrs}->{fk_columns} || {};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:200:    $class->TableSpec_set_conf( column_properties => %col_props ) 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:202:    # ----------------
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:205:    # --- apply TableSpec configs specified in the plugin config:
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:206:    my $TSconfig = try{$config->{configs}->{$model_name}->{TableSpecs}->{$source_name}} || {};
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:207:    $class->TableSpec_set_conf( $_ => $TSconfig->{$_} ) for (keys %$TSconfig);
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:208:    # ---
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:211:    # *in the RapidDbic plugin config itself*. This is needed to fix a load-order problem
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:214:    # purposes of RapidDbic, we are taking over and superseding that layer of auto-generated 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:217:    if(!$TSconfig->{auto_editor_type} || $TSconfig->{auto_editor_type} eq 'grid') {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:218:      $class->TableSpec_set_conf(
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:221:          xtype => 'datastore-app-field',
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:222:          displayField => $class->TableSpec_get_set_conf('display_column'),
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:224:            url => $class->TableSpec_get_set_conf('open_url_multi'),
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:237:  my $config = $c->config->{'Plugin::RapidApp::RapidDbic'} or die
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:241:  if($config->{navcore_default_views} && $c->_navcore_enabled) {
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:242:    my $rootModule = $c->model('RapidApp')->rootModule;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:244:    my $AppTree = $rootModule->Module('main')->Module($config->{dbic_tree_module_name});
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:245:    my @source_models = $AppTree->all_source_models;
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:246:    my $Rs = $c->model('RapidApp::CoreSchema::DefaultView');
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:247:    $Rs->find_or_create(
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:261:Catalyst::Plugin::RapidApp::RapidDbic - Instant web front-ends for DBIx::Class
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:284: __PACKAGE__->config(
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:312: __PACKAGE__->config(
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:342:          iconCls        => 'icon-apple',
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:343:          multiIconCls   => 'icon-apples',
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:364:The RapidDbic plugin provides a very high-level, abstract configuration layer for initializing 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:366:for Catalyst/RapidApp. These interfaces are fully functional out-of-the-box, but also provide
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:370:working combination without any fuss, while also providing configuration hooks into those sub-modules
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:372:the main interface and navigation structure, and sets of DBIC-aware modules such as grids, forms and
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:379:RapidDbic is also designed to work with other, high-level plugins to access additional turn-key
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:380:application-wide functionality, such as access and authorization with the 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:381:L<AuthCore|Catalyst::Plugin::RapidApp::AuthCore> plugin and saved user-views with the
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:399:this is the grid-based module L<Catalyst::Plugin::RapidApp::RapidDbic::TableBase>, but can be changed
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:400:(with the C<grid_class> config option, see below) to any module extending a DBIC-aware RapidApp 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:407:The DbicLink modules configuration documentation is still in-progress. 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:413:interface contexts. TableSpec data is passive and is consumed by all DBIC-aware RapidApp Modules
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:416:For a listing of the different TableSpec data-points which are available, see the TableSpec 
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:448:L<Chinook Demo - 2.5 - Virtual Columns|http://www.rapidapp.info/demos/chinook/2_5>
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:455:RapidDbic-based app with a working config on-the-fly that can then be mounted like any Plack
lib/Catalyst/Plugin/RapidApp/RapidDbic.pm:466:For instant gratification, a script-based wrapper is also available which can fire up an app 
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:24:# This is an option of RapidApp::Module::Grid that will allow double-click to open Rows:
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:27:	return undef if ($self->no_page);
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:29:		class => $self->page_class,
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:31:			ResultSource => $self->ResultSource,
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:32:			get_ResultSet => $self->get_ResultSet, 
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:33:			#TableSpec => $self->TableSpec,
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:34:			include_colspec => clone( $self->include_colspec ),
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:35:			updatable_colspec => clone( $self->updatable_colspec ),
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:36:			persist_all_immediately => $self->persist_all_immediately,
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:37:      persist_immediately => $self->persist_immediately,
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:38:      %{ clone( $self->page_params ) }
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:45:# default to read-only:
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:64:    $self->persist_all_immediately ||
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:65:    jstrue( $self->persist_immediately->{create} )
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:79:  my $c = $self->app;
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:80:  my $config = $c->config->{'Plugin::RapidApp::RapidDbic'};
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:83:     $config->{navcore_default_views} && 
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:84:    $c->_navcore_enabled
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:93:  $self->add_plugin('grid-column-properties');
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:96:	$self->apply_columns( $_ => { hidden => \1 } ) 
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:97:		for (grep { $_ =~ /__/ } @{$self->column_order});
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:99:  my $extra_cnf = $self->extra_extconfig;
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:100:  $self->apply_extconfig( %$extra_cnf ) if (keys %$extra_cnf > 0);
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:107:before 'load_saved_search' => sub { (shift)->before_load_saved_search };
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:111:  my $model_name = $self->_rapiddbic_default_views_model_name or return;
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:112:  my $Rs = $self->c->model($model_name);
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:113:  my $DefaultView = $Rs->find($self->source_model) or return;
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:115:  my $SavedState = $DefaultView->view or return;
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:117:  my $state_data = $SavedState->get_column('state_data');
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:118:  my $search_data = $self->json->decode($state_data) or die usererr "Error deserializing grid_state";
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:119:	$self->apply_to_all_columns( hidden => \1 );
lib/Catalyst/Plugin/RapidApp/RapidDbic/TableBase.pm:120:	return $self->batch_apply_opts_existing($search_data);
lib/Catalyst/Plugin/RapidApp/RequestLogger.pm:21:  CatalystX::InjectComponent->inject(
lib/Catalyst/Plugin/RapidApp/RequestLogger.pm:25:  ) unless ($c->model('RapidApp::CoreSchema'));
lib/Catalyst/Plugin/RapidApp/RequestLogger.pm:31:  $c->model('RapidApp::CoreSchema::Request')->record_ctx_Request($c);
lib/Catalyst/Plugin/RapidApp/RequestLogger.pm:41:Catalyst::Plugin::RapidApp::RequestLogger - Log all requests to the CoreSchema
lib/Catalyst/Plugin/RapidApp/RequestLogger.pm:57:This plugin is just experimental and not well supported - do not use in production.
lib/Catalyst/Plugin/RapidApp/TabGui.pm:14:    $c->does('Catalyst::Plugin::RapidApp::NavCore') ||
lib/Catalyst/Plugin/RapidApp/TabGui.pm:15:    $c->registered_plugins('RapidApp::NavCore') #<-- this one doesn't seem to apply
lib/Catalyst/Plugin/RapidApp/TabGui.pm:22:    $c->does('Catalyst::Plugin::RapidApp::AuthCore') ||
lib/Catalyst/Plugin/RapidApp/TabGui.pm:23:    $c->registered_plugins('RapidApp::NavCore') #<-- this one doesn't seem to apply
lib/Catalyst/Plugin/RapidApp/TabGui.pm:30:  my $config = $c->config->{'Plugin::RapidApp::TabGui'} or die
lib/Catalyst/Plugin/RapidApp/TabGui.pm:33:  $config->{title} ||= $c->config->{name};  
lib/Catalyst/Plugin/RapidApp/TabGui.pm:34:  $config->{nav_title} ||= $config->{title};
lib/Catalyst/Plugin/RapidApp/TabGui.pm:36:  # --- We're aware of the AuthCore plugin, and if it is running we automatically 
lib/Catalyst/Plugin/RapidApp/TabGui.pm:38:  if($c->_authcore_enabled) {
lib/Catalyst/Plugin/RapidApp/TabGui.pm:39:    $config->{banner_template} ||= 'templates/rapidapp/simple_auth_banner.tt';
lib/Catalyst/Plugin/RapidApp/TabGui.pm:41:  # ---
lib/Catalyst/Plugin/RapidApp/TabGui.pm:45:  if($config->{template_navtree_regex}) {
lib/Catalyst/Plugin/RapidApp/TabGui.pm:50:        template_regex => $config->{template_navtree_regex},
lib/Catalyst/Plugin/RapidApp/TabGui.pm:51:        default_expanded => $config->{template_navtree_expanded} || 0
lib/Catalyst/Plugin/RapidApp/TabGui.pm:57:  push @navtrees, @{$config->{navtrees}} if (exists $config->{navtrees});
lib/Catalyst/Plugin/RapidApp/TabGui.pm:59:  # --- We're also aware of the NavCore plugin. If it is running we stick its items
lib/Catalyst/Plugin/RapidApp/TabGui.pm:70:  ) if ($c->_navcore_enabled);
lib/Catalyst/Plugin/RapidApp/TabGui.pm:71:  # ---
lib/Catalyst/Plugin/RapidApp/TabGui.pm:74:  $config->{navtree_disabled} = 1 unless (@navtrees > 0);
lib/Catalyst/Plugin/RapidApp/TabGui.pm:77:    title => $config->{nav_title},
lib/Catalyst/Plugin/RapidApp/TabGui.pm:78:    right_footer => $config->{right_footer} || $config->{title},
lib/Catalyst/Plugin/RapidApp/TabGui.pm:79:    iconCls => $config->{nav_title_iconcls} || 'ra-icon-catalyst-transparent',
lib/Catalyst/Plugin/RapidApp/TabGui.pm:80:    init_width => $config->{navtree_init_width} || 230,
lib/Catalyst/Plugin/RapidApp/TabGui.pm:84:  if($config->{dashboard_template}) {
lib/Catalyst/Plugin/RapidApp/TabGui.pm:85:    $main_module_params->{dashboard_class} = 'RapidApp::Module::HtmlContent';
lib/Catalyst/Plugin/RapidApp/TabGui.pm:86:    $main_module_params->{dashboard_params} = {
lib/Catalyst/Plugin/RapidApp/TabGui.pm:89:        my $vars = { c => $self->c };
lib/Catalyst/Plugin/RapidApp/TabGui.pm:90:        return $self->c->template_render($config->{dashboard_template},$vars);
lib/Catalyst/Plugin/RapidApp/TabGui.pm:95:  # remap banner_template -> header_template
lib/Catalyst/Plugin/RapidApp/TabGui.pm:96:  $main_module_params->{header_template} = $config->{banner_template}
lib/Catalyst/Plugin/RapidApp/TabGui.pm:97:    if($config->{banner_template});
lib/Catalyst/Plugin/RapidApp/TabGui.pm:106:  $config->{$_} and $main_module_params->{$_} = $config->{$_} for (@copy_params);
lib/Catalyst/Plugin/RapidApp/TabGui.pm:108:  # -- New: enable passthrough to exclude navtrees that define 
lib/Catalyst/Plugin/RapidApp/TabGui.pm:110:  $main_module_params->{role_checker} = 
lib/Catalyst/Plugin/RapidApp/TabGui.pm:111:    $c->config->{'Plugin::RapidApp::AuthCore'}{role_checker}
lib/Catalyst/Plugin/RapidApp/TabGui.pm:112:    if ($c->_authcore_enabled);
lib/Catalyst/Plugin/RapidApp/TabGui.pm:113:  # --
lib/Catalyst/Plugin/RapidApp/TabGui.pm:116:  my $main_module_class = $config->{main_module_class} || 'RapidApp::Module::Explorer';
lib/Catalyst/Plugin/RapidApp/TabGui.pm:119:    %{ $config->{main_module_params} || {} }
lib/Catalyst/Plugin/RapidApp/TabGui.pm:125:      app_title => $config->{title},
lib/Catalyst/Plugin/RapidApp/TabGui.pm:132:  $c->config( 'Model::RapidApp' => 
lib/Catalyst/Plugin/RapidApp/TabGui.pm:133:    Catalyst::Utils::merge_hashes($cnf, $c->config->{'Model::RapidApp'} || {} )
lib/Catalyst/Plugin/RapidApp/TabGui.pm:144:Catalyst::Plugin::RapidApp::TabGui - Instant tabbed Ajax admin navigation interface
lib/Catalyst/Plugin/RapidApp/TabGui.pm:154:The TabGui plugin is the primary high-level turn-key interface paradigm provided by the
lib/Catalyst/Plugin/RapidApp/TabGui.pm:155:RapidApp distribution for top-most level GUIs (i.e. to be loaded in a full-browser, not within
lib/Catalyst/Plugin/RapidApp/TabGui.pm:156:another interface). It provides a standard admin-style interface, based on ExtJS, with an (optional)
lib/Catalyst/Plugin/RapidApp/TabGui.pm:157:navigation tree on the left-hand side and a tabbed content panel on the right, with an optional
lib/Catalyst/Plugin/RapidApp/TabGui.pm:161:at public paths in the application, including both RapidApp-specific Module views as well as
lib/Catalyst/Plugin/RapidApp/TabGui.pm:164:The interface is pure Ajax with no browser page loads whatsoever, with simulated client-side
lib/Catalyst/Plugin/RapidApp/TabGui.pm:165:URLs triggered via the I<hash> section/mechanism of the URL. These are fully-valid, RESTful
lib/Catalyst/Plugin/RapidApp/TabGui.pm:179: __PACKAGE__->config(
lib/Catalyst/Plugin/RapidApp/TabGui.pm:192:The TabGui is automatically loaded and configured by other high-level plugins, most notably,
lib/Catalyst/Plugin/RapidApp/TabGui.pm:206:Additionally, there are multiple extra plugins with provide high-level functionality which 
lib/Plack/App/RapidApp/rDbic.pm:14:# Doing this so our temp dirs still get cleaned up if the user does a Ctrl-C...
lib/Plack/App/RapidApp/rDbic.pm:15:# todo - this might be overstepping, but what else can be done??
lib/Plack/App/RapidApp/rDbic.pm:32:  my ($dsn,$user,$pass) = $self->has_schema
lib/Plack/App/RapidApp/rDbic.pm:34:    : split(/\,/,$self->dsn,3);
lib/Plack/App/RapidApp/rDbic.pm:46:  ( $self->has_schema ||
lib/Plack/App/RapidApp/rDbic.pm:47:    $self->has_connect_info
lib/Plack/App/RapidApp/rDbic.pm:50:  my $info = $self->connect_info;
lib/Plack/App/RapidApp/rDbic.pm:52:  my $dsn = $info->{dsn} or die "dsn must be supplied in connect_info";
lib/Plack/App/RapidApp/rDbic.pm:53:  return $dsn unless ($info->{user} || $info->{user} ne '');
lib/Plack/App/RapidApp/rDbic.pm:57:    $info->{user}, $info->{password}
lib/Plack/App/RapidApp/rDbic.pm:63:  isa => Enum[qw/editable edit-instant edit-gridadd ed-inst-gridadd read-only/],
lib/Plack/App/RapidApp/rDbic.pm:86:  my ($class, $i) = ($self->_def_ns_pfx,0);
lib/Plack/App/RapidApp/rDbic.pm:87:  $class = join('',$self->_def_ns_pfx,++$i) while( is_class_loaded $class );
lib/Plack/App/RapidApp/rDbic.pm:94:  $self->prepare_app;
lib/Plack/App/RapidApp/rDbic.pm:95:  $self->app_namespace->model($self->model_name)->schema
lib/Plack/App/RapidApp/rDbic.pm:100:  $self->has_schema 
lib/Plack/App/RapidApp/rDbic.pm:101:    ? blessed $self->schema
lib/Plack/App/RapidApp/rDbic.pm:102:    : join('::',$self->app_namespace,$self->model_name)
lib/Plack/App/RapidApp/rDbic.pm:110:  default => sub { File::Spec->tmpdir };
lib/Plack/App/RapidApp/rDbic.pm:115:  -d $self->tmpdir or die "tmpdir doesn't exist";
lib/Plack/App/RapidApp/rDbic.pm:118:    'rdbic-tmp-XXXXX',
lib/Plack/App/RapidApp/rDbic.pm:119:    DIR      => $self->tmpdir,
lib/Plack/App/RapidApp/rDbic.pm:120:    CLEANUP  => !$self->no_cleanup,
lib/Plack/App/RapidApp/rDbic.pm:131:  my $name = $self->app_namespace;
lib/Plack/App/RapidApp/rDbic.pm:132:  $name =~ s/\:\:/\-/g;
lib/Plack/App/RapidApp/rDbic.pm:134:  my $app_dir = $self->workdir->subdir( $name );
lib/Plack/App/RapidApp/rDbic.pm:135:  $app_dir->mkpath(1);
lib/Plack/App/RapidApp/rDbic.pm:145:  my $tmp = $self->workdir->subdir( 'tmp' );
lib/Plack/App/RapidApp/rDbic.pm:146:  $tmp->mkpath(1);
lib/Plack/App/RapidApp/rDbic.pm:155:  $self->isolate_app_tmp
lib/Plack/App/RapidApp/rDbic.pm:156:    ? $self->local_tmp
lib/Plack/App/RapidApp/rDbic.pm:157:    : dir( Catalyst::Utils::class2tempdir( $self->app_namespace ) )
lib/Plack/App/RapidApp/rDbic.pm:164:  &_guess_model_name_from_dsn( $self->dsn )
lib/Plack/App/RapidApp/rDbic.pm:169:  my $class = join('::',$self->app_namespace,'Model',$self->model_name);
lib/Plack/App/RapidApp/rDbic.pm:180:  my $tempdir = $self->app_tmp->stringify;
lib/Plack/App/RapidApp/rDbic.pm:187:  $self->_bootstrap
lib/Plack/App/RapidApp/rDbic.pm:194:  my $name = $self->app_namespace;
lib/Plack/App/RapidApp/rDbic.pm:196:  # Handle user-supplied, existing/connected schema object:
lib/Plack/App/RapidApp/rDbic.pm:197:  if($self->has_schema) {
lib/Plack/App/RapidApp/rDbic.pm:199:    ##  -----
lib/Plack/App/RapidApp/rDbic.pm:203:    #unless($self->schema->storage->_sql_maker_opts->{quote_names}) {
lib/Plack/App/RapidApp/rDbic.pm:206:    #    blessed $self->schema
lib/Plack/App/RapidApp/rDbic.pm:208:    #  $self->schema->storage->_sql_maker_opts->{quote_names} = 1;
lib/Plack/App/RapidApp/rDbic.pm:209:    #  $self->schema->storage->_sql_maker(undef);
lib/Plack/App/RapidApp/rDbic.pm:210:    #  $self->schema->storage->sql_maker;
lib/Plack/App/RapidApp/rDbic.pm:212:    ## -----
lib/Plack/App/RapidApp/rDbic.pm:220:      $o->schema( $self->schema );
lib/Plack/App/RapidApp/rDbic.pm:229:  $name->apply_default_middlewares( $name->psgi_app )
lib/Plack/App/RapidApp/rDbic.pm:239:  local *Catalyst::Utils::class2tempdir = sub { $self->app_tmp->stringify };
lib/Plack/App/RapidApp/rDbic.pm:241: $self->_catalyst_psgi_app 
lib/Plack/App/RapidApp/rDbic.pm:250:  local *Catalyst::Utils::class2tempdir = sub { $self->app_tmp->stringify };
lib/Plack/App/RapidApp/rDbic.pm:252:  $self->_catalyst_psgi_app->($env);
lib/Plack/App/RapidApp/rDbic.pm:258:  my $name = $self->app_namespace;
lib/Plack/App/RapidApp/rDbic.pm:263:  my $extra = { map { $_ => scalar $self->$_ } @keys };
lib/Plack/App/RapidApp/rDbic.pm:265:  $extra->{'loader-option'}  = $self->loader_options;
lib/Plack/App/RapidApp/rDbic.pm:266:  $extra->{'connect-option'} = $self->connect_options;
lib/Plack/App/RapidApp/rDbic.pm:268:  my $helper = RapidApp::Helper->new_with_traits({
lib/Plack/App/RapidApp/rDbic.pm:271:        dsn            => $self->dsn,
lib/Plack/App/RapidApp/rDbic.pm:272:        'model-name'   => $self->model_name,
lib/Plack/App/RapidApp/rDbic.pm:273:        'schema-class' => $self->schema_class,
lib/Plack/App/RapidApp/rDbic.pm:274:        crud_profile   => $self->crud_profile,
lib/Plack/App/RapidApp/rDbic.pm:275:        total_counts_off => $self->total_counts_off,
lib/Plack/App/RapidApp/rDbic.pm:280:      dir    => $self->app_dir,
lib/Plack/App/RapidApp/rDbic.pm:283:  $helper->mk_app( $name ) or die "mk_app failed";
lib/Plack/App/RapidApp/rDbic.pm:285:  if (my $config = $self->model_config) {
lib/Plack/App/RapidApp/rDbic.pm:287:      $self->model_class->config || {},
lib/Plack/App/RapidApp/rDbic.pm:290:    $self->model_class->config( $new_cfg );
lib/Plack/App/RapidApp/rDbic.pm:293:  if($self->has_connect_info) {
lib/Plack/App/RapidApp/rDbic.pm:295:      $self->model_class->config->{connect_info} || {},
lib/Plack/App/RapidApp/rDbic.pm:296:      $self->connect_info
lib/Plack/App/RapidApp/rDbic.pm:298:    $self->model_class->config( connect_info => $new_info );
lib/Plack/App/RapidApp/rDbic.pm:309:  if($self->has_workdir && -d $self->workdir) {
lib/Plack/App/RapidApp/rDbic.pm:310:    my $tmp = $self->workdir;
lib/Plack/App/RapidApp/rDbic.pm:311:    if($self->no_cleanup) {
lib/Plack/App/RapidApp/rDbic.pm:317:    #  $tmp->rmtree;
lib/Plack/App/RapidApp/rDbic.pm:318:    #  -d $tmp 
lib/Plack/App/RapidApp/rDbic.pm:333:  # camelize doesn't handle '-' for us but its a bad class name! (GitHub Issue #124)
lib/Plack/App/RapidApp/rDbic.pm:334:  $dsn =~ s/\-/_/g; 
lib/Plack/App/RapidApp/rDbic.pm:336:  my $name = 'DB'; #<-- default
lib/Plack/App/RapidApp/rDbic.pm:345:  $name = camelize($drv); #<-- second default
lib/Plack/App/RapidApp/rDbic.pm:347:  # We don't know how to handle more than 3 colon-separated vals
lib/Plack/App/RapidApp/rDbic.pm:353:  return camelize($parm_info) if ($parm_info =~ /^[0-9a-zA-Z\-\_]+$/);
lib/Plack/App/RapidApp/rDbic.pm:358:  camelize( $name =~ /^[0-9a-zA-Z\-\_]+$/ ? $name : $drv )
lib/Plack/App/RapidApp/rDbic.pm:413:Plack::App::RapidApp::rDbic - Instant database CRUD using RapidApp
lib/Plack/App/RapidApp/rDbic.pm:419: $app = Plack::App::RapidApp::rDbic->new({
lib/Plack/App/RapidApp/rDbic.pm:425: })->to_app;
lib/Plack/App/RapidApp/rDbic.pm:428: $app = Plack::App::RapidApp::rDbic->new({
lib/Plack/App/RapidApp/rDbic.pm:435: })->to_app;
lib/Plack/App/RapidApp/rDbic.pm:438: my $schema = My::Schema->connect('dbi:SQLite:my_sqlt.db');
lib/Plack/App/RapidApp/rDbic.pm:439: $app = Plack::App::RapidApp::rDbic->new({
lib/Plack/App/RapidApp/rDbic.pm:441: })->to_app;
lib/Plack/App/RapidApp/rDbic.pm:445:This module provides a Plack interface to a runtime-generated database CRUD application. 
lib/Plack/App/RapidApp/rDbic.pm:452:as a command-line script.
lib/Plack/App/RapidApp/rDbic.pm:486:generated on-the-fly using L<DBIx::Class::Schema::Loader>.
lib/Plack/App/RapidApp/rDbic.pm:509:means the user has to click "Save" to apply queued-up changes
lib/Plack/App/RapidApp/rDbic.pm:511:=item edit-instant
lib/Plack/App/RapidApp/rDbic.pm:516:=item edit-gridadd
lib/Plack/App/RapidApp/rDbic.pm:521:=item ed-inst-gridadd
lib/Plack/App/RapidApp/rDbic.pm:523:Same as 'edit-instant' except new rows are added directly to the grid;
lib/Plack/App/RapidApp/rDbic.pm:526:=item read-only
lib/Plack/App/RapidApp/rDbic.pm:532:For more fine-grained control, RapidDbic configs can also be applied in C<model_config>.
lib/Plack/App/RapidApp/rDbic.pm:548:automatically generated directory C<'rdbic-tmp-XXXXX'> within C<tmpdir> which is automatically 
lib/Plack/App/RapidApp/rDbic.pm:568:Name of the C<Model::DBIC> in the generated app. Defaults to an auto-generated name based on the 
lib/Plack/App/RapidApp/rDbic.pm:605:This has the same effect as C<-o> options supplied to L<dbicdump>. For a complete list of
lib/Plack/App/RapidApp/rDbic.pm:642:L<Catalyst Advent 2014 - Day 16|http://www.catalystframework.org/calendar/2014/16>
lib/Plack/App/RapidApp/rDbic.pm:646:L<Catalyst Advent 2014 - Day 17|http://www.catalystframework.org/calendar/2014/17>
lib/Rapi.pm:15:Rapi - Namespace for RapidApp-based apps
lib/RapidApp.pm:35:  RapidApp::Builder->new( @_ )
lib/RapidApp.pm:39:# Private - will be removed in the future:
lib/RapidApp.pm:52:RapidApp - Turnkey ajaxy webapps
lib/RapidApp.pm:59:  rapidapp.pl --helpers RapidDbic,Templates,TabGui,AuthCore,NavCore MyApp \
lib/RapidApp.pm:60:    -- --dsn dbi:mysql:database=somedb,root,''
lib/RapidApp.pm:67:  rapidapp.pl --helpers RapidDbic MyApp -- --from-sqlite-ddl my-sqlt-schema.sql
lib/RapidApp.pm:75:RapidApp is an extension to L<Catalyst> - the Perl MVC framework. It provides a feature-rich
lib/RapidApp.pm:76:extended development stack, as well as easy access to common out-of-the-box application paradigms, 
lib/RapidApp.pm:77:such as powerful CRUD-based front-ends for L<DBIx::Class> models, user access and authorization, 
lib/RapidApp.pm:79:with front-side CMS features, declarative configuration layers, and more...
lib/RapidApp.pm:82:and snap-in components to existing applications, as well as for rapid prototyping.
lib/RapidApp.pm:89:ever since. It has been used very successfully for multiple medium to large-scale client 
lib/RapidApp.pm:93:We started open-sourcing RapidApp in 2013, and this work is ongoing...
lib/RapidApp.pm:95:RapidApp is built on top of a number of powerful open-source tools and technologies including:
lib/RapidApp.pm:121:Documentation is still a work-in-progress. Much of it has been done, but much of it still
lib/RapidApp/AttributeHandlers.pm:18:# require base; base->import('DBIx::Class');
lib/RapidApp/AttributeHandlers.pm:29:# See my IRC chat in #dbix-class on 2011-11-05:
lib/RapidApp/AttributeHandlers.pm:42:#[16:05] * siracusa (~siracusa@pool-96-233-50-4.bstnma.fios.verizon.net) has joined #dbix-class
lib/RapidApp/AttributeHandlers.pm:43:#[16:32] <@Caelum> vs: you need to put the ->load_components call into a BEGIN {} block
lib/RapidApp/AttributeHandlers.pm:54:#[16:36] <@Caelum> try: require base; base->import('DBIx::Class');
lib/RapidApp/AttributeHandlers.pm:75:	die __PACKAGE__ . '::Debug(): invalid attribute data: "' . $data . '" - expected hash/list arguments' 
lib/RapidApp/Builder.pm:6:# ABSTRACT: Plack-compatable, runtime-generated RapidApp loader
lib/RapidApp/Builder.pm:24:  if(my $base_cnf = $self->base_config) {
lib/RapidApp/Builder.pm:25:    %{ $self->config } = %{
lib/RapidApp/Builder.pm:27:        $base_cnf, $self->config
lib/RapidApp/Builder.pm:32:  if (my $list = $self->inject_components) {
lib/RapidApp/Builder.pm:33:    $self->config->{ra_inject_components} ||= [];
lib/RapidApp/Builder.pm:34:    push @{ $self->config->{ra_inject_components} }, @$list;
lib/RapidApp/Builder.pm:37:  # Save a reference to the builder in the config - exposed via $c->ra_builder
lib/RapidApp/Builder.pm:38:  $self->config->{_ra_builder} = $self;
lib/RapidApp/Builder.pm:46:  my $base = $self->base_appname or die "Must supply either 'appname' or 'base_appname'";
lib/RapidApp/Builder.pm:59:# -- base_plugins and base_config are optional, private attrs that are available
lib/RapidApp/Builder.pm:66:# --
lib/RapidApp/Builder.pm:72:sub _build_version { (shift)->VERSION }
lib/RapidApp/Builder.pm:79:    @{ $self->base_plugins },
lib/RapidApp/Builder.pm:80:    @{ $self->$orig(@args) }
lib/RapidApp/Builder.pm:84:  unshift @plugins, '-Debug' if ($self->debug);
lib/RapidApp/Builder.pm:92:after 'bootstrap' => sub { (shift)->_bootstrap_called(1) };
lib/RapidApp/Builder.pm:96:  $self->_bootstrap_called ? 1 : $self->bootstrap(@_)
lib/RapidApp/Builder.pm:101:  $self->ensure_bootstrapped(1);
lib/RapidApp/Builder.pm:103:  my $c = $self->appname;
lib/RapidApp/Builder.pm:104:  $c->apply_default_middlewares($c->psgi_app)
lib/RapidApp/Builder.pm:108:sub psgi_app { (shift)->to_app(@_) }
lib/RapidApp/Builder.pm:112:sub prepare_app { (shift)->ensure_bootstrapped }
lib/RapidApp/Builder.pm:116:  $self->_psgi_app->($env)
lib/RapidApp/Builder.pm:126:RapidApp::Builder - Plack-compatable, runtime-generated RapidApp loader
lib/RapidApp/Builder.pm:132: my $builder = RapidApp::Builder->new(
lib/RapidApp/Builder.pm:140: $builder->to_app
lib/RapidApp/Builder.pm:166:List of Catalyst plugins to load. The plugin 'RapidApp' is always loaded, and '-Debug' is loaded
lib/RapidApp/Builder.pm:172:application. These should be specified as 2-value ArrayRefs with the class name to inject as
lib/RapidApp/Builder.pm:184:Boolean flag to enable debug output in the application. When set, adds C<-Debug> to the plugins 
lib/RapidApp/Controller/DefaultRoot.pm:23:This module (like any other RapidApp module) needs to have a list of its sub-modules.
lib/RapidApp/Controller/DefaultRoot.pm:44:  __PACKAGE__->config( namespace => '' );
lib/RapidApp/Controller/DefaultRoot.pm:48:    $self->dispatch($c, @args);
lib/RapidApp/Controller/DefaultRoot.pm:54:  __PACKAGE__->meta->make_immutable;
lib/RapidApp/Controller/DefaultRoot.pm:67:  my $module_root_namespace = $app_class->module_root_namespace;
lib/RapidApp/Controller/DefaultRoot.pm:68:  $class->config( namespace => $module_root_namespace || '' );
lib/RapidApp/Controller/DefaultRoot.pm:71:sub process { (shift)->approot(@_) }
lib/RapidApp/Controller/DefaultRoot.pm:73:# --- Update to GitHub PR #142 ---
lib/RapidApp/Controller/DefaultRoot.pm:76:# 'approot' is the special controller action which is the catch-all that hands
lib/RapidApp/Controller/DefaultRoot.pm:77:# off the dispatch into the Module controller hierarchy, which is a very non-standard
lib/RapidApp/Controller/DefaultRoot.pm:80:# controllers - which we don't want - so for now we're switching just this action 
lib/RapidApp/Controller/DefaultRoot.pm:82:# in PR #142 are working fine and will be kept as-is, since :Chained is still preferred.
lib/RapidApp/Controller/DefaultRoot.pm:92:    $url =~ s/^\///; #<-- strip the leading '/' (needed for split below)
lib/RapidApp/Controller/DefaultRoot.pm:95:    my $ns = $self->config->{namespace};
lib/RapidApp/Controller/DefaultRoot.pm:101:  $self->dispatch($c, @args);
lib/RapidApp/Controller/DefaultRoot.pm:107:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Controller/DirectCmp.pm:20:  return $self->direct($c,@args);
lib/RapidApp/Controller/DirectCmp.pm:25:  $c->stash->{render_viewport} = 1;
lib/RapidApp/Controller/DirectCmp.pm:26:  $self->_redispatch_viewport($c,@args)
lib/RapidApp/Controller/DirectCmp.pm:31:  $c->stash->{render_viewport} = 'printview';
lib/RapidApp/Controller/DirectCmp.pm:32:  $self->_redispatch_viewport($c,@args)
lib/RapidApp/Controller/DirectCmp.pm:37:  $c->stash->{render_viewport} = 'navable';
lib/RapidApp/Controller/DirectCmp.pm:38:  $self->_redispatch_viewport($c,@args)
lib/RapidApp/Controller/DirectCmp.pm:44:  $c->stash->{config_url}    = join('/','',@args);
lib/RapidApp/Controller/DirectCmp.pm:45:  $c->stash->{config_params} = { %{$c->req->params} };
lib/RapidApp/Controller/DirectCmp.pm:47:  $c->req->params->{__no_hashnav_redirect} = 1;
lib/RapidApp/Controller/DirectCmp.pm:49:  return $c->redispatch_public_path(@args);
lib/RapidApp/Controller/DirectCmp.pm:56:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema.pm:12:__PACKAGE__->load_namespaces;
lib/RapidApp/CoreSchema.pm:15:#__PACKAGE__->meta->make_immutable(inline_constructor => 0);
lib/RapidApp/CoreSchema/Result/DefaultView.pm:11:__PACKAGE__->table("default_view");
lib/RapidApp/CoreSchema/Result/DefaultView.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/DefaultView.pm:25:__PACKAGE__->set_primary_key("source_model");
lib/RapidApp/CoreSchema/Result/DefaultView.pm:28:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/DefaultView.pm:41:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/DefaultView.pm:42:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/DefaultView.pm:44:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/DefaultView.pm:47:	iconCls => 'ra-icon-data-preferences',
lib/RapidApp/CoreSchema/Result/DefaultView.pm:48:	multiIconCls => 'ra-icon-data-preferences',
lib/RapidApp/CoreSchema/Result/DefaultView.pm:52:__PACKAGE__->TableSpec_set_conf('column_properties_ordered', 
lib/RapidApp/CoreSchema/Result/DefaultView.pm:73:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:11:__PACKAGE__->table("deploy_info");
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:44:__PACKAGE__->set_primary_key("md5");
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:47:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:48:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:54:}) } __PACKAGE__->columns };
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:55:$col_props->{deployed_ddl}->{hidden} = \1;
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:57:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:60:	#iconCls => 'ra-icon-data-view',
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:61:	#multiIconCls => 'ra-icon-data-views',
lib/RapidApp/CoreSchema/Result/DeployInfo.pm:69:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:11:__PACKAGE__->table("navtree_node");
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:38:__PACKAGE__->set_primary_key("id");
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:41:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:54:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:62:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:70:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:82:  # Fail-safe: prevent changes to the 'DUMMY ROOT NODE' (id 0)
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:83:  if ($self->get_column('id') == 0) {
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:86:    # node which is a harmless side-effect which we are just silently ignoring.
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:91:  return $self->next::method(@_);
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:95:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:96:__PACKAGE__->TableSpec_m2m( roles => 'navtree_node_to_roles', 'role' );
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:97:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:99:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:102:	#iconCls => 'ra-icon-folder',
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:103:	#multiIconCls => 'ra-icon-folders',
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:108:__PACKAGE__->TableSpec_set_conf('column_properties_ordered', 
lib/RapidApp/CoreSchema/Result/NavtreeNode.pm:154:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:11:__PACKAGE__->table("navtree_node_to_role");
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:24:__PACKAGE__->set_primary_key("node_id", "role");
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:26:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:34:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:42:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:43:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:45:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:48:	#iconCls => 'ra-icon-arrow-sprocket',
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:49:	#multiIconCls => 'ra-icon-arrow-sprockets',
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:54:__PACKAGE__->TableSpec_set_conf('column_properties_ordered', 
lib/RapidApp/CoreSchema/Result/NavtreeNodeToRole.pm:72:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/Request.pm:11:__PACKAGE__->table('request');
lib/RapidApp/CoreSchema/Result/Request.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/Request.pm:48:__PACKAGE__->set_primary_key("id");
lib/RapidApp/CoreSchema/Result/Request.pm:50:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/Request.pm:63:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/Request.pm:65:## This is MySQL-specific
lib/RapidApp/CoreSchema/Result/Request.pm:66:#__PACKAGE__->add_virtual_columns(
lib/RapidApp/CoreSchema/Result/Request.pm:72:#			'CONCAT(" - ",' .
lib/RapidApp/CoreSchema/Result/Request.pm:83:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/Request.pm:85:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/Request.pm:88:	#iconCls => 'ra-icon-world-go',
lib/RapidApp/CoreSchema/Result/Request.pm:89:	#multiIconCls => 'ra-icon-world-gos',
lib/RapidApp/CoreSchema/Result/Request.pm:94:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/Role.pm:11:__PACKAGE__->table('role');
lib/RapidApp/CoreSchema/Result/Role.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/Role.pm:26:__PACKAGE__->set_primary_key("id");
lib/RapidApp/CoreSchema/Result/Role.pm:27:__PACKAGE__->add_unique_constraint("role_name", ["role"]);
lib/RapidApp/CoreSchema/Result/Role.pm:29:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/Role.pm:36:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/Role.pm:43:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/Role.pm:44:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/Role.pm:46:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/Role.pm:49:	iconCls => 'ra-icon-user-pref',
lib/RapidApp/CoreSchema/Result/Role.pm:50:	multiIconCls => 'ra-icon-user-prefs',
lib/RapidApp/CoreSchema/Result/Role.pm:55:__PACKAGE__->TableSpec_set_conf('column_properties_ordered', 
lib/RapidApp/CoreSchema/Result/Role.pm:72:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/SavedState.pm:11:__PACKAGE__->table("saved_state");
lib/RapidApp/CoreSchema/Result/SavedState.pm:14:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/SavedState.pm:49:__PACKAGE__->set_primary_key("id");
lib/RapidApp/CoreSchema/Result/SavedState.pm:52:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/SavedState.pm:64:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/SavedState.pm:79:	#my $params = $self->decoded_params;
lib/RapidApp/CoreSchema/Result/SavedState.pm:80:	#$params->{search_id} = $self->get_column('id');
lib/RapidApp/CoreSchema/Result/SavedState.pm:82:  my $url = '/view/' . $self->get_column('id');
lib/RapidApp/CoreSchema/Result/SavedState.pm:85:  $url = $self->url unless($self->params || $self->state_data);
lib/RapidApp/CoreSchema/Result/SavedState.pm:88:		title		=> $self->title,
lib/RapidApp/CoreSchema/Result/SavedState.pm:89:		iconCls	=> $self->iconcls,
lib/RapidApp/CoreSchema/Result/SavedState.pm:93:			#url => $self->url,
lib/RapidApp/CoreSchema/Result/SavedState.pm:106:  return $self->params || $self->state_data ? undef : { 
lib/RapidApp/CoreSchema/Result/SavedState.pm:107:    url     => $self->url,
lib/RapidApp/CoreSchema/Result/SavedState.pm:108:    iconcls => $self->iconcls
lib/RapidApp/CoreSchema/Result/SavedState.pm:113:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/SavedState.pm:114:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/SavedState.pm:116:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/SavedState.pm:119:	iconCls => 'ra-icon-data-view',
lib/RapidApp/CoreSchema/Result/SavedState.pm:120:	multiIconCls => 'ra-icon-data-views',
lib/RapidApp/CoreSchema/Result/SavedState.pm:125:__PACKAGE__->TableSpec_set_conf('column_properties_ordered', 
lib/RapidApp/CoreSchema/Result/SavedState.pm:189:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/Session.pm:11:__PACKAGE__->table('session');
lib/RapidApp/CoreSchema/Result/Session.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/Session.pm:39:__PACKAGE__->set_primary_key('id');
lib/RapidApp/CoreSchema/Result/Session.pm:41:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/Session.pm:60:  $self->_set_extra_columns(@_);
lib/RapidApp/CoreSchema/Result/Session.pm:61:  return $self->next::method;
lib/RapidApp/CoreSchema/Result/Session.pm:68:  $self->_set_extra_columns(@args);
lib/RapidApp/CoreSchema/Result/Session.pm:79:    $self->$orig
lib/RapidApp/CoreSchema/Result/Session.pm:82:    $self = $self->result_source->resultset->create(
lib/RapidApp/CoreSchema/Result/Session.pm:83:      { $self->get_columns }
lib/RapidApp/CoreSchema/Result/Session.pm:93:	$self->set_inflated_columns($columns) if $columns;
lib/RapidApp/CoreSchema/Result/Session.pm:95:  my $expires = $self->get_column('expires');
lib/RapidApp/CoreSchema/Result/Session.pm:96:  $self->set_column( expires_ts => DateTime->from_epoch(
lib/RapidApp/CoreSchema/Result/Session.pm:101:  my $data = $self->decoded_session_data;
lib/RapidApp/CoreSchema/Result/Session.pm:103:    my $user_id = try{$data->{__user}{id}};
lib/RapidApp/CoreSchema/Result/Session.pm:104:    $self->set_column( user_id => $user_id );
lib/RapidApp/CoreSchema/Result/Session.pm:110:  my $value = $self->get_column('session_data') or return undef;
lib/RapidApp/CoreSchema/Result/Session.pm:114:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/Session.pm:115:__PACKAGE__->add_virtual_columns(
lib/RapidApp/CoreSchema/Result/Session.pm:123:      'SELECT (self.expires - '.(time()).')'
lib/RapidApp/CoreSchema/Result/Session.pm:127:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/Session.pm:129:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/Session.pm:132:  iconCls => 'ra-icon-environment-network',
lib/RapidApp/CoreSchema/Result/Session.pm:133:  multiIconCls => 'ra-icon-environment-network',
lib/RapidApp/CoreSchema/Result/Session.pm:162:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/User.pm:13:__PACKAGE__->load_components("InflateColumn::DateTime","PassphraseColumn");
lib/RapidApp/CoreSchema/Result/User.pm:15:__PACKAGE__->table('user');
lib/RapidApp/CoreSchema/Result/User.pm:17:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/User.pm:61:__PACKAGE__->set_primary_key("id");
lib/RapidApp/CoreSchema/Result/User.pm:62:__PACKAGE__->add_unique_constraint("username", ["username"]);
lib/RapidApp/CoreSchema/Result/User.pm:64:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/User.pm:71:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/User.pm:78:__PACKAGE__->has_many(
lib/RapidApp/CoreSchema/Result/User.pm:86:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/User.pm:87:__PACKAGE__->TableSpec_m2m( roles => "user_to_roles", 'role');
lib/RapidApp/CoreSchema/Result/User.pm:89:# ----
lib/RapidApp/CoreSchema/Result/User.pm:91:# provides a column-based interface to set the password, optionally
lib/RapidApp/CoreSchema/Result/User.pm:95:__PACKAGE__->mk_classdata( 'authen_passphrase_class' );
lib/RapidApp/CoreSchema/Result/User.pm:96:__PACKAGE__->mk_classdata( 'authen_passphrase_params' );
lib/RapidApp/CoreSchema/Result/User.pm:97:__PACKAGE__->add_virtual_columns( set_pw => {
lib/RapidApp/CoreSchema/Result/User.pm:104:      if($self->authen_passphrase_class) {
lib/RapidApp/CoreSchema/Result/User.pm:106:          %{ $self->authen_passphrase_params || {} },
lib/RapidApp/CoreSchema/Result/User.pm:110:        $pw = $self->authen_passphrase_class->new(%params);
lib/RapidApp/CoreSchema/Result/User.pm:115:        my $pf = $pw->can('as_rfc2307') 
lib/RapidApp/CoreSchema/Result/User.pm:116:          ? $pw->as_rfc2307 : join('','{CRYPT}',$pw->as_crypt);
lib/RapidApp/CoreSchema/Result/User.pm:118:        $self->store_column( password => $pf );
lib/RapidApp/CoreSchema/Result/User.pm:119:        $self->make_column_dirty('password');
lib/RapidApp/CoreSchema/Result/User.pm:122:        $self->password($pw);
lib/RapidApp/CoreSchema/Result/User.pm:124:      $self->update;
lib/RapidApp/CoreSchema/Result/User.pm:128:# ----
lib/RapidApp/CoreSchema/Result/User.pm:130:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/User.pm:136:  $self->{_linkedRow} //= do {
lib/RapidApp/CoreSchema/Result/User.pm:138:    if($self->can('_find_linkedRow')) {
lib/RapidApp/CoreSchema/Result/User.pm:139:      $Row = $self->_find_linkedRow || $self->_create_linkedRow;
lib/RapidApp/CoreSchema/Result/User.pm:146:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/User.pm:149:	iconCls => 'ra-icon-businessman',
lib/RapidApp/CoreSchema/Result/User.pm:150:	multiIconCls => 'ra-icon-businessmen',
lib/RapidApp/CoreSchema/Result/User.pm:187:      editor => { xtype => 'ra-change-password-field' },
lib/RapidApp/CoreSchema/Result/User.pm:195:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/Result/UserToRole.pm:11:__PACKAGE__->table('user_to_role');
lib/RapidApp/CoreSchema/Result/UserToRole.pm:13:__PACKAGE__->add_columns(
lib/RapidApp/CoreSchema/Result/UserToRole.pm:19:__PACKAGE__->set_primary_key("username", "role");
lib/RapidApp/CoreSchema/Result/UserToRole.pm:21:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/UserToRole.pm:28:__PACKAGE__->belongs_to(
lib/RapidApp/CoreSchema/Result/UserToRole.pm:36:__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/CoreSchema/Result/UserToRole.pm:37:__PACKAGE__->apply_TableSpec;
lib/RapidApp/CoreSchema/Result/UserToRole.pm:39:__PACKAGE__->TableSpec_set_conf( 
lib/RapidApp/CoreSchema/Result/UserToRole.pm:42:	#iconCls => 'ra-icon-node',
lib/RapidApp/CoreSchema/Result/UserToRole.pm:43:	#multiIconCls => 'ra-icon-user1-preferences-many',
lib/RapidApp/CoreSchema/Result/UserToRole.pm:48:__PACKAGE__->meta->make_immutable;
lib/RapidApp/CoreSchema/ResultSet/Request.pm:18:    $ReqData->can('request') &&
lib/RapidApp/CoreSchema/ResultSet/Request.pm:19:    $ReqData->request->isa('Catalyst::Request')
lib/RapidApp/CoreSchema/ResultSet/Request.pm:21:  $ReqData = $c->request if ($c);
lib/RapidApp/CoreSchema/ResultSet/Request.pm:24:	my $dt = $extra->{unix_timestamp} ? 
lib/RapidApp/CoreSchema/ResultSet/Request.pm:25:		DateTime->from_epoch(epoch => $extra->{unix_timestamp}, time_zone => 'local') : 
lib/RapidApp/CoreSchema/ResultSet/Request.pm:26:			DateTime->now( time_zone => 'local' );
lib/RapidApp/CoreSchema/ResultSet/Request.pm:29:		timestamp => $dt->ymd . ' ' . $dt->hms(':'),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:30:		serialized_request => $extra->{full_request_yaml} || ''
lib/RapidApp/CoreSchema/ResultSet/Request.pm:35:			client_ip => $ReqData->{address} || $ReqData->{client_ip},
lib/RapidApp/CoreSchema/ResultSet/Request.pm:36:			uri => $ReqData->{uri},
lib/RapidApp/CoreSchema/ResultSet/Request.pm:37:			method => $ReqData->{method},
lib/RapidApp/CoreSchema/ResultSet/Request.pm:38:			user_agent => $ReqData->{user_agent},
lib/RapidApp/CoreSchema/ResultSet/Request.pm:39:			referer => $ReqData->{referer},
lib/RapidApp/CoreSchema/ResultSet/Request.pm:42:	elsif(try{$ReqData->isa('Catalyst::Request')}) {
lib/RapidApp/CoreSchema/ResultSet/Request.pm:44:			client_ip => ($ReqData->address || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:45:			uri => ($ReqData->uri || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:46:			method => ($ReqData->method || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:47:			user_agent => ($ReqData->header('user-agent') || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:48:			referer => ($ReqData->header('referer') || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:50:    $data->{user_id} = $c->user->get_column('id') if ($c && try{$c->user});
lib/RapidApp/CoreSchema/ResultSet/Request.pm:56:  return $self->create($data) if(defined wantarray);
lib/RapidApp/CoreSchema/ResultSet/Request.pm:59:	$self->populate([$data]);
lib/RapidApp/CoreSchema/ResultSet/Request.pm:68:  my $Request = $c->request or return undef;
lib/RapidApp/CoreSchema/ResultSet/Request.pm:71:    client_ip => ($Request->address || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:72:    uri => ($Request->uri || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:73:    method => ($Request->method || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:74:    user_agent => ($Request->header('user-agent') || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:75:    referer => ($Request->header('referer') || undef),
lib/RapidApp/CoreSchema/ResultSet/Request.pm:76:    timestamp => DateTime->now( time_zone => 'local' )
lib/RapidApp/CoreSchema/ResultSet/Request.pm:79:  return $self->create($data) if(defined wantarray);
lib/RapidApp/CoreSchema/ResultSet/Request.pm:82:	$self->populate([$data]);
lib/RapidApp/DBIC/Component/LinkedResult.pm:12:  my $Source = $self->result_source->{_linked_source} or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:13:  $Source->resultset
lib/RapidApp/DBIC/Component/LinkedResult.pm:18:  $self->result_source->{_linked_key_column}
lib/RapidApp/DBIC/Component/LinkedResult.pm:23:  $self->result_source->{_linked_shared_columns}
lib/RapidApp/DBIC/Component/LinkedResult.pm:28:  my $Rs = $self->_get_linkedRs or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:29:  my $key = $self->_get_linked_key_column or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:30:  $Rs->search_rs({ $key => $self->$key })
lib/RapidApp/DBIC/Component/LinkedResult.pm:31:    ->first
lib/RapidApp/DBIC/Component/LinkedResult.pm:36:  if($pullRow->can('_linkedRow_pull_set_columns')) {
lib/RapidApp/DBIC/Component/LinkedResult.pm:37:    $pullRow->_linkedRow_pull_set_columns($pushRow);
lib/RapidApp/DBIC/Component/LinkedResult.pm:42:  $_[0]->maybe::next::method($_[1])
lib/RapidApp/DBIC/Component/LinkedResult.pm:47:  my $shared_cols = $pushRow->_get_linked_shared_columns or die "failed _get_linked_shared_columns";  
lib/RapidApp/DBIC/Component/LinkedResult.pm:48:  $pullRow->$_( $pushRow->$_ ) for (@$shared_cols);
lib/RapidApp/DBIC/Component/LinkedResult.pm:49:  $_[0]->maybe::next::method($_[1])
lib/RapidApp/DBIC/Component/LinkedResult.pm:54:  my $Rs = $self->_get_linkedRs or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:55:  my $key = $self->_get_linked_key_column or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:56:  my $shared_cols = $self->_get_linked_shared_columns or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:58:  my $Row = $Rs->new({});
lib/RapidApp/DBIC/Component/LinkedResult.pm:59:  $self->_linkedRow_set_columns($Row);
lib/RapidApp/DBIC/Component/LinkedResult.pm:60:  local $Row->{_pulling_linkedRow} = $self;
lib/RapidApp/DBIC/Component/LinkedResult.pm:62:  $Row->insert
lib/RapidApp/DBIC/Component/LinkedResult.pm:67:  my $shared_cols = $self->_get_linked_shared_columns or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:68:  $Row ||= $self->_find_linkedRow or return $self->_create_linkedRow;
lib/RapidApp/DBIC/Component/LinkedResult.pm:70:  local $Row->{_pulling_linkedRow} = $self;
lib/RapidApp/DBIC/Component/LinkedResult.pm:71:  $self->_linkedRow_set_columns($Row);
lib/RapidApp/DBIC/Component/LinkedResult.pm:72:  $Row->update
lib/RapidApp/DBIC/Component/LinkedResult.pm:77:  my $Row = $self->_find_linkedRow or return undef;
lib/RapidApp/DBIC/Component/LinkedResult.pm:79:  local $Row->{_pulling_linkedRow} = $self;
lib/RapidApp/DBIC/Component/LinkedResult.pm:80:  $Row->delete
lib/RapidApp/DBIC/Component/LinkedResult.pm:88:  $Row = $self->_find_linkedRow unless ($self->{_pulling_linkedRow});
lib/RapidApp/DBIC/Component/LinkedResult.pm:90:  $self->set_inflated_columns($columns) if $columns;
lib/RapidApp/DBIC/Component/LinkedResult.pm:92:  $self->_push_linkedRow($Row) unless ($self->{_pulling_linkedRow});
lib/RapidApp/DBIC/Component/LinkedResult.pm:94:  $self->next::method;
lib/RapidApp/DBIC/Component/LinkedResult.pm:100:  $self->set_inflated_columns($columns) if $columns;
lib/RapidApp/DBIC/Component/LinkedResult.pm:102:  $self->next::method;
lib/RapidApp/DBIC/Component/LinkedResult.pm:104:  $self->_push_linkedRow unless ($self->{_pulling_linkedRow});
lib/RapidApp/DBIC/Component/LinkedResult.pm:112:  $self->_delete_linkedRow unless ($self->{_pulling_linkedRow});
lib/RapidApp/DBIC/Component/LinkedResult.pm:114:  $self->next::method;
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:4:require base; base->import('DBIx::Class::Schema');
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:11:# Schema -- DEPRECATED - do not use
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:27:      $Source->schema->class($Source->source_name)->table
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:37:		my $path = $opt{get_path_code}->($Source);
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:39:		my ($disp) = ($Source->primary_columns,$Source->columns);
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:42:      $Source->schema->class($Source->source_name)->table
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:48:			#iconCls => 'ra-icon-page-white',
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:49:			#multiIconCls => 'ra-icon-folder',
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:63:	foreach my $source ($self->sources) {
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:64:		my $Source = $self->source($source);
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:65:		my $class = $self->class($source);
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:67:		$class->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:68:		$class->apply_TableSpec;
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:71:		$class->TableSpec_set_conf(
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:72:			$opt{set_conf_code}->($Source), # <-- conf returned by the dynamic 'set_conf_code' coderef
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:73:			%{ $opt{TableSpec_confs}->{$source} || {} }, # <-- (optional) static conf defined in the Schema class
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:79:      $col_props->{$_}{header} ||= $_ for ($class->TableSpec_valid_db_columns);
lib/RapidApp/DBIC/Component/SchemaTableSpec.pm:82:    $class->TableSpec_merge_columns_conf($col_props);
lib/RapidApp/DBIC/Component/TableSpec.pm:4:require base; base->import('DBIx::Class');
lib/RapidApp/DBIC/Component/TableSpec.pm:20:#__PACKAGE__->load_components(qw/IntrospectableM2M/);
lib/RapidApp/DBIC/Component/TableSpec.pm:22:__PACKAGE__->load_components('+RapidApp::DBIC::Component::VirtualColumnsExt');
lib/RapidApp/DBIC/Component/TableSpec.pm:24:__PACKAGE__->mk_classdata( 'TableSpec' );
lib/RapidApp/DBIC/Component/TableSpec.pm:25:__PACKAGE__->mk_classdata( 'TableSpec_rel_columns' );
lib/RapidApp/DBIC/Component/TableSpec.pm:27:__PACKAGE__->mk_classdata( 'TableSpec_cnf' );
lib/RapidApp/DBIC/Component/TableSpec.pm:28:__PACKAGE__->mk_classdata( 'TableSpec_built_cnf' );
lib/RapidApp/DBIC/Component/TableSpec.pm:62:  tsvector    => [ 'bigtext','unsearchable','virtual_source' ], #<-- postgres-specific
lib/RapidApp/DBIC/Component/TableSpec.pm:64:  ipaddr      => ['unsearchable'] #<-- postgres-specific
lib/RapidApp/DBIC/Component/TableSpec.pm:66:__PACKAGE__->mk_classdata( 'TableSpec_data_type_profiles' );
lib/RapidApp/DBIC/Component/TableSpec.pm:67:__PACKAGE__->TableSpec_data_type_profiles({ %$default_data_type_profiles }); 
lib/RapidApp/DBIC/Component/TableSpec.pm:70:## Sets up many_to_many along with TableSpec m2m multi-relationship column
lib/RapidApp/DBIC/Component/TableSpec.pm:75:	$self->is_TableSpec_applied and 
lib/RapidApp/DBIC/Component/TableSpec.pm:78:	$self->has_column($m2m) and die "'$m2m' is already defined as a column.";
lib/RapidApp/DBIC/Component/TableSpec.pm:79:	$self->has_relationship($m2m) and die "'$m2m' is already defined as a relationship.";
lib/RapidApp/DBIC/Component/TableSpec.pm:81:	my $rinfo = $self->relationship_info($local_rel) or die "'$local_rel' relationship not found";
lib/RapidApp/DBIC/Component/TableSpec.pm:82:	eval('require ' . $rinfo->{class});
lib/RapidApp/DBIC/Component/TableSpec.pm:85:		unless ($rinfo->{attrs}->{accessor} eq 'multi');
lib/RapidApp/DBIC/Component/TableSpec.pm:87:	my $rrinfo = $rinfo->{class}->relationship_info($remote_rel);
lib/RapidApp/DBIC/Component/TableSpec.pm:88:	eval('require ' . $rrinfo->{class});
lib/RapidApp/DBIC/Component/TableSpec.pm:90:	$rinfo->{table} = &_table_name_safe($rinfo->{class}->table);
lib/RapidApp/DBIC/Component/TableSpec.pm:91:	$rrinfo->{table} = &_table_name_safe($rrinfo->{class}->table);
lib/RapidApp/DBIC/Component/TableSpec.pm:93:	$rinfo->{cond_info} = $self->parse_relationship_cond($rinfo->{cond});
lib/RapidApp/DBIC/Component/TableSpec.pm:94:	$rrinfo->{cond_info} = $self->parse_relationship_cond($rrinfo->{cond});
lib/RapidApp/DBIC/Component/TableSpec.pm:105:	#	'SELECT(GROUP_CONCAT(`' . $rrinfo->{table} . '`.`' . $rrinfo->{cond_info}->{foreign} . '`))' .
lib/RapidApp/DBIC/Component/TableSpec.pm:107:	#	' FROM `' . $rinfo->{table} . '`' . 
lib/RapidApp/DBIC/Component/TableSpec.pm:108:	#	' JOIN `' . $rrinfo->{table} . '` `' . $rrinfo->{table} . '`' .
lib/RapidApp/DBIC/Component/TableSpec.pm:109:	#	'  ON `' . $rinfo->{table} . '`.`' . $rrinfo->{cond_info}->{self} . '`' .
lib/RapidApp/DBIC/Component/TableSpec.pm:110:	#	'   = `' . $rrinfo->{table} . '`.`' . $rrinfo->{cond_info}->{foreign} . '`' .
lib/RapidApp/DBIC/Component/TableSpec.pm:112:	#	' WHERE `' . $rinfo->{cond_info}->{foreign} . '` = ' . $rel . '.' . $cond_data->{self} . 
lib/RapidApp/DBIC/Component/TableSpec.pm:117:	# m2m-specific multi-relationship column properties (renderer, editor, and to 
lib/RapidApp/DBIC/Component/TableSpec.pm:119:	$self->add_relationship(
lib/RapidApp/DBIC/Component/TableSpec.pm:121:		$rinfo->{class},
lib/RapidApp/DBIC/Component/TableSpec.pm:122:		$rinfo->{cond},
lib/RapidApp/DBIC/Component/TableSpec.pm:123:		{%{$rinfo->{attrs}}, m2m_attrs => {
lib/RapidApp/DBIC/Component/TableSpec.pm:130:	# -- Add a normal many_to_many bridge so we have the many_to_many sugar later on:
lib/RapidApp/DBIC/Component/TableSpec.pm:134:	$self->many_to_many(@_);
lib/RapidApp/DBIC/Component/TableSpec.pm:135:	#$self->apply_m2m_sugar(@_);
lib/RapidApp/DBIC/Component/TableSpec.pm:136:	# --
lib/RapidApp/DBIC/Component/TableSpec.pm:147:#	$class->can($set_meth) and 
lib/RapidApp/DBIC/Component/TableSpec.pm:150:#	$class->can($add_meth) and 
lib/RapidApp/DBIC/Component/TableSpec.pm:156:#      @_ > 0 or $self->throw_exception(
lib/RapidApp/DBIC/Component/TableSpec.pm:159:#      my $source = $self->result_source;
lib/RapidApp/DBIC/Component/TableSpec.pm:160:#      my $schema = $source->schema;
lib/RapidApp/DBIC/Component/TableSpec.pm:161:#      my $rel_source_name = $source->relationship_info($rel)->{source};
lib/RapidApp/DBIC/Component/TableSpec.pm:162:#      my $rel_source = $schema->resultset($rel_source_name)->result_source;
lib/RapidApp/DBIC/Component/TableSpec.pm:163:#      my $f_rel_source_name = $rel_source->relationship_info($f_rel)->{source};
lib/RapidApp/DBIC/Component/TableSpec.pm:164:#      my $f_rel_rs = $schema->resultset($f_rel_source_name)->search({}, $rel_attrs||{});
lib/RapidApp/DBIC/Component/TableSpec.pm:169:#          $obj = $f_rel_rs->find_or_create($_[0]);
lib/RapidApp/DBIC/Component/TableSpec.pm:174:#        $obj = $f_rel_rs->find_or_create({@_});
lib/RapidApp/DBIC/Component/TableSpec.pm:178:#      my $link = $self->search_related($rel)->new_result($link_vals);
lib/RapidApp/DBIC/Component/TableSpec.pm:179:#      $link->set_from_related($f_rel, $obj);
lib/RapidApp/DBIC/Component/TableSpec.pm:180:#      $link->insert();
lib/RapidApp/DBIC/Component/TableSpec.pm:187:#		@_ > 0 or $self->throw_exception(
lib/RapidApp/DBIC/Component/TableSpec.pm:193:#		if ($rel_attrs && $rel_attrs->{where}) {
lib/RapidApp/DBIC/Component/TableSpec.pm:194:#			$self->search_related( $rel, $rel_attrs->{where},{join => $f_rel})->delete;
lib/RapidApp/DBIC/Component/TableSpec.pm:196:#			$self->search_related( $rel, {} )->delete;
lib/RapidApp/DBIC/Component/TableSpec.pm:199:#		$self->$add_meth($_, ref($_[1]) ? $_[1] : {}) for (@to_set);
lib/RapidApp/DBIC/Component/TableSpec.pm:202:## --
lib/RapidApp/DBIC/Component/TableSpec.pm:207:		defined $self->TableSpec_cnf and
lib/RapidApp/DBIC/Component/TableSpec.pm:208:		defined $self->TableSpec_cnf->{apply_TableSpec_timestamp}
lib/RapidApp/DBIC/Component/TableSpec.pm:214:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/DBIC/Component/TableSpec.pm:217:	return if $self->is_TableSpec_applied;
lib/RapidApp/DBIC/Component/TableSpec.pm:220:	$self->add_virtual_columns();
lib/RapidApp/DBIC/Component/TableSpec.pm:223:	$self->TableSpec_data_type_profiles(
lib/RapidApp/DBIC/Component/TableSpec.pm:224:		%{ $self->TableSpec_data_type_profiles || {} },
lib/RapidApp/DBIC/Component/TableSpec.pm:228:	$self->TableSpec($self->create_result_TableSpec($self,%opt));
lib/RapidApp/DBIC/Component/TableSpec.pm:230:	$self->TableSpec_rel_columns({});
lib/RapidApp/DBIC/Component/TableSpec.pm:231:	$self->TableSpec_cnf({});
lib/RapidApp/DBIC/Component/TableSpec.pm:232:	$self->TableSpec_built_cnf(undef);
lib/RapidApp/DBIC/Component/TableSpec.pm:234:	$self->apply_row_methods();
lib/RapidApp/DBIC/Component/TableSpec.pm:237:	$self->TableSpec_set_conf( apply_TableSpec_timestamp => time );
lib/RapidApp/DBIC/Component/TableSpec.pm:239:	# --- Set some base defaults here:
lib/RapidApp/DBIC/Component/TableSpec.pm:240:	my $table = &_table_name_safe($self->table);
lib/RapidApp/DBIC/Component/TableSpec.pm:241:	my ($pri) = ($self->primary_columns,$self->columns); #<-- first primary col, or first col
lib/RapidApp/DBIC/Component/TableSpec.pm:242:	$self->TableSpec_set_conf(
lib/RapidApp/DBIC/Component/TableSpec.pm:246:    # --
lib/RapidApp/DBIC/Component/TableSpec.pm:248:    # the columns (just at least one -- we're just doing the base columns
lib/RapidApp/DBIC/Component/TableSpec.pm:253:    # in-line but does not apply any column configs). 
lib/RapidApp/DBIC/Component/TableSpec.pm:255:    # which is a temp/in-between change that consolidates storage of column
lib/RapidApp/DBIC/Component/TableSpec.pm:257:    # Yes, this is ugly/hackish but will go away as soon as the full-blown, 
lib/RapidApp/DBIC/Component/TableSpec.pm:258:    # long-planned TableSpec refactor is undertaken...
lib/RapidApp/DBIC/Component/TableSpec.pm:259:    columns => { map { $_ => {} } $self->columns }
lib/RapidApp/DBIC/Component/TableSpec.pm:260:    # --
lib/RapidApp/DBIC/Component/TableSpec.pm:262:	# ---
lib/RapidApp/DBIC/Component/TableSpec.pm:270:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/DBIC/Component/TableSpec.pm:272:	my $table = &_table_name_safe($ResultClass->table);
lib/RapidApp/DBIC/Component/TableSpec.pm:274:	my $TableSpec = RapidApp::TableSpec->new( 
lib/RapidApp/DBIC/Component/TableSpec.pm:279:	my $data_types = $self->TableSpec_data_type_profiles;
lib/RapidApp/DBIC/Component/TableSpec.pm:282:	foreach my $col ($ResultClass->columns) {
lib/RapidApp/DBIC/Component/TableSpec.pm:283:		my $info = $ResultClass->column_info($col);
lib/RapidApp/DBIC/Component/TableSpec.pm:286:		push @profiles, $info->{is_nullable} ? 'nullable' : 'notnull';
lib/RapidApp/DBIC/Component/TableSpec.pm:287:    push @profiles, 'autoinc' if ($info->{is_auto_increment});
lib/RapidApp/DBIC/Component/TableSpec.pm:289:		my $type_profile = $data_types->{$info->{data_type}} || ['text'];
lib/RapidApp/DBIC/Component/TableSpec.pm:291:    # -- PostgreSQL override until array columns are supported (Github Issue #55):
lib/RapidApp/DBIC/Component/TableSpec.pm:293:      $info->{data_type} =~ /\[/ #<-- if the data_type contains a square backect, i.e. 'text[]'
lib/RapidApp/DBIC/Component/TableSpec.pm:295:    # --
lib/RapidApp/DBIC/Component/TableSpec.pm:300:		$TableSpec->add_columns( { name => $col, profiles => \@profiles } ); 
lib/RapidApp/DBIC/Component/TableSpec.pm:310:	$self->TableSpec_build_cnf unless ($self->TableSpec_built_cnf);
lib/RapidApp/DBIC/Component/TableSpec.pm:311:	return $self->TableSpec_built_cnf;
lib/RapidApp/DBIC/Component/TableSpec.pm:316:	my %set_cnf = %{ $self->TableSpec_cnf || {} };
lib/RapidApp/DBIC/Component/TableSpec.pm:317:	$self->TableSpec_built_cnf($self->default_TableSpec_cnf(\%set_cnf));
lib/RapidApp/DBIC/Component/TableSpec.pm:327:	my $table = &_table_name_safe($self->table);
lib/RapidApp/DBIC/Component/TableSpec.pm:329:  my $is_virtual = $self->_is_virtual_source;
lib/RapidApp/DBIC/Component/TableSpec.pm:330:  my $defs_i = $is_virtual ? 'ra-icon-pg-red' : 'ra-icon-pg';
lib/RapidApp/DBIC/Component/TableSpec.pm:331:  my $defm_i = $is_virtual ? 'ra-icon-pg-multi-red' : 'ra-icon-pg-multi';
lib/RapidApp/DBIC/Component/TableSpec.pm:334:	# a circular logic situation. For base-defaults, see apply_TableSpec above
lib/RapidApp/DBIC/Component/TableSpec.pm:337:	$defaults{iconCls} = $data->{singleIconCls} if ($data->{singleIconCls} and ! $data->{iconCls});
lib/RapidApp/DBIC/Component/TableSpec.pm:338:	$defaults{iconCls} = $defaults{iconCls} || $data->{iconCls} || $defs_i;
lib/RapidApp/DBIC/Component/TableSpec.pm:339:	$defaults{multiIconCls} = $data->{multiIconCls} || $defm_i;
lib/RapidApp/DBIC/Component/TableSpec.pm:340:	$defaults{singleIconCls} = $data->{singleIconCls} || $defaults{iconCls};
lib/RapidApp/DBIC/Component/TableSpec.pm:341:	$defaults{title} = $data->{title} || $table;
lib/RapidApp/DBIC/Component/TableSpec.pm:342:	$defaults{title_multi} = $data->{title_multi} || $defaults{title};
lib/RapidApp/DBIC/Component/TableSpec.pm:343:	($defaults{display_column}) = $self->primary_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:345:	my @display_columns = $data->{display_column} ? ( $data->{display_column} ) : $self->primary_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:348:	my $orig_row_display = $data->{row_display} || sub {
lib/RapidApp/DBIC/Component/TableSpec.pm:350:		my $title = join('/',map { $record->{$_} || '' } @display_columns);
lib/RapidApp/DBIC/Component/TableSpec.pm:356:		my $display = $orig_row_display->(@_);
lib/RapidApp/DBIC/Component/TableSpec.pm:370:  #my $col_cnf = $self->default_TableSpec_cnf_columns($set);
lib/RapidApp/DBIC/Component/TableSpec.pm:376:  my $col_cnf = $self->default_TableSpec_cnf_columns($defs);
lib/RapidApp/DBIC/Component/TableSpec.pm:377:  $defs->{columns} = $col_cnf->{columns};
lib/RapidApp/DBIC/Component/TableSpec.pm:385:    $self->result_source_instance->can('is_virtual') &&
lib/RapidApp/DBIC/Component/TableSpec.pm:386:    $self->result_source_instance->is_virtual
lib/RapidApp/DBIC/Component/TableSpec.pm:396:	my @col_order = $self->default_TableSpec_cnf_column_order($set);
lib/RapidApp/DBIC/Component/TableSpec.pm:401:  #$cols = merge($cols,$set->{column_properties_defaults} || {});
lib/RapidApp/DBIC/Component/TableSpec.pm:402:  %$cols = ( %$cols, %{ $set->{column_properties_defaults} || {}} );
lib/RapidApp/DBIC/Component/TableSpec.pm:404:  #$cols = merge($cols,$set->{column_properties_ordered} || {});
lib/RapidApp/DBIC/Component/TableSpec.pm:405:  %$cols = ( %$cols, %{ $set->{column_properties_ordered} || {}} );
lib/RapidApp/DBIC/Component/TableSpec.pm:408:	#$cols = merge($cols,$set->{column_properties} || {});
lib/RapidApp/DBIC/Component/TableSpec.pm:409:  %$cols = ( %$cols, %{ $set->{column_properties} || {}} );
lib/RapidApp/DBIC/Component/TableSpec.pm:411:	my $data_types = $self->TableSpec_data_type_profiles;
lib/RapidApp/DBIC/Component/TableSpec.pm:414:  my $is_virtual = $self->_is_virtual_source;
lib/RapidApp/DBIC/Component/TableSpec.pm:418:		my $is_phy = $self->has_column($col) ? 1 : 0;
lib/RapidApp/DBIC/Component/TableSpec.pm:419:    $cols->{$col}{is_phy_colname} = $is_phy; #<-- track if this is also a physical column name
lib/RapidApp/DBIC/Component/TableSpec.pm:427:			$self->has_relationship($col) and
lib/RapidApp/DBIC/Component/TableSpec.pm:428:			$set->{'priority_rel_columns'}
lib/RapidApp/DBIC/Component/TableSpec.pm:431:		# -- If priority_rel_columns is on but we need to exclude a specific column:
lib/RapidApp/DBIC/Component/TableSpec.pm:434:			$set->{no_priority_rel_column} and
lib/RapidApp/DBIC/Component/TableSpec.pm:435:			$set->{no_priority_rel_column}->{$col} and
lib/RapidApp/DBIC/Component/TableSpec.pm:438:		# --
lib/RapidApp/DBIC/Component/TableSpec.pm:441:		my %pri_cols = map {$_=>1} $self->primary_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:446:			if($self->has_relationship($col)) {
lib/RapidApp/DBIC/Component/TableSpec.pm:447:				my $info = $self->relationship_info($col);
lib/RapidApp/DBIC/Component/TableSpec.pm:449:				$cols->{$col}->{relationship_info} = $info;
lib/RapidApp/DBIC/Component/TableSpec.pm:450:				my $cond_data = $self->parse_relationship_cond($info->{cond});
lib/RapidApp/DBIC/Component/TableSpec.pm:451:				$cols->{$col}->{relationship_cond_data} = { %$cond_data, %$info };
lib/RapidApp/DBIC/Component/TableSpec.pm:453:				if ($info->{attrs}->{accessor} eq 'single' || $info->{attrs}->{accessor} eq 'filter') {
lib/RapidApp/DBIC/Component/TableSpec.pm:455:          # -- NEW: Virtual Single Relationship - will be read-only
lib/RapidApp/DBIC/Component/TableSpec.pm:456:          unless($cond_data->{foreign} && $cond_data->{self}) {
lib/RapidApp/DBIC/Component/TableSpec.pm:457:            $cols->{$col}{virtualized_single_rel} = 1;
lib/RapidApp/DBIC/Component/TableSpec.pm:458:            $cols->{$col}{allow_add} = 0;
lib/RapidApp/DBIC/Component/TableSpec.pm:459:            $cols->{$col}{allow_edit} = 0;
lib/RapidApp/DBIC/Component/TableSpec.pm:462:          # --
lib/RapidApp/DBIC/Component/TableSpec.pm:465:          if($self->has_column($cond_data->{self})) {
lib/RapidApp/DBIC/Component/TableSpec.pm:466:            $cols->{$col}{is_nullable} = $self->column_info($cond_data->{self})
lib/RapidApp/DBIC/Component/TableSpec.pm:467:              ->{is_nullable} ? 1 : 0;
lib/RapidApp/DBIC/Component/TableSpec.pm:473:					my $display_column = $self->TableSpec_related_get_set_conf($col,'display_column');
lib/RapidApp/DBIC/Component/TableSpec.pm:474:					my $display_columns = $self->TableSpec_related_get_set_conf($col,'display_columns');
lib/RapidApp/DBIC/Component/TableSpec.pm:476:					# -- auto_editor_params/auto_editor_type can be defined in either the local column 
lib/RapidApp/DBIC/Component/TableSpec.pm:478:					my $auto_editor_type = $self->TableSpec_related_get_set_conf($col,'auto_editor_type') || 'combo';
lib/RapidApp/DBIC/Component/TableSpec.pm:479:					my $auto_editor_params = $self->TableSpec_related_get_set_conf($col,'auto_editor_params') || {};
lib/RapidApp/DBIC/Component/TableSpec.pm:480:					my $auto_editor_win_params = $self->TableSpec_related_get_set_conf($col,'auto_editor_win_params') || {};
lib/RapidApp/DBIC/Component/TableSpec.pm:481:					$cols->{$col}->{auto_editor_type} = $cols->{$col}->{auto_editor_type} || $auto_editor_type;
lib/RapidApp/DBIC/Component/TableSpec.pm:482:					$cols->{$col}->{auto_editor_params} = $cols->{$col}->{auto_editor_params} || {};
lib/RapidApp/DBIC/Component/TableSpec.pm:483:					$cols->{$col}->{auto_editor_params} = { 
lib/RapidApp/DBIC/Component/TableSpec.pm:485:						%{$cols->{$col}->{auto_editor_params}} 
lib/RapidApp/DBIC/Component/TableSpec.pm:487:					# --
lib/RapidApp/DBIC/Component/TableSpec.pm:489:					$display_column = $display_columns->[0] if (
lib/RapidApp/DBIC/Component/TableSpec.pm:495:					## fall-back set the display_column to the first key
lib/RapidApp/DBIC/Component/TableSpec.pm:496:					($display_column) = $self->primary_columns unless ($display_column);
lib/RapidApp/DBIC/Component/TableSpec.pm:505:					$cols->{$col}->{displayField} = $display_column;
lib/RapidApp/DBIC/Component/TableSpec.pm:506:					$cols->{$col}->{display_columns} = $display_columns; #<-- in progress - used for grid instead of combo
lib/RapidApp/DBIC/Component/TableSpec.pm:511:					$cols->{$col}->{open_url} = $self->TableSpec_related_get_set_conf($col,'open_url');
lib/RapidApp/DBIC/Component/TableSpec.pm:513:					$cols->{$col}->{valueField} = $cond_data->{foreign} 
lib/RapidApp/DBIC/Component/TableSpec.pm:516:					$cols->{$col}->{keyField} = $cond_data->{self}
lib/RapidApp/DBIC/Component/TableSpec.pm:521:				elsif($info->{attrs}->{accessor} eq 'multi') {
lib/RapidApp/DBIC/Component/TableSpec.pm:522:					$cols->{$col}->{title_multi} = $self->TableSpec_related_get_set_conf($col,'title_multi');
lib/RapidApp/DBIC/Component/TableSpec.pm:523:					$cols->{$col}->{multiIconCls} = $self->TableSpec_related_get_set_conf($col,'multiIconCls');
lib/RapidApp/DBIC/Component/TableSpec.pm:524:					$cols->{$col}->{open_url_multi} = $self->TableSpec_related_get_set_conf($col,'open_url_multi');
lib/RapidApp/DBIC/Component/TableSpec.pm:526:					$cols->{$col}->{open_url_multi_rs_join_name} = 
lib/RapidApp/DBIC/Component/TableSpec.pm:527:						$self->TableSpec_related_get_set_conf($col,'open_url_multi_rs_join_name') || 'me';
lib/RapidApp/DBIC/Component/TableSpec.pm:531:        $cols->{$col}->{profiles} ||= [];
lib/RapidApp/DBIC/Component/TableSpec.pm:532:        push @{$cols->{$col}->{profiles}}, 'relcol';
lib/RapidApp/DBIC/Component/TableSpec.pm:533:        push @{$cols->{$col}->{profiles}}, 'virtual_source' if ($is_virtual);
lib/RapidApp/DBIC/Component/TableSpec.pm:534:        push @{$cols->{$col}->{profiles}}, 'multirel' if ($info->{attrs}->{accessor} eq 'multi');
lib/RapidApp/DBIC/Component/TableSpec.pm:540:		my $info = $self->column_info($col);
lib/RapidApp/DBIC/Component/TableSpec.pm:543:		push @profiles, $info->{is_nullable} ? 'nullable' : 'notnull';
lib/RapidApp/DBIC/Component/TableSpec.pm:544:    push @profiles, 'autoinc' if ($info->{is_auto_increment});
lib/RapidApp/DBIC/Component/TableSpec.pm:546:		my $type_profile = $data_types->{$info->{data_type}} || ['text'];
lib/RapidApp/DBIC/Component/TableSpec.pm:548:    # -- PostgreSQL override until array columns are supported (Github Issue #55):
lib/RapidApp/DBIC/Component/TableSpec.pm:550:      $info->{data_type} =~ /\[/ #<-- if the data_type contains a square backect, i.e. 'text[]'
lib/RapidApp/DBIC/Component/TableSpec.pm:552:    # --
lib/RapidApp/DBIC/Component/TableSpec.pm:557:		$cols->{$col}->{profiles} = [ $cols->{$col}->{profiles} ] if (
lib/RapidApp/DBIC/Component/TableSpec.pm:558:			defined $cols->{$col}->{profiles} and 
lib/RapidApp/DBIC/Component/TableSpec.pm:559:			not ref $cols->{$col}->{profiles}
lib/RapidApp/DBIC/Component/TableSpec.pm:561:		push @profiles, @{$cols->{$col}->{profiles}} if ($cols->{$col}->{profiles});
lib/RapidApp/DBIC/Component/TableSpec.pm:565:		$cols->{$col}->{profiles} = \@profiles;
lib/RapidApp/DBIC/Component/TableSpec.pm:567:		## --
lib/RapidApp/DBIC/Component/TableSpec.pm:571:		$editor->{value} = $info->{default_value} if (exists $info->{default_value});
lib/RapidApp/DBIC/Component/TableSpec.pm:573:    # -- NEW:
lib/RapidApp/DBIC/Component/TableSpec.pm:577:    if((ref($info->{default_value})||'') eq 'SCALAR') {
lib/RapidApp/DBIC/Component/TableSpec.pm:578:      $editor->{value} = sub {
lib/RapidApp/DBIC/Component/TableSpec.pm:579:        my $value = $info->{default_value};
lib/RapidApp/DBIC/Component/TableSpec.pm:584:          $value = RapidApp->active_request_context
lib/RapidApp/DBIC/Component/TableSpec.pm:585:            ->stash->{'RAPIDAPP_DISPATCH_MODULE'} # only way to get Module by the time we're called in the view
lib/RapidApp/DBIC/Component/TableSpec.pm:586:            ->ResultSource->schema->storage->dbh
lib/RapidApp/DBIC/Component/TableSpec.pm:587:            ->selectrow_arrayref( "SELECT $$value" )->[0];
lib/RapidApp/DBIC/Component/TableSpec.pm:592:        ${$info->{default_value}} eq 'null'
lib/RapidApp/DBIC/Component/TableSpec.pm:595:    # --
lib/RapidApp/DBIC/Component/TableSpec.pm:599:		## to the DBIC schema (max-length, signed/unsigned, float vs int). The API with "profiles" 
lib/RapidApp/DBIC/Component/TableSpec.pm:600:		## didn't anticipate this fine-grained need, so 'extra_properties' was added specifically 
lib/RapidApp/DBIC/Component/TableSpec.pm:604:		my $unsigned = ($info->{extra} && $info->{extra}->{unsigned}) ? 1 : 0;
lib/RapidApp/DBIC/Component/TableSpec.pm:605:		$editor->{allowNegative} = \0 if ($unsigned);
lib/RapidApp/DBIC/Component/TableSpec.pm:607:		if($info->{size}) {
lib/RapidApp/DBIC/Component/TableSpec.pm:608:			my $size = $info->{size};
lib/RapidApp/DBIC/Component/TableSpec.pm:614:				$editor->{maxValue} = ('9' x $s);
lib/RapidApp/DBIC/Component/TableSpec.pm:615:				$size += 1 unless ($unsigned); #<-- room for a '-'
lib/RapidApp/DBIC/Component/TableSpec.pm:617:					$editor->{maxValue} .= '.' . ('9' x $p);
lib/RapidApp/DBIC/Component/TableSpec.pm:618:					$size += $p + 1 ; #<-- precision plus a spot for '.' in the max field length	
lib/RapidApp/DBIC/Component/TableSpec.pm:619:					$editor->{decimalPrecision} = $p;
lib/RapidApp/DBIC/Component/TableSpec.pm:622:					$editor->{allowDecimals} = \0;
lib/RapidApp/DBIC/Component/TableSpec.pm:625:			$editor->{maxLength} = $size;
lib/RapidApp/DBIC/Component/TableSpec.pm:629:			$cols->{$col}->{extra_properties} = $cols->{$col}->{extra_properties} || {};
lib/RapidApp/DBIC/Component/TableSpec.pm:630:			$cols->{$col}->{extra_properties} = merge($cols->{$col}->{extra_properties},{
lib/RapidApp/DBIC/Component/TableSpec.pm:634:		## --
lib/RapidApp/DBIC/Component/TableSpec.pm:636:    # --vv-- NEW: handling for 'enum' columns (Github Issue #30):
lib/RapidApp/DBIC/Component/TableSpec.pm:637:    if($info->{data_type} eq 'enum' && $info->{extra} && $info->{extra}{list}) {
lib/RapidApp/DBIC/Component/TableSpec.pm:638:      my $list = $info->{extra}{list};
lib/RapidApp/DBIC/Component/TableSpec.pm:645:      } if ($info->{is_nullable});
lib/RapidApp/DBIC/Component/TableSpec.pm:651:      $cols->{$col}{menu_select_editor} = {
lib/RapidApp/DBIC/Component/TableSpec.pm:658:      #      This is being done so that they can be pre-validated in
lib/RapidApp/DBIC/Component/TableSpec.pm:660:      #      TODO: not happy about having to do this - revisit later
lib/RapidApp/DBIC/Component/TableSpec.pm:661:      $cols->{$col}{enum_value_hash} = { map {$_=>1} @$list }
lib/RapidApp/DBIC/Component/TableSpec.pm:663:    # --^^--
lib/RapidApp/DBIC/Component/TableSpec.pm:678:  my %pri_cols = map {$_=>1} $self->primary_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:680:  foreach my $rel ($self->relationships) {
lib/RapidApp/DBIC/Component/TableSpec.pm:681:    my $info = $self->relationship_info($rel);
lib/RapidApp/DBIC/Component/TableSpec.pm:683:    my $accessor = $info->{attrs}->{accessor};
lib/RapidApp/DBIC/Component/TableSpec.pm:688:      $self->TableSpec_cnf->{'priority_rel_columns'} and
lib/RapidApp/DBIC/Component/TableSpec.pm:690:        $self->TableSpec_cnf->{'no_priority_rel_column'} and
lib/RapidApp/DBIC/Component/TableSpec.pm:691:        $self->TableSpec_cnf->{'no_priority_rel_column'}->{$rel}
lib/RapidApp/DBIC/Component/TableSpec.pm:693:      ! $pri_cols{$rel} #<-- exclude primary column names. TODO: this check is performed later, fix
lib/RapidApp/DBIC/Component/TableSpec.pm:697:      my $cond_info = $self->parse_relationship_cond($info->{cond});
lib/RapidApp/DBIC/Component/TableSpec.pm:698:      if($cond_info->{self} && $cond_info->{foreign}) {
lib/RapidApp/DBIC/Component/TableSpec.pm:700:        my ($fk) = keys %{$info->{attrs}->{fk_columns}};
lib/RapidApp/DBIC/Component/TableSpec.pm:718:  $self->TableSpec_set_conf('relationship_column_names',\@single_rels);
lib/RapidApp/DBIC/Component/TableSpec.pm:719:  $self->TableSpec_set_conf('multi_relationship_column_names',\@multi_rels);
lib/RapidApp/DBIC/Component/TableSpec.pm:720:  $self->TableSpec_set_conf('relationship_column_fks_map',\%fk_cols);
lib/RapidApp/DBIC/Component/TableSpec.pm:723:  my @cols = map { $_, ( $fk_cols{$_} ? $fk_cols{$_} : () ) } $self->columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:730:sub default_TableSpec_cnf_column_order { (shift)->TableSpec_valid_db_columns }
lib/RapidApp/DBIC/Component/TableSpec.pm:757:  # First arg can be a hashref - deref and call again:
lib/RapidApp/DBIC/Component/TableSpec.pm:763:    return $self->TableSpec_set_conf(%{$_[0]})
lib/RapidApp/DBIC/Component/TableSpec.pm:766:  $self->TableSpec_built_cnf(undef); #<-- FIXME!!
lib/RapidApp/DBIC/Component/TableSpec.pm:770:    shift @_; #<-- pull out the 'column_properties' first arg
lib/RapidApp/DBIC/Component/TableSpec.pm:771:    return $self->_TableSpec_set_column_properties(@_);
lib/RapidApp/DBIC/Component/TableSpec.pm:795:      $self->_TableSpec_set_column_properties($cnf{$param});
lib/RapidApp/DBIC/Component/TableSpec.pm:798:      $self->TableSpec_cnf->{$param} = $cnf{$param} 
lib/RapidApp/DBIC/Component/TableSpec.pm:810:# along with other planned refactored. This is just a stop-gap to 
lib/RapidApp/DBIC/Component/TableSpec.pm:817:  # First arg can be a hashref - deref and call again:
lib/RapidApp/DBIC/Component/TableSpec.pm:823:    return $self->_TableSpec_set_column_properties(%{$_[0]})
lib/RapidApp/DBIC/Component/TableSpec.pm:840:  my %valid_colnames = map {$_=>1} ($self->TableSpec_valid_db_columns);
lib/RapidApp/DBIC/Component/TableSpec.pm:843:  $col_props ||= $self->TableSpec_cnf->{$_} for (@col_prop_names);
lib/RapidApp/DBIC/Component/TableSpec.pm:851:    $col_props->{$col} = $cnf{$col};
lib/RapidApp/DBIC/Component/TableSpec.pm:854:  $self->TableSpec_cnf->{$_} = $col_props for (@col_prop_names);
lib/RapidApp/DBIC/Component/TableSpec.pm:868:  my $existing = $self->TableSpec_get_conf('columns') || {};
lib/RapidApp/DBIC/Component/TableSpec.pm:874:      %{ $existing->{$_} || {} },
lib/RapidApp/DBIC/Component/TableSpec.pm:875:      %{ $conf->{$_} || {} },
lib/RapidApp/DBIC/Component/TableSpec.pm:879:  return $self->TableSpec_set_conf( columns => \%new );
lib/RapidApp/DBIC/Component/TableSpec.pm:887:  my $storage = shift || $self->get_built_Cnf;
lib/RapidApp/DBIC/Component/TableSpec.pm:892:  my $value = $storage->{$param};
lib/RapidApp/DBIC/Component/TableSpec.pm:894:  # --- FIXME FIXME FIXME
lib/RapidApp/DBIC/Component/TableSpec.pm:916:      "   --> Auto-dereferencing param '$param' $value",'',
lib/RapidApp/DBIC/Component/TableSpec.pm:924:  return wantarray ? () : undef unless (exists $storage->{$param});
lib/RapidApp/DBIC/Component/TableSpec.pm:925:  # ---
lib/RapidApp/DBIC/Component/TableSpec.pm:934:	my $storage = shift || $self->get_built_Cnf;
lib/RapidApp/DBIC/Component/TableSpec.pm:935:	return 1 if (exists $storage->{$param});
lib/RapidApp/DBIC/Component/TableSpec.pm:943:	my $info = $self->relationship_info($rel) || return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:944:	my $relclass = $info->{class};
lib/RapidApp/DBIC/Component/TableSpec.pm:948:	#my $relclass = $self->related_class($rel) || return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:949:	$relclass->can('TableSpec_get_conf') || return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:959:	my $relclass = $self->TableSpec_related_class($rel) || return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:961:	return $relclass->TableSpec_get_conf($param);
lib/RapidApp/DBIC/Component/TableSpec.pm:972:	my $relclass = $self->TableSpec_related_class($rel) || return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:974:	#return $relclass->TableSpec_get_conf($param,$relclass->TableSpec_cnf);
lib/RapidApp/DBIC/Component/TableSpec.pm:975:	return $relclass->TableSpec_get_set_conf($param);
lib/RapidApp/DBIC/Component/TableSpec.pm:986:	return $self->TableSpec_get_conf($param,$self->TableSpec_cnf);
lib/RapidApp/DBIC/Component/TableSpec.pm:996:	die "currently only single-key hashref conditions are supported" unless (
lib/RapidApp/DBIC/Component/TableSpec.pm:1011:# only able to do this for simple, single-key foreign key rels
lib/RapidApp/DBIC/Component/TableSpec.pm:1013:# All other forms, such as multi-keys and CodeRefs, will return
lib/RapidApp/DBIC/Component/TableSpec.pm:1032:    $data->{$side} = $col;
lib/RapidApp/DBIC/Component/TableSpec.pm:1042:# my ($changes) = $self->proxy_method_get_changed('update',{ foo => 'sdfds'});
lib/RapidApp/DBIC/Component/TableSpec.pm:1048:# $self->proxy_method_get_changed($orig,@_) :
lib/RapidApp/DBIC/Component/TableSpec.pm:1049:#  @{$self->proxy_method_get_changed($orig,@_)};
lib/RapidApp/DBIC/Component/TableSpec.pm:1059:	if($self->in_storage) {
lib/RapidApp/DBIC/Component/TableSpec.pm:1060:		$origRow = $self->get_from_storage || $self;
lib/RapidApp/DBIC/Component/TableSpec.pm:1061:		%old = $origRow->get_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:1066:		@ret = $self->$method(@_) : 
lib/RapidApp/DBIC/Component/TableSpec.pm:1067:			$ret[0] = $self->$method(@_);
lib/RapidApp/DBIC/Component/TableSpec.pm:1070:	if($self->in_storage) {
lib/RapidApp/DBIC/Component/TableSpec.pm:1071:		%new = $self->get_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:1084:	my $fk_map = $self->TableSpec_get_conf('relationship_column_fks_map');
lib/RapidApp/DBIC/Component/TableSpec.pm:1086:		unless($fk_map->{$col}) {
lib/RapidApp/DBIC/Component/TableSpec.pm:1091:		my $rel = $fk_map->{$col};
lib/RapidApp/DBIC/Component/TableSpec.pm:1092:		my $display_col = $self->TableSpec_related_get_set_conf($rel,'display_column');
lib/RapidApp/DBIC/Component/TableSpec.pm:1094:		my $relOld = $origRow->$rel;
lib/RapidApp/DBIC/Component/TableSpec.pm:1095:		my $relNew = $self->$rel;
lib/RapidApp/DBIC/Component/TableSpec.pm:1104:		$old{$rel} = $relOld->get_column($display_col) if (exists $old{$col} and $relOld);
lib/RapidApp/DBIC/Component/TableSpec.pm:1105:		$new{$rel} = $relNew->get_column($display_col) if (exists $new{$col} and $relNew);
lib/RapidApp/DBIC/Component/TableSpec.pm:1110:	my $col_props = $self->TableSpec_get_conf('columns');
lib/RapidApp/DBIC/Component/TableSpec.pm:1116:			header => ($col_props->{$_} && $col_props->{$_}->{header}) ? 
lib/RapidApp/DBIC/Component/TableSpec.pm:1117:				$col_props->{$_}->{header} : $_
lib/RapidApp/DBIC/Component/TableSpec.pm:1127:	return $self->TableSpec_get_conf('open_url');
lib/RapidApp/DBIC/Component/TableSpec.pm:1132:	my $rest_key_col = $self->TableSpec_get_conf('rest_key_column');
lib/RapidApp/DBIC/Component/TableSpec.pm:1134:	my @pri = $self->primary_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:1139:### Util functions: to be called in Row-object context
lib/RapidApp/DBIC/Component/TableSpec.pm:1145:		getOpenUrl => sub { $class->TableSpec_get_conf('open_url') },
lib/RapidApp/DBIC/Component/TableSpec.pm:1149:			my @pk_vals = map { $self->get_column($_) } $self->primary_columns;
lib/RapidApp/DBIC/Component/TableSpec.pm:1155:			my $col = $class->getRestKey or return $self->getRecordPkValue;
lib/RapidApp/DBIC/Component/TableSpec.pm:1156:			return try{$self->get_column($col)};
lib/RapidApp/DBIC/Component/TableSpec.pm:1161:			my $url = $class->getOpenUrl or return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:1162:			my $val = $self->getRestKeyVal or return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:1168:			my $display_column = $class->TableSpec_get_conf('display_column');
lib/RapidApp/DBIC/Component/TableSpec.pm:1169:			return $self->get_column($display_column) if ($self->has_column($display_column));
lib/RapidApp/DBIC/Component/TableSpec.pm:1170:			return $self->getRecordPkValue;
lib/RapidApp/DBIC/Component/TableSpec.pm:1176:			my %attrs = ( class => "ra-nav-link ra-icon-magnify-tiny", @_ );
lib/RapidApp/DBIC/Component/TableSpec.pm:1178:			my $title = $self->getDisplayValue or return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:1179:			my $url = $self->getRestPath or return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:1193:			return $self->getDisplayValue . ' ' . $self->inlineNavLink;
lib/RapidApp/DBIC/Component/TableSpec.pm:1197:	# --- Actualize/load methods into the Row object namespace:
lib/RapidApp/DBIC/Component/TableSpec.pm:1203:	# ---
lib/RapidApp/DBIC/Component/TableSpec.pm:1210:  my $table = !(ref $arg) && $arg->can('table') ? $arg->table : $arg; # class method or straight function
lib/RapidApp/DBIC/Component/TableSpec.pm:1216:  $table =~ s/\W/_/g;    # Convert any non-word characters to underscore
lib/RapidApp/DBIC/Component/TableSpec.pm:1223:### -- old, pre-rest inlineNavLink:
lib/RapidApp/DBIC/Component/TableSpec.pm:1229:#	my %attrs = ( class => "magnify-link-tiny", @_ );
lib/RapidApp/DBIC/Component/TableSpec.pm:1232:#	my $title = $self->getDisplayValue || return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:1233:#	my $url = $self->getOpenUrl || return undef;
lib/RapidApp/DBIC/Component/TableSpec.pm:1234:#	my $pk_val = $self->getRecordPkValue || return undef;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:13:__PACKAGE__->mk_classdata('_virtual_columns');
lib/RapidApp/DBIC/Component/VirtualColumns.pm:19:DBIx::Class::VirtualColumns - Add virtual columns to DBIx::Class schemata
lib/RapidApp/DBIC/Component/VirtualColumns.pm:29: __PACKAGE__->load_components(
lib/RapidApp/DBIC/Component/VirtualColumns.pm:35: __PACKAGE__->table("sometable");
lib/RapidApp/DBIC/Component/VirtualColumns.pm:36: __PACKAGE__->add_columns(qw/dbcol1 dbcol2/);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:37: __PACKAGE__->add_virtual_columns(qw/vcol1 vcol2 vcol3/);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:42: my $item = $schema->resultset('Artist')->find($id);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:43: $item->vcol1('test'); # Set 'test'
lib/RapidApp/DBIC/Component/VirtualColumns.pm:44: $item->get_column('vcol1'); # Return 'test'
lib/RapidApp/DBIC/Component/VirtualColumns.pm:46: my $otheritem = $schema->resultset('Artist')->create({
lib/RapidApp/DBIC/Component/VirtualColumns.pm:53: $otheritem->vcol1(); # Now is 'value3'
lib/RapidApp/DBIC/Component/VirtualColumns.pm:56: my $info = $result_source->column_info('vcol1');
lib/RapidApp/DBIC/Component/VirtualColumns.pm:76:However if you only want to add non-column data to L<DBIx::Class::Row> 
lib/RapidApp/DBIC/Component/VirtualColumns.pm:79: __PACKAGE__->mk_group_accessors(simple => qw(foo bar baz));
lib/RapidApp/DBIC/Component/VirtualColumns.pm:89: $table->add_virtual_columns(qw/column1 column2/); 
lib/RapidApp/DBIC/Component/VirtualColumns.pm:91: $table->add_virtual_columns(column1 => \%column1_info, column2 => \%column2_info, ...); 
lib/RapidApp/DBIC/Component/VirtualColumns.pm:115:    $self->_virtual_columns( {} ) 
lib/RapidApp/DBIC/Component/VirtualColumns.pm:116:        unless defined $self->_virtual_columns() ;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:123:        $self->throw_exception("Cannot override existing column '$column' with virtual one")
lib/RapidApp/DBIC/Component/VirtualColumns.pm:124:            if ($self->has_column($column) or exists $self->_virtual_columns->{$column});
lib/RapidApp/DBIC/Component/VirtualColumns.pm:126:        $self->_virtual_columns->{$column} = $column_info;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:128:        my $accessor = $column_info->{accessor} || $column;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:134:            return $self->get_column($column) unless @_;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:135:            $self->set_column($column, shift);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:147:sub add_virtual_column { shift->add_virtual_columns(@_) }
lib/RapidApp/DBIC/Component/VirtualColumns.pm:159:    return ($self->_virtual_columns->{$column} || 
lib/RapidApp/DBIC/Component/VirtualColumns.pm:160:        $self->has_column($column)) ? 1:0;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:172:    return (exists $self->_virtual_columns->{$column}) ? 1:0
lib/RapidApp/DBIC/Component/VirtualColumns.pm:177: $table->remove_columns(qw/col1 col2 col3/);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:188:        delete $self->_virtual_columns->{$column};
lib/RapidApp/DBIC/Component/VirtualColumns.pm:198:sub remove_virtual_column { shift->remove_virtual_columns(@_) }
lib/RapidApp/DBIC/Component/VirtualColumns.pm:209:    if ( !$self->_virtual_columns ) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:210:        $self->_virtual_columns( {} );
lib/RapidApp/DBIC/Component/VirtualColumns.pm:216:        if (exists $self->_virtual_columns->{$attr}) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:217:            $virtual_attrs->{$attr} = $attrs->{$attr};
lib/RapidApp/DBIC/Component/VirtualColumns.pm:219:            $main_attrs->{$attr} = $attrs->{$attr};
lib/RapidApp/DBIC/Component/VirtualColumns.pm:235:    my ($virtual_attrs,$main_attrs) = $class->_virtual_filter($attrs);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:238:    my $return = $class->next::method($main_attrs);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:241:    $return->{_virtual_values} = {};
lib/RapidApp/DBIC/Component/VirtualColumns.pm:245:        $return->store_column($key,$value);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:261:    if (defined $self->_virtual_columns
lib/RapidApp/DBIC/Component/VirtualColumns.pm:262:        && exists $self->_virtual_columns->{$column}) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:263:        return $self->{_virtual_values}{$column};
lib/RapidApp/DBIC/Component/VirtualColumns.pm:266:    return $self->next::method($column);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:278:    return $self->next::method(@_) unless $self->in_storage;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:279:    my %data = $self->next::method(@_);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:281:    if (defined $self->_virtual_columns) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:282:        foreach my $column (keys %{$self->_virtual_columns}) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:283:            $data{$column} = $self->{_virtual_values}{$column};
lib/RapidApp/DBIC/Component/VirtualColumns.pm:299:    if (defined $self->_virtual_columns
lib/RapidApp/DBIC/Component/VirtualColumns.pm:300:        && exists $self->_virtual_columns->{$column}) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:301:        return $self->{_virtual_values}{$column} = $value;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:304:    return $self->next::method($column, $value);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:316:    if (defined $self->_virtual_columns
lib/RapidApp/DBIC/Component/VirtualColumns.pm:317:        && exists $self->_virtual_columns->{$column}) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:318:        return $self->{_virtual_values}{$column} = $value;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:320:    return $self->next::method($column, $value);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:334:    $_[0]->columns_info([ $_[1] ])->{$_[1]};
lib/RapidApp/DBIC/Component/VirtualColumns.pm:342:    if( my $vi = $self->_virtual_columns ) {
lib/RapidApp/DBIC/Component/VirtualColumns.pm:344:           %{ $vi->{$_} || {} },
lib/RapidApp/DBIC/Component/VirtualColumns.pm:357:        %{ $self->next::method($colnames||()) },
lib/RapidApp/DBIC/Component/VirtualColumns.pm:373:    my ($virtual_attrs,$main_attrs) = $self->_virtual_filter($attr);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:376:    $self->next::method($main_attrs);
lib/RapidApp/DBIC/Component/VirtualColumns.pm:380:            $self->{_virtual_values}{$column} = $value;
lib/RapidApp/DBIC/Component/VirtualColumns.pm:388:The best way to add non-column data to DBIC objects is to use 
lib/RapidApp/DBIC/Component/VirtualColumns.pm:391: __PACKAGE__->mk_group_accessors(simple => qw(foo bar baz));
lib/RapidApp/DBIC/Component/VirtualColumns.pm:402:C<bug-dbix-class-virtualcolumns@rt.cpan.org>, or through the web interface at
lib/RapidApp/DBIC/Component/VirtualColumns.pm:411:    maros [at] k-1.com
lib/RapidApp/DBIC/Component/VirtualColumns.pm:422:- L<http://www.revdev.at>
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:7:require base; base->import('DBIx::Class');
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:9:### FIXME - not sure why the above happens at runtime, but not digging in
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:14:    attributes->import(
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:16:        __PACKAGE__->can($m),
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:26:__PACKAGE__->load_components('+RapidApp::DBIC::Component::VirtualColumns');
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:28:__PACKAGE__->mk_classdata( '_virtual_columns_order' );
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:33:	$self->_virtual_columns( {} )
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:34:        unless defined $self->_virtual_columns();
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:36:    $self->_virtual_columns_order( [] )
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:37:        unless defined $self->_virtual_columns_order();
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:45:	$self->init_vcols_class_data;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:50:			$self->has_column($column) or 
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:51:			exists $self->_virtual_columns->{$column} #<-- redundant since we override 'has_column'
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:54:		push @{$self->_virtual_columns_order}, $column;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:57:	return $self->next::method(@_);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:62:	$self->init_vcols_class_data;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:63:	return @{$self->_virtual_columns_order};
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:66:# Take-over has_column to include virtual columns
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:70:	$self->init_vcols_class_data;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:71:    return ($self->_virtual_columns->{$column} ||
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:72:        $self->next::method($column)) ? 1:0;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:75:# Take-over columns to include virtual columns:
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:78:	$self->init_vcols_class_data;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:79:	return ($self->next::method(@_),$self->virtual_columns);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:86:    return $self->next::method($column) unless (
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:87:		defined $self->_virtual_columns &&
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:88:        exists $self->_virtual_columns->{$column}
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:91:	$self->init_virtual_column_value($column);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:93:	return $self->next::method($column);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:101:#  then allow the native get_columns() to work as-is...
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:105:    return $self->next::method(@_) unless $self->in_storage;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:106:    my %data = $self->next::method(@_);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:108:    if (defined $self->_virtual_columns) {
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:109:        foreach my $column (keys %{$self->_virtual_columns}) {
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:112:				if($self->init_virtual_column_value($column,\$value));
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:119:# ---
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:121:# this will be a special SQLT-style reference, for normal columns
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:123:# it is currently hard-coded for 'me' -- which means it will break
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:128:#   2. As a stop-gap for RapidApp::Module::DbicCombo (sort), which is also
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:129:#      in a tmp/in-flux state. Otherwise, this code would just be
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:135:  if ($self->has_virtual_column($column)) {
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:137:    return $self->_get_virtual_column_select_statement($column, $rel);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:139:  elsif($self->has_column($column)) {
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:144:# ---
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:148:  my $info = $self->column_info($column);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:149:  my $sql = $info->{sql}
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:152:  $sql = $info->{sql}->($self, $column) if ref $sql eq 'CODE';
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:154:  $sql =~ s/\`self\`\./\`${rel}\`\./g; #<-- also support backtic quoted form (quote_sep)
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:160:	return if (exists $self->{_virtual_values}{$column});
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:162:  my $sql = $self->_get_virtual_column_select_statement($column, $rel);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:163:	my $Source = $self->result_source;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:164:	my $cond = { map { $rel . '.' . $_ => $self->get_column($_) } $Source->primary_columns };
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:166:		select => [{ '' => $sql, -as => $column }],
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:170:  my $info = $self->column_info($column);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:171:	$attr->{join} = $info->{join} if (exists $info->{join});
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:173:	my $row = $Source->resultset->search_rs($cond,$attr)->first or return undef;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:176:	$$valref = $row->{$column} if (ref($valref) eq 'SCALAR');
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:178:  local $self->{_virtual_columns_no_prepare_set} = 1;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:179:  return $self->store_column($column,$row->{$column});
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:190:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:193:  return if ($self->{_virtual_columns_no_prepare_set});
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:195:	return unless (defined $self->_virtual_columns);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:196:	$self->{_virtual_columns_pending_set_function} ||= {};
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:198:		next unless (exists $self->_virtual_columns->{$column});
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:199:		my $coderef = try{$self->column_info($column)->{set_function}} or next;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:200:		$self->{_virtual_columns_pending_set_function}{$column} = {
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:209:	my $pend = $self->{_virtual_columns_pending_set_function} or return;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:211:		my $h = delete $pend->{$column}; #<-- fetch and clear
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:212:		$h->{coderef}->($self,$h->{value});
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:218:   $self->prepare_set($column,$value);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:219:   return $self->next::method($column, $value);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:224:  $self->prepare_set($column,$value);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:225:  return $self->next::method($column, $value);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:230:  $self->prepare_set(@_);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:237:  local $self->{_virtual_columns_no_prepare_set} = 1;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:240:  $self->next::method(@_);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:242:  $self->execute_pending_set_functions;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:246:  my %dirty = $self->get_dirty_columns;
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:247:  $self->next::method if(scalar(keys %dirty) > 0);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:254:  $self->prepare_set(@_);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:257:  $self->next::method(@_);
lib/RapidApp/DBIC/Component/VirtualColumnsExt.pm:259:  $self->execute_pending_set_functions;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:2:require base; base->import( 'DBIx::Class::ResultSet');
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:11:# built-in ResultSet class adding the ability to define an optional
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:47:# ResultSet object, i.e. return $self->search_rs( $SEARCH, $ATTR );
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:52:	my $self = (shift)->_get_apply_base_rs;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:53:	return $self->next::method(@_);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:59:	my $self = (shift)->_get_apply_base_rs;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:64:	my $subRs = $self->next::method(@_);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:68:	return $subRs->search_rs({},{ _base_rs_applied => 1 });
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:71:###-----------------------
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:73:### implementation called ->search_rs again in nested resultset, and BaseRs
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:81:### depends on the database driver.  See Dbic::Class::ResultSet->_count_subq_rs
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:86:##	$self = $self->_get_apply_base_rs unless ($DISABLED);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:89:##	$self->SUPER::count_rs(@_);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:96:##	$self = $self->_get_apply_base_rs unless ($DISABLED);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:99:##	$self->SUPER::count(@_);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:104:##	$self = $self->_get_apply_base_rs unless ($DISABLED);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:107:##	$self->SUPER::count_literal(@_);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:111:##------------------------
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:115:	return $Rs if ($Rs->{attrs}->{_base_rs_applied} || $DISABLED);
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:117:	$Rs = $Rs->SUPER::search_rs({},{ _base_rs_applied => 1 })->base_rs;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:118:	return $Rs->SUPER::search_rs({},{ _base_rs_condition_ref => $Rs->{attrs}->{where} })
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:131:	my $Rs = $self->search_rs({},{ where => {} });
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:133:	my $type = ref($Rs->{attrs}->{_base_rs_condition_ref}) or return $self;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:136:	my $orig_cond = clone($Rs->{attrs}->{_base_rs_condition_ref});
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:139:	%{ $Rs->{attrs}->{_base_rs_condition_ref} } = () if ($type eq 'HASH');
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:140:	@{ $Rs->{attrs}->{_base_rs_condition_ref} } = () if ($type eq 'ARRAY');
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:143:	my $where = clone($Rs->{attrs}->{where});
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:146:	%{ $Rs->{attrs}->{_base_rs_condition_ref} } = %$orig_cond if ($type eq 'HASH');
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:147:	@{ $Rs->{attrs}->{_base_rs_condition_ref} } = @$orig_cond if ($type eq 'ARRAY');
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:150:	$Rs->{attrs} = { %{$Rs->{attrs}}, where => $where };
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:152:	### -- vv -- Proof that this is working as expected:
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:153:	#print STDERR YELLOW . "New WHERE:\n" . Dumper($Rs->search_rs->{attrs}->{where}) . CLEAR;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:154:	#print STDERR GREEN . "\nOriginal WHERE:\n" .Dumper($self->search_rs->{attrs}->{where}) . CLEAR;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:155:	### -- ^^ --
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:165:	my $debug_obj = $self->result_source->storage->debugobj;
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:166:	my ($sql, $bindargs) = @${$self->as_query};
lib/RapidApp/DBIC/ResultSet/BaseRs.pm:169:	$debug_obj->print($sql, $bindargs);
lib/RapidApp/Data/Dmap.pm:4:# work with perl 5.8 -- 2011-09-26 by HV
lib/RapidApp/Data/Dmap.pm:19:Data::Dmap - just like map, but on deep data structures
lib/RapidApp/Data/Dmap.pm:32:C<map>-like operation on deep data structures.
lib/RapidApp/Data/Dmap.pm:43:    my($bar) = dmap { delete $_->{cars} if ref eq 'HASH'; $_ } $foo;
lib/RapidApp/Data/Dmap.pm:58:    $other->{handler}->();
lib/RapidApp/Data/Dmap.pm:66:=item C<dmap> (always exported) - the dmap function that does deep in-place mapping
lib/RapidApp/Data/Dmap.pm:68:=item C<cut> (optional) - a function for stopping recursion.
lib/RapidApp/Data/Dmap.pm:76:This function works like C<map> - it takes an expression followed by a list,
lib/RapidApp/Data/Dmap.pm:137:    pp dmap { if(ref eq 'HASH' and $height--) { $_->{a} = {height => $height} } $_ } {};
lib/RapidApp/Data/Dmap.pm:173:    pp dmap { cut('stop') if ref eq 'HASH' and $_->{level} == 2} $deep;
lib/RapidApp/Data/Dmap.pm:185:    $cache->{refaddr($ref)} = [@_];
lib/RapidApp/Data/Dmap.pm:191:    @{$cache->{refaddr($ref)}};
lib/RapidApp/Data/Dmap.pm:197:    exists $cache->{refaddr($ref)};
lib/RapidApp/Data/Dmap.pm:211:                    @mapped = $callback->($orig_ref);
lib/RapidApp/Data/Dmap.pm:225:                                my @res = _dmap($cache, $callback, $val->{$_});
lib/RapidApp/Data/Dmap.pm:229:                                    $val->{$_} = $res[0];
lib/RapidApp/Data/Dmap.pm:231:                                    delete $val->{$_};
lib/RapidApp/Data/Dmap.pm:239:                                if(exists $val->[$i]) {
lib/RapidApp/Data/Dmap.pm:240:                                    # TODO Use splice to allow multi-value returns
lib/RapidApp/Data/Dmap.pm:241:                                    my @res = _dmap($cache, $callback, $val->[$i]);
lib/RapidApp/Data/Dmap.pm:245:                                        $val->[$i] = $res[0];
lib/RapidApp/Data/Dmap.pm:271:            @result = $callback->($_);
lib/RapidApp/Data/Dmap.pm:292:=item * Fork C<Data::Dmap> from L<http://github.com/mzedeler/Data-Dmap>
lib/RapidApp/Data/Dmap.pm:301:L<http://github.com/mzedeler/Data-Dmap/issues>. I may not be notified, so send
lib/RapidApp/Data/Dmap.pm:316:L<http://github.com/mzedeler/Data-Dmap/issues>
lib/RapidApp/Data/Dmap.pm:320:L<http://annocpan.org/dist/Data-Dmap>
lib/RapidApp/Data/Dmap.pm:324:L<http://cpanratings.perl.org/d/Data-Dmap>
lib/RapidApp/Data/Dmap.pm:328:L<http://search.cpan.org/dist/Data-Dmap/>
lib/RapidApp/Functions.pm:10:  "   [tip]: run `upgr-rapidapp.pl path/to/lib/` to upgrade your code automatically...",
lib/RapidApp/Functions.pm:45:			ref($_->[0]) eq 'HASH' and 
lib/RapidApp/Functions.pm:46:			defined $_->[0]->{package}
lib/RapidApp/Functions.pm:56:	$pre = BOLD . ($_->[2]->{subroutine} ? $_->[2]->{subroutine} . '  ' : '') .
lib/RapidApp/Functions.pm:57:		'[line ' . $_->[1]->{line} . ']: ' . CLEAR . "\n" unless ($_ eq 'no_caller_data');
lib/RapidApp/Functions.pm:86:			$hashref->{$last} = { %{$hashref->{$last}}, %$item };
lib/RapidApp/Functions.pm:90:		$hashref->{$item} = {} unless (defined $hashref->{$item});
lib/RapidApp/Functions.pm:109:			$hashref->{$last} = { %{$hashref->{$last}}, %$item };
lib/RapidApp/Functions.pm:110:			push @list, $last, $hashref->{$last};
lib/RapidApp/Functions.pm:113:		$hashref->{$item} = {} unless (defined $hashref->{$item});
lib/RapidApp/Functions.pm:114:		push @list,$item,$hashref->{$item} unless (ref $last);
lib/RapidApp/Functions.pm:117:	return @list; # <-- preserve order
lib/RapidApp/Functions.pm:145:		($h->{package}, $h->{filename}, $h->{line}, $h->{subroutine}, $h->{hasargs},
lib/RapidApp/Functions.pm:146:			$h->{wantarray}, $h->{evaltext}, $h->{is_require}, $h->{hints}, $h->{bitmask}) = caller($i);
lib/RapidApp/Functions.pm:147:		push @list,$h if($h->{package});
lib/RapidApp/Functions.pm:168:		if($regex and ! eval('$item->{subroutine} =~ /' . $regex . '/')) {
lib/RapidApp/Functions.pm:174:		push @new, { map { $_ => $item->{$_} } grep { $inc{$_} } keys %$item };
lib/RapidApp/Functions.pm:190:	@{$_[0]} = uniq(@{$_[0]},$_[0]->[0]);
lib/RapidApp/Functions.pm:201:	die "deref(): invalid ref type '$type' - supported types: SCALAR, ARRAY and HASH";
lib/RapidApp/Functions.pm:210:	my $recurse = (caller(1))[3] eq __PACKAGE__ . '::disp' ? 1 : 0; #<-- true if called by ourself
lib/RapidApp/Functions.pm:216:		my $cust = $_{code}->(@_);
lib/RapidApp/Functions.pm:226:		return '{ ' . join(',',map { $_ . ' => ' . disp($val->{$_}) } keys %$val) . ' }' if (ref($val) eq 'HASH'); 
lib/RapidApp/Functions.pm:227:		return "$val" #<-- generic fall-back for other references
lib/RapidApp/Functions.pm:273:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Functions.pm:293:		next if ($debug_arounds_set->{$package . '->' . $method}++); #<-- if its already set
lib/RapidApp/Functions.pm:299:		if($package->can('around')) {
lib/RapidApp/Functions.pm:300:			$package->can('around')->($method => $around);
lib/RapidApp/Functions.pm:305:		my $meta = Class::MOP::Class->initialize($package);
lib/RapidApp/Functions.pm:306:		$meta->add_around_method_modifier($method => $around)
lib/RapidApp/Functions.pm:310:# Returns a coderef - designed to be a Moose around modifier - that will
lib/RapidApp/Functions.pm:314:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Functions.pm:331:		arg_ignore		=> sub { 0 }, # <-- no debug output prited when this returns true
lib/RapidApp/Functions.pm:332:		return_ignore	=> sub { 0 },# <-- no debug output prited when this returns true
lib/RapidApp/Functions.pm:341:		return $self->$orig(@_);
lib/RapidApp/Functions.pm:357:		#return RapidApp::JSON::MixedEncoder->new->allow_blessed->convert_blessed->allow_nonref->encode(\@_);
lib/RapidApp/Functions.pm:397:				print STDERR '((stack ' . sprintf("%2s",$i--) . ')) ' . sprintf("%7s",'[' . $data->{line} . ']') . ' ' . 
lib/RapidApp/Functions.pm:398:					GREEN . $data->{subroutine} . CLEAR . $newline;
lib/RapidApp/Functions.pm:408:		print STDERR '[' . $opt{line} . '] ' . CLEAR . $opt{color} . $class . CLEAR . '->' . 
lib/RapidApp/Functions.pm:414:				$opt{dump_func}->($opt{verbose_in},\@args) . CLEAR . $newline . ": " 
lib/RapidApp/Functions.pm:429:					@res = $opt{around}->($orig,$self,@args);
lib/RapidApp/Functions.pm:430:				} catch { $in_func->(); die (shift);};
lib/RapidApp/Functions.pm:435:					$res = $opt{around}->($orig,$self,@args);
lib/RapidApp/Functions.pm:436:				} catch { $in_func->(); die (shift);};
lib/RapidApp/Functions.pm:445:		my $adj_elapsed = $elapsed_raw - $current_nest_elapse;
lib/RapidApp/Functions.pm:446:		$debug_around_nest_elapse += $elapsed_raw; #<-- send our elapsed time up the chain
lib/RapidApp/Functions.pm:448:		# -- Track stats in global %$RapidApp::Functions::debug_around_stats:
lib/RapidApp/Functions.pm:451:			my $k = $class . '->' . $name;
lib/RapidApp/Functions.pm:452:			$debug_around_stats->{$k} = $debug_around_stats->{$k} || {};
lib/RapidApp/Functions.pm:453:			my $stats = $debug_around_stats->{$k};
lib/RapidApp/Functions.pm:458:				calls => $stats->{calls} + 1,
lib/RapidApp/Functions.pm:459:				real_total => $stats->{real_total} + $elapsed_raw,
lib/RapidApp/Functions.pm:460:				total => $stats->{total} + $adj_elapsed,
lib/RapidApp/Functions.pm:461:				min => exists $stats->{min} ? $stats->{min} : $adj_elapsed,
lib/RapidApp/Functions.pm:462:				max => exists $stats->{max} ? $stats->{max} : $adj_elapsed,
lib/RapidApp/Functions.pm:464:			$stats->{avg} = $stats->{total}/$stats->{calls};
lib/RapidApp/Functions.pm:465:			$stats->{min} = $adj_elapsed if ($adj_elapsed < $stats->{min});
lib/RapidApp/Functions.pm:466:			$stats->{max} = $adj_elapsed if ($adj_elapsed > $stats->{max});
lib/RapidApp/Functions.pm:468:		# --
lib/RapidApp/Functions.pm:471:		if(!$opt{arg_ignore}->(@args) && !$opt{return_ignore}->(@res_copy)) {
lib/RapidApp/Functions.pm:473:			$in_func->();
lib/RapidApp/Functions.pm:480:			my $result = $opt{ret_color} . $opt{dump_func}->($opt{verbose_out},@res_copy) . CLEAR;
lib/RapidApp/Functions.pm:511:	my $meta = Class::MOP::Class->initialize($pkg);
lib/RapidApp/Functions.pm:512:	$meta->add_method($name,$code);
lib/RapidApp/Functions.pm:519:	my $meta = Class::MOP::Class->initialize($pkg);
lib/RapidApp/Functions.pm:520:	debug_around($_, pkg => $pkg) for ($meta->get_method_list);
lib/RapidApp/Functions.pm:526:	return undef unless (-e $file);
lib/RapidApp/Functions.pm:529:	($h->{dev},$h->{ino},$h->{mode},$h->{nlink},$h->{uid},$h->{gid},$h->{rdev},
lib/RapidApp/Functions.pm:530:			 $h->{size},$h->{atime},$h->{mtime},$h->{ctime},$h->{blksize},$h->{blocks})
lib/RapidApp/Functions.pm:539:	our @EXPORT = Class::MOP::Class->initialize(__PACKAGE__)->get_method_list;
lib/RapidApp/HTML/RawHtml.pm:24:use overload '""' => \&_stringify_static, fallback => 1; # to-string operator overload
lib/RapidApp/HTML/RawHtml.pm:36:sub _stringify_static { (shift)->stringify }
lib/RapidApp/Handler.pm:13:	die 'neither code nor method supplied.' unless (defined $self->method or defined $self->code);
lib/RapidApp/Handler.pm:14:	die 'method and code cannot be used together' if (defined $self->method and defined $self->code);
lib/RapidApp/Handler.pm:16:	if (defined $self->method) {
lib/RapidApp/Handler.pm:17:		die 'scope is required with method' unless (defined $self->scope);
lib/RapidApp/Handler.pm:18:		$self->scope->can($self->method) or die ref($self->scope) . ' does not have a method named "' . $self->method . '"';
lib/RapidApp/Handler.pm:27:	return $self->_call_coderef(@args) if (defined $self->code);
lib/RapidApp/Handler.pm:28:	my $method = $self->method;
lib/RapidApp/Handler.pm:29:	return $self->scope->$method(@args);
lib/RapidApp/Handler.pm:35:	push @arg, $self->scope if (defined $self->scope);
lib/RapidApp/Handler.pm:37:	return $self->code->(@arg);
lib/RapidApp/Helper.pm:17:RapidApp::Helper - Bootstrap a RapidApp/Catalyst application
lib/RapidApp/Helper.pm:34:sub _mk_config    { 1 } #<-- since we don't setup ConfigLoader
lib/RapidApp/Helper.pm:38:sub _mk_appclass  { (shift)->_ra_mk_appclass(@_) }
lib/RapidApp/Helper.pm:49:  if(!defined $self->{'dir'}) {
lib/RapidApp/Helper.pm:50:      $self->{dir} = $name;
lib/RapidApp/Helper.pm:51:      $self->{dir} =~ s/\:\:/-/g;
lib/RapidApp/Helper.pm:54:  my $dir = dir( $self->{dir} );
lib/RapidApp/Helper.pm:55:  if(-e $dir) {
lib/RapidApp/Helper.pm:56:    die "Error: app target dir '$dir' already exists but is not a directory.\n" unless (-d $dir);
lib/RapidApp/Helper.pm:57:    my @children = $dir->children(no_hidden => 1);
lib/RapidApp/Helper.pm:62:      $self->{_dir_was_empty} = 1;
lib/RapidApp/Helper.pm:66:    $self->{_dir_not_exist} = 1;
lib/RapidApp/Helper.pm:71:    $ret = $self->$orig($name);
lib/RapidApp/Helper.pm:76:    $self->_error_cleanup;
lib/RapidApp/Helper.pm:83:    $self->_error_cleanup;
lib/RapidApp/Helper.pm:93:  if($self->{_dir_was_empty}) {
lib/RapidApp/Helper.pm:94:    my $dir = dir( $self->{dir} );
lib/RapidApp/Helper.pm:95:    if (-d $dir) {
lib/RapidApp/Helper.pm:97:      my @children = $dir->children(no_hidden => 1);
lib/RapidApp/Helper.pm:98:      $_->is_dir ? $_->rmtree(1,1) : $_->remove for (@children);
lib/RapidApp/Helper.pm:102:  elsif($self->{_dir_not_exist}) {
lib/RapidApp/Helper.pm:103:    my $dir = dir( $self->{dir} );
lib/RapidApp/Helper.pm:104:    if (-d $dir) {
lib/RapidApp/Helper.pm:106:      $dir->rmtree(1,1) and print "done.\n";
lib/RapidApp/Helper.pm:116:    $self->mk_dir( $self->{dir} );
lib/RapidApp/Helper.pm:117:    $self->mk_dir( $self->{script} );
lib/RapidApp/Helper.pm:118:    $self->{lib} = dir( $self->{dir}, 'lib' );
lib/RapidApp/Helper.pm:119:    $self->mk_dir( $self->{lib} );
lib/RapidApp/Helper.pm:120:    $self->{root} = dir( $self->{dir}, 'root' );
lib/RapidApp/Helper.pm:121:    $self->mk_dir( $self->{root} );
lib/RapidApp/Helper.pm:124:    #$self->{static} = dir( $self->{root}, 'static' );
lib/RapidApp/Helper.pm:125:    #$self->mk_dir( $self->{static} );
lib/RapidApp/Helper.pm:126:    #$self->{images} = dir( $self->{static}, 'images' );
lib/RapidApp/Helper.pm:127:    #$self->mk_dir( $self->{images} );
lib/RapidApp/Helper.pm:129:    $self->{t} = dir( $self->{dir}, 't' );
lib/RapidApp/Helper.pm:130:    $self->mk_dir( $self->{t} );
lib/RapidApp/Helper.pm:132:    $self->{class} = dir( split( /\:\:/, $self->{name} ) );
lib/RapidApp/Helper.pm:133:    $self->{mod} = dir( $self->{lib}, $self->{class} );
lib/RapidApp/Helper.pm:134:    $self->mk_dir( $self->{mod} );
lib/RapidApp/Helper.pm:136:    if ( $self->{short} ) {
lib/RapidApp/Helper.pm:137:        $self->{m} = dir( $self->{mod}, 'M' );
lib/RapidApp/Helper.pm:138:        $self->mk_dir( $self->{m} );
lib/RapidApp/Helper.pm:139:        $self->{v} = dir( $self->{mod}, 'V' );
lib/RapidApp/Helper.pm:140:        $self->mk_dir( $self->{v} );
lib/RapidApp/Helper.pm:141:        $self->{c} = dir( $self->{mod}, 'C' );
lib/RapidApp/Helper.pm:142:        $self->mk_dir( $self->{c} );
lib/RapidApp/Helper.pm:145:        $self->{m} = dir( $self->{mod}, 'Model' );
lib/RapidApp/Helper.pm:146:        $self->mk_dir( $self->{m} );
lib/RapidApp/Helper.pm:147:        $self->{v} = dir( $self->{mod}, 'View' );
lib/RapidApp/Helper.pm:148:        $self->mk_dir( $self->{v} );
lib/RapidApp/Helper.pm:149:        $self->{c} = dir( $self->{mod}, 'Controller' );
lib/RapidApp/Helper.pm:150:        $self->mk_dir( $self->{c} );
lib/RapidApp/Helper.pm:154:    #my $name = $self->{name};
lib/RapidApp/Helper.pm:155:    #$self->{rootname} =
lib/RapidApp/Helper.pm:156:    #  $self->{short} ? "$name\::C::Root" : "$name\::Controller::Root";
lib/RapidApp/Helper.pm:157:    #$self->{base} = dir( $self->{dir} )->absolute;
lib/RapidApp/Helper.pm:159:    return $self->_ra_mk_dirs();
lib/RapidApp/Helper.pm:163:### RapidApp-specific methods follow: ###
lib/RapidApp/Helper.pm:170:# Create extra, RapidApp-specific dirs:
lib/RapidApp/Helper.pm:175:  $self->{ra_templates} = dir( $self->{root}, 'templates' );
lib/RapidApp/Helper.pm:176:  $self->mk_dir( $self->{ra_templates} );
lib/RapidApp/Helper.pm:179:  $self->{ra_assets} = dir( $self->{root}, 'assets' );
lib/RapidApp/Helper.pm:180:  $self->mk_dir( $self->{ra_assets} );
lib/RapidApp/Helper.pm:181:  $self->{ra_css} = dir( $self->{ra_assets}, 'css' );
lib/RapidApp/Helper.pm:182:  $self->mk_dir( $self->{ra_css} );
lib/RapidApp/Helper.pm:183:  $self->{ra_icons} = dir( $self->{ra_assets}, 'icons' );
lib/RapidApp/Helper.pm:184:  $self->mk_dir( $self->{ra_icons} );
lib/RapidApp/Helper.pm:185:  $self->{ra_js} = dir( $self->{ra_assets}, 'js' );
lib/RapidApp/Helper.pm:186:  $self->mk_dir( $self->{ra_js} );
lib/RapidApp/Helper.pm:187:  $self->{ra_misc} = dir( $self->{ra_assets}, 'misc' );
lib/RapidApp/Helper.pm:188:  $self->mk_dir( $self->{ra_misc} );
lib/RapidApp/Helper.pm:191:  $self->{ra_devel} = dir( $self->{dir}, 'devel' );
lib/RapidApp/Helper.pm:192:  $self->mk_dir( $self->{ra_devel} );
lib/RapidApp/Helper.pm:198:  my $mod  = $self->{mod};
lib/RapidApp/Helper.pm:201:  #return $self->render_sharedir_file( file('lib', 'MyApp.pm.tt'), "$mod.pm" );
lib/RapidApp/Helper.pm:204:    RapidApp->share_dir,
lib/RapidApp/Helper.pm:208:  confess "Error: template file '$tpl' not found" unless (-f $tpl);
lib/RapidApp/Helper.pm:210:  my $contents = $tpl->slurp(iomode =>  "<:raw");
lib/RapidApp/Helper.pm:211:  my $vars = $self->_ra_appclass_tt_vars;
lib/RapidApp/Helper.pm:213:  $self->render_file_contents($contents,"$mod.pm",$vars);
lib/RapidApp/Helper.pm:215:  # -- New: also create app.psgi so 'plackup' works w/o arguments
lib/RapidApp/Helper.pm:216:  my $apptpl = file(RapidApp->share_dir,qw(devel bootstrap app.psgi.tt));
lib/RapidApp/Helper.pm:217:  confess "Error: template file '$apptpl' not found" unless (-f $apptpl);
lib/RapidApp/Helper.pm:218:  my $appcontents = $apptpl->slurp(iomode =>  "<:raw");
lib/RapidApp/Helper.pm:219:  $self->render_file_contents($appcontents,file($self->{dir},"app.psgi"),$vars);
lib/RapidApp/Helper.pm:220:  # --
lib/RapidApp/Helper.pm:222:  # -- New: also create cpanfile
lib/RapidApp/Helper.pm:223:  my $cftpl = file(RapidApp->share_dir,qw(devel bootstrap cpanfile.tt));
lib/RapidApp/Helper.pm:224:  confess "Error: template file '$cftpl' not found" unless (-f $cftpl);
lib/RapidApp/Helper.pm:225:  my $cfcontents = $cftpl->slurp(iomode =>  "<:raw");
lib/RapidApp/Helper.pm:226:  $self->render_file_contents($cfcontents,file($self->{dir},"cpanfile"),$vars);
lib/RapidApp/Helper.pm:227:  # --
lib/RapidApp/Helper.pm:235:    plugins => [ uniq($self->_ra_catalyst_plugins) ],
lib/RapidApp/Helper.pm:236:    configs => [ $self->_ra_catalyst_configs ]
lib/RapidApp/Helper.pm:242:  return qw(-Debug RapidApp);
lib/RapidApp/Helper.pm:246:# formatted for __PACKAGE__->config( ... )
lib/RapidApp/Helper/Traits/AuthCore.pm:14:  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/AuthCore.pm:17:    $_ ne 'RapidApp' #<-- Base plugin redundant
lib/RapidApp/Helper/Traits/AuthCore.pm:24:  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/NavCore.pm:14:  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/NavCore.pm:17:    $_ ne 'RapidApp' #<-- Base plugin redundant
lib/RapidApp/Helper/Traits/NavCore.pm:24:  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/NavCore.pm:31:    # views in addition to system-wide saved views. No options are required.
lib/RapidApp/Helper/Traits/RapidDbic.pm:28:  $self->_ra_rapiddbic_opts;
lib/RapidApp/Helper/Traits/RapidDbic.pm:33:  my @args = @{$self->extra_args};
lib/RapidApp/Helper/Traits/RapidDbic.pm:38:    'from-sqlite=s',
lib/RapidApp/Helper/Traits/RapidDbic.pm:39:    'from-sqlite-ddl=s',
lib/RapidApp/Helper/Traits/RapidDbic.pm:40:    'blank-ddl+',
lib/RapidApp/Helper/Traits/RapidDbic.pm:41:    'loader-option=s@',
lib/RapidApp/Helper/Traits/RapidDbic.pm:42:    'connect-option=s@'
lib/RapidApp/Helper/Traits/RapidDbic.pm:47:  exists $opts{'from-sqlite'} and $count++;
lib/RapidApp/Helper/Traits/RapidDbic.pm:48:  exists $opts{'from-sqlite-ddl'} and $count++;
lib/RapidApp/Helper/Traits/RapidDbic.pm:49:  exists $opts{'blank-ddl'} and $count++;
lib/RapidApp/Helper/Traits/RapidDbic.pm:51:  die "RapidDbic: must supply --dsn, --from-sqlite or --from-sqlite-ddl option\n" 
lib/RapidApp/Helper/Traits/RapidDbic.pm:54:  die "RapidDbic: --dsn|--from-sqlite|--from-sqlite-ddl options cannot be used together\n"
lib/RapidApp/Helper/Traits/RapidDbic.pm:57:  if($opts{'from-sqlite'}) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:58:    my $sqlt_orig = file($opts{'from-sqlite'});
lib/RapidApp/Helper/Traits/RapidDbic.pm:59:    die "RapidDbic: --from-sqlite file '$sqlt_orig' not found\n" unless (-f $sqlt_orig);
lib/RapidApp/Helper/Traits/RapidDbic.pm:61:  elsif($opts{'from-sqlite-ddl'}) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:62:    can_run('sqlite3') or die "RapidDbic: sqlite3 not found - cannot bootstrap from DDL\n";
lib/RapidApp/Helper/Traits/RapidDbic.pm:63:    my $ddl = file($opts{'from-sqlite-ddl'});
lib/RapidApp/Helper/Traits/RapidDbic.pm:64:    die "RapidDbic: --from-sqlite-ddl file '$ddl' not found\n" unless (-f $ddl);
lib/RapidApp/Helper/Traits/RapidDbic.pm:68:    my $size = $ddl->stat->size;
lib/RapidApp/Helper/Traits/RapidDbic.pm:73:  my $name = $self->{name};
lib/RapidApp/Helper/Traits/RapidDbic.pm:75:  $opts{'model-name'}   ||= 'DB';
lib/RapidApp/Helper/Traits/RapidDbic.pm:76:  $opts{'schema-class'} ||= join('::',$name,$opts{'model-name'});
lib/RapidApp/Helper/Traits/RapidDbic.pm:84:  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/RapidDbic.pm:87:    $_ ne 'RapidApp' #<-- Base plugin redundant
lib/RapidApp/Helper/Traits/RapidDbic.pm:95:  my $file = $self->$orig(@args) 
lib/RapidApp/Helper/Traits/RapidDbic.pm:96:    || file($self->{script}, "$self->{appprefix}\_create.pl");
lib/RapidApp/Helper/Traits/RapidDbic.pm:99:  local $FindBin::Bin = $file->parent->absolute->resolve->stringify;
lib/RapidApp/Helper/Traits/RapidDbic.pm:103:  $self->_ra_rapiddbic_generate_model;
lib/RapidApp/Helper/Traits/RapidDbic.pm:111:  my $name = $self->{name};
lib/RapidApp/Helper/Traits/RapidDbic.pm:112:  my $home = dir( $self->{dir} );
lib/RapidApp/Helper/Traits/RapidDbic.pm:113:  die "RapidDbic: error finding new app home dir '$home'" unless (-d $home);
lib/RapidApp/Helper/Traits/RapidDbic.pm:115:  my $opts = $self->_ra_rapiddbic_opts;
lib/RapidApp/Helper/Traits/RapidDbic.pm:117:  my @connect_info = $opts->{dsn} ? split(/\,/,$opts->{dsn},3) : ();
lib/RapidApp/Helper/Traits/RapidDbic.pm:122:  my $updater_script_name = join('_','model',$opts->{'model-name'},'updater.pl');
lib/RapidApp/Helper/Traits/RapidDbic.pm:124:  if($opts->{'from-sqlite'}) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:126:    my $sqlt_orig = file($opts->{'from-sqlite'});
lib/RapidApp/Helper/Traits/RapidDbic.pm:127:    my $sqlt = file($home,$sqlt_orig->basename);
lib/RapidApp/Helper/Traits/RapidDbic.pm:129:    if (-f $sqlt) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:130:      # TODO: support the regenerate/rescan and/or -force cases...
lib/RapidApp/Helper/Traits/RapidDbic.pm:131:      die "RapidDbic: error - will not overwrite existing file '$sqlt'\n" ;
lib/RapidApp/Helper/Traits/RapidDbic.pm:136:      $sqlt_orig->copy_to( $sqlt );
lib/RapidApp/Helper/Traits/RapidDbic.pm:137:      die "RapidDbic: unexpected error copying '$sqlt_orig' to '$sqlt'" unless (-f $sqlt);
lib/RapidApp/Helper/Traits/RapidDbic.pm:143:    @connect_info = ( join(':','dbi','SQLite',$sqlt->absolute->resolve->stringify) );
lib/RapidApp/Helper/Traits/RapidDbic.pm:145:  elsif($opts->{'from-sqlite-ddl'}) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:147:    my $sqldir = $home->subdir('sql');
lib/RapidApp/Helper/Traits/RapidDbic.pm:148:    $sqldir->mkpath(1) unless (-d $sqldir);
lib/RapidApp/Helper/Traits/RapidDbic.pm:150:    my $ddl_orig = file($opts->{'from-sqlite-ddl'});
lib/RapidApp/Helper/Traits/RapidDbic.pm:151:    $ddl = file($sqldir,$ddl_orig->basename);
lib/RapidApp/Helper/Traits/RapidDbic.pm:153:    if (-f $ddl) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:154:      die "RapidDbic: error - will not overwrite existing file '$ddl'\n" ;
lib/RapidApp/Helper/Traits/RapidDbic.pm:159:      $ddl_orig->copy_to( $ddl );
lib/RapidApp/Helper/Traits/RapidDbic.pm:160:      die "RapidDbic: unexpected error copying '$ddl_orig' to '$ddl'" unless (-f $ddl);
lib/RapidApp/Helper/Traits/RapidDbic.pm:163:    my $bn = $ddl->basename;
lib/RapidApp/Helper/Traits/RapidDbic.pm:168:    if (-f $sqlt) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:169:      # TODO: support the regenerate/rescan and/or -force cases...
lib/RapidApp/Helper/Traits/RapidDbic.pm:170:      die "RapidDbic: error - will not overwrite existing file '$sqlt'\n" ;
lib/RapidApp/Helper/Traits/RapidDbic.pm:174:      my $ddl_text = $ddl->slurp;
lib/RapidApp/Helper/Traits/RapidDbic.pm:177:      print "\n-->> calling system command:  sqlite3 $sqlt < $ddl ";
lib/RapidApp/Helper/Traits/RapidDbic.pm:180:      my $exit = $result->{exit_code};
lib/RapidApp/Helper/Traits/RapidDbic.pm:183:      die "\n" . $result->{err_msg} if ($exit);
lib/RapidApp/Helper/Traits/RapidDbic.pm:188:    -f $sqlt or die "db file '$sqlt' wasn't created; an unknown error has occured.";
lib/RapidApp/Helper/Traits/RapidDbic.pm:193:    @connect_info = ( join(':','dbi','SQLite',$sqlt->absolute->resolve->stringify) );
lib/RapidApp/Helper/Traits/RapidDbic.pm:195:    $self->_ra_add_rapiddbic_extra_info(
lib/RapidApp/Helper/Traits/RapidDbic.pm:200:      "  perl devel/$updater_script_name --from-ddl --cfg\n"
lib/RapidApp/Helper/Traits/RapidDbic.pm:204:  elsif($opts->{'blank-ddl'}) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:205:    my $sqldir = $home->subdir('sql');
lib/RapidApp/Helper/Traits/RapidDbic.pm:206:    $sqldir->mkpath(1) unless (-d $sqldir);
lib/RapidApp/Helper/Traits/RapidDbic.pm:208:    my $bn = $self->{appprefix};
lib/RapidApp/Helper/Traits/RapidDbic.pm:212:    if (-f $ddl) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:213:      die "RapidDbic: error - will not overwrite existing file '$ddl'\n" ;
lib/RapidApp/Helper/Traits/RapidDbic.pm:217:      my $blank_content = join("\n-- ",
lib/RapidApp/Helper/Traits/RapidDbic.pm:218:        #'-------------------------------------------------------------------------------',
lib/RapidApp/Helper/Traits/RapidDbic.pm:219:        ('-' x 80),
lib/RapidApp/Helper/Traits/RapidDbic.pm:220:        '  *** ' . $ddl->relative($home) . '  --  DO NOT MOVE OR RENAME THIS FILE ***','',
lib/RapidApp/Helper/Traits/RapidDbic.pm:222:        "To (re)initialize your SQLite database (" . $sqlt->relative($home) . ") and (re)generate",
lib/RapidApp/Helper/Traits/RapidDbic.pm:225:        "   perl devel/$updater_script_name --from-ddl --cfg",
lib/RapidApp/Helper/Traits/RapidDbic.pm:226:        "\n" . ('-' x 80) . "\n" 
lib/RapidApp/Helper/Traits/RapidDbic.pm:230:      $ddl->spew( $blank_content );
lib/RapidApp/Helper/Traits/RapidDbic.pm:233:    if (-f $sqlt) {
lib/RapidApp/Helper/Traits/RapidDbic.pm:234:      # TODO: support the regenerate/rescan and/or -force cases...
lib/RapidApp/Helper/Traits/RapidDbic.pm:235:      die "RapidDbic: error - will not overwrite existing file '$sqlt'\n" ;
lib/RapidApp/Helper/Traits/RapidDbic.pm:241:      print "Initializing blank SQLite database '" . $sqlt->relative . "'\n";
lib/RapidApp/Helper/Traits/RapidDbic.pm:242:      print "\n-->> calling system command:  sqlite3 $sqlt \".databases\" ";
lib/RapidApp/Helper/Traits/RapidDbic.pm:245:      my $exit = $result->{exit_code};
lib/RapidApp/Helper/Traits/RapidDbic.pm:248:      die "\n" . $result->{err_msg} if ($exit);
lib/RapidApp/Helper/Traits/RapidDbic.pm:253:    -f $sqlt or die "db file '$sqlt' wasn't created; an unknown error has occured.";
lib/RapidApp/Helper/Traits/RapidDbic.pm:258:    @connect_info = ( join(':','dbi','SQLite',$sqlt->absolute->resolve->stringify) );
lib/RapidApp/Helper/Traits/RapidDbic.pm:260:    $self->_ra_add_rapiddbic_extra_info(
lib/RapidApp/Helper/Traits/RapidDbic.pm:265:      "  perl devel/$updater_script_name --from-ddl --cfg\n",
lib/RapidApp/Helper/Traits/RapidDbic.pm:277:    # Turn on unicode and auto-reconnect for MySQL:
lib/RapidApp/Helper/Traits/RapidDbic.pm:285:  my @connect_opts = $self->_normalize_option_list(
lib/RapidApp/Helper/Traits/RapidDbic.pm:286:    $opts->{'connect-option'} || [],
lib/RapidApp/Helper/Traits/RapidDbic.pm:292:  # -- GitHub Issue #164 --
lib/RapidApp/Helper/Traits/RapidDbic.pm:293:  # turn on qualify_objects by default whenever a 'db-schema' is supplied:
lib/RapidApp/Helper/Traits/RapidDbic.pm:295:    List::Util::first { $_ =~ /^db[-_]schema\=/ } @{$opts->{'loader-option'} || []}
lib/RapidApp/Helper/Traits/RapidDbic.pm:297:  # --
lib/RapidApp/Helper/Traits/RapidDbic.pm:299:  my @loader_opts = $self->_normalize_option_list(
lib/RapidApp/Helper/Traits/RapidDbic.pm:300:    $opts->{'loader-option'} || [],
lib/RapidApp/Helper/Traits/RapidDbic.pm:304:  die "create=static is the only allowed value for loader-option 'create'" if (
lib/RapidApp/Helper/Traits/RapidDbic.pm:308:  my $schema_class = $opts->{'schema-class'} or die "missing required opt 'schema-class'";
lib/RapidApp/Helper/Traits/RapidDbic.pm:310:  $opts->{grid_class} = join('::',$name,'Module','GridBase');
lib/RapidApp/Helper/Traits/RapidDbic.pm:313:    # If this succeeds we are dealing with an existing schema - clear loader opts
lib/RapidApp/Helper/Traits/RapidDbic.pm:319:    'model'                      => $opts->{'model-name'},
lib/RapidApp/Helper/Traits/RapidDbic.pm:332:      "  -------------------------------",
lib/RapidApp/Helper/Traits/RapidDbic.pm:333:      "  model $opts->{'model-name'}",
lib/RapidApp/Helper/Traits/RapidDbic.pm:334:      "  DBIC::Schema::ForRapidDbic $opts->{'schema-class'}",
lib/RapidApp/Helper/Traits/RapidDbic.pm:338:      "  -------------------------------",''
lib/RapidApp/Helper/Traits/RapidDbic.pm:340:    Catalyst::ScriptRunner->run($name => 'Create');
lib/RapidApp/Helper/Traits/RapidDbic.pm:346:  my $tpl = file(RapidApp->share_dir,qw(devel bootstrap model_NAME_updater.pl.tt));
lib/RapidApp/Helper/Traits/RapidDbic.pm:347:  confess "Error: template file '$tpl' not found" unless (-f $tpl);
lib/RapidApp/Helper/Traits/RapidDbic.pm:349:  my $contents = $tpl->slurp(iomode =>  "<:raw");
lib/RapidApp/Helper/Traits/RapidDbic.pm:350:  my $vars = $self->_ra_appclass_tt_vars;
lib/RapidApp/Helper/Traits/RapidDbic.pm:351:  $vars->{model_class} = join('::',$self->{name},'Model',$opts->{'model-name'});
lib/RapidApp/Helper/Traits/RapidDbic.pm:353:  $vars->{from_ddl} = $ddl->relative($home) if ($ddl);
lib/RapidApp/Helper/Traits/RapidDbic.pm:354:  $vars->{updater_script_name} = $updater_script_name;
lib/RapidApp/Helper/Traits/RapidDbic.pm:355:  $self->render_file_contents($contents,file($self->{ra_devel},$updater_script_name),$vars);
lib/RapidApp/Helper/Traits/RapidDbic.pm:358:  $tpl = file(RapidApp->share_dir,qw(devel bootstrap GridBase.pm.tt));
lib/RapidApp/Helper/Traits/RapidDbic.pm:359:  confess "Error: template file '$tpl' not found" unless (-f $tpl);
lib/RapidApp/Helper/Traits/RapidDbic.pm:360:  $contents = $tpl->slurp(iomode =>  "<:raw");
lib/RapidApp/Helper/Traits/RapidDbic.pm:362:  my $grid_path = "$opts->{grid_class}.pm";
lib/RapidApp/Helper/Traits/RapidDbic.pm:364:  my $grid_file = file($self->{dir},'lib',$grid_path);
lib/RapidApp/Helper/Traits/RapidDbic.pm:365:  $grid_file->parent->mkpath(1) unless (-d $grid_file->parent);
lib/RapidApp/Helper/Traits/RapidDbic.pm:367:  $self->render_file_contents($contents,$grid_file,$opts);
lib/RapidApp/Helper/Traits/RapidDbic.pm:372:# option, with later values taking priority, and changing '-' to '_' in option name
lib/RapidApp/Helper/Traits/RapidDbic.pm:383:    $k =~ s/\-/\_/g;
lib/RapidApp/Helper/Traits/RapidDbic.pm:400:#  my $model = $self->_ra_rapiddbic_opts->{'model-name'};
lib/RapidApp/Helper/Traits/RapidDbic.pm:402:#  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/RapidDbic.pm:409:#      # use only the relationship column of a foreign-key and hide the 
lib/RapidApp/Helper/Traits/RapidDbic.pm:440:  $self->{_ra_rapiddbic_extra_info} ||= [];
lib/RapidApp/Helper/Traits/RapidDbic.pm:441:  push @{$self->{_ra_rapiddbic_extra_info}}, @_
lib/RapidApp/Helper/Traits/RapidDbic.pm:447:  if (my $nfos = $self->{_ra_rapiddbic_extra_info}) {
lib/RapidApp/Helper/Traits/TabGui.pm:13:  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/TabGui.pm:16:    $_ ne 'RapidApp' #<-- Base plugin redundant
lib/RapidApp/Helper/Traits/TabGui.pm:23:  my @list = $self->$orig(@args);
lib/RapidApp/Helper/Traits/TabGui.pm:31:      title => "$self->{name} v\$VERSION",
lib/RapidApp/Helper/Traits/Templates.pm:11:    $self->$orig(@args),
lib/RapidApp/Helper/Traits/Templates.pm:13:    # Customize the behaviors of the built-in "Template Controller" which is used
lib/RapidApp/Helper/Traits/Templates.pm:14:    # to serve template files application-wide. Locally defined Templates, if present,
lib/RapidApp/Helper/Traits/Templates.pm:36:      ## (Note: the access_params above are still supplied to ->new() ):
lib/RapidApp/Helper/Traits/Templates.pm:37:      #access_class => '$self->{name}::Template::Access',
lib/RapidApp/Helper/Traits/Templates.pm:40:      ## easy, public-facing content:
lib/RapidApp/Include.pm:9:  "   [tip]: run `upgr-rapidapp.pl path/to/lib/` to upgrade your code automatically...",
lib/RapidApp/Include.pm:33:This module includes all the commonly-needed rapidapp classes.  It can pull in additional sets of
lib/RapidApp/Include.pm:67:	my $ret= eval "require $usePkg; package $CALLER; $usePkg->import( ".'@$'.__PACKAGE__."::USEARGS ); 1;";
lib/RapidApp/JSON/MixedEncoder.pm:11:# ---
lib/RapidApp/JSON/MixedEncoder.pm:38:# ---
lib/RapidApp/JSON/MixedEncoder.pm:44:	($JSON ||= __PACKAGE__->new)->encode($_[0]);
lib/RapidApp/JSON/MixedEncoder.pm:47:	($JSON ||= __PACKAGE__->new)->decode($_[0]);
lib/RapidApp/JSON/MixedEncoder.pm:52:	($JSONUtf8 ||= __PACKAGE__->new->utf8)->encode($_[0]);
lib/RapidApp/JSON/MixedEncoder.pm:55:	($JSONUtf8 ||= __PACKAGE__->new->utf8)->decode($_[0]);
lib/RapidApp/JSON/MixedEncoder.pm:60:	return bless JSON::PP->new->allow_blessed->convert_blessed->allow_nonref, __PACKAGE__;
lib/RapidApp/JSON/MixedEncoder.pm:74:    my $val = $obj->();
lib/RapidApp/JSON/MixedEncoder.pm:75:    $val = '0' if ("$val" eq '0'); # <-- FIXME: there is a bug someplace
lib/RapidApp/JSON/MixedEncoder.pm:76:    return $self->object_to_json( $val );
lib/RapidApp/JSON/MixedEncoder.pm:79:  # New: support on-the-fly calling of closures
lib/RapidApp/JSON/MixedEncoder.pm:80:  #return $self->object_to_json( $obj->() ) if (ref($obj) eq 'CODE');
lib/RapidApp/JSON/MixedEncoder.pm:86:    # handle them on a case-by-case basis below:
lib/RapidApp/JSON/MixedEncoder.pm:97:          "   value '$val' - will be encoded as 'null' in JSON data.",
lib/RapidApp/JSON/MixedEncoder.pm:107:    my $method = $obj->can('TO_JSON_RAW');
lib/RapidApp/JSON/MixedEncoder.pm:108:    return $method->($obj) if defined $method;
lib/RapidApp/JSON/MixedEncoder.pm:112:  return $self->next::method($obj);
lib/RapidApp/JSON/RawJavascript.pm:7:use overload '""' => sub { (shift)->stringify(@_) };
lib/RapidApp/JSON/RawJavascript.pm:11:	return $self->TO_JSON_RAW;
lib/RapidApp/JSON/RawJavascript.pm:17:sub func { (shift)->js }
lib/RapidApp/JSON/RawJavascript.pm:23:		return $class->$orig( js => $_[0] ); # interpret single-param as a javascript fragment
lib/RapidApp/JSON/RawJavascript.pm:25:		return $class->$orig(@_);
lib/RapidApp/JSON/RawJavascript.pm:30:	return (shift)->js;
lib/RapidApp/JSON/RawJavascript.pm:34:__PACKAGE__->meta->make_immutable;
lib/RapidApp/JSON/ScriptWithData.pm:17:  $swd= RapidApp::JSON::ScriptWithData->new(
lib/RapidApp/JSON/ScriptWithData.pm:20:      'var b= foo(bar(', $self->getSomething, '));',
lib/RapidApp/JSONFunc.pm:8:# which extends JSON::PP and modifies the behavior to return TO_JSON_RAW as-is
lib/RapidApp/JSONFunc.pm:20:	return RapidApp::JSON::MixedEncoder->new;
lib/RapidApp/JSONFunc.pm:25:	return $self->func if ($self->raw);
lib/RapidApp/JSONFunc.pm:26:	return $self->func . '(' . $self->json->encode($self->parm) . ')';
lib/RapidApp/JSONFunc.pm:30:	return (shift)->TO_JSON;
lib/RapidApp/JSONFunc.pm:35:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Manual.pod:3:RapidApp::Manual - RapidApp user and developer manual
lib/RapidApp/Manual.pod:9:RapidApp is a recently open-sourced web application framework based on L<Catalyst>, ExtJS, 
lib/RapidApp/Manual.pod:10:L<Template::Toolkit> and L<DBIx::Class> for quickly creating interactive, data-rich webapps.
lib/RapidApp/Manual.pod:39:RapidApp-specific metadata associated with DBIx::Class result classes.
lib/RapidApp/Manual.pod:43:Built-in functionality for managing and serving "Assets" (CSS, JavaScript, 
lib/RapidApp/Manual/Assets.pod:3:RapidApp::Manual::Assets - Asset handling in RapidApp (CSS, JS, Images, etc.)
lib/RapidApp/Manual/Assets.pod:8:and serve built-in asset files as well as provide mechanisms for additional
lib/RapidApp/Manual/Assets.pod:9:user-defined and application-specific assets.
lib/RapidApp/Manual/Assets.pod:15:Built-in, and optional local and custom asset controllers are automatically setup
lib/RapidApp/Manual/Assets.pod:18:=head1 BUILT-IN ASSETS
lib/RapidApp/Manual/Assets.pod:20:The built-in assets are the same for every RapidApp application. This list
lib/RapidApp/Manual/Assets.pod:22:changed or configured about the built-in assets.
lib/RapidApp/Manual/Assets.pod:30:CSS asset controller for built-in RapidApp stylesheets.
lib/RapidApp/Manual/Assets.pod:34:JS asset controller for built-in RapidApp javascripts.
lib/RapidApp/Manual/Assets.pod:38:IconSet asset controller for built-in RapidApp icons. B<icon_name_prefix> 
lib/RapidApp/Manual/Assets.pod:39:for the built-in icons is set to C<ra-icon->. See 
lib/RapidApp/Manual/Assets.pod:46:HtmlEditor content locations) - will be removed/consolidated in the future.
lib/RapidApp/Manual/Assets.pod:76:C<icon->. Each image file found within the local app directory B<root/assets/icons>
lib/RapidApp/Manual/Assets.pod:79:'icon-apple'.
lib/RapidApp/Manual/Assets.pod:106:config param {'Plugin::AutoAssets'}->{assets}.
lib/RapidApp/Manual/Bootstrap.pod:3:RapidApp::Manual::Bootstrap - Bootstrapping a new app with rapidapp.pl
lib/RapidApp/Manual/Bootstrap.pod:10:RapidApp-specific customizations, including support for different helper "traits" 
lib/RapidApp/Manual/Bootstrap.pod:11:to setup different common application scenarios out-of-the-box.
lib/RapidApp/Manual/Bootstrap.pod:20:C<--helpers> option which can be used to specify a comma-separated list of helper
lib/RapidApp/Manual/Bootstrap.pod:27:  rapidapp.pl --helpers RapidDbic MyApp -- --dsn dbi:mysql:database=somedb,root,''
lib/RapidApp/Manual/Bootstrap.pod:29:The arguments following the C<--> are processed by the specified helpers rather than
lib/RapidApp/Manual/Bootstrap.pod:30:the main script itself. In the case of the RapidDbic helper, the C<--dsn> parameter 
lib/RapidApp/Manual/Bootstrap.pod:34:simply includes additional example configurations for RapidApp's built-in template
lib/RapidApp/Manual/Bootstrap.pod:43:  rapidapp.pl --helpers RapidDbic,Templates,AuthCore,NavCore MyApp \
lib/RapidApp/Manual/Bootstrap.pod:44:   -- --from-sqlite-ddl /path/to/existing/schema.sql
lib/RapidApp/Manual/Bootstrap.pod:60:app on-the-fly. It is essentially a single-use app which is regenerated each time it is
lib/RapidApp/Manual/Bootstrap.pod:72:general-purpose database admin utility, like PhpMyAdmin, Navicat, etc.
lib/RapidApp/Manual/Bootstrap.pod:79:The Plack-based interface L<Plack::App::RapidApp::rDbic> is also available for generating
lib/RapidApp/Manual/Bootstrap.pod:80:a CRUD app on-the-fly which can be further configured and mounted within any L<PSGI>/L<Plack>
lib/RapidApp/Manual/Installation.pod:3:RapidApp::Manual::Installation - Installing RapidApp on a new system
lib/RapidApp/Manual/Installation.pod:37:  wget -O - http://install.perlbrew.pl | bash
lib/RapidApp/Manual/Installation.pod:47:  perlbrew install perl-5.20.1
lib/RapidApp/Manual/Installation.pod:52:  perlbrew switch perl-5.20.1
lib/RapidApp/Manual/Installation.pod:53:  perlbrew install-cpanm
lib/RapidApp/Manual/Installation.pod:59:  echo -e "\nsource ~/perl5/perlbrew/etc/bashrc" >> ~/.bash_profile
lib/RapidApp/Manual/Installation.pod:65:=head2 Alternative one-line install
lib/RapidApp/Manual/Installation.pod:67:The above list of steps can be performed all at once using the C<instant-perlbrew> script
lib/RapidApp/Manual/Installation.pod:68:which is available on GitHub. If you are feeling brave, you can paste this one-liner to install
lib/RapidApp/Manual/Installation.pod:69:perlbrew+RapidApp on most Unix-based systems in one swoop:
lib/RapidApp/Manual/Installation.pod:71:  time wget -O - \
lib/RapidApp/Manual/Installation.pod:72:   https://raw.githubusercontent.com/vanstyn/instant-perlbrew/v1/instant-perlbrew.sh \
lib/RapidApp/Manual/Installation.pod:73:   | bash -s perl-5.20.1 RapidApp
lib/RapidApp/Manual/Installation.pod:76:See L<github.com/vanstyn/instant-perlbrew|https://github.com/vanstyn/instant-perlbrew> for 
lib/RapidApp/Manual/Installation.pod:77:more information on the C<instant-perlbrew.pl> script and exactly what it does.
lib/RapidApp/Manual/Modules.pod:3:RapidApp::Manual::Modules - RapidApp Modules
lib/RapidApp/Manual/Modules.pod:8:working interface, usually with an embedded ExtJS panel/component front-side view, which is 
lib/RapidApp/Manual/Modules.pod:17:Catalyst controller within the application. There is always one - and only one - Root Module which
lib/RapidApp/Manual/Modules.pod:23: __PACKAGE__->config(
lib/RapidApp/Manual/Modules.pod:35:There are a very large number of built-in modules included in the RapidApp distribution to
lib/RapidApp/Manual/Modules.pod:36:achieve all sorts of turn-key interfaces. The bulk of them focus on grids and trees, including
lib/RapidApp/Manual/Modules.pod:41:L<RapidApp::Module>. Built-in modules live within the C<RapidApp::Module::> namespace, such as
lib/RapidApp/Manual/Modules.pod:54:special, RapidApp-specific JavaScript function C<Ext.ux.RapidApp.AutoPanel>. Top-level views
lib/RapidApp/Manual/Modules.pod:70:    %{ $self->$orig(@args) },
lib/RapidApp/Manual/Modules.pod:90:There are also special controller dispatch paths provided to directly render any module on-the-fly via
lib/RapidApp/Manual/Modules.pod:105:RapidApp-provided interfaces, such as directly within HTML of public/custom content, via C<iframe>:
lib/RapidApp/Manual/Modules.pod:108:    class="ux-mif" 
lib/RapidApp/Manual/Modules.pod:120: /rapidapp/module/direct/adm/some/mod/path     # full-screen in dedicated Viewport
lib/RapidApp/Manual/Modules.pod:121: /rapidapp/module/navable/adm/some/mod/path    # full-screen in dedicated TabGui-like interface
lib/RapidApp/Manual/Modules.pod:122: /rapidapp/module/printview/adm/some/mod/path  # full-screen in a print-optimized Viewport
lib/RapidApp/Manual/Plugins.pod:3:RapidApp::Manual::Plugins - Suite of plugins available in RapidApp
lib/RapidApp/Manual/Plugins.pod:7:RapidApp provides a number of plugins which provide high-level, declarative configuration
lib/RapidApp/Manual/RapidDbic.pod:3:RapidApp::Manual::RapidDbic - Using the RapidDbic plugin
lib/RapidApp/Manual/RapidDbic.pod:8:simplified declarative API for accessing many of the DBIC-enabled modules and features available
lib/RapidApp/Manual/RapidDbic.pod:9:in the RapidApp distribution quickly and easily. This is provided in the form of a fully-working, 
lib/RapidApp/Manual/RapidDbic.pod:10:self-assembled CRUD-style admin application.
lib/RapidApp/Manual/RapidDbic.pod:12:RapidDbic also provides a common app structure which acts like a hub through which other high-level 
lib/RapidApp/Manual/RapidDbic.pod:19:L<Plack>-compatable app with L<Plack::App::RapidApp::rDbic>. There is also the command-line wrapper 
lib/RapidApp/Manual/TableSpec.pod:3:RapidApp::Manual::TableSpec - RapidApp/DBIC metadata config options
lib/RapidApp/Manual/TableSpec.pod:7:TableSpecs are RapidApp-specific metadata associated with DBIx::Class 
lib/RapidApp/Manual/TableSpec.pod:16:handled atomatically by higher-level APIs, namely RapidDbic. See
lib/RapidApp/Manual/TableSpec.pod:39:name in the same format as 'iconCls' in ExtJS. This is typically something like C<icon-apple> where
lib/RapidApp/Manual/TableSpec.pod:42:This icon is displayed in various single-row contexts, such as in tab titles (for row pages) or 
lib/RapidApp/Manual/TableSpec.pod:48:Defaults to 'ra-icon-pg'
lib/RapidApp/Manual/TableSpec.pod:53:class name in the same format as 'iconCls' in ExtJS. This is typically something like C<icon-apples>
lib/RapidApp/Manual/TableSpec.pod:59:Defaults to 'ra-icon-pg-multi'
lib/RapidApp/Manual/TableSpec.pod:79:C<display_column> for each row. C<combo> also enables type-in search/filtering of the list (which
lib/RapidApp/Manual/TableSpec.pod:87:with since it loads an entire grid interface in a pop-up window, instead of quick little inline
lib/RapidApp/Manual/TableSpec.pod:90:doesn't already exist by adding it on-the-spot, which is not available in the other types.
lib/RapidApp/Manual/TableSpec.pod:94:needed options are available -- it is better to have them and not need them than need them
lib/RapidApp/Manual/TableSpec.pod:144:sub-string match) for the given column, regardless of the client-side Quick Search mode. This is 
lib/RapidApp/Manual/TableSpec.pod:146:a sub-string.
lib/RapidApp/Manual/TableSpec.pod:164:settings will hide a column from grids but show it on the row page read-only:
lib/RapidApp/Manual/TableSpec.pod:192:Optional HashRef of config options to be merged into the config of the auto-generated editor for 
lib/RapidApp/Manual/TableSpec.pod:193:relationship columns. The kind of auto-generated editor depends on the value of C<auto_editor_type>
lib/RapidApp/Manual/TableSpec.pod:196:Only applies to single relationship columns - for expert/advanced usage only.
lib/RapidApp/Module.pm:26:has 'exception_style'       => ( is => 'ro',  required => 0,    default => "color: red; font-weight: bolder;"      );
lib/RapidApp/Module.pm:30:# ----------
lib/RapidApp/Module.pm:39:    return 'instance-' . String::Random->new->randregex('[a-z0-9A-Z]{5}');
lib/RapidApp/Module.pm:49:  $self->ONREQUEST_called(1);
lib/RapidApp/Module.pm:51:  foreach my $mod ($self->module_class_list) {
lib/RapidApp/Module.pm:52:    my $class= ref($mod) eq ''? $mod : ref $mod eq 'HASH'? $mod->{class} : undef;
lib/RapidApp/Module.pm:57:  $self->cached_per_req_attr_list;
lib/RapidApp/Module.pm:59:  $self->apply_actions(viewport => 'viewport');
lib/RapidApp/Module.pm:60:  $self->apply_actions(printview => 'printview');
lib/RapidApp/Module.pm:62:  $self->apply_init_modules(%{$self->auto_init_modules})
lib/RapidApp/Module.pm:63:    if ($self->auto_init_modules);
lib/RapidApp/Module.pm:70:  my $new_url = $self->base_url;
lib/RapidApp/Module.pm:76:  if (defined $self->base_query_string and $self->base_query_string ne '') {
lib/RapidApp/Module.pm:77:    $new_url .= '?' unless ($self->base_query_string =~ /^\?/);
lib/RapidApp/Module.pm:78:    $new_url .= $self->base_query_string;
lib/RapidApp/Module.pm:87:  $url = $url ? $self->suburl($url) : $self->base_url;
lib/RapidApp/Module.pm:88:  join('',$self->c->mount_url,$url)
lib/RapidApp/Module.pm:96:  my $new = Clone($self->base_params);
lib/RapidApp/Module.pm:100:      $new->{$k} = $params->{$k};
lib/RapidApp/Module.pm:113:  $self->c->stash->{current_view} ||= 'RapidApp::Viewport';
lib/RapidApp/Module.pm:114:  $self->c->stash->{title} ||= $self->module_name;
lib/RapidApp/Module.pm:115:  $self->c->stash->{config_url} ||= $self->base_url;
lib/RapidApp/Module.pm:116:  if (scalar keys %{$self->c->req->params}) {
lib/RapidApp/Module.pm:117:    $self->c->stash->{config_params} //= { %{$self->c->req->params} };
lib/RapidApp/Module.pm:123:  $self->c->stash->{current_view} ||= 'RapidApp::Printview';
lib/RapidApp/Module.pm:124:  return $self->viewport;
lib/RapidApp/Module.pm:131:  $self->viewport;
lib/RapidApp/Module.pm:133:  my $c = $self->c;
lib/RapidApp/Module.pm:135:  my $url    = delete $c->stash->{config_url};
lib/RapidApp/Module.pm:136:  my $params = exists $c->stash->{config_params} ? delete $c->stash->{config_params} : {};
lib/RapidApp/Module.pm:138:  $c->stash->{panel_cfg} = {
lib/RapidApp/Module.pm:140:    id => 'main-load-target',
lib/RapidApp/Module.pm:153:## --------------------------------------------------------------
lib/RapidApp/Module.pm:165:## --------------------------------------------------------------
lib/RapidApp/Module.pm:212:sub timed_new { (shift)->new(@_) }
lib/RapidApp/Module.pm:219:  my $attrs= (ref $self)->meta->{RapidApp_Module_PerRequestAttributeList};
lib/RapidApp/Module.pm:221:    my $attrs= [ grep { $self->should_clear_per_req($_) } $self->meta->get_all_attributes ];
lib/RapidApp/Module.pm:223:    for (my $i=$#$attrs; $i>=0; $i--) {
lib/RapidApp/Module.pm:224:      weaken $attrs->[$i];
lib/RapidApp/Module.pm:226:    (ref $self)->meta->{RapidApp_Module_PerRequestAttributeList}= $attrs;
lib/RapidApp/Module.pm:234:  $attr->does('RapidApp::Role::PerRequestBuildDefReset')
lib/RapidApp/Module.pm:241:  my %mods = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module.pm:243:  $self->apply_modules(%mods);
lib/RapidApp/Module.pm:246:    $self->Module($module)->ONREQUEST_called(0);
lib/RapidApp/Module.pm:260:  $self->_lastRequestApplied(0);
lib/RapidApp/Module.pm:269:  #$self->c->log->debug(MAGENTA . '[' . $self->get_rapidapp_module_path . ']->ONREQUEST (' . $self->c->request_id . ')');
lib/RapidApp/Module.pm:271:  $self->_lastRequestApplied($self->c->request_id);
lib/RapidApp/Module.pm:273:  $self->init_per_req_attrs;
lib/RapidApp/Module.pm:274:  $self->c->rapidApp->markDirtyModule($self);
lib/RapidApp/Module.pm:276:  #$self->process_customprompt;
lib/RapidApp/Module.pm:278:  #$self->new_clear_per_req_attrs;
lib/RapidApp/Module.pm:280:  $self->call_ONREQUEST_handlers;
lib/RapidApp/Module.pm:282:  $self->ONREQUEST_called(1);
lib/RapidApp/Module.pm:285:  my $elapsed= ($sec1-$sec0)+($msec1-$msec0)*.000001;
lib/RapidApp/Module.pm:286:  $self->c->stash->{onrequest_time_elapsed}+= $elapsed;
lib/RapidApp/Module.pm:288:  #$self->log->debug(sprintf(GREEN."ONREQUEST for %s took %0.3f seconds".CLEAR, $self->module_path, $elapsed));
lib/RapidApp/Module.pm:294:  $self->call_rapidapp_handlers($self->all_ONREQUEST_calls_early);
lib/RapidApp/Module.pm:295:  $self->call_rapidapp_handlers($self->all_ONREQUEST_calls);
lib/RapidApp/Module.pm:296:  $self->call_rapidapp_handlers($self->all_ONREQUEST_calls_late);
lib/RapidApp/Module.pm:304:  foreach my $attr (@{$self->cached_per_req_attr_list}) {
lib/RapidApp/Module.pm:305:    if($attr->has_value($self)) {
lib/RapidApp/Module.pm:306:      unless (defined $self->per_request_attr_build_defaults->{$attr->name}) {
lib/RapidApp/Module.pm:307:        my $val = $attr->get_value($self);
lib/RapidApp/Module.pm:309:        $self->per_request_attr_build_defaults->{$attr->name} = $val;
lib/RapidApp/Module.pm:313:      $self->per_request_attr_build_not_set->{$attr->name} = 1;
lib/RapidApp/Module.pm:322:  foreach my $attr (@{$self->cached_per_req_attr_list}) {
lib/RapidApp/Module.pm:325:    if (defined $self->per_request_attr_build_not_set->{$attr->name}) {
lib/RapidApp/Module.pm:326:      #$c->log->debug(GREEN . BOLD . ' =====> ' . $attr->name . ' (clear_value)' . CLEAR);
lib/RapidApp/Module.pm:327:      $attr->clear_value($self);
lib/RapidApp/Module.pm:330:    elsif(defined $self->per_request_attr_build_defaults->{$attr->name}) {
lib/RapidApp/Module.pm:331:      my $val = $self->per_request_attr_build_defaults->{$attr->name};
lib/RapidApp/Module.pm:333:      #$c->log->debug(YELLOW . BOLD . ' =====> ' . $attr->name . ' (set_value)' . CLEAR);
lib/RapidApp/Module.pm:334:      $attr->set_value($self,$val);
lib/RapidApp/Module.pm:339:  $self->clear_attributes if ($self->no_persist);
lib/RapidApp/Module.pm:348:#  #$self->ONREQUEST_called(0);
lib/RapidApp/Module.pm:350:#  foreach my $attr (@{$self->cached_per_req_attr_list}) {
lib/RapidApp/Module.pm:352:#    if(defined $self->per_request_attr_build_defaults->{$attr->name}) {
lib/RapidApp/Module.pm:353:#      my $val = $self->per_request_attr_build_defaults->{$attr->name};
lib/RapidApp/Module.pm:355:#      $attr->set_value($self,$val);
lib/RapidApp/Module.pm:359:#      my $val = $attr->get_value($self);
lib/RapidApp/Module.pm:361:#      $self->per_request_attr_build_defaults->{$attr->name} = $val;
lib/RapidApp/Module.pm:366:#  $self->clear_attributes if ($self->no_persist);
lib/RapidApp/Module.pm:374:  return $self unless (defined $self->c);
lib/RapidApp/Module.pm:376:  return $self->ONREQUEST if (defined $self->c && $self->c->request_id != $self->_lastRequestApplied);
lib/RapidApp/Module.pm:384:  my $path = shift or return $self->THIS_MODULE;
lib/RapidApp/Module.pm:389:  return $self->topmost_module->get_Module(join('/',@parts)) unless ($first);
lib/RapidApp/Module.pm:392:  return $self->Module($first) unless (scalar @parts > 0);
lib/RapidApp/Module.pm:394:  return $self->Module($first)->get_Module(join('/',@parts));
lib/RapidApp/Module.pm:404:  $self->_load_module($name) or confess "Failed to load Module '$name'";
lib/RapidApp/Module.pm:406:  #return $self->modules_obj->{$name} if ($no_onreq);
lib/RapidApp/Module.pm:407:  return $self->modules_obj->{$name}->THIS_MODULE;
lib/RapidApp/Module.pm:414:  return 0 unless ($self->has_module($name));
lib/RapidApp/Module.pm:416:  #my $class_name = $self->modules->{$name} or return 0;
lib/RapidApp/Module.pm:417:  my $class_name = $self->get_module($name);
lib/RapidApp/Module.pm:420:    $params = $class_name->{params};
lib/RapidApp/Module.pm:421:    $class_name = $class_name->{class} or die "Missing required parameter 'class'";
lib/RapidApp/Module.pm:424:  return 1 if (defined $self->modules_obj->{$name} and ref($self->modules_obj->{$name}) eq $class_name);
lib/RapidApp/Module.pm:426:  my $Object = $self->create_module($name,$class_name,$params) or die "Failed to create new $class_name object";
lib/RapidApp/Module.pm:428:  $self->modules_obj->{$name} = $Object;
lib/RapidApp/Module.pm:439:  die "Bad module name '$name' -- cannot contain '/'" if ($name =~ /\//);
lib/RapidApp/Module.pm:443:  $params = $self->create_module_params unless (defined $params);
lib/RapidApp/Module.pm:445:  if (defined $self->modules_params->{$name}) {
lib/RapidApp/Module.pm:446:    foreach my $k (keys %{$self->modules_params->{$name}}) {
lib/RapidApp/Module.pm:447:      $params->{$k} = $self->modules_params->{$name}->{$k};
lib/RapidApp/Module.pm:451:  $params->{app} = $self->app;
lib/RapidApp/Module.pm:452:  $params->{module_name} = $name;
lib/RapidApp/Module.pm:453:  $params->{module_path} = $self->module_path;
lib/RapidApp/Module.pm:454:  $params->{module_path} .= '/' unless substr($params->{module_path}, -1) eq '/';
lib/RapidApp/Module.pm:455:  $params->{module_path} .= $name;
lib/RapidApp/Module.pm:456:  $params->{parent_module_ref} = $self;
lib/RapidApp/Module.pm:459:  # Colorful console messages, non-standard, replaced with normal logging below:
lib/RapidApp/Module.pm:462:  #  CYAN . "Load: " . BOLD . $params->{module_path} . CLEAR . 
lib/RapidApp/Module.pm:464:  #if ($self->app->debug);
lib/RapidApp/Module.pm:468:  my $Object = $class_name->new($params) or die "Failed to create module instance ($class_name)";
lib/RapidApp/Module.pm:469:  die "$class_name is not a valid RapidApp Module" unless ($Object->isa('RapidApp::Module'));
lib/RapidApp/Module.pm:471:  my $c = $self->app;
lib/RapidApp/Module.pm:472:  $c->log->debug( join('', 
lib/RapidApp/Module.pm:473:    " >> Loaded: ",$params->{module_path}," [$class_name] ",
lib/RapidApp/Module.pm:475:  )) if ($c->debug);
lib/RapidApp/Module.pm:482:  return $self->parent_module_ref ? $self->parent_module_ref->THIS_MODULE : undef;
lib/RapidApp/Module.pm:488:  return $self unless (defined $self->parent_module);
lib/RapidApp/Module.pm:489:  return $self->parent_module->topmost_module;
lib/RapidApp/Module.pm:496:  return $self if (lc($self->module_name) eq lc($name));
lib/RapidApp/Module.pm:497:  return undef unless (defined $self->parent_module);
lib/RapidApp/Module.pm:498:  return $self->parent_module->parent_by_name($name);
lib/RapidApp/Module.pm:505:  my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module.pm:509:    next if (defined $self->module_options->{$opt});
lib/RapidApp/Module.pm:513:  return $self->apply_module_options(%unset);
lib/RapidApp/Module.pm:519:  my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module.pm:521:  %{ $self->module_options } = (
lib/RapidApp/Module.pm:522:    %{ $self->module_options },
lib/RapidApp/Module.pm:530:  return $self->module_options->{$opt};
lib/RapidApp/Module.pm:545:around 'add_ONREQUEST_calls' => __PACKAGE__->add_ONREQUEST_calls_modifier;
lib/RapidApp/Module.pm:558:around 'add_ONREQUEST_calls_early' => __PACKAGE__->add_ONREQUEST_calls_modifier;
lib/RapidApp/Module.pm:571:around 'add_ONREQUEST_calls_late' => __PACKAGE__->add_ONREQUEST_calls_modifier;
lib/RapidApp/Module.pm:577:    return $self->$orig(@_) if (ref($_[0]));
lib/RapidApp/Module.pm:581:      push @new, RapidApp::Handler->new(
lib/RapidApp/Module.pm:586:    return $self->$orig(@new);
lib/RapidApp/Module.pm:595:    if($self->print_rapidapp_handlers_call_debug) {
lib/RapidApp/Module.pm:596:      my $msg = YELLOW . '->call_rapidapp_handlers[' . $self->get_rapidapp_module_path . '] ' . CLEAR;
lib/RapidApp/Module.pm:598:      if (defined $Handler->scope) {
lib/RapidApp/Module.pm:599:        $msg .= '(' . ref($Handler->scope);
lib/RapidApp/Module.pm:600:        if ($Handler->scope->isa('RapidApp::Module')) {
lib/RapidApp/Module.pm:601:          $msg .= CLEAR . BLUE . ' ' . $Handler->scope->get_rapidapp_module_path;
lib/RapidApp/Module.pm:609:      if (defined $Handler->method) {
lib/RapidApp/Module.pm:610:        $msg .= BOLD . '->' . $Handler->method . CLEAR;
lib/RapidApp/Module.pm:613:        $msg .= BOLD . '==>CODEREF->()' . CLEAR;
lib/RapidApp/Module.pm:616:      $self->app->log->debug($msg);
lib/RapidApp/Module.pm:619:    $Handler->call;
lib/RapidApp/Module.pm:625:#  $self->call_rapidapp_handlers($self->all_ONREQUEST_calls_early);
lib/RapidApp/Module.pm:630:#  $self->call_rapidapp_handlers($self->all_ONREQUEST_calls_late);
lib/RapidApp/Module.pm:653:# function for debugging purposes - returns a string of the module path
lib/RapidApp/Module.pm:655:  return (shift)->module_path;
lib/RapidApp/Module.pm:666:    return $self->c->req->header('X-RapidApp-CustomPrompt-Button') || $self->c->req->params->{'X-RapidApp-CustomPrompt-Button'};
lib/RapidApp/Module.pm:678:    my $rawdata = $self->c->req->header('X-RapidApp-CustomPrompt-Data') || $self->c->req->params->{'X-RapidApp-CustomPrompt-Data'};
lib/RapidApp/Module.pm:680:    return $self->json->decode($rawdata);
lib/RapidApp/Module.pm:693:    my $ns = $self->app->module_root_namespace;
lib/RapidApp/Module.pm:695:    my $parentUrl= defined $self->parent_module? $self->parent_module->base_url.'/' : $ns;
lib/RapidApp/Module.pm:696:    return $parentUrl . $self->{module_name};
lib/RapidApp/Module.pm:705:# NEW: if true, sub-args (of url path) are passed in even if the sub path does
lib/RapidApp/Module.pm:706:# not exist as a defined action or sub-module. TODO: refactor and use built-in Catalyst
lib/RapidApp/Module.pm:708:# into proper sub-classes of Catalyst controllers
lib/RapidApp/Module.pm:724:sub c { RapidApp->active_request_context }
lib/RapidApp/Module.pm:726:# The current logger object, probably the same as ->c->log, but maybe not.
lib/RapidApp/Module.pm:727:sub log { (shift)->app->log }
lib/RapidApp/Module.pm:733:  return $self->parent_module->no_persist if (
lib/RapidApp/Module.pm:734:    defined $self->parent_module and 
lib/RapidApp/Module.pm:735:    defined $self->parent_module->no_persist
lib/RapidApp/Module.pm:747:  my $cur = $self->render_append;
lib/RapidApp/Module.pm:748:  return $self->render_append( $cur . $add );
lib/RapidApp/Module.pm:763:  #$self->log->warn((ref $self)."->json still being used");
lib/RapidApp/Module.pm:764:  return RapidApp::JSON::MixedEncoder->new;
lib/RapidApp/Module.pm:769:  return $self->json->encode(shift);
lib/RapidApp/Module.pm:773:## TODO: REMOVE 'simulateRequest' ---
lib/RapidApp/Module.pm:780:  my $c = RapidApp->active_request_context;
lib/RapidApp/Module.pm:782:  my $tempResp= Catalyst::Response->new();
lib/RapidApp/Module.pm:784:  my $origReq= $c->request;
lib/RapidApp/Module.pm:785:  my $origResp= $c->response;
lib/RapidApp/Module.pm:786:  my $origStash= $c->stash;
lib/RapidApp/Module.pm:789:    $c->request($req);
lib/RapidApp/Module.pm:790:    $c->response($tempResp);
lib/RapidApp/Module.pm:794:    $c->stash({ %$origStash });
lib/RapidApp/Module.pm:796:    my $path= $req->uri->path;
lib/RapidApp/Module.pm:799:    $self->c->log->debug("Simulate Request: \"".join('", "', @args));
lib/RapidApp/Module.pm:800:    my $ctl_ret= $self->Controller($c, @args);
lib/RapidApp/Module.pm:802:    $c->log->debug('controller return: '.(length($ctl_ret) > 20? (ref $ctl_ret).' length='.length($ctl_ret) : $ctl_ret));
lib/RapidApp/Module.pm:803:    $c->log->debug('body: '.(length($tempResp->body) > 20? (ref $tempResp->body).' length='.length($tempResp->body) : $tempResp->body));
lib/RapidApp/Module.pm:806:    if (!defined $c->res->body) {
lib/RapidApp/Module.pm:807:      my $view= $self->c->stash->{current_view_instance} || $c->view($c->stash->{current_view});
lib/RapidApp/Module.pm:808:      $view->process($c);
lib/RapidApp/Module.pm:811:    $c->request($origReq);
lib/RapidApp/Module.pm:812:    $c->response($origResp);
lib/RapidApp/Module.pm:813:    $c->stash($origStash);
lib/RapidApp/Module.pm:816:    $c->request($origReq);
lib/RapidApp/Module.pm:817:    $c->response($origResp);
lib/RapidApp/Module.pm:818:    $c->stash($origStash);
lib/RapidApp/Module.pm:826:  blessed($uri) && $uri->isa('URI') or $uri= URI->new($uri);
lib/RapidApp/Module.pm:829:  # Note that "array-style" URI params will be returned as duplicate key entries, so we have to do some work to
lib/RapidApp/Module.pm:831:  my @uriParams= $uri->query_form;
lib/RapidApp/Module.pm:845:  my $req= Catalyst::Request->new( uri => $uri, parameters => \%paramHash );
lib/RapidApp/Module.pm:847:  return $self->simulateRequest($req);
lib/RapidApp/Module.pm:852:  my $resp= $self->simulateRequestToSubUrl(@_);
lib/RapidApp/Module.pm:853:  $resp->status == 200
lib/RapidApp/Module.pm:854:    or die "Simulated request to ".$_[0]." returned status ".$resp->status;
lib/RapidApp/Module.pm:855:  my $ret= $resp->body;
lib/RapidApp/Module.pm:860:    $fd->close;
lib/RapidApp/Module.pm:878:  $self->prepare_controller(@args);
lib/RapidApp/Module.pm:882:  $c->log->debug('--> ' . 
lib/RapidApp/Module.pm:885:  ) if ($c->debug);
lib/RapidApp/Module.pm:887:  $self->controller_dispatch(@args);
lib/RapidApp/Module.pm:894:    $self->has_module($opt) ||
lib/RapidApp/Module.pm:895:    $self->has_action($opt)
lib/RapidApp/Module.pm:905:  return $self->get_local_args->() if ($self->get_local_args);
lib/RapidApp/Module.pm:907:  my $path = '/' . $self->c->req->path;
lib/RapidApp/Module.pm:908:  my $base = quotemeta($self->base_url . '/');
lib/RapidApp/Module.pm:917:  for my $attr ($self->meta->get_all_attributes) {
lib/RapidApp/Module.pm:918:    next if ($attr->name eq 'actions');
lib/RapidApp/Module.pm:919:    $attr->clear_value($self) if ($attr->is_lazy or $attr->has_clearer);
lib/RapidApp/Module.pm:936:If the first argument names a sub-module, the processing is passed to the sub-module.
lib/RapidApp/Module.pm:957:  my $c = $self->c;
lib/RapidApp/Module.pm:962:  $c->stash->{'RAPIDAPP_DISPATCH_MODULE'} = $self;
lib/RapidApp/Module.pm:964:  return $self->Module($opt)->Controller($self->c,@subargs)
lib/RapidApp/Module.pm:965:    if ($opt && !$self->has_action($opt) && $self->_load_module($opt));
lib/RapidApp/Module.pm:967:  return $self->process_action($opt,@subargs)
lib/RapidApp/Module.pm:968:    if ($opt && $self->has_action($opt));
lib/RapidApp/Module.pm:970:  return $self->process_action($self->default_action,@_)
lib/RapidApp/Module.pm:971:    if (defined $self->default_action);
lib/RapidApp/Module.pm:973:  my $ct= $self->c->stash->{requestContentType};
lib/RapidApp/Module.pm:977:  if (defined $opt && !$self->accept_subargs) {
lib/RapidApp/Module.pm:979:    return $c->redispatch_public_path(
lib/RapidApp/Module.pm:980:      $c->default_favicon_url
lib/RapidApp/Module.pm:981:    ) if ($opt eq 'favicon.ico' && !$c->is_ra_ajax_req);
lib/RapidApp/Module.pm:983:    $self->c->log->debug(join('',"--> ",RED,BOLD,"unknown action: $opt",CLEAR)) if ($self->c->debug);
lib/RapidApp/Module.pm:984:    $c->stash->{template} = 'rapidapp/http-404.html';
lib/RapidApp/Module.pm:985:    $c->stash->{current_view} = 'RapidApp::Template';
lib/RapidApp/Module.pm:986:    $c->res->status(404);
lib/RapidApp/Module.pm:987:    return $c->detach;
lib/RapidApp/Module.pm:989:  # --
lib/RapidApp/Module.pm:994:  elsif ($self->auto_viewport && !$self->c->is_ra_ajax_req) {
lib/RapidApp/Module.pm:995:    $self->c->log->debug("--> " . GREEN . BOLD . "[auto_viewport_content]" . CLEAR . ". (no action)")
lib/RapidApp/Module.pm:996:      if($self->c->debug);
lib/RapidApp/Module.pm:997:    return $self->viewport;
lib/RapidApp/Module.pm:999:  # --
lib/RapidApp/Module.pm:1001:    my $rdr_vp = $self->c->stash->{render_viewport};
lib/RapidApp/Module.pm:1002:    if($rdr_vp && $rdr_vp eq 'printview' && $self->can('printview')) {
lib/RapidApp/Module.pm:1003:      return $self->printview;
lib/RapidApp/Module.pm:1005:    elsif($rdr_vp && $rdr_vp eq 'navable' && $self->can('navable')) {
lib/RapidApp/Module.pm:1006:      return $self->navable;
lib/RapidApp/Module.pm:1008:    elsif($rdr_vp && $self->can('viewport')) {
lib/RapidApp/Module.pm:1009:      return $self->viewport;
lib/RapidApp/Module.pm:1012:      ## ---
lib/RapidApp/Module.pm:1015:      $self->auto_hashnav_redirect_current;
lib/RapidApp/Module.pm:1016:      # ---
lib/RapidApp/Module.pm:1017:      $self->c->log->debug("--> " . GREEN . BOLD . "[content]" . CLEAR . ". (no action)")
lib/RapidApp/Module.pm:1018:        if($self->c->debug);
lib/RapidApp/Module.pm:1019:      return $self->render_data($self->content);
lib/RapidApp/Module.pm:1029:  $self->c->auto_hashnav_redirect_current
lib/RapidApp/Module.pm:1047:  $self->c->log->debug('--> ' . 
lib/RapidApp/Module.pm:1051:  ) if ($self->c->debug);
lib/RapidApp/Module.pm:1053:  my $coderef = $self->get_action($opt) or die "No action named $opt";
lib/RapidApp/Module.pm:1057:  return $self->render_data( 
lib/RapidApp/Module.pm:1059:      $coderef->($self,@args) : 
lib/RapidApp/Module.pm:1060:        $self->$coderef(@args) 
lib/RapidApp/Module.pm:1083:The parameter is returned (as-is) to get passed back to TopController who passes it to the view.
lib/RapidApp/Module.pm:1095:  #$self->c->log->debug(Dumper($data));
lib/RapidApp/Module.pm:1098:  if (defined $self->c->response->body && length $self->c->response->body) {
lib/RapidApp/Module.pm:1099:    $self->c->log->debug("(body set by user)");
lib/RapidApp/Module.pm:1102:    if (utf8::is_utf8($self->c->response->body)) {
lib/RapidApp/Module.pm:1103:      $self->c->response->content_type =~ /^text|xml$|javascript$|JSON$/
lib/RapidApp/Module.pm:1104:        or $self->c->log->warn("Controller ".(ref $self)." returned unicode text but isn't using a \"text\" content type!");
lib/RapidApp/Module.pm:1110:  if (defined $self->c->stash->{current_view} || defined $self->c->stash->{current_view_instance}) {
lib/RapidApp/Module.pm:1111:    $self->c->log->debug("(view set by user)");
lib/RapidApp/Module.pm:1115:  # if we want auto-json rendering, use the JSON view
lib/RapidApp/Module.pm:1116:  if ($self->render_as_json && ref($data) && !defined $self->no_json_ref_types->{ref($data)}) {
lib/RapidApp/Module.pm:1117:    $self->c->stash->{current_view} = 'RapidApp::JSON';
lib/RapidApp/Module.pm:1122:    $self->c->response->header('Cache-Control' => 'no-cache');
lib/RapidApp/Module.pm:1123:    return $self->c->response->body( $data );
lib/RapidApp/Module.pm:1127:sub set_response_warning { (shift)->c->set_response_warning(@_) }
lib/RapidApp/Module.pm:1146:  $self->set_response_callback( 'Ext.ux.MyFunc' );
lib/RapidApp/Module.pm:1148:  $self->set_response_callback( alert => 'foo!' );
lib/RapidApp/Module.pm:1150:  $self->set_response_callback( 'Ext.Msg.alert' => ( 'A message!!', 'this is awesome!!' ) );
lib/RapidApp/Module.pm:1152:  my $func = RapidApp::JSONFunc->new( 
lib/RapidApp/Module.pm:1156:  $self->response_callback_scoped(1);
lib/RapidApp/Module.pm:1157:  $self->set_response_callback( 
lib/RapidApp/Module.pm:1169:  $data->{arguments} = [ @args ] if (scalar @args > 0);
lib/RapidApp/Module.pm:1172:    die "only 'raw' RapidApp::JSONFunc objects are supported" unless ($func->raw);
lib/RapidApp/Module.pm:1173:    $data->{anonfunc} = $func;
lib/RapidApp/Module.pm:1176:    $data->{func} = $func;
lib/RapidApp/Module.pm:1179:  $data->{scoped} = \1 if ($self->response_callback_scoped);
lib/RapidApp/Module.pm:1181:  return $self->c->response->header( 'X-RapidApp-Callback' => $self->json->encode($data) );
lib/RapidApp/Module.pm:1197:  $self->c->response->header( 
lib/RapidApp/Module.pm:1198:    'X-RapidApp-ServerEvents' => $self->json->encode([ $self->all_response_server_events ]) 
lib/RapidApp/Module.pm:1204:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module.pm:1212:RapidApp::Module - Base class for RapidApp Modules
lib/RapidApp/Module/AppDV.pm:18:# If true, the template will refresh itself (client-side) after saving to the store.
lib/RapidApp/Module/AppDV.pm:20:# is useful when updates involve changes to more than one row/data-point on the backend
lib/RapidApp/Module/AppDV.pm:30:# If true, the template will refresh itself (client-side) when the window.location.hash
lib/RapidApp/Module/AppDV.pm:58:    return RapidApp::Module::AppDV::TTController->new( AppDV => $self );
lib/RapidApp/Module/AppDV.pm:68:    return $self->app->default_tt_include_path;
lib/RapidApp/Module/AppDV.pm:73:sub _tt_file { (shift)->tt_file }
lib/RapidApp/Module/AppDV.pm:99:  $self->apply_extconfig(
lib/RapidApp/Module/AppDV.pm:104:    overClass    => 'record-over',
lib/RapidApp/Module/AppDV.pm:105:    persist_on_add  => \scalar($self->persist_on_add),
lib/RapidApp/Module/AppDV.pm:109:  $self->add_plugin( 'ra-link-click-catcher' );
lib/RapidApp/Module/AppDV.pm:111:  #$self->add_listener( afterrender  => 'Ext.ux.RapidApp.AppDV.afterrender_handler' );
lib/RapidApp/Module/AppDV.pm:112:  #$self->add_listener(  click     => 'Ext.ux.RapidApp.AppDV.click_handler' );
lib/RapidApp/Module/AppDV.pm:118:  $self->load_xtemplate;
lib/RapidApp/Module/AppDV.pm:123:  $self->apply_extconfig( id => $self->instance_id );
lib/RapidApp/Module/AppDV.pm:124:  $self->apply_extconfig( tpl => $self->xtemplate );
lib/RapidApp/Module/AppDV.pm:125:  $self->apply_extconfig( FieldCmp_cnf => $self->FieldCmp );
lib/RapidApp/Module/AppDV.pm:126:  $self->apply_extconfig( items => [ values %{ $self->DVitems } ] );
lib/RapidApp/Module/AppDV.pm:128:  my $params = $self->c->req->params;
lib/RapidApp/Module/AppDV.pm:131:    push @qry, $p . '=' . $params->{$p};
lib/RapidApp/Module/AppDV.pm:136:  $self->apply_extconfig( printview_url => $self->suburl('printview') . '?' . $qry_str );
lib/RapidApp/Module/AppDV.pm:146:  push @classes, 'no_create' unless ($self->DataStore->create_handler);
lib/RapidApp/Module/AppDV.pm:147:  push @classes, 'no_update' unless ($self->DataStore->update_handler);
lib/RapidApp/Module/AppDV.pm:148:  push @classes, 'no_destroy' unless ($self->DataStore->destroy_handler);
lib/RapidApp/Module/AppDV.pm:150:  my $excl = $self->get_extconfig_param('store_exclude_api') || [];
lib/RapidApp/Module/AppDV.pm:162:    c  => $self->c,
lib/RapidApp/Module/AppDV.pm:163:    r  => $self->TTController,
lib/RapidApp/Module/AppDV.pm:164:    %{ $self->extra_tt_vars }
lib/RapidApp/Module/AppDV.pm:167:  my $tt_file = $self->_tt_file;
lib/RapidApp/Module/AppDV.pm:170:    local $self->{_template_process_ctx} = {};
lib/RapidApp/Module/AppDV.pm:171:    my $Template = Template->new({ INCLUDE_PATH => $self->tt_include_path });
lib/RapidApp/Module/AppDV.pm:172:    $Template->process($tt_file,$tt_vars,\$html_out)
lib/RapidApp/Module/AppDV.pm:173:      or die $Template->error . "  Template file: $tt_file";
lib/RapidApp/Module/AppDV.pm:176:  $self->_parse_html_set_tabTitle(\$html_out) if ($self->parse_html_tabTitle);
lib/RapidApp/Module/AppDV.pm:178:  return $html_out unless ($self->apply_css_restrict);
lib/RapidApp/Module/AppDV.pm:180:  return '<div class="' . join(' ',$self->xtemplate_cnf_classes) . '">' . $html_out . '</div>';
lib/RapidApp/Module/AppDV.pm:188:  return RapidApp::JSONFunc->new(
lib/RapidApp/Module/AppDV.pm:191:    parm => [ $self->xtemplate_cnf, $self->xtemplate_funcs ]
lib/RapidApp/Module/AppDV.pm:206:    renderField => RapidApp::JSONFunc->new( raw => 1, func =>
lib/RapidApp/Module/AppDV.pm:225:  my $parser = HTML::TokeParser::Simple->new($htmlref);
lib/RapidApp/Module/AppDV.pm:227:  while (my $token = $parser->get_token) {
lib/RapidApp/Module/AppDV.pm:228:    if($token->is_start_tag('title')) {
lib/RapidApp/Module/AppDV.pm:230:      if(my $cls = $token->get_attr('class')) {
lib/RapidApp/Module/AppDV.pm:233:      while (my $inToken = $parser->get_token) {
lib/RapidApp/Module/AppDV.pm:234:        last if $inToken->is_end_tag('title');
lib/RapidApp/Module/AppDV.pm:235:        my $inner = $inToken->as_is or next;
lib/RapidApp/Module/AppDV.pm:239:      $self->apply_extconfig( %cnf ) if (scalar(keys %cnf) > 0);
lib/RapidApp/Module/AppDV.pm:270:    rows => [{ $self->record_pk => 1 }]
lib/RapidApp/Module/AppDV.pm:282:  my $parser = HTML::TokeParser::Simple->new(\$xtemplate);
lib/RapidApp/Module/AppDV.pm:288:  while (my $token = $parser->get_token) {
lib/RapidApp/Module/AppDV.pm:289:    unless ($token->is_start_tag('tpl')) {
lib/RapidApp/Module/AppDV.pm:290:      $start .= $token->as_is;
lib/RapidApp/Module/AppDV.pm:293:    while (my $inToken = $parser->get_token) {
lib/RapidApp/Module/AppDV.pm:294:      last if $inToken->is_end_tag('tpl');
lib/RapidApp/Module/AppDV.pm:296:      $inner .= $inToken->as_is;
lib/RapidApp/Module/AppDV.pm:299:      if ($inToken->is_start_tag('div')) {
lib/RapidApp/Module/AppDV.pm:300:        my $class = $inToken->get_attr('class');
lib/RapidApp/Module/AppDV.pm:301:        my ($junk,$submod) = split(/appdv-submodule\s+/,$class);
lib/RapidApp/Module/AppDV.pm:303:          my $Module = $self->Module($submod);
lib/RapidApp/Module/AppDV.pm:308:    while (my $enToken = $parser->get_token) {
lib/RapidApp/Module/AppDV.pm:309:      $end .= $enToken->as_is;
lib/RapidApp/Module/AppDV.pm:314:  #$self->c->scream([$start,$inner,$end]);
lib/RapidApp/Module/AppDV.pm:319:  my $Template = Template->new({
lib/RapidApp/Module/AppDV.pm:324:  my $data = $self->DataStore->read;
lib/RapidApp/Module/AppDV.pm:326:  #$self->c->scream($data,$tpl);
lib/RapidApp/Module/AppDV.pm:328:  $Template->process(\$tpl,$data,\$html_out) 
lib/RapidApp/Module/AppDV.pm:329:    or die "Template error (" . $Template->error . ')' .
lib/RapidApp/Module/AppDV.pm:339:  return 1 if ($self->c->req->header('X-RapidApp-View') eq 'print');
lib/RapidApp/Module/AppDV.pm:347:  my $params = $self->c->req->params;
lib/RapidApp/Module/AppDV.pm:348:  delete $params->{_dc};
lib/RapidApp/Module/AppDV.pm:351:    url => $self->suburl('printview'),
lib/RapidApp/Module/AppDV.pm:355:  my $json = $self->json->encode($cnf);
lib/RapidApp/Module/AppDV.pm:360:    iconCls => 'ra-icon-printer',
lib/RapidApp/Module/AppDV.pm:372:RapidApp::Module::AppDV - General-purpose DataView module
lib/RapidApp/Module/AppDV.pm:376:This module provides an interface to render a DataStore-driven module via an C<Ext.DataView>,
lib/RapidApp/Module/AppDV.pm:377:including in-line edit capability. It is like a free-form version of L<RapidApp::Module::Grid>.
lib/RapidApp/Module/AppDV/HtmlTable.pm:13:RapidApp::Module::AppDV::HtmlTable - Table generator for RapidApp/AppDV 
lib/RapidApp/Module/AppDV/HtmlTable.pm:54:    'table.property-table table.column td.name' => {
lib/RapidApp/Module/AppDV/HtmlTable.pm:55:      'text-align' => 'right'
lib/RapidApp/Module/AppDV/HtmlTable.pm:59:The above would cause the labels to the right-justified instead of left-justified. This
lib/RapidApp/Module/AppDV/HtmlTable.pm:63:You can also override the method 'get_tt_column_data' for fine-grained control when
lib/RapidApp/Module/AppDV/HtmlTable.pm:95:  # Default - evenly divide fields among 2 key/val column sets:
lib/RapidApp/Module/AppDV/HtmlTable.pm:99:  my @col2 = grep { $self->is_valid_colname($_) } @{$self->column_order};
lib/RapidApp/Module/AppDV/HtmlTable.pm:113:  foreach my $col_set (@{$self->column_layout}) {
lib/RapidApp/Module/AppDV/HtmlTable.pm:124:      push @$set, $self->get_tt_column_data($col) if ($self->is_valid_colname($col));
lib/RapidApp/Module/AppDV/HtmlTable.pm:139:    name  => ($self->get_column($col)->{header} || $col) . ':',
lib/RapidApp/Module/AppDV/HtmlTable.pm:140:    value  => $self->TTController->autofield->$col,
lib/RapidApp/Module/AppDV/HtmlTable.pm:142:    name_cls => undef, #<-- optional css class name to apply to the name cell div
lib/RapidApp/Module/AppDV/HtmlTable.pm:143:    value_cls => undef, #<-- optional css class name to apply to the value cell div
lib/RapidApp/Module/AppDV/HtmlTable.pm:145:    name_style => undef, #<-- optional css style to apply to the name cell div
lib/RapidApp/Module/AppDV/HtmlTable.pm:146:    value_style => undef, #<-- optional css styleto apply to the value cell div
lib/RapidApp/Module/AppDV/HtmlTable.pm:149:  #This is a fine-grained tweak specifically for AppDV 'edit-field'. These have an extra
lib/RapidApp/Module/AppDV/HtmlTable.pm:151:  #two will be off. This inspects 'value' to determine if it is an edit-field and if so,
lib/RapidApp/Module/AppDV/HtmlTable.pm:153:  #TODO: change the way this works with z-index/position/relative/absolute wizardry to make 
lib/RapidApp/Module/AppDV/HtmlTable.pm:155:  $data->{name_cls} = 'onepx-transparent-border-bottom'
lib/RapidApp/Module/AppDV/HtmlTable.pm:156:    if ($data->{value} =~ /class\=\"appdv\-edit\-field\"/); #<-- is this expensive?
lib/RapidApp/Module/AppDV/HtmlTable.pm:172:  foreach my $cls (keys %{$self->tt_css_styles}) {
lib/RapidApp/Module/AppDV/HtmlTable.pm:175:    my $styles = $self->tt_css_styles->{$cls};
lib/RapidApp/Module/AppDV/HtmlTable.pm:177:      my $val = $styles->{$prop};
lib/RapidApp/Module/AppDV/HtmlTable.pm:193:  # allow_view is now pre-processed, already considered no_column/allow_edit, etc
lib/RapidApp/Module/AppDV/HtmlTable.pm:194:  ( $self->has_column($col) && $self->columns->{$col}->allow_view )
lib/RapidApp/Module/AppDV/HtmlTable.pm:200:  $self->apply_extconfig(
lib/RapidApp/Module/AppDV/HtmlTable.pm:206:    selectedClass  => 'x-grid3-row-checked',
lib/RapidApp/Module/AppDV/HtmlTable.pm:207:    emptyText    => $self->emptyHTML,
lib/RapidApp/Module/AppDV/HtmlTable.pm:222:    '<div style="border:1px solid;border-color:#d0d0d0;">',
lib/RapidApp/Module/AppDV/HtmlTable.pm:229:              '<td class="GSprop" style="white-space:nowrap;color:slategray;">',
lib/RapidApp/Module/AppDV/HtmlTable.pm:230:                '<div style="padding-left:10px;">',
lib/RapidApp/Module/AppDV/RecAutoload.pm:32:  $self->apply_method_rec( $method => 1 );
lib/RapidApp/Module/AppDV/RecAutoload.pm:33:  return $self->process_coderef->($method, @_) if ($self->process_coderef);
lib/RapidApp/Module/AppDV/TTController.pm:21:  return $self->AppDV->get_extconfig_param('id');
lib/RapidApp/Module/AppDV/TTController.pm:30:    'appdv-tt-generated',$self->dataview_id,
lib/RapidApp/Module/AppDV/TTController.pm:31:    ( $self->{_div_block} ? 'blk' : () ), 'inln'
lib/RapidApp/Module/AppDV/TTController.pm:41:  return $self->div_wrapper(
lib/RapidApp/Module/AppDV/TTController.pm:50:  return $self->div_wrapper(
lib/RapidApp/Module/AppDV/TTController.pm:61:  return $self->div_clickable('<div class="delete-record">Delete</div>');
lib/RapidApp/Module/AppDV/TTController.pm:66:  return $self->div_clickable('<div class="print-view">Print View</div>');
lib/RapidApp/Module/AppDV/TTController.pm:74:  my @cls = qw/editable-value inln/;
lib/RapidApp/Module/AppDV/TTController.pm:75:  push @cls, @{ $self->{_editable_value_extra_classes} || [] };
lib/RapidApp/Module/AppDV/TTController.pm:77:  return $self->div_clickable(
lib/RapidApp/Module/AppDV/TTController.pm:80:      '<div class="field-name" style="display:none;">' . $name . '</div>' .
lib/RapidApp/Module/AppDV/TTController.pm:92:  my $div = '<div class="data-holder inln"';
lib/RapidApp/Module/AppDV/TTController.pm:94:  my $Column = $self->AppDV->get_column($name);
lib/RapidApp/Module/AppDV/TTController.pm:96:    my $style = $Column->get_field_config->{data_wrapper_style};
lib/RapidApp/Module/AppDV/TTController.pm:100:  return '<div class="data-wrapper">' .
lib/RapidApp/Module/AppDV/TTController.pm:102:    '<div class="field-holder"></div>' .
lib/RapidApp/Module/AppDV/TTController.pm:113:  return $self->div_editable_value($name,
lib/RapidApp/Module/AppDV/TTController.pm:114:    '<div class="appdv-edit-field inln">' .  
lib/RapidApp/Module/AppDV/TTController.pm:115:        $self->data_wrapper_div($name,$display) . 
lib/RapidApp/Module/AppDV/TTController.pm:132:  return $self->div_editable_value($name,
lib/RapidApp/Module/AppDV/TTController.pm:133:    '<div class="appdv-edit-field inln">' .  
lib/RapidApp/Module/AppDV/TTController.pm:134:        $self->data_wrapper_div($name,$display) . 
lib/RapidApp/Module/AppDV/TTController.pm:152:  return $self->div_editable_value($name,
lib/RapidApp/Module/AppDV/TTController.pm:153:    '<div class="appdv-edit-bigfield require-edit-click">' .
lib/RapidApp/Module/AppDV/TTController.pm:154:      $self->data_wrapper_div($name,$display)  . 
lib/RapidApp/Module/AppDV/TTController.pm:157:        '<div class="pseudo-edit-wrapper"></div>' .
lib/RapidApp/Module/AppDV/TTController.pm:172:    return RapidApp::Module::AppDV::RecAutoload->new( process_coderef => sub {
lib/RapidApp/Module/AppDV/TTController.pm:174:      my $Column = $self->AppDV->get_column($name) or return '';
lib/RapidApp/Module/AppDV/TTController.pm:175:      $self->FieldCmp->{$Column->name} = $self->AppDV->json->encode($Column->get_field_config);
lib/RapidApp/Module/AppDV/TTController.pm:177:      return '<div class="' . $Column->name . '">{' . $Column->name . '}</div>';
lib/RapidApp/Module/AppDV/TTController.pm:191:    return RapidApp::Module::AppDV::RecAutoload->new( process_coderef => sub {
lib/RapidApp/Module/AppDV/TTController.pm:195:      my $Column = $self->AppDV->get_column($name) or return '';
lib/RapidApp/Module/AppDV/TTController.pm:197:      $self->AppDV->FieldCmp->{$Column->name} = $self->AppDV->json->encode($Column->get_field_config);
lib/RapidApp/Module/AppDV/TTController.pm:199:      return $self->div_edit_field($Column->name,$display);
lib/RapidApp/Module/AppDV/TTController.pm:211:    return RapidApp::Module::AppDV::RecAutoload->new( process_coderef => sub {
lib/RapidApp/Module/AppDV/TTController.pm:215:      my $Column = $self->AppDV->get_column($name) or return '';
lib/RapidApp/Module/AppDV/TTController.pm:217:      $self->AppDV->FieldCmp->{$Column->name} = $self->AppDV->json->encode($Column->get_field_config);
lib/RapidApp/Module/AppDV/TTController.pm:219:      return $self->div_bigfield($Column->name,$display);
lib/RapidApp/Module/AppDV/TTController.pm:232:    return RapidApp::Module::AppDV::RecAutoload->new( process_coderef => sub {
lib/RapidApp/Module/AppDV/TTController.pm:234:      my $Column = $self->AppDV->get_column($name) or return '';
lib/RapidApp/Module/AppDV/TTController.pm:236:      $self->AppDV->FieldCmp->{$Column->name} = $self->AppDV->json->encode($Column->get_field_config);
lib/RapidApp/Module/AppDV/TTController.pm:242:      '<div class="appdv-click ' . $self->AppDV->get_extconfig_param('id') . '">' .
lib/RapidApp/Module/AppDV/TTController.pm:245:          '<div class="data appdv-editable-value"><span>{' . $Column->name . '}</span></div>' .
lib/RapidApp/Module/AppDV/TTController.pm:253:# Like autofield, but forces read-only
lib/RapidApp/Module/AppDV/TTController.pm:256:  return RapidApp::Module::AppDV::RecAutoload->new( 
lib/RapidApp/Module/AppDV/TTController.pm:257:    process_coderef => $self->_autofield_processor({ ro => 1 })
lib/RapidApp/Module/AppDV/TTController.pm:263:  return RapidApp::Module::AppDV::RecAutoload->new( 
lib/RapidApp/Module/AppDV/TTController.pm:264:    process_coderef => $self->_autofield_processor
lib/RapidApp/Module/AppDV/TTController.pm:270:  return RapidApp::Module::AppDV::RecAutoload->new( 
lib/RapidApp/Module/AppDV/TTController.pm:271:    process_coderef => $self->_autofield_processor({ special => 'column_info' })
lib/RapidApp/Module/AppDV/TTController.pm:282:      my $Column = $self->AppDV->get_column($name) or return '';
lib/RapidApp/Module/AppDV/TTController.pm:284:      if (my $special = $cnf->{special}) {
lib/RapidApp/Module/AppDV/TTController.pm:291:      my $ro = $Column->editor ? 0 : 1;
lib/RapidApp/Module/AppDV/TTController.pm:293:      $ro = 1 if ($cnf->{ro});
lib/RapidApp/Module/AppDV/TTController.pm:295:      $ro = 1 unless ($Column->allow_edit || $Column->allow_add);
lib/RapidApp/Module/AppDV/TTController.pm:297:      # -- Only allow the same column through as editable once per template processing
lib/RapidApp/Module/AppDV/TTController.pm:298:      if(my $hsh = $self->AppDV->{_template_process_ctx}){
lib/RapidApp/Module/AppDV/TTController.pm:299:        $ro = 1 if (!$ro && ! $self->AppDV->multi_editable_autofield && $hsh->{seen_fieldnames}{$name}++);
lib/RapidApp/Module/AppDV/TTController.pm:301:      # --
lib/RapidApp/Module/AppDV/TTController.pm:303:      if($Column->renderer) {
lib/RapidApp/Module/AppDV/TTController.pm:304:        $display = '[this.renderField("' . $name . '",values,' . $Column->renderer->func . ')]';
lib/RapidApp/Module/AppDV/TTController.pm:307:      local $self->{_div_block} = 0;
lib/RapidApp/Module/AppDV/TTController.pm:308:      my $config = $Column->get_field_config;
lib/RapidApp/Module/AppDV/TTController.pm:310:      my @block_types = qw(cas-image-field);
lib/RapidApp/Module/AppDV/TTController.pm:312:      $self->{_div_block} = 1 if($config->{xtype} && $block_types{$config->{xtype}});
lib/RapidApp/Module/AppDV/TTController.pm:314:      # read-only:
lib/RapidApp/Module/AppDV/TTController.pm:315:      return $self->div_wrapper('{' . $display . '}') if ($ro);
lib/RapidApp/Module/AppDV/TTController.pm:317:      # -- New: add 'no-edit' to the list of css classes that will be applied to the div
lib/RapidApp/Module/AppDV/TTController.pm:318:      # if this column is non-editable. This only matters when allow_add is true, meaning
lib/RapidApp/Module/AppDV/TTController.pm:322:      push @cls, 'no-edit' unless($Column->allow_edit);
lib/RapidApp/Module/AppDV/TTController.pm:323:      local $self->{_editable_value_extra_classes} = \@cls;
lib/RapidApp/Module/AppDV/TTController.pm:324:      # --
lib/RapidApp/Module/AppDV/TTController.pm:326:      # -- TODO: refactor AppDV for all the changes that came with TableSpec
lib/RapidApp/Module/AppDV/TTController.pm:328:      $config->{minHeight} = 22 unless ($config->{minHeight});
lib/RapidApp/Module/AppDV/TTController.pm:329:      $config->{minWidth} = $Column->width + 30 if ($Column->width and ! $config->{minWidth});
lib/RapidApp/Module/AppDV/TTController.pm:330:      # --
lib/RapidApp/Module/AppDV/TTController.pm:339:      ## It is some kind of low-level browser issue
lib/RapidApp/Module/AppDV/TTController.pm:341:      ## 'logical-checkbox'.  (might be a fundamental flaw in AppDV)
lib/RapidApp/Module/AppDV/TTController.pm:343:      $config->{xtype} = 'logical-checkbox' if ($config->{xtype} eq 'checkbox');
lib/RapidApp/Module/AppDV/TTController.pm:353:      $self->AppDV->FieldCmp->{$Column->name} = $self->AppDV->json->encode($config);
lib/RapidApp/Module/AppDV/TTController.pm:357:      my @bigfield_types = qw(textarea htmleditor ra-htmleditor ra-md-editor);
lib/RapidApp/Module/AppDV/TTController.pm:359:      return $self->div_bigfield($Column->name,$display) if (
lib/RapidApp/Module/AppDV/TTController.pm:360:        $bf_types{$config->{xtype}}
lib/RapidApp/Module/AppDV/TTController.pm:363:      my @no_icons_types = qw(cycle-field menu-field);
lib/RapidApp/Module/AppDV/TTController.pm:365:      return $self->div_edit_field_no_icons($Column->name,$display) if (
lib/RapidApp/Module/AppDV/TTController.pm:366:        $ni_types{$config->{xtype}}
lib/RapidApp/Module/AppDV/TTController.pm:369:      return $self->div_edit_field($Column->name,$display);
lib/RapidApp/Module/AppDV/TTController.pm:376:  return RapidApp::Module::AppDV::RecAutoload->new( 
lib/RapidApp/Module/AppDV/TTController.pm:377:    process_coderef => $self->_store_button_processor
lib/RapidApp/Module/AppDV/TTController.pm:388:  my $btnCfgs = $self->AppDV->get_extconfig_param('store_button_cnf') || {};
lib/RapidApp/Module/AppDV/TTController.pm:399:      my $cfg = $btnCfgs->{$name} || {};
lib/RapidApp/Module/AppDV/TTController.pm:400:      my $text = $cfg->{text} || ucfirst($name);
lib/RapidApp/Module/AppDV/TTController.pm:403:        ($cfg->{iconCls} ? ' class="with-inline-icon '.$cfg->{iconCls}.'"' : ''),
lib/RapidApp/Module/AppDV/TTController.pm:408:    return $self->div_clickable_command(join('',
lib/RapidApp/Module/AppDV/TTController.pm:409:      '<div class="store-button '.$name.'">',$inner,'</div>'
lib/RapidApp/Module/AppDV/TTController.pm:421:    return RapidApp::Module::AppDV::RecAutoload->new( process_coderef => sub {
lib/RapidApp/Module/AppDV/TTController.pm:424:      my $Module = $self->AppDV->Module($name) or return '';
lib/RapidApp/Module/AppDV/TTController.pm:426:      return $self->div_module_content($name,$Module);
lib/RapidApp/Module/AppDV/TTController.pm:437:  my $Module = $self->AppDV->get_Module($path) or return '';
lib/RapidApp/Module/AppDV/TTController.pm:441:  return $self->div_module_content($path,$Module);
lib/RapidApp/Module/AppDV/TTController.pm:453:  $params = $self->AppDV->json->decode($params_enc) if (defined $params_enc);
lib/RapidApp/Module/AppDV/TTController.pm:462:    renderTarget => 'div.appdv-submodule.' . $name,
lib/RapidApp/Module/AppDV/TTController.pm:463:    applyValue => $self->AppDV->record_pk,
lib/RapidApp/Module/AppDV/TTController.pm:470:  return $self->div_module($name,$cnf);
lib/RapidApp/Module/AppDV/TTController.pm:482:    renderTarget => 'div.appdv-submodule.' . $name,
lib/RapidApp/Module/AppDV/TTController.pm:483:    applyValue => $self->AppDV->record_pk,
lib/RapidApp/Module/AppDV/TTController.pm:484:    %{ $Module->content }
lib/RapidApp/Module/AppDV/TTController.pm:487:  return $self->div_module($name,$cnf);
lib/RapidApp/Module/AppDV/TTController.pm:502:  $self->div_module($name,$cnf);
lib/RapidApp/Module/AppDV/TTController.pm:516:  $cnf = { %$cnf, %{ $self->AppDV->submodule_config_override->{$name} } } if ($self->AppDV->submodule_config_override->{$name});
lib/RapidApp/Module/AppDV/TTController.pm:520:  $self->AppDV->DVitems->{$name} = $self->AppDV->json->encode($cnf);
lib/RapidApp/Module/AppDV/TTController.pm:522:  return '<div class="appdv-submodule ' . $name . '"></div>';
lib/RapidApp/Module/AppDV/TTController.pm:530:    edit => $self->div_clickable(
lib/RapidApp/Module/AppDV/TTController.pm:531:      '<div class="edit-record-toggle default inln">' .
lib/RapidApp/Module/AppDV/TTController.pm:538:    select  => '<div class="appdv-toggle select"></div>'
lib/RapidApp/Module/Combo.pm:14:has 'fieldLabel'     => ( is => 'ro', lazy => 1, default => sub { (shift)->name } );
lib/RapidApp/Module/Combo.pm:24:  $self->apply_extconfig(
lib/RapidApp/Module/Combo.pm:33:    name             => $self->name,
lib/RapidApp/Module/Combo.pm:34:    fieldLabel       => $self->fieldLabel,
lib/RapidApp/Module/Combo.pm:35:    displayField     => $self->displayField,
lib/RapidApp/Module/Combo.pm:36:    valueField       => $self->valueField,
lib/RapidApp/Module/Combo.pm:37:    allowSelectNone  => $self->allowSelectNone ? \1 : \0
lib/RapidApp/Module/Combo.pm:44:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/DatStor.pm:19:our $BATCH_UPDATE_IN_PROGRESS = 0; #<-- should use obj hash key instead of pkg
lib/RapidApp/Module/DatStor.pm:24:# ---
lib/RapidApp/Module/DatStor.pm:30:  join('-','ds',String::Random->new->randregex('[a-z0-9A-Z]{6}'))
lib/RapidApp/Module/DatStor.pm:34:  my $id = $self->$orig(@args);
lib/RapidApp/Module/DatStor.pm:35:  my $c = $self->c;
lib/RapidApp/Module/DatStor.pm:36:  $c ? join('-',$id,$c->request_id) : $id;
lib/RapidApp/Module/DatStor.pm:39:# ---
lib/RapidApp/Module/DatStor.pm:116:  $self->apply_actions( read    => 'read' );
lib/RapidApp/Module/DatStor.pm:117:  $self->apply_actions( update  => 'update' ) if (defined $self->update_handler);
lib/RapidApp/Module/DatStor.pm:118:  $self->apply_actions( create  => 'create' ) if (defined $self->create_handler);
lib/RapidApp/Module/DatStor.pm:119:  $self->apply_actions( destroy  => 'destroy' ) if (defined $self->destroy_handler);
lib/RapidApp/Module/DatStor.pm:121:  $self->add_listener( write => RapidApp::JSONFunc->new( raw => 1, func => 
lib/RapidApp/Module/DatStor.pm:123:  )) if ($self->reload_on_save);
lib/RapidApp/Module/DatStor.pm:126:  $self->add_base_keys($self->record_pk);
lib/RapidApp/Module/DatStor.pm:129:  $self->add_ONREQUEST_calls('store_init_onrequest');
lib/RapidApp/Module/DatStor.pm:136:  unless ($self->has_no_onrequest_columns_mungers) {
lib/RapidApp/Module/DatStor.pm:137:    foreach my $Handler ($self->all_onrequest_columns_mungers) {
lib/RapidApp/Module/DatStor.pm:138:      $Handler->call($self->columns);
lib/RapidApp/Module/DatStor.pm:142:  $self->apply_extconfig( baseParams => $self->base_params ) if (
lib/RapidApp/Module/DatStor.pm:143:    defined $self->base_params and
lib/RapidApp/Module/DatStor.pm:144:    scalar keys %{ $self->base_params } > 0
lib/RapidApp/Module/DatStor.pm:148:  ## -- Update: set the baseParams via merge just in case some earlier code has already set
lib/RapidApp/Module/DatStor.pm:150:  #if (defined $self->base_params and scalar keys %{$self->base_params} > 0) {
lib/RapidApp/Module/DatStor.pm:151:  #  my $baseParams = try{$self->get_extconfig_param('baseParams')} || {};
lib/RapidApp/Module/DatStor.pm:152:  #  %$baseParams = ( %$baseParams, %{$self->base_params} );
lib/RapidApp/Module/DatStor.pm:153:  #  $self->apply_extconfig( baseParams => $baseParams );
lib/RapidApp/Module/DatStor.pm:155:  ## --
lib/RapidApp/Module/DatStor.pm:157:  $self->apply_extconfig(
lib/RapidApp/Module/DatStor.pm:158:    storeId           => $self->storeId,
lib/RapidApp/Module/DatStor.pm:159:    api             => $self->store_api,
lib/RapidApp/Module/DatStor.pm:160:    #baseParams         => $self->base_params,
lib/RapidApp/Module/DatStor.pm:161:    writer          => $self->store_writer,
lib/RapidApp/Module/DatStor.pm:162:    #autoLoad         => $self->store_autoLoad,
lib/RapidApp/Module/DatStor.pm:167:    idProperty         => $self->record_pk,
lib/RapidApp/Module/DatStor.pm:171:    #columns           => $self->column_list
lib/RapidApp/Module/DatStor.pm:176:  $self->apply_extconfig( store_autoLoad => { params => {
lib/RapidApp/Module/DatStor.pm:178:    limit => $self->max_pagesize ? $self->max_pagesize : 400
lib/RapidApp/Module/DatStor.pm:179:  }}) if (jstrue $self->store_autoLoad); 
lib/RapidApp/Module/DatStor.pm:182:  if (defined $self->c) {
lib/RapidApp/Module/DatStor.pm:183:    my $params = $self->get_store_base_params;
lib/RapidApp/Module/DatStor.pm:184:    # Update Update: don't update via merge due to caching problem (TODO - investigate)
lib/RapidApp/Module/DatStor.pm:185:    # -- Update: set the baseParams via merge just in case some earlier code has already set
lib/RapidApp/Module/DatStor.pm:188:    #  my $baseParams = $self->get_extconfig_param('baseParams') || {};
lib/RapidApp/Module/DatStor.pm:190:    #  $self->apply_extconfig( baseParams => $baseParams )
lib/RapidApp/Module/DatStor.pm:192:    $self->apply_extconfig( baseParams => $params ) if (defined $params);
lib/RapidApp/Module/DatStor.pm:193:    # --
lib/RapidApp/Module/DatStor.pm:203:    %{ $self->content },
lib/RapidApp/Module/DatStor.pm:205:  } if ($self->store_use_xtype);
lib/RapidApp/Module/DatStor.pm:207:  return RapidApp::JSONFunc->new( 
lib/RapidApp/Module/DatStor.pm:209:    parm => $self->content
lib/RapidApp/Module/DatStor.pm:216:  my $r_parms = $self->c->req->params;
lib/RapidApp/Module/DatStor.pm:220:    exists $r_parms->{base_params} and
lib/RapidApp/Module/DatStor.pm:221:    exists $r_parms->{base_params_base64}
lib/RapidApp/Module/DatStor.pm:224:  my $encoded = exists $r_parms->{base_params_base64} ?
lib/RapidApp/Module/DatStor.pm:225:    decode_base64($r_parms->{base_params_base64}) :
lib/RapidApp/Module/DatStor.pm:226:    $self->c->req->params->{base_params};
lib/RapidApp/Module/DatStor.pm:229:    my $decoded = $self->json->decode($encoded) or die "Failed to decode base_params JSON";
lib/RapidApp/Module/DatStor.pm:231:      $params->{$k} = $decoded->{$k};
lib/RapidApp/Module/DatStor.pm:237:  my $orig_params_enc = $self->c->req->params->{orig_params};
lib/RapidApp/Module/DatStor.pm:238:  $orig_params = $self->json->decode($orig_params_enc) if (defined $orig_params_enc);
lib/RapidApp/Module/DatStor.pm:240:  foreach my $key ($self->base_keys_list) {
lib/RapidApp/Module/DatStor.pm:241:    $params->{$key} = $orig_params->{$key} if (defined $orig_params->{$key});
lib/RapidApp/Module/DatStor.pm:242:    $params->{$key} = $self->c->req->params->{$key} if (defined $self->c->req->params->{$key});
lib/RapidApp/Module/DatStor.pm:245:  unless ($self->has_no_base_params_mungers) {
lib/RapidApp/Module/DatStor.pm:246:    foreach my $Handler ($self->all_base_params_mungers) {
lib/RapidApp/Module/DatStor.pm:247:      $Handler->call($params);
lib/RapidApp/Module/DatStor.pm:260:# -- Moved from AppGrid2:
lib/RapidApp/Module/DatStor.pm:270:  foreach my $col (@{$self->include_columns}) {
lib/RapidApp/Module/DatStor.pm:271:    $hash->{$col} = 1;
lib/RapidApp/Module/DatStor.pm:279:  foreach my $col (@{$self->exclude_columns}) {
lib/RapidApp/Module/DatStor.pm:280:    $hash->{$col} = 1;
lib/RapidApp/Module/DatStor.pm:288:  return 0 if ($self->deleted_column_names->{$col});
lib/RapidApp/Module/DatStor.pm:289:  return 1 if (exists $self->columns->{$col}); 
lib/RapidApp/Module/DatStor.pm:296:  return undef unless ($self->has_column($col));
lib/RapidApp/Module/DatStor.pm:297:  return $self->columns->{$col};
lib/RapidApp/Module/DatStor.pm:312:  # -- This may be redundant to exclude_columns, need to look into combining these --
lib/RapidApp/Module/DatStor.pm:313:  $self->deleted_column_names->{$_} = 1 for (@columns);
lib/RapidApp/Module/DatStor.pm:315:  # vvv -- deleted columns are now filtered out in column_list instead of using the below code -- vvv
lib/RapidApp/Module/DatStor.pm:318:  #%{$self->columns} = map { $_ => $self->columns->{$_} } grep { !$indx{$_} } keys %{$self->columns};
lib/RapidApp/Module/DatStor.pm:319:  #@{$self->column_order} = uniq(grep { !$indx{$_} } @{$self->column_order});
lib/RapidApp/Module/DatStor.pm:323:  #return $self->apply_columns;
lib/RapidApp/Module/DatStor.pm:333:    match_glob($gl,$_) and $cols{$_} = 1 for ($self->column_name_list);
lib/RapidApp/Module/DatStor.pm:356:  #%columns = map {$_=>$columns{$_}} grep { !$self->deleted_column_names->{$_} } keys %columns;
lib/RapidApp/Module/DatStor.pm:361:  $self->apply_columns(%columns);
lib/RapidApp/Module/DatStor.pm:362:  return $self->set_columns_order($offset,@col_names);
lib/RapidApp/Module/DatStor.pm:367:  my %columns = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:370:  #%columns = map {$_=>$columns{$_}} grep { !$self->deleted_column_names->{$_} } keys %columns;
lib/RapidApp/Module/DatStor.pm:374:    next unless ($self->valid_colname($name));
lib/RapidApp/Module/DatStor.pm:376:    unless (defined $self->columns->{$name}) {
lib/RapidApp/Module/DatStor.pm:377:      $self->columns->{$name} = RapidApp::Module::DatStor::Column->new( name => $name );
lib/RapidApp/Module/DatStor.pm:378:      push @{ $self->column_order }, $name;
lib/RapidApp/Module/DatStor.pm:381:    $self->columns->{$name}->apply_attributes(%{$columns{$name}});
lib/RapidApp/Module/DatStor.pm:383:    $self->add_read_raw_mungers($self->columns->{$name}->read_raw_munger) if ($self->columns->{$name}->read_raw_munger);
lib/RapidApp/Module/DatStor.pm:384:    $self->add_update_mungers($self->columns->{$name}->update_munger) if ($self->columns->{$name}->update_munger);
lib/RapidApp/Module/DatStor.pm:387:  return $self->apply_config(columns => $self->column_list);
lib/RapidApp/Module/DatStor.pm:392:  return grep { !$self->deleted_column_names->{$_} } @{$self->column_order};
lib/RapidApp/Module/DatStor.pm:399:  my @colnames = $self->column_name_list;
lib/RapidApp/Module/DatStor.pm:403:    push @list, $self->columns->{$name}->get_grid_config;
lib/RapidApp/Module/DatStor.pm:412:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:414:  foreach my $column (keys %{ $self->columns } ) {
lib/RapidApp/Module/DatStor.pm:415:    $self->columns->{$column}->apply_attributes(%opt);
lib/RapidApp/Module/DatStor.pm:418:  return $self->apply_config(columns => $self->column_list);
lib/RapidApp/Module/DatStor.pm:423:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:425:  foreach my $column (keys %{ $self->columns } ) {
lib/RapidApp/Module/DatStor.pm:426:    $self->columns->{$column}->applyIf_attributes(%opt);
lib/RapidApp/Module/DatStor.pm:429:  return $self->apply_config(columns => $self->column_list);
lib/RapidApp/Module/DatStor.pm:435:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:440:    croak "Can't apply_attributes because column '$column' is not defined\n" unless (defined $self->columns->{$column});
lib/RapidApp/Module/DatStor.pm:441:    $self->columns->{$column}->apply_attributes(%opt);
lib/RapidApp/Module/DatStor.pm:444:  return $self->apply_config(columns => $self->column_list);
lib/RapidApp/Module/DatStor.pm:448:# non-deleted column. Column name is supplied to the coderef as $_ (and the first arg)
lib/RapidApp/Module/DatStor.pm:454:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:456:  $coderef->($_) and $self->columns->{$_}->apply_attributes(%opt) 
lib/RapidApp/Module/DatStor.pm:457:    for ($self->column_name_list);
lib/RapidApp/Module/DatStor.pm:459:  return $self->apply_config(columns => $self->column_list);
lib/RapidApp/Module/DatStor.pm:464:  return $self->apply_config( sort_spec => {} ) unless (defined $_[0]);
lib/RapidApp/Module/DatStor.pm:465:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:466:  return $self->apply_config( sort_spec => { %opt } );
lib/RapidApp/Module/DatStor.pm:474:  my %opts = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:479:        delete $opts{$opt}->{$col} unless (defined $self->columns->{$col});
lib/RapidApp/Module/DatStor.pm:485:        next unless (defined $self->columns->{$col});
lib/RapidApp/Module/DatStor.pm:492:  return $self->batch_apply_opts(\%opts);
lib/RapidApp/Module/DatStor.pm:497:  my %opts = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:500:    if ($opt eq 'columns' and ref($opts{$opt}) eq 'HASH') {        $self->apply_columns($opts{$opt});        }
lib/RapidApp/Module/DatStor.pm:501:    elsif ($opt eq 'column_order') {    $self->set_columns_order(0,$opts{$opt});    }
lib/RapidApp/Module/DatStor.pm:502:    elsif ($opt eq 'sort') {        $self->set_sort($opts{$opt});            }
lib/RapidApp/Module/DatStor.pm:504:      $self->apply_extconfig( $opt => $opts{$opt} );
lib/RapidApp/Module/DatStor.pm:506:    #elsif ($opt eq 'filterdata') {    $self->apply_config($opt => $opts{$opt});    }
lib/RapidApp/Module/DatStor.pm:507:    #elsif ($opt eq 'pageSize') {    $self->apply_config($opt => $opts{$opt});    }
lib/RapidApp/Module/DatStor.pm:517:  if (scalar @{$self->exclude_columns} > 0) {
lib/RapidApp/Module/DatStor.pm:518:    return 0 if (defined $self->exclude_columns_hash->{$name});
lib/RapidApp/Module/DatStor.pm:521:  if (scalar @{$self->include_columns} > 0) {
lib/RapidApp/Module/DatStor.pm:522:    return 0 unless (defined $self->include_columns_hash->{$name});
lib/RapidApp/Module/DatStor.pm:531:  my @cols = (ref($_[0]) eq 'ARRAY' and not defined $_[1]) ? @{ $_[0] } : @_; # <-- arg as list or arrayref
lib/RapidApp/Module/DatStor.pm:539:  foreach my $col (@{ $self->column_order }) {
lib/RapidApp/Module/DatStor.pm:558:  @{ $self->column_order } = @pruned;
lib/RapidApp/Module/DatStor.pm:560:  return $self->apply_config(columns => $self->column_list);
lib/RapidApp/Module/DatStor.pm:563:# --
lib/RapidApp/Module/DatStor.pm:572:  my $params= $self->c->req->params;
lib/RapidApp/Module/DatStor.pm:573:  if (defined $params->{orig_params}) {
lib/RapidApp/Module/DatStor.pm:574:    $params= $self->json->decode($params->{orig_params});
lib/RapidApp/Module/DatStor.pm:584:  $self->parent_module->enforce_permission;
lib/RapidApp/Module/DatStor.pm:587:  $params ||= $self->params_from_request;
lib/RapidApp/Module/DatStor.pm:588:  $self->enforce_max_pagesize($params);
lib/RapidApp/Module/DatStor.pm:590:  my $data = $self->read_raw($params);
lib/RapidApp/Module/DatStor.pm:592:  return $self->meta_json_packet($data);
lib/RapidApp/Module/DatStor.pm:600:# DBIC-driven ones
lib/RapidApp/Module/DatStor.pm:604:  return if !$self->max_pagesize || $params->{ignore_page_size};
lib/RapidApp/Module/DatStor.pm:606:    not defined $params->{limit} or 
lib/RapidApp/Module/DatStor.pm:607:    $params->{limit} > $self->max_pagesize or
lib/RapidApp/Module/DatStor.pm:608:    not defined $params->{start};
lib/RapidApp/Module/DatStor.pm:611:  $new_params->{start} = 0 unless (defined $params->{start});
lib/RapidApp/Module/DatStor.pm:612:  $new_params->{limit} = $self->max_pagesize if (
lib/RapidApp/Module/DatStor.pm:613:    not defined $params->{limit} or 
lib/RapidApp/Module/DatStor.pm:614:    $params->{limit} > $self->max_pagesize
lib/RapidApp/Module/DatStor.pm:628:  if (defined $self->read_handler and $self->has_flag('can_read')) {
lib/RapidApp/Module/DatStor.pm:629:    $params ||= $self->params_from_request;
lib/RapidApp/Module/DatStor.pm:631:    $data = $self->read_handler->call($params);
lib/RapidApp/Module/DatStor.pm:636:      exists $data->{results} and
lib/RapidApp/Module/DatStor.pm:637:      ref($data->{rows}) eq 'ARRAY'
lib/RapidApp/Module/DatStor.pm:644:  unless ($self->has_no_read_raw_mungers) {
lib/RapidApp/Module/DatStor.pm:645:    foreach my $Handler ($self->all_read_raw_mungers) {
lib/RapidApp/Module/DatStor.pm:646:      $Handler->call($data);
lib/RapidApp/Module/DatStor.pm:656:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor.pm:665:      idProperty => $self->record_pk,
lib/RapidApp/Module/DatStor.pm:669:      fields => defined $self->store_fields ? $self->store_fields : $self->store_fields_from_rows($opt{rows}),
lib/RapidApp/Module/DatStor.pm:670:      loaded_columns => $self->store_loaded_columns($opt{rows})
lib/RapidApp/Module/DatStor.pm:680:  return [ keys %{$rows->[0]} ] if (scalar @$rows > 0);
lib/RapidApp/Module/DatStor.pm:683:  my $fields = $self->store_fields || $self->store_fields_from_rows($rows);
lib/RapidApp/Module/DatStor.pm:684:  return [ map { $_->{name} } @$fields ];
lib/RapidApp/Module/DatStor.pm:693:  my $row = $rows->[0];
lib/RapidApp/Module/DatStor.pm:706:  $self->parent_module->enforce_permission;
lib/RapidApp/Module/DatStor.pm:708:  my $params = $self->c->req->params;
lib/RapidApp/Module/DatStor.pm:709:  my $rows = $self->json->decode($params->{rows});
lib/RapidApp/Module/DatStor.pm:710:  delete $params->{rows};
lib/RapidApp/Module/DatStor.pm:712:  # -- Set the $BATCH_UPDATE_IN_PROGRESS flag if the client says this is a
lib/RapidApp/Module/DatStor.pm:716:  $BATCH_UPDATE_IN_PROGRESS = 1 if ($params->{batch_update});
lib/RapidApp/Module/DatStor.pm:717:  # --
lib/RapidApp/Module/DatStor.pm:719:  if (defined $params->{orig_params}) {
lib/RapidApp/Module/DatStor.pm:720:    my $orig_params = $self->json->decode($params->{orig_params});
lib/RapidApp/Module/DatStor.pm:721:    delete $params->{orig_params};
lib/RapidApp/Module/DatStor.pm:725:      next if (defined $params->{$k});
lib/RapidApp/Module/DatStor.pm:726:      $params->{$k} = $orig_params->{$k};
lib/RapidApp/Module/DatStor.pm:730:  unless ($self->has_no_update_mungers) {
lib/RapidApp/Module/DatStor.pm:731:    foreach my $Handler ($self->all_update_mungers) {
lib/RapidApp/Module/DatStor.pm:732:      $Handler->call($rows);
lib/RapidApp/Module/DatStor.pm:736:  #my $result = $self->update_records_coderef->($rows,$params);
lib/RapidApp/Module/DatStor.pm:737:  my $result = $self->update_handler->call($rows,$params);
lib/RapidApp/Module/DatStor.pm:740:    defined $result->{success}
lib/RapidApp/Module/DatStor.pm:757:  $self->parent_module->enforce_permission;
lib/RapidApp/Module/DatStor.pm:759:  my $params = $self->c->req->params;
lib/RapidApp/Module/DatStor.pm:760:  my $rows = $self->json->decode($params->{rows});
lib/RapidApp/Module/DatStor.pm:761:  delete $params->{rows};
lib/RapidApp/Module/DatStor.pm:763:  my $result = $self->create_handler->call($rows);
lib/RapidApp/Module/DatStor.pm:767:  return $result if (delete $result->{use_this}); #<-- temp hack
lib/RapidApp/Module/DatStor.pm:774:  $rows->{$self->record_pk} = 'dummy-key' if (ref($rows) eq 'HASH');
lib/RapidApp/Module/DatStor.pm:777:  $rows = $result->{rows} if (ref($result) and defined $result->{rows} and defined $result->{rows}->{$self->record_pk});
lib/RapidApp/Module/DatStor.pm:780:  $rows = $result->{rows} if (ref($result) and ref($result->{rows}) eq 'ARRAY');
lib/RapidApp/Module/DatStor.pm:782:  if (ref($result) and defined $result->{success} and defined $result->{msg}) {
lib/RapidApp/Module/DatStor.pm:783:    $result->{rows} = $rows;
lib/RapidApp/Module/DatStor.pm:784:    if ($result->{success}) {
lib/RapidApp/Module/DatStor.pm:785:      $result->{success} = \1;
lib/RapidApp/Module/DatStor.pm:788:      $result->{success} = \0;
lib/RapidApp/Module/DatStor.pm:794:  if ($result and not (ref($result) and $result->{success} == 0 )) {
lib/RapidApp/Module/DatStor.pm:803:    $result->{success} = \0;
lib/RapidApp/Module/DatStor.pm:804:    $result->{msg} = 'Create Failed' unless (defined $result->{msg});
lib/RapidApp/Module/DatStor.pm:805:    die $result->{msg};
lib/RapidApp/Module/DatStor.pm:816:  $self->parent_module->enforce_permission;
lib/RapidApp/Module/DatStor.pm:818:  my $params = $self->c->req->params;
lib/RapidApp/Module/DatStor.pm:819:  my $rows = $self->json->decode($params->{rows});
lib/RapidApp/Module/DatStor.pm:820:  delete $params->{rows};
lib/RapidApp/Module/DatStor.pm:822:  my $result = $self->destroy_handler->call($rows) or return {
lib/RapidApp/Module/DatStor.pm:827:  return $result if (ref($result) eq 'HASH' and $result->{success});
lib/RapidApp/Module/DatStor.pm:838:  return $self->JsonStore;
lib/RapidApp/Module/DatStor.pm:842:sub getStore_code   { join('','Ext.StoreMgr.lookup("',(shift)->storeId,'")') }
lib/RapidApp/Module/DatStor.pm:843:sub getStore_func   { RapidApp::JSONFunc->new(raw=>1, func=>(shift)->getStore_code) }
lib/RapidApp/Module/DatStor.pm:844:sub store_load_code { join('',(shift)->getStore_code,'.load()') }
lib/RapidApp/Module/DatStor.pm:849:#  scream_color(RED,$self->storeId);
lib/RapidApp/Module/DatStor.pm:850:#  return 'Ext.StoreMgr.lookup("' . $self->storeId . '")';
lib/RapidApp/Module/DatStor.pm:856:#  return RapidApp::JSONFunc->new( 
lib/RapidApp/Module/DatStor.pm:858:#    func => $self->getStore_code
lib/RapidApp/Module/DatStor.pm:865:#  return $self->getStore_code . '.load()';
lib/RapidApp/Module/DatStor.pm:868:## TODO: get a more reliable way to access the store - use local references and scope
lib/RapidApp/Module/DatStor.pm:872:#  return RapidApp::JSONFunc->new( raw => 1, func =>
lib/RapidApp/Module/DatStor.pm:874:#      'var storeId = "' . $self->storeId . '";' .
lib/RapidApp/Module/DatStor.pm:887:  $api->{read}    = $self->suburl('/read');
lib/RapidApp/Module/DatStor.pm:888:  $api->{update}    = $self->suburl('/update')    if (defined $self->update_handler);
lib/RapidApp/Module/DatStor.pm:889:  $api->{create}    = $self->suburl('/create')    if (defined $self->create_handler);
lib/RapidApp/Module/DatStor.pm:890:  $api->{destroy}  = $self->suburl('/destroy')  if (defined $self->destroy_handler);
lib/RapidApp/Module/DatStor.pm:901:    defined $self->update_handler or 
lib/RapidApp/Module/DatStor.pm:902:    defined $self->create_handler or
lib/RapidApp/Module/DatStor.pm:903:    defined $self->destroy_handler
lib/RapidApp/Module/DatStor.pm:906:  my $writer = RapidApp::JSONFunc->new( 
lib/RapidApp/Module/DatStor.pm:921:#### --------------------- ####
lib/RapidApp/Module/DatStor.pm:925:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/DatStor/Column.pm:32:		? 'if (scalar @_ > 1) { my $old= $_[0]->{'.$_.'}; $_[0]->{'.$_.'} = $_[1]; $_[0]->'.$triggers{$_}.'($_[0]->{'.$_.'}, $old); }'
lib/RapidApp/Module/DatStor/Column.pm:33:		: '$_[0]->{'.$_.'} = $_[1] if scalar @_ > 1;'
lib/RapidApp/Module/DatStor/Column.pm:34:	).'$_[0]->{'.$_.'}
lib/RapidApp/Module/DatStor/Column.pm:40:	header                 => '$self->{name}',
lib/RapidApp/Module/DatStor/Column.pm:41:	dataIndex              => '$self->{name}',
lib/RapidApp/Module/DatStor/Column.pm:54:	'.join(';', map { 'exists $self->{'.$_.'} or $self->{'.$_.'}= '.$defaults{$_} } keys %defaults).'
lib/RapidApp/Module/DatStor/Column.pm:68:	return if (defined $self->renderer);
lib/RapidApp/Module/DatStor/Column.pm:70:	$self->xtype('templatecolumn');
lib/RapidApp/Module/DatStor/Column.pm:71:	$self->tpl('{[' . $new . '(values.' . $self->name . ',values)]}');
lib/RapidApp/Module/DatStor/Column.pm:78:	$self->xtype(undef);
lib/RapidApp/Module/DatStor/Column.pm:79:	$self->tpl(undef);
lib/RapidApp/Module/DatStor/Column.pm:82:	$self->{renderer}= jsfunc($new);
lib/RapidApp/Module/DatStor/Column.pm:92:	foreach my $sel (uniq(@{$new->{selections}})) {
lib/RapidApp/Module/DatStor/Column.pm:93:		push @value_list, [$sel->{value},$sel->{text},$sel->{iconCls}];
lib/RapidApp/Module/DatStor/Column.pm:94:		if(defined $sel->{value} and defined $sel->{text}) {
lib/RapidApp/Module/DatStor/Column.pm:95:			$val_to_disp{$sel->{value}} = $sel->{text};
lib/RapidApp/Module/DatStor/Column.pm:97:			$val_to_disp{$sel->{value}} = '<div class="with-icon ' . $sel->{iconCls} . '">' . $sel->{text} . '</div>'
lib/RapidApp/Module/DatStor/Column.pm:98:				if($sel->{iconCls});
lib/RapidApp/Module/DatStor/Column.pm:100:			$val_to_disp{$sel->{value}} = '<img src="_ra-rel-mnt_/assets/rapidapp/misc/static/s.gif" class="ra-icon-centered-16x16 ' . $sel->{iconCls} . '">'
lib/RapidApp/Module/DatStor/Column.pm:101:				if($sel->{iconCls} and jstrue($new->{render_icon_only}));
lib/RapidApp/Module/DatStor/Column.pm:106:	$first_val = $value_list[0]->[0] if (defined $value_list[0]);
lib/RapidApp/Module/DatStor/Column.pm:116:	$self->{renderer} = jsfunc($js,$self->{renderer});
lib/RapidApp/Module/DatStor/Column.pm:119:	my $orig_value = ref($self->{editor}) eq 'HASH' ? $self->{editor}->{value} : undef;
lib/RapidApp/Module/DatStor/Column.pm:121:  # Update: removed extra, not-needed check of 'allow_edit' param (fixes Github Issue #35)
lib/RapidApp/Module/DatStor/Column.pm:123:  my $mode = $new->{mode} || 'combo';
lib/RapidApp/Module/DatStor/Column.pm:126:    $self->{editor} = {
lib/RapidApp/Module/DatStor/Column.pm:127:      xtype => 'ra-icon-combo',
lib/RapidApp/Module/DatStor/Column.pm:134:    $self->{editor} = {
lib/RapidApp/Module/DatStor/Column.pm:135:      xtype => 'menu-field',
lib/RapidApp/Module/DatStor/Column.pm:143:    $self->{editor}->{header} = $new->{header} || $self->header;
lib/RapidApp/Module/DatStor/Column.pm:144:    delete $self->{editor}->{header} unless (
lib/RapidApp/Module/DatStor/Column.pm:145:      defined $self->{editor}->{header} and
lib/RapidApp/Module/DatStor/Column.pm:146:      $self->{editor}->{header} ne ''
lib/RapidApp/Module/DatStor/Column.pm:152:    $self->{editor} = {
lib/RapidApp/Module/DatStor/Column.pm:153:      xtype => 'cycle-field',
lib/RapidApp/Module/DatStor/Column.pm:163:    die "menu_select_editor: Invalid mode '$mode' - must be 'combo', 'menu' or 'cycle'"
lib/RapidApp/Module/DatStor/Column.pm:167:  $self->{editor}->{value} = $orig_value if (defined $orig_value);
lib/RapidApp/Module/DatStor/Column.pm:169:  $self->{editor}->{width} = $new->{width} if ($new->{width});
lib/RapidApp/Module/DatStor/Column.pm:179:	$self->{renderer} = jsfunc($self->{renderer}) if (defined $self->{renderer} and not blessed $self->{renderer});
lib/RapidApp/Module/DatStor/Column.pm:183:		$t and $self->$t($self->{$_});
lib/RapidApp/Module/DatStor/Column.pm:185:	$self->apply_defaults;
lib/RapidApp/Module/DatStor/Column.pm:191:	my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor/Column.pm:193:  # Ignore attribute names which start with underscore (_) -- backcompat fix for special
lib/RapidApp/Module/DatStor/Column.pm:199:		$self->$attr($new{$attr});
lib/RapidApp/Module/DatStor/Column.pm:210:  $self->_normalize_allow_add_edit
lib/RapidApp/Module/DatStor/Column.pm:215:	my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor/Column.pm:217:  # Ignore attribute names which start with underscore (_) -- backcompat fix for special
lib/RapidApp/Module/DatStor/Column.pm:223:		$self->$attr($new{$attr}) unless defined $self->{$attr}; # <-- only set attrs that aren't already set
lib/RapidApp/Module/DatStor/Column.pm:234:  $self->_normalize_allow_add_edit
lib/RapidApp/Module/DatStor/Column.pm:237:## -----
lib/RapidApp/Module/DatStor/Column.pm:246:  $self->no_column(${$self->{no_column}}) if (ref $self->{no_column}); # consistent 0/1
lib/RapidApp/Module/DatStor/Column.pm:247:  $self->no_column(0) unless ($self->no_column);
lib/RapidApp/Module/DatStor/Column.pm:249:  $self->_normalize_allow_edit;
lib/RapidApp/Module/DatStor/Column.pm:250:  $self->allow_edit(${$self->{allow_edit}}) if (ref $self->{allow_edit});
lib/RapidApp/Module/DatStor/Column.pm:252:  $self->_normalize_allow_add;
lib/RapidApp/Module/DatStor/Column.pm:253:  $self->allow_add(${$self->{allow_add}})   if (ref $self->{allow_add});
lib/RapidApp/Module/DatStor/Column.pm:255:  $self->_normalize_allow_view;
lib/RapidApp/Module/DatStor/Column.pm:256:  $self->allow_view(${$self->{allow_view}}) if (ref $self->{allow_view});
lib/RapidApp/Module/DatStor/Column.pm:263:  # if its already set - and turned off - we're done:
lib/RapidApp/Module/DatStor/Column.pm:264:  return if (exists $self->{allow_edit} && !jstrue($self->{allow_edit}));
lib/RapidApp/Module/DatStor/Column.pm:267:  $self->{_allow_edit_init_unset} = 1 unless (exists $self->{allow_edit});
lib/RapidApp/Module/DatStor/Column.pm:272:       ! $self->{editor}
lib/RapidApp/Module/DatStor/Column.pm:273:    || ( $self->no_column && $self->{_allow_edit_init_unset} )
lib/RapidApp/Module/DatStor/Column.pm:276:  $self->allow_edit( $no_edit ? 0 : 1 )
lib/RapidApp/Module/DatStor/Column.pm:282:  # if its already set - and turned off - we're done:
lib/RapidApp/Module/DatStor/Column.pm:283:  return if (exists $self->{allow_add} && !jstrue($self->{allow_add}));
lib/RapidApp/Module/DatStor/Column.pm:285:  $self->{_allow_add_init_unset} = 1 unless (exists $self->{allow_add});
lib/RapidApp/Module/DatStor/Column.pm:288:  return $self->allow_add(0) if(
lib/RapidApp/Module/DatStor/Column.pm:289:       ! exists $self->{allow_add} 
lib/RapidApp/Module/DatStor/Column.pm:290:    && ! $self->allow_edit
lib/RapidApp/Module/DatStor/Column.pm:291:    && ! $self->{_allow_edit_init_unset}
lib/RapidApp/Module/DatStor/Column.pm:297:       ! $self->{editor}
lib/RapidApp/Module/DatStor/Column.pm:298:    || ( $self->no_column && ! $self->allow_edit && $self->{_allow_add_init_unset} )
lib/RapidApp/Module/DatStor/Column.pm:301:  $self->allow_add( $no_add ? 0 : 1 )
lib/RapidApp/Module/DatStor/Column.pm:307:  # if its already set - and turned off - we're done:
lib/RapidApp/Module/DatStor/Column.pm:308:  return if (exists $self->{allow_view} && !jstrue($self->{allow_view}));
lib/RapidApp/Module/DatStor/Column.pm:311:  $self->{_allow_view_init_unset} = 1 unless (exists $self->{allow_view});
lib/RapidApp/Module/DatStor/Column.pm:314:  #my $deny_edit = (! $self->allow_edit && ! $self->{_allow_edit_init_unset});
lib/RapidApp/Module/DatStor/Column.pm:319:     $self->no_column && $self->{_allow_view_init_unset} 
lib/RapidApp/Module/DatStor/Column.pm:322:  $self->allow_view( $no_view ? 0 : 1 )
lib/RapidApp/Module/DatStor/Column.pm:325:## -----
lib/RapidApp/Module/DatStor/Column.pm:330:	return { map { defined($self->{$_})? ($_ => $self->{$_}) : () } @gridColParams };
lib/RapidApp/Module/DatStor/Column.pm:335:	%{ $self->{field_readonly_config} }= %{ $self->{field_readonly_config} }, (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor/Column.pm:340:	return $self->{field_readonly_config}{$_[0]};
lib/RapidApp/Module/DatStor/Column.pm:345:	return exists $self->{field_readonly_config}{$_[0]};
lib/RapidApp/Module/DatStor/Column.pm:350:	return 0 == (keys %{ $self->{field_readonly_config} });
lib/RapidApp/Module/DatStor/Column.pm:355:	delete $self->{field_readonly_config}{$_[0]};
lib/RapidApp/Module/DatStor/Column.pm:360:	%{ $self->{field_config} }= %{ $self->{field_config} }, (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/DatStor/Column.pm:364:	return $self->{field_config}{$_[0]};
lib/RapidApp/Module/DatStor/Column.pm:369:	return exists $self->{field_config}{$_[0]};
lib/RapidApp/Module/DatStor/Column.pm:373:	return 0 == (keys %{ $self->{field_config} });
lib/RapidApp/Module/DatStor/Column.pm:378:	delete $self->{field_config}{$_[0]};
lib/RapidApp/Module/DatStor/Column.pm:384:	my $config = $self->field_config;
lib/RapidApp/Module/DatStor/Column.pm:385:	$config = $self->editor if ($self->editor);
lib/RapidApp/Module/DatStor/Column.pm:388:		name		=> $self->name,
lib/RapidApp/Module/DatStor/Column.pm:392:	$cnf = { %$cnf, %{$self->field_readonly_config} } if ($self->field_readonly);
lib/RapidApp/Module/DatStor/Column.pm:394:	$self->field_cmp_config($cnf);
lib/RapidApp/Module/DbicCombo.pm:17:# We don't need datastore-plus because we're not a CRUD interface, etc...
lib/RapidApp/Module/DbicCombo.pm:33:has 'type_filter', is => 'ro', isa => 'Bool', lazy => 1, default => sub{ (shift)->user_editable };
lib/RapidApp/Module/DbicCombo.pm:46:will be auto-completed in the box. This only makes sense when type_filter is on and will auto enable 
lib/RapidApp/Module/DbicCombo.pm:57:has 'filter_match_start', is => 'ro', isa => 'Bool', lazy => 1, default => sub{ (shift)->auto_complete };
lib/RapidApp/Module/DbicCombo.pm:62:  my $Source = $self->ResultSet->result_source;
lib/RapidApp/Module/DbicCombo.pm:63:  $Source->schema->class($Source->source_name);
lib/RapidApp/Module/DbicCombo.pm:71:  $self->delete_extconfig_param('width');
lib/RapidApp/Module/DbicCombo.pm:74:  $self->apply_extconfig(
lib/RapidApp/Module/DbicCombo.pm:75:    itemId         => $self->name . '_combo',
lib/RapidApp/Module/DbicCombo.pm:83:  $self->apply_extconfig(
lib/RapidApp/Module/DbicCombo.pm:86:    minChars      => $self->min_type_filter_chars,
lib/RapidApp/Module/DbicCombo.pm:88:    emptyClass    => 'field-empty-text',
lib/RapidApp/Module/DbicCombo.pm:90:                          '<div style="padding:5px;" class="field-empty-text">',
lib/RapidApp/Module/DbicCombo.pm:94:  ) if ($self->type_filter);
lib/RapidApp/Module/DbicCombo.pm:97:  $self->apply_extconfig(
lib/RapidApp/Module/DbicCombo.pm:99:  ) if ($self->auto_complete);
lib/RapidApp/Module/DbicCombo.pm:102:  $self->apply_extconfig(
lib/RapidApp/Module/DbicCombo.pm:107:    triggerClass     => 'x-form-search-trigger',
lib/RapidApp/Module/DbicCombo.pm:111:  ) if ($self->user_editable); 
lib/RapidApp/Module/DbicCombo.pm:117:  my $p = $self->c->req->params;
lib/RapidApp/Module/DbicCombo.pm:119:  delete $p->{type_filter_query} if ( $p->{type_filter_query} && (
lib/RapidApp/Module/DbicCombo.pm:121:    ! $self->type_filter ||
lib/RapidApp/Module/DbicCombo.pm:123:    $p->{type_filter_query} =~ /^\s*$/
lib/RapidApp/Module/DbicCombo.pm:128:    $self->record_pk,
lib/RapidApp/Module/DbicCombo.pm:129:    $self->valueField,
lib/RapidApp/Module/DbicCombo.pm:130:    $self->displayField
lib/RapidApp/Module/DbicCombo.pm:134:  my $Rs = $self->ResultSet->search_rs(undef,{
lib/RapidApp/Module/DbicCombo.pm:135:    select => [map {$self->_resolve_select($_)} @cols],
lib/RapidApp/Module/DbicCombo.pm:140:  $Rs = $Rs->search_rs(
lib/RapidApp/Module/DbicCombo.pm:141:    $self->RS_condition,
lib/RapidApp/Module/DbicCombo.pm:142:    $self->RS_attr
lib/RapidApp/Module/DbicCombo.pm:146:  $Rs = $Rs->search_rs(undef,{
lib/RapidApp/Module/DbicCombo.pm:148:      '-asc' => $self->_resolve_select($self->displayField) 
lib/RapidApp/Module/DbicCombo.pm:150:  }) unless (exists $Rs->{attrs}{order_by});
lib/RapidApp/Module/DbicCombo.pm:152:  # And set a fail-safe max number of rows:
lib/RapidApp/Module/DbicCombo.pm:153:  $Rs = $Rs->search_rs(undef,{ rows => 500 }) unless (exists $Rs->{attrs}{rows});
lib/RapidApp/Module/DbicCombo.pm:156:  $Rs = $Rs->search_rs(
lib/RapidApp/Module/DbicCombo.pm:157:    $self->_like_type_filter_for($p->{type_filter_query})
lib/RapidApp/Module/DbicCombo.pm:158:  ) if ($p->{type_filter_query});
lib/RapidApp/Module/DbicCombo.pm:161:  $Rs = $Rs->AppComboRs if ($Rs->can('AppComboRs'));
lib/RapidApp/Module/DbicCombo.pm:164:    ->search_rs(undef, { result_class => 'DBIx::Class::ResultClass::HashRefInflator' })
lib/RapidApp/Module/DbicCombo.pm:165:    ->all
lib/RapidApp/Module/DbicCombo.pm:169:  $rows = $self->_apply_type_filter_row_order(
lib/RapidApp/Module/DbicCombo.pm:170:    $rows,$p->{type_filter_query}
lib/RapidApp/Module/DbicCombo.pm:171:  ) if ($p->{type_filter_query});
lib/RapidApp/Module/DbicCombo.pm:179:  $self->_apply_valueqry($rows,$p->{valueqry}) if (
lib/RapidApp/Module/DbicCombo.pm:180:    $p->{valueqry} &&
lib/RapidApp/Module/DbicCombo.pm:181:    ! $p->{type_filter_query}
lib/RapidApp/Module/DbicCombo.pm:196:    $_->{$self->record_pk} eq $valueqry
lib/RapidApp/Module/DbicCombo.pm:199:  my $Row = $self->ResultSet
lib/RapidApp/Module/DbicCombo.pm:200:    ->search_rs({ join('.','me',$self->record_pk) => { '=' => $valueqry }})
lib/RapidApp/Module/DbicCombo.pm:201:    ->first
lib/RapidApp/Module/DbicCombo.pm:204:  unshift @$rows, { $Row->get_columns };
lib/RapidApp/Module/DbicCombo.pm:210:  $self->{_resolve_select_cache}{$col} ||= do {
lib/RapidApp/Module/DbicCombo.pm:211:    my $Source = $self->ResultSet->result_source;
lib/RapidApp/Module/DbicCombo.pm:212:    my $class = $Source->schema->class($Source->source_name);
lib/RapidApp/Module/DbicCombo.pm:213:    $class->can('has_virtual_column') && $class->has_virtual_column($col)
lib/RapidApp/Module/DbicCombo.pm:214:      ? $class->_virtual_column_select($col)
lib/RapidApp/Module/DbicCombo.pm:225:  my $like_arg = $self->filter_match_start 
lib/RapidApp/Module/DbicCombo.pm:226:    ? join('',    $str,'%')  # <-- start of the column
lib/RapidApp/Module/DbicCombo.pm:227:    : join('','%',$str,'%'); # <-- anywhere in the column
lib/RapidApp/Module/DbicCombo.pm:229:  my $sel = $self->_resolve_select($self->displayField);
lib/RapidApp/Module/DbicCombo.pm:231:  my $sm = $self->ResultSet->result_source->schema->storage->sql_maker;
lib/RapidApp/Module/DbicCombo.pm:248:  $str = lc($str); # case-insensitive
lib/RapidApp/Module/DbicCombo.pm:251:    exists $row->{$self->displayField} or die "Bad data -- row doesn't contain displayField key";
lib/RapidApp/Module/DbicCombo.pm:253:    my $dval = lc($row->{$self->displayField}); # case-insensitive
lib/RapidApp/Module/DbicDV.pm:22:  my $title  = $self->ResultClass->TableSpec_get_conf('title');
lib/RapidApp/Module/DbicDV.pm:23:  my $titles = $self->ResultClass->TableSpec_get_conf('title_multi');
lib/RapidApp/Module/DbicDV.pm:25:  $self->apply_extconfig(
lib/RapidApp/Module/DbicDV.pm:27:    itemSelector => 'div.ra-appdv-item-select',
lib/RapidApp/Module/DbicDV.pm:30:    # -- allow the template content to set:
lib/RapidApp/Module/DbicDV.pm:35:    # --
lib/RapidApp/Module/DbicDV.pm:38:    cls => 'ra-ap-borders',
lib/RapidApp/Module/DbicDV.pm:44:        iconCls => 'ra-icon-add'
lib/RapidApp/Module/DbicDV.pm:48:        iconCls => 'ra-icon-application-form-edit'
lib/RapidApp/Module/DbicDV.pm:52:        iconCls => 'ra-icon-delete'
lib/RapidApp/Module/DbicDV.pm:56:        iconCls => 'x-tbar-loading'
lib/RapidApp/Module/DbicDV.pm:60:        iconCls => 'ra-icon-save-ok'
lib/RapidApp/Module/DbicDV.pm:64:        iconCls => 'ra-icon-arrow-undo'
lib/RapidApp/Module/DbicDV.pm:79:RapidApp::Module::DbicDV - DataView module for DBIC
lib/RapidApp/Module/DbicGrid.pm:17:# grid-toggle-edit-cells is loaded (which it is, by default)
lib/RapidApp/Module/DbicGrid.pm:23:  return $self->use_add_form && $self->open_record_url ? 1 : 0;
lib/RapidApp/Module/DbicGrid.pm:27:# Initial state for the total count toggle - See GitHub Issue #168
lib/RapidApp/Module/DbicGrid.pm:33:	if ($self->updatable_colspec) {
lib/RapidApp/Module/DbicGrid.pm:34:		$self->apply_extconfig( 
lib/RapidApp/Module/DbicGrid.pm:40:    $self->add_plugin('grid-toggle-edit-cells');
lib/RapidApp/Module/DbicGrid.pm:43:	$self->apply_extconfig(
lib/RapidApp/Module/DbicGrid.pm:47:    toggle_edit_cells_init_off => $self->toggle_edit_cells_init_off ? \1 : \0,
lib/RapidApp/Module/DbicGrid.pm:52:        text    => 'Add ' . $self->ResultClass->TableSpec_get_conf('title'),
lib/RapidApp/Module/DbicGrid.pm:53:        iconCls => 'ra-icon-add'
lib/RapidApp/Module/DbicGrid.pm:58:	$self->apply_default_tabtitle;
lib/RapidApp/Module/DbicGrid.pm:61:	push @{$self->always_fetch_columns}, $self->open_record_rest_key
lib/RapidApp/Module/DbicGrid.pm:62:		if ($self->open_record_rest_key);
lib/RapidApp/Module/DbicGrid.pm:68:	return try{$self->ResultClass->TableSpec_get_conf('rest_key_column')};
lib/RapidApp/Module/DbicGrid.pm:73:	# ---- apply default tab title and icon:
lib/RapidApp/Module/DbicGrid.pm:74:	my $class = $self->ResultClass;
lib/RapidApp/Module/DbicGrid.pm:76:	my $title = try{$class->TableSpec_get_conf('title_multi')} || try{$class->_table_name_safe};
lib/RapidApp/Module/DbicGrid.pm:78:	my $iconCls = try{$class->TableSpec_get_conf('multiIconCls')};
lib/RapidApp/Module/DbicGrid.pm:79:	$self->apply_extconfig( tabTitle => $title ) if ($title);
lib/RapidApp/Module/DbicGrid.pm:80:	$self->apply_extconfig( tabIconCls => $iconCls ) if ($iconCls);
lib/RapidApp/Module/DbicGrid.pm:81:	# ----
lib/RapidApp/Module/DbicGrid.pm:86:# that a given grid was followed from a multi-rel column, for instance
lib/RapidApp/Module/DbicGrid.pm:92:  my $ret = $self->$orig(@_);
lib/RapidApp/Module/DbicGrid.pm:94:  if($self->show_base_conditions_in_header) {
lib/RapidApp/Module/DbicGrid.pm:95:    my $bP = try{$ret->{store}->parm->{baseParams}} || {};
lib/RapidApp/Module/DbicGrid.pm:96:    if ($bP->{resultset_condition}) {
lib/RapidApp/Module/DbicGrid.pm:97:      my $cls = 'blue-text';
lib/RapidApp/Module/DbicGrid.pm:98:      $ret->{tabTitleCls} = $cls;
lib/RapidApp/Module/DbicGrid.pm:99:      $ret->{headerCfg} ||= {
lib/RapidApp/Module/DbicGrid.pm:101:        cls   => 'panel-borders ra-footer',
lib/RapidApp/Module/DbicGrid.pm:106:          $bP->{resultset_condition},'</i>'
lib/RapidApp/Module/DbicGrid.pm:110:    elsif($bP->{rs_path} && $bP->{rs_method}){
lib/RapidApp/Module/DbicGrid.pm:111:      my ($pth,$ourPth) = ($bP->{rs_path},$self->module_path);
lib/RapidApp/Module/DbicGrid.pm:115:      $pth =~ s/^${1}//; #<-- make the path relative to us for nice display
lib/RapidApp/Module/DbicGrid.pm:117:      my $cls = 'blue-text';
lib/RapidApp/Module/DbicGrid.pm:118:      $ret->{tabTitleCls} = $cls;
lib/RapidApp/Module/DbicGrid.pm:119:      $ret->{headerCfg} ||= {
lib/RapidApp/Module/DbicGrid.pm:121:        cls => 'panel-borders ra-footer',
lib/RapidApp/Module/DbicGrid.pm:126:          $pth,']: ',$bP->{rs_method},'</i>'
lib/RapidApp/Module/DbicGrid.pm:139:#### --------------------- ####
lib/RapidApp/Module/DbicGrid.pm:143:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/DbicNavTree.pm:22:  die "Must supply either 'dbic_models' or 'dbic_model_tree'" unless ($self->dbic_models);
lib/RapidApp/Module/DbicNavTree.pm:23:  my $list = parse_dbic_model_list($self->app,@{$self->dbic_models});
lib/RapidApp/Module/DbicNavTree.pm:27:    my $Model = $self->app->model($itm->{model});
lib/RapidApp/Module/DbicNavTree.pm:28:    die "Error: model '$itm->{model}' is not a Catalyst::Model::DBIC::Schema"
lib/RapidApp/Module/DbicNavTree.pm:29:      unless ($Model->isa('Catalyst::Model::DBIC::Schema'));
lib/RapidApp/Module/DbicNavTree.pm:32:      "  WARNING: using DBIC model '$itm->{model}' without 'quote_names' enabled.",
lib/RapidApp/Module/DbicNavTree.pm:35:    ) unless ($Model->connect_info->{quote_names} || $ENV{RAPIDAPP_ISSUE99_IGNORE});
lib/RapidApp/Module/DbicNavTree.pm:40:    my $mdl_cfg = $self->configs->{$itm->{model}} || {};
lib/RapidApp/Module/DbicNavTree.pm:41:    my $exclude_sources = $mdl_cfg->{exclude_sources} || [];
lib/RapidApp/Module/DbicNavTree.pm:43:    @{$itm->{sources}} = grep { ! $excl_sources{$_} } @{$itm->{sources}};
lib/RapidApp/Module/DbicNavTree.pm:44:    my $lim = $mdl_cfg->{limit_sources} ? {map{$_=>1} @{$mdl_cfg->{limit_sources}}} : undef;
lib/RapidApp/Module/DbicNavTree.pm:46:      @{$itm->{sources}} = grep { $lim->{$_} } @{$itm->{sources}};
lib/RapidApp/Module/DbicNavTree.pm:57:  foreach my $hash (@{$self->dbic_model_tree}) {
lib/RapidApp/Module/DbicNavTree.pm:58:    push @list, map { $hash->{model} . '::' . $_ } @{$hash->{sources}};
lib/RapidApp/Module/DbicNavTree.pm:74:    my $Model = $c->model($model) or die "No such model '$model'";
lib/RapidApp/Module/DbicNavTree.pm:77:    if($Model->isa('DBIx::Class::ResultSet')){
lib/RapidApp/Module/DbicNavTree.pm:83:    my $M = $c->model($schema) or die "No such model '$schema'";
lib/RapidApp/Module/DbicNavTree.pm:85:      unless ($M->can('schema'));
lib/RapidApp/Module/DbicNavTree.pm:96:    my @results = $result ? ($result) : $M->schema->sources;
lib/RapidApp/Module/DbicNavTree.pm:107:  Module::Runtime::require_module($self->table_class);
lib/RapidApp/Module/DbicNavTree.pm:111:  $self->apply_extconfig( require_role => $self->menu_require_role ) if (
lib/RapidApp/Module/DbicNavTree.pm:112:    ! $self->require_role &&
lib/RapidApp/Module/DbicNavTree.pm:113:    $self->menu_require_role
lib/RapidApp/Module/DbicNavTree.pm:117:  $self->TreeConfig;
lib/RapidApp/Module/DbicNavTree.pm:125:  for my $s (@{$self->dbic_model_tree}) {
lib/RapidApp/Module/DbicNavTree.pm:126:    my $model = $s->{model};
lib/RapidApp/Module/DbicNavTree.pm:127:    my $schema = $self->app->model($model)->schema;
lib/RapidApp/Module/DbicNavTree.pm:129:    my $require_role = $self->require_role || try{$self->configs->{$model}{require_role}};
lib/RapidApp/Module/DbicNavTree.pm:130:    my $menu_req_role = $require_role || $self->menu_require_role;
lib/RapidApp/Module/DbicNavTree.pm:133:    for my $source (sort @{$s->{sources}}) {
lib/RapidApp/Module/DbicNavTree.pm:134:      my $Source = $schema->source($source) or die "Source $source not found!";
lib/RapidApp/Module/DbicNavTree.pm:136:      my $cust_def_config = try{$self->configs->{$model}{grid_params}{'*defaults'}} || {};
lib/RapidApp/Module/DbicNavTree.pm:137:      my $cust_config = try{$self->configs->{$model}{grid_params}{$source}} || {};
lib/RapidApp/Module/DbicNavTree.pm:143:      my $grid_class = $cust_merged->{grid_class} ? delete $cust_merged->{grid_class} :
lib/RapidApp/Module/DbicNavTree.pm:144:        try{$self->configs->{$model}{grid_class}} || $self->table_class;
lib/RapidApp/Module/DbicNavTree.pm:146:      #my $table = $Source->schema->class($Source->source_name)->table;
lib/RapidApp/Module/DbicNavTree.pm:147:      #$table = (split(/\./,$table,2))[1] || $table; #<-- get 'table' for both 'db.table' and 'table' format
lib/RapidApp/Module/DbicNavTree.pm:150:      $self->apply_init_modules( $module_name => {
lib/RapidApp/Module/DbicNavTree.pm:160:      my $class = $schema->class($source);
lib/RapidApp/Module/DbicNavTree.pm:161:      my $text = $class->TableSpec_get_conf('title_multi') || $source;
lib/RapidApp/Module/DbicNavTree.pm:162:      my $iconCls = $class->TableSpec_get_conf('multiIconCls') || 'ra-icon-application-view-detail';
lib/RapidApp/Module/DbicNavTree.pm:176:    my $exclude_sources = try{$self->configs->{$model}{exclude_sources}} || [];
lib/RapidApp/Module/DbicNavTree.pm:177:    my $expand = (try{$self->configs->{$model}{expand}}) ? 1 : 0;
lib/RapidApp/Module/DbicNavTree.pm:178:    my $text = (try{$self->configs->{$model}{text}}) || $model;
lib/RapidApp/Module/DbicNavTree.pm:179:    my $template = try{$self->configs->{$model}{template}};
lib/RapidApp/Module/DbicNavTree.pm:182:    my $dbd_driver = $schema->storage->dbh->{Driver}->{Name} || '';
lib/RapidApp/Module/DbicNavTree.pm:183:    my $iconcls = (try{$self->configs->{$model}{iconCls}}) || (
lib/RapidApp/Module/DbicNavTree.pm:185:      ? 'ra-icon-page-white-database' 
lib/RapidApp/Module/DbicNavTree.pm:186:      : 'ra-icon-server-database'
lib/RapidApp/Module/DbicNavTree.pm:191:    $self->apply_init_modules( $module_name => {
lib/RapidApp/Module/DbicNavTree.pm:194:        Schema => $self->app->model($model)->schema,
lib/RapidApp/Module/DbicNavTree.pm:222:#### --------------------- ####
lib/RapidApp/Module/DbicNavTree.pm:226:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/DbicPropPage.pm:17:# -- these aren't working... why ?
lib/RapidApp/Module/DbicPropPage.pm:20:# --
lib/RapidApp/Module/DbicPropPage.pm:25:	return { map {$_=>1} @{$self->exclude_grids_relationships} };
lib/RapidApp/Module/DbicPropPage.pm:43:	$self->apply_extconfig(
lib/RapidApp/Module/DbicPropPage.pm:50:	$self->set_default_tab_icon;
lib/RapidApp/Module/DbicPropPage.pm:52:	$self->init_multi_rel_modules;
lib/RapidApp/Module/DbicPropPage.pm:54:	$self->add_ONCONTENT_calls('apply_items_config');
lib/RapidApp/Module/DbicPropPage.pm:62:	my $class = $self->ResultClass or return;
lib/RapidApp/Module/DbicPropPage.pm:63:	my $iconCls = $class->TableSpec_get_conf('iconCls') or return;
lib/RapidApp/Module/DbicPropPage.pm:64:	$self->apply_extconfig( tabIconCls => $iconCls );
lib/RapidApp/Module/DbicPropPage.pm:72:	my $TableSpec = shift || $self->TableSpec;
lib/RapidApp/Module/DbicPropPage.pm:74:	#print STDERR RED . 'init_multi_rel_modules: ' . $TableSpec->relspec_prefix . CLEAR . "\n\n";
lib/RapidApp/Module/DbicPropPage.pm:76:	foreach my $rel (@{$TableSpec->related_TableSpec_order}) {
lib/RapidApp/Module/DbicPropPage.pm:78:		my $RelTS = $TableSpec->related_TableSpec->{$rel};
lib/RapidApp/Module/DbicPropPage.pm:81:		$self->init_multi_rel_modules($RelTS);
lib/RapidApp/Module/DbicPropPage.pm:83:		my $info = $TableSpec->ResultSource->relationship_info($rel);
lib/RapidApp/Module/DbicPropPage.pm:84:		next unless ($info->{attrs}->{accessor} eq 'multi');
lib/RapidApp/Module/DbicPropPage.pm:86:		my $cond_data = RapidApp::DBIC::Component::TableSpec->parse_relationship_cond($info->{cond});
lib/RapidApp/Module/DbicPropPage.pm:88:		my $Source = $TableSpec->ResultSource->related_source($rel);
lib/RapidApp/Module/DbicPropPage.pm:90:		my $mod_name = 'rel_' . $RelTS->column_prefix . $rel;
lib/RapidApp/Module/DbicPropPage.pm:93:			include_colspec => $RelTS->include_colspec->init_colspecs,
lib/RapidApp/Module/DbicPropPage.pm:94:			updatable_colspec => $RelTS->updatable_colspec->init_colspecs
lib/RapidApp/Module/DbicPropPage.pm:97:		my $colname = $TableSpec->column_prefix . $rel;
lib/RapidApp/Module/DbicPropPage.pm:102:		if ($self->TableSpec->colspec_matches_columns($self->TableSpec->updatable_colspec->colspecs,$colname)){
lib/RapidApp/Module/DbicPropPage.pm:103:			$mod_params->{creatable_colspec} = [ @{$RelTS->updatable_colspec->colspecs} ];
lib/RapidApp/Module/DbicPropPage.pm:104:			$mod_params->{destroyable_relspec} = ['*'];
lib/RapidApp/Module/DbicPropPage.pm:105:			delete $mod_params->{creatable_colspec} unless (@{$mod_params->{creatable_colspec}} > 0);
lib/RapidApp/Module/DbicPropPage.pm:108:			if($mod_params->{creatable_colspec}) {
lib/RapidApp/Module/DbicPropPage.pm:109:				push @{$mod_params->{creatable_colspec}}, $cond_data->{foreign};
lib/RapidApp/Module/DbicPropPage.pm:110:				push @{$mod_params->{include_colspec}}, $cond_data->{foreign};
lib/RapidApp/Module/DbicPropPage.pm:113:				push @{$mod_params->{updatable_colspec}}, '!' . $cond_data->{foreign};
lib/RapidApp/Module/DbicPropPage.pm:117:		$mod_params->{ResultSource} = $Source;
lib/RapidApp/Module/DbicPropPage.pm:119:		$self->apply_init_modules( $mod_name => {
lib/RapidApp/Module/DbicPropPage.pm:130:	my $Row = $self->req_Row or return;
lib/RapidApp/Module/DbicPropPage.pm:131:	$self->apply_extconfig( items => [ $self->full_property_grid ] );
lib/RapidApp/Module/DbicPropPage.pm:133:	# 'tabPath' - unfinished feature
lib/RapidApp/Module/DbicPropPage.pm:134:	#my $path = try{$Row->getRestPath} or return;
lib/RapidApp/Module/DbicPropPage.pm:135:	#$self->apply_extconfig( tabPath => $path );
lib/RapidApp/Module/DbicPropPage.pm:140:	return $self->full_property_grid(1);
lib/RapidApp/Module/DbicPropPage.pm:150:	my @items = $self->TableSpec_property_grids($self->TableSpec,$self->req_Row,$real_columns);
lib/RapidApp/Module/DbicPropPage.pm:153:	# -- for performance, delete all the remaining columns that don't exist for
lib/RapidApp/Module/DbicPropPage.pm:156:	#my @delete_columns = grep { !$real_indx{$_} } keys %{$self->columns};
lib/RapidApp/Module/DbicPropPage.pm:157:	#$self->delete_columns(@delete_columns);
lib/RapidApp/Module/DbicPropPage.pm:158:	# --
lib/RapidApp/Module/DbicPropPage.pm:169:	my $title = $TableSpec->relspec_prefix;
lib/RapidApp/Module/DbicPropPage.pm:170:	$title = $self->TableSpec->name . '.' . $title unless ($title eq '');
lib/RapidApp/Module/DbicPropPage.pm:171:	$title = $self->TableSpec->name if ($title eq '');
lib/RapidApp/Module/DbicPropPage.pm:173:	my $cnftitle = $TableSpec->get_Cnf($parm);
lib/RapidApp/Module/DbicPropPage.pm:174:	$title = $cnftitle . ' (' . $title . ')' unless ($TableSpec->name eq $cnftitle);
lib/RapidApp/Module/DbicPropPage.pm:185:	my $Row = shift || $self->req_Row;
lib/RapidApp/Module/DbicPropPage.pm:190:	return $self->not_found_content unless ($Row);
lib/RapidApp/Module/DbicPropPage.pm:192:	my %cols = map { $_->{name} => $_ } @{ $self->column_list };
lib/RapidApp/Module/DbicPropPage.pm:194:	my @colnames = $TableSpec->local_column_names;
lib/RapidApp/Module/DbicPropPage.pm:198:  @colnames = grep { $s{$_} } uniq(@{ $self->column_order }, @colnames);
lib/RapidApp/Module/DbicPropPage.pm:203:	## -- Filter out non-existant relationship columns:
lib/RapidApp/Module/DbicPropPage.pm:205:	#	exists $TableSpec->related_TableSpec->{$_} ?
lib/RapidApp/Module/DbicPropPage.pm:206:	#		$Row->can($_) ? $Row->$_ ? 1 : 0 
lib/RapidApp/Module/DbicPropPage.pm:210:	## --
lib/RapidApp/Module/DbicPropPage.pm:218:	my $icon = $TableSpec->get_Cnf('singleIconCls');
lib/RapidApp/Module/DbicPropPage.pm:222:	my $visible = scalar grep { ! jstrue $_->{no_column} } @$fields;
lib/RapidApp/Module/DbicPropPage.pm:224:	push @items, { xtype => 'spacer', height => 5 }, $self->property_grid($TableSpec,$icon,$fields) 
lib/RapidApp/Module/DbicPropPage.pm:229:	foreach my $rel (@{$TableSpec->related_TableSpec_order}) {
lib/RapidApp/Module/DbicPropPage.pm:231:		next if ($self->exclude_grids_relationships_map->{$rel});
lib/RapidApp/Module/DbicPropPage.pm:235:		my $relRow = $Row->$rel;# or next;
lib/RapidApp/Module/DbicPropPage.pm:237:		my %ucrls = map {$_=>1} @{$self->update_create_rels};
lib/RapidApp/Module/DbicPropPage.pm:239:			($relRow && $relRow->isa('DBIx::Class::Row')) or
lib/RapidApp/Module/DbicPropPage.pm:243:			push @items, $self->TableSpec_property_grids(
lib/RapidApp/Module/DbicPropPage.pm:244:				$TableSpec->related_TableSpec->{$rel},
lib/RapidApp/Module/DbicPropPage.pm:252:		elsif($relRow->isa('DBIx::Class::ResultSet') and ($self->setup_multi_grids || $ONLY_MULTI_GRIDS)) {
lib/RapidApp/Module/DbicPropPage.pm:254:			my $RelTS = $TableSpec->related_TableSpec->{$rel};
lib/RapidApp/Module/DbicPropPage.pm:256:			my $info = $Row->result_source->relationship_info($rel);
lib/RapidApp/Module/DbicPropPage.pm:257:			next unless ($info->{attrs}->{accessor} eq 'multi'); #<-- should be redundant
lib/RapidApp/Module/DbicPropPage.pm:258:			my $cond_data = RapidApp::DBIC::Component::TableSpec->parse_relationship_cond($info->{cond});
lib/RapidApp/Module/DbicPropPage.pm:260:			my $mod_name = 'rel_' . $RelTS->column_prefix . $rel;
lib/RapidApp/Module/DbicPropPage.pm:262:			my $cur = $self->Module($mod_name)->content;
lib/RapidApp/Module/DbicPropPage.pm:263:			push @{$cur->{plugins}}, 'grid-autoheight', 'titlecollapseplus';
lib/RapidApp/Module/DbicPropPage.pm:273:				title => $self->TS_title($RelTS,'title_multi'),
lib/RapidApp/Module/DbicPropPage.pm:274:				#title => $RelTS->get_Cnf('title_multi') . ' (' . $rel . ')',
lib/RapidApp/Module/DbicPropPage.pm:275:				iconCls => $RelTS->get_Cnf('multiIconCls'),
lib/RapidApp/Module/DbicPropPage.pm:279:				viewConfig => { emptyText => '<span style="color:darkgrey;">(No&nbsp;' . $RelTS->get_Cnf('title_multi') . ')</span>' },
lib/RapidApp/Module/DbicPropPage.pm:283:					resultset_condition => $self->json->encode({ 'me.' . $cond_data->{foreign} => $Row->get_column($cond_data->{self}) })
lib/RapidApp/Module/DbicPropPage.pm:286:					$cond_data->{foreign} => $Row->get_column($cond_data->{self})
lib/RapidApp/Module/DbicPropPage.pm:306:	my $title = $self->TS_title($TableSpec);
lib/RapidApp/Module/DbicPropPage.pm:308:	# -- Programatically remove the automatically appened relspec from the header
lib/RapidApp/Module/DbicPropPage.pm:312:	my $pre = $TableSpec->relspec_prefix;
lib/RapidApp/Module/DbicPropPage.pm:314:		$column->{header} or next;
lib/RapidApp/Module/DbicPropPage.pm:315:		$column->{header} =~ s/\s+\(${pre}\)$//;
lib/RapidApp/Module/DbicPropPage.pm:317:	# --
lib/RapidApp/Module/DbicPropPage.pm:322:		#bodyCssClass => 'sbl-panel-body-noborder',
lib/RapidApp/Module/DbicPropPage.pm:335:		store => $self->getStore_func,
lib/RapidApp/Module/DbicPropPage.pm:338:		sm => RapidApp::JSONFunc->new( func => 'new Ext.grid.RowSelectionModel', parm => {
lib/RapidApp/Module/DbicPropPage.pm:341:				beforerowselect => RapidApp::JSONFunc->new( raw => 1, func => 'function() { return false; }' )
lib/RapidApp/Module/DbicPropPage.pm:347:  $self->has_extconfig_param($_) and $conf->{$_} = 
lib/RapidApp/Module/DbicPropPage.pm:348:    $self->get_extconfig_param($_) for qw/loadMask store_autoLoad/;
lib/RapidApp/Module/DbicPropPage.pm:357:	my $id = $self->supplied_id;
lib/RapidApp/Module/DbicRowDV.pm:14:has 'selector_class', is => 'ro', isa => 'Str', default => 'ra-rowdv-select';
lib/RapidApp/Module/DbicRowDV.pm:21:  $self->apply_extconfig( 
lib/RapidApp/Module/DbicRowDV.pm:22:    itemSelector => join('.','div',$self->selector_class),
lib/RapidApp/Module/DbicRowDV.pm:25:  $self->_template_file; # init
lib/RapidApp/Module/DbicRowDV.pm:27:  $self->set_default_tab_icon; # same as DbicPropPage
lib/RapidApp/Module/DbicRowDV.pm:32:  my $class = $self->ResultClass or return;
lib/RapidApp/Module/DbicRowDV.pm:33:  my $iconCls = $class->TableSpec_get_conf('iconCls') or return;
lib/RapidApp/Module/DbicRowDV.pm:34:  $self->apply_extconfig( tabIconCls => $iconCls );
lib/RapidApp/Module/DbicRowDV.pm:39:  for my $path (split(/\:/,$self->tt_include_path)) {
lib/RapidApp/Module/DbicRowDV.pm:40:    my $File = file( $path, $self->template );
lib/RapidApp/Module/DbicRowDV.pm:41:    return $File if (-e $File);
lib/RapidApp/Module/DbicRowDV.pm:44:    "DbicRowDV: template '", $self->template,"' not found (looked in: '",
lib/RapidApp/Module/DbicRowDV.pm:45:    $self->tt_include_path,"')"
lib/RapidApp/Module/DbicRowDV.pm:55:      '<div class="' . $self->selector_class . '">',
lib/RapidApp/Module/DbicRowDV.pm:56:        $self->_template_file->slurp,
lib/RapidApp/Module/DbicRowDV.pm:65:    %{ $self->$orig(@args) },
lib/RapidApp/Module/DbicRowDV.pm:66:    Row => $self->req_Row
lib/RapidApp/Module/DbicRowDV.pm:77:RapidApp::Module::DbicRowDV - DataView module for a single DBIC Row
lib/RapidApp/Module/DbicRowDV.pm:122:This module provides a TT-driven html template for the "page" view of a DBIC source. It extends
lib/RapidApp/Module/DbicRowDV.pm:124:want a custom designed page for a row, with in-line editable columns, this is the module you want.
lib/RapidApp/Module/DbicRowDV.pm:140:The template can contain raw html. The read-only value of a given column can used inline by
lib/RapidApp/Module/DbicRowDV.pm:141:supplying the column name within curly-braces:
lib/RapidApp/Module/DbicRowDV.pm:150:to set the value in-place.
lib/RapidApp/Module/DbicSchemaGrid.pm:11:has '+auto_autosize_columns', default => 1; #<-- not working
lib/RapidApp/Module/DbicSchemaGrid.pm:19:  return (ref $self->Schema);
lib/RapidApp/Module/DbicSchemaGrid.pm:27:  $self->apply_columns( 
lib/RapidApp/Module/DbicSchemaGrid.pm:58:  $self->set_columns_order(0,qw(source table class columns rows));
lib/RapidApp/Module/DbicSchemaGrid.pm:60:  $self->apply_extconfig(
lib/RapidApp/Module/DbicSchemaGrid.pm:61:    tabTitle => $self->tabTitle,
lib/RapidApp/Module/DbicSchemaGrid.pm:66:  $self->apply_extconfig(tabIconCls => $self->tabIconCls) if ($self->tabIconCls);
lib/RapidApp/Module/DbicSchemaGrid.pm:84:  my @rows = $self->schema_source_rows;
lib/RapidApp/Module/DbicSchemaGrid.pm:96:    my $Source = $self->Schema->source($_);
lib/RapidApp/Module/DbicSchemaGrid.pm:97:    my $class = $self->Schema->class($_);
lib/RapidApp/Module/DbicSchemaGrid.pm:98:    my $url = try{$class->TableSpec_get_conf('open_url_multi')};
lib/RapidApp/Module/DbicSchemaGrid.pm:99:    my $table = $class->_table_name_safe;
lib/RapidApp/Module/DbicSchemaGrid.pm:105:      columns => (scalar $Source->columns),
lib/RapidApp/Module/DbicSchemaGrid.pm:106:      rows => $Source->resultset->count
lib/RapidApp/Module/DbicSchemaGrid.pm:109:  } $self->sources;
lib/RapidApp/Module/DbicSchemaGrid.pm:115:  my %excl_sources = map {$_=>1} @{$self->exclude_sources};
lib/RapidApp/Module/DbicSchemaGrid.pm:116:  return grep { ! $excl_sources{$_} } $self->Schema->sources;
lib/RapidApp/Module/DbicSchemaGrid.pm:120:#### --------------------- ####
lib/RapidApp/Module/DbicSchemaGrid.pm:124:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/DbicTmplPage.pm:23:    return $self->app->default_tt_include_path;
lib/RapidApp/Module/DbicTmplPage.pm:38:  $self->apply_extconfig(
lib/RapidApp/Module/DbicTmplPage.pm:45:  if($self->tabify_data) {
lib/RapidApp/Module/DbicTmplPage.pm:46:    $self->apply_init_modules( data_tab => {
lib/RapidApp/Module/DbicTmplPage.pm:47:      class => $self->data_tab_class,
lib/RapidApp/Module/DbicTmplPage.pm:50:        ResultSource => $self->ResultSource,
lib/RapidApp/Module/DbicTmplPage.pm:51:        #get_ResultSet => $self->get_ResultSet, 
lib/RapidApp/Module/DbicTmplPage.pm:52:        TableSpec => $self->TableSpec,
lib/RapidApp/Module/DbicTmplPage.pm:53:        include_colspec => $self->include_colspec,
lib/RapidApp/Module/DbicTmplPage.pm:54:        updatable_colspec => $self->updatable_colspec,
lib/RapidApp/Module/DbicTmplPage.pm:55:        allow_restful_queries => $self->allow_restful_queries,
lib/RapidApp/Module/DbicTmplPage.pm:56:        get_local_args => sub { $self->local_args },
lib/RapidApp/Module/DbicTmplPage.pm:57:        $self->persist_all_immediately ? (
lib/RapidApp/Module/DbicTmplPage.pm:60:          persist_immediately => $self->persist_immediately 
lib/RapidApp/Module/DbicTmplPage.pm:62:        %{ $self->data_tab_params },
lib/RapidApp/Module/DbicTmplPage.pm:66:          $o->apply_extconfig( autoScroll => \0 );
lib/RapidApp/Module/DbicTmplPage.pm:67:          $self->data_tab_params->{onBUILD}->($o) if (exists $self->data_tab_params->{onBUILD});
lib/RapidApp/Module/DbicTmplPage.pm:73:  $self->add_ONCONTENT_calls('apply_template');
lib/RapidApp/Module/DbicTmplPage.pm:78:  $self->apply_extconfig( html => $self->render_template );
lib/RapidApp/Module/DbicTmplPage.pm:83:  return { row => $self->req_Row };
lib/RapidApp/Module/DbicTmplPage.pm:91:  my $tt_vars = $self->get_TemplateData;
lib/RapidApp/Module/DbicTmplPage.pm:92:  my $tt_file = $self->tt_file;
lib/RapidApp/Module/DbicTmplPage.pm:94:  my $Template = Template->new({ INCLUDE_PATH => $self->tt_include_path });
lib/RapidApp/Module/DbicTmplPage.pm:95:  $Template->process($tt_file,$tt_vars,\$html_out)
lib/RapidApp/Module/DbicTmplPage.pm:96:    or die $Template->error . "  Template file: $tt_file";
lib/RapidApp/Module/DbicTmplPage.pm:106:  my $content = $self->$orig(@_);
lib/RapidApp/Module/DbicTmplPage.pm:108:  return $content unless ($self->tabify_data);
lib/RapidApp/Module/DbicTmplPage.pm:112:    deferredRender => \0, # <-- If this it true (default) it screws up grids in non-active tabs
lib/RapidApp/Module/DbicTmplPage.pm:118:        title => $content->{title} || $content->{tabTitle} || 'Main',
lib/RapidApp/Module/DbicTmplPage.pm:119:        iconCls => $content->{iconCls} || $content->{tabIconCls} || 'ra-icon-application-view-detail',
lib/RapidApp/Module/DbicTmplPage.pm:127:        %{ $self->Module('data_tab')->content },
lib/RapidApp/Module/DbicTmplPage.pm:129:        iconCls => 'ra-icon-database-table',
lib/RapidApp/Module/DbicTmplPage.pm:141:    bodyCssClass => 'x-panel-mc', #<-- same class as frame => \1
lib/RapidApp/Module/DbicTmplPage.pm:142:    bodyStyle => 'padding: 0;overflow-y:scroll;', #<-- override the 6px padding of x-panel-mc
lib/RapidApp/Module/DbicTmplPage.pm:146:  $wrap->{tabTitle} = $content->{tabTitle} if ($content->{tabTitle});
lib/RapidApp/Module/DbicTmplPage.pm:147:  $wrap->{tabIconCls} = $content->{tabIconCls} if ($content->{tabIconCls});
lib/RapidApp/Module/DbicTmplPage.pm:154:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/Explorer.pm:6:# ABSTRACT:  General-purpose 'Explorer' - nav tree with tab content
lib/RapidApp/Module/Explorer.pm:16:has 'right_footer', is => 'ro', lazy => 1, default => sub {(shift)->title};
lib/RapidApp/Module/Explorer.pm:17:has 'iconCls', is => 'ro',  default => 'ra-icon-server-database';
lib/RapidApp/Module/Explorer.pm:27:  die "either navtrees or navtree_class is required" unless ($self->navtree_class);
lib/RapidApp/Module/Explorer.pm:30:    class => $self->navtree_class,
lib/RapidApp/Module/Explorer.pm:31:    params => $self->navtree_params
lib/RapidApp/Module/Explorer.pm:59:  for my $cnf (@{$self->navtrees}) {
lib/RapidApp/Module/Explorer.pm:60:    my $name = $cnf->{module} or next;
lib/RapidApp/Module/Explorer.pm:61:    next if try{ $self->get_Module($name) };
lib/RapidApp/Module/Explorer.pm:62:    my $class = $cnf->{class} or die "Missing class name";
lib/RapidApp/Module/Explorer.pm:63:    my $params = $cnf->{params} || {};
lib/RapidApp/Module/Explorer.pm:67:    $self->apply_init_modules( $name => { class => $class, params => $params } );
lib/RapidApp/Module/Explorer.pm:70:  if ($self->dashboard_class) {
lib/RapidApp/Module/Explorer.pm:71:    Module::Runtime::require_module($self->dashboard_class);
lib/RapidApp/Module/Explorer.pm:72:    $self->apply_init_modules(
lib/RapidApp/Module/Explorer.pm:74:        class => $self->dashboard_class,
lib/RapidApp/Module/Explorer.pm:75:        params => $self->dashboard_params
lib/RapidApp/Module/Explorer.pm:80:  if ($self->page_viewer_class) {
lib/RapidApp/Module/Explorer.pm:81:    Module::Runtime::require_module($self->page_viewer_class);
lib/RapidApp/Module/Explorer.pm:82:    $self->apply_init_modules(
lib/RapidApp/Module/Explorer.pm:84:        class => $self->page_viewer_class,
lib/RapidApp/Module/Explorer.pm:85:        params => $self->page_viewer_params
lib/RapidApp/Module/Explorer.pm:96:  my $cnf = $self->$orig(@_);
lib/RapidApp/Module/Explorer.pm:99:    id      => 'explorer-id',
lib/RapidApp/Module/Explorer.pm:103:      $self->content_area,
lib/RapidApp/Module/Explorer.pm:104:      $self->navtree_area
lib/RapidApp/Module/Explorer.pm:111:<div class="ra-footer no-text-select"><div class="wrap">
lib/RapidApp/Module/Explorer.pm:115:      <a class="ra-icon-refresh-tiny ra-autopanel-reloader" title="Reload Interface">
lib/RapidApp/Module/Explorer.pm:116:        <span class="ra-autopanel-reloader">Reload Interface</span>
lib/RapidApp/Module/Explorer.pm:123:      } . $self->right_footer . q{
lib/RapidApp/Module/Explorer.pm:135:  return () if ($self->navtree_disabled);
lib/RapidApp/Module/Explorer.pm:139:    title    => $self->title,
lib/RapidApp/Module/Explorer.pm:140:    iconCls    => $self->iconCls,
lib/RapidApp/Module/Explorer.pm:144:    width  => $self->init_width,
lib/RapidApp/Module/Explorer.pm:158:      id => 'main-navtrees-container',
lib/RapidApp/Module/Explorer.pm:162:      items => $self->west_area_items
lib/RapidApp/Module/Explorer.pm:166:  $west->{collapsed} = \1 if ($self->navtree_load_collapsed);
lib/RapidApp/Module/Explorer.pm:169:  if($self->navtree_footer_template) {
lib/RapidApp/Module/Explorer.pm:172:      $html = $self->c->template_render(
lib/RapidApp/Module/Explorer.pm:173:        $self->navtree_footer_template
lib/RapidApp/Module/Explorer.pm:182:      bodyStyle => 'border-bottom: 0px;',
lib/RapidApp/Module/Explorer.pm:186:        cls => 'x-panel-body',
lib/RapidApp/Module/Explorer.pm:201:    $_->{module} ? $self->get_Module($_->{module})->allowed_content : $_
lib/RapidApp/Module/Explorer.pm:205:    ! $_->{menu_require_role} || $self->role_checker->($self->c,$_->{menu_require_role})
lib/RapidApp/Module/Explorer.pm:206:  } @{$self->navtrees};
lib/RapidApp/Module/Explorer.pm:216:    # main-load-target is looked for by RapidApp js functions:
lib/RapidApp/Module/Explorer.pm:217:    id => 'main-load-target',
lib/RapidApp/Module/Explorer.pm:220:    bodyCssClass    => 'sbl-panel-body-noborder',
lib/RapidApp/Module/Explorer.pm:223:  $cnf->{margins} = '3 3 3 3' if ($self->navtree_disabled);
lib/RapidApp/Module/Explorer.pm:227:    iconCls => 'ra-tab-icon-only-16px ra-icon-home',
lib/RapidApp/Module/Explorer.pm:234:  if ($self->dashboard_class) {
lib/RapidApp/Module/Explorer.pm:235:    $initTab->{autoLoad}{url} = $self->Module('dashboard')->base_url;
lib/RapidApp/Module/Explorer.pm:236:    $cnf->{initLoadTabs} = [$initTab];
lib/RapidApp/Module/Explorer.pm:238:  elsif ($self->dashboard_url) {
lib/RapidApp/Module/Explorer.pm:239:    $initTab->{autopanel_ignore_tabtitle} = \1;
lib/RapidApp/Module/Explorer.pm:240:    $initTab->{autoLoad}{url} = $self->dashboard_url;
lib/RapidApp/Module/Explorer.pm:241:    $cnf->{initLoadTabs} = [$initTab];
lib/RapidApp/Module/Explorer.pm:244:  $cnf->{tab_title_max_width} = $self->tab_title_max_width;
lib/RapidApp/Module/Explorer.pm:246:  return  RapidApp::JSONFunc->new(
lib/RapidApp/Module/Explorer.pm:254:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/ExtComponent.pm:17:    return $o->header_template ? $o->c->template_render(
lib/RapidApp/Module/ExtComponent.pm:18:      $o->header_template, 
lib/RapidApp/Module/ExtComponent.pm:19:      { c => $o->c, self => $o }
lib/RapidApp/Module/ExtComponent.pm:28:    return $o->footer_template ? $o->c->template_render(
lib/RapidApp/Module/ExtComponent.pm:29:      $o->footer_template, 
lib/RapidApp/Module/ExtComponent.pm:30:      { c => $o->c, self => $o }
lib/RapidApp/Module/ExtComponent.pm:51:  my $code = try{$self->app->config->{'Model::RapidApp'}{role_checker}} || sub {
lib/RapidApp/Module/ExtComponent.pm:52:    my $c = shift; #<-- expects CONTEXT object
lib/RapidApp/Module/ExtComponent.pm:59:    return $c && $c->can('check_any_user_role') ? $c->check_any_user_role(@_) : 1;
lib/RapidApp/Module/ExtComponent.pm:68:  #$self->add_plugin({ ptype => 'rappeventhandlers' });
lib/RapidApp/Module/ExtComponent.pm:71:  if(scalar(@{$self->plugins}) > 0) {
lib/RapidApp/Module/ExtComponent.pm:74:    @{$self->_build_plugins} = @{$self->plugins};
lib/RapidApp/Module/ExtComponent.pm:75:    $self->add_ONREQUEST_calls_early('_appcmp_enforce_build_plugins');
lib/RapidApp/Module/ExtComponent.pm:78:  $self->apply_extconfig( 
lib/RapidApp/Module/ExtComponent.pm:79:    require_role => $self->require_role
lib/RapidApp/Module/ExtComponent.pm:80:  ) if ($self->require_role);
lib/RapidApp/Module/ExtComponent.pm:82:  foreach my $attr ($self->meta->get_all_attributes) {
lib/RapidApp/Module/ExtComponent.pm:83:    $attr->_apply_ext_value($self) if ($attr->does('ExtProp'));
lib/RapidApp/Module/ExtComponent.pm:90:  my %curPlg = map {$_=>1} @{$self->plugins};
lib/RapidApp/Module/ExtComponent.pm:91:  $curPlg{$_} or $self->add_plugin($_) for (@{$self->_build_plugins});
lib/RapidApp/Module/ExtComponent.pm:97:  my $c = RapidApp->active_request_context;
lib/RapidApp/Module/ExtComponent.pm:100:    $self->role_checker and
lib/RapidApp/Module/ExtComponent.pm:101:    $self->require_role and
lib/RapidApp/Module/ExtComponent.pm:105:    $c->can('session') and $c->session and #<-- had to add this because 'session_is_valid' below
lib/RapidApp/Module/ExtComponent.pm:108:    $c->can('session_is_valid') and $c->session_is_valid and
lib/RapidApp/Module/ExtComponent.pm:109:    ! $self->role_checker->($c,$self->require_role)
lib/RapidApp/Module/ExtComponent.pm:116:  return $self->test_permission ? $self->content : ();
lib/RapidApp/Module/ExtComponent.pm:121:  $self->test_permission and return 1;
lib/RapidApp/Module/ExtComponent.pm:128:  $self->enforce_permission;
lib/RapidApp/Module/ExtComponent.pm:130:  # ---
lib/RapidApp/Module/ExtComponent.pm:134:  my $apply_extconfig = try{$self->c->stash->{apply_extconfig}};
lib/RapidApp/Module/ExtComponent.pm:135:  $self->apply_extconfig( %$apply_extconfig ) if (ref($apply_extconfig) eq 'HASH');
lib/RapidApp/Module/ExtComponent.pm:136:  # ---
lib/RapidApp/Module/ExtComponent.pm:138:  my $cnf = $self->get_complete_extconfig;
lib/RapidApp/Module/ExtComponent.pm:140:  my $header_html = $self->get_header_html->($self);
lib/RapidApp/Module/ExtComponent.pm:141:  $cnf->{headerCfg} = {
lib/RapidApp/Module/ExtComponent.pm:143:    cls => 'panel-borders',
lib/RapidApp/Module/ExtComponent.pm:147:  my $footer_html = $self->get_footer_html->($self);
lib/RapidApp/Module/ExtComponent.pm:148:  $cnf->{footerCfg} = {
lib/RapidApp/Module/ExtComponent.pm:150:    cls => 'panel-borders',
lib/RapidApp/Module/ExtComponent.pm:160:  $self->apply_all_extconfig_attrs;
lib/RapidApp/Module/ExtComponent.pm:161:  $self->call_rapidapp_handlers($self->all_ONCONTENT_calls);
lib/RapidApp/Module/ExtComponent.pm:162:  return $self->extconfig;
lib/RapidApp/Module/ExtComponent.pm:167:  foreach my $attr ($self->meta->get_all_attributes) {
lib/RapidApp/Module/ExtComponent.pm:169:      $attr->does('RapidApp::Role::AppCmpConfigParam') and
lib/RapidApp/Module/ExtComponent.pm:170:      $attr->has_value($self)
lib/RapidApp/Module/ExtComponent.pm:173:    $self->apply_extconfig( $attr->name => $attr->get_value($self) );
lib/RapidApp/Module/ExtComponent.pm:189:around 'add_ONCONTENT_calls' => __PACKAGE__->add_ONREQUEST_calls_modifier;
lib/RapidApp/Module/ExtComponent.pm:215:sub config             { (shift)->extconfig(@_) }
lib/RapidApp/Module/ExtComponent.pm:216:sub apply_config         { (shift)->apply_extconfig(@_) }
lib/RapidApp/Module/ExtComponent.pm:217:sub get_config_param      { (shift)->get_extconfig_param(@_) }
lib/RapidApp/Module/ExtComponent.pm:218:sub has_config_param      { (shift)->has_extconfig_param(@_) }
lib/RapidApp/Module/ExtComponent.pm:219:sub has_no_config        { (shift)->has_no_extconfig(@_) }
lib/RapidApp/Module/ExtComponent.pm:220:sub num_config_params    { (shift)->num_extconfig_params(@_) }
lib/RapidApp/Module/ExtComponent.pm:221:sub delete_config_param    { (shift)->delete_extconfig_param(@_) }
lib/RapidApp/Module/ExtComponent.pm:222:sub apply_all_config_attrs  { (shift)->apply_all_extconfig_attrs(@_) }
lib/RapidApp/Module/ExtComponent.pm:244:# -- disabled and replaced by "listener_callbacks"
lib/RapidApp/Module/ExtComponent.pm:250:# objects). Unlike "listeners" which is a built-in config param associated
lib/RapidApp/Module/ExtComponent.pm:310:  $list = $self->get_listener_callbacks($event) if ($self->has_listener_callbacks($event));
lib/RapidApp/Module/ExtComponent.pm:319:      push @$list, RapidApp::JSONFunc->new( raw => 1, func => $func );
lib/RapidApp/Module/ExtComponent.pm:323:  return $self->apply_listener_callbacks( $event => $list );  
lib/RapidApp/Module/ExtComponent.pm:332:  $self->add_listener_callbacks($event,@_);
lib/RapidApp/Module/ExtComponent.pm:334:  my $handler = RapidApp::JSONFunc->new( raw => 1, func =>
lib/RapidApp/Module/ExtComponent.pm:355:  return $self->apply_listeners( $event => $handler );
lib/RapidApp/Module/ExtComponent.pm:361:  my $header = $self->c->req->header('X-RapidApp-View') or return 0;
lib/RapidApp/Module/ExtComponent.pm:370:  my $params = $self->c->req->params;
lib/RapidApp/Module/ExtComponent.pm:371:  delete $params->{_dc};
lib/RapidApp/Module/ExtComponent.pm:374:    url => $self->suburl('printview'),
lib/RapidApp/Module/ExtComponent.pm:378:  my $json = $self->json->encode($cnf);
lib/RapidApp/Module/ExtComponent.pm:383:    iconCls => 'ra-icon-printer',
lib/RapidApp/Module/ExtComponent.pm:390:#### --------------------- ####
lib/RapidApp/Module/ExtComponent.pm:394:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/Grid.pm:26:# ---
lib/RapidApp/Module/Grid.pm:28:# that cannot double-click, such as iPads
lib/RapidApp/Module/Grid.pm:31:# ---
lib/RapidApp/Module/Grid.pm:40:    iconCls  => 'ra-icon-add'
lib/RapidApp/Module/Grid.pm:47:    iconCls  => 'ra-icon-add'
lib/RapidApp/Module/Grid.pm:54:  return $self->Module('item',1)->base_url if ($self->open_record_class);
lib/RapidApp/Module/Grid.pm:59:# get_record_loadContentCnf is used on a per-row basis to set the 
lib/RapidApp/Module/Grid.pm:60:# options used to load the row in a tab when double-clicked
lib/RapidApp/Module/Grid.pm:66:  my $display = $self->get_record_display->($self);
lib/RapidApp/Module/Grid.pm:75:  $self->record_pk . ': ' . $_->{$self->record_pk}
lib/RapidApp/Module/Grid.pm:82:# -- autosize columns options:
lib/RapidApp/Module/Grid.pm:88:# --
lib/RapidApp/Module/Grid.pm:90:# -- multisort options:
lib/RapidApp/Module/Grid.pm:92:# --
lib/RapidApp/Module/Grid.pm:99:  if (defined $self->open_record_class) {
lib/RapidApp/Module/Grid.pm:100:    $self->apply_init_modules( item => $self->open_record_class );
lib/RapidApp/Module/Grid.pm:102:    # reach into the new sub-module and add a write listener to its store to
lib/RapidApp/Module/Grid.pm:105:    #$self->Module('item',1)->DataStore->add_listener( write => $self->DataStore->store_load_fn ) if (
lib/RapidApp/Module/Grid.pm:106:    #  $self->Module('item',1)->isa('RapidApp::Module::StorCmp')
lib/RapidApp/Module/Grid.pm:110:  if (defined $self->add_record_class) {
lib/RapidApp/Module/Grid.pm:111:    $self->apply_init_modules( add => $self->add_record_class );
lib/RapidApp/Module/Grid.pm:113:    # reach into the new sub-module and add a write listener to its store to
lib/RapidApp/Module/Grid.pm:117:    #$self->Module('add',1)->DataStore->add_listener( write => $self->DataStore->store_load_fn ) if (
lib/RapidApp/Module/Grid.pm:118:    #  $self->Module('add',1)->isa('RapidApp::Module::StorCmp')
lib/RapidApp/Module/Grid.pm:123:  $self->apply_extconfig(
lib/RapidApp/Module/Grid.pm:125:    pageSize          => $self->init_pagesize,
lib/RapidApp/Module/Grid.pm:126:    maxPageSize        => $self->max_pagesize,
lib/RapidApp/Module/Grid.pm:131:    use_column_summaries => $self->use_column_summaries ? \1 : \0,
lib/RapidApp/Module/Grid.pm:132:    use_autosize_columns => $self->use_autosize_columns ? \1 : \0,
lib/RapidApp/Module/Grid.pm:133:    use_multisort => $self->use_multisort ? \1 : \0,
lib/RapidApp/Module/Grid.pm:134:    auto_autosize_columns => $self->auto_autosize_columns ? \1 : \0,
lib/RapidApp/Module/Grid.pm:135:    auto_autosize_columns_deep => $self->auto_autosize_columns_deep ? \1 : \0,
lib/RapidApp/Module/Grid.pm:136:    autosize_hidden => $self->autosize_hidden ? \1 : \0,
lib/RapidApp/Module/Grid.pm:137:    autosize_maxwidth => $self->autosize_maxwidth,
lib/RapidApp/Module/Grid.pm:138:    allow_edit_frozen => $self->allow_edit_frozen ? \1 : \0,
lib/RapidApp/Module/Grid.pm:139:    open_record_via_rest => $self->open_record_via_rest ? \1 : \0,
lib/RapidApp/Module/Grid.pm:140:    open_record_url => $self->open_record_url,
lib/RapidApp/Module/Grid.pm:141:    open_record_rest_key => $self->open_record_rest_key,
lib/RapidApp/Module/Grid.pm:142:    open_record_column => $self->open_record_column ? \1 : \0,
lib/RapidApp/Module/Grid.pm:143:    open_record_column_hidden => $self->open_record_column_hidden ? \1 : \0,
lib/RapidApp/Module/Grid.pm:147:  if (defined $self->record_pk) {
lib/RapidApp/Module/Grid.pm:148:    $self->apply_columns( $self->record_pk => {} );
lib/RapidApp/Module/Grid.pm:149:    push @{ $self->include_columns }, $self->record_pk if (scalar @{ $self->include_columns } > 0);
lib/RapidApp/Module/Grid.pm:150:    #$self->meta->find_attribute_by_name('include_columns_hash')->clear_value($self);
lib/RapidApp/Module/Grid.pm:151:    %{ $self->include_columns_hash } = ();
lib/RapidApp/Module/Grid.pm:154:  if (defined $self->open_record_url or defined $self->add_record_class) {
lib/RapidApp/Module/Grid.pm:155:    $self->add_listener(  beforerender => RapidApp::JSONFunc->new( raw => 1, func => 
lib/RapidApp/Module/Grid.pm:160:  # -- Moved into Ext.ux.RapidApp.AppTab.AppGrid2Def:
lib/RapidApp/Module/Grid.pm:161:  #if (defined $self->open_record_url) {
lib/RapidApp/Module/Grid.pm:162:  #  $self->add_listener( rowdblclick => RapidApp::JSONFunc->new( raw => 1, func => 
lib/RapidApp/Module/Grid.pm:166:  # --
lib/RapidApp/Module/Grid.pm:168:  $self->apply_actions( save_search => 'save_search' ) if ( $self->can('save_search') );
lib/RapidApp/Module/Grid.pm:169:  $self->apply_actions( delete_search => 'delete_search' ) if ( $self->can('delete_search') );
lib/RapidApp/Module/Grid.pm:171:  $self->DataStore->add_read_raw_mungers(RapidApp::Handler->new( scope => $self, method => 'add_loadContentCnf_read_munger' ));
lib/RapidApp/Module/Grid.pm:173:  $self->add_ONREQUEST_calls('init_onrequest');
lib/RapidApp/Module/Grid.pm:174:  $self->add_ONREQUEST_calls_late('init_delete_enable');
lib/RapidApp/Module/Grid.pm:180:  $self->apply_extconfig( preload_quick_search => $self->c->req->params->{quick_search} )
lib/RapidApp/Module/Grid.pm:181:    if (try{$self->c->req->params->{quick_search}});
lib/RapidApp/Module/Grid.pm:183:  my $quick_search_cols = try{$self->c->req->params->{quick_search_cols}};
lib/RapidApp/Module/Grid.pm:187:    $self->apply_extconfig( init_quick_search_columns => \@cols );
lib/RapidApp/Module/Grid.pm:191:  if(my $qs_mode = try{$self->c->req->params->{quick_search_mode}}) {
lib/RapidApp/Module/Grid.pm:192:    $self->apply_extconfig( init_quick_search_mode => $qs_mode );
lib/RapidApp/Module/Grid.pm:196:  #$self->apply_config(store => $self->JsonStore);
lib/RapidApp/Module/Grid.pm:197:  $self->apply_extconfig(tbar => $self->tbar_items) if (defined $self->tbar_items);
lib/RapidApp/Module/Grid.pm:204:  if($self->can('action_delete_records') and $self->has_flag('can_delete')) {
lib/RapidApp/Module/Grid.pm:205:  #if($self->can('action_delete_records')) {
lib/RapidApp/Module/Grid.pm:207:    $self->apply_actions( $act_name => 'action_delete_records' );
lib/RapidApp/Module/Grid.pm:208:    $self->apply_extconfig( delete_url => $self->suburl($act_name) );
lib/RapidApp/Module/Grid.pm:223:  if (defined $self->open_record_url) {
lib/RapidApp/Module/Grid.pm:224:    foreach my $record (@{$result->{rows}}) {
lib/RapidApp/Module/Grid.pm:227:      $loadCfg = $self->json->decode($record->{loadContentCnf}) if (defined $record->{loadContentCnf});
lib/RapidApp/Module/Grid.pm:230:        %{ $self->get_record_loadContentCnf($record) },
lib/RapidApp/Module/Grid.pm:234:      unless (defined $loadCfg->{autoLoad}) {
lib/RapidApp/Module/Grid.pm:235:        $loadCfg->{autoLoad} = {};
lib/RapidApp/Module/Grid.pm:236:        $loadCfg->{autoLoad}->{url} = $loadCfg->{url} if ($loadCfg->{url});
lib/RapidApp/Module/Grid.pm:239:      $loadCfg->{autoLoad}->{url} = $self->open_record_url unless (defined $loadCfg->{autoLoad}->{url});
lib/RapidApp/Module/Grid.pm:241:      $record->{loadContentCnf} = $self->json->encode($loadCfg);
lib/RapidApp/Module/Grid.pm:251:#  my $result = $self->$orig(@_);
lib/RapidApp/Module/Grid.pm:257:#  if (defined $self->open_record_class) {
lib/RapidApp/Module/Grid.pm:258:#    foreach my $record (@{$result->{rows}}) {
lib/RapidApp/Module/Grid.pm:261:#      $loadCfg = $self->json->decode($record->{loadContentCnf}) if (defined $record->{loadContentCnf});
lib/RapidApp/Module/Grid.pm:264:#        %{ $self->get_record_loadContentCnf($record) },
lib/RapidApp/Module/Grid.pm:268:#      $loadCfg->{autoLoad} = {} unless (defined $loadCfg->{autoLoad});
lib/RapidApp/Module/Grid.pm:269:#      $loadCfg->{autoLoad}->{url} = $self->Module('item')->base_url unless (defined $loadCfg->{autoLoad}->{url});
lib/RapidApp/Module/Grid.pm:272:#      $record->{loadContentCnf} = $self->json->encode($loadCfg);
lib/RapidApp/Module/Grid.pm:281:  return $self->instance_id . '-options-menu-btn';
lib/RapidApp/Module/Grid.pm:293:  my $items = $self->options_menu_items or return undef;
lib/RapidApp/Module/Grid.pm:297:  my $menu_id = $self->instance_id . '-options-menu';
lib/RapidApp/Module/Grid.pm:298:  $self->apply_extconfig('options_menu_id' => $menu_id );
lib/RapidApp/Module/Grid.pm:302:    id      => $self->options_menu_button_Id,
lib/RapidApp/Module/Grid.pm:304:    iconCls  => 'ra-icon-gears',
lib/RapidApp/Module/Grid.pm:305:    itemId  => 'options-button',
lib/RapidApp/Module/Grid.pm:320:  push @$arrayref, '<img src="' . $self->title_icon_href . '" />'     if (defined $self->title_icon_href);
lib/RapidApp/Module/Grid.pm:321:  push @$arrayref, '<b>' . $self->title . '</b>'                if (defined $self->title);
lib/RapidApp/Module/Grid.pm:323:  my $menu = $self->options_menu;
lib/RapidApp/Module/Grid.pm:324:  push @$arrayref, ' ', '-' if (defined $menu and scalar(@$arrayref) > 0); 
lib/RapidApp/Module/Grid.pm:327:  push @$arrayref, '->';
lib/RapidApp/Module/Grid.pm:329:  push @$arrayref, $self->add_button if (
lib/RapidApp/Module/Grid.pm:330:    defined $self->add_record_class and
lib/RapidApp/Module/Grid.pm:331:    $self->show_add_button
lib/RapidApp/Module/Grid.pm:342:    url => $self->suburl('add'),
lib/RapidApp/Module/Grid.pm:343:    %{ $self->add_loadContentCnf }
lib/RapidApp/Module/Grid.pm:346:  my $handler = RapidApp::JSONFunc->new( raw => 1, func =>
lib/RapidApp/Module/Grid.pm:347:    'function(btn) { btn.ownerCt.ownerCt.loadTargetObj.loadContent(' . $self->json->encode($loadCfg) . '); }'
lib/RapidApp/Module/Grid.pm:350:  return RapidApp::JSONFunc->new( func => 'new Ext.Button', parm => {
lib/RapidApp/Module/Grid.pm:352:    %{ $self->add_button_cnf }
lib/RapidApp/Module/Grid.pm:361:  return $self->apply_to_all_columns(
lib/RapidApp/Module/Grid.pm:369:  my @cols = (ref($_[0]) eq 'ARRAY') ? @{ $_[0] } : @_; # <-- arg as array or arrayref
lib/RapidApp/Module/Grid.pm:370:  return $self->apply_columns_list(\@cols,{
lib/RapidApp/Module/Grid.pm:377:#### --------------------- ####
lib/RapidApp/Module/Grid.pm:381:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:18:	$self->apply_actions( export_to_file => 'export_to_file' );
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:26:	my $items = $self->$orig(@_);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:32:		iconCls	=> 'ra-icon-document-save',
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:33:		menu => RapidApp::JSONFunc->new( func => 'new Ext.ux.RapidApp.AppTab.AppGrid2.ExcelExportMenu',
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:35:				url => $self->local_url('/export_to_file'),
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:37:				buttonId => $self->options_menu_button_Id
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:45:my $xlsx_mime= 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:46:my %formats= map { $_->{mime} => $_ } (
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:48:	{ mime => 'text/tab-separated-values', file_ext => '.tsv',  renderer => 'export_render_tsv' },
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:54:	my $params = $self->c->req->params;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:57:	my $export_format= $formats{$params->{export_format}} || $formats{'text/csv'};
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:60:	my $export_filename = $params->{export_filename} || 'export';
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:63:  my $dt = DateTime->now( time_zone => 'local' );
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:64:  $export_filename .= join('','-',$dt->ymd('-'),'_',$dt->hms(''));
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:66:	$export_filename .= $export_format->{file_ext}
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:67:		unless substr($export_filename,-length($export_format->{file_ext})) eq $export_format->{file_ext};
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:70:	delete $params->{export_filename};
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:71:	delete $params->{export_format};
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:75:	my $columns= ($params->{columns})
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:76:		? $self->json->decode($params->{columns})
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:77:		: $self->column_order;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:82:		my $field = $self->get_column($col) or die "column $col does not exist in columns hash";
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:85:		my $colname = $field->render_column ? $field->render_column : $field->name;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:87:		next if ($field->name eq 'icon');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:88:		next if $field->no_column;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:89:		next unless (defined $field->header and defined $field->name);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:92:			label => $field->header
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:98:	$columns= [ map { $_->{name} } @colDefs ];
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:101:	#$self->c->req->params->{columns}= $self->json->encode($columns);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:102:	my $data = $self->DataStore->read({%$params, columns => $columns, ignore_page_size => 1});
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:105:	# We would do well to replace this with a db-cursor-to-tempfile streaming design
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:110:	my $method= $export_format->{renderer};
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:111:	$self->$method({ %$params, col_defs => \@colDefs }, $data, $fd);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:115:	$self->render_as_json(0);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:117:	my $h= $self->c->res->headers;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:119:	# Excel 97-2003 format (XLS)
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:120:	#$h->content_type('application/vnd.ms-excel');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:123:	#$h->content_type('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:126:	#$h->content_type('application/vnd.ms-excel.12');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:127:	$h->content_type($export_format->{mime});
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:130:	$h->header('Content-disposition' => "attachment; filename=\"$export_filename\"");
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:132:	$h->content_length(do { use bytes; length($dlData) });
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:133:	$h->last_modified(time);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:134:	$h->expires(time());
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:135:	$h->header('Pragma' => 'no-cache');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:136:	$h->header('Cache-Control' => 'no-cache');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:144:	my $xls = Excel::Writer::XLSX->new($fd);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:146:	# -- Excel/Writer/XLSX-specific: (slashes used instead of :: to protect from find/replace)
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:147:	$xls->set_optimization();
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:148:	# --
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:150:	$xls->set_properties(
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:153:	my $ws = $xls->add_worksheet;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:154:	my $tw = RapidApp::Spreadsheet::ExcelTableWriter->new(
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:157:		columns	=> $params->{col_defs},
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:162:	$tw->writeRow($_) for (@{$data->{rows}});
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:166:	if(exists $data->{column_summaries}) {
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:167:		my $sums = $data->{column_summaries};
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:168:		$self->convert_render_cols_hash($sums);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:171:		if ($params->{column_summaries}) {
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:172:			$funcs = $self->json->decode($params->{column_summaries});
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:173:			$self->convert_render_cols_hash($funcs);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:176:		$tw->writeRow({});
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:177:		$tw->writeRow({});
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:178:		my $fmt = $xls->add_format;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:179:		$fmt->set_bold();
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:181:		$tw->writeRow('Col Summaries');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:182:		$fmt->set_italic();
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:184:		if($data->{results} && $data->{results} > @{$data->{rows}}) {
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:185:			my $fmt = $xls->add_format;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:186:			$fmt->set_italic();
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:188:			$tw->writeRow('(Note: all rows are not shown above)');
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:190:		$tw->writeRow({});
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:191:		$tw->writeRow($funcs) if ($funcs);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:194:		$tw->writeRow($sums);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:198:	$tw->autosizeColumns();
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:199:	$xls->close();
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:204:	my $csv= Text::CSV->new({ binary => 1 }) or die "Can't create CSV instance";
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:206:	my @cols= map { $_->{name} } @{ $params->{col_defs} };
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:207:	my @titles= map { $_->{label} } @{ $params->{col_defs} };
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:210:	$csv->print($fd, \@titles);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:214:	for (@{ $data->{rows} }) {
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:215:		$csv->print($fd, [ @{$_}{@cols} ]);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:222:	my $csv= Text::CSV->new({ binary => 1, sep_char => "\t", quote_space => 0 }) or die "Can't create CSV instance";
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:224:	my @cols= map { $_->{name} } @{ $params->{col_defs} };
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:225:	my @titles= map { $_->{label} } @{ $params->{col_defs} };
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:228:	$csv->print($fd, \@titles);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:232:	for (@{ $data->{rows} }) {
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:233:		$csv->print($fd, [ @{$_}{@cols} ]);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:241:	my $json= JSON->new->ascii(1);
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:242:	my @cols= map { $_->{name} } @{ $params->{col_defs} };
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:244:	# Export row-by-row for two reasons:
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:250:	$fd->print("{\"columns\":" . $json->encode($params->{col_defs}) . ",\r\n"
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:252:	for (my $i= 0; $i < @{ $data->{rows} }; $i++) {
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:257:		@row{@cols}= @{$data->{rows}[$i]}{@cols};
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:258:		$fd->print($i? ",\r\n  " : "\r\n  ");
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:259:		$fd->print($json->encode(\%row));
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:261:	$fd->print("\r\n ]");
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:262:	if (exists $data->{column_summaries}) {
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:263:		$fd->print(",\r\n \"column_summaries\":");
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:264:		$fd->print($json->encode($data->{column_summaries}));
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:266:	$fd->print("\r\n}");
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:274:		my $field = $self->get_column($col) or die "column $col does not exist in columns hash";
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:275:		my $colname = $field->render_column ? $field->render_column : $field->name;
lib/RapidApp/Module/Grid/Role/ExcelExport.pm:276:		$hash->{$colname} = delete $hash->{$col};
lib/RapidApp/Module/HtmlContent.pm:41:  $self->apply_extconfig(
lib/RapidApp/Module/HtmlContent.pm:50:  return sub { $self->html };
lib/RapidApp/Module/HtmlContent.pm:59:  my $html =  $self->get_html->($self);
lib/RapidApp/Module/HtmlContent.pm:61:  my $content = $self->$orig(@_);
lib/RapidApp/Module/HtmlContent.pm:63:  $content->{html} = $html;
lib/RapidApp/Module/Meta/Trait/ExtProp.pm:13:has 'ext_name', is => 'ro', isa => 'Str', lazy => 1, default => sub { (shift)->name };
lib/RapidApp/Module/Meta/Trait/ExtProp.pm:18:  my $value = $attr->get_value($obj);
lib/RapidApp/Module/Meta/Trait/ExtProp.pm:20:  if($attr->has_type_constraint && $attr->type_constraint->equals('Bool')) {
lib/RapidApp/Module/Meta/Trait/ExtProp.pm:30:  $obj->apply_extconfig( $attr->ext_name => $attr->get_ext_value($obj) )
lib/RapidApp/Module/Meta/Trait/ExtProp.pm:36:after 'set_initial_value' => sub { (shift)->_apply_ext_value(@_) };
lib/RapidApp/Module/Meta/Trait/ExtProp.pm:37:after 'set_raw_value'     => sub { (shift)->_apply_ext_value(@_) };
lib/RapidApp/Module/MimeIframe.pm:18:sub get_id { my $self = shift; return $self->get_id_code->($self,@_); }
lib/RapidApp/Module/MimeIframe.pm:19:sub get_content { my $self = shift; return $self->get_content_code->($self,@_); }
lib/RapidApp/Module/MimeIframe.pm:24:  $self->apply_extconfig(
lib/RapidApp/Module/MimeIframe.pm:27:    bodyStyle => 'border: 1px solid #D0D0D0;background-color:white;',
lib/RapidApp/Module/MimeIframe.pm:31:  $self->add_plugin( 'ra-link-click-catcher' );
lib/RapidApp/Module/MimeIframe.pm:33:  if($self->full_screen_mode) {
lib/RapidApp/Module/MimeIframe.pm:35:    # Template::Controller - suitable when the iframe is the only
lib/RapidApp/Module/MimeIframe.pm:37:    $self->apply_extconfig(
lib/RapidApp/Module/MimeIframe.pm:38:      tabTitle => $self->title,
lib/RapidApp/Module/MimeIframe.pm:39:      tabIconCls => 'ra-icon-email',
lib/RapidApp/Module/MimeIframe.pm:46:    $self->apply_extconfig(
lib/RapidApp/Module/MimeIframe.pm:47:      title => $self->title,
lib/RapidApp/Module/MimeIframe.pm:48:      iconCls => 'ra-icon-email',
lib/RapidApp/Module/MimeIframe.pm:52:      height => 400 #<-- initial height, should be adjusted by 'iframe-autoheight' below
lib/RapidApp/Module/MimeIframe.pm:55:    $self->add_plugin( 'titlecollapseplus' );
lib/RapidApp/Module/MimeIframe.pm:56:    $self->add_plugin( 'iframe-autoheight' );
lib/RapidApp/Module/MimeIframe.pm:59:  $self->apply_actions( mime_content => 'mime_content' );
lib/RapidApp/Module/MimeIframe.pm:66:  my $id = $self->get_id or return undef;
lib/RapidApp/Module/MimeIframe.pm:68:    $self->suburl('mime_content'),
lib/RapidApp/Module/MimeIframe.pm:72:  $self->apply_extconfig( defaultSrc => $url );
lib/RapidApp/Module/MimeIframe.pm:78:  my $params = $self->c->req->params;
lib/RapidApp/Module/MimeIframe.pm:80:  my $content = $self->get_content or return '<h1><center>Content Not Found</center></h1>';
lib/RapidApp/Module/MimeIframe.pm:82:  my $Message = Email::MIME->new($content);
lib/RapidApp/Module/MimeIframe.pm:84:  return $self->render_cid($Message,$params->{cid}) if($params->{cid});
lib/RapidApp/Module/MimeIframe.pm:86:  my @parts = $Message->parts;
lib/RapidApp/Module/MimeIframe.pm:90:  my $Rich = ($parts[1]->parts)[0];
lib/RapidApp/Module/MimeIframe.pm:92:  my $p = '<p style="margin-top:3px;margin-bottom:3px;">';
lib/RapidApp/Module/MimeIframe.pm:96:  $html .= '<div style="font-size:90%;">';
lib/RapidApp/Module/MimeIframe.pm:98:  # -- any of the these headers which exist, in this order, and in their original case
lib/RapidApp/Module/MimeIframe.pm:99:  my @inc_headers = ('from', 'reply-to', 'date', 'to', 'cc', 'subject');
lib/RapidApp/Module/MimeIframe.pm:100:  my %has_headers = map { lc($_) => $_ } $Message->header_names;
lib/RapidApp/Module/MimeIframe.pm:103:    join(',',encode_entities($Message->header($_))) . 
lib/RapidApp/Module/MimeIframe.pm:105:  # --
lib/RapidApp/Module/MimeIframe.pm:109:  $html .= '<hr><div style="padding-top:15px;"></div>';
lib/RapidApp/Module/MimeIframe.pm:111:  $html .= $Rich->body_str;
lib/RapidApp/Module/MimeIframe.pm:113:  $self->convert_cids(\$html);
lib/RapidApp/Module/MimeIframe.pm:126:  $Message->walk_parts(sub {
lib/RapidApp/Module/MimeIframe.pm:129:    $FoundPart = $Part if ( $Part->header('Content-ID') and (
lib/RapidApp/Module/MimeIframe.pm:130:      $cid eq $Part->header('Content-ID') or 
lib/RapidApp/Module/MimeIframe.pm:131:      '<' . $cid . '>' eq $Part->header('Content-ID')
lib/RapidApp/Module/MimeIframe.pm:136:    $self->c->scream('Content-ID ' . $cid . ' not found.');
lib/RapidApp/Module/MimeIframe.pm:140:  foreach my $header ($FoundPart->header_names) {
lib/RapidApp/Module/MimeIframe.pm:141:    next if($header eq 'Date'); #<-- if Date gets set it kills the session cookie
lib/RapidApp/Module/MimeIframe.pm:142:    $self->c->res->header( $header => $FoundPart->header($header) );
lib/RapidApp/Module/MimeIframe.pm:145:  return $FoundPart->body;
lib/RapidApp/Module/MimeIframe.pm:153:  my $parser = HTML::TokeParser::Simple->new($htmlref);
lib/RapidApp/Module/MimeIframe.pm:157:  while (my $tag = $parser->get_tag) {
lib/RapidApp/Module/MimeIframe.pm:160:    if($tag->is_tag('img')) {
lib/RapidApp/Module/MimeIframe.pm:163:    elsif($tag->is_tag('a')) {
lib/RapidApp/Module/MimeIframe.pm:170:    my $url = $tag->get_attr($attr) or next;
lib/RapidApp/Module/MimeIframe.pm:173:    my $newurl = $self->cid_to_real_url($url);
lib/RapidApp/Module/MimeIframe.pm:175:      my $find = $tag->as_is;
lib/RapidApp/Module/MimeIframe.pm:176:      $tag->set_attr($attr,$newurl);
lib/RapidApp/Module/MimeIframe.pm:177:      $substitutions->{$find} = $tag->as_is;
lib/RapidApp/Module/MimeIframe.pm:182:    my $replace = $substitutions->{$find};
lib/RapidApp/Module/MimeIframe.pm:194:    $self->suburl('mime_content'),
lib/RapidApp/Module/MimeIframe.pm:196:    '&id=',$self->c->req->params->{id},
lib/RapidApp/Module/NavTree.pm:19:  $self->setup_nav_listeners;
lib/RapidApp/Module/NavTree.pm:26:  my $event = $self->double_click_nav ? 'dblclick' : 'click';
lib/RapidApp/Module/NavTree.pm:28:  $self->add_listener( $event => RapidApp::JSONFunc->new( raw => 1, func => 'Ext.ux.RapidApp.AppTab.treenav_click' ) );
lib/RapidApp/Module/NavTree.pm:29:  $self->add_listener( beforerender => RapidApp::JSONFunc->new( raw => 1, func => 'Ext.ux.RapidApp.AppTab.cnt_init_loadTarget' ) );
lib/RapidApp/Module/NavTree.pm:37:    $self->apply_node_navopts_recursive($nodes->{children}) if ($nodes->{children});
lib/RapidApp/Module/NavTree.pm:38:    return $self->apply_node_navopts($nodes);
lib/RapidApp/Module/NavTree.pm:45:    if (ref($item->{children}) eq 'ARRAY' and scalar $item->{children} > 0) {
lib/RapidApp/Module/NavTree.pm:46:      $self->apply_node_navopts_recursive($item->{children}) if ($item->{children});
lib/RapidApp/Module/NavTree.pm:49:    #  #$item->{leaf} = \1;
lib/RapidApp/Module/NavTree.pm:50:    #  $item->{loaded} = \1;
lib/RapidApp/Module/NavTree.pm:51:    #  delete $item->{children} if ($item->{children});
lib/RapidApp/Module/NavTree.pm:54:    $item->{expanded} = \1 if ($item->{expand});
lib/RapidApp/Module/NavTree.pm:56:    $self->apply_node_navopts($item);
lib/RapidApp/Module/NavTree.pm:67:  $autoLoad->{params} = $item->{params} if ($item->{params});
lib/RapidApp/Module/NavTree.pm:68:  $autoLoad->{url}    = $item->{url}    if ($item->{url});
lib/RapidApp/Module/NavTree.pm:70:  my $module = $item->{module}; 
lib/RapidApp/Module/NavTree.pm:72:    $module = $self->module_scope->Module($item->{module}) unless(ref($module));
lib/RapidApp/Module/NavTree.pm:73:    $autoLoad->{url} = $module->base_url;
lib/RapidApp/Module/NavTree.pm:77:    return unless ($autoLoad->{url});
lib/RapidApp/Module/NavTree.pm:81:  $loadCnf->{itemId} = $item->{itemId};
lib/RapidApp/Module/NavTree.pm:82:  $loadCnf->{itemId} = $item->{id} unless ($loadCnf->{itemId});
lib/RapidApp/Module/NavTree.pm:84:  $loadCnf->{title} = $item->{title} || $item->{text};
lib/RapidApp/Module/NavTree.pm:85:  $loadCnf->{iconCls} = $item->{iconCls};
lib/RapidApp/Module/NavTree.pm:87:  $loadCnf->{autoLoad} = $autoLoad;
lib/RapidApp/Module/NavTree.pm:88:  $item->{loadContentCnf} = $loadCnf;
lib/RapidApp/Module/NavTree.pm:94:  return $self->TreeConfig || [];
lib/RapidApp/Module/NavTree.pm:102:  my $nodes = $self->$orig(@args);
lib/RapidApp/Module/NavTree.pm:104:  $self->apply_node_navopts_recursive($nodes);
lib/RapidApp/Module/NavTree.pm:111:#### --------------------- ####
lib/RapidApp/Module/NavTree.pm:115:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/StorCmp.pm:44:  return $self->use_add_form ? 1 : 0;
lib/RapidApp/Module/StorCmp.pm:118:	return $self->$orig(@_) unless (defined $self->defer_to_store_module);
lib/RapidApp/Module/StorCmp.pm:119:	return $self->defer_to_store_module->$orig(@_);
lib/RapidApp/Module/StorCmp.pm:125:before 'BUILD' => sub { (shift)->DataStore2_BUILD };
lib/RapidApp/Module/StorCmp.pm:130:  $self->apply_actions( add => 'dedicated_add_form' ) if ($self->dedicated_add_form_enabled);
lib/RapidApp/Module/StorCmp.pm:133:		record_pk 		=> $self->record_pk,
lib/RapidApp/Module/StorCmp.pm:134:		max_pagesize	=> $self->max_pagesize
lib/RapidApp/Module/StorCmp.pm:137:	if ($self->can('create_records')) {
lib/RapidApp/Module/StorCmp.pm:138:		$self->apply_flags( can_create => 1 ) unless ($self->flag_defined('can_create'));
lib/RapidApp/Module/StorCmp.pm:139:		$store_params->{create_handler}	= RapidApp::Handler->new( scope => $self, method => 'create_records' ) if ($self->has_flag('can_create'));
lib/RapidApp/Module/StorCmp.pm:142:	if ($self->can('read_records')) {
lib/RapidApp/Module/StorCmp.pm:143:		$self->apply_flags( can_read => 1 ) unless ($self->flag_defined('can_read'));
lib/RapidApp/Module/StorCmp.pm:144:		$store_params->{read_handler}	= RapidApp::Handler->new( scope => $self, method => 'read_records' ) if ($self->has_flag('can_read'));
lib/RapidApp/Module/StorCmp.pm:147:	if ($self->can('update_records')) {
lib/RapidApp/Module/StorCmp.pm:148:		$self->apply_flags( can_update => 1 ) unless ($self->flag_defined('can_update'));
lib/RapidApp/Module/StorCmp.pm:149:		$store_params->{update_handler}	= RapidApp::Handler->new( scope => $self, method => 'update_records' ) if ($self->has_flag('can_update'));
lib/RapidApp/Module/StorCmp.pm:152:	if ($self->can('destroy_records')) {
lib/RapidApp/Module/StorCmp.pm:153:		$self->apply_flags( can_destroy => 1 ) unless ($self->flag_defined('can_destroy'));
lib/RapidApp/Module/StorCmp.pm:154:		$store_params->{destroy_handler}	= RapidApp::Handler->new( scope => $self, method => 'destroy_records' ) if ($self->has_flag('can_destroy'));
lib/RapidApp/Module/StorCmp.pm:159:		%{ $self->DataStore_build_params }
lib/RapidApp/Module/StorCmp.pm:160:	} if (defined $self->DataStore_build_params);
lib/RapidApp/Module/StorCmp.pm:162:	$self->apply_modules( store => {
lib/RapidApp/Module/StorCmp.pm:163:		class		=> $self->DataStore_class,
lib/RapidApp/Module/StorCmp.pm:166:	$self->DataStore($self->Module('store',1));
lib/RapidApp/Module/StorCmp.pm:169:	$self->DataStore->apply_flags($self->all_flags);
lib/RapidApp/Module/StorCmp.pm:171:	$self->add_ONREQUEST_calls('store_init_onrequest');
lib/RapidApp/Module/StorCmp.pm:172:	$self->add_ONREQUEST_calls_late('apply_store_to_extconfig');
lib/RapidApp/Module/StorCmp.pm:175:	$self->TableSpec;
lib/RapidApp/Module/StorCmp.pm:182:	$self->apply_extconfig(
lib/RapidApp/Module/StorCmp.pm:183:		persist_all_immediately => \scalar($self->persist_all_immediately),
lib/RapidApp/Module/StorCmp.pm:184:		persist_immediately => $self->persist_immediately,
lib/RapidApp/Module/StorCmp.pm:185:    use_add_form => $self->use_add_form,
lib/RapidApp/Module/StorCmp.pm:186:    use_edit_form => $self->use_edit_form,
lib/RapidApp/Module/StorCmp.pm:187:    autoload_added_record => $self->autoload_added_record ? \1 : \0,
lib/RapidApp/Module/StorCmp.pm:188:		cache_total_count => $self->cache_total_count ? \1 : \0,
lib/RapidApp/Module/StorCmp.pm:189:		confirm_on_destroy => $self->confirm_on_destroy ? \1 : \0
lib/RapidApp/Module/StorCmp.pm:193:	$self->apply_TableSpec_config;
lib/RapidApp/Module/StorCmp.pm:195:	if(defined $self->Module('store',1)->create_handler) {
lib/RapidApp/Module/StorCmp.pm:196:		$self->apply_actions( add_form => 'get_add_form' );
lib/RapidApp/Module/StorCmp.pm:197:		$self->apply_extconfig( add_form_url => $self->suburl('add_form') );
lib/RapidApp/Module/StorCmp.pm:200:	if($self->allow_batch_update && defined $self->Module('store',1)->update_handler) {
lib/RapidApp/Module/StorCmp.pm:201:		$self->apply_actions( edit_form => 'get_edit_form' );
lib/RapidApp/Module/StorCmp.pm:202:		$self->apply_extconfig( edit_form_url => $self->suburl('edit_form') );
lib/RapidApp/Module/StorCmp.pm:204:		$self->apply_actions( batch_update => 'batch_update' );
lib/RapidApp/Module/StorCmp.pm:205:		$self->apply_extconfig( batch_update_url => $self->suburl('batch_update') );
lib/RapidApp/Module/StorCmp.pm:208:	$self->add_plugin( 'datastore-plus' ) unless ($self->no_datastore_plus_plugin);
lib/RapidApp/Module/StorCmp.pm:214:	$self->TableSpec or return;
lib/RapidApp/Module/StorCmp.pm:215:	$self->TableSpec_applied and return;
lib/RapidApp/Module/StorCmp.pm:218:	my $columns = $self->TableSpec->columns_properties_limited($prop_names);
lib/RapidApp/Module/StorCmp.pm:220:	$self->apply_columns($columns);
lib/RapidApp/Module/StorCmp.pm:221:	$self->set_columns_order(0,$self->TableSpec->column_names_ordered);
lib/RapidApp/Module/StorCmp.pm:223:	$self->DataStore->add_onrequest_columns_mungers(
lib/RapidApp/Module/StorCmp.pm:224:		$self->TableSpec->all_onrequest_columns_mungers
lib/RapidApp/Module/StorCmp.pm:225:	) unless ($self->TableSpec->has_no_onrequest_columns_mungers);
lib/RapidApp/Module/StorCmp.pm:227:	$self->TableSpec_applied(1);
lib/RapidApp/Module/StorCmp.pm:233:	return $self->DataStore unless (defined $self->defer_to_store_module);
lib/RapidApp/Module/StorCmp.pm:234:	return $self->defer_to_store_module->defer_DataStore if ($self->defer_to_store_module->can('defer_DataStore'));
lib/RapidApp/Module/StorCmp.pm:235:	return $self->defer_to_store_module;
lib/RapidApp/Module/StorCmp.pm:242:	$self->Module('store');
lib/RapidApp/Module/StorCmp.pm:244:	$self->apply_extconfig( columns => $self->defer_DataStore->column_list );
lib/RapidApp/Module/StorCmp.pm:245:	$self->apply_extconfig( sort => $self->defer_DataStore->get_extconfig_param('sort_spec') );
lib/RapidApp/Module/StorCmp.pm:249:# ----
lib/RapidApp/Module/StorCmp.pm:259:# a common use-case, so this was only an issue for very specific circumstances)
lib/RapidApp/Module/StorCmp.pm:266:# ----
lib/RapidApp/Module/StorCmp.pm:271:	if (defined $self->defer_to_store_module) {
lib/RapidApp/Module/StorCmp.pm:272:		$self->apply_extconfig( store => $self->defer_DataStore->getStore_func );
lib/RapidApp/Module/StorCmp.pm:275:		$self->apply_extconfig( store => $self->Module('store')->JsonStore );
lib/RapidApp/Module/StorCmp.pm:285:	plugins => ['dynamic-label-width'],
lib/RapidApp/Module/StorCmp.pm:287:  cls => 'ra-datastore-add-edit-form',
lib/RapidApp/Module/StorCmp.pm:296:	# datastore-plus (client side) adds handlers based on the "name" properties 'save' and 'cancel' below
lib/RapidApp/Module/StorCmp.pm:301:			iconCls => 'ra-icon-save-ok',
lib/RapidApp/Module/StorCmp.pm:320:	foreach my $colname (@{$self->column_order}) {
lib/RapidApp/Module/StorCmp.pm:321:		my $Cnf = $self->columns->{$colname} or next;
lib/RapidApp/Module/StorCmp.pm:322:		next unless (defined $Cnf->{editor} and $Cnf->{editor} ne '');
lib/RapidApp/Module/StorCmp.pm:324:		my $allow = jstrue($Cnf->{$allow_flag});
lib/RapidApp/Module/StorCmp.pm:325:		$allow = $allow || jstrue($Cnf->{allow_batchedit}) if (
lib/RapidApp/Module/StorCmp.pm:327:			!jstrue($Cnf->{no_column})
lib/RapidApp/Module/StorCmp.pm:331:		next if (jstrue($Cnf->{no_column}) && ! $allow);
lib/RapidApp/Module/StorCmp.pm:334:		next if (defined $Cnf->{$allow_flag} && ! $allow);
lib/RapidApp/Module/StorCmp.pm:336:		my $field = clone($Cnf->{editor});
lib/RapidApp/Module/StorCmp.pm:337:		$field->{name} = $colname;
lib/RapidApp/Module/StorCmp.pm:338:		$field->{allowBlank} = \1 unless (defined $field->{allowBlank});
lib/RapidApp/Module/StorCmp.pm:341:    $field->{allowBlank} = \0 unless ($Cnf->{is_nullable});
lib/RapidApp/Module/StorCmp.pm:343:		unless (jstrue $field->{allowBlank}) {
lib/RapidApp/Module/StorCmp.pm:344:			$field->{labelStyle} = '' unless (defined $field->{labelStyle});
lib/RapidApp/Module/StorCmp.pm:345:			$field->{labelStyle} .= 'font-weight:bold;';
lib/RapidApp/Module/StorCmp.pm:347:		$field->{header} = $Cnf->{header} if(defined $Cnf->{header});
lib/RapidApp/Module/StorCmp.pm:348:		$field->{header} = $colname unless (defined $field->{header} and $field->{header} ne '');
lib/RapidApp/Module/StorCmp.pm:349:		$field->{fieldLabel} = $field->{header};
lib/RapidApp/Module/StorCmp.pm:350:    $field->{anchor} = '-20';
lib/RapidApp/Module/StorCmp.pm:352:    # ---- Moved from DataStorePlus JS (client-side):
lib/RapidApp/Module/StorCmp.pm:353:    # Important: autoDestroy must be false on the store or else store-driven
lib/RapidApp/Module/StorCmp.pm:356:    $field->{store}{autoDestroy} = \1 if ($field->{store});
lib/RapidApp/Module/StorCmp.pm:360:    # set with allowBlank: false (common-sense failsafe):
lib/RapidApp/Module/StorCmp.pm:361:    $field->{allowBlank} = \1 if (jstrue $field->{hidden});
lib/RapidApp/Module/StorCmp.pm:362:    # ----
lib/RapidApp/Module/StorCmp.pm:364:    # -- New: if column 'documentation' is present, render it via Ext.ux.FieldHelp plugin
lib/RapidApp/Module/StorCmp.pm:365:    if($Cnf->{documentation}) {
lib/RapidApp/Module/StorCmp.pm:366:      $field->{plugins} ||= [];
lib/RapidApp/Module/StorCmp.pm:367:      push @{$field->{plugins}}, 'fieldhelp';
lib/RapidApp/Module/StorCmp.pm:368:      $field->{helpText} = $Cnf->{documentation};
lib/RapidApp/Module/StorCmp.pm:370:    # --
lib/RapidApp/Module/StorCmp.pm:381:		%{$self->add_edit_formpanel_defaults},
lib/RapidApp/Module/StorCmp.pm:382:		items => [ $self->get_add_form_items ]
lib/RapidApp/Module/StorCmp.pm:388:	return $self->get_add_edit_form_items('add');
lib/RapidApp/Module/StorCmp.pm:394:		%{$self->add_edit_formpanel_defaults},
lib/RapidApp/Module/StorCmp.pm:395:		items => [ $self->get_edit_form_items ]
lib/RapidApp/Module/StorCmp.pm:401:	return $self->get_add_edit_form_items('edit');
lib/RapidApp/Module/StorCmp.pm:408:	my $editSpec = $self->param_decodeIf($self->c->req->params->{editSpec});
lib/RapidApp/Module/StorCmp.pm:409:	my $update = $editSpec->{update};
lib/RapidApp/Module/StorCmp.pm:411:	die usererr "Invalid editSpec - record_pk found in update data!!" 
lib/RapidApp/Module/StorCmp.pm:412:		if (exists $update->{$self->record_pk});
lib/RapidApp/Module/StorCmp.pm:414:	my $count = $editSpec->{count} or die usererr "Invalid editSpec - no count supplied";
lib/RapidApp/Module/StorCmp.pm:416:	my $max = $self->batch_update_max_rows;
lib/RapidApp/Module/StorCmp.pm:419:		"Too many rows for batch update ($count) - max allowed rows: $max",
lib/RapidApp/Module/StorCmp.pm:433:	$self->before_batch_update;
lib/RapidApp/Module/StorCmp.pm:435:	my $editSpec = $self->param_decodeIf($self->c->req->params->{editSpec});
lib/RapidApp/Module/StorCmp.pm:436:	my $read_params = $editSpec->{read_params};
lib/RapidApp/Module/StorCmp.pm:437:	my $update = $editSpec->{update};
lib/RapidApp/Module/StorCmp.pm:439:	delete $read_params->{start};
lib/RapidApp/Module/StorCmp.pm:440:	delete $read_params->{limit};
lib/RapidApp/Module/StorCmp.pm:443:	my %orig_params = %{$self->c->req->params};
lib/RapidApp/Module/StorCmp.pm:444:	%{$self->c->req->params} = %$read_params;
lib/RapidApp/Module/StorCmp.pm:445:	my $readdata = $self->read_records();
lib/RapidApp/Module/StorCmp.pm:446:	my $rows = $readdata->{rows};
lib/RapidApp/Module/StorCmp.pm:448:	die "Actual row count (" . @$rows . ") doesn't agree with 'results' property (" . $readdata->{results} . ")"
lib/RapidApp/Module/StorCmp.pm:449:		unless (@$rows == $readdata->{results});
lib/RapidApp/Module/StorCmp.pm:452:		$editSpec->{count} . ' vs ' . $readdata->{results} . ') ' .
lib/RapidApp/Module/StorCmp.pm:453:		"- This can happen if someone else modified one or more of the records in the update set.\n\n" .
lib/RapidApp/Module/StorCmp.pm:455:	unless ($editSpec->{count} == $readdata->{results});
lib/RapidApp/Module/StorCmp.pm:463:		$result = $self->DataStore->update_handler->call($rows,$read_params);
lib/RapidApp/Module/StorCmp.pm:466:	%{$self->c->req->params} = %orig_params;
lib/RapidApp/Module/StorCmp.pm:470:		defined $result->{success}
lib/RapidApp/Module/StorCmp.pm:490:	return $self->json->decode($param);
lib/RapidApp/Module/StorCmp.pm:497:  die "Not allowed" unless $self->dedicated_add_form_enabled;
lib/RapidApp/Module/StorCmp.pm:499:  my $c = $self->c;
lib/RapidApp/Module/StorCmp.pm:500:  my $content = $self->content;
lib/RapidApp/Module/StorCmp.pm:504:  my $afuParams = $self->get_extconfig_param('add_form_url_params') || {};
lib/RapidApp/Module/StorCmp.pm:505:  %{$c->req->params} = ( %{$c->req->params}, %$afuParams );
lib/RapidApp/Module/StorCmp.pm:507:  my $fp = $self->get_add_form;
lib/RapidApp/Module/StorCmp.pm:509:  my $btnCfg = ($self->get_extconfig_param('store_button_cnf')||{})->{add} || {};
lib/RapidApp/Module/StorCmp.pm:511:  return $self->render_data({
lib/RapidApp/Module/StorCmp.pm:512:    xtype      => 'datastore-dedicated-add-form',
lib/RapidApp/Module/StorCmp.pm:517:    tabTitle   => $btnCfg->{text}    || '(Add ...)',
lib/RapidApp/Module/StorCmp.pm:518:    tabIconCls => $btnCfg->{iconCls} || 'ra-icon-add'
lib/RapidApp/Module/StorCmp.pm:525:#### --------------------- ####
lib/RapidApp/Module/StorCmp.pm:529:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:39:  return $self->TableSpec->get_Cnf('row_display');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:63:# New: List of relationship names to auto-create if they don't exist during an UPDATE
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:71:# quicksearch_mode: either 'like' or 'exact' - see chain_Rs_req_quicksearch()
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:74:# TODO: add 'phrases' mode to act like google searches with +/- and quotes around phrases
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:90:# TODO - this is a stop-gap until the DatStor as a separate module design
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:94:# Passed into TableSpec objects -- disables the default behaviour which
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:102:# If set to true, every time the component is shown (i.e. re-activating the tab) the 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:107:# among modules whose ->content may be rendered within the same request, which is only
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:113:    substr(Digest::SHA1->new->add($self->base_url)->hexdigest, 0, 5)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:118:  my $c = $self->c;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:120:  %{$c->req->params} = ( %{$c->req->params}, %$params );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:122:  my $baseParams = $self->DataStore->get_extconfig_param('baseParams') || {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:124:  $self->DataStore->apply_extconfig( baseParams => $baseParams );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:128:  $self->_appl_base_params({ $self->_rst_qry_param => $val });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:132:  my $c = RapidApp->active_request_context or return undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:133:  my $rst_qry = $c->req->params->{ $self->_rst_qry_param } or return undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:135:  # Re-apply the rst_qry now to make sure there is not a caching issue
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:139:  $self->_appl_rst_qry( $rst_qry );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:153:  return sub { $self->ResultSource->resultset };
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:158:  return $self->get_ResultSet->(@_);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:164:  my $p = $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:165:  if($p->{rs_path} && $p->{rs_method}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:166:    my $Module = $self->get_Module($p->{rs_path}) or die "Failed to get module at $p->{rs_path}";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:167:    return $Module->_resolve_rel_obj_method($p->{rs_method});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:170:  my $Rs = $self->baseResultSet(@_);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:173:  $self->prepare_rest_request;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:175:  if(my $rst_qry = $self->_retr_rst_qry) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:177:    $Rs = $self->chain_Rs_REST($Rs,$key,$val);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:180:  $Rs = $self->ResultSet($Rs) if ($self->can('ResultSet'));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:190:    $Rs = $self->_chain_search_rs($Rs,undef,{ join => $rel }) 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:191:      if ($self->ResultSource->has_relationship($rel));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:196:  return $self->_chain_search_rs($Rs,{ $key => $val });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:206:  return $self->get_CreateData->(@_);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:211:  my $data = $self->baseCreateData(@_);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:212:  $data = $self->CreateData($data) if ($self->can('CreateData'));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:214:  if(my $lock_keys = $self->_get_rs_lock_keys) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:223:#  my $Rs = $self->ResultSource->resultset;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:224:#  $Rs = $self->ResultSet($Rs) if ($self->can('ResultSet'));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:231:  my $source_name = $self->ResultSource->source_name;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:232:  return $self->ResultSource->schema->class($source_name);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:239:  my $table = RapidApp::DBIC::Component::TableSpec::_table_name_safe($self->ResultClass->table);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:242:    relation_sep => $self->relation_sep,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:243:    ResultSource => $self->ResultSource,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:244:    include_colspec => $self->include_colspec,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:245:    no_header_transform => $self->no_header_transform
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:248:  $opt{updatable_colspec} = $self->updatable_colspec if (defined $self->updatable_colspec);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:249:  $opt{creatable_colspec} = $self->creatable_colspec if (defined $self->creatable_colspec);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:250:  $opt{always_fetch_colspec} = $self->always_fetch_colspec if (defined $self->always_fetch_colspec);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:252:  if (!exists $opt{cache} && $self->app->rapidApp->use_cache) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:253:    $opt{cache} = $self->app->rapidApp->cache;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:256:  my $TableSpec = RapidApp::TableSpec::DbicTableSpec->new(%opt);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:258:  $TableSpec->apply_natural_column_order if ($self->natural_column_order);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:261:  #return RapidApp::TableSpec->with_traits('RapidApp::TableSpec::Role::DBIC')->new(%opt);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:271:  unless ($self->ResultSource->primary_columns > 0) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:272:    my $class = $self->ResultSource->schema->class($self->ResultSource->source_name);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:273:    local $SIG{__WARN__} = sub {}; # GitHub Issue #167 - TODO/FIXME
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:274:    $class->set_primary_key( $self->ResultSource->columns );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:275:    $self->ResultSource->set_primary_key( $self->ResultSource->columns );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:278:  my @cols = $self->ResultSource->primary_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:280:  $self->apply_extconfig( primary_columns => [ $self->record_pk, @cols ] );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:291:    $self->primary_columns_sep, 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:292:    #map { defined $data->{$_} ? "'" . $data->{$_} . "'" : 'undef' } @{$self->primary_columns}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:293:    map { defined $data->{$_} ? $data->{$_} : 'undef' } @{$self->primary_columns}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:302:  my $sep = quotemeta $self->primary_columns_sep;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:306:  foreach my $col (@{$self->primary_columns}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:316:    #http://stackoverflow.com/questions/8570884/mysql-where-exact-match
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:326:# --- Handle RESTful URLs - convert 'id/1234' into '?___record_pk=1234'
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:330:  return unless ($self->allow_restful_queries);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:333:  my $stash_args = $self->c->stash->{rest_args};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:334:  my @args = $stash_args ? @$stash_args : $self->local_args;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:350:  # -- peel off the 'rel' (relationship) args if present:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:358:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:360:  # --- Handle and assume extra args are values containing '/'
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:363:    if (scalar @args > 0 && $self->ResultSource->has_column($newargs[0])) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:371:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:378:  return if (exists $self->modules_obj->{$key} || $self->has_action($key));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:383:    my $rest_key_column = try{$self->ResultClass->getRestKey};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:384:    $key = $rest_key_column || $self->record_pk;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:388:  die usererr "Too many args in RESTful URL (" . join('/',@args) . ") - should be 2 (i.e. 'id/1234')"
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:391:  return $self->redirect_handle_rest_rel_request($key,$val,$rel) if ($rel);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:394:  $self->apply_extconfig( tabTitle => ($key eq $self->record_pk ? 'Id' : $key ) . '/' . $val );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:396:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:400:  # read request. '___record_pk' pre-dates the REST functionality and is only handled in DbicAppPropertyPage
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:404:  if($key eq $self->record_pk) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:405:    $self->_appl_base_params({$key => $val});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:408:    $self->_appl_rst_qry( join('/',$key,$val) );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:410:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:418:  my $Rs = $self->chain_Rs_REST($self->baseResultSet,$key,$val);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:421:  my $count = $Rs->count;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:429:  return $Rs->first;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:444:  my $Row = $self->restGetRow($key,$val);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:445:  die usererr "No such relationship $rel at ''$rs_method''" unless ($Row->has_relationship($rel));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:446:  return wantarray ? (scalar $Row->$rel, $Row) : $Row->$rel;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:451:  my $c = $self->c;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:454:  my ($RelObj, $Row) = $self->_resolve_rel_obj_method($mth_path);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:455:  my $Src = $RelObj->result_source;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:456:  my $class = $Src->schema->class($Src->source_name);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:458:  $c->stash->{apply_extconfig} = {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:462:  if($RelObj->isa('DBIx::Class::ResultSet')) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:463:    my $url = try{$class->TableSpec_get_conf('open_url_multi')}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:467:      rs_path   => $self->module_path,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:471:    # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:472:    # New: For the case of a multi-relationship, attempt to resolve the reverse 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:477:    if(my $rev_rel_info = $Row->result_source->reverse_relationship_info($rel)) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:479:      if($info && $info->{cond}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:482:          ->parse_relationship_cond($info->{cond}) || {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:483:        my @pks = $Row->result_source->primary_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:484:        if(scalar(@pks) == 1 && $cdta->{self} && $cdta->{foreign} && $pks[0] eq $cdta->{foreign}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:485:          $p->{rs_lock_keys} = $self->json->encode({
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:486:            $cdta->{self} => $val,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:492:    # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:494:    %{$c->req->params} = ( %$p, base_params => $self->json->encode( $p ) );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:495:    $c->root_module_controller->approot($c,$url);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:496:    return $c->detach;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:507:    my $url = try{$RelObj->getRestPath};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:511:      $self->c->stash->{rest_args} = [$RelObj->getRestKey,$RelObj->getRestKeyVal];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:512:      $c->root_module_controller->approot($c,$url);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:513:      return $c->detach;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:516:      # This is just a fallback - TODO: use a better error msg...
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:520:          '<i><b style="color:darkblue;font-size:0.9em;">',
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:521:          $RelObj->displayWithLink,'</b></i>',
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:532:  my $c = RapidApp->active_request_context or return undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:533:  my $lk_enc = $c->req->params->{rs_lock_keys} or return undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:534:  try{$self->json->decode($lk_enc)}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:541:  if(my $lock_keys = $self->_get_rs_lock_keys) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:544:      my $Column = $self->get_column($name) or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:548:      my $editor = $Column->{editor} or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:549:      $editor->{value} = $lock_keys->{$name};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:550:      $editor->{disabled} = \1;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:554:      $self->apply_columns_ordered(0, map { $_ => {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:562:# ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:570:  die "FATAL: DbicLink and DbicLink2 cannot both be loaded" if ($self->does('RapidApp::Role::DbicLink'));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:572:  $self->accept_subargs(1) if ($self->allow_restful_queries);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:575:  #$self->apply_except_colspec_columns($self->TableSpec->updatable_colspec => {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:579:  $self->apply_columns( $self->record_pk => { 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:587:  #$self->apply_colspec_columns($self->TableSpec->added_relationship_column_relspecs,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:593:  $self->$orig(@_);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:596:  $self->primary_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:599:  $self->apply_store_config(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:603:  $self->apply_extconfig(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:606:    quicksearch_mode      => $self->quicksearch_mode,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:607:    allow_set_quicksearch_mode  => $self->allow_set_quicksearch_mode ? \1 : \0
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:612:  $self->onBUILD->($self) if ($self->onBUILD);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:618:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:623:  my @columns = $self->TableSpec->get_colspec_column_names(@colspecs);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:625:  $self->apply_columns(%apply);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:632:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:637:  my @columns = $self->TableSpec->get_except_colspec_column_names(@colspecs);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:639:  $self->apply_columns(%apply);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:646:  my @columns = $self->TableSpec->get_colspec_column_names(@colspecs);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:647:  return $self->delete_columns(@columns);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:657:  my @columns = $self->TableSpec->get_except_colspec_column_names(@colspecs);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:658:  return $self->delete_columns(@columns);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:665:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:670:  my @columns = $self->TableSpec->get_except_colspec_column_names(@colspecs);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:671:  my %apply = map { $_ => { %opt } } grep { exists $self->columns->{$_} } @columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:672:  $self->apply_columns_ordered($indx,%apply);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:678:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:680:  my $Rs = $self->_ResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:683:  $Rs = $self->chain_Rs_req_base_Attr($Rs,$params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:686:  $Rs = $self->chain_Rs_req_id_in($Rs,$params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:689:  $Rs = $self->chain_Rs_req_explicit_resultset($Rs,$params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:692:  $Rs = $self->chain_Rs_req_quicksearch($Rs,$params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:695:  $Rs = $self->chain_Rs_req_multifilter($Rs,$params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:702:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:704:  my $Rs = $self->get_read_records_Rs($params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:706:  # -- Github Issue #10 - SQLite-specific fix --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:707:  local $Rs->result_source->storage->dbh
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:708:    ->{sqlite_see_if_its_a_number} = 1;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:709:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:711:  $Rs = $self->_chain_search_rs($Rs,{},{rows => 1}) if ($self->single_record_fetch);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:714:  my $Rs2 = $self->_chain_search_rs($Rs,undef, { result_class => 'DBIx::Class::ResultClass::HashRefInflator' });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:720:    # -----
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:721:    $rows = [ $self->rs_all($Rs2) ];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:723:    foreach my $row (@$rows) { $row->{$self->record_pk} = $self->generate_record_pk_value($row); }
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:724:    $self->apply_first_records($Rs2,$rows,$params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:725:    # -----
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:728:    $self->c->stash->{query_time} = sprintf('%.2f',$elapsed) . 's';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:732:    $self->handle_dbic_exception($err);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:738:    $total = $self->rs_count($Rs2,$params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:743:    $self->handle_dbic_exception($err);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:749:    query_time => $self->query_time
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:752:  $self->calculate_column_summaries($ret,$Rs,$params) unless($self->single_record_fetch);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:758:# If optional param 'first_records_cond' was supplied, a second query (sub-set of the original)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:762:  return unless ($params && $params->{first_records_cond});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:764:  my $cond = $self->param_decodeIf($params->{first_records_cond},{});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:767:  my $first_rows = [ $self->_chain_search_rs($Rs,$cond)->all ];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:771:    $row->{$self->record_pk} = $self->generate_record_pk_value($row);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:779:  @$first_rows = grep { !$seen{$_->{$self->record_pk}}++ } @$first_rows;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:789:  ## ---------
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:793:  ## we want to happen - TODO: add test cases for this
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:798:    return $orig_resolve_join->($self, $join, $alias, $seen, $jpath, 1)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:802:  ## ---------
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:804:  # ----- GitHub Issue #165
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:805:  # NEW: extract the nested select refs from the special ''/-as structure for
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:806:  # the query, throwing away the outer layer and the -as. This is being done 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:810:  # these ''/-as structures (but this is a TODO to revisit). The only ramification
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:812:  # according to the '-as' name for virtual columns (see also the change further down
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:818:  if(my $sels = $Rs->{attrs}{select}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:819:    @$sels = map { $self->_extract_hash_inner_AS($_) } @$sels
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:821:  # -----
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:825:    @ret = $want ? $Rs->all : scalar $Rs->all
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:830:    my $dbh = $Rs->result_source->schema->storage->dbh;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:831:    my $LRL = $dbh->{LongReadLen} || 80;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:834:      local $dbh->{LongReadLen} = 1024*256;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:836:        '  Caught DBI LongTruncOk/LongReadLen exception and LongReadLen not configured --',
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:837:        "  Trying over with really large LongReadLen : $dbh->{LongReadLen}",
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:840:      @ret = $want ? $self->rs_all($Rs) : scalar $self->rs_all($Rs)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:853:  (ref($h)||'') eq 'HASH' && exists $h->{''} && exists $h->{-as} &&  scalar(keys %$h) == 2
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:856:# extract the nested select ref from the special ''/-as structure
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:859:  $self->_is_special_AS_hash($select) ? $select->{''} : $select
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:869:  my $sqlt_type = $self->ResultSource->schema->storage->sqlt_type || '';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:872:  my @pris = $self->ResultSource->primary_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:885:  return 1 if ($self->single_record_fetch);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:886:  return undef if ($params->{no_total_count});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:889:  return $params->{cached_total_count}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:890:    if($self->cache_total_count && exists $params->{cached_total_count});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:892:  $self->c->stash->{query_count_start} = [gettimeofday];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:894:  #return $self->rs_count_manual($Rs2);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:896:  #return $self->rs_count_via_pager($Rs2);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:897:  #return $self->rs_count_manual($Rs2);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:899:  if(my $col = $self->_count_col) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:901:      $Rs2->search_rs(undef,{ 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:903:        select => { count => join('.',$Rs2->current_source_alias,$col) },
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:906:      ->get_column('count')
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:907:      ->first
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:910:      warn RED . "\n\n" . $self->extract_db_error_from_exception($_) . CLEAR;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:914:      return $self->rs_count_with_fallbacks($Rs2);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:918:  return $self->rs_count_with_fallbacks($Rs2);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:924:  return $Rs2->pager->total_entries;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:927:# -- Alternate way to calculate the total count. The logic in 'pager->total_entries' just
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:932:# putting in the same sub-select, with AS, for each condition into the select which throws a 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:934:# UPDATE: added options to fine-tune behaviors:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:947:    my $cur_select = $Rs2->{attrs}->{select};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:948:    my $cur_as = $Rs2->{attrs}->{as};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:953:      next unless (ref $cur_select->[$i]);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:954:      push @$select, $cur_select->[$i];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:955:      push @$as, $cur_as->[$i];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:964:  $Rs2 = $self->_chain_search_rs($Rs2,{},$attr);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:965:  $Rs2 = $Rs2->as_subselect_rs unless ($opts{no_subselect});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:967:  return $Rs2->count_literal if ($opts{count_literal});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:968:  return $Rs2->count;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:981:      $Rs2->pager->total_entries
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:983:      warn RED . "\n\n" . $self->extract_db_error_from_exception($_) . CLEAR;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:989:        $self->rs_count_manual($Rs2,%$opt)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:991:        $opt->{no_strip_colums} = 1;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:992:        warn RED . "\n\n" . $self->extract_db_error_from_exception($_) . CLEAR;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:997:          $self->rs_count_manual($Rs2,%$opt)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:999:          $opt->{count_literal} = 1;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1000:          warn RED . "\n\n" . $self->extract_db_error_from_exception($_) . CLEAR;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1004:          $self->rs_count_manual($Rs2,%$opt)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1009:    warn RED . "\n\n" . $self->extract_db_error_from_exception($_) . CLEAR;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1017:# --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1021:  my $start = $self->c->stash->{query_count_start} || return undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1023:  $self->c->stash->{query_count_time} = sprintf('%.2f',$elapsed) . 's';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1029:  my $qt = $self->c->stash->{query_time} || return undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1030:  $qt .= '/' . $self->c->stash->{query_count_time} if ($self->c->stash->{query_count_time});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1038:  my $dbh = $self->ResultSource->schema->storage->dbh;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1040:  my $driver = $dbh->{Driver}->{Name};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1043:    my $dbms_name = $dbh->get_info($GetInfoType{SQL_DBMS_NAME});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1062:  if($self->_dbh_driver eq 'mysql') {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1069:  elsif($self->_dbh_driver eq 'SQLite') {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1073:  elsif($self->_dbh_driver eq 'Pg') {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1077:  elsif($self->_dbh_driver eq 'MSSQL') {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1088:  return unless ($params && $params->{column_summaries});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1090:  my $sums = $self->param_decodeIf($params->{column_summaries},{});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1093:  # -- Filter out summaries for cols that weren't requested in 'columns':
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1094:  my $req_cols = $self->c->stash->{req_columns}; #<-- previously calculated in get_req_columns():
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1097:    %$sums = map {$_=>$sums->{$_}} grep {$limit{$_}} keys %$sums;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1099:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1106:  #foreach my $col (@{$Rs->{attrs}->{as}}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1108:    my $sum = $sums->{$col};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1110:      my $dbic_name = $self->resolve_dbic_render_colname($col);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1111:      local $self->{_get_col_summary_select_msg} = undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1112:      my $sel = $self->get_col_summary_select($dbic_name,$sum);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1118:        $extra{$col} = $self->{_get_col_summary_select_msg} || 'BadFunc!'; 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1125:      my $agg = $self->_chain_search_rs($Rs,undef,{
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1129:      })->first or return;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1131:      $ret->{column_summaries} = { %$agg, %extra };
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1134:      $ret->{column_summaries} = \%extra;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1138:    $self->c->log->error("$_");
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1139:    $ret->{column_summaries} = { map {$_=>'FuncError!'} keys %$sums };
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1151:    $func = $self->_named_column_summaries->{$name};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1153:      $self->{_get_col_summary_select_msg} = 'Unsupported' if(exists $self->{_get_col_summary_select_msg});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1162:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1163:  # NEW: Look for and extract the SQL literal from the special ''/-as structure
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1166:  $col = $col->{''} if (
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1169:    && $col->{''} && $col->{'-as'}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1171:  # Normalize to a ScalarRef from several known nested structures (multi-rel vs virtual)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1174:    $col = $col->[0] if (ref($col) eq 'ARRAY');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1177:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1183:  return { uc($func) => $col } if ($func =~ /^[a-zA-Z]+$/);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1200:  my $Rs = shift || $self->_ResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1201:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1214:    page => int($params->{start}/$params->{limit}) + 1,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1215:    rows => $params->{limit}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1218:  my $columns = $self->get_req_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1223:    my $dbic_name = $self->resolve_dbic_colname($col,$attr->{join});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1230:      $used_aliases->{$alias} = {} unless ($used_aliases->{$alias});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1231:      $used_aliases->{$alias}->{$prefix}++ unless($alias eq 'me');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1232:      my $count = scalar(keys %{$used_aliases->{$alias}});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1237:    push @{$attr->{'select'}}, $dbic_name;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1238:    push @{$attr->{'as'}}, $col;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1241:  my @sorts = defined $params->{sorters}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1242:    ? @{$self->param_decodeIf($params->{sorters},[])}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1243:    : $params->{sort}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1244:      ? ({ field => $params->{sort}, direction => (
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1245:        $params->{dir} eq 'DESC' ? 'DESC' : 'ASC'
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1250:    my $field = $sort->{field};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1251:    my $sort_name = $self->resolve_dbic_render_colname($field,$attr->{join});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1253:    # ----- GitHub Issue #165
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1255:    $sort_name = ref($sort_name) ? $self->_extract_virtual_subselect_ref($sort_name) : $sort_name;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1256:    # we can no longer use the '-as' name for sorting with virtual columns because
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1261:    #    unless exists $sort_name->{-as};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1262:    #  $sort_name= $sort_name->{-as};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1264:    # -----
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1265:    my @order_by = ref $attr->{order_by} eq 'HASH'
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1266:      ? ($attr->{order_by})
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1267:      : ref $attr->{order_by} eq 'ARRAY'
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1268:        ? @{$attr->{order_by}}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1270:    push @order_by, { '-' . lc($sort->{direction}) => $sort_name };
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1271:    $attr->{order_by} = \@order_by;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1274:  return $self->_chain_search_rs($Rs,{},$attr);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1279:  return $self->TableSpec->resolve_dbic_colname(@_);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1288:  $self->c->stash->{dbic_render_colnames} = $self->c->stash->{dbic_render_colnames} || {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1289:  my $h = $self->c->stash->{dbic_render_colnames};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1292:  $h->{$name} = $h->{$name} || $self->resolve_dbic_colname($name,$join,$get_render_col);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1294:  return $h->{$name};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1299:  return [] unless ($self->always_fetch_colspec);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1300:  return [ $self->TableSpec->get_colspec_column_names(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1301:    $self->TableSpec->always_fetch_colspec->colspecs
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1304:sub all_always_fetch_columns { uniq( @{(shift)->always_fetch_columns} ) }
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1308:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1312:  $columns = $self->param_decodeIf($params->{$param_name},[]) if (ref($params) eq 'HASH');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1316:  $self->c->stash->{req_columns} = [@$columns];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1318:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1325:    @$columns = grep { $_ ne $self->record_pk } $self->column_name_list;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1327:    #push @$columns, $self->TableSpec->get_colspec_column_names(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1328:    #  $self->TableSpec->include_colspec->colspecs
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1331:    #my %cols_indx = map {$_=>1} $self->column_name_list;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1334:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1336:  push @$columns, $self->all_always_fetch_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1340:  push @$columns, $params->{sort} if ($params->{sort});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1342:  my @exclude = ( $self->record_pk, 'loadContentCnf' );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1344:  push @$columns, @{$self->primary_columns};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1347:  foreach my $col (grep {defined $self->columns->{$_}} @$columns) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1348:    my $req = $self->columns->{$col}->required_fetch_columns or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1349:    push @req_fetch, grep { defined $self->columns->{$_} } @$req;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1354:    my $column = $self->columns->{$col};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1355:    push @exclude, $col if ($column->{no_fetch});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1369:  my $Rs = shift || $self->_ResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1370:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1372:  my $id_in = $self->param_decodeIf($params->{id_in}) or return $Rs;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1378:  return $self->_chain_search_rs($Rs,{ '-or' => [ map { $self->record_pk_cond($_) } @$id_in ] });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1382:  #return $self->_chain_search_rs($Rs,{ '-or' => [ map { $self->record_pk_cond($_) } @$id_in ] })
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1383:  #  if (@{$self->primary_columns} > 1);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1385:  ## If there is really only one primary column we can use '-in' :
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1386:  #my $col = $self->TableSpec->resolve_dbic_colname($self->primary_columns->[0]);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1387:  #return $self->_chain_search_rs($Rs,{ $col => { '-in' => $id_in } });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1394:  my $Rs = shift || $self->_ResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1395:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1397:  my $cond = $self->param_decodeIf($params->{resultset_condition},{});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1398:  my $attr = $self->param_decodeIf($params->{resultset_attr},{});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1405:  if(ref($attr->{select}) eq 'ARRAY') {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1407:    foreach my $sel (@{$attr->{select}}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1408:      if(ref($sel) eq 'ARRAY' and scalar @$sel == 1 and ref($sel->[0]) eq 'ARRAY') {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1409:        push @new, \[ $sel->[0]->[0] ];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1415:    @{$attr->{select}} = @new;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1420:  return $self->_chain_search_rs($Rs,$cond,$attr);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1427:  my $Rs = shift || $self->_ResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1428:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1430:  delete $params->{qs_query} if (defined $params->{qs_query} and $params->{qs_query} eq '');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1431:  my $query = $params->{qs_query} or return $Rs;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1433:  my $fields = $self->param_decodeIf($params->{qs_fields},[]);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1438:  my $mode = $params->{quicksearch_mode} || $self->quicksearch_mode;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1439:  $mode = $self->quicksearch_mode unless ($self->allow_set_quicksearch_mode);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1443:    my $cond = $self->_resolve_quicksearch_condition(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1444:      $field, $query, { mode => $mode, joinref => $attr->{join} }
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1445:    ) or next; #<-- skip for undef (see below)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1450:  # failed pre-validation for all active columns. We need to simulate
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1454:    return $Rs->search_rs(\'1 = 2');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1457:  return $self->_chain_search_rs($Rs,{ '-or' => \@search },$attr);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1464:  my $cnf  = $self->get_column($field) or die "field/column '$field' not found!";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1465:  my $join = $opt->{joinref} or die "missing opt/ref 'joinref'";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1466:  my $mode = $opt->{mode} or die "missing opt 'mode'";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1470:    exists $cnf->{quick_search_exact_only}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1471:    && jstrue($cnf->{quick_search_exact_only})
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1474:  my $dtype    = $cnf->{broad_data_type} || 'text';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1475:  my $dbicname = $self->_extract_hash_inner_AS( $self->resolve_dbic_colname($field,$join) );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1480:  # on a numeric column with a non-numeric value:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1482:    return undef unless $query =~ /^[+-]*[0-9]+$/;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1492:  # Special-case: pre-validate enums (Github Issue #56)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1493:  my $enumVh = $cnf->{enum_value_hash};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1495:    return undef unless ($enumVh->{$query});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1500:  my $strf = $cnf->{search_operator_strf};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1503:  # 'text' is the only type which can do a LIKE (i.e. sub-string)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1505:    ? $self->_op_fuse($dbicname => { $s->('like') => join('%','',$query,'') })
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1506:    : $self->_op_fuse($dbicname => { $s->('=')    => $query });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1516:  my $Rs = shift || $self->_ResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1517:  my $params = shift || $self->c->req->params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1519:  my $multifilter = $self->param_decodeIf($params->{multifilter},[]);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1520:  my $multifilter_frozen = $self->param_decodeIf($params->{multifilter_frozen},[]);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1531:  my $cond = $self->multifilter_to_dbf($multifilter,$attr->{join}) || {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1533:  return $self->_chain_search_rs($Rs,$cond,$attr) unless ($needs_having);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1537:  # any possible interdependent hierachy of '-and'/'-or' conditions. This means that 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1542:  # virtual columns with '-as' and then transform the conditions to reference those 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1543:  # -as/alias names. Also, we need to make sure that each condition exists in the 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1553:  # supports an arbitrary structure. It is doable, but it depends on the real-world
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1558:  # Step 1/3 - add missing selects
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1562:  # (can happen with multi-rels with the same name as a column):
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1563:  @$dbf_active_conditions = sort { !(ref $b->{select}) cmp (ref $a->{select}) } @$dbf_active_conditions;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1567:  my %needed_selects = map { $_->{name} => $_ } @$dbf_active_conditions;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1569:  # ---- Hack/fix for searching non-active virtual columns:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1577:    $hash->{select} = $self->resolve_dbic_colname($hash->{field},{});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1579:  # ----
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1581:  my $cur_select = $Rs->{attrs}->{select};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1582:  my $cur_as = $Rs->{attrs}->{as};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1586:    for (map { try{$_->{-as}} || $_ } @$cur_select);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1591:  push(@$cur_select,$needed_selects{$_}->{select}) 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1592:    and push(@$cur_as,$needed_selects{$_}->{field}) for (keys %needed_selects);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1595:  # Step 2/3 - transform selects:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1598:  my %virtuals = (); #<-- new for Github Issue #51
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1602:    delete $needed_selects{$cur_select->[$i]} if (exists $needed_selects{$cur_select->[$i]});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1603:    push @$as, $cur_as->[$i];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1604:    if (ref $cur_select->[$i]) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1606:      push @$select, $cur_select->[$i];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1608:      $virtuals{$cur_as->[$i]} = $self->_extract_virtual_subselect_ref($cur_select->[$i]);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1612:    push @$select, { '' => $cur_select->[$i], '-as' => $cur_as->[$i] };
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1615:    $map{$cur_select->[$i]} = $cur_as->[$i];
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1619:  # Step 3/3 - transform conditions:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1630:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1632:  # Here we are doing yet another transformation step, which is to duplicate the full sub-select
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1637:  # points-of-failure (which are not yet under test coverage) so for now this is being done using
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1641:  my $virtual_where = 1; #<-- set to 0 to revert to HAVING codepath
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1643:    $cond = $self->_recurse_transform_condition(clone($cond),\%virtuals);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1644:    return $self->_chain_search_rs($Rs,{},{ %$attr,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1656:    return $self->_chain_search_rs($Rs,{},{ %$attr,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1657:      group_by => [ map { 'me.' . $_ } @{$self->primary_columns} ], #<-- safe group_by
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1663:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1670:  my $val = $el->{''} or die "Expected empty-string hashkey";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1672:  # and multi-relationship columns:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1673:  $val = ref($val) eq 'ARRAY' ? $val->[0] : $val;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1677:sub sql_maker { (shift)->ResultSource->schema->storage->sql_maker }
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1686:      $self->_recurse_transform_condition($_,$remap)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1695:        $self->sql_maker,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1696:        $remap->{$k},
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1697:        $self->_recurse_transform_condition($v,$remap)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1698:      ) if($remap->{$k});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1702:      $_ => $self->_recurse_transform_condition($val->{$_},$remap)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1709:# -- Function (and disclaimer) provided by ribasushi for Github Issue #51 --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1718:  my ($lsql, @lbind) = $sm->_recurse_where($l);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1720:  local $sm->{_nested_func_lhs} = {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1721:  my ($rsql, @rbind) = $sm->_recurse_where({ "\0" => $r });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1723:  my ($ql, $qr) = $sm->_quote_chars;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1739:# --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1742:# Common proxy for calls to $Rs->search_rs(...)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1746:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1747:  # Convert {} joins to undef - this prevents ResultSet unititialized warnings when:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1754:    join => $self->_recurse_clean_empty_hashrefs($attr->{join})
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1755:  } if ($attr->{join});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1756:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1758:  $Rs->search_rs($cond,$attr)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1766:      ? { map { $_ => $self->_recurse_clean_empty_hashrefs($val->{$_}) } keys(%$val) }
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1780:  return $self->multifilter_to_dbf({ '-and' => $multi },$join) if (ref($multi) eq 'ARRAY');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1788:  if($f eq '-and' or $f eq '-or') {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1789:    die "-and/-or must reference an ARRAY/LIST" unless (ref($cond) eq 'ARRAY');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1790:    my @list = map { $self->multifilter_to_dbf($_,$join) } @$cond;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1794:  # -- relationship column:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1797:    exists $cond->{is}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1800:  my $column = $self->get_column($f) || {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1801:  $f = $column->{query_search_use_column} || $f;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1802:  $f = $column->{query_id_use_column} || $f if ($is_cond);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1803:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1805:  my $dbfName = $self->resolve_dbic_colname($f,$join)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1806:    or die "Client supplied Unknown multifilter-field '$f' in Ext Query!";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1812:    exists $dbfName->{-as} and 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1813:    exists $dbfName->{''}
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1816:  return $self->multifilter_translate_cond($cond,$dbfName,$f);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1851:  $mf_op_alias{$op} ? $self->_mf_resolve_op($mf_op_alias{$op}) : $op;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1857:  $op = $self->_mf_resolve_op($op);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1865:    $cond = $self->_op_fuse($select => { $s->('like') => join('','%',$val,'%') });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1868:    $cond = $self->_op_fuse($select => { $s->('like') => join('',$val,'%') });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1871:    $cond = $self->_op_fuse($select => { $s->('like') => join('','%',$val) });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1874:    $cond = { -or => [ # NOT LIKE -OR- NULL
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1875:      $self->_op_fuse($select => { $s->('not like') => join('','%',$val,'%') }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1877:      # is treated special by SQLA - becomes "IS NULL" etc... (#97)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1878:      $self->_op_fuse($select => { '=' => undef }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1882:    $cond = { -or => [ # NOT LIKE -OR- NULL
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1883:      $self->_op_fuse($select => { $s->('not like') => join('',$val,'%') }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1884:      $self->_op_fuse($select => { '=' => undef }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1888:    $cond = { -or => [ # NOT LIKE -OR- NULL
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1889:      $self->_op_fuse($select => { $s->('not like') => join('','%',$val) }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1890:      $self->_op_fuse($select => { '=' => undef }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1894:    $cond = $self->_op_fuse($select => { '=' => undef });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1897:    $cond = $self->_op_fuse($select => { $s->('=') => '' });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1900:    $cond = $self->_op_fuse($select => { '!=' => undef });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1903:    $cond = $self->_op_fuse($select => { $s->('!=') => '' });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1906:    $cond = { -or => [
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1907:      $self->_op_fuse($select => { '=' => undef }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1908:      $self->_op_fuse($select => { $s->('=') => '' })
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1912:    $cond = { -and => [
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1913:      $self->_op_fuse($select => { '!=' => undef }),
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1914:      $self->_op_fuse($select => { $s->('!=') => '' })
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1918:    # Re-call with with the val as the op:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1919:    $cond = $self->_mf_get_cond($select, $val);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1922:    $cond = $self->_op_fuse($select => { $op => $val });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1930:  &_binary_op_fuser($self->sql_maker, @_)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1934:# -- multifilter_translate_cond()
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1935:#    - refactored for #88 and #89
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1936:#    - previously modified for #69 and #51
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1942:  my $column = try{$self->get_column($field)} || {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1945:  my ($select,$as) = ((ref $dbfName||'') eq 'HASH' && $dbfName->{-as} && $dbfName->{''})
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1946:    ? ($dbfName->{''} => $dbfName->{-as} )
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1949:  # -- TODO - this is legacy and needs to be investigated and removed
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1956:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1964:  $v = $self->inflate_multifilter_date($v) if(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1965:    $column->{multifilter_type} &&
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1966:    $column->{multifilter_type} =~ /^date/
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1969:  # New for GitHub #97 - pass in optional new search_operator_strf param
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1970:  return $self->_mf_get_cond($select, $k, $v,$column->{search_operator_strf});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1979:  $keyword =~ s/\s*//g; #<-- stip whitespace from the keyword
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1980:  $keyword = lc($keyword); #<-- lowercase it
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1982:  my $dt = DateTime->now( time_zone => 'local' );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1987:  elsif($kw eq 'thisminute') { return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1988:    year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1989:    month  => $dt->month,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1990:    day    => $dt->day,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1991:    hour  => $dt->hour,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1992:    minute  => $dt->minute,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1997:  elsif($kw eq 'thishour') { return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1998:    year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:1999:    month  => $dt->month,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2000:    day    => $dt->day,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2001:    hour  => $dt->hour,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2007:  elsif($kw eq 'thisday') { return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2008:    year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2009:    month  => $dt->month,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2010:    day    => $dt->day,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2018:  elsif($kw eq 'today') { return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2019:    year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2020:    month  => $dt->month,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2021:    day    => $dt->day,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2029:    my $day = $dt->day_of_week;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2030:    #$day++; $day = 1 if ($day > 7); #<-- shift day 1 from Monday to Sunday
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2031:    $dt = $dt->subtract( days => ($day - 1) );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2032:    return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2033:      year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2034:      month  => $dt->month,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2035:      day    => $dt->day,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2043:  elsif($kw eq 'thismonth') { return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2044:    year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2045:    month  => $dt->month,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2054:    my $month = $dt->month;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2057:      $subtract = $month - 1;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2060:      $subtract = $month - 4;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2063:      $subtract = $month - 7;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2066:      $subtract = $month - 10;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2069:    $dt = $dt->subtract( months => $subtract );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2070:    return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2071:      year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2072:      month  => $dt->month,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2081:  elsif($kw eq 'thisyear') { return DateTime->new(
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2082:    year  => $dt->year,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2105:  my $dt = $self->multifilter_date_getKeywordDt($v);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2106:  return $dt->ymd . ' ' . $dt->hms if ($dt);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2110:  my @parts = split(/[\-\+]/,$v);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2114:    $v =~ s/^${keyword}//; #<-- strip out the keyword from the string value
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2115:    $keyword =~ s/\s*//g; #<-- stip whitespace from the keyword
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2116:    $keyword = lc($keyword); #<-- lowercase it
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2118:    $dt = $self->multifilter_date_getKeywordDt($keyword);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2121:    $dt = $self->multifilter_date_getKeywordDt('now');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2125:  return $orig_v unless ($dt && ($sign eq '-' || $sign eq '+'));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2158:  my $method = ($sign eq '-') ? 'subtract' : 'add';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2160:  my $map = $self->inflate_multifilter_date_unit_map;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2163:    my $interval = $map->{$part->{unit}} or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2164:    my $newDt = $dt->$method( $interval => $part->{num} ) or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2171:  return $dt->ymd . ' ' . $dt->hms;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2217:    $self->ResultClass->result_source_instance->can('is_virtual') &&
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2218:    $self->ResultClass->result_source_instance->is_virtual
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2227:    $self->TableSpec->updated_column_order,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2228:    'loadContentCnf', #<-- specific to AppGrid2
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2229:    $self->record_pk
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2234:    reload_on_save => $self->reload_on_save,
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2239:  $store_params->{create_handler}  = RapidApp::Handler->new( scope => $self, method => '_dbiclink_create_records' ) if (
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2240:    defined $self->creatable_colspec and 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2241:    not $self->can('create_records')
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2244:  $store_params->{update_handler}  = RapidApp::Handler->new( scope => $self, method => '_dbiclink_update_records' ) if (
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2245:    defined $self->updatable_colspec and 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2246:    not $self->can('update_records')
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2249:  $store_params->{destroy_handler}  = RapidApp::Handler->new( scope => $self, method => '_dbiclink_destroy_records' ) if (
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2250:    defined $self->destroyable_relspec and 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2251:    not $self->can('destroy_records')
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2255:  if($self->is_virtual_source) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2256:    exists $store_params->{create_handler}  && delete $store_params->{create_handler};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2257:    exists $store_params->{destroy_handler} && delete $store_params->{destroy_handler};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2258:    $self->apply_flags( can_create  => 0 );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2259:    $self->apply_flags( can_destroy => 0 );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2265:  %{$self->DataStore_build_params} = ( %$store_params, %{$self->DataStore_build_params} );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2277:  if($Row->isa('DBIx::Class::ResultSet')) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2279:    my $str = ref($Rs) . ' [' . $Rs->count . ' rows]';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2282:    $str .= "\n " . $self->get_Row_Rs_label($_) for ($Rs->all);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2286:  my $Source = $Row->result_source;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2287:  my @keys = $Source->primary_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2288:  my $data = { $Row->get_columns };
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2291:  $str .= $_ . ': ' . $data->{$_} . ' ' for (@keys);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2300:# It then re-runs a read_records to tell the client what the new values are.
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2307:  my $declared_columns = $self->param_decodeIf($self->c->req->params->{columns});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2310:  # -- current real/valid columns according to DataStore2:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2311:  my %cols_indx = map {$_=>1} $self->column_name_list;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2312:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2317:  #my $Rs = $self->ResultSource->resultset;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2318:  my $Rs = $self->baseResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2327:  # were the original values, and it can change the data in an inconsistent/non-atomic way.
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2330:  # this currently only breaks in edge-cases (and where an incorrect/non-sensible set of colspecs
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2332:  # -- ^^^ --- UPDATE: I believe that I have solved this problem by now pushing rows into
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2337:    $self->ResultSource->schema->txn_do(sub {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2339:        my $pkVal= $data->{$self->record_pk};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2340:        defined $pkVal or die ref($self)."->update_records: Record is missing primary key '".$self->record_pk."'";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2341:        my $BaseRow = $Rs->search($self->record_pk_cond($pkVal))->next or die usererr "Failed to find row by record_pk: $pkVal";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2343:        # -- Filter out the supplied data packet according to the supplied 'columns' parameter
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2351:          %$data = map { $_ => $data->{$_} } grep { $limit_columns->{$_} } keys %$data;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2353:        # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2355:        my @columns = grep { $_ ne $self->record_pk && $_ ne 'loadContentCnf' } keys %$data;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2357:        @columns = $self->TableSpec->filter_updatable_columns(@columns);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2359:        # -- Limit to current real/valid columns according to DataStore2:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2361:        # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2363:        my @update_queue = $self->prepare_record_updates($BaseRow,\@columns,$data);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2366:        $self->process_update_queue(@update_queue);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2369:        my $newPkVal = $self->generate_record_pk_value({ $BaseRow->get_columns });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2377:    $self->handle_dbic_exception($err);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2378:    #die usererr rawhtml $self->make_dbic_exception_friendly($err), title => 'Database Error';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2381:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2383:  delete $self->c->req->params->{ $self->_rst_qry_param } if (
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2385:    exists $self->c->req->params->{ $self->_rst_qry_param }
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2387:  my $newdata = $self->DataStore->read({
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2388:    columns => [ keys %{ $arr->[0] } ], 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2391:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2393:  ## ----------------
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2398:    my %pkRowMap = map { $_->{$self->record_pk} => $_ } @{$newdata->{rows}};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2405:    @{$newdata->{rows}} = map { $pkRowMap{$_} } @updated_keyvals;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2407:  ## ----------------
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2410:  # -- Restore the original record_pk, if it changed, and put the new value in another key.
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2411:  # This is needed to make sure the client can keep track of which row is which. Code in datastore-plus
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2415:  foreach my $row (@{$newdata->{rows}}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2416:    my $newPkVal = $row->{$self->record_pk};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2418:    $row->{$self->record_pk . '_new'} = $row->{$self->record_pk};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2419:    $row->{$self->record_pk} = $oldPkVal;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2421:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2434:  my $lock_keys = $self->_get_rs_lock_keys;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2438:    if(my $chg = $upd->{change}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2442:      exists $chg->{$_} and delete $chg->{$_} for (@excl);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2443:      $upd->{row}->update($chg);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2445:    elsif($upd->{rel_update}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2448:      $self->apply_virtual_rel_col_update($upd->{row},$upd->{rel_update});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2461:  my $Source = $UpdRow->result_source;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2465:    my $info = $Source->relationship_info($colname) or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2466:    my $m2m_attrs = $info->{attrs}->{m2m_attrs} or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2470:    $UpdRow->can($method) or die "Row '" . ref($UpdRow) . 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2471:      "' missing expected many_to_many method '$method' - cannot update m2m data for '$colname'!";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2473:    my @ids = split(/\s*,\s*/,$update->{$colname});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2475:    my $Rs = $Source->schema->source($m2m_attrs->{rrinfo}->{source})->resultset;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2476:    my $keycol = $m2m_attrs->{rrinfo}->{cond_info}->{foreign};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2478:    my @rrows = $self->_chain_search_rs($Rs,{ $keycol => { '-in' => \@ids }})->all;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2481:    scream_color(WHITE.ON_BLUE.BOLD,"  --> Setting '$colname' m2m links (count: $count)")
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2482:      if($self->c->debug);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2484:    $UpdRow->$method(\@rrows);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2499:  $self->TableSpec->walk_columns_deep(sub {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2507:    my $UpdRow = $rel ? $Row->$rel : $Row;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2510:    # ---- New partial/preliminary auto create relationship support
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2512:    # 1st-level relationships that don't already exist that are listed in the
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2519:    my %ucrls = map {$_=>1} @{$self->update_create_rels};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2521:      $UpdRow = $Row->create_related($rel,{})->get_from_storage;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2522:      my $msg = 'Auto CREATED RELATED -> ' . $self->get_Row_Rs_label($UpdRow) . "\n";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2523:      scream_color(WHITE.ON_GREEN.BOLD,$msg) if($self->c->debug);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2526:    # ----
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2529:    my %update = map { $_ => $data->{ $_{name_map}->{$_} } } keys %{$_{name_map}};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2531:    # --- Need to do a map and a grep here; map to remap the values, and grep to prevent
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2533:    my $alias = { %{ $TableSpec->column_data_alias } };
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2534:    # -- strip out aliases that are identical to the original value. This will happen in the special
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2537:    $_ eq $alias->{$_} and delete $alias->{$_} for (keys %$alias);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2538:    # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2540:    %update = map { $alias->{$_} ? $alias->{$_} : $_ => $update{$_} } grep { !$revalias{$_} } keys %update;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2541:    # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2545:        if($self->c->debug);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2552:        my $relf = '<span style="font-weight:bold;color:navy;">' . $rel . '</span>';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2553:        my $cols = '<span style="font-family:monospace;font-size:.85em;">' . join(', ',keys %update) . '</span>';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2554:        my $html = '<span style="font-size:1.3em;">' .
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2557:        die usererr rawhtml $html, title => "Can't update fields of non-existant related '$rel' ";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2562:    if ($UpdRow->isa('DBIx::Class::ResultSet')) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2564:        if($self->c->debug); 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2569:    # --- pull out updates to virtual relationship columns
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2570:    my $Source = $UpdRow->result_source;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2572:    (!$Source->has_column($_) && $Source->has_relationship($_)) and
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2573:      $relcol_updates->{$_} = delete $update{$_} for (keys %update);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2577:    # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2583:      my %current = $UpdRow->get_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2591:        $change->{$col} = $update{$col};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2594:      my $msg = 'Will UPDATE -> ' . $self->get_Row_Rs_label($UpdRow) . "\n";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2596:        my $t = Text::TabularDisplay->new(qw(column old new));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2597:        $t->add($_,print_trunc(60,$current{$_}),print_trunc(60,$change->{$_})) for (keys %$change);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2598:        $msg .= $t->render;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2603:      scream_color(WHITE.ON_BLUE.BOLD,$msg) if($self->c->debug);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2622:  foreach my $rel (grep { ref($hash->{$_}) eq 'HASH' } keys %$hash) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2623:    my $rel_TableSpec = $TableSpec->related_TableSpec->{$rel} or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2624:    $hash->{$rel} = $self->hashtree_col_alias_map_deep($hash->{$rel},$rel_TableSpec);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2627:  # -- Need to do a map and a grep here; map to remap the values, and grep to prevent
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2629:  my $alias = $TableSpec->column_data_alias;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2630:  my %revalias = map {$_=>1} grep {!exists $hash->{$_}} values %$alias;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2631:  %$hash = map { $alias->{$_} ? $alias->{$_} : $_ => $hash->{$_} } grep { !$revalias{$_} } keys %$hash;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2632:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2634:  # --- remap special m2m relationship column values:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2636:  my $Source = $TableSpec->ResultSource;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2638:    next if ($Source->has_column($col));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2639:    my $info = $Source->relationship_info($col) or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2640:    my $m2m_attrs = $info->{attrs}->{m2m_attrs} or next;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2641:    my $keycol = $m2m_attrs->{rrinfo}->{cond_info}->{foreign};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2643:    my @ids = split(/\s*,\s*/,$hash->{$col});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2646:    $hash->{$col} = [ map { { $keycol => $_ } } @ids ]; 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2648:  # ---
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2662:  #my $Rs = $self->ResultSource->resultset;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2663:  my $Rs = $self->baseResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2665:  # create_columns turned off in 080-DataStore.js - 2014-11-24 by HV
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2666:  #my @req_columns = $self->get_req_columns(undef,'create_columns');
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2667:  my @req_columns = $self->get_req_columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2669:  # -- current real/valid columns according to DataStore2:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2670:  my %cols_indx = map {$_=>1} $self->column_name_list;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2671:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2676:    $self->ResultSource->schema->txn_do(sub {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2680:        %$data = ( %$data, %{$self->_CreateData} );
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2682:        @columns = grep { $_ ne $self->record_pk && $_ ne 'loadContentCnf' } @columns;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2683:        @columns = $self->TableSpec->filter_creatable_columns(@columns);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2685:        # -- Limit to current real/valid columns according to DataStore2:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2687:        # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2689:        my $relspecs = $self->TableSpec->columns_to_relspec_map(@columns);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2694:          $create_hash->{$rel} = {} unless (defined $create_hash->{$rel}); 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2695:          exists $data->{$_->{orig_colname}} and $create_hash->{$rel}->{$_->{local_colname}} = $data->{$_->{orig_colname}} 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2696:            for (@{$relspecs->{$rel}});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2699:        my $create = delete $create_hash->{''} || {};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2702:        # -- Recursively remap column_data_alias:
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2703:        $create = $self->hashtree_col_alias_map_deep($create,$self->TableSpec);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2704:        # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2706:        my $msg = 'CREATE -> ' . ref($Rs) . "\n";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2708:          my $t = Text::TabularDisplay->new(qw(column value));
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2709:          #$t->add($_,ref $create->{$_} ? Dumper($create->{$_}) : $create->{$_} ) for (keys %$create);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2710:          #$t->add($_,disp(sub{ ref $_ ? Dumper($_) : undef },$create->{$_}) ) for (keys %$create);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2711:          $t->add($_,print_trunc(60,$create->{$_})) for (keys %$create);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2712:          $msg .= $t->render;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2717:        scream_color(WHITE.ON_GREEN.BOLD,$msg) if($self->c->debug);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2718:        my $Row = $Rs->create($create);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2720:        push @updated_keyvals, $self->generate_record_pk_value({ $Row->get_columns });
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2726:    $self->handle_dbic_exception($err);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2727:    #die usererr rawhtml $self->make_dbic_exception_friendly($err), title => 'Database Error';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2730:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2732:  delete $self->c->req->params->{ $self->_rst_qry_param } if (
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2734:    exists $self->c->req->params->{ $self->_rst_qry_param }
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2736:  my $newdata = $self->DataStore->read({
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2740:  # --
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2743:    title => 'Create Failed' unless ($newdata && $newdata->{results});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2761:  #my $Rs = $self->ResultSource->resultset;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2762:  my $Rs = $self->baseResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2765:    $self->ResultSource->schema->txn_do(sub {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2768:        my $Row = $Rs->search($self->record_pk_cond($pk))->next or die usererr "Failed to find row by record_pd: $pk";
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2770:        foreach my $rel (reverse sort @{$self->destroyable_relspec}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2772:            $rel =~ /^[a-zA-Z0-9\-\_]+$/ 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2773:            and $Row->can($rel)
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2776:          my $relObj = $Row->$rel;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2778:          scream_color(WHITE.ON_RED.BOLD,'DbicLink2 DESTROY --> ' . ref($Row) . '->' . $rel . ' --> ' .$self->get_Row_Rs_label($relObj,1) . "\n") if($self->c->debug);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2779:          $relObj->can('delete_all') ? $relObj->delete_all : $relObj->delete;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2781:        scream_color(WHITE.ON_RED.BOLD,'DbicLink2 DESTROY --> ' . $self->get_Row_Rs_label($Row,1) . "\n")
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2782:          if($self->c->debug);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2783:        $Row->delete;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2789:    $self->handle_dbic_exception($err);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2790:    #die usererr rawhtml $self->make_dbic_exception_friendly($err), title => 'Database Error';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2821:  my $msg = $self->extract_db_error_from_exception($exception);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2822:  $msg = $msg ? "$msg\n\n----------------\n" : '';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2829:  #die usererr rawhtml $self->make_dbic_exception_friendly($exception), title => 'DbicLink2 Database Error';
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2871:    $decoded = $self->json->decode($param);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2881:# This is a DbicLink2-specific implementation of batch_update. Overrides generic method 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2887:  $self->before_batch_update;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2889:  my $editSpec = $self->param_decodeIf($self->c->req->params->{editSpec});
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2890:  my $read_params = $editSpec->{read_params};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2891:  my $update = $editSpec->{update};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2893:  delete $read_params->{start};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2894:  delete $read_params->{limit};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2896:  my %orig_params = %{$self->c->req->params};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2897:  %{$self->c->req->params} = %$read_params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2898:  my $Rs = $self->get_read_records_Rs($read_params);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2899:  %{$self->c->req->params} = %orig_params;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2902:  delete $Rs->{attrs}->{select};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2903:  delete $Rs->{attrs}->{as};
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2905:  my $total = $Rs->pager->total_entries;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2908:    $editSpec->{count} . ' vs ' . $total . ') ' .
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2909:    "- This can happen if someone else modified one or more of the records in the update set.\n\n" .
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2911:  unless ($editSpec->{count} == $total);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2913:  my @columns = grep { $_ ne $self->record_pk && $_ ne 'loadContentCnf' } keys %$update;
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2914:  @columns = $self->TableSpec->filter_updatable_columns(@columns);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2917:    $self->ResultSource->schema->txn_do(sub {
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2921:      push(@update_queue, $self->prepare_record_updates($_,\@columns,$update,$ignore_current)) 
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2922:        for ($Rs->all);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2925:      $self->process_update_queue(@update_queue);
lib/RapidApp/Module/StorCmp/Role/DbicLnk.pm:2930:    $self->handle_dbic_exception($err);
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:21:  my $id = $self->c->req->params->{$self->record_pk};
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:22:  if (not defined $id and $self->c->req->params->{orig_params}) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:23:    my $orig_params = $self->json->decode($self->c->req->params->{orig_params});
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:24:    $id = $orig_params->{$self->record_pk};
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:33:  my $value = $self->supplied_id or return $Rs;
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:34:  return $Rs->search_rs($self->record_pk_cond($value));
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:40:  my $Rs = $self->_ResultSet;
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:42:  my $supId = $self->supplied_id;
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:44:    unless (defined $supId || defined $self->c->req->params->{$self->_rst_qry_param});
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:46:  my $count = $Rs->count;
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:49:    my $idErr = defined $supId ? "id: '$supId'" : "'" . $self->c->req->params->{$self->_rst_qry_param} . "'";
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:57:  my $Row = $Rs->first or return undef;
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:59:  if ($self->getTabTitle) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:60:    my $title = $self->getTabTitle->($self,$Row);
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:61:    $self->apply_extconfig( tabTitle => $title ) if ($title);
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:64:  if ($self->getTabIconCls) {
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:65:    my $iconCls = $self->getTabIconCls->($self,$Row);
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:66:    $self->apply_extconfig( tabIconCls => $iconCls ) if ($iconCls);
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:72:  my $ovr = $self->c->stash->{apply_extconfig};
lib/RapidApp/Module/StorCmp/Role/DbicLnk/RowPg.pm:73:  $self->apply_extconfig( %$ovr ) if ($ovr);
lib/RapidApp/Module/StorCmp/Role/SavedSearch.pm:11:#### --------------------- ####
lib/RapidApp/Module/StorCmp/Role/SavedSearch.pm:16:  $self->add_ONREQUEST_calls_early('run_load_saved_search');
lib/RapidApp/Module/StorCmp/Role/SavedSearch.pm:23:  return unless ($self->can('load_saved_search'));
lib/RapidApp/Module/StorCmp/Role/SavedSearch.pm:26:    $self->Module('store'); # <-- Make sure store has already called ONREQUEST
lib/RapidApp/Module/StorCmp/Role/SavedSearch.pm:27:    $self->load_saved_search;
lib/RapidApp/Module/StorCmp/Role/SavedSearch.pm:31:    $self->set_response_warning({
lib/RapidApp/Module/StorCmp/Role/SavedSearch.pm:43:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/Module/TemplateTree.pm:23:sub TC { (shift)->c->template_controller }
lib/RapidApp/Module/TemplateTree.pm:27:  my $items = $self->template_tree_items;
lib/RapidApp/Module/TemplateTree.pm:28:  return $self->folder_convert($items);
lib/RapidApp/Module/TemplateTree.pm:34:  my $TC = $self->TC;
lib/RapidApp/Module/TemplateTree.pm:35:  my $templates = $TC->get_Provider->list_templates($self->template_regex);
lib/RapidApp/Module/TemplateTree.pm:40:      id => 'tpl-' . $template,
lib/RapidApp/Module/TemplateTree.pm:44:      iconCls => 'ra-icon-page-white-world',
lib/RapidApp/Module/TemplateTree.pm:45:      loadContentCnf => { autoLoad => { url => join('/',$TC->tpl_path,$template) }},
lib/RapidApp/Module/TemplateTree.pm:49:    $self->apply_tpl_node($cnf);
lib/RapidApp/Module/TemplateTree.pm:59:  my $template = $node->{name} or return;
lib/RapidApp/Module/TemplateTree.pm:62:    iconCls => 'ra-icon-page-white',
lib/RapidApp/Module/TemplateTree.pm:65:      $node->{text},
lib/RapidApp/Module/TemplateTree.pm:68:  ) if $self->TC->Access->template_external_tpl($template);
lib/RapidApp/Module/TemplateTree.pm:82:      id      => 'tpl-list',
lib/RapidApp/Module/TemplateTree.pm:84:      expanded  => $self->default_expanded ? \1 : \0,
lib/RapidApp/Module/TemplateTree.pm:86:    $items->[0]->{children} = $self->folder_template_tree_items
lib/RapidApp/Module/TemplateTree.pm:87:      if ($self->default_expanded);
lib/RapidApp/Module/TemplateTree.pm:91:    # 'root/tpl-list' above:
lib/RapidApp/Module/TemplateTree.pm:92:    $items = $self->folder_template_tree_items;
lib/RapidApp/Module/TemplateTree.pm:106:    my @parts = split(/\//,$item->{name});
lib/RapidApp/Module/TemplateTree.pm:117:          id => 'tpl-' . $folder . '/',
lib/RapidApp/Module/TemplateTree.pm:120:          expanded  => $self->default_expanded ? \1 : \0,
lib/RapidApp/Module/TemplateTree.pm:123:        $self->apply_tpl_node($cnf);
lib/RapidApp/Module/TemplateTree.pm:124:        delete $cnf->{iconCls} if (exists $cnf->{iconCls});
lib/RapidApp/Module/TemplateTree.pm:125:        $seen{$folder} = $cnf->{children};
lib/RapidApp/Module/TemplateTree.pm:135:    $self->apply_tpl_node($new);
lib/RapidApp/Module/Tree.pm:13:has 'add_button_iconCls' => ( is => 'ro', isa => 'Str', default => 'ra-icon-add' );
lib/RapidApp/Module/Tree.pm:15:has 'delete_button_iconCls' => ( is => 'ro', isa => 'Str', default => 'ra-icon-delete' );
lib/RapidApp/Module/Tree.pm:23:# Double-pane tree - useful for drag/drop
lib/RapidApp/Module/Tree.pm:36:  $self->apply_extconfig(
lib/RapidApp/Module/Tree.pm:44:    use_contextmenu    => jstrue($self->use_contextmenu) ? \1 : \0,
lib/RapidApp/Module/Tree.pm:45:    no_dragdrop_menu    => jstrue($self->no_dragdrop_menu) ? \1 : \0,
lib/RapidApp/Module/Tree.pm:46:    setup_tbar        => jstrue($self->setup_tbar) ? \1 : \0,
lib/RapidApp/Module/Tree.pm:47:    no_recursive_delete  => jstrue($self->no_recursive_delete) ? \1 : \0,
lib/RapidApp/Module/Tree.pm:48:    no_recursive_copy    => jstrue($self->no_recursive_copy) ? \1 : \0,
lib/RapidApp/Module/Tree.pm:49:    double_tree        => jstrue($self->double_tree) ? \1 : \0,
lib/RapidApp/Module/Tree.pm:50:    ddAppendOnly      => jstrue($self->ddAppendOnly) ? \1 : \0,
lib/RapidApp/Module/Tree.pm:53:  $self->apply_extconfig( extra_node_actions => $self->extra_node_actions ) if ($self->extra_node_actions);
lib/RapidApp/Module/Tree.pm:55:  $self->apply_extconfig(
lib/RapidApp/Module/Tree.pm:56:    add_node_text       => $self->add_button_text,
lib/RapidApp/Module/Tree.pm:57:    add_node_iconCls    => $self->add_button_iconCls,
lib/RapidApp/Module/Tree.pm:58:    delete_node_text    => $self->delete_button_text,
lib/RapidApp/Module/Tree.pm:59:    delete_node_iconCls  => $self->delete_button_iconCls
lib/RapidApp/Module/Tree.pm:62:  $self->apply_actions( nodes   => 'call_fetch_nodes' );
lib/RapidApp/Module/Tree.pm:63:  $self->apply_actions( node   => 'call_fetch_node' ) if ($self->can('fetch_node'));
lib/RapidApp/Module/Tree.pm:65:  if($self->op_available('add_node')) {
lib/RapidApp/Module/Tree.pm:66:    $self->apply_actions( add   => 'call_add_node' );
lib/RapidApp/Module/Tree.pm:67:    $self->apply_extconfig( add_node_url => $self->suburl('add') );
lib/RapidApp/Module/Tree.pm:70:  if($self->op_available('delete_node')) {
lib/RapidApp/Module/Tree.pm:71:    $self->apply_actions( delete   => 'call_delete_node' ); 
lib/RapidApp/Module/Tree.pm:72:    $self->apply_extconfig( delete_node_url => $self->suburl('delete') );
lib/RapidApp/Module/Tree.pm:75:  if($self->op_available('rename_node')) {
lib/RapidApp/Module/Tree.pm:76:    $self->apply_actions( rename   => 'call_rename_node' );
lib/RapidApp/Module/Tree.pm:77:    $self->apply_extconfig( rename_node_url => $self->suburl('rename') );
lib/RapidApp/Module/Tree.pm:80:  if($self->op_available('copy_node')) {
lib/RapidApp/Module/Tree.pm:81:    $self->apply_actions( copy => 'call_copy_node' );
lib/RapidApp/Module/Tree.pm:82:    $self->apply_extconfig( copy_node_url => $self->suburl('copy') );
lib/RapidApp/Module/Tree.pm:85:  if($self->op_available('move_node')) {
lib/RapidApp/Module/Tree.pm:86:    $self->apply_actions( move => 'call_move_node' );
lib/RapidApp/Module/Tree.pm:87:    $self->apply_extconfig( move_node_url => $self->suburl('move') );
lib/RapidApp/Module/Tree.pm:90:  if($self->op_available('expand_node')) {
lib/RapidApp/Module/Tree.pm:91:    $self->apply_actions( expand   => 'call_expand_node' );
lib/RapidApp/Module/Tree.pm:92:    $self->apply_extconfig( expand_node_url => $self->suburl('expand') );
lib/RapidApp/Module/Tree.pm:95:  $self->add_ONREQUEST_calls('init_onreq');
lib/RapidApp/Module/Tree.pm:101:  $self->can($op_name)
lib/RapidApp/Module/Tree.pm:109:  my $content = $self->$orig(@_);
lib/RapidApp/Module/Tree.pm:111:  return $content unless ($self->double_tree);
lib/RapidApp/Module/Tree.pm:117:    style => { 'background-color' => '#f0f0f0' },
lib/RapidApp/Module/Tree.pm:139:        id => $content->{id} . '2',
lib/RapidApp/Module/Tree.pm:152:  $self->apply_extconfig(
lib/RapidApp/Module/Tree.pm:153:    id            => $self->instance_id,
lib/RapidApp/Module/Tree.pm:154:    dataUrl        => $self->suburl('/nodes'),
lib/RapidApp/Module/Tree.pm:155:    rootVisible      => $self->show_root_node ? \1 : \0,
lib/RapidApp/Module/Tree.pm:156:    root          => $self->root_node,
lib/RapidApp/Module/Tree.pm:157:    tbar          => $self->tbar,
lib/RapidApp/Module/Tree.pm:160:  my $node = $self->init_jump_to_node or return;
lib/RapidApp/Module/Tree.pm:162:  $self->add_listener( 
lib/RapidApp/Module/Tree.pm:163:    afterrender => RapidApp::JSONFunc->new( raw => 1, func => 
lib/RapidApp/Module/Tree.pm:176:  $node = $self->root_node_name if ($self->show_root_node);
lib/RapidApp/Module/Tree.pm:177:  $node = $self->c->req->params->{node} if ($self->c->req->params->{node});
lib/RapidApp/Module/Tree.pm:185:# Auto-sets 'expanded' on nodes with child nodes (only applies to children nodes
lib/RapidApp/Module/Tree.pm:214:has 'root_node_text'    => ( is => 'ro', lazy => 1, default => sub { (shift)->root_node_name; } );
lib/RapidApp/Module/Tree.pm:224:  my $node = shift; #<-- path of a parent node
lib/RapidApp/Module/Tree.pm:227:  return undef unless (exists $n->{id});
lib/RapidApp/Module/Tree.pm:230:    if($n->{id} eq $node);
lib/RapidApp/Module/Tree.pm:235:  $n->{id} = $node . '/' . $n->{id} unless ($n->{id} =~ /^\Q${node}\E/);
lib/RapidApp/Module/Tree.pm:238:  # made "leaf" nodes and get a stupid, non-folder default icon
lib/RapidApp/Module/Tree.pm:239:  # http://www.sencha.com/forum/showthread.php?92553-Async-tree-make-empty-nodes-appear-as-quot-nodes-quot-not-quot-leaves-quot&p=441294&viewfull=1#post441294
lib/RapidApp/Module/Tree.pm:240:  $n->{cls} = 'x-tree-node-collapsed' unless (exists $n->{cls});
lib/RapidApp/Module/Tree.pm:243:  $n->{expanded} = \1 if ($n->{expand} and ! exists $n->{expanded});
lib/RapidApp/Module/Tree.pm:245:  $n->{leaf} = \1 if (exists $n->{allowChildren} and ! jstrue($n->{allowChildren}));
lib/RapidApp/Module/Tree.pm:247:  $n->{loaded} = \1 if(jstrue($n->{leaf}) and ! exists $n->{loaded});
lib/RapidApp/Module/Tree.pm:256:# be deeper than this value, but it wouldn't be fetch-able in a single request
lib/RapidApp/Module/Tree.pm:263:  my $node = shift || $self->c->req->params->{node};
lib/RapidApp/Module/Tree.pm:266:  die usererr "max_node_path_depth (" . $self->max_node_path_depth . ") exceeded ($node)" 
lib/RapidApp/Module/Tree.pm:267:    if (scalar(@node_pth)  > $self->max_node_path_depth);
lib/RapidApp/Module/Tree.pm:274:    if($DEEP_FETCH_DEPTH > $self->max_recursive_fetch_depth);
lib/RapidApp/Module/Tree.pm:279:  my $nodes = clone($self->fetch_nodes($node));
lib/RapidApp/Module/Tree.pm:283:  # -- New: automatically test/exclude nodes according to 'require_role'
lib/RapidApp/Module/Tree.pm:285:    ! $_->{require_role} or
lib/RapidApp/Module/Tree.pm:286:    $self->role_checker->($self->c,$_->{require_role})
lib/RapidApp/Module/Tree.pm:287:  } @$nodes if ($self->role_checker);
lib/RapidApp/Module/Tree.pm:288:  # --
lib/RapidApp/Module/Tree.pm:296:    die "Invalid node definition: duplicate id ($n->{id}): " . Dumper($n)
lib/RapidApp/Module/Tree.pm:297:      if($n->{id} && $seen_id{$n->{id}}++);
lib/RapidApp/Module/Tree.pm:299:    $self->prepare_node($n,$node);
lib/RapidApp/Module/Tree.pm:308:  if (jstrue($n->{leaf}) or (exists $n->{allowChildren} and ! jstrue($n->{allowChildren}))) {
lib/RapidApp/Module/Tree.pm:309:    $n->{loaded} = \1 unless (exists $n->{loaded});
lib/RapidApp/Module/Tree.pm:314:    $self->apply_path_specific_node_opts($parent,$n) or return $n;
lib/RapidApp/Module/Tree.pm:321:    ( $self->fetch_nodes_deep or jstrue($n->{expanded}) )
lib/RapidApp/Module/Tree.pm:322:    and ! exists $n->{children}
lib/RapidApp/Module/Tree.pm:323:    and ! jstrue($n->{loaded})
lib/RapidApp/Module/Tree.pm:324:    and $DEEP_FETCH_DEPTH < $self->max_recursive_fetch_depth
lib/RapidApp/Module/Tree.pm:327:  if($recurse) { # Pre-fetch child nodes automatically:
lib/RapidApp/Module/Tree.pm:328:    my $children = $self->call_fetch_nodes($n->{id});
lib/RapidApp/Module/Tree.pm:330:      $n->{children} = $children;
lib/RapidApp/Module/Tree.pm:331:      $n->{expanded} = \1 if ($self->default_expanded and ! exists $n->{expanded});
lib/RapidApp/Module/Tree.pm:334:      # Set loaded to true if this node is empty (prevents being initialized with a +/- toggle):
lib/RapidApp/Module/Tree.pm:335:      $n->{loaded} = \1 unless (exists $n->{loaded});
lib/RapidApp/Module/Tree.pm:348:  my $node = $self->c->req->params->{node};
lib/RapidApp/Module/Tree.pm:349:  my $n = $self->fetch_node($node);
lib/RapidApp/Module/Tree.pm:350:  $self->prepare_node($n);
lib/RapidApp/Module/Tree.pm:356:  my $params = clone($self->c->req->params);
lib/RapidApp/Module/Tree.pm:357:  my $name = $params->{name};
lib/RapidApp/Module/Tree.pm:358:  my $node = $params->{node};
lib/RapidApp/Module/Tree.pm:359:  my $data = $self->add_node($name,$node,$params);
lib/RapidApp/Module/Tree.pm:362:  if ($data->{child}) {
lib/RapidApp/Module/Tree.pm:363:    my $n = $data->{child};
lib/RapidApp/Module/Tree.pm:364:    die "id was not returned in 'child'" unless (exists $n->{id});
lib/RapidApp/Module/Tree.pm:365:    $self->apply_path_specific_node_opts($node,$n); 
lib/RapidApp/Module/Tree.pm:369:    $n->{loaded} = \1;
lib/RapidApp/Module/Tree.pm:370:    $n->{expanded} = \1;
lib/RapidApp/Module/Tree.pm:378:  my $name = $self->c->req->params->{name};
lib/RapidApp/Module/Tree.pm:379:  my $node = $self->c->req->params->{node};
lib/RapidApp/Module/Tree.pm:380:  my $recursive = $self->c->req->params->{recursive};
lib/RapidApp/Module/Tree.pm:381:  return $self->delete_node($node,$recursive);
lib/RapidApp/Module/Tree.pm:386:  my $params = clone($self->c->req->params);
lib/RapidApp/Module/Tree.pm:387:  my $name = $params->{name};
lib/RapidApp/Module/Tree.pm:388:  my $node = $params->{node};
lib/RapidApp/Module/Tree.pm:389:  return $self->rename_node($node,$name,$params);
lib/RapidApp/Module/Tree.pm:394:  my $node = shift; $node = $self->c->req->params->{node} unless (defined $node);
lib/RapidApp/Module/Tree.pm:395:  my $expanded = shift; $expanded = $self->c->req->params->{expanded} unless (defined $expanded);
lib/RapidApp/Module/Tree.pm:397:  # -- Handle optional batched updates:
lib/RapidApp/Module/Tree.pm:402:      scalar @$node == scalar @$expanded #<-- both should be arrays of equal length
lib/RapidApp/Module/Tree.pm:408:      $self->call_expand_node($node->[$i],$expanded->[$i]);
lib/RapidApp/Module/Tree.pm:420:  # --
lib/RapidApp/Module/Tree.pm:426:  } if ( $self->expand_node($node,$expanded ? 1 : 0) );
lib/RapidApp/Module/Tree.pm:437:  my $node = $self->c->req->params->{node};
lib/RapidApp/Module/Tree.pm:438:  my $target = $self->c->req->params->{target};
lib/RapidApp/Module/Tree.pm:439:  my $name = $self->c->req->params->{name};
lib/RapidApp/Module/Tree.pm:442:  # a node is dragged in-between 2 nodes (point above/below instead of append)
lib/RapidApp/Module/Tree.pm:444:  my $point_node = $self->c->req->params->{point_node};
lib/RapidApp/Module/Tree.pm:445:  my $point = $self->c->req->params->{point};
lib/RapidApp/Module/Tree.pm:447:  my $data = $self->copy_node($node,$target,$point,$point_node,$name);
lib/RapidApp/Module/Tree.pm:449:  die "copy_node() returned invalid data" unless (ref($data) eq 'HASH' and $data->{child}); 
lib/RapidApp/Module/Tree.pm:452:  if ($data->{child}) {
lib/RapidApp/Module/Tree.pm:453:    my $n = $data->{child};
lib/RapidApp/Module/Tree.pm:454:    die "id was not returned in 'child'" unless (exists $n->{id});
lib/RapidApp/Module/Tree.pm:455:    $self->apply_path_specific_node_opts($target,$n); 
lib/RapidApp/Module/Tree.pm:459:    #$n->{loaded} = \1;
lib/RapidApp/Module/Tree.pm:460:    #$n->{expanded} = \1;
lib/RapidApp/Module/Tree.pm:466:  $data->{child_after} = \1;
lib/RapidApp/Module/Tree.pm:473:  my $node = $self->c->req->params->{node};
lib/RapidApp/Module/Tree.pm:474:  my $target = $self->c->req->params->{target};
lib/RapidApp/Module/Tree.pm:477:  # a node is dragged in-between 2 nodes (point above/below instead of append)
lib/RapidApp/Module/Tree.pm:479:  my $point_node = $self->c->req->params->{point_node};
lib/RapidApp/Module/Tree.pm:480:  my $point = $self->c->req->params->{point};
lib/RapidApp/Module/Tree.pm:485:  } if ( $self->move_node($node,$target,$point,$point_node) );
lib/RapidApp/Module/Tree.pm:495:    id        => $self->root_node_name,
lib/RapidApp/Module/Tree.pm:496:    text      => $self->root_node_text,
lib/RapidApp/Module/Tree.pm:505:  return ['->'];
lib/RapidApp/Module/Tree.pm:509:  push @$tbar, $self->delete_button if ($self->can('delete_node'));
lib/RapidApp/Module/Tree.pm:510:  push @$tbar, $self->add_button if ($self->can('add_node'));
lib/RapidApp/Module/Tree.pm:514:  unshift @$tbar, '->';
lib/RapidApp/Module/Tree.pm:527:  return RapidApp::JSONFunc->new(
lib/RapidApp/Module/Tree.pm:530:      text     => $self->add_button_text,
lib/RapidApp/Module/Tree.pm:531:      iconCls  => $self->add_button_iconCls,
lib/RapidApp/Module/Tree.pm:532:      handler   => RapidApp::JSONFunc->new( 
lib/RapidApp/Module/Tree.pm:547:  return RapidApp::JSONFunc->new(
lib/RapidApp/Module/Tree.pm:550:      tooltip    => $self->delete_button_text,
lib/RapidApp/Module/Tree.pm:551:      iconCls  => $self->delete_button_iconCls,
lib/RapidApp/Module/Tree.pm:552:      handler   => RapidApp::JSONFunc->new( 
lib/RapidApp/Module/Tree.pm:557:          #'Ext.ux.RapidApp.AppTree.del(tree,"' . $self->suburl('/delete') . '");' .
lib/RapidApp/Module/Tree.pm:567:#### --------------------- ####
lib/RapidApp/Module/Tree.pm:571:#__PACKAGE__->meta->make_immutable;
lib/RapidApp/ModuleDispatcher.pm:12:=head2 $ctlr->dispatch( $c, @args )
lib/RapidApp/ModuleDispatcher.pm:26:	# get the root module (or sub-module, if we've been configured that way)
lib/RapidApp/ModuleDispatcher.pm:27:	my $targetModule= $c->rapidApp->module($self->dispatchTarget);
lib/RapidApp/ModuleDispatcher.pm:30:	my $result = $targetModule->THIS_MODULE->Controller($c, @args);
lib/RapidApp/ModuleDispatcher.pm:31:	$c->stash->{controllerResult} = $result;
lib/RapidApp/ModuleDispatcher.pm:34:	defined $c->res->body || defined $c->stash->{current_view} || defined $c->stash->{current_view_instance}
lib/RapidApp/Plack/Middleware.pm:15:  $env->{PATH_INFO} ||= '/';
lib/RapidApp/Plack/Middleware.pm:17:  # --- GitHub Issue #153
lib/RapidApp/Plack/Middleware.pm:18:  # New: handing for magic path keyword '_ra-rel-mnt_' ("RapidApp Relative Mount")
lib/RapidApp/Plack/Middleware.pm:20:  # If the now reserved keyword/string '/_ra-rel-mnt_/' appears anyplace
lib/RapidApp/Plack/Middleware.pm:32:  # also even more flexible, to also work via locally-defined controller
lib/RapidApp/Plack/Middleware.pm:33:  # actions which internally re-dispatch to modules. 
lib/RapidApp/Plack/Middleware.pm:34:  my $keyword = '_ra-rel-mnt_';
lib/RapidApp/Plack/Middleware.pm:35:  if($env->{PATH_INFO} =~ /\/\Q${keyword}\E\//) {
lib/RapidApp/Plack/Middleware.pm:36:    my @parts = split(/\/\Q${keyword}\E\//,$env->{PATH_INFO});
lib/RapidApp/Plack/Middleware.pm:37:    $env->{PATH_INFO} = '/' . pop(@parts);
lib/RapidApp/Plack/Middleware.pm:39:  # ---
lib/RapidApp/Plack/Middleware.pm:43:  $env->{REQUEST_URI} = $env->{PATH_INFO};
lib/RapidApp/Plack/Middleware.pm:45:  $self->app->($env)
lib/RapidApp/RapidApp.pm:7:# This makes $c->_app available, just like in Controllers:
lib/RapidApp/RapidApp.pm:17:  default => sub { (shift)->_app };
lib/RapidApp/RapidApp.pm:22:	return (shift)->defaultRootModuleClass;
lib/RapidApp/RapidApp.pm:27:	return (shift)->catalystAppClass . '::Modules::Root';
lib/RapidApp/RapidApp.pm:43:	push @{$self->postprocessing_tasks}, @_;
lib/RapidApp/RapidApp.pm:48:  $RapidApp::CATALYST_CLASS = $self->_app;
lib/RapidApp/RapidApp.pm:53:	$self->performModulePreload() if ($self->preloadModules && !$ENV{NO_PRELOAD_MODULES});
lib/RapidApp/RapidApp.pm:62:	if (RapidApp->active_request_context) {
lib/RapidApp/RapidApp.pm:63:		return $self->_load_root_module;
lib/RapidApp/RapidApp.pm:67:		$self->performModulePreload;
lib/RapidApp/RapidApp.pm:68:		return $self->rootModule;
lib/RapidApp/RapidApp.pm:75:	#my $log= sEnv->log;
lib/RapidApp/RapidApp.pm:76:	#sEnv->catalystClass->debug
lib/RapidApp/RapidApp.pm:77:	#	and $log->debug("Running require on root module ".$self->rootModuleClass);
lib/RapidApp/RapidApp.pm:78:	#$log->_flush if $log->can('_flush');
lib/RapidApp/RapidApp.pm:79:	Catalyst::Utils::ensure_class_loaded($self->rootModuleClass);
lib/RapidApp/RapidApp.pm:81:	my $mParams= $self->rootModuleConfig || {};
lib/RapidApp/RapidApp.pm:82:  $mParams->{app} = $self->_app;
lib/RapidApp/RapidApp.pm:83:	$mParams->{module_name}= '';
lib/RapidApp/RapidApp.pm:84:	$mParams->{module_path}= '/';
lib/RapidApp/RapidApp.pm:85:	$mParams->{parent_module_ref}= undef;
lib/RapidApp/RapidApp.pm:87:  my $cfg = $self->_app->config->{'RapidApp'} || {};
lib/RapidApp/RapidApp.pm:88:  $mParams->{auto_init_modules} = $cfg->{load_modules} if ($cfg->{load_modules});
lib/RapidApp/RapidApp.pm:90:  $self->rootModule($self->rootModuleClass->timed_new($mParams));
lib/RapidApp/RapidApp.pm:99:	#if ($self->catalystAppClass->debug) {
lib/RapidApp/RapidApp.pm:101:	#	sEnv->applyForSub(
lib/RapidApp/RapidApp.pm:103:	#		sub { $self->rootModule($self->_load_root_module) }
lib/RapidApp/RapidApp.pm:106:	#		and $self->displayLoadTimes($loadTimes);
lib/RapidApp/RapidApp.pm:109:		$self->rootModule($self->_load_root_module);
lib/RapidApp/RapidApp.pm:116:#	my $bar= '--------------------------------------------------------------------------------------';
lib/RapidApp/RapidApp.pm:120:#	$summary.= sprintf("|%*s|%*s|%*s|\n",       -$colWid[0], ' Module', -$colWid[1], ' Path', -$colWid[2], ' Time');
lib/RapidApp/RapidApp.pm:124:#		my ($path, $module, $time)= ($key, $loadTimes->{$key}->{module}, $loadTimes->{$key}->{loadTime});
lib/RapidApp/RapidApp.pm:128:#		$module = substr($module, -$colWid[0]);  # cut of the front of the string if necesary
lib/RapidApp/RapidApp.pm:129:#		$path= substr($path, -$colWid[1]);
lib/RapidApp/RapidApp.pm:130:#		$summary.= sprintf("| %*s| %*s| %*.3f |\n", -($colWid[0]-1), $module, -($colWid[1]-1), $path, $colWid[2]-2, $time);
lib/RapidApp/RapidApp.pm:135:#	sEnv->log->debug($summary);
lib/RapidApp/RapidApp.pm:150:	my $m= $self->rootModule;
lib/RapidApp/RapidApp.pm:152:		$m= $m->Module($part) or die "No such module: ".join('/',@path);
lib/RapidApp/RapidApp.pm:161:	$self->dirtyModules->{$module}= $module;
lib/RapidApp/RapidApp.pm:169:	return unless scalar(keys %{$self->dirtyModules} );
lib/RapidApp/RapidApp.pm:171:	my ($sec0, $msec0)= $c->debug && gettimeofday;
lib/RapidApp/RapidApp.pm:173:	$self->cleanDirtyModules($c);
lib/RapidApp/RapidApp.pm:175:	if ($c->debug) {
lib/RapidApp/RapidApp.pm:177:		my $elapsed= ($sec1-$sec0)+($msec1-$msec0)*.000001;
lib/RapidApp/RapidApp.pm:179:		$c->log->info(sprintf("Module init (ONREQUEST) took %0.3f seconds", $c->stash->{onrequest_time_elapsed}));
lib/RapidApp/RapidApp.pm:180:		$c->log->info(sprintf("Cleanup took %0.3f seconds", $elapsed));
lib/RapidApp/RapidApp.pm:183:	# Now that the request is done, we can run post-processing tasks.
lib/RapidApp/RapidApp.pm:185:	if (scalar @{$self->postprocessing_tasks}) {
lib/RapidApp/RapidApp.pm:186:		my ($sec0, $msec0)= $c->debug && gettimeofday;
lib/RapidApp/RapidApp.pm:187:		my $reqid= $c->request_id;
lib/RapidApp/RapidApp.pm:189:		while (my $sub= shift @{$self->postprocessing_tasks}) {
lib/RapidApp/RapidApp.pm:190:			local $c->{request_id}= $reqid.'.'.$i++;
lib/RapidApp/RapidApp.pm:191:      $sub->($c);
lib/RapidApp/RapidApp.pm:192:			$self->cleanDirtyModules($c);
lib/RapidApp/RapidApp.pm:195:		if ($c->debug) {
lib/RapidApp/RapidApp.pm:197:			my $elapsed= ($sec1-$sec0)+($msec1-$msec0)*.000001;
lib/RapidApp/RapidApp.pm:199:			$c->log->info(sprintf("Post-processing tasks took %0.3f seconds", $elapsed));
lib/RapidApp/RapidApp.pm:206:	my @modules= values %{$self->dirtyModules};
lib/RapidApp/RapidApp.pm:208:		$module->reset_per_req_attrs;
lib/RapidApp/RapidApp.pm:210:	%{$self->dirtyModules}= ();
lib/RapidApp/RapidApp.pm:215:	(shift)->_requestCount;
lib/RapidApp/RapidApp.pm:219:	$self->_requestCount($self->_requestCount+1);
lib/RapidApp/RapidApp.pm:235:	return File::Spec->catfile(File::Spec->tmpdir, 'RapidAppCache');
lib/RapidApp/RapidApp.pm:241:	if ($self->has_cache_opts) {
lib/RapidApp/RapidApp.pm:242:		%cache_opts = %{$self->cache_opts};
lib/RapidApp/RapidApp.pm:246:			root_dir => $self->cache_dir,
lib/RapidApp/RapidApp.pm:248:			namespace => $self->cache_key,
lib/RapidApp/RapidApp.pm:251:	my $cache_class = $self->cache_class;
lib/RapidApp/RapidApp.pm:253:	my $cache = $cache_class->new( %cache_opts );
lib/RapidApp/RapidApp.pm:255:		$cache->clear();
lib/RapidApp/RapidApp.pm:268:		$class, map { use_module($_)->VERSION } (qw(
lib/RapidApp/Responder.pm:12:	if ($error) die RapidApp::Responser::MyErrorResponder->new(\%params);
lib/RapidApp/Responder.pm:13:	return RapidApp::Responser::MyNormalResponder->new(\%params);
lib/RapidApp/Responder.pm:19:and it can be thrown.  This is much more convenient and less error-prone than setting view
lib/RapidApp/Responder.pm:38:	return Catalyst::Action->new({
lib/RapidApp/Responder.pm:40:		code      => $self->can('writeResponse'),
lib/RapidApp/Responder.pm:41:		reverse   => $cls.'->writeResponse',
lib/RapidApp/Responder.pm:49:=head2 $responder->writeResponde($c)
lib/RapidApp/Responder.pm:51:This is the main processing method of Responder, much like View->process($c);
lib/RapidApp/Responder.pm:53:It fills in the fields of $c->response
lib/RapidApp/Responder.pm:60:	$c->response->status(500);
lib/RapidApp/Responder.pm:61:	$c->response->content_type("text/plain");
lib/RapidApp/Responder.pm:62:	$c->response->body("Unable to generate content for ".$c->stash->{requestContentType});
lib/RapidApp/Responder.pm:66:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Responder/CustomPrompt.pm:27:	$data->{title} 			= $self->title if (defined $self->title);
lib/RapidApp/Responder/CustomPrompt.pm:28:	$data->{param_name}		= $self->param_name if (defined $self->param_name);
lib/RapidApp/Responder/CustomPrompt.pm:29:	$data->{height} 		= $self->height if (defined $self->height);
lib/RapidApp/Responder/CustomPrompt.pm:30:	$data->{width} 			= $self->width if (defined $self->width);
lib/RapidApp/Responder/CustomPrompt.pm:31:	$data->{buttons} 		= $self->buttons if (defined $self->buttons);
lib/RapidApp/Responder/CustomPrompt.pm:32:	$data->{buttonIcons} 	= $self->buttonIcons if (defined $self->buttonIcons);
lib/RapidApp/Responder/CustomPrompt.pm:33:	$data->{items} 			= $self->items if (defined $self->items);
lib/RapidApp/Responder/CustomPrompt.pm:34:	$data->{formpanel_cnf} 	= $self->formpanel_cnf if (defined $self->formpanel_cnf);
lib/RapidApp/Responder/CustomPrompt.pm:35:	$data->{noCancel}			= $self->noCancel if (defined $self->noCancel);
lib/RapidApp/Responder/CustomPrompt.pm:36:	$data->{validate}			= $self->validate if (defined $self->validate);
lib/RapidApp/Responder/CustomPrompt.pm:37:	$data->{EnterButton}		= $self->EnterButton if (defined $self->EnterButton);
lib/RapidApp/Responder/CustomPrompt.pm:38:	$data->{EscButton}		= $self->EscButton if (defined $self->EscButton);
lib/RapidApp/Responder/CustomPrompt.pm:39:	$data->{focusField}		= $self->focusField if (defined $self->focusField);
lib/RapidApp/Responder/CustomPrompt.pm:46:	return RapidApp::JSON::MixedEncoder::encode_json($self->customprompt_data);
lib/RapidApp/Responder/CustomPrompt.pm:52:	$c->response->header('X-RapidApp-CustomPrompt' => $self->customprompt_json);
lib/RapidApp/Responder/CustomPrompt.pm:53:	#$c->response->status(500);
lib/RapidApp/Responder/CustomPrompt.pm:55:	my $rct= $c->stash->{requestContentType};
lib/RapidApp/Responder/CustomPrompt.pm:56:	if ($rct eq 'text/x-rapidapp-form-response' || $rct eq 'JSON') {
lib/RapidApp/Responder/CustomPrompt.pm:57:		$c->stash->{json}= { success => \0 };
lib/RapidApp/Responder/CustomPrompt.pm:58:		$c->view('RapidApp::JSON')->process($c);
lib/RapidApp/Responder/CustomPrompt.pm:61:		unless (length($c->response->body) > 0) {
lib/RapidApp/Responder/CustomPrompt.pm:62:			$c->response->content_type('text/plain; charset=utf-8');
lib/RapidApp/Responder/CustomPrompt.pm:63:			$c->response->body("More user input was needed to complete your request, but we can only send prompts through dynamic javascript requests");
lib/RapidApp/Responder/CustomPrompt.pm:69:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Responder/InfoStatus.pm:24:	# X-RapidApp-Info header not used yet, but it is intended to display a non-invasive status/info message
lib/RapidApp/Responder/InfoStatus.pm:25:	$c->response->header('X-RapidApp-Info' => $self->msg);
lib/RapidApp/Responder/InfoStatus.pm:27:	$c->response->status($self->status);
lib/RapidApp/Responder/InfoStatus.pm:28:	$c->response->body('');
lib/RapidApp/Responder/InfoStatus.pm:32:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Responder/UserError.pm:6:use overload '""' => \&_stringify_static, fallback => 1; # to-string operator overload
lib/RapidApp/Responder/UserError.pm:15:This "responder" takes advantage of the existing error-displaying codepaths
lib/RapidApp/Responder/UserError.pm:27:sub isHtml { return (ref (shift)->userMessage)->isa('RapidApp::HTML::RawHtml'); }
lib/RapidApp/Responder/UserError.pm:35:  $c->stash->{exception} = $self;
lib/RapidApp/Responder/UserError.pm:36:  $c->forward('View::RapidApp::JSON');
lib/RapidApp/Responder/UserError.pm:39:sub stringify { (shift)->userMessage }
lib/RapidApp/Responder/UserError.pm:44:sub _stringify_static { (shift)->stringify }
lib/RapidApp/Responder/UserError.pm:47:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Role/AssetControllers.pm:27:sub get_extjs_dir { Alien::Web::ExtJS::V3->dir->stringify }
lib/RapidApp/Role/AssetControllers.pm:34:  $c->log->debug("RapidApp - Injecting Asset Controllers...") if ($c->debug);
lib/RapidApp/Role/AssetControllers.pm:41:  my $share_dir = RapidApp->share_dir;
lib/RapidApp/Role/AssetControllers.pm:47:      include => $c->get_extjs_dir,
lib/RapidApp/Role/AssetControllers.pm:49:        resources/css/ext-all.css
lib/RapidApp/Role/AssetControllers.pm:50:        resources/css/xtheme-gray.css
lib/RapidApp/Role/AssetControllers.pm:54:        adapter/ext/ext-base.js
lib/RapidApp/Role/AssetControllers.pm:55:        ext-all-debug.js
lib/RapidApp/Role/AssetControllers.pm:69:      include => $share_dir . '/assets/css-scoped/ra-scoped-reset.css',
lib/RapidApp/Role/AssetControllers.pm:70:      scopify => ['.ra-scoped-reset', merge => ['html','body']]
lib/RapidApp/Role/AssetControllers.pm:75:      include => $share_dir . '/assets/css-scoped/ra-doc.css',
lib/RapidApp/Role/AssetControllers.pm:76:      scopify => ['.ra-doc', merge => ['html','body']]
lib/RapidApp/Role/AssetControllers.pm:87:      css_file_name => 'ra-icons.css',
lib/RapidApp/Role/AssetControllers.pm:88:      icon_name_prefix => 'ra-icon-'
lib/RapidApp/Role/AssetControllers.pm:103:        'Cache-Control' => 'max-age=3600, must-revalidate, public'
lib/RapidApp/Role/AssetControllers.pm:108:  ## -----------
lib/RapidApp/Role/AssetControllers.pm:113:    ! exists $c->config->{'Model::RapidApp'}->{auto_local_assets} ||
lib/RapidApp/Role/AssetControllers.pm:114:    $c->config->{'Model::RapidApp'}->{auto_local_assets}
lib/RapidApp/Role/AssetControllers.pm:118:  my $cfged_dir = $c->config->{'Model::RapidApp'}->{local_assets_dir};
lib/RapidApp/Role/AssetControllers.pm:121:  $auto_setup = 0 unless ($cfged_dir || ($home && -d $home));
lib/RapidApp/Role/AssetControllers.pm:128:    # If relative, make relative to app home (unless manually cfged and already exists as-is):
lib/RapidApp/Role/AssetControllers.pm:129:    unless($cfged_dir && -d $dir) {
lib/RapidApp/Role/AssetControllers.pm:130:      $dir = $home->subdir($dir) if ($home && $dir->is_relative);
lib/RapidApp/Role/AssetControllers.pm:138:    } if (-d $dir->subdir('css'));
lib/RapidApp/Role/AssetControllers.pm:144:    } if (-d $dir->subdir('js'));
lib/RapidApp/Role/AssetControllers.pm:150:    } if (-d $dir->subdir('icons'));
lib/RapidApp/Role/AssetControllers.pm:157:    } if (-d $dir->subdir('misc'));
lib/RapidApp/Role/AssetControllers.pm:160:  ## -----------
lib/RapidApp/Role/AssetControllers.pm:163:  my $existing = $c->config->{'Plugin::AutoAssets'}->{assets};
lib/RapidApp/Role/AssetControllers.pm:169:  $c->config( 'Plugin::AutoAssets' => { assets => $assets } );
lib/RapidApp/Role/AssetControllers.pm:171:  my $ret = $c->$orig(@args);
lib/RapidApp/Role/AssetControllers.pm:173:  # -----------
lib/RapidApp/Role/AssetControllers.pm:174:  # New: Setup a JS global to contain the list of all auto-generated iconcls values
lib/RapidApp/Role/AssetControllers.pm:176:    map { $_->{icon_name} }
lib/RapidApp/Role/AssetControllers.pm:177:    map { values %{ $c->controller($_)->manifest } }
lib/RapidApp/Role/AssetControllers.pm:178:    map { $_->{controller} } grep { $_->{type} eq 'IconSet' } @$assets
lib/RapidApp/Role/AssetControllers.pm:188:  $c->_inject_single_asset_controller({
lib/RapidApp/Role/AssetControllers.pm:195:  @{$c->asset_controllers} = uniq(
lib/RapidApp/Role/AssetControllers.pm:196:    $c->asset_controllers->[0], # Keep the ExtJS assets first
lib/RapidApp/Role/AssetControllers.pm:198:    @{$c->asset_controllers}    # Then the rest of the assets
lib/RapidApp/Role/AssetControllers.pm:200:  # -----------
lib/RapidApp/Role/AssetControllers.pm:203:  $c->log->debug(sprintf(
lib/RapidApp/Role/AssetControllers.pm:204:    "RapidApp - Asset Controllers Setup in %0.3f seconds",
lib/RapidApp/Role/AssetControllers.pm:206:  )) if ($c->debug);
lib/RapidApp/Role/AuthController.pm:24:	$self->enforce_rapidapp_session($c);
lib/RapidApp/Role/AuthController.pm:31:  return unless $c->can('session_is_valid');
lib/RapidApp/Role/AuthController.pm:33:	unless ($c->session_is_valid and $c->user_exists) {
lib/RapidApp/Role/AuthController.pm:34:		$c->res->header('X-RapidApp-Authenticated' => 0);
lib/RapidApp/Role/AuthController.pm:35:		$c->res->header( 'Content-Type' => 'text/plain' );
lib/RapidApp/Role/AuthController.pm:36:    $c->res->body('No session');
lib/RapidApp/Role/AuthController.pm:37:		$c->detach;
lib/RapidApp/Role/AuthRequire.pm:25:	#$self->c->res->status(205);
lib/RapidApp/Role/AuthRequire.pm:27:	unless ($self->c->session_is_valid and $self->c->user_exists) {
lib/RapidApp/Role/AuthRequire.pm:28:		$self->c->res->header('X-RapidApp-Authenticated' => 0);
lib/RapidApp/Role/AuthRequire.pm:30:		if ($self->auto_prompt && $self->c->stash->{requestContentType} ne 'JSON') {
lib/RapidApp/Role/AuthRequire.pm:31:			my $authPath= $self->auth_module_path;
lib/RapidApp/Role/AuthRequire.pm:33:			defined $authPath && length($authPath) > 1 && ($authModule= $c->rapidApp->module($authPath))
lib/RapidApp/Role/AuthRequire.pm:35:			return $authModule->viewport;
lib/RapidApp/Role/AuthRequire.pm:38:		return $self->render_data($self->non_auth_content);
lib/RapidApp/Role/AuthRequire.pm:41:	$self->c->res->header('X-RapidApp-Authenticated' => $self->c->user->get('username'));
lib/RapidApp/Role/AuthRequire.pm:42:	return $self->$orig(@_);
lib/RapidApp/Role/CatalystApplication.pm:25:sub rapidApp { (shift)->model("RapidApp"); }
lib/RapidApp/Role/CatalystApplication.pm:27:has 'request_id' => ( is => 'ro', default => sub { (shift)->rapidApp->requestCount; } );
lib/RapidApp/Role/CatalystApplication.pm:30:sub ra_builder { (shift)->config->{_ra_builder} }
lib/RapidApp/Role/CatalystApplication.pm:34:  my $pfx = try{ $c->req->env->{SCRIPT_NAME} } || '';
lib/RapidApp/Role/CatalystApplication.pm:40:  my $path = $c->config->{'RapidApp'}{default_favicon_url}
lib/RapidApp/Role/CatalystApplication.pm:42:  join('',$c->mount_url,$path)
lib/RapidApp/Role/CatalystApplication.pm:49:  my $custom = $c->config->{'RapidApp'}{favicon_head_tag};
lib/RapidApp/Role/CatalystApplication.pm:52:  my $url = $c->default_favicon_url;
lib/RapidApp/Role/CatalystApplication.pm:53:  return $url ? join('','<link rel="icon" href="',$url,'" type="image/x-icon" />') : undef
lib/RapidApp/Role/CatalystApplication.pm:60:  my $html = $c->$orig(@args);
lib/RapidApp/Role/CatalystApplication.pm:61:  if(my $tag = $c->favicon_head_tag) {
lib/RapidApp/Role/CatalystApplication.pm:62:    $html = join("\r\n",'<!-- AUTO GENERATED favicon_head_tag -->',$tag,'',$html);
lib/RapidApp/Role/CatalystApplication.pm:68:# ---
lib/RapidApp/Role/CatalystApplication.pm:79:    ! ($_->[0] eq 'Request'  and $req_arr = $_) &&
lib/RapidApp/Role/CatalystApplication.pm:80:    ! ($_->[0] eq 'Response' and $res_arr = $_)
lib/RapidApp/Role/CatalystApplication.pm:81:  } $c->$orig(@args) ];
lib/RapidApp/Role/CatalystApplication.pm:89:      # Put the original, non-depth-limited Request and Reponse data back in.
lib/RapidApp/Role/CatalystApplication.pm:93:      # the ones which need to be limited anyway, so we preserve them as-is.
lib/RapidApp/Role/CatalystApplication.pm:104:# ---
lib/RapidApp/Role/CatalystApplication.pm:110:  $app->_normalize_catalyst_config;
lib/RapidApp/Role/CatalystApplication.pm:112:  # Set the Encoding to UTF-8 unless one is already set:
lib/RapidApp/Role/CatalystApplication.pm:113:  $app->encoding('UTF-8') unless ($app->encoding);
lib/RapidApp/Role/CatalystApplication.pm:118:  $app->config( disable_component_resolution_regex_fallback => 1 );
lib/RapidApp/Role/CatalystApplication.pm:120:  unshift @{ $app->config->{'psgi_middleware'} ||= [] },
lib/RapidApp/Role/CatalystApplication.pm:126:  for (keys %{ $app->components }) {
lib/RapidApp/Role/CatalystApplication.pm:127:    my $component = $app->components->{$_};
lib/RapidApp/Role/CatalystApplication.pm:128:    if ($component->can('action_namespace')) {
lib/RapidApp/Role/CatalystApplication.pm:129:      return 1 if $component->action_namespace($app) eq '';
lib/RapidApp/Role/CatalystApplication.pm:138:  $app->$orig(@args);  # standard catalyst setup_components
lib/RapidApp/Role/CatalystApplication.pm:139:  $app->setupRapidApp; # our additional components needed for RapidApp
lib/RapidApp/Role/CatalystApplication.pm:146:    @{ $app->config->{ra_inject_components} || [] },
lib/RapidApp/Role/CatalystApplication.pm:159:  ## This code allowed for automatic detection of an alternate, locally-defined
lib/RapidApp/Role/CatalystApplication.pm:163:  #my $log = $app->log;
lib/RapidApp/Role/CatalystApplication.pm:164:  #my @names= keys %{ $app->components };
lib/RapidApp/Role/CatalystApplication.pm:168:  #  if ($ctlr->isa('RapidApp::ModuleDispatcher')) {
lib/RapidApp/Role/CatalystApplication.pm:169:  #    $log->debug("RapidApp: Found $ctlr which implements ModuleDispatcher.");
lib/RapidApp/Role/CatalystApplication.pm:174:  #  #$log->debug("RapidApp: No Controller extending ModuleDispatcher found, using default")
lib/RapidApp/Role/CatalystApplication.pm:175:  #  #  if($app->debug);
lib/RapidApp/Role/CatalystApplication.pm:180:    if $app->application_has_root_controller
lib/RapidApp/Role/CatalystApplication.pm:181:      && !$app->config->{RapidApp}->{module_root_namespace};
lib/RapidApp/Role/CatalystApplication.pm:191:  $app->injectUnlessExist( @{$_} ) for (@inject);
lib/RapidApp/Role/CatalystApplication.pm:196:  return $c->controller('RapidApp::Root');
lib/RapidApp/Role/CatalystApplication.pm:201:  if (!$app->components->{$virtual}) {
lib/RapidApp/Role/CatalystApplication.pm:202:    $app->debug && $app->log->debug("RapidApp - Injecting Catalyst Component: $virtual");
lib/RapidApp/Role/CatalystApplication.pm:203:    CatalystX::InjectComponent->inject( into => $app, component => $actual, as => $virtual );
lib/RapidApp/Role/CatalystApplication.pm:209:  $app->rapidApp->_setup_finalize;
lib/RapidApp/Role/CatalystApplication.pm:210:  $app->log->info(sprintf(
lib/RapidApp/Role/CatalystApplication.pm:211:    " --- $app (RapidApp v$RapidApp::VERSION) Loaded in %0.3f seconds ---",
lib/RapidApp/Role/CatalystApplication.pm:216:# called once per request, in class-context
lib/RapidApp/Role/CatalystApplication.pm:219:	$app->rapidApp->incRequestCount;
lib/RapidApp/Role/CatalystApplication.pm:229:  # anywhere with: 'RapidApp->active_request_context()'
lib/RapidApp/Role/CatalystApplication.pm:233:	$c->stash->{debug} = $c->debug;
lib/RapidApp/Role/CatalystApplication.pm:236:	$c->stash->{requestContentType}=
lib/RapidApp/Role/CatalystApplication.pm:237:		$c->req->header('X-RapidApp-RequestContentType')
lib/RapidApp/Role/CatalystApplication.pm:238:		|| $c->req->param('RequestContentType')
lib/RapidApp/Role/CatalystApplication.pm:241:	$c->stash->{onrequest_time_elapsed}= 0;
lib/RapidApp/Role/CatalystApplication.pm:244:    $orig->($c, @args);
lib/RapidApp/Role/CatalystApplication.pm:245:    for my $err (@{ $c->error }) {
lib/RapidApp/Role/CatalystApplication.pm:246:      if (blessed($err) && $err->isa('RapidApp::Responder')) {
lib/RapidApp/Role/CatalystApplication.pm:247:        $c->clear_errors;
lib/RapidApp/Role/CatalystApplication.pm:248:        $c->forward($err->action);
lib/RapidApp/Role/CatalystApplication.pm:259:    $c->response->content_type('text/plain');
lib/RapidApp/Role/CatalystApplication.pm:260:    $c->response->body(" *** Uncaught Exception in Catalyst Engine ***\n\n\n$err");
lib/RapidApp/Role/CatalystApplication.pm:261:    $c->response->status(500);
lib/RapidApp/Role/CatalystApplication.pm:264:	if (!defined $c->response->content_type) {
lib/RapidApp/Role/CatalystApplication.pm:265:		$c->log->error("Body was set, but content-type was not!  This can lead to encoding errors!");
lib/RapidApp/Role/CatalystApplication.pm:271:  return $c->config->{'Model::RapidApp'}{module_root_namespace} || '';
lib/RapidApp/Role/CatalystApplication.pm:274:# This is ugly, but seems to be the best way to re-resolve a *public* URL
lib/RapidApp/Role/CatalystApplication.pm:284:  $path =~ s/^\///; #<-- strip leading /
lib/RapidApp/Role/CatalystApplication.pm:285:  $path =~ s/\/$//; #<-- strip trailing leading /
lib/RapidApp/Role/CatalystApplication.pm:286:  $path =~ s/\/+/\//g; #<-- strip any double //
lib/RapidApp/Role/CatalystApplication.pm:289:  $c->log->debug("Redispatching as path: $path") if ($c->debug);
lib/RapidApp/Role/CatalystApplication.pm:292:  $c->request->path($path);
lib/RapidApp/Role/CatalystApplication.pm:295:  $c->prepare_action;
lib/RapidApp/Role/CatalystApplication.pm:298:  # call $c->dispatch just for the sake of error handling
lib/RapidApp/Role/CatalystApplication.pm:299:  return $c->action ? $c->forward( $c->action ) : $c->dispatch;
lib/RapidApp/Role/CatalystApplication.pm:305:  return $c->hashnav_redirect_current(@args) if (
lib/RapidApp/Role/CatalystApplication.pm:306:    $c->req->method eq 'GET' && ! $c->is_ra_ajax_req
lib/RapidApp/Role/CatalystApplication.pm:307:    && ! $c->req->params->{__no_hashnav_redirect} #<-- new: check for special exclude param
lib/RapidApp/Role/CatalystApplication.pm:314:  return $c->hashnav_redirect($c->req->path,$c->req->params,@args);
lib/RapidApp/Role/CatalystApplication.pm:324:    my $ns = $c->module_root_namespace;
lib/RapidApp/Role/CatalystApplication.pm:329:  $url =~ s/\/+/\//g; #<-- strip any double //
lib/RapidApp/Role/CatalystApplication.pm:332:    my $qs = join('&',map { $_ . '=' . uri_escape($params->{$_}) } keys %$params);
lib/RapidApp/Role/CatalystApplication.pm:336:  $c->response->redirect($c->mount_url.$url);
lib/RapidApp/Role/CatalystApplication.pm:337:  return $c->detach;
lib/RapidApp/Role/CatalystApplication.pm:351:    defined $warn->{msg}
lib/RapidApp/Role/CatalystApplication.pm:354:  $c->res->header( 'X-RapidApp-Warning' => encode_json_utf8($warn) );
lib/RapidApp/Role/CatalystApplication.pm:360:  if($c->is_ra_ajax_req) {
lib/RapidApp/Role/CatalystApplication.pm:363:    $c->res->content_type('text/plain; charset=utf-8');
lib/RapidApp/Role/CatalystApplication.pm:364:    my $error = join("\n", @{ $c->error }) || 'Unknown error';
lib/RapidApp/Role/CatalystApplication.pm:365:    if($c->debug) {
lib/RapidApp/Role/CatalystApplication.pm:369:        map { Data::Dumper::Concise::Dumper($_) } $c->dump_these
lib/RapidApp/Role/CatalystApplication.pm:372:    $c->res->body($error);
lib/RapidApp/Role/CatalystApplication.pm:373:    $c->res->status(500);
lib/RapidApp/Role/CatalystApplication.pm:376:    return $c->$orig(@args);
lib/RapidApp/Role/CatalystApplication.pm:380:# called after the response is sent to the client, in object-context
lib/RapidApp/Role/CatalystApplication.pm:383:	$c->rapidApp->cleanupAfterRequest($c);
lib/RapidApp/Role/CatalystApplication.pm:396:	my $total = $c->stats->elapsed;
lib/RapidApp/Role/CatalystApplication.pm:398:	my $display = $c->_get_debug_around_stats_ascii($total,"Catalyst Request Elapsed");
lib/RapidApp/Role/CatalystApplication.pm:415:	$_->{pct} = ($_->{total}/$total)*100 for (values %$stats);
lib/RapidApp/Role/CatalystApplication.pm:421:	foreach my $stat (sort {$b->{pct} <=> $a->{pct}} values %$stats) {
lib/RapidApp/Role/CatalystApplication.pm:422:		$tsum += $stat->{total};
lib/RapidApp/Role/CatalystApplication.pm:423:		$csum += $stat->{calls};
lib/RapidApp/Role/CatalystApplication.pm:426:		$stat->{$_} = sprintf('%.3f',$stat->{$_}) for(qw(min max avg total));
lib/RapidApp/Role/CatalystApplication.pm:427:		$stat->{'min/max/avg'} = $stat->{min} . '/' . $stat->{max} . '/' . $stat->{avg};
lib/RapidApp/Role/CatalystApplication.pm:428:		$stat->{pct} = sprintf('%.1f',$stat->{pct}) . '%';
lib/RapidApp/Role/CatalystApplication.pm:430:		push @rows, [ map {$stat->{$_}} @order ];
lib/RapidApp/Role/CatalystApplication.pm:436:	my $t = Text::SimpleTable::AutoWidth->new(
lib/RapidApp/Role/CatalystApplication.pm:441:	$t->row(@$_) for (@rows);
lib/RapidApp/Role/CatalystApplication.pm:442:	$t->row(' ',' ',' ',' ',' ',' ');
lib/RapidApp/Role/CatalystApplication.pm:443:	$t->row('(' . $count . ' Tracked Functions)','',$csum,'',$tsum,$tpct);
lib/RapidApp/Role/CatalystApplication.pm:445:	my $table = $t->draw;
lib/RapidApp/Role/CatalystApplication.pm:459:sub app_version { eval '$' . (shift)->config->{name} . '::VERSION' }
lib/RapidApp/Role/CatalystApplication.pm:464:	# -- override Static::Simple default config to ignore extensions like html.
lib/RapidApp/Role/CatalystApplication.pm:466:		= $c->config->{'Plugin::Static::Simple'}
lib/RapidApp/Role/CatalystApplication.pm:467:		= $c->config->{'static'}
lib/RapidApp/Role/CatalystApplication.pm:469:			$c->config->{'Plugin::Static::Simple'} || {},
lib/RapidApp/Role/CatalystApplication.pm:470:			$c->config->{static} || {}
lib/RapidApp/Role/CatalystApplication.pm:473:	$config->{ignore_extensions} ||= [];
lib/RapidApp/Role/CatalystApplication.pm:474:	$c->config->{'Plugin::Static::Simple'} = $config;
lib/RapidApp/Role/CatalystApplication.pm:475:	# --
lib/RapidApp/Role/CatalystApplication.pm:478:# --
lib/RapidApp/Role/CatalystApplication.pm:483:  return 0 unless ($c->can('request') && $c->request);
lib/RapidApp/Role/CatalystApplication.pm:484:  my $tp = $c->request->header('X-RapidApp-RequestContentType') or return 0;
lib/RapidApp/Role/CatalystApplication.pm:492:  my $cnf = $c->config;
lib/RapidApp/Role/CatalystApplication.pm:493:  $cnf->{name} ||= ref $c ? ref $c : $c;
lib/RapidApp/Role/CatalystApplication.pm:494:  $cnf->{'RapidApp'} ||= {};
lib/RapidApp/Role/CatalystApplication.pm:499:  my $tc_cfg = $cnf->{'Controller::RapidApp::Template'} || {};
lib/RapidApp/Role/CatalystApplication.pm:500:  $cnf->{'RapidApp'}{root_template_prefix} = $tc_cfg->{root_template_prefix}
lib/RapidApp/Role/CatalystApplication.pm:501:    if(exists $tc_cfg->{root_template_prefix});
lib/RapidApp/Role/CatalystApplication.pm:502:  $cnf->{'RapidApp'}{root_template} = $tc_cfg->{root_template}
lib/RapidApp/Role/CatalystApplication.pm:503:    if(exists $tc_cfg->{root_template});
lib/RapidApp/Role/CatalystApplication.pm:505:  # ---
lib/RapidApp/Role/CatalystApplication.pm:511:  $cnf->{'Model::RapidApp'} = Catalyst::Utils::merge_hashes(
lib/RapidApp/Role/CatalystApplication.pm:512:    $cnf->{'Model::RapidApp'} || {},
lib/RapidApp/Role/CatalystApplication.pm:513:    $cnf->{'RapidApp'} || {}
lib/RapidApp/Role/CatalystApplication.pm:515:  $cnf->{'RapidApp'} = $cnf->{'Model::RapidApp'};
lib/RapidApp/Role/CatalystApplication.pm:516:  # ---
lib/RapidApp/Role/CatalystApplication.pm:522:sub template_controller { (shift)->controller('RapidApp::Template') }
lib/RapidApp/Role/CatalystApplication.pm:523:sub template_dispatcher { (shift)->controller('RapidApp::TemplateDispatch') }
lib/RapidApp/Role/CatalystApplication.pm:525:my $share_dir = dir( RapidApp->share_dir );
lib/RapidApp/Role/CatalystApplication.pm:533:  if($home && -d $home) {
lib/RapidApp/Role/CatalystApplication.pm:534:    my $root = $home->subdir('root');
lib/RapidApp/Role/CatalystApplication.pm:535:    if($root && -d $root) {
lib/RapidApp/Role/CatalystApplication.pm:536:      my $tpl = $root->subdir('templates');
lib/RapidApp/Role/CatalystApplication.pm:537:      push @paths, "$tpl" if ($tpl && -d $tpl);
lib/RapidApp/Role/CatalystApplication.pm:543:  if($share_dir && -d $share_dir) {
lib/RapidApp/Role/CatalystApplication.pm:544:    my $tpl = $share_dir->subdir('templates');
lib/RapidApp/Role/CatalystApplication.pm:545:    push @paths, "$tpl" if ($tpl && -d $tpl);
lib/RapidApp/Role/CatalystApplication.pm:561:	$TT ||= Template->new({ 
lib/RapidApp/Role/CatalystApplication.pm:562:    INCLUDE_PATH => $c->default_tt_include_path,
lib/RapidApp/Role/CatalystApplication.pm:567:	$TT->process($template,$vars,\$out) or die $TT->error;
lib/RapidApp/Role/CatalystApplication.pm:582:  $c->config( $_ => { 
lib/RapidApp/Role/CatalystApplication.pm:583:    INCLUDE_PATH => $c->default_tt_include_path,
lib/RapidApp/Role/CatalystApplication.pm:591:## -- 'on_finalize_success' provides a mechanism to call code at the end of the request
lib/RapidApp/Role/CatalystApplication.pm:596:	$c = RapidApp->active_request_context unless (ref $c);
lib/RapidApp/Role/CatalystApplication.pm:601:	if(try{$c->stash}) {
lib/RapidApp/Role/CatalystApplication.pm:602:		$c->stash->{on_finalize_success} ||= [];
lib/RapidApp/Role/CatalystApplication.pm:603:		push @{$c->stash->{on_finalize_success}},$code;
lib/RapidApp/Role/CatalystApplication.pm:613:	my $coderefs = try{$c->stash->{on_finalize_success}} or return;
lib/RapidApp/Role/CatalystApplication.pm:615:	my $status = $c->res->code;
lib/RapidApp/Role/CatalystApplication.pm:617:	$c->log->info(
lib/RapidApp/Role/CatalystApplication.pm:621:	$c->run_on_finalize_success_codes($coderefs);
lib/RapidApp/Role/CatalystApplication.pm:623:END { __PACKAGE__->run_on_finalize_success_codes($ON_FINALIZE_SUCCESS); }
lib/RapidApp/Role/CatalystApplication.pm:631:			$ref->($c);
lib/RapidApp/Role/CatalystApplication.pm:639:			try{$c->log->error($errStr)} or warn $errStr;
lib/RapidApp/Role/CatalystApplication.pm:646:			# try/catch instead of a separate one as is currently done - which we're doing because
lib/RapidApp/Role/CatalystApplication.pm:649:			#delete $c->stash->{on_finalize_success};
lib/RapidApp/Role/CatalystApplication.pm:650:			#my $view = $c->view('RapidApp::JSON') or die $err;
lib/RapidApp/Role/CatalystApplication.pm:651:			#$c->stash->{exception} = $err;
lib/RapidApp/Role/CatalystApplication.pm:652:			#$c->forward( $view );
lib/RapidApp/Role/CatalystApplication.pm:657:## --
lib/RapidApp/RootModule.pm:35:	my $params= $class->$orig(@args);
lib/RapidApp/RootModule.pm:36:	$params->{default_module} ||= 'main';
lib/RapidApp/RootModule.pm:37:	$params->{module_name} ||= '';
lib/RapidApp/RootModule.pm:49:  $self->$orig(@args)
lib/RapidApp/RootModule.pm:59:		$coderef->($self);
lib/RapidApp/RootModule.pm:62:	$self->auto_viewport(1);
lib/RapidApp/RootModule.pm:64:	## ---
lib/RapidApp/RootModule.pm:66:	if($self->main_module_class) {
lib/RapidApp/RootModule.pm:67:		Module::Runtime::require_module($self->main_module_class);
lib/RapidApp/RootModule.pm:68:		$self->apply_init_modules(
lib/RapidApp/RootModule.pm:70:				class => $self->main_module_class,
lib/RapidApp/RootModule.pm:71:				params => $self->main_module_params
lib/RapidApp/RootModule.pm:76:	## ---
lib/RapidApp/RootModule.pm:84:  return $self->$orig(@args);
lib/RapidApp/RootModule.pm:89:  my $c = $self->c;
lib/RapidApp/RootModule.pm:90:  my $config = $c->config->{'Model::RapidApp'};
lib/RapidApp/RootModule.pm:92:	$c->stash->{title} = $self->app_title;
lib/RapidApp/RootModule.pm:94:  # Also ugly - double-nested around. We're doing it this way because we
lib/RapidApp/RootModule.pm:97:  return $self->_around_Controller->(sub {
lib/RapidApp/RootModule.pm:99:    # -----------
lib/RapidApp/RootModule.pm:102:    return $self->$orig(@a) unless ($c->module_root_namespace eq '');
lib/RapidApp/RootModule.pm:103:    # -----------
lib/RapidApp/RootModule.pm:105:    my $args = $c->req->arguments;
lib/RapidApp/RootModule.pm:109:    return $self->content unless ($opt || !$c->can('session') || (
lib/RapidApp/RootModule.pm:110:      $c->can('session') && $c->session &&
lib/RapidApp/RootModule.pm:111:      $c->session->{RapidApp_username}
lib/RapidApp/RootModule.pm:114:    return $self->$orig(@a) unless (
lib/RapidApp/RootModule.pm:115:      $opt && !$self->has_subarg($opt) &&
lib/RapidApp/RootModule.pm:116:      $config->{root_template_prefix}
lib/RapidApp/RootModule.pm:119:    return $c->template_dispatcher->default($c,@$args);
lib/RapidApp/RootModule.pm:121:    return $self->$orig(@a);
lib/RapidApp/RootModule.pm:129:	my $ret= $self->SUPER::viewport;
lib/RapidApp/RootModule.pm:130:	$self->c->stash->{config_url} = $self->base_url . '/' . $self->default_module;
lib/RapidApp/RootModule.pm:138:  my $c = $self->c;
lib/RapidApp/RootModule.pm:139:  return $c->template_dispatcher->default($c);
lib/RapidApp/RootModule.pm:144:__PACKAGE__->meta->make_immutable;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:10:  my $xls= Excel::Writer::XLSX->new($fh);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:12:  my $tw= RapidApp::Spreadsheet::ExcelTableWriter->new(
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:14:    wsheet => $xls->add_worksheet("MyData"),
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:18:  my $tw= RapidApp::Spreadsheet::ExcelTableWriter->new(
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:20:    wsheet => $xls->add_worksheet("MyData"),
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:23:      { name => 'bar', label => 'Bar', format => $xls->add_format(bold => 1) },
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:26:    headerFormat => $xls->add_format(bold => 1, underline => 1, italic => 1),
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:29:  $tw->writePreamble("Some descriptive text at the top of the file");
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:30:  $tw->writePreamble;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:31:  $tw->writeHeaders;    # optional so long as writeRow gets called
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:33:  $tw->writeRow(1, 'John Doe', '1234 Reading Rd');
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:34:  $tw->writeRow( [ 2, 'Bob Smith', '1234 Eagle Circle');
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:35:  $tw->writeRow( { foo_1 => 3, bar => 'Rand AlThor', baz => 'Royal Palace, Cairhien' } );
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:37:  $tw->autosizeColumns;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:58:	return $self->wbook->add_format(bold => 1, bottom => 1);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:63:	return scalar(@{$self->columns});
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:69:	my $args= $class->$orig(@_);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:70:	if (defined $args->{wsheet}) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:71:		$args->{wsheets}= [ $args->{wsheet} ];
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:72:		delete $args->{wsheet};
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:86:	my $numWsNeeded= $self->numWsRequired(scalar(@{$self->columns}));
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:87:	$numWsNeeded <= scalar(@{$self->wsheets})
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:88:		or die "Not enough worksheets allocated for ExcelTableWriter (got ".scalar(@{$self->wsheets}).", require $numWsNeeded)";
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:90:	for (my $i= 0; $i < scalar(@{$self->columns}); $i++) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:91:		my $val= $self->columns->[$i];
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:94:			$self->columns->[$i]= RapidApp::Spreadsheet::ExcelTableWriter::ColDef->new($val);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:97:			$self->columns->[$i]= RapidApp::Spreadsheet::ExcelTableWriter::ColDef->new(name => $val);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:105:This value is read-only
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:111:	defined $self->{_curRow} and return $self->{_curRow};
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:112:	return $self->rowStart;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:120:  print RapidApp::Spreadsheet::ExcelTableWriter->excelColIdxToLetter(35);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:122:  print $tableWriter->excelColIdxToLetter(0);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:137:	$colIdx+= $self->colStart;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:138:	return $self->wsheets->[$colIdx / 256], $colIdx%256;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:144:	for (my $i=0; $i < $self->colCount; $i++) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:145:		my $fmt= $self->columns->[$i]->format;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:146:		my $wid= $self->columns->[$i]->width eq 'auto'? undef : $self->columns->[$i]->width;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:148:		my ($wsheet, $sheetCol)= $self->sheetForCol($i);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:149:		$wsheet->set_column($sheetCol, $sheetCol, $wid, $fmt);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:155:	!$self->_documentStarted or die 'column formats can only be applied before the first "write"';
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:157:	$self->_applyColumnFormats();
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:158:	$self->_documentStarted(1);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:173:	!$self->_dataStarted or die 'Preamble must come before headers and data';
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:175:	$self->_documentStarted or $self->prepareDocument;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:177:		my ($ws, $wsCol)= $self->sheetForCol($i);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:178:		$ws->write($self->curRow, $wsCol, $args[$i]);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:180:	$self->{_curRow}++;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:194:	!$self->_dataStarted or die 'Headers cannot be written twice';
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:196:	$self->_documentStarted or $self->prepareDocument;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:197:	for (my $i=0; $i < $self->colCount; $i++) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:198:		my ($ws, $wsCol)= $self->sheetForCol($i);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:199:		$ws->write_string($self->curRow, $wsCol, $self->columns->[$i]->label, $self->headerFormat);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:200:		$self->columns->[$i]->updateWidest(length($self->columns->[$i]->label)*1.2);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:202:	$self->_dataStarted(1);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:203:	$self->{_curRow}++;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:211:  $tableWriter->writeRow( \@rowdata );
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:212:  $tableWriter->writeRow( { col1_name => col1_val, col2_name => col2_val ... } );
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:213:  $tableWriter->writeRow( @rowData );
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:230:our $writeRowFormat; #<-- quick/dirty global var for 'format' (see $workbook->add_format in Excel::Writer::XLSX)
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:237:		$rowData= $self->rowHashToArray($_[0]);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:242:	$self->_dataStarted or $self->writeHeaders;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:244:	for (my $i=0; $i < $self->colCount; $i++) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:245:		my ($ws, $wsCol)= $self->sheetForCol($i);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:247:		my @args = ($self->curRow, $wsCol, $rowData->[$i]);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:250:		$ws->write(@args);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:252:		# -- this logic is dumb and doesn't work right. 'write' already does smart setting of the
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:253:		# type. (commented out by HV on 2012-05-26)
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:254:		#if ($self->columns->[$i]->isString) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:255:		#	$ws->write_string(@args);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:257:		#	$ws->write(@args);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:259:		# --
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:261:		$self->columns->[$i]->updateWidest(length $rowData->[$i]) if (defined $rowData->[$i]);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:263:	$self->{_curRow}++;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:270:	for my $col (@{$self->columns}) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:271:		exists $hash->{$col->name} and $seen++;
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:272:		push @$result, $hash->{$col->name};
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:276:	if (!$self->ignoreUnknownRowKeys && scalar(keys(%$hash)) != $seen) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:278:		map { delete $tmphash{$_->name} } @{$self->columns};
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:286:  $tableWriter->writeRow
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:287:  $tableWriter->writeRow
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:288:  $tableWriter->writeRow
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:290:  $tableWriter->autosizeColumns
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:307:	for (my $i=0; $i < $self->colCount; $i++) {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:308:		if ($self->columns->[$i]->width eq 'auto') {
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:309:			my ($ws, $wsCol)= $self->sheetForCol($i);
lib/RapidApp/Spreadsheet/ExcelTableWriter.pm:310:			$ws->set_column($wsCol, $wsCol, $self->columns->[$i]->widest+.5);
lib/RapidApp/Spreadsheet/ExcelTableWriter/ColDef.pm:19:	$self->has_name or die "Either field or label must be specified";
lib/RapidApp/Spreadsheet/ExcelTableWriter/ColDef.pm:20:	return $self->name;
lib/RapidApp/Spreadsheet/ExcelTableWriter/ColDef.pm:25:	$self->has_label or die "Either field or label must be specified";
lib/RapidApp/Spreadsheet/ExcelTableWriter/ColDef.pm:26:	return $self->label;
lib/RapidApp/Spreadsheet/ExcelTableWriter/ColDef.pm:32:	$self->widest >= $newWidth or $self->widest($newWidth);
lib/RapidApp/Sugar.pm:10:  "   [tip]: run `upgr-rapidapp.pl path/to/lib/` to upgrade your code automatically...",
lib/RapidApp/Sugar.pm:54:	return RapidApp::JSON::RawJavascript->new(js=>$_[0]);
lib/RapidApp/Sugar.pm:64:	blessed $js and not $js->can('TO_JSON_RAW') and 
lib/RapidApp/Sugar.pm:67:	$js = $js->TO_JSON_RAW if (blessed $js);
lib/RapidApp/Sugar.pm:78:	return RapidApp::JSON::RawJavascript->new(js=>$js)
lib/RapidApp/Sugar.pm:88:	return RapidApp::JSON::ScriptWithData->new(@_);
lib/RapidApp/Sugar.pm:94:	return "$text" if ref($text) && ref($text)->isa('RapidApp::HTML::RawHtml');
lib/RapidApp/Sugar.pm:103:	return RapidApp::HTML::RawHtml->new($html), @_;
lib/RapidApp/Sugar.pm:133:	# If the passed arg is already a UserError object, return it as-is:
lib/RapidApp/Sugar.pm:134:	return $msg if ref($msg) && ref($msg)->isa('RapidApp::Responder::UserError');
lib/RapidApp/Sugar.pm:136:	$args{userMessage}= ref($msg) && ref($msg)->isa('RapidApp::HTML::RawHtml')? $msg : "$msg";
lib/RapidApp/Sugar.pm:142:		RapidApp::Responder::UserError->can($key)
lib/RapidApp/Sugar.pm:154:	return RapidApp::Responder::UserError->new(\%args);
lib/RapidApp/Sugar.pm:166:  # Die with a custom user-facing message (in plain text), and a title made of html.
lib/RapidApp/Sugar.pm:180:	$args{userMessage}= ref($msg) && ref($msg)->isa('RapidApp::HTML::RawHtml')? $msg : "$msg";
lib/RapidApp/Sugar.pm:187:		RapidApp::Error->can($key)
lib/RapidApp/Sugar.pm:197:	return RapidApp::Error->new(\%args);
lib/RapidApp/Sugar.pm:223:#	return caller->can('has')->($name,%$conf);
lib/RapidApp/Sugar.pm:247:#	return caller->can('has')->($name,%$conf);
lib/RapidApp/Sugar.pm:254:	return RapidApp::Responder::InfoStatus->new(%opt);
lib/RapidApp/TableSpec.pm:16:	$self->add_onrequest_columns_mungers( $self->column_permissions_roles_munger );
lib/RapidApp/TableSpec.pm:22:  my %params = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec.pm:24:  # -- New: handle rogue name values, like ScalarRefs which DBIC sometimes uses 
lib/RapidApp/TableSpec.pm:25:  # for the ->table attr of Result classes, and also normalize values
lib/RapidApp/TableSpec.pm:30:    $table = (split(/\./,$table,2))[1] || $table; #<-- get 'table' for both 'db.table' and 'table' format
lib/RapidApp/TableSpec.pm:33:  # --
lib/RapidApp/TableSpec.pm:35:  return $class->$orig(%params);
lib/RapidApp/TableSpec.pm:79:	my %cols = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec.pm:81:	my $def = $self->default_column_properties;
lib/RapidApp/TableSpec.pm:84:			$Column->set_properties_If($def);
lib/RapidApp/TableSpec.pm:88:	push @{$self->column_order}, grep { ! $self->columns->{$_} } keys %cols;
lib/RapidApp/TableSpec.pm:90:	$self->$orig(%cols);
lib/RapidApp/TableSpec.pm:91:	$self->prune_invalid_columns;
lib/RapidApp/TableSpec.pm:97:	return grep { $_ = $self->get_column($_) } $self->updated_column_order;
lib/RapidApp/TableSpec.pm:103:	my $Column = $self->$orig($name) || return undef;
lib/RapidApp/TableSpec.pm:106:		defined $self->column_property_transforms or (
lib/RapidApp/TableSpec.pm:107:			defined $self->column_properties and
lib/RapidApp/TableSpec.pm:108:			defined $self->column_properties->{$Column->name}
lib/RapidApp/TableSpec.pm:112:	my $trans = $self->column_property_transforms;
lib/RapidApp/TableSpec.pm:113:	my $cur_props = $Column->all_properties_hash;
lib/RapidApp/TableSpec.pm:117:		local $_ = $cur_props->{$prop};
lib/RapidApp/TableSpec.pm:118:		$change_props{$prop} = $trans->{$prop}->($cur_props);
lib/RapidApp/TableSpec.pm:122:	%change_props = ( %change_props, %{ $self->column_properties->{$Column->name} } ) if (
lib/RapidApp/TableSpec.pm:123:		defined $self->column_properties and
lib/RapidApp/TableSpec.pm:124:		defined $self->column_properties->{$Column->name}
lib/RapidApp/TableSpec.pm:127:	return $Column->copy(%change_props);
lib/RapidApp/TableSpec.pm:140:	if (defined $self->limit_columns and scalar @{ $self->limit_columns } > 0) {
lib/RapidApp/TableSpec.pm:141:		my %map = map { $_ => 1 } @{ $self->limit_columns };
lib/RapidApp/TableSpec.pm:142:		push @remove_cols, grep { not defined $map{$_} } keys %{ $self->columns };
lib/RapidApp/TableSpec.pm:145:	if (defined $self->exclude_columns and scalar @{ $self->exclude_columns } > 0) {
lib/RapidApp/TableSpec.pm:146:		my %map = map { $_ => 1 } @{ $self->exclude_columns };
lib/RapidApp/TableSpec.pm:147:		push @remove_cols, grep { defined $map{$_} } keys %{ $self->columns };
lib/RapidApp/TableSpec.pm:151:		delete $self->columns->{$remove};
lib/RapidApp/TableSpec.pm:154:	$self->updated_column_order;
lib/RapidApp/TableSpec.pm:160:	# Prune out duplciates and columns not in $self->columns
lib/RapidApp/TableSpec.pm:161:	@{$self->column_order} = grep { !$seen{$_}++ and $self->columns->{$_} } @{$self->column_order};
lib/RapidApp/TableSpec.pm:163:	push @{$self->column_order}, grep { !$seen{$_} } keys %{$self->columns};
lib/RapidApp/TableSpec.pm:164:	return @{$self->column_order};
lib/RapidApp/TableSpec.pm:172:	for my $col ($self->updated_column_order) {
lib/RapidApp/TableSpec.pm:183:	my $offset = $self->get_column_order_index($colname);
lib/RapidApp/TableSpec.pm:184:	return $self->set_column_order($offset,@cols);
lib/RapidApp/TableSpec.pm:191:	my $offset = $self->get_column_order_index($colname);
lib/RapidApp/TableSpec.pm:192:	return $self->set_column_order(++$offset,@cols);
lib/RapidApp/TableSpec.pm:200:	return $self->set_column_order($offset, grep { exists $self->columns->{$_} } @cols);
lib/RapidApp/TableSpec.pm:212:	$self->has_column($_) or die "set_column_order(): cannot set the order of non-existant columns ($_)" for (@cols);
lib/RapidApp/TableSpec.pm:217:	@{$self->column_order} = grep { !$cols_map{$_} } @{$self->column_order};
lib/RapidApp/TableSpec.pm:219:	if ($offset < scalar @{$self->column_order}) {
lib/RapidApp/TableSpec.pm:221:		splice(@{$self->column_order},$offset,0,@cols);
lib/RapidApp/TableSpec.pm:225:		push @{$self->column_order}, @cols;
lib/RapidApp/TableSpec.pm:229:	$self->updated_column_order;
lib/RapidApp/TableSpec.pm:232:sub column_names { (shift)->column_names_ordered }
lib/RapidApp/TableSpec.pm:235:	return map { $_->name } $self->column_list;
lib/RapidApp/TableSpec.pm:242:	$self->updated_column_order;
lib/RapidApp/TableSpec.pm:243:	return { map { $_->name => $_->properties_limited(@props) } $self->column_list };
lib/RapidApp/TableSpec.pm:257:			$col->{profile_definitions} = $self->profile_definitions if ($self->profile_definitions);
lib/RapidApp/TableSpec.pm:258:			$Column = RapidApp::TableSpec::Column->new($col);
lib/RapidApp/TableSpec.pm:259:			$Column->set_properties($col);
lib/RapidApp/TableSpec.pm:262:		#die "A column named " . $Column->name . ' already exists.' if (defined $self->has_column($Column->name));
lib/RapidApp/TableSpec.pm:264:		$self->apply_columns( $Column->name => $Column );
lib/RapidApp/TableSpec.pm:268:	$self->update_column_permissions_roles_code;
lib/RapidApp/TableSpec.pm:275:	my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec.pm:278:	my $pruned = { map { $_ => $hash->{$_} } grep { $self->get_column($_) } keys %$hash };
lib/RapidApp/TableSpec.pm:280:	return $self->apply_column_properties($pruned);
lib/RapidApp/TableSpec.pm:286:	my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec.pm:290:		my $Column = $self->get_column($col) or die "apply_column_properties failed - no such column '$col'";
lib/RapidApp/TableSpec.pm:291:		$Column->set_properties($hash->{$col});
lib/RapidApp/TableSpec.pm:294:	$self->update_column_permissions_roles_code;
lib/RapidApp/TableSpec.pm:301:	my %opts = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec.pm:307:		if ($self->meta->find_attribute_by_name($opt)) {
lib/RapidApp/TableSpec.pm:318:	my $Copy = $self->meta->clone_object(Clone::clone($self),%attr);
lib/RapidApp/TableSpec.pm:321:		$Copy->$key($other{$key}) if ($Copy->can($key));
lib/RapidApp/TableSpec.pm:329:		if($Copy->limit_columns) {
lib/RapidApp/TableSpec.pm:330:			my @limit = map { $sub->() } @{ $Copy->limit_columns };
lib/RapidApp/TableSpec.pm:331:			$Copy->limit_columns(\@limit) if (scalar @limit > 0);
lib/RapidApp/TableSpec.pm:334:		if ($Copy->exclude_columns) {
lib/RapidApp/TableSpec.pm:335:			my @exclude = map { $sub->() } @{ $Copy->exclude_columns };
lib/RapidApp/TableSpec.pm:336:			$Copy->exclude_columns(\@exclude) if (scalar @exclude > 0);
lib/RapidApp/TableSpec.pm:348:	push @added, $self->add_columns($_) for ($TableSpec->column_list);
lib/RapidApp/TableSpec.pm:353:	push @limit, @{ $self->limit_columns } if ($self->limit_columns);
lib/RapidApp/TableSpec.pm:354:	push @limit, @{ $TableSpec->limit_columns } if ($TableSpec->limit_columns);
lib/RapidApp/TableSpec.pm:356:	$self->limit_columns(\@limit) if (scalar @limit > 0);
lib/RapidApp/TableSpec.pm:360:	push @exclude, @{ $self->exclude_columns } if ($self->exclude_columns);
lib/RapidApp/TableSpec.pm:361:	push @exclude, @{ $TableSpec->exclude_columns } if ($TableSpec->exclude_columns);
lib/RapidApp/TableSpec.pm:363:	$self->exclude_columns(\@exclude) if (scalar @exclude > 0);
lib/RapidApp/TableSpec.pm:365:	$self->updated_column_order;
lib/RapidApp/TableSpec.pm:371:# onrequest_columns_munger to DataStore2-based modules that are
lib/RapidApp/TableSpec.pm:390:	default => sub { RapidApp::Handler->new( code => sub {} ) }
lib/RapidApp/TableSpec.pm:404:	foreach my $Column ($self->column_list) {
lib/RapidApp/TableSpec.pm:405:		$Column->permission_roles or next;
lib/RapidApp/TableSpec.pm:407:		foreach my $perm ( keys %{ $Column->permission_roles } ) {
lib/RapidApp/TableSpec.pm:408:			foreach my $role ( @{ $Column->permission_roles->{$perm} } ) {
lib/RapidApp/TableSpec.pm:412:				$roles->{$rolespec} = {} unless ($roles->{$rolespec});
lib/RapidApp/TableSpec.pm:413:				$roles->{$rolespec}{$perm} = [] unless ($roles->{$rolespec}{$perm});
lib/RapidApp/TableSpec.pm:414:				push @{ $roles->{$rolespec}{$perm} }, $Column->name;
lib/RapidApp/TableSpec.pm:419:	$self->roles_permissions_columns_map($roles);
lib/RapidApp/TableSpec.pm:421:	return $self->column_permissions_roles_munger->code(sub {}) unless (scalar(keys %$roles) > 0);
lib/RapidApp/TableSpec.pm:422:	return $self->column_permissions_roles_munger->code(sub {
lib/RapidApp/TableSpec.pm:424:		return $self->apply_permission_roles_to_datastore_columns($columns);
lib/RapidApp/TableSpec.pm:429:# This code not in use - 
lib/RapidApp/TableSpec.pm:434:	my $c = RapidApp->active_request_context;
lib/RapidApp/TableSpec.pm:435:	#delete $columns->{creator}->{editor} unless ($c->check_user_roles('admin'));
lib/RapidApp/TableSpec.pm:437:	my $map = $self->roles_permissions_columns_map;
lib/RapidApp/TableSpec.pm:440:		if ($c->check_user_roles(split(/\s+/,$role))) {
lib/RapidApp/TableSpec.pm:447:			if ($map->{$role}->{create}) {
lib/RapidApp/TableSpec.pm:452:			elsif ($map->{$role}->{read}) {
lib/RapidApp/TableSpec.pm:457:			elsif ($map->{$role}->{update}) {
lib/RapidApp/TableSpec.pm:458:				my $list = $map->{$role}->{update};
lib/RapidApp/TableSpec.pm:461:					delete $columns->{$colname}->{editor};
lib/RapidApp/TableSpec.pm:465:			elsif ($map->{$role}->{destroy}) {
lib/RapidApp/TableSpec.pm:478:	#scream($self->roles_permissions_columns_map);
lib/RapidApp/TableSpec.pm:486:__PACKAGE__->meta->make_immutable;
lib/RapidApp/TableSpec/ColSpec.pm:78:my $TYPE_ColSpecStr = Type::Tiny->new(
lib/RapidApp/TableSpec/ColSpec.pm:82:    #/[A-Z]+/ and warn "ColSpec '$_' is invalid because it contains upper case characters" and return 0;
lib/RapidApp/TableSpec/ColSpec.pm:83:    /([^\#a-zA-Z0-9\-\_\.\!\*\?\[\]\{\}\:])/ and warn "ColSpec '$_' contains invalid characters ('$1')." and return 0;
lib/RapidApp/TableSpec/ColSpec.pm:99:subtype 'ColSpecStr', as 'Str', where { $TYPE_ColSpecStr->constraint->(@_) };
lib/RapidApp/TableSpec/ColSpec.pm:102:sub all_colspecs { uniq( @{(shift)->colspecs} ) }  
lib/RapidApp/TableSpec/ColSpec.pm:103:sub add_colspecs { push @{(shift)->colspecs}, @_ }
lib/RapidApp/TableSpec/ColSpec.pm:111:	my %params = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/ColSpec.pm:113:	return $class->$orig(%params);
lib/RapidApp/TableSpec/ColSpec.pm:118:	$self->regen_subspec;
lib/RapidApp/TableSpec/ColSpec.pm:121:after 'expand_colspecs' => sub { (shift)->regen_subspec(@_) };
lib/RapidApp/TableSpec/ColSpec.pm:122:after 'add_colspecs' => sub { (shift)->regen_subspec(@_) };
lib/RapidApp/TableSpec/ColSpec.pm:129:	@{$self->colspecs} = $code->(@{$self->colspecs});
lib/RapidApp/TableSpec/ColSpec.pm:136:	$self->_clear_rel_order;
lib/RapidApp/TableSpec/ColSpec.pm:137:	$self->_clear_subspec;
lib/RapidApp/TableSpec/ColSpec.pm:138:	$self->_clear_subspec_data;
lib/RapidApp/TableSpec/ColSpec.pm:139:	$self->subspec;
lib/RapidApp/TableSpec/ColSpec.pm:145:	return $self->_subspec_data->{order};
lib/RapidApp/TableSpec/ColSpec.pm:147:sub all_rel_order   { uniq( @{(shift)->rel_order} ) }  
lib/RapidApp/TableSpec/ColSpec.pm:148:sub count_rel_order { scalar( (shift)->all_rel_order ) }
lib/RapidApp/TableSpec/ColSpec.pm:152:	my $data = $self->_subspec_data->{data};
lib/RapidApp/TableSpec/ColSpec.pm:153:	return { '' => $self } unless ($self->count_rel_order > 1);
lib/RapidApp/TableSpec/ColSpec.pm:154:	return { map { $_ => __PACKAGE__->new(colspecs => $data->{$_}) } keys %$data };
lib/RapidApp/TableSpec/ColSpec.pm:156:sub get_subspec { (shift)->subspec->{$_[0]} }
lib/RapidApp/TableSpec/ColSpec.pm:168:	foreach my $spec ($self->all_colspecs) {
lib/RapidApp/TableSpec/ColSpec.pm:174:		unless(@parts > 0) { # <-- if its the base rel
lib/RapidApp/TableSpec/ColSpec.pm:206:	return $self->get_subspec('');
lib/RapidApp/TableSpec/Column.pm:20:	my %params = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Column.pm:28:	#my $profile_defs = $class->_build_profile_definitions;
lib/RapidApp/TableSpec/Column.pm:34:	#my @base_profiles = ( $class->DEFAULT_BASE_PROFILES );
lib/RapidApp/TableSpec/Column.pm:42:	$class->collapse_apply_profiles($params{properties_underlay},@profiles);
lib/RapidApp/TableSpec/Column.pm:46:	return $class->$orig(%params);
lib/RapidApp/TableSpec/Column.pm:56:  $profiles = delete $target->{profiles} if($target->{profiles});
lib/RapidApp/TableSpec/Column.pm:67:  # -- Github issue #61
lib/RapidApp/TableSpec/Column.pm:68:  # This is special handling for 'bool' - we need to add the 3rd, '(not set)' option
lib/RapidApp/TableSpec/Column.pm:74:    my $selections = try{$collapsed->{menu_select_editor}{selections}};
lib/RapidApp/TableSpec/Column.pm:76:      #iconCls => "ra-icon-cross-light-12x12",
lib/RapidApp/TableSpec/Column.pm:81:  # --
lib/RapidApp/TableSpec/Column.pm:99:#	my $defs = $self->DEFAULT_PROFILES();
lib/RapidApp/TableSpec/Column.pm:101:#	# TODO collapse sub-profile defs
lib/RapidApp/TableSpec/Column.pm:106:# properties that get merged under actual properties - collapsed from profiles:
lib/RapidApp/TableSpec/Column.pm:115:	$self->collapse_apply_profiles(
lib/RapidApp/TableSpec/Column.pm:116:		$self->properties_underlay,
lib/RapidApp/TableSpec/Column.pm:138:	my $attr = $self->meta->get_attribute($name);
lib/RapidApp/TableSpec/Column.pm:139:	return $attr->get_value($self) if ($attr);
lib/RapidApp/TableSpec/Column.pm:141:	return $self->_other_properties->{$name};
lib/RapidApp/TableSpec/Column.pm:146:	my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Column.pm:148:	$self->apply_profiles(delete $new{profiles}) if ($new{profiles});
lib/RapidApp/TableSpec/Column.pm:151:		my $attr = $self->meta->get_attribute($key);
lib/RapidApp/TableSpec/Column.pm:152:		if ($attr and $attr->has_write_method) {
lib/RapidApp/TableSpec/Column.pm:153:			$self->$key($new{$key});
lib/RapidApp/TableSpec/Column.pm:156:			$self->_other_properties->{$key} = $new{$key};
lib/RapidApp/TableSpec/Column.pm:164:	my %new = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Column.pm:167:		$self->get_property($prop) and delete $new{$prop};
lib/RapidApp/TableSpec/Column.pm:170:	return $self->set_properties(%new);
lib/RapidApp/TableSpec/Column.pm:177:	my %hash = %{ $self->_other_properties };
lib/RapidApp/TableSpec/Column.pm:179:	foreach my $attr ($self->meta->get_all_attributes) {
lib/RapidApp/TableSpec/Column.pm:180:		next if ($self->exclude_attr_property_names->{$attr->name});
lib/RapidApp/TableSpec/Column.pm:181:		next unless ($attr->has_value($self));
lib/RapidApp/TableSpec/Column.pm:182:		$hash{$attr->name} = $attr->get_value($self);
lib/RapidApp/TableSpec/Column.pm:185:	my $props = { %{$self->properties_underlay},%hash };
lib/RapidApp/TableSpec/Column.pm:189:	# is one-layer. This has gotten complicated and ugly and needs refactoring...
lib/RapidApp/TableSpec/Column.pm:190:	return merge($self->extra_properties,$props); 
lib/RapidApp/TableSpec/Column.pm:202:	my $properties = $self->all_properties_hash;
lib/RapidApp/TableSpec/Column.pm:204:	my @keys = grep { $map->{$_} } keys %$properties;
lib/RapidApp/TableSpec/Column.pm:208:		$set->{$key} = $properties->{$key};
lib/RapidApp/TableSpec/Column.pm:217:	my %opts = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Column.pm:223:		if ($self->meta->find_attribute_by_name($opt)) {
lib/RapidApp/TableSpec/Column.pm:231:	my $Copy = $self->meta->clone_object(Clone::clone($self),%attr);
lib/RapidApp/TableSpec/Column.pm:235:		#_other_properties => { %{ $self->_other_properties } }
lib/RapidApp/TableSpec/Column.pm:238:	$Copy->set_properties(%other);
lib/RapidApp/TableSpec/Column.pm:247:	return unless ($self->rapidapp_init_coderef);
lib/RapidApp/TableSpec/Column.pm:250:	$self->rapidapp_init_coderef->($self,@_);
lib/RapidApp/TableSpec/Column.pm:254:	$self->rapidapp_init_coderef(undef);
lib/RapidApp/TableSpec/Column.pm:259:__PACKAGE__->meta->make_immutable;
lib/RapidApp/TableSpec/Column/Profile.pm:17:##### ---------------------------------------
lib/RapidApp/TableSpec/Column/Profile.pm:18:##  THESE ARE NOW IN THE CLIENT-SIDE: Ext.ux.RapidApp.Plugin.AppGridSummary
lib/RapidApp/TableSpec/Column/Profile.pm:36:#  #{ function => 'CONCAT(DATEDIFF(NOW(),avg({x})),\' days\')', title => 'Ave Age (days)' }, #<-- doesn't work
lib/RapidApp/TableSpec/Column/Profile.pm:45:##### ---------------------------------------
lib/RapidApp/TableSpec/Column/Profile.pm:53:    is_nullable => 1, #<-- initial/default
lib/RapidApp/TableSpec/Column/Profile.pm:64:    is_nullable => 1, #<-- redundant/default
lib/RapidApp/TableSpec/Column/Profile.pm:75:    editor => { xtype => 'numberfield', style => 'text-align:left;' },
lib/RapidApp/TableSpec/Column/Profile.pm:81:    editor => { xtype => 'numberfield', style => 'text-align:left;', allowDecimals => \0 },
lib/RapidApp/TableSpec/Column/Profile.pm:94:          iconCls => "ra-icon-cross-light-12x12",
lib/RapidApp/TableSpec/Column/Profile.pm:95:          #iconCls => "ra-icon-cross-tiny",
lib/RapidApp/TableSpec/Column/Profile.pm:100:          iconCls => "ra-icon-checkmark-12x12",
lib/RapidApp/TableSpec/Column/Profile.pm:101:          #iconCls => "ra-icon-tick-tiny",
lib/RapidApp/TableSpec/Column/Profile.pm:108:    # piggy-back on the existing quick-search pre-validation for
lib/RapidApp/TableSpec/Column/Profile.pm:109:    # enum columns -- Github issue #60
lib/RapidApp/TableSpec/Column/Profile.pm:123:    #editor => { xtype => 'logical-checkbox', plugins => [ 'booltoint' ] }
lib/RapidApp/TableSpec/Column/Profile.pm:151:    editor     => { xtype => 'ra-hexfield', grow => \1 },
lib/RapidApp/TableSpec/Column/Profile.pm:161:      xtype		=> 'ra-htmleditor',
lib/RapidApp/TableSpec/Column/Profile.pm:162:      resizable => \1, #<-- Specific to Ext.ux.RapidApp.HtmlEditor ('ra-htmleditor')
lib/RapidApp/TableSpec/Column/Profile.pm:166:      anchor => '-25',
lib/RapidApp/TableSpec/Column/Profile.pm:173:      xtype		=> 'ra-md-editor',
lib/RapidApp/TableSpec/Column/Profile.pm:187:    # supporting this will require server-side validation, which mary vary from
lib/RapidApp/TableSpec/Column/Profile.pm:191:    # really want it - this is just the default...
lib/RapidApp/TableSpec/Column/Profile.pm:195:      dateFormat => 'Y-m-d',
lib/RapidApp/TableSpec/Column/Profile.pm:198:      dateConfig => { plugins => ['form-relative-datetime'] }, 
lib/RapidApp/TableSpec/Column/Profile.pm:200:      #editable => \0  #<-- force whole-field click/select
lib/RapidApp/TableSpec/Column/Profile.pm:212:      format => 'Y-m-d',
lib/RapidApp/TableSpec/Column/Profile.pm:213:      plugins => ['form-relative-datetime'], 
lib/RapidApp/TableSpec/Column/Profile.pm:215:      #editable => \0 #<-- force whole-field click/select
lib/RapidApp/TableSpec/Column/Profile.pm:228:    editor => { xtype => 'numberfield', style => 'text-align:left;', decimalPrecision => 2 },
lib/RapidApp/TableSpec/Column/Profile.pm:233:     editor => { xtype => 'numberfield', style => 'text-align:left;' },
lib/RapidApp/TableSpec/Column/Profile.pm:272:    editor   => { xtype => 'cas-upload-field' },
lib/RapidApp/TableSpec/Column/Profile.pm:277:      xtype => 'cas-image-field', 
lib/RapidApp/TableSpec/Column/Profile.pm:278:      simple_value => 1 #<-- needed for back-compat
lib/RapidApp/TableSpec/Column/Profile.pm:309:    my $p = $Defs->{$prof};
lib/RapidApp/TableSpec/Column/Profile.pm:310:    my ($a,$e) = ($p->{allow_add},$p->{allow_edit});
lib/RapidApp/TableSpec/Column/Profile.pm:311:    if(exists $p->{allow_add}) {
lib/RapidApp/TableSpec/Column/Profile.pm:315:    if(exists $p->{allow_edit}) {
lib/RapidApp/TableSpec/Column/Profile.pm:325:# Cache collapsed profile sets process-wide for performance:
lib/RapidApp/TableSpec/Column/Profile.pm:334:      my $opt = $profile_defs->{$profile} or next;
lib/RapidApp/TableSpec/Column/Profile.pm:342:# One-off function to apply profiles to an arbitrary hashref w/o considering
lib/RapidApp/TableSpec/Column/Profile.pm:344:# for GitHub #77 -- see special invocation in RapidApp::TableSpec::Role::DBIC
lib/RapidApp/TableSpec/Column/Profile.pm:346:  shift if ($_[0] && $_[0] eq __PACKAGE__); #<-- support calling as class method
lib/RapidApp/TableSpec/Column/Profile.pm:351:  @profiles = @{$cnf->{profiles}} if (
lib/RapidApp/TableSpec/Column/Profile.pm:353:    && $cnf->{profiles}
lib/RapidApp/TableSpec/Column/Profile.pm:354:    && ref($cnf->{profiles}) eq 'ARRAY'
lib/RapidApp/TableSpec/Column/Profile.pm:371:RapidApp::TableSpec::Column::Profile - TableSpec Column Profile Definitions
lib/RapidApp/TableSpec/DbicTableSpec.pm:8:__PACKAGE__->meta->make_immutable;
lib/RapidApp/TableSpec/Role/DBIC.pm:29:# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:36:	my $schema_attr = $self->meta->get_attribute('schema');
lib/RapidApp/TableSpec/Role/DBIC.pm:37:	$self->meta->throw_error("'schema' not supplied; cannot get ResultSource automatically!")
lib/RapidApp/TableSpec/Role/DBIC.pm:38:		unless ($schema_attr->has_value($self));
lib/RapidApp/TableSpec/Role/DBIC.pm:40:	#return $self->schema->source($self->ResultClass);
lib/RapidApp/TableSpec/Role/DBIC.pm:41:	return try{$self->schema->source($self->ResultClass)} || 
lib/RapidApp/TableSpec/Role/DBIC.pm:42:		$self->schema->source((reverse split(/\:\:/,$self->ResultClass))[0]);
lib/RapidApp/TableSpec/Role/DBIC.pm:48:	my $source_name = $self->ResultSource->source_name;
lib/RapidApp/TableSpec/Role/DBIC.pm:49:	return $self->ResultSource->schema->class($source_name);
lib/RapidApp/TableSpec/Role/DBIC.pm:52:has 'schema', is => 'ro', lazy => 1, default => sub { (shift)->ResultSource->schema; };
lib/RapidApp/TableSpec/Role/DBIC.pm:53:# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:62:  ) ? RapidApp::TableSpec::ColSpec->new(colspecs => $v) : $v
lib/RapidApp/TableSpec/Role/DBIC.pm:69:	required => 1, coerce => \&_coerce_ColSpec, trigger =>  sub { (shift)->_colspec_attr_init_trigger(@_) };
lib/RapidApp/TableSpec/Role/DBIC.pm:72:	default => sub {[]}, coerce => \&_coerce_ColSpec, trigger =>  sub { (shift)->_colspec_attr_init_trigger(@_) };
lib/RapidApp/TableSpec/Role/DBIC.pm:75:	default => sub {[]}, coerce => \&_coerce_ColSpec, trigger => sub { (shift)->_colspec_attr_init_trigger(@_) };
lib/RapidApp/TableSpec/Role/DBIC.pm:78:	default => sub {[]}, coerce => \&_coerce_ColSpec, trigger => sub { (shift)->_colspec_attr_init_trigger(@_) };
lib/RapidApp/TableSpec/Role/DBIC.pm:85:	my $sep = $self->relation_sep;
lib/RapidApp/TableSpec/Role/DBIC.pm:86:	/${sep}/ and die "Fatal: ColSpec '$_' is invalid because it contains the relation separater string '$sep'" for ($ColSpec->all_colspecs);
lib/RapidApp/TableSpec/Role/DBIC.pm:88:	$ColSpec->expand_colspecs(sub {
lib/RapidApp/TableSpec/Role/DBIC.pm:89:		$self->expand_relspec_wildcards(\@_)
lib/RapidApp/TableSpec/Role/DBIC.pm:97:	$self->init_relspecs;
lib/RapidApp/TableSpec/Role/DBIC.pm:104:	$self->multi_rel_columns_indx;
lib/RapidApp/TableSpec/Role/DBIC.pm:106:	$self->include_colspec->expand_colspecs(sub {
lib/RapidApp/TableSpec/Role/DBIC.pm:107:		$self->expand_relationship_columns(@_)
lib/RapidApp/TableSpec/Role/DBIC.pm:110:	$self->include_colspec->expand_colspecs(sub {
lib/RapidApp/TableSpec/Role/DBIC.pm:111:		$self->expand_related_required_fetch_colspecs(@_)
lib/RapidApp/TableSpec/Role/DBIC.pm:115:	foreach my $col ($self->no_column_colspec->base_colspec->all_colspecs) {
lib/RapidApp/TableSpec/Role/DBIC.pm:116:		$self->Cnf_columns->{$col} = {} unless ($self->Cnf_columns->{$col});
lib/RapidApp/TableSpec/Role/DBIC.pm:117:		%{$self->Cnf_columns->{$col}} = (
lib/RapidApp/TableSpec/Role/DBIC.pm:118:			%{$self->Cnf_columns->{$col}},
lib/RapidApp/TableSpec/Role/DBIC.pm:123:		push @{$self->Cnf_columns_order},$col;
lib/RapidApp/TableSpec/Role/DBIC.pm:125:	uniq($self->Cnf_columns_order);
lib/RapidApp/TableSpec/Role/DBIC.pm:127:	my @rels = $self->include_colspec->all_rel_order;
lib/RapidApp/TableSpec/Role/DBIC.pm:129:	$self->add_related_TableSpec($_) for (grep { $_ ne '' } @rels);
lib/RapidApp/TableSpec/Role/DBIC.pm:131:	$self->init_local_columns;
lib/RapidApp/TableSpec/Role/DBIC.pm:133:	foreach my $rel (@{$self->related_TableSpec_order}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:134:		my $TableSpec = $self->related_TableSpec->{$rel};
lib/RapidApp/TableSpec/Role/DBIC.pm:135:		for my $name ($TableSpec->updated_column_order) {
lib/RapidApp/TableSpec/Role/DBIC.pm:136:			die "Column name conflict: $name is already defined (rel: $rel)" if ($self->has_column($name));
lib/RapidApp/TableSpec/Role/DBIC.pm:137:			$self->column_name_relationship_map->{$name} = $rel;
lib/RapidApp/TableSpec/Role/DBIC.pm:145:sub apply_column_data_alias { my $h = (shift)->column_data_alias; %$h = ( %$h, @_ ) }
lib/RapidApp/TableSpec/Role/DBIC.pm:153:	my $rel_cols = $self->get_Cnf('relationship_column_names') || return;
lib/RapidApp/TableSpec/Role/DBIC.pm:163:				$self->Cnf_columns->{$relcol}->{keyField},
lib/RapidApp/TableSpec/Role/DBIC.pm:164:				$relcol . '.' . $self->Cnf_columns->{$relcol}->{displayField},
lib/RapidApp/TableSpec/Role/DBIC.pm:165:				$relcol . '.' . $self->Cnf_columns->{$relcol}->{valueField}
lib/RapidApp/TableSpec/Role/DBIC.pm:168:			$self->apply_column_data_alias( $relcol => $self->Cnf_columns->{$relcol}->{keyField} );
lib/RapidApp/TableSpec/Role/DBIC.pm:169:			push @no_cols, grep { !$self->colspecs_to_colspec_test(\@columns,$_) } @add;
lib/RapidApp/TableSpec/Role/DBIC.pm:172:	$self->no_column_colspec->add_colspecs(@no_cols);
lib/RapidApp/TableSpec/Role/DBIC.pm:182:	my $local_cols = $self->get_Cnf_order('columns');
lib/RapidApp/TableSpec/Role/DBIC.pm:191:			my $req = $self->Cnf_columns->{$col}->{required_fetch_colspecs} or next;
lib/RapidApp/TableSpec/Role/DBIC.pm:197:				my $sep = $self->relation_sep;
lib/RapidApp/TableSpec/Role/DBIC.pm:199:				push @req_columns, $self->column_prefix . $colname;
lib/RapidApp/TableSpec/Role/DBIC.pm:203:			$self->Cnf_columns->{$col}->{required_fetch_columns} = [] 
lib/RapidApp/TableSpec/Role/DBIC.pm:204:				unless (defined $self->Cnf_columns->{$col}->{required_fetch_columns});
lib/RapidApp/TableSpec/Role/DBIC.pm:206:			push @{$self->Cnf_columns->{$col}->{required_fetch_columns}}, @req_columns;
lib/RapidApp/TableSpec/Role/DBIC.pm:209:			push @no_cols, grep { !$self->colspecs_to_colspec_test(\@columns,$_) } @$req;
lib/RapidApp/TableSpec/Role/DBIC.pm:212:	$self->no_column_colspec->add_colspecs(@no_cols);
lib/RapidApp/TableSpec/Role/DBIC.pm:220:	return $self->include_colspec->base_colspec->colspecs;
lib/RapidApp/TableSpec/Role/DBIC.pm:225:	return clone($self->get_Cnf('columns'));
lib/RapidApp/TableSpec/Role/DBIC.pm:229:	return clone($self->get_Cnf_order('columns'));
lib/RapidApp/TableSpec/Role/DBIC.pm:235:	my $class = $self->ResultClass;
lib/RapidApp/TableSpec/Role/DBIC.pm:236:	unless ( $class->primary_columns > 0 ) {
lib/RapidApp/TableSpec/Role/DBIC.pm:237:    local $SIG{__WARN__} = sub {}; # GitHub Issue #167 - TODO/FIXME
lib/RapidApp/TableSpec/Role/DBIC.pm:238:    $class->set_primary_key( $class->columns )
lib/RapidApp/TableSpec/Role/DBIC.pm:241:	my @order = @{$self->Cnf_columns_order};
lib/RapidApp/TableSpec/Role/DBIC.pm:242:	@order = $self->filter_base_columns(@order);
lib/RapidApp/TableSpec/Role/DBIC.pm:244:	$self->add_db_column($_,$self->Cnf_columns->{$_}) for (@order);
lib/RapidApp/TableSpec/Role/DBIC.pm:251:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:253:	%opt = $self->get_relationship_column_cnf($name,\%opt) if($opt{relationship_info});
lib/RapidApp/TableSpec/Role/DBIC.pm:255:	$opt{name} = $self->column_prefix . $name;
lib/RapidApp/TableSpec/Role/DBIC.pm:257:	my $editable = $self->filter_updatable_columns($name,$opt{name});
lib/RapidApp/TableSpec/Role/DBIC.pm:258:	my $creatable = $self->filter_creatable_columns($name,$opt{name});
lib/RapidApp/TableSpec/Role/DBIC.pm:260:	# --  NEW: VIRTUAL COLUMNS SUPPORT:
lib/RapidApp/TableSpec/Role/DBIC.pm:261:	if($self->ResultClass->has_virtual_column($name)) {
lib/RapidApp/TableSpec/Role/DBIC.pm:263:		unless(try{$self->ResultClass->column_info($name)->{set_function}}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:268:	# --
lib/RapidApp/TableSpec/Role/DBIC.pm:270:  ## -- (see also below comment and commit 2dccadc6f3 which was a regression)
lib/RapidApp/TableSpec/Role/DBIC.pm:272:  ## because this happens before they are applied (->add_columns, at the end of this
lib/RapidApp/TableSpec/Role/DBIC.pm:285:  ## --
lib/RapidApp/TableSpec/Role/DBIC.pm:291:  #### We do need this code after all -- see above comment. Was removed in 2dccadc6f3
lib/RapidApp/TableSpec/Role/DBIC.pm:306:	$self->add_columns(\%opt);
lib/RapidApp/TableSpec/Role/DBIC.pm:314:sub get_Cnf_order { (shift)->Cnf_order->{$_[0]} }
lib/RapidApp/TableSpec/Role/DBIC.pm:319:	my $class = $self->ResultClass;
lib/RapidApp/TableSpec/Role/DBIC.pm:323:	unless($class->can('TableSpec_cnf')) {
lib/RapidApp/TableSpec/Role/DBIC.pm:324:		$class->load_components('+RapidApp::DBIC::Component::TableSpec');
lib/RapidApp/TableSpec/Role/DBIC.pm:325:		$class->apply_TableSpec;
lib/RapidApp/TableSpec/Role/DBIC.pm:328:	my $cf = $class->get_built_Cnf;
lib/RapidApp/TableSpec/Role/DBIC.pm:330:	#%{$self->Cnf_order} = %{ $cf->{order} || {} };
lib/RapidApp/TableSpec/Role/DBIC.pm:331:	#return $cf->{data} || {};
lib/RapidApp/TableSpec/Role/DBIC.pm:334:  my $sim_order = { columns => [ keys %{$cf->{columns}} ] };
lib/RapidApp/TableSpec/Role/DBIC.pm:336:  %{$self->Cnf_order} = %{ $sim_order || {} };
lib/RapidApp/TableSpec/Role/DBIC.pm:339:sub get_Cnf { (shift)->Cnf->{$_[0]} }
lib/RapidApp/TableSpec/Role/DBIC.pm:345:	my $class = $self->ResultClass;
lib/RapidApp/TableSpec/Role/DBIC.pm:346:	return {} unless ($class->can('TableSpec_cnf'));
lib/RapidApp/TableSpec/Role/DBIC.pm:348:	my %rel_cols_indx = map {$_=>1} @{$self->get_Cnf('relationship_column_names')};
lib/RapidApp/TableSpec/Role/DBIC.pm:349:	my %columns = $class->TableSpec_get_conf('columns');
lib/RapidApp/TableSpec/Role/DBIC.pm:370:		push @exp, $self->expand_relspec_wildcards($_,@_) for (@$colspec);
lib/RapidApp/TableSpec/Role/DBIC.pm:374:	my $Source = shift || $self->ResultSource;
lib/RapidApp/TableSpec/Role/DBIC.pm:394:	my @rel_list = $Source->relationships;
lib/RapidApp/TableSpec/Role/DBIC.pm:395:	#scream($_) for (map { $Source->relationship_info($_) } @rel_list);
lib/RapidApp/TableSpec/Role/DBIC.pm:399:    my ($match) = ($rel =~ /^\{([\?\:a-zA-Z0-9]+)\}/);
lib/RapidApp/TableSpec/Role/DBIC.pm:400:    $rel =~ s/^\{([\?\:a-zA-Z0-9]+)\}//;
lib/RapidApp/TableSpec/Role/DBIC.pm:409:		@rel_list = grep { $ac{ $Source->relationship_info($_)->{attrs}->{accessor} } } @rel_list;
lib/RapidApp/TableSpec/Role/DBIC.pm:414:		$Source->schema->class($Source->source_name) 
lib/RapidApp/TableSpec/Role/DBIC.pm:419:		my @suffix = $self->expand_relspec_wildcards(join('.',@parts),$Source->related_source($rel_name),@ovr_macro_keywords);
lib/RapidApp/TableSpec/Role/DBIC.pm:432:	return {} if ($self->relspec_prefix eq '');
lib/RapidApp/TableSpec/Role/DBIC.pm:433:	return $self->chain_to_hash(split(/\./,$self->relspec_prefix));
lib/RapidApp/TableSpec/Role/DBIC.pm:437:	return '' if ($self->relspec_prefix eq '');
lib/RapidApp/TableSpec/Role/DBIC.pm:438:	my $col_pre = $self->relspec_prefix;
lib/RapidApp/TableSpec/Role/DBIC.pm:439:	my $sep = $self->relation_sep;
lib/RapidApp/TableSpec/Role/DBIC.pm:441:	return $col_pre . $self->relation_sep;
lib/RapidApp/TableSpec/Role/DBIC.pm:452:	my $rel = $self->column_name_relationship_map->{$name};
lib/RapidApp/TableSpec/Role/DBIC.pm:454:		my $TableSpec = $self->related_TableSpec->{$rel};
lib/RapidApp/TableSpec/Role/DBIC.pm:455:		return $TableSpec->get_column($name) if ($TableSpec);
lib/RapidApp/TableSpec/Role/DBIC.pm:458:	return $self->$orig($name);
lib/RapidApp/TableSpec/Role/DBIC.pm:469:	@columns = grep { /^[A-Za-z0-9\-\_\.]+$/ } @columns;
lib/RapidApp/TableSpec/Role/DBIC.pm:471:	return $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:472:		colspecs => $self->base_colspec,
lib/RapidApp/TableSpec/Role/DBIC.pm:481:	my @inc_cols = $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:482:		colspecs => $self->include_colspec->colspecs,
lib/RapidApp/TableSpec/Role/DBIC.pm:486:	my @rel_cols = $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:487:		colspecs => $self->added_relationship_column_relspecs,
lib/RapidApp/TableSpec/Role/DBIC.pm:502:		$self->m2m_rel_columns_indx->{$self->column_prefix . $_} ||
lib/RapidApp/TableSpec/Role/DBIC.pm:503:		!$self->multi_rel_columns_indx->{$self->column_prefix . $_}
lib/RapidApp/TableSpec/Role/DBIC.pm:506:	return $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:507:		colspecs => $self->updatable_colspec->colspecs,
lib/RapidApp/TableSpec/Role/DBIC.pm:520:	#@columns = grep {!$self->multi_rel_columns_indx->{$_}} @columns;
lib/RapidApp/TableSpec/Role/DBIC.pm:524:		$self->m2m_rel_columns_indx->{$self->column_prefix . $_} ||
lib/RapidApp/TableSpec/Role/DBIC.pm:525:		!$self->multi_rel_columns_indx->{$self->column_prefix . $_}
lib/RapidApp/TableSpec/Role/DBIC.pm:529:	@columns = $self->filter_include_columns(@columns);
lib/RapidApp/TableSpec/Role/DBIC.pm:531:	return $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:532:		colspecs => $self->creatable_colspec->colspecs,
lib/RapidApp/TableSpec/Role/DBIC.pm:547:	my $x = $match ? -1 : 1;
lib/RapidApp/TableSpec/Role/DBIC.pm:570:		my $result = $self->colspec_to_colspec_test($colspec,$test_spec) || next;
lib/RapidApp/TableSpec/Role/DBIC.pm:600:	# @other_colspecs - optional.
lib/RapidApp/TableSpec/Role/DBIC.pm:613:  my $x = $neg_flag ? -1 : 1;
lib/RapidApp/TableSpec/Role/DBIC.pm:620:	my $sep = $self->relation_sep;
lib/RapidApp/TableSpec/Role/DBIC.pm:638:		my $value = $x * (1000 - $distance); # <-- flip 
lib/RapidApp/TableSpec/Role/DBIC.pm:641:			my $other_val = $self->colspec_test($spec,$col) or next;
lib/RapidApp/TableSpec/Role/DBIC.pm:661:	my $deparse = B::Deparse->new;
lib/RapidApp/TableSpec/Role/DBIC.pm:662:	$colspec_test_source = $deparse->coderef2text(\&_colspec_test);
lib/RapidApp/TableSpec/Role/DBIC.pm:669:	return $self->{_colspec_test_cache}{$colspec_key} //= $self->_colspec_test(@args);
lib/RapidApp/TableSpec/Role/DBIC.pm:679:	@colspecs = $self->expand_relspec_wildcards(\@colspecs,undef,'?');
lib/RapidApp/TableSpec/Role/DBIC.pm:681:	return $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:683:		columns => [ $self->updated_column_order ]
lib/RapidApp/TableSpec/Role/DBIC.pm:691:	my %colmap = map { $_ => 1} $self->get_colspec_column_names(@_);
lib/RapidApp/TableSpec/Role/DBIC.pm:692:	return grep { ! $colmap{$_} } $self->updated_column_order;
lib/RapidApp/TableSpec/Role/DBIC.pm:700:	my @matches = $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:716:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:718:	$self->{_colspec_select_columns_cache} = {}
lib/RapidApp/TableSpec/Role/DBIC.pm:719:		unless defined $self->{_colspec_select_columns_cache};
lib/RapidApp/TableSpec/Role/DBIC.pm:730:	return @{$self->{_colspec_select_columns_cache}{$colspec_select_columns_key}}
lib/RapidApp/TableSpec/Role/DBIC.pm:731:		if defined $self->{_colspec_select_columns_cache}{$colspec_select_columns_key};
lib/RapidApp/TableSpec/Role/DBIC.pm:734:	if ($self->has_cache) {
lib/RapidApp/TableSpec/Role/DBIC.pm:737:			md5_hex($self->ResultClass),
lib/RapidApp/TableSpec/Role/DBIC.pm:740:		my $cache_content = $self->cache->get($cache_key);
lib/RapidApp/TableSpec/Role/DBIC.pm:741:		return @{$self->{_colspec_select_columns_cache}{$colspec_select_columns_key} = $cache_content}
lib/RapidApp/TableSpec/Role/DBIC.pm:764:			push @arg, @remaining if ($best_match); # <-- push the rest of the colspecs after the current for index
lib/RapidApp/TableSpec/Role/DBIC.pm:766:			my $result = $self->colspec_test(@arg) or next;
lib/RapidApp/TableSpec/Role/DBIC.pm:769:			$opt{match_data}->{$col} = {
lib/RapidApp/TableSpec/Role/DBIC.pm:770:				index => $i - 1,
lib/RapidApp/TableSpec/Role/DBIC.pm:772:			} unless ($opt{match_data}->{$col});
lib/RapidApp/TableSpec/Role/DBIC.pm:778:		$self->cache->set($cache_key,$colspec_select_columns);
lib/RapidApp/TableSpec/Role/DBIC.pm:780:	return @{$self->{_colspec_select_columns_cache}{$colspec_select_columns_key} = $colspec_select_columns};
lib/RapidApp/TableSpec/Role/DBIC.pm:784:	my $deparse = B::Deparse->new;
lib/RapidApp/TableSpec/Role/DBIC.pm:785:	$colspec_select_columns_source = $deparse->coderef2text(\&colspec_select_columns);
lib/RapidApp/TableSpec/Role/DBIC.pm:791:	my $class = $self->ResultClass;
lib/RapidApp/TableSpec/Role/DBIC.pm:793:  # New: need to consult the TableSpec method now that we move single-rels up into the column
lib/RapidApp/TableSpec/Role/DBIC.pm:794:  # list at the location of their FK column -- its no longer as simple as columns then rels
lib/RapidApp/TableSpec/Role/DBIC.pm:795:  my @local = $class->can('default_TableSpec_cnf_column_order')
lib/RapidApp/TableSpec/Role/DBIC.pm:796:    ? ( $class->default_TableSpec_cnf_column_order )
lib/RapidApp/TableSpec/Role/DBIC.pm:797:    : ( $class->columns, $class->relationships     ); # fall-back for good measure
lib/RapidApp/TableSpec/Role/DBIC.pm:799:	$self->reorder_by_colspec_list(
lib/RapidApp/TableSpec/Role/DBIC.pm:800:    @local, @{ $self->include_colspec->colspecs || [] }
lib/RapidApp/TableSpec/Role/DBIC.pm:818:	my @new_order = $self->colspec_select_columns({
lib/RapidApp/TableSpec/Role/DBIC.pm:820:		columns => [ $self->updated_column_order ],
lib/RapidApp/TableSpec/Role/DBIC.pm:827:	push @new_order, $self->updated_column_order;
lib/RapidApp/TableSpec/Role/DBIC.pm:830:	@{$self->column_order} = grep { !$seen{$_}++ } @new_order;
lib/RapidApp/TableSpec/Role/DBIC.pm:831:	return $self->updated_column_order; #<-- for good measure
lib/RapidApp/TableSpec/Role/DBIC.pm:836:	return $self->include_colspec->subspec;
lib/RapidApp/TableSpec/Role/DBIC.pm:841:	return $self->include_colspec->rel_order;
lib/RapidApp/TableSpec/Role/DBIC.pm:847:	return RapidApp::TableSpec::DbicTableSpec->new(@_);
lib/RapidApp/TableSpec/Role/DBIC.pm:848:	#return RapidApp::TableSpec->with_traits('RapidApp::TableSpec::Role::DBIC')->new(@_);
lib/RapidApp/TableSpec/Role/DBIC.pm:858:	my $rel = $self->column_name_relationship_map->{$column};
lib/RapidApp/TableSpec/Role/DBIC.pm:861:			keys %{$self->columns}, 
lib/RapidApp/TableSpec/Role/DBIC.pm:862:			@{$self->added_relationship_column_relspecs};
lib/RapidApp/TableSpec/Role/DBIC.pm:870:	return $self->related_TableSpec->{$rel}->column_TableSpec($column);
lib/RapidApp/TableSpec/Role/DBIC.pm:883:		my $TableSpec = $self->column_TableSpec($col) or next;
lib/RapidApp/TableSpec/Role/DBIC.pm:884:		my $pre = $TableSpec->column_prefix;
lib/RapidApp/TableSpec/Role/DBIC.pm:887:		push @{$map->{$TableSpec->relspec_prefix}}, {
lib/RapidApp/TableSpec/Role/DBIC.pm:902:		my $rel = $self->column_name_relationship_map->{$col} || '';
lib/RapidApp/TableSpec/Role/DBIC.pm:907:	#$tree{'@' . $_} = $self->columns_to_reltree(@{$map{$_}}) for (keys %map);
lib/RapidApp/TableSpec/Role/DBIC.pm:910:		my $TableSpec = $self->related_TableSpec->{$rel} or die "Failed to find related TableSpec $rel";
lib/RapidApp/TableSpec/Role/DBIC.pm:911:		$tree{'@' . $rel} = $TableSpec->columns_to_reltree(@{$map{$rel}});
lib/RapidApp/TableSpec/Role/DBIC.pm:932:		my $rel = $self->column_name_relationship_map->{$col} || '';
lib/RapidApp/TableSpec/Role/DBIC.pm:939:	my $pre = $self->column_prefix;
lib/RapidApp/TableSpec/Role/DBIC.pm:942:	local $_{return} = $code->($self,@local_cols);
lib/RapidApp/TableSpec/Role/DBIC.pm:945:		my $TableSpec = $self->related_TableSpec->{$rel} or die "Failed to find related TableSpec $rel";
lib/RapidApp/TableSpec/Role/DBIC.pm:948:		$TableSpec->walk_columns_deep($code,@{$map{$rel}});
lib/RapidApp/TableSpec/Role/DBIC.pm:966:	my $info = $Row->result_source->relationship_info($rel) or die "Relationship $rel not found";
lib/RapidApp/TableSpec/Role/DBIC.pm:969:	return undef unless ($info->{attrs}->{accessor} eq 'single' || $info->{attrs}->{accessor} eq 'filter');
lib/RapidApp/TableSpec/Role/DBIC.pm:971:	my $Related = $Row->$rel;
lib/RapidApp/TableSpec/Role/DBIC.pm:972:	return $self->related_Row_from_relspec($Related,join('.',@parts));
lib/RapidApp/TableSpec/Role/DBIC.pm:982:	return grep { !$seen{$_}++ && exists $self->columns->{$_} } @{$self->column_order}, keys %{$self->columns};
lib/RapidApp/TableSpec/Role/DBIC.pm:992:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:994:	die "There is already a related TableSpec associated with the '$rel' relationship - " . Dumper(caller_data_brief(20,'^RapidApp')) if (
lib/RapidApp/TableSpec/Role/DBIC.pm:995:		defined $self->related_TableSpec->{$rel}
lib/RapidApp/TableSpec/Role/DBIC.pm:998:	my $info = $self->ResultClass->relationship_info($rel) or die "Relationship '$rel' not found.";
lib/RapidApp/TableSpec/Role/DBIC.pm:999:	my $relclass = $info->{class};
lib/RapidApp/TableSpec/Role/DBIC.pm:1001:	my $relspec_prefix = $self->relspec_prefix;
lib/RapidApp/TableSpec/Role/DBIC.pm:1005:	my $table = RapidApp::DBIC::Component::TableSpec::_table_name_safe($relclass->table);
lib/RapidApp/TableSpec/Role/DBIC.pm:1009:		schema => $self->schema, #<-- need both ResultClass and schema to identify ResultSource
lib/RapidApp/TableSpec/Role/DBIC.pm:1010:		relation_sep => $self->relation_sep,
lib/RapidApp/TableSpec/Role/DBIC.pm:1012:		include_colspec => $self->include_colspec->get_subspec($rel),
lib/RapidApp/TableSpec/Role/DBIC.pm:1013:    no_header_transform => $self->no_header_transform
lib/RapidApp/TableSpec/Role/DBIC.pm:1016:	$params{updatable_colspec} = $self->updatable_colspec->get_subspec($rel) || []; 
lib/RapidApp/TableSpec/Role/DBIC.pm:1017:	$params{creatable_colspec} = $self->creatable_colspec->get_subspec($rel) || [];
lib/RapidApp/TableSpec/Role/DBIC.pm:1018:	$params{no_column_colspec} = $self->no_column_colspec->get_subspec($rel) || [];
lib/RapidApp/TableSpec/Role/DBIC.pm:1022:	my $class = $self->ResultClass;
lib/RapidApp/TableSpec/Role/DBIC.pm:1023:	if($class->can('TableSpec_get_conf') and $class->TableSpec_has_conf('related_column_property_transforms')) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1024:    my $rel_transforms = $class->TableSpec_get_conf('related_column_property_transforms');
lib/RapidApp/TableSpec/Role/DBIC.pm:1025:		$params{column_property_transforms} = $rel_transforms->{$rel} if ($rel_transforms->{$rel});
lib/RapidApp/TableSpec/Role/DBIC.pm:1027:		# -- Hard coded default 'header' transform (2011-12-25 by HV)
lib/RapidApp/TableSpec/Role/DBIC.pm:1029:		# add one that appends the relspec prefix. This is currently built-in because
lib/RapidApp/TableSpec/Role/DBIC.pm:1033:    #  * Update: Yes, we do want an option to turn this off, and now there is (2015-09-29 by HV)
lib/RapidApp/TableSpec/Role/DBIC.pm:1034:		unless($self->no_header_transform) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1035:			$params{column_property_transforms}->{header} ||= sub { $_ ? "$_ ($relspec_prefix)" : $_ };
lib/RapidApp/TableSpec/Role/DBIC.pm:1037:		# --
lib/RapidApp/TableSpec/Role/DBIC.pm:1041:	my $TableSpec = $self->new_TableSpec(%params) or die "Failed to create related TableSpec";
lib/RapidApp/TableSpec/Role/DBIC.pm:1043:	$self->related_TableSpec->{$rel} = $TableSpec;
lib/RapidApp/TableSpec/Role/DBIC.pm:1044:	push @{$self->related_TableSpec_order}, $rel;
lib/RapidApp/TableSpec/Role/DBIC.pm:1053:	my $TableSpec = $self->related_TableSpec->{$rel} || $self->add_related_TableSpec(@_);
lib/RapidApp/TableSpec/Role/DBIC.pm:1064:	my $rel = $self->column_name_relationship_map->{$name};
lib/RapidApp/TableSpec/Role/DBIC.pm:1066:	$obj = $self->related_TableSpec->{$rel} if (defined $rel);
lib/RapidApp/TableSpec/Role/DBIC.pm:1068:	return $obj->$orig(@_);
lib/RapidApp/TableSpec/Role/DBIC.pm:1078:	my @order = grep { !$seen{$_}++ } @{$self->column_order};
lib/RapidApp/TableSpec/Role/DBIC.pm:1081:	push @order, grep { !$seen{$_}++ } $self->$orig(@_);
lib/RapidApp/TableSpec/Role/DBIC.pm:1084:	push @rels, $self->related_TableSpec->{$_}->updated_column_order for (@{$self->related_TableSpec_order});
lib/RapidApp/TableSpec/Role/DBIC.pm:1089:	@{$self->column_order} = @order;
lib/RapidApp/TableSpec/Role/DBIC.pm:1090:	return @{$self->column_order};
lib/RapidApp/TableSpec/Role/DBIC.pm:1098:	my $list = $self->get_Cnf('multi_relationship_column_names') || [];
lib/RapidApp/TableSpec/Role/DBIC.pm:1102:		unless($self->ResultSource->has_relationship($rel)) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1103:			warn RED.BOLD . "\n\nMulti-rel column error: '$rel' is not a valid " .
lib/RapidApp/TableSpec/Role/DBIC.pm:1104:				"relationship of ResultSource '" . $self->ResultSource->source_name . 
lib/RapidApp/TableSpec/Role/DBIC.pm:1108:		my $info = $self->ResultSource->relationship_info($rel) || {};
lib/RapidApp/TableSpec/Role/DBIC.pm:1109:		my $cond = $info->{cond};
lib/RapidApp/TableSpec/Role/DBIC.pm:1110:		my $h = $cond ? $self->ResultClass->parse_relationship_cond($cond) : {};
lib/RapidApp/TableSpec/Role/DBIC.pm:1111:		my ($rev_relname) = (keys %{$self->ResultSource->reverse_relationship_info($rel)});
lib/RapidApp/TableSpec/Role/DBIC.pm:1116:			parent_source => $self->ResultSource->source_name
lib/RapidApp/TableSpec/Role/DBIC.pm:1120:	# -- finally refactored this into simpler code above (with error handling). 
lib/RapidApp/TableSpec/Role/DBIC.pm:1123:	#	{ %{$self->ResultClass->parse_relationship_cond(
lib/RapidApp/TableSpec/Role/DBIC.pm:1124:	#			$self->ResultSource->relationship_info($_)->{cond}
lib/RapidApp/TableSpec/Role/DBIC.pm:1126:	#		info => $self->ResultSource->relationship_info($_),
lib/RapidApp/TableSpec/Role/DBIC.pm:1127:	#		rev_relname => (keys %{$self->ResultSource->reverse_relationship_info($_)})[0],
lib/RapidApp/TableSpec/Role/DBIC.pm:1131:	# --
lib/RapidApp/TableSpec/Role/DBIC.pm:1134:	$self->Cnf_columns->{$_}->{function} and $indx{$_}->{function} = $self->Cnf_columns->{$_}->{function} 
lib/RapidApp/TableSpec/Role/DBIC.pm:1138:	#scream_color(GREEN.BOLD,$_,$self->Cnf_columns->{$_}) for (keys %indx);
lib/RapidApp/TableSpec/Role/DBIC.pm:1157:Returns a value which can be added to DBIC's ->{attr}{select} in order to select the column.
lib/RapidApp/TableSpec/Role/DBIC.pm:1164:In this case, 'rel1' is a relationship of the local (top-level) source, and rel2 is a relationship
lib/RapidApp/TableSpec/Role/DBIC.pm:1173:However, 'foo' might not be a column in the relationship of the 'rel2' source - it might be a 
lib/RapidApp/TableSpec/Role/DBIC.pm:1174:relationship or a virtual column. In these cases, a sub-select/query is generated for the select,
lib/RapidApp/TableSpec/Role/DBIC.pm:1175:which is dependent on what foo actually is. For multi-rels it is a count of the related rows while
lib/RapidApp/TableSpec/Role/DBIC.pm:1177:sub-select of whatever the 'sql' attr is set to for the given virtual_column config.
lib/RapidApp/TableSpec/Role/DBIC.pm:1184:  # $rel is the alias of the last relationship name in the chain --
lib/RapidApp/TableSpec/Role/DBIC.pm:1187:  # $col is the column name in the remote source --
lib/RapidApp/TableSpec/Role/DBIC.pm:1197:  my ($rel,$col,$join,$cond_data) = $self->resolve_dbic_rel_alias_by_column_name($fieldName,$get_render_col);
lib/RapidApp/TableSpec/Role/DBIC.pm:1208:    # If cond_data is defined, the relation is a multi-relation, and we need to either
lib/RapidApp/TableSpec/Role/DBIC.pm:1209:    #  join and group-by, or run a sub-query.  If join-and-group-by happens twice, it
lib/RapidApp/TableSpec/Role/DBIC.pm:1211:    #  we only use sub-queries.  In fact, join and group-by has a lot of problems on
lib/RapidApp/TableSpec/Role/DBIC.pm:1213:    $cond_data->{function} = $cond_data->{function} || $self->multi_rel_columns_indx->{$fieldName};
lib/RapidApp/TableSpec/Role/DBIC.pm:1216:    if (ref($cond_data->{function}) eq 'CODE') {
lib/RapidApp/TableSpec/Role/DBIC.pm:1217:      # TODO: we should use hash-style parameters
lib/RapidApp/TableSpec/Role/DBIC.pm:1218:      return $cond_data->{function}->($self,$rel,$col,$join,$cond_data,$fieldName);
lib/RapidApp/TableSpec/Role/DBIC.pm:1221:      my $m2m_attrs = $cond_data->{info}->{attrs}->{m2m_attrs};
lib/RapidApp/TableSpec/Role/DBIC.pm:1223:        # -- m2m relationship column --
lib/RapidApp/TableSpec/Role/DBIC.pm:1229:        #  __PACKAGE__->TableSpec_m2m( 'rel' => 'linkrel', 'foreignrel' );
lib/RapidApp/TableSpec/Role/DBIC.pm:1230:        # Which needs to be used instead of the built-in __PACKAGE__->many_to_many
lib/RapidApp/TableSpec/Role/DBIC.pm:1238:        # editor. It is also db-specific, and only tested is MySQL and SQLite.
lib/RapidApp/TableSpec/Role/DBIC.pm:1242:        my $rel_info = $m2m_attrs->{rinfo};
lib/RapidApp/TableSpec/Role/DBIC.pm:1243:        my $rev_rel_info = $m2m_attrs->{rrinfo};
lib/RapidApp/TableSpec/Role/DBIC.pm:1245:        # initial hard-coded example the dynamic logic was based on:
lib/RapidApp/TableSpec/Role/DBIC.pm:1256:        #	' FROM ' . $source->from . 
lib/RapidApp/TableSpec/Role/DBIC.pm:1258:        #	' WHERE ' . $cond_data->{foreign} . ' = ' . $rel . '.' . $cond_data->{self} . 
lib/RapidApp/TableSpec/Role/DBIC.pm:1268:        ###   UPDATE: Now works with PostgreSQL - PR #150, mst++, TBSliver++
lib/RapidApp/TableSpec/Role/DBIC.pm:1270:        # TODO: support cross-db relations
lib/RapidApp/TableSpec/Role/DBIC.pm:1272:        local *_ = $self->schema->storage->sql_maker->curry::_quote;
lib/RapidApp/TableSpec/Role/DBIC.pm:1274:        my $rel_table_raw = $self->schema->source($rel_info->{source})->name;
lib/RapidApp/TableSpec/Role/DBIC.pm:1275:        my $rev_rel_table_raw = $self->schema->source($rev_rel_info->{source})->name;
lib/RapidApp/TableSpec/Role/DBIC.pm:1283:        my $rel_join_col = _(join '.', $rel_alias, $rev_rel_info->{cond_info}{self});
lib/RapidApp/TableSpec/Role/DBIC.pm:1284:        my $rev_rel_join_col = _(join '.', $rev_rel_alias, $rev_rel_info->{cond_info}{foreign});
lib/RapidApp/TableSpec/Role/DBIC.pm:1286:        my $rev_rel_col = _(join '.', $rel_alias, $rel_info->{cond_info}{foreign});
lib/RapidApp/TableSpec/Role/DBIC.pm:1287:        my $rel_col = _(join '.', $rel, $cond_data->{self});
lib/RapidApp/TableSpec/Role/DBIC.pm:1291:          my $sqlt_type = $self->schema->storage->sqlt_type;
lib/RapidApp/TableSpec/Role/DBIC.pm:1309:        return { '' => \$sql, -as => $fieldName };		
lib/RapidApp/TableSpec/Role/DBIC.pm:1313:        die '"parent_source" missing from $cond_data -- cannot correlate sub-select for "$col"'
lib/RapidApp/TableSpec/Role/DBIC.pm:1314:          unless ($cond_data->{parent_source});
lib/RapidApp/TableSpec/Role/DBIC.pm:1316:        my $p_source = $self->schema->source($cond_data->{parent_source});
lib/RapidApp/TableSpec/Role/DBIC.pm:1317:        my $rel_attrs = $p_source->relationship_info($col)->{attrs};
lib/RapidApp/TableSpec/Role/DBIC.pm:1322:        if(!$rel_attrs->{where}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1324:          $rel_rs = $self->_correlate_rs_rel(
lib/RapidApp/TableSpec/Role/DBIC.pm:1325:            $p_source->resultset->search_rs(undef,{ alias => $rel }), 
lib/RapidApp/TableSpec/Role/DBIC.pm:1331:          # If there is a 'where' we have to fall back to the old logic -- FIXME!!!
lib/RapidApp/TableSpec/Role/DBIC.pm:1333:          my $source = $self->schema->source($cond_data->{info}{source});
lib/RapidApp/TableSpec/Role/DBIC.pm:1336:          # it is because we're here). We are using $rel_rs to create a sub-query for a count.
lib/RapidApp/TableSpec/Role/DBIC.pm:1339:          $rel_rs = $source->resultset_class
lib/RapidApp/TableSpec/Role/DBIC.pm:1340:            ->new($source, { alias => "${col}_alias" })
lib/RapidApp/TableSpec/Role/DBIC.pm:1341:            ->search_rs(undef,{
lib/RapidApp/TableSpec/Role/DBIC.pm:1342:              %{$source->resultset_attributes || {}},
lib/RapidApp/TableSpec/Role/DBIC.pm:1343:              %{$cond_data->{info}{attrs} || {}}
lib/RapidApp/TableSpec/Role/DBIC.pm:1346:          # --- Github Issue #40 ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1348:          # single-key relationship conditions (and not multi-key or CodeRef):
lib/RapidApp/TableSpec/Role/DBIC.pm:1349:          #my $cond = { "${rel}_alias.$cond_data->{foreign}" => \[" = $rel.$cond_data->{self}"] };
lib/RapidApp/TableSpec/Role/DBIC.pm:1352:          # and works for any multi-rel cond type, including CodeRef:
lib/RapidApp/TableSpec/Role/DBIC.pm:1359:            # TEMP/FIXME - This is not the way _resolve_condition is supposed to be called
lib/RapidApp/TableSpec/Role/DBIC.pm:1366:            $source->_resolve_condition(
lib/RapidApp/TableSpec/Role/DBIC.pm:1367:              $cond_data->{info}{cond},
lib/RapidApp/TableSpec/Role/DBIC.pm:1368:              $rel_rs->current_source_alias, #<-- the self alias ("${col}_alias" as set above)
lib/RapidApp/TableSpec/Role/DBIC.pm:1369:              $rel, #<-- the foreign alias
lib/RapidApp/TableSpec/Role/DBIC.pm:1372:          # ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1374:          $rel_rs = $rel_rs->search_rs($cond);
lib/RapidApp/TableSpec/Role/DBIC.pm:1378:        if($cond_data->{info}{attrs}{accessor} eq 'multi') {
lib/RapidApp/TableSpec/Role/DBIC.pm:1379:          # -- standard multi relationship column --
lib/RapidApp/TableSpec/Role/DBIC.pm:1380:          # This is where the count sub-query is generated that provides
lib/RapidApp/TableSpec/Role/DBIC.pm:1382:          return { '' => $rel_rs->count_rs->as_query, -as => $fieldName };
lib/RapidApp/TableSpec/Role/DBIC.pm:1385:          # -- NEW: virtualized single relationship column --
lib/RapidApp/TableSpec/Role/DBIC.pm:1387:          # technique as the count for multi-relationship columns
lib/RapidApp/TableSpec/Role/DBIC.pm:1388:          my $source = $self->schema->source($cond_data->{info}{source});
lib/RapidApp/TableSpec/Role/DBIC.pm:1389:          my $display_column = $source->result_class->TableSpec_get_conf('display_column')
lib/RapidApp/TableSpec/Role/DBIC.pm:1391:          return { '' => $rel_rs->get_column($display_column)->as_query, -as => $fieldName };
lib/RapidApp/TableSpec/Role/DBIC.pm:1402:   my $source = $Rs->result_source;
lib/RapidApp/TableSpec/Role/DBIC.pm:1403:   my $rel_info = $source->relationship_info($rel);
lib/RapidApp/TableSpec/Role/DBIC.pm:1405:   return $source->related_source($rel)->resultset
lib/RapidApp/TableSpec/Role/DBIC.pm:1406:      ->search(scalar $source->_resolve_condition(
lib/RapidApp/TableSpec/Role/DBIC.pm:1407:         $rel_info->{cond},
lib/RapidApp/TableSpec/Role/DBIC.pm:1409:         $Rs->current_source_alias,
lib/RapidApp/TableSpec/Role/DBIC.pm:1421:	# -- applies only to relationship columns and currently only used for sort:
lib/RapidApp/TableSpec/Role/DBIC.pm:1424:		my $render_col = $self->relationship_column_render_column_map->{$fieldName};
lib/RapidApp/TableSpec/Role/DBIC.pm:1427:	# --
lib/RapidApp/TableSpec/Role/DBIC.pm:1429:	my $rel = $self->column_name_relationship_map->{$fieldName};
lib/RapidApp/TableSpec/Role/DBIC.pm:1432:		my $join = $self->needed_join;
lib/RapidApp/TableSpec/Role/DBIC.pm:1433:		my $pre = $self->column_prefix;
lib/RapidApp/TableSpec/Role/DBIC.pm:1437:		my $cond_data = $self->multi_rel_columns_indx->{$fieldName};
lib/RapidApp/TableSpec/Role/DBIC.pm:1440:			# Update: we no longer add this to the join, because we use a sub-select
lib/RapidApp/TableSpec/Role/DBIC.pm:1441:			#   to query the multi-relation, and don't want a product-style join in
lib/RapidApp/TableSpec/Role/DBIC.pm:1442:			#   the top-level query.
lib/RapidApp/TableSpec/Role/DBIC.pm:1443:			#my $rel_pre = $self->relspec_prefix;
lib/RapidApp/TableSpec/Role/DBIC.pm:1446:			#$join = $self->chain_to_hash(split(/\./,$rel_pre));
lib/RapidApp/TableSpec/Role/DBIC.pm:1448:			# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1450:			# in its place (Mike?) it doesn't seem to do anything but break multi-rel columns
lib/RapidApp/TableSpec/Role/DBIC.pm:1451:			# when joined via several intermediate single rels. Removed 2012-07-07 by HV.
lib/RapidApp/TableSpec/Role/DBIC.pm:1452:			#$join = $self->chain_to_hash($self->relspec_prefix)
lib/RapidApp/TableSpec/Role/DBIC.pm:1453:			#	if length $self->relspec_prefix;
lib/RapidApp/TableSpec/Role/DBIC.pm:1454:			# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1460:		## ----
lib/RapidApp/TableSpec/Role/DBIC.pm:1461:		## NEW: VIRTUAL COLUMNS SUPPORT (added 2012-07-06 by HV)
lib/RapidApp/TableSpec/Role/DBIC.pm:1468:		if ($self->ResultClass->has_virtual_column($fieldName)) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1469:			my $info = $self->ResultClass->column_info($fieldName) || {};
lib/RapidApp/TableSpec/Role/DBIC.pm:1470:			my $function = $info->{function} || sub {
lib/RapidApp/TableSpec/Role/DBIC.pm:1472:				my $sql = $info->{sql} || 'SELECT(NULL)';
lib/RapidApp/TableSpec/Role/DBIC.pm:1474:				$sql = $info->{sql}->($self->ResultClass, $col) if ref $sql eq 'CODE';
lib/RapidApp/TableSpec/Role/DBIC.pm:1481:				$sql =~ s/\`self\`\./\`${rel}\`\./g; #<-- also support backtic quoted form (quote_sep)
lib/RapidApp/TableSpec/Role/DBIC.pm:1484:				return { '' => \"($sql)", -as => $col };
lib/RapidApp/TableSpec/Role/DBIC.pm:1488:			if ($info->{join}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1489:				my @prefix = split(/\./,$self->relspec_prefix);
lib/RapidApp/TableSpec/Role/DBIC.pm:1490:				push @prefix, $info->{join};
lib/RapidApp/TableSpec/Role/DBIC.pm:1491:				$join = $self->chain_to_hash(@prefix);
lib/RapidApp/TableSpec/Role/DBIC.pm:1496:		## ----
lib/RapidApp/TableSpec/Role/DBIC.pm:1497:    ## --- NEW: Virtual Single Relationship Column (Github Issue #40)
lib/RapidApp/TableSpec/Role/DBIC.pm:1498:    elsif($self->ResultClass->has_relationship($fieldName)){
lib/RapidApp/TableSpec/Role/DBIC.pm:1499:      my $cnf = $self->Cnf_columns->{$fieldName};
lib/RapidApp/TableSpec/Role/DBIC.pm:1500:      if ($cnf && $cnf->{virtualized_single_rel}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1507:          info => $self->ResultClass->relationship_info($fieldName),
lib/RapidApp/TableSpec/Role/DBIC.pm:1508:          parent_source => $self->ResultSource->source_name
lib/RapidApp/TableSpec/Role/DBIC.pm:1512:    # ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1517:	my $TableSpec = $self->related_TableSpec->{$rel};
lib/RapidApp/TableSpec/Role/DBIC.pm:1518:	my ($alias,$dbname,$join,$cond_data) = $TableSpec->resolve_dbic_rel_alias_by_column_name($fieldName,$get_render_col);
lib/RapidApp/TableSpec/Role/DBIC.pm:1552:		my $left = '$hash->{\'' . join('\'}->{\'',@chain) . '\'}';		
lib/RapidApp/TableSpec/Role/DBIC.pm:1566:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:1569:  # are available (e.g. 'soft_rel' which sets 'auto_editor_params' -- added for #77)
lib/RapidApp/TableSpec/Role/DBIC.pm:1571:    my $o = RapidApp::TableSpec::Column::Profile->_apply_profiles_soft(\%opt);
lib/RapidApp/TableSpec/Role/DBIC.pm:1575:  return $self->get_virtual_relationship_column_cnf($rel,\%opt) if ($opt{virtualized_single_rel});
lib/RapidApp/TableSpec/Role/DBIC.pm:1576:	return $self->get_multi_relationship_column_cnf($rel,\%opt) if ($self->multi_rel_columns_indx->{$rel});
lib/RapidApp/TableSpec/Role/DBIC.pm:1579:	my $info = $conf->{relationship_info} or die "relationship_info is required";
lib/RapidApp/TableSpec/Role/DBIC.pm:1581:  my $table = RapidApp::DBIC::Component::TableSpec::_table_name_safe($self->ResultClass->table);
lib/RapidApp/TableSpec/Role/DBIC.pm:1582:	my $err_info = "rel col: " . $table . ".$rel - " . Dumper($conf);
lib/RapidApp/TableSpec/Role/DBIC.pm:1584:	die "displayField is required ($err_info)" unless (defined $conf->{displayField});
lib/RapidApp/TableSpec/Role/DBIC.pm:1585:	die "valueField is required ($err_info)" unless (defined $conf->{valueField});
lib/RapidApp/TableSpec/Role/DBIC.pm:1586:	die "keyField is required ($err_info)" unless (defined $conf->{keyField});
lib/RapidApp/TableSpec/Role/DBIC.pm:1588:	my $Source = try{$self->ResultSource->related_source($rel)} catch {
lib/RapidApp/TableSpec/Role/DBIC.pm:1594:	# --- Disable quick searching on rel cols with virtual display_column
lib/RapidApp/TableSpec/Role/DBIC.pm:1604:	} if (try{$self->ResultSource->related_class($rel)->has_virtual_column($conf->{displayField})});
lib/RapidApp/TableSpec/Role/DBIC.pm:1606:	# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1608:	my $render_col = $self->column_prefix . $rel . $self->relation_sep . $conf->{displayField};
lib/RapidApp/TableSpec/Role/DBIC.pm:1609:	my $key_col = $self->column_prefix . $rel . $self->relation_sep . $conf->{valueField};
lib/RapidApp/TableSpec/Role/DBIC.pm:1610:	my $upd_key_col = $self->column_prefix . $conf->{keyField};
lib/RapidApp/TableSpec/Role/DBIC.pm:1612:	# -- Assume the the column profiles of the display column:
lib/RapidApp/TableSpec/Role/DBIC.pm:1613:	my $relTS = $self->related_TableSpec->{$rel};
lib/RapidApp/TableSpec/Role/DBIC.pm:1615:		my $relconf = $relTS->Cnf_columns->{$conf->{displayField}};
lib/RapidApp/TableSpec/Role/DBIC.pm:1616:		$conf->{profiles} = $relconf->{profiles} || $conf->{profiles};
lib/RapidApp/TableSpec/Role/DBIC.pm:1618:    # New: special exception - do not assume the 'autoinc' profile which
lib/RapidApp/TableSpec/Role/DBIC.pm:1622:    # from being forced read-only. This is a bit hackish - TODO/FIXME
lib/RapidApp/TableSpec/Role/DBIC.pm:1623:    @{$conf->{profiles}} = grep { $_ ne 'autoinc' } @{$conf->{profiles}}
lib/RapidApp/TableSpec/Role/DBIC.pm:1624:      if($conf->{profiles});
lib/RapidApp/TableSpec/Role/DBIC.pm:1626:	# --
lib/RapidApp/TableSpec/Role/DBIC.pm:1628:	my $colname = $self->column_prefix . $rel;
lib/RapidApp/TableSpec/Role/DBIC.pm:1630:	# -- 
lib/RapidApp/TableSpec/Role/DBIC.pm:1633:	$self->relationship_column_render_column_map->{$colname} = $render_col;
lib/RapidApp/TableSpec/Role/DBIC.pm:1634:	# Also store in the column itself - added for excel export - is this redundant to above? probably. FIXME
lib/RapidApp/TableSpec/Role/DBIC.pm:1635:	$conf->{render_column} = $render_col; 
lib/RapidApp/TableSpec/Role/DBIC.pm:1636:	# --
lib/RapidApp/TableSpec/Role/DBIC.pm:1640:		$rows = (shift)->{rows};
lib/RapidApp/TableSpec/Role/DBIC.pm:1643:			$row->{$colname} = $row->{$upd_key_col} if (exists $row->{$upd_key_col});
lib/RapidApp/TableSpec/Role/DBIC.pm:1653:	$conf->{renderer} = 'Ext.ux.showNull' unless ($conf->{renderer});
lib/RapidApp/TableSpec/Role/DBIC.pm:1655:	# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1657:	# as a column -- EXCEPT if the rel name is ALSO a column name:
lib/RapidApp/TableSpec/Role/DBIC.pm:1658:	my $is_also_local_col = $self->ResultSource->has_column($rel) ? 1 : 0;
lib/RapidApp/TableSpec/Role/DBIC.pm:1659:	$conf->{no_fetch} = 1 unless ($is_also_local_col);
lib/RapidApp/TableSpec/Role/DBIC.pm:1660:	# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1675:		read_raw_munger => RapidApp::Handler->new( code => $read_raw_munger ),
lib/RapidApp/TableSpec/Role/DBIC.pm:1676:		#update_munger => RapidApp::Handler->new( code => $update_munger ),
lib/RapidApp/TableSpec/Role/DBIC.pm:1679:	my $cur_renderer = $conf->{renderer};
lib/RapidApp/TableSpec/Role/DBIC.pm:1681:  my $is_phy = $conf->{is_phy_colname};
lib/RapidApp/TableSpec/Role/DBIC.pm:1685:	my $use_rest = 1; #<-- simple toggle var
lib/RapidApp/TableSpec/Role/DBIC.pm:1686:	my $cond_data = try{$self->ResultClass->parse_relationship_cond($info->{cond})};
lib/RapidApp/TableSpec/Role/DBIC.pm:1687:	my $rel_rest_key = try{$self->ResultSource->related_class($rel)->getRestKey};
lib/RapidApp/TableSpec/Role/DBIC.pm:1688:	if($use_rest && $cond_data && $rel_rest_key && $conf->{open_url}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1690:		my $rest_key = $rel_rest_key eq $cond_data->{foreign} ? undef : $cond_data->{foreign};
lib/RapidApp/TableSpec/Role/DBIC.pm:1691:		$conf->{renderer} = jsfunc(
lib/RapidApp/TableSpec/Role/DBIC.pm:1696:				'open_url: "' . $conf->{open_url} . '"' .
lib/RapidApp/TableSpec/Role/DBIC.pm:1704:		$conf->{renderer} = jsfunc(
lib/RapidApp/TableSpec/Role/DBIC.pm:1711:					( $conf->{open_url} ? ",open_url: '" . $conf->{open_url} . "'" : '' ) .
lib/RapidApp/TableSpec/Role/DBIC.pm:1718:  ############# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1719:  $conf->{editor} = $conf->{editor} || {};
lib/RapidApp/TableSpec/Role/DBIC.pm:1720:  $conf->{auto_editor_params} = $conf->{auto_editor_params} || {};
lib/RapidApp/TableSpec/Role/DBIC.pm:1722:  # ----
lib/RapidApp/TableSpec/Role/DBIC.pm:1726:  my $cinfo = exists $conf->{keyField} ? $self->ResultSource->column_info($conf->{keyField}) : undef;
lib/RapidApp/TableSpec/Role/DBIC.pm:1727:  if($cinfo and defined $cinfo->{is_nullable} and ! exists $conf->{editor}->{allowBlank}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1730:    $conf->{editor}->{allowBlank} = \0 if($cinfo->{is_nullable} == 0);
lib/RapidApp/TableSpec/Role/DBIC.pm:1731:    if($cinfo->{is_nullable} == 1) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1732:      $conf->{editor}->{allowBlank} = \1;
lib/RapidApp/TableSpec/Role/DBIC.pm:1734:      $conf->{editor}->{allowSelectNone} = \1;
lib/RapidApp/TableSpec/Role/DBIC.pm:1738:  $conf->{editor}->{value} = $cinfo->{default_value} if ($cinfo && exists $cinfo->{default_value});
lib/RapidApp/TableSpec/Role/DBIC.pm:1741:  # ----
lib/RapidApp/TableSpec/Role/DBIC.pm:1743:  $conf->{auto_editor_params} = $conf->{auto_editor_params} || {};
lib/RapidApp/TableSpec/Role/DBIC.pm:1746:  my $aet = $conf->{auto_editor_type};
lib/RapidApp/TableSpec/Role/DBIC.pm:1750:      valueField		=> $conf->{valueField},
lib/RapidApp/TableSpec/Role/DBIC.pm:1751:      displayField	=> $conf->{displayField},
lib/RapidApp/TableSpec/Role/DBIC.pm:1753:      ResultSet		=> $Source->resultset,
lib/RapidApp/TableSpec/Role/DBIC.pm:1754:      record_pk		=> $conf->{valueField},
lib/RapidApp/TableSpec/Role/DBIC.pm:1756:      RS_condition	=> $conf->{RS_condition} ? $conf->{RS_condition} : {},
lib/RapidApp/TableSpec/Role/DBIC.pm:1757:      RS_attr			=> $conf->{RS_attr} ? $conf->{RS_attr} : {},
lib/RapidApp/TableSpec/Role/DBIC.pm:1760:    $params->{type_filter} = 1 if ($aet eq 'combo');
lib/RapidApp/TableSpec/Role/DBIC.pm:1762:    my $table = RapidApp::DBIC::Component::TableSpec::_table_name_safe($self->ResultClass->table);
lib/RapidApp/TableSpec/Role/DBIC.pm:1764:    my $Module = $self->get_or_create_rapidapp_module( $module_name,
lib/RapidApp/TableSpec/Role/DBIC.pm:1766:      params  => { %$params, %{ $conf->{auto_editor_params} } }
lib/RapidApp/TableSpec/Role/DBIC.pm:1769:    if($conf->{editor}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1770:      if($conf->{editor}->{listeners}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1771:        my $listeners = delete $conf->{editor}->{listeners};
lib/RapidApp/TableSpec/Role/DBIC.pm:1772:        $Module->add_listener( $_ => $listeners->{$_} ) for (keys %$listeners);
lib/RapidApp/TableSpec/Role/DBIC.pm:1774:      $Module->apply_extconfig(%{$conf->{editor}}) if (keys %{$conf->{editor}} > 0);
lib/RapidApp/TableSpec/Role/DBIC.pm:1777:    $conf->{editor} =  $Module->content;
lib/RapidApp/TableSpec/Role/DBIC.pm:1783:      unless (defined $conf->{display_columns});
lib/RapidApp/TableSpec/Role/DBIC.pm:1785:    my $custOnBUILD = $conf->{auto_editor_params}->{onBUILD} || sub{};
lib/RapidApp/TableSpec/Role/DBIC.pm:1788:      $self->apply_to_all_columns( hidden => \1 );
lib/RapidApp/TableSpec/Role/DBIC.pm:1789:      $self->apply_columns_list($conf->{display_columns},{ hidden => \0 });
lib/RapidApp/TableSpec/Role/DBIC.pm:1790:      return $custOnBUILD->($self);
lib/RapidApp/TableSpec/Role/DBIC.pm:1792:    $conf->{auto_editor_params}->{onBUILD} = $onBUILD;
lib/RapidApp/TableSpec/Role/DBIC.pm:1794:    my $table = RapidApp::DBIC::Component::TableSpec::_table_name_safe($self->ResultClass->table);
lib/RapidApp/TableSpec/Role/DBIC.pm:1796:    my $GridModule = $self->get_or_create_rapidapp_module( $grid_module_name,
lib/RapidApp/TableSpec/Role/DBIC.pm:1801:        #include_colspec => [ ($conf->{valueField},$conf->{displayField},@{$conf->{display_columns}}) ],
lib/RapidApp/TableSpec/Role/DBIC.pm:1803:        %{ $conf->{auto_editor_params} }
lib/RapidApp/TableSpec/Role/DBIC.pm:1807:    my $title = $conf->{header} ? 'Select ' . $conf->{header} : 'Select Record';
lib/RapidApp/TableSpec/Role/DBIC.pm:1808:    $conf->{editor} = { 
lib/RapidApp/TableSpec/Role/DBIC.pm:1811:      header			=> $conf->{header},
lib/RapidApp/TableSpec/Role/DBIC.pm:1816:      %{$conf->{editor}},
lib/RapidApp/TableSpec/Role/DBIC.pm:1820:      xtype => 'datastore-app-field',
lib/RapidApp/TableSpec/Role/DBIC.pm:1821:      valueField		=> $conf->{valueField},
lib/RapidApp/TableSpec/Role/DBIC.pm:1822:      displayField	=> $conf->{displayField},
lib/RapidApp/TableSpec/Role/DBIC.pm:1823:      load_url	=> $GridModule->base_url,
lib/RapidApp/TableSpec/Role/DBIC.pm:1831:    my $title = $conf->{header} ? 'Select ' . $conf->{header} : 'Select Record';
lib/RapidApp/TableSpec/Role/DBIC.pm:1832:    $conf->{editor} = { 
lib/RapidApp/TableSpec/Role/DBIC.pm:1835:      header			=> $conf->{header},
lib/RapidApp/TableSpec/Role/DBIC.pm:1839:      valueField		=> $conf->{valueField},
lib/RapidApp/TableSpec/Role/DBIC.pm:1840:      displayField	=> $conf->{displayField},
lib/RapidApp/TableSpec/Role/DBIC.pm:1843:      %{$conf->{auto_editor_params}},
lib/RapidApp/TableSpec/Role/DBIC.pm:1844:      %{$conf->{editor}},
lib/RapidApp/TableSpec/Role/DBIC.pm:1847:  ############# ---
lib/RapidApp/TableSpec/Role/DBIC.pm:1856:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:1858:	return $self->get_m2m_multi_relationship_column_cnf($rel,\%opt) 
lib/RapidApp/TableSpec/Role/DBIC.pm:1859:		if ($opt{relationship_cond_data}->{attrs}->{m2m_attrs});
lib/RapidApp/TableSpec/Role/DBIC.pm:1863:	my $rel_data = clone($conf->{relationship_cond_data});
lib/RapidApp/TableSpec/Role/DBIC.pm:1865:	## -- allow override of the associated TabsleSpec cnfs from the relationship attrs:
lib/RapidApp/TableSpec/Role/DBIC.pm:1866:	$conf->{title_multi} = delete $rel_data->{attrs}->{title_multi} if ($rel_data->{attrs}->{title_multi});
lib/RapidApp/TableSpec/Role/DBIC.pm:1867:	$conf->{multiIconCls} = delete $rel_data->{attrs}->{multiIconCls} if ($rel_data->{attrs}->{multiIconCls});
lib/RapidApp/TableSpec/Role/DBIC.pm:1868:	$conf->{open_url_multi} = delete $rel_data->{attrs}->{open_url_multi} if ($rel_data->{attrs}->{open_url_multi});
lib/RapidApp/TableSpec/Role/DBIC.pm:1869:	$conf->{open_url_multi_rs_join_name} = delete $rel_data->{attrs}->{open_url_multi_rs_join_name} if ($rel_data->{attrs}->{open_url_multi_rs_join_name});
lib/RapidApp/TableSpec/Role/DBIC.pm:1870:	delete $rel_data->{attrs}->{cascade_copy};
lib/RapidApp/TableSpec/Role/DBIC.pm:1871:	delete $rel_data->{attrs}->{cascade_delete};
lib/RapidApp/TableSpec/Role/DBIC.pm:1872:	delete $rel_data->{attrs}->{join_type};
lib/RapidApp/TableSpec/Role/DBIC.pm:1873:	delete $rel_data->{attrs}->{accessor};
lib/RapidApp/TableSpec/Role/DBIC.pm:1875:	$rel_data->{attrs}->{join} = [ $rel_data->{attrs}->{join} ] if (
lib/RapidApp/TableSpec/Role/DBIC.pm:1876:		defined $rel_data->{attrs}->{join} and
lib/RapidApp/TableSpec/Role/DBIC.pm:1877:		ref($rel_data->{attrs}->{join}) ne 'ARRAY'
lib/RapidApp/TableSpec/Role/DBIC.pm:1880:	if($rel_data->{attrs}->{join}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:1881:		@{$rel_data->{attrs}->{join}} = grep { $_ ne $conf->{open_url_multi_rs_join_name} } @{$rel_data->{attrs}->{join}};
lib/RapidApp/TableSpec/Role/DBIC.pm:1882:		delete $rel_data->{attrs}->{join} unless (scalar @{$rel_data->{attrs}->{join}} > 0);
lib/RapidApp/TableSpec/Role/DBIC.pm:1886:	my $title = $conf->{title_multi} ? $conf->{title_multi} : 'Related "' . $rel . '" Rows';
lib/RapidApp/TableSpec/Role/DBIC.pm:1890:		iconCls => $conf->{multiIconCls} ,
lib/RapidApp/TableSpec/Role/DBIC.pm:1892:			url => $conf->{open_url_multi},
lib/RapidApp/TableSpec/Role/DBIC.pm:1899:		( $conf->{multiIconCls} ? ' class="with-inline-icon ' . $conf->{multiIconCls} . '"' : '' ) . '><span>' .
lib/RapidApp/TableSpec/Role/DBIC.pm:1901:		'&nbsp;<span class="superscript-navy">';
lib/RapidApp/TableSpec/Role/DBIC.pm:1903:	my $cur_renderer = $conf->{renderer};
lib/RapidApp/TableSpec/Role/DBIC.pm:1905:  my $open_url = $self->ResultClass->TableSpec_get_conf('open_url');
lib/RapidApp/TableSpec/Role/DBIC.pm:1906:  my $rel_rest_key = try{$self->ResultClass->getRestKey};
lib/RapidApp/TableSpec/Role/DBIC.pm:1907:  my $orgnCol = $rel_rest_key ? join('',$self->column_prefix,$rel_rest_key) : undef;
lib/RapidApp/TableSpec/Role/DBIC.pm:1909:  $conf->{required_fetch_columns} ||= [];
lib/RapidApp/TableSpec/Role/DBIC.pm:1910:  push @{$conf->{required_fetch_columns}}, $orgnCol if ($orgnCol);
lib/RapidApp/TableSpec/Role/DBIC.pm:1912:  my $rSelfCol = $rel_data->{self} ? join('',$self->column_prefix,$rel_data->{self}) : undef;
lib/RapidApp/TableSpec/Role/DBIC.pm:1913:  push @{$conf->{required_fetch_columns}}, $rSelfCol if ($rSelfCol && $rSelfCol ne ($orgnCol || ''));
lib/RapidApp/TableSpec/Role/DBIC.pm:1918:    $rel_data->{attrs}{allow_rel_rest_origin}
lib/RapidApp/TableSpec/Role/DBIC.pm:1919:    // try{$rel_data->{class}->TableSpec_get_conf('allow_rel_rest_origin')};
lib/RapidApp/TableSpec/Role/DBIC.pm:1923:		$conf->{renderer} = jsfunc(
lib/RapidApp/TableSpec/Role/DBIC.pm:1941:    ## -----
lib/RapidApp/TableSpec/Role/DBIC.pm:1952:    my $join_name = $conf->{open_url_multi_rs_join_name};
lib/RapidApp/TableSpec/Role/DBIC.pm:1955:      my $attr = clone($rel_data->{attrs});   
lib/RapidApp/TableSpec/Role/DBIC.pm:1956:      $attr->{join} ||= [];
lib/RapidApp/TableSpec/Role/DBIC.pm:1957:      push @{$attr->{join}}, $join_name;
lib/RapidApp/TableSpec/Role/DBIC.pm:1958:      @{$attr->{join}} = grep { $_ ne 'me' } @{$attr->{join}};
lib/RapidApp/TableSpec/Role/DBIC.pm:1960:      $personality = $attr->{join}[0] if $attr->{join}[0] && $join_name eq 'me';
lib/RapidApp/TableSpec/Role/DBIC.pm:1962:      if(scalar(@{$attr->{join}}) == 0)   { delete $attr->{join}; }
lib/RapidApp/TableSpec/Role/DBIC.pm:1963:      elsif(scalar(@{$attr->{join}}) == 1) { $attr->{join} = $attr->{join}[0]; }
lib/RapidApp/TableSpec/Role/DBIC.pm:1972:    ## -----
lib/RapidApp/TableSpec/Role/DBIC.pm:1974:		$conf->{renderer} = $rel_data->{self} ? jsfunc(
lib/RapidApp/TableSpec/Role/DBIC.pm:1982:				#'var attr = ' . RapidApp::JSON::MixedEncoder::encode_json($rel_data->{attrs}) . ';' .
lib/RapidApp/TableSpec/Role/DBIC.pm:1985:					$conf->{open_url_multi} ?
lib/RapidApp/TableSpec/Role/DBIC.pm:1992:							'cond[join_name + ".' . $rel_data->{foreign} . '"] = key_val;' .
lib/RapidApp/TableSpec/Role/DBIC.pm:2000:							#Fix!! -- Note that 'personality' is for a specific legacy app
lib/RapidApp/TableSpec/Role/DBIC.pm:2016:								'href,"<span>open</span>","ra-nav-link ra-icon-magnify-tiny",null,"Open/view: " + loadCfg.title' .
lib/RapidApp/TableSpec/Role/DBIC.pm:2039:	$conf->{name} = join('',$self->column_prefix,$rel);
lib/RapidApp/TableSpec/Role/DBIC.pm:2049:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:2053:	$conf->{no_quick_search} = \1;
lib/RapidApp/TableSpec/Role/DBIC.pm:2054:	$conf->{no_summary} = \1;
lib/RapidApp/TableSpec/Role/DBIC.pm:2056:	$conf->{renderer} = jsfunc 'Ext.ux.RapidApp.prettyCsvRenderer';
lib/RapidApp/TableSpec/Role/DBIC.pm:2058:	my $m2m_attrs = $conf->{relationship_cond_data}->{attrs}->{m2m_attrs};
lib/RapidApp/TableSpec/Role/DBIC.pm:2059:	my $rinfo = $m2m_attrs->{rinfo};
lib/RapidApp/TableSpec/Role/DBIC.pm:2060:	my $rrinfo = $m2m_attrs->{rrinfo};
lib/RapidApp/TableSpec/Role/DBIC.pm:2062:	my $colname = $self->column_prefix . $rel;
lib/RapidApp/TableSpec/Role/DBIC.pm:2063:	$conf->{name} = $colname;
lib/RapidApp/TableSpec/Role/DBIC.pm:2065:	$self->m2m_rel_columns_indx->{$colname} = 1;
lib/RapidApp/TableSpec/Role/DBIC.pm:2067:	### This is the initial editor type 'multi-check-combo' which is only suitable if
lib/RapidApp/TableSpec/Role/DBIC.pm:2079:	my $schema = $self->ResultSource->schema;
lib/RapidApp/TableSpec/Role/DBIC.pm:2080:	my $Source = $schema->source($rrinfo->{source});
lib/RapidApp/TableSpec/Role/DBIC.pm:2082:	my $table = RapidApp::DBIC::Component::TableSpec::_table_name_safe($self->ResultClass->table);
lib/RapidApp/TableSpec/Role/DBIC.pm:2084:	my $Module = $self->get_or_create_rapidapp_module( $module_name,
lib/RapidApp/TableSpec/Role/DBIC.pm:2087:			valueField		=> $rrinfo->{cond_info}->{foreign},
lib/RapidApp/TableSpec/Role/DBIC.pm:2088:			displayField	=> $rrinfo->{cond_info}->{foreign},
lib/RapidApp/TableSpec/Role/DBIC.pm:2090:			ResultSet		=> $Source->resultset,
lib/RapidApp/TableSpec/Role/DBIC.pm:2091:			record_pk		=> $rrinfo->{cond_info}->{foreign},
lib/RapidApp/TableSpec/Role/DBIC.pm:2093:			RS_condition	=> $conf->{RS_condition} ? $conf->{RS_condition} : {},
lib/RapidApp/TableSpec/Role/DBIC.pm:2094:			RS_attr			=> $conf->{RS_attr} ? $conf->{RS_attr} : {},
lib/RapidApp/TableSpec/Role/DBIC.pm:2095:			#%{ $conf->{auto_editor_params} },
lib/RapidApp/TableSpec/Role/DBIC.pm:2098:	$Module->apply_extconfig( xtype => 'multi-check-combo' );
lib/RapidApp/TableSpec/Role/DBIC.pm:2100:	$conf->{editor} = $conf->{editor} || {};
lib/RapidApp/TableSpec/Role/DBIC.pm:2102:	# allowBlank per-default. There are no database-level rules for "nullable" since the
lib/RapidApp/TableSpec/Role/DBIC.pm:2104:	$conf->{editor}->{allowBlank} = \1 unless (exists $conf->{editor}->{allowBlank});
lib/RapidApp/TableSpec/Role/DBIC.pm:2106:	if($conf->{editor}->{listeners}) {
lib/RapidApp/TableSpec/Role/DBIC.pm:2107:		my $listeners = delete $conf->{editor}->{listeners};
lib/RapidApp/TableSpec/Role/DBIC.pm:2108:		$Module->add_listener( $_ => $listeners->{$_} ) for (keys %$listeners);
lib/RapidApp/TableSpec/Role/DBIC.pm:2110:	$Module->apply_extconfig(%{$conf->{editor}}) if (keys %{$conf->{editor}} > 0);
lib/RapidApp/TableSpec/Role/DBIC.pm:2112:	$conf->{editor} =  $Module->content;
lib/RapidApp/TableSpec/Role/DBIC.pm:2118:# TODO: consolidate/simplify all "virtual" relationship columns here. Multi-relationship
lib/RapidApp/TableSpec/Role/DBIC.pm:2123:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:2127:    name => join('',$self->column_prefix,$rel)
lib/RapidApp/TableSpec/Role/DBIC.pm:2130:  my $cur_renderer = $conf->{renderer};
lib/RapidApp/TableSpec/Role/DBIC.pm:2132:  my $rel_rest_key = try{$self->ResultClass->getRestKey};
lib/RapidApp/TableSpec/Role/DBIC.pm:2133:  my $orgnCol = $rel_rest_key ? join('',$self->column_prefix,$rel_rest_key) : undef;
lib/RapidApp/TableSpec/Role/DBIC.pm:2135:  $conf->{required_fetch_columns} ||= [];
lib/RapidApp/TableSpec/Role/DBIC.pm:2136:  push @{$conf->{required_fetch_columns}}, $orgnCol if ($orgnCol);
lib/RapidApp/TableSpec/Role/DBIC.pm:2140:    my $open_url = $self->ResultClass->TableSpec_get_conf('open_url');
lib/RapidApp/TableSpec/Role/DBIC.pm:2141:    $conf->{renderer} = jsfunc( join('',
lib/RapidApp/TableSpec/Role/DBIC.pm:2159:	my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/TableSpec/Role/DBIC.pm:2161:	my $rootModule = RapidApp->_rootModule or die "Failed to find RapidApp Root Module!!";
lib/RapidApp/TableSpec/Role/DBIC.pm:2163:	$rootModule->apply_init_modules( tablespec => 'RapidApp::Module' ) 
lib/RapidApp/TableSpec/Role/DBIC.pm:2164:		unless ( $rootModule->has_module('tablespec') );
lib/RapidApp/TableSpec/Role/DBIC.pm:2166:	my $TMod = $rootModule->Module('tablespec');
lib/RapidApp/TableSpec/Role/DBIC.pm:2168:	$TMod->apply_init_modules( $name => \%opt ) unless ( $TMod->has_module($name) );
lib/RapidApp/TableSpec/Role/DBIC.pm:2170:	my $Module = $TMod->Module($name);
lib/RapidApp/TableSpec/Role/DBIC.pm:2171:	$Module->call_ONREQUEST_handlers;
lib/RapidApp/TableSpec/Role/DBIC.pm:2172:	$Module->DataStore->call_ONREQUEST_handlers;
lib/RapidApp/Template/Access.pm:32:# $c - localized by RapidApp::Template::Controller specifically for use 
lib/RapidApp/Template/Access.pm:34:sub catalyst_context { (shift)->Controller->{_current_context} }
lib/RapidApp/Template/Access.pm:36:# This will be the top-level template name that is being viewed from
lib/RapidApp/Template/Access.pm:40:sub currently_viewing_template { (shift)->Controller->{_viewing_template} }
lib/RapidApp/Template/Access.pm:47:sub local_cache { (shift)->{_local_cache} || {} };
lib/RapidApp/Template/Access.pm:52:sub process_Context { (shift)->{_process_Context} };
lib/RapidApp/Template/Access.pm:54:# -----
lib/RapidApp/Template/Access.pm:67:    $self->readable_coderef ||
lib/RapidApp/Template/Access.pm:68:    $self->readable_regex ||
lib/RapidApp/Template/Access.pm:69:    $self->writable_coderef ||
lib/RapidApp/Template/Access.pm:70:    $self->writable_regex ||
lib/RapidApp/Template/Access.pm:71:    $self->writable
lib/RapidApp/Template/Access.pm:80:    $self->writable_coderef ||
lib/RapidApp/Template/Access.pm:81:    $self->writable_regex
lib/RapidApp/Template/Access.pm:90:    $self->creatable_coderef ||
lib/RapidApp/Template/Access.pm:91:    $self->creatable_regex
lib/RapidApp/Template/Access.pm:100:    $self->deletable_coderef ||
lib/RapidApp/Template/Access.pm:101:    $self->deletable_regex
lib/RapidApp/Template/Access.pm:118:# to non-admin or anonymous users you might specify these options together:
lib/RapidApp/Template/Access.pm:129:    $self->non_admin_tpl_coderef ||
lib/RapidApp/Template/Access.pm:130:    $self->non_admin_tpl_regex
lib/RapidApp/Template/Access.pm:133:# -----
lib/RapidApp/Template/Access.pm:137:# are by default publically accessible (i.e. don't require a logged-in session)
lib/RapidApp/Template/Access.pm:139:# styles, even when wrapped with 'ra-scoped-reset', and thus must be viewed
lib/RapidApp/Template/Access.pm:146:    $self->external_tpl_coderef ||
lib/RapidApp/Template/Access.pm:147:    $self->external_tpl_regex
lib/RapidApp/Template/Access.pm:153:# but rendered directly. This content will still be wrapped/post-processed
lib/RapidApp/Template/Access.pm:159:    $self->static_tpl_coderef ||
lib/RapidApp/Template/Access.pm:160:    $self->static_tpl_regex
lib/RapidApp/Template/Access.pm:167:# rendering the template (along with 'ra-template'). This attr will have no effect if
lib/RapidApp/Template/Access.pm:169:# For backward compatability, this is currently set to 'ra-doc' for out-of-the-box nice styles
lib/RapidApp/Template/Access.pm:173:has 'default_template_css_class', is => 'ro', isa => Maybe[Str], default => sub { 'ra-doc' };
lib/RapidApp/Template/Access.pm:205:  my $str = $self->viewable_regex or return undef;
lib/RapidApp/Template/Access.pm:211:  my $str = $self->readable_regex or return undef;
lib/RapidApp/Template/Access.pm:217:  my $str = $self->writable_regex or return undef;
lib/RapidApp/Template/Access.pm:223:  my $str = $self->creatable_regex or return undef;
lib/RapidApp/Template/Access.pm:229:  my $str = $self->deletable_regex or return undef;
lib/RapidApp/Template/Access.pm:235:  my $str = $self->admin_tpl_regex or return undef;
lib/RapidApp/Template/Access.pm:241:  my $str = $self->non_admin_tpl_regex or return undef;
lib/RapidApp/Template/Access.pm:247:  my $str = $self->external_tpl_regex or return undef;
lib/RapidApp/Template/Access.pm:253:  my $str = $self->static_tpl_regex or return undef;
lib/RapidApp/Template/Access.pm:258:# calculations are needed beyond the simple, built-in options (i.e. 
lib/RapidApp/Template/Access.pm:259:# user/role based checks. Note: get '$c' via $self->catalyst_context :
lib/RapidApp/Template/Access.pm:261:# NOTE: if non-admins are granted access to write templates in a production
lib/RapidApp/Template/Access.pm:263:# provides full access to the Catalyst Context object ($c) - or, the supplied
lib/RapidApp/Template/Access.pm:270:  # template as an arg so derived classes can apply template-specific
lib/RapidApp/Template/Access.pm:275:  return $self->get_template_vars_coderef->($self,$template)
lib/RapidApp/Template/Access.pm:276:    if ($self->get_template_vars_coderef);
lib/RapidApp/Template/Access.pm:278:  return $self->template_admin_tpl($template)
lib/RapidApp/Template/Access.pm:279:    ? $self->_get_admin_template_vars($template)
lib/RapidApp/Template/Access.pm:280:    : $self->_get_default_template_vars($template);
lib/RapidApp/Template/Access.pm:285:  my $c = $self->catalyst_context;
lib/RapidApp/Template/Access.pm:286:  my $Provider = $self->Controller->get_Provider;
lib/RapidApp/Template/Access.pm:290:    # non-admin templates
lib/RapidApp/Template/Access.pm:294:    list_templates => sub { $Provider->list_templates(@_) },
lib/RapidApp/Template/Access.pm:300:      return join('','/',$c->req->action,"/$tpl");
lib/RapidApp/Template/Access.pm:305:      my $url = $vars->{template_url}->($tpl);
lib/RapidApp/Template/Access.pm:311:      my $uri_str = $c->req->uri->rel($c->req->base)->as_string;
lib/RapidApp/Template/Access.pm:326:    %{ $self->_get_default_template_vars(@_) },
lib/RapidApp/Template/Access.pm:327:    c => $self->catalyst_context,
lib/RapidApp/Template/Access.pm:334:# is useful for places where you need to set template-specific options,
lib/RapidApp/Template/Access.pm:348:  return $self->_access_test($template,'viewable',1);
lib/RapidApp/Template/Access.pm:355:  return $self->_access_test($template,'readable',1);
lib/RapidApp/Template/Access.pm:362:  return $self->_access_test($template,'writable',1);
lib/RapidApp/Template/Access.pm:369:  return $self->_access_test($template,'creatable',1);
lib/RapidApp/Template/Access.pm:376:  return $self->_access_test($template,'deletable',1);
lib/RapidApp/Template/Access.pm:383:  return $self->template_non_admin_tpl($template)
lib/RapidApp/Template/Access.pm:384:    ? 0 : $self->_access_test($template,'admin_tpl',1);
lib/RapidApp/Template/Access.pm:391:  return $self->_access_test($template,'non_admin_tpl',1);
lib/RapidApp/Template/Access.pm:398:  return $self->_access_test($template,'external_tpl',1);
lib/RapidApp/Template/Access.pm:405:  return $self->_access_test($template,'static_tpl',1);
lib/RapidApp/Template/Access.pm:418:  return 0 unless ($self->$perm);
lib/RapidApp/Template/Access.pm:422:    $self->$regex &&
lib/RapidApp/Template/Access.pm:423:    ! ($template =~ $self->$regex)
lib/RapidApp/Template/Access.pm:427:  return $self->$code->($self,$template)
lib/RapidApp/Template/Access.pm:428:    if ($self->$code);
lib/RapidApp/Template/Access.pm:441:  return $self->get_template_format_coderef->($self,$template)
lib/RapidApp/Template/Access.pm:442:    if ($self->get_template_format_coderef);
lib/RapidApp/Template/Access.pm:447:  # html-snippet can be safely edited by the HtmlEditor
lib/RapidApp/Template/Access.pm:448:  return 'html-snippet' if ($template =~ /\.tt$/i);
lib/RapidApp/Template/Access.pm:461:  return $self->default_template_css_class;
lib/RapidApp/Template/Access.pm:465:# New: must return undef or a class name to use for "post-processing" of the
lib/RapidApp/Template/Access.pm:468:# a blob of text as ScalarRef and returning the post-processed content.
lib/RapidApp/Template/Access.pm:474:  my $format = $self->get_template_format($template);
lib/RapidApp/Template/Access.pm:484:# Optionally return headers (i.e. Content-Type, etc) associated with a given
lib/RapidApp/Template/AccessStore.pm:22:forcing all Access classes to also be Stores, since this is only a marginal use-case, since Stores
lib/RapidApp/Template/AccessStore.pm:24:beyond the file-system capabilities of RapidApp::Template::Provider.
lib/RapidApp/Template/Context.pm:18:Base Template Context class with extended API for post-process parsing (i.e. markup rendering)
lib/RapidApp/Template/Context.pm:27:sub catalyst_context { (shift)->Controller->{_current_context} }
lib/RapidApp/Template/Context.pm:36:  return $self->{LOAD_TEMPLATES}->[0];
lib/RapidApp/Template/Context.pm:41:  return 0 unless $self->Controller->{_div_wrap}; #<-- localized in RapidApp::Template::Controller
lib/RapidApp/Template/Context.pm:42:  return $self->Access->template_writable($template);
lib/RapidApp/Template/Context.pm:45:sub process_template_stack { @{(shift)->{_process_template_stack} || []} }
lib/RapidApp/Template/Context.pm:46:sub process_nest_level     { scalar( (shift)->process_template_stack )    }
lib/RapidApp/Template/Context.pm:51:  local $self->Access->{_process_Context} = $self;
lib/RapidApp/Template/Context.pm:54:  my $template = blessed $args[0] ? $args[0]->name : $args[0];
lib/RapidApp/Template/Context.pm:55:  $template = $self->Controller->_resolve_template_name($template);
lib/RapidApp/Template/Context.pm:58:  local $self->{_process_template_stack} = [ $template, $self->process_template_stack ];
lib/RapidApp/Template/Context.pm:62:    if($self->Access->template_static_tpl($template) && $self->get_Provider->template_exists($template)) {
lib/RapidApp/Template/Context.pm:65:      ($output) = $self->get_Provider->load($template);
lib/RapidApp/Template/Context.pm:68:      $output = $self->$orig(@args);
lib/RapidApp/Template/Context.pm:71:    $output = $self->post_process_output($template,\$output);
lib/RapidApp/Template/Context.pm:78:    die $err if ($self->Controller->{_no_exception_error_content});
lib/RapidApp/Template/Context.pm:80:    $output = $self->_template_error_content(
lib/RapidApp/Template/Context.pm:82:      $self->Access->template_writable($template)
lib/RapidApp/Template/Context.pm:93:  if(my $class = $self->Access->template_post_processor_class($template)) {
lib/RapidApp/Template/Context.pm:94:    unless ($self->{_loaded_post_processor_classes}{$class}) {
lib/RapidApp/Template/Context.pm:96:      $class->can('process') or die "FATAL: Postprocessor '$class' has no 'process' method!";
lib/RapidApp/Template/Context.pm:97:      $self->{_loaded_post_processor_classes}{$class}++;
lib/RapidApp/Template/Context.pm:104:sub next_template { ((shift)->process_template_stack)[1] }
lib/RapidApp/Template/Context.pm:107:# Returns the post-processor class of the *next* template (i.e. the second element)
lib/RapidApp/Template/Context.pm:108:# in the process_template_stack. This is intended to be called from a post-processor
lib/RapidApp/Template/Context.pm:111:# the markdown when post-processing the
lib/RapidApp/Template/Context.pm:115:  my $next_template = $self->next_template or return undef;
lib/RapidApp/Template/Context.pm:116:  $self->get_template_post_processor($next_template)
lib/RapidApp/Template/Context.pm:124:  my $meta = $self->{_cached_template_metadata}{$template} //= {
lib/RapidApp/Template/Context.pm:125:    format        => $self->Access->get_template_format($template),
lib/RapidApp/Template/Context.pm:126:    postprocessor => $self->get_template_post_processor($template)
lib/RapidApp/Template/Context.pm:129:  die "Access object didn't return a format string" unless ($meta->{format});
lib/RapidApp/Template/Context.pm:131:  $$output_ref = $meta->{postprocessor}->process($output_ref,$self) if ($meta->{postprocessor});
lib/RapidApp/Template/Context.pm:133:  return $self->div_wrap($template)
lib/RapidApp/Template/Context.pm:134:    ? $self->_div_wrap_content($template,$meta->{format},$$output_ref)
lib/RapidApp/Template/Context.pm:142:  my $exists = $self->get_Provider->template_exists($template);
lib/RapidApp/Template/Context.pm:146:    deletable => $exists ? $self->Access->template_deletable($template) : 0
lib/RapidApp/Template/Context.pm:150:    '<div class="ra-template">',
lib/RapidApp/Template/Context.pm:153:        #'<div class="template-name">' . $template . '</div>',
lib/RapidApp/Template/Context.pm:154:        #'<div class="template-format">' . $format . '</div>',
lib/RapidApp/Template/Context.pm:160:        '<div title="Edit \'' . $template . '\'" class="edit ra-icon-edit-pictogram"></div>' :
lib/RapidApp/Template/Context.pm:178:    $self->Controller->is_editable_request($self->catalyst_context)
lib/RapidApp/Template/Context.pm:182:    '<div class="ra-template">',
lib/RapidApp/Template/Context.pm:185:        #'<div class="template-name">', $template, '</div>',
lib/RapidApp/Template/Context.pm:188:          format => $self->Access->get_template_format($template),
lib/RapidApp/Template/Context.pm:189:          deletable => $self->Access->template_deletable($template)
lib/RapidApp/Template/Context.pm:194:        ? '<div title="Edit \'' . $template . '\'" class="edit ra-icon-edit-pictogram"></div>'
lib/RapidApp/Template/Context.pm:198:      '<div class="tpl-error">', 
lib/RapidApp/Template/Context.pm:199:        'Template error &nbsp;&ndash; <span class="tpl-name">' . $template . '</span>',
lib/RapidApp/Template/Context.pm:200:        '<div class="error-msg">',$error,'</div>',
lib/RapidApp/Template/Context.pm:209:# -- NEEDED FOR SECURITY FOR NON-PRIV USERS --
lib/RapidApp/Template/Context.pm:214:  return { map {lc($_)=>1} @{$self->Controller->allowed_plugins} };
lib/RapidApp/Template/Context.pm:219:  return { map {lc($_)=>1} @{$self->Controller->allowed_filters} };
lib/RapidApp/Template/Context.pm:225:  return $self->throw(
lib/RapidApp/Template/Context.pm:227:    "USE '$name' - permission denied"
lib/RapidApp/Template/Context.pm:228:  ) unless ($self->_allowed_plugins_hash->{lc($name)});
lib/RapidApp/Template/Context.pm:230:  return $self->$orig($name,@args);
lib/RapidApp/Template/Context.pm:236:  return $self->throw(
lib/RapidApp/Template/Context.pm:238:    "Load Filter '$name' - permission denied"
lib/RapidApp/Template/Context.pm:239:  ) unless ($self->_allowed_filters_hash->{lc($name)});
lib/RapidApp/Template/Context.pm:241:  return $self->$orig($name,@args);
lib/RapidApp/Template/Controller.pm:12:# New unified controller for displaying and editing TT templates on a site-wide
lib/RapidApp/Template/Controller.pm:27:## -----
lib/RapidApp/Template/Controller.pm:28:## Setup Top-level alias URL paths:
lib/RapidApp/Template/Controller.pm:35:  my $c = $self->_app;
lib/RapidApp/Template/Controller.pm:36:  my $ns = $self->action_namespace($c);
lib/RapidApp/Template/Controller.pm:38:  if($self->read_alias_path) {
lib/RapidApp/Template/Controller.pm:39:    my $path = $self->read_alias_path;
lib/RapidApp/Template/Controller.pm:42:    $c->dispatcher->register( $c => Catalyst::Action->new({
lib/RapidApp/Template/Controller.pm:44:      code      => $self->can('tpl'),
lib/RapidApp/Template/Controller.pm:45:      class     => $self->meta->name,
lib/RapidApp/Template/Controller.pm:55:  if($self->edit_alias_path) {
lib/RapidApp/Template/Controller.pm:56:    my $path = $self->edit_alias_path;
lib/RapidApp/Template/Controller.pm:58:    $c->dispatcher->register( $c => Catalyst::Action->new({
lib/RapidApp/Template/Controller.pm:60:      code      => $self->can('tple'),
lib/RapidApp/Template/Controller.pm:61:      class     => $self->meta->name,
lib/RapidApp/Template/Controller.pm:77:  return $self->edit_alias_path || $self->read_alias_path;
lib/RapidApp/Template/Controller.pm:79:## -----
lib/RapidApp/Template/Controller.pm:91:# -- 
lib/RapidApp/Template/Controller.pm:93:# This is *very* important for security if non-admin users will
lib/RapidApp/Template/Controller.pm:95:# are from the built-in list and are known to be safe. Examples
lib/RapidApp/Template/Controller.pm:100:# not originally designed with "limited" access in mind - it was
lib/RapidApp/Template/Controller.pm:116:# --
lib/RapidApp/Template/Controller.pm:120:# If true, mouse-over edit controls will always be available for editable
lib/RapidApp/Template/Controller.pm:127:  Module::Runtime::require_module($self->access_class);
lib/RapidApp/Template/Controller.pm:128:  return $self->access_class->new({ 
lib/RapidApp/Template/Controller.pm:129:    %{ $self->access_params },
lib/RapidApp/Template/Controller.pm:134:# Maintain two separate Template instances - one that wraps divs and one that
lib/RapidApp/Template/Controller.pm:138:  return $self->_new_Template({ div_wrap => 0 });
lib/RapidApp/Template/Controller.pm:143:  return $self->_new_Template({ div_wrap => 1 });
lib/RapidApp/Template/Controller.pm:148:  Module::Runtime::require_module($self->context_class);
lib/RapidApp/Template/Controller.pm:149:  Module::Runtime::require_module($self->provider_class);
lib/RapidApp/Template/Controller.pm:150:  return Template->new({
lib/RapidApp/Template/Controller.pm:151:    CONTEXT => $self->context_class->new({
lib/RapidApp/Template/Controller.pm:153:      Access => $self->Access,
lib/RapidApp/Template/Controller.pm:157:        $self->provider_class->new({
lib/RapidApp/Template/Controller.pm:159:          Access => $self->Access,
lib/RapidApp/Template/Controller.pm:160:          store_class  => $self->store_class,
lib/RapidApp/Template/Controller.pm:161:          store_params => $self->store_params,
lib/RapidApp/Template/Controller.pm:162:          #INCLUDE_PATH => $self->_app->default_tt_include_path,
lib/RapidApp/Template/Controller.pm:164:            map { dir($_)->stringify } @{ $self->include_paths },
lib/RapidApp/Template/Controller.pm:165:            dir($self->_app->config->{home},'root/templates')->stringify,
lib/RapidApp/Template/Controller.pm:166:            dir(RapidApp->share_dir,'templates')->stringify
lib/RapidApp/Template/Controller.pm:180:  my $template = join('/',@{$c->req->args});
lib/RapidApp/Template/Controller.pm:181:  return $self->$orig($c,@args) unless (
lib/RapidApp/Template/Controller.pm:182:    ! $c->req->header('X-RapidApp-RequestContentType')
lib/RapidApp/Template/Controller.pm:183:    && $self->is_external_template($c,$template)
lib/RapidApp/Template/Controller.pm:189:  return $self->Template_raw->context->{LOAD_TEMPLATES}->[0];
lib/RapidApp/Template/Controller.pm:196:  $c->stash->{_template_exists}{$template} = 
lib/RapidApp/Template/Controller.pm:197:    $self->get_Provider->template_exists($template)
lib/RapidApp/Template/Controller.pm:198:      unless (exists $c->stash->{_template_exists}{$template});
lib/RapidApp/Template/Controller.pm:199:  return $c->stash->{_template_exists}{$template};
lib/RapidApp/Template/Controller.pm:212:    $c->req->header('X-RapidApp-RequestContentType') ||
lib/RapidApp/Template/Controller.pm:213:    (exists $c->req->params->{iframe} && $c->req->params->{iframe} eq 'request')
lib/RapidApp/Template/Controller.pm:216:  # check several mechanisms to turn on editing (mouse-over edit controls)
lib/RapidApp/Template/Controller.pm:218:    $self->auto_editable ||
lib/RapidApp/Template/Controller.pm:219:    $c->req->params->{editable} || 
lib/RapidApp/Template/Controller.pm:220:    $c->req->params->{edit} ||
lib/RapidApp/Template/Controller.pm:221:    $c->stash->{editable}
lib/RapidApp/Template/Controller.pm:229:    $c->req->params->{iframe} || 
lib/RapidApp/Template/Controller.pm:230:    $c->stash->{iframe}
lib/RapidApp/Template/Controller.pm:239:  $c->stash->{is_external_template}{$template} = do {
lib/RapidApp/Template/Controller.pm:241:    return $c->req->params->{external} if (exists $c->req->params->{external});
lib/RapidApp/Template/Controller.pm:242:    return $c->stash->{external} if (exists $c->stash->{external});
lib/RapidApp/Template/Controller.pm:245:      # hard-coded external templates:
lib/RapidApp/Template/Controller.pm:247:      $self->Access->template_external_tpl($template)
lib/RapidApp/Template/Controller.pm:252:      # don't treat non-existing templates as external
lib/RapidApp/Template/Controller.pm:253:      $self->_template_exists($c,$template)
lib/RapidApp/Template/Controller.pm:255:  } unless (exists $c->stash->{is_external_template}{$template});
lib/RapidApp/Template/Controller.pm:257:  return $c->stash->{is_external_template}{$template};
lib/RapidApp/Template/Controller.pm:266:  $template .= '.' . $self->default_template_extension if (
lib/RapidApp/Template/Controller.pm:267:    $self->default_template_extension &&
lib/RapidApp/Template/Controller.pm:268:    ! ( $template =~ /\./ ) #<-- doesn't contain a dot '.'
lib/RapidApp/Template/Controller.pm:276:# -------
lib/RapidApp/Template/Controller.pm:286:# that a template can be rendered full-screen with the same functionality
lib/RapidApp/Template/Controller.pm:290:  my $template = $self->_resolve_template_name(@args);
lib/RapidApp/Template/Controller.pm:291:  $self->get_Provider->template_exists($template)
lib/RapidApp/Template/Controller.pm:298:  return 1 if ($self->_validate_args_template_viewable(@args));
lib/RapidApp/Template/Controller.pm:307:    $c->redispatch_public_path($c->mount_url,@args) && $c->detach if (
lib/RapidApp/Template/Controller.pm:308:      $self->_validate_args_template_viewable(@pre_args) && (
lib/RapidApp/Template/Controller.pm:316:  $c->stash->{template} = 'rapidapp/http-404.html';
lib/RapidApp/Template/Controller.pm:317:  $c->stash->{current_view} = 'RapidApp::Template';
lib/RapidApp/Template/Controller.pm:318:  $c->res->status(404);
lib/RapidApp/Template/Controller.pm:319:  return $c->detach;
lib/RapidApp/Template/Controller.pm:325:  $self->_validate_enforce_arguments_path($c,@args);
lib/RapidApp/Template/Controller.pm:327:  $c->stash->{panel_cfg} = {
lib/RapidApp/Template/Controller.pm:332:      params => $c->req->params
lib/RapidApp/Template/Controller.pm:336:  return $c->detach( $c->view('RapidApp::Viewport') );
lib/RapidApp/Template/Controller.pm:341:  $self->_validate_enforce_arguments_path($c,@args);
lib/RapidApp/Template/Controller.pm:342:  return $c->controller('RapidApp::Module')->navable($c,@args);
lib/RapidApp/Template/Controller.pm:344:# --------
lib/RapidApp/Template/Controller.pm:348:  $self->view($c,@args)
lib/RapidApp/Template/Controller.pm:355:  $c->stash->{editable} = 1;
lib/RapidApp/Template/Controller.pm:356:  $self->view($c,@args)
lib/RapidApp/Template/Controller.pm:362:  my $template = $self->_resolve_template_name(@args)
lib/RapidApp/Template/Controller.pm:365:  local $self->Access->{_local_cache} = {};
lib/RapidApp/Template/Controller.pm:367:  if(my $psgi_response = $self->Access->template_psgi_response($template,$c)) {
lib/RapidApp/Template/Controller.pm:368:    $c->res->from_psgi_response( $psgi_response );
lib/RapidApp/Template/Controller.pm:369:    return $c->detach;
lib/RapidApp/Template/Controller.pm:372:  my $ra_client = $c->is_ra_ajax_req;
lib/RapidApp/Template/Controller.pm:375:  my $status = $c->res->status || 200;
lib/RapidApp/Template/Controller.pm:378:  local $self->{_current_context} = $c;
lib/RapidApp/Template/Controller.pm:380:  # Track the top-level template that is being viewed, in case the Access class
lib/RapidApp/Template/Controller.pm:381:  # wants to treat top-level templates differently from nested templates
lib/RapidApp/Template/Controller.pm:382:  #   -- see currently_viewing_template() in RapidApp::Template::Access
lib/RapidApp/Template/Controller.pm:383:  local $self->{_viewing_template} = $template;
lib/RapidApp/Template/Controller.pm:385:  $self->Access->template_viewable($template)
lib/RapidApp/Template/Controller.pm:386:    or die "Permission denied - template '$template'";
lib/RapidApp/Template/Controller.pm:388:  my $external = $self->is_external_template($c,$template);
lib/RapidApp/Template/Controller.pm:389:  my $editable = $self->is_editable_request($c);
lib/RapidApp/Template/Controller.pm:391:  # ---
lib/RapidApp/Template/Controller.pm:392:  # New: for non-external templates which are being accessed externally, 
lib/RapidApp/Template/Controller.pm:395:    return $c->auto_hashnav_redirect_current;
lib/RapidApp/Template/Controller.pm:397:  #---
lib/RapidApp/Template/Controller.pm:399:  my $iframe = $external || $self->is_iframe_request($c); # <-- external must use iframe
lib/RapidApp/Template/Controller.pm:402:  my @cls = ('ra-scoped-reset');
lib/RapidApp/Template/Controller.pm:403:  my $tpl_cls = $self->Access->template_css_class($template);
lib/RapidApp/Template/Controller.pm:413:      # again but without the X-RapidApp-RequestContentType header which will be 
lib/RapidApp/Template/Controller.pm:416:      my %params = ( %{$c->req->params}, editable => $editable, iframe => 'request' );
lib/RapidApp/Template/Controller.pm:418:      my $iframe_src = join('/','',$self->action_namespace($c),'view',$template) . '?' . $qs;
lib/RapidApp/Template/Controller.pm:422:        plugins => ['ra-link-click-catcher'],
lib/RapidApp/Template/Controller.pm:425:            '[' . join('/',@args) . ']', #<-- not using $template to preserve the orig req name
lib/RapidApp/Template/Controller.pm:428:        tabIconCls => 'ra-icon-page-white',
lib/RapidApp/Template/Controller.pm:431:        bodyStyle => 'border: 1px solid #D0D0D0;background-color:white;',
lib/RapidApp/Template/Controller.pm:438:      my $html = $self->_render_template(
lib/RapidApp/Template/Controller.pm:452:        tabTitle => join('/',@args), #<-- not using $template to preserve the orig req name
lib/RapidApp/Template/Controller.pm:453:        tabIconCls => 'ra-icon-page-white-world',
lib/RapidApp/Template/Controller.pm:457:        # Load any extra, template-specific configs from the Access class:
lib/RapidApp/Template/Controller.pm:458:        %{ $self->Access->template_autopanel_cnf($template) || {} }
lib/RapidApp/Template/Controller.pm:464:      $cnf->{plugins} ||= [];
lib/RapidApp/Template/Controller.pm:465:      push @{$cnf->{plugins}}, 'template-controller-panel';
lib/RapidApp/Template/Controller.pm:466:      $cnf->{template_controller_url} = '/' . $self->action_namespace($c);
lib/RapidApp/Template/Controller.pm:470:    $content_type = 'text/javascript; charset=utf-8';
lib/RapidApp/Template/Controller.pm:476:    my $html = $self->_render_template(
lib/RapidApp/Template/Controller.pm:485:    # though local links are already hanlded/converted - we still need to
lib/RapidApp/Template/Controller.pm:488:      exists $c->req->params->{iframe} &&
lib/RapidApp/Template/Controller.pm:489:      $c->req->params->{iframe} eq 'request'
lib/RapidApp/Template/Controller.pm:496:      # if this operation set it (i.e. the template provides its own Content-Type)
lib/RapidApp/Template/Controller.pm:497:      my $headers  = $external ? $self->Access->get_external_tpl_headers($template) : undef;
lib/RapidApp/Template/Controller.pm:499:        $c->res->header( $_ => $headers->{$_} ) for (keys %$headers);
lib/RapidApp/Template/Controller.pm:500:        $content_type = $c->res->content_type;
lib/RapidApp/Template/Controller.pm:503:      # If this external template provides its own headers, including Content-Type, and that is
lib/RapidApp/Template/Controller.pm:504:      # *not* text/html, don't populate @head, even if it is $editable (which is rare - or maybe 
lib/RapidApp/Template/Controller.pm:505:      # even impossible - here anyway)
lib/RapidApp/Template/Controller.pm:511:          $c->favicon_head_tag||'',
lib/RapidApp/Template/Controller.pm:512:          $c->controller('Assets::RapidApp::CSS')->html_head_tags,
lib/RapidApp/Template/Controller.pm:513:          $c->controller('Assets::RapidApp::Icons')->html_head_tags,
lib/RapidApp/Template/Controller.pm:514:          $c->controller('Assets::ExtJS')->html_head_tags( js => [
lib/RapidApp/Template/Controller.pm:515:            'adapter/ext/ext-base.js',
lib/RapidApp/Template/Controller.pm:516:            'ext-all-debug.js',
lib/RapidApp/Template/Controller.pm:519:          $c->controller('Assets::RapidApp::JS')->html_head_tags
lib/RapidApp/Template/Controller.pm:525:      push @head, $c->all_html_head_tags;
lib/RapidApp/Template/Controller.pm:528:    # Only include the RapidApp/ExtJS assets and wrap 'ra-scoped-reset' if
lib/RapidApp/Template/Controller.pm:539:    $content_type ||= 'text/html; charset=utf-8';
lib/RapidApp/Template/Controller.pm:542:  # Decode as UTF-8 for user consumption:
lib/RapidApp/Template/Controller.pm:545:  return $self->_detach_response($c,$status,$output,$content_type);
lib/RapidApp/Template/Controller.pm:552:  my $template = $self->_resolve_template_name(@args)
lib/RapidApp/Template/Controller.pm:555:  local $self->{_current_context} = $c;
lib/RapidApp/Template/Controller.pm:557:  $self->Access->template_readable($template)
lib/RapidApp/Template/Controller.pm:558:    or return $self->_detach_response($c,403,"Permission denied - template '$template'");
lib/RapidApp/Template/Controller.pm:560:  my ($data, $error) = $self->get_Provider->load($template);
lib/RapidApp/Template/Controller.pm:562:  return $self->_detach_response($c,400,"Failed to get template '$template'")
lib/RapidApp/Template/Controller.pm:565:  # Decode as UTF-8 for user consumption:
lib/RapidApp/Template/Controller.pm:568:  return $self->_detach_response($c,200,$data);
lib/RapidApp/Template/Controller.pm:574:  my $template = $self->_resolve_template_name(@args)
lib/RapidApp/Template/Controller.pm:577:  local $self->{_current_context} = $c;
lib/RapidApp/Template/Controller.pm:579:  exists $c->req->params->{content}
lib/RapidApp/Template/Controller.pm:580:    or return $self->_detach_response($c,400,"Template 'content' required");
lib/RapidApp/Template/Controller.pm:582:  $self->Access->template_writable($template)
lib/RapidApp/Template/Controller.pm:583:    or return $self->_detach_response($c,403,"Modify template '$template' - Permission denied");
lib/RapidApp/Template/Controller.pm:585:  my $content = $c->req->params->{content};
lib/RapidApp/Template/Controller.pm:588:  unless ($c->req->params->{skip_validate}) {
lib/RapidApp/Template/Controller.pm:589:    my $err = $self->_get_template_error('Template_raw',\$content,$c);
lib/RapidApp/Template/Controller.pm:590:    return $self->_detach_response($c,418,$err) if ($err);
lib/RapidApp/Template/Controller.pm:593:  # Encode the template content in UTF-8
lib/RapidApp/Template/Controller.pm:596:  $self->get_Provider->update_template($template,$content);
lib/RapidApp/Template/Controller.pm:598:  return $self->_detach_response($c,200,'Template Updated');
lib/RapidApp/Template/Controller.pm:603:  my $template = $self->_resolve_template_name(@args)
lib/RapidApp/Template/Controller.pm:606:  local $self->{_current_context} = $c;
lib/RapidApp/Template/Controller.pm:608:  $self->Access->template_creatable($template)
lib/RapidApp/Template/Controller.pm:609:    or return $self->_detach_response($c,403,"Create template '$template' - Permission denied");
lib/RapidApp/Template/Controller.pm:611:  die "Create template '$template' - already exists" 
lib/RapidApp/Template/Controller.pm:612:    if $self->_template_exists($c,$template);
lib/RapidApp/Template/Controller.pm:614:  $self->get_Provider->create_template($template)
lib/RapidApp/Template/Controller.pm:617:  return $self->_detach_response($c,200,"Created template '$template'");
lib/RapidApp/Template/Controller.pm:622:  my $template = $self->_resolve_template_name(@args)
lib/RapidApp/Template/Controller.pm:625:  local $self->{_current_context} = $c;
lib/RapidApp/Template/Controller.pm:627:  $self->Access->template_deletable($template)
lib/RapidApp/Template/Controller.pm:628:    or return $self->_detach_response($c,403,"Delete template '$template' - Permission denied");
lib/RapidApp/Template/Controller.pm:630:  die "Delete template '$template' - doesn't exists" 
lib/RapidApp/Template/Controller.pm:631:    unless $self->_template_exists($c,$template);;
lib/RapidApp/Template/Controller.pm:633:  $self->get_Provider->delete_template($template)
lib/RapidApp/Template/Controller.pm:636:  return $self->_detach_response($c,200,"Deleted template '$template'");
lib/RapidApp/Template/Controller.pm:641:  $content_type ||= 'text/plain; charset=utf-8';
lib/RapidApp/Template/Controller.pm:642:  $c->response->content_type($content_type);
lib/RapidApp/Template/Controller.pm:643:  $c->response->status($status);
lib/RapidApp/Template/Controller.pm:644:  $c->response->body($body);
lib/RapidApp/Template/Controller.pm:645:  return $c->detach;
lib/RapidApp/Template/Controller.pm:651:  my $TT = $self->$meth;
lib/RapidApp/Template/Controller.pm:652:  local $self->{_current_context} = $c;
lib/RapidApp/Template/Controller.pm:653:  local $self->{_div_wrap} = 1 if ($meth eq 'Template_wrap');
lib/RapidApp/Template/Controller.pm:654:  my $vars = $self->get_wrapped_tt_vars($template);
lib/RapidApp/Template/Controller.pm:658:  # top-level template which doesn't seem to go through process() in Context:
lib/RapidApp/Template/Controller.pm:659:  $output = $self->Template_raw->context->_template_error_content(
lib/RapidApp/Template/Controller.pm:660:    $template, $TT->error, (
lib/RapidApp/Template/Controller.pm:661:      $self->is_editable_request($c) &&
lib/RapidApp/Template/Controller.pm:662:      $self->Access->template_writable($template)
lib/RapidApp/Template/Controller.pm:664:  ) unless $TT->process( $template, $vars, \$output );
lib/RapidApp/Template/Controller.pm:672:  my $TT = $self->$meth;
lib/RapidApp/Template/Controller.pm:673:  local $self->{_current_context} = $c;
lib/RapidApp/Template/Controller.pm:674:  local $self->{_div_wrap} = 1 if ($meth eq 'Template_wrap');
lib/RapidApp/Template/Controller.pm:675:  my $vars = $self->get_wrapped_tt_vars($template);
lib/RapidApp/Template/Controller.pm:677:  local $self->{_no_exception_error_content} = 1;
lib/RapidApp/Template/Controller.pm:678:  return $TT->process( $template, $vars, \$output ) ? undef : $TT->error;
lib/RapidApp/Template/Controller.pm:681:# Internal render function - designed to be called interactively
lib/RapidApp/Template/Controller.pm:685:# TODO: This function will replace/merge with $c->template_render
lib/RapidApp/Template/Controller.pm:690:  $c ||= RapidApp->active_request_context;
lib/RapidApp/Template/Controller.pm:694:  local $self->{_dummy_access} = 1 unless ($c);
lib/RapidApp/Template/Controller.pm:695:  local $self->{_current_context} = $c || $self->_app;
lib/RapidApp/Template/Controller.pm:701:  %$vars = (%{ $self->get_wrapped_tt_vars($template) }, %$vars) 
lib/RapidApp/Template/Controller.pm:704:  my $TT = $self->Template_raw;
lib/RapidApp/Template/Controller.pm:707:	$TT->process($template,$vars,\$out) or die $TT->error;
lib/RapidApp/Template/Controller.pm:717:  my $vars = $self->Access->get_template_vars($template);
lib/RapidApp/Template/Controller.pm:723:    next unless (ref($vars->{$var}) eq 'CODE');
lib/RapidApp/Template/Controller.pm:724:    my $coderef = delete $vars->{$var};
lib/RapidApp/Template/Controller.pm:725:    $vars->{$var} = sub {
lib/RapidApp/Template/Controller.pm:729:        $ret = $coderef->(@args);
lib/RapidApp/Template/Controller.pm:736:        # instead of re-throwing because TT will display a useless and confusing 
lib/RapidApp/Template/Controller.pm:742:        # actually a *Template* error, per-se ... its an error in the perl code 
lib/RapidApp/Template/Controller/Dispatch.pm:14:#  $c->template_dispatcher->default($c,@path) where @path is a 
lib/RapidApp/Template/Controller/Dispatch.pm:23:  my $cnf = $app_class->config->{'Model::RapidApp'} || {};
lib/RapidApp/Template/Controller/Dispatch.pm:25:  $class->config( 
lib/RapidApp/Template/Controller/Dispatch.pm:26:    root_template        => $cnf->{root_template} || 'rapidapp/default_root_template.html',
lib/RapidApp/Template/Controller/Dispatch.pm:27:    root_template_prefix => $cnf->{root_template_prefix},
lib/RapidApp/Template/Controller/Dispatch.pm:30:  unless ($app_class->application_has_root_controller) {
lib/RapidApp/Template/Controller/Dispatch.pm:31:    $class->config( action => {
lib/RapidApp/Template/Controller/Dispatch.pm:41:  my $cfg = $self->config;
lib/RapidApp/Template/Controller/Dispatch.pm:45:    die "root_template not defined" unless ($cfg->{root_template});
lib/RapidApp/Template/Controller/Dispatch.pm:46:    @args = ($cfg->{root_template});
lib/RapidApp/Template/Controller/Dispatch.pm:49:    my $prefix = $cfg->{root_template_prefix} or die "No root_template_prefix defined";
lib/RapidApp/Template/Controller/Dispatch.pm:50:    @args = ($cfg->{root_template_prefix},@args) unless ($prefix eq '/');
lib/RapidApp/Template/Controller/Dispatch.pm:53:  $c->stash->{editable} = 1; # <-- Enable template editing (if has perms)
lib/RapidApp/Template/Controller/Dispatch.pm:55:  $template =~ s/\/+/\//g; #<-- strip any double //
lib/RapidApp/Template/Controller/Dispatch.pm:56:  return $c->template_controller->view($c, $template);
lib/RapidApp/Template/Provider.pm:42:  return $self->Access if ($self->Access->isa('RapidApp::Template::Store'));
lib/RapidApp/Template/Provider.pm:44:  my $class = $self->store_class || 'RapidApp::Template::Store';
lib/RapidApp/Template/Provider.pm:46:  $class->new({ Provider => $self, %{ $self->store_params||{} } });
lib/RapidApp/Template/Provider.pm:51:  $self->{_store_owns_template}{$name} //= do { # Only ask the Store if it owns a template once
lib/RapidApp/Template/Provider.pm:54:      : $self->Store->owns_tpl($name)
lib/RapidApp/Template/Provider.pm:58:# -------
lib/RapidApp/Template/Provider.pm:65:  return RapidApp::Template::Access::Dummy->new({
lib/RapidApp/Template/Provider.pm:66:    Controller => $self->Controller
lib/RapidApp/Template/Provider.pm:71:  return $self->Controller->{_dummy_access} 
lib/RapidApp/Template/Provider.pm:72:    ? $self->_DummyAccess
lib/RapidApp/Template/Provider.pm:73:    : $self->$orig
lib/RapidApp/Template/Provider.pm:75:# -------
lib/RapidApp/Template/Provider.pm:81:# This only applies to filesystem-based templates and when creatable templates are enabled:
lib/RapidApp/Template/Provider.pm:85:  my $paths = $self->paths or die "paths() didn't return a true value";
lib/RapidApp/Template/Provider.pm:86:  return $paths->[0];
lib/RapidApp/Template/Provider.pm:92:  return $self->$orig($name) if (ref $name eq 'SCALAR');
lib/RapidApp/Template/Provider.pm:94:  $name = $self->Controller->_resolve_template_name($name);
lib/RapidApp/Template/Provider.pm:97:  local $self->{template_fetch_name} = $name;
lib/RapidApp/Template/Provider.pm:98:  return $self->$orig($name);
lib/RapidApp/Template/Provider.pm:105:  return $self->$orig($name) unless ($self->_store_owns_template($name));
lib/RapidApp/Template/Provider.pm:107:  return $self->Store->template_exists($name)
lib/RapidApp/Template/Provider.pm:108:    ? ( $self->Store->template_content($name), Template::Constants::STATUS_OK    )
lib/RapidApp/Template/Provider.pm:115:  my $template = $self->{template_fetch_name} || $name;
lib/RapidApp/Template/Provider.pm:118:  if($self->_store_owns_template($template)) {
lib/RapidApp/Template/Provider.pm:119:    $exists   = $self->Store->template_exists($template);
lib/RapidApp/Template/Provider.pm:120:    $modified = $self->Store->template_mtime($template) if ($exists);
lib/RapidApp/Template/Provider.pm:123:    $modified = $self->$orig($name);
lib/RapidApp/Template/Provider.pm:124:    $exists   = $self->template_exists($template) unless ($self->{template_exists_call});
lib/RapidApp/Template/Provider.pm:128:  # creating non-extistent templates
lib/RapidApp/Template/Provider.pm:131:    ! $self->{template_exists_call} && #<-- localized in template_exists() below
lib/RapidApp/Template/Provider.pm:132:    $self->Access->template_creatable($template)
lib/RapidApp/Template/Provider.pm:142:  my $template = $self->{template_fetch_name} || join('/',@args);
lib/RapidApp/Template/Provider.pm:146:  if ($self->template_exists($template)) {
lib/RapidApp/Template/Provider.pm:147:    return $self->$orig(@args) unless ($self->_store_owns_template($template));
lib/RapidApp/Template/Provider.pm:150:      $self->Store->template_content ($template), undef,
lib/RapidApp/Template/Provider.pm:151:      $self->Store->template_mtime   ($template)
lib/RapidApp/Template/Provider.pm:155:    # Return virtual non-existent content, optionally with markup 
lib/RapidApp/Template/Provider.pm:156:    # to enable on-the-fly creating the template:
lib/RapidApp/Template/Provider.pm:158:      $self->_not_exist_content(
lib/RapidApp/Template/Provider.pm:160:        ($self->div_wrap && $self->Access->template_creatable($template))
lib/RapidApp/Template/Provider.pm:176:    ? 'Template <span class="tpl-name">' . $template . '</span> doesn\'t exist yet' .
lib/RapidApp/Template/Provider.pm:177:        '<div title="Create \'' . $template . '\'" class="create with-icon ra-icon-selection-add">Create Now</div>'
lib/RapidApp/Template/Provider.pm:178:    : 'Template <span class="tpl-name">' . $template . '</span> doesn\'t exist';
lib/RapidApp/Template/Provider.pm:181:    ? '<div class="not-exist creatable">' . $inner . '</div>'
lib/RapidApp/Template/Provider.pm:182:    : '<div class="not-exist">' . $inner . '</div>';
lib/RapidApp/Template/Provider.pm:185:    '<div class="ra-template">',
lib/RapidApp/Template/Provider.pm:188:        #'<div class="template-name">', $template, '</div>',
lib/RapidApp/Template/Provider.pm:191:          format => $self->Access->get_template_format($template)
lib/RapidApp/Template/Provider.pm:201:# ---
lib/RapidApp/Template/Provider.pm:202:# Override to decode everything as UTF-8. If there are templates in some
lib/RapidApp/Template/Provider.pm:204:# the system won't be able to deal with it properly anyway. UTF-8 is 
lib/RapidApp/Template/Provider.pm:205:# currently is assumed across-the-board in RapidApp. 
lib/RapidApp/Template/Provider.pm:212:# ---
lib/RapidApp/Template/Provider.pm:219:# Simple support for writing to filesystem-based templates to match the
lib/RapidApp/Template/Provider.pm:220:# default Template::Provider for reading filesystem-based templates. Note
lib/RapidApp/Template/Provider.pm:226:  return $self->Store->update_template($template,$content)
lib/RapidApp/Template/Provider.pm:227:    if $self->_store_owns_template($template);
lib/RapidApp/Template/Provider.pm:229:  my $path = $self->get_template_path($template);
lib/RapidApp/Template/Provider.pm:232:  die "Bad template path '$File'" unless (-f $File);
lib/RapidApp/Template/Provider.pm:234:  return $File->spew(iomode => '>:raw', $content);
lib/RapidApp/Template/Provider.pm:239:  local $self->{template_exists_call} = 1;
lib/RapidApp/Template/Provider.pm:240:  return $self->_store_owns_template($template)
lib/RapidApp/Template/Provider.pm:241:    ? $self->Store->template_exists($template)
lib/RapidApp/Template/Provider.pm:242:    : $self->get_template_path($template) ? 1 : 0;
lib/RapidApp/Template/Provider.pm:251:    if (File::Spec->file_name_is_absolute($name)) {
lib/RapidApp/Template/Provider.pm:254:            unless $self->{ ABSOLUTE };
lib/RapidApp/Template/Provider.pm:259:            unless $self->{ RELATIVE };
lib/RapidApp/Template/Provider.pm:264:          my $paths = $self->paths()
lib/RapidApp/Template/Provider.pm:265:              || return ($self->error(), Template::Constants::STATUS_ERROR);
lib/RapidApp/Template/Provider.pm:268:              $path = File::Spec->catfile($dir, $name);
lib/RapidApp/Template/Provider.pm:270:                  if $self->_template_modified($path);
lib/RapidApp/Template/Provider.pm:287:  return $self->Store->create_template($template,$content)
lib/RapidApp/Template/Provider.pm:288:    if $self->_store_owns_template($template);
lib/RapidApp/Template/Provider.pm:290:  my $File = file($self->new_template_path,$template);
lib/RapidApp/Template/Provider.pm:291:  die "create_templete(): ERROR - $File already exists!" if (-f $File);
lib/RapidApp/Template/Provider.pm:293:  my $Dir = $File->parent;
lib/RapidApp/Template/Provider.pm:294:  unless (-d $Dir) {
lib/RapidApp/Template/Provider.pm:295:    $Dir->mkpath or die "create_templete(): mkpath failed for '$Dir'";
lib/RapidApp/Template/Provider.pm:298:  $File->spew(iomode => '>:raw', $content);
lib/RapidApp/Template/Provider.pm:300:  return -f $File ? 1 : 0;
lib/RapidApp/Template/Provider.pm:306:  return $self->Store->delete_template($template) if $self->_store_owns_template($template);
lib/RapidApp/Template/Provider.pm:308:  my $File = file($self->get_template_path($template));
lib/RapidApp/Template/Provider.pm:309:  die "delete_templete(): ERROR - $File doesn't exist or is not a regular file" 
lib/RapidApp/Template/Provider.pm:310:    unless (-f $File);
lib/RapidApp/Template/Provider.pm:314:  return -f $File ? 0 : 1;
lib/RapidApp/Template/Provider.pm:324:  my $paths = $self->{INCLUDE_PATH};
lib/RapidApp/Template/Provider.pm:328:  for my $dir (grep { -d $_ } map { dir($_) } @$paths) {
lib/RapidApp/Template/Provider.pm:329:    $dir->recurse(
lib/RapidApp/Template/Provider.pm:334:        return if ($child->is_dir);
lib/RapidApp/Template/Provider.pm:335:        my $tpl = $child->relative($dir)->stringify;
lib/RapidApp/Template/Provider.pm:353:        return if ($seen{$child->absolute->stringify}++);
lib/RapidApp/Template/Provider.pm:364:  } @{ $self->Store->list_templates(@regexes) || [] };
lib/RapidApp/Template/Store.pm:34:  my $str = (shift)->owned_tpl_regex or return undef;
lib/RapidApp/Template/Store.pm:41:  my $re = $self->_owned_tpl_regexp or return 0;
lib/RapidApp/Template/Store/Dummy.pm:36:  return $name eq $self->dummy_template_name
lib/RapidApp/Template/Store/Dummy.pm:41:  $name eq $self->dummy_template_name or die "this should never happen";
lib/RapidApp/Template/Store/Dummy.pm:42:  return undef if ($self->dummy_template_deleted);
lib/RapidApp/Template/Store/Dummy.pm:43:  return $self->dummy_template_mtime;
lib/RapidApp/Template/Store/Dummy.pm:48:  $name eq $self->dummy_template_name or die "this should never happen";
lib/RapidApp/Template/Store/Dummy.pm:49:  return $self->dummy_template_content
lib/RapidApp/Template/Store/Dummy.pm:54:  $name eq $self->dummy_template_name or die "this should never happen";
lib/RapidApp/Template/Store/Dummy.pm:55:  return $self->dummy_template_deleted ? 0 : 1;
lib/RapidApp/Template/Store/Dummy.pm:60:  $name eq $self->dummy_template_name or die "this should never happen";
lib/RapidApp/Template/Store/Dummy.pm:61:  die "Dummy template '$name' already exists\n" unless $self->dummy_template_deleted;
lib/RapidApp/Template/Store/Dummy.pm:62:  $self->dummy_template_content($content);
lib/RapidApp/Template/Store/Dummy.pm:63:  $self->dummy_template_mtime(time);
lib/RapidApp/Template/Store/Dummy.pm:64:  $self->dummy_template_deleted(0);
lib/RapidApp/Template/Store/Dummy.pm:70:  $name eq $self->dummy_template_name or die "this should never happen";
lib/RapidApp/Template/Store/Dummy.pm:71:  die "Dummy template '$name' does not exist\n" if $self->dummy_template_deleted;
lib/RapidApp/Template/Store/Dummy.pm:72:  $self->dummy_template_content($content);
lib/RapidApp/Template/Store/Dummy.pm:73:  $self->dummy_template_mtime(time);
lib/RapidApp/Template/Store/Dummy.pm:79:  $name eq $self->dummy_template_name or die "this should never happen";
lib/RapidApp/Template/Store/Dummy.pm:80:  die "Dummy template '$name' does not exist\n" if $self->dummy_template_deleted;
lib/RapidApp/Template/Store/Dummy.pm:81:  $self->dummy_template_deleted(1);
lib/RapidApp/Template/Store/Dummy.pm:96:  } ( $self->dummy_template_name );
lib/RapidApp/Template/Store/Dummy.pm:125:#    wantarray ? @ret = $self->$orig(@args) : $ret = $self->$orig(@args);
lib/RapidApp/Test.pm:21:  # Since apps might take a while to start-up:
lib/RapidApp/Test.pm:27:  Catalyst::Test->import::into($target,$class,@args);
lib/RapidApp/Test.pm:31:  } Class::MOP::Class->initialize(__PACKAGE__)->get_method_list;
lib/RapidApp/Test.pm:40:    $class->setup_finished || $class->setup,
lib/RapidApp/Test.pm:50:  $target->can($method)->(@_);
lib/RapidApp/Test.pm:55:$Client = RapidApp::Test::Client->new({ request_caller => sub { 
lib/RapidApp/Test.pm:58:    my $res = client->record_response( request($req) ),
lib/RapidApp/Test.pm:59:    client->describe_request
lib/RapidApp/Test.pm:84:    '/any/prefix/path/_ra-rel-mnt_/assets/rapidapp/misc/static/images/rapidapp_powered_logo_tiny.png',
lib/RapidApp/Test.pm:85:    "Fetched RapidApp logo from the Misc asset controller (via _ra-rel-mnt_)"
lib/RapidApp/Test.pm:94:    '/any/prefix/path/_ra-rel-mnt_/assets/rapidapp/misc/static/some/bad/file.txt',
lib/RapidApp/Test.pm:95:    "Invalid asset path not found as expected (via _ra-rel-mnt_)"
lib/RapidApp/Test/Client.pm:20:sub lreq { (shift)->last_request }
lib/RapidApp/Test/Client.pm:21:sub lres { (shift)->last_response }
lib/RapidApp/Test/Client.pm:24:  'X-RapidApp-RequestContentType' => 'JSON',
lib/RapidApp/Test/Client.pm:25:  'X-RapidApp-VERSION'            => $RapidApp::VERSION,
lib/RapidApp/Test/Client.pm:26:  'X-Requested-With'              => 'XMLHttpRequest',
lib/RapidApp/Test/Client.pm:27:  'Content-Type'                  => 'application/x-www-form-urlencoded; charset=UTF-8',
lib/RapidApp/Test/Client.pm:50:  my $ua = LWP::UserAgent->new;
lib/RapidApp/Test/Client.pm:51:	$ua->agent($self->agent_string);
lib/RapidApp/Test/Client.pm:55:    return $ua->request($request);
lib/RapidApp/Test/Client.pm:62:  $self->last_request(undef);
lib/RapidApp/Test/Client.pm:63:  $self->last_response(undef);
lib/RapidApp/Test/Client.pm:64:  $self->last_request_elapsed(undef);
lib/RapidApp/Test/Client.pm:65:  $self->request_num( $self->request_num + 1 );
lib/RapidApp/Test/Client.pm:67:  $self->last_request_started([gettimeofday]);
lib/RapidApp/Test/Client.pm:69:  $req->header( Cookie => $self->cookie ) if ($self->cookie);
lib/RapidApp/Test/Client.pm:71:  my $res = $self->request_caller->( $self->last_request($req) );
lib/RapidApp/Test/Client.pm:74:  $self->record_response( $res ) unless ($self->last_response);
lib/RapidApp/Test/Client.pm:81:  die "last_response already defined" if ($self->last_response);
lib/RapidApp/Test/Client.pm:82:  $self->last_response( $res );
lib/RapidApp/Test/Client.pm:83:  $self->cookie( $res->header('Set-Cookie') );
lib/RapidApp/Test/Client.pm:84:  $self->last_request_elapsed(sprintf("%0.5f sec",tv_interval(
lib/RapidApp/Test/Client.pm:85:    $self->last_request_started
lib/RapidApp/Test/Client.pm:93:  $url = join('',$self->base_url,$url) if (
lib/RapidApp/Test/Client.pm:94:    $self->base_url &&
lib/RapidApp/Test/Client.pm:95:    $url =~ /^\// #<-- starts with '/'
lib/RapidApp/Test/Client.pm:98:  return $self->last_url($url);
lib/RapidApp/Test/Client.pm:104:  $url = $self->normalize_url($url);
lib/RapidApp/Test/Client.pm:106:  $req->header( %$headers ) if ($headers);
lib/RapidApp/Test/Client.pm:107:  $self->make_request($req);
lib/RapidApp/Test/Client.pm:112:  $url = $self->normalize_url($url);
lib/RapidApp/Test/Client.pm:115:  $req->header( %$headers ) if ($headers);
lib/RapidApp/Test/Client.pm:116:  $self->make_request($req);
lib/RapidApp/Test/Client.pm:121:  my $req = $self->last_request or return 0;
lib/RapidApp/Test/Client.pm:122:  my $req_with = $req->header('X-Requested-With');
lib/RapidApp/Test/Client.pm:128:  return '(none)' unless ($self->last_request);
lib/RapidApp/Test/Client.pm:129:  return $self->last_request_is_ajax ? 'Ajax' : 'Browser';
lib/RapidApp/Test/Client.pm:134:  my $res = $self->last_response or return 0;
lib/RapidApp/Test/Client.pm:135:  return $res->header('Set-Cookie');
lib/RapidApp/Test/Client.pm:140:  my $req = $self->last_request or return '(no request)';
lib/RapidApp/Test/Client.pm:143:    ' <r', $self->request_num,'> ',
lib/RapidApp/Test/Client.pm:144:    $self->last_request_type,
lib/RapidApp/Test/Client.pm:145:    '->', $req->method, '(\'',$req->uri->path,'\')',
lib/RapidApp/Test/Client.pm:149:  push @list,('  [',$self->last_request_elapsed,']')
lib/RapidApp/Test/Client.pm:150:    if ($self->last_response);
lib/RapidApp/Test/Client.pm:152:  push @list, ' **set-cookie**' if ($self->last_response_set_cookie);
lib/RapidApp/Test/Client.pm:161:# RapidApp/ExtJS JavaScript client/browser to a JSON-encoded
lib/RapidApp/Test/Client.pm:165:  my $res = $self->post_request($url, $params, $self->ajax_request_headers);
lib/RapidApp/Test/Client.pm:166:  return try{decode_json($res->decoded_content)} || $res->decoded_content;
lib/RapidApp/Test/Client.pm:172:  my $res = $self->get_request($url, $self->ajax_request_headers);
lib/RapidApp/Test/Client.pm:173:  return $res->decoded_content;
lib/RapidApp/Test/Client.pm:179:  my $content = $self->ajax_get_raw($url);
lib/RapidApp/Test/Client.pm:185:  my $res = $self->get_request($url);
lib/RapidApp/Test/Client.pm:186:  return $res->decoded_content;
lib/RapidApp/Test/Client.pm:191:  my $res = $self->post_request($url,$params);
lib/RapidApp/Test/Client.pm:192:  return $res->decoded_content;
lib/RapidApp/Test/EnvUtil.pm:18:  while(-d $dir->parent) {
lib/RapidApp/Test/EnvUtil.pm:19:    if (-d $dir->subdir('testapps')) {
lib/RapidApp/Test/EnvUtil.pm:23:    elsif(-d $dir->subdir('var') && -d $dir->subdir('var')->subdir('testapps')) {
lib/RapidApp/Test/EnvUtil.pm:25:      $dir = $dir->subdir('var');
lib/RapidApp/Test/EnvUtil.pm:31:      $dir = $dir->parent;
lib/RapidApp/Test/EnvUtil.pm:35:  die "Unable to resolve test tmp dir" unless (-d $dir->subdir('testapps'));
lib/RapidApp/Test/EnvUtil.pm:37:  my $tmpdir = $dir->subdir('tmp')->absolute;
lib/RapidApp/Test/EnvUtil.pm:38:  $tmpdir->mkpath unless (-d $tmpdir);
lib/RapidApp/Test/EnvUtil.pm:41:  die "Error resolving/creating test tmp dir '$tmpdir'" unless (-d $tmpdir);
lib/RapidApp/Test/EnvUtil.pm:44:  $ENV{TMPDIR} = $tmpdir->stringify;
lib/RapidApp/Util.pm:80:      ref($_->[0]) eq 'HASH' and 
lib/RapidApp/Util.pm:81:      defined $_->[0]->{package}
lib/RapidApp/Util.pm:91:  $pre = BOLD . ($_->[2]->{subroutine} ? $_->[2]->{subroutine} . '  ' : '') .
lib/RapidApp/Util.pm:92:    '[line ' . $_->[1]->{line} . ']: ' . CLEAR . "\n" unless ($_ eq 'no_caller_data');
lib/RapidApp/Util.pm:121:      $hashref->{$last} = { %{$hashref->{$last}}, %$item };
lib/RapidApp/Util.pm:125:    $hashref->{$item} = {} unless (defined $hashref->{$item});
lib/RapidApp/Util.pm:144:      $hashref->{$last} = { %{$hashref->{$last}}, %$item };
lib/RapidApp/Util.pm:145:      push @list, $last, $hashref->{$last};
lib/RapidApp/Util.pm:148:    $hashref->{$item} = {} unless (defined $hashref->{$item});
lib/RapidApp/Util.pm:149:    push @list,$item,$hashref->{$item} unless (ref $last);
lib/RapidApp/Util.pm:152:  return @list; # <-- preserve order
lib/RapidApp/Util.pm:180:    ($h->{package}, $h->{filename}, $h->{line}, $h->{subroutine}, $h->{hasargs},
lib/RapidApp/Util.pm:181:      $h->{wantarray}, $h->{evaltext}, $h->{is_require}, $h->{hints}, $h->{bitmask}) = caller($i);
lib/RapidApp/Util.pm:182:    push @list,$h if($h->{package});
lib/RapidApp/Util.pm:203:    if($regex and ! eval('$item->{subroutine} =~ /' . $regex . '/')) {
lib/RapidApp/Util.pm:209:    push @new, { map { $_ => $item->{$_} } grep { $inc{$_} } keys %$item };
lib/RapidApp/Util.pm:225:  @{$_[0]} = uniq(@{$_[0]},$_[0]->[0]);
lib/RapidApp/Util.pm:236:  die "deref(): invalid ref type '$type' - supported types: SCALAR, ARRAY and HASH";
lib/RapidApp/Util.pm:245:  my $recurse = (caller(1))[3] eq __PACKAGE__ . '::disp' ? 1 : 0; #<-- true if called by ourself
lib/RapidApp/Util.pm:251:    my $cust = $_{code}->(@_);
lib/RapidApp/Util.pm:261:    return '{ ' . join(',',map { $_ . ' => ' . disp($val->{$_}) } keys %$val) . ' }' if (ref($val) eq 'HASH'); 
lib/RapidApp/Util.pm:262:    return "$val" #<-- generic fall-back for other references
lib/RapidApp/Util.pm:308:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Util.pm:328:    next if ($debug_arounds_set->{$package . '->' . $method}++); #<-- if its already set
lib/RapidApp/Util.pm:334:    if($package->can('around')) {
lib/RapidApp/Util.pm:335:      $package->can('around')->($method => $around);
lib/RapidApp/Util.pm:340:    my $meta = Class::MOP::Class->initialize($package);
lib/RapidApp/Util.pm:341:    $meta->add_around_method_modifier($method => $around)
lib/RapidApp/Util.pm:345:# Returns a coderef - designed to be a Moose around modifier - that will
lib/RapidApp/Util.pm:349:  my %opt = (ref($_[0]) eq 'HASH') ? %{ $_[0] } : @_; # <-- arg as hash or hashref
lib/RapidApp/Util.pm:366:    arg_ignore    => sub { 0 }, # <-- no debug output prited when this returns true
lib/RapidApp/Util.pm:367:    return_ignore  => sub { 0 },# <-- no debug output prited when this returns true
lib/RapidApp/Util.pm:376:    return $self->$orig(@_);
lib/RapidApp/Util.pm:392:    #return RapidApp::JSON::MixedEncoder->new->allow_blessed->convert_blessed->allow_nonref->encode(\@_);
lib/RapidApp/Util.pm:432:        print STDERR '((stack ' . sprintf("%2s",$i--) . ')) ' . sprintf("%7s",'[' . $data->{line} . ']') . ' ' . 
lib/RapidApp/Util.pm:433:          GREEN . $data->{subroutine} . CLEAR . $newline;
lib/RapidApp/Util.pm:443:    print STDERR '[' . $opt{line} . '] ' . CLEAR . $opt{color} . $class . CLEAR . '->' . 
lib/RapidApp/Util.pm:449:        $opt{dump_func}->($opt{verbose_in},\@args) . CLEAR . $newline . ": " 
lib/RapidApp/Util.pm:464:          @res = $opt{around}->($orig,$self,@args);
lib/RapidApp/Util.pm:465:        } catch { $in_func->(); die (shift);};
lib/RapidApp/Util.pm:470:          $res = $opt{around}->($orig,$self,@args);
lib/RapidApp/Util.pm:471:        } catch { $in_func->(); die (shift);};
lib/RapidApp/Util.pm:480:    my $adj_elapsed = $elapsed_raw - $current_nest_elapse;
lib/RapidApp/Util.pm:481:    $debug_around_nest_elapse += $elapsed_raw; #<-- send our elapsed time up the chain
lib/RapidApp/Util.pm:483:    # -- Track stats in global %$RapidApp::Util::debug_around_stats:
lib/RapidApp/Util.pm:486:      my $k = $class . '->' . $name;
lib/RapidApp/Util.pm:487:      $debug_around_stats->{$k} = $debug_around_stats->{$k} || {};
lib/RapidApp/Util.pm:488:      my $stats = $debug_around_stats->{$k};
lib/RapidApp/Util.pm:493:        calls => $stats->{calls} + 1,
lib/RapidApp/Util.pm:494:        real_total => $stats->{real_total} + $elapsed_raw,
lib/RapidApp/Util.pm:495:        total => $stats->{total} + $adj_elapsed,
lib/RapidApp/Util.pm:496:        min => exists $stats->{min} ? $stats->{min} : $adj_elapsed,
lib/RapidApp/Util.pm:497:        max => exists $stats->{max} ? $stats->{max} : $adj_elapsed,
lib/RapidApp/Util.pm:499:      $stats->{avg} = $stats->{total}/$stats->{calls};
lib/RapidApp/Util.pm:500:      $stats->{min} = $adj_elapsed if ($adj_elapsed < $stats->{min});
lib/RapidApp/Util.pm:501:      $stats->{max} = $adj_elapsed if ($adj_elapsed > $stats->{max});
lib/RapidApp/Util.pm:503:    # --
lib/RapidApp/Util.pm:506:    if(!$opt{arg_ignore}->(@args) && !$opt{return_ignore}->(@res_copy)) {
lib/RapidApp/Util.pm:508:      $in_func->();
lib/RapidApp/Util.pm:515:      my $result = $opt{ret_color} . $opt{dump_func}->($opt{verbose_out},@res_copy) . CLEAR;
lib/RapidApp/Util.pm:546:  my $meta = Class::MOP::Class->initialize($pkg);
lib/RapidApp/Util.pm:547:  $meta->add_method($name,$code);
lib/RapidApp/Util.pm:554:  my $meta = Class::MOP::Class->initialize($pkg);
lib/RapidApp/Util.pm:555:  debug_around($_, pkg => $pkg) for ($meta->get_method_list);
lib/RapidApp/Util.pm:561:  return undef unless (-e $file);
lib/RapidApp/Util.pm:564:  ($h->{dev},$h->{ino},$h->{mode},$h->{nlink},$h->{uid},$h->{gid},$h->{rdev},
lib/RapidApp/Util.pm:565:       $h->{size},$h->{atime},$h->{mtime},$h->{ctime},$h->{blksize},$h->{blocks})
lib/RapidApp/Util.pm:582:  return RapidApp::JSON::RawJavascript->new(js=>$_[0]);
lib/RapidApp/Util.pm:592:  blessed $js and not $js->can('TO_JSON_RAW') and 
lib/RapidApp/Util.pm:595:  $js = $js->TO_JSON_RAW if (blessed $js);
lib/RapidApp/Util.pm:606:  return RapidApp::JSON::RawJavascript->new(js=>$js)
lib/RapidApp/Util.pm:616:  return RapidApp::JSON::ScriptWithData->new(@_);
lib/RapidApp/Util.pm:622:  return "$text" if ref($text) && ref($text)->isa('RapidApp::HTML::RawHtml');
lib/RapidApp/Util.pm:631:  return RapidApp::HTML::RawHtml->new($html), @_;
lib/RapidApp/Util.pm:661:  # If the passed arg is already a UserError object, return it as-is:
lib/RapidApp/Util.pm:662:  return $msg if ref($msg) && ref($msg)->isa('RapidApp::Responder::UserError');
lib/RapidApp/Util.pm:664:  $args{userMessage}= ref($msg) && ref($msg)->isa('RapidApp::HTML::RawHtml')? $msg : "$msg";
lib/RapidApp/Util.pm:670:    RapidApp::Responder::UserError->can($key)
lib/RapidApp/Util.pm:682:  return RapidApp::Responder::UserError->new(\%args);
lib/RapidApp/Util.pm:694:  # Die with a custom user-facing message (in plain text), and a title made of html.
lib/RapidApp/Util.pm:708:  $args{userMessage}= ref($msg) && ref($msg)->isa('RapidApp::HTML::RawHtml')? $msg : "$msg";
lib/RapidApp/Util.pm:715:    RapidApp::Error->can($key)
lib/RapidApp/Util.pm:725:  return RapidApp::Error->new(\%args);
lib/RapidApp/Util.pm:751:#  return caller->can('has')->($name,%$conf);
lib/RapidApp/Util.pm:775:#  return caller->can('has')->($name,%$conf);
lib/RapidApp/Util.pm:782:  return RapidApp::Responder::InfoStatus->new(%opt);
lib/RapidApp/Util.pm:786:# -----
lib/RapidApp/Util.pm:789:# after the prompt round-trip. Example usage:
lib/RapidApp/Util.pm:804:  my $c = RapidApp->active_request_context or die join(' ',
lib/RapidApp/Util.pm:809:  $c->is_ra_ajax_req or die die join(' ',
lib/RapidApp/Util.pm:811:    'within the context of a RapidApp-generated Ajax request'
lib/RapidApp/Util.pm:832:  if (my $button = $c->req->header('X-RapidApp-CustomPrompt-Button')){
lib/RapidApp/Util.pm:837:  die RapidApp::Responder::CustomPrompt->new(\%cust_prompt);
lib/RapidApp/Util.pm:839:# -----
lib/RapidApp/Util.pm:853:    ->initialize(__PACKAGE__)
lib/RapidApp/Util.pm:854:    ->get_method_list
lib/RapidApp/Util/MetaKeys.pm:12:use JSON qw( from_json -support_by_pp );
lib/RapidApp/Util/MetaKeys.pm:23:    $data->isa(__PACKAGE__)
lib/RapidApp/Util/MetaKeys.pm:33:    $data = $can_be_file && -f file($data)
lib/RapidApp/Util/MetaKeys.pm:34:      ? $self->data_from_file($data)
lib/RapidApp/Util/MetaKeys.pm:35:      : $self->data_from_string($data)
lib/RapidApp/Util/MetaKeys.pm:38:  $self->new({ data => $data });
lib/RapidApp/Util/MetaKeys.pm:44:  my $File = file(shift)->resolve;
lib/RapidApp/Util/MetaKeys.pm:46:  # Common-sense size check/limit
lib/RapidApp/Util/MetaKeys.pm:47:  die "File '$File' too big - probably not the right file" if ($File->stat->size > 65536);
lib/RapidApp/Util/MetaKeys.pm:49:  $self->data_from_string( scalar $File->slurp )
lib/RapidApp/Util/MetaKeys.pm:59:    # free-form key/value text fallback
lib/RapidApp/Util/MetaKeys.pm:60:    try{ $self->parse_key_vals($string) }
lib/RapidApp/Util/MetaKeys.pm:97:      warn "Bad key/val format - expected exactly one key and one value - got: (".join('|',@parts);
lib/RapidApp/Util/MetaKeys.pm:116:  for my $FK (@{ $self->data }) {
lib/RapidApp/Util/MetaKeys.pm:118:      ->{ $FK->schema || '' }
lib/RapidApp/Util/MetaKeys.pm:119:      ->{ $FK->table }
lib/RapidApp/Util/MetaKeys.pm:131:  $self->_table_ndx->{$schema}{$table} || undef
lib/RapidApp/Util/MetaKeys.pm:149:              "Bad fk definition - must be ArrayRef with 2 elements:",
lib/RapidApp/Util/MetaKeys.pm:153:            $itm = RapidApp::Util::MetaKeys::FK->new({
lib/RapidApp/Util/MetaKeys.pm:154:              lhs => &_coerce_element($_->[0]), 
lib/RapidApp/Util/MetaKeys.pm:155:              rhs => &_coerce_element($_->[1])
lib/RapidApp/Util/MetaKeys.pm:159:            $itm = RapidApp::Util::MetaKeys::FK->new($itm)
lib/RapidApp/Util/MetaKeys.pm:186:    $new->{column} = pop(@parts) or die "Failed to parse/coerce element '$el'";
lib/RapidApp/Util/MetaKeys.pm:187:    $new->{table}  = pop(@parts) or die "Failed to parse/coerce element '$el'";
lib/RapidApp/Util/MetaKeys.pm:188:    $new->{schema} = $parts[0] if (scalar(@parts) > 0);
lib/RapidApp/Util/MetaKeys.pm:193:  die "Bad element - must be a dot(.) delimited string or a HashRef" unless (ref($el) eq 'HASH');
lib/RapidApp/Util/MetaKeys.pm:195:  $el->{column} or die "Bad element - 'column' key missing: " . Dumper($el);
lib/RapidApp/Util/MetaKeys.pm:196:  $el->{table}  or die "Bad element - 'table' key missing: "  . Dumper($el);
lib/RapidApp/Util/MetaKeys.pm:209:RapidApp::Util::MetaKeys - External FK declarations (EXPERIMENTAL)
lib/RapidApp/Util/MetaKeys/FK.pm:11:sub local_column { (shift)->column(@_) }
lib/RapidApp/Util/MetaKeys/FK.pm:12:sub local_table  { (shift)->table(@_)  }
lib/RapidApp/Util/MetaKeys/FK.pm:13:sub local_schema { (shift)->schema(@_) }
lib/RapidApp/Util/MetaKeys/FK.pm:23:    return $class->$orig({ map {
lib/RapidApp/Util/MetaKeys/FK.pm:25:      ( $_ => $args->{$_} )
lib/RapidApp/Util/MetaKeys/FK.pm:29:    return $class->$orig(@_)
lib/RapidApp/Util/MetaKeys/FK.pm:39:  my $lhs = $self->lhs or die "Either 'column' or 'lhs' must be supplied";
lib/RapidApp/Util/MetaKeys/FK.pm:40:  $lhs->{column}
lib/RapidApp/Util/MetaKeys/FK.pm:45:  my $lhs = $self->lhs or die "Either 'table' or 'lhs' must be supplied";
lib/RapidApp/Util/MetaKeys/FK.pm:46:  $lhs->{table}
lib/RapidApp/Util/MetaKeys/FK.pm:51:  my $lhs = $self->lhs or return undef;
lib/RapidApp/Util/MetaKeys/FK.pm:52:  $lhs->{schema}
lib/RapidApp/Util/MetaKeys/FK.pm:60:  my $rhs = $self->rhs or die "Either 'remote_column' or 'rhs' must be supplied";
lib/RapidApp/Util/MetaKeys/FK.pm:61:  $rhs->{column}
lib/RapidApp/Util/MetaKeys/FK.pm:66:  my $rhs = $self->rhs or die "Either 'remote_table' or 'rhs' must be supplied";
lib/RapidApp/Util/MetaKeys/FK.pm:67:  $rhs->{table}
lib/RapidApp/Util/MetaKeys/FK.pm:72:  my $rhs = $self->rhs or return undef;
lib/RapidApp/Util/MetaKeys/FK.pm:73:  $rhs->{schema}
lib/RapidApp/Util/MetaKeys/FK.pm:85:RapidApp::Util::MetaKeys::FK - External FK declarations, fk obj (EXPERIMENTAL)
lib/RapidApp/Util/MetaKeys/Loader.pm:22:  # -- NEW: Experimental limit/exclude opts (Added for GitHub Issue #152):
lib/RapidApp/Util/MetaKeys/Loader.pm:30:  # --
lib/RapidApp/Util/MetaKeys/Loader.pm:32:  my $self = $class->next::method(%args);
lib/RapidApp/Util/MetaKeys/Loader.pm:34:  $self->MetaKeys( $metakeys_data );
lib/RapidApp/Util/MetaKeys/Loader.pm:35:  $self->limExcl( $limExcl );
lib/RapidApp/Util/MetaKeys/Loader.pm:38:  my $driver = $self->dbh->{Driver}->{Name};
lib/RapidApp/Util/MetaKeys/Loader.pm:40:  # New: detect the MSSQL/ODBC case - TODO: generalize this properly
lib/RapidApp/Util/MetaKeys/Loader.pm:42:    my $dbms_name = $self->dbh->get_info($GetInfoType{SQL_DBMS_NAME});
lib/RapidApp/Util/MetaKeys/Loader.pm:50:  unless($self->isa($subclass)) {
lib/RapidApp/Util/MetaKeys/Loader.pm:55:    $newclass->load_components('+'.$class);
lib/RapidApp/Util/MetaKeys/Loader.pm:58:    $self->_rebless;
lib/RapidApp/Util/MetaKeys/Loader.pm:62:  $self->_setup;
lib/RapidApp/Util/MetaKeys/Loader.pm:70:  $self->{_MetaKeys} = RapidApp::Util::MetaKeys->load( $new ) if ($new);
lib/RapidApp/Util/MetaKeys/Loader.pm:71:  $self->{_MetaKeys} //= undef
lib/RapidApp/Util/MetaKeys/Loader.pm:76:  $self->{_limExcl} = $new if ($new);
lib/RapidApp/Util/MetaKeys/Loader.pm:77:  $self->{_limExcl} //= {}
lib/RapidApp/Util/MetaKeys/Loader.pm:83:  my $fks = $self->next::method($table);
lib/RapidApp/Util/MetaKeys/Loader.pm:85:  if(my $MetaKeys = $self->MetaKeys) {
lib/RapidApp/Util/MetaKeys/Loader.pm:86:    if(my $FKs = $MetaKeys->table_fks($table->name)) {
lib/RapidApp/Util/MetaKeys/Loader.pm:92:        ->{join('|',@{$_->{local_columns}})}
lib/RapidApp/Util/MetaKeys/Loader.pm:93:        ->{$_->{remote_table}->name}
lib/RapidApp/Util/MetaKeys/Loader.pm:94:        ->{join('|',@{$_->{remote_columns}})}++
lib/RapidApp/Util/MetaKeys/Loader.pm:98:        map  { $self->_fk_cnf_for_metakey($table,$_) }
lib/RapidApp/Util/MetaKeys/Loader.pm:101:            ->{ $_->local_column  }
lib/RapidApp/Util/MetaKeys/Loader.pm:102:            ->{ $_->remote_table  }
lib/RapidApp/Util/MetaKeys/Loader.pm:103:            ->{ $_->remote_column }
lib/RapidApp/Util/MetaKeys/Loader.pm:117:  my $schema = $MetaFK->remote_schema || $MetaFK->local_schema || $table->schema;
lib/RapidApp/Util/MetaKeys/Loader.pm:125:    local_columns  => [ $MetaFK->local_column ],
lib/RapidApp/Util/MetaKeys/Loader.pm:126:    remote_columns => [ $MetaFK->remote_column ],
lib/RapidApp/Util/MetaKeys/Loader.pm:127:    remote_table => DBIx::Class::Schema::Loader::Table->new(
lib/RapidApp/Util/MetaKeys/Loader.pm:130:      name   => $MetaFK->remote_table,
lib/RapidApp/Util/MetaKeys/Loader.pm:141:    if(my $schema = $Tbl->schema) {
lib/RapidApp/Util/MetaKeys/Loader.pm:143:        $self->limExcl->{'limit_schemas_re'}
lib/RapidApp/Util/MetaKeys/Loader.pm:144:        && ! ($schema =~ $self->limExcl->{'limit_schemas_re'})
lib/RapidApp/Util/MetaKeys/Loader.pm:147:        $self->limExcl->{'exclude_schemas_re'}
lib/RapidApp/Util/MetaKeys/Loader.pm:148:        && ($schema =~ $self->limExcl->{'exclude_schemas_re'})
lib/RapidApp/Util/MetaKeys/Loader.pm:151:    if(my $table = $Tbl->name) {
lib/RapidApp/Util/MetaKeys/Loader.pm:153:        $self->limExcl->{'limit_tables_re'}
lib/RapidApp/Util/MetaKeys/Loader.pm:154:        && ! ($table =~ $self->limExcl->{'limit_tables_re'})
lib/RapidApp/Util/MetaKeys/Loader.pm:157:        $self->limExcl->{'exclude_tables_re'}
lib/RapidApp/Util/MetaKeys/Loader.pm:158:        && ($table =~ $self->limExcl->{'exclude_tables_re'})
lib/RapidApp/Util/MetaKeys/Loader.pm:164:  grep { $incl->($_) } $self->next::method(@args)
lib/RapidApp/Util/MetaKeys/Loader.pm:175:RapidApp::Util::MetaKeys::Loader - DBIC::S::L-compatable loader_class
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:22:  $self->_process_TableSpecs; # init early
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:28:  my $next = file( $self->pm_file )->resolve->absolute->parent;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:30:  until ($next->basename eq 'lib') {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:31:    $next = $next->parent or return undef;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:43:  PPI::Document->new( file( $self->pm_file )->resolve->stringify )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:51:    my $name = $Source->source_name;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:52:    my @pks = $Source->primary_columns;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:57:      $Source->has_column('title') ? 'title' :
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:58:      $Source->has_column('name')  ? 'name'  :
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:67:      [ iconCls      => 'ra-icon-pg',       ],
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:68:      [ multiIconCls => 'ra-icon-pg-multi'  ],
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:87:    if($Source->has_relationship($col)) {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:88:      my $info = $Source->relationship_info($col) || {};
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:89:      $is_virt = 1 if (($info->{attrs}{accessor}||'') eq 'multi');
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:91:    elsif($Source->has_column($col)) {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:92:      my $info = $Source->column_info($col) || {};
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:93:      if($info->{is_auto_increment}) {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:94:        # Assume we should turn off allow_add if this is an auto-inc column
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:98:      # ---
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:102:      if($info->{is_foreign_key}) {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:104:          $_->[0] eq $col || 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:105:          $_->[0] =~ /^self\.${col}$/ ||
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:106:          $_->[1] =~ /^self\.${col}$/
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:109:          map { [ %{ $_->{cond} || {} } ] } 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:110:          grep { ($_->{attrs}{accessor}||'') eq 'single' }
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:111:          map { $Source->relationship_info($_) } 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:112:          $Source->relationships
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:114:      # ---
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:140:  my $m = $self->ppi_document->find( sub {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:141:    $_[1]->isa('PPI::Statement') or return undef;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:143:    my @c = $_[1]->children;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:144:    $c[2] && $c[2]->content eq 'config' && 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:145:    $c[0]->content eq '__PACKAGE__' && 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:146:    $c[1]->content eq '->' ? 1 : undef
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:149:  scalar(@$m) == 0 and die '__PACKAGE__->config statement not found';
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:150:  scalar(@$m) > 1  and die 'Multiple __PACKAGE__->config statements found';
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:152:  my $stmt = $m->[0]
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:153:    ->child(3)
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:154:    ->find_first('PPI::Statement::Expression');
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:156:  # -- Make sure there is a trailing comma (,) ... this will keep perltidy from
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:158:  my $Last = (reverse $stmt->children)[0];
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:159:  unless($Last->isa('PPI::Token::Operator') && $Last->content eq ',') {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:160:    $Last->insert_after(PPI::Token::Operator->new(','));
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:162:  # --
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:172:  my $tok = $self->_first_kval(
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:173:    $self->config_stmt,
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:177:  my $class = $tok->content;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:181:  $self->_update_incs;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:191:  [ sort $self->schema_class->sources ]
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:196:  $self->_first_kval(
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:197:    $self->config_stmt,
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:205:  $self->_first_stmt( $self->rapiddbic_struct )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:210:  $self->_first_stmt( $self->_first_kval($self->rapiddbic_stmt,'grid_params') )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:216:  my $struct = $self->_first_kval(
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:217:    $self->rapiddbic_stmt,
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:221:  $self->_find_or_make_inner_stmt( $struct )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:227:  $self->_first_stmt( $self->_first_kval($self->rapiddbic_stmt,'virtual_columns') )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:232:  my $Stmt = $self->virtual_columns_stmt or return {};
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:233:  return try{ eval(join('','{',$Stmt->content,'}')) } || {};
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:240:  my $Stmt = $self->TableSpecs_stmt;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:242:  for my $source (@{$self->source_names}) {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:243:    my $Source = $self->schema_class->source($source);
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:245:    my $SnStmt = $self->_find_or_make_inner_stmt( 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:246:      $self->_find_or_make_kval( $Stmt, $source )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:249:    my $defs = $self->get_default_source_entries->($Source);
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:250:    $self->_find_or_add_entry( $SnStmt, @$_ ) for @$defs;    
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:252:    my $colsStmt = $self->_find_or_make_inner_stmt(
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:253:      $self->_find_or_make_kval( $SnStmt, 'columns' )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:256:    my @cols = $Source->columns;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:257:    push @cols, sort $Source->relationships;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:259:    if(my $vcols = $self->virtual_columns_hash->{$source}) {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:264:      my $cStmt = $self->_find_or_make_inner_stmt( 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:265:        $self->_find_or_make_kval( $colsStmt, $col )
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:268:      my $defs = $self->get_default_column_entries->($Source,$col);
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:269:      $self->_find_or_add_entry( $cStmt, @$_ ) for @$defs;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:271:      # ------
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:276:      my $Last = $cStmt->last_element;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:277:      if ($Last->isa('PPI::Token::Whitespace') && $Last->content eq "\n") {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:278:        if(my $Parent = $cStmt->parent) {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:279:          my $pLast = (reverse $Parent->children)[0];
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:280:          $pLast = $pLast->previous_sibling if (
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:281:            $pLast->isa('PPI::Token::Whitespace') && !($pLast->content =~ /\n/)
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:283:          $Last->delete if ( 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:284:            ($pLast->isa('PPI::Token::Whitespace') || $pLast->isa('PPI::Token::Comment')) 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:285:            && $pLast->content =~ /\n$/
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:289:      # ------
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:294:has 'perltidy_argv', is => 'ro', isa => Str, default => sub { '-i=2 -l=100 -nbbc' };
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:299:  $self->use_perltidy    
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:301:      source      => \$self->ppi_document->serialize,
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:303:      argv        => $self->perltidy_argv
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:305:    : $self->ppi_document->save($path);
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:314:  my $Stmt = $self->_first_stmt( $Node );
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:317:  scalar($Node->schildren) == 0 or die "unexepted inner value";
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:319:  $Stmt = PPI::Statement::Expression->new;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:320:  $Node->add_element( $Stmt );
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:329:  my $Tok = $self->_first_kword($Node, $key);  
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:330:  return $self->_first_kval($Node,$Tok) if ($Tok);
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:346:  my @els = $self->_els_for_next_kv(
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:348:    $self->_create_kword_tok($key),
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:352:  $self->_push_children( $Node, @els );
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:361:    ? PPI::Token::Word->new($key)
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:372:  @{ PPI::Tokenizer->new( \$value )->all_tokens }
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:379:  my $El = $self->_first_kword($Node,$key) 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:380:    || $self->_first_cmt_kword($Node,$key)
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:381:    # needed when comments are the first lines within the {} block -- these will
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:383:    || $self->_first_cmt_kword($Node->parent,$key); 
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:387:  my @els = $self->_els_for_next_kv(
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:389:    $self->_create_kword_tok($key),
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:390:    $self->_create_value_tok($val)
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:395:    $Op = shift @els if($els[0]->isa('PPI::Token::Operator'));
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:396:    my $Last = $Node->last_element;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:397:    my $cmt_start = $Last && $Last->content =~ /\n/ ? "  #" : "\n  #";
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:399:    my $str = join('',$cmt_start,(map { $_->content } @els) );
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:401:      PPI::Token::Comment->new($str),
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:402:      PPI::Token::Whitespace->new("\n")
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:407:  $self->_push_children( $Node, @els );
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:415:  my @schld = $Node->schildren;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:418:    unless($Last->content eq ',') {
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:419:      push @els, PPI::Token::Operator->new(',');
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:425:    PPI::Token::Whitespace->new(' '),
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:426:    PPI::Token::Operator->new('=>'),
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:427:    PPI::Token::Whitespace->new(' '),
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:429:    PPI::Token::Operator->new(',')
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:438:  $Node->add_element($_) for @els
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:447:    $_->content eq $key ||
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:448:    $_->content =~ /^('|"){1}${key}('|"){1}$/
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:449:  } grep { $_->isa('PPI::Token') } $Node->children
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:458:    $_->content =~ /^\s*\#+\s*('|")??${key}('|")??\s+/
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:459:  } grep { $_->isa('PPI::Token::Comment') } $Node->children;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:466:  my $kWord = blessed($key) ? $key : $self->_first_kword($Node, $key) or return undef;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:468:  my $Op = $kWord->snext_sibling;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:469:  $Op && $Op->content eq '=>' or return undef;
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:471:  $Op->snext_sibling
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:477:  List::Util::first { $_->isa('PPI::Statement') } $El->children
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:489:RapidApp::Util::RapidDbic::CfgWriter - Updates RapidDbic model configs using PPI
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:495: my $CfgW = RapidApp::Util::RapidDbic::CfgWriter->new({ pm_file => "$pm_path" });
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:496: $CfgW->save_to( "$pm_path" );
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:500:This module non-destructively updates the C<TableSpecs> configs of RapidDbic-based
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:504:bootstrapped. It is designed to NOT clobber user-supplied configs by only adding
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:522:When true (default) the file is post-processed by L<Perl::Tidy>.
lib/RapidApp/Util/RapidDbic/CfgWriter.pm:526:The options supplied to C<perltidy> - defaults to C<'-i=2 -l=100 -nbbc'>
lib/RapidApp/Util/Rau.pm:17:# 'modal-update' becomes 'RapidApp::Util::Rau::ModalUpdate'
lib/RapidApp/Util/Rau.pm:24:  $name =~ s/_/-/g;
lib/RapidApp/Util/Rau.pm:25:  my $subclass = join('',map { ucfirst(lc($_)) } split(/-/,$name)); 
lib/RapidApp/Util/Rau.pm:41:  return $class->usage if ($ARGV[0] && $ARGV[0] eq '--help');
lib/RapidApp/Util/Rau.pm:42:  $class->call(@ARGV)
lib/RapidApp/Util/Rau.pm:52:    $class ? (-input => pod_where({-inc => 1}, $class)) : (),
lib/RapidApp/Util/Rau.pm:53:    -verbose  => 99,
lib/RapidApp/Util/Rau.pm:54:    -sections => 'NAME|SYNOPSIS|DESCRIPTION'
lib/RapidApp/Util/Rau.pm:67:RapidApp::Util::Rau - Base class for rau.pl modules
lib/RapidApp/Util/Rau/ModelUpdate.pm:19:  $class->usage unless ($path);
lib/RapidApp/Util/Rau/ModelUpdate.pm:20:  file($path)->resolve;
lib/RapidApp/Util/Rau/ModelUpdate.pm:24:  my $CfgW = RapidApp::Util::RapidDbic::CfgWriter->new({ pm_file => "$path" })
lib/RapidApp/Util/Rau/ModelUpdate.pm:27:  $CfgW->save_to( "$path" ) or die "Error saving file";
lib/RapidApp/Util/Rau/ModelUpdate.pm:41:RapidApp::Util::Rau::ModelUpdate - TableSpecs config updater script
lib/RapidApp/Util/Rau/ModelUpdate.pm:45: rau.pl model-update [MODAL_PATH]
lib/RapidApp/Util/Rau/ModelUpdate.pm:48:   rau.pl model-update MyApp/lib/Modal/DB.pm
lib/RapidApp/Util/Rau/ModelUpdate.pm:52:This module exposes L<RapidApp::Util::RapidDbic::CfgWriter> on the command-line. Expects
lib/RapidApp/Util/Rau/ModelUpdate.pm:53:a path to a RapidDbic-based model (pm file) and will perform an in-place update of its
lib/RapidApp/Util/Role/ModelDBIC.pm:6:# Optional Moo::Role designed to work with Moo-extended Catalyst::Model::DBIC::Schema
lib/RapidApp/Util/Role/ModelDBIC.pm:22:  my $schema_class = $self->config->{schema_class};
lib/RapidApp/Util/Role/ModelDBIC.pm:25:  $schema_class->connect( $self->config->{connect_info} )
lib/RapidApp/Util/Role/ModelDBIC.pm:34:  my $schema_class = $self->config->{schema_class};
lib/RapidApp/Util/Role/ModelDBIC.pm:35:  my $ref_class = join('_',$schema_class,'RefSchema',String::Random->new->randregex('[a-z0-9A-Z]{5}'));
lib/RapidApp/Util/Role/ModelDBIC.pm:43:    }, $self->_connect_info_as_arrayref
lib/RapidApp/Util/Role/ModelDBIC.pm:46:  DBIx::Class::Schema::Diff->new(
lib/RapidApp/Util/Role/ModelDBIC.pm:56:    $self->config->{connect_info}{dsn},
lib/RapidApp/Util/Role/ModelDBIC.pm:57:    ($self->config->{connect_info}{user}||''),
lib/RapidApp/Util/Role/ModelDBIC.pm:58:    ($self->config->{connect_info}{password}||''),
lib/RapidApp/Util/Role/ModelDBIC.pm:59:    $self->config->{connect_info}
lib/RapidApp/Util/Role/ModelDBIC.pm:64:after 'BUILD' => sub { (shift)->_create_origin_model_closure };
lib/RapidApp/Util/Role/ModelDBIC.pm:69:  my $schema_class = (ref $self->schema) or return undef;
lib/RapidApp/Util/Role/ModelDBIC.pm:73:  $self->schema->{$accessor} ||= $self;
lib/RapidApp/Util/Role/ModelDBIC.pm:75:  unless($schema_class->can($accessor)) {
lib/RapidApp/Util/Role/ModelDBIC.pm:77:    eval '*'.$func. ' = sub { (shift)->{'.$accessor.'} }';
lib/RapidApp/View/JSON.pm:19:client-side javascript.
lib/RapidApp/View/JSON.pm:32:has 'encoding' => ( is => 'rw', isa => 'Str', default => 'utf-8' );
lib/RapidApp/View/JSON.pm:36:	return RapidApp::JSON::MixedEncoder->new
lib/RapidApp/View/JSON.pm:44:	if (my $err = $c->stash->{exception}) {
lib/RapidApp/View/JSON.pm:45:		$c->log->debug("RapidApp::View::JSON exception: $err") if ($c->debug);
lib/RapidApp/View/JSON.pm:47:		$c->res->header('X-RapidApp-Exception' => 1);
lib/RapidApp/View/JSON.pm:48:		$c->res->status(500);
lib/RapidApp/View/JSON.pm:50:		my $msg= $self->getUserMessage($err) || "An internal error occured:  \n\n" . $err;
lib/RapidApp/View/JSON.pm:51:		my $title= $self->getUserMessageTitle($err) || 'Error';
lib/RapidApp/View/JSON.pm:63:		$json= $c->stash->{json} || $c->stash->{jsonData} || $c->stash->{controllerResult}
lib/RapidApp/View/JSON.pm:67:	$self->setJsonBody($c, $json);
lib/RapidApp/View/JSON.pm:70:# Either set the body to a json packet (for normal ajax requests) or html-encoded json
lib/RapidApp/View/JSON.pm:71:#   for file-upload forms.
lib/RapidApp/View/JSON.pm:75:	my $encoding= $c->stash->{encoding} || $self->encoding;
lib/RapidApp/View/JSON.pm:76:	my $rct= $c->stash->{requestContentType};
lib/RapidApp/View/JSON.pm:78:	(!ref $json) or $json= $self->encoder->encode($json);
lib/RapidApp/View/JSON.pm:80:	$c->res->header('Cache-Control' => 'no-cache');
lib/RapidApp/View/JSON.pm:82:	if ($rct eq 'text/x-rapidapp-form-response') {
lib/RapidApp/View/JSON.pm:83:		my $hdr= $c->res->headers;
lib/RapidApp/View/JSON.pm:84:		my %headers= map { $_ => $hdr->header($_) } $hdr->header_field_names;
lib/RapidApp/View/JSON.pm:85:		my $headerJson= $self->encoder->encode(\%headers);
lib/RapidApp/View/JSON.pm:87:		$c->res->content_type("text/html; charset=$encoding");
lib/RapidApp/View/JSON.pm:88:		$c->res->body(
lib/RapidApp/View/JSON.pm:96:		$c->res->content_type("text/javascript; charset=$encoding");
lib/RapidApp/View/JSON.pm:97:		$c->res->body($json);
lib/RapidApp/View/JSON.pm:104:	my $method= $err->can('userMessage') || return undef;
lib/RapidApp/View/JSON.pm:105:	my $str= ashtml $err->$method();
lib/RapidApp/View/JSON.pm:113:	my $method= $err->can('userMessageTitle') || return undef;
lib/RapidApp/View/JSON.pm:114:	my $str= ashtml $err->$method();
lib/RapidApp/View/Printview.pm:8:__PACKAGE__->config(TEMPLATE_EXTENSION => '.tt');
lib/RapidApp/View/Printview.pm:13:	$c->response->header('Cache-Control' => 'no-cache');
lib/RapidApp/View/Printview.pm:14:	$c->stash->{template} = 'templates/rapidapp/ext_printview.tt';
lib/RapidApp/View/Printview.pm:17:	if (ref $c->stash->{config_params}) {
lib/RapidApp/View/Printview.pm:18:		$c->stash->{config_params}= RapidApp::JSON::MixedEncoder::encode_json($c->stash->{config_params});
lib/RapidApp/View/Printview.pm:21:	return $self->SUPER::process($c);
lib/RapidApp/View/Template.pm:13:  my $template = $c->stash->{template} or die "No template specified";
lib/RapidApp/View/Template.pm:14:  $c->stash->{is_external_template}{$template} = 1 unless ($c->is_ra_ajax_req);
lib/RapidApp/View/Template.pm:15:  $c->template_controller->view($c,$template);
lib/RapidApp/View/Template.pm:26:RapidApp::View::Template - Thin wrapper to dispatch to Template::Controller
lib/RapidApp/View/Viewport.pm:10:__PACKAGE__->config(TEMPLATE_EXTENSION => '.tt');
lib/RapidApp/View/Viewport.pm:15:  $c->response->header('Cache-Control' => 'no-cache');
lib/RapidApp/View/Viewport.pm:16:  $c->stash->{template} = 'templates/rapidapp/ext_viewport.tt';
lib/RapidApp/View/Viewport.pm:20:  push @img, $self->_get_asset_controller_urls(
lib/RapidApp/View/Viewport.pm:21:     $c->controller('Assets::ExtJS'), (qw(
lib/RapidApp/View/Viewport.pm:22:      resources/images/gray/qtip/tip-sprite.gif
lib/RapidApp/View/Viewport.pm:23:      resources/images/gray/qtip/tip-anchor-sprite.gif
lib/RapidApp/View/Viewport.pm:24:      resources/images/gray/tabs/tab-strip-bg.gif
lib/RapidApp/View/Viewport.pm:25:      resources/images/gray/tabs/tab-close.gif
lib/RapidApp/View/Viewport.pm:26:      resources/images/gray/tabs/tabs-sprite.gif
lib/RapidApp/View/Viewport.pm:27:      resources/images/gray/panel/white-top-bottom.gif
lib/RapidApp/View/Viewport.pm:28:      resources/images/gray/panel/tool-sprites.gif
lib/RapidApp/View/Viewport.pm:31:      resources/images/gray/window/left-corners.png
lib/RapidApp/View/Viewport.pm:32:      resources/images/gray/window/right-corners.png
lib/RapidApp/View/Viewport.pm:33:      resources/images/gray/window/top-bottom.png
lib/RapidApp/View/Viewport.pm:34:      resources/images/gray/window/left-right.png
lib/RapidApp/View/Viewport.pm:37:      resources/images/gray/progress/progress-bg.gif
lib/RapidApp/View/Viewport.pm:38:      resources/images/gray/window/icon-warning.gif
lib/RapidApp/View/Viewport.pm:40:      resources/images/default/shadow-lr.png
lib/RapidApp/View/Viewport.pm:41:      resources/images/default/shadow-c.png
lib/RapidApp/View/Viewport.pm:42:      resources/images/gray/panel/corners-sprite.gif
lib/RapidApp/View/Viewport.pm:43:      resources/images/gray/panel/top-bottom.gif
lib/RapidApp/View/Viewport.pm:44:      resources/images/gray/panel/left-right.gif
lib/RapidApp/View/Viewport.pm:48:  push @img, $self->_get_asset_controller_urls(
lib/RapidApp/View/Viewport.pm:49:     $c->controller('Assets::RapidApp::Icons'), (qw(
lib/RapidApp/View/Viewport.pm:57:  push @img, $self->_get_asset_controller_urls(
lib/RapidApp/View/Viewport.pm:58:     $c->controller('Assets::RapidApp::Misc'), (qw(
lib/RapidApp/View/Viewport.pm:64:  my $pfx = $c->mount_url || '';
lib/RapidApp/View/Viewport.pm:65:  push @{$c->stash->{precache_imgs}}, map { "$pfx$_" } (qw(
lib/RapidApp/View/Viewport.pm:66:    /assets/rapidapp/misc/static/icon-error.gif
lib/RapidApp/View/Viewport.pm:71:  $c->stash->{precache_imgs} ||= [];
lib/RapidApp/View/Viewport.pm:72:  @{$c->stash->{precache_imgs}} = uniq(@{$c->stash->{precache_imgs}},@img);
lib/RapidApp/View/Viewport.pm:75:    if($c->stash->{config_url} && $c->stash->{panel_cfg});
lib/RapidApp/View/Viewport.pm:78:  if (ref $c->stash->{config_params}) {
lib/RapidApp/View/Viewport.pm:79:    $c->stash->{config_params}= RapidApp::JSON::MixedEncoder::encode_json($c->stash->{config_params});
lib/RapidApp/View/Viewport.pm:82:  if (ref $c->stash->{panel_cfg}) {
lib/RapidApp/View/Viewport.pm:83:    $c->stash->{panel_cfg}= RapidApp::JSON::MixedEncoder::encode_json($c->stash->{panel_cfg});
lib/RapidApp/View/Viewport.pm:86:  return $self->next::method($c);
lib/RapidApp/View/Viewport.pm:93:  return map { $controller->asset_path($_) } @paths;
lib/RapidApp/View/Viewport.pm:104:RapidApp::View::Viewport - Render a Module within an ExtJS Viewport
lib/RapidApp/View/Viewport.pm:108:This is the main View for rendering a top-level RapidApp Module within the browser. This
script/rapidapp.pl:20:# -- no longer accept those options from the command line
script/rapidapp.pl:36:die "rapidapp.pl: Missing application-name!\n" if ($name =~ /^\-\-/);
script/rapidapp.pl:48:# --
script/rapidapp.pl:49:# Special default --dir for rapi/psgi
script/rapidapp.pl:52:# common-sense default for this scenario. See the rapi/psgi docs for more info
script/rapidapp.pl:54:# --
script/rapidapp.pl:56:my $helper = RapidApp::Helper->new_with_traits({
script/rapidapp.pl:67:pod2usage(1) unless $helper->mk_app( $name );
script/rapidapp.pl:75:rapidapp.pl - Bootstrap a RapidApp/Catalyst application
script/rapidapp.pl:79: rapidapp.pl [options] application-name [--] [extra options]
script/rapidapp.pl:84:  --help      display this help and exit
script/rapidapp.pl:85:  --dir       optional custom target directory (must be empty or not exist)
script/rapidapp.pl:86:  --helpers   comma-separated list of helper traits (RapidApp::Helper::Traits::*)
script/rapidapp.pl:89:    When supplying --helpers, extra args can be supplied following -- after the
script/rapidapp.pl:90:    application-name. These additional arguments will be processed by helpers
script/rapidapp.pl:93: application-name must be a valid Perl module name and can include "::", 
script/rapidapp.pl:94: which will be converted to '-' in the project name.
script/rapidapp.pl:100:   rapidapp.pl --helpers Templates,TabGui,AuthCore,NavCore MyApp
script/rapidapp.pl:101:   rapidapp.pl --helpers RapidDbic MyApp -- --dsn dbi:mysql:database=somedb,root,''
script/rapidapp.pl:102:   rapidapp.pl --helpers RapidDbic MyApp -- --from-sqlite /path/to/existing/sqlt.db
script/rapidapp.pl:103:   rapidapp.pl --helpers RapidDbic MyApp -- --from-sqlite-ddl my-schema.sql
script/rapidapp.pl:104:   rapidapp.pl --helpers RapidDbic MyApp -- --blank-ddl
script/rapidapp.pl:106:   rapidapp.pl --helpers RapidDbic MyApp -- \
script/rapidapp.pl:107:     --dsn 'dbi:Pg:dbname=foo;host=localhost;port=5432',larry,secretpw \
script/rapidapp.pl:108:     --loader-option db_schema='%' --loader-option generate_pod=1 \
script/rapidapp.pl:109:     --connect-option quote_names=0
script/rapidapp.pl:111:   rapidapp.pl --helpers RapidDbic MyApp -- --dsn \
script/rau.pl:7:if (!$ARGV[0] || $ARGV[0] eq '--help') {
script/rau.pl:12:RapidApp::Util::Rau->argv_call();
script/rau.pl:20:rau.pl - RapidApp umbrella utility script
script/rau.pl:27:   * model-update
script/rau.pl:31:C<rau.pl> is a multi-purpose utility script which comprises sub-modules that expose
script/rau.pl:36:Call a module with the argument C<--help> to see its usage.
script/rau.pl:39:namespace. For example, C<'modal-update'> becomes C<'RapidApp::Util::Rau::ModelUpdate'>.
script/rdbic.pl:15:# Special case - move cuddled '-I' arg from post to last so 
script/rdbic.pl:17:push @ARGV, (shift @ARGV) if($ARGV[0] && $ARGV[0] =~ /^\-I\S+/);
script/rdbic.pl:21:if($ARGV[0] && ! ($ARGV[0] =~ /^\-/) ) {
script/rdbic.pl:26:  elsif(-f $ARGV[0]) {
script/rdbic.pl:44:my $tmpdir       = dir( File::Spec->tmpdir );
script/rdbic.pl:58:# From 'prove': Allow cuddling the paths with -I, -M and -e
script/rdbic.pl:59:@ARGV = map { /^(-[IMe])(.+)/ ? ($1,$2) : $_ } @ARGV;
script/rdbic.pl:64:  'schema-class=s'  => \$schema_class,
script/rdbic.pl:67:  'no-cleanup+'     => \$no_cleanup,
script/rdbic.pl:68:  'app-class=s'     => \$name,
script/rdbic.pl:69:  'crud-profile=s'  => \$crud_profile,
script/rdbic.pl:70:  'total-counts-off+' => \$total_counts_off,
script/rdbic.pl:71:  'run-webapi+'     => \$run_webapi,
script/rdbic.pl:75:  'limit_tables_re|limit-tables-re=s'       => \$limit_tables_re,
script/rdbic.pl:76:  'limit_schemas_re|limit-schemas-re=s'     => \$limit_schemas_re,
script/rdbic.pl:77:  'exclude_tables_re|exclude-tables-re=s'   => \$exclude_tables_re,
script/rdbic.pl:78:  'exclude_schemas_re|exclude-schemas-re=s' => \$exclude_schemas_re,
script/rdbic.pl:80:  'loader-option=s@'  => \$loader_options,
script/rdbic.pl:81:  'connect-option=s@' => \$connect_options
script/rdbic.pl:90:  lib->import(@$includes);
script/rdbic.pl:113:  $cnf->{schema_class} = $schema_class if ($schema_class);
script/rdbic.pl:115:  my $App = Plack::App::RapidApp::rDbic->new( $cnf );
script/rdbic.pl:121:    : $App->to_app;
script/rdbic.pl:123:  my $runner = Plack::Runner->new;
script/rdbic.pl:124:  $runner->parse_options('--port',$port);
script/rdbic.pl:126:  $runner->run($psgi);
script/rdbic.pl:133:  print "Running WebAPI::DBIC::WebApp/HAL-Browser...\n";
script/rdbic.pl:141:  my $hal_dir = Alien::Web::HalBrowser->dir;
script/rdbic.pl:143:  my $model = $App->model_class;
script/rdbic.pl:146:  my $connect_info = $model->config->{connect_info};
script/rdbic.pl:147:  my $schema_class = $model->config->{schema_class};
script/rdbic.pl:151:  my $schema = $schema_class->connect(
script/rdbic.pl:152:    $connect_info->{dsn},
script/rdbic.pl:153:    $connect_info->{user},
script/rdbic.pl:154:    $connect_info->{password}
script/rdbic.pl:157:  my $app = WebAPI::DBIC::WebApp->new({
script/rdbic.pl:159:    writable       => $crud_profile eq 'read-only' ? 0 : 1,
script/rdbic.pl:161:  })->to_psgi_app;
script/rdbic.pl:163:  my $app_prefix = "/webapi-dbic";
script/rdbic.pl:169:        mount "/browser" => Plack::App::File->new(root => "$hal_dir")->to_app;
script/rdbic.pl:173:    # root redirect for discovery - redirect to API
script/rdbic.pl:187:rdbic.pl - Instant CRUD webapp for your database using RapidApp/Catalyst/DBIx::Class
script/rdbic.pl:193: rdbic.pl --dsn DSN[,USER,PW] [options]
script/rdbic.pl:197:   --help          Display this help screen and exit
script/rdbic.pl:198:   --dsn           Valid DBI dsn connect string (+ ,user,pw) - REQUIRED
script/rdbic.pl:199:   --schema-class  DBIC schema class name (blank/non-existant to auto-generate with Schema::Loader)
script/rdbic.pl:200:   --port          Local TCP port to use for the test server (defaults to 3500)
script/rdbic.pl:201:   --tmpdir        To use a different dir than is returned by File::Spec->tmpdir()
script/rdbic.pl:202:   --no-cleanup    To leave auto-generated files on-disk after exit (in tmpdir)
script/rdbic.pl:203:   --app-class     Name to use for the generated app (defaults to 'rDbicServer')
script/rdbic.pl:204:   --run-webapi    EXPERIMENTAL: Run WebAPI::DBIC w/ HAL Browser instead of RapidApp
script/rdbic.pl:205:   --metakeys      EXPERIMENTAL: Path to a RapidApp::Util::MetaKeys data file
script/rdbic.pl:207:   --loader-option   DBIC::SL name=value opt(s), can be used more than once (same as -o in dbicdump)
script/rdbic.pl:208:   --connect-option  name=value opt(s) to add to connect_info %extra_attributes
script/rdbic.pl:210:   --limit-tables-re     Regex limits included table names (see also 'exclude' loader-option)
script/rdbic.pl:211:   --limit-schemas-re    Regex limits RDBMS 'schema' names (see also 'db_schema' loader-option)
script/rdbic.pl:212:   --exclude-tables-re   Regex string excludes table names 
script/rdbic.pl:213:   --exclude-schemas-re  Regex string excludes RDBMS 'schema' names
script/rdbic.pl:214:   --total-counts-off    Initialize grids with total counts off (useful for very large tables)
script/rdbic.pl:216:   --crud-profile  One of five choices to broadly control CRUD interface behavior (see below)
script/rdbic.pl:218:    -I  Specifies Perl library include paths, like "perl"'s -I option. You
script/rdbic.pl:223:                      means the user has to click "Save" to apply queued-up changes (DEFAULT)
script/rdbic.pl:225:   * edit-instant     Full CRUD is enabled with 'persist_immediately' turned on. Changes are
script/rdbic.pl:228:   * edit-gridadd     Same as 'editable' except new rows are added directly to the grid 
script/rdbic.pl:231:   * ed-inst-gridadd  Same as 'edit-instant' except new rows are added directly to the grid;
script/rdbic.pl:234:   * read-only        No create/update/delete interfaces at all (rapidapp.pl default)
script/rdbic.pl:239:   rdbic.pl dbi:mysql:somedb,someusr,smepass --port 5005 --tmpdir /foo --no-cleanup
script/rdbic.pl:241:   rdbic.pl --dsn dbi:mysql:database=somedb,root,''
script/rdbic.pl:242:   rdbic.pl --port 4001 --dsn dbi:SQLite:/path/to/sqlt.db
script/rdbic.pl:243:   rdbic.pl --dsn dbi:SQLite:/path/to/sqlt.db --tmpdir . --no-cleanup
script/rdbic.pl:244:   rdbic.pl my_sqlt.db --crud-profile=edit-gridadd
script/rdbic.pl:245:   rdbic.pl dbi:Pg:dbname=foo,usr,1234 --crud-profile=edit-instant
script/rdbic.pl:246:   rdbic.pl dbi:mysql:foo,root,'' --run-webapi
script/rdbic.pl:248:   rdbic.pl my_sqlt.db -Ilib --schema-class My::Existing::Schema
script/rdbic.pl:250:   rdbic.pl --dsn \
script/rdbic.pl:252:     --loader-option db_schema='{ Blah => "%" }' --loader-option use_moose=0
script/rdbic.pl:257:C<rdbic.pl> is a handy utility which fires up a fully-functional RapidDbic/RapidApp application 
script/rdbic.pl:258:for a given database/DSN on-the-fly with a single shell command. This avoids having to bootstrap 
script/rdbic.pl:262:C<rdbic.pl> can be used to replace tools like Navicat or PhpMyAdmin for a general-purpose database 
script/rdbic.pl:269:The generated/temporary files are automatically cleaned up on exit unless the C<--no-cleanup> 
script/rdbic.pl:272:You can also specify the location of the temporary directory with the C<--tmpdir> option 
script/rdbic.pl:273:(defaults to C</tmp> or whatever is returned by File::Spec->tmpdir). If you combine with 
script/rdbic.pl:274:C<--no-cleanup> you can easily get the full working Catalyst/RapidApp app which was generated, for 
script/rdbic.pl:278: --tmpdir . --no-cleanup
script/rdbic.pl:281:with 'dbi:') then it will be used as the dsn without having to supply C<--dsn> first. Additionally,
script/rdbic.pl:286:directly in Plack-based setups and provides additional options and functionality not exposed in 
script/rdbic.pl:298:L<Day 16 - "Instant database admin tool with RapidApp and rdbic.pl"|http://www.catalystframework.org/calendar/2014/16>
script/rdbic.pl:302:L<Day 17 - "The Plack::App::RapidApp::rDbic interface to RapidApp"|http://www.catalystframework.org/calendar/2014/17>
script/upgr-rapidapp.pl:3:#  upgr-rapidapp.pl [DIR]
script/upgr-rapidapp.pl:5:# -- GitHub Issue #74 "Consolidate and move Module classes to RapidApp::Module::"
script/upgr-rapidapp.pl:66:my $start_dir = dir( $ARGV[0] )->resolve;
script/upgr-rapidapp.pl:77:$start_dir->recurse(
script/upgr-rapidapp.pl:81:    if (-f $File && $File =~ /\.(pm|t|pod)$/) {
script/upgr-rapidapp.pl:82:      my @lines = $File->slurp(iomode => '<:encoding(UTF-8)');
script/upgr-rapidapp.pl:118:      print join('','  ',$File->relative($start_dir)->stringify);
script/upgr-rapidapp.pl:121:        $File->spew( join('',@nlines) );
script/upgr-rapidapp.pl:149:upgr-rapidapp.pl - Update codebases for latest version of RapidApp
script/upgr-rapidapp.pl:153: upgr-rapidapp.pl /path/to/app/lib
script/upgr-rapidapp.pl:159:of simple re-mapping of class names from v0.99x to their new v1.00x names, but in the future if
share/assets/css-scoped/ra-doc.css:8:/* Selected built-in tag styles copied from bootstrap */
share/assets/css-scoped/ra-doc.css:15: * http://www.apache.org/licenses/LICENSE-2.0
share/assets/css-scoped/ra-doc.css:23:  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
share/assets/css-scoped/ra-doc.css:24:  font-size: 14px;
share/assets/css-scoped/ra-doc.css:25:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:27:  background-color: #ffffff;
share/assets/css-scoped/ra-doc.css:46:  display: inline-block;
share/assets/css-scoped/ra-doc.css:56:  font-size: 100%;
share/assets/css-scoped/ra-doc.css:57:  -webkit-text-size-adjust: 100%;
share/assets/css-scoped/ra-doc.css:58:      -ms-text-size-adjust: 100%;
share/assets/css-scoped/ra-doc.css:63:  outline: 5px auto -webkit-focus-ring-color;
share/assets/css-scoped/ra-doc.css:64:  outline-offset: -2px;
share/assets/css-scoped/ra-doc.css:75:  font-size: 75%;
share/assets/css-scoped/ra-doc.css:76:  line-height: 0;
share/assets/css-scoped/ra-doc.css:77:  vertical-align: baseline;
share/assets/css-scoped/ra-doc.css:81:  top: -0.5em;
share/assets/css-scoped/ra-doc.css:85:  bottom: -0.25em;
share/assets/css-scoped/ra-doc.css:91:  max-width: 100%;
share/assets/css-scoped/ra-doc.css:92:  vertical-align: middle;
share/assets/css-scoped/ra-doc.css:94:  -ms-interpolation-mode: bicubic;
share/assets/css-scoped/ra-doc.css:98:.google-maps img {
share/assets/css-scoped/ra-doc.css:99:  max-width: none;
share/assets/css-scoped/ra-doc.css:107:  font-size: 100%;
share/assets/css-scoped/ra-doc.css:108:  vertical-align: middle;
share/assets/css-scoped/ra-doc.css:114:  line-height: normal;
share/assets/css-scoped/ra-doc.css:117:button::-moz-focus-inner,
share/assets/css-scoped/ra-doc.css:118:input::-moz-focus-inner {
share/assets/css-scoped/ra-doc.css:128:  -webkit-appearance: button;
share/assets/css-scoped/ra-doc.css:143:  -webkit-box-sizing: content-box;
share/assets/css-scoped/ra-doc.css:144:     -moz-box-sizing: content-box;
share/assets/css-scoped/ra-doc.css:145:          box-sizing: content-box;
share/assets/css-scoped/ra-doc.css:146:  -webkit-appearance: textfield;
share/assets/css-scoped/ra-doc.css:149:input[type="search"]::-webkit-search-decoration,
share/assets/css-scoped/ra-doc.css:150:input[type="search"]::-webkit-search-cancel-button {
share/assets/css-scoped/ra-doc.css:151:  -webkit-appearance: none;
share/assets/css-scoped/ra-doc.css:156:  vertical-align: top;
share/assets/css-scoped/ra-doc.css:162:  text-decoration: none;
share/assets/css-scoped/ra-doc.css:168:  text-decoration: underline;
share/assets/css-scoped/ra-doc.css:176:  font-size: 85%;
share/assets/css-scoped/ra-doc.css:180:  font-weight: bold;
share/assets/css-scoped/ra-doc.css:184:  font-style: italic;
share/assets/css-scoped/ra-doc.css:188:  font-style: normal;
share/assets/css-scoped/ra-doc.css:198:  font-family: inherit;
share/assets/css-scoped/ra-doc.css:199:  font-weight: bold;
share/assets/css-scoped/ra-doc.css:200:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:202:  text-rendering: optimizelegibility;
share/assets/css-scoped/ra-doc.css:211:  font-weight: normal;
share/assets/css-scoped/ra-doc.css:212:  line-height: 1;
share/assets/css-scoped/ra-doc.css:219:  line-height: 40px;
share/assets/css-scoped/ra-doc.css:223:  font-size: 38.5px;
share/assets/css-scoped/ra-doc.css:227:  font-size: 31.5px;
share/assets/css-scoped/ra-doc.css:231:  font-size: 24.5px;
share/assets/css-scoped/ra-doc.css:235:  font-size: 17.5px;
share/assets/css-scoped/ra-doc.css:239:  font-size: 14px;
share/assets/css-scoped/ra-doc.css:243:  font-size: 11.9px;
share/assets/css-scoped/ra-doc.css:247:  font-size: 24.5px;
share/assets/css-scoped/ra-doc.css:251:  font-size: 17.5px;
share/assets/css-scoped/ra-doc.css:255:  font-size: 14px;
share/assets/css-scoped/ra-doc.css:259:  font-size: 14px;
share/assets/css-scoped/ra-doc.css:274:  margin-bottom: 0;
share/assets/css-scoped/ra-doc.css:278:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:283:  margin-left: 0;
share/assets/css-scoped/ra-doc.css:284:  list-style: none;
share/assets/css-scoped/ra-doc.css:289:  display: inline-block;
share/assets/css-scoped/ra-doc.css:291:  padding-right: 5px;
share/assets/css-scoped/ra-doc.css:292:  padding-left: 5px;
share/assets/css-scoped/ra-doc.css:299:  margin-bottom: 20px;
share/assets/css-scoped/ra-doc.css:304:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:308:  font-weight: bold;
share/assets/css-scoped/ra-doc.css:312:  margin-left: 10px;
share/assets/css-scoped/ra-doc.css:318:  border-top: 1px solid #eeeeee;
share/assets/css-scoped/ra-doc.css:319:  border-bottom: 1px solid #ffffff;
share/assets/css-scoped/ra-doc.css:323:abbr[data-original-title] {
share/assets/css-scoped/ra-doc.css:325:  border-bottom: 1px dotted #999999;
share/assets/css-scoped/ra-doc.css:329:  font-size: 90%;
share/assets/css-scoped/ra-doc.css:330:  text-transform: uppercase;
share/assets/css-scoped/ra-doc.css:336:  border-left: 5px solid #eeeeee;
share/assets/css-scoped/ra-doc.css:340:  margin-bottom: 0;
share/assets/css-scoped/ra-doc.css:341:  font-size: 17.5px;
share/assets/css-scoped/ra-doc.css:342:  font-weight: 300;
share/assets/css-scoped/ra-doc.css:343:  line-height: 1.25;
share/assets/css-scoped/ra-doc.css:348:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:356:blockquote.pull-right {
share/assets/css-scoped/ra-doc.css:358:  padding-right: 15px;
share/assets/css-scoped/ra-doc.css:359:  padding-left: 0;
share/assets/css-scoped/ra-doc.css:360:  border-right: 5px solid #eeeeee;
share/assets/css-scoped/ra-doc.css:361:  border-left: 0;
share/assets/css-scoped/ra-doc.css:364:blockquote.pull-right p,
share/assets/css-scoped/ra-doc.css:365:blockquote.pull-right small {
share/assets/css-scoped/ra-doc.css:366:  text-align: right;
share/assets/css-scoped/ra-doc.css:369:blockquote.pull-right small:before {
share/assets/css-scoped/ra-doc.css:373:blockquote.pull-right small:after {
share/assets/css-scoped/ra-doc.css:386:  margin-bottom: 20px;
share/assets/css-scoped/ra-doc.css:387:  font-style: normal;
share/assets/css-scoped/ra-doc.css:388:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:394:  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
share/assets/css-scoped/ra-doc.css:395:  font-size: 12px;
share/assets/css-scoped/ra-doc.css:397:  -webkit-border-radius: 3px;
share/assets/css-scoped/ra-doc.css:398:     -moz-border-radius: 3px;
share/assets/css-scoped/ra-doc.css:399:          border-radius: 3px;
share/assets/css-scoped/ra-doc.css:406:  white-space: nowrap;
share/assets/css-scoped/ra-doc.css:407:  background-color: #f7f7f9;
share/assets/css-scoped/ra-doc.css:415:  background-color: #f7f7f9;
share/assets/css-scoped/ra-doc.css:422:  font-size: 13px;
share/assets/css-scoped/ra-doc.css:423:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:424:  word-break: break-all;
share/assets/css-scoped/ra-doc.css:425:  word-wrap: break-word;
share/assets/css-scoped/ra-doc.css:426:  white-space: pre;
share/assets/css-scoped/ra-doc.css:427:  white-space: pre-wrap;
share/assets/css-scoped/ra-doc.css:428:  -webkit-border-radius: 4px;
share/assets/css-scoped/ra-doc.css:429:     -moz-border-radius: 4px;
share/assets/css-scoped/ra-doc.css:430:          border-radius: 4px;
share/assets/css-scoped/ra-doc.css:435:  background-color: #f5f5f5;
share/assets/css-scoped/ra-doc.css:441:  margin-bottom: 20px;
share/assets/css-scoped/ra-doc.css:447:  white-space: pre;
share/assets/css-scoped/ra-doc.css:448:  white-space: pre-wrap;
share/assets/css-scoped/ra-doc.css:449:  background-color: transparent;
share/assets/css-scoped/ra-doc.css:453:.pre-scrollable {
share/assets/css-scoped/ra-doc.css:454:  max-height: 340px;
share/assets/css-scoped/ra-doc.css:455:  overflow-y: scroll;
share/assets/css-scoped/ra-doc.css:472:  margin-bottom: 20px;
share/assets/css-scoped/ra-doc.css:473:  font-size: 21px;
share/assets/css-scoped/ra-doc.css:474:  line-height: 40px;
share/assets/css-scoped/ra-doc.css:477:  border-bottom: 1px solid #e5e5e5;
share/assets/css-scoped/ra-doc.css:481:  font-size: 15px;
share/assets/css-scoped/ra-doc.css:490:  font-size: 14px;
share/assets/css-scoped/ra-doc.css:491:  font-weight: normal;
share/assets/css-scoped/ra-doc.css:492:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:499:  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
share/assets/css-scoped/ra-doc.css:504:  margin-bottom: 5px;
share/assets/css-scoped/ra-doc.css:512:input[type="datetime-local"],
share/assets/css-scoped/ra-doc.css:523:.uneditable-input {
share/assets/css-scoped/ra-doc.css:524:  display: inline-block;
share/assets/css-scoped/ra-doc.css:527:  margin-bottom: 10px;
share/assets/css-scoped/ra-doc.css:528:  font-size: 14px;
share/assets/css-scoped/ra-doc.css:529:  line-height: 20px;
share/assets/css-scoped/ra-doc.css:531:  vertical-align: middle;
share/assets/css-scoped/ra-doc.css:532:  -webkit-border-radius: 4px;
share/assets/css-scoped/ra-doc.css:533:     -moz-border-radius: 4px;
share/assets/css-scoped/ra-doc.css:534:          border-radius: 4px;
share/assets/css-scoped/ra-doc.css:539:.uneditable-input {
share/assets/css-scoped/ra-doc.css:551:input[type="datetime-local"],
share/assets/css-scoped/ra-doc.css:562:.uneditable-input {
share/assets/css-scoped/ra-doc.css:563:  background-color: #ffffff;
share/assets/css-scoped/ra-doc.css:565:  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
share/assets/css-scoped/ra-doc.css:566:     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
share/assets/css-scoped/ra-doc.css:567:          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
share/assets/css-scoped/ra-doc.css:568:  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
share/assets/css-scoped/ra-doc.css:569:     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
share/assets/css-scoped/ra-doc.css:570:       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
share/assets/css-scoped/ra-doc.css:571:          transition: border linear 0.2s, box-shadow linear 0.2s;
share/assets/css-scoped/ra-doc.css:578:input[type="datetime-local"]:focus,
share/assets/css-scoped/ra-doc.css:589:.uneditable-input:focus {
share/assets/css-scoped/ra-doc.css:590:  border-color: rgba(82, 168, 236, 0.8);
share/assets/css-scoped/ra-doc.css:593:  /* IE6-9 */
share/assets/css-scoped/ra-doc.css:595:  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
share/assets/css-scoped/ra-doc.css:596:     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
share/assets/css-scoped/ra-doc.css:597:          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
share/assets/css-scoped/ra-doc.css:603:  margin-top: 1px \9;
share/assets/css-scoped/ra-doc.css:604:  *margin-top: 0;
share/assets/css-scoped/ra-doc.css:605:  line-height: normal;
share/assets/css-scoped/ra-doc.css:621:  /* In IE7, the height of the select element cannot be changed by height, only font-size */
share/assets/css-scoped/ra-doc.css:623:  *margin-top: 4px;
share/assets/css-scoped/ra-doc.css:626:  line-height: 30px;
share/assets/css-scoped/ra-doc.css:631:  background-color: #ffffff;
share/assets/css-scoped/ra-doc.css:645:  outline: 5px auto -webkit-focus-ring-color;
share/assets/css-scoped/ra-doc.css:646:  outline-offset: -2px;
share/assets/css-scoped/ra-doc.css:649:input:-moz-placeholder,
share/assets/css-scoped/ra-doc.css:650:textarea:-moz-placeholder {
share/assets/css-scoped/ra-doc.css:654:input:-ms-input-placeholder,
share/assets/css-scoped/ra-doc.css:655:textarea:-ms-input-placeholder {
share/assets/css-scoped/ra-doc.css:659:input::-webkit-input-placeholder,
share/assets/css-scoped/ra-doc.css:660:textarea::-webkit-input-placeholder {
share/assets/css-scoped/ra-doc.css:666:.uneditable-input {
share/assets/css-scoped/ra-doc.css:667:  margin-left: 0;
share/assets/css-scoped/ra-doc.css:676:  cursor: not-allowed;
share/assets/css-scoped/ra-doc.css:677:  background-color: #eeeeee;
share/assets/css-scoped/ra-doc.css:684:  background-color: transparent;
share/assets/css-scoped/ra-doc.css:691:  border-color: #ee5f5b;
share/assets/css-scoped/ra-doc.css:697:  border-color: #e9322d;
share/assets/css-scoped/ra-doc.css:698:  -webkit-box-shadow: 0 0 6px #f8b9b7;
share/assets/css-scoped/ra-doc.css:699:     -moz-box-shadow: 0 0 6px #f8b9b7;
share/assets/css-scoped/ra-doc.css:700:          box-shadow: 0 0 6px #f8b9b7;
share/assets/css-scoped/ra-doc.css:709:  list-style-type: disc;
share/assets/css-scoped/ra-doc.css:711:  -moz-padding-start: 40px;
share/assets/css-scoped/ra-doc.css:720:  list-style-type: decimal;
share/assets/css-scoped/ra-doc.css:722:  -moz-padding-start: 40px;
share/assets/css-scoped/ra-doc.css:726:  display: list-item;
share/assets/css-scoped/ra-doc.css:730:/*  Override/escape __back__ to ExtJS, for ExtJS-specific content 
share/assets/css-scoped/ra-doc.css:731:    This is needed for when we nest a module within a 'ra-doc' tag...
share/assets/css-scoped/ra-doc.css:735:    probabably many more scenarios which we'll add case-by-case  
share/assets/css-scoped/ra-doc.css:737:.x-btn button {
share/assets/css-scoped/ra-doc.css:738:  background-color: transparent;
share/assets/css-scoped/ra-doc.css:744:  padding-left: 3px;
share/assets/css-scoped/ra-doc.css:745:  padding-right: 3px;
share/assets/css-scoped/ra-doc.css:751:.x-panel input {
share/assets/css-scoped/ra-doc.css:752:  border-radius: 0px;
share/assets/css-scoped/ra-doc.css:753:  margin-bottom: 0 ;
share/assets/css-scoped/ra-doc.css:756:.x-panel .x-form-text, 
share/assets/css-scoped/ra-doc.css:757:.x-form-text, textarea.x-form-field {
share/assets/css-scoped/ra-scoped-reset.css:4:  in ext-all.css (as of ExtJS 3.4.0) and set them back to FF defaults.
share/assets/css-scoped/ra-scoped-reset.css:16:  font-size: 2em;
share/assets/css-scoped/ra-scoped-reset.css:22:  font-size: 1.5em;
share/assets/css-scoped/ra-scoped-reset.css:26:  font-size: 1.17em;
share/assets/css-scoped/ra-scoped-reset.css:31:  font-size: 1.00em;
share/assets/css-scoped/ra-scoped-reset.css:36:  font-size: 0.83em;
share/assets/css-scoped/ra-scoped-reset.css:41:  font-size: 0.67em;
share/assets/css-scoped/ra-scoped-reset.css:46:  margin-left: 2px;
share/assets/css-scoped/ra-scoped-reset.css:47:  margin-right: 2px;
share/assets/css-scoped/ra-scoped-reset.css:60:  font-weight: bold;
share/assets/css-scoped/ra-scoped-reset.css:65:  font-style: italic;
share/assets/css-scoped/ra-scoped-reset.css:69:  text-align: center;
share/assets/css-scoped/ra-scoped-reset.css:73:  font-weight: bolder;
share/assets/css-scoped/ra-scoped-reset.css:77:  list-style: disc outside none;
share/assets/css-scoped/ra-scoped-reset.css:78:  padding-left: 40px;
share/assets/css-scoped/ra-scoped-reset.css:82:  list-style: decimal outside none;
share/assets/css-scoped/ra-scoped-reset.css:83:  padding-left: 40px;
share/assets/css-scoped/ra-scoped-reset.css:87:  content: open-quote;
share/assets/css-scoped/ra-scoped-reset.css:91:  content: close-quote;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:1:.x-tree-checkbox {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:2:	background:url('/static/ext/resources/images/default/form/checkbox.gif') no-repeat 0 0;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:6:	vertical-align:middle;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:8:.x-tree-checkbox-over .x-tree-checkbox {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:9:	background-position:-13px 0;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:11:.x-tree-checkbox-down .x-tree-checkbox {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:12:	background-position:-26px 0;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:14:.x-tree-node-disabled .x-tree-checkbox {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:15:	background-position:-39px 0;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:17:.x-tree-node-checked {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:18:	background-position:0 -13px;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:20:.x-tree-checkbox-over .x-tree-node-checked {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:21:	background-position:-13px -13px;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:23:.x-tree-checkbox-down .x-tree-node-checked {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:24:	background-position:-26px -13px;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:26:.x-tree-node-disabled .x-tree-node-checked {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:27:	background-position:-39px -13px;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:29:.x-tree-node-grayed {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:30:	background-position:0 -26px;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:32:.x-tree-checkbox-over .x-tree-node-grayed {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:33:	background-position:-13px -26px;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:35:.x-tree-checkbox-down .x-tree-node-grayed {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:36:	background-position:-26px -26px;
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:38:.x-tree-node-disabled .x-tree-node-grayed {
share/assets/css/010-Ext.ux.tree.CheckTreePanel.css:39:	background-position:-39px -26px;
share/assets/css/011-Ext.ux.grid.RowActions.css:9: * @verson   $Id: Ext.ux.grid.RowActions.css 753 2009-10-28 02:17:34Z jozo $
share/assets/css/011-Ext.ux.grid.RowActions.css:20:.ux-row-action-cell .x-grid3-cell-inner {
share/assets/css/011-Ext.ux.grid.RowActions.css:23:.ux-row-action-item {
share/assets/css/011-Ext.ux.grid.RowActions.css:25:	min-width:16px;
share/assets/css/011-Ext.ux.grid.RowActions.css:27:	background-repeat:no-repeat;
share/assets/css/011-Ext.ux.grid.RowActions.css:33:.ext-ie .ux-row-action-item {
share/assets/css/011-Ext.ux.grid.RowActions.css:36:.ext-ie .ux-row-action-text {
share/assets/css/011-Ext.ux.grid.RowActions.css:39:.ux-row-action-item span {
share/assets/css/011-Ext.ux.grid.RowActions.css:40:	vertical-align:middle;
share/assets/css/011-Ext.ux.grid.RowActions.css:42:	line-height:18px;
share/assets/css/011-Ext.ux.grid.RowActions.css:44:.ext-ie .ux-row-action-item span {
share/assets/css/011-Ext.ux.grid.RowActions.css:49:.x-grid-group-hd div {
share/assets/css/011-Ext.ux.grid.RowActions.css:53:.ux-grow-action-item {
share/assets/css/011-Ext.ux.grid.RowActions.css:54:	min-width:16px;
share/assets/css/011-Ext.ux.grid.RowActions.css:56:	background-repeat:no-repeat;
share/assets/css/011-Ext.ux.grid.RowActions.css:57:	background-position: 0 50% ! important;
share/assets/css/011-Ext.ux.grid.RowActions.css:63:.ext-ie .ux-grow-action-item {
share/assets/css/011-Ext.ux.grid.RowActions.css:66:.ux-action-right {
share/assets/css/011-Ext.ux.grid.RowActions.css:71:.ux-grow-action-text {
share/assets/css/020-htmleditorplugins.css:5:	- http://www.famfamfam.com/
share/assets/css/020-htmleditorplugins.css:6:	- http://code.google.com/p/fugue-icons/
share/assets/css/020-htmleditorplugins.css:7:    - http://www.everaldo.com/crystal/
share/assets/css/020-htmleditorplugins.css:10:    Some icons may be licenced under the Creative Commons licence - http://creativecommons.org/licenses/by/2.5/
share/assets/css/020-htmleditorplugins.css:15:.x-edit-wordpaste {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-word-text.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:16:.x-edit-table {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-table.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:17:.x-edit-hr {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-rule.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:18:.x-edit-indent {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-indent.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:19:.x-edit-char {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-char.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:20:.x-edit-outdent {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-outdent.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:21:.x-edit-subscript {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-subscript.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:22:.x-edit-superscript {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-superscript.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:23:.x-edit-removeFormat {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-removeFormat.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:24:.x-edit-image {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-image.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:25:.x-edit-findandreplace {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-findandreplace.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:26:.x-edit-undo {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-undo.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:27:.x-edit-redo {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-redo.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:28:.x-edit-formatblock-h1 {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-heading-h1.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:29:.x-edit-formatblock-h2 {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/edit-heading-h2.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:33:    set of icons was extracted to a folder named 'icons' - Thanks to 'dearsina' on the Ext JS Forums for this.
share/assets/css/020-htmleditorplugins.css:35:.x-edit-wordpaste {background: url(icons/page_white_word.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:36:.x-edit-table {background: url(icons/table.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:37:.x-edit-hr {background: url(icons/text_horizontalrule.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:38:.x-edit-indent {background: url(icons/text_indent.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:39:.x-edit-char {background: url(icons/text_letter_omega.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:40:.x-edit-outdent {background: url(icons/text_indent_remove.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:41:.x-edit-subscript {background: url(icons/text_subscript.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:42:.x-edit-superscript {background: url(icons/text_superscript.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:43:.x-edit-removeFormat {background: url(icons/exclamation.png) 0 0 no-repeat !important;} 
share/assets/css/020-htmleditorplugins.css:44:.x-edit-undo {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/arrow_undo.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:45:.x-edit-redo {background: url(../../../assets/rapidapp/misc/static/images/htmleditorplugins/arrow_redo.png) 0 0 no-repeat !important;}
share/assets/css/020-htmleditorplugins.css:52:.char-item {
share/assets/css/020-htmleditorplugins.css:56:	text-align: center; 
share/assets/css/020-htmleditorplugins.css:57:	vertical-align: middle; 
share/assets/css/020-htmleditorplugins.css:60:	font-size: 14px;
share/assets/css/020-htmleditorplugins.css:65:.char-item.x-view-selected {
share/assets/css/020-htmleditorplugins.css:66:	background-color: #777;
share/assets/css/020-htmleditorplugins.css:69:.char-over {
share/assets/css/020-htmleditorplugins.css:71:	background-color:#d0def0;
share/assets/css/025-superboxselect.css:1:@charset "utf-8";
share/assets/css/025-superboxselect.css:2:.x-superboxselect {position:relative; height: auto !important; margin: 0px; overflow: hidden; padding:2px; display:block; outline: none !important;}
share/assets/css/025-superboxselect.css:3:.x-superboxselect input[disabled] {background-color: transparent;};
share/assets/css/025-superboxselect.css:4:.x-superboxselect ul {overflow: hidden; cursor: text;}
share/assets/css/025-superboxselect.css:5:.x-superboxselect-display-btns {padding-right: 33px !important;}
share/assets/css/025-superboxselect.css:6:.x-superboxselect-btns {position: absolute; right: 1px; top: 0; overflow:hidden; padding:2px;}
share/assets/css/025-superboxselect.css:7:.x-superboxselect-btns div {float: left; width: 16px; height: 16px; margin-top: 4px;}
share/assets/css/025-superboxselect.css:8:.x-superboxselect-btn-clear {background: url(../../../assets/rapidapp/misc/static/images/superboxselect/clear.png) no-repeat scroll left 0px;}
share/assets/css/025-superboxselect.css:9:.x-superboxselect-btn-expand {background: url(../../../assets/rapidapp/misc/static/images/superboxselect/expand.png) no-repeat scroll left 0px;}
share/assets/css/025-superboxselect.css:10:.x-superboxselect-btn-over {background-position: left -16px}
share/assets/css/025-superboxselect.css:11:.x-superboxselect-btn-hide {display:none;}
share/assets/css/025-superboxselect.css:12:.x-superboxselect li {float: left; margin: 1px 1px 2px 1px; padding: 0;line-height: 18px;}
share/assets/css/025-superboxselect.css:13:.x-superboxselect-stacked li {float: none !important;}
share/assets/css/025-superboxselect.css:14:.x-superboxselect-input input { border: none; outline: none; margin-top: 4px; margin-bottom: 4px;}
share/assets/css/025-superboxselect.css:15:body.ext-ie .x-superboxselect-input input {background: none; border: none; margin-top: 3px;}
share/assets/css/025-superboxselect.css:16:.x-superboxselect-item {position: relative; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; o-border-radius: 6px; khtml-border-radius: 6px; border: 1px solid #CAD8F3; background-color: #DEE7F8; padding: 1px 15px 1px 5px !important; }
share/assets/css/025-superboxselect.css:17:body.ext-ie7 .x-superboxselect-item {margin: 2px 1px 2px 1px; line-height: 1.2em; padding: 2px 17px 4px 5px !important;}
share/assets/css/025-superboxselect.css:18:body.ext-ie6 .x-superboxselect-item {margin: 2px 1px 2px 1px; line-height: 1.2em; padding: 2px 19px 4px 5px !important;}
share/assets/css/025-superboxselect.css:19:.x-superboxselect-item-hover {background: #BBCEF1; border: 1px solid #6D95E0;}
share/assets/css/025-superboxselect.css:20:.x-superboxselect-item-focus {border-color: #598BEC; background: #598BEC; color: #fff;}
share/assets/css/025-superboxselect.css:21:.x-superboxselect-item-close {background: url(../../../assets/rapidapp/misc/static/images/superboxselect/close.png) no-repeat scroll left 0px; border: none; cursor: default; font-size: 1px; height: 16px;padding:0; position: absolute; right: 0px; top: 2px; width: 13px;display:block;cursor:pointer;}
share/assets/css/025-superboxselect.css:23:.x-superboxselect-item-close:hover, .x-superboxselect-item-close:active  { background-position: left -12px;}
share/assets/css/025-superboxselect.css:24:.x-superboxselect-item-focus .x-superboxselect-item-close{ background-position: left -24px}
share/assets/css/025-superboxselect.css:25:.x-item-disabled .x-superboxselect-item-close{ background-position: left -36px}
share/assets/css/026-superboxselect-gray-extend.css:1:@charset "utf-8";
share/assets/css/026-superboxselect-gray-extend.css:2:.x-superboxselect {position:relative; height: auto !important; margin: 0px; overflow: hidden; padding:2px; display:block; outline: none !important;}
share/assets/css/026-superboxselect-gray-extend.css:3:.x-superboxselect ul {overflow: hidden; cursor: text;}
share/assets/css/026-superboxselect-gray-extend.css:4:.x-superboxselect-display-btns {padding-right: 33px !important;}
share/assets/css/026-superboxselect-gray-extend.css:5:.x-superboxselect-btns {position: absolute; right: 1px; top: 0; overflow:hidden; padding:2px;}
share/assets/css/026-superboxselect-gray-extend.css:6:.x-superboxselect-btns div {float: left; width: 16px; height: 16px; margin-top: 4px;}
share/assets/css/026-superboxselect-gray-extend.css:7:.x-superboxselect-btn-clear {background: url(../../../assets/rapidapp/misc/static/images/superboxselect/clear.png) no-repeat scroll left 0px;}
share/assets/css/026-superboxselect-gray-extend.css:8:.x-superboxselect-btn-expand {background: url(../../../assets/rapidapp/misc/static/images/superboxselect/expand.png) no-repeat scroll left 0px;}
share/assets/css/026-superboxselect-gray-extend.css:9:.x-superboxselect-btn-over {background-position: left -16px}
share/assets/css/026-superboxselect-gray-extend.css:10:.x-superboxselect-btn-hide {display:none;}
share/assets/css/026-superboxselect-gray-extend.css:11:.x-superboxselect li {float: left; margin: 1px 1px 2px 1px; padding: 0;line-height: 18px;}
share/assets/css/026-superboxselect-gray-extend.css:12:.x-superboxselect-stacked li {float: none !important;}
share/assets/css/026-superboxselect-gray-extend.css:13:.x-superboxselect-input input { border: none; outline: none; margin-top: 4px; margin-bottom: 4px;}
share/assets/css/026-superboxselect-gray-extend.css:14:body.ext-ie .x-superboxselect-input input {background: none; border: none; margin-top: 3px;}
share/assets/css/026-superboxselect-gray-extend.css:15:.x-superboxselect-item {position: relative; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; o-border-radius: 6px; khtml-border-radius: 6px; border: 1px solid #d7d7d7; background-color: #e7e7e7; padding: 1px 15px 1px 5px !important; }
share/assets/css/026-superboxselect-gray-extend.css:16:body.ext-ie7 .x-superboxselect-item {margin: 2px 1px 2px 1px; line-height: 1.2em; padding: 2px 17px 4px 5px !important;}
share/assets/css/026-superboxselect-gray-extend.css:17:body.ext-ie6 .x-superboxselect-item {margin: 2px 1px 2px 1px; line-height: 1.2em; padding: 2px 19px 4px 5px !important;}
share/assets/css/026-superboxselect-gray-extend.css:18:.x-superboxselect-item-hover {background: #cdcdcd; border: 1px solid #949494;}
share/assets/css/026-superboxselect-gray-extend.css:19:.x-superboxselect-item-focus {border-color: #8b8b8b; background: #8b8b8b; color: #fff;}
share/assets/css/026-superboxselect-gray-extend.css:20:.x-superboxselect-item-close {background: url(../../../assets/rapidapp/misc/static/images/superboxselect/close.png) no-repeat scroll left 0px; border: none; cursor: default; font-size: 1px; height: 16px;padding:0; position: absolute; right: 0px; top: 2px; width: 13px;display:block;cursor:pointer;}
share/assets/css/026-superboxselect-gray-extend.css:22:.x-superboxselect-item-close:hover, .x-superboxselect-item-close:active  { background-position: left -12px;}
share/assets/css/026-superboxselect-gray-extend.css:23:.x-superboxselect-item-focus .x-superboxselect-item-close{ background-position: left -24px}
share/assets/css/026-superboxselect-gray-extend.css:24:.x-item-disabled .x-superboxselect-item-close{ background-position: left -36px}
share/assets/css/035-simplemde.min.css:4: * @link https://github.com/NextStepWebs/simplemde-markdown-editor
share/assets/css/035-simplemde.min.css:7:.CodeMirror{color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{height:auto;min-height:300px;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:1}.CodeMirror-scroll{min-height:300px}.CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:9}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:relative;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:' ';height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar:hover,.editor-wrapper input.title:focus,.editor-wrapper input.title:hover{opacity:.8}.editor-toolbar.fullscreen{width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,1)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,rgba(255,255,255,1)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a{display:inline-block;text-align:center;text-decoration:none!important;color:#2c3e50!important;width:30px;height:30px;margin:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar a:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar a.fa-header-x:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"▲"}.editor-toolbar a.fa-header-smaller:after{content:"▼"}.editor-toolbar.disabled-for-preview a:not(.no-disable){pointer-events:none;background:#fff;border-color:transparent;text-shadow:inherit}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-preview,.editor-preview-side{padding:10px;background:#fafafa;overflow:auto;display:none;box-sizing:border-box}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;border:1px solid #ddd}.editor-preview-active,.editor-preview-active-side{display:block}.editor-preview-side>p,.editor-preview>p{margin-top:0}.editor-preview pre,.editor-preview-side pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid #ddd;padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:#d9d9d9}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.CodeMirror .CodeMirror-code .cm-link{color:#7f8c8d}.CodeMirror .CodeMirror-code .cm-url{color:#aab2b3}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}
share/assets/css/040-RapidApp.css:1:/* http://www.sohtanaka.com/web-design/styling-pre-tags-with-css-code-block/ */
share/assets/css/040-RapidApp.css:3:	overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */
share/assets/css/040-RapidApp.css:4:	white-space: pre-wrap; /* css-3 */
share/assets/css/040-RapidApp.css:5:	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
share/assets/css/040-RapidApp.css:6:	white-space: -pre-wrap; /* Opera 4-6 */
share/assets/css/040-RapidApp.css:7:	white-space: -o-pre-wrap; /* Opera 7 */ /*
share/assets/css/040-RapidApp.css:9:	word-wrap: break-word; /* Internet Explorer 5.5+ */
share/assets/css/040-RapidApp.css:14:.ra-pre-wrap {
share/assets/css/040-RapidApp.css:15:	overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */
share/assets/css/040-RapidApp.css:16:	white-space: pre-wrap; /* css-3 */
share/assets/css/040-RapidApp.css:17:	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
share/assets/css/040-RapidApp.css:18:	white-space: -pre-wrap; /* Opera 4-6 */
share/assets/css/040-RapidApp.css:19:	white-space: -o-pre-wrap; /* Opera 7 */ /*
share/assets/css/040-RapidApp.css:21:	word-wrap: break-word; /* Internet Explorer 5.5+ */
share/assets/css/040-RapidApp.css:24:.loading-background {
share/assets/css/040-RapidApp.css:25:	background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:26:	background-position: center center;
share/assets/css/040-RapidApp.css:27:	background-color: white;
share/assets/css/040-RapidApp.css:28:	background-image: url(../../../assets/rapidapp/misc/static/images/indicator.gif) !important;
share/assets/css/040-RapidApp.css:31:.rapp-margin-bottom-0 {
share/assets/css/040-RapidApp.css:32:	margin-bottom: 0px;
share/assets/css/040-RapidApp.css:36:.field-empty-text {
share/assets/css/040-RapidApp.css:38:  font-family: Arial !important;
share/assets/css/040-RapidApp.css:39:  font-size:.9em !important;
share/assets/css/040-RapidApp.css:43:.blue-text {
share/assets/css/040-RapidApp.css:47:.blue-text-code {
share/assets/css/040-RapidApp.css:49:  font-family: "Lucida Console", Monaco, monospace;
share/assets/css/040-RapidApp.css:52:.blue-text-code-bold {
share/assets/css/040-RapidApp.css:54:  font-family: "Lucida Console", Monaco, monospace;
share/assets/css/040-RapidApp.css:55:  font-weight: bold;
share/assets/css/040-RapidApp.css:59:.with-icon {
share/assets/css/040-RapidApp.css:61:	padding-left: 19px;
share/assets/css/040-RapidApp.css:62:	background-repeat: no-repeat !important;
share/assets/css/040-RapidApp.css:63:	background-position: 1px center;
share/assets/css/040-RapidApp.css:64:	display: table-cell;
share/assets/css/040-RapidApp.css:65:	vertical-align: middle;
share/assets/css/040-RapidApp.css:68:.with-inline-icon {
share/assets/css/040-RapidApp.css:69:	padding-left: 18px;
share/assets/css/040-RapidApp.css:70:	line-height: 16px;
share/assets/css/040-RapidApp.css:71:	display: inline-block;
share/assets/css/040-RapidApp.css:72:	background-repeat: no-repeat !important;
share/assets/css/040-RapidApp.css:75:.ra-icon-centered-16x16 {
share/assets/css/040-RapidApp.css:78:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:79:  background-position: center center;
share/assets/css/040-RapidApp.css:83:.grid-cell-with-icon {
share/assets/css/040-RapidApp.css:85:	text-indent: 16px;
share/assets/css/040-RapidApp.css:86:	background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:87:	padding-top: 1px;
share/assets/css/040-RapidApp.css:88:	background-position: 2px 2px;
share/assets/css/040-RapidApp.css:91:.ra-icon-16x16 {
share/assets/css/040-RapidApp.css:94:  background-size:16px 16px;
share/assets/css/040-RapidApp.css:95:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:98:.ra-icon-14x14 {
share/assets/css/040-RapidApp.css:101:  background-size:14px 14px;
share/assets/css/040-RapidApp.css:102:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:105:.ra-icon-12x12 {
share/assets/css/040-RapidApp.css:108:  background-size:12px 12px;
share/assets/css/040-RapidApp.css:109:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:112:.ra-icon-11x11 {
share/assets/css/040-RapidApp.css:115:  background-size:11px 11px;
share/assets/css/040-RapidApp.css:116:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:119:.ra-icon-10x10 {
share/assets/css/040-RapidApp.css:122:  background-size:10px 10px;
share/assets/css/040-RapidApp.css:123:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:126:.with-background-right-image {
share/assets/css/040-RapidApp.css:127:	background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:128:	background-position: right center;
share/assets/css/040-RapidApp.css:131:/* http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting */
share/assets/css/040-RapidApp.css:132:.no-text-select {
share/assets/css/040-RapidApp.css:133:	-webkit-user-select: none;
share/assets/css/040-RapidApp.css:134:	-khtml-user-select: none;
share/assets/css/040-RapidApp.css:135:	-moz-user-select: none;
share/assets/css/040-RapidApp.css:136:	-ms-user-select: none;
share/assets/css/040-RapidApp.css:137:	-o-user-select: none;
share/assets/css/040-RapidApp.css:138:	user-select: none;
share/assets/css/040-RapidApp.css:142:  This class can be used to override and re-enable text highlighting that was previously
share/assets/css/040-RapidApp.css:143:  disabled by 'no-text-select' above, or other class that does the same CSS-based text
share/assets/css/040-RapidApp.css:144:  highlight disabling, such as ExtJS'es 'x-unselectable'. Note that this is not a fullproof
share/assets/css/040-RapidApp.css:148:.yes-text-select, .yes-text-select *  {
share/assets/css/040-RapidApp.css:149:  -webkit-user-select : text !important;
share/assets/css/040-RapidApp.css:150:  -khtml-user-select  : text !important;
share/assets/css/040-RapidApp.css:151:  -moz-user-select    : text !important;
share/assets/css/040-RapidApp.css:152:  -ms-user-select     : test !important;
share/assets/css/040-RapidApp.css:153:  -o-user-select      : text !important;
share/assets/css/040-RapidApp.css:154:  user-select         : text !important;
share/assets/css/040-RapidApp.css:157:.x-logical-checkbox {
share/assets/css/040-RapidApp.css:164:.ra-icon-bullet_key {
share/assets/css/040-RapidApp.css:165:	background-image: url(../../../assets/rapidapp/misc/static/images/bullet_key.png) !important;
share/assets/css/040-RapidApp.css:166:	background-repeat:no-repeat;
share/assets/css/040-RapidApp.css:167:	padding-right: 18px;
share/assets/css/040-RapidApp.css:168:	padding-top: 9px;
share/assets/css/040-RapidApp.css:169:	padding-bottom: 3px;
share/assets/css/040-RapidApp.css:176:.tbar-title-medium {
share/assets/css/040-RapidApp.css:177:	font-size:175% !important;
share/assets/css/040-RapidApp.css:179:	font-weight: bolder !important;
share/assets/css/040-RapidApp.css:181:.tbar-button-medium {
share/assets/css/040-RapidApp.css:182:	font-size:140% !important;
share/assets/css/040-RapidApp.css:183:	padding-left: 5px !important;
share/assets/css/040-RapidApp.css:184:	font-weight: bolder !important;
share/assets/css/040-RapidApp.css:187:.tbar-title-small {
share/assets/css/040-RapidApp.css:189:	font-weight: bolder !important;
share/assets/css/040-RapidApp.css:191:.tbar-button-small {
share/assets/css/040-RapidApp.css:192:	padding-left: 2px !important;
share/assets/css/040-RapidApp.css:193:	font-weight: bolder !important;
share/assets/css/040-RapidApp.css:197:/* Update: renamed from 'magnify-link-tiny' - merged with auto generated icon class 
share/assets/css/040-RapidApp.css:198:   2013-06-22 by HV
share/assets/css/040-RapidApp.css:200:a.ra-icon-magnify-tiny {
share/assets/css/040-RapidApp.css:201:  /* -- for IE, magic!! Without this, the "filter/opacity" is ignored and other misc problems,
share/assets/css/040-RapidApp.css:204:    http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In-Internet-Explorer.htm   */
share/assets/css/040-RapidApp.css:206:  /* -- */
share/assets/css/040-RapidApp.css:208:  background-repeat:no-repeat !important;
share/assets/css/040-RapidApp.css:209:  background-position: 0% 90%;
share/assets/css/040-RapidApp.css:210:  padding-left: 10px;
share/assets/css/040-RapidApp.css:211:  margin-left: 2px;
share/assets/css/040-RapidApp.css:212:  margin-bottom: 2px;
share/assets/css/040-RapidApp.css:213:  font-size: 9px;
share/assets/css/040-RapidApp.css:214:  vertical-align: bottom;
share/assets/css/040-RapidApp.css:215:  font-family: "Helvetica Narrow","Arial Narrow",Tahoma,Arial,Helvetica,sans-serif;
share/assets/css/040-RapidApp.css:216:  text-decoration: none;
share/assets/css/040-RapidApp.css:217:  border-bottom: 0px transparent;
share/assets/css/040-RapidApp.css:222:a.ra-icon-magnify-tiny:hover {
share/assets/css/040-RapidApp.css:223:  margin-bottom: 1px;
share/assets/css/040-RapidApp.css:224:  border-bottom: 1px dotted;
share/assets/css/040-RapidApp.css:229:a.ra-icon-magnify-tiny span {
share/assets/css/040-RapidApp.css:232:a.ra-icon-magnify-tiny:hover span {
share/assets/css/040-RapidApp.css:237:a.ra-icon-refresh-tiny {
share/assets/css/040-RapidApp.css:238:  /* -- for IE, magic!! Without this, the "filter/opacity" is ignored and other misc problems,
share/assets/css/040-RapidApp.css:241:    http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In-Internet-Explorer.htm   */
share/assets/css/040-RapidApp.css:243:  /* -- */
share/assets/css/040-RapidApp.css:245:  background-repeat:no-repeat !important;
share/assets/css/040-RapidApp.css:246:  background-position: 0% 90%;
share/assets/css/040-RapidApp.css:247:  padding-left: 10px;
share/assets/css/040-RapidApp.css:248:  margin-left: 2px;
share/assets/css/040-RapidApp.css:249:  margin-bottom: 2px;
share/assets/css/040-RapidApp.css:250:  font-size: 9px;
share/assets/css/040-RapidApp.css:251:  vertical-align: bottom;
share/assets/css/040-RapidApp.css:252:  font-family: "Helvetica Narrow","Arial Narrow",Tahoma,Arial,Helvetica,sans-serif;
share/assets/css/040-RapidApp.css:253:  text-decoration: none;
share/assets/css/040-RapidApp.css:254:  border-bottom: 0px transparent;
share/assets/css/040-RapidApp.css:259:a.ra-icon-refresh-tiny:hover {
share/assets/css/040-RapidApp.css:260:  margin-bottom: 1px;
share/assets/css/040-RapidApp.css:261:  border-bottom: 1px dotted;
share/assets/css/040-RapidApp.css:266:.ra-ap-body a.ra-icon-refresh-tiny span, a.ra-icon-refresh-tiny span {
share/assets/css/040-RapidApp.css:269:a.ra-icon-refresh-tiny:hover span {
share/assets/css/040-RapidApp.css:274:/* ra-icon-paperclip-tiny: duplicated styles from ra-icon-magnify-tiny */
share/assets/css/040-RapidApp.css:275:a.ra-icon-paperclip-tiny {
share/assets/css/040-RapidApp.css:276:  /* -- for IE, magic!! Without this, the "filter/opacity" is ignored and other misc problems,
share/assets/css/040-RapidApp.css:279:    http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In-Internet-Explorer.htm   */
share/assets/css/040-RapidApp.css:281:  /* -- */
share/assets/css/040-RapidApp.css:283:  background-repeat:no-repeat !important;
share/assets/css/040-RapidApp.css:284:  background-position: 0% 90%;
share/assets/css/040-RapidApp.css:285:  padding-left: 10px;
share/assets/css/040-RapidApp.css:286:  margin-left: 2px;
share/assets/css/040-RapidApp.css:287:  margin-bottom: 2px;
share/assets/css/040-RapidApp.css:288:  font-size: 9px;
share/assets/css/040-RapidApp.css:289:  vertical-align: bottom;
share/assets/css/040-RapidApp.css:290:  font-family: "Helvetica Narrow","Arial Narrow",Tahoma,Arial,Helvetica,sans-serif;
share/assets/css/040-RapidApp.css:291:  text-decoration: none;
share/assets/css/040-RapidApp.css:292:  border-bottom: 0px transparent;
share/assets/css/040-RapidApp.css:297:a.ra-icon-paperclip-tiny:hover {
share/assets/css/040-RapidApp.css:298:  margin-bottom: 1px;
share/assets/css/040-RapidApp.css:299:  border-bottom: 1px dotted;
share/assets/css/040-RapidApp.css:304:a.ra-icon-paperclip-tiny span {
share/assets/css/040-RapidApp.css:307:a.ra-icon-paperclip-tiny:hover span {
share/assets/css/040-RapidApp.css:312:.superscript-navy {
share/assets/css/040-RapidApp.css:314:  font-weight: lighter; 
share/assets/css/040-RapidApp.css:316:  top: -4px;
share/assets/css/040-RapidApp.css:318:.superscript-green {
share/assets/css/040-RapidApp.css:320:  font-weight: lighter; 
share/assets/css/040-RapidApp.css:322:  top: -4px;
share/assets/css/040-RapidApp.css:325:.x-multifilter-not {
share/assets/css/040-RapidApp.css:326:	font-weight: bolder !important;
share/assets/css/040-RapidApp.css:327:	font-size:145% !important;
share/assets/css/040-RapidApp.css:328:	padding-left: 1px !important;
share/assets/css/040-RapidApp.css:329:	padding-right: 1px !important;
share/assets/css/040-RapidApp.css:330:	font-family: Lucida Console !important;
share/assets/css/040-RapidApp.css:334:.x-multifilter-not-on {
share/assets/css/040-RapidApp.css:340:.x-multifilter-not-off {
share/assets/css/040-RapidApp.css:346:/* ----------------------------------- */
share/assets/css/040-RapidApp.css:348:/* http://www.sencha.com/forum/showthread.php?45873-tbar-appears-ugly */
share/assets/css/040-RapidApp.css:350:	border-bottom-style: solid !important;
share/assets/css/040-RapidApp.css:351:	border-bottom-color: #D0D0D0 !important;
share/assets/css/040-RapidApp.css:352:	border-bottom-width: 1px !important;
share/assets/css/040-RapidApp.css:356:.panel-borders {
share/assets/css/040-RapidApp.css:357:	border-style: solid !important;
share/assets/css/040-RapidApp.css:358:	border-color: #D0D0D0 !important;
share/assets/css/040-RapidApp.css:359:	border-width: 1px !important;
share/assets/css/040-RapidApp.css:363:.item-disabled {
share/assets/css/040-RapidApp.css:366:  background-color: #f2f2f2 !important; /* this is needed to fix stupid IE opacity bug */
share/assets/css/040-RapidApp.css:374:.x-toolbar .xtb-sep { background-image: url(/static/ext/resources/images/default/grid/grid-split.gif) !important }
share/assets/css/040-RapidApp.css:377:.x-tab-panel-header { border-bottom: 0px; }
share/assets/css/040-RapidApp.css:379:.offline .x-grid3-cell {
share/assets/css/040-RapidApp.css:386:.offline .x-grid3-cell .x-grid3-cell-first {
share/assets/css/040-RapidApp.css:392:.x-grid3-cell-first {
share/assets/css/040-RapidApp.css:398:.x-grid3-col-memberpc  {
share/assets/css/040-RapidApp.css:402:.x-tab-panel-body {
share/assets/css/040-RapidApp.css:406:.x-tab-panel-header-plain .x-tab-strip-spacer, .x-tab-panel-footer-plain .x-tab-strip-spacer {
share/assets/css/040-RapidApp.css:407:	border-bottom: 0 none !important;
share/assets/css/040-RapidApp.css:411:.x-grid3-row-expander {
share/assets/css/040-RapidApp.css:412:	background-image: url(../../../assets/rapidapp/misc/static/images/row-expand-sprite-arrow.gif) !important;
share/assets/css/040-RapidApp.css:415:.x-grid3-row-selected {
share/assets/css/040-RapidApp.css:422:.x-grid3-row-collapsed .x-grid3-row-expander {
share/assets/css/040-RapidApp.css:423:	background-image: url(../../../assets/rapidapp/misc/static/images/bullet_arrow_up_sm.png) !important;
share/assets/css/040-RapidApp.css:426:.x-grid3-row-expanded  .x-grid3-row-expander {
share/assets/css/040-RapidApp.css:427:	background-image: url(../../../assets/rapidapp/misc/static/images/bullet_arrow_down_sm.png) !important;
share/assets/css/040-RapidApp.css:433:    overflow: -moz-scrollbars-vertical;
share/assets/css/040-RapidApp.css:440:    font-family: Tahoma, Geneva, Verdana, Helvetica, sans-serif;
share/assets/css/040-RapidApp.css:441:    font-size: 12px;
share/assets/css/040-RapidApp.css:442:    background-color: #fff; color: #333;
share/assets/css/040-RapidApp.css:443:    letter-spacing: 0.1px;
share/assets/css/040-RapidApp.css:451:  font-family: Tahoma, Geneva, Verdana, Helvetica, sans-serif;
share/assets/css/040-RapidApp.css:452:  letter-spacing: 0.1px;
share/assets/css/040-RapidApp.css:453:  vertical-align: middle;
share/assets/css/040-RapidApp.css:458:  vertical-align: middle;
share/assets/css/040-RapidApp.css:462:.x-panel-body {
share/assets/css/040-RapidApp.css:464:  border-top:0 none;
share/assets/css/040-RapidApp.css:468:.link-underline {
share/assets/css/040-RapidApp.css:470:	text-decoration:underline;
share/assets/css/040-RapidApp.css:475:.x-tree-selected { font-weight: bold; }
share/assets/css/040-RapidApp.css:478://.x-grid3-hd-row .x-grid3-td-PRI_KEY { padding: 0px 0px 0px 0px; }
share/assets/css/040-RapidApp.css:479://.x-grid3-hd-inner .x-grid3-hd-PRI_KEY { padding: 0px 0px 0px 0px; }
share/assets/css/040-RapidApp.css:480://.x-grid3-hd-PRI_KEY { padding: 0px 0px 0px 0px; }
share/assets/css/040-RapidApp.css:482:.x-grid3-td-editIcon .x-grid3-cell-inner {
share/assets/css/040-RapidApp.css:483:	background-image: url(../../../assets/rapidapp/misc/static/images/table_edit.png) !important;
share/assets/css/040-RapidApp.css:484:	background-position:center center;
share/assets/css/040-RapidApp.css:485:	background-repeat:no-repeat;
share/assets/css/040-RapidApp.css:486:	padding-left: 2px;
share/assets/css/040-RapidApp.css:487:	padding-right: 2px;
share/assets/css/040-RapidApp.css:492:.pos-top-right {
share/assets/css/040-RapidApp.css:493:	text-align: right;
share/assets/css/040-RapidApp.css:498:	background-color:yellow;
share/assets/css/040-RapidApp.css:502:.sbl-panel-body-noborder {
share/assets/css/040-RapidApp.css:503:    border-width: 0 0 0 0 !important;
share/assets/css/040-RapidApp.css:505:    background-color: white !important;
share/assets/css/040-RapidApp.css:507:.res-block {
share/assets/css/040-RapidApp.css:508:	-moz-background-clip:border;
share/assets/css/040-RapidApp.css:509:	-moz-background-inline-policy:continuous;
share/assets/css/040-RapidApp.css:510:	-moz-background-origin:padding;
share/assets/css/040-RapidApp.css:511:	background:transparent url(../img/theme/block-top.gif) no-repeat scroll 0 0;
share/assets/css/040-RapidApp.css:512:	margin-bottom:15px;
share/assets/css/040-RapidApp.css:513:	padding-top:5px;
share/assets/css/040-RapidApp.css:519:.sbl-panel-body-noborder, .sbl-panel-body-noborder .x-border-panel .x-border-layout-ct, .sbl-panel-body-noborder .x-panel .x-border-panel, .sbl-panel-body-noborder .x-panel-body .x-panel-body-noheader {
share/assets/css/040-RapidApp.css:520:    border-width: 0 0 0 0 !important;
share/assets/css/040-RapidApp.css:533:.bold-italics { font-weight: bold !important; font-style: italic !important; }
share/assets/css/040-RapidApp.css:539:/* Taken from: http://www.extjs.com/blog/2008/05/14/form-group/  */
share/assets/css/040-RapidApp.css:542:.form-group {
share/assets/css/040-RapidApp.css:543:	padding-top:15px;
share/assets/css/040-RapidApp.css:544:	padding-bottom:10px;
share/assets/css/040-RapidApp.css:549:.form-group .form-group-header {
share/assets/css/040-RapidApp.css:551:	border-bottom:1px solid #c3daf9;
share/assets/css/040-RapidApp.css:555:.form-group .form-group-header-text {
share/assets/css/040-RapidApp.css:556:	font-size:11px;
share/assets/css/040-RapidApp.css:557:	font-family:tahoma,arial,sans-serif;
share/assets/css/040-RapidApp.css:558:	line-height:13px;
share/assets/css/040-RapidApp.css:559:	text-transform:uppercase;
share/assets/css/040-RapidApp.css:566:	background:#fff url(../../../assets/rapidapp/misc/static/images/form-collapse-icon.gif) no-repeat 2px 0;
share/assets/css/040-RapidApp.css:569:/* Copied from x-plain (for IE + layouts to work) */
share/assets/css/040-RapidApp.css:570:.form-group-body {
share/assets/css/040-RapidApp.css:574:/* Copied from x-plain (for IE + layouts to work) */
share/assets/css/040-RapidApp.css:575:.form-group-bwrap {
share/assets/css/040-RapidApp.css:581:.x-panel-collapsed .form-group-header-text {
share/assets/css/040-RapidApp.css:582:	background-position: 2px -15px;
share/assets/css/040-RapidApp.css:589:.x-form-display-field, .ext-gecko .x-form-display-field, .ext-strict .ext-ie7 .x-form-display-field {
share/assets/css/040-RapidApp.css:592:    padding-left: 0px;
share/assets/css/040-RapidApp.css:594:    z-index: 2;
share/assets/css/040-RapidApp.css:598:.floating-form .x-form-item
share/assets/css/040-RapidApp.css:602:    padding-right: 5px;
share/assets/css/040-RapidApp.css:604:.floating-form label.x-form-item-label
share/assets/css/040-RapidApp.css:606:    padding-right:0;
share/assets/css/040-RapidApp.css:608:.ext-ie .floating-form .x-form-clear-left
share/assets/css/040-RapidApp.css:619:-moz-border-radius: 12px !important;
share/assets/css/040-RapidApp.css:620:-webkit-border-radius: 12px !important;
share/assets/css/040-RapidApp.css:621:border-radius: 12px !important;
share/assets/css/040-RapidApp.css:622:background-color: #ffffcc !important;
share/assets/css/040-RapidApp.css:623:padding-bottom: 3px !important;
share/assets/css/040-RapidApp.css:624:padding-top: 3px !important;
share/assets/css/040-RapidApp.css:628:font-weight: bold !important;
share/assets/css/040-RapidApp.css:630:margin-left: 5px !important;
share/assets/css/040-RapidApp.css:631:font-size: 24px !important;
share/assets/css/040-RapidApp.css:632:/*text-decoration: underline !important;  */
share/assets/css/040-RapidApp.css:636:margin-left: 5px !important;
share/assets/css/040-RapidApp.css:637:margin-top: 5px !important;
share/assets/css/040-RapidApp.css:638:margin-bottom: 5px !important;
share/assets/css/040-RapidApp.css:639:font-weight: bold !important;
share/assets/css/040-RapidApp.css:640:font-size: 14px !important;
share/assets/css/040-RapidApp.css:641:padding-top: 3px !important;
share/assets/css/040-RapidApp.css:645:margin-left: 5px !important;
share/assets/css/040-RapidApp.css:646:margin-top: 5px !important;
share/assets/css/040-RapidApp.css:647:margin-bottom: 5px !important;
share/assets/css/040-RapidApp.css:648:font-weight: bold !important;
share/assets/css/040-RapidApp.css:649:font-size: 12px !important;
share/assets/css/040-RapidApp.css:650:padding-top: 3px !important;
share/assets/css/040-RapidApp.css:655:font-size: 9px !important;
share/assets/css/040-RapidApp.css:660:border-style: dotted !important;
share/assets/css/040-RapidApp.css:661:vertical-align: bottom !important;
share/assets/css/040-RapidApp.css:662:font-family: sans-serif !important;
share/assets/css/040-RapidApp.css:663:font-style: italic !important;
share/assets/css/040-RapidApp.css:670:margin-right: 20px !important;
share/assets/css/040-RapidApp.css:671:padding-top: 3px !important;
share/assets/css/040-RapidApp.css:676:font: "Lucida Grande", "Lucida Sans Unicode", "Trebuchet MS", sans-serif!important;
share/assets/css/040-RapidApp.css:679:border-collapse: collapse!important;
share/assets/css/040-RapidApp.css:686:text-decoration: none!important;
share/assets/css/040-RapidApp.css:687:border-bottom: 1px solid #C6C8CB!important;
share/assets/css/040-RapidApp.css:691:background: #3A4856!important; padding: 15px 10px!important; color: #fff!important; text-align: right!important; font-weight: bolder!important;
share/assets/css/040-RapidApp.css:694:table.GSprop tbody.GSprop, table.GSprop thead.GSprop {border-left: 1px solid #EAECEE!important; border-right: 1px solid #EAECEE!important;}
share/assets/css/040-RapidApp.css:696:table.GSprop tbody.GSprop {border-bottom: 1px solid #EAECEE!important;}
share/assets/css/040-RapidApp.css:699:padding: 5px!important; background: url("../../../assets/rapidapp/misc/static/images/td_back.gif") repeat-x!important; text-align: left!important;
share/assets/css/040-RapidApp.css:703:padding: 5px!important; background: url("../../../assets/rapidapp/misc/static/images/td_back.gif") repeat-x!important;
share/assets/css/040-RapidApp.css:706:th.GSprop { font-weight: bolder!important; margin: 5px !important; white-space:nowrap !important; padding: 2px!important;}
share/assets/css/040-RapidApp.css:707:th.GSprop.right { text-align: right!important; }
share/assets/css/040-RapidApp.css:718:text-align: left!important; font: 120%  "Lucida Grande", "Lucida Sans Unicode", "Trebuchet MS", sans-serif!important; text-transform: uppercase!important; background: #fff!important; padding: 10px!important;
share/assets/css/040-RapidApp.css:721:/* http://www.sencha.com/forum/showthread.php?77984-Field-help-text-plugin. */
share/assets/css/040-RapidApp.css:722:.x-form-helptext {
share/assets/css/040-RapidApp.css:723:    font-size: 9px;
share/assets/css/040-RapidApp.css:725:    white-space: normal;
share/assets/css/040-RapidApp.css:726:    padding-bottom:3px;
share/assets/css/040-RapidApp.css:730:.x-superboxselect-x-flag, body.ext-ie7 .x-superboxselect-x-flag, body.ext-ie6 .x-superboxselect-x-flag {
share/assets/css/040-RapidApp.css:731:	background-image: url(../../../assets/rapidapp/misc/static/s.gif);
share/assets/css/040-RapidApp.css:732:	background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:733:	background-position:  2px center;
share/assets/css/040-RapidApp.css:734:	padding-left: 21px !important;
share/assets/css/040-RapidApp.css:735:	white-space: normal !important;
share/assets/css/040-RapidApp.css:736:	/*text-indent: 17px !important;*/
share/assets/css/040-RapidApp.css:741:.x-superboxselect-item-close {background: url(close.png) no-repeat scroll left 0px; border: none; cursor: default; font-size: 1px; height: 16px;padding:0; position: absolute; right: 0px; top: 2px; width: 13px;display:block;cursor:pointer;}
share/assets/css/040-RapidApp.css:745:.x-superboxselect-item-read-only .x-superboxselect-item-close {visibility: hidden; background-image: none; border: none; cursor: default; font-size: 1px; height: 0px;padding:0; position: absolute; right: 0px; top: 2px; width: 0px;display:block;cursor:pointer;}
share/assets/css/040-RapidApp.css:748:.x-superboxselect-item-read-only 
share/assets/css/040-RapidApp.css:750:	-moz-border-radius:6px 6px 6px 6px !important;
share/assets/css/040-RapidApp.css:751:	background-color:#E7E7E7 !important;
share/assets/css/040-RapidApp.css:758:.read-only-formfield {
share/assets/css/040-RapidApp.css:759:	background-color: transparent!important;
share/assets/css/040-RapidApp.css:760:	border-color: transparent!important;
share/assets/css/040-RapidApp.css:761:	background-image:none!important;
share/assets/css/040-RapidApp.css:763:	# the normal text field has padding-top: 2px which makes the text sit towards
share/assets/css/040-RapidApp.css:768:	padding-top:1px!important;
share/assets/css/040-RapidApp.css:769:	padding-bottom:1px!important;
share/assets/css/040-RapidApp.css:772:.RapidApp-dt s {
share/assets/css/040-RapidApp.css:777:table.r-simple-table,
share/assets/css/040-RapidApp.css:778:.r-simple-table table {
share/assets/css/040-RapidApp.css:782:table.r-simple-table  td,
share/assets/css/040-RapidApp.css:783:.r-simple-table table td {
share/assets/css/040-RapidApp.css:787:table.r-simple-table  th,
share/assets/css/040-RapidApp.css:788:.r-simple-table table th {
share/assets/css/040-RapidApp.css:790:	font-weight: bold;
share/assets/css/040-RapidApp.css:793:table.r-simple-table  tr,
share/assets/css/040-RapidApp.css:794:.r-simple-table table tr  {
share/assets/css/040-RapidApp.css:798:table.r-simple-table  tr:nth-child(2n+1),
share/assets/css/040-RapidApp.css:799:.r-simple-table table tr:nth-child(2n+1) {
share/assets/css/040-RapidApp.css:803:table.r-simple-table  tr > td:first-child,
share/assets/css/040-RapidApp.css:804:.r-simple-table table tr > td:first-child {
share/assets/css/040-RapidApp.css:805:	font-weight: bold;
share/assets/css/040-RapidApp.css:810:.appsuperbox-create-item {
share/assets/css/040-RapidApp.css:811:	background:url(../../../assets/rapidapp/misc/static/images/add.png) center right no-repeat;
share/assets/css/040-RapidApp.css:815:	font-size: 12px;
share/assets/css/040-RapidApp.css:816:	font-family: arial;
share/assets/css/040-RapidApp.css:817:	white-space:nowrap;
share/assets/css/040-RapidApp.css:819:	font-weight: bold;
share/assets/css/040-RapidApp.css:822:	border-bottom-width: 1px;
share/assets/css/040-RapidApp.css:823:	border-color: transparent;
share/assets/css/040-RapidApp.css:827:.appsuperbox-create-item:hover {
share/assets/css/040-RapidApp.css:828:	border-bottom-style: dotted;
share/assets/css/040-RapidApp.css:829:	border-color: blue;
share/assets/css/040-RapidApp.css:834:.bgtask-terminal {
share/assets/css/040-RapidApp.css:835:	font-family: Pragmata, Menlo, 'DejaVu LGC Sans Mono', 'DejaVu Sans Mono', Consolas, 'Everson Mono', 'Lucida Console', 'Andale Mono', 'Nimbus Mono L', 'Liberation Mono', FreeMono, 'Osaka Monospaced', Courier, 'New Courier', monospace;
share/assets/css/040-RapidApp.css:838:.bgtask-terminal * {
share/assets/css/040-RapidApp.css:839:	white-space: pre-wrap; /* css-3 */
share/assets/css/040-RapidApp.css:840:	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
share/assets/css/040-RapidApp.css:841:	white-space: -pre-wrap; /* Opera 4-6 */
share/assets/css/040-RapidApp.css:842:	white-space: -o-pre-wrap; /* Opera 7 */ /*
share/assets/css/040-RapidApp.css:844:	word-wrap: break-word; /* Internet Explorer 5.5+ */
share/assets/css/040-RapidApp.css:848:/* alternative to x-grid3-dirty-cell, not currently in use */
share/assets/css/040-RapidApp.css:849:.border-dirty {
share/assets/css/040-RapidApp.css:850:  border-width:5px 0px 0px 5px;
share/assets/css/040-RapidApp.css:851:  -moz-border-image:url("../../../assets/rapidapp/misc/static/images/dirty.gif") 50% 50% 50% 50% stretch;
share/assets/css/040-RapidApp.css:852:  -webkit-border-image:url("../../../assets/rapidapp/misc/static/images/dirty.gif") 50% 50% 50% 50% stretch;
share/assets/css/040-RapidApp.css:853:  border-image: url("../../../assets/rapidapp/misc/static/images/dirty.gif") 50% 50% 50% 50% stretch;
share/assets/css/040-RapidApp.css:859:.menu-field-current-value {
share/assets/css/040-RapidApp.css:860:	font-weight: bold;
share/assets/css/040-RapidApp.css:861:	background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:862:	background-position: right center;
share/assets/css/040-RapidApp.css:863:	background-image: url(../../../assets/rapidapp/misc/static/images/checkbox_yes.png);
share/assets/css/040-RapidApp.css:867:.ra-batch-edit-heading {
share/assets/css/040-RapidApp.css:868:  font-size: 1.7em;
share/assets/css/040-RapidApp.css:869:  font-weight: bold;
share/assets/css/040-RapidApp.css:870:  text-align: center;
share/assets/css/040-RapidApp.css:871:  padding-bottom:15px;
share/assets/css/040-RapidApp.css:874:.ra-batch-edit-heading span.num {
share/assets/css/040-RapidApp.css:876:  font-size:1.25em;
share/assets/css/040-RapidApp.css:877:  font-weight:900;
share/assets/css/040-RapidApp.css:880:.ra-batch-edit-sub-heading {
share/assets/css/040-RapidApp.css:881:  text-align: center;
share/assets/css/040-RapidApp.css:882:  padding-bottom:20px;
share/assets/css/040-RapidApp.css:886:.ra-batch-edit-sub-heading .warn-line {
share/assets/css/040-RapidApp.css:887:  padding-top:10px;
share/assets/css/040-RapidApp.css:890:.ra-batch-edit-sub-heading span.warn {
share/assets/css/040-RapidApp.css:891:  font-weight: bold;
share/assets/css/040-RapidApp.css:897:.ra-relative-date {
share/assets/css/040-RapidApp.css:898:  font-size: 11px;
share/assets/css/040-RapidApp.css:899:  font-family: arial,tahoma,verdana,helvetica;
share/assets/css/040-RapidApp.css:901:  background-image: url(../../../assets/rapidapp/misc/static/images/clock_run_24x24.png);
share/assets/css/040-RapidApp.css:902:	background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:903:	background-position: 4px 2px;
share/assets/css/040-RapidApp.css:906:.ra-relative-date .title {
share/assets/css/040-RapidApp.css:908:  text-align: center;
share/assets/css/040-RapidApp.css:909:  font-size: 1.6em;
share/assets/css/040-RapidApp.css:910:  padding-left: 18px;
share/assets/css/040-RapidApp.css:911:  padding-top:2px;
share/assets/css/040-RapidApp.css:912:  padding-bottom: 8px;
share/assets/css/040-RapidApp.css:913:  line-height: 24px;
share/assets/css/040-RapidApp.css:916:.ra-relative-date .mono {
share/assets/css/040-RapidApp.css:917:  font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
share/assets/css/040-RapidApp.css:921:.ra-relative-date .sub {
share/assets/css/040-RapidApp.css:922:  padding-bottom: 6px;
share/assets/css/040-RapidApp.css:925:.ra-relative-date .examples {
share/assets/css/040-RapidApp.css:926:  font-weight: bold;
share/assets/css/040-RapidApp.css:929:.ra-relative-date table {
share/assets/css/040-RapidApp.css:930:  padding-left:5px;
share/assets/css/040-RapidApp.css:933:.ra-relative-date ul {
share/assets/css/040-RapidApp.css:934:  padding-top: 4px;
share/assets/css/040-RapidApp.css:935:  padding-left: 12px;
share/assets/css/040-RapidApp.css:936:  padding-bottom: 6px;
share/assets/css/040-RapidApp.css:939:.ra-relative-date li {
share/assets/css/040-RapidApp.css:941:  white-space: nowrap;
share/assets/css/040-RapidApp.css:942:  font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
share/assets/css/040-RapidApp.css:946:.ra-relative-date-renderval {
share/assets/css/040-RapidApp.css:948:  padding-top: 5px;
share/assets/css/040-RapidApp.css:949:  font-size: 11px;
share/assets/css/040-RapidApp.css:950:  font-family: arial,tahoma,verdana,helvetica;
share/assets/css/040-RapidApp.css:951:  font-style: italic;
share/assets/css/040-RapidApp.css:952:  text-align: center;
share/assets/css/040-RapidApp.css:953:  vertical-align:middle;
share/assets/css/040-RapidApp.css:958:.ra-relative-date-renderval sup {
share/assets/css/040-RapidApp.css:959:  vertical-align: baseline;
share/assets/css/040-RapidApp.css:960:	font-size: 0.7em;
share/assets/css/040-RapidApp.css:962:	top: -0.3em;
share/assets/css/040-RapidApp.css:965:.ra-relative-date-renderval span {
share/assets/css/040-RapidApp.css:966:  font-style: normal;
share/assets/css/040-RapidApp.css:967:  font-weight: bold;
share/assets/css/040-RapidApp.css:968:  font-variant: small-caps;
share/assets/css/040-RapidApp.css:971:.ra-footer {
share/assets/css/040-RapidApp.css:972:  font-size: 10.5px;
share/assets/css/040-RapidApp.css:973:  font-family: arial,tahoma,verdana,helvetica;
share/assets/css/040-RapidApp.css:974:  background-color: #EAEAEA;
share/assets/css/040-RapidApp.css:976:  vertical-align: middle;
share/assets/css/040-RapidApp.css:979:.ra-footer .wrap {
share/assets/css/040-RapidApp.css:981:  border-style: solid;
share/assets/css/040-RapidApp.css:982:  border-color: #D0D0D0;
share/assets/css/040-RapidApp.css:983:  border-top-width: 0px;
share/assets/css/040-RapidApp.css:984:  border-left-width: 1px;
share/assets/css/040-RapidApp.css:985:  border-right-width: 1px;
share/assets/css/040-RapidApp.css:986:  border-bottom-width: 1px;
share/assets/css/040-RapidApp.css:989:.ra-footer td {
share/assets/css/040-RapidApp.css:990:  vertical-align:middle;
share/assets/css/040-RapidApp.css:991:  padding-right:5px;
share/assets/css/040-RapidApp.css:992:  white-space: nowrap;
share/assets/css/040-RapidApp.css:995:.ra-footer td.left {
share/assets/css/040-RapidApp.css:996:  padding-left:5px;
share/assets/css/040-RapidApp.css:997:  text-align:left;
share/assets/css/040-RapidApp.css:998:  background-image: url(../../../assets/rapidapp/misc/static/images/rapidapp_powered_logo_tiny.png);
share/assets/css/040-RapidApp.css:999:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:1000:  background-position: left center;
share/assets/css/040-RapidApp.css:1003:.ra-footer td a.left {
share/assets/css/040-RapidApp.css:1004:  text-align:left;
share/assets/css/040-RapidApp.css:1005:  background-image: url(../../../assets/rapidapp/misc/static/images/rapidapp_powered_logo_tiny.png);
share/assets/css/040-RapidApp.css:1006:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:1007:  background-position: left center;
share/assets/css/040-RapidApp.css:1014:.ra-footer td a.ra-autopanel-reloader {
share/assets/css/040-RapidApp.css:1015:  margin-left:7px;
share/assets/css/040-RapidApp.css:1016:  margin-bottom: 5px;
share/assets/css/040-RapidApp.css:1019:.ra-footer td.center {
share/assets/css/040-RapidApp.css:1020:  text-align:center;
share/assets/css/040-RapidApp.css:1023:.ra-footer td.right {
share/assets/css/040-RapidApp.css:1024:  text-align:right;
share/assets/css/040-RapidApp.css:1029:.ra-datastore-app-field {
share/assets/css/040-RapidApp.css:1031:  padding-top: 2px;
share/assets/css/040-RapidApp.css:1032:  padding-right: 12px;
share/assets/css/040-RapidApp.css:1033:  padding-bottom: 1px;
share/assets/css/040-RapidApp.css:1034:  padding-left: 20px;
share/assets/css/040-RapidApp.css:1036:  z-index: 2;
share/assets/css/040-RapidApp.css:1038:  background-color: #FFFFFF;
share/assets/css/040-RapidApp.css:1039:  /*background-image: url("../images/default/form/text-bg.gif");*/
share/assets/css/040-RapidApp.css:1041:  border-color: #C1C1C1;
share/assets/css/040-RapidApp.css:1042:  min-height: 15px;
share/assets/css/040-RapidApp.css:1043:  background-image: url(../../../assets/rapidapp/misc/static/images/bullet_arrow_down.png);
share/assets/css/040-RapidApp.css:1044:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:1045:  background-position: 2px center;
share/assets/css/040-RapidApp.css:1046:  font: 11px tahoma,arial,helvetica,sans-serif;
share/assets/css/040-RapidApp.css:1048:  white-space: nowrap;
share/assets/css/040-RapidApp.css:1049:  text-overflow:ellipsis;
share/assets/css/040-RapidApp.css:1053:.ra-wrap-on {
share/assets/css/040-RapidApp.css:1054:  white-space: normal !important;
share/assets/css/040-RapidApp.css:1057:.ra-datastore-app-field-invalid {
share/assets/css/040-RapidApp.css:1058:  border-color: #CC3300 !important;
share/assets/css/040-RapidApp.css:1059:  background-color: #FFCCCC !important;
share/assets/css/040-RapidApp.css:1062:.ra-datastore-app-field-updating {
share/assets/css/040-RapidApp.css:1063:  background-image: url(../../../assets/rapidapp/misc/static/images/progress_green_blocks.gif) !important;
share/assets/css/040-RapidApp.css:1064:  background-position: 4px center;
share/assets/css/040-RapidApp.css:1065:  padding-right: 2px !important;
share/assets/css/040-RapidApp.css:1066:  padding-left: 30px !important;
share/assets/css/040-RapidApp.css:1068:  font-style:italic !important;
share/assets/css/040-RapidApp.css:1069:  font: 10px tahoma,arial,helvetica,sans-serif !important;
share/assets/css/040-RapidApp.css:1072:.ra-bold-grid-row .x-grid3-cell-inner {
share/assets/css/040-RapidApp.css:1073:  font-weight: bold;
share/assets/css/040-RapidApp.css:1074:  font-size: 1.1em;
share/assets/css/040-RapidApp.css:1076:  text-shadow:1px 1px 2px #989898;
share/assets/css/040-RapidApp.css:1080:.ra-combo-select-none {
share/assets/css/040-RapidApp.css:1082:  font-style: italic !important;
share/assets/css/040-RapidApp.css:1083:  padding-left: 8px;
share/assets/css/040-RapidApp.css:1084:  padding-right: 8px;
share/assets/css/040-RapidApp.css:1085:  padding-bottom: 3px;
share/assets/css/040-RapidApp.css:1086:  font-size: 1.1em;
share/assets/css/040-RapidApp.css:1089:.ra-exception-heading {
share/assets/css/040-RapidApp.css:1090:  background-image: url(../../../assets/rapidapp/misc/static/icon-error.gif);
share/assets/css/040-RapidApp.css:1091:  background-repeat: no-repeat;
share/assets/css/040-RapidApp.css:1092:  background-position: 10px center;
share/assets/css/040-RapidApp.css:1093:  padding-left:60px;
share/assets/css/040-RapidApp.css:1095:  font: 16px tahoma,arial,helvetica,sans-serif;
share/assets/css/040-RapidApp.css:1096:  font-weight: bold;
share/assets/css/040-RapidApp.css:1098:  padding-top:15px;
share/assets/css/040-RapidApp.css:1099:  padding-bottom:15px;
share/assets/css/040-RapidApp.css:1102:.ra-exception-heading .ra-icon-refresh {
share/assets/css/040-RapidApp.css:1103:  font-weight:normal;
share/assets/css/040-RapidApp.css:1104:  vertical-align:baseline;
share/assets/css/040-RapidApp.css:1105:  font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
share/assets/css/040-RapidApp.css:1108:.ra-exception-body * {
share/assets/css/040-RapidApp.css:1109:  word-wrap: break-word;
share/assets/css/040-RapidApp.css:1112:.ra-exception-body pre {
share/assets/css/040-RapidApp.css:1113:  white-space: pre-wrap;       /* css-3 */
share/assets/css/040-RapidApp.css:1114:  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
share/assets/css/040-RapidApp.css:1115:  white-space: -pre-wrap;      /* Opera 4-6 */
share/assets/css/040-RapidApp.css:1116:  white-space: -o-pre-wrap;    /* Opera 7 */
share/assets/css/040-RapidApp.css:1117:  word-wrap: break-word;    
share/assets/css/040-RapidApp.css:1120:.ra-autopanel-error {
share/assets/css/040-RapidApp.css:1121:  font-size: 1.2em;
share/assets/css/040-RapidApp.css:1129:.ra-autopanel-error .msg {
share/assets/css/040-RapidApp.css:1130:  padding-top: 15px;
share/assets/css/040-RapidApp.css:1131:  font-size: 1.2em;
share/assets/css/040-RapidApp.css:1132:  font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
share/assets/css/040-RapidApp.css:1139:  min-height: 200px;
share/assets/css/040-RapidApp.css:1142:.ra-autopanel-error .retry-foot {
share/assets/css/040-RapidApp.css:1152:.ra-search-box {
share/assets/css/040-RapidApp.css:1158:.ra-search-form {
share/assets/css/040-RapidApp.css:1161:  -webkit-border-radius: 5px;
share/assets/css/040-RapidApp.css:1162:  -moz-border-radius: 5px;
share/assets/css/040-RapidApp.css:1163:  border-radius: 5px;
share/assets/css/040-RapidApp.css:1164:  background-color: #fff;
share/assets/css/040-RapidApp.css:1168:.ra-search-text {
share/assets/css/040-RapidApp.css:1169:  font-size: 14px;
share/assets/css/040-RapidApp.css:1171:  border-width: 0;
share/assets/css/040-RapidApp.css:1175:.ra-search-box input[type="text"] {
share/assets/css/040-RapidApp.css:1181:  font-family: "Lucida Console", Monaco, monospace;
share/assets/css/040-RapidApp.css:1182:  font-weight: bold;
share/assets/css/040-RapidApp.css:1187:.ra-search-box input::-webkit-input-placeholder {
share/assets/css/040-RapidApp.css:1189:  font-weight: normal;
share/assets/css/040-RapidApp.css:1190:  font-family: Arial,Helvetica,sans-serif;
share/assets/css/040-RapidApp.css:1193:.ra-search-box input:-moz-placeholder {
share/assets/css/040-RapidApp.css:1195:  font-weight: normal;
share/assets/css/040-RapidApp.css:1196:  font-family: Arial,Helvetica,sans-serif;
share/assets/css/040-RapidApp.css:1199:.ra-search-box input:-ms-input-placeholder {
share/assets/css/040-RapidApp.css:1201:  font-weight: normal;
share/assets/css/040-RapidApp.css:1202:  font-family: Arial,Helvetica,sans-serif;
share/assets/css/040-RapidApp.css:1208:.ra-search-button {
share/assets/css/040-RapidApp.css:1214:  font-size: 14px;
share/assets/css/040-RapidApp.css:1216:  text-align: center;
share/assets/css/040-RapidApp.css:1217:  line-height: 32px;
share/assets/css/040-RapidApp.css:1218:  border-width: 0;
share/assets/css/040-RapidApp.css:1219:  background-color: #999;
share/assets/css/040-RapidApp.css:1220:  -webkit-border-radius: 0px 5px 5px 0px;
share/assets/css/040-RapidApp.css:1221:  -moz-border-radius: 0px 5px 5px 0px;
share/assets/css/040-RapidApp.css:1222:  border-radius: 0px 5px 5px 0px;
share/assets/css/040-RapidApp.css:1226:.ra-search-box-heading {
share/assets/css/040-RapidApp.css:1227:  font-size: 14px;
share/assets/css/040-RapidApp.css:1228:  font-family: Arial,Helvetica,sans-serif;
share/assets/css/040-RapidApp.css:1230:  font-weight: bold;
share/assets/css/040-RapidApp.css:1231:  padding-bottom:2px;
share/assets/css/040-RapidApp.css:1232:  padding-left:1px;
share/assets/css/040-RapidApp.css:1237:/* -----
share/assets/css/040-RapidApp.css:1240:multi-line editor, like a textarea or html editor.
share/assets/css/040-RapidApp.css:1242: * UPDATE -- it did cause problems someplace else, with broken scrolling in windows
share/assets/css/040-RapidApp.css:1246:.x-grid-panel>.x-panel-bwrap,
share/assets/css/040-RapidApp.css:1247:.x-grid-panel>.x-panel-bwrap>.x-grid-panel>.x-panel-body,
share/assets/css/040-RapidApp.css:1248:.x-grid-panel>.x-panel-bwrap>.x-panel-body,
share/assets/css/040-RapidApp.css:1249:.x-grid-panel>.x-panel-bwrap>.x-panel-body>.x-grid3,
share/assets/css/040-RapidApp.css:1250:.x-grid-panel>.x-panel-bwrap>.x-panel-body>.x-grid3>.x-grid3-viewport {
share/assets/css/040-RapidApp.css:1253:/* ----- */
share/assets/css/040-RapidApp.css:1256:.ra-override-cursor-default, .ra-override-cursor-default * {
share/assets/css/040-RapidApp.css:1260:/* http://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/ */
share/assets/css/040-RapidApp.css:1261:.hyphen-wrap {
share/assets/css/040-RapidApp.css:1262:  -ms-word-break: break-all;
share/assets/css/040-RapidApp.css:1263:  word-break: break-all;
share/assets/css/040-RapidApp.css:1264:  word-break: break-word; 
share/assets/css/040-RapidApp.css:1265:  -webkit-hyphens: auto;
share/assets/css/040-RapidApp.css:1266:  -moz-hyphens: auto;
share/assets/css/040-RapidApp.css:1270:.ra-ra-icon-actioncolumn {
share/assets/css/040-RapidApp.css:1277:.x-tab-strip-active a:hover, .x-tab-strip-active a:hover * { cursor: default; }
share/assets/css/040-RapidApp.css:1288:.ra-tab-icon-only-16px {
share/assets/css/040-RapidApp.css:1289:  background-position: 4px 3px !important;
share/assets/css/040-RapidApp.css:1290:  padding-left: 0px !important;
share/assets/css/040-RapidApp.css:1294:/* Added to fix Github Issue #12 - we want to make sure any
share/assets/css/040-RapidApp.css:1297:.x-tab-strip .x-tab-strip-text span { display: inline; }
share/assets/css/040-RapidApp.css:1302:.ra-tab-dirty-flag {
share/assets/css/040-RapidApp.css:1303:  font-weight:bold;
share/assets/css/040-RapidApp.css:1304:  font-size:1.2em;
share/assets/css/040-RapidApp.css:1305:  line-height: 1em;
share/assets/css/040-RapidApp.css:1309:.ra-grid-tb-query-time {
share/assets/css/040-RapidApp.css:1312:  font-size:0.85em !important;
share/assets/css/040-RapidApp.css:1313:  line-height: 0.93em !important;
share/assets/css/040-RapidApp.css:1317:.xtb-text.ra-grid-tb-query-time {
share/assets/css/040-RapidApp.css:1318:  padding-left:6px !important;
share/assets/css/040-RapidApp.css:1319:  padding-bottom:4px !important;
share/assets/css/040-RapidApp.css:1320:  min-width: 50px;
share/assets/css/040-RapidApp.css:1321:  white-space: normal;
share/assets/css/040-RapidApp.css:1322:  word-wrap: break-word;
share/assets/css/040-RapidApp.css:1323:  text-align: center;
share/assets/css/040-RapidApp.css:1328:.ra-autopanel-reloader             { visibility: hidden; }
share/assets/css/040-RapidApp.css:1329:.ra-ap-body .ra-autopanel-reloader  { visibility: visible; }
share/assets/css/040-RapidApp.css:1333:.ra-ap-body > .ra-ap-borders,
share/assets/css/040-RapidApp.css:1334:.ra-ap-body > div > .ra-ap-borders,
share/assets/css/040-RapidApp.css:1335:.ra-ap-body > div > div > .ra-ap-borders {
share/assets/css/040-RapidApp.css:1340:.ra-autopanel-reloader {
share/assets/css/040-RapidApp.css:1344:.ra-autopanel-reloader:hover {
share/assets/css/040-RapidApp.css:1347:	text-decoration:underline;
share/assets/css/040-RapidApp.css:1351: TODO: this is a hack, and the mouse-over/highlight of tree nodes
share/assets/css/040-RapidApp.css:1354:#main-navtrees-container .x-panel-body, 
share/assets/css/040-RapidApp.css:1355:#main-navtrees-container .x-panel-bwrap,
share/assets/css/040-RapidApp.css:1356:#main-navtrees-container .x-tree {
share/assets/css/040-RapidApp.css:1361:.ra-nav-link                  { visibility: hidden; }
share/assets/css/040-RapidApp.css:1362:#main-load-target .ra-nav-link  { visibility: visible; }
share/assets/css/040-RapidApp.css:1364:.ra-null-val {
share/assets/css/040-RapidApp.css:1367:.ra-dirty-display-val {
share/assets/css/040-RapidApp.css:1369:  font-style: italic;
share/assets/css/040-RapidApp.css:1370:  border-bottom: 1px dotted #c00000;
share/assets/css/040-RapidApp.css:1373:.ra-hex-string {
share/assets/css/040-RapidApp.css:1375:  font-family: "Lucida Console", Monaco, monospace !important;
share/assets/css/040-RapidApp.css:1376:  font-size: 0.8em !important;
share/assets/css/040-RapidApp.css:1380:.ra-x-form-arrow-trigger-light {
share/assets/css/040-RapidApp.css:1381:  background-image: url(../../../assets/rapidapp/misc/static/images/trigger-square-light.gif) !important;
share/assets/css/040-RapidApp.css:1385:.ra-wrapword, .ra-wrapword * {
share/assets/css/040-RapidApp.css:1386:  white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
share/assets/css/040-RapidApp.css:1387:  white-space: -webkit-pre-wrap; /*Chrome & Safari */ 
share/assets/css/040-RapidApp.css:1388:  white-space: -pre-wrap;      /* Opera 4-6 */
share/assets/css/040-RapidApp.css:1389:  white-space: -o-pre-wrap;    /* Opera 7 */
share/assets/css/040-RapidApp.css:1390:  white-space: pre-wrap;       /* css-3 */
share/assets/css/040-RapidApp.css:1391:  word-wrap: break-word;       /* Internet Explorer 5.5+ */
share/assets/css/040-RapidApp.css:1392:  word-break: break-all;
share/assets/css/040-RapidApp.css:1393:  white-space: normal;
share/assets/css/040-RapidApp.css:1398:.ra-short-tab-title {
share/assets/css/040-RapidApp.css:1399:  white-space: nowrap;
share/assets/css/040-RapidApp.css:1401:  text-overflow: ellipsis;
share/assets/css/040-RapidApp.css:1405:  white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
share/assets/css/040-RapidApp.css:1406:  white-space: -pre-wrap;      /* Opera 4-6 */
share/assets/css/040-RapidApp.css:1407:  white-space: -o-pre-wrap;    /* Opera 7 */
share/assets/css/040-RapidApp.css:1408:  white-space: pre-wrap;       /* css-3 */
share/assets/css/040-RapidApp.css:1409:  word-wrap: break-word;       /* Internet Explorer 5.5+ */
share/assets/css/040-RapidApp.css:1410:  white-space: -webkit-pre-wrap; /* Newer versions of Chrome/Safari*/
share/assets/css/040-RapidApp.css:1411:  word-break: break-all;
share/assets/css/040-RapidApp.css:1412:  white-space: normal;
share/assets/css/040-RapidApp.css:1419:body > #main-load-target > .x-tab-panel-header {
share/assets/css/040-RapidApp.css:1420:  border-top-width:1px;
share/assets/css/040-RapidApp.css:1421:  border-left-width:1px;
share/assets/css/040-RapidApp.css:1422:  border-right-width:1px;
share/assets/css/040-RapidApp.css:1426:/* Fix CSS bug in ExtJS --
share/assets/css/040-RapidApp.css:1432:   is already in place, but prepend x-grid-panel to make it have higher priority.
share/assets/css/040-RapidApp.css:1435:.x-grid-panel .x-panel-noborder .x-panel-body-noborder {
share/assets/css/040-RapidApp.css:1436:    border-width:0; 
share/assets/css/040-RapidApp.css:1440:/* This style draws a line between the the form-panel items and the buttons, which
share/assets/css/040-RapidApp.css:1445:.ra-datastore-add-edit-form>.x-panel-bwrap>.x-panel-bl {
share/assets/css/040-RapidApp.css:1446:  border-top: 1px solid #D0D0D0;
share/assets/css/040-RapidApp.css:1449:.ra-paging-total-count-btn button {
share/assets/css/040-RapidApp.css:1450:  font-size:1.1em;
share/assets/css/040-RapidApp.css:1452:  padding-left: 0px !important;
share/assets/css/040-RapidApp.css:1453:  margin-left: 0px;
share/assets/css/040-RapidApp.css:1454:  padding-right: 0px !important;
share/assets/css/040-RapidApp.css:1455:  margin-bottom: -3px;
share/assets/css/040-RapidApp.css:1458:.ra-paging-total-count-btn button .off {
share/assets/css/040-RapidApp.css:1459:  font-size:.9em;
share/assets/css/040-RapidApp.css:1461:  font-style: italic !important; 
share/assets/css/040-RapidApp.css:1462:  margin-left: 4px;
share/assets/css/040-RapidApp.css:1463:  /*border-bottom: 1px dotted grey;
share/assets/css/040-RapidApp.css:1464:  font-family: "Lucida Console", Monaco, monospace;*/
share/assets/css/040-RapidApp.css:1467:/* see logic in 950-mutation-observers.js */
share/assets/css/040-RapidApp.css:1468:.ra-mo-expandable-max-height {
share/assets/css/045-AppDV.css:3:.appdv-edit-box {
share/assets/css/045-AppDV.css:8:  padding-top:4px;
share/assets/css/045-AppDV.css:9:  padding-left:4px;
share/assets/css/045-AppDV.css:11:  z-index:500;
share/assets/css/045-AppDV.css:12:  font-size: 10px;
share/assets/css/045-AppDV.css:13:  font-family: arial;
share/assets/css/045-AppDV.css:14:  background:url(../../../assets/rapidapp/misc/static/images/pencil_tiny.png) center right no-repeat floralwhite;
share/assets/css/045-AppDV.css:16:  white-space:nowrap;
share/assets/css/045-AppDV.css:18:  font-weight: normal;
share/assets/css/045-AppDV.css:19:  text-decoration:underline;
share/assets/css/045-AppDV.css:20:  border-style: dotted;
share/assets/css/045-AppDV.css:21:  border-width: 1px;
share/assets/css/045-AppDV.css:22:  border-color: blue;
share/assets/css/045-AppDV.css:25:.appdv-field-value:hover, .appdv-field-value:hover .appdv-edit-box {
share/assets/css/045-AppDV.css:30:.appdv-edit-box + .save, .appdv-edit-box + .cancel, .editing .appdv-edit-box {
share/assets/css/045-AppDV.css:34:.editing .appdv-edit-box + .save, .editing .appdv-edit-box + .cancel {
share/assets/css/045-AppDV.css:40:  padding-right: 1px;
share/assets/css/045-AppDV.css:44:.editing .appdv-edit-box + .save {
share/assets/css/045-AppDV.css:45:  background:url(../../../assets/rapidapp/misc/static/images/bullet_disk.png) center right no-repeat floralwhite;
share/assets/css/045-AppDV.css:46:  padding-right: 15px;
share/assets/css/045-AppDV.css:55:/******************  edit-record-toggle  *****************/
share/assets/css/045-AppDV.css:57:.appdv-tt-generated .edit-record-toggle.default {
share/assets/css/045-AppDV.css:61:.record-update .appdv-tt-generated .edit-record-toggle .edit {
share/assets/css/045-AppDV.css:65:.appdv-tt-generated .edit-record-toggle .edit,
share/assets/css/045-AppDV.css:66:.appdv-tt-generated .edit-record-toggle .save,
share/assets/css/045-AppDV.css:67:.appdv-tt-generated .edit-record-toggle .cancel {
share/assets/css/045-AppDV.css:72:.appdv-tt-generated .edit-record-toggle.default .edit,
share/assets/css/045-AppDV.css:73:.appdv-tt-generated .edit-record-toggle.default .save,
share/assets/css/045-AppDV.css:74:.appdv-tt-generated .edit-record-toggle.default .cancel {
share/assets/css/045-AppDV.css:78:  font-size: 11px;
share/assets/css/045-AppDV.css:79:  line-height: 12px;
share/assets/css/045-AppDV.css:80:  font-family: arial;
share/assets/css/045-AppDV.css:81:  white-space:nowrap;
share/assets/css/045-AppDV.css:83:  font-weight: bold;
share/assets/css/045-AppDV.css:85:  border-bottom-width: 1px;
share/assets/css/045-AppDV.css:86:  border-bottom-style: dotted;
share/assets/css/045-AppDV.css:87:  border-color: transparent;
share/assets/css/045-AppDV.css:90:.appdv-tt-generated .edit-record-toggle.default .edit:hover,
share/assets/css/045-AppDV.css:91:.appdv-tt-generated .edit-record-toggle.default .save:hover,
share/assets/css/045-AppDV.css:92:.appdv-tt-generated .edit-record-toggle.default .cancel:hover {
share/assets/css/045-AppDV.css:93:  border-color: blue;
share/assets/css/045-AppDV.css:96:.appdv-tt-generated .edit-record-toggle .edit {
share/assets/css/045-AppDV.css:97:  display:inline-block;
share/assets/css/045-AppDV.css:100:.editing-record .appdv-tt-generated .edit-record-toggle .edit,
share/assets/css/045-AppDV.css:101:.ra-dsapi-deny-update .appdv-tt-generated .edit-record-toggle .edit {
share/assets/css/045-AppDV.css:106:.record-over:hover .appdv-tt-generated .edit-record-toggle .edit {
share/assets/css/045-AppDV.css:111:.editing-record .appdv-tt-generated .edit-record-toggle .save, 
share/assets/css/045-AppDV.css:112:.editing-record .appdv-tt-generated .edit-record-toggle .cancel {
share/assets/css/045-AppDV.css:114:  display:inline-block;
share/assets/css/045-AppDV.css:117:.appdv-tt-generated .edit-record-toggle.default .edit {
share/assets/css/045-AppDV.css:118:  background:url(../../../assets/rapidapp/misc/static/images/pencil_tiny.png) center right no-repeat;
share/assets/css/045-AppDV.css:121:.appdv-tt-generated .edit-record-toggle.default .save {
share/assets/css/045-AppDV.css:122:  background:url(../../../assets/rapidapp/misc/static/images/bullet_disk.png) center right no-repeat;
share/assets/css/045-AppDV.css:125:.appdv-tt-generated .edit-record-toggle.default .cancel {
share/assets/css/045-AppDV.css:126:  background:url(../../../assets/rapidapp/misc/static/images/bullet_cross.png) center right no-repeat;
share/assets/css/045-AppDV.css:129:/******************  END edit-record-toggle  *****************/
share/assets/css/045-AppDV.css:133:/******************  record-delete  *****************/
share/assets/css/045-AppDV.css:135:.appdv-tt-generated .delete-record, 
share/assets/css/045-AppDV.css:136:.appdv-tt-generated .print-view {
share/assets/css/045-AppDV.css:137:  display:inline-block;
share/assets/css/045-AppDV.css:138:  background:url(../../../assets/rapidapp/misc/static/images/cross.png) center right no-repeat;
share/assets/css/045-AppDV.css:142:  font-size: 12px;
share/assets/css/045-AppDV.css:143:  line-height: 16px;
share/assets/css/045-AppDV.css:144:  font-family: arial;
share/assets/css/045-AppDV.css:145:  white-space:nowrap;
share/assets/css/045-AppDV.css:147:  font-weight: bold;
share/assets/css/045-AppDV.css:148:  border-bottom-width: 1px;
share/assets/css/045-AppDV.css:149:  border-bottom-style: solid;
share/assets/css/045-AppDV.css:150:  border-color: transparent;
share/assets/css/045-AppDV.css:154:.appdv-tt-generated .print-view {
share/assets/css/045-AppDV.css:155:    background:url(../../../assets/rapidapp/misc/static/images/printer.png) center right no-repeat;
share/assets/css/045-AppDV.css:158:.rapidapp-printview .appdv-tt-generated .print-view {
share/assets/css/045-AppDV.css:162:.appdv-tt-generated .delete-record:hover, 
share/assets/css/045-AppDV.css:163:.appdv-tt-generated .print-view:hover {
share/assets/css/045-AppDV.css:164:  border-bottom-style: dotted;
share/assets/css/045-AppDV.css:165:  border-color: blue;
share/assets/css/045-AppDV.css:170:.editing-record .appdv-tt-generated .delete-record,
share/assets/css/045-AppDV.css:171:.ra-dsapi-deny-destroy .appdv-tt-generated .delete-record {
share/assets/css/045-AppDV.css:176:/* This rule has been moved into 510-AppDV.js to be dynamically generated for each
share/assets/css/045-AppDV.css:179:ra-dsapi-deny-destroy .appdv-tt-generated .delete-record, */
share/assets/css/045-AppDV.css:180:.editing-record .appdv-tt-generated .delete-record {
share/assets/css/045-AppDV.css:185:    .appdv-tt-generated .delete-record {
share/assets/css/045-AppDV.css:190:/******************  END record-delete  *****************/
share/assets/css/045-AppDV.css:195:.appdv-editable-value {
share/assets/css/045-AppDV.css:196:  padding-right: 14px;
share/assets/css/045-AppDV.css:199:.appdv-editable-value:hover {
share/assets/css/045-AppDV.css:200:  background:url(../../../assets/rapidapp/misc/static/images/pencil_tiny.png) center right no-repeat;
share/assets/css/045-AppDV.css:204:.appdv-editable-value:hover span {
share/assets/css/045-AppDV.css:205:  border-bottom-style: dotted;
share/assets/css/045-AppDV.css:206:  border-bottom-width: 1px;
share/assets/css/045-AppDV.css:207:  border-color: blue;
share/assets/css/045-AppDV.css:212:/****************** appdv-edit-field ******************/
share/assets/css/045-AppDV.css:214:.appdv-edit-field .icons {
share/assets/css/045-AppDV.css:218:.appdv-edit-field .icons div {
share/assets/css/045-AppDV.css:225:.editing-record .appdv-edit-field .icons div,
share/assets/css/045-AppDV.css:226:.record-update  .appdv-edit-field .icons div,
share/assets/css/045-AppDV.css:227:.non-phantom .no-edit .appdv-edit-field .icons div,
share/assets/css/045-AppDV.css:228:.ra-dsapi-deny-update .non-phantom .appdv-edit-field .icons div {
share/assets/css/045-AppDV.css:233:.appdv-edit-field .icons .edit {
share/assets/css/045-AppDV.css:236:  background:url(../../../assets/rapidapp/misc/static/images/pencil_tiny_gray.png) right center no-repeat;
share/assets/css/045-AppDV.css:239:.appdv-edit-field .icons .save {
share/assets/css/045-AppDV.css:240:  background:url(../../../assets/rapidapp/misc/static/images/bullet_disk.png) center center no-repeat;
share/assets/css/045-AppDV.css:244:.appdv-edit-field .icons .cancel {
share/assets/css/045-AppDV.css:245:  background:url(../../../assets/rapidapp/misc/static/images/bullet_cross.png) center center no-repeat;
share/assets/css/045-AppDV.css:249:.appdv-edit-field:hover .icons .edit {
share/assets/css/045-AppDV.css:251:  background:url(../../../assets/rapidapp/misc/static/images/pencil_tiny.png) right center no-repeat;
share/assets/css/045-AppDV.css:255:.appdv-edit-field .data-holder, 
share/assets/css/045-AppDV.css:256:.onepx-transparent-border-bottom {
share/assets/css/045-AppDV.css:257:  border-bottom-style: dotted;
share/assets/css/045-AppDV.css:258:  border-bottom-width: 1px;
share/assets/css/045-AppDV.css:259:  border-color: transparent;
share/assets/css/045-AppDV.css:263:.appdv-edit-field td, 
share/assets/css/045-AppDV.css:264:.appdv-edit-field tr {
share/assets/css/045-AppDV.css:268:.appdv-edit-field:hover .data-holder {
share/assets/css/045-AppDV.css:269:  border-color: blue;
share/assets/css/045-AppDV.css:273:.non-phantom .no-edit .appdv-edit-field:hover .data-holder,
share/assets/css/045-AppDV.css:274:.ra-dsapi-deny-update .non-phantom .appdv-edit-field:hover .data-holder {
share/assets/css/045-AppDV.css:275:  border-color: transparent;
share/assets/css/045-AppDV.css:279:.editing .appdv-edit-field .icons .save, 
share/assets/css/045-AppDV.css:280:.editing .appdv-edit-field .icons .cancel {
share/assets/css/045-AppDV.css:281:  display:inline-block;
share/assets/css/045-AppDV.css:285:.editing .appdv-edit-field .icons .edit {
share/assets/css/045-AppDV.css:290:/****************** END appdv-edit-field ******************/
share/assets/css/045-AppDV.css:294:/****************** appdv-edit-bigfield ******************/
share/assets/css/045-AppDV.css:296:div.appdv-edit-bigfield {
share/assets/css/045-AppDV.css:298:  min-height: 20px;
share/assets/css/045-AppDV.css:301:div.appdv-edit-bigfield .data-wrapper .data-holder {
share/assets/css/045-AppDV.css:302:  padding-right: 50px; /* make room for *edit* */
share/assets/css/045-AppDV.css:305:.editing-record .appdv-edit-bigfield .icons div,
share/assets/css/045-AppDV.css:306:.record-update .appdv-edit-bigfield .icons div,
share/assets/css/045-AppDV.css:307:.non-phantom .no-edit .appdv-edit-bigfield .icons div,
share/assets/css/045-AppDV.css:308:.ra-dsapi-deny-update .non-phantom .appdv-edit-bigfield .icons div {
share/assets/css/045-AppDV.css:313:.appdv-edit-bigfield div.edit,
share/assets/css/045-AppDV.css:314:.appdv-edit-bigfield div.save,
share/assets/css/045-AppDV.css:315:.appdv-edit-bigfield div.cancel {
share/assets/css/045-AppDV.css:320:  padding-top:4px;
share/assets/css/045-AppDV.css:321:  padding-left:4px;
share/assets/css/045-AppDV.css:323:  z-index:500;
share/assets/css/045-AppDV.css:324:  font-size: 10px;
share/assets/css/045-AppDV.css:325:  line-height: 11px;
share/assets/css/045-AppDV.css:326:  font-family: arial;
share/assets/css/045-AppDV.css:328:  margin-right:1px;
share/assets/css/045-AppDV.css:329:  white-space:nowrap;
share/assets/css/045-AppDV.css:331:  font-weight: normal;
share/assets/css/045-AppDV.css:332:  border-style: dotted;
share/assets/css/045-AppDV.css:333:  border-width: 1px;
share/assets/css/045-AppDV.css:334:  border-color: blue;
share/assets/css/045-AppDV.css:339:.appdv-edit-bigfield .icons .edit {
share/assets/css/045-AppDV.css:342:  border-color: transparent;
share/assets/css/045-AppDV.css:343:  background:url(../../../assets/rapidapp/misc/static/images/bullet_pencil_gray.png) center right no-repeat;
share/assets/css/045-AppDV.css:346:.appdv-edit-bigfield:hover .icons .edit {
share/assets/css/045-AppDV.css:350:.appdv-edit-bigfield:hover .icons:hover .edit {
share/assets/css/045-AppDV.css:352:  border-color: blue;
share/assets/css/045-AppDV.css:353:  text-decoration:underline;
share/assets/css/045-AppDV.css:354:  background:url(../../../assets/rapidapp/misc/static/images/bullet_pencil.png) center right no-repeat floralwhite;
share/assets/css/045-AppDV.css:357:.appdv-edit-bigfield .icons .save {
share/assets/css/045-AppDV.css:358:  background:url(../../../assets/rapidapp/misc/static/images/bullet_disk.png) center right no-repeat floralwhite;
share/assets/css/045-AppDV.css:361:.appdv-edit-bigfield .icons .cancel {
share/assets/css/045-AppDV.css:362:  background:url(../../../assets/rapidapp/misc/static/images/bullet_cross.png) center right no-repeat floralwhite;
share/assets/css/045-AppDV.css:365:.appdv-edit-bigfield:hover .icons, 
share/assets/css/045-AppDV.css:366:.appdv-edit-bigfield:hover .icons .edit {
share/assets/css/045-AppDV.css:370:.editing .appdv-edit-bigfield .icons .edit, 
share/assets/css/045-AppDV.css:371:.appdv-edit-bigfield:hover .icons .save, 
share/assets/css/045-AppDV.css:372:.appdv-edit-bigfield:hover .icons .cancel {
share/assets/css/045-AppDV.css:376:.editing .appdv-edit-bigfield .icons .save, 
share/assets/css/045-AppDV.css:377:.editing .appdv-edit-bigfield .icons .cancel {
share/assets/css/045-AppDV.css:384:.editing .appdv-edit-bigfield .icons .save:hover, 
share/assets/css/045-AppDV.css:385:.editing .appdv-edit-bigfield .icons .cancel:hover {
share/assets/css/045-AppDV.css:389:div.appdv-edit-bigfield .icons .pseudo-edit-wrapper {
share/assets/css/045-AppDV.css:394:  bottom: -2px;
share/assets/css/045-AppDV.css:395:  left: -2px;
share/assets/css/045-AppDV.css:396:  border-top-style: none;
share/assets/css/045-AppDV.css:397:  border-right-style: none;
share/assets/css/045-AppDV.css:398:  border-top-width: 0px;
share/assets/css/045-AppDV.css:399:  border-right-width: 0px;
share/assets/css/045-AppDV.css:400:  border-left-style: dotted;
share/assets/css/045-AppDV.css:401:  border-bottom-style: dotted;
share/assets/css/045-AppDV.css:402:  border-left-width: 1px;
share/assets/css/045-AppDV.css:403:  border-bottom-width: 1px;
share/assets/css/045-AppDV.css:404:  border-color: blue;
share/assets/css/045-AppDV.css:407:.appdv-edit-bigfield .icons .edit:hover + .pseudo-edit-wrapper {
share/assets/css/045-AppDV.css:411:/****************** END appdv-edit-bigfield ******************/
share/assets/css/045-AppDV.css:416:.no_update .edit, .no_destroy .delete-record {
share/assets/css/045-AppDV.css:426:.appdv-tt-generated .clickable .editable-value .data {
share/assets/css/045-AppDV.css:427:  padding-right: 14px;
share/assets/css/045-AppDV.css:430:.appdv-tt-generated .clickable .editable-value .data:hover {
share/assets/css/045-AppDV.css:431:  background:url(../../../assets/rapidapp/misc/static/images/pencil_tiny.png) center right no-repeat;
share/assets/css/045-AppDV.css:435:.appdv-tt-generated .clickable .editable-value .data:hover span {
share/assets/css/045-AppDV.css:436:  border-bottom-style: dotted;
share/assets/css/045-AppDV.css:437:  border-bottom-width: 1px;
share/assets/css/045-AppDV.css:438:  border-color: blue;
share/assets/css/045-AppDV.css:441:.appdv-tt-generated .clickable .editable-value .save, .appdv-tt-generated .clickable .editable-value .cancel {
share/assets/css/045-AppDV.css:446:  padding-top:4px;
share/assets/css/045-AppDV.css:447:  padding-left:4px;
share/assets/css/045-AppDV.css:449:  z-index:500;
share/assets/css/045-AppDV.css:450:  font-size: 10px;
share/assets/css/045-AppDV.css:451:  font-family: arial;
share/assets/css/045-AppDV.css:452:  background:url(../../../assets/rapidapp/misc/static/images/pencil_tiny.png) center right no-repeat floralwhite;
share/assets/css/045-AppDV.css:454:  white-space:nowrap;
share/assets/css/045-AppDV.css:456:  font-weight: normal;
share/assets/css/045-AppDV.css:457:  text-decoration:underline;
share/assets/css/045-AppDV.css:458:  border-style: dotted;
share/assets/css/045-AppDV.css:459:  border-width: 1px;
share/assets/css/045-AppDV.css:460:  border-color: blue;
share/assets/css/045-AppDV.css:464:.appdv-tt-generated .clickable .editable-value + .editing .save, .appdv-tt-generated .clickable .editable-value + .editing .cancel {
share/assets/css/045-AppDV.css:481:  The 'inln' class is applied to edit-fields within AppDV server-side code
share/assets/css/045-AppDV.css:492:div.appdv-tt-generated.inln, 
share/assets/css/045-AppDV.css:493:div.appdv-tt-generated .inln,
share/assets/css/045-AppDV.css:494:div.appdv-tt-generated .appdv-edit-field * {
share/assets/css/045-AppDV.css:495:  display: inline-block;
share/assets/css/045-AppDV.css:496:  max-width:100%;
share/assets/css/045-AppDV.css:499:/*  Special block 'blk' override, used for fields like cas-image-field */
share/assets/css/045-AppDV.css:503:   such is the case of <img> autosized using  with max-width:100%. This
share/assets/css/045-AppDV.css:507:div.appdv-tt-generated.blk .appdv-edit-field.inln {
share/assets/css/045-AppDV.css:509:  margin-right:25px;
share/assets/css/045-AppDV.css:512:div.appdv-tt-generated.blk .appdv-edit-field.inln .icons {
share/assets/css/045-AppDV.css:515:  right:-23px;
share/assets/css/045-AppDV.css:516:  display: inline-block;
share/assets/css/045-AppDV.css:526:div.appdv-tt-generated .editable-value .appdv-edit-field .data-holder {
share/assets/css/045-AppDV.css:527:  line-height: 100%;
share/assets/css/045-AppDV.css:528:  padding-bottom:2px;
share/assets/css/045-AppDV.css:532:.appdv-tt-generated .clickable {
share/assets/css/045-AppDV.css:536:.appdv-tt-generated .appdv-edit-bigfield .data-wrapper {
share/assets/css/045-AppDV.css:542:.ra-dsbtn-deny-add     .appdv-tt-generated .store-button.add,
share/assets/css/045-AppDV.css:543:.ra-dsapi-deny-create  .appdv-tt-generated .store-button.add,
share/assets/css/045-AppDV.css:544:.ra-dsbtn-deny-edit    .appdv-tt-generated .store-button.edit,
share/assets/css/045-AppDV.css:545:.ra-dsapi-deny-update  .appdv-tt-generated .store-button.edit,
share/assets/css/045-AppDV.css:546:.ra-dsbtn-deny-delete  .appdv-tt-generated .store-button.delete,
share/assets/css/045-AppDV.css:547:.ra-dsapi-deny-destroy .appdv-tt-generated .store-button.delete,
share/assets/css/045-AppDV.css:548:.ra-dsbtn-deny-reload  .appdv-tt-generated .store-button.reload,
share/assets/css/045-AppDV.css:549:.ra-dsbtn-deny-save    .appdv-tt-generated .store-button.save,
share/assets/css/045-AppDV.css:550:.ra-dsbtn-deny-undo    .appdv-tt-generated .store-button.undo {
share/assets/css/045-AppDV.css:557:.appdv-tt-generated .x-grid3-dirty-cell {
share/assets/css/045-AppDV.css:558:  padding-left:5px;
share/assets/css/045-AppDV.css:561:.appdv-rec-invalids .appdv-tt-generated .edit-record-toggle .save,
share/assets/css/045-AppDV.css:562:.appdv-tt-generated .appdv-field-invalid .appdv-edit-field .icons .save {
share/assets/css/045-AppDV.css:564:  pointer-events: none;
share/assets/css/045-AppDV.css:570:  appdv-fill-absolute class name can be set on a tag which encloses a big-field where it uses
share/assets/css/045-AppDV.css:574:.appdv-fill-absolute > .appdv-tt-generated {
share/assets/css/045-AppDV.css:580:.appdv-fill-absolute > .appdv-tt-generated > .clickable,
share/assets/css/045-AppDV.css:581:.appdv-fill-absolute > .appdv-tt-generated > .clickable > .editable-value
share/assets/css/045-AppDV.css:583:  max-height: 100%;
share/assets/css/045-AppDV.css:584:  max-width: 100%;
share/assets/css/045-AppDV.css:587:.appdv-fill-absolute > .appdv-tt-generated > .clickable > .editable-value > .appdv-edit-bigfield {
share/assets/css/045-AppDV.css:589:  max-height: 100%;
share/assets/css/045-AppDV.css:590:  max-width: 100%;
share/assets/css/045-AppDV.css:593:.appdv-fill-absolute > .appdv-tt-generated > .clickable > .editable-value > .appdv-edit-bigfield .data-holder,
share/assets/css/045-AppDV.css:594:.appdv-fill-absolute > .appdv-tt-generated > .clickable > .editable-value > .appdv-edit-bigfield .field-holder .x-form-field
share/assets/css/050-gridsummary.css:1:/* [OPTIONAL] -- may be used for either Ext.grid.GroupSummary / Ext.ux.grid.GridSummary plugins */
share/assets/css/050-gridsummary.css:2:.x-grid3-summary-row{border-left:1px solid #fff;border-right:1px solid #fff;color:#333;background:#f1f2f4;}
share/assets/css/050-gridsummary.css:3:.x-grid3-summary-row .x-grid3-cell-inner{font-weight:bold;padding-bottom:4px;}
share/assets/css/050-gridsummary.css:4:/*.x-grid3-cell-first .x-grid3-cell-inner{padding-left:16px;}*/
share/assets/css/050-gridsummary.css:5:.x-grid-hide-summary .x-grid3-summary-row{display:none;}
share/assets/css/050-gridsummary.css:6:.x-grid3-summary-msg{padding:4px 16px;font-weight:bold;}
share/assets/css/050-gridsummary.css:10:.x-grid3-gridsummary-row-inner{overflow:hidden;width:100%;}/* IE6 requires width:100% for hori. scroll to work */
share/assets/css/050-gridsummary.css:11:.x-grid3-gridsummary-row-offset{width:10000px;}
share/assets/css/050-gridsummary.css:12:.x-grid-hide-gridsummary .x-grid3-gridsummary-row-inner{display:none;}
share/assets/css/060-GenericChangePW.css:2:.ra-change-pw-heading {
share/assets/css/060-GenericChangePW.css:3:	background-repeat: no-repeat;
share/assets/css/060-GenericChangePW.css:4:	background-position: left top;
share/assets/css/060-GenericChangePW.css:5:	background-image: url(../../../assets/rapidapp/misc/static/images/keys.png) !important;
share/assets/css/060-GenericChangePW.css:6:	padding-left: 128px;
share/assets/css/060-GenericChangePW.css:7:	padding-top: 15px;
share/assets/css/060-GenericChangePW.css:8:	min-height: 128px;
share/assets/css/060-GenericChangePW.css:9:	min-width: 160px;
share/assets/css/060-GenericChangePW.css:10:	font-size: 30px;
share/assets/css/060-GenericChangePW.css:11:  font-family: Arial,Helvetica,sans-serif;
share/assets/css/060-GenericChangePW.css:13:  text-align: center;
share/assets/css/060-GenericChangePW.css:16:.ra-change-pw-heading .sub {
share/assets/css/060-GenericChangePW.css:17:  padding-top:20px;
share/assets/css/060-GenericChangePW.css:18:  font-size: .6em;
share/assets/css/110-Template-Controller.css:5:.x-panel-body>.ra-template {
share/assets/css/110-Template-Controller.css:11:   'ra-doc' (default). Set the padding *only* on the topmost
share/assets/css/110-Template-Controller.css:12:   template. This needs to be set here instead of in ra-doc.css
share/assets/css/110-Template-Controller.css:14:.ra-scoped-reset.ra-doc {
share/assets/css/110-Template-Controller.css:18:.ra-template {
share/assets/css/110-Template-Controller.css:20:  min-height: 40px;
share/assets/css/110-Template-Controller.css:21:  min-width: 40px;
share/assets/css/110-Template-Controller.css:24:.ra-template>.edit {
share/assets/css/110-Template-Controller.css:26:  z-index: 100;
share/assets/css/110-Template-Controller.css:35:/* Nesting - handled up to 5 levels deep */
share/assets/css/110-Template-Controller.css:36:.ra-template .ra-template>.edit {
share/assets/css/110-Template-Controller.css:41:.ra-template .ra-template .ra-template>.edit {
share/assets/css/110-Template-Controller.css:46:.ra-template .ra-template .ra-template .ra-template>.edit {
share/assets/css/110-Template-Controller.css:51:.ra-template .ra-template .ra-template .ra-template .ra-template>.edit {
share/assets/css/110-Template-Controller.css:56:.ra-template .ra-template .ra-template .ra-template .ra-template .ra-template>.edit {
share/assets/css/110-Template-Controller.css:62:.ra-template:hover>.edit {
share/assets/css/110-Template-Controller.css:66:.ra-template>.edit:hover {
share/assets/css/110-Template-Controller.css:71:.ra-template>.not-exist, .ra-template>.tpl-error {
share/assets/css/110-Template-Controller.css:74:  border-width: 1px;
share/assets/css/110-Template-Controller.css:75:  background-color: #FAFAFA;
share/assets/css/110-Template-Controller.css:76:  border-color: orange;
share/assets/css/110-Template-Controller.css:77:  border-style: dashed;
share/assets/css/110-Template-Controller.css:79:  font-size: 16px;
share/assets/css/110-Template-Controller.css:80:  font-weight: bolder;
share/assets/css/110-Template-Controller.css:81:  font-family: arial, verdana, tahoma, sans-serif;
share/assets/css/110-Template-Controller.css:85:.ra-template>.tpl-error {
share/assets/css/110-Template-Controller.css:86:  border-color: crimson;
share/assets/css/110-Template-Controller.css:89:.ra-template>.tpl-error>.error-msg {
share/assets/css/110-Template-Controller.css:91:  font-size: 13px;
share/assets/css/110-Template-Controller.css:92:  padding-top: 10px;
share/assets/css/110-Template-Controller.css:93:  padding-left: 20px;
share/assets/css/110-Template-Controller.css:94:  padding-bottom: 5px;
share/assets/css/110-Template-Controller.css:97:.ra-template .tpl-name {
share/assets/css/110-Template-Controller.css:98:  font-size: 18px;
share/assets/css/110-Template-Controller.css:99:  padding-left: 4px;
share/assets/css/110-Template-Controller.css:100:  padding-right: 4px;
share/assets/css/110-Template-Controller.css:102:  font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;
share/assets/css/110-Template-Controller.css:105:.ra-template>.not-exist>.create {
share/assets/css/110-Template-Controller.css:107:  padding-bottom: 1px;
share/assets/css/110-Template-Controller.css:108:  padding-top: 4px;
share/assets/css/110-Template-Controller.css:109:  padding-right: 5px;
share/assets/css/110-Template-Controller.css:110:  padding-left: 20px;
share/assets/css/110-Template-Controller.css:111:  font-size: 14px;
share/assets/css/110-Template-Controller.css:114:  border-bottom: 1px dotted #888;
share/assets/css/110-Template-Controller.css:117:.ra-template>.not-exist>.create:hover {
share/assets/css/110-Template-Controller.css:119:  border-bottom: 1px solid #00e;
Binary file share/assets/filelink/application_14x14.png matches
Binary file share/assets/filelink/document_14x14.png matches
share/assets/filelink/filelink.css:4:	padding-left: 16px;
share/assets/filelink/filelink.css:5:	background-image: url(document_14x14.png) !important;
share/assets/filelink/filelink.css:6:	background-repeat:no-repeat;
share/assets/filelink/filelink.css:7:	background-position: left top;
share/assets/filelink/filelink.css:8:	font-family: Arial;
share/assets/filelink/filelink.css:9:	font-weight: bold;
share/assets/filelink/filelink.css:10:	font-size: 12px;
share/assets/filelink/filelink.css:16:.x-tab-strip-inner .filelink {
share/assets/filelink/filelink.css:17:  background-position: left center !important;
share/assets/filelink/filelink.css:21:	text-decoration: none !important;
share/assets/filelink/filelink.css:23:	border-bottom-style: dotted;
share/assets/filelink/filelink.css:24:	border-bottom-width: 1px;
share/assets/filelink/filelink.css:25:	border-color: blue;
share/assets/filelink/filelink.css:32:  font-size: 0.8em !important;
share/assets/filelink/filelink.css:33:  padding-top: 1px;
share/assets/filelink/filelink.css:38:	background-image: url(page_white_text_14x14.png) !important;
share/assets/filelink/filelink.css:42:	background-image: url(page_code_14x14.png) !important;
share/assets/filelink/filelink.css:46:	background-image: url(page_white_wrench_14x14.png) !important;
share/assets/filelink/filelink.css:50:	background-image: url(page_white_word_14x14.png) !important;
share/assets/filelink/filelink.css:54:	background-image: url(page_word_14x14.png) !important;
share/assets/filelink/filelink.css:58:	background-image: url(page_white_excel_14x14.png) !important;
share/assets/filelink/filelink.css:62:	background-image: url(page_excel_14x14.png) !important;
share/assets/filelink/filelink.css:66:	background-image: url(page_white_powerpoint_14x14.png) !important;
share/assets/filelink/filelink.css:70:	background-image: url(page_white_acrobat_14x14.png) !important;
share/assets/filelink/filelink.css:74:	background-image: url(picture_14x14.png) !important;
share/assets/filelink/filelink.css:78:	background-image: url(film_14x14.png) !important;
share/assets/filelink/filelink.css:82:	background-image: url(music_14x14.png) !important;
share/assets/filelink/filelink.css:86:	background-image: url(email_14x14.png) !important;
share/assets/filelink/filelink.css:90:	background-image: url(page_white_dvd_14x14.png) !important;
share/assets/filelink/filelink.css:94:	background-image: url(application_14x14.png) !important;
share/assets/filelink/filelink.css:98:	background-image: url(page_white_world_14x14.png) !important;
share/assets/filelink/filelink.css:102:	background-image: url(page_world_14x14.png) !important;
share/assets/filelink/filelink.css:106:	background-image: url(vcard_14x14.png) !important;
share/assets/filelink/filelink.css:110:	background-image: url(date_14x14.png) !important;
share/assets/filelink/filelink.css:114:	background-image: url(page_white_compressed_14x14.png) !important;
share/assets/filelink/filelink.css:118:	background-image: url(page_white_zip_14x14.png) !important;
share/assets/filelink/filelink.css:122:	background-image: url(page_white_database_14x14.png) !important;
Binary file share/assets/filelink/film_14x14.png matches
Binary file share/assets/filelink/music_14x14.png matches
Binary file share/assets/filelink/note_14x14.png matches
Binary file share/assets/filelink/package_14x14.png matches
Binary file share/assets/filelink/page_code_14x14.png matches
Binary file share/assets/filelink/page_excel_14x14.png matches
Binary file share/assets/filelink/page_white_acrobat_14x14.png matches
Binary file share/assets/filelink/page_white_compressed_14x14.png matches
Binary file share/assets/filelink/page_white_database_14x14.png matches
Binary file share/assets/filelink/page_white_dvd_14x14.png matches
Binary file share/assets/filelink/page_white_excel_14x14.png matches
Binary file share/assets/filelink/page_white_flash_14x14.png matches
Binary file share/assets/filelink/page_white_office_14x14.png matches
Binary file share/assets/filelink/page_white_php_14x14.png matches
Binary file share/assets/filelink/page_white_picture_14x14.png matches
Binary file share/assets/filelink/page_white_powerpoint_14x14.png matches
Binary file share/assets/filelink/page_white_text_14x14.png matches
Binary file share/assets/filelink/page_white_word_14x14.png matches
Binary file share/assets/filelink/page_white_world_14x14.png matches
Binary file share/assets/filelink/page_white_wrench_14x14.png matches
Binary file share/assets/filelink/page_white_zip_14x14.png matches
Binary file share/assets/filelink/page_word_14x14.png matches
Binary file share/assets/filelink/page_world_14x14.png matches
Binary file share/assets/filelink/photo_14x14.png matches
Binary file share/assets/filelink/picture_14x14.png matches
Binary file share/assets/filelink/vcard_14x14.png matches
Binary file share/assets/icons/Log-Out-icon.png matches
Binary file share/assets/icons/accept.png matches
Binary file share/assets/icons/add.png matches
Binary file share/assets/icons/application_14x14.png matches
Binary file share/assets/icons/application_edit.png matches
Binary file share/assets/icons/application_form_add.png matches
Binary file share/assets/icons/application_form_edit.png matches
Binary file share/assets/icons/application_go.png matches
Binary file share/assets/icons/application_osx_terminal.png matches
Binary file share/assets/icons/application_view_detail.png matches
Binary file share/assets/icons/arrow_divide.png matches
Binary file share/assets/icons/arrow_down_narrow.png matches
Binary file share/assets/icons/arrow_right.png matches
Binary file share/assets/icons/arrow_undo.png matches
Binary file share/assets/icons/arrow_up_narrow.png matches
Binary file share/assets/icons/book_addresses.png matches
Binary file share/assets/icons/book_green.png matches
Binary file share/assets/icons/book_next.png matches
Binary file share/assets/icons/book_open.png matches
Binary file share/assets/icons/bullet_arrow_down.png matches
Binary file share/assets/icons/bullet_cross.png matches
Binary file share/assets/icons/bullet_disk.png matches
Binary file share/assets/icons/bullet_key.png matches
Binary file share/assets/icons/bullet_tick.png matches
Binary file share/assets/icons/bullet_wrench.png matches
Binary file share/assets/icons/businessman.png matches
Binary file share/assets/icons/businessmen.png matches
Binary file share/assets/icons/catalyst-transparent.png matches
Binary file share/assets/icons/catalyst.png matches
Binary file share/assets/icons/chart_curve.png matches
Binary file share/assets/icons/checkbox.png matches
Binary file share/assets/icons/checkbox_clear.png matches
Binary file share/assets/icons/checkmark.png matches
Binary file share/assets/icons/checkmark_12x12.png matches
Binary file share/assets/icons/clock_run.png matches
Binary file share/assets/icons/close-dark.png matches
Binary file share/assets/icons/cog_go.png matches
Binary file share/assets/icons/computer-126.gif matches
Binary file share/assets/icons/computer-126t.gif matches
Binary file share/assets/icons/computer-globe-141.gif matches
Binary file share/assets/icons/computer-globe-141t.gif matches
Binary file share/assets/icons/computer.png matches
Binary file share/assets/icons/contract_24x24.png matches
Binary file share/assets/icons/contrast_increase.png matches
Binary file share/assets/icons/cross.png matches
Binary file share/assets/icons/cross_light.png matches
Binary file share/assets/icons/cross_light_12x12.png matches
Binary file share/assets/icons/cross_tiny_light.png matches
Binary file share/assets/icons/data_preferences.png matches
Binary file share/assets/icons/data_views.png matches
Binary file share/assets/icons/data_warning_32x32.png matches
Binary file share/assets/icons/database.png matches
Binary file share/assets/icons/date.png matches
Binary file share/assets/icons/date_14x14.png matches
Binary file share/assets/icons/delete.png matches
Binary file share/assets/icons/document.png matches
Binary file share/assets/icons/document_14x14.png matches
Binary file share/assets/icons/document_14x14_light.png matches
Binary file share/assets/icons/document_save.png matches
Binary file share/assets/icons/edit_pictogram.png matches
Binary file share/assets/icons/element_copy.png matches
Binary file share/assets/icons/email.png matches
Binary file share/assets/icons/email_14x14.png matches
Binary file share/assets/icons/email_go.png matches
Binary file share/assets/icons/emails.png matches
Binary file share/assets/icons/environment_network.png matches
Binary file share/assets/icons/exclamation.png matches
Binary file share/assets/icons/film_14x14.png matches
Binary file share/assets/icons/folder.png matches
Binary file share/assets/icons/folder_up.png matches
Binary file share/assets/icons/folder_user.png matches
Binary file share/assets/icons/folders.png matches
Binary file share/assets/icons/function.png matches
Binary file share/assets/icons/function_clear.png matches
Binary file share/assets/icons/function_small.png matches
Binary file share/assets/icons/funnel.png matches
Binary file share/assets/icons/funnel_new.png matches
Binary file share/assets/icons/funnel_new_edit.png matches
Binary file share/assets/icons/garbage.png matches
Binary file share/assets/icons/gears.png matches
Binary file share/assets/icons/gears_24x24.png matches
Binary file share/assets/icons/gray_down.png matches
Binary file share/assets/icons/gray_down_with_pencil.png matches
Binary file share/assets/icons/gray_pencil.png matches
Binary file share/assets/icons/gray_pencil_tiny.png matches
Binary file share/assets/icons/group.png matches
Binary file share/assets/icons/help.png matches
Binary file share/assets/icons/home.png matches
Binary file share/assets/icons/house.png matches
Binary file share/assets/icons/information.png matches
Binary file share/assets/icons/key.png matches
Binary file share/assets/icons/key_go.png matches
Binary file share/assets/icons/leaf_icon.png matches
Binary file share/assets/icons/left_right.png matches
Binary file share/assets/icons/link_go.png matches
Binary file share/assets/icons/loading.gif matches
Binary file share/assets/icons/magnifier.png matches
Binary file share/assets/icons/multisort.png matches
Binary file share/assets/icons/multisort_cancel.png matches
Binary file share/assets/icons/multisort_remove.png matches
Binary file share/assets/icons/openvpn_gui.png matches
Binary file share/assets/icons/openvpn_gui_green.png matches
Binary file share/assets/icons/openvpn_gui_red.png matches
Binary file share/assets/icons/page_cancel.png matches
Binary file share/assets/icons/page_excel.png matches
Binary file share/assets/icons/page_white_14x14.png matches
Binary file share/assets/icons/page_white_cd.png matches
Binary file share/assets/icons/page_white_compressed.png matches
Binary file share/assets/icons/page_white_excel.png matches
Binary file share/assets/icons/page_white_powerpoint.png matches
Binary file share/assets/icons/page_white_text.png matches
Binary file share/assets/icons/page_white_world.png matches
Binary file share/assets/icons/page_white_zip_link.png matches
Binary file share/assets/icons/page_word.png matches
Binary file share/assets/icons/paste_document.png matches
Binary file share/assets/icons/paste_plain.png matches
Binary file share/assets/icons/pencil.png matches
Binary file share/assets/icons/pg.png matches
Binary file share/assets/icons/pg_multi.png matches
Binary file share/assets/icons/pg_multi_red.png matches
Binary file share/assets/icons/pg_red.png matches
Binary file share/assets/icons/printer.png matches
Binary file share/assets/icons/rapidapp_icon_small.png matches
Binary file share/assets/icons/reboot.png matches
Binary file share/assets/icons/refresh_24x24.png matches
Binary file share/assets/icons/refresh_tiny.png matches
Binary file share/assets/icons/remove_sort.png matches
Binary file share/assets/icons/report.png matches
Binary file share/assets/icons/row_edit.png matches
Binary file share/assets/icons/save_24x24.png matches
Binary file share/assets/icons/save_as.png matches
Binary file share/assets/icons/save_ok.png matches
Binary file share/assets/icons/save_ok_24x24.png matches
Binary file share/assets/icons/selection_add.png matches
Binary file share/assets/icons/selection_new.png matches
Binary file share/assets/icons/selection_up_blue.png matches
Binary file share/assets/icons/server_database.png matches
Binary file share/assets/icons/status_online.png matches
Binary file share/assets/icons/tab_go.png matches
Binary file share/assets/icons/table_edit.png matches
Binary file share/assets/icons/table_edit_all.png matches
Binary file share/assets/icons/table_edit_row.png matches
Binary file share/assets/icons/table_gear.png matches
Binary file share/assets/icons/table_go.png matches
Binary file share/assets/icons/table_selection_all.png matches
Binary file share/assets/icons/table_selection_row.png matches
Binary file share/assets/icons/table_sql_edit.png matches
Binary file share/assets/icons/tabs_delete.png matches
Binary file share/assets/icons/textfield-check.png matches
Binary file share/assets/icons/textfield-cross.png matches
Binary file share/assets/icons/textfield-edit.png matches
Binary file share/assets/icons/textfield_rename.png matches
Binary file share/assets/icons/tick.png matches
Binary file share/assets/icons/tick_tiny.png matches
Binary file share/assets/icons/tick_tiny_light.png matches
Binary file share/assets/icons/time.png matches
Binary file share/assets/icons/tool_close.png matches
Binary file share/assets/icons/tree-collapse.png matches
Binary file share/assets/icons/tree-edit.png matches
Binary file share/assets/icons/tree-expand.png matches
Binary file share/assets/icons/user.png matches
Binary file share/assets/icons/user_add.png matches
Binary file share/assets/icons/user_gray.png matches
Binary file share/assets/icons/user_pref.png matches
Binary file share/assets/icons/user_prefs.png matches
Binary file share/assets/icons/wand.png matches
Binary file share/assets/icons/warning-32x32.png matches
Binary file share/assets/icons/warning.png matches
Binary file share/assets/icons/wrench.png matches
share/assets/js/005-base64.js:44: * window.atob and base64.decode take a base64-encoded string
share/assets/js/005-base64.js:59:        // not available, just passback a duck-typed equiv
share/assets/js/005-base64.js:64:        // ex.number and ex.description is IE-specific.
share/assets/js/005-base64.js:79:    if (idx === -1) {
share/assets/js/005-base64.js:100:    if (s.charAt(imax - 1) === base64.PADCHAR) {
share/assets/js/005-base64.js:102:        if (s.charAt(imax - 2) === base64.PADCHAR) {
share/assets/js/005-base64.js:106:        imax -= 4;
share/assets/js/005-base64.js:151:    var imax = s.length - s.length % 3;
share/assets/js/005-base64.js:163:    switch (s.length - imax) {
share/assets/js/010-simplemde.min.js:4: * @link https://github.com/NextStepWebs/simplemde-markdown-editor
share/assets/js/010-simplemde.min.js:7:!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.SimpleMDE=e()}}(function(){var e;return function t(e,n,r){function i(a,l){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!l&&s)return s(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n?n:t)},u,u.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(e,t,n){"use strict";function r(){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,n=e.length;n>t;++t)s[t]=e[t],c[e.charCodeAt(t)]=t;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63}function i(e){var t,n,r,i,o,a,l=e.length;if(l%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===e[l-2]?2:"="===e[l-1]?1:0,a=new u(3*l/4-o),r=o>0?l-4:l;var s=0;for(t=0,n=0;r>t;t+=4,n+=3)i=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],a[s++]=i>>16&255,a[s++]=i>>8&255,a[s++]=255&i;return 2===o?(i=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,a[s++]=255&i):1===o&&(i=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,a[s++]=i>>8&255,a[s++]=255&i),a}function o(e){return s[e>>18&63]+s[e>>12&63]+s[e>>6&63]+s[63&e]}function a(e,t,n){for(var r,i=[],a=t;n>a;a+=3)r=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(o(r));return i.join("")}function l(e){for(var t,n=e.length,r=n%3,i="",o=[],l=16383,c=0,u=n-r;u>c;c+=l)o.push(a(e,c,c+l>u?u:c+l));return 1===r?(t=e[n-1],i+=s[t>>2],i+=s[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=s[t>>10],i+=s[t>>4&63],i+=s[t<<2&63],i+="="),o.push(i),o.join("")}n.toByteArray=i,n.fromByteArray=l;var s=[],c=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array;r()},{}],2:[function(e,t,n){},{}],3:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}function i(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return a.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=a.prototype):(null===e&&(e=new a(t)),e.length=t),e}function a(e,t,n){if(!(a.TYPED_ARRAY_SUPPORT||this instanceof a))return new a(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return u(this,e)}return l(this,e,t,n)}function l(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?d(e,t,n,r):"string"==typeof t?f(e,t,n):p(e,t)}function s(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number')}function c(e,t,n,r){return s(t),0>=t?o(e,t):void 0!==n?"string"==typeof r?o(e,t).fill(n,r):o(e,t).fill(n):o(e,t)}function u(e,t){if(s(t),e=o(e,0>t?0:0|m(t)),!a.TYPED_ARRAY_SUPPORT)for(var n=0;t>n;n++)e[n]=0;return e}function f(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!a.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|v(t,n);return e=o(e,r),e.write(t,n),e}function h(e,t){var n=0|m(t.length);e=o(e,n);for(var r=0;n>r;r+=1)e[r]=255&t[r];return e}function d(e,t,n,r){if(t.byteLength,0>n||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),a.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=a.prototype):e=h(e,t),e}function p(e,t){if(a.isBuffer(t)){var n=0|m(t.length);return e=o(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||K(t.length)?o(e,0):h(e,t);if("Buffer"===t.type&&J(t.data))return h(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function m(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),a.alloc(+e)}function v(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"binary":case"raw":case"raws":return n;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return $(e).length;default:if(r)return q(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||0>t)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),0>=n)return"";if(n>>>=0,t>>>=0,t>=n)return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return N(this,t,n);case"ascii":return E(this,t,n);case"binary":return O(this,t,n);case"base64":return M(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function x(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r){function i(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,a=e.length,l=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,l/=2,n/=2}for(var s=-1,c=0;a>n+c;c++)if(i(e,n+c)===i(t,-1===s?0:c-s)){if(-1===s&&(s=c),c-s+1===l)return(n+s)*o}else-1!==s&&(c-=c-s),s=-1;return-1}function w(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new Error("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;r>a;a++){var l=parseInt(t.substr(2*a,2),16);if(isNaN(l))return a;e[n+a]=l}return a}function k(e,t,n,r){return V(q(t,e.length-n),e,n,r)}function S(e,t,n,r){return V(G(t),e,n,r)}function C(e,t,n,r){return S(e,t,n,r)}function L(e,t,n,r){return V($(t),e,n,r)}function T(e,t,n,r){return V(Y(t,e.length-n),e,n,r)}function M(e,t,n){return 0===t&&n===e.length?X.fromByteArray(e):X.fromByteArray(e.slice(t,n))}function N(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;n>i;){var o=e[i],a=null,l=o>239?4:o>223?3:o>191?2:1;if(n>=i+l){var s,c,u,f;switch(l){case 1:128>o&&(a=o);break;case 2:s=e[i+1],128===(192&s)&&(f=(31&o)<<6|63&s,f>127&&(a=f));break;case 3:s=e[i+1],c=e[i+2],128===(192&s)&&128===(192&c)&&(f=(15&o)<<12|(63&s)<<6|63&c,f>2047&&(55296>f||f>57343)&&(a=f));break;case 4:s=e[i+1],c=e[i+2],u=e[i+3],128===(192&s)&&128===(192&c)&&128===(192&u)&&(f=(15&o)<<18|(63&s)<<12|(63&c)<<6|63&u,f>65535&&1114112>f&&(a=f))}}null===a?(a=65533,l=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=l}return A(r)}function A(e){var t=e.length;if(Q>=t)return String.fromCharCode.apply(String,e);for(var n="",r=0;t>r;)n+=String.fromCharCode.apply(String,e.slice(r,r+=Q));return n}function E(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;n>i;i++)r+=String.fromCharCode(127&e[i]);return r}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;n>i;i++)r+=String.fromCharCode(e[i]);return r}function I(e,t,n){var r=e.length;(!t||0>t)&&(t=0),(!n||0>n||n>r)&&(n=r);for(var i="",o=t;n>o;o++)i+=U(e[o]);return i}function P(e,t,n){for(var r=e.slice(t,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function R(e,t,n){if(e%1!==0||0>e)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||o>t)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function H(e,t,n,r){0>t&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);o>i;i++)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function W(e,t,n,r){0>t&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);o>i;i++)e[n+i]=t>>>8*(r?i:3-i)&255}function B(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(0>n)throw new RangeError("Index out of range")}function _(e,t,n,r,i){return i||B(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,i){return i||B(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function z(e){if(e=j(e).replace(ee,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function j(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function U(e){return 16>e?"0"+e.toString(16):e.toString(16)}function q(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],a=0;r>a;a++){if(n=e.charCodeAt(a),n>55295&&57344>n){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(56320>n){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,128>n){if((t-=1)<0)break;o.push(n)}else if(2048>n){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(65536>n){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(1114112>n))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function G(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t}function Y(e,t){for(var n,r,i,o=[],a=0;a<e.length&&!((t-=2)<0);a++)n=e.charCodeAt(a),r=n>>8,i=n%256,o.push(i),o.push(r);return o}function $(e){return X.toByteArray(z(e))}function V(e,t,n,r){for(var i=0;r>i&&!(i+n>=t.length||i>=e.length);i++)t[i+n]=e[i];return i}function K(e){return e!==e}var X=e("base64-js"),Z=e("ieee754"),J=e("isarray");n.Buffer=a,n.SlowBuffer=g,n.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,n){return l(null,e,t,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,n){return c(null,e,t,n)},a.allocUnsafe=function(e){return u(null,e)},a.allocUnsafeSlow=function(e){return u(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);o>i;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return r>n?-1:n>r?1:0},a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(e,t){if(!J(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;n++)t+=e[n].length;var r=a.allocUnsafe(t),i=0;for(n=0;n<e.length;n++){var o=e[n];if(!a.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},a.byteLength=v,a.prototype._isBuffer=!0,a.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;e>t;t+=2)x(this,t,t+1);return this},a.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;e>t;t+=4)x(this,t,t+3),x(this,t+1,t+2);return this},a.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?N(this,0,e):y.apply(this,arguments)},a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:0===a.compare(this,e)},a.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},a.prototype.compare=function(e,t,n,r,i){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),0>t||n>e.length||0>r||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,l=n-t,s=Math.min(o,l),c=this.slice(r,i),u=e.slice(t,n),f=0;s>f;++f)if(c[f]!==u[f]){o=c[f],l=u[f];break}return l>o?-1:o>l?1:0},a.prototype.indexOf=function(e,t,n){if("string"==typeof t?(n=t,t=0):t>2147483647?t=2147483647:-2147483648>t&&(t=-2147483648),t>>=0,0===this.length)return-1;if(t>=this.length)return-1;if(0>t&&(t=Math.max(this.length+t,0)),"string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:b(this,e,t,n);if("number"==typeof e)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,e,t):b(this,[e],t,n);throw new TypeError("val must be string, number or Buffer")},a.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},a.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t=0|t,isFinite(n)?(n=0|n,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(0>n||0>t)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":return S(this,e,t,n);case"binary":return C(this,e,t,n);case"base64":return L(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;a.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,0>e?(e+=n,0>e&&(e=0)):e>n&&(e=n),0>t?(t+=n,0>t&&(t=0)):t>n&&(t=n),e>t&&(t=e);var r;if(a.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=a.prototype;else{var i=t-e;r=new a(i,void 0);for(var o=0;i>o;o++)r[o]=this[o+e]}return r},a.prototype.readUIntLE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r},a.prototype.readUIntBE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},a.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;D(this,e,t,n,i,0)}var o=1,a=0;for(this[t]=255&e;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n},a.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;D(this,e,t,n,i,0)}var o=n-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n},a.prototype.writeUInt8=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):W(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var o=0,a=1,l=0;for(this[t]=255&e;++o<n&&(a*=256);)0>e&&0===l&&0!==this[t+o-1]&&(l=1),this[t+o]=(e/a>>0)-l&255;return t+n},a.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var o=n-1,a=1,l=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)0>e&&0===l&&0!==this[t+o+1]&&(l=1),this[t+o]=(e/a>>0)-l&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),0>e&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):W(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,2147483647,-2147483648),0>e&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,n){return _(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return _(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&n>r&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(0>t)throw new RangeError("targetStart out of bounds");if(0>n||n>=this.length)throw new RangeError("sourceStart out of bounds");if(0>r)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,o=r-n;if(this===e&&t>n&&r>t)for(i=o-1;i>=0;i--)e[i+t]=this[i+n];else if(1e3>o||!a.TYPED_ARRAY_SUPPORT)for(i=0;o>i;i++)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+o),t);return o},a.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);256>i&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!a.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e=255&e);if(0>t||this.length<t||this.length<n)throw new RangeError("Out of range index");if(t>=n)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;n>o;o++)this[o]=e;else{var l=a.isBuffer(e)?e:q(new a(e,r).toString()),s=l.length;for(o=0;n-t>o;o++)this[o+t]=l[o%s]}return this};var ee=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":1,ieee754:15,isarray:16}],4:[function(e,t,n){"use strict";function r(e){return e=e||{},"function"!=typeof e.codeMirrorInstance||"function"!=typeof e.codeMirrorInstance.defineMode?void console.log("CodeMirror Spell Checker: You must provide an instance of CodeMirror via the option `codeMirrorInstance`"):(String.prototype.includes||(String.prototype.includes=function(){return-1!==String.prototype.indexOf.apply(this,arguments)}),void e.codeMirrorInstance.defineMode("spell-checker",function(t){if(!r.aff_loading){r.aff_loading=!0;var n=new XMLHttpRequest;n.open("GET","https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.aff",!0),n.onload=function(){4===n.readyState&&200===n.status&&(r.aff_data=n.responseText,r.num_loaded++,2==r.num_loaded&&(r.typo=new i("en_US",r.aff_data,r.dic_data,{platform:"any"})))},n.send(null)}if(!r.dic_loading){r.dic_loading=!0;var o=new XMLHttpRequest;o.open("GET","https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.dic",!0),o.onload=function(){4===o.readyState&&200===o.status&&(r.dic_data=o.responseText,r.num_loaded++,2==r.num_loaded&&(r.typo=new i("en_US",r.aff_data,r.dic_data,{platform:"any"})))},o.send(null)}var a='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~ ',l={token:function(e){var t=e.peek(),n="";if(a.includes(t))return e.next(),null;for(;null!=(t=e.peek())&&!a.includes(t);)n+=t,e.next();return r.typo&&!r.typo.check(n)?"spell-error":null}},s=e.codeMirrorInstance.getMode(t,t.backdrop||"text/plain");return e.codeMirrorInstance.overlayMode(s,l,!0)}))}var i=e("typo-js");r.num_loaded=0,r.aff_loading=!1,r.dic_loading=!1,r.aff_data="",r.dic_data="",r.typo,t.exports=r},{"typo-js":18}],5:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){var t=e.getWrapperElement();e.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:t.style.width,height:t.style.height},t.style.width="",t.style.height="auto",t.className+=" CodeMirror-fullscreen",document.documentElement.style.overflow="hidden",e.refresh()}function n(e){var t=e.getWrapperElement();t.className=t.className.replace(/\s*CodeMirror-fullscreen\b/,""),document.documentElement.style.overflow="";var n=e.state.fullScreenRestore;t.style.width=n.width,t.style.height=n.height,window.scrollTo(n.scrollLeft,n.scrollTop),e.refresh()}e.defineOption("fullScreen",!1,function(r,i,o){o==e.Init&&(o=!1),!o!=!i&&(i?t(r):n(r))})})},{"../../lib/codemirror":10}],6:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){function t(e){e.state.placeholder&&(e.state.placeholder.parentNode.removeChild(e.state.placeholder),e.state.placeholder=null)}function n(e){t(e);var n=e.state.placeholder=document.createElement("pre");n.style.cssText="height: 0; overflow: visible",n.className="CodeMirror-placeholder";var r=e.getOption("placeholder");"string"==typeof r&&(r=document.createTextNode(r)),n.appendChild(r),e.display.lineSpace.insertBefore(n,e.display.lineSpace.firstChild)}function r(e){o(e)&&n(e)}function i(e){var r=e.getWrapperElement(),i=o(e);r.className=r.className.replace(" CodeMirror-empty","")+(i?" CodeMirror-empty":""),i?n(e):t(e)}function o(e){return 1===e.lineCount()&&""===e.getLine(0)}e.defineOption("placeholder","",function(n,o,a){var l=a&&a!=e.Init;if(o&&!l)n.on("blur",r),n.on("change",i),n.on("swapDoc",i),i(n);else if(!o&&l){n.off("blur",r),n.off("change",i),n.off("swapDoc",i),t(n);var s=n.getWrapperElement();s.className=s.className.replace(" CodeMirror-empty","")}o&&!n.hasFocus()&&r(n)})})},{"../../lib/codemirror":10}],7:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t=/^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/,n=/^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/,r=/[*+-]\s/;e.commands.newlineAndIndentContinueMarkdownList=function(i){if(i.getOption("disableInput"))return e.Pass;for(var o=i.listSelections(),a=[],l=0;l<o.length;l++){var s=o[l].head,c=i.getStateAfter(s.line),u=c.list!==!1,f=0!==c.quote,h=i.getLine(s.line),d=t.exec(h);if(!o[l].empty()||!u&&!f||!d)return void i.execCommand("newlineAndIndent");if(n.test(h))i.replaceRange("",{line:s.line,ch:0},{line:s.line,ch:s.ch+1}),a[l]="\n";else{var p=d[1],m=d[5],g=r.test(d[2])||d[2].indexOf(">")>=0?d[2]:parseInt(d[3],10)+1+d[4];a[l]="\n"+p+g+m}}i.replaceSelections(a)}})},{"../../lib/codemirror":10}],8:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos)<e.start)&&(i.streamSeen=e,i.basePos=i.overlayPos=e.start),e.start==i.basePos&&(i.baseCur=t.token(e,i.base),i.basePos=e.pos),e.start==i.overlayPos&&(e.pos=e.start,i.overlayCur=n.token(e,i.overlay),i.overlayPos=e.pos),e.pos=Math.min(i.basePos,i.overlayPos),null==i.overlayCur?i.baseCur:null!=i.baseCur&&i.overlay.combineTokens||r&&null==i.overlay.combineTokens?i.baseCur+" "+i.overlayCur:i.overlayCur},indent:t.indent&&function(e,n){return t.indent(e.base,n)},electricChars:t.electricChars,innerMode:function(e){return{state:e.base,mode:t}},blankLine:function(e){t.blankLine&&t.blankLine(e.base),n.blankLine&&n.blankLine(e.overlay)}}}})},{"../../lib/codemirror":10}],9:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){e.operation(function(){a(e)})}function n(e){e.state.markedSelection.length&&e.operation(function(){i(e)})}function r(e,t,n,r){if(0!=c(t,n))for(var i=e.state.markedSelection,o=e.state.markedSelectionStyle,a=t.line;;){var u=a==t.line?t:s(a,0),f=a+l,h=f>=n.line,d=h?n:s(f,0),p=e.markText(u,d,{className:o});if(null==r?i.push(p):i.splice(r++,0,p),h)break;a=f}}function i(e){for(var t=e.state.markedSelection,n=0;n<t.length;++n)t[n].clear();t.length=0}function o(e){i(e);for(var t=e.listSelections(),n=0;n<t.length;n++)r(e,t[n].from(),t[n].to())}function a(e){if(!e.somethingSelected())return i(e);if(e.listSelections().length>1)return o(e);var t=e.getCursor("start"),n=e.getCursor("end"),a=e.state.markedSelection;if(!a.length)return r(e,t,n);var s=a[0].find(),u=a[a.length-1].find();if(!s||!u||n.line-t.line<l||c(t,u.to)>=0||c(n,s.from)<=0)return o(e);for(;c(t,s.from)>0;)a.shift().clear(),s=a[0].find();for(c(t,s.from)<0&&(s.to.line-t.line<l?(a.shift().clear(),r(e,t,s.to,0)):r(e,t,s.from,0));c(n,u.to)<0;)a.pop().clear(),u=a[a.length-1].find();c(n,u.to)>0&&(n.line-u.from.line<l?(a.pop().clear(),r(e,u.from,n)):r(e,u.to,n))}e.defineOption("styleSelectedText",!1,function(r,a,l){var s=l&&l!=e.Init;a&&!s?(r.state.markedSelection=[],r.state.markedSelectionStyle="string"==typeof a?a:"CodeMirror-selectedtext",o(r),r.on("cursorActivity",t),r.on("change",n)):!a&&s&&(r.off("cursorActivity",t),r.off("change",n),i(r),r.state.markedSelection=r.state.markedSelectionStyle=null)});var l=8,s=e.Pos,c=e.cmpPos})},{"../../lib/codemirror":10}],10:[function(t,n,r){!function(t){if("object"==typeof r&&"object"==typeof n)n.exports=t();else{if("function"==typeof e&&e.amd)return e([],t);(this||window).CodeMirror=t()}}(function(){"use strict";function e(n,r){if(!(this instanceof e))return new e(n,r);this.options=r=r?Wi(r):{},Wi(ea,r,!1),d(r);var i=r.value;"string"==typeof i&&(i=new Ca(i,r.mode,null,r.lineSeparator)),this.doc=i;var o=new e.inputStyles[r.inputStyle](this),a=this.display=new t(n,i,o);a.wrapper.CodeMirror=this,c(this),l(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),r.autofocus&&!Ao&&a.input.focus(),v(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Ei,keySeq:null,specialChars:null};var s=this;xo&&11>bo&&setTimeout(function(){s.display.input.reset(!0)},20),jt(this),Ki(),bt(this),this.curOp.forceUpdate=!0,Xr(this,i),r.autofocus&&!Ao||s.hasFocus()?setTimeout(Bi(vn,this),20):yn(this);for(var u in ta)ta.hasOwnProperty(u)&&ta[u](this,r[u],na);k(this),r.finishInit&&r.finishInit(this);for(var f=0;f<aa.length;++f)aa[f](this);kt(this),wo&&r.lineWrapping&&"optimizelegibility"==getComputedStyle(a.lineDiv).textRendering&&(a.lineDiv.style.textRendering="auto")}function t(e,t,n){var r=this;this.input=n,r.scrollbarFiller=ji("div",null,"CodeMirror-scrollbar-filler"),r.scrollbarFiller.setAttribute("cm-not-content","true"),r.gutterFiller=ji("div",null,"CodeMirror-gutter-filler"),r.gutterFiller.setAttribute("cm-not-content","true"),r.lineDiv=ji("div",null,"CodeMirror-code"),r.selectionDiv=ji("div",null,null,"position: relative; z-index: 1"),r.cursorDiv=ji("div",null,"CodeMirror-cursors"),r.measure=ji("div",null,"CodeMirror-measure"),r.lineMeasure=ji("div",null,"CodeMirror-measure"),r.lineSpace=ji("div",[r.measure,r.lineMeasure,r.selectionDiv,r.cursorDiv,r.lineDiv],null,"position: relative; outline: none"),r.mover=ji("div",[ji("div",[r.lineSpace],"CodeMirror-lines")],null,"position: relative"),r.sizer=ji("div",[r.mover],"CodeMirror-sizer"),r.sizerWidth=null,r.heightForcer=ji("div",null,null,"position: absolute; height: "+Da+"px; width: 1px;"),r.gutters=ji("div",null,"CodeMirror-gutters"),r.lineGutter=null,r.scroller=ji("div",[r.sizer,r.heightForcer,r.gutters],"CodeMirror-scroll"),r.scroller.setAttribute("tabIndex","-1"),r.wrapper=ji("div",[r.scrollbarFiller,r.gutterFiller,r.scroller],"CodeMirror"),xo&&8>bo&&(r.gutters.style.zIndex=-1,r.scroller.style.paddingRight=0),wo||go&&Ao||(r.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(r.wrapper):e(r.wrapper)),r.viewFrom=r.viewTo=t.first,r.reportedViewFrom=r.reportedViewTo=t.first,r.view=[],r.renderedView=null,r.externalMeasured=null,r.viewOffset=0,r.lastWrapHeight=r.lastWrapWidth=0,r.updateLineNumbers=null,r.nativeBarWidth=r.barHeight=r.barWidth=0,r.scrollbarsClipped=!1,r.lineNumWidth=r.lineNumInnerWidth=r.lineNumChars=null,r.alignWidgets=!1,r.cachedCharWidth=r.cachedTextHeight=r.cachedPaddingH=null,
share/assets/js/010-simplemde.min.js:8:r.maxLine=null,r.maxLineLength=0,r.maxLineChanged=!1,r.wheelDX=r.wheelDY=r.wheelStartX=r.wheelStartY=null,r.shift=!1,r.selForContextMenu=null,r.activeTouch=null,n.init(r)}function n(t){t.doc.mode=e.getMode(t.options,t.doc.modeOption),r(t)}function r(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.frontier=e.doc.first,_e(e,100),e.state.modeGen++,e.curOp&&Dt(e)}function i(e){e.options.lineWrapping?(Ja(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Za(e.display.wrapper,"CodeMirror-wrap"),h(e)),a(e),Dt(e),lt(e),setTimeout(function(){y(e)},100)}function o(e){var t=yt(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/xt(e.display)-3);return function(i){if(kr(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return n?o+(Math.ceil(i.text.length/r)||1)*t:o+t}}function a(e){var t=e.doc,n=o(e);t.iter(function(e){var t=n(e);t!=e.height&&ei(e,t)})}function l(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),lt(e)}function s(e){c(e),Dt(e),setTimeout(function(){w(e)},20)}function c(e){var t=e.display.gutters,n=e.options.gutters;Ui(t);for(var r=0;r<n.length;++r){var i=n[r],o=t.appendChild(ji("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&(e.display.lineGutter=o,o.style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=r?"":"none",u(e)}function u(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function f(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=mr(r);){var i=t.find(0,!0);r=i.from.line,n+=i.from.ch-i.to.ch}for(r=e;t=gr(r);){var i=t.find(0,!0);n-=r.text.length-i.from.ch,r=i.to.line,n+=r.text.length-i.to.ch}return n}function h(e){var t=e.display,n=e.doc;t.maxLine=Zr(n,n.first),t.maxLineLength=f(t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var n=f(e);n>t.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function d(e){var t=Pi(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function p(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+qe(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Ye(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function m(e,t,n){this.cm=n;var r=this.vert=ji("div",[ji("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=ji("div",[ji("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(r),e(i),Ea(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),Ea(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,xo&&8>bo&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function g(){}function v(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Za(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new e.scrollbarModel[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),Ea(e,"mousedown",function(){t.state.focused&&setTimeout(function(){t.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,n){"horizontal"==n?on(t,e):rn(t,e)},t),t.display.scrollbars.addClass&&Ja(t.display.wrapper,t.display.scrollbars.addClass)}function y(e,t){t||(t=p(e));var n=e.display.barWidth,r=e.display.barHeight;x(e,t);for(var i=0;4>i&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&O(e),x(e,p(e)),n=e.display.barWidth,r=e.display.barHeight}function x(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}function b(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop;r=Math.floor(r-Ue(e));var i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=ni(t,r),a=ni(t,i);if(n&&n.ensure){var l=n.ensure.from.line,s=n.ensure.to.line;o>l?(o=l,a=ni(t,ri(Zr(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=ni(t,ri(Zr(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function w(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=C(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;a<n.length;a++)if(!n[a].hidden){e.options.fixedGutter&&n[a].gutter&&(n[a].gutter.style.left=o);var l=n[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+"px")}}function k(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=S(e.options,t.first+t.size-1),r=e.display;if(n.length!=r.lineNumChars){var i=r.measure.appendChild(ji("div",[ji("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,a=i.offsetWidth-o;return r.lineGutter.style.width="",r.lineNumInnerWidth=Math.max(o,r.lineGutter.offsetWidth-a)+1,r.lineNumWidth=r.lineNumInnerWidth+a,r.lineNumChars=r.lineNumInnerWidth?n.length:-1,r.lineGutter.style.width=r.lineNumWidth+"px",u(e),!0}return!1}function S(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function C(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function L(e,t,n){var r=e.display;this.viewport=t,this.visible=b(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=$e(e),this.force=n,this.dims=P(e),this.events=[]}function T(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=Ye(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=Ye(e)+"px",t.scrollbarsClipped=!0)}function M(e,t){var n=e.display,r=e.doc;if(t.editorIsHidden)return Wt(e),!1;if(!t.force&&t.visible.from>=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==zt(e))return!1;k(e)&&(Wt(e),t.dims=P(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFrom<o&&o-n.viewFrom<20&&(o=Math.max(r.first,n.viewFrom)),n.viewTo>a&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Wo&&(o=br(e.doc,o),a=wr(e.doc,a));var l=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;Ft(e,o,a),n.viewOffset=ri(Zr(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var s=zt(e);if(!l&&0==s&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Gi();return s>4&&(n.lineDiv.style.display="none"),R(e,n.updateLineNumbers,t.dims),s>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,c&&Gi()!=c&&c.offsetHeight&&c.focus(),Ui(n.cursorDiv),Ui(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,l&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,_e(e,400)),n.updateLineNumbers=null,!0}function N(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=$e(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+qe(e.display)-Ve(e),n.top)}),t.visible=b(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&M(e,t);r=!1){O(e);var i=p(e);Re(e),y(e,i),E(e,i)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function A(e,t){var n=new L(e,t);if(M(e,n)){O(e),N(e,n);var r=p(e);Re(e),y(e,r),E(e,r),n.finish()}}function E(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Ye(e)+"px"}function O(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i,o=t.view[r];if(!o.hidden){if(xo&&8>bo){var a=o.node.offsetTop+o.node.offsetHeight;i=a-n,n=a}else{var l=o.node.getBoundingClientRect();i=l.bottom-l.top}var s=o.line.height-i;if(2>i&&(i=yt(t)),(s>.001||-.001>s)&&(ei(o.line,i),I(o.line),o.rest))for(var c=0;c<o.rest.length;c++)I(o.rest[c])}}}function I(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function P(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)n[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,r[e.options.gutters[a]]=o.clientWidth;return{fixedPos:C(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function R(e,t,n){function r(t){var n=t.nextSibling;return wo&&Eo&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var i=e.display,o=e.options.lineNumbers,a=i.lineDiv,l=a.firstChild,s=i.view,c=i.viewFrom,u=0;u<s.length;u++){var f=s[u];if(f.hidden);else if(f.node&&f.node.parentNode==a){for(;l!=f.node;)l=r(l);var h=o&&null!=t&&c>=t&&f.lineNumber;f.changes&&(Pi(f.changes,"gutter")>-1&&(h=!1),D(e,f,c,n)),h&&(Ui(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(S(e.options,c)))),l=f.node.nextSibling}else{var d=U(e,f,c,n);a.insertBefore(d,l)}c+=f.size}for(;l;)l=r(l)}function D(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?_(e,t):"gutter"==o?z(e,t,n,r):"class"==o?F(t):"widget"==o&&j(e,t,r)}t.changes=null}function H(e){return e.node==e.text&&(e.node=ji("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),xo&&8>bo&&(e.node.style.zIndex=2)),e.node}function W(e){var t=e.bgClass?e.bgClass+" "+(e.line.bgClass||""):e.line.bgClass;if(t&&(t+=" CodeMirror-linebackground"),e.background)t?e.background.className=t:(e.background.parentNode.removeChild(e.background),e.background=null);else if(t){var n=H(e);e.background=n.insertBefore(ji("div",null,t),n.firstChild)}}function B(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):Br(e,t)}function _(e,t){var n=t.text.className,r=B(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,F(t)):n&&(t.text.className=n)}function F(e){W(e),e.line.wrapClass?H(e).className=e.line.wrapClass:e.node!=e.text&&(e.node.className="");var t=e.textClass?e.textClass+" "+(e.line.textClass||""):e.line.textClass;e.text.className=t||""}function z(e,t,n,r){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var i=H(t);t.gutterBackground=ji("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+"px; width: "+r.gutterTotalWidth+"px"),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){var i=H(t),a=t.gutter=ji("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+"px");if(e.display.input.setUneditable(a),i.insertBefore(a,t.text),t.line.gutterClass&&(a.className+=" "+t.line.gutterClass),!e.options.lineNumbers||o&&o["CodeMirror-linenumbers"]||(t.lineNumber=a.appendChild(ji("div",S(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+r.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),o)for(var l=0;l<e.options.gutters.length;++l){var s=e.options.gutters[l],c=o.hasOwnProperty(s)&&o[s];c&&a.appendChild(ji("div",[c],"CodeMirror-gutter-elt","left: "+r.gutterLeft[s]+"px; width: "+r.gutterWidth[s]+"px"))}}}function j(e,t,n){t.alignable&&(t.alignable=null);for(var r,i=t.node.firstChild;i;i=r){var r=i.nextSibling;"CodeMirror-linewidget"==i.className&&t.node.removeChild(i)}q(e,t,n)}function U(e,t,n,r){var i=B(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),F(t),z(e,t,n,r),q(e,t,r),t.node}function q(e,t,n){if(G(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)G(e,t.rest[r],t,n,!1)}function G(e,t,n,r,i){if(t.widgets)for(var o=H(n),a=0,l=t.widgets;a<l.length;++a){var s=l[a],c=ji("div",[s.node],"CodeMirror-linewidget");s.handleMouseEvents||c.setAttribute("cm-ignore-events","true"),Y(s,c,n,r),e.display.input.setUneditable(c),i&&s.above?o.insertBefore(c,n.gutter||n.text):o.appendChild(c),Ci(s,"redraw")}}function Y(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+"px",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function $(e){return Bo(e.line,e.ch)}function V(e,t){return _o(e,t)<0?t:e}function K(e,t){return _o(e,t)<0?e:t}function X(e){e.state.focused||(e.display.input.focus(),vn(e))}function Z(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r||(r=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=o.splitLines(t),s=null;if(a&&r.ranges.length>1)if(Fo&&Fo.text.join("\n")==t){if(r.ranges.length%Fo.text.length==0){s=[];for(var c=0;c<Fo.text.length;c++)s.push(o.splitLines(Fo.text[c]))}}else l.length==r.ranges.length&&(s=Ri(l,function(e){return[e]}));for(var c=r.ranges.length-1;c>=0;c--){var u=r.ranges[c],f=u.from(),h=u.to();u.empty()&&(n&&n>0?f=Bo(f.line,f.ch-n):e.state.overwrite&&!a?h=Bo(h.line,Math.min(Zr(o,h.line).text.length,h.ch+Ii(l).length)):Fo&&Fo.lineWise&&Fo.text.join("\n")==t&&(f=h=Bo(f.line,0)));var d=e.curOp.updateInput,p={from:f,to:h,text:s?s[c%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Tn(e.doc,p),Ci(e,"inputRead",e,p)}t&&!a&&Q(e,t),Bn(e),e.curOp.updateInput=d,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function J(e,t){var n=e.clipboardData&&e.clipboardData.getData("text/plain");return n?(e.preventDefault(),t.isReadOnly()||t.options.disableInput||At(t,function(){Z(t,n,0,null,"paste")}),!0):void 0}function Q(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=Fn(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Zr(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Fn(e,i.head.line,"smart"));a&&Ci(e,"electricInput",e,i.head.line)}}}function ee(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,o={anchor:Bo(i,0),head:Bo(i+1,0)};n.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:n}}function te(e){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck","false")}function ne(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Ei,this.inaccurateSelection=!1,this.hasSelection=!1,this.composing=null}function re(){var e=ji("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none"),t=ji("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return wo?e.style.width="1000px":e.setAttribute("wrap","off"),No&&(e.style.border="1px solid black"),te(e),t}function ie(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ei,this.gracePeriod=!1}function oe(e,t){var n=Qe(e,t.line);if(!n||n.hidden)return null;var r=Zr(e.doc,t.line),i=Xe(n,r,t.line),o=ii(r),a="left";if(o){var l=co(o,t.ch);a=l%2?"right":"left"}var s=nt(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function ae(e,t){return t&&(e.bad=!0),e}function le(e,t,n){var r;if(t==e.display.lineDiv){if(r=e.display.lineDiv.childNodes[n],!r)return ae(e.clipPos(Bo(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return se(o,t,n)}}function se(e,t,n){function r(t,n,r){for(var i=-1;i<(u?u.length:0);i++)for(var o=0>i?c.map:u[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==n){var s=ti(0>i?e.line:e.rest[i]),f=o[a]+r;return(0>r||l!=t)&&(f=o[a+(r?1:0)]),Bo(s,f)}}}var i=e.text.firstChild,o=!1;if(!t||!Va(i,t))return ae(Bo(ti(e.line),0),!0);if(t==i&&(o=!0,t=i.childNodes[n],n=0,!t)){var a=e.rest?Ii(e.rest):e.line;return ae(Bo(ti(a),a.text.length),o)}var l=3==t.nodeType?t:null,s=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,n&&(n=l.nodeValue.length));s.parentNode!=i;)s=s.parentNode;var c=e.measure,u=c.maps,f=r(l,s,n);if(f)return ae(f,o);for(var h=s.nextSibling,d=l?l.nodeValue.length-n:0;h;h=h.nextSibling){if(f=r(h,h.firstChild,0))return ae(Bo(f.line,f.ch-d),o);d+=h.textContent.length}for(var p=s.previousSibling,d=n;p;p=p.previousSibling){if(f=r(p,p.firstChild,-1))return ae(Bo(f.line,f.ch+d),o);d+=h.textContent.length}}function ce(e,t,n,r,i){function o(e){return function(t){return t.id==e}}function a(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return""==n&&(n=t.textContent.replace(/\u200b/g,"")),void(l+=n);var u,f=t.getAttribute("cm-marker");if(f){var h=e.findMarks(Bo(r,0),Bo(i+1,0),o(+f));return void(h.length&&(u=h[0].find())&&(l+=Jr(e.doc,u.from,u.to).join(c)))}if("false"==t.getAttribute("contenteditable"))return;for(var d=0;d<t.childNodes.length;d++)a(t.childNodes[d]);/^(pre|div|p)$/i.test(t.nodeName)&&(s=!0)}else if(3==t.nodeType){var p=t.nodeValue;if(!p)return;s&&(l+=c,s=!1),l+=p}}for(var l="",s=!1,c=e.doc.lineSeparator();a(t),t!=n;)t=t.nextSibling;return l}function ue(e,t){this.ranges=e,this.primIndex=t}function fe(e,t){this.anchor=e,this.head=t}function he(e,t){var n=e[t];e.sort(function(e,t){return _o(e.from(),t.from())}),t=Pi(e,n);for(var r=1;r<e.length;r++){var i=e[r],o=e[r-1];if(_o(o.to(),i.from())>=0){var a=K(o.from(),i.from()),l=V(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;t>=r&&--t,e.splice(--r,2,new fe(s?l:a,s?a:l))}}return new ue(e,t)}function de(e,t){return new ue([new fe(e,t||e)],0)}function pe(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function me(e,t){if(t.line<e.first)return Bo(e.first,0);var n=e.first+e.size-1;return t.line>n?Bo(n,Zr(e,n).text.length):ge(t,Zr(e,t.line).text.length)}function ge(e,t){var n=e.ch;return null==n||n>t?Bo(e.line,t):0>n?Bo(e.line,0):e}function ve(e,t){return t>=e.first&&t<e.first+e.size}function ye(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=me(e,t[r]);return n}function xe(e,t,n,r){if(e.cm&&e.cm.display.shift||e.extend){var i=t.anchor;if(r){var o=_o(n,i)<0;o!=_o(r,i)<0?(i=n,n=r):o!=_o(n,r)<0&&(n=r)}return new fe(i,n)}return new fe(r||n,n)}function be(e,t,n,r){Te(e,new ue([xe(e,e.sel.primary(),t,n)],0),r)}function we(e,t,n){for(var r=[],i=0;i<e.sel.ranges.length;i++)r[i]=xe(e,e.sel.ranges[i],t[i],null);var o=he(r,e.sel.primIndex);Te(e,o,n)}function ke(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,Te(e,he(i,e.sel.primIndex),r)}function Se(e,t,n,r){Te(e,de(t,n),r)}function Ce(e,t,n){var r={ranges:t.ranges,update:function(t){this.ranges=[];for(var n=0;n<t.length;n++)this.ranges[n]=new fe(me(e,t[n].anchor),me(e,t[n].head))},origin:n&&n.origin};return Pa(e,"beforeSelectionChange",e,r),e.cm&&Pa(e.cm,"beforeSelectionChange",e.cm,r),r.ranges!=t.ranges?he(r.ranges,r.ranges.length-1):t}function Le(e,t,n){var r=e.history.done,i=Ii(r);i&&i.ranges?(r[r.length-1]=t,Me(e,t,n)):Te(e,t,n)}function Te(e,t,n){Me(e,t,n),fi(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function Me(e,t,n){(Ni(e,"beforeSelectionChange")||e.cm&&Ni(e.cm,"beforeSelectionChange"))&&(t=Ce(e,t,n));var r=n&&n.bias||(_o(t.primary().head,e.sel.primary().head)<0?-1:1);Ne(e,Ee(e,t,r,!0)),n&&n.scroll===!1||!e.cm||Bn(e.cm)}function Ne(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Mi(e.cm)),Ci(e,"cursorActivity",e))}function Ae(e){Ne(e,Ee(e,e.sel,null,!1),Wa)}function Ee(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=Ie(e,a.anchor,l&&l.anchor,n,r),c=Ie(e,a.head,l&&l.head,n,r);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new fe(s,c))}return i?he(i,t.primIndex):t}function Oe(e,t,n,r,i){var o=Zr(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(Pa(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(n){var c,u=s.find(0>r?1:-1);if((0>r?s.inclusiveRight:s.inclusiveLeft)&&(u=Pe(e,u,-r,u&&u.line==t.line?o:null)),u&&u.line==t.line&&(c=_o(u,n))&&(0>r?0>c:c>0))return Oe(e,u,t,r,i)}var f=s.find(0>r?-1:1);return(0>r?s.inclusiveLeft:s.inclusiveRight)&&(f=Pe(e,f,r,f.line==t.line?o:null)),f?Oe(e,f,t,r,i):null}}return t}function Ie(e,t,n,r,i){var o=r||1,a=Oe(e,t,n,o,i)||!i&&Oe(e,t,n,o,!0)||Oe(e,t,n,-o,i)||!i&&Oe(e,t,n,-o,!0);return a?a:(e.cantEdit=!0,Bo(e.first,0))}function Pe(e,t,n,r){return 0>n&&0==t.ch?t.line>e.first?me(e,Bo(t.line-1)):null:n>0&&t.ch==(r||Zr(e,t.line)).text.length?t.line<e.first+e.size-1?Bo(t.line+1,0):null:new Bo(t.line,t.ch+n)}function Re(e){e.display.input.showSelection(e.display.input.prepareSelection())}function De(e,t){for(var n=e.doc,r={},i=r.cursors=document.createDocumentFragment(),o=r.selection=document.createDocumentFragment(),a=0;a<n.sel.ranges.length;a++)if(t!==!1||a!=n.sel.primIndex){var l=n.sel.ranges[a];if(!(l.from().line>=e.display.viewTo||l.to().line<e.display.viewFrom)){var s=l.empty();(s||e.options.showCursorWhenSelecting)&&He(e,l.head,i),s||We(e,l,o)}}return r}function He(e,t,n){var r=dt(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),i=n.appendChild(ji("div"," ","CodeMirror-cursor"));if(i.style.left=r.left+"px",i.style.top=r.top+"px",i.style.height=Math.max(0,r.bottom-r.top)*e.options.cursorHeight+"px",r.other){var o=n.appendChild(ji("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));o.style.display="",o.style.left=r.other.left+"px",o.style.top=r.other.top+"px",o.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function We(e,t,n){function r(e,t,n,r){0>t&&(t=0),t=Math.round(t),r=Math.round(r),l.appendChild(ji("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px; top: "+t+"px; width: "+(null==n?u-e:n)+"px; height: "+(r-t)+"px"))}function i(t,n,i){function o(n,r){return ht(e,Bo(t,n),"div",f,r)}var l,s,f=Zr(a,t),h=f.text.length;return eo(ii(f),n||0,null==i?h:i,function(e,t,a){var f,d,p,m=o(e,"left");if(e==t)f=m,d=p=m.left;else{if(f=o(t-1,"right"),"rtl"==a){var g=m;m=f,f=g}d=m.left,p=f.right}null==n&&0==e&&(d=c),f.top-m.top>3&&(r(d,m.top,null,m.bottom),d=c,m.bottom<f.top&&r(d,m.bottom,null,f.top)),null==i&&t==h&&(p=u),(!l||m.top<l.top||m.top==l.top&&m.left<l.left)&&(l=m),(!s||f.bottom>s.bottom||f.bottom==s.bottom&&f.right>s.right)&&(s=f),c+1>d&&(d=c),r(d,f.top,p-d,f.bottom)}),{start:l,end:s}}var o=e.display,a=e.doc,l=document.createDocumentFragment(),s=Ge(e.display),c=s.left,u=Math.max(o.sizerWidth,$e(e)-o.sizer.offsetLeft)-s.right,f=t.from(),h=t.to();if(f.line==h.line)i(f.line,f.ch,h.ch);else{var d=Zr(a,f.line),p=Zr(a,h.line),m=yr(d)==yr(p),g=i(f.line,f.ch,m?d.text.length+1:null).end,v=i(h.line,m?0:null,h.ch).start;m&&(g.top<v.top-2?(r(g.right,g.top,null,g.bottom),r(c,v.top,v.left,v.bottom)):r(g.right,g.top,v.left-g.right,g.bottom)),g.bottom<v.top&&r(c,g.bottom,null,v.top)}n.appendChild(l)}function Be(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function _e(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.viewTo&&e.state.highlight.set(t,Bi(Fe,e))}function Fe(e){var t=e.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=e.display.viewTo)){var n=+new Date+e.options.workTime,r=sa(t.mode,je(e,t.frontier)),i=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(t.frontier>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength,s=Rr(e,o,l?sa(t.mode,r):r,!0);o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),h=0;!f&&h<a.length;++h)f=a[h]!=o.styles[h];f&&i.push(t.frontier),o.stateAfter=l?r:sa(t.mode,r)}else o.text.length<=e.options.maxHighlightLength&&Hr(e,o.text,r),o.stateAfter=t.frontier%5==0?sa(t.mode,r):null;return++t.frontier,+new Date>n?(_e(e,e.options.workDelay),!0):void 0}),i.length&&At(e,function(){for(var t=0;t<i.length;t++)Ht(e,i[t],"text")})}}function ze(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=Zr(o,l-1);if(s.stateAfter&&(!n||l<=o.frontier))return l;var c=Fa(s.text,null,e.options.tabSize);(null==i||r>c)&&(i=l-1,r=c)}return i}function je(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return!0;var o=ze(e,t,n),a=o>r.first&&Zr(r,o-1).stateAfter;return a=a?sa(r.mode,a):ca(r.mode),r.iter(o,t,function(n){Hr(e,n.text,a);var l=o==t-1||o%5==0||o>=i.viewFrom&&o<i.viewTo;n.stateAfter=l?sa(r.mode,a):null,++o}),n&&(r.frontier=o),a}function Ue(e){return e.lineSpace.offsetTop}function qe(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ge(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=qi(e.measure,ji("pre","x")),n=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,r={left:parseInt(n.paddingLeft),right:parseInt(n.paddingRight)};return isNaN(r.left)||isNaN(r.right)||(e.cachedPaddingH=r),r}function Ye(e){return Da-e.display.nativeBarWidth}function $e(e){return e.display.scroller.clientWidth-Ye(e)-e.display.barWidth}function Ve(e){return e.display.scroller.clientHeight-Ye(e)-e.display.barHeight}function Ke(e,t,n){var r=e.options.lineWrapping,i=r&&$e(e);if(!t.measure.heights||r&&t.measure.width!=i){var o=t.measure.heights=[];if(r){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Xe(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var r=0;r<e.rest.length;r++)if(ti(e.rest[r])>n)return{map:e.measure.maps[r],cache:e.measure.caches[r],before:!0}}function Ze(e,t){t=yr(t);var n=ti(t),r=e.display.externalMeasured=new Pt(e.doc,t,n);r.lineN=n;var i=r.built=Br(e,r);return r.text=i.pre,qi(e.display.lineMeasure,i.pre),r}function Je(e,t,n,r){return tt(e,et(e,t),n,r)}function Qe(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Bt(e,t)];var n=e.display.externalMeasured;return n&&t>=n.lineN&&t<n.lineN+n.size?n:void 0}function et(e,t){var n=ti(t),r=Qe(e,n);r&&!r.text?r=null:r&&r.changes&&(D(e,r,n,P(e)),e.curOp.forceUpdate=!0),r||(r=Ze(e,t));var i=Xe(r,t,n);return{line:t,view:r,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function tt(e,t,n,r,i){t.before&&(n=-1);var o,a=n+(r||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Ke(e,t.view,t.rect),t.hasHeights=!0),o=rt(e,t,n,r),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function nt(e,t,n){for(var r,i,o,a,l=0;l<e.length;l+=3){var s=e[l],c=e[l+1];if(s>t?(i=0,o=1,a="left"):c>t?(i=t-s,o=i+1):(l==e.length-3||t==c&&e[l+3]>t)&&(o=c-s,i=o-1,t>=c&&(a="right")),null!=i){if(r=e[l+2],s==c&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;l&&e[l-2]==e[l-3]&&e[l-1].insertLeft;)r=e[(l-=3)+2],a="left";if("right"==n&&i==c-s)for(;l<e.length-3&&e[l+3]==e[l+4]&&!e[l+5].insertLeft;)r=e[(l+=3)+2],a="right";break}}return{node:r,start:i,end:o,collapse:a,coverStart:s,coverEnd:c}}function rt(e,t,n,r){var i,o=nt(t.map,n,r),a=o.node,l=o.start,s=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;4>u;u++){for(;l&&zi(t.line.text.charAt(o.coverStart+l));)--l;for(;o.coverStart+s<o.coverEnd&&zi(t.line.text.charAt(o.coverStart+s));)++s;if(xo&&9>bo&&0==l&&s==o.coverEnd-o.coverStart)i=a.parentNode.getBoundingClientRect();else if(xo&&e.options.lineWrapping){var f=qa(a,l,s).getClientRects();i=f.length?f["right"==r?f.length-1:0]:qo}else i=qa(a,l,s).getBoundingClientRect()||qo;if(i.left||i.right||0==l)break;s=l,l-=1,c="right"}xo&&11>bo&&(i=it(e.display.measure,i))}else{l>0&&(c=r="right");var f;i=e.options.lineWrapping&&(f=a.getClientRects()).length>1?f["right"==r?f.length-1:0]:a.getBoundingClientRect()}if(xo&&9>bo&&!l&&(!i||!i.left&&!i.right)){var h=a.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+xt(e.display),top:h.top,bottom:h.bottom}:qo}for(var d=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(d+p)/2,g=t.view.measure.heights,u=0;u<g.length-1&&!(m<g[u]);u++);var v=u?g[u-1]:0,y=g[u],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:v,bottom:y};return i.left||i.right||(x.bogus=!0),e.options.singleCursorHeightPerLine||(x.rtop=d,x.rbottom=p),x}function it(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!Qi(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}function ot(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function at(e){e.display.externalMeasure=null,Ui(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)ot(e.display.view[t])}function lt(e){at(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function st(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ct(){return window.pageYOffset||(document.documentElement||document.body).scrollTop}function ut(e,t,n,r){if(t.widgets)for(var i=0;i<t.widgets.length;++i)if(t.widgets[i].above){var o=Lr(t.widgets[i]);n.top+=o,n.bottom+=o}if("line"==r)return n;r||(r="local");var a=ri(t);if("local"==r?a+=Ue(e.display):a-=e.display.viewOffset,"page"==r||"window"==r){var l=e.display.lineSpace.getBoundingClientRect();a+=l.top+("window"==r?0:ct());var s=l.left+("window"==r?0:st());n.left+=s,n.right+=s}return n.top+=a,n.bottom+=a,n}function ft(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;if("page"==n)r-=st(),
share/assets/js/010-simplemde.min.js:9:i-=ct();else if("local"==n||!n){var o=e.display.sizer.getBoundingClientRect();r+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:r-a.left,top:i-a.top}}function ht(e,t,n,r,i){return r||(r=Zr(e.doc,t.line)),ut(e,r,Je(e,r,t.ch,i),n)}function dt(e,t,n,r,i,o){function a(t,a){var l=tt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,ut(e,r,l,n)}function l(e,t){var n=s[t],r=n.level%2;return e==to(n)&&t&&n.level<s[t-1].level?(n=s[--t],e=no(n)-(n.level%2?0:1),r=!0):e==no(n)&&t<s.length-1&&n.level<s[t+1].level&&(n=s[++t],e=to(n)-n.level%2,r=!1),r&&e==n.to&&e>n.from?a(e-1):a(e,r)}r=r||Zr(e.doc,t.line),i||(i=et(e,r));var s=ii(r),c=t.ch;if(!s)return a(c);var u=co(s,c),f=l(c,u);return null!=al&&(f.other=l(c,al)),f}function pt(e,t){var n=0,t=me(e.doc,t);e.options.lineWrapping||(n=xt(e.display)*t.ch);var r=Zr(e.doc,t.line),i=ri(r)+Ue(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function mt(e,t,n,r){var i=Bo(e,t);return i.xRel=r,n&&(i.outside=!0),i}function gt(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,0>n)return mt(r.first,0,!0,-1);var i=ni(r,n),o=r.first+r.size-1;if(i>o)return mt(r.first+r.size-1,Zr(r,o).text.length,!0,1);0>t&&(t=0);for(var a=Zr(r,i);;){var l=vt(e,a,i,t,n),s=gr(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=ti(a=c.to.line)}}function vt(e,t,n,r,i){function o(r){var i=dt(e,Bo(n,r),"line",t,c);return l=!0,a>i.bottom?i.left-s:a<i.top?i.left+s:(l=!1,i.left)}var a=i-ri(t),l=!1,s=2*e.display.wrapper.clientWidth,c=et(e,t),u=ii(t),f=t.text.length,h=ro(t),d=io(t),p=o(h),m=l,g=o(d),v=l;if(r>g)return mt(n,d,v,1);for(;;){if(u?d==h||d==fo(t,h,1):1>=d-h){for(var y=p>r||g-r>=r-p?h:d,x=r-(y==h?p:g);zi(t.text.charAt(y));)++y;var b=mt(n,y,y==h?m:v,-1>x?-1:x>1?1:0);return b}var w=Math.ceil(f/2),k=h+w;if(u){k=h;for(var S=0;w>S;++S)k=fo(t,k,1)}var C=o(k);C>r?(d=k,g=C,(v=l)&&(g+=1e3),f=w):(h=k,p=C,m=l,f-=w)}}function yt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==zo){zo=ji("pre");for(var t=0;49>t;++t)zo.appendChild(document.createTextNode("x")),zo.appendChild(ji("br"));zo.appendChild(document.createTextNode("x"))}qi(e.measure,zo);var n=zo.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),Ui(e.measure),n||1}function xt(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=ji("span","xxxxxxxxxx"),n=ji("pre",[t]);qi(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function bt(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Yo},Go?Go.ops.push(e.curOp):e.curOp.ownsGroup=Go={ops:[e.curOp],delayedCallbacks:[]}}function wt(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}function kt(e){var t=e.curOp,n=t.ownsGroup;if(n)try{wt(n)}finally{Go=null;for(var r=0;r<n.ops.length;r++)n.ops[r].cm.curOp=null;St(n)}}function St(e){for(var t=e.ops,n=0;n<t.length;n++)Ct(t[n]);for(var n=0;n<t.length;n++)Lt(t[n]);for(var n=0;n<t.length;n++)Tt(t[n]);for(var n=0;n<t.length;n++)Mt(t[n]);for(var n=0;n<t.length;n++)Nt(t[n])}function Ct(e){var t=e.cm,n=t.display;T(t),e.updateMaxLine&&h(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new L(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Lt(e){e.updatedDisplay=e.mustUpdate&&M(e.cm,e.update)}function Tt(e){var t=e.cm,n=t.display;e.updatedDisplay&&O(t),e.barMeasure=p(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Je(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Ye(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-$e(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection(e.focus))}function Mt(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&on(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==Gi()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),(e.updatedDisplay||e.startHeight!=t.doc.height)&&y(t,e.barMeasure),e.updatedDisplay&&E(t,e.barMeasure),e.selectionChanged&&Be(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&X(e.cm)}function Nt(e){var t=e.cm,n=t.display,r=t.doc;if(e.updatedDisplay&&N(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null==e.scrollTop||n.scroller.scrollTop==e.scrollTop&&!e.forceScroll||(r.scrollTop=Math.max(0,Math.min(n.scroller.scrollHeight-n.scroller.clientHeight,e.scrollTop)),n.scrollbars.setScrollTop(r.scrollTop),n.scroller.scrollTop=r.scrollTop),null==e.scrollLeft||n.scroller.scrollLeft==e.scrollLeft&&!e.forceScroll||(r.scrollLeft=Math.max(0,Math.min(n.scroller.scrollWidth-n.scroller.clientWidth,e.scrollLeft)),n.scrollbars.setScrollLeft(r.scrollLeft),n.scroller.scrollLeft=r.scrollLeft,w(t)),e.scrollToPos){var i=Rn(t,me(r,e.scrollToPos.from),me(r,e.scrollToPos.to),e.scrollToPos.margin);e.scrollToPos.isCursor&&t.state.focused&&Pn(t,i)}var o=e.maybeHiddenMarkers,a=e.maybeUnhiddenMarkers;if(o)for(var l=0;l<o.length;++l)o[l].lines.length||Pa(o[l],"hide");if(a)for(var l=0;l<a.length;++l)a[l].lines.length&&Pa(a[l],"unhide");n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Pa(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function At(e,t){if(e.curOp)return t();bt(e);try{return t()}finally{kt(e)}}function Et(e,t){return function(){if(e.curOp)return t.apply(e,arguments);bt(e);try{return t.apply(e,arguments)}finally{kt(e)}}}function Ot(e){return function(){if(this.curOp)return e.apply(this,arguments);bt(this);try{return e.apply(this,arguments)}finally{kt(this)}}}function It(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);bt(t);try{return e.apply(this,arguments)}finally{kt(t)}}}function Pt(e,t,n){this.line=t,this.rest=xr(t),this.size=this.rest?ti(Ii(this.rest))-n+1:1,this.node=this.text=null,this.hidden=kr(e,t)}function Rt(e,t,n){for(var r,i=[],o=t;n>o;o=r){var a=new Pt(e.doc,Zr(e.doc,o),o);r=o+a.size,i.push(a)}return i}function Dt(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r||(r=0);var i=e.display;if(r&&n<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Wo&&br(e.doc,t)<i.viewTo&&Wt(e);else if(n<=i.viewFrom)Wo&&wr(e.doc,n+r)>i.viewFrom?Wt(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)Wt(e);else if(t<=i.viewFrom){var o=_t(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Wt(e)}else if(n>=i.viewTo){var o=_t(e,t,t,-1);o?(i.view=i.view.slice(0,o.index),i.viewTo=o.lineN):Wt(e)}else{var a=_t(e,t,t,-1),l=_t(e,n,n+r,1);a&&l?(i.view=i.view.slice(0,a.index).concat(Rt(e,a.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Wt(e)}var s=i.externalMeasured;s&&(n<s.lineN?s.lineN+=r:t<s.lineN+s.size&&(i.externalMeasured=null))}function Ht(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),!(t<r.viewFrom||t>=r.viewTo)){var o=r.view[Bt(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==Pi(a,n)&&a.push(n)}}}function Wt(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Bt(e,t){if(t>=e.display.viewTo)return null;if(t-=e.display.viewFrom,0>t)return null;for(var n=e.display.view,r=0;r<n.length;r++)if(t-=n[r].size,0>t)return r}function _t(e,t,n,r){var i,o=Bt(e,t),a=e.display.view;if(!Wo||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var l=0,s=e.display.viewFrom;o>l;l++)s+=a[l].size;if(s!=t){if(r>0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;br(e.doc,n)!=n;){if(o==(0>r?0:a.length-1))return null;n+=r*a[o-(0>r?1:0)].size,o+=r}return{index:o,lineN:n}}function Ft(e,t,n){var r=e.display,i=r.view;0==i.length||t>=r.viewTo||n<=r.viewFrom?(r.view=Rt(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=Rt(e,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(Bt(e,t))),r.viewFrom=t,r.viewTo<n?r.view=r.view.concat(Rt(e,r.viewTo,n)):r.viewTo>n&&(r.view=r.view.slice(0,Bt(e,n)))),r.viewTo=n}function zt(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function jt(e){function t(){i.activeTouch&&(o=setTimeout(function(){i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function n(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function r(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}var i=e.display;Ea(i.scroller,"mousedown",Et(e,$t)),xo&&11>bo?Ea(i.scroller,"dblclick",Et(e,function(t){if(!Ti(e,t)){var n=Yt(e,t);if(n&&!Jt(e,t)&&!Gt(e.display,t)){Ma(t);var r=e.findWordAt(n);be(e.doc,r.anchor,r.head)}}})):Ea(i.scroller,"dblclick",function(t){Ti(e,t)||Ma(t)}),Do||Ea(i.scroller,"contextmenu",function(t){xn(e,t)});var o,a={end:0};Ea(i.scroller,"touchstart",function(t){if(!Ti(e,t)&&!n(t)){clearTimeout(o);var r=+new Date;i.activeTouch={start:r,moved:!1,prev:r-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),Ea(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),Ea(i.scroller,"touchend",function(n){var o=i.activeTouch;if(o&&!Gt(i,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,l=e.coordsChar(i.activeTouch,"page");a=!o.prev||r(o,o.prev)?new fe(l,l):!o.prev.prev||r(o,o.prev.prev)?e.findWordAt(l):new fe(Bo(l.line,0),me(e.doc,Bo(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Ma(n)}t()}),Ea(i.scroller,"touchcancel",t),Ea(i.scroller,"scroll",function(){i.scroller.clientHeight&&(rn(e,i.scroller.scrollTop),on(e,i.scroller.scrollLeft,!0),Pa(e,"scroll",e))}),Ea(i.scroller,"mousewheel",function(t){an(e,t)}),Ea(i.scroller,"DOMMouseScroll",function(t){an(e,t)}),Ea(i.wrapper,"scroll",function(){i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Ti(e,t)||Aa(t)},over:function(t){Ti(e,t)||(tn(e,t),Aa(t))},start:function(t){en(e,t)},drop:Et(e,Qt),leave:function(t){Ti(e,t)||nn(e)}};var l=i.input.getField();Ea(l,"keyup",function(t){pn.call(e,t)}),Ea(l,"keydown",Et(e,hn)),Ea(l,"keypress",Et(e,mn)),Ea(l,"focus",Bi(vn,e)),Ea(l,"blur",Bi(yn,e))}function Ut(t,n,r){var i=r&&r!=e.Init;if(!n!=!i){var o=t.display.dragFunctions,a=n?Ea:Ia;a(t.display.scroller,"dragstart",o.start),a(t.display.scroller,"dragenter",o.enter),a(t.display.scroller,"dragover",o.over),a(t.display.scroller,"dragleave",o.leave),a(t.display.scroller,"drop",o.drop)}}function qt(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Gt(e,t){for(var n=wi(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&"true"==n.getAttribute("cm-ignore-events")||n.parentNode==e.sizer&&n!=e.mover)return!0}function Yt(e,t,n,r){var i=e.display;if(!n&&"true"==wi(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(t){return null}var s,c=gt(e,o,a);if(r&&1==c.xRel&&(s=Zr(e.doc,c.line).text).length==c.ch){var u=Fa(s,s.length,e.options.tabSize)-s.length;c=Bo(c.line,Math.max(0,Math.round((o-Ge(e.display).left)/xt(e.display))-u))}return c}function $t(e){var t=this,n=t.display;if(!(Ti(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.shift=e.shiftKey,Gt(n,e))return void(wo||(n.scroller.draggable=!1,setTimeout(function(){n.scroller.draggable=!0},100)));if(!Jt(t,e)){var r=Yt(t,e);switch(window.focus(),ki(e)){case 1:t.state.selectingText?t.state.selectingText(e):r?Vt(t,e,r):wi(e)==n.scroller&&Ma(e);break;case 2:wo&&(t.state.lastMiddleDown=+new Date),r&&be(t.doc,r),setTimeout(function(){n.input.focus()},20),Ma(e);break;case 3:Do?xn(t,e):gn(t)}}}}function Vt(e,t,n){xo?setTimeout(Bi(X,e),0):e.curOp.focus=Gi();var r,i=+new Date;Uo&&Uo.time>i-400&&0==_o(Uo.pos,n)?r="triple":jo&&jo.time>i-400&&0==_o(jo.pos,n)?(r="double",Uo={time:i,pos:n}):(r="single",jo={time:i,pos:n});var o,a=e.doc.sel,l=Eo?t.metaKey:t.ctrlKey;e.options.dragDrop&&el&&!e.isReadOnly()&&"single"==r&&(o=a.contains(n))>-1&&(_o((o=a.ranges[o]).from(),n)<0||n.xRel>0)&&(_o(o.to(),n)>0||n.xRel<0)?Kt(e,t,n,l):Xt(e,t,n,r,l)}function Kt(e,t,n,r){var i=e.display,o=+new Date,a=Et(e,function(l){wo&&(i.scroller.draggable=!1),e.state.draggingText=!1,Ia(document,"mouseup",a),Ia(i.scroller,"drop",a),Math.abs(t.clientX-l.clientX)+Math.abs(t.clientY-l.clientY)<10&&(Ma(l),!r&&+new Date-200<o&&be(e.doc,n),wo||xo&&9==bo?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())});wo&&(i.scroller.draggable=!0),e.state.draggingText=a,i.scroller.dragDrop&&i.scroller.dragDrop(),Ea(document,"mouseup",a),Ea(i.scroller,"drop",a)}function Xt(e,t,n,r,i){function o(t){if(0!=_o(g,t))if(g=t,"rect"==r){for(var i=[],o=e.options.tabSize,a=Fa(Zr(c,n.line).text,n.ch,o),l=Fa(Zr(c,t.line).text,t.ch,o),s=Math.min(a,l),d=Math.max(a,l),p=Math.min(n.line,t.line),m=Math.min(e.lastLine(),Math.max(n.line,t.line));m>=p;p++){var v=Zr(c,p).text,y=za(v,s,o);s==d?i.push(new fe(Bo(p,y),Bo(p,y))):v.length>y&&i.push(new fe(Bo(p,y),Bo(p,za(v,d,o))))}i.length||i.push(new fe(n,n)),Te(c,he(h.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x=u,b=x.anchor,w=t;if("single"!=r){if("double"==r)var k=e.findWordAt(t);else var k=new fe(Bo(t.line,0),me(c,Bo(t.line+1,0)));_o(k.anchor,b)>0?(w=k.head,b=K(x.from(),k.anchor)):(w=k.anchor,b=V(x.to(),k.head))}var i=h.ranges.slice(0);i[f]=new fe(me(c,b),w),Te(c,he(i,f),Ba)}}function a(t){var n=++y,i=Yt(e,t,!0,"rect"==r);if(i)if(0!=_o(i,g)){e.curOp.focus=Gi(),o(i);var l=b(s,c);(i.line>=l.to||i.line<l.from)&&setTimeout(Et(e,function(){y==n&&a(t)}),150)}else{var u=t.clientY<v.top?-20:t.clientY>v.bottom?20:0;u&&setTimeout(Et(e,function(){y==n&&(s.scroller.scrollTop+=u,a(t))}),50)}}function l(t){e.state.selectingText=!1,y=1/0,Ma(t),s.input.focus(),Ia(document,"mousemove",x),Ia(document,"mouseup",w),c.history.lastSelOrigin=null}var s=e.display,c=e.doc;Ma(t);var u,f,h=c.sel,d=h.ranges;if(i&&!t.shiftKey?(f=c.sel.contains(n),u=f>-1?d[f]:new fe(n,n)):(u=c.sel.primary(),f=c.sel.primIndex),Oo?t.shiftKey&&t.metaKey:t.altKey)r="rect",i||(u=new fe(n,n)),n=Yt(e,t,!0,!0),f=-1;else if("double"==r){var p=e.findWordAt(n);u=e.display.shift||c.extend?xe(c,u,p.anchor,p.head):p}else if("triple"==r){var m=new fe(Bo(n.line,0),me(c,Bo(n.line+1,0)));u=e.display.shift||c.extend?xe(c,u,m.anchor,m.head):m}else u=xe(c,u,n);i?-1==f?(f=d.length,Te(c,he(d.concat([u]),f),{scroll:!1,origin:"*mouse"})):d.length>1&&d[f].empty()&&"single"==r&&!t.shiftKey?(Te(c,he(d.slice(0,f).concat(d.slice(f+1)),0),{scroll:!1,origin:"*mouse"}),h=c.sel):ke(c,f,u,Ba):(f=0,Te(c,new ue([u],0),Ba),h=c.sel);var g=n,v=s.wrapper.getBoundingClientRect(),y=0,x=Et(e,function(e){ki(e)?a(e):l(e)}),w=Et(e,l);e.state.selectingText=w,Ea(document,"mousemove",x),Ea(document,"mouseup",w)}function Zt(e,t,n,r){try{var i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Ma(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!Ni(e,n))return bi(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){var u=ni(e.doc,o),f=e.options.gutters[s];return Pa(e,n,e,u,f,t),bi(t)}}}function Jt(e,t){return Zt(e,t,"gutterClick",!0)}function Qt(e){var t=this;if(nn(t),!Ti(t,e)&&!Gt(t.display,e)){Ma(e),xo&&($o=+new Date);var n=Yt(t,e,!0),r=e.dataTransfer.files;if(n&&!t.isReadOnly())if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),a=0,l=function(e,r){if(!t.options.allowDropFileTypes||-1!=Pi(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=Et(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[r]=e,++a==i){n=me(t.doc,n);var s={from:n,to:n,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Tn(t.doc,s),Le(t.doc,de(n,Qo(s)))}}),l.readAsText(e)}},s=0;i>s;++s)l(r[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(n)>-1)return t.state.draggingText(e),void setTimeout(function(){t.display.input.focus()},20);try{var o=e.dataTransfer.getData("Text");if(o){if(t.state.draggingText&&!(Eo?e.altKey:e.ctrlKey))var c=t.listSelections();if(Me(t.doc,de(n,n)),c)for(var s=0;s<c.length;++s)In(t.doc,"",c[s].anchor,c[s].head,"drag");t.replaceSelection(o,"around","paste"),t.display.input.focus()}}catch(e){}}}}function en(e,t){if(xo&&(!e.state.draggingText||+new Date-$o<100))return void Aa(t);if(!Ti(e,t)&&!Gt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Lo)){var n=ji("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Co&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),Co&&n.parentNode.removeChild(n)}}function tn(e,t){var n=Yt(e,t);if(n){var r=document.createDocumentFragment();He(e,n,r),e.display.dragCursor||(e.display.dragCursor=ji("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),qi(e.display.dragCursor,r)}}function nn(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function rn(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,go||A(e,{top:t}),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbars.setScrollTop(t),go&&A(e),_e(e,100))}function on(e,t,n){(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,w(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function an(e,t){var n=Xo(t),r=n.x,i=n.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(r&&l||i&&s){if(i&&Eo&&wo)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(r&&!go&&!Co&&null!=Ko)return i&&s&&rn(e,Math.max(0,Math.min(a.scrollTop+i*Ko,a.scrollHeight-a.clientHeight))),on(e,Math.max(0,Math.min(a.scrollLeft+r*Ko,a.scrollWidth-a.clientWidth))),(!i||i&&s)&&Ma(t),void(o.wheelStartX=null);if(i&&null!=Ko){var h=i*Ko,d=e.doc.scrollTop,p=d+o.wrapper.clientHeight;0>h?d=Math.max(0,d+h-50):p=Math.min(e.doc.height,p+h+50),A(e,{top:d,bottom:p})}20>Vo&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,n=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,n&&(Ko=(Ko*Vo+n)/(Vo+1),++Vo)}},200)):(o.wheelDX+=r,o.wheelDY+=i))}}function ln(e,t,n){if("string"==typeof t&&(t=ua[t],!t))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=Ha}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}function sn(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=ha(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&ha(t,e.options.extraKeys,n,e)||ha(t,e.options.keyMap,n,e)}function cn(e,t,n,r){var i=e.state.keySeq;if(i){if(da(t))return"handled";Zo.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=sn(e,t,r);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&Ci(e,"keyHandled",e,t,n),"handled"!=o&&"multi"!=o||(Ma(n),Be(e)),i&&!o&&/\'$/.test(t)?(Ma(n),!0):!!o}function un(e,t){var n=pa(t,!0);return n?t.shiftKey&&!e.state.keySeq?cn(e,"Shift-"+n,t,function(t){return ln(e,t,!0)})||cn(e,n,t,function(t){return("string"==typeof t?/^go[A-Z]/.test(t):t.motion)?ln(e,t):void 0}):cn(e,n,t,function(t){return ln(e,t)}):!1}function fn(e,t,n){return cn(e,"'"+n+"'",t,function(t){return ln(e,t,!0)})}function hn(e){var t=this;if(t.curOp.focus=Gi(),!Ti(t,e)){xo&&11>bo&&27==e.keyCode&&(e.returnValue=!1);var n=e.keyCode;t.display.shift=16==n||e.shiftKey;var r=un(t,e);Co&&(Jo=r?n:null,!r&&88==n&&!rl&&(Eo?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=n||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||dn(t)}}function dn(e){function t(e){18!=e.keyCode&&e.altKey||(Za(n,"CodeMirror-crosshair"),Ia(document,"keyup",t),Ia(document,"mouseover",t))}var n=e.display.lineDiv;Ja(n,"CodeMirror-crosshair"),Ea(document,"keyup",t),Ea(document,"mouseover",t)}function pn(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ti(this,e)}function mn(e){var t=this;if(!(Gt(t.display,e)||Ti(t,e)||e.ctrlKey&&!e.altKey||Eo&&e.metaKey)){var n=e.keyCode,r=e.charCode;if(Co&&n==Jo)return Jo=null,void Ma(e);if(!Co||e.which&&!(e.which<10)||!un(t,e)){var i=String.fromCharCode(null==r?n:r);fn(t,e,i)||t.display.input.onKeyPress(e)}}}function gn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,yn(e))},100)}function vn(e){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Pa(e,"focus",e),e.state.focused=!0,Ja(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),wo&&setTimeout(function(){e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Be(e))}function yn(e){e.state.delayingBlurEvent||(e.state.focused&&(Pa(e,"blur",e),e.state.focused=!1,Za(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function xn(e,t){Gt(e.display,t)||bn(e,t)||Ti(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function bn(e,t){return Ni(e,"gutterContextMenu")?Zt(e,t,"gutterContextMenu",!1):!1}function wn(e,t){if(_o(e,t.from)<0)return e;if(_o(e,t.to)<=0)return Qo(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Qo(t).ch-t.to.ch),Bo(n,r)}function kn(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r];n.push(new fe(wn(i.anchor,t),wn(i.head,t)))}return he(n,e.sel.primIndex)}function Sn(e,t,n){return e.line==t.line?Bo(n.line,e.ch-t.ch+n.ch):Bo(n.line+(e.line-t.line),e.ch)}function Cn(e,t,n){for(var r=[],i=Bo(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Sn(l.from,i,o),c=Sn(Qo(l),i,o);if(i=l.to,o=c,"around"==n){var u=e.sel.ranges[a],f=_o(u.head,u.anchor)<0;r[a]=new fe(f?c:s,f?s:c)}else r[a]=new fe(s,s)}return new ue(r,e.sel.primIndex)}function Ln(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){this.canceled=!0}};return n&&(r.update=function(t,n,r,i){t&&(this.from=me(e,t)),n&&(this.to=me(e,n)),r&&(this.text=r),void 0!==i&&(this.origin=i)}),Pa(e,"beforeChange",e,r),e.cm&&Pa(e.cm,"beforeChange",e.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Tn(e,t,n){if(e.cm){if(!e.cm.curOp)return Et(e.cm,Tn)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(Ni(e,"beforeChange")||e.cm&&Ni(e.cm,"beforeChange"))||(t=Ln(e,t,!0))){var r=Ho&&!n&&sr(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)Mn(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text});else Mn(e,t)}}function Mn(e,t){if(1!=t.text.length||""!=t.text[0]||0!=_o(t.from,t.to)){var n=kn(e,t);ci(e,t,n,e.cm?e.cm.curOp.id:NaN),En(e,t,n,or(e,t));var r=[];Kr(e,function(e,n){n||-1!=Pi(r,e.history)||(xi(e.history,t),r.push(e.history)),En(e,t,null,or(e,t))})}}function Nn(e,t,n){if(!e.cm||!e.cm.state.suppressEdits){for(var r,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(r=a[s],n?!r.ranges||r.equals(e.sel):r.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;r=a.pop(),r.ranges;){if(hi(r,l),n&&!r.equals(e.sel))return void Te(e,r,{clearRedo:!1});o=r}var c=[];hi(o,l),l.push({changes:c,generation:i.generation}),i.generation=r.generation||++i.maxGeneration;for(var u=Ni(e,"beforeChange")||e.cm&&Ni(e.cm,"beforeChange"),s=r.changes.length-1;s>=0;--s){var f=r.changes[s];if(f.origin=t,u&&!Ln(e,f,!1))return void(a.length=0);c.push(ai(e,f));var h=s?kn(e,f):Ii(a);En(e,f,h,lr(e,f)),!s&&e.cm&&e.cm.scrollIntoView({from:f.from,to:Qo(f)});var d=[];Kr(e,function(e,t){t||-1!=Pi(d,e.history)||(xi(e.history,f),d.push(e.history)),En(e,f,null,lr(e,f))})}}}}function An(e,t){if(0!=t&&(e.first+=t,e.sel=new ue(Ri(e.sel.ranges,function(e){return new fe(Bo(e.anchor.line+t,e.anchor.ch),Bo(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Dt(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)Ht(e.cm,r,"gutter")}}function En(e,t,n,r){if(e.cm&&!e.cm.curOp)return Et(e.cm,En)(e,t,n,r);if(t.to.line<e.first)return void An(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);An(e,i),t={from:Bo(e.first,0),to:Bo(t.to.line+i,t.to.ch),text:[Ii(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:Bo(o,Zr(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Jr(e,t.from,t.to),n||(n=kn(e,t)),e.cm?On(e.cm,t,r):Yr(e,t,r),Me(e,n,Wa)}}function On(e,t,n){var r=e.doc,i=e.display,a=t.from,l=t.to,s=!1,c=a.line;e.options.lineWrapping||(c=ti(yr(Zr(r,a.line))),r.iter(c,l.line+1,function(e){return e==i.maxLine?(s=!0,!0):void 0})),r.sel.contains(t.from,t.to)>-1&&Mi(e),Yr(r,t,n,o(e)),e.options.lineWrapping||(r.iter(c,a.line+t.text.length,function(e){var t=f(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),r.frontier=Math.min(r.frontier,a.line),_e(e,400);var u=t.text.length-(l.line-a.line)-1;t.full?Dt(e):a.line!=l.line||1!=t.text.length||Gr(e.doc,t)?Dt(e,a.line,l.line+1,u):Ht(e,a.line,"text");var h=Ni(e,"changes"),d=Ni(e,"change");if(d||h){var p={from:a,to:l,text:t.text,removed:t.removed,origin:t.origin};d&&Ci(e,"change",e,p),h&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(p)}e.display.selForContextMenu=null}function In(e,t,n,r,i){if(r||(r=n),_o(r,n)<0){var o=r;r=n,n=o}"string"==typeof t&&(t=e.splitLines(t)),Tn(e,{from:n,to:r,text:t,origin:i})}function Pn(e,t){if(!Ti(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null;if(t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!Mo){var o=ji("div","​",null,"position: absolute; top: "+(t.top-n.viewOffset-Ue(e.display))+"px; height: "+(t.bottom-t.top+Ye(e)+n.barHeight)+"px; left: "+t.left+"px; width: 2px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}function Rn(e,t,n,r){null==r&&(r=0);for(var i=0;5>i;i++){var o=!1,a=dt(e,t),l=n&&n!=t?dt(e,n):a,s=Hn(e,Math.min(a.left,l.left),Math.min(a.top,l.top)-r,Math.max(a.left,l.left),Math.max(a.bottom,l.bottom)+r),c=e.doc.scrollTop,u=e.doc.scrollLeft;if(null!=s.scrollTop&&(rn(e,s.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(o=!0)),null!=s.scrollLeft&&(on(e,s.scrollLeft),Math.abs(e.doc.scrollLeft-u)>1&&(o=!0)),!o)break}return a}function Dn(e,t,n,r,i){var o=Hn(e,t,n,r,i);null!=o.scrollTop&&rn(e,o.scrollTop),null!=o.scrollLeft&&on(e,o.scrollLeft)}function Hn(e,t,n,r,i){var o=e.display,a=yt(e.display);0>n&&(n=0);var l=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:o.scroller.scrollTop,s=Ve(e),c={};i-n>s&&(i=n+s);var u=e.doc.height+qe(o),f=a>n,h=i>u-a;if(l>n)c.scrollTop=f?0:n;else if(i>l+s){var d=Math.min(n,(h?u:i)-s);d!=l&&(c.scrollTop=d)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:o.scroller.scrollLeft,m=$e(e)-(e.options.fixedGutter?o.gutters.offsetWidth:0),g=r-t>m;return g&&(r=t+m),10>t?c.scrollLeft=0:p>t?c.scrollLeft=Math.max(0,t-(g?0:10)):r>m+p-3&&(c.scrollLeft=r+(g?0:10)-m),c}function Wn(e,t,n){null==t&&null==n||_n(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=n&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+n)}function Bn(e){_n(e);var t=e.getCursor(),n=t,r=t;e.options.lineWrapping||(n=t.ch?Bo(t.line,t.ch-1):t,r=Bo(t.line,t.ch+1)),e.curOp.scrollToPos={from:n,to:r,margin:e.options.cursorScrollMargin,isCursor:!0}}function _n(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=pt(e,t.from),r=pt(e,t.to),i=Hn(e,Math.min(n.left,r.left),Math.min(n.top,r.top)-t.margin,Math.max(n.right,r.right),Math.max(n.bottom,r.bottom)+t.margin);e.scrollTo(i.scrollLeft,i.scrollTop)}}function Fn(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=je(e,t):n="prev");var a=e.options.tabSize,l=Zr(o,t),s=Fa(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(r||/\S/.test(l.text)){if("smart"==n&&(c=o.mode.indent(i,l.text.slice(u.length),l.text),c==Ha||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?Fa(Zr(o,t-1).text,null,a):0:"add"==n?c=s+e.options.indentUnit:"subtract"==n?c=s-e.options.indentUnit:"number"==typeof n&&(c=s+n),c=Math.max(0,c);var f="",h=0;if(e.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)h+=a,f+="	";if(c>h&&(f+=Oi(c-h)),f!=u)return In(o,f,Bo(t,0),Bo(t,u.length),"+input"),l.stateAfter=null,!0;for(var d=0;d<o.sel.ranges.length;d++){var p=o.sel.ranges[d];if(p.head.line==t&&p.head.ch<u.length){var h=Bo(t,u.length);ke(o,d,new fe(h,h));break}}}function zn(e,t,n,r){var i=t,o=t;return"number"==typeof t?o=Zr(e,pe(e,t)):i=ti(t),null==i?null:(r(o,i)&&e.cm&&Ht(e.cm,i,n),o)}function jn(e,t){for(var n=e.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=t(n[i]);r.length&&_o(o.from,Ii(r).to)<=0;){var a=r.pop();if(_o(a.from,o.from)<0){o.from=a.from;break}}r.push(o)}At(e,function(){for(var t=r.length-1;t>=0;t--)In(e.doc,"",r[t].from,r[t].to,"+delete");Bn(e)})}function Un(e,t,n,r,i){function o(){var t=l+n;return t<e.first||t>=e.first+e.size?!1:(l=t,u=Zr(e,t))}function a(e){var t=(i?fo:ho)(u,s,n,!0);if(null==t){if(e||!o())return!1;s=i?(0>n?io:ro)(u):0>n?u.text.length:0}else s=t;return!0}var l=t.line,s=t.ch,c=n,u=Zr(e,l);if("char"==r)a();else if("column"==r)a(!0);else if("word"==r||"group"==r)for(var f=null,h="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),p=!0;!(0>n)||a(!p);p=!1){var m=u.text.charAt(s)||"\n",g=_i(m,d)?"w":h&&"\n"==m?"n":!h||/\s/.test(m)?null:"p";if(!h||p||g||(g="s"),f&&f!=g){0>n&&(n=1,a());break}if(g&&(f=g),n>0&&!a(!p))break}var v=Ie(e,Bo(l,s),t,c,!0);return _o(t,v)||(v.hitSide=!0),v}function qn(e,t,n,r){var i,o=e.doc,a=t.left;if("page"==r){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);i=t.top+n*(l-(0>n?1.5:.5)*yt(e.display))}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;;){var s=gt(e,a,i);if(!s.outside)break;if(0>n?0>=i:i>=o.height){s.hitSide=!0;break}i+=5*n}return s}function Gn(t,n,r,i){e.defaults[t]=n,r&&(ta[t]=i?function(e,t,n){n!=na&&r(e,t,n)}:r)}function Yn(e){for(var t,n,r,i,o=e.split(/-(?!$)/),e=o[o.length-1],a=0;a<o.length-1;a++){var l=o[a];if(/^(cmd|meta|m)$/i.test(l))i=!0;else if(/^a(lt)?$/i.test(l))t=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{
share/assets/js/010-simplemde.min.js:10:if(!/^s(hift)$/i.test(l))throw new Error("Unrecognized modifier name: "+l);r=!0}}return t&&(e="Alt-"+e),n&&(e="Ctrl-"+e),i&&(e="Cmd-"+e),r&&(e="Shift-"+e),e}function $n(e){return"string"==typeof e?fa[e]:e}function Vn(e,t,n,r,i){if(r&&r.shared)return Kn(e,t,n,r,i);if(e.cm&&!e.cm.curOp)return Et(e.cm,Vn)(e,t,n,r,i);var o=new va(e,i),a=_o(t,n);if(r&&Wi(r,o,!1),a>0||0==a&&o.clearWhenEmpty!==!1)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=ji("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(vr(e,t.line,t,n,o)||t.line!=n.line&&vr(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Wo=!0}o.addToHistory&&ci(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var l,s=t.line,c=e.cm;if(e.iter(s,n.line+1,function(e){c&&o.collapsed&&!c.options.lineWrapping&&yr(e)==c.display.maxLine&&(l=!0),o.collapsed&&s!=t.line&&ei(e,0),nr(e,new Qn(o,s==t.line?t.ch:null,s==n.line?n.ch:null)),++s}),o.collapsed&&e.iter(t.line,n.line+1,function(t){kr(e,t)&&ei(t,0)}),o.clearOnEnter&&Ea(o,"beforeCursorEnter",function(){o.clear()}),o.readOnly&&(Ho=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++ga,o.atomic=!0),c){if(l&&(c.curOp.updateMaxLine=!0),o.collapsed)Dt(c,t.line,n.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var u=t.line;u<=n.line;u++)Ht(c,u,"text");o.atomic&&Ae(c.doc),Ci(c,"markerAdded",c,o)}return o}function Kn(e,t,n,r,i){r=Wi(r),r.shared=!1;var o=[Vn(e,t,n,r,i)],a=o[0],l=r.widgetNode;return Kr(e,function(e){l&&(r.widgetNode=l.cloneNode(!0)),o.push(Vn(e,me(e,t),me(e,n),r,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=Ii(o)}),new ya(o,a)}function Xn(e){return e.findMarks(Bo(e.first,0),e.clipPos(Bo(e.lastLine())),function(e){return e.parent})}function Zn(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(_o(o,a)){var l=Vn(e,o,a,r.primary,r.primary.type);r.markers.push(l),l.parent=r}}}function Jn(e){for(var t=0;t<e.length;t++){var n=e[t],r=[n.primary.doc];Kr(n.primary.doc,function(e){r.push(e)});for(var i=0;i<n.markers.length;i++){var o=n.markers[i];-1==Pi(r,o.doc)&&(o.parent=null,n.markers.splice(i--,1))}}}function Qn(e,t,n){this.marker=e,this.from=t,this.to=n}function er(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function tr(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function nr(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function rr(e,t,n){if(e)for(var r,i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(l||o.from==t&&"bookmark"==a.type&&(!n||!o.marker.insertLeft)){var s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push(new Qn(a,o.from,s?null:o.to))}}return r}function ir(e,t,n){if(e)for(var r,i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(l||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(r||(r=[])).push(new Qn(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return r}function or(e,t){if(t.full)return null;var n=ve(e,t.from.line)&&Zr(e,t.from.line).markedSpans,r=ve(e,t.to.line)&&Zr(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,a=0==_o(t.from,t.to),l=rr(n,i,a),s=ir(r,o,a),c=1==t.text.length,u=Ii(t.text).length+(c?i:0);if(l)for(var f=0;f<l.length;++f){var h=l[f];if(null==h.to){var d=er(s,h.marker);d?c&&(h.to=null==d.to?null:d.to+u):h.to=i}}if(s)for(var f=0;f<s.length;++f){var h=s[f];if(null!=h.to&&(h.to+=u),null==h.from){var d=er(l,h.marker);d||(h.from=u,c&&(l||(l=[])).push(h))}else h.from+=u,c&&(l||(l=[])).push(h)}l&&(l=ar(l)),s&&s!=l&&(s=ar(s));var p=[l];if(!c){var m,g=t.text.length-2;if(g>0&&l)for(var f=0;f<l.length;++f)null==l[f].to&&(m||(m=[])).push(new Qn(l[f].marker,null,null));for(var f=0;g>f;++f)p.push(m);p.push(s)}return p}function ar(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&n.marker.clearWhenEmpty!==!1&&e.splice(t--,1)}return e.length?e:null}function lr(e,t){var n=mi(e,t),r=or(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],a=r[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(n[i]=a)}return n}function sr(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=Pi(r,n)||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var a=r[o],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(_o(c.to,l.from)<0||_o(c.from,l.to)>0)){var u=[s,1],f=_o(c.from,l.from),h=_o(c.to,l.to);(0>f||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-1}}return i}function cr(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function ur(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function fr(e){return e.inclusiveLeft?-1:0}function hr(e){return e.inclusiveRight?1:0}function dr(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),o=_o(r.from,i.from)||fr(e)-fr(t);if(o)return-o;var a=_o(r.to,i.to)||hr(e)-hr(t);return a?a:t.id-e.id}function pr(e,t){var n,r=Wo&&e.markedSpans;if(r)for(var i,o=0;o<r.length;++o)i=r[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!n||dr(n,i.marker)<0)&&(n=i.marker);return n}function mr(e){return pr(e,!0)}function gr(e){return pr(e,!1)}function vr(e,t,n,r,i){var o=Zr(e,t),a=Wo&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=_o(c.from,n)||fr(s.marker)-fr(i),f=_o(c.to,r)||hr(s.marker)-hr(i);if(!(u>=0&&0>=f||0>=u&&f>=0)&&(0>=u&&(s.marker.inclusiveRight&&i.inclusiveLeft?_o(c.to,n)>=0:_o(c.to,n)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?_o(c.from,r)<=0:_o(c.from,r)<0)))return!0}}}function yr(e){for(var t;t=mr(e);)e=t.find(-1,!0).line;return e}function xr(e){for(var t,n;t=gr(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function br(e,t){var n=Zr(e,t),r=yr(n);return n==r?t:ti(r)}function wr(e,t){if(t>e.lastLine())return t;var n,r=Zr(e,t);if(!kr(e,r))return t;for(;n=gr(r);)r=n.find(1,!0).line;return ti(r)+1}function kr(e,t){var n=Wo&&t.markedSpans;if(n)for(var r,i=0;i<n.length;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&Sr(e,t,r))return!0}}function Sr(e,t,n){if(null==n.to){var r=n.marker.find(1,!0);return Sr(e,r.line,er(r.line.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var i,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==n.to&&(null==i.to||i.to!=n.from)&&(i.marker.inclusiveLeft||n.marker.inclusiveRight)&&Sr(e,t,i))return!0}function Cr(e,t,n){ri(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Wn(e,null,n)}function Lr(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!Va(document.body,e.node)){var n="position: relative;";e.coverGutter&&(n+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(n+="width: "+t.display.wrapper.clientWidth+"px;"),qi(t.display.measure,ji("div",[e.node],null,n))}return e.height=e.node.parentNode.offsetHeight}function Tr(e,t,n,r){var i=new xa(e,n,r),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),zn(e,t,"widget",function(t){var n=t.widgets||(t.widgets=[]);if(null==i.insertAt?n.push(i):n.splice(Math.min(n.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!kr(e,t)){var r=ri(t)<e.scrollTop;ei(t,t.height+Lr(i)),r&&Wn(o,null,i.height),o.curOp.forceUpdate=!0}return!0}),i}function Mr(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),cr(e),ur(e,n);var i=r?r(e):1;i!=e.height&&ei(e,i)}function Nr(e){e.parent=null,cr(e)}function Ar(e,t){if(e)for(;;){var n=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?"bgClass":"textClass";null==t[r]?t[r]=n[2]:new RegExp("(?:^|s)"+n[2]+"(?:$|s)").test(t[r])||(t[r]+=" "+n[2])}return e}function Er(t,n){if(t.blankLine)return t.blankLine(n);if(t.innerMode){var r=e.innerMode(t,n);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Or(t,n,r,i){for(var o=0;10>o;o++){i&&(i[0]=e.innerMode(t,r).mode);var a=t.token(n,r);if(n.pos>n.start)return a}throw new Error("Mode "+t.name+" failed to advance stream.")}function Ir(e,t,n,r){function i(e){return{start:f.start,end:f.pos,string:f.current(),type:o||null,state:e?sa(a.mode,u):u}}var o,a=e.doc,l=a.mode;t=me(a,t);var s,c=Zr(a,t.line),u=je(e,t.line,n),f=new ma(c.text,e.options.tabSize);for(r&&(s=[]);(r||f.pos<t.ch)&&!f.eol();)f.start=f.pos,o=Or(l,f,u),r&&s.push(i(!0));return r?s:i()}function Pr(e,t,n,r,i,o,a){var l=n.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,f=new ma(t,e.options.tabSize),h=e.options.addModeClass&&[null];for(""==t&&Ar(Er(n,r),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(l=!1,a&&Hr(e,t,r,f.pos),f.pos=t.length,s=null):s=Ar(Or(n,f,r,h),o),h){var d=h[0].name;d&&(s="m-"+(s?d+" "+s:d))}if(!l||u!=s){for(;c<f.start;)c=Math.min(f.start,c+5e4),i(c,u);u=s}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e4);i(p,u),c=p}}function Rr(e,t,n,r){var i=[e.state.modeGen],o={};Pr(e,t.text,e.doc.mode,n,function(e,t){i.push(e,t)},o,r);for(var a=0;a<e.state.overlays.length;++a){var l=e.state.overlays[a],s=1,c=0;Pr(e,t.text,l.mode,!0,function(e,t){for(var n=s;e>c;){var r=i[s];r>e&&i.splice(s,1,e,i[s+1],r),s+=2,c=Math.min(e,r)}if(t)if(l.opaque)i.splice(n,s-n,e,"cm-overlay "+t),s=n+2;else for(;s>n;n+=2){var o=i[n+1];i[n+1]=(o?o+" ":"")+"cm-overlay "+t}},o)}return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Dr(e,t,n){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=je(e,ti(t)),i=Rr(e,t,t.text.length>e.options.maxHighlightLength?sa(e.doc.mode,r):r);t.stateAfter=r,t.styles=i.styles,i.classes?t.styleClasses=i.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.frontier&&e.doc.frontier++}return t.styles}function Hr(e,t,n,r){var i=e.doc.mode,o=new ma(t,e.options.tabSize);for(o.start=o.pos=r||0,""==t&&Er(i,n);!o.eol();)Or(i,o,n),o.start=o.pos}function Wr(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?ka:wa;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function Br(e,t){var n=ji("span",null,null,wo?"padding-right: .1px":null),r={pre:ji("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,splitSpaces:(xo||wo)&&e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o,a=i?t.rest[i-1]:t.line;r.pos=0,r.addToken=Fr,Ji(e.display.measure)&&(o=ii(a))&&(r.addToken=jr(r.addToken,o)),r.map=[];var l=t!=e.display.externalMeasured&&ti(a);qr(a,r,Dr(e,a,l)),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=$i(a.styleClasses.bgClass,r.bgClass||"")),a.styleClasses.textClass&&(r.textClass=$i(a.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Zi(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(wo){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return Pa(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=$i(r.pre.className,r.textClass||"")),r}function _r(e){var t=ji("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Fr(e,t,n,r,i,o,a){if(t){var l=e.splitSpaces?t.replace(/ {3,}/g,zr):t,s=e.cm.state.specialChars,c=!1;if(s.test(t))for(var u=document.createDocumentFragment(),f=0;;){s.lastIndex=f;var h=s.exec(t),d=h?h.index-f:t.length-f;if(d){var p=document.createTextNode(l.slice(f,f+d));xo&&9>bo?u.appendChild(ji("span",[p])):u.appendChild(p),e.map.push(e.pos,e.pos+d,p),e.col+=d,e.pos+=d}if(!h)break;if(f+=d+1,"	"==h[0]){var m=e.cm.options.tabSize,g=m-e.col%m,p=u.appendChild(ji("span",Oi(g),"cm-tab"));p.setAttribute("role","presentation"),p.setAttribute("cm-text","	"),e.col+=g}else if("\r"==h[0]||"\n"==h[0]){var p=u.appendChild(ji("span","\r"==h[0]?"␍":"␤","cm-invalidchar"));p.setAttribute("cm-text",h[0]),e.col+=1}else{var p=e.cm.options.specialCharPlaceholder(h[0]);p.setAttribute("cm-text",h[0]),xo&&9>bo?u.appendChild(ji("span",[p])):u.appendChild(p),e.col+=1}e.map.push(e.pos,e.pos+1,p),e.pos++}else{e.col+=t.length;var u=document.createTextNode(l);e.map.push(e.pos,e.pos+t.length,u),xo&&9>bo&&(c=!0),e.pos+=t.length}if(n||r||i||c||a){var v=n||"";r&&(v+=r),i&&(v+=i);var y=ji("span",[u],v,a);return o&&(y.title=o),e.content.appendChild(y)}e.content.appendChild(u)}}function zr(e){for(var t=" ",n=0;n<e.length-2;++n)t+=n%2?" ":" ";return t+=" "}function jr(e,t){return function(n,r,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=n.pos,u=c+r.length;;){for(var f=0;f<t.length;f++){var h=t[f];if(h.to>c&&h.from<=c)break}if(h.to>=u)return e(n,r,i,o,a,l,s);e(n,r.slice(0,h.to-c),i,o,null,l,s),o=null,r=r.slice(h.to-c),c=h.to}}}function Ur(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t}function qr(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,l,s,c,u,f,h,d=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=c=u=f=l="",h=null,v=1/0;for(var y,x=[],b=0;b<r.length;++b){var w=r[b],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?x.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(s+=" "+k.className),k.css&&(l=(l?l+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(y||(y=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!h||dr(h.marker,k)<0)&&(h=w)):w.from>p&&v>w.from&&(v=w.from)}if(y)for(var b=0;b<y.length;b+=2)y[b+1]==v&&(c+=" "+y[b]);if(!h||h.from==p)for(var b=0;b<x.length;++b)Ur(t,0,x[b]);if(h&&(h.from||0)==p){if(Ur(t,(null==h.to?d+1:h.to)-p,h.marker,null==h.from),null==h.to)return;h.to==p&&(h=!1)}}if(p>=d)break;for(var S=Math.min(d,v);;){if(g){var C=p+g.length;if(!h){var L=C>S?g.slice(0,S-p):g;t.addToken(t,L,a?a+s:s,u,p+L.length==v?c:"",f,l)}if(C>=S){g=g.slice(S-p),p=S;break}p=C,u=""}g=i.slice(o,o=n[m++]),a=Wr(n[m++],t.cm.options)}}else for(var m=1;m<n.length;m+=2)t.addToken(t,i.slice(o,o=n[m]),Wr(n[m+1],t.cm.options))}function Gr(e,t){return 0==t.from.ch&&0==t.to.ch&&""==Ii(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Yr(e,t,n,r){function i(e){return n?n[e]:null}function o(e,n,i){Mr(e,n,i,r),Ci(e,"change",e,t)}function a(e,t){for(var n=e,o=[];t>n;++n)o.push(new ba(c[n],i(n),r));return o}var l=t.from,s=t.to,c=t.text,u=Zr(e,l.line),f=Zr(e,s.line),h=Ii(c),d=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(Gr(e,t)){var m=a(0,c.length-1);o(f,f.text,d),p&&e.remove(l.line,p),m.length&&e.insert(l.line,m)}else if(u==f)if(1==c.length)o(u,u.text.slice(0,l.ch)+h+u.text.slice(s.ch),d);else{var m=a(1,c.length-1);m.push(new ba(h+u.text.slice(s.ch),d,r)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,m)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+f.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(f,h+f.text.slice(s.ch),d);var m=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,m)}Ci(e,"change",e,t)}function $r(e){this.lines=e,this.parent=null;for(var t=0,n=0;t<e.length;++t)e[t].parent=this,n+=e[t].height;this.height=n}function Vr(e){this.children=e;for(var t=0,n=0,r=0;r<e.length;++r){var i=e[r];t+=i.chunkSize(),n+=i.height,i.parent=this}this.size=t,this.height=n,this.parent=null}function Kr(e,t,n){function r(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;n&&!s||(t(l.doc,s),r(l.doc,e,s))}}}r(e,null,!0)}function Xr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,a(e),n(e),e.options.lineWrapping||h(e),e.options.mode=t.modeOption,Dt(e)}function Zr(e,t){if(t-=e.first,0>t||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(o>t){n=i;break}t-=o}return n.lines[t]}function Jr(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function Qr(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function ei(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function ti(e){if(null==e.parent)return null;for(var t=e.parent,n=Pi(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function ni(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(o>t){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var r=0;r<e.lines.length;++r){var a=e.lines[r],l=a.height;if(l>t)break;t-=l}return n+r}function ri(e){e=yr(e);for(var t=0,n=e.parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;n=o,o=n.parent)for(var r=0;r<o.children.length;++r){var a=o.children[r];if(a==n)break;t+=a.height}return t}function ii(e){var t=e.order;return null==t&&(t=e.order=ll(e.text)),t}function oi(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function ai(e,t){var n={from:$(t.from),to:Qo(t),text:Jr(e,t.from,t.to)};return di(e,n,t.from.line,t.to.line+1),Kr(e,function(e){di(e,n,t.from.line,t.to.line+1)},!0),n}function li(e){for(;e.length;){var t=Ii(e);if(!t.ranges)break;e.pop()}}function si(e,t){return t?(li(e.done),Ii(e.done)):e.done.length&&!Ii(e.done).ranges?Ii(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),Ii(e.done)):void 0}function ci(e,t,n,r){var i=e.history;i.undone.length=0;var o,a=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>a-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=si(i,i.lastOp==r))){var l=Ii(o.changes);0==_o(t.from,t.to)&&0==_o(t.from,l.to)?l.to=Qo(t):o.changes.push(ai(e,t))}else{var s=Ii(i.done);for(s&&s.ranges||hi(e.sel,i.done),o={changes:[ai(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,l||Pa(e,"historyAdded")}function ui(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function fi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||ui(e,o,Ii(i.done),t))?i.done[i.done.length-1]=t:hi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&r.clearRedo!==!1&&li(i.undone)}function hi(e,t){var n=Ii(t);n&&n.ranges&&n.equals(e)||t.push(e)}function di(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function pi(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function mi(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=0,i=[];r<t.text.length;++r)i.push(pi(n[r]));return i}function gi(e,t,n){for(var r=0,i=[];r<e.length;++r){var o=e[r];if(o.ranges)i.push(n?ue.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];i.push({changes:l});for(var s=0;s<a.length;++s){var c,u=a[s];if(l.push({from:u.from,to:u.to,text:u.text}),t)for(var f in u)(c=f.match(/^spans_(\d+)$/))&&Pi(t,Number(c[1]))>-1&&(Ii(l)[f]=u[f],delete u[f])}}}return i}function vi(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function yi(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var l=0;l<o.ranges.length;l++)vi(o.ranges[l].anchor,t,n,r),vi(o.ranges[l].head,t,n,r)}else{for(var l=0;l<o.changes.length;++l){var s=o.changes[l];if(n<s.from.line)s.from=Bo(s.from.line+r,s.from.ch),s.to=Bo(s.to.line+r,s.to.ch);else if(t<=s.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function xi(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;yi(e.done,n,r,i),yi(e.undone,n,r,i)}function bi(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function wi(e){return e.target||e.srcElement}function ki(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Eo&&e.ctrlKey&&1==t&&(t=3),t}function Si(e,t,n){var r=e._handlers&&e._handlers[t];return n?r&&r.length>0?r.slice():Oa:r||Oa}function Ci(e,t){function n(e){return function(){e.apply(null,o)}}var r=Si(e,t,!1);if(r.length){var i,o=Array.prototype.slice.call(arguments,2);Go?i=Go.delayedCallbacks:Ra?i=Ra:(i=Ra=[],setTimeout(Li,0));for(var a=0;a<r.length;++a)i.push(n(r[a]))}}function Li(){var e=Ra;Ra=null;for(var t=0;t<e.length;++t)e[t]()}function Ti(e,t,n){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Pa(e,n||t.type,e,t),bi(t)||t.codemirrorIgnore}function Mi(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)-1==Pi(n,t[r])&&n.push(t[r])}function Ni(e,t){return Si(e,t).length>0}function Ai(e){e.prototype.on=function(e,t){Ea(this,e,t)},e.prototype.off=function(e,t){Ia(this,e,t)}}function Ei(){this.id=null}function Oi(e){for(;ja.length<=e;)ja.push(Ii(ja)+" ");return ja[e]}function Ii(e){return e[e.length-1]}function Pi(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}function Ri(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function Di(){}function Hi(e,t){var n;return Object.create?n=Object.create(e):(Di.prototype=e,n=new Di),t&&Wi(t,n),n}function Wi(e,t,n){t||(t={});for(var r in e)!e.hasOwnProperty(r)||n===!1&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function Bi(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function _i(e,t){return t?t.source.indexOf("\\w")>-1&&Ya(e)?!0:t.test(e):Ya(e)}function Fi(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function zi(e){return e.charCodeAt(0)>=768&&$a.test(e)}function ji(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function Ui(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function qi(e,t){return Ui(e).appendChild(t)}function Gi(){for(var e=document.activeElement;e&&e.root&&e.root.activeElement;)e=e.root.activeElement;return e}function Yi(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function $i(e,t){for(var n=e.split(" "),r=0;r<n.length;r++)n[r]&&!Yi(n[r]).test(t)&&(t+=" "+n[r]);return t}function Vi(e){if(document.body.getElementsByClassName)for(var t=document.body.getElementsByClassName("CodeMirror"),n=0;n<t.length;n++){var r=t[n].CodeMirror;r&&e(r)}}function Ki(){Qa||(Xi(),Qa=!0)}function Xi(){var e;Ea(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Vi(qt)},100))}),Ea(window,"blur",function(){Vi(yn)})}function Zi(e){if(null==Ka){var t=ji("span","​");qi(e,ji("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Ka=t.offsetWidth<=1&&t.offsetHeight>2&&!(xo&&8>bo))}var n=Ka?ji("span","​"):ji("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Ji(e){if(null!=Xa)return Xa;var t=qi(e,document.createTextNode("AخA")),n=qa(t,0,1).getBoundingClientRect();if(!n||n.left==n.right)return!1;var r=qa(t,1,2).getBoundingClientRect();return Xa=r.right-n.right<3}function Qi(e){if(null!=il)return il;var t=qi(e,ji("span","x")),n=t.getBoundingClientRect(),r=qa(t,0,1).getBoundingClientRect();return il=Math.abs(n.left-r.left)>1}function eo(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<n&&a.to>t||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr"),i=!0)}i||r(t,n,"ltr")}function to(e){return e.level%2?e.to:e.from}function no(e){return e.level%2?e.from:e.to}function ro(e){var t=ii(e);return t?to(t[0]):0}function io(e){var t=ii(e);return t?no(Ii(t)):e.text.length}function oo(e,t){var n=Zr(e.doc,t),r=yr(n);r!=n&&(t=ti(r));var i=ii(r),o=i?i[0].level%2?io(r):ro(r):0;return Bo(t,o)}function ao(e,t){for(var n,r=Zr(e.doc,t);n=gr(r);)r=n.find(1,!0).line,t=null;var i=ii(r),o=i?i[0].level%2?ro(r):io(r):r.text.length;return Bo(null==t?ti(r):t,o)}function lo(e,t){var n=oo(e,t.line),r=Zr(e.doc,n.line),i=ii(r);if(!i||0==i[0].level){var o=Math.max(0,r.text.search(/\S/)),a=t.line==n.line&&t.ch<=o&&t.ch;return Bo(n.line,a?0:o)}return n}function so(e,t,n){var r=e[0].level;return t==r?!0:n==r?!1:n>t}function co(e,t){al=null;for(var n,r=0;r<e.length;++r){var i=e[r];if(i.from<t&&i.to>t)return r;if(i.from==t||i.to==t){if(null!=n)return so(e,i.level,e[n].level)?(i.from!=i.to&&(al=n),r):(i.from!=i.to&&(al=r),n);n=r}}return n}function uo(e,t,n,r){if(!r)return t+n;do t+=n;while(t>0&&zi(e.text.charAt(t)));return t}function fo(e,t,n,r){var i=ii(e);if(!i)return ho(e,t,n,r);for(var o=co(i,t),a=i[o],l=uo(e,t,a.level%2?-n:n,r);;){if(l>a.from&&l<a.to)return l;if(l==a.from||l==a.to)return co(i,l)==o?l:(a=i[o+=n],n>0==a.level%2?a.to:a.from);if(a=i[o+=n],!a)return null;l=n>0==a.level%2?uo(e,a.to,-1,r):uo(e,a.from,1,r)}}function ho(e,t,n,r){var i=t+n;if(r)for(;i>0&&zi(e.text.charAt(i));)i+=n;return 0>i||i>e.text.length?null:i}var po=navigator.userAgent,mo=navigator.platform,go=/gecko\/\d/i.test(po),vo=/MSIE \d/.test(po),yo=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(po),xo=vo||yo,bo=xo&&(vo?document.documentMode||6:yo[1]),wo=/WebKit\//.test(po),ko=wo&&/Qt\/\d+\.\d+/.test(po),So=/Chrome\//.test(po),Co=/Opera\//.test(po),Lo=/Apple Computer/.test(navigator.vendor),To=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(po),Mo=/PhantomJS/.test(po),No=/AppleWebKit/.test(po)&&/Mobile\/\w+/.test(po),Ao=No||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(po),Eo=No||/Mac/.test(mo),Oo=/\bCrOS\b/.test(po),Io=/win/i.test(mo),Po=Co&&po.match(/Version\/(\d*\.\d*)/);Po&&(Po=Number(Po[1])),Po&&Po>=15&&(Co=!1,wo=!0);var Ro=Eo&&(ko||Co&&(null==Po||12.11>Po)),Do=go||xo&&bo>=9,Ho=!1,Wo=!1;m.prototype=Wi({update:function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+o+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},setScrollLeft:function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz)},setScrollTop:function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert)},zeroWidthHack:function(){var e=Eo&&!To?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Ei,this.disableVert=new Ei},enableZeroWidthBar:function(e,t){function n(){var r=e.getBoundingClientRect(),i=document.elementFromPoint(r.left+1,r.bottom-1);i!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},clear:function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)}},m.prototype),g.prototype=Wi({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},g.prototype),e.scrollbarModel={"native":m,"null":g},L.prototype.signal=function(e,t){Ni(e,t)&&this.events.push(arguments)},L.prototype.finish=function(){for(var e=0;e<this.events.length;e++)Pa.apply(null,this.events[e])};var Bo=e.Pos=function(e,t){return this instanceof Bo?(this.line=e,void(this.ch=t)):new Bo(e,t)},_o=e.cmpPos=function(e,t){return e.line-t.line||e.ch-t.ch},Fo=null;ne.prototype=Wi({init:function(e){function t(e){if(!Ti(r,e)){if(r.somethingSelected())Fo={lineWise:!1,text:r.getSelections()},n.inaccurateSelection&&(n.prevInput="",n.inaccurateSelection=!1,o.value=Fo.text.join("\n"),Ua(o));else{if(!r.options.lineWiseCopyCut)return;var t=ee(r);Fo={lineWise:!0,text:t.text},"cut"==e.type?r.setSelections(t.ranges,null,Wa):(n.prevInput="",o.value=t.text.join("\n"),Ua(o))}"cut"==e.type&&(r.state.cutIncoming=!0)}}var n=this,r=this.cm,i=this.wrapper=re(),o=this.textarea=i.firstChild;e.wrapper.insertBefore(i,e.wrapper.firstChild),No&&(o.style.width="0px"),Ea(o,"input",function(){xo&&bo>=9&&n.hasSelection&&(n.hasSelection=null),n.poll()}),Ea(o,"paste",function(e){Ti(r,e)||J(e,r)||(r.state.pasteIncoming=!0,n.fastPoll())}),Ea(o,"cut",t),Ea(o,"copy",t),Ea(e.scroller,"paste",function(t){Gt(e,t)||Ti(r,t)||(r.state.pasteIncoming=!0,n.focus())}),Ea(e.lineSpace,"selectstart",function(t){Gt(e,t)||Ma(t)}),Ea(o,"compositionstart",function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}}),Ea(o,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},prepareSelection:function(){var e=this.cm,t=e.display,n=e.doc,r=De(e);if(e.options.moveInputWithCursor){var i=dt(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},showSelection:function(e){var t=this.cm,n=t.display;qi(n.cursorDiv,e.cursors),qi(n.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},reset:function(e){if(!this.contextMenuPending){var t,n,r=this.cm,i=r.doc;if(r.somethingSelected()){this.prevInput="";var o=i.sel.primary();t=rl&&(o.to().line-o.from().line>100||(n=r.getSelection()).length>1e3);var a=t?"-":n||r.getSelection();this.textarea.value=a,r.state.focused&&Ua(this.textarea),xo&&bo>=9&&(this.hasSelection=a)}else e||(this.prevInput=this.textarea.value="",xo&&bo>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},getField:function(){return this.textarea},supportsTouch:function(){return!1},focus:function(){if("nocursor"!=this.cm.options.readOnly&&(!Ao||Gi()!=this.textarea))try{this.textarea.focus()}catch(e){}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0;
share/assets/js/010-simplemde.min.js:11:},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var e=this;e.pollingFast||e.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},fastPoll:function(){function e(){var r=n.poll();r||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},poll:function(){var e=this.cm,t=this.textarea,n=this.prevInput;if(this.contextMenuPending||!e.state.focused||nl(t)&&!n&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var r=t.value;if(r==n&&!e.somethingSelected())return!1;if(xo&&bo>=9&&this.hasSelection===r||Eo&&/[\uf700-\uf7ff]/.test(r))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var i=r.charCodeAt(0);if(8203!=i||n||(n="​"),8666==i)return this.reset(),this.cm.execCommand("undo")}for(var o=0,a=Math.min(n.length,r.length);a>o&&n.charCodeAt(o)==r.charCodeAt(o);)++o;var l=this;return At(e,function(){Z(e,r.slice(o),n.length-o,null,l.composing?"*compose":null),r.length>1e3||r.indexOf("\n")>-1?t.value=l.prevInput="":l.prevInput=r,l.composing&&(l.composing.range.clear(),l.composing.range=e.markText(l.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},ensurePolled:function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},onKeyPress:function(){xo&&bo>=9&&(this.hasSelection=null),this.fastPoll()},onContextMenu:function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,r.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function n(){if(r.contextMenuPending=!1,r.wrapper.style.cssText=f,a.style.cssText=u,xo&&9>bo&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!xo||xo&&9>bo)&&t();var e=0,n=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==r.prevInput?Et(i,ua.selectAll)(i):e++<10?o.detectingSelectAll=setTimeout(n,500):o.input.reset()};o.detectingSelectAll=setTimeout(n,200)}}var r=this,i=r.cm,o=i.display,a=r.textarea,l=Yt(i,e),s=o.scroller.scrollTop;if(l&&!Co){var c=i.options.resetSelectionOnContextMenu;c&&-1==i.doc.sel.contains(l)&&Et(i,Te)(i.doc,de(l),Wa);var u=a.style.cssText,f=r.wrapper.style.cssText;r.wrapper.style.cssText="position: absolute";var h=r.wrapper.getBoundingClientRect();if(a.style.cssText="position: absolute; width: 30px; height: 30px; top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px; z-index: 1000; background: "+(xo?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",wo)var d=window.scrollY;if(o.input.focus(),wo&&window.scrollTo(null,d),o.input.reset(),i.somethingSelected()||(a.value=r.prevInput=" "),r.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),xo&&bo>=9&&t(),Do){Aa(e);var p=function(){Ia(window,"mouseup",p),setTimeout(n,20)};Ea(window,"mouseup",p)}else setTimeout(n,50)}},readOnlyChanged:function(e){e||this.reset()},setUneditable:Di,needsContentAttribute:!1},ne.prototype),ie.prototype=Wi({init:function(e){function t(e){if(!Ti(r,e)){if(r.somethingSelected())Fo={lineWise:!1,text:r.getSelections()},"cut"==e.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var t=ee(r);Fo={lineWise:!0,text:t.text},"cut"==e.type&&r.operation(function(){r.setSelections(t.ranges,0,Wa),r.replaceSelection("",null,"cut")})}if(e.clipboardData&&!No)e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/plain",Fo.text.join("\n"));else{var n=re(),i=n.firstChild;r.display.lineSpace.insertBefore(n,r.display.lineSpace.firstChild),i.value=Fo.text.join("\n");var o=document.activeElement;Ua(i),setTimeout(function(){r.display.lineSpace.removeChild(n),o.focus()},50)}}}var n=this,r=n.cm,i=n.div=e.lineDiv;te(i),Ea(i,"paste",function(e){Ti(r,e)||J(e,r)}),Ea(i,"compositionstart",function(e){var t=e.data;if(n.composing={sel:r.doc.sel,data:t,startData:t},t){var i=r.doc.sel.primary(),o=r.getLine(i.head.line),a=o.indexOf(t,Math.max(0,i.head.ch-t.length));a>-1&&a<=i.head.ch&&(n.composing.sel=de(Bo(i.head.line,a),Bo(i.head.line,a+t.length)))}}),Ea(i,"compositionupdate",function(e){n.composing.data=e.data}),Ea(i,"compositionend",function(e){var t=n.composing;t&&(e.data==t.startData||/\u200b/.test(e.data)||(t.data=e.data),setTimeout(function(){t.handled||n.applyComposition(t),n.composing==t&&(n.composing=null)},50))}),Ea(i,"touchstart",function(){n.forceCompositionEnd()}),Ea(i,"input",function(){n.composing||!r.isReadOnly()&&n.pollContent()||At(n.cm,function(){Dt(r)})}),Ea(i,"copy",t),Ea(i,"cut",t)},prepareSelection:function(){var e=De(this.cm,!1);return e.focus=this.cm.state.focused,e},showSelection:function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},showPrimarySelection:function(){var e=window.getSelection(),t=this.cm.doc.sel.primary(),n=le(this.cm,e.anchorNode,e.anchorOffset),r=le(this.cm,e.focusNode,e.focusOffset);if(!n||n.bad||!r||r.bad||0!=_o(K(n,r),t.from())||0!=_o(V(n,r),t.to())){var i=oe(this.cm,t.from()),o=oe(this.cm,t.to());if(i||o){var a=this.cm.display.view,l=e.rangeCount&&e.getRangeAt(0);if(i){if(!o){var s=a[a.length-1].measure,c=s.maps?s.maps[s.maps.length-1]:s.map;o={node:c[c.length-1],offset:c[c.length-2]-c[c.length-3]}}}else i={node:a[0].measure.map[2],offset:0};try{var u=qa(i.node,i.offset,o.offset,o.node)}catch(f){}u&&(!go&&this.cm.state.focused?(e.collapse(i.node,i.offset),u.collapsed||e.addRange(u)):(e.removeAllRanges(),e.addRange(u)),l&&null==e.anchorNode?e.addRange(l):go&&this.startGracePeriod()),this.rememberSelection()}}},startGracePeriod:function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){e.cm.curOp.selectionChanged=!0})},20)},showMultipleSelections:function(e){qi(this.cm.display.cursorDiv,e.cursors),qi(this.cm.display.selectionDiv,e.selection)},rememberSelection:function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},selectionInEditor:function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return Va(this.div,t)},focus:function(){"nocursor"!=this.cm.options.readOnly&&this.div.focus()},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return!0},receivedFocus:function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():At(this.cm,function(){t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},selectionChanged:function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},pollSelection:function(){if(!this.composing&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;this.rememberSelection();var n=le(t,e.anchorNode,e.anchorOffset),r=le(t,e.focusNode,e.focusOffset);n&&r&&At(t,function(){Te(t.doc,de(n,r),Wa),(n.bad||r.bad)&&(t.curOp.selectionChanged=!0)})}},pollContent:function(){var e=this.cm,t=e.display,n=e.doc.sel.primary(),r=n.from(),i=n.to();if(r.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o;if(r.line==t.viewFrom||0==(o=Bt(e,r.line)))var a=ti(t.view[0].line),l=t.view[0].node;else var a=ti(t.view[o].line),l=t.view[o-1].node.nextSibling;var s=Bt(e,i.line);if(s==t.view.length-1)var c=t.viewTo-1,u=t.lineDiv.lastChild;else var c=ti(t.view[s+1].line)-1,u=t.view[s+1].node.previousSibling;for(var f=e.doc.splitLines(ce(e,l,u,a,c)),h=Jr(e.doc,Bo(a,0),Bo(c,Zr(e.doc,c).text.length));f.length>1&&h.length>1;)if(Ii(f)==Ii(h))f.pop(),h.pop(),c--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),a++}for(var d=0,p=0,m=f[0],g=h[0],v=Math.min(m.length,g.length);v>d&&m.charCodeAt(d)==g.charCodeAt(d);)++d;for(var y=Ii(f),x=Ii(h),b=Math.min(y.length-(1==f.length?d:0),x.length-(1==h.length?d:0));b>p&&y.charCodeAt(y.length-p-1)==x.charCodeAt(x.length-p-1);)++p;f[f.length-1]=y.slice(0,y.length-p),f[0]=f[0].slice(d);var w=Bo(a,d),k=Bo(c,h.length?Ii(h).length-p:0);return f.length>1||f[0]||_o(w,k)?(In(e.doc,f,w,k,"+input"),!0):void 0},ensurePolled:function(){this.forceCompositionEnd()},reset:function(){this.forceCompositionEnd()},forceCompositionEnd:function(){this.composing&&!this.composing.handled&&(this.applyComposition(this.composing),this.composing.handled=!0,this.div.blur(),this.div.focus())},applyComposition:function(e){this.cm.isReadOnly()?Et(this.cm,Dt)(this.cm):e.data&&e.data!=e.startData&&Et(this.cm,Z)(this.cm,e.data,0,e.sel)},setUneditable:function(e){e.contentEditable="false"},onKeyPress:function(e){e.preventDefault(),this.cm.isReadOnly()||Et(this.cm,Z)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0)},readOnlyChanged:function(e){this.div.contentEditable=String("nocursor"!=e)},onContextMenu:Di,resetPosition:Di,needsContentAttribute:!0},ie.prototype),e.inputStyles={textarea:ne,contenteditable:ie},ue.prototype={primary:function(){return this.ranges[this.primIndex]},equals:function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var n=this.ranges[t],r=e.ranges[t];if(0!=_o(n.anchor,r.anchor)||0!=_o(n.head,r.head))return!1}return!0},deepCopy:function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new fe($(this.ranges[t].anchor),$(this.ranges[t].head));return new ue(e,this.primIndex)},somethingSelected:function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},contains:function(e,t){t||(t=e);for(var n=0;n<this.ranges.length;n++){var r=this.ranges[n];if(_o(t,r.from())>=0&&_o(e,r.to())<=0)return n}return-1}},fe.prototype={from:function(){return K(this.anchor,this.head)},to:function(){return V(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var zo,jo,Uo,qo={left:0,right:0,top:0,bottom:0},Go=null,Yo=0,$o=0,Vo=0,Ko=null;xo?Ko=-.53:go?Ko=15:So?Ko=-.7:Lo&&(Ko=-1/3);var Xo=function(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}};e.wheelEventPixels=function(e){var t=Xo(e);return t.x*=Ko,t.y*=Ko,t};var Zo=new Ei,Jo=null,Qo=e.changeEnd=function(e){return e.text?Bo(e.from.line+e.text.length-1,Ii(e.text).length+(1==e.text.length?e.from.ch:0)):e.to};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var n=this.options,r=n[e];n[e]==t&&"mode"!=e||(n[e]=t,ta.hasOwnProperty(e)&&Et(this,ta[e])(this,t,r))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"]($n(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:Ot(function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:r,modeSpec:t,opaque:n&&n.opaque}),this.state.modeGen++,Dt(this)}),removeOverlay:Ot(function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||"string"==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,void Dt(this)}}),indentLine:Ot(function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),ve(this.doc,e)&&Fn(this,e,t,n)}),indentSelection:Ot(function(e){for(var t=this.doc.sel.ranges,n=-1,r=0;r<t.length;r++){var i=t[r];if(i.empty())i.head.line>n&&(Fn(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Bn(this));else{var o=i.from(),a=i.to(),l=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var s=l;n>s;++s)Fn(this,s,e);var c=this.doc.sel.ranges;0==o.ch&&t.length==c.length&&c[r].from().ch>0&&ke(this.doc,r,new fe(o,c[r].to()),Wa)}}}),getTokenAt:function(e,t){return Ir(this,e,t)},getLineTokens:function(e,t){return Ir(this,Bo(e),t,!0)},getTokenTypeAt:function(e){e=me(this.doc,e);var t,n=Dr(this,Zr(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]<o)){t=n[2*a+2];break}r=a+1}}var l=t?t.indexOf("cm-overlay "):-1;return 0>l?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=[];if(!la.hasOwnProperty(t))return n;var r=la[t],i=this.getModeAt(e);if("string"==typeof i[t])r[i[t]]&&n.push(r[i[t]]);else if(i[t])for(var o=0;o<i[t].length;o++){var a=r[i[t][o]];a&&n.push(a)}else i.helperType&&r[i.helperType]?n.push(r[i.helperType]):r[i.name]&&n.push(r[i.name]);for(var o=0;o<r._global.length;o++){var l=r._global[o];l.pred(i,this)&&-1==Pi(n,l.val)&&n.push(l.val)}return n},getStateAfter:function(e,t){var n=this.doc;return e=pe(n,null==e?n.first+n.size-1:e),je(this,e+1,t)},cursorCoords:function(e,t){var n,r=this.doc.sel.primary();return n=null==e?r.head:"object"==typeof e?me(this.doc,e):e?r.from():r.to(),dt(this,n,t||"page")},charCoords:function(e,t){return ht(this,me(this.doc,e),t||"page")},coordsChar:function(e,t){return e=ft(this,e,t||"page"),gt(this,e.left,e.top)},lineAtHeight:function(e,t){return e=ft(this,{top:e,left:0},t||"page").top,ni(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t){var n,r=!1;if("number"==typeof e){var i=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>i&&(e=i,r=!0),n=Zr(this.doc,e)}else n=e;return ut(this,n,{top:0,left:0},t||"page").top+(r?this.doc.height-ri(n):0)},defaultTextHeight:function(){return yt(this.display)},defaultCharWidth:function(){return xt(this.display)},setGutterMarker:Ot(function(e,t,n){return zn(this.doc,e,"gutter",function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&Fi(r)&&(e.gutterMarkers=null),!0})}),clearGutter:Ot(function(e){var t=this,n=t.doc,r=n.first;n.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&(n.gutterMarkers[e]=null,Ht(t,r,"gutter"),Fi(n.gutterMarkers)&&(n.gutterMarkers=null)),++r})}),lineInfo:function(e){if("number"==typeof e){if(!ve(this.doc,e))return null;var t=e;if(e=Zr(this.doc,e),!e)return null}else{var t=ti(e);if(null==t)return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=dt(this,me(this.doc,e));var a=e.bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),n&&Dn(this,l,a,l+t.offsetWidth,a+t.offsetHeight)},triggerOnKeyDown:Ot(hn),triggerOnKeyPress:Ot(mn),triggerOnKeyUp:pn,execCommand:function(e){return ua.hasOwnProperty(e)?ua[e].call(null,this):void 0},triggerElectric:Ot(function(e){Q(this,e)}),findPosH:function(e,t,n,r){var i=1;0>t&&(i=-1,t=-t);for(var o=0,a=me(this.doc,e);t>o&&(a=Un(this.doc,a,i,n,r),!a.hitSide);++o);return a},moveH:Ot(function(e,t){var n=this;n.extendSelectionsBy(function(r){return n.display.shift||n.doc.extend||r.empty()?Un(n.doc,r.head,e,t,n.options.rtlMoveVisually):0>e?r.from():r.to()},_a)}),deleteH:Ot(function(e,t){var n=this.doc.sel,r=this.doc;n.somethingSelected()?r.replaceSelection("",null,"+delete"):jn(this,function(n){var i=Un(r,n.head,e,t,!1);return 0>e?{from:i,to:n.head}:{from:n.head,to:i}})}),findPosV:function(e,t,n,r){var i=1,o=r;0>t&&(i=-1,t=-t);for(var a=0,l=me(this.doc,e);t>a;++a){var s=dt(this,l,"div");if(null==o?o=s.left:s.left=o,l=qn(this,s,i,n),l.hitSide)break}return l},moveV:Ot(function(e,t){var n=this,r=this.doc,i=[],o=!n.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy(function(a){if(o)return 0>e?a.from():a.to();var l=dt(n,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=qn(n,l,e,t);return"page"==t&&a==r.sel.primary()&&Wn(n,null,ht(n,s,"div").top-l.top),s},_a),i.length)for(var a=0;a<r.sel.ranges.length;a++)r.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,n=Zr(t,e.line).text,r=e.ch,i=e.ch;if(n){var o=this.getHelper(e,"wordChars");(e.xRel<0||i==n.length)&&r?--r:++i;for(var a=n.charAt(r),l=_i(a,o)?function(e){return _i(e,o)}:/\s/.test(a)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!_i(e)};r>0&&l(n.charAt(r-1));)--r;for(;i<n.length&&l(n.charAt(i));)++i}return new fe(Bo(e.line,r),Bo(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?Ja(this.display.cursorDiv,"CodeMirror-overwrite"):Za(this.display.cursorDiv,"CodeMirror-overwrite"),Pa(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==Gi()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:Ot(function(e,t){null==e&&null==t||_n(this),null!=e&&(this.curOp.scrollLeft=e),null!=t&&(this.curOp.scrollTop=t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-Ye(this)-this.display.barHeight,width:e.scrollWidth-Ye(this)-this.display.barWidth,clientHeight:Ve(this),clientWidth:$e(this)}},scrollIntoView:Ot(function(e,t){if(null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:Bo(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line)_n(this),this.curOp.scrollToPos=e;else{var n=Hn(this,Math.min(e.from.left,e.to.left),Math.min(e.from.top,e.to.top)-e.margin,Math.max(e.from.right,e.to.right),Math.max(e.from.bottom,e.to.bottom)+e.margin);this.scrollTo(n.scrollLeft,n.scrollTop)}}),setSize:Ot(function(e,t){function n(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e}var r=this;null!=e&&(r.display.wrapper.style.width=n(e)),null!=t&&(r.display.wrapper.style.height=n(t)),r.options.lineWrapping&&at(this);var i=r.display.viewFrom;r.doc.iter(i,r.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){Ht(r,i,"widget");break}++i}),r.curOp.forceUpdate=!0,Pa(r,"refresh",this)}),operation:function(e){return At(this,e)},refresh:Ot(function(){var e=this.display.cachedTextHeight;Dt(this),this.curOp.forceUpdate=!0,lt(this),this.scrollTo(this.doc.scrollLeft,this.doc.scrollTop),u(this),(null==e||Math.abs(e-yt(this.display))>.5)&&a(this),Pa(this,"refresh",this)}),swapDoc:Ot(function(e){var t=this.doc;return t.cm=null,Xr(this,e),lt(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Ci(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Ai(e);var ea=e.defaults={},ta=e.optionHandlers={},na=e.Init={toString:function(){return"CodeMirror.Init"}};Gn("value","",function(e,t){e.setValue(t)},!0),Gn("mode",null,function(e,t){e.doc.modeOption=t,n(e)},!0),Gn("indentUnit",2,n,!0),Gn("indentWithTabs",!1),Gn("smartIndent",!0),Gn("tabSize",4,function(e){r(e),lt(e),Dt(e)},!0),Gn("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(Bo(r,o))}r++});for(var i=n.length-1;i>=0;i--)In(e.doc,t,n[i],Bo(n[i].line,n[i].ch+t.length))}}),Gn("specialChars",/[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(t,n,r){t.state.specialChars=new RegExp(n.source+(n.test("	")?"":"|	"),"g"),r!=e.Init&&t.refresh()}),Gn("specialCharPlaceholder",_r,function(e){e.refresh()},!0),Gn("electricChars",!0),Gn("inputStyle",Ao?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),Gn("rtlMoveVisually",!Io),Gn("wholeLineUpdateBefore",!0),Gn("theme","default",function(e){l(e),s(e)},!0),Gn("keyMap","default",function(t,n,r){var i=$n(n),o=r!=e.Init&&$n(r);o&&o.detach&&o.detach(t,i),i.attach&&i.attach(t,o||null)}),Gn("extraKeys",null),Gn("lineWrapping",!1,i,!0),Gn("gutters",[],function(e){d(e.options),s(e)},!0),Gn("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?C(e.display)+"px":"0",e.refresh()},!0),Gn("coverGutterNextToScrollbar",!1,function(e){y(e)},!0),Gn("scrollbarStyle","native",function(e){v(e),y(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),Gn("lineNumbers",!1,function(e){d(e.options),s(e)},!0),Gn("firstLineNumber",1,s,!0),Gn("lineNumberFormatter",function(e){return e},s,!0),Gn("showCursorWhenSelecting",!1,Re,!0),Gn("resetSelectionOnContextMenu",!0),Gn("lineWiseCopyCut",!0),Gn("readOnly",!1,function(e,t){"nocursor"==t?(yn(e),e.display.input.blur(),e.display.disabled=!0):e.display.disabled=!1,e.display.input.readOnlyChanged(t)}),Gn("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),Gn("dragDrop",!0,Ut),Gn("allowDropFileTypes",null),Gn("cursorBlinkRate",530),Gn("cursorScrollMargin",0),Gn("cursorHeight",1,Re,!0),Gn("singleCursorHeightPerLine",!0,Re,!0),Gn("workTime",100),Gn("workDelay",100),Gn("flattenSpans",!0,r,!0),Gn("addModeClass",!1,r,!0),Gn("pollInterval",100),Gn("undoDepth",200,function(e,t){e.doc.history.undoDepth=t}),Gn("historyEventDelay",1250),Gn("viewportMargin",10,function(e){e.refresh()},!0),Gn("maxHighlightLength",1e4,r,!0),Gn("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),Gn("tabindex",null,function(e,t){e.display.input.getField().tabIndex=t||""}),Gn("autofocus",null);var ra=e.modes={},ia=e.mimeModes={};e.defineMode=function(t,n){e.defaults.mode||"null"==t||(e.defaults.mode=t),arguments.length>2&&(n.dependencies=Array.prototype.slice.call(arguments,2)),ra[t]=n},e.defineMIME=function(e,t){ia[e]=t},e.resolveMode=function(t){if("string"==typeof t&&ia.hasOwnProperty(t))t=ia[t];else if(t&&"string"==typeof t.name&&ia.hasOwnProperty(t.name)){var n=ia[t.name];"string"==typeof n&&(n={name:n}),t=Hi(n,t),t.name=n.name}else if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return e.resolveMode("application/xml");return"string"==typeof t?{name:t}:t||{name:"null"}},e.getMode=function(t,n){var n=e.resolveMode(n),r=ra[n.name];if(!r)return e.getMode(t,"text/plain");var i=r(t,n);if(oa.hasOwnProperty(n.name)){var o=oa[n.name];for(var a in o)o.hasOwnProperty(a)&&(i.hasOwnProperty(a)&&(i["_"+a]=i[a]),i[a]=o[a])}if(i.name=n.name,n.helperType&&(i.helperType=n.helperType),n.modeProps)for(var a in n.modeProps)i[a]=n.modeProps[a];return i},e.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),e.defineMIME("text/plain","null");var oa=e.modeExtensions={};e.extendMode=function(e,t){var n=oa.hasOwnProperty(e)?oa[e]:oa[e]={};Wi(t,n)},e.defineExtension=function(t,n){e.prototype[t]=n},e.defineDocExtension=function(e,t){Ca.prototype[e]=t},e.defineOption=Gn;var aa=[];e.defineInitHook=function(e){aa.push(e)};var la=e.helpers={};e.registerHelper=function(t,n,r){la.hasOwnProperty(t)||(la[t]=e[t]={_global:[]}),la[t][n]=r},e.registerGlobalHelper=function(t,n,r,i){e.registerHelper(t,n,i),la[t]._global.push({pred:r,val:i})};var sa=e.copyState=function(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n},ca=e.startState=function(e,t,n){return e.startState?e.startState(t,n):!0};e.innerMode=function(e,t){for(;e.innerMode;){var n=e.innerMode(t);if(!n||n.mode==e)break;t=n.state,e=n.mode}return n||{mode:e,state:t}};var ua=e.commands={selectAll:function(e){e.setSelection(Bo(e.firstLine(),0),Bo(e.lastLine()),Wa)},singleSelection:function(e){e.setSelection(e.getCursor("anchor"),e.getCursor("head"),Wa)},killLine:function(e){jn(e,function(t){if(t.empty()){var n=Zr(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line<e.lastLine()?{from:t.head,to:Bo(t.head.line+1,0)}:{from:t.head,to:Bo(t.head.line,n)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){jn(e,function(t){return{from:Bo(t.from().line,0),to:me(e.doc,Bo(t.to().line+1,0))}})},delLineLeft:function(e){jn(e,function(e){return{from:Bo(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){jn(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return{from:r,to:t.from()}})},delWrappedLineRight:function(e){jn(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div");return{from:t.from(),to:r}})},undo:function(e){e.undo()},redo:function(e){e.redo()},undoSelection:function(e){e.undoSelection()},redoSelection:function(e){e.redoSelection()},goDocStart:function(e){e.extendSelection(Bo(e.firstLine(),0))},goDocEnd:function(e){e.extendSelection(Bo(e.lastLine()))},goLineStart:function(e){e.extendSelectionsBy(function(t){return oo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){e.extendSelectionsBy(function(t){return lo(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){e.extendSelectionsBy(function(t){return ao(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){e.extendSelectionsBy(function(t){var n=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div")},_a)},goLineLeft:function(e){e.extendSelectionsBy(function(t){var n=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:n},"div")},_a)},goLineLeftSmart:function(e){e.extendSelectionsBy(function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return r.ch<e.getLine(r.line).search(/\S/)?lo(e,t.head):r},_a)},goLineUp:function(e){e.moveV(-1,"line")},goLineDown:function(e){e.moveV(1,"line")},goPageUp:function(e){e.moveV(-1,"page")},goPageDown:function(e){e.moveV(1,"page")},goCharLeft:function(e){e.moveH(-1,"char")},goCharRight:function(e){e.moveH(1,"char")},goColumnLeft:function(e){e.moveH(-1,"column")},goColumnRight:function(e){e.moveH(1,"column")},goWordLeft:function(e){e.moveH(-1,"word")},goGroupRight:function(e){e.moveH(1,"group")},goGroupLeft:function(e){e.moveH(-1,"group")},goWordRight:function(e){e.moveH(1,"word")},delCharBefore:function(e){e.deleteH(-1,"char")},delCharAfter:function(e){e.deleteH(1,"char")},delWordBefore:function(e){e.deleteH(-1,"word")},delWordAfter:function(e){e.deleteH(1,"word")},delGroupBefore:function(e){e.deleteH(-1,"group")},delGroupAfter:function(e){e.deleteH(1,"group")},indentAuto:function(e){e.indentSelection("smart")},indentMore:function(e){e.indentSelection("add")},indentLess:function(e){e.indentSelection("subtract")},insertTab:function(e){e.replaceSelection("	")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),a=Fa(e.getLine(o.line),o.ch,r);t.push(Oi(r-a%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){At(e,function(){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var i=t[r].head,o=Zr(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new Bo(i.line,i.ch-1)),i.ch>0)i=new Bo(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),Bo(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Zr(e.doc,i.line-1).text;a&&e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),Bo(i.line-1,a.length-1),Bo(i.line,1),"+transpose")}n.push(new fe(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){At(e,function(){for(var t=e.listSelections().length,n=0;t>n;n++){var r=e.listSelections()[n];e.replaceRange(e.doc.lineSeparator(),r.anchor,r.head,"+input"),e.indentLine(r.from().line+1,null,!0)}Bn(e)})},openLine:function(e){e.replaceSelection("\n","start")},toggleOverwrite:function(e){e.toggleOverwrite()}},fa=e.keyMap={};fa.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},fa.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},fa.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},fa.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},fa["default"]=Eo?fa.macDefault:fa.pcDefault,e.normalizeKeyMap=function(e){var t={};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(/^(name|fallthrough|(de|at)tach)$/.test(n))continue;if("..."==r){delete e[n];continue}for(var i=Ri(n.split(" "),Yn),o=0;o<i.length;o++){var a,l;o==i.length-1?(l=i.join(" "),a=r):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[n]}for(var c in t)e[c]=t[c];return e};var ha=e.lookupKey=function(e,t,n,r){t=$n(t);var i=t.call?t.call(e,r):t[e];if(i===!1)return"nothing";if("..."===i)return"multi";if(null!=i&&n(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return ha(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var a=ha(e,t.fallthrough[o],n,r);
share/assets/js/010-simplemde.min.js:12:if(a)return a}}},da=e.isModifierKey=function(e){var t="string"==typeof e?e:ol[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t},pa=e.keyName=function(e,t){if(Co&&34==e.keyCode&&e["char"])return!1;var n=ol[e.keyCode],r=n;return null==r||e.altGraphKey?!1:(e.altKey&&"Alt"!=n&&(r="Alt-"+r),(Ro?e.metaKey:e.ctrlKey)&&"Ctrl"!=n&&(r="Ctrl-"+r),(Ro?e.ctrlKey:e.metaKey)&&"Cmd"!=n&&(r="Cmd-"+r),!t&&e.shiftKey&&"Shift"!=n&&(r="Shift-"+r),r)};e.fromTextArea=function(t,n){function r(){t.value=c.getValue()}if(n=n?Wi(n):{},n.value=t.value,!n.tabindex&&t.tabIndex&&(n.tabindex=t.tabIndex),!n.placeholder&&t.placeholder&&(n.placeholder=t.placeholder),null==n.autofocus){var i=Gi();n.autofocus=i==t||null!=t.getAttribute("autofocus")&&i==document.body}if(t.form&&(Ea(t.form,"submit",r),!n.leaveSubmitMethodAlone)){var o=t.form,a=o.submit;try{var l=o.submit=function(){r(),o.submit=a,o.submit(),o.submit=l}}catch(s){}}n.finishInit=function(e){e.save=r,e.getTextArea=function(){return t},e.toTextArea=function(){e.toTextArea=isNaN,r(),t.parentNode.removeChild(e.getWrapperElement()),t.style.display="",t.form&&(Ia(t.form,"submit",r),"function"==typeof t.form.submit&&(t.form.submit=a))}},t.style.display="none";var c=e(function(e){t.parentNode.insertBefore(e,t.nextSibling)},n);return c};var ma=e.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};ma.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pos<this.string.length?this.string.charAt(this.pos++):void 0},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var n=t==e;else var n=t&&(e.test?e.test(t):e(t));return n?(++this.pos,t):void 0},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);return t>-1?(this.pos=t,!0):void 0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Fa(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?Fa(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return Fa(this.string,null,this.tabSize)-(this.lineStart?Fa(this.string,this.lineStart,this.tabSize):0)},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);return i(o)==i(e)?(t!==!1&&(this.pos+=e.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}};var ga=0,va=e.TextMarker=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++ga};Ai(va),va.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&bt(e),Ni(this,"clear")){var n=this.find();n&&Ci(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;o<this.lines.length;++o){var a=this.lines[o],l=er(a.markedSpans,this);e&&!this.collapsed?Ht(e,ti(a),"text"):e&&(null!=l.to&&(i=ti(a)),null!=l.from&&(r=ti(a))),a.markedSpans=tr(a.markedSpans,l),null==l.from&&this.collapsed&&!kr(this.doc,a)&&e&&ei(a,yt(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var o=0;o<this.lines.length;++o){var s=yr(this.lines[o]),c=f(s);c>e.display.maxLineLength&&(e.display.maxLine=s,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&Dt(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Ae(e.doc)),e&&Ci(e,"markerCleared",e,this),t&&kt(e),this.parent&&this.parent.clear()}},va.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var n,r,i=0;i<this.lines.length;++i){var o=this.lines[i],a=er(o.markedSpans,this);if(null!=a.from&&(n=Bo(t?o:ti(o),a.from),-1==e))return n;if(null!=a.to&&(r=Bo(t?o:ti(o),a.to),1==e))return r}return n&&{from:n,to:r}},va.prototype.changed=function(){var e=this.find(-1,!0),t=this,n=this.doc.cm;e&&n&&At(n,function(){var r=e.line,i=ti(e.line),o=Qe(n,i);if(o&&(ot(o),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!kr(t.doc,r)&&null!=t.height){var a=t.height;t.height=null;var l=Lr(t)-a;l&&ei(r,r.height+l)}})},va.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=Pi(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},va.prototype.detachLine=function(e){if(this.lines.splice(Pi(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}};var ga=0,ya=e.SharedTextMarker=function(e,t){this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=this};Ai(ya),ya.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Ci(this,"clear")}},ya.prototype.find=function(e,t){return this.primary.find(e,t)};var xa=e.LineWidget=function(e,t,n){if(n)for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.doc=e,this.node=t};Ai(xa),xa.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,n=this.line,r=ti(n);if(null!=r&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(n.widgets=null);var o=Lr(this);ei(n,Math.max(0,n.height-o)),e&&At(e,function(){Cr(e,n,-o),Ht(e,r,"widget")})}},xa.prototype.changed=function(){var e=this.height,t=this.doc.cm,n=this.line;this.height=null;var r=Lr(this)-e;r&&(ei(n,n.height+r),t&&At(t,function(){t.curOp.forceUpdate=!0,Cr(t,n,r)}))};var ba=e.Line=function(e,t,n){this.text=e,ur(this,t),this.height=n?n(this):1};Ai(ba),ba.prototype.lineNo=function(){return ti(this)};var wa={},ka={};$r.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;r>n;++n){var i=this.lines[n];this.height-=i.height,Nr(i),Ci(i,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0;r<t.length;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;r>e;++e)if(n(this.lines[e]))return!0}},Vr.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n=0;n<this.children.length;++n){var r=this.children[n],i=r.chunkSize();if(i>e){var o=Math.min(t,i-e),a=r.height;if(r.removeInner(e,o),this.height-=a-r.height,i==o&&(this.children.splice(n--,1),r.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof $r))){var l=[];this.collapse(l),this.children=[new $r(l)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(o>=e){if(i.insertInner(e,t,n),i.lines&&i.lines.length>50){for(var a=i.lines.length%25+25,l=a;l<i.lines.length;){var s=new $r(i.lines.slice(l,l+=25));i.height-=s.height,this.children.splice(++r,0,s),s.parent=this}i.lines=i.lines.slice(0,a),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new Vr(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=Pi(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new Vr(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(o>e){var a=Math.min(t,o-e);if(i.iterN(e,a,n))return!0;if(0==(t-=a))break;e=0}else e-=o}}};var Sa=0,Ca=e.Doc=function(e,t,n,r){if(!(this instanceof Ca))return new Ca(e,t,n,r);null==n&&(n=0),Vr.call(this,[new $r([new ba("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=n;var i=Bo(n,0);this.sel=de(i),this.history=new oi(null),this.id=++Sa,this.modeOption=t,this.lineSep=r,this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Yr(this,{from:i,to:i,text:e}),Te(this,de(i),Wa)};Ca.prototype=Hi(Vr.prototype,{constructor:Ca,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=Qr(this,this.first,this.first+this.size);return e===!1?t:t.join(e||this.lineSeparator())},setValue:It(function(e){var t=Bo(this.first,0),n=this.first+this.size-1;Tn(this,{from:t,to:Bo(n,Zr(this,n).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),Te(this,de(t))}),replaceRange:function(e,t,n,r){t=me(this,t),n=n?me(this,n):t,In(this,e,t,n,r)},getRange:function(e,t,n){var r=Jr(this,me(this,e),me(this,t));return n===!1?r:r.join(n||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){return ve(this,e)?Zr(this,e):void 0},getLineNumber:function(e){return ti(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=Zr(this,e)),yr(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return me(this,e)},getCursor:function(e){var t,n=this.sel.primary();return t=null==e||"head"==e?n.head:"anchor"==e?n.anchor:"end"==e||"to"==e||e===!1?n.to():n.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:It(function(e,t,n){Se(this,me(this,"number"==typeof e?Bo(e,t||0):e),null,n)}),setSelection:It(function(e,t,n){Se(this,me(this,e),me(this,t||e),n)}),extendSelection:It(function(e,t,n){be(this,me(this,e),t&&me(this,t),n)}),extendSelections:It(function(e,t){we(this,ye(this,e),t)}),extendSelectionsBy:It(function(e,t){var n=Ri(this.sel.ranges,e);we(this,ye(this,n),t)}),setSelections:It(function(e,t,n){if(e.length){for(var r=0,i=[];r<e.length;r++)i[r]=new fe(me(this,e[r].anchor),me(this,e[r].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),Te(this,he(i,t),n)}}),addSelection:It(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new fe(me(this,e),me(this,t||e))),Te(this,he(r,r.length-1),n)}),getSelection:function(e){for(var t,n=this.sel.ranges,r=0;r<n.length;r++){var i=Jr(this,n[r].from(),n[r].to());t=t?t.concat(i):i}return e===!1?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],n=this.sel.ranges,r=0;r<n.length;r++){var i=Jr(this,n[r].from(),n[r].to());e!==!1&&(i=i.join(e||this.lineSeparator())),t[r]=i}return t},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||"+input")},replaceSelections:It(function(e,t,n){for(var r=[],i=this.sel,o=0;o<i.ranges.length;o++){var a=i.ranges[o];r[o]={from:a.from(),to:a.to(),text:this.splitLines(e[o]),origin:n}}for(var l=t&&"end"!=t&&Cn(this,r,t),o=r.length-1;o>=0;o--)Tn(this,r[o]);l?Le(this,l):this.cm&&Bn(this.cm)}),undo:It(function(){Nn(this,"undo")}),redo:It(function(){Nn(this,"redo")}),undoSelection:It(function(){Nn(this,"undo",!0)}),redoSelection:It(function(){Nn(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var r=0;r<e.undone.length;r++)e.undone[r].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){this.history=new oi(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:gi(this.history.done),undone:gi(this.history.undone)}},setHistory:function(e){var t=this.history=new oi(this.history.maxGeneration);t.done=gi(e.done.slice(0),null,!0),t.undone=gi(e.undone.slice(0),null,!0)},addLineClass:It(function(e,t,n){return zn(this,e,"gutter"==t?"gutter":"class",function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"gutter"==t?"gutterClass":"wrapClass";if(e[r]){if(Yi(n).test(e[r]))return!1;e[r]+=" "+n}else e[r]=n;return!0})}),removeLineClass:It(function(e,t,n){return zn(this,e,"gutter"==t?"gutter":"class",function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"gutter"==t?"gutterClass":"wrapClass",i=e[r];if(!i)return!1;if(null==n)e[r]=null;else{var o=i.match(Yi(n));if(!o)return!1;var a=o.index+o[0].length;e[r]=i.slice(0,o.index)+(o.index&&a!=i.length?" ":"")+i.slice(a)||null}return!0})}),addLineWidget:It(function(e,t,n){return Tr(this,e,t,n)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return Vn(this,me(this,e),me(this,t),n,n&&n.type||"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=me(this,e),Vn(this,e,e,n,"bookmark")},findMarksAt:function(e){e=me(this,e);var t=[],n=Zr(this,e.line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=me(this,e),t=me(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||n&&!n(s.marker)||r.push(s.marker.parent||s.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first,r=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+r;return o>e?(t=e,!0):(e-=o,void++n)}),me(this,Bo(n,t))},indexFromPos:function(e){e=me(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new Ca(Qr(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new Ca(Qr(this,t,n),e.mode||this.modeOption,t,this.lineSep);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],Zn(r,Xn(this)),r},unlinkDoc:function(t){if(t instanceof e&&(t=t.doc),this.linked)for(var n=0;n<this.linked.length;++n){var r=this.linked[n];if(r.doc==t){this.linked.splice(n,1),t.unlinkDoc(this),Jn(Xn(this));break}}if(t.history==this.history){var i=[t.id];Kr(t,function(e){i.push(e.id)},!0),t.history=new oi(null),t.history.done=gi(this.history.done,i),t.history.undone=gi(this.history.undone,i)}},iterLinkedDocs:function(e){Kr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):tl(e)},lineSeparator:function(){return this.lineSep||"\n"}}),Ca.prototype.eachLine=Ca.prototype.iter;var La="iter insert remove copy getEditor constructor".split(" ");for(var Ta in Ca.prototype)Ca.prototype.hasOwnProperty(Ta)&&Pi(La,Ta)<0&&(e.prototype[Ta]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ca.prototype[Ta]));Ai(Ca);var Ma=e.e_preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},Na=e.e_stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},Aa=e.e_stop=function(e){Ma(e),Na(e)},Ea=e.on=function(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={}),i=r[t]||(r[t]=[]);i.push(n)}},Oa=[],Ia=e.off=function(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else for(var r=Si(e,t,!1),i=0;i<r.length;++i)if(r[i]==n){r.splice(i,1);break}},Pa=e.signal=function(e,t){var n=Si(e,t,!0);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)},Ra=null,Da=30,Ha=e.Pass={toString:function(){return"CodeMirror.Pass"}},Wa={scroll:!1},Ba={origin:"*mouse"},_a={origin:"+move"};Ei.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Fa=e.countColumn=function(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/),-1==t&&(t=e.length));for(var o=r||0,a=i||0;;){var l=e.indexOf("	",o);if(0>l||l>=t)return a+(t-o);a+=l-o,a+=n-a%n,o=l+1}},za=e.findColumn=function(e,t,n){for(var r=0,i=0;;){var o=e.indexOf("	",r);-1==o&&(o=e.length);var a=o-r;if(o==e.length||i+a>=t)return r+Math.min(a,t-i);if(i+=o-r,i+=n-i%n,r=o+1,i>=t)return r}},ja=[""],Ua=function(e){e.select()};No?Ua=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:xo&&(Ua=function(e){try{e.select()}catch(t){}});var qa,Ga=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ya=e.isWordChar=function(e){return/\w/.test(e)||e>""&&(e.toUpperCase()!=e.toLowerCase()||Ga.test(e))},$a=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;qa=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(i){return r}return r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",t),r};var Va=e.contains=function(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do if(11==t.nodeType&&(t=t.host),t==e)return!0;while(t=t.parentNode)};xo&&11>bo&&(Gi=function(){try{return document.activeElement}catch(e){return document.body}});var Ka,Xa,Za=e.rmClass=function(e,t){var n=e.className,r=Yi(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}},Ja=e.addClass=function(e,t){var n=e.className;Yi(t).test(n)||(e.className+=(n?" ":"")+t)},Qa=!1,el=function(){if(xo&&9>bo)return!1;var e=ji("div");return"draggable"in e||"dragDrop"in e}(),tl=e.splitLines=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;r>=t;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},nl=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return t&&t.parentElement()==e?0!=t.compareEndPoints("StartToEnd",t):!1},rl=function(){var e=ji("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),il=null,ol=e.keyNames={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};!function(){for(var e=0;10>e;e++)ol[e+48]=ol[e+96]=String(e);for(var e=65;90>=e;e++)ol[e]=String.fromCharCode(e);for(var e=1;12>=e;e++)ol[e+111]=ol[e+63235]="F"+e}();var al,ll=function(){function e(e){return 247>=e?n.charAt(e):e>=1424&&1524>=e?"R":e>=1536&&1773>=e?r.charAt(e-1536):e>=1774&&2220>=e?"r":e>=8192&&8203>=e?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/,c="L";return function(n){if(!i.test(n))return!1;for(var r,u=n.length,f=[],h=0;u>h;++h)f.push(r=e(n.charCodeAt(h)));for(var h=0,d=c;u>h;++h){var r=f[h];"m"==r?f[h]=d:d=r}for(var h=0,p=c;u>h;++h){var r=f[h];"1"==r&&"r"==p?f[h]="n":a.test(r)&&(p=r,"r"==r&&(f[h]="R"))}for(var h=1,d=f[0];u-1>h;++h){var r=f[h];"+"==r&&"1"==d&&"1"==f[h+1]?f[h]="1":","!=r||d!=f[h+1]||"1"!=d&&"n"!=d||(f[h]=d),d=r}for(var h=0;u>h;++h){var r=f[h];if(","==r)f[h]="N";else if("%"==r){for(var m=h+1;u>m&&"%"==f[m];++m);for(var g=h&&"!"==f[h-1]||u>m&&"1"==f[m]?"1":"N",v=h;m>v;++v)f[v]=g;h=m-1}}for(var h=0,p=c;u>h;++h){var r=f[h];"L"==p&&"1"==r?f[h]="L":a.test(r)&&(p=r)}for(var h=0;u>h;++h)if(o.test(f[h])){for(var m=h+1;u>m&&o.test(f[m]);++m);for(var y="L"==(h?f[h-1]:c),x="L"==(u>m?f[m]:c),g=y||x?"L":"R",v=h;m>v;++v)f[v]=g;h=m-1}for(var b,w=[],h=0;u>h;)if(l.test(f[h])){var k=h;for(++h;u>h&&l.test(f[h]);++h);w.push(new t(0,k,h))}else{var S=h,C=w.length;for(++h;u>h&&"L"!=f[h];++h);for(var v=S;h>v;)if(s.test(f[v])){v>S&&w.splice(C,0,new t(1,S,v));var L=v;for(++v;h>v&&s.test(f[v]);++v);w.splice(C,0,new t(2,L,v)),S=v}else++v;h>S&&w.splice(C,0,new t(1,S,h))}return 1==w[0].level&&(b=n.match(/^\s+/))&&(w[0].from=b[0].length,w.unshift(new t(0,0,b[0].length))),1==Ii(w).level&&(b=n.match(/\s+$/))&&(Ii(w).to-=b[0].length,w.push(new t(0,u-b[0].length,u))),2==w[0].level&&w.unshift(new t(1,w[0].to,w[0].to)),w[0].level!=Ii(w).level&&w.push(new t(w[0].level,u,u)),w}}();return e.version="5.15.2",e})},{}],11:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror"),t("../markdown/markdown"),t("../../addon/mode/overlay")):"function"==typeof e&&e.amd?e(["../../lib/codemirror","../markdown/markdown","../../addon/mode/overlay"],i):i(CodeMirror)}(function(e){"use strict";var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode("gfm",function(n,r){function i(e){return e.code=!1,null}var o=0,a={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if("`"===e.peek()){e.next();var i=e.pos;e.eatWhile("`");var a=1+e.pos-i;return n.code?a===o&&(n.code=!1):(o=a,n.code=!0),null}if(n.code)return e.next(),null;if(e.eatSpace())return n.ateSpace=!0,null;if((e.sol()||n.ateSpace)&&(n.ateSpace=!1,r.gitHubSpice!==!1)){if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/))return n.combineTokens=!0,"link";if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return n.combineTokens=!0,"link"}return e.match(t)&&"]("!=e.string.slice(e.start-2,e.start)&&(0==e.start||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,"link"):(e.next(),null)},blankLine:i},l={underscoresBreakWords:!1,taskLists:!0,fencedCodeBlocks:"```",strikethrough:!0};for(var s in r)l[s]=r[s];return l.name="markdown",e.overlayMode(e.getMode(n,l),a)},"markdown"),e.defineMIME("text/x-gfm","gfm")})},{"../../addon/mode/overlay":8,"../../lib/codemirror":10,"../markdown/markdown":12}],12:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror"),t("../xml/xml"),t("../meta")):"function"==typeof e&&e.amd?e(["../../lib/codemirror","../xml/xml","../meta"],i):i(CodeMirror)}(function(e){"use strict";e.defineMode("markdown",function(t,n){function r(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return"null"==i.name?null:i}function i(e,t,n){return t.f=t.inline=n,n(e,t)}function o(e,t,n){return t.f=t.block=n,n(e,t)}function a(e){return!e||!/\S/.test(e.string)}function l(e){return e.linkTitle=!1,e.em=!1,e.strong=!1,e.strikethrough=!1,e.quote=0,e.indentedCode=!1,k&&e.f==c&&(e.f=p,e.block=s),e.trailingSpace=0,e.trailingSpaceNewLine=!1,e.prevLine=e.thisLine,e.thisLine=null,null}function s(t,o){var l=t.sol(),s=o.list!==!1,c=o.indentedCode;o.indentedCode=!1,s&&(o.indentationDiff>=0?(o.indentationDiff<4&&(o.indentation-=o.indentationDiff),o.list=null):o.indentation>0?o.list=null:o.list=!1);var f=null;if(o.indentationDiff>=4)return t.skipToEnd(),c||a(o.prevLine)?(o.indentation-=4,o.indentedCode=!0,S.code):null;if(t.eatSpace())return null;if((f=t.match(A))&&f[1].length<=6)return o.header=f[1].length,n.highlightFormatting&&(o.formatting="header"),o.f=o.inline,h(o);if(!(a(o.prevLine)||o.quote||s||c)&&(f=t.match(E)))return o.header="="==f[0].charAt(0)?1:2,n.highlightFormatting&&(o.formatting="header"),o.f=o.inline,h(o);if(t.eat(">"))return o.quote=l?1:o.quote+1,n.highlightFormatting&&(o.formatting="quote"),t.eatSpace(),h(o);if("["===t.peek())return i(t,o,y);if(t.match(L,!0))return o.hr=!0,S.hr;if((a(o.prevLine)||s)&&(t.match(T,!1)||t.match(M,!1))){var d=null;for(t.match(T,!0)?d="ul":(t.match(M,!0),d="ol"),o.indentation=t.column()+t.current().length,o.list=!0;o.listStack&&t.column()<o.listStack[o.listStack.length-1];)o.listStack.pop();return o.listStack.push(o.indentation),n.taskLists&&t.match(N,!1)&&(o.taskList=!0),o.f=o.inline,n.highlightFormatting&&(o.formatting=["list","list-"+d]),h(o)}return n.fencedCodeBlocks&&(f=t.match(I,!0))?(o.fencedChars=f[1],o.localMode=r(f[2]),o.localMode&&(o.localState=e.startState(o.localMode)),o.f=o.block=u,n.highlightFormatting&&(o.formatting="code-block"),o.code=-1,h(o)):i(t,o,o.inline)}function c(t,n){var r=w.token(t,n.htmlState);if(!k){var i=e.innerMode(w,n.htmlState);("xml"==i.mode.name&&null===i.state.tagStart&&!i.state.context&&i.state.tokenize.isInText||n.md_inside&&t.current().indexOf(">")>-1)&&(n.f=p,n.block=s,n.htmlState=null)}return r}function u(e,t){return t.fencedChars&&e.match(t.fencedChars,!1)?(t.localMode=t.localState=null,t.f=t.block=f,null):t.localMode?t.localMode.token(e,t.localState):(e.skipToEnd(),S.code)}function f(e,t){e.match(t.fencedChars),t.block=s,t.f=p,t.fencedChars=null,n.highlightFormatting&&(t.formatting="code-block"),t.code=1;var r=h(t);return t.code=0,r}function h(e){var t=[];if(e.formatting){t.push(S.formatting),"string"==typeof e.formatting&&(e.formatting=[e.formatting]);for(var r=0;r<e.formatting.length;r++)t.push(S.formatting+"-"+e.formatting[r]),"header"===e.formatting[r]&&t.push(S.formatting+"-"+e.formatting[r]+"-"+e.header),"quote"===e.formatting[r]&&(!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(S.formatting+"-"+e.formatting[r]+"-"+e.quote):t.push("error"))}if(e.taskOpen)return t.push("meta"),t.length?t.join(" "):null;if(e.taskClosed)return t.push("property"),t.length?t.join(" "):null;if(e.linkHref?t.push(S.linkHref,"url"):(e.strong&&t.push(S.strong),e.em&&t.push(S.em),e.strikethrough&&t.push(S.strikethrough),e.linkText&&t.push(S.linkText),e.code&&t.push(S.code)),e.header&&t.push(S.header,S.header+"-"+e.header),e.quote&&(t.push(S.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(S.quote+"-"+e.quote):t.push(S.quote+"-"+n.maxBlockquoteDepth)),e.list!==!1){var i=(e.listStack.length-1)%3;i?1===i?t.push(S.list2):t.push(S.list3):t.push(S.list1)}return e.trailingSpaceNewLine?t.push("trailing-space-new-line"):e.trailingSpace&&t.push("trailing-space-"+(e.trailingSpace%2?"a":"b")),t.length?t.join(" "):null}function d(e,t){return e.match(O,!0)?h(t):void 0}function p(t,r){var i=r.text(t,r);if("undefined"!=typeof i)return i;if(r.list)return r.list=null,h(r);if(r.taskList){var a="x"!==t.match(N,!0)[1];return a?r.taskOpen=!0:r.taskClosed=!0,n.highlightFormatting&&(r.formatting="task"),r.taskList=!1,h(r)}if(r.taskOpen=!1,r.taskClosed=!1,r.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(r.formatting="header"),
share/assets/js/010-simplemde.min.js:13:h(r);var l=t.sol(),s=t.next();if(r.linkTitle){r.linkTitle=!1;var u=s;"("===s&&(u=")"),u=(u+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");var f="^\\s*(?:[^"+u+"\\\\]+|\\\\\\\\|\\\\.)"+u;if(t.match(new RegExp(f),!0))return S.linkHref}if("`"===s){var d=r.formatting;n.highlightFormatting&&(r.formatting="code"),t.eatWhile("`");var p=t.current().length;if(0==r.code)return r.code=p,h(r);if(p==r.code){var v=h(r);return r.code=0,v}return r.formatting=d,h(r)}if(r.code)return h(r);if("\\"===s&&(t.next(),n.highlightFormatting)){var y=h(r),x=S.formatting+"-escape";return y?y+" "+x:x}if("!"===s&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return t.match(/\[[^\]]*\]/),r.inline=r.f=g,S.image;if("["===s&&t.match(/[^\]]*\](\(.*\)| ?\[.*?\])/,!1))return r.linkText=!0,n.highlightFormatting&&(r.formatting="link"),h(r);if("]"===s&&r.linkText&&t.match(/\(.*?\)| ?\[.*?\]/,!1)){n.highlightFormatting&&(r.formatting="link");var y=h(r);return r.linkText=!1,r.inline=r.f=g,y}if("<"===s&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){r.f=r.inline=m,n.highlightFormatting&&(r.formatting="link");var y=h(r);return y?y+=" ":y="",y+S.linkInline}if("<"===s&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){r.f=r.inline=m,n.highlightFormatting&&(r.formatting="link");var y=h(r);return y?y+=" ":y="",y+S.linkEmail}if("<"===s&&t.match(/^(!--|\w)/,!1)){var b=t.string.indexOf(">",t.pos);if(-1!=b){var k=t.string.substring(t.start,b);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(k)&&(r.md_inside=!0)}return t.backUp(1),r.htmlState=e.startState(w),o(t,r,c)}if("<"===s&&t.match(/^\/\w*?>/))return r.md_inside=!1,"tag";var C=!1;if(!n.underscoresBreakWords&&"_"===s&&"_"!==t.peek()&&t.match(/(\w)/,!1)){var L=t.pos-2;if(L>=0){var T=t.string.charAt(L);"_"!==T&&T.match(/(\w)/,!1)&&(C=!0)}}if("*"===s||"_"===s&&!C)if(l&&" "===t.peek());else{if(r.strong===s&&t.eat(s)){n.highlightFormatting&&(r.formatting="strong");var v=h(r);return r.strong=!1,v}if(!r.strong&&t.eat(s))return r.strong=s,n.highlightFormatting&&(r.formatting="strong"),h(r);if(r.em===s){n.highlightFormatting&&(r.formatting="em");var v=h(r);return r.em=!1,v}if(!r.em)return r.em=s,n.highlightFormatting&&(r.formatting="em"),h(r)}else if(" "===s&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return h(r);t.backUp(1)}if(n.strikethrough)if("~"===s&&t.eatWhile(s)){if(r.strikethrough){n.highlightFormatting&&(r.formatting="strikethrough");var v=h(r);return r.strikethrough=!1,v}if(t.match(/^[^\s]/,!1))return r.strikethrough=!0,n.highlightFormatting&&(r.formatting="strikethrough"),h(r)}else if(" "===s&&t.match(/^~~/,!0)){if(" "===t.peek())return h(r);t.backUp(2)}return" "===s&&(t.match(/ +$/,!1)?r.trailingSpace++:r.trailingSpace&&(r.trailingSpaceNewLine=!0)),h(r)}function m(e,t){var r=e.next();if(">"===r){t.f=t.inline=p,n.highlightFormatting&&(t.formatting="link");var i=h(t);return i?i+=" ":i="",i+S.linkInline}return e.match(/^[^>]+/,!0),S.linkInline}function g(e,t){if(e.eatSpace())return null;var r=e.next();return"("===r||"["===r?(t.f=t.inline=v("("===r?")":"]",0),n.highlightFormatting&&(t.formatting="link-string"),t.linkHref=!0,h(t)):"error"}function v(e){return function(t,r){var i=t.next();if(i===e){r.f=r.inline=p,n.highlightFormatting&&(r.formatting="link-string");var o=h(r);return r.linkHref=!1,o}return t.match(P[e]),r.linkHref=!0,h(r)}}function y(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=x,e.next(),n.highlightFormatting&&(t.formatting="link"),t.linkText=!0,h(t)):i(e,t,p)}function x(e,t){if(e.match(/^\]:/,!0)){t.f=t.inline=b,n.highlightFormatting&&(t.formatting="link");var r=h(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),S.linkText}function b(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),void 0===e.peek()?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/,!0),t.f=t.inline=p,S.linkHref+" url")}var w=e.getMode(t,"text/html"),k="null"==w.name;void 0===n.highlightFormatting&&(n.highlightFormatting=!1),void 0===n.maxBlockquoteDepth&&(n.maxBlockquoteDepth=0),void 0===n.underscoresBreakWords&&(n.underscoresBreakWords=!0),void 0===n.taskLists&&(n.taskLists=!1),void 0===n.strikethrough&&(n.strikethrough=!1),void 0===n.tokenTypeOverrides&&(n.tokenTypeOverrides={});var S={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"tag",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough"};for(var C in S)S.hasOwnProperty(C)&&n.tokenTypeOverrides[C]&&(S[C]=n.tokenTypeOverrides[C]);var L=/^([*\-_])(?:\s*\1){2,}\s*$/,T=/^[*\-+]\s+/,M=/^[0-9]+([.)])\s+/,N=/^\[(x| )\](?=\s)/,A=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,E=/^ *(?:\={1,}|-{1,})\s*$/,O=/^[^#!\[\]*_\\<>` "'(~]+/,I=new RegExp("^("+(n.fencedCodeBlocks===!0?"~~~+|```+":n.fencedCodeBlocks)+")[ \\t]*([\\w+#-]*)"),P={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\\]]|\\.)*\])*?(?=\])/},R={startState:function(){return{f:s,prevLine:null,thisLine:null,block:s,htmlState:null,indentation:0,inline:p,text:d,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,fencedChars:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(w,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkTitle:t.linkTitle,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,header:t.header,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedChars:t.fencedChars}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine){var n=t.header||t.hr;if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0)||n){if(l(t),!n)return null;t.prevLine=null}t.prevLine=t.thisLine,t.thisLine=e,t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.f=t.block;var r=e.match(/^\s*/,!0)[0].replace(/\t/g,"    ").length;if(t.indentationDiff=Math.min(r-t.indentation,4),t.indentation=t.indentation+t.indentationDiff,r>0)return null}return t.f(e,t)},innerMode:function(e){return e.block==c?{state:e.htmlState,mode:w}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:R}},blankLine:l,getType:h,fold:"markdown"};return R},"xml"),e.defineMIME("text/x-markdown","markdown")})},{"../../lib/codemirror":10,"../meta":13,"../xml/xml":14}],13:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../lib/codemirror")):"function"==typeof e&&e.amd?e(["../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["pgp"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists.txt$/},{name:"CoffeeScript",mime:"text/x-coffeescript",mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"]},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Jade",mime:"text/x-jade",mode:"jade",ext:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"null",mode:"jinja2"},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mime:"text/n-triples",mode:"ntriples",ext:["nt"]},{name:"Objective C",mime:"text/x-objectivec",mode:"clike",ext:["m","mm"],alias:["objective-c","objc"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mime:"application/x-httpd-php",mode:"php",ext:["php","php3","php4","php5","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mime:"text/x-sh",mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mime:"text/x-yaml",mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]}];for(var t=0;t<e.modeInfo.length;t++){var n=e.modeInfo[t];n.mimes&&(n.mime=n.mimes[0])}e.findModeByMIME=function(t){t=t.toLowerCase();for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.mime==t)return r;if(r.mimes)for(var i=0;i<r.mimes.length;i++)if(r.mimes[i]==t)return r}},e.findModeByExtension=function(t){for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.ext)for(var i=0;i<r.ext.length;i++)if(r.ext[i]==t)return r}},e.findModeByFileName=function(t){for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.file&&r.file.test(t))return r}var i=t.lastIndexOf("."),o=i>-1&&t.substring(i+1,t.length);return o?e.findModeByExtension(o):void 0},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.name.toLowerCase()==t)return r;if(r.alias)for(var i=0;i<r.alias.length;i++)if(r.alias[i].toLowerCase()==t)return r}}})},{"../lib/codemirror":10}],14:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(r,i){function o(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();if("<"==r)return e.eat("!")?e.eat("[")?e.match("CDATA[")?n(s("atom","]]>")):null:e.match("--")?n(s("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=s("meta","?>"),"meta"):(T=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==r){var i;return i=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),i?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=o,T=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return T="equals",null;if("<"==n){t.tokenize=o,t.state=d,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=l(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function s(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=o;break}n.next()}return e}}function c(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=c(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=o;break}return n.tokenize=c(e-1),n.tokenize(t,n)}}return"meta"}}function u(e,t,n){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n,(S.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function f(e){e.context&&(e.context=e.context.prev)}function h(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!S.contextGrabbers.hasOwnProperty(n)||!S.contextGrabbers[n].hasOwnProperty(t))return;f(e)}}function d(e,t,n){return"openTag"==e?(n.tagStart=t.column(),p):"closeTag"==e?m:d}function p(e,t,n){return"word"==e?(n.tagName=t.current(),M="tag",y):(M="error",p)}function m(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&S.implicitlyClosed.hasOwnProperty(n.context.tagName)&&f(n),n.context&&n.context.tagName==r||S.matchClosing===!1?(M="tag",g):(M="tag error",v)}return M="error",v}function g(e,t,n){return"endTag"!=e?(M="error",g):(f(n),d)}function v(e,t,n){return M="error",g(e,t,n)}function y(e,t,n){if("word"==e)return M="attribute",x;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||S.autoSelfClosers.hasOwnProperty(r)?h(n,r):(h(n,r),n.context=new u(n,r,i==n.indented)),d}return M="error",y}function x(e,t,n){return"equals"==e?b:(S.allowMissing||(M="error"),y(e,t,n))}function b(e,t,n){return"string"==e?w:"word"==e&&S.allowUnquoted?(M="string",y):(M="error",y(e,t,n))}function w(e,t,n){return"string"==e?w:y(e,t,n)}var k=r.indentUnit,S={},C=i.htmlMode?t:n;for(var L in C)S[L]=C[L];for(var L in i)S[L]=i[L];var T,M;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:d,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;T=null;var n=t.tokenize(e,t);return(n||T)&&"comment"!=n&&(M=null,t.state=t.state(T||n,e,t),M&&(n="error"==M?n+" error":M)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+k;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return S.multilineTagIndentPastTag!==!1?t.tagStart+t.tagName.length+2:t.tagStart+k*(S.multilineTagIndentFactor||1);if(S.alignCDATA&&/<!\[CDATA\[/.test(n))return 0;var l=n&&/^<(\/)?([\w_:\.-]*)/.exec(n);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!S.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=S.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+k:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:S.htmlMode?"html":"xml",helperType:S.htmlMode?"html":"xml",skipAttribute:function(e){e.state==b&&(e.state=y)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},{"../../lib/codemirror":10}],15:[function(e,t,n){n.read=function(e,t,n,r,i){var o,a,l=8*i-r-1,s=(1<<l)-1,c=s>>1,u=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,o=d&(1<<-u)-1,d>>=-u,u+=l;u>0;o=256*o+e[t+f],f+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=r;u>0;a=256*a+e[t+f],f+=h,u-=8);if(0===o)o=1-c;else{if(o===s)return a?NaN:(d?-1:1)*(1/0);a+=Math.pow(2,r),o-=c}return(d?-1:1)*a*Math.pow(2,o-r)},n.write=function(e,t,n,r,i,o){var a,l,s,c=8*o-i-1,u=(1<<c)-1,f=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=0>t||0===t&&0>1/t?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-a))<1&&(a--,s*=2),t+=a+f>=1?h/s:h*Math.pow(2,1-f),t*s>=2&&(a++,s/=2),a+f>=u?(l=0,a=u):a+f>=1?(l=(t*s-1)*Math.pow(2,i),a+=f):(l=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[n+d]=255&l,d+=p,l/=256,i-=8);for(a=a<<i|l,c+=i;c>0;e[n+d]=255&a,d+=p,a/=256,c-=8);e[n+d-p]|=128*m}},{}],16:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],17:[function(t,n,r){(function(t){(function(){function t(e){this.tokens=[],this.tokens.links={},this.options=e||h.defaults,this.rules=d.normal,this.options.gfm&&(this.options.tables?this.rules=d.tables:this.rules=d.gfm)}function i(e,t){if(this.options=t||h.defaults,this.links=e,this.rules=p.normal,this.renderer=this.options.renderer||new o,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=p.breaks:this.rules=p.gfm:this.options.pedantic&&(this.rules=p.pedantic)}function o(e){this.options=e||{}}function a(e){this.tokens=[],this.token=null,this.options=e||h.defaults,this.options.renderer=this.options.renderer||new o,this.renderer=this.options.renderer,this.renderer.options=this.options}function l(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function s(e){return e.replace(/&([#\w]+);/g,function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function c(e,t){return e=e.source,t=t||"",function n(r,i){return r?(i=i.source||i,i=i.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,i),n):new RegExp(e,t)}}function u(){}function f(e){for(var t,n,r=1;r<arguments.length;r++){t=arguments[r];for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}function h(e,n,r){if(r||"function"==typeof n){r||(r=n,n=null),n=f({},h.defaults,n||{});var i,o,s=n.highlight,c=0;try{i=t.lex(e,n)}catch(u){return r(u)}o=i.length;var d=function(e){if(e)return n.highlight=s,r(e);var t;try{t=a.parse(i,n)}catch(o){e=o}return n.highlight=s,e?r(e):r(null,t)};if(!s||s.length<3)return d();if(delete n.highlight,!o)return d();for(;c<i.length;c++)!function(e){return"code"!==e.type?--o||d():s(e.text,e.lang,function(t,n){return t?d(t):null==n||n===e.text?--o||d():(e.text=n,e.escaped=!0,void(--o||d()))})}(i[c])}else try{return n&&(n=f({},h.defaults,n)),a.parse(t.lex(e,n),n)}catch(u){if(u.message+="\nPlease report this to https://github.com/chjj/marked.",(n||h.defaults).silent)return"<p>An error occured:</p><pre>"+l(u.message+"",!0)+"</pre>";throw u}}var d={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:u,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:u,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:u,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};d.bullet=/(?:[*+-]|\d+\.)/,d.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,d.item=c(d.item,"gm")(/bull/g,d.bullet)(),d.list=c(d.list)(/bull/g,d.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+d.def.source+")")(),d.blockquote=c(d.blockquote)("def",d.def)(),d._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",d.html=c(d.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,d._tag)(),d.paragraph=c(d.paragraph)("hr",d.hr)("heading",d.heading)("lheading",d.lheading)("blockquote",d.blockquote)("tag","<"+d._tag)("def",d.def)(),d.normal=f({},d),d.gfm=f({},d.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),d.gfm.paragraph=c(d.paragraph)("(?!","(?!"+d.gfm.fences.source.replace("\\1","\\2")+"|"+d.list.source.replace("\\1","\\3")+"|")(),d.tables=f({},d.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),t.rules=d,t.lex=function(e,n){var r=new t(n);return r.lex(e)},t.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},t.prototype.token=function(e,t,n){for(var r,i,o,a,l,s,c,u,f,e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(t&&(o=this.rules.nptable.exec(e))){for(e=e.substring(o[0].length),s={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].split(/ *\| */);this.tokens.push(s)}else if(o=this.rules.lheading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:"="===o[2]?1:2,text:o[1]});else if(o=this.rules.hr.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"hr"});else if(o=this.rules.blockquote.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"blockquote_start"}),o=o[0].replace(/^ *> ?/gm,""),this.token(o,t,!0),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),a=o[2],this.tokens.push({type:"list_start",ordered:a.length>1}),o=o[0].match(this.rules.item),r=!1,f=o.length,u=0;f>u;u++)s=o[u],c=s.length,s=s.replace(/^ *([*+-]|\d+\.) +/,""),~s.indexOf("\n ")&&(c-=s.length,s=this.options.pedantic?s.replace(/^ {1,4}/gm,""):s.replace(new RegExp("^ {1,"+c+"}","gm"),"")),this.options.smartLists&&u!==f-1&&(l=d.bullet.exec(o[u+1])[0],a===l||a.length>1&&l.length>1||(e=o.slice(u+1).join("\n")+e,u=f-1)),i=r||/\n\n(?!\s*$)/.test(s),u!==f-1&&(r="\n"===s.charAt(s.length-1),i||(i=r)),this.tokens.push({type:i?"loose_item_start":"list_item_start"}),this.token(s,!1,n),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(!n&&t&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),this.tokens.links[o[1].toLowerCase()]={href:o[2],title:o[3]};else if(t&&(o=this.rules.table.exec(e))){for(e=e.substring(o[0].length),s={type:"table",
share/assets/js/010-simplemde.min.js:14:header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/(?: *\| *)?\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(s)}else if(t&&(o=this.rules.paragraph.exec(e)))e=e.substring(o[0].length),this.tokens.push({type:"paragraph",text:"\n"===o[1].charAt(o[1].length-1)?o[1].slice(0,-1):o[1]});else if(o=this.rules.text.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"text",text:o[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens};var p={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:u,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:u,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};p._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,p._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,p.link=c(p.link)("inside",p._inside)("href",p._href)(),p.reflink=c(p.reflink)("inside",p._inside)(),p.normal=f({},p),p.pedantic=f({},p.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),p.gfm=f({},p.normal,{escape:c(p.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:c(p.text)("]|","~]|")("|","|https?://|")()}),p.breaks=f({},p.gfm,{br:c(p.br)("{2,}","*")(),text:c(p.gfm.text)("{2,}","*")()}),i.rules=p,i.output=function(e,t,n){var r=new i(t,n);return r.output(e)},i.prototype.output=function(e){for(var t,n,r,i,o="";e;)if(i=this.rules.escape.exec(e))e=e.substring(i[0].length),o+=i[1];else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),"@"===i[2]?(n=":"===i[1].charAt(6)?this.mangle(i[1].substring(7)):this.mangle(i[1]),r=this.mangle("mailto:")+n):(n=l(i[1]),r=n),o+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(i[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(i[0])&&(this.inLink=!1),e=e.substring(i[0].length),o+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):l(i[0]):i[0];else if(i=this.rules.link.exec(e))e=e.substring(i[0].length),this.inLink=!0,o+=this.outputLink(i,{href:i[2],title:i[3]}),this.inLink=!1;else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),t=this.links[t.toLowerCase()],!t||!t.href){o+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,o+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),o+=this.renderer.strong(this.output(i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),o+=this.renderer.em(this.output(i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),o+=this.renderer.codespan(l(i[2],!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),o+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),o+=this.renderer.del(this.output(i[1]));else if(i=this.rules.text.exec(e))e=e.substring(i[0].length),o+=this.renderer.text(l(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(i[0].length),n=l(i[1]),r=n,o+=this.renderer.link(r,null,n);return o},i.prototype.outputLink=function(e,t){var n=l(t.href),r=t.title?l(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,l(e[1]))},i.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},i.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;r>i;i++)t=e.charCodeAt(i),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},o.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'<pre><code class="'+this.options.langPrefix+l(t,!0)+'">'+(n?e:l(e,!0))+"\n</code></pre>\n":"<pre><code>"+(n?e:l(e,!0))+"\n</code></pre>"},o.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},o.prototype.html=function(e){return e},o.prototype.heading=function(e,t,n){return"<h"+t+' id="'+this.options.headerPrefix+n.toLowerCase().replace(/[^\w]+/g,"-")+'">'+e+"</h"+t+">\n"},o.prototype.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},o.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"</"+n+">\n"},o.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},o.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},o.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},o.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},o.prototype.tablecell=function(e,t){var n=t.header?"th":"td",r=t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">";return r+e+"</"+n+">\n"},o.prototype.strong=function(e){return"<strong>"+e+"</strong>"},o.prototype.em=function(e){return"<em>"+e+"</em>"},o.prototype.codespan=function(e){return"<code>"+e+"</code>"},o.prototype.br=function(){return this.options.xhtml?"<br/>":"<br>"},o.prototype.del=function(e){return"<del>"+e+"</del>"},o.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(s(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(i){return""}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:"))return""}var o='<a href="'+e+'"';return t&&(o+=' title="'+t+'"'),o+=">"+n+"</a>"},o.prototype.image=function(e,t,n){var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"},o.prototype.text=function(e){return e},a.parse=function(e,t,n){var r=new a(t,n);return r.parse(e)},a.prototype.parse=function(e){this.inline=new i(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},a.prototype.next=function(){return this.token=this.tokens.pop()},a.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},a.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},a.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,i,o="",a="";for(n="",e=0;e<this.token.header.length;e++)r={header:!0,align:this.token.align[e]},n+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]});for(o+=this.renderer.tablerow(n),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],n="",i=0;i<t.length;i++)n+=this.renderer.tablecell(this.inline.output(t[i]),{header:!1,align:this.token.align[i]});a+=this.renderer.tablerow(n)}return this.renderer.table(o,a);case"blockquote_start":for(var a="";"blockquote_end"!==this.next().type;)a+=this.tok();return this.renderer.blockquote(a);case"list_start":for(var a="",l=this.token.ordered;"list_end"!==this.next().type;)a+=this.tok();return this.renderer.list(a,l);case"list_item_start":for(var a="";"list_item_end"!==this.next().type;)a+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(a);case"loose_item_start":for(var a="";"list_item_end"!==this.next().type;)a+=this.tok();return this.renderer.listitem(a);case"html":var s=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text);return this.renderer.html(s);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}},u.exec=u,h.options=h.setOptions=function(e){return f(h.defaults,e),h},h.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,sanitizer:null,mangle:!0,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new o,xhtml:!1},h.Parser=a,h.parser=a.parse,h.Renderer=o,h.Lexer=t,h.lexer=t.lex,h.InlineLexer=i,h.inlineLexer=i.output,h.parse=h,"undefined"!=typeof n&&"object"==typeof r?n.exports=h:"function"==typeof e&&e.amd?e(function(){return h}):this.marked=h}).call(function(){return this||("undefined"!=typeof window?window:t)}())}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],18:[function(e,t,n){(function(n,r){"use strict";var i=function(e,t,n,i){if(i=i||{},this.dictionary=null,this.rules={},this.dictionaryTable={},this.compoundRules=[],this.compoundRuleCodes={},this.replacementTable=[],this.flags=i.flags||{},e){if(this.dictionary=e,"undefined"!=typeof window&&"chrome"in window&&"extension"in window.chrome&&"getURL"in window.chrome.extension)t||(t=this._readFile(chrome.extension.getURL("lib/typo/dictionaries/"+e+"/"+e+".aff"))),n||(n=this._readFile(chrome.extension.getURL("lib/typo/dictionaries/"+e+"/"+e+".dic")));else{if(i.dictionaryPath)var o=i.dictionaryPath;else if("undefined"!=typeof r)var o=r+"/dictionaries";else var o="./dictionaries";t||(t=this._readFile(o+"/"+e+"/"+e+".aff")),n||(n=this._readFile(o+"/"+e+"/"+e+".dic"))}this.rules=this._parseAFF(t),this.compoundRuleCodes={};for(var a=0,l=this.compoundRules.length;l>a;a++)for(var s=this.compoundRules[a],c=0,u=s.length;u>c;c++)this.compoundRuleCodes[s[c]]=[];"ONLYINCOMPOUND"in this.flags&&(this.compoundRuleCodes[this.flags.ONLYINCOMPOUND]=[]),this.dictionaryTable=this._parseDIC(n);for(var a in this.compoundRuleCodes)0==this.compoundRuleCodes[a].length&&delete this.compoundRuleCodes[a];for(var a=0,l=this.compoundRules.length;l>a;a++){for(var f=this.compoundRules[a],h="",c=0,u=f.length;u>c;c++){var d=f[c];h+=d in this.compoundRuleCodes?"("+this.compoundRuleCodes[d].join("|")+")":d}this.compoundRules[a]=new RegExp(h,"i")}}return this};i.prototype={load:function(e){for(var t in e)this[t]=e[t];return this},_readFile:function(t,r){if(r||(r="utf8"),"undefined"!=typeof XMLHttpRequest){var i=new XMLHttpRequest;return i.open("GET",t,!1),i.overrideMimeType&&i.overrideMimeType("text/plain; charset="+r),i.send(null),i.responseText}if("undefined"!=typeof e){var o=e("fs");try{if(o.existsSync(t)){var a=o.statSync(t),l=o.openSync(t,"r"),s=new n(a.size);return o.readSync(l,s,0,s.length,null),s.toString(r,0,s.length)}console.log("Path "+t+" does not exist.")}catch(c){return console.log(c),""}}},_parseAFF:function(e){var t={};e=this._removeAffixComments(e);for(var n=e.split("\n"),r=0,i=n.length;i>r;r++){var o=n[r],a=o.split(/\s+/),l=a[0];if("PFX"==l||"SFX"==l){for(var s=a[1],c=a[2],u=parseInt(a[3],10),f=[],h=r+1,d=r+1+u;d>h;h++){var o=n[h],p=o.split(/\s+/),m=p[2],g=p[3].split("/"),v=g[0];"0"===v&&(v="");var y=this.parseRuleCodes(g[1]),x=p[4],b={};b.add=v,y.length>0&&(b.continuationClasses=y),"."!==x&&("SFX"===l?b.match=new RegExp(x+"$"):b.match=new RegExp("^"+x)),"0"!=m&&("SFX"===l?b.remove=new RegExp(m+"$"):b.remove=m),f.push(b)}t[s]={type:l,combineable:"Y"==c,entries:f},r+=u}else if("COMPOUNDRULE"===l){for(var u=parseInt(a[1],10),h=r+1,d=r+1+u;d>h;h++){var o=n[h],p=o.split(/\s+/);this.compoundRules.push(p[1])}r+=u}else if("REP"===l){var p=o.split(/\s+/);3===p.length&&this.replacementTable.push([p[1],p[2]])}else this.flags[l]=a[1]}return t},_removeAffixComments:function(e){return e=e.replace(/#.*$/gm,""),e=e.replace(/^\s\s*/m,"").replace(/\s\s*$/m,""),e=e.replace(/\n{2,}/g,"\n"),e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},_parseDIC:function(e){function t(e,t){e in r&&"object"==typeof r[e]||(r[e]=[]),r[e].push(t)}e=this._removeDicComments(e);for(var n=e.split("\n"),r={},i=1,o=n.length;o>i;i++){var a=n[i],l=a.split("/",2),s=l[0];if(l.length>1){var c=this.parseRuleCodes(l[1]);"NEEDAFFIX"in this.flags&&-1!=c.indexOf(this.flags.NEEDAFFIX)||t(s,c);for(var u=0,f=c.length;f>u;u++){var h=c[u],d=this.rules[h];if(d)for(var p=this._applyRule(s,d),m=0,g=p.length;g>m;m++){var v=p[m];if(t(v,[]),d.combineable)for(var y=u+1;f>y;y++){var x=c[y],b=this.rules[x];if(b&&b.combineable&&d.type!=b.type)for(var w=this._applyRule(v,b),k=0,S=w.length;S>k;k++){var C=w[k];t(C,[])}}}h in this.compoundRuleCodes&&this.compoundRuleCodes[h].push(s)}}else t(s.trim(),[])}return r},_removeDicComments:function(e){return e=e.replace(/^\t.*$/gm,"")},parseRuleCodes:function(e){if(!e)return[];if(!("FLAG"in this.flags))return e.split("");if("long"===this.flags.FLAG){for(var t=[],n=0,r=e.length;r>n;n+=2)t.push(e.substr(n,2));return t}return"num"===this.flags.FLAG?textCode.split(","):void 0},_applyRule:function(e,t){for(var n=t.entries,r=[],i=0,o=n.length;o>i;i++){var a=n[i];if(!a.match||e.match(a.match)){var l=e;if(a.remove&&(l=l.replace(a.remove,"")),"SFX"===t.type?l+=a.add:l=a.add+l,r.push(l),"continuationClasses"in a)for(var s=0,c=a.continuationClasses.length;c>s;s++){var u=this.rules[a.continuationClasses[s]];u&&(r=r.concat(this._applyRule(l,u)))}}}return r},check:function(e){var t=e.replace(/^\s\s*/,"").replace(/\s\s*$/,"");if(this.checkExact(t))return!0;if(t.toUpperCase()===t){var n=t[0]+t.substring(1).toLowerCase();if(this.hasFlag(n,"KEEPCASE"))return!1;if(this.checkExact(n))return!0}var r=t.toLowerCase();if(r!==t){if(this.hasFlag(r,"KEEPCASE"))return!1;if(this.checkExact(r))return!0}return!1},checkExact:function(e){var t=this.dictionaryTable[e];if("undefined"==typeof t){if("COMPOUNDMIN"in this.flags&&e.length>=this.flags.COMPOUNDMIN)for(var n=0,r=this.compoundRules.length;r>n;n++)if(e.match(this.compoundRules[n]))return!0;return!1}if("object"==typeof t){for(var n=0,r=t.length;r>n;n++)if(!this.hasFlag(e,"ONLYINCOMPOUND",t[n]))return!0;return!1}},hasFlag:function(e,t,n){if(t in this.flags){if("undefined"==typeof n)var n=Array.prototype.concat.apply([],this.dictionaryTable[e]);if(n&&-1!==n.indexOf(this.flags[t]))return!0}return!1},alphabet:"",suggest:function(e,t){function n(e){for(var t=[],n=0,r=e.length;r>n;n++){for(var i=e[n],o=[],a=0,l=i.length+1;l>a;a++)o.push([i.substring(0,a),i.substring(a,i.length)]);for(var s=[],a=0,l=o.length;l>a;a++){var u=o[a];u[1]&&s.push(u[0]+u[1].substring(1))}for(var f=[],a=0,l=o.length;l>a;a++){var u=o[a];u[1].length>1&&f.push(u[0]+u[1][1]+u[1][0]+u[1].substring(2))}for(var h=[],a=0,l=o.length;l>a;a++){var u=o[a];if(u[1])for(var d=0,p=c.alphabet.length;p>d;d++)h.push(u[0]+c.alphabet[d]+u[1].substring(1))}for(var m=[],a=0,l=o.length;l>a;a++){var u=o[a];if(u[1])for(var d=0,p=c.alphabet.length;p>d;d++)h.push(u[0]+c.alphabet[d]+u[1])}t=t.concat(s),t=t.concat(f),t=t.concat(h),t=t.concat(m)}return t}function r(e){for(var t=[],n=0;n<e.length;n++)c.check(e[n])&&t.push(e[n]);return t}function i(e){function i(e,t){return e[1]<t[1]?-1:1}for(var o=n([e]),a=n(o),l=r(o).concat(r(a)),s={},u=0,f=l.length;f>u;u++)l[u]in s?s[l[u]]+=1:s[l[u]]=1;var h=[];for(var u in s)h.push([u,s[u]]);h.sort(i).reverse();for(var d=[],u=0,f=Math.min(t,h.length);f>u;u++)c.hasFlag(h[u][0],"NOSUGGEST")||d.push(h[u][0]);return d}if(t||(t=5),this.check(e))return[];for(var o=0,a=this.replacementTable.length;a>o;o++){var l=this.replacementTable[o];if(-1!==e.indexOf(l[0])){var s=e.replace(l[0],l[1]);if(this.check(s))return[s]}}var c=this;return c.alphabet="abcdefghijklmnopqrstuvwxyz",i(e)}},"undefined"!=typeof t&&(t.exports=i)}).call(this,e("buffer").Buffer,"/node_modules/typo-js")},{buffer:3,fs:2}],19:[function(e,t,n){var r=e("codemirror");r.commands.tabAndIndentMarkdownList=function(e){var t=e.listSelections(),n=t[0].head,r=e.getStateAfter(n.line),i=r.list!==!1;if(i)return void e.execCommand("indentMore");if(e.options.indentWithTabs)e.execCommand("insertTab");else{var o=Array(e.options.tabSize+1).join(" ");e.replaceSelection(o)}},r.commands.shiftTabAndUnindentMarkdownList=function(e){var t=e.listSelections(),n=t[0].head,r=e.getStateAfter(n.line),i=r.list!==!1;if(i)return void e.execCommand("indentLess");if(e.options.indentWithTabs)e.execCommand("insertTab");else{var o=Array(e.options.tabSize+1).join(" ");e.replaceSelection(o)}}},{codemirror:10}],20:[function(e,t,n){"use strict";function r(e){return e=U?e.replace("Ctrl","Cmd"):e.replace("Cmd","Ctrl")}function i(e,t,n){e=e||{};var r=document.createElement("a");return t=void 0==t?!0:t,e.title&&t&&(r.title=a(e.title,e.action,n),U&&(r.title=r.title.replace("Ctrl","⌘"),r.title=r.title.replace("Alt","⌥"))),r.tabIndex=-1,r.className=e.className,r}function o(){var e=document.createElement("i");return e.className="separator",e.innerHTML="|",e}function a(e,t,n){var i,o=e;return t&&(i=Y(t),n[i]&&(o+=" ("+r(n[i])+")")),o}function l(e,t){t=t||e.getCursor("start");var n=e.getTokenAt(t);if(!n.type)return{};for(var r,i,o=n.type.split(" "),a={},l=0;l<o.length;l++)r=o[l],"strong"===r?a.bold=!0:"variable-2"===r?(i=e.getLine(t.line),/^\s*\d+\.\s/.test(i)?a["ordered-list"]=!0:a["unordered-list"]=!0):"atom"===r?a.quote=!0:"em"===r?a.italic=!0:"quote"===r?a.quote=!0:"strikethrough"===r?a.strikethrough=!0:"comment"===r?a.code=!0:"link"===r?a.link=!0:"tag"===r?a.image=!0:r.match(/^header(\-[1-6])?$/)&&(a[r.replace("header","heading")]=!0);return a}function s(e){var t=e.codemirror;t.setOption("fullScreen",!t.getOption("fullScreen")),t.getOption("fullScreen")?(V=document.body.style.overflow,document.body.style.overflow="hidden"):document.body.style.overflow=V;var n=t.getWrapperElement();/fullscreen/.test(n.previousSibling.className)?n.previousSibling.className=n.previousSibling.className.replace(/\s*fullscreen\b/,""):n.previousSibling.className+=" fullscreen";var r=e.toolbarElements.fullscreen;/active/.test(r.className)?r.className=r.className.replace(/\s*active\s*/g,""):r.className+=" active";var i=t.getWrapperElement().nextSibling;/editor-preview-active-side/.test(i.className)&&N(e)}function c(e){P(e,"bold",e.options.blockStyles.bold)}function u(e){P(e,"italic",e.options.blockStyles.italic)}function f(e){P(e,"strikethrough","~~")}function h(e){function t(e){if("object"!=typeof e)throw"fencing_line() takes a 'line' object (not a line number, or line text).  Got: "+typeof e+": "+e;return e.styles&&e.styles[2]&&-1!==e.styles[2].indexOf("formatting-code-block")}function n(e){return e.state.base.base||e.state.base}function r(e,r,i,o,a){i=i||e.getLineHandle(r),o=o||e.getTokenAt({line:r,ch:1}),a=a||!!i.text&&e.getTokenAt({line:r,ch:i.text.length-1});var l=o.type?o.type.split(" "):[];return a&&n(a).indentedCode?"indented":-1===l.indexOf("comment")?!1:n(o).fencedChars||n(a).fencedChars||t(i)?"fenced":"single"}function i(e,t,n,r){var i=t.line+1,o=n.line+1,a=t.line!==n.line,l=r+"\n",s="\n"+r;a&&o++,a&&0===n.ch&&(s=r+"\n",o--),E(e,!1,[l,s]),e.setSelection({line:i,ch:0},{line:o,ch:0})}var o,a,l,s=e.options.blockStyles.code,c=e.codemirror,u=c.getCursor("start"),f=c.getCursor("end"),h=c.getTokenAt({line:u.line,ch:u.ch||1}),d=c.getLineHandle(u.line),p=r(c,u.line,d,h);if("single"===p){var m=d.text.slice(0,u.ch).replace("`",""),g=d.text.slice(u.ch).replace("`","");c.replaceRange(m+g,{line:u.line,ch:0},{line:u.line,ch:99999999999999}),u.ch--,u!==f&&f.ch--,c.setSelection(u,f),c.focus()}else if("fenced"===p)if(u.line!==f.line||u.ch!==f.ch){for(o=u.line;o>=0&&(d=c.getLineHandle(o),!t(d));o--);var v,y,x,b,w=c.getTokenAt({line:o,ch:1}),k=n(w).fencedChars;t(c.getLineHandle(u.line))?(v="",y=u.line):t(c.getLineHandle(u.line-1))?(v="",y=u.line-1):(v=k+"\n",y=u.line),t(c.getLineHandle(f.line))?(x="",b=f.line,0===f.ch&&(b+=1)):0!==f.ch&&t(c.getLineHandle(f.line+1))?(x="",b=f.line+1):(x=k+"\n",b=f.line+1),0===f.ch&&(b-=1),c.operation(function(){c.replaceRange(x,{line:b,ch:0},{line:b+(x?0:1),ch:0}),c.replaceRange(v,{line:y,ch:0},{line:y+(v?0:1),ch:0})}),c.setSelection({line:y+(v?1:0),ch:0},{line:b+(v?1:-1),ch:0}),c.focus()}else{var S=u.line;if(t(c.getLineHandle(u.line))&&("fenced"===r(c,u.line+1)?(o=u.line,S=u.line+1):(a=u.line,S=u.line-1)),void 0===o)for(o=S;o>=0&&(d=c.getLineHandle(o),!t(d));o--);if(void 0===a)for(l=c.lineCount(),a=S;l>a&&(d=c.getLineHandle(a),!t(d));a++);c.operation(function(){c.replaceRange("",{line:o,ch:0},{line:o+1,ch:0}),c.replaceRange("",{line:a-1,ch:0},{line:a,ch:0})}),c.focus()}else if("indented"===p){if(u.line!==f.line||u.ch!==f.ch)o=u.line,a=f.line,0===f.ch&&a--;else{for(o=u.line;o>=0;o--)if(d=c.getLineHandle(o),!d.text.match(/^\s*$/)&&"indented"!==r(c,o,d)){o+=1;break}for(l=c.lineCount(),a=u.line;l>a;a++)if(d=c.getLineHandle(a),!d.text.match(/^\s*$/)&&"indented"!==r(c,a,d)){a-=1;break}}var C=c.getLineHandle(a+1),L=C&&c.getTokenAt({line:a+1,ch:C.text.length-1}),T=L&&n(L).indentedCode;T&&c.replaceRange("\n",{line:a+1,ch:0});for(var M=o;a>=M;M++)c.indentLine(M,"subtract");c.focus()}else{var N=u.line===f.line&&u.ch===f.ch&&0===u.ch,A=u.line!==f.line;N||A?i(c,u,f,s):E(c,!1,["`","`"])}}function d(e){var t=e.codemirror;I(t,"quote")}function p(e){var t=e.codemirror;O(t,"smaller")}function m(e){var t=e.codemirror;O(t,"bigger")}function g(e){var t=e.codemirror;O(t,void 0,1)}function v(e){var t=e.codemirror;O(t,void 0,2)}function y(e){var t=e.codemirror;O(t,void 0,3)}function x(e){var t=e.codemirror;I(t,"unordered-list")}function b(e){var t=e.codemirror;I(t,"ordered-list")}function w(e){var t=e.codemirror;R(t)}function k(e){var t=e.codemirror,n=l(t),r=e.options,i="http://";return r.promptURLs&&(i=prompt(r.promptTexts.link),!i)?!1:void E(t,n.link,r.insertTexts.link,i)}function S(e){var t=e.codemirror,n=l(t),r=e.options,i="http://";return r.promptURLs&&(i=prompt(r.promptTexts.image),!i)?!1:void E(t,n.image,r.insertTexts.image,i)}function C(e){var t=e.codemirror,n=l(t),r=e.options;E(t,n.table,r.insertTexts.table)}function L(e){var t=e.codemirror,n=l(t),r=e.options;E(t,n.image,r.insertTexts.horizontalRule)}function T(e){var t=e.codemirror;t.undo(),t.focus()}function M(e){var t=e.codemirror;t.redo(),t.focus()}function N(e){var t=e.codemirror,n=t.getWrapperElement(),r=n.nextSibling,i=e.toolbarElements["side-by-side"],o=!1;/editor-preview-active-side/.test(r.className)?(r.className=r.className.replace(/\s*editor-preview-active-side\s*/g,""),i.className=i.className.replace(/\s*active\s*/g,""),n.className=n.className.replace(/\s*CodeMirror-sided\s*/g," ")):(setTimeout(function(){t.getOption("fullScreen")||s(e),r.className+=" editor-preview-active-side"},1),i.className+=" active",n.className+=" CodeMirror-sided",o=!0);var a=n.lastChild;if(/editor-preview-active/.test(a.className)){a.className=a.className.replace(/\s*editor-preview-active\s*/g,"");var l=e.toolbarElements.preview,c=n.previousSibling;l.className=l.className.replace(/\s*active\s*/g,""),c.className=c.className.replace(/\s*disabled-for-preview*/g,"")}var u=function(){r.innerHTML=e.options.previewRender(e.value(),r)};t.sideBySideRenderingFunction||(t.sideBySideRenderingFunction=u),o?(r.innerHTML=e.options.previewRender(e.value(),r),t.on("update",t.sideBySideRenderingFunction)):t.off("update",t.sideBySideRenderingFunction),t.refresh()}function A(e){var t=e.codemirror,n=t.getWrapperElement(),r=n.previousSibling,i=e.options.toolbar?e.toolbarElements.preview:!1,o=n.lastChild;o&&/editor-preview/.test(o.className)||(o=document.createElement("div"),o.className="editor-preview",n.appendChild(o)),/editor-preview-active/.test(o.className)?(o.className=o.className.replace(/\s*editor-preview-active\s*/g,""),i&&(i.className=i.className.replace(/\s*active\s*/g,""),r.className=r.className.replace(/\s*disabled-for-preview*/g,""))):(setTimeout(function(){o.className+=" editor-preview-active"},1),i&&(i.className+=" active",r.className+=" disabled-for-preview")),o.innerHTML=e.options.previewRender(e.value(),o);var a=t.getWrapperElement().nextSibling;/editor-preview-active-side/.test(a.className)&&N(e)}function E(e,t,n,r){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className)){var i,o=n[0],a=n[1],l=e.getCursor("start"),s=e.getCursor("end");r&&(a=a.replace("#url#",r)),t?(i=e.getLine(l.line),o=i.slice(0,l.ch),a=i.slice(l.ch),e.replaceRange(o+a,{line:l.line,ch:0})):(i=e.getSelection(),e.replaceSelection(o+i+a),l.ch+=o.length,l!==s&&(s.ch+=o.length)),e.setSelection(l,s),e.focus()}}function O(e,t,n){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className)){for(var r=e.getCursor("start"),i=e.getCursor("end"),o=r.line;o<=i.line;o++)!function(r){var i=e.getLine(r),o=i.search(/[^#]/);i=void 0!==t?0>=o?"bigger"==t?"###### "+i:"# "+i:6==o&&"smaller"==t?i.substr(7):1==o&&"bigger"==t?i.substr(2):"bigger"==t?i.substr(1):"#"+i:1==n?0>=o?"# "+i:o==n?i.substr(o+1):"# "+i.substr(o+1):2==n?0>=o?"## "+i:o==n?i.substr(o+1):"## "+i.substr(o+1):0>=o?"### "+i:o==n?i.substr(o+1):"### "+i.substr(o+1),e.replaceRange(i,{line:r,ch:0},{line:r,ch:99999999999999})}(o);e.focus()}}function I(e,t){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className)){for(var n=l(e),r=e.getCursor("start"),i=e.getCursor("end"),o={quote:/^(\s*)\>\s+/,"unordered-list":/^(\s*)(\*|\-|\+)\s+/,"ordered-list":/^(\s*)\d+\.\s+/},a={quote:"> ","unordered-list":"* ","ordered-list":"1. "},s=r.line;s<=i.line;s++)!function(r){var i=e.getLine(r);i=n[t]?i.replace(o[t],"$1"):a[t]+i,e.replaceRange(i,{line:r,ch:0},{line:r,ch:99999999999999})}(s);e.focus()}}function P(e,t,n,r){if(!/editor-preview-active/.test(e.codemirror.getWrapperElement().lastChild.className)){r="undefined"==typeof r?n:r;var i,o=e.codemirror,a=l(o),s=n,c=r,u=o.getCursor("start"),f=o.getCursor("end");a[t]?(i=o.getLine(u.line),s=i.slice(0,u.ch),c=i.slice(u.ch),"bold"==t?(s=s.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,""),c=c.replace(/(\*\*|__)/,"")):"italic"==t?(s=s.replace(/(\*|_)(?![\s\S]*(\*|_))/,""),c=c.replace(/(\*|_)/,"")):"strikethrough"==t&&(s=s.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,""),c=c.replace(/(\*\*|~~)/,"")),o.replaceRange(s+c,{line:u.line,ch:0},{line:u.line,ch:99999999999999}),"bold"==t||"strikethrough"==t?(u.ch-=2,u!==f&&(f.ch-=2)):"italic"==t&&(u.ch-=1,u!==f&&(f.ch-=1))):(i=o.getSelection(),"bold"==t?(i=i.split("**").join(""),i=i.split("__").join("")):"italic"==t?(i=i.split("*").join(""),i=i.split("_").join("")):"strikethrough"==t&&(i=i.split("~~").join("")),o.replaceSelection(s+i+c),u.ch+=n.length,f.ch=u.ch+i.length),o.setSelection(u,f),o.focus()}}function R(e){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className))for(var t,n=e.getCursor("start"),r=e.getCursor("end"),i=n.line;i<=r.line;i++)t=e.getLine(i),t=t.replace(/^[ ]*([# ]+|\*|\-|[> ]+|[0-9]+(.|\)))[ ]*/,""),e.replaceRange(t,{line:i,ch:0},{line:i,ch:99999999999999})}function D(e,t){for(var n in t)t.hasOwnProperty(n)&&(t[n]instanceof Array?e[n]=t[n].concat(e[n]instanceof Array?e[n]:[]):null!==t[n]&&"object"==typeof t[n]&&t[n].constructor===Object?e[n]=D(e[n]||{},t[n]):e[n]=t[n]);return e}function H(e){for(var t=1;t<arguments.length;t++)e=D(e,arguments[t]);return e}function W(e){var t=/[a-zA-Z0-9_\u0392-\u03c9\u0410-\u04F9]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af]+/g,n=e.match(t),r=0;if(null===n)return r;for(var i=0;i<n.length;i++)r+=n[i].charCodeAt(0)>=19968?n[i].length:1;return r}function B(e){e=e||{},e.parent=this;var t=!0;if(e.autoDownloadFontAwesome===!1&&(t=!1),e.autoDownloadFontAwesome!==!0)for(var n=document.styleSheets,r=0;r<n.length;r++)n[r].href&&n[r].href.indexOf("//maxcdn.bootstrapcdn.com/font-awesome/")>-1&&(t=!1);if(t){var i=document.createElement("link");i.rel="stylesheet",i.href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css",document.getElementsByTagName("head")[0].appendChild(i)}if(e.element)this.element=e.element;else if(null===e.element)return void console.log("SimpleMDE: Error. No element was found.");if(void 0===e.toolbar){e.toolbar=[];for(var o in K)K.hasOwnProperty(o)&&(-1!=o.indexOf("separator-")&&e.toolbar.push("|"),(K[o]["default"]===!0||e.showIcons&&e.showIcons.constructor===Array&&-1!=e.showIcons.indexOf(o))&&e.toolbar.push(o))}e.hasOwnProperty("status")||(e.status=["autosave","lines","words","cursor"]),e.previewRender||(e.previewRender=function(e){return this.parent.markdown(e)}),e.parsingConfig=H({highlightFormatting:!0},e.parsingConfig||{}),e.insertTexts=H({},X,e.insertTexts||{}),e.promptTexts=Z,e.blockStyles=H({},J,e.blockStyles||{}),e.shortcuts=H({},G,e.shortcuts||{}),void 0!=e.autosave&&void 0!=e.autosave.unique_id&&""!=e.autosave.unique_id&&(e.autosave.uniqueId=e.autosave.unique_id),this.options=e,this.render(),!e.initialValue||this.options.autosave&&this.options.autosave.foundSavedValue===!0||this.value(e.initialValue)}function _(){if("object"!=typeof localStorage)return!1;try{localStorage.setItem("smde_localStorage",1),localStorage.removeItem("smde_localStorage")}catch(e){return!1}return!0}var F=e("codemirror");e("codemirror/addon/edit/continuelist.js"),e("./codemirror/tablist"),e("codemirror/addon/display/fullscreen.js"),e("codemirror/mode/markdown/markdown.js"),e("codemirror/addon/mode/overlay.js"),e("codemirror/addon/display/placeholder.js"),e("codemirror/addon/selection/mark-selection.js"),e("codemirror/mode/gfm/gfm.js"),e("codemirror/mode/xml/xml.js");var z=e("codemirror-spell-checker"),j=e("marked"),U=/Mac/.test(navigator.platform),q={toggleBold:c,toggleItalic:u,drawLink:k,toggleHeadingSmaller:p,toggleHeadingBigger:m,drawImage:S,toggleBlockquote:d,toggleOrderedList:b,toggleUnorderedList:x,toggleCodeBlock:h,togglePreview:A,toggleStrikethrough:f,toggleHeading1:g,toggleHeading2:v,toggleHeading3:y,cleanBlock:w,drawTable:C,drawHorizontalRule:L,undo:T,redo:M,toggleSideBySide:N,toggleFullScreen:s},G={toggleBold:"Cmd-B",toggleItalic:"Cmd-I",drawLink:"Cmd-K",toggleHeadingSmaller:"Cmd-H",toggleHeadingBigger:"Shift-Cmd-H",cleanBlock:"Cmd-E",drawImage:"Cmd-Alt-I",toggleBlockquote:"Cmd-'",toggleOrderedList:"Cmd-Alt-L",toggleUnorderedList:"Cmd-L",toggleCodeBlock:"Cmd-Alt-C",togglePreview:"Cmd-P",toggleSideBySide:"F9",toggleFullScreen:"F11"},Y=function(e){for(var t in q)if(q[t]===e)return t;return null},$=function(){var e=!1;return function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0);
share/assets/js/010-simplemde.min.js:15:}(navigator.userAgent||navigator.vendor||window.opera),e},V="",K={bold:{name:"bold",action:c,className:"fa fa-bold",title:"Bold","default":!0},italic:{name:"italic",action:u,className:"fa fa-italic",title:"Italic","default":!0},strikethrough:{name:"strikethrough",action:f,className:"fa fa-strikethrough",title:"Strikethrough"},heading:{name:"heading",action:p,className:"fa fa-header",title:"Heading","default":!0},"heading-smaller":{name:"heading-smaller",action:p,className:"fa fa-header fa-header-x fa-header-smaller",title:"Smaller Heading"},"heading-bigger":{name:"heading-bigger",action:m,className:"fa fa-header fa-header-x fa-header-bigger",title:"Bigger Heading"},"heading-1":{name:"heading-1",action:g,className:"fa fa-header fa-header-x fa-header-1",title:"Big Heading"},"heading-2":{name:"heading-2",action:v,className:"fa fa-header fa-header-x fa-header-2",title:"Medium Heading"},"heading-3":{name:"heading-3",action:y,className:"fa fa-header fa-header-x fa-header-3",title:"Small Heading"},"separator-1":{name:"separator-1"},code:{name:"code",action:h,className:"fa fa-code",title:"Code"},quote:{name:"quote",action:d,className:"fa fa-quote-left",title:"Quote","default":!0},"unordered-list":{name:"unordered-list",action:x,className:"fa fa-list-ul",title:"Generic List","default":!0},"ordered-list":{name:"ordered-list",action:b,className:"fa fa-list-ol",title:"Numbered List","default":!0},"clean-block":{name:"clean-block",action:w,className:"fa fa-eraser fa-clean-block",title:"Clean block"},"separator-2":{name:"separator-2"},link:{name:"link",action:k,className:"fa fa-link",title:"Create Link","default":!0},image:{name:"image",action:S,className:"fa fa-picture-o",title:"Insert Image","default":!0},table:{name:"table",action:C,className:"fa fa-table",title:"Insert Table"},"horizontal-rule":{name:"horizontal-rule",action:L,className:"fa fa-minus",title:"Insert Horizontal Line"},"separator-3":{name:"separator-3"},preview:{name:"preview",action:A,className:"fa fa-eye no-disable",title:"Toggle Preview","default":!0},"side-by-side":{name:"side-by-side",action:N,className:"fa fa-columns no-disable no-mobile",title:"Toggle Side by Side","default":!0},fullscreen:{name:"fullscreen",action:s,className:"fa fa-arrows-alt no-disable no-mobile",title:"Toggle Fullscreen","default":!0},"separator-4":{name:"separator-4"},guide:{name:"guide",action:"https://simplemde.com/markdown-guide",className:"fa fa-question-circle",title:"Markdown Guide","default":!0},"separator-5":{name:"separator-5"},undo:{name:"undo",action:T,className:"fa fa-undo no-disable",title:"Undo"},redo:{name:"redo",action:M,className:"fa fa-repeat no-disable",title:"Redo"}},X={link:["[","](#url#)"],image:["![](","#url#)"],table:["","\n\n| Column 1 | Column 2 | Column 3 |\n| -------- | -------- | -------- |\n| Text     | Text     | Text     |\n\n"],horizontalRule:["","\n\n-----\n\n"]},Z={link:"URL for the link:",image:"URL of the image:"},J={bold:"**",code:"```",italic:"*"};B.prototype.markdown=function(e){if(j){var t={};return this.options&&this.options.renderingConfig&&this.options.renderingConfig.singleLineBreaks===!1?t.breaks=!1:t.breaks=!0,this.options&&this.options.renderingConfig&&this.options.renderingConfig.codeSyntaxHighlighting===!0&&window.hljs&&(t.highlight=function(e){return window.hljs.highlightAuto(e).value}),j.setOptions(t),j(e)}},B.prototype.render=function(e){if(e||(e=this.element||document.getElementsByTagName("textarea")[0]),!this._rendered||this._rendered!==e){this.element=e;var t=this.options,n=this,i={};for(var o in t.shortcuts)null!==t.shortcuts[o]&&null!==q[o]&&!function(e){i[r(t.shortcuts[e])]=function(){q[e](n)}}(o);i.Enter="newlineAndIndentContinueMarkdownList",i.Tab="tabAndIndentMarkdownList",i["Shift-Tab"]="shiftTabAndUnindentMarkdownList",i.Esc=function(e){e.getOption("fullScreen")&&s(n)},document.addEventListener("keydown",function(e){e=e||window.event,27==e.keyCode&&n.codemirror.getOption("fullScreen")&&s(n)},!1);var a,l;if(t.spellChecker!==!1?(a="spell-checker",l=t.parsingConfig,l.name="gfm",l.gitHubSpice=!1,z({codeMirrorInstance:F})):(a=t.parsingConfig,a.name="gfm",a.gitHubSpice=!1),this.codemirror=F.fromTextArea(e,{mode:a,backdrop:l,theme:"paper",tabSize:void 0!=t.tabSize?t.tabSize:2,indentUnit:void 0!=t.tabSize?t.tabSize:2,indentWithTabs:t.indentWithTabs!==!1,lineNumbers:!1,autofocus:t.autofocus===!0,extraKeys:i,lineWrapping:t.lineWrapping!==!1,allowDropFileTypes:["text/plain"],placeholder:t.placeholder||e.getAttribute("placeholder")||"",styleSelectedText:void 0!=t.styleSelectedText?t.styleSelectedText:!0}),t.forceSync===!0){var c=this.codemirror;c.on("change",function(){c.save()})}this.gui={},t.toolbar!==!1&&(this.gui.toolbar=this.createToolbar()),t.status!==!1&&(this.gui.statusbar=this.createStatusbar()),void 0!=t.autosave&&t.autosave.enabled===!0&&this.autosave(),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element;var u=this.codemirror;setTimeout(function(){u.refresh()}.bind(u),0)}},B.prototype.autosave=function(){if(_()){var e=this;if(void 0==this.options.autosave.uniqueId||""==this.options.autosave.uniqueId)return void console.log("SimpleMDE: You must set a uniqueId to use the autosave feature");null!=e.element.form&&void 0!=e.element.form&&e.element.form.addEventListener("submit",function(){localStorage.removeItem("smde_"+e.options.autosave.uniqueId)}),this.options.autosave.loaded!==!0&&("string"==typeof localStorage.getItem("smde_"+this.options.autosave.uniqueId)&&""!=localStorage.getItem("smde_"+this.options.autosave.uniqueId)&&(this.codemirror.setValue(localStorage.getItem("smde_"+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0),localStorage.setItem("smde_"+this.options.autosave.uniqueId,e.value());var t=document.getElementById("autosaved");if(null!=t&&void 0!=t&&""!=t){var n=new Date,r=n.getHours(),i=n.getMinutes(),o="am",a=r;a>=12&&(a=r-12,o="pm"),0==a&&(a=12),i=10>i?"0"+i:i,t.innerHTML="Autosaved: "+a+":"+i+" "+o}this.autosaveTimeoutId=setTimeout(function(){e.autosave()},this.options.autosave.delay||1e4)}else console.log("SimpleMDE: localStorage not available, cannot autosave")},B.prototype.clearAutosavedValue=function(){if(_()){if(void 0==this.options.autosave||void 0==this.options.autosave.uniqueId||""==this.options.autosave.uniqueId)return void console.log("SimpleMDE: You must set a uniqueId to clear the autosave value");localStorage.removeItem("smde_"+this.options.autosave.uniqueId)}else console.log("SimpleMDE: localStorage not available, cannot autosave")},B.prototype.createSideBySide=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;n&&/editor-preview-side/.test(n.className)||(n=document.createElement("div"),n.className="editor-preview-side",t.parentNode.insertBefore(n,t.nextSibling));var r=!1,i=!1;return e.on("scroll",function(e){if(r)return void(r=!1);i=!0;var t=e.getScrollInfo().height-e.getScrollInfo().clientHeight,o=parseFloat(e.getScrollInfo().top)/t,a=(n.scrollHeight-n.clientHeight)*o;n.scrollTop=a}),n.onscroll=function(){if(i)return void(i=!1);r=!0;var t=n.scrollHeight-n.clientHeight,o=parseFloat(n.scrollTop)/t,a=(e.getScrollInfo().height-e.getScrollInfo().clientHeight)*o;e.scrollTo(0,a)},n},B.prototype.createToolbar=function(e){if(e=e||this.options.toolbar,e&&0!==e.length){var t;for(t=0;t<e.length;t++)void 0!=K[e[t]]&&(e[t]=K[e[t]]);var n=document.createElement("div");n.className="editor-toolbar";var r=this,a={};for(r.toolbar=e,t=0;t<e.length;t++)if(("guide"!=e[t].name||r.options.toolbarGuideIcon!==!1)&&!(r.options.hideIcons&&-1!=r.options.hideIcons.indexOf(e[t].name)||("fullscreen"==e[t].name||"side-by-side"==e[t].name)&&$())){if("|"===e[t]){for(var s=!1,c=t+1;c<e.length;c++)"|"===e[c]||r.options.hideIcons&&-1!=r.options.hideIcons.indexOf(e[c].name)||(s=!0);if(!s)continue}!function(e){var t;t="|"===e?o():i(e,r.options.toolbarTips,r.options.shortcuts),e.action&&("function"==typeof e.action?t.onclick=function(t){t.preventDefault(),e.action(r)}:"string"==typeof e.action&&(t.href=e.action,t.target="_blank")),a[e.name||e]=t,n.appendChild(t)}(e[t])}r.toolbarElements=a;var u=this.codemirror;u.on("cursorActivity",function(){var e=l(u);for(var t in a)!function(t){var n=a[t];e[t]?n.className+=" active":"fullscreen"!=t&&"side-by-side"!=t&&(n.className=n.className.replace(/\s*active\s*/g,""))}(t)});var f=u.getWrapperElement();return f.parentNode.insertBefore(n,f),n}},B.prototype.createStatusbar=function(e){e=e||this.options.status;var t=this.options,n=this.codemirror;if(e&&0!==e.length){var r,i,o,a=[];for(r=0;r<e.length;r++)if(i=void 0,o=void 0,"object"==typeof e[r])a.push({className:e[r].className,defaultValue:e[r].defaultValue,onUpdate:e[r].onUpdate});else{var l=e[r];"words"===l?(o=function(e){e.innerHTML=W(n.getValue())},i=function(e){e.innerHTML=W(n.getValue())}):"lines"===l?(o=function(e){e.innerHTML=n.lineCount()},i=function(e){e.innerHTML=n.lineCount()}):"cursor"===l?(o=function(e){e.innerHTML="0:0"},i=function(e){var t=n.getCursor();e.innerHTML=t.line+":"+t.ch}):"autosave"===l&&(o=function(e){void 0!=t.autosave&&t.autosave.enabled===!0&&e.setAttribute("id","autosaved")}),a.push({className:l,defaultValue:o,onUpdate:i})}var s=document.createElement("div");for(s.className="editor-statusbar",r=0;r<a.length;r++){var c=a[r],u=document.createElement("span");u.className=c.className,"function"==typeof c.defaultValue&&c.defaultValue(u),"function"==typeof c.onUpdate&&this.codemirror.on("update",function(e,t){return function(){t.onUpdate(e)}}(u,c)),s.appendChild(u)}var f=this.codemirror.getWrapperElement();return f.parentNode.insertBefore(s,f.nextSibling),s}},B.prototype.value=function(e){return void 0===e?this.codemirror.getValue():(this.codemirror.getDoc().setValue(e),this)},B.toggleBold=c,B.toggleItalic=u,B.toggleStrikethrough=f,B.toggleBlockquote=d,B.toggleHeadingSmaller=p,B.toggleHeadingBigger=m,B.toggleHeading1=g,B.toggleHeading2=v,B.toggleHeading3=y,B.toggleCodeBlock=h,B.toggleUnorderedList=x,B.toggleOrderedList=b,B.cleanBlock=w,B.drawLink=k,B.drawImage=S,B.drawTable=C,B.drawHorizontalRule=L,B.undo=T,B.redo=M,B.togglePreview=A,B.toggleSideBySide=N,B.toggleFullScreen=s,B.prototype.toggleBold=function(){c(this)},B.prototype.toggleItalic=function(){u(this)},B.prototype.toggleStrikethrough=function(){f(this)},B.prototype.toggleBlockquote=function(){d(this)},B.prototype.toggleHeadingSmaller=function(){p(this)},B.prototype.toggleHeadingBigger=function(){m(this)},B.prototype.toggleHeading1=function(){g(this)},B.prototype.toggleHeading2=function(){v(this)},B.prototype.toggleHeading3=function(){y(this)},B.prototype.toggleCodeBlock=function(){h(this)},B.prototype.toggleUnorderedList=function(){x(this)},B.prototype.toggleOrderedList=function(){b(this)},B.prototype.cleanBlock=function(){w(this)},B.prototype.drawLink=function(){k(this)},B.prototype.drawImage=function(){S(this)},B.prototype.drawTable=function(){C(this)},B.prototype.drawHorizontalRule=function(){L(this)},B.prototype.undo=function(){T(this)},B.prototype.redo=function(){M(this)},B.prototype.togglePreview=function(){A(this)},B.prototype.toggleSideBySide=function(){N(this)},B.prototype.toggleFullScreen=function(){s(this)},B.prototype.isPreviewActive=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.lastChild;return/editor-preview-active/.test(n.className)},B.prototype.isSideBySideActive=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;return/editor-preview-active-side/.test(n.className)},B.prototype.isFullscreenActive=function(){var e=this.codemirror;return e.getOption("fullScreen")},B.prototype.getState=function(){var e=this.codemirror;return l(e)},B.prototype.toTextArea=function(){var e=this.codemirror,t=e.getWrapperElement();t.parentNode&&(this.gui.toolbar&&t.parentNode.removeChild(this.gui.toolbar),this.gui.statusbar&&t.parentNode.removeChild(this.gui.statusbar),this.gui.sideBySide&&t.parentNode.removeChild(this.gui.sideBySide)),e.toTextArea(),this.autosaveTimeoutId&&(clearTimeout(this.autosaveTimeoutId),this.autosaveTimeoutId=void 0,this.clearAutosavedValue())},t.exports=B},{"./codemirror/tablist":19,codemirror:10,"codemirror-spell-checker":4,"codemirror/addon/display/fullscreen.js":5,"codemirror/addon/display/placeholder.js":6,"codemirror/addon/edit/continuelist.js":7,"codemirror/addon/mode/overlay.js":8,"codemirror/addon/selection/mark-selection.js":9,"codemirror/mode/gfm/gfm.js":11,"codemirror/mode/markdown/markdown.js":12,"codemirror/mode/xml/xml.js":14,marked:17}]},{},[20])(20)});
share/assets/js/020-RowExpanderEX.js:3: * Copyright(c) 2006-2009 Ext JS, LLC
share/assets/js/020-RowExpanderEX.js:98:        p.cols = p.cols-1;
share/assets/js/020-RowExpanderEX.js:107:        var baseclass = this.state[record.id] ? 'x-grid3-row-expanded' : 'x-grid3-row-collapsed';
share/assets/js/020-RowExpanderEX.js:112:        // --------------------
share/assets/js/020-RowExpanderEX.js:132:        mainBody.on('mousedown', this.onMouseDown, this, {delegate: '.x-grid3-row-expander'});
share/assets/js/020-RowExpanderEX.js:189:        var row = e.getTarget('.x-grid3-row');
share/assets/js/020-RowExpanderEX.js:195:        return '<div class="x-grid3-row-expander">&#160;</div>';
share/assets/js/020-RowExpanderEX.js:213:        this[Ext.fly(row).hasClass('x-grid3-row-collapsed') ? 'expandRow' : 'collapseRow'](row);
share/assets/js/020-RowExpanderEX.js:221:        var body = Ext.DomQuery.selectNode('tr:nth(2) div.x-grid3-row-body', row);
share/assets/js/020-RowExpanderEX.js:224:            Ext.fly(row).replaceClass('x-grid3-row-collapsed', 'x-grid3-row-expanded');
share/assets/js/020-RowExpanderEX.js:234:        var body = Ext.fly(row).child('tr:nth(1) div.x-grid3-row-body', true);
share/assets/js/020-RowExpanderEX.js:237:            Ext.fly(row).replaceClass('x-grid3-row-expanded', 'x-grid3-row-collapsed');
share/assets/js/021-Ext.ux.grid.RowActions.js:18: * @revision  $Id: Ext.ux.grid.RowActions.js 747 2009-09-03 23:30:52Z jozo $
share/assets/js/021-Ext.ux.grid.RowActions.js:38: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/021-Ext.ux.grid.RowActions.js:39: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/021-Ext.ux.grid.RowActions.js:41: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" 
share/assets/js/021-Ext.ux.grid.RowActions.js:42: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/021-Ext.ux.grid.RowActions.js:123:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:130:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:133:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:139:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:143:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:147:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:151:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:155:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:159:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:162:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:167:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:171:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:188:	 * @cfg {String} dataIndex - Do not touch!
share/assets/js/021-Ext.ux.grid.RowActions.js:194:	 * @cfg {Boolean} editable - Do not touch!
share/assets/js/021-Ext.ux.grid.RowActions.js:204:	 * <li style="list-style-position:outside">
share/assets/js/021-Ext.ux.grid.RowActions.js:215:	 * &nbsp;    'ra-icon-open':function(...) {...}
share/assets/js/021-Ext.ux.grid.RowActions.js:216:	 * &nbsp;   ,'ra-icon-save-ok':function(...) {...}
share/assets/js/021-Ext.ux.grid.RowActions.js:259:		+'<div class="ux-grow-action-item<tpl if="\'right\'===align"> ux-action-right</tpl> '
share/assets/js/021-Ext.ux.grid.RowActions.js:268:		 '<div class="ux-row-action">'
share/assets/js/021-Ext.ux.grid.RowActions.js:270:		+'<div class="ux-row-action-item {cls} <tpl if="text">'
share/assets/js/021-Ext.ux.grid.RowActions.js:271:		+'ux-row-action-text</tpl>" style="{hide}{style}" qtip="{qtip}">'
share/assets/js/021-Ext.ux.grid.RowActions.js:285:	 * @cfg {Number} widthIntercept Constant used for auto-width calculation (defaults to 4).
share/assets/js/021-Ext.ux.grid.RowActions.js:291:	 * @cfg {Number} widthSlope Constant used for auto-width calculation (defaults to 21).
share/assets/js/021-Ext.ux.grid.RowActions.js:340:				cell.css += (cell.css ? ' ' : '') + 'ux-row-action-cell';
share/assets/js/021-Ext.ux.grid.RowActions.js:348:				if(e.getTarget('.ux-grow-action-item')) {
share/assets/js/021-Ext.ux.grid.RowActions.js:353:				 '<div class="ux-grow-action-text">' + view.groupTextTpl +'</div>' 
share/assets/js/021-Ext.ux.grid.RowActions.js:426:		var t = e.getTarget('.ux-row-action-item');
share/assets/js/021-Ext.ux.grid.RowActions.js:428:			action = t.className.replace(/ux-row-action-item /, '');
share/assets/js/021-Ext.ux.grid.RowActions.js:430:				action = action.replace(/ ux-row-action-text/, '');
share/assets/js/021-Ext.ux.grid.RowActions.js:446:		var row = e.getTarget('.x-grid3-row');
share/assets/js/021-Ext.ux.grid.RowActions.js:450://		var t = e.getTarget('.ux-row-action-item');
share/assets/js/021-Ext.ux.grid.RowActions.js:453://			action = t.className.replace(/ux-row-action-item /, '');
share/assets/js/021-Ext.ux.grid.RowActions.js:455://				action = action.replace(/ ux-row-action-text/, '');
share/assets/js/021-Ext.ux.grid.RowActions.js:478:		t = e.getTarget('.ux-grow-action-item');
share/assets/js/021-Ext.ux.grid.RowActions.js:482:			var groupId = group ? group.id.replace(/ext-gen[0-9]+-gp-/, '') : null;
share/assets/js/021-Ext.ux.grid.RowActions.js:493:			action = t.className.replace(/ux-grow-action-item (ux-action-right )*/, '');
share/assets/js/022-Ext.ux.form.XCheckbox.js:13: * @revision  $Id: Ext.ux.form.XCheckbox.js 589 2009-02-21 23:30:18Z jozo $
share/assets/js/022-Ext.ux.form.XCheckbox.js:26: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/022-Ext.ux.form.XCheckbox.js:27: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/022-Ext.ux.form.XCheckbox.js:29: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" 
share/assets/js/022-Ext.ux.form.XCheckbox.js:30: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:10: * removed tri-state functionality and put all files into one extension.
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:21: * @revision $Id: Ext.ux.tree.CheckTreePanel.js 593 2009-02-24 10:17:11Z jozo $
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:41: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:42: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:44: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" 
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:45: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:100:	 * Class to add to CheckTreePanel. A suitable css file must be included. Defaults to 'ux-checktree'.
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:102:	,cls:'ux-checktree'
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:379: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:380: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:382: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" 
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:383: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:405:			 '<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ', a.cls,'" unselectable="on">'
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:406:			,'<span class="x-tree-node-indent">',this.indentMarkup,"</span>"
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:407:			,'<img src="', this.emptyIcon, '" class="x-tree-ec-icon x-tree-elbow" />'
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:408:			,'<img src="', a.icon || this.emptyIcon, '" class="x-tree-node-icon',(a.icon ? " x-tree-node-inline-icon" :""),(a.iconCls ? " "+a.iconCls :""),'" unselectable="on" />'
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:409:			,'<img src="'+this.emptyIcon+'" class="x-tree-checkbox'+(true === checked ? ' x-tree-node-checked' :'')+'" />'
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:410:			,'<a hidefocus="on" class="x-tree-node-anchor" href="',href,'" tabIndex="1" '
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:412:			,'<ul class="x-tree-node-ct" style="display:none;"></ul>'
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:440:		Ext.fly(this.iconNode).set({cls:'x-tree-node-icon ' + iconCls});
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:484:			true === checked ? cb.addClass('x-tree-node-checked') : cb.removeClass('x-tree-node-checked');
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:549:		this.addClass('x-tree-checkbox-over');
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:558:		this.removeClass('x-tree-checkbox-over');
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:567:		this.addClass('x-tree-checkbox-down');
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:576:		this.removeClass('x-tree-checkbox-down');
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:605: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:606: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:608: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" 
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:609: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:643:        if(e.getTarget('.x-tree-ec-icon', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:647:        else if(e.getTarget('.x-tree-checkbox', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:659:        if(e.getTarget('.x-tree-ec-icon', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:666:        else if(e.getTarget('.x-tree-checkbox', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:681:        if(e.getTarget('.x-tree-checkbox', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:689:        if(e.getTarget('.x-tree-checkbox', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:697:        if(e.getTarget('.x-tree-ec-icon', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:704:        else if(e.getTarget('.x-tree-checkbox', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:719:		if(e.getTarget('.x-tree-checkbox', 1)){
share/assets/js/023-Ext.ux.tree.CheckTreePanel.js:722:		else if(e.getTarget('.x-tree-ec-icon', 1)){
share/assets/js/024-Ext.ux.form.DateTime.js:12: * @revision  $Id: Ext.ux.form.DateTime.js 813 2010-01-29 23:32:36Z jozo $
share/assets/js/024-Ext.ux.form.DateTime.js:25: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/024-Ext.ux.form.DateTime.js:26: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/024-Ext.ux.form.DateTime.js:28: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" 
share/assets/js/024-Ext.ux.form.DateTime.js:29: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/024-Ext.ux.form.DateTime.js:53:	 * @cfg {String} dtSeparator Date - Time separator. Used to split date and time (defaults to ' ' (space))
share/assets/js/024-Ext.ux.form.DateTime.js:58:	 * and submitted to server (defaults to 'Y-m-d H:i:s' that is mysql format)
share/assets/js/024-Ext.ux.form.DateTime.js:60:	,hiddenFormat:'Y-m-d H:i:s'
share/assets/js/024-Ext.ux.form.DateTime.js:109:			 id:this.id + '-date'
share/assets/js/024-Ext.ux.form.DateTime.js:125:			 id:this.id + '-time'
share/assets/js/024-Ext.ux.form.DateTime.js:165:			t = Ext.DomHelper.append(ct, {tag:'table',style:'border-collapse:collapse',children:[
share/assets/js/024-Ext.ux.form.DateTime.js:166:				 {tag:'tr',children:[{tag:'td', style:'padding-bottom:1px', cls:'ux-datetime-date'}]}
share/assets/js/024-Ext.ux.form.DateTime.js:167:				,{tag:'tr',children:[{tag:'td', cls:'ux-datetime-time'}]}
share/assets/js/024-Ext.ux.form.DateTime.js:171:			t = Ext.DomHelper.append(ct, {tag:'table',style:'border-collapse:collapse',children:[
share/assets/js/024-Ext.ux.form.DateTime.js:173:					{tag:'td',style:'padding-right:4px', cls:'ux-datetime-date'},{tag:'td', cls:'ux-datetime-time'}
share/assets/js/024-Ext.ux.form.DateTime.js:179:		this.wrap = t.wrap({cls:'x-form-field-wrap'});
share/assets/js/024-Ext.ux.form.DateTime.js:184:		this.df.render(t.child('td.ux-datetime-date'));
share/assets/js/024-Ext.ux.form.DateTime.js:185:		this.tf.render(t.child('td.ux-datetime-time'));
share/assets/js/024-Ext.ux.form.DateTime.js:198:			var elp = this.el.findParent('.x-form-element', 10, true);
share/assets/js/024-Ext.ux.form.DateTime.js:200:				this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'});
share/assets/js/024-Ext.ux.form.DateTime.js:240:        this.errorIcon.alignTo(this.tableEl, 'tl-tr', [2, 0]);
share/assets/js/024-Ext.ux.form.DateTime.js:436:	 * Handles Tab and Shift-Tab events
share/assets/js/024-Ext.ux.form.DateTime.js:503:			this.df.setSize(w - this.timeWidth - 4, h);
share/assets/js/024-Ext.ux.form.DateTime.js:507:				this.df.el.up('td').setWidth(w - this.timeWidth - 4);
share/assets/js/025-Ext.ux.grid.Search.js:16: * @revision  $Id: Ext.ux.grid.Search.js 798 2010-01-17 00:46:57Z jozo $
share/assets/js/025-Ext.ux.grid.Search.js:36: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/025-Ext.ux.grid.Search.js:37: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/025-Ext.ux.grid.Search.js:39: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" 
share/assets/js/025-Ext.ux.grid.Search.js:40: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/025-Ext.ux.grid.Search.js:90:	 * @cfg {String} iconCls Icon class for menu button (defaults to "ra-icon-magnifier")
share/assets/js/025-Ext.ux.grid.Search.js:92:	,iconCls:'ra-icon-magnifier'
share/assets/js/025-Ext.ux.grid.Search.js:102:	 * (defaults to [] - empty array)
share/assets/js/025-Ext.ux.grid.Search.js:107:	 * Field containing search text (read-only)
share/assets/js/025-Ext.ux.grid.Search.js:123:	 * Menu containing the column module fields menu with checkboxes (read-only)
share/assets/js/025-Ext.ux.grid.Search.js:197:	 * search controls to (defaults to this.grid, the grid this plugin is plugged-in into)
share/assets/js/025-Ext.ux.grid.Search.js:250:			,trigger1Class:'x-form-clear-trigger'
share/assets/js/025-Ext.ux.grid.Search.js:251:			,trigger2Class:this.minChars ? 'x-hide-display' : 'x-form-search-trigger'
share/assets/js/025-Ext.ux.grid.Search.js:291:		// re-layout the panel if the toolbar is outside
share/assets/js/025-Ext.ux.grid.Search.js:470:			}),'-');
share/assets/js/030-ListMenu.js:3: * Copyright(c) 2006-2009 Ext JS, LLC
share/assets/js/030-ListMenu.js:34:     * Specify true to group all items in this list into a single-select
share/assets/js/030-ListMenu.js:74:            this.add({text: this.loadingText, iconCls: 'loading-indicator'});
share/assets/js/030-ListMenu.js:120:                checked: this.selected.indexOf(records[i].id) > -1,
share/assets/js/031-RangeMenu.js:3: * Copyright(c) 2006-2009 Ext JS, LLC
share/assets/js/031-RangeMenu.js:40:            if (item !== '-') {
share/assets/js/031-RangeMenu.js:43:                    itemId: 'range-' + item,
share/assets/js/031-RangeMenu.js:45:                    iconCls: this.iconCls[item] || 'no-icon',
share/assets/js/032-GridFilters.js:3: * Copyright(c) 2006-2009 Ext JS, LLC
share/assets/js/032-GridFilters.js:19: * <div class="mdetail-params"><ul>
share/assets/js/032-GridFilters.js:21: * <div class="sub-desc">
share/assets/js/032-GridFilters.js:27: * <div class="sub-desc">
share/assets/js/032-GridFilters.js:32: * <div class="sub-desc">
share/assets/js/032-GridFilters.js:37: * <div class="sub-desc">
share/assets/js/032-GridFilters.js:43: * <div class="sub-desc">
share/assets/js/032-GridFilters.js:50: * <div class="sub-desc"><ul>
share/assets/js/032-GridFilters.js:57: * <div class="sub-desc"><ul>
share/assets/js/032-GridFilters.js:58: * <li><a href="http://www.vinylfox.com/extjs/grid-filter-php-backend-code.php">PHP</a> - (Thanks VinylFox)</li>
share/assets/js/032-GridFilters.js:59: * <li><a href="http://extjs.com/forum/showthread.php?p=77326#post77326">Ruby on Rails</a> - (Thanks Zyclops)</li>
share/assets/js/032-GridFilters.js:60: * <li><a href="http://extjs.com/forum/showthread.php?p=176596#post176596">Ruby on Rails</a> - (Thanks Rotomaul)</li>
share/assets/js/032-GridFilters.js:61: * <li><a href="http://www.debatablybeta.com/posts/using-extjss-grid-filtering-with-django/">Python</a> - (Thanks Matt)</li>
share/assets/js/032-GridFilters.js:62: * <li><a href="http://mcantrell.wordpress.com/2008/08/22/extjs-grids-and-grails/">Grails</a> - (Thanks Mike)</li>
share/assets/js/032-GridFilters.js:146:     * Defaults to <tt>'ux-filterd-column'</tt>.
share/assets/js/032-GridFilters.js:148:    filterCls : 'ux-filtered-column',
share/assets/js/032-GridFilters.js:354:                id: this.grid.id + '-filters-menu'
share/assets/js/032-GridFilters.js:634:     * <div class="mdetail-params"><ul>
share/assets/js/032-GridFilters.js:637:     * <div class="sub-desc">
share/assets/js/032-GridFilters.js:647:     * <div class="sub-desc">
share/assets/js/032-GridFilters.js:707:            regex = new RegExp('^' + this.paramPrefix + '\[[0-9]+\]');
share/assets/js/039-Ext.ux.form.HtmlEditor.MidasCommand.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/039-Ext.ux.form.HtmlEditor.MidasCommand.js:6: * http://msdn.microsoft.com/en-us/library/ms533049%28v=VS.85%29.aspx
share/assets/js/039-Ext.ux.form.HtmlEditor.MidasCommand.js:7: * http://www.mozilla.org/editor/midas-spec.html
share/assets/js/039-Ext.ux.form.HtmlEditor.MidasCommand.js:99:                iconCls = (b.iconCls) ? b.iconCls : 'x-edit-' + b.cmd;
share/assets/js/039-Ext.ux.form.HtmlEditor.MidasCommand.js:100:                if (b.value) { iconCls = iconCls+'-'+b.value.replace(/[<>\/]/g,''); }
share/assets/js/040-Ext.ux.form.HtmlEditor.Divider.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/041-Ext.ux.form.HtmlEditor.FindAndReplace.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/041-Ext.ux.form.HtmlEditor.FindAndReplace.js:3: * @contributor Ronald van Raaphorst - Twensoc
share/assets/js/041-Ext.ux.form.HtmlEditor.FindAndReplace.js:25:        this.lastSelectionStart=-1;
share/assets/js/041-Ext.ux.form.HtmlEditor.FindAndReplace.js:35:            iconCls: 'x-edit-findandreplace',
share/assets/js/041-Ext.ux.form.HtmlEditor.FindAndReplace.js:118:            if(r==-1) {
share/assets/js/042-Ext.ux.form.HtmlEditor.Font.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/042-Ext.ux.form.HtmlEditor.Font.js:32:            tpl: '<tpl for="."><div class="x-combo-list-item" style="font-family:{value};">{display}</div></tpl>',
share/assets/js/043-Ext.ux.form.HtmlEditor.Heading.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/043-Ext.ux.form.HtmlEditor.Heading.js:3: * @contributor Somani - http://www.sencha.com/forum/member.php?51567-Somani
share/assets/js/043-Ext.ux.form.HtmlEditor.Heading.js:32: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:27:            iconCls: 'x-edit-hr',
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:35:                            itemId: 'insert-hr',
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:47:                                maskRe: /[0-9]|%/,
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:48:                                regex: /^[1-9][0-9%]{1,3}/,
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:66:                                var frm = this.hrWindow.getComponent('insert-hr').getForm();
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:118:        win.getComponent('insert-hr').getForm().findField('hrwidth').focus(true, delay);
share/assets/js/044-Ext.ux.form.HtmlEditor.HR.js:122:        var frm = this.hrWindow.getComponent('insert-hr').getForm();
share/assets/js/045-Ext.ux.form.HtmlEditor.Image.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/045-Ext.ux.form.HtmlEditor.Image.js:29:            src = src.replace(new RegExp(this.urlSizeVars[0]+'=[0-9]{1,5}([&| ])'), this.urlSizeVars[0]+'='+w+'$1');
share/assets/js/045-Ext.ux.form.HtmlEditor.Image.js:30:            src = src.replace(new RegExp(this.urlSizeVars[1]+'=[0-9]{1,5}([&| ])'), this.urlSizeVars[1]+'='+h+'$1');
share/assets/js/045-Ext.ux.form.HtmlEditor.Image.js:44:            iconCls: 'x-edit-image',
share/assets/js/046-Ext.ux.form.HtmlEditor.IndentOutdent.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/047-Ext.ux.form.HtmlEditor.Link.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/047-Ext.ux.form.HtmlEditor.Link.js:25:            iconCls: 'x-edit-createlink',
share/assets/js/047-Ext.ux.form.HtmlEditor.Link.js:36:                            itemId: 'insert-link',
share/assets/js/047-Ext.ux.form.HtmlEditor.Link.js:76:                                var frm = this.linkWindow.getComponent('insert-link').getForm();
share/assets/js/047-Ext.ux.form.HtmlEditor.Link.js:79:                                    if (text.length && text[text.length - 1] == ' ') {
share/assets/js/047-Ext.ux.form.HtmlEditor.Link.js:80:                                        text = text.substr(0, text.length - 1);
share/assets/js/047-Ext.ux.form.HtmlEditor.Link.js:109:                                    var frm = this.linkWindow.getComponent('insert-link').getForm();
share/assets/js/049-Ext.ux.form.HtmlEditor.Plugins.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/050-Ext.ux.form.HtmlEditor.RemoveFormat.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/051-Ext.ux.form.HtmlEditor.SpecialCharacters.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/051-Ext.ux.form.HtmlEditor.SpecialCharacters.js:33:            iconCls: 'x-edit-char',
share/assets/js/051-Ext.ux.form.HtmlEditor.SpecialCharacters.js:60:                        tpl: new Ext.XTemplate('<tpl for="."><div class="char-item">{char}</div></tpl><div class="x-clear"></div>'),
share/assets/js/051-Ext.ux.form.HtmlEditor.SpecialCharacters.js:61:                        overClass: 'char-over',
share/assets/js/051-Ext.ux.form.HtmlEditor.SpecialCharacters.js:62:                        itemSelector: 'div.char-item',
share/assets/js/052-Ext.ux.form.HtmlEditor.SubSuperScript.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/053-Ext.ux.form.HtmlEditor.Table.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/053-Ext.ux.form.HtmlEditor.Table.js:27:    cellLocationText: '{0}&nbsp;-&nbsp;{1}',
share/assets/js/053-Ext.ux.form.HtmlEditor.Table.js:41:            iconCls: 'x-edit-table',
share/assets/js/053-Ext.ux.form.HtmlEditor.Table.js:49:                            itemId: 'insert-table',
share/assets/js/053-Ext.ux.form.HtmlEditor.Table.js:85:                                anchor: '-15'
share/assets/js/053-Ext.ux.form.HtmlEditor.Table.js:101:                                var frm = this.tableWindow.getComponent('insert-table').getForm();
share/assets/js/053-Ext.ux.form.HtmlEditor.Table.js:107:                                        var html = "<table style='border-collapse: collapse'>";
share/assets/js/054-Ext.ux.form.HtmlEditor.UndoRedo.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/054-Ext.ux.form.HtmlEditor.UndoRedo.js:3: * @contributor vizcano - http://www.extjs.com/forum/member.php?u=23512
share/assets/js/055-Ext.ux.form.HtmlEditor.Word.js:2: * @author Shea Frederick - http://www.vinylfox.com
share/assets/js/055-Ext.ux.form.HtmlEditor.Word.js:49:				this.fixWordPaste(this.cmp.getValue().substr(diffAt, (this.curLength - this.lastLength))),
share/assets/js/055-Ext.ux.form.HtmlEditor.Word.js:50:				this.cmp.getValue().substr((this.curLength - this.lastLength)+diffAt, this.curLength)
share/assets/js/055-Ext.ux.form.HtmlEditor.Word.js:79:			/<\/?[A-Z0-9]*:[A-Z]*[^>]*>/ig, /(lang|class|type|href|name|title|id|clear)=\"[^\"]*\"/ig, /style=(\'\'|\"\")/ig, /<![\[-].*?-*>/g, 
share/assets/js/055-Ext.ux.form.HtmlEditor.Word.js:82:            /<\/?H5[^>]*>/g, /<\/?H6[^>]*>/g, /<\/?P[^>]*><\/P>/g, /<!--(.*)-->/g, /<!--(.*)>/g, /<!(.*)-->/g, /<\\?\?xml[^>]*>/g, 
share/assets/js/055-Ext.ux.form.HtmlEditor.Word.js:103:            iconCls: 'x-edit-wordpaste',
share/assets/js/060-SuperBoxSelect.js:94:     * @cfg {String} clearBtnCls An additional class to add to the in-field clear button.
share/assets/js/060-SuperBoxSelect.js:114:     * @cfg {String} expandBtnCls An additional class to add to the in-field expand button.
share/assets/js/060-SuperBoxSelect.js:163:     * @cfg {String} renderFieldBtns When set to true, will render in-field buttons for clearing the component, and displaying the list for selection. Defaults to true.
share/assets/js/060-SuperBoxSelect.js:228:        var extraClass = (this.stackItems === true) ? 'x-superboxselect-stacked' : '';
share/assets/js/060-SuperBoxSelect.js:230:            extraClass += ' x-superboxselect-display-btns';
share/assets/js/060-SuperBoxSelect.js:232:        this.el.removeClass('x-form-text').addClass('x-superboxselect-input-field');
share/assets/js/060-SuperBoxSelect.js:240:            cls: 'x-form-text x-superboxselect ' + extraClass
share/assets/js/060-SuperBoxSelect.js:245:            cls : 'x-superboxselect-input'
share/assets/js/060-SuperBoxSelect.js:369:            cls: 'x-superboxselect-btns'
share/assets/js/060-SuperBoxSelect.js:374:            cls: 'x-superboxselect-btn-clear ' + this.clearBtnCls
share/assets/js/060-SuperBoxSelect.js:379:            cls: 'x-superboxselect-btn-expand ' + this.expandBtnCls
share/assets/js/060-SuperBoxSelect.js:387:        this.buttonClear.addClassOnOver('x-superboxselect-btn-over').on('click', function(e) {
share/assets/js/060-SuperBoxSelect.js:396:        this.buttonExpand.addClassOnOver('x-superboxselect-btn-over').on('click', function(e) {
share/assets/js/060-SuperBoxSelect.js:532:                    qclass  : 'x-form-invalid-tip'
share/assets/js/060-SuperBoxSelect.js:536:                    qclass  : 'x-form-invalid-tip'
share/assets/js/060-SuperBoxSelect.js:554:                    this.errorEl = elp.createChild({cls:'x-form-invalid-msg'});
share/assets/js/060-SuperBoxSelect.js:555:                    this.errorEl.setWidth(elp.getWidth(true) - 20);
share/assets/js/060-SuperBoxSelect.js:567:                    this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'});
share/assets/js/060-SuperBoxSelect.js:572:                    qclass  : 'x-form-invalid-tip'
share/assets/js/060-SuperBoxSelect.js:622:            this.errorIcon.alignTo(this.wrap, 'tl-tr', [Ext.isIE ? 5 : 2, 3]);
share/assets/js/060-SuperBoxSelect.js:647:            ha = this.getPosition()[1]-Ext.getBody().getScroll().top,
share/assets/js/060-SuperBoxSelect.js:648:            hb = Ext.lib.Dom.getViewHeight()-ha-this.getSize().height,
share/assets/js/060-SuperBoxSelect.js:649:            space = Math.max(ha, hb, this.minHeight || 0)-list.shadowOffset-pad-5;
share/assets/js/060-SuperBoxSelect.js:714:            this.outerWrapEl.setWidth(w - reduce);
share/assets/js/060-SuperBoxSelect.js:717:                this.wrapEl.setWidth(w - reduce);
share/assets/js/060-SuperBoxSelect.js:772:            if(idx < (this.items.getCount() -1)){
share/assets/js/060-SuperBoxSelect.js:847:                if(idx < (this.items.getCount() -1)){
share/assets/js/060-SuperBoxSelect.js:862:                it = this.items.get(this.items.getCount() -1);
share/assets/js/060-SuperBoxSelect.js:893:            it = this.items.get(this.items.getCount()-1);
share/assets/js/060-SuperBoxSelect.js:906:                        this.currentFocus = this.items.itemAt(idx-1);
share/assets/js/060-SuperBoxSelect.js:923:                if(idx == (this.items.getCount() -1)){
share/assets/js/060-SuperBoxSelect.js:947:                    if(idx < (this.items.getCount() -1)){
share/assets/js/060-SuperBoxSelect.js:1072:     * Adds an array of items to the SuperBoxSelect component if the {@link #Ext.ux.form.SuperBoxSelect-allowAddNewData} config is set to true.
share/assets/js/060-SuperBoxSelect.js:1075:     * @param {Array} newItemObjects An Array of object literals containing the property names and values for an item. The property names must match those specified in {@link #Ext.ux.form.SuperBoxSelect-displayField}, {@link #Ext.ux.form.SuperBoxSelect-valueField} and {@link #Ext.ux.form.SuperBoxSelect-classField} 
share/assets/js/060-SuperBoxSelect.js:1087:     * Adds a new non-existing item to the SuperBoxSelect component if the {@link #Ext.ux.form.SuperBoxSelect-allowAddNewData} config is set to true.
share/assets/js/060-SuperBoxSelect.js:1091:     * @param {Object} newItemObject An object literal containing the property names and values for an item. The property names must match those specified in {@link #Ext.ux.form.SuperBoxSelect-displayField}, {@link #Ext.ux.form.SuperBoxSelect-valueField} and {@link #Ext.ux.form.SuperBoxSelect-classField} 
share/assets/js/060-SuperBoxSelect.js:1097:     * Adds an item to the SuperBoxSelect component if the {@link #Ext.ux.form.SuperBoxSelect-allowAddNewData} config is set to true.
share/assets/js/060-SuperBoxSelect.js:1100:     * @param {Object} newItemObject An object literal containing the property names and values for an item. The property names must match those specified in {@link #Ext.ux.form.SuperBoxSelect-displayField}, {@link #Ext.ux.form.SuperBoxSelect-valueField} and {@link #Ext.ux.form.SuperBoxSelect-classField} 
share/assets/js/060-SuperBoxSelect.js:1147:        }, itemKey = Ext.id(null,'sbx-item'), box = new Ext.ux.form.SuperBoxSelectItem({
share/assets/js/060-SuperBoxSelect.js:1207:        var cls = 'x-superboxselect-btn-hide';
share/assets/js/060-SuperBoxSelect.js:1217:        if(index > -1){
share/assets/js/060-SuperBoxSelect.js:1223:     * Returns a String value containing a concatenated list of item values. The list is concatenated with the {@link #Ext.ux.form.SuperBoxSelect-valueDelimiter}.
share/assets/js/060-SuperBoxSelect.js:1236:     * Returns an Array of item objects containing the {@link #Ext.ux.form.SuperBoxSelect-displayField}, {@link #Ext.ux.form.SuperBoxSelect-valueField}, {@link #Ext.ux.form.SuperBoxSelect-classField} and {@link #Ext.ux.form.SuperBoxSelect-styleField} properties.
share/assets/js/060-SuperBoxSelect.js:1269:     * @param {String|Array} value An array of item values, or a String value containing a delimited list of item values. (The list should be delimited with the {@link #Ext.ux.form.SuperBoxSelect-valueDelimiter) 
share/assets/js/060-SuperBoxSelect.js:1306:     * Sets the value of the SuperBoxSelect component, adding new items that don't exist in the data store if the {@link #Ext.ux.form.SuperBoxSelect-allowAddNewData} config is set to true.
share/assets/js/060-SuperBoxSelect.js:1309:     * @param {Array} data An Array of item objects containing the {@link #Ext.ux.form.SuperBoxSelect-displayField}, {@link #Ext.ux.form.SuperBoxSelect-valueField} and {@link #Ext.ux.form.SuperBoxSelect-classField} properties.  
share/assets/js/060-SuperBoxSelect.js:1434:                    this.selectedIndex = -1;
share/assets/js/060-SuperBoxSelect.js:1453:                this.selectedIndex = -1;
share/assets/js/060-SuperBoxSelect.js:1499:        this.el.addClass("x-superboxselect-item-focus");
share/assets/js/060-SuperBoxSelect.js:1500:        this.owner.outerWrapEl.addClass("x-form-focus");
share/assets/js/060-SuperBoxSelect.js:1504:        this.el.removeClass("x-superboxselect-item-focus");
share/assets/js/060-SuperBoxSelect.js:1505:        this.owner.outerWrapEl.removeClass("x-form-focus");
share/assets/js/060-SuperBoxSelect.js:1511:        this.el.addClassOnOver('x-superboxselect-item x-superboxselect-item-hover');
share/assets/js/060-SuperBoxSelect.js:1543:        el.addClass('x-superboxselect-item');
share/assets/js/060-SuperBoxSelect.js:1550:                var c = this.down(btnEl +'.x-superboxselect-item-close');
share/assets/js/060-SuperBoxSelect.js:1566:            'class': 'x-superboxselect-item-close',
share/assets/js/060-SuperBoxSelect.js:1567:            tabIndex : this.owner.navigateItemsWithTab ? '0' : '-1'
share/assets/js/065-miframe.js:3: * Copyright(c) 2008-2009 Active Group, Inc.
share/assets/js/065-miframe.js:7:Ext.namespace("Ext.ux.plugin");Ext.onReady(function(){var a=Ext.util.CSS;if(a){a.getRule(".x-hide-nosize")||a.createStyleSheet(".x-hide-nosize{height:0px!important;width:0px!important;border:none!important;zoom:1;}.x-hide-nosize * {height:0px!important;width:0px!important;border:none!important;zoom:1;}");a.refreshCache()}});(function(){var g=Ext.Element,b=Ext.lib.Anim,a=g.prototype;var f="visibility",d="display",c="hidden",i="none";var e={};e.El={setDisplayed:function(k){var j=this;j.visibilityCls?(j[k!==false?"removeClass":"addClass"](j.visibilityCls)):a.setDisplayed.call(j,k);return j},isDisplayed:function(){return !(this.hasClass(this.visibilityCls)||this.isStyle(d,i))},fixDisplay:function(){var j=this;a.fixDisplay.call(j);j.visibilityCls&&j.removeClass(j.visibilityCls)},isVisible:function(k){var l=this.visible||(!this.isStyle(f,c)&&(this.visibilityCls?!this.hasClass(this.visibilityCls):!this.isStyle(d,i)));if(k!==true||!l){return l}var m=this.dom.parentNode,j=/^body/i;while(m&&!j.test(m.tagName)){if(!Ext.fly(m,"_isVisible").isVisible()){return false}m=m.parentNode}return true},isStyle:a.isStyle||function(j,k){return this.getStyle(j)==k}};Ext.override(g.Flyweight,e.El);Ext.ux.plugin.VisibilityMode=function(k){Ext.apply(this,k||{});var j=Ext.util.CSS;if(j&&!Ext.isIE&&this.fixMaximizedWindow!==false&&!Ext.ux.plugin.VisibilityMode.MaxWinFixed){j.updateRule(".x-window-maximized-ct","overflow","");Ext.ux.plugin.VisibilityMode.MaxWinFixed=true}};Ext.extend(Ext.ux.plugin.VisibilityMode,Object,{bubble:true,fixMaximizedWindow:true,elements:null,visibilityCls:"x-hide-nosize",hideMode:"nosize",ptype:"uxvismode",init:function(n){var k=this.hideMode||n.hideMode,m=this,j=Ext.Container.prototype.bubble,l=function(){var q=[this.collapseEl,this.actionMode].concat(m.elements||[]);Ext.each(q,function(r){m.extend(this[r]||r)},this);var p={visFixed:true,animCollapse:false,animFloat:false,hideMode:k,defaults:this.defaults||{}};p.defaults.hideMode=k;Ext.apply(this,p);Ext.apply(this.initialConfig||{},p)};n.on("render",function(){if(m.bubble!==false&&this.ownerCt){j.call(this.ownerCt,function(){this.visFixed||this.on("afterlayout",l,this,{single:true})})}l.call(this)},n,{single:true})},extend:function(j,k){j&&Ext.each([].concat(j),function(l){if(l&&l.dom){if("visibilityCls" in l){return}Ext.apply(l,e.El);l.visibilityCls=k||this.visibilityCls}},this);return this}});Ext.preg&&Ext.preg("uxvismode",Ext.ux.plugin.VisibilityMode);Ext.provide&&Ext.provide("uxvismode")})();(function(){var J=Ext.Element,n,u=Ext.lib.Dom,al=Ext.lib.Anim,m=Ext.EventManager,aj=Ext.lib.Event,an=document,t=function(){},ap=Object.prototype,aA=ap.toString,B=/^body/i,q="[object HTMLDocument]";if(!Ext.elCache||parseInt(Ext.version.replace(/\./g,""),10)<311){alert("Ext Release "+Ext.version+" is not supported")}Ext._documents={};Ext._documents[Ext.id(document,"_doc")]=Ext.elCache;var T=u.resolveDocumentCache=function(E,aF){Ext._documents[Ext.id(document,"_doc")]=Ext.elCache;var aE=e(E),aG=Ext.isDocument(aE)?Ext.id(aE):aF,A=Ext._documents[aG]||null;return A||(aG?Ext._documents[aG]={}:null)},aD=u.clearDocumentCache=function(A){delete Ext._documents[A]};J.addMethods||(J.addMethods=function(A){Ext.apply(J.prototype,A||{})});Ext.removeNode=function(aH){var aG=aH?aH.dom||aH:null,aE,aF,A=T(aG),E;if(aG&&(aF=A[aG.id])&&(aE=aF.el)){if(aE.dom){Ext.enableNestedListenerRemoval?m.purgeElement(aE.dom,true):m.removeAll(aE.dom)}delete A[aG.id];delete aE.dom;delete aE._context;aE=null}if(aG&&!aG.navigator&&!Ext.isDocument(aG)&&!B.test(aG.tagName)){(E=aG.parentElement||aG.parentNode)&&E.removeChild(aG)}aG=E=null};var f=function(aI,aG){var aH=typeof aI==="function"?aI:function aF(){};var aE=aH._ovl;if(!aE){aE={base:aH};aE[aH.length||0]=aH;aH=function aF(){var aL=arguments.callee._ovl;var aK=aL[arguments.length]||aL.base;return aK&&aK!=arguments.callee?aK.apply(this,arguments):undefined}}var aJ=[].concat(aG);for(var E=0,A=aJ.length;E<A;++E){aE[aJ[E].length]=aJ[E]}aH._ovl=aE;var aF=null;return aH};Ext.applyIf(Ext,{overload:f(f,[function(A){return f(null,A)},function(aE,E,A){return aE[E]=f(aE[E],A)}]),isArray:function(A){return !!A&&aA.apply(A)=="[object Array]"},isObject:function(A){return !!A&&typeof A=="object"},isDocument:function(E,A){var aG=E?E.dom||E:null;var aF=aG&&((aA.apply(aG)==q)||(aG&&aG.nodeType==9));if(aF&&A){try{aF=!!aG.location}catch(aE){return false}}return aF},isWindow:function(A){var E=A?A.dom||A:null;return E?!!E.navigator||aA.apply(E)=="[object Window]":false},isIterable:function(A){if(Ext.isArray(A)||A.callee){return true}if(/NodeList|HTMLCollection/.test(aA.call(A))){return true}return((typeof A.nextNode!="undefined"||A.item)&&Ext.isNumber(A.length))},isElement:function(A){return A&&Ext.type(A)=="element"},isEvent:function(A){return aA.apply(A)=="[object Event]"||(Ext.isObject(A)&&!Ext.type(o.constructor)&&(window.event&&A.clientX&&A.clientX==window.event.clientX))},isFunction:function(A){return !!A&&typeof A=="function"},isEventSupported:function(aF,aG){var aE={select:"input",change:"input",submit:"form",reset:"form",load:"img",error:"img",abort:"img"},A={},aH=/^on/i,E=function(aK,aJ){var aI=Ext.getDom(aJ);return(aI?(Ext.isElement(aI)||Ext.isDocument(aI)?aI.nodeName.toLowerCase():aJ.self?"#window":aJ||"#object"):aJ||"div")+":"+aK};return function(aM,aO){aM=(aM||"").replace(aH,"");var aN,aL=false;var aJ="on"+aM;var aI=(aO?aO:aE[aM])||"div";var aK=E(aM,aI);if(aK in A){return A[aK]}aN=Ext.isString(aI)?an.createElement(aI):aO;aL=(!!aN&&(aJ in aN));aL||(aL=window.Event&&!!(String(aM).toUpperCase() in window.Event));if(!aL&&aN){aN.setAttribute&&aN.setAttribute(aJ,"return;");aL=Ext.isFunction(aN[aJ])}A[aK]=aL;aN=null;return aL}}()});var ao=function(A){return J;return J[(A.tagName||"-").toUpperCase()]||J};var H;function ai(A,E){if(!H){H=new Ext.Element.Flyweight()}H.dom=Ext.getDom(A,null,E);return H}Ext.apply(Ext,{get:J.get=function(aF,aK){if(!aF){return null}var aJ=Ext.isDocument(aF);Ext.isDocument(aK)||(aK=an);var aI,aH,E,A=T(aK);if(typeof aF=="string"){aH=Ext.getDom(aF,null,aK);if(!aH){return null}if(A[aF]&&A[aF].el){aI=A[aF].el;aI.dom=aH}else{aI=J.addToCache(new (ao(aH))(aH,null,aK))}return aI}else{if(aJ){if(!Ext.isDocument(aF,true)){return false}A=T(aF);if(A[Ext.id(aF)]&&A[aF.id].el){return A[aF.id].el}var aG=function(){};aG.prototype=J.prototype;var aE=new aG();aE.dom=aF;aE.id=Ext.id(aF,"_doc");aE._isDoc=true;J.addToCache(aE,null,A);return aE}else{if(aF instanceof J){if(aF.dom){aF.id=Ext.id(aF.dom)}else{aF.dom=aF.id?Ext.getDom(aF.id,true):null}if(aF.dom){A=T(aF);(A[aF.id]||(A[aF.id]={data:{},events:{}})).el=aF}return aF}else{if(aF.tagName||Ext.isWindow(aF)){A=T(aF);E=Ext.id(aF);if(A[E]&&(aI=A[E].el)){aI.dom=aF}else{aI=J.addToCache(new (ao(aF))(aF,null,aK),null,A)}return aI}else{if(aF.isComposite){return aF}else{if(Ext.isArray(aF)){return Ext.get(aK,aK).select(aF)}}}}}}return null},getDom:function(E,A,aG){var aF=aG||an;if(!E||!aF){return null}if(E.dom){return E.dom}else{if(Ext.isString(E)){var aE=aF.getElementById(E);if(aE&&Ext.isIE&&A){if(E==aE.getAttribute("id")){return aE}else{return null}}return aE}else{return E}}},getBody:function(E){var A=u.getDocument(E)||an;return Ext.get(A.body||A.documentElement)},getDoc:Ext.overload([Ext.getDoc,function(A){return Ext.get(A,A)}])});J.data=function(E,A,aE){E=J.get(E);if(!E){return null}var aF=T(E)[E.id].data;if(arguments.length==2){return aF[A]}else{return(aF[A]=aE)}};J.addToCache=function(E,aG,A){aG=aG||Ext.id(E);var aF=A||T(E);aF[aG]={el:E.dom?E:Ext.get(E),data:{},events:{}};var aE=aF[aG].el.dom;(aE.getElementById||aE.navigator)&&(aF[aG].skipGC=true);return aF[aG].el};J.removeFromCache=function(E,A){if(E&&E.id){var aE=A||T(E);delete aE[E.id]}};J.OFFSETS=3;J.ASCLASS=4;J.visibilityCls="x-hide-nosize";var ar={},L=/(-[a-z])/gi,G=function(A,E){return E.charAt(1).toUpperCase()},i=/alpha\(opacity=(.*)\)/i,l=/^\s+|\s+$/g,ay=/marginRight/,C=Ext.isIE?"styleFloat":"cssFloat",at=an.defaultView,ac="visibilityMode",av="asclass",M="originalDisplay",ad="padding",Q="margin",aw="border",c="-left",j="-right",p="-top",au="-bottom",P="-width",az=Math,Y="opacity",X="visibility",K="display",ag="offsets",z="nosize",av="asclass",ae="hidden",Z="none",W="isVisible",v="isClipped",d="overflow",S="overflow-x",R="overflow-y",D="originalClip",O="x-masked",F="x-masked-relative",ah={l:aw+c+P,r:aw+j+P,t:aw+p+P,b:aw+au+P},am={l:ad+c,r:ad+j,t:ad+p,b:ad+au},r={l:Q+c,r:Q+j,t:Q+p,b:Q+au},I=J.data,aB=Ext.getDom,s=Ext.get,af=Ext.DomHelper,aa=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,aC=Ext.util.CSS,ak=function(E){var A=I(E,M);if(A===undefined){I(E,M,A="")}return A},k=function(E){var A=I(E,ac);if(A===undefined){I(E,ac,A=J.prototype.visibilityMode)}return A};function aq(A){return ar[A]||(ar[A]=A=="float"?C:A.replace(L,G))}J.addMethods({getDocument:function(){return this._context||(this._context=e(this))},remove:function(E,A){var aE=this.dom;if(aE){Ext.removeNode(aE);delete this._context;delete this.dom}},appendChild:function(A,E){return s(A,E||this.getDocument()).appendTo(this)},appendTo:function(A,E){aB(A,false,E||this.getDocument()).appendChild(this.dom);return this},insertBefore:function(A,E){(A=aB(A,false,E||this.getDocument())).parentNode.insertBefore(this.dom,A);return this},insertAfter:function(A,E){(A=aB(A,false,E||this.getDocument())).parentNode.insertBefore(this.dom,A.nextSibling);return this},insertFirst:function(E,A){E=E||{};if(E.nodeType||E.dom||typeof E=="string"){E=aB(E);this.dom.insertBefore(E,this.dom.firstChild);return !A?s(E):E}else{return this.createChild(E,this.dom.firstChild,A)}},replace:function(A,E){A=s(A,E||this.getDocument());this.insertBefore(A);A.remove();return this},replaceWith:function(A,aE){var E=this;if(A.nodeType||A.dom||typeof A=="string"){A=aB(A,false,aE||E.getDocument());E.dom.parentNode.insertBefore(A,E.dom)}else{A=af.insertBefore(E.dom,A)}var aF=T(E);Ext.removeNode(E.dom);E.id=Ext.id(E.dom=A);J.addToCache(E.isFlyweight?new (ao(E.dom))(E.dom,null,aF):E);return E},insertHtml:function(E,aE,A){var aF=af.insertHtml(E,this.dom,aE);return A?Ext.get(aF,e(aF)):aF},isVisible:function(A){var E=this,aG=E.dom,aE=aG.parentNode,aF=I(aG,W);if(typeof aF!="boolean"){aF=!E.hasClass(E.visibilityCls||J.visibilityCls)&&!E.isStyle(X,ae)&&!E.isStyle(K,Z);I(aG,W,aF)}if(A!==true||!aF){return aF}while(aE&&!B.test(aE.tagName)){if(!Ext.fly(aE,"_isVisible").isVisible()){return false}aE=aE.parentNode}return true},setVisible:function(aG,A){var aE=this,aF=aE.dom,E=k(aF);if(typeof A=="string"){switch(A){case K:E=J.DISPLAY;break;case X:E=J.VISIBILITY;break;case ag:E=J.OFFSETS;break;case z:case av:E=J.ASCLASS;break}aE.setVisibilityMode(E);A=false}if(!A||!aE.anim){if(E==J.ASCLASS){aE[aG?"removeClass":"addClass"](aE.visibilityCls||J.visibilityCls)}else{if(E==J.DISPLAY){return aE.setDisplayed(aG)}else{if(E==J.OFFSETS){if(!aG){aE.hideModeStyles={position:aE.getStyle("position"),top:aE.getStyle("top"),left:aE.getStyle("left")};aE.applyStyles({position:"absolute",top:"-10000px",left:"-10000px"})}else{aE.applyStyles(aE.hideModeStyles||{position:"",top:"",left:""});delete aE.hideModeStyles}}else{aE.fixDisplay();aF.style.visibility=aG?"visible":ae}}}}else{if(aG){aE.setOpacity(0.01);aE.setVisible(true)}aE.anim({opacity:{to:(aG?1:0)}},aE.preanim(arguments,1),null,0.35,"easeIn",function(){aG||aE.setVisible(false).setOpacity(1)})}I(aF,W,aG);return aE},hasMetrics:function(){var A=this;return A.isVisible()||(k(A.dom)==J.VISIBILITY)},setDisplayed:function(E){var aE=this.dom,A=k(aE);if(typeof E=="boolean"){if(A==J.ASCLASS){return this.setVisible(E)}I(this.dom,W,E);E=E?ak(aE):Z}this.setStyle(K,E);return this},enableDisplayMode:function(A){this.setVisibilityMode(J.DISPLAY);if(!Ext.isEmpty(A)){I(this.dom,M,A)}return this},scrollIntoView:function(aE,aH){var aM=this.getDocument(),aN=Ext.getDom(aE,null,aM)||Ext.getBody(aM).dom,aG=this.dom,aF=this.getOffsetsTo(aN),aJ=aF[0]+aN.scrollLeft,aQ=aF[1]+aN.scrollTop,aO=aQ+aG.offsetHeight,E=aJ+aG.offsetWidth,A=aN.clientHeight,aK=parseInt(aN.scrollTop,10),aP=parseInt(aN.scrollLeft,10),aI=aK+A,aL=aP+aN.clientWidth;if(aG.offsetHeight>A||aQ<aK){aN.scrollTop=aQ}else{if(aO>aI){aN.scrollTop=aO-A}}aN.scrollTop=aN.scrollTop;if(aH!==false){if(aG.offsetWidth>aN.clientWidth||aJ<aP){aN.scrollLeft=aJ}else{if(E>aL){aN.scrollLeft=E-aN.clientWidth}}aN.scrollLeft=aN.scrollLeft}return this},contains:function(A){try{return !A?false:u.isAncestor(this.dom,A.dom?A.dom:A)}catch(E){return false}},getScroll:function(){var aI=this.dom,aH=this.getDocument(),A=aH.body,aE=aH.documentElement,E,aG,aF;if(Ext.isDocument(aI)||aI==A){if(Ext.isIE&&u.docIsStrict(aH)){E=aE.scrollLeft;aG=aE.scrollTop}else{E=window.pageXOffset;aG=window.pageYOffset}aF={left:E||(A?A.scrollLeft:0),top:aG||(A?A.scrollTop:0)}}else{aF={left:aI.scrollLeft,top:aI.scrollTop}}return aF},getStyle:function(){var A=at&&at.getComputedStyle?function E(aL){var aI=!this._isDoc?this.dom:null,aE,aH,aF,aJ,aK=Ext.isWebKit,aJ,aG;if(!aI||!aI.style){return null}aG=aI.style;aL=aq(aL);aH=at.getComputedStyle(aI,null);aF=(aH)?aH[aL]:null;if(aK){if(aF&&ay.test(aL)&&aG.position!="absolute"&&aF!="0px"){aJ=aG.display;aG.display="inline-block";aF=at.getComputedStyle(aI,null)[aL];aG.display=aJ}else{if(aF=="rgba(0, 0, 0, 0)"){aF="transparent"}}}return aF||aG[aL]}:function E(aJ){var aH=!this._isDoc?this.dom:null,aE,aG,aF;if(!aH||!aH.style){return null}aF=aH.style;if(aJ==Y){if(aF.filter.match){if(aE=aF.filter.match(i)){var aI=parseFloat(aE[1]);if(!isNaN(aI)){return aI?aI/100:0}}}return 1}aJ=aq(aJ);return((aG=aH.currentStyle)?aG[aJ]:null)||aH.style[aJ]};var E=null;return A}(),setStyle:function(aF,aE){if(this._isDoc||Ext.isDocument(this.dom)){return this}var A,E;if(typeof aF!="object"){A={};A[aF]=aE;aF=A}for(E in aF){if(aF.hasOwnProperty(E)){aE=aF[E];E==Y?this.setOpacity(aE):this.dom.style[aq(E)]=aE}}return this},center:function(A){return this.alignTo(A||this.getDocument(),"c-c")},mask:function(E,aH){var aJ=this,aF=aJ.dom,aI=Ext.DomHelper,aG="ext-el-mask-msg",A,aK;if(aJ.getStyle("position")=="static"){aJ.addClass(F)}if((A=I(aF,"maskMsg"))){A.remove()}if((A=I(aF,"mask"))){A.remove()}aK=aI.append(aF,{cls:"ext-el-mask"},true);I(aF,"mask",aK);aJ.addClass(O);aK.setDisplayed(true);if(typeof E=="string"){var aE=aI.append(aF,{cls:aG,cn:{tag:"div"}},true);I(aF,"maskMsg",aE);aE.dom.className=aH?aG+" "+aH:aG;aE.dom.firstChild.innerHTML=E;aE.setDisplayed(true);aE.center(aJ)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&aJ.getStyle("height")=="auto"){aK.setSize(undefined,aJ.getHeight())}return aK},unmask:function(){var aE=this,aF=aE.dom,A=I(aF,"mask"),E=I(aF,"maskMsg");if(A){if(E){E.remove();I(aF,"maskMsg",undefined)}A.remove();I(aF,"mask",undefined)}aE.removeClass([O,F])},isMasked:function(){var A=I(this.dom,"mask");return A&&A.isVisible()},getCenterXY:function(){return this.getAlignToXY(this.getDocument(),"c-c")},getAnchorXY:function(aG,aL,aQ){aG=(aG||"tl").toLowerCase();aQ=aQ||{};var aK=this,aN=this.getDocument(),E=aK.dom==aN.body||aK.dom==aN,aO=aQ.width||E?u.getViewWidth(false,aN):aK.getWidth(),aI=aQ.height||E?u.getViewHeight(false,aN):aK.getHeight(),aP,A=Math.round,aE=aK.getXY(),aM=aK.getScroll(),aJ=E?aM.left:!aL?aE[0]:0,aH=E?aM.top:!aL?aE[1]:0,aF={c:[A(aO*0.5),A(aI*0.5)],t:[A(aO*0.5),0],l:[0,A(aI*0.5)],r:[aO,A(aI*0.5)],b:[A(aO*0.5),aI],tl:[0,0],bl:[0,aI],br:[aO,aI],tr:[aO,0]};aP=aF[aG];return[aP[0]+aJ,aP[1]+aH]},anchorTo:function(E,aH,aE,A,aJ,aK){var aI=this,aG=aI.dom;function aF(){ai(aG).alignTo(E,aH,aE,A);Ext.callback(aK,ai(aG))}Ext.EventManager.onWindowResize(aF,aI);if(!Ext.isEmpty(aJ)){Ext.EventManager.on(window,"scroll",aF,aI,{buffer:!isNaN(aJ)?aJ:50})}aF.call(aI);return aI},getScroll:function(){var aI=this.dom,aH=this.getDocument(),A=aH.body,aE=aH.documentElement,E,aG,aF;if(aI==aH||aI==A){if(Ext.isIE&&u.docIsStrict(aH)){E=aE.scrollLeft;aG=aE.scrollTop}else{E=window.pageXOffset;aG=window.pageYOffset}aF={left:E||(A?A.scrollLeft:0),top:aG||(A?A.scrollTop:0)}}else{aF={left:aI.scrollLeft,top:aI.scrollTop}}return aF},getAlignToXY:function(aF,aR,aS){var a6;aF=Ext.get(aF,a6=this.getDocument());if(!aF||!aF.dom){throw"Element.getAlignToXY with an element that doesn't exist"}aS=aS||[0,0];aR=(aR=="?"?"tl-bl?":(!/-/.test(aR)&&aR!=""?"tl-"+aR:aR||"tl-bl")).toLowerCase();var a3=this,aY=a3.dom,a5,a4,aK,aJ,aM,aW,aP,aN=u.getViewWidth(false,a6)-10,aX=u.getViewHeight(false,a6)-10,E,aG,aH,aI,aO,aQ,a0=a6.documentElement,aL=a6.body,aV=(a0.scrollLeft||aL.scrollLeft||0)+5,aU=(a0.scrollTop||aL.scrollTop||0)+5,aZ=false,aE="",A="",aT=aR.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!aT){throw"Element.getAlignToXY with an invalid alignment "+aR}aE=aT[1];A=aT[2];aZ=!!aT[3];a5=a3.getAnchorXY(aE,true);a4=aF.getAnchorXY(A,false);aK=a4[0]-a5[0]+aS[0];aJ=a4[1]-a5[1]+aS[1];if(aZ){aM=a3.getWidth();aW=a3.getHeight();aP=aF.getRegion();E=aE.charAt(0);aG=aE.charAt(aE.length-1);aH=A.charAt(0);aI=A.charAt(A.length-1);aO=((E=="t"&&aH=="b")||(E=="b"&&aH=="t"));aQ=((aG=="r"&&aI=="l")||(aG=="l"&&aI=="r"));if(aK+aM>aN+aV){aK=aQ?aP.left-aM:aN+aV-aM}if(aK<aV){aK=aQ?aP.right:aV}if(aJ+aW>aX+aU){aJ=aO?aP.top-aW:aX+aU-aW}if(aJ<aU){aJ=aO?aP.bottom:aU}}return[aK,aJ]},adjustForConstraints:function(aE,A,E){return this.getConstrainToXY(A||this.getDocument(),false,E,aE)||aE},getConstrainToXY:function(E,A,aE,aG){var aF={top:0,left:0,bottom:0,right:0};return function(aI,aQ,aJ,aH){var aS=this.getDocument();aI=Ext.get(aI,aS);aJ=aJ?Ext.applyIf(aJ,aF):aF;var aR,aK,aP=0,aN=0;if(aI.dom==aS.body||aI.dom==aS){aR=u.getViewWidth(false,aS);aK=u.getViewHeight(false,aS)}else{aR=aI.dom.clientWidth;aK=aI.dom.clientHeight;if(!aQ){var aL=aI.getXY();aP=aL[0];aN=aL[1]}}var aV=aI.getScroll();aP+=aJ.left+aV.left;aN+=aJ.top+aV.top;aR-=aJ.right;aK-=aJ.bottom;var aU=aP+aR,aM=aN+aK,aT=aH||(!aQ?this.getXY():[this.getLeft(true),this.getTop(true)]);x=aT[0],y=aT[1],offset=this.getConstrainOffset(),w=this.dom.offsetWidth+offset,h=this.dom.offsetHeight+offset;var aO=false;if((x+w)>aU){x=aU-w;aO=true}if((y+h)>aM){y=aM-h;aO=true}if(x<aP){x=aP;aO=true}if(y<aN){y=aN;aO=true}return aO?[x,y]:false}}(),getConstrainOffset:function(){return 0},getCenterXY:function(){return this.getAlignToXY(Ext.getBody(this.getDocument()),"c-c")},center:function(A){return this.alignTo(A||Ext.getBody(this.getDocument()),"c-c")},findParent:function(aJ,aI,E){var aG=this.dom,aF=this.getDocument(),A=aF.body,aH=0,aE;if(Ext.isGecko&&aA.call(aG)=="[object XULElement]"){return null}aI=aI||50;if(isNaN(aI)){aE=Ext.getDom(aI,null,aF);aI=Number.MAX_VALUE}while(aG&&aG.nodeType==1&&aH<aI&&aG!=A&&aG!=aE){if(Ext.DomQuery.is(aG,aJ)){return E?Ext.get(aG,aF):aG}aH++;aG=aG.parentNode}return null},clip:function(){var A=this,E=A.dom;if(!I(E,v)){I(E,v,true);I(E,D,{o:A.getStyle(d),x:A.getStyle(S),y:A.getStyle(R)});A.setStyle(d,ae);A.setStyle(S,ae);A.setStyle(R,ae)}return A},unclip:function(){var A=this,aE=A.dom;if(I(aE,v)){I(aE,v,false);var E=I(aE,D);if(E.o){A.setStyle(d,E.o)}if(E.x){A.setStyle(S,E.x)}if(E.y){A.setStyle(R,E.y)}}return A},getViewSize:function(){var aE=this.getDocument(),aF=this.dom,A=(aF==aE||aF==aE.body);if(A){var E=Ext.lib.Dom;return{width:E.getViewWidth(),height:E.getViewHeight()}}else{return{width:aF.clientWidth,height:aF.clientHeight}}},getStyleSize:function(){var aG=this,A,aF,aI=this.getDocument(),aJ=this.dom,E=(aJ==aI||aJ==aI.body),aE=aJ.style;if(E){var aH=Ext.lib.Dom;return{width:aH.getViewWidth(),height:aH.getViewHeight()}}if(aE.width&&aE.width!="auto"){A=parseFloat(aE.width);if(aG.isBorderBox()){A-=aG.getFrameWidth("lr")}}if(aE.height&&aE.height!="auto"){aF=parseFloat(aE.height);if(aG.isBorderBox()){aF-=aG.getFrameWidth("tb")}}return{width:A||aG.getWidth(true),height:aF||aG.getHeight(true)}}});Ext.apply(u,{getDocument:function(aE,aF){var aG=null;try{aG=Ext.getDom(aE,null,null)}catch(E){}var A=Ext.isDocument(aG);if(A){if(aF){return Ext.isDocument(aG,aF)?aG:null}return aG}return aG?aG.ownerDocument||aG.document:null},docIsStrict:function(A){return(Ext.isDocument(A)?A:this.getDocument(A)).compatMode=="CSS1Compat"},getViewWidth:Ext.overload([u.getViewWidth||function(A){},function(){return this.getViewWidth(false)},function(A,E){return A?this.getDocumentWidth(E):this.getViewportWidth(E)}]),getViewHeight:Ext.overload([u.getViewHeight||function(A){},function(){return this.getViewHeight(false)},function(A,E){return A?this.getDocumentHeight(E):this.getViewportHeight(E)}]),getDocumentHeight:Ext.overload([u.getDocumentHeight||t,function(A){if(A=this.getDocument(A)){return Math.max(!this.docIsStrict(A)?A.body.scrollHeight:A.documentElement.scrollHeight,this.getViewportHeight(A))}return undefined}]),getDocumentWidth:Ext.overload([u.getDocumentWidth||t,function(A){if(A=this.getDocument(A)){return Math.max(!this.docIsStrict(A)?A.body.scrollWidth:A.documentElement.scrollWidth,this.getViewportWidth(A))}return undefined}]),getViewportHeight:Ext.overload([u.getViewportHeight||t,function(A){if(A=this.getDocument(A)){if(Ext.isIE){return this.docIsStrict(A)?A.documentElement.clientHeight:A.body.clientHeight}else{return A.defaultView.innerHeight}}return undefined}]),getViewportWidth:Ext.overload([u.getViewportWidth||t,function(A){if(A=this.getDocument(A)){return !this.docIsStrict(A)&&!Ext.isOpera?A.body.clientWidth:Ext.isIE?A.documentElement.clientWidth:A.defaultView.innerWidth}return undefined}]),getXY:Ext.overload([u.getXY||t,function(A,aF){if(typeof A=="string"){A=Ext.getDom(A,null,aF);var aE=this.getDocument(A),E=aE?(aE.body||aE.documentElement):null;if(!A||!E||A==E){return[0,0]}}return this.getXY(A)}])});var e=u.getDocument,N=J._flyweights;Ext.fly=J.fly=function(aE,A,aF){var E=null;A=A||"_global";if(aE=Ext.getDom(aE,null,aF)){(E=N[A]=(N[A]||new J.Flyweight())).dom=aE;Ext.isDocument(aE)&&(E._isDoc=true)}return E};var ax=function(){};ax.prototype=J.prototype;J.Flyweight=function(A){this.dom=A};J.Flyweight.prototype=new ax();J.Flyweight.prototype.isFlyweight=true;function b(aF,aH,aK,aG,aE,aM){aF=Ext.getDom(aF);if(!aF){return}var E=Ext.id(aF),A=T(aF);A[E]||J.addToCache(aF,E,A);var aL=A[E].events||{},aI;aI=aj.on(aF,aH,aE);aL[aH]=aL[aH]||[];aL[aH].push([aK,aE,aM,aI,aG]);if(aF.addEventListener&&aH=="mousewheel"){var aJ=["DOMMouseScroll",aE,false];aF.addEventListener.apply(aF,aJ);Ext.EventManager.addListener(window,"beforeunload",function(){aF.removeEventListener.apply(aF,aJ)})}if(aH=="mousedown"&&an==aF){Ext.EventManager.stoppedMouseDownEvent.addListener(aE)}}function g(A,E){return function(){var aE=Ext.toArray(arguments);if(E.target==Ext.EventObject.setEvent(aE[0]).target){A.apply(this,aE)}}}function ab(E,aE,A){return function(aF){A.delay(aE.buffer,E,null,[new Ext.EventObjectImpl(aF)])}}function V(aG,aF,A,aE,E){return function(aH){Ext.EventManager.removeListener(aF,A,aE,E);aG(aH)}}function a(E,aE,A){return function(aG){var aF=new Ext.util.DelayedTask(E);(A.tasks||(A.tasks=[])).push(aF);aF.delay(aE.delay||10,E,null,[new Ext.EventObjectImpl(aG)])}}function U(aH,aG,A,aJ,aK){var E=!Ext.isObject(A)?{}:A,aE=Ext.getDom(aH),aF;aJ=aJ||E.fn;aK=aK||E.scope;if(!aE){throw'Error listening for "'+aG+'". Element "'+aH+"\" doesn't exist."}function aI(aM){if(!window.Ext){return}aM=Ext.EventObject.setEvent(aM);var aL;if(E.delegate){if(!(aL=aM.getTarget(E.delegate,aE))){return}}else{aL=aM.target}if(E.stopEvent){aM.stopEvent()}if(E.preventDefault){aM.preventDefault()}if(E.stopPropagation){aM.stopPropagation()}if(E.normalized){aM=aM.browserEvent}aJ.call(aK||aE,aM,aL,E)}if(E.target){aI=g(aI,E)}if(E.delay){aI=a(aI,E,aJ)}if(E.single){aI=V(aI,aE,aG,aJ,aK)}if(E.buffer){aF=new Ext.util.DelayedTask(aI);aI=ab(aI,E,aF)}b(aE,aG,aJ,aF,aI,aK);return aI}Ext.apply(m,{addListener:m.on=function(aE,A,aG,aF,E){if(typeof A=="object"){var aJ=A,aH,aI;for(aH in aJ){if(!aJ.hasOwnProperty(aH)){continue}aI=aJ[aH];if(!aa.test(aH)){if(Ext.isFunction(aI)){U(aE,aH,aJ,aI,aJ.scope)}else{U(aE,aH,aI)}}}}else{U(aE,A,E,aG,aF)}},removeListener:m.un=function(aH,aI,aM,aP){var E=Ext.getDom(aH);E&&Ext.get(E);var aN=E?T(E):{},aK=E&&((aN[E.id]||{events:{}}).events)[aI]||[],A,aG,aE,aF,aJ,aL,aO;for(aG=0,aJ=aK.length;aG<aJ;aG++){if(Ext.isArray(aL=aK[aG])&&aL[0]==aM&&(!aP||aL[2]==aP)){aL[4]&&aL[4].cancel();aF=aM.tasks&&aM.tasks.length;if(aF){while(aF--){aM.tasks[aF].cancel()}delete aM.tasks}A=aL[1];aj.un(E,aI,aj.extAdapter?aL[3]:A);if(A&&aI=="mousewheel"&&E.addEventListener){E.removeEventListener("DOMMouseScroll",A,false)}if(A&&aI=="mousedown"&&an==E){Ext.EventManager.stoppedMouseDownEvent.removeListener(A)}aK.splice(aG,1);if(aK.length===0){delete aN[E.id].events[aI]}aO=aN[E.id].events;for(aF in aO){if(aO.hasOwnProperty(aF)){return false}}aN[E.id].events={};return false}}},removeAll:function(aE){if(!(aE=Ext.getDom(aE))){return}var E=aE.id,aM=T(aE)||{},aN=aM[E]||{},aL=aN.events||{},aI,aH,aJ,aF,aK,aG,A;for(aF in aL){if(aL.hasOwnProperty(aF)){aI=aL[aF];for(aH=0,aJ=aI.length;aH<aJ;aH++){aK=aI[aH];aK[4]&&aK[4].cancel();if(aK[0]&&aK[0].tasks&&(aG=aK[0].tasks.length)){while(aG--){aK[0].tasks[aG].cancel()}delete aK.tasks}A=aK[1];aj.un(aE,aF,aj.extAdapter?aK[3]:A);if(A&&aE.addEventListener&&aF=="mousewheel"){aE.removeEventListener("DOMMouseScroll",A,false)}if(A&&(an==aE)&&aF=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.removeListener(A)}}}}aM[E]&&(aM[E].events={})},getListeners:function(aE,E){aE=Ext.getDom(aE);if(!aE){return}var aG=(Ext.get(aE)||{}).id,A=T(aE),aF=(A[aG]||{}).events||{};return aF[E]||null},purgeElement:function(aE,A,aG){aE=Ext.getDom(aE);var E=Ext.id(aE),aJ=T(aE),aK=(aJ[E]||{}).events||{},aF,aI,aH;if(aG){if(aK.hasOwnProperty(aG)){aI=aK[aG];for(aF=0,aH=aI.length;aF<aH;aF++){m.removeListener(aE,aG,aI[aF][0])}}}else{m.removeAll(aE)}if(A&&aE&&aE.childNodes){for(aF=0,aH=aE.childNodes.length;aF<aH;aF++){m.purgeElement(aE.childNodes[aF],A,aG)}}}});aj.getListeners=function(E,A){return Ext.EventManager.getListeners(E,A)};Ext.provide&&Ext.provide("multidom")})();(function(){var El=Ext.Element,ElFrame,ELD=Ext.lib.Dom,EMPTYFN=function(){},OP=Object.prototype,addListener=function(){var handler;if(window.addEventListener){handler=function F(el,eventName,fn,capture){el.addEventListener(eventName,fn,!!capture)}}else{if(window.attachEvent){handler=function F(el,eventName,fn,capture){el.attachEvent("on"+eventName,fn)}}else{handler=function F(){}}}var F=null;return handler}(),removeListener=function(){var handler;if(window.removeEventListener){handler=function F(el,eventName,fn,capture){el.removeEventListener(eventName,fn,(capture))}}else{if(window.detachEvent){handler=function F(el,eventName,fn){el.detachEvent("on"+eventName,fn)}}else{handler=function F(){}}}var F=null;return handler}();if(typeof ELD.getDocument!="function"){alert("MIF 2.1.4 requires multidom support")}if(!Ext.elCache||parseInt(Ext.version.replace(/\./g,""),10)<311){alert("Ext Release "+Ext.version+" is not supported")}Ext.ns("Ext.ux.ManagedIFrame","Ext.ux.plugin");var MIM,MIF=Ext.ux.ManagedIFrame,MIFC;var frameEvents=["documentloaded","domready","focus","blur","resize","scroll","unload","scroll","exception","message","reset"];var reSynthEvents=new RegExp("^("+frameEvents.join("|")+")","i");Ext.ux.ManagedIFrame.Element=Ext.extend(Ext.Element,{constructor:function(element,forceNew,doc){var d=doc||document,elCache=ELD.resolveDocumentCache(d),dom=Ext.getDom(element,false,d);if(!dom||!(/^(iframe|frame)/i).test(dom.tagName)){return null}var id=Ext.id(dom);this.dom=dom;this.id=id;(elCache[id]||(elCache[id]={el:this,events:{},data:{}})).el=this;this.dom.name||(this.dom.name=this.id);if(Ext.isIE){document.frames&&(document.frames[this.dom.name]||(document.frames[this.dom.name]=this.dom))}this.dom.ownerCt=this;MIM.register(this);if(!this._observable){(this._observable=new Ext.util.Observable()).addEvents("documentloaded","domready","exception","resize","message","blur","focus","unload","scroll","reset");this._observable.addEvents("_docready","_docload")}this.on(Ext.isIE?"readystatechange":"load",this.loadHandler,this,Ext.isOpera?{buffer:this.operaLoadBuffer||2000}:null);this.on("error",this.loadHandler,this)},destructor:function(){MIM.deRegister(this);this.removeAllListeners();Ext.destroy(this.frameShim,this.DDM);this.hideMask(true);delete this.loadMask;this.reset();this.manager=null;this.dom.ownerCt=null},cleanse:function(forceReclean,deep){if(this.isCleansed&&forceReclean!==true){return this}var d=this.dom,n=d.firstChild,nx;while(d&&n){nx=n.nextSibling;deep&&Ext.fly(n).cleanse(forceReclean,deep);Ext.removeNode(n);n=nx}this.isCleansed=true;return this},src:null,CSS:null,manager:null,operaLoadBuffer:2000,disableMessaging:true,domReadyRetries:7500,focusOnLoad:Ext.isIE,eventsFollowFrameLinks:true,remove:function(){this.destructor.apply(this,arguments);ElFrame.superclass.remove.apply(this,arguments)},getDocument:function(){return this.dom?this.dom.ownerDocument:document},submitAsTarget:function(submitCfg){var opt=submitCfg||{},D=this.getDocument(),form=Ext.getDom(opt.form?opt.form.form||opt.form:null,false,D)||Ext.DomHelper.append(D.body,{tag:"form",cls:"x-hidden x-mif-form",encoding:"multipart/form-data"}),formFly=Ext.fly(form,"_dynaForm"),formState={target:form.target||"",method:form.method||"",encoding:form.encoding||"",enctype:form.enctype||"",action:form.action||""},encoding=opt.encoding||form.encoding,method=opt.method||form.method||"POST";formFly.set({target:this.dom.name,method:method,encoding:encoding,action:opt.url||opt.action||form.action});if(method=="POST"||!!opt.enctype){formFly.set({enctype:opt.enctype||form.enctype||encoding})}var hiddens,hd,ps;if(opt.params&&(ps=Ext.isFunction(opt.params)?opt.params():opt.params)){hiddens=[];Ext.iterate(ps=typeof ps=="string"?Ext.urlDecode(ps,false):ps,function(n,v){Ext.fly(hd=D.createElement("input")).set({type:"hidden",name:n,value:v});form.appendChild(hd);hiddens.push(hd)})}opt.callback&&this._observable.addListener("_docready",opt.callback,opt.scope,{single:true});this._frameAction=true;this._targetURI=location.href;this.showMask();(function(){form.submit();hiddens&&Ext.each(hiddens,Ext.removeNode,Ext);if(formFly.hasClass("x-mif-form")){formFly.remove()}else{formFly.set(formState)}delete El._flyweights._dynaForm;formFly=null;this.hideMask(true)}).defer(100,this);return this},resetUrl:(function(){return Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:"about:blank"})(),setSrc:function(url,discardUrl,callback,scope){var src=url||this.src||this.resetUrl;var O=this._observable;this._unHook();Ext.isFunction(callback)&&O.addListener("_docload",callback,scope||this,{single:true});this.showMask();(discardUrl!==true)&&(this.src=src);var s=this._targetURI=(Ext.isFunction(src)?src()||"":src);try{this._frameAction=true;this.dom.src=s;this.checkDOM()}catch(ex){O.fireEvent.call(O,"exception",this,ex)}return this},setLocation:function(url,discardUrl,callback,scope){var src=url||this.src||this.resetUrl;var O=this._observable;this._unHook();Ext.isFunction(callback)&&O.addListener("_docload",callback,scope||this,{single:true});this.showMask();var s=this._targetURI=(Ext.isFunction(src)?src()||"":src);if(discardUrl!==true){this.src=src}try{this._frameAction=true;this.getWindow().location.replace(s);this.checkDOM()}catch(ex){O.fireEvent.call(O,"exception",this,ex)}return this},reset:function(src,callback,scope){this._unHook();var loadMaskOff=false,s=src,win=this.getWindow(),O=this._observable;if(this.loadMask){loadMaskOff=this.loadMask.disabled;this.loadMask.disabled=false}this.hideMask(true);if(win){this.isReset=true;var cb=callback;O.addListener("_docload",function(frame){if(this.loadMask){this.loadMask.disabled=loadMaskOff}Ext.isFunction(cb)&&(cb=cb.apply(scope||this,arguments));O.fireEvent("reset",this)},this,{single:true});Ext.isFunction(s)&&(s=src());s=this._targetURI=Ext.isEmpty(s,true)?this.resetUrl:s;win.location?(win.location.href=s):O.fireEvent("_docload",this)}return this},scriptRE:/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/gi,update:function(content,loadScripts,callback,scope){loadScripts=loadScripts||this.getUpdater().loadScripts||false;content=Ext.DomHelper.markup(content||"");content=loadScripts===true?content:content.replace(this.scriptRE,"");var doc;if((doc=this.getFrameDocument())&&!!content.length){this._unHook();this.src=null;this.showMask();Ext.isFunction(callback)&&this._observable.addListener("_docload",callback,scope||this,{single:true});this._targetURI=location.href;doc.open();this._frameAction=true;doc.write(content);doc.close();this.checkDOM()}else{this.hideMask(true);Ext.isFunction(callback)&&callback.call(scope,this)}return this},execCommand:function(command,userInterface,value,validate){var doc,assert;if((doc=this.getFrameDocument())&&!!command){try{Ext.isIE&&this.getWindow().focus();assert=validate&&Ext.isFunction(doc.queryCommandEnabled)?doc.queryCommandEnabled(command):true;return assert&&doc.execCommand(command,!!userInterface,value)}catch(eex){return false}}return false},setDesignMode:function(active){var doc;(doc=this.getFrameDocument())&&(doc.designMode=(/on|true/i).test(String(active))?"on":"off")},getUpdater:function(){return this.updateManager||(this.updateManager=new MIF.Updater(this))},getHistory:function(){var h=null;try{h=this.getWindow().history}catch(eh){}return h},get:function(el){var doc=this.getFrameDocument();return doc?Ext.get(el,doc):doc=null},fly:function(el,named){var doc=this.getFrameDocument();return doc?Ext.fly(el,named,doc):null},getDom:function(el){var d;if(!el||!(d=this.getFrameDocument())){return(d=null)}return Ext.getDom(el,d)},select:function(selector,unique){var d;return(d=this.getFrameDocument())?Ext.Element.select(selector,unique,d):d=null},query:function(selector){var d;return(d=this.getFrameDocument())?Ext.DomQuery.select(selector,d):null},removeNode:Ext.removeNode,_renderHook:function(){this._windowContext=null;this.CSS=this.CSS?this.CSS.destroy():null;this._hooked=false;try{if(this.writeScript('(function(){(window.hostMIF = parent.document.getElementById("'+this.id+'").ownerCt)._windowContext='+(Ext.isIE?"window":'{eval:function(s){return new Function("return ("+s+")")();}}')+";})()")){var w,p=this._frameProxy,D=this.getFrameDocument();if(w=this.getWindow()){p||(p=this._frameProxy=this._eventProxy.createDelegate(this));addListener(w,"focus",p);addListener(w,"blur",p);addListener(w,"resize",p);addListener(w,"unload",p);D&&addListener(Ext.isIE?w:D,"scroll",p)}D&&(this.CSS=new Ext.ux.ManagedIFrame.CSS(D))}}catch(ex){}return this.domWritable()},_unHook:function(){if(this._hooked){this._windowContext&&(this._windowContext.hostMIF=null);this._windowContext=null;var w,p=this._frameProxy;if(p&&this.domWritable()&&(w=this.getWindow())){removeListener(w,"focus",p);removeListener(w,"blur",p);removeListener(w,"resize",p);removeListener(w,"unload",p);removeListener(Ext.isIE?w:this.getFrameDocument(),"scroll",p)}}ELD.clearDocumentCache&&ELD.clearDocumentCache(this.id);this.CSS=this.CSS?this.CSS.destroy():null;this.domFired=this._frameAction=this.domReady=this._hooked=false},_windowContext:null,getFrameDocument:function(){var win=this.getWindow(),doc=null;try{doc=(Ext.isIE&&win?win.document:null)||this.dom.contentDocument||window.frames[this.dom.name].document||null}catch(gdEx){ELD.clearDocumentCache&&ELD.clearDocumentCache(this.id);return false}doc=(doc&&Ext.isFunction(ELD.getDocument))?ELD.getDocument(doc,true):doc;return doc},getDoc:function(){var D=this.getFrameDocument();return Ext.get(D,D)},getBody:function(){var d;return(d=this.getFrameDocument())?this.get(d.body||d.documentElement):null},getDocumentURI:function(){var URI,d;try{URI=this.src&&(d=this.getFrameDocument())?d.location.href:null}catch(ex){}return URI||(Ext.isFunction(this.src)?this.src():this.src)},getWindowURI:function(){var URI,w;try{URI=(w=this.getWindow())?w.location.href:null}catch(ex){}return URI||(Ext.isFunction(this.src)?this.src():this.src)},getWindow:function(){var dom=this.dom,win=null;try{win=dom.contentWindow||window.frames[dom.name]||null}catch(gwEx){}return win},scrollChildIntoView:function(child,container,hscroll){this.fly(child,"_scrollChildIntoView").scrollIntoView(this.getDom(container)||this.getBody().dom,hscroll);return this},print:function(){try{var win;if(win=this.getWindow()){Ext.isIE&&win.focus();win.print()}}catch(ex){throw new MIF.Error("printexception",ex.description||ex.message||ex)}return this},domWritable:function(){return !!Ext.isDocument(this.getFrameDocument(),true)&&!!this._windowContext},execScript:function(block,useDOM){try{if(this.domWritable()){if(useDOM){this.writeScript(block)}else{return this._windowContext.eval(block)}}else{throw new MIF.Error("execscript-secure-context")}}catch(ex){this._observable.fireEvent.call(this._observable,"exception",this,ex);return false}return true},writeScript:function(block,attributes){attributes=Ext.apply({},attributes||{},{type:"text/javascript",text:block});try{var head,script,doc=this.getFrameDocument();if(doc&&typeof doc.getElementsByTagName!="undefined"){if(!(head=doc.getElementsByTagName("head")[0])){head=doc.createElement("head");doc.getElementsByTagName("html")[0].appendChild(head)}if(head&&(script=doc.createElement("script"))){for(var attrib in attributes){if(attributes.hasOwnProperty(attrib)&&attrib in script){script[attrib]=attributes[attrib]}}return !!head.appendChild(script)}}}catch(ex){this._observable.fireEvent.call(this._observable,"exception",this,ex)}finally{script=head=null}return false},loadFunction:function(fn,useDOM,invokeIt){var name=fn.name||fn;var fnSrc=fn.fn||window[fn];name&&fnSrc&&this.execScript(name+"="+fnSrc,useDOM);invokeIt&&this.execScript(name+"()")},loadHandler:function(e,target){var rstatus=(this.dom||{}).readyState||(e||{}).type;if(this.eventsFollowFrameLinks||this._frameAction||this.isReset){switch(rstatus){case"domready":case"DOMFrameContentLoaded":case"domfail":this._onDocReady(rstatus);break;case"load":case"complete":var frame=this;this._frameAction&&setTimeout(function(){frame._onDocLoaded(rstatus)},0.01);this._frameAction=false;break;case"error":this._observable.fireEvent.apply(this._observable,["exception",this].concat(arguments));break;default:}this.frameState=rstatus}},_onDocReady:function(eventName){var w,obv=this._observable,D;try{if(!this.isReset&&this.focusOnLoad&&(w=this.getWindow())){w.focus()}(D=this.getDoc())&&(D.isReady=true)}catch(ex){}obv.fireEvent("_docready",this);if(!this.domFired&&(this._hooked=this._renderHook())){this.domFired=true;this.isReset||obv.fireEvent.call(obv,"domready",this)}this.domReady=true;this.hideMask()},_onDocLoaded:function(eventName){var obv=this._observable,w;this.domReady||this._onDocReady("domready");obv.fireEvent("_docload",this);this.isReset||obv.fireEvent("documentloaded",this);this.hideMask(true);this._frameAction=this.isReset=false},checkDOM:function(win){if(Ext.isGecko){return}var n=0,frame=this,domReady=false,b,l,d,max=this.domReadyRetries||2500,polling=false,startLocation=(this.getFrameDocument()||{location:{}}).location.href;(function(){d=frame.getFrameDocument()||{location:{}};polling=(d.location.href!==startLocation||d.location.href===frame._targetURI);if(frame.domReady){return}domReady=polling&&((b=frame.getBody())&&!!(b.dom.innerHTML||"").length)||false;if(d.location.href&&!domReady&&(++n<max)){setTimeout(arguments.callee,2);return}frame.loadHandler({type:domReady?"domready":"domfail"})})()},filterEventOptionsRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,addListener:function(eventName,fn,scope,options){if(typeof eventName=="object"){var o=eventName;for(var e in o){if(this.filterEventOptionsRe.test(e)){continue}if(typeof o[e]=="function"){this.addListener(e,o[e],o.scope,o)}else{this.addListener(e,o[e].fn,o[e].scope,o[e])}}return}if(reSynthEvents.test(eventName)){var O=this._observable;if(O){O.events[eventName]||(O.addEvents(eventName));O.addListener.call(O,eventName,fn,scope||this,options)}}else{ElFrame.superclass.addListener.call(this,eventName,fn,scope||this,options)}return this},removeListener:function(eventName,fn,scope){var O=this._observable;if(reSynthEvents.test(eventName)){O&&O.removeListener.call(O,eventName,fn,scope||this,options)}else{ElFrame.superclass.removeListener.call(this,eventName,fn,scope||this)}return this},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);var O=this._observable;O&&O.purgeListeners.call(this._observable);return this},showMask:function(msg,msgCls,maskCls){var lmask=this.loadMask;if(lmask&&!lmask.disabled){this.mask(msg||lmask.msg,msgCls||lmask.msgCls,maskCls||lmask.maskCls,lmask.maskEl)}},hideMask:function(forced){var tlm=this.loadMask||{};if(forced||(tlm.hideOnReady&&this.domReady)){this.unmask()}},mask:function(msg,msgCls,maskCls,maskEl){this._mask&&this.unmask();var p=Ext.get(maskEl)||this.parent(".ux-mif-mask-target")||this.parent();if(p.getStyle("position")=="static"&&!p.select("iframe,frame,object,embed").elements.length){p.addClass("x-masked-relative")}p.addClass("x-masked");this._mask=Ext.DomHelper.append(p,{cls:maskCls||"ux-mif-el-mask"},true);this._mask.setDisplayed(true);this._mask._agent=p;if(typeof msg=="string"){this._maskMsg=Ext.DomHelper.append(p,{cls:msgCls||"ux-mif-el-mask-msg",style:{visibility:"hidden"},cn:{tag:"div",html:msg}},true);this._maskMsg.setVisibilityMode(Ext.Element.VISIBILITY).center(p).setVisible(true)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&this.getStyle("height")=="auto"){this._mask.setSize(undefined,this._mask.getHeight())}return this._mask},unmask:function(){var a;if(this._mask){(a=this._mask._agent)&&a.removeClass(["x-masked-relative","x-masked"]);if(this._maskMsg){this._maskMsg.remove();delete this._maskMsg}this._mask.remove();delete this._mask}},createFrameShim:function(imgUrl,shimCls){this.shimCls=shimCls||this.shimCls||"ux-mif-shim";this.frameShim||(this.frameShim=this.next("."+this.shimCls)||Ext.DomHelper.append(this.dom.parentNode,{tag:"img",src:imgUrl||Ext.BLANK_IMAGE_URL,cls:this.shimCls,galleryimg:"no"},true));this.frameShim&&(this.frameShim.autoBoxAdjust=false);return this.frameShim},toggleShim:function(show){var shim=this.frameShim||this.createFrameShim();var cls=this.shimCls+"-on";!show&&shim.removeClass(cls);show&&!shim.hasClass(cls)&&shim.addClass(cls)},load:function(loadCfg){var um;if(um=this.getUpdater()){if(loadCfg&&loadCfg.renderer){um.setRenderer(loadCfg.renderer);delete loadCfg.renderer}um.update.apply(um,arguments)}return this},_eventProxy:function(e){if(!e){return}e=Ext.EventObject.setEvent(e);var be=e.browserEvent||e,er,args=[e.type,this];if(!be.eventPhase||(be.eventPhase==(be.AT_TARGET||2))){if(e.type=="resize"){var doc=this.getFrameDocument();doc&&(args.push({height:ELD.getDocumentHeight(doc),width:ELD.getDocumentWidth(doc)},{height:ELD.getViewportHeight(doc),width:ELD.getViewportWidth(doc)},{height:ELD.getViewHeight(false,doc),width:ELD.getViewWidth(false,doc)}))}er=this._observable?this._observable.fireEvent.apply(this._observable,args.concat(Array.prototype.slice.call(arguments,0))):null;(e.type=="unload")&&this._unHook()}return er},sendMessage:function(message,tag,origin){},postMessage:function(message,origin){}});ElFrame=Ext.Element.IFRAME=Ext.Element.FRAME=Ext.ux.ManagedIFrame.Element;var fp=ElFrame.prototype;Ext.override(ElFrame,{on:fp.addListener,un:fp.removeListener,getUpdateManager:fp.getUpdater});Ext.ux.ManagedIFrame.ComponentAdapter=function(){};Ext.ux.ManagedIFrame.ComponentAdapter.prototype={version:2.14,defaultSrc:null,unsupportedText:"Inline frames are NOT enabled/supported by your browser.",hideMode:!Ext.isIE&&!!Ext.ux.plugin.VisibilityMode?"nosize":"display",animCollapse:Ext.isIE,animFloat:Ext.isIE,disableMessaging:true,eventsFollowFrameLinks:true,frameConfig:null,focusOnLoad:Ext.isIE,frameEl:null,useShim:false,autoScroll:true,autoLoad:null,getId:function(){return this.id||(this.id="mif-comp-"+(++Ext.Component.AUTO_ID))},stateEvents:["documentloaded"],stateful:false,setAutoScroll:function(auto){var scroll=Ext.value(auto,this.autoScroll===true);this.rendered&&this.getFrame()&&this.frameEl.setOverflow((this.autoScroll=scroll)?"auto":"hidden");return this},getContentTarget:function(){return this.getFrame()},getFrame:function(){if(this.rendered){if(this.frameEl){return this.frameEl}var f=this.items&&this.items.first?this.items.first():null;f&&(this.frameEl=f.frameEl);return this.frameEl}return null},getFrameWindow:function(){return this.getFrame()?this.frameEl.getWindow():null},getFrameDocument:function(){return this.getFrame()?this.frameEl.getFrameDocument():null},getFrameDoc:function(){return this.getFrame()?this.frameEl.getDoc():null},getFrameBody:function(){return this.getFrame()?this.frameEl.getBody():null},resetFrame:function(){this.getFrame()&&this.frameEl.reset.apply(this.frameEl,arguments);return this},submitAsTarget:function(submitCfg){this.getFrame()&&this.frameEl.submitAsTarget.apply(this.frameEl,arguments);return this},load:function(loadCfg){if(loadCfg&&this.getFrame()){var args=arguments;this.resetFrame(null,function(){loadCfg.submitAsTarget?this.submitAsTarget.apply(this,args):this.frameEl.load.apply(this.frameEl,args)},this)}this.autoLoad=loadCfg;return this},doAutoLoad:function(){this.autoLoad&&this.load(typeof this.autoLoad=="object"?this.autoLoad:{url:this.autoLoad})},getUpdater:function(){return this.getFrame()?this.frameEl.getUpdater():null},setSrc:function(url,discardUrl,callback,scope){this.getFrame()&&this.frameEl.setSrc.apply(this.frameEl,arguments);return this},setLocation:function(url,discardUrl,callback,scope){this.getFrame()&&this.frameEl.setLocation.apply(this.frameEl,arguments);return this},getState:function(){var URI=this.getFrame()?this.frameEl.getDocumentURI()||null:null;var state=this.supr().getState.call(this);state=Ext.apply(state||{},{defaultSrc:Ext.isFunction(URI)?URI():URI,autoLoad:this.autoLoad});return state},setMIFEvents:function(){this.addEvents("documentloaded","domready","exception","message","blur","focus","scroll","resize","unload","reset")},sendMessage:function(message,tag,origin){},onAdd:function(C){C.relayTarget&&this.suspendEvents(true)},initRef:function(){if(this.ref){var t=this,levels=this.ref.split("/"),l=levels.length,i;for(i=0;i<l;i++){if(t.ownerCt){t=t.ownerCt}}this.refName=levels[--i];t[this.refName]||(t[this.refName]=this);this.refOwner=t}}};Ext.ux.ManagedIFrame.Component=Ext.extend(Ext.BoxComponent,{ctype:"Ext.ux.ManagedIFrame.Component",initComponent:function(){var C={monitorResize:this.monitorResize||(this.monitorResize=!!this.fitToParent),plugins:(this.plugins||[]).concat(this.hideMode==="nosize"&&Ext.ux.plugin.VisibilityMode?[new Ext.ux.plugin.VisibilityMode({hideMode:"nosize",elements:["bwrap"]})]:[])};MIF.Component.superclass.initComponent.call(Ext.apply(this,Ext.apply(this.initialConfig,C)));this.setMIFEvents()},onRender:function(ct,position){var frCfg=this.frameCfg||this.frameConfig||(this.relayTarget?{name:this.relayTarget.id}:{})||{};var frDOM=frCfg.autoCreate||frCfg;frDOM=Ext.apply({tag:"iframe",id:Ext.id()},frDOM);var el=Ext.getDom(this.el);(el&&el.tagName=="iframe")||(this.autoEl=Ext.apply({name:frDOM.id,frameborder:0},frDOM));MIF.Component.superclass.onRender.apply(this,arguments);if(this.unsupportedText){ct.child("noframes")||ct.createChild({tag:"noframes",html:this.unsupportedText||null})}var frame=this.el;var F;if(F=this.frameEl=(this.el?new MIF.Element(this.el.dom,true):null)){Ext.apply(F,{ownerCt:this.relayTarget||this,disableMessaging:Ext.value(this.disableMessaging,true),focusOnLoad:Ext.value(this.focusOnLoad,Ext.isIE),eventsFollowFrameLinks:Ext.value(this.eventsFollowFrameLinks,true)});F.ownerCt.frameEl=F;F.addClass("ux-mif");if(this.loadMask){var mEl=this.loadMask.maskEl;F.loadMask=Ext.apply({disabled:false,hideOnReady:false,msgCls:"ext-el-mask-msg x-mask-loading",maskCls:"ext-el-mask"},{maskEl:F.ownerCt[String(mEl)]||F.parent("."+String(mEl))||F.parent(".ux-mif-mask-target")||mEl},Ext.isString(this.loadMask)?{msg:this.loadMask}:this.loadMask);Ext.get(F.loadMask.maskEl)&&Ext.get(F.loadMask.maskEl).addClass("ux-mif-mask-target")}F._observable&&(this.relayTarget||this).relayEvents(F._observable,frameEvents.concat(this._msgTagHandlers||[]));delete this.contentEl}},afterRender:function(container){MIF.Component.superclass.afterRender.apply(this,arguments);if(this.fitToParent&&!this.ownerCt){var pos=this.getPosition(),size=(Ext.get(this.fitToParent)||this.getEl().parent()).getViewSize();this.setSize(size.width-pos[0],size.height-pos[1])}this.getEl().setOverflow("hidden");this.setAutoScroll();var F;if(F=this.frameEl){var ownerCt=this.ownerCt;while(ownerCt){ownerCt.on("afterlayout",function(container,layout){Ext.each(["north","south","east","west"],function(region){var reg;if((reg=layout[region])&&reg.split&&reg.split.dd&&!reg._splitTrapped){reg.split.dd.endDrag=reg.split.dd.endDrag.createSequence(MIM.hideShims,MIM);reg.split.on("beforeresize",MIM.showShims,MIM);reg._splitTrapped=MIM._splitTrapped=true}},this)},this,{single:true});ownerCt=ownerCt.ownerCt}if(!!this.ownerCt||this.useShim){this.frameShim=F.createFrameShim()}this.getUpdater().showLoadIndicator=this.showLoadIndicator||false;var resumeEvents=this.relayTarget&&this.ownerCt?this.ownerCt.resumeEvents.createDelegate(this.ownerCt):null;if(this.autoload){this.doAutoLoad()}else{if(this.tpl&&(this.frameData||this.data)){F.update(this.tpl.apply(this.frameData||this.data),true,resumeEvents);delete this.frameData;delete this.data;return}else{if(this.frameMarkup||this.html){F.update(this.frameMarkup||this.html,true,resumeEvents);delete this.html;delete this.frameMarkup;return}else{if(this.defaultSrc){F.setSrc(this.defaultSrc,false)}else{F.reset(null,resumeEvents);return}}}}resumeEvents&&resumeEvents()}},beforeDestroy:function(){var F;if(F=this.getFrame()){F.remove();this.frameEl=this.frameShim=null}this.relayTarget&&(this.relayTarget.frameEl=null);MIF.Component.superclass.beforeDestroy.call(this)}});Ext.override(MIF.Component,MIF.ComponentAdapter.prototype);Ext.reg("mif",MIF.Component);function embed_MIF(config){config||(config={});config.layout="fit";config.items={xtype:"mif",ref:"mifChild",useShim:true,tpl:Ext.value(config.tpl,this.tpl),autoScroll:Ext.value(config.autoScroll,this.autoScroll),defaultSrc:Ext.value(config.defaultSrc,this.defaultSrc),frameMarkup:Ext.value(config.html,this.html),frameData:Ext.value(config.data,this.data),loadMask:Ext.value(config.loadMask,this.loadMask),disableMessaging:Ext.value(config.disableMessaging,this.disableMessaging),eventsFollowFrameLinks:Ext.value(config.eventsFollowFrameLinks,this.eventsFollowFrameLinks),focusOnLoad:Ext.value(config.focusOnLoad,this.focusOnLoad),frameConfig:Ext.value(config.frameConfig||config.frameCfg,this.frameConfig),relayTarget:this};delete config.html;delete config.data;this.setMIFEvents();return config}Ext.ux.ManagedIFrame.Panel=Ext.extend(Ext.Panel,{ctype:"Ext.ux.ManagedIFrame.Panel",bodyCssClass:"ux-mif-mask-target",constructor:function(config){MIF.Panel.superclass.constructor.call(this,embed_MIF.call(this,config))}});Ext.override(MIF.Panel,MIF.ComponentAdapter.prototype);Ext.reg("iframepanel",MIF.Panel);Ext.ux.ManagedIFrame.Portlet=Ext.extend(Ext.ux.ManagedIFrame.Panel,{ctype:"Ext.ux.ManagedIFrame.Portlet",anchor:"100%",frame:true,collapseEl:"bwrap",collapsible:true,draggable:true,cls:"x-portlet"});Ext.reg("iframeportlet",MIF.Portlet);Ext.ux.ManagedIFrame.Window=Ext.extend(Ext.Window,{ctype:"Ext.ux.ManagedIFrame.Window",bodyCssClass:"ux-mif-mask-target",constructor:function(config){MIF.Window.superclass.constructor.call(this,embed_MIF.call(this,config))}});Ext.override(MIF.Window,MIF.ComponentAdapter.prototype);Ext.reg("iframewindow",MIF.Window);Ext.ux.ManagedIFrame.Updater=Ext.extend(Ext.Updater,{showLoading:function(){this.showLoadIndicator&&this.el&&this.el.mask(this.indicatorText)},hideLoading:function(){this.showLoadIndicator&&this.el&&this.el.unmask()},updateComplete:function(response){MIF.Updater.superclass.updateComplete.apply(this,arguments);this.hideLoading()},processFailure:function(response){MIF.Updater.superclass.processFailure.apply(this,arguments);this.hideLoading()}});var styleCamelRe=/(-[a-z])/gi;var styleCamelFn=function(m,a){return a.charAt(1).toUpperCase()};Ext.ux.ManagedIFrame.CSS=function(hostDocument){var doc;if(hostDocument){doc=hostDocument;return{rules:null,destroy:function(){return doc=null},createStyleSheet:function(cssText,id){var ss;if(!doc){return}var head=doc.getElementsByTagName("head")[0];var rules=doc.createElement("style");rules.setAttribute("type","text/css");Ext.isString(id)&&rules.setAttribute("id",id);if(Ext.isIE){head.appendChild(rules);ss=rules.styleSheet;ss.cssText=cssText}else{try{rules.appendChild(doc.createTextNode(cssText))}catch(e){rules.cssText=cssText}head.appendChild(rules);ss=rules.styleSheet?rules.styleSheet:(rules.sheet||doc.styleSheets[doc.styleSheets.length-1])}this.cacheStyleSheet(ss);return ss},removeStyleSheet:function(id){if(!doc||!id){return}var existing=doc.getElementById(id);if(existing){existing.parentNode.removeChild(existing)}},swapStyleSheet:function(id,url){if(!doc){return}this.removeStyleSheet(id);var ss=doc.createElement("link");ss.setAttribute("rel","stylesheet");ss.setAttribute("type","text/css");Ext.isString(id)&&ss.setAttribute("id",id);ss.setAttribute("href",url);doc.getElementsByTagName("head")[0].appendChild(ss)},refreshCache:function(){return this.getRules(true)},cacheStyleSheet:function(ss,media){this.rules||(this.rules={});try{Ext.each(ss.cssRules||ss.rules||[],function(rule){this.hashRule(rule,ss,media)},this);Ext.each(ss.imports||[],function(sheet){sheet&&this.cacheStyleSheet(sheet,this.resolveMedia([sheet,sheet.parentStyleSheet]))},this)}catch(e){}},hashRule:function(rule,sheet,mediaOverride){var mediaSelector=mediaOverride||this.resolveMedia(rule);if(rule.cssRules||rule.rules){this.cacheStyleSheet(rule,this.resolveMedia([rule,rule.parentRule]))}if(rule.styleSheet){this.cacheStyleSheet(rule.styleSheet,this.resolveMedia([rule,rule.ownerRule,rule.parentStyleSheet]))}rule.selectorText&&Ext.each((mediaSelector||"").split(","),function(media){this.rules[((media?media.trim()+":":"")+rule.selectorText).toLowerCase()]=rule},this)},resolveMedia:function(rule){var media;Ext.each([].concat(rule),function(r){if(r&&r.media&&r.media.length){media=r.media;return false}});return media?(Ext.isIE?String(media):media.mediaText):""},getRules:function(refreshCache){if(!this.rules||refreshCache){this.rules={};if(doc){var ds=doc.styleSheets;for(var i=0,len=ds.length;i<len;i++){try{this.cacheStyleSheet(ds[i])}catch(e){}}}}return this.rules},getRule:function(selector,refreshCache,mediaSelector){var rs=this.getRules(refreshCache);if(Ext.type(mediaSelector)=="string"){mediaSelector=mediaSelector.trim()+":"}else{mediaSelector=""}if(!Ext.isArray(selector)){return rs[(mediaSelector+selector).toLowerCase()]}var select;for(var i=0;i<selector.length;i++){select=(mediaSelector+selector[i]).toLowerCase();if(rs[select]){return rs[select]}}return null},updateRule:function(selector,property,value,mediaSelector){Ext.each((mediaSelector||"").split(","),function(mediaSelect){if(!Ext.isArray(selector)){var rule=this.getRule(selector,false,mediaSelect);if(rule){rule.style[property.replace(camelRe,camelFn)]=value;return true}}else{for(var i=0;i<selector.length;i++){if(this.updateRule(selector[i],property,value,mediaSelect)){return true}}}return false},this)}}}};Ext.ux.ManagedIFrame.Manager=function(){var frames={};var implementation={_DOMFrameReadyHandler:function(e){try{var $frame;if($frame=e.target.ownerCt){$frame.loadHandler.call($frame,e)}}catch(rhEx){}},shimCls:"ux-mif-shim",register:function(frame){frame.manager=this;frames[frame.id]=frames[frame.name]={ref:frame};return frame},deRegister:function(frame){delete frames[frame.id];delete frames[frame.name]},hideShims:function(){var mm=MIF.Manager;mm.shimsApplied&&Ext.select("."+mm.shimCls,true).removeClass(mm.shimCls+"-on");mm.shimsApplied=false},showShims:function(){var mm=MIF.Manager;!mm.shimsApplied&&Ext.select("."+mm.shimCls,true).addClass(mm.shimCls+"-on");mm.shimsApplied=true},getFrameById:function(id){return typeof id=="string"?(frames[id]?frames[id].ref||null:null):null},getFrameByName:function(name){return this.getFrameById(name)},getFrameHash:function(frame){return frames[frame.id]||frames[frame.id]||null},destroy:function(){if(document.addEventListener&&!Ext.isOpera){window.removeEventListener("DOMFrameContentLoaded",this._DOMFrameReadyHandler,false)}}};document.addEventListener&&!Ext.isOpera&&window.addEventListener("DOMFrameContentLoaded",implementation._DOMFrameReadyHandler,false);Ext.EventManager.on(window,"beforeunload",implementation.destroy,implementation);return implementation}();MIM=MIF.Manager;MIM.showDragMask=MIM.showShims;MIM.hideDragMask=MIM.hideShims;var winDD=Ext.Window.DD;Ext.override(winDD,{startDrag:winDD.prototype.startDrag.createInterceptor(MIM.showShims),endDrag:winDD.prototype.endDrag.createInterceptor(MIM.hideShims)});Ext.ux.ManagedIFramePanel=MIF.Panel;Ext.ux.ManagedIFramePortlet=MIF.Portlet;Ext.ux.ManagedIframe=function(el,opt){var args=Array.prototype.slice.call(arguments,0),el=Ext.get(args[0]),config=args[0];if(el&&el.dom&&el.dom.tagName=="IFRAME"){config=args[1]||{}}else{config=args[0]||args[1]||{};el=config.autoCreate?Ext.get(Ext.DomHelper.append(config.autoCreate.parent||Ext.getBody(),Ext.apply({tag:"iframe",frameborder:0,cls:"x-mif",src:(Ext.isIE&&Ext.isSecure)?Ext.SSL_SECURE_URL:"about:blank"},config.autoCreate))):null;if(el&&config.unsupportedText){Ext.DomHelper.append(el.dom.parentNode,{tag:"noframes",html:config.unsupportedText})}}var mif=new MIF.Element(el,true);if(mif){Ext.apply(mif,{disableMessaging:Ext.value(config.disableMessaging,true),focusOnLoad:Ext.value(config.focusOnLoad,Ext.isIE),eventsFollowFrameLinks:Ext.value(config.eventsFollowFrameLinks,true),loadMask:!!config.loadMask?Ext.apply({msg:"Loading..",msgCls:"x-mask-loading",maskEl:null,hideOnReady:false,disabled:false},config.loadMask):false,_windowContext:null});config.listeners&&mif.on(config.listeners);if(!!config.html){mif.update(config.html)}else{!!config.src&&mif.setSrc(config.src)}}return mif};Ext.ux.ManagedIFrame.Error=Ext.extend(Ext.Error,{constructor:function(message,arg){this.arg=arg;Ext.Error.call(this,message)},name:"Ext.ux.ManagedIFrame"});Ext.apply(Ext.ux.ManagedIFrame.Error.prototype,{lang:{"documentcontext-remove":"An attempt was made to remove an Element from the wrong document context.","execscript-secure-context":"An attempt was made at script execution within a document context with limited access permissions.",printexception:"An Error was encountered attempting the print the frame contents (document access is likely restricted)."}});Ext.onReady(function(){var CSS=new Ext.ux.ManagedIFrame.CSS(document),rules=[];CSS.getRule(".ux-mif-fill")||(rules.push(".ux-mif-fill{height:100%;width:100%;}"));CSS.getRule(".ux-mif-mask-target")||(rules.push(".ux-mif-mask-target{position:relative;zoom:1;}"));CSS.getRule(".ux-mif-el-mask")||(rules.push(".ux-mif-el-mask {z-index: 100;position: absolute;top:0;left:0;-moz-opacity: 0.5;opacity: .50;*filter: alpha(opacity=50);width: 100%;height: 100%;zoom: 1;} ",".ux-mif-el-mask-msg {z-index: 1;position: absolute;top: 0;left: 0;border:1px solid;background:repeat-x 0 -16px;padding:2px;} ",".ux-mif-el-mask-msg div {padding:5px 10px 5px 10px;border:1px solid;cursor:wait;} "));if(!CSS.getRule(".ux-mif-shim")){rules.push(".ux-mif-shim {z-index:8500;position:absolute;top:0px;left:0px;background:transparent!important;overflow:hidden;display:none;}");rules.push(".ux-mif-shim-on{width:100%;height:100%;display:block;zoom:1;}");rules.push(".ext-ie6 .ux-mif-shim{margin-left:5px;margin-top:3px;}")}if(!CSS.getRule(".x-hide-nosize")){rules.push(".x-hide-nosize{height:0px!important;width:0px!important;visibility:hidden!important;border:none!important;zoom:1;}.x-hide-nosize * {height:0px!important;width:0px!important;visibility:hidden!important;border:none!important;zoom:1;}")}!!rules.length&&CSS.createStyleSheet(rules.join(" "),"mifCSS")});Ext.provide&&Ext.provide("mif")})();
share/assets/js/070-gridsummary.js:36:                '<div class="x-grid3-summary-row x-grid3-gridsummary-row-offset">',
share/assets/js/070-gridsummary.js:37:                    '<table class="x-grid3-summary-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',
share/assets/js/070-gridsummary.js:48:                '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}">',
share/assets/js/070-gridsummary.js:49:                    '<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>',
share/assets/js/070-gridsummary.js:83:        if (!this.grid.getGridEl().hasClass('x-grid-hide-gridsummary')) {
share/assets/js/070-gridsummary.js:85:            this.scroller.setHeight(vh - this.summary.getHeight());
share/assets/js/070-gridsummary.js:127:            last = cs.length - 1;
share/assets/js/070-gridsummary.js:134:            p.css = i === 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : '');
share/assets/js/070-gridsummary.js:164:                cls: 'x-grid3-gridsummary-row-inner'
share/assets/js/070-gridsummary.js:175:                visible = el.hasClass('x-grid-hide-gridsummary');
share/assets/js/070-gridsummary.js:177:            el[visible ? 'removeClass' : 'addClass']('x-grid-hide-gridsummary');
share/assets/js/070-gridsummary.js:193: * v - cell value
share/assets/js/070-gridsummary.js:194: * record - reference to the current Record
share/assets/js/070-gridsummary.js:195: * colName - column name (i.e. the ColumnModel's dataIndex)
share/assets/js/070-gridsummary.js:196: * data - the cumulative data for the current column + summaryType up to the current Record
share/assets/js/070-gridsummary.js:197: * rowIdx - current row index
share/assets/js/070-gridsummary.js:218:        return rowIdx == count - 1 ? (t / count) : t;
share/assets/js/075-Layout.js:4:  Custom Toolbar layout - currently only extends overflow menu to
share/assets/js/075-Layout.js:16:            menu.add('-');
share/assets/js/075-Layout.js:31:            // -- Extended functionality:
share/assets/js/075-Layout.js:37:            // --
share/assets/js/080-DataStore.js:5: 2011-11-02 by HV
share/assets/js/080-DataStore.js:32:        // --- Handle Ctrl+S/Ctrl+Z ('save'/'undo' keyboard shortcuts) for in-progress edit:
share/assets/js/080-DataStore.js:61:        // ---
share/assets/js/080-DataStore.js:67:        // For cycle-field/menu-field:
share/assets/js/080-DataStore.js:71:        //Call 'onTriggerClick' for combos and other fields with an onTriggerClick method (cycle-field)
share/assets/js/080-DataStore.js:92:    // ---
share/assets/js/080-DataStore.js:93:    // Auto-cleanup of entries in Ext.StoreMgr on destroy
share/assets/js/080-DataStore.js:101:    // ---
share/assets/js/080-DataStore.js:119:		// -- instead of standard store 'autoLoad' param, 'store_autoLoad' happens
share/assets/js/080-DataStore.js:139:		// --
share/assets/js/080-DataStore.js:197:		// --vv-- Displays the number of records in the title (superscript)	
share/assets/js/080-DataStore.js:208:						'&nbsp;<span class="superscript-navy">' + count + '</span>'
share/assets/js/080-DataStore.js:212:		// --^^--
share/assets/js/080-DataStore.js:293:				endRow   = Ext.isDefined(endRow) ? endRow : rowCount - 1;
share/assets/js/080-DataStore.js:306:		// into loadTarget. This is roughly the same as a double-click on a
share/assets/js/080-DataStore.js:311:					//var loadTarget = Ext.getCmp("main-load-target");
share/assets/js/080-DataStore.js:339:      var El = Ext.isFunction(cmp.getLoadMaskEl) // <-- Allow the cmp to define (AppDV)
share/assets/js/080-DataStore.js:342:      // -- Display a page-wide mask during save
share/assets/js/080-DataStore.js:354:        // We want to delete loadMask to prevent the built-in logic in grid
share/assets/js/080-DataStore.js:359:        // ---- Workaround - manual single-use loadMask for the very first load
share/assets/js/080-DataStore.js:366:        // store setting, see datastore-plus code)
share/assets/js/080-DataStore.js:385:        // ----
share/assets/js/080-DataStore.js:390:		// --
share/assets/js/080-DataStore.js:393:		// --- Cache the last total count, and supply it back to the server. If the
share/assets/js/080-DataStore.js:494:		// ---
share/assets/js/080-DataStore.js:523:      // Is this needed any more?? Don't think so, removing (2014-11-24 by HV)
share/assets/js/080-DataStore.js:531:			// -- Invalidate the total cache on write operations:
share/assets/js/080-DataStore.js:539:			// --
share/assets/js/080-DataStore.js:545:    // This is a bastardized thing - remove() is documented as only to be called when removing
share/assets/js/080-DataStore.js:547:    // machinery - this is either an ExtJS "bug" or a bug in ourselves someplace... In any case,
share/assets/js/080-DataStore.js:555:			return -1;
share/assets/js/080-DataStore.js:580:		// ----
share/assets/js/080-DataStore.js:620:		// ----
share/assets/js/080-DataStore.js:667:        // destroyed or is otherwise no longer valid -- delete it from the index
share/assets/js/080-DataStore.js:710:			var index = count - 1;
share/assets/js/080-DataStore.js:717:		// -- Add Functions -- //
share/assets/js/080-DataStore.js:791:			var loadTarget = Ext.getCmp('main-load-target');
share/assets/js/080-DataStore.js:839:		// -- -- //
share/assets/js/080-DataStore.js:843:		// -- Edit Functions -- //
share/assets/js/080-DataStore.js:921:				},plugin.add_form_window_cnf); //<-- use same custom config from add
share/assets/js/080-DataStore.js:933:			var loadTarget = Ext.getCmp('main-load-target');
share/assets/js/080-DataStore.js:979:		// -- -- //
share/assets/js/080-DataStore.js:1018:		// ------
share/assets/js/080-DataStore.js:1046:		// ------
share/assets/js/080-DataStore.js:1069:      // Added for Github Issue #21 - set the overflow text to
share/assets/js/080-DataStore.js:1097:		// -- This function purges out a list of param names from lastOptions 
share/assets/js/080-DataStore.js:1112:		// --
share/assets/js/080-DataStore.js:1118:			// ------------------------------------
share/assets/js/080-DataStore.js:1119:			// vv ----- CONFIRM ON DESTROY ----- vv
share/assets/js/080-DataStore.js:1137:								this.destroy_confirmed = false; //<-- redundant, added for extra safety
share/assets/js/080-DataStore.js:1148:			store.destroy_confirmed = false; //<-- clear one more time for good measure
share/assets/js/080-DataStore.js:1149:			// ^^ ------------------------------ ^^
share/assets/js/080-DataStore.js:1150:			// ------------------------------------
share/assets/js/080-DataStore.js:1179:    // --
share/assets/js/080-DataStore.js:1180:    // New close_on_destroy option: will attempt to close by locating the main-load-target
share/assets/js/080-DataStore.js:1189:            if(parent.id == 'main-load-target') {
share/assets/js/080-DataStore.js:1197:    // --
share/assets/js/080-DataStore.js:1209:    // ------
share/assets/js/080-DataStore.js:1239:    // ------
share/assets/js/080-DataStore.js:1257:				e.cancel = true; //<-- redundant with return false but set for good measure
share/assets/js/080-DataStore.js:1271:				e.cancel = true; //<-- redundant with return false but set for good measure
share/assets/js/080-DataStore.js:1284:          if(El.hasClass('ra-dsbtn-allow-'+name)) {
share/assets/js/080-DataStore.js:1285:            El.removeClass('ra-dsbtn-allow-'+name);
share/assets/js/080-DataStore.js:1287:          El.addClass('ra-dsbtn-deny-'+name);
share/assets/js/080-DataStore.js:1304:      // ----------
share/assets/js/080-DataStore.js:1308:          if(El.hasClass('ra-dsbtn-deny-'+name)) {
share/assets/js/080-DataStore.js:1309:            El.removeClass('ra-dsbtn-deny-'+name);
share/assets/js/080-DataStore.js:1311:          El.addClass('ra-dsbtn-allow-'+name);
share/assets/js/080-DataStore.js:1315:          if(El.hasClass('ra-dsbtn-allow-'+name)) {
share/assets/js/080-DataStore.js:1316:            El.removeClass('ra-dsbtn-allow-'+name);
share/assets/js/080-DataStore.js:1318:          El.addClass('ra-dsbtn-deny-'+name);
share/assets/js/080-DataStore.js:1323:      // ----------
share/assets/js/080-DataStore.js:1328:			// --------------------------------------------------
share/assets/js/080-DataStore.js:1329:			// --- Keyboard shortcut handling:
share/assets/js/080-DataStore.js:1350:						// -- New: skip DELETE (46) if the event target is within a form field:
share/assets/js/080-DataStore.js:1354:						// --
share/assets/js/080-DataStore.js:1376:			// ---
share/assets/js/080-DataStore.js:1377:			// --------------------------------------------------
share/assets/js/080-DataStore.js:1393:					iconCls: 'ra-icon-add',
share/assets/js/080-DataStore.js:1424:					iconCls: 'ra-icon-application-form-edit',
share/assets/js/080-DataStore.js:1453:					iconCls: 'ra-icon-delete',
share/assets/js/080-DataStore.js:1488:					iconCls: 'x-tbar-loading',
share/assets/js/080-DataStore.js:1502:					iconCls: 'ra-icon-save-ok',
share/assets/js/080-DataStore.js:1521:            // ---- Add/remove '*' suffix from the title based on the saved/unsaved status:
share/assets/js/080-DataStore.js:1526:            // ----
share/assets/js/080-DataStore.js:1539:					iconCls: 'ra-icon-arrow-undo',
share/assets/js/080-DataStore.js:1641:		var tbar_items = [ '->' ]; //<-- right-align buttons
share/assets/js/080-DataStore.js:1660:      // Extra test for update -- 
share/assets/js/080-DataStore.js:1666:      var cls = ['ra-dsapi-deny-',api].join('');
share/assets/js/080-DataStore.js:1759:			// Re-enable the form panel if an exception occurs so the user can
share/assets/js/080-DataStore.js:1770:			newRecord.phantom = true; //<-- the copy doesn't have this set like the original... why?
share/assets/js/080-DataStore.js:1787:					// Remove ourselves as we are also a single-use handler:
share/assets/js/080-DataStore.js:1795:						// Remove ourselves as we are a single-use handler:
share/assets/js/080-DataStore.js:1805:				// Also remove this single-use handler on exception:
share/assets/js/080-DataStore.js:1895:			// Re-enable the form panel if an exception occurs so the user can
share/assets/js/080-DataStore.js:1914:					// Remove ourselves as we are also a single-use handler:
share/assets/js/080-DataStore.js:1922:						// Remove ourselves as we are a single-use handler:
share/assets/js/080-DataStore.js:1932:				// Also remove this single-use handler on exception:
share/assets/js/080-DataStore.js:2002:	// --- ^^ ---
share/assets/js/080-DataStore.js:2015:      return [ '<span class="ra-dirty-display-val">',Ext.ux.showNull(disp),'</span>'].join('');
share/assets/js/080-DataStore.js:2022:Ext.preg('datastore-plus',Ext.ux.RapidApp.Plugin.CmpDataStorePlus);
share/assets/js/080-DataStore.js:2042:    // Same with store_exclude_buttons - we're doing this to preserve the contract
share/assets/js/080-DataStore.js:2064:          '<div class="ra-autopanel-error" style="padding:20px;">',
share/assets/js/080-DataStore.js:2065:            '<div class="ra-exception-heading">',
share/assets/js/080-DataStore.js:2082:      // -- this is the only supported case currently
share/assets/js/080-DataStore.js:2117:      // to do any post-write operations (like autoload_added_record) before we destroy
share/assets/js/080-DataStore.js:2123:        // post-save operations to complete. For the special autoload_added_record case
share/assets/js/080-DataStore.js:2157:Ext.reg('datastore-dedicated-add-form', Ext.ux.RapidApp.DataStoreDedicatedAddForm);
share/assets/js/081-Plugin.js:30:/* 2011-03-25 by HV:
share/assets/js/081-Plugin.js:32: http://www.sencha.com/forum/showthread.php?92215-Toolbar-resizing-problem
share/assets/js/081-Plugin.js:98:		// -- New: limit to only Anchor (<a>) tags. Needed for IE
share/assets/js/081-Plugin.js:101:		// --
share/assets/js/081-Plugin.js:116:	createItemClass: 'appsuperbox-create-item',
share/assets/js/081-Plugin.js:151:			var event = arguments[arguments.length - 1]; // <-- last passed argument, the event object;
share/assets/js/081-Plugin.js:184:			'<div class="x-combo-list-item">shit &nbsp;</div>' +
share/assets/js/081-Plugin.js:185:			'<tpl for="."><div class="x-combo-list-item">{' + this.cmp.displayField + '}</div></tpl>';
share/assets/js/081-Plugin.js:188:Ext.preg('combo-addable',Ext.ux.RapidApp.Plugin.Combo.Addable);
share/assets/js/081-Plugin.js:200:			xtype: 'superboxselect', // <-- no effect, the xtype should be set to this in the consuming class
share/assets/js/081-Plugin.js:201:			extraItemCls: 'x-superboxselect-x-flag',
share/assets/js/081-Plugin.js:202:			expandBtnCls: 'ra-icon-roles_expand_sprite',
share/assets/js/081-Plugin.js:206:			itemSelector: 'li.x-superboxselect-item',
share/assets/js/081-Plugin.js:215:			'<div class="x-superboxselect x-superboxselect-stacked">',
share/assets/js/081-Plugin.js:217:						'<li style="padding-bottom:2px;">',
share/assets/js/081-Plugin.js:224:							'<li class="x-superboxselect-item x-superboxselect-x-flag {' + this.cmp.classField + '}">',
share/assets/js/081-Plugin.js:271:Ext.preg('reload-server-events',Ext.ux.RapidApp.Plugin.ReloadServerEvents);
share/assets/js/081-Plugin.js:324:	 * @cfg {String} iconCls Icon class for menu button (defaults to "ra-icon-magnifier")
share/assets/js/081-Plugin.js:326:	//,iconCls:'ra-icon-magnifier'
share/assets/js/081-Plugin.js:337:	 * (defaults to [] - empty array)
share/assets/js/081-Plugin.js:342:	 * Field containing search text (read-only)
share/assets/js/081-Plugin.js:358:	 * Menu containing the column module fields menu with checkboxes (read-only)
share/assets/js/081-Plugin.js:433:	 * search controls to (defaults to this.grid, the grid this plugin is plugged-in into)
share/assets/js/081-Plugin.js:450:		// -- New: disable plugin if there are no quick_search columns (2012-04-11 by HV)
share/assets/js/081-Plugin.js:452:		// --
share/assets/js/081-Plugin.js:456:		// -- query_search_use_column support, added by HV 2011-12-26
share/assets/js/081-Plugin.js:463:		// --
share/assets/js/081-Plugin.js:488:		// -- Optional extra override for checked columns. init_quick_search_columns is
share/assets/js/081-Plugin.js:492:		// --
share/assets/js/081-Plugin.js:510:				// The separator is ugly, removed (2012-04-11 by HV)
share/assets/js/081-Plugin.js:544:				iconCls: 'ra-icon-preferences',
share/assets/js/081-Plugin.js:550:				iconCls: 'x-cols-icon',
share/assets/js/081-Plugin.js:569:		// -- Optional config: disable pressing of the button (making it act only as a label):
share/assets/js/081-Plugin.js:576:				cls:'ra-override-cursor-default'
share/assets/js/081-Plugin.js:579:		// --
share/assets/js/081-Plugin.js:588:			,trigger1Class:'x-form-clear-trigger'
share/assets/js/081-Plugin.js:589:			,trigger2Class:this.minChars ? 'x-hide-display' : 'x-form-search-trigger'
share/assets/js/081-Plugin.js:595:		// -----
share/assets/js/081-Plugin.js:597:			// -- Highlight Fx on the field to call attention to it when it is preloaded
share/assets/js/081-Plugin.js:602:			// --
share/assets/js/081-Plugin.js:620:		// -----
share/assets/js/081-Plugin.js:654:		// re-layout the panel if the toolbar is outside
share/assets/js/081-Plugin.js:759:			// clear start (necessary if we have paging) - resets to page 1
share/assets/js/081-Plugin.js:835:		// (added for saved state integration, 2012-09-18 by HV)
share/assets/js/081-Plugin.js:838:		// Added for saved state integration 2012-12-16 by HV:
share/assets/js/081-Plugin.js:861:			}),'-');
share/assets/js/081-Plugin.js:969:		// -- New: Persist checkIndexes for saved state integration:
share/assets/js/081-Plugin.js:971:		// --
share/assets/js/081-Plugin.js:976:			'<span class="superscript-green" style="font-weight:bold;padding-left:1px;">' + sup + '</span>';
share/assets/js/081-Plugin.js:996: 2011-06-08 by HV
share/assets/js/081-Plugin.js:1020:			itemId:'columns-new'
share/assets/js/081-Plugin.js:1024:Ext.preg('grid-hmenu-columns-toggle',Ext.ux.RapidApp.Plugin.GridHmenuColumnsToggle);
share/assets/js/081-Plugin.js:1029: 2012-07-21 by HV
share/assets/js/081-Plugin.js:1046:			itemId: 'clear-sort',
share/assets/js/081-Plugin.js:1047:			iconCls: 'ra-icon-remove-sort',
share/assets/js/081-Plugin.js:1057:		var clearSortItem = hmenu.getComponent('clear-sort');
share/assets/js/081-Plugin.js:1076:Ext.preg('grid-hmenu-clear-sort',Ext.ux.RapidApp.Plugin.GridHmenuClearSort);
share/assets/js/081-Plugin.js:1080: 2015-04-06 by TR
share/assets/js/081-Plugin.js:1115:				// seems that ExtJS adds them later on again, that bastard - TR
share/assets/js/081-Plugin.js:1118:				// -----------------
share/assets/js/081-Plugin.js:1135:				var newel = '<span class="multi-sort-pos">' + pos + '</span>';
share/assets/js/081-Plugin.js:1136:				var inner = item.select('div.x-grid3-hd-inner').first();
share/assets/js/081-Plugin.js:1138:					inner.select('span.multi-sort-pos').remove();
share/assets/js/081-Plugin.js:1222:				id: this.cmp.id + '-enable-multisort-field',
share/assets/js/081-Plugin.js:1224:				iconCls: 'ra-icon-multisort',
share/assets/js/081-Plugin.js:1240:				id: this.cmp.id + '-disable-multisort-field',
share/assets/js/081-Plugin.js:1242:				iconCls: 'ra-icon-multisort-cancel',
share/assets/js/081-Plugin.js:1259:				id: this.cmp.id + '-multisort-addsort-asc',
share/assets/js/081-Plugin.js:1261:				cls: 'xg-hmenu-sort-asc',
share/assets/js/081-Plugin.js:1283:				id: this.cmp.id + '-multisort-addsort-desc',
share/assets/js/081-Plugin.js:1285:				cls: 'xg-hmenu-sort-desc',
share/assets/js/081-Plugin.js:1307:				id: this.cmp.id + '-multi-sort-addsort'
share/assets/js/081-Plugin.js:1314:				id: this.cmp.id + '-multisort-addsort',
share/assets/js/081-Plugin.js:1316:				iconCls: 'ra-icon-multisort',
share/assets/js/081-Plugin.js:1329:				itemId: this.cmp.id + '-clear-multisort',
share/assets/js/081-Plugin.js:1330:				iconCls: 'ra-icon-remove-sort',
share/assets/js/081-Plugin.js:1348:				itemId: this.cmp.id + '-clear-currsort',
share/assets/js/081-Plugin.js:1349:				iconCls: 'ra-icon-multisort-remove',
share/assets/js/081-Plugin.js:1366:			id: this.cmp.id + '-multisort-field-' + col,
share/assets/js/081-Plugin.js:1378:			id: this.cmp.id + '-multi-sort'
share/assets/js/081-Plugin.js:1383:			if (v.getItemId() == 'clear-sort') { index = k }
share/assets/js/081-Plugin.js:1452:Ext.preg('grid-hmenu-multi-sort',Ext.ux.RapidApp.Plugin.GridHmenuMultiSort);
share/assets/js/081-Plugin.js:1537:				'&nbsp;<span style="font-weight:lighter;font-family:monospace;color:gray;">' + 
share/assets/js/081-Plugin.js:1555:		if(!cmp.labelWidth) { return; } // <-- a labelWidth must be set for plugin to be active
share/assets/js/081-Plugin.js:1564:			cls: 'x-hide-offsets',
share/assets/js/081-Plugin.js:1591:		return Ext.apply({},longField); //<-- return a copy instead of original
share/assets/js/081-Plugin.js:1594:Ext.preg('dynamic-label-width',Ext.ux.RapidApp.Plugin.DynamicFormLabelWidth);
share/assets/js/081-Plugin.js:1615:		var el1 = grid.getEl().child('div.x-grid3');
share/assets/js/081-Plugin.js:1617:		var el2 = grid.getEl().child('div.x-grid3-scroller');
share/assets/js/081-Plugin.js:1621:Ext.preg('grid-autoheight',Ext.ux.RapidApp.Plugin.gridAutoHeight);
share/assets/js/081-Plugin.js:1643:Ext.preg('iframe-autoheight',Ext.ux.RapidApp.Plugin.autoHeightIframe);
share/assets/js/081-Plugin.js:1650:		'background-color': 'transparent',
share/assets/js/081-Plugin.js:1651:		'border-color': 'transparent',
share/assets/js/081-Plugin.js:1652:		'background-image': 'none',
share/assets/js/081-Plugin.js:1654:		// the normal text field has padding-top: 2px which makes the text sit towards
share/assets/js/081-Plugin.js:1658:		'padding-top': '1px',
share/assets/js/081-Plugin.js:1659:		'padding-bottom': '1px'
share/assets/js/081-Plugin.js:1687:Ext.preg('read-only-field',Ext.ux.RapidApp.Plugin.ReadOnlyField);
share/assets/js/081-Plugin.js:1696:		cls: 'ra-icon-function-small',
share/assets/js/081-Plugin.js:1738:		// -- Make sure these exist to prevent possible undef errors later on:
share/assets/js/081-Plugin.js:1742:		// --
share/assets/js/081-Plugin.js:1828:        // NOTE: these only work in MySQL -- TODO: we need to return a different 
share/assets/js/081-Plugin.js:1887:				id: this.grid.id + '-summary-combo-field',
share/assets/js/081-Plugin.js:1894:				xtype: 'static-combo',
share/assets/js/081-Plugin.js:1944:			this.comboField = Ext.ComponentMgr.create(cnf,'static-combo');
share/assets/js/081-Plugin.js:1961:				id: this.grid.id + '-summary-funcs-field',
share/assets/js/081-Plugin.js:1965:				emptyClass: 'field-empty-text',
share/assets/js/081-Plugin.js:1966:				fieldClass: 'blue-text-code',
share/assets/js/081-Plugin.js:1967:				//style: { 'font-family': 'Courier', color: 'blue' },
share/assets/js/081-Plugin.js:1992:				id: this.grid.id + '-title-field',
share/assets/js/081-Plugin.js:1996:				emptyClass: 'field-empty-text',
share/assets/js/081-Plugin.js:2027:				id: this.grid.id + '-summary-menu',
share/assets/js/081-Plugin.js:2040:				iconCls: 'ra-icon-function-clear',
share/assets/js/081-Plugin.js:2041:				itemId: 'clear-all',
share/assets/js/081-Plugin.js:2049:				iconCls: 'ra-icon-checkbox-no',
share/assets/js/081-Plugin.js:2117:			'field-empty-text',
share/assets/js/081-Plugin.js:2118:			'padding-bottom:6px;'
share/assets/js/081-Plugin.js:2126:			storedata.push([func['function'],func.title,'x-no-class','']);
share/assets/js/081-Plugin.js:2132:			'blue-text-code-bold',
share/assets/js/081-Plugin.js:2133:			'padding-top:6px;font-size:1.15em;'
share/assets/js/081-Plugin.js:2141:				//menu.setIconClass('ra-icon-checkbox-yes');
share/assets/js/081-Plugin.js:2142:				menu.setIconClass('ra-icon-function');
share/assets/js/081-Plugin.js:2159:			menu.setIconClass('ra-icon-checkbox-no');
share/assets/js/081-Plugin.js:2249:			return; //<-- nothing changed
share/assets/js/081-Plugin.js:2308:			last = cs.length - 1;
share/assets/js/081-Plugin.js:2315:			p.css = i === 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : '');
share/assets/js/081-Plugin.js:2328:					p.value = '<span style="font-size:.9em;font-family:Courier;color:red;">' +
share/assets/js/081-Plugin.js:2333:          p.value = '<i style="font-size:.9em;font-family:Courier;color:grey;">' +
share/assets/js/081-Plugin.js:2341:					var html = '<div style="padding-top:6px;padding-bottom:5px;font-size:.9em;color:darkgray">' + 
share/assets/js/081-Plugin.js:2378:Ext.preg('appgrid-summary',Ext.ux.RapidApp.Plugin.AppGridSummary);
share/assets/js/081-Plugin.js:2381:// ------- http://extjs.com/forum/showthread.php?p=97676#post97676
share/assets/js/081-Plugin.js:2401:// -------
share/assets/js/081-Plugin.js:2410:			// ------- http://extjs.com/forum/showthread.php?p=97676#post97676
share/assets/js/081-Plugin.js:2419:				El.mask("Autosizing Columns...",'x-mask-loading');
share/assets/js/081-Plugin.js:2427:				// Shrink all columns to a floor value first because we can only "size-up"
share/assets/js/081-Plugin.js:2453:				var col = this.view.el.select("td.x-grid3-td-" + colid + " div:first-child");
share/assets/js/081-Plugin.js:2490:			// ------------------------
share/assets/js/081-Plugin.js:2529:				itemId: 'autosize-columns',
share/assets/js/081-Plugin.js:2530:				iconCls: 'ra-icon-left-right',
share/assets/js/081-Plugin.js:2531:				handler:this.autoSizeColumns, //<-- this does the full autosize which could be slow
share/assets/js/081-Plugin.js:2538:Ext.preg('appgrid-auto-colwidth',Ext.ux.RapidApp.Plugin.AppGridAutoColWidth);
share/assets/js/081-Plugin.js:2561:			if(ndx > this.maxSeparatorPosition) { return -1; }
share/assets/js/081-Plugin.js:2564:		return -1;
share/assets/js/081-Plugin.js:2568:		if((Ext.isObject(item) && item.itemCls == 'x-menu-sep') || item == '-') {
share/assets/js/081-Plugin.js:2576:		if(pos == -1) { 
share/assets/js/081-Plugin.js:2577:			this.colMenu.insert(0,'-');
share/assets/js/081-Plugin.js:2644:				if (index != -1) { cm.setHidden(index, !checked); }
share/assets/js/081-Plugin.js:2652:Ext.preg('appgrid-toggle-all-cols',Ext.ux.RapidApp.Plugin.AppGridToggleAllCols);
share/assets/js/081-Plugin.js:2665:		if(text.indexOf(str) != -1) { return true; }
share/assets/js/081-Plugin.js:2671:				if(text.indexOf(str) != -1) { return true; }
share/assets/js/081-Plugin.js:2676:				if(text.indexOf(str) != -1) { return true; }
share/assets/js/081-Plugin.js:2747:			emptyClass: 'field-empty-text',
share/assets/js/081-Plugin.js:2770:Ext.preg('appgrid-filter-cols',Ext.ux.RapidApp.Plugin.AppGridFilterCols);
share/assets/js/081-Plugin.js:2808:			iconCls: 'ra-icon-table-edit-row',
share/assets/js/081-Plugin.js:2824:				iconCls: 'ra-icon-table-sql-edit',
share/assets/js/081-Plugin.js:2830:						iconCls: 'ra-icon-table-edit-all',
share/assets/js/081-Plugin.js:2837:						iconCls: 'ra-icon-table-edit-row',
share/assets/js/081-Plugin.js:2913:			// Only show editable, non-hidden columns:
share/assets/js/081-Plugin.js:2953:			// http://www.sencha.com/forum/showthread.php?104490-Solved-Auto-growing-textarea-in-CompositeField&p=498813&viewfull=1#post498813
share/assets/js/081-Plugin.js:2961:				var labelEl = Field.getEl().parent('div.x-form-item').first('label');
share/assets/js/081-Plugin.js:2966:					labelEl.setStyle('font-weight','normal');
share/assets/js/081-Plugin.js:2967:					labelEl.setStyle('font-style','normal');
share/assets/js/081-Plugin.js:2972:					labelEl.setStyle('font-weight','bold');
share/assets/js/081-Plugin.js:2973:					labelEl.setStyle('font-style','italic');
share/assets/js/081-Plugin.js:3004:			//plugins: ['dynamic-label-width'],
share/assets/js/081-Plugin.js:3008:			defaults: { anchor: '-0' },
share/assets/js/081-Plugin.js:3051:					iconCls: 'ra-icon-save-ok',
share/assets/js/081-Plugin.js:3091:					'None of the currently selected columns are batch editable - nothing to Batch Modify.' +
share/assets/js/081-Plugin.js:3098:			{ html: '<div class="ra-batch-edit-heading">' +
share/assets/js/081-Plugin.js:3101:			{ html: '<div class="ra-batch-edit-sub-heading">' +
share/assets/js/081-Plugin.js:3103:				'<div class="warn-line"><span class="warn">WARNING</span>: This operation cannot be undone.</div>' +
share/assets/js/081-Plugin.js:3109:			{ html: '<div class="ra-batch-edit-sub-heading">' +
share/assets/js/081-Plugin.js:3110:				'<div class="warn-line">' +
share/assets/js/081-Plugin.js:3145:		/* --------------------------------------------------------------------------------- */
share/assets/js/081-Plugin.js:3151:		/* --------------------------------------------------------------------------------- */
share/assets/js/081-Plugin.js:3154:		var Conn = Ext.ux.RapidApp.newConn({ timeout: 300000 }); //<-- 5 minute timeout
share/assets/js/081-Plugin.js:3156:		var myMask = new Ext.LoadMask(win.getEl(), {msg:"Updating Multiple Records - This may take several minutes..."});
share/assets/js/081-Plugin.js:3189:		// create a single-use load mask for the update:
share/assets/js/081-Plugin.js:3190:		if(store.hasPendingChanges()) { //<-- it is *possible* nothing was changed
share/assets/js/081-Plugin.js:3197:			var lMask = new Ext.LoadMask(win.getEl(),{ msg:"Updating Multiple Records - Please Wait..."});
share/assets/js/081-Plugin.js:3207:			delete store.baseParams.batch_update; //<-- remove the tmp added batch_update param
share/assets/js/081-Plugin.js:3217:Ext.preg('appgrid-batch-edit',Ext.ux.RapidApp.Plugin.AppGridBatchEdit);
share/assets/js/081-Plugin.js:3225: 2012-04-08 by HV
share/assets/js/081-Plugin.js:3241:		// starting with '-' or '+', otherwise, use native behavior
share/assets/js/081-Plugin.js:3255:					// Generic setValue function on the non-inflated value:
share/assets/js/081-Plugin.js:3363:			//day++; if(day > 7) { day = 1; } //<-- shift day 1 from Monday to Sunday
share/assets/js/081-Plugin.js:3364:			var subtract = 1 - day;
share/assets/js/081-Plugin.js:3379:				subtract = month - 1;
share/assets/js/081-Plugin.js:3382:				subtract = month - 4;
share/assets/js/081-Plugin.js:3385:				subtract = month - 7;
share/assets/js/081-Plugin.js:3388:				subtract = month - 10;
share/assets/js/081-Plugin.js:3390:			return dt.add(Date.MONTH,0 - subtract).clearTime();
share/assets/js/081-Plugin.js:3401:		keyword = keyword.replace(/\s*/g,''); // <-- strip whitespace
share/assets/js/081-Plugin.js:3409:			if(str.search(/[\+\-]/) != -1){ return true; };
share/assets/js/081-Plugin.js:3417:		if(dt) { return dt; } //<-- if the supplied value is a start keyword alone
share/assets/js/081-Plugin.js:3419:		// find the offset of the sign char (the first + or -):
share/assets/js/081-Plugin.js:3420:		var pos = value.search(/[\+\-]/);
share/assets/js/081-Plugin.js:3421:		if(pos == -1) { return null; }
share/assets/js/081-Plugin.js:3435:		if(sign != '+' && sign != '-') { return null; }
share/assets/js/081-Plugin.js:3445:			if(sign == '-') { part.num = '-' + part.num; }
share/assets/js/081-Plugin.js:3471:			// If there are no numbers (pos == 0) or we didn't find any letters (pos == -1)
share/assets/js/081-Plugin.js:3485:			if(pos == -1) {
share/assets/js/081-Plugin.js:3581:				var existBtn = el.child('td.x-date-bottom table');
share/assets/js/081-Plugin.js:3590:						iconCls: 'ra-icon-clock-run',
share/assets/js/081-Plugin.js:3610:			text: '<span style="font-size:.9em;color:grey;">(None)</span>',
share/assets/js/081-Plugin.js:3630:				style: 'padding-top:5px;padding-left:5px;padding-right:5px;',
share/assets/js/081-Plugin.js:3637:						html: '<div class="ra-relative-date">' + 
share/assets/js/081-Plugin.js:3641:								'Prefix with a minus <span class="mono">(-)</span> for a date in the past or a plus ' + 
share/assets/js/081-Plugin.js:3656:								'<li>-1 day</li>' +
share/assets/js/081-Plugin.js:3658:								'<li>today -3d4h18mins</li>' +
share/assets/js/081-Plugin.js:3660:								'<li>this hour - 2 hours</li>' +
share/assets/js/081-Plugin.js:3667:								'<li>-2 years</li>' +
share/assets/js/081-Plugin.js:3669:								'<li>this year - 2 years</li>' +
share/assets/js/081-Plugin.js:3670:								'<li>this minute - 30 mins</li>' +
share/assets/js/081-Plugin.js:3690:				cls: 'ra-relative-date-renderval'
share/assets/js/081-Plugin.js:3695:				fieldClass: 'blue-text-code',
share/assets/js/081-Plugin.js:3801:Ext.preg('form-relative-datetime',Ext.ux.RapidApp.Plugin.RelativeDateTime);
share/assets/js/081-Plugin.js:3828:			this.menu.insert(0,filteritem,'-');
share/assets/js/081-Plugin.js:3843:			field.setWidth(this.menu.getWidth() - 25);
share/assets/js/081-Plugin.js:3860:		if((Ext.isObject(item) && item.itemCls == 'x-menu-sep') || item == '-') {
share/assets/js/081-Plugin.js:3870:			if(ndx > this.maxSeparatorPosition) { return -1; }
share/assets/js/081-Plugin.js:3873:		return -1;
share/assets/js/081-Plugin.js:3878:		if(pos == -1) { 
share/assets/js/081-Plugin.js:3879:			this.menu.insert(0,'-');
share/assets/js/081-Plugin.js:3894:		if(text.indexOf(str) != -1) { return true; }
share/assets/js/081-Plugin.js:3958:			emptyClass: 'field-empty-text',
share/assets/js/081-Plugin.js:3959:			width: 100, //<-- should be less than the minWidth of menu for proper auto-sizing
share/assets/js/081-Plugin.js:3981:Ext.preg('menu-filter',Ext.ux.RapidApp.Plugin.MenuFilter);
share/assets/js/081-Plugin.js:3987: 2012-11-08 by HV
share/assets/js/081-Plugin.js:4016:			iconCls: 'ra-icon-bullet-wrench',
share/assets/js/081-Plugin.js:4073:			//plugins: ['dynamic-label-width'],
share/assets/js/081-Plugin.js:4077:			defaults: { anchor: '-0' },
share/assets/js/081-Plugin.js:4088:					labelStyle: 'font-weight: bold;color:navy;',
share/assets/js/081-Plugin.js:4102:					style: 'font-family: monospace;',
share/assets/js/081-Plugin.js:4107:					anchor: '-0 -35',
share/assets/js/081-Plugin.js:4122:					iconCls: 'ra-icon-save-ok',
share/assets/js/081-Plugin.js:4131:					iconCls: 'ra-icon-save-ok',
share/assets/js/081-Plugin.js:4168:Ext.preg('grid-edit-advanced-config',Ext.ux.RapidApp.Plugin.GridEditAdvancedConfig);
share/assets/js/081-Plugin.js:4174: 2013-05-27 by HV
share/assets/js/081-Plugin.js:4203:			iconCls: 'ra-icon-bullet-wrench',
share/assets/js/081-Plugin.js:4258:			//plugins: ['dynamic-label-width'],
share/assets/js/081-Plugin.js:4262:			defaults: { anchor: '-0' },
share/assets/js/081-Plugin.js:4273:					style: 'font-family: monospace;',
share/assets/js/081-Plugin.js:4277:					anchor: '-0 -35',
share/assets/js/081-Plugin.js:4292:					iconCls: 'ra-icon-save-ok',
share/assets/js/081-Plugin.js:4330:Ext.preg('grid-edit-raw-columns',Ext.ux.RapidApp.Plugin.GridEditRawColumns);
share/assets/js/081-Plugin.js:4335:  menu_item_id: 'change-column-header',
share/assets/js/081-Plugin.js:4359:        style: 'bottom:-1px;',
share/assets/js/081-Plugin.js:4360:        cls: 'blue-text-code',
share/assets/js/081-Plugin.js:4370:        anchor: '-0'
share/assets/js/081-Plugin.js:4388:			//plugins: ['dynamic-label-width'],
share/assets/js/081-Plugin.js:4423:					iconCls: 'ra-icon-save-ok',
share/assets/js/081-Plugin.js:4489:      iconCls: 'ra-icon-textfield-edit',
share/assets/js/081-Plugin.js:4495:Ext.preg('grid-column-properties',Ext.ux.RapidApp.Plugin.GridColumnProperties);
share/assets/js/081-Plugin.js:4496:Ext.preg('grid-custom-headers',Ext.ux.RapidApp.Plugin.GridColumnProperties);
share/assets/js/081-Plugin.js:4508:  onIconCls: 'ra-icon-textfield-check',
share/assets/js/081-Plugin.js:4509:  offIconCls: 'ra-icon-textfield-cross',
share/assets/js/081-Plugin.js:4557:    var optionsBtn = tbar.getComponent('options-button');
share/assets/js/081-Plugin.js:4584:Ext.preg('grid-toggle-edit-cells',Ext.ux.RapidApp.Plugin.GridToggleEditCells);
share/assets/js/081-Plugin.js:4587:// This plugin is uses with the top-level Viewport to convert links to
share/assets/js/081-Plugin.js:4641:      // are iFrame-specific (target='_top' or '_parent'). We never want an
share/assets/js/081-Plugin.js:4678:Ext.preg('ra-link-click-catcher',Ext.ux.RapidApp.Plugin.LinkClickCatcher);
share/assets/js/081-Plugin.js:4696:      var height = adjHeight - offset - 60;
share/assets/js/081-Plugin.js:4701:Ext.preg('ra-parent-gluebottom', Ext.ux.RapidApp.Plugin.ParentGlueBottom);
share/assets/js/082-HtmlEditor.js:9:		'font-weight:bold;color:#444444;padding-right:2px;' +
share/assets/js/082-HtmlEditor.js:10:		'font-family:tahoma,helvetica,sans-serif;' + 
share/assets/js/082-HtmlEditor.js:24:			iconCls: 'ra-icon-bullet-wrench',
share/assets/js/082-HtmlEditor.js:25:			style: 'font-size:1.9em;',
share/assets/js/082-HtmlEditor.js:31:Ext.preg('htmleditor-toolsmenu',Ext.ux.RapidApp.Plugin.HtmlEditor.ToolsMenu);
share/assets/js/082-HtmlEditor.js:47:				iconCls: 'x-edit-image',
share/assets/js/082-HtmlEditor.js:97:						'The image is oversized and has been pre-shrunk for display <br>' +
share/assets/js/082-HtmlEditor.js:107:			img.link_url = ['_ra-rel-mnt_/simplecas/fetch_content/',img.checksum,'/',img.filename].join('');
share/assets/js/082-HtmlEditor.js:136:Ext.preg('htmleditor-casimage',Ext.ux.RapidApp.Plugin.HtmlEditor.SimpleCAS_Image);
share/assets/js/082-HtmlEditor.js:176:				iconCls: 'x-edit-image',
share/assets/js/082-HtmlEditor.js:239:Ext.preg('htmleditor-dvselect',Ext.ux.RapidApp.Plugin.HtmlEditor.DVSelect);
share/assets/js/082-HtmlEditor.js:286:			'->',
share/assets/js/082-HtmlEditor.js:302:Ext.preg('htmleditor-autosizers',Ext.ux.RapidApp.Plugin.HtmlEditor.AutoSizers);
share/assets/js/082-HtmlEditor.js:322:			iconCls: 'ra-icon-paste-document',
share/assets/js/082-HtmlEditor.js:370:			url:'/simplecas/texttranscode/transcode_html', // <-- Note: the pfx will be applied within Ajax code 
share/assets/js/082-HtmlEditor.js:379:Ext.preg('htmleditor-loadhtml',Ext.ux.RapidApp.Plugin.HtmlEditor.LoadHtmlFile);
share/assets/js/082-HtmlEditor.js:385:	iconCls: 'ra-icon-document-save',
share/assets/js/082-HtmlEditor.js:424:Ext.preg('htmleditor-save-mhtml',Ext.ux.RapidApp.Plugin.HtmlEditor.SaveMhtml);
share/assets/js/082-HtmlEditor.js:441:			iconCls: 'ra-icon-help',
share/assets/js/082-HtmlEditor.js:468:Ext.preg('htmleditor-loadhelp',Ext.ux.RapidApp.Plugin.HtmlEditor.LoadHelp);
share/assets/js/082-HtmlEditor.js:502:				iconCls: 'ra-icon-page-white-zip-link',
share/assets/js/082-HtmlEditor.js:544:			var url = ['_ra-rel-mnt_/simplecas/fetch_content/',packet.checksum,'/',packet.filename].join('');
share/assets/js/082-HtmlEditor.js:553:      url: '/simplecas/upload_file', // <-- Note: the pfx will be applied within Ajax code 
share/assets/js/082-HtmlEditor.js:561:Ext.preg('htmleditor-insertfile',Ext.ux.RapidApp.Plugin.HtmlEditor.InsertFile);
share/assets/js/082-HtmlEditor.js:567:  // -------
share/assets/js/082-HtmlEditor.js:568:  // Replacement code for now deprecated 'clickablelinks' plugin --
share/assets/js/082-HtmlEditor.js:588:  // -------
share/assets/js/082-HtmlEditor.js:595:      plugins.push('htmleditor-autosizers');
share/assets/js/082-HtmlEditor.js:600:			'htmleditor-toolsmenu',
share/assets/js/082-HtmlEditor.js:601:			'htmleditor-loadhtml',
share/assets/js/082-HtmlEditor.js:602:			'htmleditor-save-mhtml',
share/assets/js/082-HtmlEditor.js:603:			'htmleditor-loadhelp',
share/assets/js/082-HtmlEditor.js:604:			'htmleditor-insertfile',
share/assets/js/082-HtmlEditor.js:606:				ptype: 'htmleditor-casimage',
share/assets/js/082-HtmlEditor.js:635:							//height = height - 6; //<-- adjust for size of resizer (needed when handles: 's')
share/assets/js/082-HtmlEditor.js:649:Ext.reg('ra-htmleditor',Ext.ux.RapidApp.HtmlEditor);
share/assets/js/083-MdEditor.js:4:// ---------------------------------------------------------------------------------------
share/assets/js/083-MdEditor.js:8:  <link rel='stylesheet' href='_ra-rel-mnt_/assets/rapidapp/misc/static/simplemde/normalize.css' />
share/assets/js/083-MdEditor.js:10:  <link rel='stylesheet' href='_ra-rel-mnt_/assets/rapidapp/misc/static/simplemde/stylesheet.css' />
share/assets/js/083-MdEditor.js:11:  <link rel='stylesheet' href='_ra-rel-mnt_/assets/rapidapp/misc/static/simplemde/github-light.css' />
share/assets/js/083-MdEditor.js:12:  <link rel='stylesheet' href='_ra-rel-mnt_/assets/rapidapp/misc/static/simplemde/fonts/font-awesome.min.css' />
share/assets/js/083-MdEditor.js:13:  <link rel='stylesheet' href='_ra-rel-mnt_/assets/rapidapp/misc/static/simplemde/simplemde.min.css' />
share/assets/js/083-MdEditor.js:14:  <script src='_ra-rel-mnt_/assets/rapidapp/misc/static/simplemde/simplemde.min.js'></script>
share/assets/js/083-MdEditor.js:15:  <script src='_ra-rel-mnt_/assets/rapidapp/misc/static/simplemde/picoModal.js'></script>
share/assets/js/083-MdEditor.js:19:    // the min-height here must agree with the iframe in order for things to display properly
share/assets/js/083-MdEditor.js:20:    `.CodeMirror, .CodeMirror-scroll { min-height: 150px; }
share/assets/js/083-MdEditor.js:26:    `body           { background-color: white; }
share/assets/js/083-MdEditor.js:27:    .editor-toolbar { border-top-left-radius: 0;    border-top-right-radius: 0; }
share/assets/js/083-MdEditor.js:28:    .CodeMirror     { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
share/assets/js/083-MdEditor.js:30:    // disable display of the icon used for fullscreen - fullscreen doesn't work, but is needed
share/assets/js/083-MdEditor.js:31:    // by "side-by-side". This is hacky, but is the cleanest solution at this point
share/assets/js/083-MdEditor.js:32:    `.editor-toolbar a.fa-arrows-alt { display: none; }
share/assets/js/083-MdEditor.js:36:    `img { max-width: 100%; }
share/assets/js/083-MdEditor.js:41:    id='ta-target' 
share/assets/js/083-MdEditor.js:50:      element: document.getElementById("ta-target"),
share/assets/js/083-MdEditor.js:56:        "quote", "unordered-list", "ordered-list", "|",
share/assets/js/083-MdEditor.js:60:        // for side-by-side to work properly (seems to be a simplemde bug)
share/assets/js/083-MdEditor.js:61:        `"side-by-side", "fullscreen",
share/assets/js/083-MdEditor.js:68:          className: "fa fa-cloud-upload",
share/assets/js/083-MdEditor.js:78:// ---------------------------------------------------------------------------------------
share/assets/js/083-MdEditor.js:90:      // min-height and min-width set on the iframe below. But, we do provide a special override
share/assets/js/083-MdEditor.js:111:      iframe.style['min-height'] = '200px';
share/assets/js/083-MdEditor.js:112:      iframe.style['min-width'] = '500px'; // this is about as small as it can be w/o toolbar wrap
share/assets/js/083-MdEditor.js:135:        simplemde.codemirror.setSize(null,iframe.clientHeight - editorToolbarHeight);
share/assets/js/083-MdEditor.js:254:            '(','_ra-rel-mnt_/simplecas/fetch_content/',res.checksum,'/',res.filename,')'
share/assets/js/083-MdEditor.js:260:            '(','_ra-rel-mnt_/simplecas/fetch_content/',res.checksum,'/',res.filename,')'
share/assets/js/083-MdEditor.js:288:    Xhr.open('POST', '_ra-rel-mnt_/simplecas/upload_file');
share/assets/js/083-MdEditor.js:352:Ext.reg('ra-md-editor',Ext.ux.RapidApp.MdEditor);
share/assets/js/083-MdEditor.js:356:// is. However, since its a working implementation of an iframe-based plaintext editor, it is being
share/assets/js/084-AppTab.js:2:/* http://noteslog.com/post/crc32-for-javascript/
share/assets/js/084-AppTab.js:7:Version: 1.2 - 2006/11 - http://noteslog.com/category/javascript/ 
share/assets/js/084-AppTab.js:9:------------------------------------------------------------------------------- 
share/assets/js/084-AppTab.js:11:http://www.opensource.org/licenses/mit-license.php 
share/assets/js/084-AppTab.js:23:        crc = crc ^ (-1); 
share/assets/js/084-AppTab.js:29:        return crc ^ (-1); 
share/assets/js/084-AppTab.js:40:	itemId: 'load-target',
share/assets/js/084-AppTab.js:47:		if(this.id == 'main-load-target'){
share/assets/js/084-AppTab.js:58:        // there is no dashboard - or it has been made closable)
share/assets/js/084-AppTab.js:86:		// ------------------------------------------------------------
share/assets/js/084-AppTab.js:87:		// -- special HashNav behaviors if this is the main-load-target
share/assets/js/084-AppTab.js:88:		if(this.id == 'main-load-target'){
share/assets/js/084-AppTab.js:104:		// --
share/assets/js/084-AppTab.js:105:		// ------------------------------------------------------------
share/assets/js/084-AppTab.js:116:			iconCls: 'ra-icon-tabs-delete',
share/assets/js/084-AppTab.js:124:			iconCls: 'ra-icon-refresh',
share/assets/js/084-AppTab.js:132:			iconCls: 'ra-icon-tab-go',
share/assets/js/084-AppTab.js:140:			iconCls: 'ra-icon-tabs-delete',
share/assets/js/084-AppTab.js:150:		// -- New: Optionally get additional menu items defined in the tab itself:
share/assets/js/084-AppTab.js:158:		// --
share/assets/js/084-AppTab.js:164:		// stop browser menu event to prevent browser right-click context menu
share/assets/js/084-AppTab.js:184:      menuItems.splice(1,0,'-');
share/assets/js/084-AppTab.js:239:		if(cnf.newtab) { //<-- the newtab param is set by the "open another tab" plugin
share/assets/js/084-AppTab.js:251:		// -- New: apply optional second cnf argument:
share/assets/js/084-AppTab.js:255:		// --
share/assets/js/084-AppTab.js:258:			loadContentCnf: orig_cnf, //<-- save the cnf used
share/assets/js/084-AppTab.js:260:			//itemId: 'tab-' + Math.floor(Math.random()*100000),
share/assets/js/084-AppTab.js:264:			iconCls: 'ra-icon-loading',
share/assets/js/084-AppTab.js:277:		// ------------------------
share/assets/js/084-AppTab.js:291:		// ------------------------
share/assets/js/084-AppTab.js:293:		// ------------------------
share/assets/js/084-AppTab.js:297:		//var tabCrc = 'tab-crc' + crc32(Ext.encode(
share/assets/js/084-AppTab.js:309:		// ------------------------
share/assets/js/084-AppTab.js:325:				if(!setIconCls && tab.iconCls == 'ra-icon-loading') {
share/assets/js/084-AppTab.js:326:					setIconCls = 'ra-icon-page';
share/assets/js/084-AppTab.js:351:						setTitle = setTitle + '&nbsp;<span class="ra-tab-dirty-flag">*</span>';
share/assets/js/084-AppTab.js:355:						setTitle = '<div style="max-width:' + tp.tab_title_max_width + '" class="ra-short-tab-title">' + setTitle + '</div>';
share/assets/js/084-AppTab.js:367:				/* 'tabPath' - unfinished feature
share/assets/js/084-AppTab.js:396:			return 'tab-crc' + crc32(Ext.encode(
share/assets/js/084-AppTab.js:436:		loadTarget = cmp.getComponent('load-target');
share/assets/js/084-AppTab.js:447:		cnt.loadTargetObj = Ext.getCmp('main-load-target');
share/assets/js/084-AppTab.js:457:		loadTarget = cmp.getComponent('load-target');
share/assets/js/084-AppTab.js:462:	//tree.loadTargetObj = tree.ownerCt.ownerCt.getComponent('load-target');
share/assets/js/084-AppTab.js:470:  // -- NEW: ignore phantom records (Github Issue #26)
share/assets/js/084-AppTab.js:472:  // --
share/assets/js/084-AppTab.js:476:  // --- NEW: try to use REST nav (Github Issue #34)
share/assets/js/084-AppTab.js:487:  // ---
share/assets/js/084-AppTab.js:490:      // Original, pre-REST design
share/assets/js/084-AppTab.js:494:      // New: fall-back to the edit button action (if available if we're not 
share/assets/js/084-AppTab.js:532:		return this.id || (this.id = 'appgrid-' + (++Ext.Component.AUTO_ID));
share/assets/js/084-AppTab.js:536:		emptyText: '<div style="font-size:16px;color:#d0d0d0;padding-top:10px;padding-left:25px">' +
share/assets/js/084-AppTab.js:539:		// -- http://www.sencha.com/learn/legacy/Ext_FAQ_Grid#Maintain_GridPanel_scroll_position_across_Store_reloads
share/assets/js/084-AppTab.js:548:				(v.scrollTop == 0 ? 0 : v.scroller.dom.scrollHeight - v.scrollHeight);
share/assets/js/084-AppTab.js:559:    // NEW: 'ra-mo-expandable-max-height mh-200' triggers logic to limit row height, but with
share/assets/js/084-AppTab.js:562:      '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>',
share/assets/js/084-AppTab.js:563:        '<div class="x-grid3-cell-inner ra-mo-expandable-max-height mh-200 x-grid3-col-{id} x-unselectable" unselectable="on" {attr}>{value}</div>',
share/assets/js/084-AppTab.js:568:		// --
share/assets/js/084-AppTab.js:576:		// Return data as-is if primary_columns is not set:
share/assets/js/084-AppTab.js:600:	// TODO: factor to use Built-in ExtJS "state machine"
share/assets/js/084-AppTab.js:706:		// -- Force default sort to be DESC instead of ASC:
share/assets/js/084-AppTab.js:721:		// --
share/assets/js/084-AppTab.js:738:		// -- vv -- 
share/assets/js/084-AppTab.js:741:		this.plugins.push('grid-hmenu-columns-toggle');
share/assets/js/084-AppTab.js:742:		// -- ^^ --
share/assets/js/084-AppTab.js:744:		if(this.use_column_summaries) { this.plugins.push('appgrid-summary'); }
share/assets/js/084-AppTab.js:746:			this.plugins.push('appgrid-auto-colwidth'); 
share/assets/js/084-AppTab.js:750:		this.plugins.push('appgrid-toggle-all-cols');
share/assets/js/084-AppTab.js:751:		this.plugins.push('appgrid-filter-cols');
share/assets/js/084-AppTab.js:753:		this.plugins.push('appgrid-batch-edit'); 
share/assets/js/084-AppTab.js:786:		// -- If every single column is hidden, the the hmenu won't be available. Override
share/assets/js/084-AppTab.js:791:		// --
share/assets/js/084-AppTab.js:810:		if(this.force_disable_paging) { bbar_items.push('->'); }
share/assets/js/084-AppTab.js:819:				xtype:	'rapidapp-paging',
share/assets/js/084-AppTab.js:829:		// ----- MultiFilters: ----- //
share/assets/js/084-AppTab.js:834:		// ------------------------- //
share/assets/js/084-AppTab.js:836:		// ----- Clear Sort: ----- //
share/assets/js/084-AppTab.js:837:		this.plugins.push('grid-hmenu-clear-sort');
share/assets/js/084-AppTab.js:838:		// ----------------------- //
share/assets/js/084-AppTab.js:840:		// ----- Multi Sort: ----- //
share/assets/js/084-AppTab.js:842:			this.plugins.push('grid-hmenu-multi-sort');
share/assets/js/084-AppTab.js:844:		// ----------------------- //
share/assets/js/084-AppTab.js:846:		// ------ Grid Quick Search --------- //
share/assets/js/084-AppTab.js:850:				//iconCls:'ra-icon-zoom',
share/assets/js/084-AppTab.js:862:		// ---------------------------- //
share/assets/js/084-AppTab.js:865:		// ---- Delete support: LEGACY - this code is depricated by DataStorePlus 'destroy'
share/assets/js/084-AppTab.js:871:				iconCls: 'ra-icon-bullet-delete',
share/assets/js/084-AppTab.js:902:				'-'
share/assets/js/084-AppTab.js:928:    // This is duplicated in the 'grid-toggle-edit-cells' plugin but is
share/assets/js/084-AppTab.js:970:			//this.reloadColumns(); // <-- this has to be done effectively twice to make sure lastOptions are changed
share/assets/js/084-AppTab.js:995:		// alternate 'store_autoLoad' setting - see DataStore2.pm and datastore-plus plugin:
share/assets/js/084-AppTab.js:1003:    // -- Hooks to update the edit headers (pencil icon in column headers)
share/assets/js/084-AppTab.js:1010:    // --
share/assets/js/084-AppTab.js:1038:							'style="padding-left:0px;height:12px;color:#666666;" ' +
share/assets/js/084-AppTab.js:1039:							'class="ra-nav-link with-icon ra-icon-magnify-tiny"' + 
share/assets/js/084-AppTab.js:1041:						// using a bunch of &nbsp; instead of padding-left for IE. Idea is to push the 
share/assets/js/084-AppTab.js:1048:            iconCls: 'ra-nav-link ra-icon-magnifier ra-ra-icon-actioncolumn',
share/assets/js/084-AppTab.js:1112:	// Pulls a copy of the Tab right-click context menu into the Grid Options menu
share/assets/js/084-AppTab.js:1129:		optionsMenu.insert(0,'-');
share/assets/js/084-AppTab.js:1143:		cls: 'ra-icon-gray-pencil-tiny',
share/assets/js/084-AppTab.js:1186:				iconCls: 'ra-icon-page-excel',
share/assets/js/084-AppTab.js:1193:							iconCls: 'ra-icon-table-selection-row',
share/assets/js/084-AppTab.js:1194:							handler: function(item) { menu.doExport(false,false,'Excel','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); }
share/assets/js/084-AppTab.js:1199:							iconCls: 'ra-icon-table-selection-all',
share/assets/js/084-AppTab.js:1200:							handler: function(item) { menu.doExport(true,false,'Excel','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); }
share/assets/js/084-AppTab.js:1207:				iconCls: 'ra-icon-table',
share/assets/js/084-AppTab.js:1213:							iconCls: 'ra-icon-table-selection-row',
share/assets/js/084-AppTab.js:1218:							iconCls: 'ra-icon-table-selection-all',
share/assets/js/084-AppTab.js:1226:				iconCls: 'ra-icon-table',
share/assets/js/084-AppTab.js:1232:							iconCls: 'ra-icon-table-selection-row',
share/assets/js/084-AppTab.js:1233:							handler: function(item) { menu.doExport(false,false,'TSV','text/tab-separated-values'); }
share/assets/js/084-AppTab.js:1237:							iconCls: 'ra-icon-table-selection-all',
share/assets/js/084-AppTab.js:1238:							handler: function(item) { menu.doExport(true,false,'TSV','text/tab-separated-values'); }
share/assets/js/084-AppTab.js:1245:				iconCls: 'ra-icon-tree-expand',
share/assets/js/084-AppTab.js:1251:							iconCls: 'ra-icon-table-selection-row',
share/assets/js/084-AppTab.js:1256:							iconCls: 'ra-icon-table-selection-all',
share/assets/js/084-AppTab.js:1290:			// -- Get the params that the store last used to fetch from the server
share/assets/js/084-AppTab.js:1291:			// There is no built-in method to get this info, so this logic is basically
share/assets/js/084-AppTab.js:1300:			// --
share/assets/js/084-AppTab.js:1324:			var timeout = 900000; // 15-minutes
share/assets/js/084-AppTab.js:1326:      // ---------------
share/assets/js/084-AppTab.js:1327:      // 2013-09-21 by HV:
share/assets/js/084-AppTab.js:1333:			if(false && Ext.isGecko) { // FireFox (<-- now always false)
share/assets/js/084-AppTab.js:1339:      // ---------------
share/assets/js/084-AppTab.js:1341:				// Background download, since non-FF browsers can't detect download complete and
share/assets/js/084-AppTab.js:1385:      metaData.css = 'grid-cell-with-icon ' + loadCfg.iconCls;
share/assets/js/085-AppTree.js:17:	add_node_iconCls: 'ra-icon-add',
share/assets/js/085-AppTree.js:21:	delete_node_iconCls: 'ra-icon-delete',
share/assets/js/085-AppTree.js:25:	rename_node_iconCls: 'ra-icon-textfield-rename',
share/assets/js/085-AppTree.js:29:	reload_node_iconCls: 'ra-icon-refresh',
share/assets/js/085-AppTree.js:32:	copy_node_iconCls: 'ra-icon-element-copy',
share/assets/js/085-AppTree.js:50:	// the firebug console in the node right-click context menu
share/assets/js/085-AppTree.js:55:  // --------
share/assets/js/085-AppTree.js:68:  // --------
share/assets/js/085-AppTree.js:90:					iconCls: 'ra-icon-tree-expand',
share/assets/js/085-AppTree.js:102:					iconCls: 'ra-icon-tree-collapse',
share/assets/js/085-AppTree.js:113:				this.node_actions.push('-');
share/assets/js/085-AppTree.js:197:          iconCls: 'ra-icon-information',
share/assets/js/085-AppTree.js:214:			if(this.node_actions.length > 0 && this.node_actions[this.node_actions.length - 1] == '-') {
share/assets/js/085-AppTree.js:233:				this.tbar.items.push('->');
share/assets/js/085-AppTree.js:254:    // -----
share/assets/js/085-AppTree.js:255:    // Show a load mask for the loading of the root node - GitHub #126
share/assets/js/085-AppTree.js:271:    // -----
share/assets/js/085-AppTree.js:273:    // -- Reset node expand state on exception - GitHub Issue #127
share/assets/js/085-AppTree.js:289:        if(!itm.type) { throw "bad node_types entry - missing 'type' name/value"; }
share/assets/js/085-AppTree.js:302:		if(node == this.root) { return false; } // <-- ignore the root node
share/assets/js/085-AppTree.js:339:			success: Ext.emptyFn //<-- assume it worked, don't do anything if it didn't
share/assets/js/085-AppTree.js:346:			//this.ddAppendOnly = true; //<-- this disables setting "order"
share/assets/js/085-AppTree.js:386:			// since we have to run an async round-trip to the server
share/assets/js/085-AppTree.js:400:		   a lot of sense, and now a "Copy In-place" option is being added
share/assets/js/085-AppTree.js:401:		   as a right-click "action" and will use 'copy_node_url' too, so
share/assets/js/085-AppTree.js:408:				iconCls: 'ra-icon-element-copy',
share/assets/js/085-AppTree.js:419:				iconCls: 'ra-icon-element-into',
share/assets/js/085-AppTree.js:429:		// -- If no drop menu is set, and there is exactly 1 option (copy or move, but not both), 
share/assets/js/085-AppTree.js:444:		// --
share/assets/js/085-AppTree.js:447:		menuItems.push('-',{
share/assets/js/085-AppTree.js:449:			iconCls: 'x-tool x-tool-close',
share/assets/js/085-AppTree.js:517:		/* Per-action name validations: */
share/assets/js/085-AppTree.js:640:				if(action == '-' && menuItems.length == 0) { return; }
share/assets/js/085-AppTree.js:672:		//-- for debugging:
share/assets/js/085-AppTree.js:675:				'-',
share/assets/js/085-AppTree.js:686:		//--
share/assets/js/085-AppTree.js:689:		if(menuItems.length && menuItems[menuItems.length-1] == '-') {
share/assets/js/085-AppTree.js:712:		node = node || this.root; //<-- default to the root node
share/assets/js/085-AppTree.js:715:			// non-leaf nodes if they have a static defined list of children:
share/assets/js/085-AppTree.js:815:	// This works like an action (right-click) instead of a drag-drop
share/assets/js/085-AppTree.js:839:			url: null, // <-- url is required
share/assets/js/085-AppTree.js:926:					if(res.child_after) { // <-- for 'copy in place'
share/assets/js/085-AppTree.js:1033:				iconCls: 'ra-icon-textfield-rename',
share/assets/js/085-AppTree.js:1065:				tf.translated = true; // <-- prevent recursion
share/assets/js/085-AppTree.js:1311:			triggerClass:'x-form-clear-trigger',
share/assets/js/085-AppTree.js:1352:Ext.preg('apptree-filter',Ext.ux.RapidApp.AppTree.FilterPlugin);
share/assets/js/085-AppTree.js:1393:			trigger1Class:'x-form-clear-trigger',
share/assets/js/085-AppTree.js:1394:			trigger2Class: 'x-form-search-trigger',
share/assets/js/085-AppTree.js:1436:Ext.preg('apptree-serverfilter',Ext.ux.RapidApp.AppTree.ServerFilterPlugin);
share/assets/js/085-AppTree.js:1453: * @revision $Id: Ext.ux.tree.TreeFilterX.js 589 2009-02-21 23:30:18Z jozo $
share/assets/js/085-AppTree.js:1468: * <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
share/assets/js/085-AppTree.js:1469: * <input type="hidden" name="cmd" value="_s-xclick">
share/assets/js/085-AppTree.js:1471: * <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif"
share/assets/js/085-AppTree.js:1472: * border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
share/assets/js/085-AppTree.js:1581:// ----- 
share/assets/js/085-AppTree.js:1582:// Overrides to prevent exceptions when panel is closed while an Ajax load is in-progress
share/assets/js/085-AppTree.js:1612:// ----- 
share/assets/js/086-History.js:6: *      id     - the component ID of a ExtJS component which supports the NavState interface,
share/assets/js/086-History.js:7: *      oldVal - a string representing the previous navigation state
share/assets/js/086-History.js:8: *      newVal - a string representing the new navigation state.
share/assets/js/086-History.js:10: * The strings can be anything the caller wants.  They will be passed back as-is.
share/assets/js/086-History.js:15: *      navVal - a string representing the current navigation state
share/assets/js/086-History.js:17: *      navVal - a string previously passed to recordHistEvent
share/assets/js/086-History.js:74:			if(v.search && v.search('=') !== -1) { safe = false; }
share/assets/js/086-History.js:121:      //  infinate tabs can open! -- but, this appears to be caused from improper url %
share/assets/js/086-History.js:140:		var loadTarget = Ext.getCmp('main-load-target');
share/assets/js/086-History.js:180:				'" - HashNav form actions must be valid hashpaths starting with \'#!/\'');
share/assets/js/086-History.js:187:				'" - multiple question-mark (?) characters are not allowed');
share/assets/js/086-History.js:208:            alert("duplicate param name '" + name + "' in HashNav form/url - not supported");
share/assets/js/086-History.js:250:        document.title = title + ' - ' + Ext.ux.RapidApp.HashNav.INIT_TITLE;
share/assets/js/086-History.js:261:  // New: util function - converts a normal URL into a hashpath
share/assets/js/086-History.js:263:    // Return urls that already start with '#' as-is
share/assets/js/086-History.js:292:/* -- Old component-id-based history code
share/assets/js/086-History.js:303:	wrapIdx: function(idx) { return idx > 99? (idx - 100) : (idx < 0? idx + 100 : idx); },
share/assets/js/086-History.js:304:	isForwardNav: function(oldIdx, newIdx) { var diff= this.wrapIdx(newIdx-oldIdx); return diff < 50; },
share/assets/js/086-History.js:329:		//console.log('AutoHistory.performNav: '+id+'->setNav '+newVal);
share/assets/js/088-AppCombo2.js:3: Refactored based on example here (2011-05-10 by HV):
share/assets/js/088-AppCombo2.js:4: http://www.sencha.com/forum/showthread.php?128164-Set-value-on-a-searching-combo-box-SOLVED&highlight=combo+query+type
share/assets/js/088-AppCombo2.js:11:	selectNoneCls: 'ra-combo-select-none',
share/assets/js/088-AppCombo2.js:38:      // presence of lastQuery indicates a type-ahead in prog, don't clobber it
share/assets/js/088-AppCombo2.js:63:    // Handle the case of initialization with an existing 'value' - trigger a load
share/assets/js/088-AppCombo2.js:215:			data[this.displayField] = this.selectNoneValue; //<-- this is where we differ from None Record
share/assets/js/088-AppCombo2.js:271:	cls: 'with-icon',
share/assets/js/088-AppCombo2.js:296:				'<div class="x-combo-list-item">' +
share/assets/js/088-AppCombo2.js:297:					'<div class="with-icon {' + this.valueCssField + '}">' +
share/assets/js/088-AppCombo2.js:306:Ext.reg('ra-icon-combo',Ext.ux.RapidApp.AppCombo2.IconCombo);
share/assets/js/088-AppCombo2.js:313:Ext.reg('ra-all-icon-assets-combo',Ext.ux.RapidApp.AppCombo2.AllIconAssetsCombo);
share/assets/js/088-AppCombo2.js:323:	value_list: false, //<-- set value_list to an array of the static values for the combo dropdown
share/assets/js/088-AppCombo2.js:338:						// x-null-class because it has to be something for replaceClass to work
share/assets/js/088-AppCombo2.js:339:						this.storedata.push([item,item,'x-null-class','']);
share/assets/js/088-AppCombo2.js:355:					'<div class="x-combo-list-item {' + this.valueCssField + '}" ' +
share/assets/js/088-AppCombo2.js:376:			// pre-init menu for performance:
share/assets/js/088-AppCombo2.js:420:				plugins: ['menu-filter'],
share/assets/js/088-AppCombo2.js:445:				el.setStyle('font-weight','bold');
share/assets/js/088-AppCombo2.js:446:				mitem.setIconClass('ra-icon-checkbox-yes');
share/assets/js/088-AppCombo2.js:449:				el.setStyle('font-weight','normal');
share/assets/js/088-AppCombo2.js:456:Ext.reg('static-combo',Ext.ux.RapidApp.StaticCombo);
share/assets/js/088-AppCombo2.js:465:	* @cfg {String} fieldClass The default CSS class for the field (defaults to <tt>"x-form-display-field"</tt>)
share/assets/js/088-AppCombo2.js:467:	fieldClass : "x-form-display-field",
share/assets/js/088-AppCombo2.js:469:	* @cfg {Boolean} htmlEncode <tt>false</tt> to skip HTML-encoding the text when rendering it (defaults to
share/assets/js/088-AppCombo2.js:569:			if(xtype.search('form') != -1 || xtype.search('field') != -1) {
share/assets/js/088-AppCombo2.js:604:Ext.reg('click-action-field',Ext.ux.RapidApp.ClickActionField);
share/assets/js/088-AppCombo2.js:613:	fieldClass: 'x-form-field x-grid3-hd-inner no-text-select',
share/assets/js/088-AppCombo2.js:660:      var icon_cls = itm.cls || 'ra-icon-bullet-arrow-down';
share/assets/js/088-AppCombo2.js:661:      renderVal = '<div class="with-icon ' + icon_cls + '">' + text + '</div>';
share/assets/js/088-AppCombo2.js:708:Ext.reg('cycle-field',Ext.ux.RapidApp.ClickCycleField);
share/assets/js/088-AppCombo2.js:730:				el.addClass('menu-field-current-value');
share/assets/js/088-AppCombo2.js:733:				el.removeClass('menu-field-current-value');	
share/assets/js/088-AppCombo2.js:752:						iconCls : 'ra-icon-bullet-arrow-down',
share/assets/js/088-AppCombo2.js:753:						style: 'font-weight:bold;color:#333333;cursor:auto;padding-right:5px;',
share/assets/js/088-AppCombo2.js:774:				if(itm.cls) { menu_item.iconCls = 'with-icon ' + itm.cls; }
share/assets/js/088-AppCombo2.js:837:Ext.reg('menu-field',Ext.ux.RapidApp.ClickMenuField);
share/assets/js/088-AppCombo2.js:848:  uploadUrl: '/simplecas/upload_file', // <-- Note: the pfx will be applied within Ajax code 
share/assets/js/088-AppCombo2.js:916:        iconCls: 'ra-icon-selection',
share/assets/js/088-AppCombo2.js:959:Ext.reg('cas-upload-field',Ext.ux.RapidApp.CasUploadField);
share/assets/js/088-AppCombo2.js:964:  simple_value: false, // <-- this is only for back-compat!
share/assets/js/088-AppCombo2.js:966:  uploadUrl: '/simplecas/upload_image', // <-- Note: the pfx will be applied within Ajax code 
share/assets/js/088-AppCombo2.js:986:  // different from the add/edit form, which is non-custom and displaying a full-width 
share/assets/js/088-AppCombo2.js:1034:          'The image is oversized and has been pre-shrunk for display <br>' +
share/assets/js/088-AppCombo2.js:1056:          ' style="background-color:yellow;"' +
share/assets/js/088-AppCombo2.js:1064:Ext.reg('cas-image-field',Ext.ux.RapidApp.CasImageField);
share/assets/js/088-AppCombo2.js:1074:	fieldClass: 'ra-datastore-app-field',
share/assets/js/088-AppCombo2.js:1075:	invalidClass: 'ra-datastore-app-field-invalid',
share/assets/js/088-AppCombo2.js:1076:	updatingClass: 'ra-datastore-app-field-updating',
share/assets/js/088-AppCombo2.js:1108:		// -- Automatically hide the window if it is visible and a nav/load target
share/assets/js/088-AppCombo2.js:1111:		var loadTarget = Ext.getCmp("main-load-target");
share/assets/js/088-AppCombo2.js:1119:		// --
share/assets/js/088-AppCombo2.js:1170:		if(!store || !value) { return -1; }
share/assets/js/088-AppCombo2.js:1188:		if(index == -1) { return null; }
share/assets/js/088-AppCombo2.js:1284:				// ------- Handle special case where the grid is editable and the user makes changes
share/assets/js/088-AppCombo2.js:1285:				// that they don't save before clicking select. Save them, then re-update the field
share/assets/js/088-AppCombo2.js:1288:				// confirm save dialog in datastore-plus which is where this code was copied from
share/assets/js/088-AppCombo2.js:1301:				// -------
share/assets/js/088-AppCombo2.js:1321:				iconCls: 'ra-icon-selection-up-blue',
share/assets/js/088-AppCombo2.js:1328:				text: '<span style="font-weight:bold;font-size:1.1em;">Add New</span>',
share/assets/js/088-AppCombo2.js:1329:				iconCls: 'ra-icon-selection-add',
share/assets/js/088-AppCombo2.js:1335:				'->',
share/assets/js/088-AppCombo2.js:1343:					iconCls: 'ra-icon-selection',
share/assets/js/088-AppCombo2.js:1354:			// If this is an editable appgrid, convert it to a non-editable appgrid:
share/assets/js/088-AppCombo2.js:1388:				tbar:[add_btn,'->'],
share/assets/js/088-AppCombo2.js:1393:					cfg.title = '<span style="font-weight:bold;font-size:1.2em;" class="with-icon ra-icon-selection-add">' +
share/assets/js/088-AppCombo2.js:1400:								text: '<span style="font-weight:bold;font-size:1.1em;">&nbsp;Save &amp; Select</span>',
share/assets/js/088-AppCombo2.js:1401:								iconCls: 'ra-icon-selection-new',
share/assets/js/088-AppCombo2.js:1453:							// -- New feature added to AppGrid2. Make sure that our value field
share/assets/js/088-AppCombo2.js:1459:							// --
share/assets/js/088-AppCombo2.js:1492:							// one-off load call if the window is already visible:
share/assets/js/088-AppCombo2.js:1510:								// Only auto-select new record if exactly 1 record was added and is not a phantom:
share/assets/js/088-AppCombo2.js:1558:									if(index != -1) { 
share/assets/js/088-AppCombo2.js:1562:											if(rowEl) { rowEl.addClass('ra-bold-grid-row'); }
share/assets/js/088-AppCombo2.js:1580:							// any existing double-click open setting. TODO: do this properly
share/assets/js/088-AppCombo2.js:1616:		if(colname.search(/__/) == -1) {
share/assets/js/088-AppCombo2.js:1617:			// hackish, fixme. If there is no double-underscore (aka join) we add
share/assets/js/088-AppCombo2.js:1697:Ext.reg('datastore-app-field',Ext.ux.RapidApp.DataStoreAppField);
share/assets/js/088-AppCombo2.js:1702:	fieldClass: 'ra-datastore-app-field ra-wrap-on',
share/assets/js/088-AppCombo2.js:1703:	invalidClass: 'ra-datastore-app-field-invalid',
share/assets/js/088-AppCombo2.js:1707:	padDelimiter: false, //<-- set ', ' instead of ','
share/assets/js/088-AppCombo2.js:1708:	trimWhitespace: false, //<-- must be true if padDelimiter is true
share/assets/js/088-AppCombo2.js:1710:	value_list: [], //<-- the values that can be set/selected
share/assets/js/088-AppCombo2.js:1779:			var selectall_item = this.menu.getComponent('select-all');
share/assets/js/088-AppCombo2.js:1803:			itemId: 'select-all',
share/assets/js/088-AppCombo2.js:1848:				items.push(this.getSelectAllItem(),'-'); 
share/assets/js/088-AppCombo2.js:1871:			items.push('-',{
share/assets/js/088-AppCombo2.js:1872:				style: 'font-weight:bold;color:#333333;',
share/assets/js/088-AppCombo2.js:1874:				iconCls: 'ra-icon-accept',
share/assets/js/088-AppCombo2.js:1891:Ext.reg('list-edit-field',Ext.ux.RapidApp.ListEditField);
share/assets/js/088-AppCombo2.js:1939:Ext.reg('multi-check-combo',Ext.ux.RapidApp.MultiCheckCombo);
share/assets/js/088-AppCombo2.js:1944:  cls: 'ra-hex-string',
share/assets/js/088-AppCombo2.js:1960:Ext.reg('ra-hexfield',Ext.ux.RapidApp.HexField);
share/assets/js/088-AppCombo2.js:1972:    '<span style="font-size:11px;" class="x-form-item ra-null-val">',
share/assets/js/088-AppCombo2.js:2018:      //plugins: ['dynamic-label-width'],
share/assets/js/088-AppCombo2.js:2022:      defaults: { anchor: '-0' },
share/assets/js/088-AppCombo2.js:2030:            '<div class="ra-change-pw-heading">',
share/assets/js/088-AppCombo2.js:2031:              '<div style="padding-top:20px;">Set&nbsp;Password</div>',
share/assets/js/088-AppCombo2.js:2059:          iconCls: 'ra-icon-key',
share/assets/js/088-AppCombo2.js:2140:Ext.reg('ra-change-password-field',Ext.ux.RapidApp.ChangePasswordField);
share/assets/js/089-MultilineToolbar.js:4: * Taken from http://www.sencha.com/forum/showthread.php?109569-Multiline-Toolbar-Extension&highlight=HtmlEditor+css
share/assets/js/089-MultilineToolbar.js:26:      } else if (c == '-') {
share/assets/js/089-MultilineToolbar.js:30:      } else if (c == '->') {
share/assets/js/089-MultilineToolbar.js:91:        targetTable.addClass('x-toolbar-add-row');
share/assets/js/089-MultilineToolbar.js:98:      layout.leftTr   = targetTable.child('tr.x-toolbar-left-row', true);
share/assets/js/089-MultilineToolbar.js:99:      layout.rightTr  = targetTable.child('tr.x-toolbar-right-row', true);
share/assets/js/089-MultilineToolbar.js:100:      layout.extrasTr = targetTable.child('tr.x-toolbar-extras-row', true);
share/assets/js/089-MultilineToolbar.js:106:      target.addClass('x-toolbar-layout-ct');
share/assets/js/089-MultilineToolbar.js:129:        position = -1;
share/assets/js/090-Ext.ux.ComponentDataView.js:2: http://www.sencha.com/forum/showthread.php?79210-ComponentDataView-Ext-components-inside-a-dataview-or-listview
share/assets/js/090-Ext.ux.ComponentDataView.js:16:        this.renderItems(0, this.store.getCount() - 1);
share/assets/js/090-Ext.ux.ComponentDataView.js:20:        if(index > -1){
share/assets/js/090-Ext.ux.ComponentDataView.js:24:        if(index > -1){
share/assets/js/090-Ext.ux.ComponentDataView.js:32:            this.renderItems(index, index + records.length - 1);
share/assets/js/091-Template-Controller.js:32:        var tplEl = El.up('div.ra-template',1); // only consider immediate parent
share/assets/js/091-Template-Controller.js:36:        var tplEl = El.up('div.ra-template',2); // only consider immediate parent + 1
share/assets/js/091-Template-Controller.js:105:    // New: if our own panel supports 'reload' -- use it
share/assets/js/091-Template-Controller.js:158:              '<div class="ra-template">',
share/assets/js/091-Template-Controller.js:159:                '<div class="tpl-error">',
share/assets/js/091-Template-Controller.js:160:                  '<div class="error-msg">',
share/assets/js/091-Template-Controller.js:213:    if (format == 'html-snippet') {
share/assets/js/091-Template-Controller.js:217:        xtype: 'ra-htmleditor',
share/assets/js/091-Template-Controller.js:223:        xtype: 'ra-md-editor',
share/assets/js/091-Template-Controller.js:231:        style: 'font-family: monospace;'
share/assets/js/091-Template-Controller.js:251:          '<br><b>Really delete </b><span class="tpl-name">',
share/assets/js/091-Template-Controller.js:273:      anchor: '-0 -5'
share/assets/js/091-Template-Controller.js:275:    // Format-specific config:
share/assets/js/091-Template-Controller.js:279:      '->',
share/assets/js/091-Template-Controller.js:283:        iconCls: 'ra-icon-save-ok',
share/assets/js/091-Template-Controller.js:303:        iconCls: 'ra-icon-garbage',
share/assets/js/091-Template-Controller.js:316:			//plugins: ['dynamic-label-width'],
share/assets/js/091-Template-Controller.js:321:			defaults: { anchor: '-0' },
share/assets/js/091-Template-Controller.js:353:Ext.preg('template-controller-panel',Ext.ux.RapidApp.Plugin.TemplateControllerPanel);
share/assets/js/183-MultiFilter.js:82:				add_to_cmp.add('-');
share/assets/js/183-MultiFilter.js:115:		var iconCls = 'ra-icon-funnel'; //<-- no filters
share/assets/js/183-MultiFilter.js:120:			iconCls = 'ra-icon-funnel-edit'; //<-- only normal filters
share/assets/js/183-MultiFilter.js:121:			if(fcount) { iconCls = 'ra-icon-funnel-new-edit'; } //<-- both normal + frozen
share/assets/js/183-MultiFilter.js:124:			iconCls = 'ra-icon-funnel-new'; //<-- only frozen filters
share/assets/js/183-MultiFilter.js:138:				if (item['-and']) { return recurseCount(item['-and']); }
share/assets/js/183-MultiFilter.js:139:				if (item['-or']) { return recurseCount(item['-or']); }
share/assets/js/183-MultiFilter.js:167:				count = set.items.length - 1;
share/assets/js/183-MultiFilter.js:181:        '<img src="',url,'" style="padding-bottom:3px;">&nbsp;&nbsp;',
share/assets/js/183-MultiFilter.js:190:				style: 'color:gray;font-size:1.2em;font-weight:bold;'
share/assets/js/183-MultiFilter.js:194:		var button_Align = 'right'; //<-- default
share/assets/js/183-MultiFilter.js:200:				iconCls: 'ra-icon-arrow-up',
share/assets/js/183-MultiFilter.js:216:			}),'->');
share/assets/js/183-MultiFilter.js:222:				style: 'padding-left:5px;',
share/assets/js/183-MultiFilter.js:223:				text: 'Un-Freeze Conditions',
share/assets/js/183-MultiFilter.js:224:				iconCls: 'ra-icon-arrow-down',
share/assets/js/183-MultiFilter.js:246:			iconCls: 'ra-icon-save-ok',
share/assets/js/183-MultiFilter.js:261:        // clear start (necessary if we have paging) - resets to page 1
share/assets/js/183-MultiFilter.js:273:			//iconCls: 'ra-icon-close',
share/assets/js/183-MultiFilter.js:281:			anchor: '-0',
share/assets/js/183-MultiFilter.js:288:    // -- NEW: Set the window size taking the active 
share/assets/js/183-MultiFilter.js:297:    //  winWidth = browserSize.width - 20;
share/assets/js/183-MultiFilter.js:300:    //  winHeight = browserSize.hight - 20;
share/assets/js/183-MultiFilter.js:304:    // --
share/assets/js/183-MultiFilter.js:323:					cls: 'x-toolbar x-small-editor',
share/assets/js/183-MultiFilter.js:324:					anchor: '-0', 
share/assets/js/183-MultiFilter.js:378:Ext.reg('multifilter-sc', Ext.ux.MultiFilter.StaticCombo);
share/assets/js/183-MultiFilter.js:514:		return Ext.ComponentMgr.create(this.field_combo_cnf,'static-combo');
share/assets/js/183-MultiFilter.js:515:		//return Ext.ComponentMgr.create(this.field_combo_cnf,'menu-field');
share/assets/js/183-MultiFilter.js:540:		return Ext.ComponentMgr.create(this.cond_combo_cnf,'static-combo');
share/assets/js/183-MultiFilter.js:552:		var init_value = 'is null';// <-- default
share/assets/js/183-MultiFilter.js:569:			xtype: 'static-combo',
share/assets/js/183-MultiFilter.js:724:			// (this is an issue with 'menu-field' setup by RapidApp::Column)
share/assets/js/183-MultiFilter.js:739:				plugins: ['form-relative-datetime'],
share/assets/js/183-MultiFilter.js:740:				noReplaceDurations: true, //<-- option of the form-relative-datetime plugin
share/assets/js/183-MultiFilter.js:741:				format: 'Y-m-d'
share/assets/js/183-MultiFilter.js:747:				plugins: ['form-relative-datetime'],
share/assets/js/183-MultiFilter.js:748:				noReplaceDurations: true, //<-- option of the form-relative-datetime plugin
share/assets/js/183-MultiFilter.js:749:				format: 'Y-m-d H:i'
share/assets/js/183-MultiFilter.js:755:				style: 'text-align:left;',
share/assets/js/183-MultiFilter.js:807:		// --- translate relationship column to its id *or* render col ---
share/assets/js/183-MultiFilter.js:818:		// --- ---
share/assets/js/183-MultiFilter.js:871:	cls: 'x-toolbar x-small-editor', // < --- this makes the container look like a toolbar
share/assets/js/183-MultiFilter.js:872:	//cls: 'x-toolbar', // < --- this makes the container look like a toolbar
share/assets/js/183-MultiFilter.js:875:		'border-width': '1px 1px 1px 1px'
share/assets/js/183-MultiFilter.js:919:						btn.btnEl.replaceClass('x-multifilter-not-off', 'x-multifilter-not-on');
share/assets/js/183-MultiFilter.js:922:						btn.btnEl.replaceClass('x-multifilter-not-on', 'x-multifilter-not-off');
share/assets/js/183-MultiFilter.js:927:						btn.btnEl.addClass('x-multifilter-not');
share/assets/js/183-MultiFilter.js:937:				//iconCls: 'ra-icon-arrow-down',
share/assets/js/183-MultiFilter.js:941:				itemId: 'down-button',
share/assets/js/183-MultiFilter.js:954:				//iconCls: 'ra-icon-arrow-up',
share/assets/js/183-MultiFilter.js:958:				itemId: 'up-button',
share/assets/js/183-MultiFilter.js:964:					return Ext.ux.MultiFilter.movefilter(set,filter,-1);
share/assets/js/183-MultiFilter.js:971:				//iconCls: 'ra-icon-delete',
share/assets/js/183-MultiFilter.js:995:		var max = set.items.getCount() - 2;
share/assets/js/183-MultiFilter.js:997:		var upBtn = this.getComponent('up-button');
share/assets/js/183-MultiFilter.js:998:		var downBtn = this.getComponent('down-button');
share/assets/js/183-MultiFilter.js:1063:			iconCls: 'ra-icon-add',
share/assets/js/183-MultiFilter.js:1074:			iconCls: 'ra-icon-add',
share/assets/js/183-MultiFilter.js:1109:		this.insert(count - 1,item);
share/assets/js/183-MultiFilter.js:1133:		if(Ext.isArray(item) && item.length == 1 && ! item[0]['-or']) {
share/assets/js/183-MultiFilter.js:1136:		if(Ext.isArray(new_item) && new_item.length == 1  && ! new_item[0]['-or']) {
share/assets/js/183-MultiFilter.js:1140:		if(item['-and']) {
share/assets/js/183-MultiFilter.js:1141:			new_item = item['-and'];
share/assets/js/183-MultiFilter.js:1143:		if(item['-or']) {
share/assets/js/183-MultiFilter.js:1144:			new_item = item['-or'];
share/assets/js/183-MultiFilter.js:1194:				data.push({'-or': curdata});
share/assets/js/183-MultiFilter.js:1201:					curdata.push({'-and': list});
share/assets/js/183-MultiFilter.js:1229:	var max = set.items.getCount() - 1;
share/assets/js/400-Ajax.js:4: * We first set up a closure that can re-issue the current request, and then check headers
share/assets/js/400-Ajax.js:56:      encoding = 'multipart/form-data',
share/assets/js/400-Ajax.js:68:      cls: 'x-hidden',
share/assets/js/400-Ajax.js:97:    addParam('RequestContentType', 'text/x-rapidapp-form-response');
share/assets/js/400-Ajax.js:117:          // Here, we modify the ExtJS stuff to also include out-of-band data that would normally be
share/assets/js/400-Ajax.js:179:    // If our owner is the RapidApp 'main-load-target' TabPanel, this will
share/assets/js/400-Ajax.js:188:    return this.id || (this.id = 'ap-' + (++Ext.Component.AUTO_ID));
share/assets/js/400-Ajax.js:198:      tabIconCls: 'ra-icon-warning' 
share/assets/js/400-Ajax.js:204:     '<span style="font-size:.7em;">',
share/assets/js/400-Ajax.js:205:     '<i style="white-space:normal;">If you continue to receive this message, please contact your ',
share/assets/js/400-Ajax.js:207:     '<div class="retry-foot">',
share/assets/js/400-Ajax.js:210:          'class="with-icon ra-icon-refresh-24x24 ra-autopanel-reloader"',
share/assets/js/400-Ajax.js:211:          'style="font-size:1.5em;display:inline;vertical-align:baseline;padding-left:40px;"',
share/assets/js/400-Ajax.js:218:    opt.msg = '<div style="padding:10px;font-size:1.3em;color:navy;">&nbsp;&nbsp;' +
share/assets/js/400-Ajax.js:224:    // All-purpose timeout message:
share/assets/js/400-Ajax.js:229:       '<ol style="list-style:circle inside;padding:20px;font-size:.8em;color:navy;">' +
share/assets/js/400-Ajax.js:241:    // --- RapidApp Exceptions are handled in global Ajax handlers:
share/assets/js/400-Ajax.js:244:      response.getResponseHeader('X-RapidApp-Exception')
share/assets/js/400-Ajax.js:246:    // ---
share/assets/js/400-Ajax.js:254:  // an exception (X-RapidApp-Exception) occurs during content load:
share/assets/js/400-Ajax.js:258:    // -- Set the 'Updater' timeout: (note conversion from millisecs to secs)
share/assets/js/400-Ajax.js:265:    // --
share/assets/js/400-Ajax.js:267:    // -----  AutoPanel failure handler  -----
share/assets/js/400-Ajax.js:269:    // -----   ***   -----
share/assets/js/400-Ajax.js:277:    // -- Make sure no highlighting can happen during load (this prevents highlight
share/assets/js/400-Ajax.js:278:    //    bugs that can happen if we double-clicked something to spawn this panel)
share/assets/js/400-Ajax.js:282:      thisEl.addClass('ra-ap-body');
share/assets/js/400-Ajax.js:283:      thisEl.addClass('no-text-select');
share/assets/js/400-Ajax.js:288:      // Listen for clicks on custom 'ra-autopanel-reloader' elements
share/assets/js/400-Ajax.js:294:        if(target && target.hasClass('ra-autopanel-reloader')) {
share/assets/js/400-Ajax.js:306:      thisEl.removeClass('no-text-select');
share/assets/js/400-Ajax.js:308:    // --
share/assets/js/400-Ajax.js:316:          var conf, content_type = response.getResponseHeader('Content-Type');
share/assets/js/400-Ajax.js:319:          // Expected content-type returned by a RapidApp module:
share/assets/js/400-Ajax.js:326:                'RapidApp Ext.ux.AutoPanel render exception - ',
share/assets/js/400-Ajax.js:333:            var html, title, icon = 'ra-icon-document', 
share/assets/js/400-Ajax.js:334:              style = "font-weight:lighter;font-family:arial;";
share/assets/js/400-Ajax.js:336:              icon = 'ra-icon-page-white-world';
share/assets/js/400-Ajax.js:339:              // --- Support special syntax to parse tab title/icon/style
share/assets/js/400-Ajax.js:355:              // ---
share/assets/js/400-Ajax.js:358:              icon = 'ra-icon-page-white-text';
share/assets/js/400-Ajax.js:362:              icon: 'ra-icon-page-white';
share/assets/js/400-Ajax.js:363:              html = '<b>Warning, Unknown Content-Type: ' + content_type + 
share/assets/js/400-Ajax.js:369:              var size = response.getResponseHeader('Content-Length');
share/assets/js/400-Ajax.js:384:          // new: 'update_cmpConfig' - same thing as cmpConfig except it is a
share/assets/js/400-Ajax.js:385:          // function-based api which allows updating the config based on 
share/assets/js/400-Ajax.js:398:          // ------------------------------------
share/assets/js/400-Ajax.js:399:          // TODO/FIXME: new feature - deduplicate/refactor/merge with above -
share/assets/js/400-Ajax.js:420:              conf.tabIconCls = titleEl.getAttribute('class') || conf.tabIconCls || 'ra-icon-page-white-world';
share/assets/js/400-Ajax.js:423:          // ------------------------------------
share/assets/js/400-Ajax.js:434:          // set the default body class to 'ra-scoped-reset' to escape from the
share/assets/js/400-Ajax.js:437:            conf.bodyCssClass = 'ra-scoped-reset';
share/assets/js/400-Ajax.js:446:          // dynamic panel, or hard-coded on the autopanel container itself:
share/assets/js/400-Ajax.js:468:    // Always attempt to find and remove loading-indicator
share/assets/js/400-Ajax.js:474:    // Clear the existing innerHTML (deletes the loading-indicator)
share/assets/js/400-Ajax.js:475:    // Previously, the loading-indicator was just hidden off the bottom
share/assets/js/400-Ajax.js:490:        '<div class="ra-autopanel-error">',
share/assets/js/400-Ajax.js:491:          '<div class="ra-exception-heading">',
share/assets/js/400-Ajax.js:493:            '<span style="padding-left:20px;">',
share/assets/js/400-Ajax.js:494:              '<a class="with-icon ra-icon-refresh ra-autopanel-reloader">',
share/assets/js/400-Ajax.js:495:                '<span class="ra-autopanel-reloader">',
share/assets/js/400-Ajax.js:510:      tabIconCls: 'ra-icon-cancel',
share/assets/js/400-Ajax.js:530:    var loadEl = this.getEl().child('div.loading-indicator');
share/assets/js/400-Ajax.js:538:    // DataStorePlus-driven components, but is the right/clean thing to do 
share/assets/js/400-Ajax.js:543:    // UPDATE -- don't do this after all because it can lead to a deadlock situation
share/assets/js/400-Ajax.js:553:    // Clear *only* 'beforeremove' events -- we can't call purgeListeners()
share/assets/js/400-Ajax.js:574:  // user-defined CSS/HTML. Each class is 1 of a predefined set of possible
share/assets/js/400-Ajax.js:578:  // ways for CSS rules. For example, 'ra-safesize-w640' means that content
share/assets/js/400-Ajax.js:580:  // On the other hand, 'ra-safesize-800x600' means that at least that size
share/assets/js/400-Ajax.js:581:  // **sqaure** (i.e. 2-dimensions instead of 1) will be visible. CSS rules
share/assets/js/400-Ajax.js:586:  //   * ra-safesize-small
share/assets/js/400-Ajax.js:587:  //   * ra-safesize-medium
share/assets/js/400-Ajax.js:588:  //   * ra-safesize-large
share/assets/js/400-Ajax.js:592:  // the more-specific resolution values to zero in on the size at one end
share/assets/js/400-Ajax.js:610:    wClass = 'ra-safesize-w0';
share/assets/js/400-Ajax.js:611:    if(width > 100)  { wClass = 'ra-safesize-w100'; }
share/assets/js/400-Ajax.js:612:    if(width > 320)  { wClass = 'ra-safesize-w320'; }
share/assets/js/400-Ajax.js:613:    if(width > 480)  { wClass = 'ra-safesize-w480'; }
share/assets/js/400-Ajax.js:614:    if(width > 640)  { wClass = 'ra-safesize-w640'; }
share/assets/js/400-Ajax.js:615:    if(width > 800)  { wClass = 'ra-safesize-w800'; }
share/assets/js/400-Ajax.js:616:    if(width > 1024) { wClass = 'ra-safesize-w1024'; }
share/assets/js/400-Ajax.js:617:    if(width > 1400) { wClass = 'ra-safesize-w1400'; }
share/assets/js/400-Ajax.js:619:    hClass = 'ra-safesize-h0';
share/assets/js/400-Ajax.js:620:    if(height > 50)  { hClass = 'ra-safesize-h50'; }
share/assets/js/400-Ajax.js:621:    if(height > 120) { hClass = 'ra-safesize-h120'; }
share/assets/js/400-Ajax.js:622:    if(height > 240) { hClass = 'ra-safesize-h240'; }
share/assets/js/400-Ajax.js:623:    if(height > 360) { hClass = 'ra-safesize-h360'; }
share/assets/js/400-Ajax.js:624:    if(height > 480) { hClass = 'ra-safesize-h480'; }
share/assets/js/400-Ajax.js:625:    if(height > 600) { hClass = 'ra-safesize-h600'; }
share/assets/js/400-Ajax.js:626:    if(height > 768) { hClass = 'ra-safesize-h768'; }
share/assets/js/400-Ajax.js:627:    if(height > 1050) { hClass = 'ra-safesize-h768'; }
share/assets/js/400-Ajax.js:629:    xClass = 'ra-safesize-0x0';
share/assets/js/400-Ajax.js:630:    if(xWidth > 200)  { xClass = 'ra-safesize-200x150'; }
share/assets/js/400-Ajax.js:631:    if(xWidth > 320)  { xClass = 'ra-safesize-320x240'; }
share/assets/js/400-Ajax.js:632:    if(xWidth > 480)  { xClass = 'ra-safesize-480x360'; }
share/assets/js/400-Ajax.js:633:    if(xWidth > 640)  { xClass = 'ra-safesize-640x480'; }
share/assets/js/400-Ajax.js:634:    if(xWidth > 800)  { xClass = 'ra-safesize-800x600'; }
share/assets/js/400-Ajax.js:635:    if(xWidth > 1024) { xClass = 'ra-safesize-1024x768'; }
share/assets/js/400-Ajax.js:636:    if(xWidth > 1400) { xClass = 'ra-safesize-1400x1050'; }
share/assets/js/400-Ajax.js:638:    xwClass = 'ra-safesize-0x0ws';
share/assets/js/400-Ajax.js:639:    if(xwWidth > 320)  { xwClass = 'ra-safesize-320x200ws'; }
share/assets/js/400-Ajax.js:640:    if(xwWidth > 480)  { xwClass = 'ra-safesize-480x270ws'; }
share/assets/js/400-Ajax.js:641:    if(xwWidth > 640)  { xwClass = 'ra-safesize-640x360ws'; }
share/assets/js/400-Ajax.js:642:    if(xwWidth > 800)  { xwClass = 'ra-safesize-800x450ws'; }
share/assets/js/400-Ajax.js:643:    if(xwWidth > 1024) { xwClass = 'ra-safesize-1024x576ws'; }
share/assets/js/400-Ajax.js:644:    if(xwWidth > 1280) { xwClass = 'ra-safesize-1280x720ws'; }
share/assets/js/400-Ajax.js:645:    if(xwWidth > 1920) { xwClass = 'ra-safesize-1920x1080ws'; }
share/assets/js/400-Ajax.js:648:    smlClass = 'ra-safesize-small';
share/assets/js/400-Ajax.js:649:    if(xWidth > 480)  { smlClass = 'ra-safesize-medium'; }
share/assets/js/400-Ajax.js:650:    if(xWidth > 800)  { smlClass = 'ra-safesize-large'; }
share/assets/js/400-Ajax.js:669:  // -----------------------------------------------------------------------------
share/assets/js/400-Ajax.js:679:  // -----------------------------------------------------------------------------
share/assets/js/400-Ajax.js:700:    var exception = response.getResponseHeader('X-RapidApp-Exception');
share/assets/js/400-Ajax.js:704:      var msg = data.msg || 'unknown error - Ext.ux.RapidApp.ajaxCheckException';
share/assets/js/400-Ajax.js:709:    var warning = response.getResponseHeader('X-RapidApp-Warning');
share/assets/js/400-Ajax.js:716:      var msg = data.msg || 'Unknown (X-RapidApp-Warning)';
share/assets/js/400-Ajax.js:725:    var eval_code = response.getResponseHeader('X-RapidApp-EVAL');
share/assets/js/400-Ajax.js:740:  options.headers['X-RapidApp-RequestContentType']= 'JSON';
share/assets/js/400-Ajax.js:741:  options.headers['X-RapidApp-VERSION'] = Ext.ux.RapidApp.VERSION;
share/assets/js/400-Ajax.js:766:    if(response.getResponseHeader('X-RapidApp-Exception')) {
share/assets/js/400-Ajax.js:767:      // If this is an exception with the X-RapidApp-Exception header,
share/assets/js/400-Ajax.js:773:      // without an X-RapidApp-Exception header, so just throw the raw
share/assets/js/400-Ajax.js:774:      // response body as text. This should not happen - it probably means 
share/assets/js/400-Ajax.js:775:      // the server-side failed to catch the exception. The message will
share/assets/js/400-Ajax.js:779:        'Ajax Exception - ' + response.statusText + ' (' + response.status + ')',
share/assets/js/400-Ajax.js:791:    // (TODO - consolidate this handling)
share/assets/js/400-Ajax.js:802:      '<div style="padding:10px;font-size:1.5em;color:navy;">&nbsp;&nbsp;' +
share/assets/js/400-Ajax.js:838:/* -------------------------------------------------------------------------------------
share/assets/js/400-Ajax.js:839:/* ------------------------------------------------------------------------------------- 
share/assets/js/400-Ajax.js:869:/* -------------------------------------------------------------------------------------
share/assets/js/400-Ajax.js:870:/* -------------------------------------------------------------------------------------
share/assets/js/400-Ajax.js:871:/* ------------------------------------------------------------------------------------- */
share/assets/js/400-Ajax.js:874:/*  ra-async-box
share/assets/js/400-Ajax.js:876:NEW - general-purpose Ajax content loader, triggered by special CSS class 'ra-async-box'
share/assets/js/400-Ajax.js:878:This is essentially a lighter, stand-alone version of 'AutoPanel' but it is designed
share/assets/js/400-Ajax.js:879:to load on-the-fly in any tag with the 'ra-async-box' class and a 'src' attibute 
share/assets/js/400-Ajax.js:884:layout. We are essentially stand-alone, bound to the original element.
share/assets/js/400-Ajax.js:887:to setup a full-blown container structure with child items, etc, as is the case with 
share/assets/js/400-Ajax.js:890:   -- STILL EXPERIMENTAL --   */
share/assets/js/400-Ajax.js:904:  var nodes = Element.query('.ra-async-box');
share/assets/js/400-Ajax.js:929:    // Hook to reload on 'ra-autopanel-reloader' clicks, just like AutoPanel
share/assets/js/400-Ajax.js:933:        if(target && target.hasClass('ra-autopanel-reloader')) {
share/assets/js/400-Ajax.js:943:      // re-use markup code from AutoPanel:
share/assets/js/400-Ajax.js:952:      var height = size.height - 18;
share/assets/js/400-Ajax.js:953:      var width  = size.width  - 18;
share/assets/js/400-Ajax.js:962:        'white-space' : 'nowrap'
share/assets/js/400-Ajax.js:976:      var ct = response.getResponseHeader('Content-Type');
share/assets/js/400-Ajax.js:994:        // --
share/assets/js/400-Ajax.js:996:        // This gives the dom extra time to finish updating itself for when the ra-async-box has
share/assets/js/400-Ajax.js:999:        // and width are unchanged for three iterations (80 ms apart). This is a general-purpose
share/assets/js/400-Ajax.js:1008:            else        {  ttl--;   }
share/assets/js/400-Ajax.js:1013:              var delay = 15 + ((20-ttl)*3);
share/assets/js/400-Ajax.js:1018:              // Re-apply the element height to prevent recursive scenario where dynamic heights
share/assets/js/400-Ajax.js:1020:              // changed the element height -- TODO: there may be more cases yet to handle...
share/assets/js/400-Ajax.js:1040:        // later by the asyncBoxesOnResize listener, below - but NOT found if the element
share/assets/js/400-Ajax.js:1043:        // --
share/assets/js/400-Ajax.js:1050:          // --
share/assets/js/400-Ajax.js:1051:          // NEW: hook using a global function only ONCE - this prevents duplicate listeners
share/assets/js/400-Ajax.js:1053:          // happen when AppDV templates, or other dynamic content include ra-async-box
share/assets/js/400-Ajax.js:1056:          // to scan and find the ra-async-box elements again, and call their resize
share/assets/js/400-Ajax.js:1111:  var nodes = Element.query('.ra-async-box');
share/assets/js/498-Ext.lib.Ajax-Override.js:4: * Overrides ext-adapter behavior for allowing queuing of AJAX requests.
share/assets/js/498-Ext.lib.Ajax-Override.js:7: *  http://www.sencha.com/forum/showthread.php?19171-2.0rc1-Queue-for-concurrent-Ajax-calls
share/assets/js/498-Ext.lib.Ajax-Override.js:49:        CONTENTTYPE = 'Content-Type';
share/assets/js/498-Ext.lib.Ajax-Override.js:74:            status : isAbort ? -1 : 0,
share/assets/js/498-Ext.lib.Ajax-Override.js:94:            // see: https://prototype.lighthouseapp.com/projects/8886/tickets/129-ie-mangles-http-response-status-code-204-to-1223
share/assets/js/498-Ext.lib.Ajax-Override.js:128:        _activeRequests--;
share/assets/js/498-Ext.lib.Ajax-Override.js:291:            // ------
share/assets/js/498-Ext.lib.Ajax-Override.js:301:            // ------
share/assets/js/498-Ext.lib.Ajax-Override.js:304:                initHeader('X-Requested-With', pub.defaultXhrHeader);
share/assets/js/498-Ext.lib.Ajax-Override.js:388:                    if (/select-(one|multiple)/i.test(type)) {
share/assets/js/498-Ext.lib.Ajax-Override.js:403:            return data.substr(0, data.length - 1);
share/assets/js/498-Ext.lib.Ajax-Override.js:407:        defaultPostHeader : 'application/x-www-form-urlencoded; charset=UTF-8',
share/assets/js/498-Ext.lib.Ajax-Override.js:422:            //console.log(o.tId+" is aborting - was "+o.tId+" in progress?: "+me.isCallInProgress(o));
share/assets/js/498-Ext.lib.Ajax-Override.js:432:                // @ext-bug 3.0.2 why was this commented out? if the request is aborted
share/assets/js/498-Ext.lib.Ajax-Override.js:433:                // programmatically, the timeout for the "timeout"-handler is never destroyed,
share/assets/js/499-Ext-RapidApp-Overrides.js:2:// --------
share/assets/js/499-Ext-RapidApp-Overrides.js:3:// http://www.sencha.com/forum/showthread.php?33475-Tip-Long-menu-overflow/page2
share/assets/js/499-Ext-RapidApp-Overrides.js:20:        var maxHeight = this.maxHeight || Ext.getBody().getHeight() - xy[1];
share/assets/js/499-Ext-RapidApp-Overrides.js:24:            this.el.applyStyles('overflow-y: auto;');
share/assets/js/499-Ext-RapidApp-Overrides.js:34:	// Added 2012-04-02 by HV: further turn off the default tiny menu scroller functions:
share/assets/js/499-Ext-RapidApp-Overrides.js:38:// --------
share/assets/js/499-Ext-RapidApp-Overrides.js:41:// Mouse-over/hover fix:
share/assets/js/499-Ext-RapidApp-Overrides.js:42:// http://www.sencha.com/forum/showthread.php?69090-Ext.ux.form.SuperBoxSelect-as-seen-on-facebook-and-hotmail&p=515731#post515731
share/assets/js/499-Ext-RapidApp-Overrides.js:46:		//this.el.addClassOnOver('x-superboxselect-item x-superboxselect-item-hover');
share/assets/js/499-Ext-RapidApp-Overrides.js:47:		this.el.addClassOnOver('x-superboxselect-item-hover');
share/assets/js/499-Ext-RapidApp-Overrides.js:59:				combo.inputEl.removeClass("x-superboxselect-input");
share/assets/js/499-Ext-RapidApp-Overrides.js:70:		// All-purpose override allowing eval code in config
share/assets/js/499-Ext-RapidApp-Overrides.js:141:						this.init_state.filters[i][p] = Date.parseDate(orig,"Y-m-d\\TH:i:s");
share/assets/js/499-Ext-RapidApp-Overrides.js:165:// Tweaks to Saki's "CheckTree" (http://checktree.extjs.eu/) -- 2010-03-27 by HV
share/assets/js/499-Ext-RapidApp-Overrides.js:173:	 // This adds unchecked items to the posted list... Unchecked start with '-', checked start with '+'
share/assets/js/499-Ext-RapidApp-Overrides.js:183:				a.push('-' + n.id);
share/assets/js/499-Ext-RapidApp-Overrides.js:198:		var checkbox_class = 'x-tree-checkbox';
share/assets/js/499-Ext-RapidApp-Overrides.js:199:		if (n.attributes.checked == null) { checkbox_class = 'x-tree-checkbox-no-checkbox'; }
share/assets/js/499-Ext-RapidApp-Overrides.js:200:		/* ------------------------------------------------- */
share/assets/js/499-Ext-RapidApp-Overrides.js:206:			 '<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ', a.cls,'" unselectable="on">'
share/assets/js/499-Ext-RapidApp-Overrides.js:207:			,'<span class="x-tree-node-indent">',this.indentMarkup,"</span>"
share/assets/js/499-Ext-RapidApp-Overrides.js:208:			,'<img src="', this.emptyIcon, '" class="x-tree-ec-icon x-tree-elbow" />'
share/assets/js/499-Ext-RapidApp-Overrides.js:209:			,'<img src="', a.icon || this.emptyIcon, '" class="x-tree-node-icon',(a.icon ? " x-tree-node-inline-icon" :""),(a.iconCls ? " "+a.iconCls :""),'" unselectable="on" />'
share/assets/js/499-Ext-RapidApp-Overrides.js:210:			,'<img src="'+this.emptyIcon+'" class="' + checkbox_class +(true === checked ? ' x-tree-node-checked' :'')+'" />'
share/assets/js/499-Ext-RapidApp-Overrides.js:211:			,'<a hidefocus="on" class="x-tree-node-anchor" href="',href,'" tabIndex="1" '
share/assets/js/499-Ext-RapidApp-Overrides.js:213:			,'<ul class="x-tree-node-ct" style="display:none;"></ul>'
share/assets/js/499-Ext-RapidApp-Overrides.js:281:						  w -= (lrBorder + lrPadding);
share/assets/js/499-Ext-RapidApp-Overrides.js:290:						  w -= lrBorder;
share/assets/js/499-Ext-RapidApp-Overrides.js:293:						  w -= lrPadding;
share/assets/js/499-Ext-RapidApp-Overrides.js:302:						  h -= (tbBorder + tbPadding);
share/assets/js/499-Ext-RapidApp-Overrides.js:311:						  h -= tbBorder;
share/assets/js/499-Ext-RapidApp-Overrides.js:314:						  h -= tbPadding;
share/assets/js/499-Ext-RapidApp-Overrides.js:332:				this.innerCt = target.createChild({cls:'x-column-inner'});
share/assets/js/499-Ext-RapidApp-Overrides.js:333:				this.innerCt.createChild({cls:'x-clear'});
share/assets/js/499-Ext-RapidApp-Overrides.js:343:		  var w = size.width - this.scrollOffset,
share/assets/js/499-Ext-RapidApp-Overrides.js:355:					 pw -= (c.getSize().width + c.getPositionEl().getMargins('lr'));
share/assets/js/499-Ext-RapidApp-Overrides.js:364:					 c.setSize(Math.floor(c.columnWidth * pw) - c.getPositionEl().getMargins('lr'));
share/assets/js/499-Ext-RapidApp-Overrides.js:374:/* http://www.sencha.com/forum/showthread.php?95486-Cursor-Position-in-TextField&p=609639&viewfull=1#post609639 */
share/assets/js/499-Ext-RapidApp-Overrides.js:379:		 if(!el) { return; } // <-- rare cases this is undef and throws error
share/assets/js/499-Ext-RapidApp-Overrides.js:395:       var rng, ii=-1;
share/assets/js/499-Ext-RapidApp-Overrides.js:401:          rng.moveStart("character", -el.value.length);
share/assets/js/499-Ext-RapidApp-Overrides.js:420:      // New: the main purpose of this feature is to facilitate containing pop-up
share/assets/js/499-Ext-RapidApp-Overrides.js:440:      // Still fall-back - the above bubble only happens when the value supplied in smartRenderTo
share/assets/js/499-Ext-RapidApp-Overrides.js:441:      // is a component; it can still be an element (like the built-in 'renderTo')
share/assets/js/499-Ext-RapidApp-Overrides.js:447:      // breaks scrolling, changes borders, etc, because of improperly overly-broad rules.
share/assets/js/499-Ext-RapidApp-Overrides.js:450:      if(El.hasClass('x-grid-panel')) { El = El.parent(); }
share/assets/js/499-Ext-RapidApp-Overrides.js:452:      // Special handling -- do not constrain/renderTo at all if we're already nested
share/assets/js/499-Ext-RapidApp-Overrides.js:453:      // in an existing window (i.e. fall-back to full-browser. This was added to handle
share/assets/js/499-Ext-RapidApp-Overrides.js:454:      // the case (specific to RapidApp) of add-and-select a related row in which the
share/assets/js/499-Ext-RapidApp-Overrides.js:458:      if(! El.parent('div.x-window-body')) {
share/assets/js/499-Ext-RapidApp-Overrides.js:462:      // Force enable 'constrain' for smartRenderTo -- this ensures that the window stays
share/assets/js/499-Ext-RapidApp-Overrides.js:467:      // the immediate problem, but the window gets rendered in the top-left instead of the
share/assets/js/499-Ext-RapidApp-Overrides.js:475:    var maxW = browserSize.width  - 10;
share/assets/js/499-Ext-RapidApp-Overrides.js:476:    var maxH = browserSize.height - 10;
share/assets/js/499-Ext-RapidApp-Overrides.js:482:        var w = renderToSize.width - 10;
share/assets/js/499-Ext-RapidApp-Overrides.js:483:        var h = renderToSize.height - 10;
share/assets/js/499-Ext-RapidApp-Overrides.js:500:  // New: handle the case of input formats like 0000-00-00T00:00:00 that 
share/assets/js/499-Ext-RapidApp-Overrides.js:501:  // can't natively parse -- these come from SQLite date/datetime cols
share/assets/js/499-Ext-RapidApp-Overrides.js:514:    // Logic based on AppCombo2 -- just make click trigger/expand the selector,
share/assets/js/499-Ext-RapidApp-Overrides.js:569:    // This focus call comes from ExtJS core and seems to be a bug -- why would we want to
share/assets/js/499-Ext-RapidApp-Overrides.js:574:    // hides the menu -- if the field doesn't have focus, it probably means the user doesn't
share/assets/js/499-Ext-RapidApp-Overrides.js:593:// to look for and load our special 'ra-async-box' tags (EXPERIMENTAL)
share/assets/js/499-Ext-RapidApp-Overrides.js:606:// does not call the method from its superclass -- AppDV also manually calls this)
share/assets/js/499-Ext-RapidApp-Overrides.js:629:            last = colCount - 1,
share/assets/js/499-Ext-RapidApp-Overrides.js:653:                meta.css   = i === 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : '');
share/assets/js/499-Ext-RapidApp-Overrides.js:676:                    meta.css += ' x-grid3-dirty-cell';
share/assets/js/499-Ext-RapidApp-Overrides.js:685:                alt[0] = 'x-grid3-row-alt';
share/assets/js/499-Ext-RapidApp-Overrides.js:689:                alt[1] = ' x-grid3-dirty-row';
share/assets/js/500-RapidApp.js:100:Ext.ux.RapidApp.userPrefs.timezoneOffset= -5*60;
share/assets/js/500-RapidApp.js:171:  var headCls = ['ra-exception-heading'];
share/assets/js/500-RapidApp.js:173:    headCls.push('ra-icon-data-warning-32x32');
share/assets/js/500-RapidApp.js:174:    // While at it, convert the known dash (-) sequence into a pretty <hr>
share/assets/js/500-RapidApp.js:176:      "----------------",
share/assets/js/500-RapidApp.js:181:    headCls.push('ra-icon-warning-32x32');
share/assets/js/500-RapidApp.js:203:			html: '<div class="ra-exception-body" style="padding:5px;">' + body + '</div>',
share/assets/js/500-RapidApp.js:211:    // New: do NOT auto-close on nav events when a smartRenderTo is supplied:
share/assets/js/500-RapidApp.js:214:				// Catch navload events and auto-close the exception window:
share/assets/js/500-RapidApp.js:215:				var loadTarget = Ext.getCmp("main-load-target");
share/assets/js/500-RapidApp.js:232:	Ext.ux.RapidApp.userPrefs.timezoneOffset= -dt.getTimezoneOffset();
share/assets/js/500-RapidApp.js:233:	options.headers['X-RapidApp-TimezoneOffset']= Ext.ux.RapidApp.userPrefs.timezoneOffset;
share/assets/js/500-RapidApp.js:247:	var auth = response.getResponseHeader('X-RapidApp-Authenticated');
share/assets/js/500-RapidApp.js:252:	var customprompt = response.getResponseHeader('X-RapidApp-CustomPrompt');
share/assets/js/500-RapidApp.js:257:	if(response.getResponseHeader('X-RapidApp-Exception'))
share/assets/js/500-RapidApp.js:262:	var servercallback = response.getResponseHeader('X-RapidApp-Callback');
share/assets/js/500-RapidApp.js:269:	var serverevents = response.getResponseHeader('X-RapidApp-ServerEvents');
share/assets/js/500-RapidApp.js:292:// Call an arbitrary function specified in the response from the server (X-RapidApp-Callback)
share/assets/js/500-RapidApp.js:301:		throw "Neither 'func' nor 'anonfunc' was specified in X-RapidApp-Callback header data";
share/assets/js/500-RapidApp.js:343:		title: 'Untitled X-RapidApp-CustomPrompt',
share/assets/js/500-RapidApp.js:391:			'X-RapidApp-CustomPrompt-Button': btn.text,
share/assets/js/500-RapidApp.js:392:			'X-RapidApp-CustomPrompt-Data': Ext.encode(data)
share/assets/js/500-RapidApp.js:468:		success_callback: success_callback // <-- storing this here so we can use it in the btn handler
share/assets/js/500-RapidApp.js:516:  var winId = 'ra-reauth-prompt-win';
share/assets/js/500-RapidApp.js:538:			labelStyle: 'text-align:right'
share/assets/js/500-RapidApp.js:543:				 text: 'Your session has expired or is invalid. Please re-enter your password below:'
share/assets/js/500-RapidApp.js:556:						the normal text field has padding-top: 2px which makes the text sit towards
share/assets/js/500-RapidApp.js:561:					'background-color': 'transparent',
share/assets/js/500-RapidApp.js:562:					'border-color': 'transparent',
share/assets/js/500-RapidApp.js:563:					'background-image':'none',
share/assets/js/500-RapidApp.js:564:					'padding-top':'1px',
share/assets/js/500-RapidApp.js:565:					'padding-bottom':'1px'
share/assets/js/500-RapidApp.js:767:/* http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/ */
share/assets/js/500-RapidApp.js:785:// http://thomas.bindzus.me/2007/12/24/adding-dynamic-contents-to-iframes/
share/assets/js/500-RapidApp.js:832:	// need to be a server-side process to return js code with an 'onload'
share/assets/js/500-RapidApp.js:834:	// look for and cleanup previous calls. This is a hack-ish workaround
share/assets/js/500-RapidApp.js:835:	var id = 'iframe-poster-global-element';
share/assets/js/500-RapidApp.js:864: --- http://encosia.com/ajax-file-downloads-and-iframes/ ---
share/assets/js/500-RapidApp.js:865: This assumes that the content returned from 'url' will be "Content-disposition: attachment;"
share/assets/js/500-RapidApp.js:885:		if(timer) { timer.cancel(); } //<-- turn off the timeout timer
share/assets/js/500-RapidApp.js:894:	// Start the fail-safe timeout timer:
share/assets/js/500-RapidApp.js:902:	iframe.onload = cleanup; //<-- cleanup as soon as the iframe load completes
share/assets/js/500-RapidApp.js:939:		if(timer) { timer.cancel(); } //<-- turn off the timeout timer
share/assets/js/500-RapidApp.js:941:		win.hide(); // <-- hide immediately
share/assets/js/500-RapidApp.js:970:		bodyCssClass: 'loading-background',
share/assets/js/500-RapidApp.js:975:			iconCls: 'ra-icon-cross',
share/assets/js/500-RapidApp.js:980:				if(timer) { timer.cancel(); } //<-- turn off the timeout timer
share/assets/js/500-RapidApp.js:990: Another, simple download function but uses a self-closing (browser) window. 
share/assets/js/500-RapidApp.js:1024: * @cfg {Boolean} disableBtn disables the button once clicked - note:
share/assets/js/500-RapidApp.js:1026:                             cause the button to never be re-enabled
share/assets/js/500-RapidApp.js:1035:  var winId = cfg.winId || 'win-' + rand;
share/assets/js/500-RapidApp.js:1036:  var formId = 'winformpost-' + rand;
share/assets/js/500-RapidApp.js:1136:    // Re-enable the button (only applies with disableBtn option)
share/assets/js/500-RapidApp.js:1201:	var winId = 'win-' + rand;
share/assets/js/500-RapidApp.js:1202:	var formId = 'editrec-' + rand;
share/assets/js/500-RapidApp.js:1215:	if (config.field_cnf) { //<-- field_cnf override
share/assets/js/500-RapidApp.js:1218:		// -----------------
share/assets/js/500-RapidApp.js:1220:		// -----------------
share/assets/js/500-RapidApp.js:1236:	if (!field['id']) { field['id'] = 'field-' + rand; }
share/assets/js/500-RapidApp.js:1239:	//if (config.initValue) { field['value'] = config.initValue; } //<-- this is needed for certain combo fields
share/assets/js/500-RapidApp.js:1281:				if (!config.field_cnf) { //<-- don't run text metrics if there is a cust field_cnf
share/assets/js/500-RapidApp.js:1316:	var winId = 'win-' + rand;
share/assets/js/500-RapidApp.js:1317:	var formId = 'editrec-' + rand;
share/assets/js/500-RapidApp.js:1326:		if (!fieldset.items[i]['id']) { fieldset.items[i]['id'] = 'field-' + i + '-' + rand; }
share/assets/js/500-RapidApp.js:1469:		// --------- this doesn't work:
share/assets/js/500-RapidApp.js:1479:		// ----- MultiFilters: ----- //
share/assets/js/500-RapidApp.js:1484:		// ------------------------- //
share/assets/js/500-RapidApp.js:1487:		// ----- RowExpander ------ //
share/assets/js/500-RapidApp.js:1498:		// ----------------------- //
share/assets/js/500-RapidApp.js:1505:		// ----- RowActions ------ //
share/assets/js/500-RapidApp.js:1522:		// ----------------------- //
share/assets/js/500-RapidApp.js:1526:		// ---------------------------- //
share/assets/js/500-RapidApp.js:1527:		// ------ Grid Search --------- //
share/assets/js/500-RapidApp.js:1531:				iconCls:'ra-icon-zoom',
share/assets/js/500-RapidApp.js:1548:		// ---------------------------- //
share/assets/js/500-RapidApp.js:1551:	 // ------ Grid Filter --------- //
share/assets/js/500-RapidApp.js:1577:	// ---------------------------- //
share/assets/js/500-RapidApp.js:1581:		// ------- SelectionModel -------- //
share/assets/js/500-RapidApp.js:1586:		// ------------------------------- //
share/assets/js/500-RapidApp.js:1601:			// ------- http://extjs.com/forum/showthread.php?p=97676#post97676
share/assets/js/500-RapidApp.js:1618:				var col = this.view.el.select("td.x-grid3-td-" + colid + " div:first-child");
share/assets/js/500-RapidApp.js:1631:			// ------------------------
share/assets/js/500-RapidApp.js:1648:		// ------- Remote Columns -------- //
share/assets/js/500-RapidApp.js:1666:				// does not make it see the new non-hidden column names, but calling
share/assets/js/500-RapidApp.js:1674:		// ------------------------------- //
share/assets/js/500-RapidApp.js:1711:		// ---- this is old:
share/assets/js/500-RapidApp.js:1721:		// -----------------
share/assets/js/500-RapidApp.js:1740:		// ------ Cell Doubleclick -------- //
share/assets/js/500-RapidApp.js:1750:		// -------------------------------- //
share/assets/js/500-RapidApp.js:1868:// learned about this from: http://www.diloc.de/blog/2008/03/05/how-to-submit-ext-forms-the-right-way/
share/assets/js/500-RapidApp.js:1917:					 //form:this.form.el.dom,  <--- need to remove this line to prevent the form items from being submitted
share/assets/js/500-RapidApp.js:2005:				this.el.mask('Please wait','x-mask-loading');
share/assets/js/500-RapidApp.js:2113:	cls: 'x-clear'
share/assets/js/500-RapidApp.js:2115:Ext.reg('float-clear', Ext.ux.FloatClear);
share/assets/js/500-RapidApp.js:2129:				if (ls.substr(-1, 1) != ';') {
share/assets/js/500-RapidApp.js:2142:			return 'padding-left:' + (field.labelWidth + pad) + 'px';
share/assets/js/500-RapidApp.js:2152:			itemCls: (field.itemCls || this.container.itemCls || '') + (field.hideLabel ? ' x-hide-label' : ''),
share/assets/js/500-RapidApp.js:2153:			clearCls: field.clearCls || 'x-form-clear-left',
share/assets/js/500-RapidApp.js:2160:Ext.Container.LAYOUTS['floating-form'] = Ext.ux.FloatingFormLayout;
share/assets/js/500-RapidApp.js:2163:	cls: 'floating-form',
share/assets/js/500-RapidApp.js:2164:	layout: 'floating-form',
share/assets/js/500-RapidApp.js:2176:Ext.reg('floating-form', Ext.ux.FloatingFormPanel);
share/assets/js/500-RapidApp.js:2190:		  this.renderItems(0, this.store.getCount() - 1);
share/assets/js/500-RapidApp.js:2194:		  if(index > -1){
share/assets/js/500-RapidApp.js:2198:		  if(index > -1){
share/assets/js/500-RapidApp.js:2206:				this.renderItems(index, index + records.length - 1);
share/assets/js/500-RapidApp.js:2264:		  this.renderItems(0, this.store.getCount() - 1);
share/assets/js/500-RapidApp.js:2268:		  if(index > -1){
share/assets/js/500-RapidApp.js:2272:		  if(index > -1){
share/assets/js/500-RapidApp.js:2280:				this.renderItems(index, index + records.length - 1);
share/assets/js/500-RapidApp.js:2384://http://www.sencha.com/forum/showthread.php?77984-Field-help-text-plugin.
share/assets/js/500-RapidApp.js:2392:				this.wrap = this.el.wrap({cls: 'x-form-field-wrap'});
share/assets/js/500-RapidApp.js:2398:				cls: 'x-form-helptext',
share/assets/js/500-RapidApp.js:2405:				this.helpText = t.text; // <-- changed from t to t.text (HV)
share/assets/js/500-RapidApp.js:2420:/* 2011-01-28 by HV:
share/assets/js/500-RapidApp.js:2512:    // --- NEW: check to see if the formatted date+time value (i.e. the only section
share/assets/js/500-RapidApp.js:2528:    // ---
share/assets/js/500-RapidApp.js:2551: Inspired by: http://www.sencha.com/forum/showthread.php?119956-use-x-tool-close-ra-icon-in-toolbar&highlight=tool+button
share/assets/js/500-RapidApp.js:2595:		this.cls = 'x-tool x-tool-' + this.toolType;
share/assets/js/500-RapidApp.js:2597:		this.overCls = 'x-tool-' + this.toolType + '-over';
share/assets/js/500-RapidApp.js:2678: I couldn't get normal checkbox to work properly within AppDV - 2011-05-29 by HV
share/assets/js/500-RapidApp.js:2681:	defaultAutoCreate : { tag: 'div', cls: 'x-logical-checkbox ra-icon-checkbox-clear' },
share/assets/js/500-RapidApp.js:2692:			this.el.replaceClass('ra-icon-checkbox-clear','ra-icon-checkbox');
share/assets/js/500-RapidApp.js:2695:			this.el.replaceClass('ra-icon-checkbox','ra-icon-checkbox-clear');
share/assets/js/500-RapidApp.js:2707:Ext.reg('logical-checkbox',Ext.ux.RapidApp.LogicalCheckbox);
share/assets/js/500-RapidApp.js:2712: 2011-06-08 by HV
share/assets/js/500-RapidApp.js:2714: Works like Ext.menu.Item, except the submenu (if defined) is not displayed on mouse-over.
share/assets/js/500-RapidApp.js:2717: normal Item submenu behavior which operates on mouse-over and disapears if you accidently
share/assets/js/500-RapidApp.js:2733:	loadingIconCls: 'ra-icon-loading', // <-- set this to null to disable the loading icon feature
share/assets/js/500-RapidApp.js:2738:			this.itemCls = 'x-menu-item x-menu-item-arrow';
share/assets/js/500-RapidApp.js:2896:Ext.reg('grid-selectset-dialog',Ext.ux.RapidApp.GridSelectSetDialog);
share/assets/js/500-RapidApp.js:2912:	leftIconCls: 'ra-icon-checkbox-yes',
share/assets/js/500-RapidApp.js:2914:	rightIconCls: 'ra-icon-checkbox-no',
share/assets/js/500-RapidApp.js:2927:	style: { 'background-color': '#f0f0f0' },
share/assets/js/500-RapidApp.js:2986:			iconCls: 'ra-icon-arrow-left',
share/assets/js/500-RapidApp.js:2996:			iconCls: 'ra-icon-arrow-right',
share/assets/js/500-RapidApp.js:3007:				itemId: 'left-panel',
share/assets/js/500-RapidApp.js:3022:					' ',' ',' ' // <-- spacing
share/assets/js/500-RapidApp.js:3026:				itemId: 'right-panel',
share/assets/js/500-RapidApp.js:3035:					' ',' ',	' ', // <-- spacing
share/assets/js/500-RapidApp.js:3037:					'->',
share/assets/js/500-RapidApp.js:3164:		var adjusted = total - selected;
share/assets/js/500-RapidApp.js:3166:		this.getComponent('left-panel').setTitle(this.leftTitle + ' (' + selected + ')');
share/assets/js/500-RapidApp.js:3168:		var right_panel = this.getComponent('right-panel');
share/assets/js/500-RapidApp.js:3194:			var suffix_str = '/<span style="font-size:.9em;vertical-align:top;">' +
share/assets/js/500-RapidApp.js:3199:				itemCls: 'rapp-margin-bottom-0',
share/assets/js/500-RapidApp.js:3204:				regex: /^\d+$/, // <-- only allow integers
share/assets/js/500-RapidApp.js:3239:				style: 'font-size:.9em;',
share/assets/js/500-RapidApp.js:3262:		//this.displayMsg = '{0} - {1} of <span style="font-size:1.1em;color:#083772;">{2}</span>';
share/assets/js/500-RapidApp.js:3263:    this.displayMsg = '{0} - {1} of</span>';
share/assets/js/500-RapidApp.js:3270:      cls: 'ra-grid-tb-query-time'
share/assets/js/500-RapidApp.js:3276:    this.insert(this.items.getCount() - 1,this.pageSizeButton,' ');
share/assets/js/500-RapidApp.js:3280:      cls: 'ra-paging-total-count-btn',
share/assets/js/500-RapidApp.js:3302:              btn.setIconClass('ra-icon-bullet-tick');
share/assets/js/500-RapidApp.js:3306:              btn.setIconClass('ra-icon-bullet-cross');
share/assets/js/500-RapidApp.js:3330:			paging.queryTimeLabel.setText('--');
share/assets/js/500-RapidApp.js:3333:    // --- NEW: update paging counts in-place (Github Issue #18)
share/assets/js/500-RapidApp.js:3340:      this.store.totalLength--;
share/assets/js/500-RapidApp.js:3343:    // ---
share/assets/js/500-RapidApp.js:3381:        var total = count == 0 ? '--' : Ext.util.Format.number(this.store.getTotalCount(),'0,000');
share/assets/js/500-RapidApp.js:3396:    //this.syncSize(); //<-- commented out for GitHub Issue #161
share/assets/js/500-RapidApp.js:3409:    //this.syncSize(); //<-- commented out for GitHub Issue #161
share/assets/js/500-RapidApp.js:3427:Ext.reg('rapidapp-paging',Ext.ux.RapidApp.PagingToolbar);
share/assets/js/500-RapidApp.js:3431:/***********  -- vvv -- Ext.ux.grid.PropertyGrid -- vvv -- **********/
share/assets/js/500-RapidApp.js:3501:        // -- removed by HV -- 
share/assets/js/500-RapidApp.js:3600:        'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})),
share/assets/js/500-RapidApp.js:3726:        this.getGridEl().addClass('x-props-grid');
share/assets/js/500-RapidApp.js:3759:/***********  -- ^^^ -- Ext.ux.grid.PropertyGrid -- ^^^ -- **********/
share/assets/js/500-RapidApp.js:3805:    // This is a workaround for a spurious race-condition bug that is not fully
share/assets/js/500-RapidApp.js:3870:        '<div style="padding-left:4px;padding-bottom:0px;" class="x-form-helptext">',
share/assets/js/500-RapidApp.js:3896:      // New: allow_edit and allow_view are now pre-normalized and populated from
share/assets/js/500-RapidApp.js:3897:      // the back-end, so we can do this simple check instead of complex logic
share/assets/js/500-RapidApp.js:3936:				wrapcss = ' with-background-right-image ra-icon-gray-pencil';
share/assets/js/500-RapidApp.js:3938:					wrapcss = ' with-background-right-image ra-icon-gray-down';
share/assets/js/500-RapidApp.js:3947:				// Turn on word-wrap (set to off in a normal grid)
share/assets/js/500-RapidApp.js:3948:				metaData.attr = 'style="white-space:normal;"';
share/assets/js/500-RapidApp.js:3953:					metaData.css += ' x-grid3-dirty-cell';
share/assets/js/500-RapidApp.js:3957:				metaData.css += ' yes-text-select';
share/assets/js/500-RapidApp.js:4007:		/* COPIED FROM datastore-plus FIXME*/
share/assets/js/500-RapidApp.js:4010:			modules and so they don't get the datastore-plus plugin. This needs to be
share/assets/js/500-RapidApp.js:4012:			datastore-plus plugin so that grid editors, specifically the new 'cycle-field'
share/assets/js/500-RapidApp.js:4013:			and 'menu-field', behave the same as in normal AppGrid2 grids
share/assets/js/500-RapidApp.js:4076:/* -----
share/assets/js/500-RapidApp.js:4102:		// --- New: handle simple hashpath URL
share/assets/js/500-RapidApp.js:4108:		// ---
share/assets/js/500-RapidApp.js:4119:			var loadTarget = Ext.getCmp("main-load-target");
share/assets/js/500-RapidApp.js:4150:/* ----- */
share/assets/js/500-RapidApp.js:4152:/* http://stackoverflow.com/questions/130404/javascript-data-formatting-pretty-printer */
share/assets/js/500-RapidApp.js:4189: * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
share/assets/js/500-RapidApp.js:4190: * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)
share/assets/js/500-RapidApp.js:4218:		while( i-- )
share/assets/js/500-RapidApp.js:4248:					(obj+'').indexOf(f) != -1 ? f : //IE reports functions like alert, as objects
share/assets/js/500-RapidApp.js:4255:		indent:function( extra ){// extra can be a number, shortcut for increasing-calling-decreasing
share/assets/js/500-RapidApp.js:4267:			this._depth_ -= a || 1;
share/assets/js/500-RapidApp.js:4326:				while( l-- )
share/assets/js/500-RapidApp.js:4406:	zipcode: function(v) { return /^\d{5}(-\d{4})?$/.test(v); },
share/assets/js/500-RapidApp.js:4407:	zipcodeMask: /[0-9\-]+/,
share/assets/js/500-RapidApp.js:4408:	zipcodeText: 'Zipcode must be 5-digits (e.g. 12345) or 5-digits + 4 (e.g. 12345-6789)'
share/assets/js/500-RapidApp.js:4444:		winCfg.bodyCssClass = 'loading-background'; 
share/assets/js/500-RapidApp.js:4463:  if(loc.pathname.slice(-1) != '/') {
share/assets/js/500-RapidApp.js:4482:    plugins: ['ra-link-click-catcher'],
share/assets/js/505-RapidApp-NavCore.js:23:		labelStyle	: 'text-align:right;',
share/assets/js/505-RapidApp-NavCore.js:32:		labelStyle	: 'text-align:right;'
share/assets/js/505-RapidApp-NavCore.js:53:		fieldLabel	: 'Save-As New Search',
share/assets/js/505-RapidApp-NavCore.js:54:		labelStyle	: 'text-align:right;',
share/assets/js/505-RapidApp-NavCore.js:122:// New handler function for deleting a search - works with AppGrid2
share/assets/js/505-RapidApp-NavCore.js:153:	//var loadTarget = Ext.getCmp("main-load-target");
share/assets/js/505-RapidApp-NavCore.js:155:	//if(!tree) { tree = Ext.getCmp('main-nav-tree'); }
share/assets/js/505-RapidApp-NavCore.js:160:	var tree = Ext.getCmp('manage-nav-tree');
share/assets/js/505-RapidApp-NavCore.js:170:	var container = Ext.getCmp('main-navtrees-container');
share/assets/js/510-AppDV.js:11:  // to back-compat, and also the fact that the native Ext.DataView code does not allow
share/assets/js/510-AppDV.js:57:      // AppDV-specific clickable command (i.e. store buttons, etc)
share/assets/js/510-AppDV.js:105:          var Toggle = El.child('div.edit-record-toggle');
share/assets/js/510-AppDV.js:144:    // --- Orig refresh(), with modified 'emptyText' behavior (GitHub Issue #157)---
share/assets/js/510-AppDV.js:162:    // ---
share/assets/js/510-AppDV.js:164:    // renderItems relates to the special case of sub-componenets, not 
share/assets/js/510-AppDV.js:166:    this.renderItems(0, this.store.getCount() - 1);
share/assets/js/510-AppDV.js:174:		if(index > -1){
share/assets/js/510-AppDV.js:178:		if(index > -1){
share/assets/js/510-AppDV.js:192:        this.renderItems(index, index + records.length - 1);
share/assets/js/510-AppDV.js:214:      this.scrollRecordIntoView.defer(10,this,[records[records.length - 1]]);
share/assets/js/510-AppDV.js:217:      this.scrollRecord.defer(10,this,[records[records.length - 1]]);
share/assets/js/510-AppDV.js:274:        var fieldDoms = el.query('div.field-name'); 
share/assets/js/510-AppDV.js:279:            var dWrap = fEl.parent('div.editable-value');
share/assets/js/510-AppDV.js:281:              if(dWrap.hasClass('x-grid3-dirty-cell')) {
share/assets/js/510-AppDV.js:282:                dWrap.removeClass('x-grid3-dirty-cell');
share/assets/js/510-AppDV.js:285:                dWrap.addClass('x-grid3-dirty-cell');
share/assets/js/510-AppDV.js:292:        // after adding the above, field-specific dirty flagging
share/assets/js/510-AppDV.js:298:				//		cls: 'x-grid3-dirty-cell',
share/assets/js/510-AppDV.js:299:				//		style: 'position:relative;top:0;left:0;z-index:15000;height:10px;width:10px;'
share/assets/js/510-AppDV.js:317:        if(el.hasClass('non-phantom')) { el.removeClass('non-phantom'); }
share/assets/js/510-AppDV.js:318:        if(!el.hasClass('is-phantom')) { el.addClass('is-phantom'); }
share/assets/js/510-AppDV.js:321:        if(el.hasClass('is-phantom')) { el.removeClass('is-phantom'); }
share/assets/js/510-AppDV.js:322:        if(!el.hasClass('non-phantom')) { el.addClass('non-phantom'); }
share/assets/js/510-AppDV.js:385:				// renderDynTarget will look for a child div with class="encoded-params" containing
share/assets/js/510-AppDV.js:389:				// the encoded-params div will have style="display:none;" to prevent the JSON
share/assets/js/510-AppDV.js:398:						var encNode = Ext.DomQuery.selectNode('div.encoded-params', Node);
share/assets/js/510-AppDV.js:438:    // re-scan for ra-async-box elements -- codepath is specific to AppDV
share/assets/js/510-AppDV.js:458:			if(nodeEl.parent().hasClass('record-update')) { return; }
share/assets/js/510-AppDV.js:498:		var dataWrap = editEl.child('div.data-wrapper');
share/assets/js/510-AppDV.js:499:		var dataEl = editEl.child('div.data-holder');
share/assets/js/510-AppDV.js:500:		var fieldEl = editEl.child('div.field-holder');
share/assets/js/510-AppDV.js:528:		// causing images to overlap in some cases (2011-10-10 by HV)
share/assets/js/510-AppDV.js:549:    cnf.plugins.push('appdv-field-plugin');
share/assets/js/510-AppDV.js:566:		if(domEl &&(!domEl.hasClass('editing-record') && !domEl.parent().hasClass('record-update'))) { 
share/assets/js/510-AppDV.js:670:		var dataWrap = editEl.child('div.data-wrapper');
share/assets/js/510-AppDV.js:671:		var dataEl = editEl.child('div.data-holder');
share/assets/js/510-AppDV.js:672:		var fieldEl = editEl.child('div.field-holder');
share/assets/js/510-AppDV.js:693:    // --- Override nav links
share/assets/js/510-AppDV.js:706:    // ---
share/assets/js/510-AppDV.js:709:    var topmostEl = target.findParent('div.appdv-tt-generated.' + this.id,null,true);
share/assets/js/510-AppDV.js:728:      var cmdEl = clickableEl.child('div.store-button');
share/assets/js/510-AppDV.js:736:            return false; //<-- stop iteration
share/assets/js/510-AppDV.js:775:      // 'ra-link-click-catcher' in AppDV per default (see AppDV.pm) so it may
share/assets/js/510-AppDV.js:788:        if(click_parent && click_parent.parent('div.appdv-tt-generated')){
share/assets/js/510-AppDV.js:827:		var editEl = clickableEl.child('div.editable-value');
share/assets/js/510-AppDV.js:835:		editEl = clickableEl.child('div.edit-record-toggle');
share/assets/js/510-AppDV.js:839:			if(!Store.api.update && !domEl.hasClass('editing-record')) { return; } 
share/assets/js/510-AppDV.js:843:		editEl = clickableEl.child('div.delete-record');
share/assets/js/510-AppDV.js:849:		editEl = clickableEl.child('div.print-view');
share/assets/js/510-AppDV.js:858:		var fieldnameEl = editEl.child('div.field-name');
share/assets/js/510-AppDV.js:866:		if(domEl.hasClass('editing-record')) { return; }
share/assets/js/510-AppDV.js:869:		if(domEl.parent().hasClass('record-update')) { return; }
share/assets/js/510-AppDV.js:879:		if(domEl.hasClass('editing-record')) { return; }
share/assets/js/510-AppDV.js:882:		if(domEl.parent().hasClass('record-update')) { return; }
share/assets/js/510-AppDV.js:889:		var dataWrap = editEl.child('div.data-wrapper');
share/assets/js/510-AppDV.js:890:		var dataEl = editEl.child('div.data-holder');
share/assets/js/510-AppDV.js:891:		var fieldEl = editEl.child('div.field-holder');
share/assets/js/510-AppDV.js:909:			// require-edit-click is set by "edit-bigfield" to disallow going into edit mode unless the
share/assets/js/510-AppDV.js:911:			if(target.findParent('div.require-edit-click') && !target.hasClass('edit')) { return; }
share/assets/js/510-AppDV.js:976:		// New: use the datastore-plus edit record function:
share/assets/js/510-AppDV.js:981:		var editDoms = domEl.query('div.editable-value');
share/assets/js/510-AppDV.js:987:		if(domEl.hasClass('editing-record')) {
share/assets/js/510-AppDV.js:1024:			domEl.removeClass('editing-record');	
share/assets/js/510-AppDV.js:1026:        domEl.parent().removeClass('record-update');
share/assets/js/510-AppDV.js:1049:        if(domEl.parent().hasClass('record-update')) { return; }
share/assets/js/510-AppDV.js:1050:        domEl.parent().addClass('record-update');
share/assets/js/510-AppDV.js:1052:			domEl.addClass('editing-record');
share/assets/js/510-AppDV.js:1109:  // proof-of-concept: preliminary styles moved out of 045-AppDV.css to be generated
share/assets/js/510-AppDV.js:1110:  // on-the-fly for each AppDB component. This is being done so that the override
share/assets/js/510-AppDV.js:1113:    #{id}.ra-dsapi-deny-destroy .appdv-tt-generated.{id} .delete-record {   \
share/assets/js/510-AppDV.js:1152:    if(El.hasClass('appdv-field-invalid')) {
share/assets/js/510-AppDV.js:1153:      El.removeClass('appdv-field-invalid');
share/assets/js/510-AppDV.js:1161:    if(!El.hasClass('appdv-field-invalid')) {
share/assets/js/510-AppDV.js:1162:      El.addClass('appdv-field-invalid');
share/assets/js/510-AppDV.js:1165:    if(recEl && !recEl.hasClass('appdv-rec-invalids')) {
share/assets/js/510-AppDV.js:1166:      recEl.addClass('appdv-rec-invalids');
share/assets/js/510-AppDV.js:1172:    if(! recEl || ! recEl.hasClass('appdv-rec-invalids')) {
share/assets/js/510-AppDV.js:1178:    if(! recEl.child('div.appdv-field-invalid')){
share/assets/js/510-AppDV.js:1179:      if(recEl.hasClass('appdv-rec-invalids')) {
share/assets/js/510-AppDV.js:1180:        recEl.removeClass('appdv-rec-invalids');
share/assets/js/510-AppDV.js:1187:Ext.preg('appdv-field-plugin',Ext.ux.RapidApp.AppDV.FieldPlugin);
share/assets/js/520-ErrorTrace.js:3: var css = document.getElementById(type+'-'+ref).style;
share/assets/js/520-ErrorTrace.js:6: var hyperlink = document.getElementById('toggle-'+ref);
share/assets/js/530-renderers.js:11:  if (val == null) { return '<span class="ra-null-val">(not&nbsp;set)</span>'; }
share/assets/js/530-renderers.js:12:  if (val === "") { return '<span class="ra-null-val">(empty&nbsp;string)</span>'; }
share/assets/js/530-renderers.js:25:    var dt= new Date(Date.parseDate(dateStr, "Y-m-d g:i:s"));
share/assets/js/530-renderers.js:29:    var fmt= (now.getTime() - dt.getTime() > 1000*60*60*24*365)? Ext.ux.RapidApp.userPrefs.dateFormat : Ext.ux.RapidApp.userPrefs.nearDateFormat;
share/assets/js/530-renderers.js:30:    return '<span class="RapidApp-dt"><s>'+utc+'</s>'+dt.format(fmt)+'</span>';
share/assets/js/530-renderers.js:40:  return '<div class="with-icon ' + val + '">' + val + '</div>';
share/assets/js/530-renderers.js:52:      '" class="ra-icon-12x12 ra-icon-cross-light-12x12">'
share/assets/js/530-renderers.js:57:    '" class="ra-icon-12x12 ra-icon-checkmark-12x12">'
share/assets/js/530-renderers.js:63:  if (!format) { format = "Y-m-d H:i:s"; }
share/assets/js/530-renderers.js:67:      //  better than 'Nov 30, 00-1 12:00 AM' which is what the typical format returns
share/assets/js/530-renderers.js:68:      if(date == '0000-00-00' || date == '0000-00-00 00:00:00') {
share/assets/js/530-renderers.js:69:        return ['<span class="ra-null-val">',date,'</span>'].join('');
share/assets/js/530-renderers.js:72:    var dt = date instanceof Date ? date : Date.parseDate(date,"Y-m-d H:i:s");
share/assets/js/530-renderers.js:82:    '<img src="',Ext.BLANK_IMAGE_URL,'" class="ra-icon-14x14 ra-icon-gray-pencil">'
share/assets/js/530-renderers.js:100:  return '<pre class="ra-pre-wrap">' + v + '</pre>';
share/assets/js/530-renderers.js:108:    '<pre class="ra-pre-wrap">',
share/assets/js/530-renderers.js:120:  var style = 'color:red;opacity:0.5;font-weight:bolder;';
share/assets/js/530-renderers.js:125:    var prefix = (new Array((pad-digits)+1)).join('&nbsp;');
share/assets/js/530-renderers.js:129:  return ['<pre class="ra-pre-wrap">',code,'</pre>'].join("\n");
share/assets/js/530-renderers.js:134:// Reference/proof-of-concept
share/assets/js/530-renderers.js:140:    '<div class="ra-mo-expandable-max-height" style="max-height: 150px; overflow: hidden;">', 
share/assets/js/530-renderers.js:152:    if(icon_cls) { metaData.css = 'grid-cell-with-icon ' + icon_cls; }
share/assets/js/530-renderers.js:168:// Takes an image tag (html string) and makes it autosize via max-width:100%
share/assets/js/530-renderers.js:176:    var styles = 'max-width:100%;height:auto;width:auto;';
share/assets/js/530-renderers.js:177:    if(maxheight) { styles += 'max-height:' + maxheight + ';'; }
share/assets/js/530-renderers.js:211:    var dt = Date.parseDate(date,"Y-m-d H:i:s");
share/assets/js/530-renderers.js:212:    if (! dt) { dt = Date.parseDate(date,"Y-m-d"); }
share/assets/js/530-renderers.js:236:  // -- New: support case of no record object and render the disp/value outright. This
share/assets/js/530-renderers.js:238:  // manually with a single value argument (see server-side code for the renderer 
share/assets/js/530-renderers.js:243:  // --
share/assets/js/530-renderers.js:248:  // multi-rel: no link for 0 records:
share/assets/js/530-renderers.js:258:      // "unavailable" string (see the following code block) -- SEE UPDATED
share/assets/js/530-renderers.js:272:  // Added for GitHub #119 -- don't show links for bad rels
share/assets/js/530-renderers.js:278:    // For multi-rel. value actually only contains the count of related
share/assets/js/530-renderers.js:283:    // For single-rel
share/assets/js/530-renderers.js:294:    "ra-nav-link ra-icon-magnify-tiny",
share/assets/js/530-renderers.js:311:      // "unavailable" string (see the following code block) -- SEE UPDATED
share/assets/js/530-renderers.js:326:    // clean up the logic in this function and remove this and other not-needed
share/assets/js/530-renderers.js:331:    return '<span style="font-size:.90em;color:darkgrey;">' +
share/assets/js/530-renderers.js:353:    "ra-nav-link ra-icon-magnify-tiny",
share/assets/js/530-renderers.js:364:  var sep = '<span style="color: navy;font-size:1.2em;font-weight:bold;">,</span> ';
share/assets/js/530-renderers.js:377:  if(v == 0) { return  '<span style="color:#333333;font-size:1.3em;font-weight:bolder;">&ndash;</span>'; }
share/assets/js/530-renderers.js:378:  if(v < 0) { return   '<span style="color:red;font-weight:bold;">' + v + '</span>'; }
share/assets/js/530-renderers.js:379:  return           '<span style="color:green;font-weight:bold;">+' + v + '</span>'; 
share/assets/js/530-renderers.js:382:// Renders pct up tp 2 decimal points (i.e. .412343 = 41.23%) in green or red for +/-
share/assets/js/530-renderers.js:386:  if(v == 0) { return  '<span style="color:#333333;font-size:1.3em;font-weight:bolder;">&ndash;</span>'; }
share/assets/js/530-renderers.js:387:  if(v < 0) { return   '<span style="color:red;font-weight:bold;">-' + Math.abs(v) + '%</span>'; }
share/assets/js/530-renderers.js:388:  return           '<span style="color:green;font-weight:bold;">+' + v + '%</span>'; 
share/assets/js/530-renderers.js:391:// Renders money up tp 2 decimal points (i.e. 41.2343 = $41.23) in green or red for +/-
share/assets/js/530-renderers.js:395:  if(v == 0) { return  '<span style="color:#333333;font-size:1.3em;font-weight:bolder;">&ndash;</span>'; }
share/assets/js/530-renderers.js:396:  if(v < 0) { return   '<span style="color:red;font-weight:bold;">' + Ext.util.Format.usMoney(v) + '</span>'; }
share/assets/js/530-renderers.js:397:  return           '<span style="color:green;font-weight:bold;">+' + Ext.util.Format.usMoney(v) + '</span>'; 
share/assets/js/530-renderers.js:403:// is returned as-is.
share/assets/js/530-renderers.js:411:      return '<span title="' + v + '" style="font-size:1.5em;">&infin;</span>';
share/assets/js/530-renderers.js:443:    return Ext.ux.RapidApp.renderDurationSuf(-seconds);
share/assets/js/530-renderers.js:451:// Renders a short, human-readable duration/elapsed string from seconds.
share/assets/js/530-renderers.js:452:// The seconds are divided up into 5 units - years, days, hours, minutes and seconds -
share/assets/js/530-renderers.js:500:          style = 'font-size:1.1em;font-weight:bold;color:navy;min-width:50px;';
share/assets/js/530-renderers.js:503:          style = 'font-weight:bold;color:#333333;padding-right:30px;';
share/assets/js/530-renderers.js:506:          style = 'font-family:monospace;padding-right:10px;';
share/assets/js/530-renderers.js:522:      cls: 'r-simple-table',
share/assets/js/530-renderers.js:534:  var icon_cls = 'ra-icon-document';
share/assets/js/530-renderers.js:536:  if(ext == 'pdf')  { icon_cls = 'ra-icon-page-white-acrobat'; }
share/assets/js/530-renderers.js:537:  if(ext == 'zip')  { icon_cls = 'ra-icon-page-white-compressed'; }
share/assets/js/530-renderers.js:538:  if(ext == 'xls')  { icon_cls = 'ra-icon-page-white-excel'; }
share/assets/js/530-renderers.js:539:  if(ext == 'xlsx') { icon_cls = 'ra-icon-page-excel'; }
share/assets/js/530-renderers.js:540:  if(ext == 'ppt')  { icon_cls = 'ra-icon-page-white-powerpoint'; }
share/assets/js/530-renderers.js:541:  if(ext == 'txt')  { icon_cls = 'ra-icon-page-white-text'; }
share/assets/js/530-renderers.js:542:  if(ext == 'doc')  { icon_cls = 'ra-icon-page-white-word'; }
share/assets/js/530-renderers.js:543:  if(ext == 'docx') { icon_cls = 'ra-icon-page-word'; }
share/assets/js/530-renderers.js:544:  if(ext == 'iso')  { icon_cls = 'ra-icon-page-white-cd'; }
share/assets/js/530-renderers.js:547:    '<span class="with-icon ', icon_cls,'">',
share/assets/js/530-renderers.js:570:  var i = 0, l = this.length - 1, bytes = [];
share/assets/js/530-renderers.js:607:        'class="ra-hex-string">',
share/assets/js/530-renderers.js:621:  mime_type = mime_type || 'application/octet-stream';
share/assets/js/530-renderers.js:644:      var url = ['_ra-rel-mnt_/simplecas/fetch_content/',sha1,'/',filename].join('');
share/assets/js/530-renderers.js:651:            'class="ra-icon-paperclip-tiny"',
share/assets/js/530-renderers.js:682:    url = [pfx,'/assets/rapidapp/misc/static/images/img-placeholder.png'].join('');
share/assets/js/530-renderers.js:701:      url = ['_ra-rel-mnt_/simplecas/fetch_content/',v].join('');
share/assets/js/530-renderers.js:711:    'style="max-width:100%;max-height:100%;">'
share/assets/js/530-renderers.js:717:    '<span class="ra-wrap-on">',
share/assets/js/530-renderers.js:728:  return ['<span style="color:',color,';font-weight:bold;">',v,'</span>'].join('');
share/assets/js/600-GenericChangePW.js:6:	var winId = 'general-change-pw-window';
share/assets/js/600-GenericChangePW.js:63:		//plugins: ['dynamic-label-width'],
share/assets/js/600-GenericChangePW.js:67:		defaults: { anchor: '-0' },
share/assets/js/600-GenericChangePW.js:74:			{ html: '<div class="ra-change-pw-heading">' +
share/assets/js/600-GenericChangePW.js:76:					'<div class="sub">Username:&nbsp;&nbsp;<span class="blue-text-code">' + 
share/assets/js/600-GenericChangePW.js:104:				iconCls: 'ra-icon-key',
share/assets/js/900-moment.min-1.7.2.js:6:(function(a){function E(a,b,c,d){var e=c.lang();return e[a].call?e[a](c,d):e[a][b]}function F(a,b){return function(c){return K(a.call(this,c),b)}}function G(a){return function(b){var c=a.call(this,b);return c+this.lang().ordinal(c)}}function H(a,b,c){this._d=a,this._isUTC=!!b,this._a=a._a||null,this._lang=c||!1}function I(a){var b=this._data={},c=a.years||a.y||0,d=a.months||a.M||0,e=a.weeks||a.w||0,f=a.days||a.d||0,g=a.hours||a.h||0,h=a.minutes||a.m||0,i=a.seconds||a.s||0,j=a.milliseconds||a.ms||0;this._milliseconds=j+i*1e3+h*6e4+g*36e5,this._days=f+e*7,this._months=d+c*12,b.milliseconds=j%1e3,i+=J(j/1e3),b.seconds=i%60,h+=J(i/60),b.minutes=h%60,g+=J(h/60),b.hours=g%24,f+=J(g/24),f+=e*7,b.days=f%30,d+=J(f/30),b.months=d%12,c+=J(d/12),b.years=c,this._lang=!1}function J(a){return a<0?Math.ceil(a):Math.floor(a)}function K(a,b){var c=a+"";while(c.length<b)c="0"+c;return c}function L(a,b,c){var d=b._milliseconds,e=b._days,f=b._months,g;d&&a._d.setTime(+a+d*c),e&&a.date(a.date()+e*c),f&&(g=a.date(),a.date(1).month(a.month()+f*c).date(Math.min(g,a.daysInMonth())))}function M(a){return Object.prototype.toString.call(a)==="[object Array]"}function N(a,b){var c=Math.min(a.length,b.length),d=Math.abs(a.length-b.length),e=0,f;for(f=0;f<c;f++)~~a[f]!==~~b[f]&&e++;return e+d}function O(a,b,c,d){var e,f,g=[];for(e=0;e<7;e++)g[e]=a[e]=a[e]==null?e===2?1:0:a[e];return a[7]=g[7]=b,a[8]!=null&&(g[8]=a[8]),a[3]+=c||0,a[4]+=d||0,f=new Date(0),b?(f.setUTCFullYear(a[0],a[1],a[2]),f.setUTCHours(a[3],a[4],a[5],a[6])):(f.setFullYear(a[0],a[1],a[2]),f.setHours(a[3],a[4],a[5],a[6])),f._a=g,f}function P(a,c){var d,e,g=[];!c&&h&&(c=require("./lang/"+a));for(d=0;d<i.length;d++)c[i[d]]=c[i[d]]||f.en[i[d]];for(d=0;d<12;d++)e=b([2e3,d]),g[d]=new RegExp("^"+(c.months[d]||c.months(e,""))+"|^"+(c.monthsShort[d]||c.monthsShort(e,"")).replace(".",""),"i");return c.monthsParse=c.monthsParse||g,f[a]=c,c}function Q(a){var c=typeof a=="string"&&a||a&&a._lang||null;return c?f[c]||P(c):b}function R(a){return a.match(/\[.*\]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function S(a){var b=a.match(k),c,d;for(c=0,d=b.length;c<d;c++)D[b[c]]?b[c]=D[b[c]]:b[c]=R(b[c]);return function(e){var f="";for(c=0;c<d;c++)f+=typeof b[c].call=="function"?b[c].call(e,a):b[c];return f}}function T(a,b){function d(b){return a.lang().longDateFormat[b]||b}var c=5;while(c--&&l.test(b))b=b.replace(l,d);return A[b]||(A[b]=S(b)),A[b](a)}function U(a){switch(a){case"DDDD":return p;case"YYYY":return q;case"S":case"SS":case"SSS":case"DDD":return o;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":case"a":case"A":return r;case"Z":case"ZZ":return s;case"T":return t;case"MM":case"DD":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return n;default:return new RegExp(a.replace("\\",""))}}function V(a,b,c,d){var e,f;switch(a){case"M":case"MM":c[1]=b==null?0:~~b-1;break;case"MMM":case"MMMM":for(e=0;e<12;e++)if(Q().monthsParse[e].test(b)){c[1]=e,f=!0;break}f||(c[8]=!1);break;case"D":case"DD":case"DDD":case"DDDD":b!=null&&(c[2]=~~b);break;case"YY":c[0]=~~b+(~~b>70?1900:2e3);break;case"YYYY":c[0]=~~Math.abs(b);break;case"a":case"A":d.isPm=(b+"").toLowerCase()==="pm";break;case"H":case"HH":case"h":case"hh":c[3]=~~b;break;case"m":case"mm":c[4]=~~b;break;case"s":case"ss":c[5]=~~b;break;case"S":case"SS":case"SSS":c[6]=~~(("0."+b)*1e3);break;case"Z":case"ZZ":d.isUTC=!0,e=(b+"").match(x),e&&e[1]&&(d.tzh=~~e[1]),e&&e[2]&&(d.tzm=~~e[2]),e&&e[0]==="+"&&(d.tzh=-d.tzh,d.tzm=-d.tzm)}b==null&&(c[8]=!1)}function W(a,b){var c=[0,0,1,0,0,0,0],d={tzh:0,tzm:0},e=b.match(k),f,g;for(f=0;f<e.length;f++)g=(U(e[f]).exec(a)||[])[0],g&&(a=a.slice(a.indexOf(g)+g.length)),D[e[f]]&&V(e[f],g,c,d);return d.isPm&&c[3]<12&&(c[3]+=12),d.isPm===!1&&c[3]===12&&(c[3]=0),O(c,d.isUTC,d.tzh,d.tzm)}function X(a,b){var c,d=a.match(m)||[],e,f=99,g,h,i;for(g=0;g<b.length;g++)h=W(a,b[g]),e=T(new H(h),b[g]).match(m)||[],i=N(d,e),i<f&&(f=i,c=h);return c}function Y(a){var b="YYYY-MM-DDT",c;if(u.exec(a)){for(c=0;c<4;c++)if(w[c][1].exec(a)){b+=w[c][0];break}return s.exec(a)?W(a,b+" Z"):W(a,b)}return new Date(a)}function Z(a,b,c,d,e){var f=e.relativeTime[a];return typeof f=="function"?f(b||1,!!c,a,d):f.replace(/%d/i,b||1)}function $(a,b,c){var e=d(Math.abs(a)/1e3),f=d(e/60),g=d(f/60),h=d(g/24),i=d(h/365),j=e<45&&["s",e]||f===1&&["m"]||f<45&&["mm",f]||g===1&&["h"]||g<22&&["hh",g]||h===1&&["d"]||h<=25&&["dd",h]||h<=45&&["M"]||h<345&&["MM",d(h/30)]||i===1&&["y"]||["yy",i];return j[2]=b,j[3]=a>0,j[4]=c,Z.apply({},j)}function _(a,c){b.fn[a]=function(a){var b=this._isUTC?"UTC":"";return a!=null?(this._d["set"+b+c](a),this):this._d["get"+b+c]()}}function ab(a){b.duration.fn[a]=function(){return this._data[a]}}function bb(a,c){b.duration.fn["as"+a]=function(){return+this/c}}var b,c="1.7.2",d=Math.round,e,f={},g="en",h=typeof module!="undefined"&&module.exports,i="months|monthsShort|weekdays|weekdaysShort|weekdaysMin|longDateFormat|calendar|relativeTime|ordinal|meridiem".split("|"),j=/^\/?Date\((\-?\d+)/i,k=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|SS?S?|zz?|ZZ?|.)/g,l=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?)/g,m=/([0-9a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)/gi,n=/\d\d?/,o=/\d{1,3}/,p=/\d{3}/,q=/\d{1,4}/,r=/[0-9a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+/i,s=/Z|[\+\-]\d\d:?\d\d/i,t=/T/i,u=/^\s*\d{4}-\d\d-\d\d(T(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,v="YYYY-MM-DDTHH:mm:ssZ",w=[["HH:mm:ss.S",/T\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/T\d\d:\d\d:\d\d/],["HH:mm",/T\d\d:\d\d/],["HH",/T\d\d/]],x=/([\+\-]|\d\d)/gi,y="Month|Date|Hours|Minutes|Seconds|Milliseconds".split("|"),z={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},A={},B="DDD w M D d".split(" "),C="M D H h m s w".split(" "),D={M:function(){return this.month()+1},MMM:function(a){return E("monthsShort",this.month(),this,a)},MMMM:function(a){return E("months",this.month(),this,a)},D:function(){return this.date()},DDD:function(){var a=new Date(this.year(),this.month(),this.date()),b=new Date(this.year(),0,1);return~~((a-b)/864e5+1.5)},d:function(){return this.day()},dd:function(a){return E("weekdaysMin",this.day(),this,a)},ddd:function(a){return E("weekdaysShort",this.day(),this,a)},dddd:function(a){return E("weekdays",this.day(),this,a)},w:function(){var a=new Date(this.year(),this.month(),this.date()-this.day()+5),b=new Date(a.getFullYear(),0,4);return~~((a-b)/864e5/7+1.5)},YY:function(){return K(this.year()%100,2)},YYYY:function(){return K(this.year(),4)},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return K(~~(this.milliseconds()/10),2)},SSS:function(){return K(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return a<0&&(a=-a,b="-"),b+K(~~(a/60),2)+":"+K(~~a%60,2)},ZZ:function(){var a=-this.zone(),b="+";return a<0&&(a=-a,b="-"),b+K(~~(10*a/6),4)}};while(B.length)e=B.pop(),D[e+"o"]=G(D[e]);while(C.length)e=C.pop(),D[e+e]=F(D[e],2);D.DDDD=F(D.DDD,3),b=function(c,d){if(c===null||c==="")return null;var e,f;return b.isMoment(c)?new H(new Date(+c._d),c._isUTC,c._lang):(d?M(d)?e=X(c,d):e=W(c,d):(f=j.exec(c),e=c===a?new Date:f?new Date(+f[1]):c instanceof Date?c:M(c)?O(c):typeof c=="string"?Y(c):new Date(c)),new H(e))},b.utc=function(a,c){return M(a)?new H(O(a,!0),!0):(typeof a=="string"&&!s.exec(a)&&(a+=" +0000",c&&(c+=" Z")),b(a,c).utc())},b.unix=function(a){return b(a*1e3)},b.duration=function(a,c){var d=b.isDuration(a),e=typeof a=="number",f=d?a._data:e?{}:a,g;return e&&(c?f[c]=a:f.milliseconds=a),g=new I(f),d&&(g._lang=a._lang),g},b.humanizeDuration=function(a,c,d){return b.duration(a,c===!0?null:c).humanize(c===!0?!0:d)},b.version=c,b.defaultFormat=v,b.lang=function(a,c){var d;if(!a)return g;(c||!f[a])&&P(a,c);if(f[a]){for(d=0;d<i.length;d++)b[i[d]]=f[a][i[d]];b.monthsParse=f[a].monthsParse,g=a}},b.langData=Q,b.isMoment=function(a){return a instanceof H},b.isDuration=function(a){return a instanceof I},b.lang("en",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return~~(a%100/10)===1?"th":b===1?"st":b===2?"nd":b===3?"rd":"th"}}),b.fn=H.prototype={clone:function(){return b(this)},valueOf:function(){return+this._d},unix:function(){return Math.floor(+this._d/1e3)},toString:function(){return this._d.toString()},toDate:function(){return this._d},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds(),!!this._isUTC]},isValid:function(){return this._a?this._a[8]!=null?!!this._a[8]:!N(this._a,(this._a[7]?b.utc(this._a):b(this._a)).toArray()):!isNaN(this._d.getTime())},utc:function(){return this._isUTC=!0,this},local:function(){return this._isUTC=!1,this},format:function(a){return T(this,a?a:b.defaultFormat)},add:function(a,c){var d=c?b.duration(+c,a):b.duration(a);return L(this,d,1),this},subtract:function(a,c){var d=c?b.duration(+c,a):b.duration(a);return L(this,d,-1),this},diff:function(a,c,e){var f=this._isUTC?b(a).utc():b(a).local(),g=(this.zone()-f.zone())*6e4,h=this._d-f._d-g,i=this.year()-f.year(),j=this.month()-f.month(),k=this.date()-f.date(),l;return c==="months"?l=i*12+j+k/30:c==="years"?l=i+(j+k/30)/12:l=c==="seconds"?h/1e3:c==="minutes"?h/6e4:c==="hours"?h/36e5:c==="days"?h/864e5:c==="weeks"?h/6048e5:h,e?l:d(l)},from:function(a,c){return b.duration(this.diff(a)).lang(this._lang).humanize(!c)},fromNow:function(a){return this.from(b(),a)},calendar:function(){var a=this.diff(b().sod(),"days",!0),c=this.lang().calendar,d=c.sameElse,e=a<-6?d:a<-1?c.lastWeek:a<0?c.lastDay:a<1?c.sameDay:a<2?c.nextDay:a<7?c.nextWeek:d;return this.format(typeof e=="function"?e.apply(this):e)},isLeapYear:function(){var a=this.year();return a%4===0&&a%100!==0||a%400===0},isDST:function(){return this.zone()<b([this.year()]).zone()||this.zone()<b([this.year(),5]).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return a==null?b:this.add({d:a-b})},startOf:function(a){switch(a.replace(/s$/,"")){case"year":this.month(0);case"month":this.date(1);case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return this},endOf:function(a){return this.startOf(a).add(a.replace(/s?$/,"s"),1).subtract("ms",1)},sod:function(){return this.clone().startOf("day")},eod:function(){return this.clone().endOf("day")},zone:function(){return this._isUTC?0:this._d.getTimezoneOffset()},daysInMonth:function(){return b.utc([this.year(),this.month()+1,0]).date()},lang:function(b){return b===a?Q(this):(this._lang=b,this)}};for(e=0;e<y.length;e++)_(y[e].toLowerCase(),y[e]);_("year","FullYear"),b.duration.fn=I.prototype={weeks:function(){return J(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months*2592e6},humanize:function(a){var b=+this,c=this.lang().relativeTime,d=$(b,!a,this.lang()),e=b<=0?c.past:c.future;return a&&(typeof e=="function"?d=e(d):d=e.replace(/%s/i,d)),d},lang:b.fn.lang};for(e in z)z.hasOwnProperty(e)&&(bb(e,z[e]),ab(e.toLowerCase()));bb("Weeks",6048e5),h&&(module.exports=b),typeof ender=="undefined"&&(this.moment=b),typeof define=="function"&&define.amd&&define("moment",[],function(){return b})}).call(this);
share/assets/js/950-mutation-observers.js:1:// http://ryanmorr.com/using-mutation-observers-to-watch-for-element-availability/
share/assets/js/950-mutation-observers.js:88:  <div class="ra-mo-expandable-max-height">
share/assets/js/950-mutation-observers.js:89:    <div class="content" style="max-height: 150px; overflow: hidden;">
share/assets/js/950-mutation-observers.js:96:ready('.ra-mo-expandable-max-height', function(el) {
share/assets/js/950-mutation-observers.js:101:  // Do nothing if we contain another ra-mo-expandable-max-height element:
share/assets/js/950-mutation-observers.js:103:  //  to somehow figure out what the max-height of the children are, and then turn them
share/assets/js/950-mutation-observers.js:107:  //if(el.getElementsByClassName('ra-mo-expandable-max-height')[0]) { return; }
share/assets/js/950-mutation-observers.js:111:    var prop = CssStyle.getPropertyValue('max-height');
share/assets/js/950-mutation-observers.js:117:    // Set max-height via special 'mh-PIXELS' class name (e.g. 'mh-235')
share/assets/js/950-mutation-observers.js:119:      var parts = el.classList[i].split('-');
share/assets/js/950-mutation-observers.js:121:        resetMH = el.style['max-height'];
share/assets/js/950-mutation-observers.js:122:        el.style['max-height'] = parts[1]+'px';
share/assets/js/950-mutation-observers.js:138:      // parent element and then clean-up/remove the temp element. 
share/assets/js/950-mutation-observers.js:172:    // if we already changed the max-height due to special class we need to set it back
share/assets/js/950-mutation-observers.js:173:    if(typeof resetMH != undefined) { el.style['max-height'] = resetMH; }
share/assets/js/950-mutation-observers.js:177:  // This only works if there is a max-height:
share/assets/js/950-mutation-observers.js:180:  var origMH = el.style['max-height'];
share/assets/js/950-mutation-observers.js:187:  toggleWrap.style['padding-top']   = '5px';
share/assets/js/950-mutation-observers.js:188:  toggleWrap.style['text-align']    = 'center';
share/assets/js/950-mutation-observers.js:197:      el.style['max-height'] = 'none';
share/assets/js/950-mutation-observers.js:201:      el.style['max-height'] = origMH;
Binary file share/assets/misc/charts.swf matches
share/assets/misc/html/htmleditor_load_download_help.html:4:<!--
share/assets/misc/html/htmleditor_load_download_help.html:6:needs updated/refactored, etc - GitHub Issue #116
share/assets/misc/html/htmleditor_load_download_help.html:7:-->
share/assets/misc/html/htmleditor_load_download_help.html:13:  font-family: Arial, sans-serif;
share/assets/misc/html/htmleditor_load_download_help.html:17:  font-size:.8em;
share/assets/misc/html/htmleditor_load_download_help.html:21:  line-height:140%;
share/assets/misc/html/htmleditor_load_download_help.html:32:Using the <span class="ra-icon-paste-document with-inline-icon"><em>Load from File</em></span> and <span class="ra-icon-document-save with-inline-icon"><em>Download as File</em></span> functions you can edit content using external programs, like Microsoft&reg; Word, including rich content like embedded images.
share/assets/misc/html/htmleditor_load_download_help.html:40:<li>Select &lsquo;<span class="ra-icon-paste-document with-inline-icon"><em>Load from File</em></span>&rsquo; from the <span class="ra-icon-bullet-wrench with-inline-icon" style="font-size:.9em;font-weight:bold;">Tools</span> menu and select the file saved from the previous step</li>
share/assets/misc/html/htmleditor_load_download_help.html:46:<li>Select &lsquo;<span class="ra-icon-document-save with-inline-icon"><em>Download as File</em></span>&rsquo; from the <span class="ra-icon-bullet-wrench with-inline-icon" style="font-size:.9em;font-weight:bold;">Tools</span> menu</li>
share/assets/misc/html/htmleditor_load_download_help.html:49:<li>Use &lsquo;<span class="ra-icon-paste-document with-inline-icon"><em>Load from File</em></span>&rsquo; to load changes back into the online editor</li>
Binary file share/assets/misc/icon-error.gif matches
Binary file share/assets/misc/images/Hubernate.png matches
Binary file share/assets/misc/images/IntelliTree_64x64_green.png matches
Binary file share/assets/misc/images/Log-Out-icon-256x256.png matches
Binary file share/assets/misc/images/Log-Out-icon-32x32.png matches
Binary file share/assets/misc/images/Log-Out-icon-48x48.png matches
Binary file share/assets/misc/images/Refresh.png matches
Binary file share/assets/misc/images/Shutdown.png matches
Binary file share/assets/misc/images/Thumbs.db matches
Binary file share/assets/misc/images/Wallpaper.png matches
Binary file share/assets/misc/images/bgBlackBox.png matches
Binary file share/assets/misc/images/bgTabsHover.png matches
Binary file share/assets/misc/images/bgWhiteBox.png matches
Binary file share/assets/misc/images/black.jpg matches
Binary file share/assets/misc/images/btn_120x50_built.png matches
Binary file share/assets/misc/images/btn_120x50_built_shadow.png matches
Binary file share/assets/misc/images/btn_120x50_powered.png matches
Binary file share/assets/misc/images/btn_120x50_powered_shadow.png matches
Binary file share/assets/misc/images/bullet_arrow_down.png matches
Binary file share/assets/misc/images/bullet_arrow_down_sm.png matches
Binary file share/assets/misc/images/bullet_cross.png matches
Binary file share/assets/misc/images/bullet_disk.png matches
Binary file share/assets/misc/images/bullet_pencil.png matches
Binary file share/assets/misc/images/bullet_pencil_gray.png matches
Binary file share/assets/misc/images/catalyst_logo.png matches
Binary file share/assets/misc/images/clock_run_24x24.png matches
Binary file share/assets/misc/images/cornerBlackBottomLeft.png matches
Binary file share/assets/misc/images/cornerBlackBottomRight.png matches
Binary file share/assets/misc/images/cornerWhiteTopRight.png matches
Binary file share/assets/misc/images/cross.png matches
Binary file share/assets/misc/images/cross_tiny.png matches
Binary file share/assets/misc/images/dbi_explorer_logo.gif matches
Binary file share/assets/misc/images/form-collapse-icon.gif matches
Binary file share/assets/misc/images/htmleditorplugins/edit-findandreplace.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-heading-h2.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-image.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-indent.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-redo.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-removeFormat.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-subscript.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-superscript.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-undo.png matches
Binary file share/assets/misc/images/htmleditorplugins/edit-word-text.png matches
share/assets/misc/images/htmleditorplugins/notice.txt:6:- http://www.famfamfam.com/
share/assets/misc/images/htmleditorplugins/notice.txt:7:- http://code.google.com/p/fugue-icons/
share/assets/misc/images/htmleditorplugins/notice.txt:8:- http://www.everaldo.com/crystal/
Binary file share/assets/misc/images/iconLoggedIn.png matches
Binary file share/assets/misc/images/iconLoggedOut.png matches
Binary file share/assets/misc/images/img-placeholder.png matches
Binary file share/assets/misc/images/indicator.gif matches
Binary file share/assets/misc/images/intellitreeLogo.png matches
Binary file share/assets/misc/images/keys.png matches
Binary file share/assets/misc/images/leftTitleBG.png matches
Binary file share/assets/misc/images/logoMain_small.png matches
Binary file share/assets/misc/images/pencil_tiny.png matches
Binary file share/assets/misc/images/pencil_tiny_gray.png matches
Binary file share/assets/misc/images/powered_intellitree_footer.png matches
Binary file share/assets/misc/images/progress_green_blocks.gif matches
Binary file share/assets/misc/images/rapidapp_catalyst_logo.png matches
Binary file share/assets/misc/images/rapidapp_icon_medium.png matches
Binary file share/assets/misc/images/rapidapp_icon_small.ico matches
Binary file share/assets/misc/images/rapidapp_logo_small.png matches
Binary file share/assets/misc/images/rapidapp_logo_tiny.png matches
Binary file share/assets/misc/images/rapidapp_powered_logo_small.png matches
Binary file share/assets/misc/images/rapidapp_powered_logo_tiny.png matches
Binary file share/assets/misc/images/reboot-large-241.gif matches
Binary file share/assets/misc/images/rightTitleBG.png matches
Binary file share/assets/misc/images/simple_new.png matches
Binary file share/assets/misc/images/sportsrite_tiny.png matches
Binary file share/assets/misc/images/standard_web_logo.gif matches
Binary file share/assets/misc/images/strong_branch.png matches
Binary file share/assets/misc/images/superboxselect/clear.png matches
Binary file share/assets/misc/images/superboxselect/close.png matches
Binary file share/assets/misc/images/superboxselect/expand.png matches
Binary file share/assets/misc/images/table_sql_create_32x32.png matches
Binary file share/assets/misc/images/tableft1.gif matches
Binary file share/assets/misc/images/tabright1.gif matches
Binary file share/assets/misc/images/trigger-square-light.gif matches
share/assets/misc/js/external_hashpath.js:4:// a custom, non-login page is set (e.g. if 'public_root_template' is set
Binary file share/assets/misc/login/clippardShadowLogo.png matches
share/assets/misc/login/css/style.css:1:﻿/* --------------------------------------------------
share/assets/misc/login/css/style.css:3:-----------------------------------------------------
share/assets/misc/login/css/style.css:15:/* -----------------------------------------
share/assets/misc/login/css/style.css:17:----------------------------------------- */
share/assets/misc/login/css/style.css:19:	html {overflow-y:scroll}
share/assets/misc/login/css/style.css:20:	body {font:100 13px/1.4 Helvetica, Arial, sans-serif;color:#222;background-color: #eeeeee}
share/assets/misc/login/css/style.css:21:	code,pre{border-radius:3px 3px 3px 3px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:12px;padding:0 3px 2px}
share/assets/misc/login/css/style.css:22:	code{background-color:#FEE9CC;color:rgba(0,0,0,0.75);padding:1px 3px}
share/assets/misc/login/css/style.css:23:	pre{background-color:#F5F5F5;border:1px solid rgba(0,0,0,0.15);border-radius:3px 3px 3px 3px;display:block;font-size:12px;line-height:18px;white-space:pre-wrap;word-wrap:break-word;margin:0 0 18px;padding:8.5px}
share/assets/misc/login/css/style.css:28:		-webkit-appearance: none;
share/assets/misc/login/css/style.css:29:		-moz-appearance: none;
share/assets/misc/login/css/style.css:32:	.vam{vertical-align:middle}
share/assets/misc/login/css/style.css:33:	.tac{text-align:center}
share/assets/misc/login/css/style.css:34:	.tar{text-align:right}
share/assets/misc/login/css/style.css:35:	.taj{text-align:justify}
share/assets/misc/login/css/style.css:38:	a:hover {color:#21759b;text-decoration:underline}
share/assets/misc/login/css/style.css:40:	a.inv {text-decoration:underline}
share/assets/misc/login/css/style.css:41:	a.inv:hover {text-decoration:none}
share/assets/misc/login/css/style.css:42:	.external_link {background: url(../img/external_link.png) no-repeat right center;padding-right:12px}
share/assets/misc/login/css/style.css:43:	a.button {text-decoration:none}
share/assets/misc/login/css/style.css:44:	.clear_form {vertical-align:middle;margin:0 5px}
share/assets/misc/login/css/style.css:45:	*::-moz-selection {background: none repeat scroll 0 0 #367aa9;color: #fff;text-shadow: none}
share/assets/misc/login/css/style.css:53:		.sepH_a {margin-bottom:5px}.sepH_b {margin-bottom:10px}.sepH_c {margin-bottom:20px}
share/assets/misc/login/css/style.css:54:		.sepV_a {margin-right:5px}.sepV_b {margin-right:10px}.sepV_c {margin-right:20px}
share/assets/misc/login/css/style.css:55:		.sepH_a_line {padding-bottom:6px;margin-bottom:18px;border-bottom:1px solid #dcdcdc}
share/assets/misc/login/css/style.css:56:		.sepH_no {margin-bottom:0}
share/assets/misc/login/css/style.css:59:		button {*border: none !important;*border-color: transparent !important}
share/assets/misc/login/css/style.css:62:		@media screen and (-webkit-min-device-pixel-ratio:0) {
share/assets/misc/login/css/style.css:67:		.small{font-size:11px}
share/assets/misc/login/css/style.css:68:		.medium {font-size: 13px}
share/assets/misc/login/css/style.css:69:		.large{font-size:17px}
share/assets/misc/login/css/style.css:72:		h1, h2, h3, h4, h5, h6 {font-weight:400}
share/assets/misc/login/css/style.css:73:		small {font-size:11px}
share/assets/misc/login/css/style.css:74:		ul,ol,li {margin-bottom:0}
share/assets/misc/login/css/style.css:75:		ul.pagination {margin-bottom:14px}
share/assets/misc/login/css/style.css:76:		ul.pagination a:hover {text-decoration:none}
share/assets/misc/login/css/style.css:77:		input.input-text:focus, textarea:focus {background: #f3fee7}
share/assets/misc/login/css/style.css:78:		input,textarea,select {font-family:inherit}
share/assets/misc/login/css/style.css:79:		label + input.input-text, label + textarea, label + select, label + div.dropdown, select + div.dropdown {margin-top: -6px}
share/assets/misc/login/css/style.css:80:		.form-field.error label {color: inherit}
share/assets/misc/login/css/style.css:81:		form.custom div.custom.dropdown a:hover {text-decoration:none}
share/assets/misc/login/css/style.css:82:		form.nice div.form-field input,form.nice div.form-field textarea{border-color: #C00000}
share/assets/misc/login/css/style.css:83:		p {line-height: 1.4}
share/assets/misc/login/css/style.css:84:		.row .row {max-width: 100%; min-width: 0}
share/assets/misc/login/css/style.css:85:		.form-field.error input:focus, .form-field.error textarea:focus {background-color: rgba(255,0,0,0.25)}
share/assets/misc/login/css/style.css:86:		.alert-box a.close {padding:3px}
share/assets/misc/login/css/style.css:87:		.alert-box a.close:hover {text-decoration:none}
share/assets/misc/login/css/style.css:88:		ul.pagination li a.current {border-bottom: 2px solid #00A6FC;color: #141414}
share/assets/misc/login/css/style.css:89:		ul.nice li {margin-bottom:12px}
share/assets/misc/login/css/style.css:90:		img {max-width:none\9}
share/assets/misc/login/css/style.css:91:		.alert-box.info {background-color: #058DC7;color: #fff;text-shadow: 0 -1px rgba(0, 0, 0, 0.3)}
share/assets/misc/login/css/style.css:92:		div.alert-box {padding-right:22px}
share/assets/misc/login/css/style.css:94:	/* ------------------------------------------
share/assets/misc/login/css/style.css:97:	http://github.com/necolas/css3-github-buttons
share/assets/misc/login/css/style.css:98:	------------------------------------------ */
share/assets/misc/login/css/style.css:100:	.gh_button {position: relative;overflow: visible;display: inline-block;padding: 0.5em 1em;border: 1px solid #d4d4d4;margin: 0;text-decoration: none;text-shadow: 1px 1px 0 #fff;font:11px/normal sans-serif;color: #333;white-space: nowrap;cursor: pointer;outline: none;background-color: #ececec;background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f4f4f4), to(#ececec));background-image: -moz-linear-gradient(#f4f4f4, #ececec);background-image: -o-linear-gradient(#f4f4f4, #ececec);background-image: linear-gradient(#f4f4f4, #ececec);-webkit-background-clip: padding;-moz-background-clip: padding;-o-background-clip: padding-box;-webkit-border-radius: 0.2em;-moz-border-radius: 0.2em;border-radius: 0.2em;zoom: 1;*display: inline}
share/assets/misc/login/css/style.css:101:	.gh_button:hover,.gh_button:focus,.gh_button:active,.gh_button.active {border-color: #3072b3;border-bottom-color: #2a65a0;text-decoration: none;text-shadow: -1px -1px 0 rgba(0,0,0,0.3);color: #fff;background-color: #3C8DDE;background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#599bdc), to(#3072b3));background-image: -moz-linear-gradient(#599bdc, #3072b3);background-image: -o-linear-gradient(#599bdc, #3072b3);background-image: linear-gradient(#599bdc, #3072b3)}
share/assets/misc/login/css/style.css:102:	.gh_button:active,.gh_button.active {border-color: #2a65a0;border-bottom-color: #3884CF;background-color: #3072b3;background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3072b3), to(#599bdc));background-image: -moz-linear-gradient(#3072b3, #599bdc);background-image: -o-linear-gradient(#3072b3, #599bdc);background-image: linear-gradient(#3072b3, #599bdc)}
share/assets/misc/login/css/style.css:103:	.gh_button::-moz-focus-inner {padding: 0;border: 0}
share/assets/misc/login/css/style.css:104:	.gh_button.icon:before {content: "";position: relative;top: 1px;float:left;width: 12px;height: 12px;margin: 0 0.75em 0 -0.25em;background: url(../img/ico/gh-icons.png) 0 99px no-repeat}
share/assets/misc/login/css/style.css:105:	.gh_button.arrowup.icon:before {background-position: 0 0}
share/assets/misc/login/css/style.css:106:	.gh_button.arrowup.icon:hover:before,.gh_button.arrowup.icon:focus:before,.gh_button.arrowup.icon:active:before {background-position: -12px 0}
share/assets/misc/login/css/style.css:107:	.gh_button.arrowdown.icon:before {background-position: 0 -12px}
share/assets/misc/login/css/style.css:108:	.gh_button.arrowdown.icon:hover:before,.gh_button.arrowdown.icon:focus:before,.gh_button.arrowdown.icon:active:before {background-position: -12px -12px}
share/assets/misc/login/css/style.css:109:	.gh_button.arrowleft.icon:before{background-position:0 -24px}
share/assets/misc/login/css/style.css:110:	.gh_button.arrowleft.icon:hover:before,.gh_button.arrowleft.icon:focus:before,.gh_button.arrowleft.icon:active:before{background-position:-12px -24px}
share/assets/misc/login/css/style.css:111:	.gh_button.arrowright.icon:before{float:right;background-position:0 -36px;margin:0 -.25em 0 .5em}
share/assets/misc/login/css/style.css:112:	.gh_button.arrowright.icon:hover:before,.gh_button.arrowright.icon:focus:before,.gh_button.arrowright.icon:active:before{background-position:-12px -36px}
share/assets/misc/login/css/style.css:113:	.gh_button.approve.icon:before{background-position:0 -48px}
share/assets/misc/login/css/style.css:114:	.gh_button.approve.icon:hover:before,.gh_button.approve.icon:focus:before,.gh_button.approve.icon:active:before{background-position:-12px -48px}
share/assets/misc/login/css/style.css:115:	.gh_button.add.icon:before{background-position:0 -288px}
share/assets/misc/login/css/style.css:116:	.gh_button.add.icon:hover:before,.gh_button.add.icon:focus:before,.gh_button.add.icon:active:before{background-position:-12px -288px}
share/assets/misc/login/css/style.css:117:	.gh_button.remove.icon:before{background-position:0 -60px}
share/assets/misc/login/css/style.css:118:	.gh_button.remove.icon:hover:before,.gh_button.remove.icon:focus:before,.gh_button.remove.icon:active:before{background-position:-12px -60px}
share/assets/misc/login/css/style.css:119:	.gh_button.log.icon:before{background-position:0 -72px}
share/assets/misc/login/css/style.css:120:	.gh_button.log.icon:hover:before,.gh_button.log.icon:focus:before,.gh_button.log.icon:active:before{background-position:-12px -72px}
share/assets/misc/login/css/style.css:121:	.gh_button.calendar.icon:before{background-position:0 -84px}
share/assets/misc/login/css/style.css:122:	.gh_button.calendar.icon:hover:before,.gh_button.calendar.icon:focus:before,.gh_button.calendar.icon:active:before{background-position:-12px -84px}
share/assets/misc/login/css/style.css:123:	.gh_button.chat.icon:before{background-position:0 -96px}
share/assets/misc/login/css/style.css:124:	.gh_button.chat.icon:hover:before,.gh_button.chat.icon:focus:before,.gh_button.chat.icon:active:before{background-position:-12px -96px}
share/assets/misc/login/css/style.css:125:	.gh_button.clock.icon:before{background-position:0 -108px}
share/assets/misc/login/css/style.css:126:	.gh_button.clock.icon:hover:before,.gh_button.clock.icon:focus:before,.gh_button.clock.icon:active:before{background-position:-12px -108px}
share/assets/misc/login/css/style.css:127:	.gh_button.settings.icon:before{background-position:0 -120px}
share/assets/misc/login/css/style.css:128:	.gh_button.settings.icon:hover:before,.gh_button.settings.icon:focus:before,.gh_button.settings.icon:active:before{background-position:-12px -120px}
share/assets/misc/login/css/style.css:129:	.gh_button.comment.icon:before{background-position:0 -132px}
share/assets/misc/login/css/style.css:130:	.gh_button.comment.icon:hover:before,.gh_button.comment.icon:focus:before,.gh_button.comment.icon:active:before{background-position:-12px -132px}
share/assets/misc/login/css/style.css:131:	.gh_button.fork.icon:before{background-position:0 -144px}
share/assets/misc/login/css/style.css:132:	.gh_button.fork.icon:hover:before,.gh_button.fork.icon:focus:before,.gh_button.fork.icon:active:before{background-position:-12px -144px}
share/assets/misc/login/css/style.css:133:	.gh_button.like.icon:before{background-position:0 -156px}
share/assets/misc/login/css/style.css:134:	.gh_button.like.icon:hover:before,.gh_button.like.icon:focus:before,.gh_button.like.icon:active:before{background-position:-12px -156px}
share/assets/misc/login/css/style.css:135:	.gh_button.favorite.icon:before{background-position:0 -348px}
share/assets/misc/login/css/style.css:136:	.gh_button.favorite.icon:hover:before,.gh_button.favorite.icon:focus:before,.gh_button.favorite.icon:active:before{background-position:-12px -348px}
share/assets/misc/login/css/style.css:137:	.gh_button.home.icon:before{background-position:0 -168px}
share/assets/misc/login/css/style.css:138:	.gh_button.home.icon:hover:before,.gh_button.home.icon:focus:before,.gh_button.home.icon:active:before{background-position:-12px -168px}
share/assets/misc/login/css/style.css:139:	.gh_button.key.icon:before{background-position:0 -180px}
share/assets/misc/login/css/style.css:140:	.gh_button.key.icon:hover:before,.gh_button.key.icon:focus:before,.gh_button.key.icon:active:before{background-position:-12px -180px}
share/assets/misc/login/css/style.css:141:	.gh_button.lock.icon:before{background-position:0 -192px}
share/assets/misc/login/css/style.css:142:	.gh_button.lock.icon:hover:before,.gh_button.lock.icon:focus:before,.gh_button.lock.icon:active:before{background-position:-12px -192px}
share/assets/misc/login/css/style.css:143:	.gh_button.unlock.icon:before{background-position:0 -204px}
share/assets/misc/login/css/style.css:144:	.gh_button.unlock.icon:hover:before,.gh_button.unlock.icon:focus:before,.gh_button.unlock.icon:active:before{background-position:-12px -204px}
share/assets/misc/login/css/style.css:145:	.gh_button.loop.icon:before{background-position:0 -216px}
share/assets/misc/login/css/style.css:146:	.gh_button.loop.icon:hover:before,.gh_button.loop.icon:focus:before,.gh_button.loop.icon:active:before{background-position:-12px -216px}
share/assets/misc/login/css/style.css:147:	.gh_button.search.icon:before{background-position:0 -228px}
share/assets/misc/login/css/style.css:148:	.gh_button.search.icon:hover:before,.gh_button.search.icon:focus:before,.gh_button.search.icon:active:before{background-position:-12px -228px}
share/assets/misc/login/css/style.css:149:	.gh_button.mail.icon:before{background-position:0 -240px}
share/assets/misc/login/css/style.css:150:	.gh_button.mail.icon:hover:before,.gh_button.mail.icon:focus:before,.gh_button.mail.icon:active:before{background-position:-12px -240px}
share/assets/misc/login/css/style.css:151:	.gh_button.move.icon:before{background-position:0 -252px}
share/assets/misc/login/css/style.css:152:	.gh_button.move.icon:hover:before,.gh_button.move.icon:focus:before,.gh_button.move.icon:active:before{background-position:-12px -252px}
share/assets/misc/login/css/style.css:153:	.gh_button.edit.icon:before{background-position:0 -264px}
share/assets/misc/login/css/style.css:154:	.gh_button.edit.icon:hover:before,.gh_button.edit.icon:focus:before,.gh_button.edit.icon:active:before{background-position:-12px -264px}
share/assets/misc/login/css/style.css:155:	.gh_button.pin.icon:before{background-position:0 -276px}
share/assets/misc/login/css/style.css:156:	.gh_button.pin.icon:hover:before,.gh_button.pin.icon:focus:before,.gh_button.pin.icon:active:before{background-position:-12px -276px}
share/assets/misc/login/css/style.css:157:	.gh_button.reload.icon:before{background-position:0 -300px}
share/assets/misc/login/css/style.css:158:	.gh_button.reload.icon:hover:before,.gh_button.reload.icon:focus:before,.gh_button.reload.icon:active:before{background-position:-12px -300px}
share/assets/misc/login/css/style.css:159:	.gh_button.rss.icon:before{background-position:0 -312px}
share/assets/misc/login/css/style.css:160:	.gh_button.rss.icon:hover:before,.gh_button.rss.icon:focus:before,.gh_button.rss.icon:active:before{background-position:-12px -312px}
share/assets/misc/login/css/style.css:161:	.gh_button.tag.icon:before{background-position:0 -324px}
share/assets/misc/login/css/style.css:162:	.gh_button.tag.icon:hover:before,.gh_button.tag.icon:focus:before,.gh_button.tag.icon:active:before{background-position:-12px -324px}
share/assets/misc/login/css/style.css:163:	.gh_button.trash.icon:before{background-position:0 -336px}
share/assets/misc/login/css/style.css:164:	.gh_button.trash.icon:hover:before,.gh_button.trash.icon:focus:before,.gh_button.trash.icon:active:before{background-position:-12px -336px}
share/assets/misc/login/css/style.css:165:	.gh_button.user.icon:before{background-position:0 -360px}
share/assets/misc/login/css/style.css:166:	.gh_button.user.icon:hover:before,.gh_button.user.icon:focus:before,.gh_button.user.icon:active:before{background-position:-12px -360px}
share/assets/misc/login/css/style.css:167:	.gh_button.primary {font-weight: bold}
share/assets/misc/login/css/style.css:169:	.gh_button.danger:hover,.gh_button.danger:focus,.gh_button.danger:active {border-color: #b53f3a;border-bottom-color: #a0302a;color: #fff;background-color: #dc5f59;background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dc5f59), to(#b33630));background-image: -moz-linear-gradient(#dc5f59, #b33630);background-image: -o-linear-gradient(#dc5f59, #b33630);background-image: linear-gradient(#dc5f59, #b33630)}
share/assets/misc/login/css/style.css:170:	.gh_button.danger:active,.gh_button.danger.active {border-color: #a0302a;border-bottom-color: #bf4843;background-color: #b33630;background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b33630), to(#dc5f59));background-image: -moz-linear-gradient(#b33630, #dc5f59);background-image: -o-linear-gradient(#b33630, #dc5f59);background-image: linear-gradient(#b33630, #dc5f59)}
share/assets/misc/login/css/style.css:171:	.gh_button.pill {-webkit-border-radius: 50em;-moz-border-radius: 50em;border-radius: 50em}
share/assets/misc/login/css/style.css:173:	.gh_button.big{font-size:14px}
share/assets/misc/login/css/style.css:174:	.gh_button.small{font-size:11px;padding:.3em .8em}
share/assets/misc/login/css/style.css:175:	.gh_button-group{display:block;list-style:none;overflow:hidden;margin:0;padding:0}
share/assets/misc/login/css/style.css:176:	.gh_button + .gh_button,.gh_button + .gh_button-group,.gh_button-group + .gh_button,.gh_button-group + .gh_button-group{margin-left:15px}
share/assets/misc/login/css/style.css:177:	.gh_button-group li{float:left;margin:0;padding:0}
share/assets/misc/login/css/style.css:178:	.gh_button-group .gh_button{float:left;margin-left:-1px}
share/assets/misc/login/css/style.css:179:	.gh_button-group > .gh_button:not(:first-child):not(:last-child),.gh_button-group li:not(:first-child):not(:last-child) .gh_button{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}
share/assets/misc/login/css/style.css:180:	.gh_button-group > .gh_button:first-child,.gh_button-group li:first-child .gh_button{margin-left:0;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-right-radius:0;border-bottom-right-radius:0}
share/assets/misc/login/css/style.css:181:	.gh_button-group > .gh_button:last-child,.gh_button-group li:last-child > .gh_button{-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;border-top-left-radius:0;border-bottom-left-radius:0}
share/assets/misc/login/css/style.css:182:	.gh_button-group > .gh_button.pill:only-of-type {-webkit-border-radius: 50em;-moz-border-radius: 50em;border-radius: 50em}
share/assets/misc/login/css/style.css:183:	.gh_button-group.minor-group .gh_button{border:1px solid #d4d4d4;text-shadow:none;background-image:none;background-color:#fff}
share/assets/misc/login/css/style.css:184:	.gh_button-group.minor-group .gh_button:hover,.gh_button-group.minor-group .gh_button:focus{background-color:#599bdc}
share/assets/misc/login/css/style.css:185:	.gh_button-group.minor-group .gh_button:active,.gh_button-group.minor-group .gh_button.active{background-color:#3072b3}
share/assets/misc/login/css/style.css:186:	.gh_button-group.minor-group .gh_button.icon:before{opacity:0.8}
share/assets/misc/login/css/style.css:187:	.gh_button-container .gh_button,.gh_button-container .gh_button-group{vertical-align:top}
share/assets/misc/login/css/style.css:188:	.gh_button.btn-big.icon:before,.gh_button.btn-small.icon:before{top:0}
share/assets/misc/login/css/style.css:190:/* -----------------------------------------
share/assets/misc/login/css/style.css:192:----------------------------------------- */
share/assets/misc/login/css/style.css:195:		header {min-height: 82px;padding-bottom:30px}
share/assets/misc/login/css/style.css:196:		header .head_s_a {padding-top:10px;border-top:5px solid #949494;border-top:5px solid rgba(0,0,0,.4)}
share/assets/misc/login/css/style.css:199:		.sw_width {width:15px;height:7px;cursor:pointer;position:absolute;top:5px;right:20px;font-size:10px;background: #949494;background: rgba(0,0,0,.4);padding:3px 4px 4px;-moz-border-radius-topleft: 0px;-moz-border-radius-topright: 0px;-moz-border-radius-bottomright: 4px;-moz-border-radius-bottomleft: 4px;-webkit-border-radius: 0px 0px 4px 4px;border-radius: 0px 0px 4px 4px;-webkit-border-bottom-right-radius: 4px;-webkit-border-bottom-left-radius: 4px;-moz-border-radius-bottomright: 4px;-moz-border-radius-bottomleft: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;}
share/assets/misc/login/css/style.css:200:		.sw_width img {background-image: url(../img/sw_width.gif);background-repeat: no-repeat;width:15px;height:7px;display:block}
share/assets/misc/login/css/style.css:201:		.sw_width img.sw_full {background-position:0 0}
share/assets/misc/login/css/style.css:202:		.sw_width img.sw_fixed {background-position:0 -14px}
share/assets/misc/login/css/style.css:205:		.ddsmoothmenu{background: #f2f2f2;background: -moz-linear-gradient(top, #ffffff 0%, #f3f3f3 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#f3f3f3));background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 100%);background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 100%);background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 100%);background: linear-gradient(top, #ffffff 0%,#f3f3f3 100%);width:100%;border:1px solid #dcdcdc}
share/assets/misc/login/css/style.css:206:		.ddsmoothmenu ul{z-index:990;list-style-type:none;margin:0;padding:0}
share/assets/misc/login/css/style.css:207:		.ddsmoothmenu {-webkit-border-radius: 4px 4px 4px 4px;-moz-border-radius: 4px 4px 4px 4px;-ms-border-radius: 4px 4px 4px 4px;border-radius: 4px 4px 4px 4px}
share/assets/misc/login/css/style.css:208:		.ddsmoothmenu .first_el {-webkit-border-top-left-radius: 4px;-webkit-border-bottom-left-radius: 4px;-moz-border-radius-topleft: 4px;-moz-border-radius-bottomleft: 4px;border-top-left-radius: 4px;border-bottom-left-radius: 4px;}
share/assets/misc/login/css/style.css:210:		.ddsmoothmenu ul li a{text-shadow:1px 1px 0 #fff;font-size:16px;line-height:16px;display:block;color:#2d2b2b;text-decoration:none;padding:8px 12px}
share/assets/misc/login/css/style.css:211:		.ddsmoothmenu > ul li a {border-right:1px dashed #e4e4e4}
share/assets/misc/login/css/style.css:212:		.ddsmoothmenu > ul li:first-child a {border-left:none}
share/assets/misc/login/css/style.css:214:		.ddsmoothmenu ul li ul{position:absolute;left:0;display:none;visibility:hidden;box-shadow: 4px 4px 0 rgba(0,0,0,.1);border:1px solid #dcdcdc}
share/assets/misc/login/css/style.css:215:		.ddsmoothmenu ul li ul li{display:list-item;float:none;}
share/assets/misc/login/css/style.css:216:		.ddsmoothmenu ul li ul li ul{top:0;margin-left:1px;margin-top:-1px}
share/assets/misc/login/css/style.css:217:		.ddsmoothmenu ul li ul li a{min-width:120px;background:#fff;border-top-width:0;border-bottom:1px dotted #ccc;margin:0;padding:5px 12px;white-space: nowrap;font-size:14px}
share/assets/misc/login/css/style.css:218:		.ddsmoothmenu li ul li a {border-left:none;border-right:none}
share/assets/misc/login/css/style.css:219:		.ddsmoothmenu li ul li:last-child a {border:none}
share/assets/misc/login/css/style.css:220:		.downarrowclass{position:absolute;top:15px;right:8px;width:5px;height:3px;background: url(../img/nav_arrow.gif) no-repeat 0 -23px}
share/assets/misc/login/css/style.css:221:		.rightarrowclass{position:absolute;top:12px;right:5px;width:3px;height:5px;background: url(../img/nav_arrow.gif) no-repeat 0 0}
share/assets/misc/login/css/style.css:224:		.ddsmoothmenu-v ul{list-style-type:none;margin:0;padding:0;border:none}
share/assets/misc/login/css/style.css:225:		.ddsmoothmenu-v ul li{position:relative}
share/assets/misc/login/css/style.css:226:		.ddsmoothmenu-v ul li a{font-size:16px;color:#222;line-height:1;display:block;overflow:auto;text-decoration:none;border-bottom:1px dotted #dcdcdc;border-right:none;padding:5px 12px;background:#fff}
share/assets/misc/login/css/style.css:227:		.ddsmoothmenu-v ul li ul li a {font-size:14px}
share/assets/misc/login/css/style.css:228:		.ddsmoothmenu-v ul li:last-child a {border-bottom:none}
share/assets/misc/login/css/style.css:229:		.ddsmoothmenu-v ul li:last-child ul a {border-bottom:1px dotted #dcdcdc}
share/assets/misc/login/css/style.css:230:		.ddsmoothmenu-v ul li ul{position:absolute;width:170px;top:0;margin:-1px 0 0;font-weight:400;visibility:hidden;box-shadow: 4px 4px 0 rgba(0,0,0,.1);border:1px solid #dcdcdc}
share/assets/misc/login/css/style.css:231:		.ddsmoothmenu ul li a.selected,.ddsmoothmenu ul li a:hover,.ddsmoothmenu-v ul li a.selected,.ddsmoothmenu-v ul li a:hover{background:#eaf4f9;text-decoration:none}
share/assets/misc/login/css/style.css:232:		#smoothmenu_h {position:relative;z-index:990}
share/assets/misc/login/css/style.css:233:		#smoothmenu_v {position:relative;z-index:980;background:#fff;border:1px solid #dcdcdc;padding:8px}
share/assets/misc/login/css/style.css:234:		#smoothmenu_v ul>li>a {border-right:none}
share/assets/misc/login/css/style.css:235:		.sticky_nav {z-index: 880;left:0 !important;width:100% !important;-webkit-border-radius: 0 0 0 0;-moz-border-radius: 0 0 0 0;-ms-border-radius: 0 0 0 0;border-radius: 0 0 0 0}
share/assets/misc/login/css/style.css:236:		.sticky_nav_center {z-index: 880;-webkit-border-radius: 0 0 0 0;-moz-border-radius: 0 0 0 0;-ms-border-radius: 0 0 0 0;border-radius: 0 0 0 0}
share/assets/misc/login/css/style.css:240:		#breadcrumbs {position:relative;top:-1px;margin:0 10px;list-style:none;font-size:11px;background:#fff;border:1px solid #dcdcdc;-moz-border-radius-topleft: 0px;-moz-border-radius-topright: 0px;-moz-border-radius-bottomright: 4px;-moz-border-radius-bottomleft: 4px;-webkit-border-radius: 0px 0px 4px 4px;border-radius: 0px 0px 4px 4px}
share/assets/misc/login/css/style.css:244:		#breadcrumbs li span {margin-left:6px;color:#999}
share/assets/misc/login/css/style.css:245:		#breadcrumbs li:first-child {color:#999;padding:3px 4px 3px 10px}
share/assets/misc/login/css/style.css:246:		#breadcrumbs li:first-child:after,#breadcrumbs li:last-child:after {content:""}
share/assets/misc/login/css/style.css:250:		#search_box input[type="text"] {font-size:13px;margin-top:27px;background: url(../img/mag_glass.png) no-repeat 10px center #fff;border: 1px solid #d1d1d1;color: #888;width: 100px;padding: 6px 15px 6px 35px;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;width:120px;box-shadow: 2px 2px 0px rgba(0,0,0,.08)}
share/assets/misc/login/css/style.css:254:		.ac_results {padding: 0px;background-color: Window;overflow-x: hidden;box-shadow:0 5px 12px #ccc;z-index:9999}
share/assets/misc/login/css/style.css:255:		.ac_results ul {width: 100%;list-style-position: outside;list-style: none;padding: 0;margin: 0;overflow:hidden !important}
share/assets/misc/login/css/style.css:256:		.ac_results li {margin: 0px;padding: 2px 5px;cursor: pointer;display: block;width: 100%;font-size: 12px;overflow: hidden}
share/assets/misc/login/css/style.css:258:		.ac_loading {background : url('../lib/autocomplete/css/indicator.gif') right center no-repeat}
share/assets/misc/login/css/style.css:259:		.ac_over {background-color: Highlight;color: HighlightText}
share/assets/misc/login/css/style.css:262:		.search_pop {max-width:600px}
share/assets/misc/login/css/style.css:263:		.search_results mark {background: #f5f2a6;padding:0 4px;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px}
share/assets/misc/login/css/style.css:266:		.user_box {float:right;background:#fff;border:1px solid #dcdcdc;padding:10px;line-height:1.2;font-size:11px;margin-top:10px}
share/assets/misc/login/css/style.css:269:		.user_box .user_info p {font-size:11px}
share/assets/misc/login/css/style.css:270:		.user_box a {font-size:10px}
share/assets/misc/login/css/style.css:271:		.user_box a.sep {border-right:1px solid #e8e8e8;margin-right:3px;padding-right:6px}
share/assets/misc/login/css/style.css:272:		.user_box .user_sep {border-left:1px dashed #dcdcdc;margin-left:14px}
share/assets/misc/login/css/style.css:276:		.ntf_item {position:relative;margin-right:12px;height:32px;vertical-align:middle;width:34px;background-repeat:no-repeat;background-position: 0 50%}
share/assets/misc/login/css/style.css:277:		.ntf_item:hover {text-decoration:none}
share/assets/misc/login/css/style.css:278:		.ntf_bar .ntf_tip {position:absolute;top:-8px;left:100%;margin-left:-18px}
share/assets/misc/login/css/style.css:279:		.ntf_tip {display:block;height:17px;overflow:hidden;padding-left:10px}
share/assets/misc/login/css/style.css:280:		.ntf_tip span {display:block;padding-top:1px;height:16px;line-height:10px;color:#fff;font-size:10px;float:left;font-weight:700;padding-right:10px}
share/assets/misc/login/css/style.css:281:		.ntf_tip_red {background: url(../img/ntf_tip.png) no-repeat 0 -34px}
share/assets/misc/login/css/style.css:282:		.ntf_tip_red span {background: url(../img/ntf_tip.png) no-repeat right -51px}
share/assets/misc/login/css/style.css:283:		.ntf_tip_blue {background: url(../img/ntf_tip.png) no-repeat 0 0}
share/assets/misc/login/css/style.css:284:		.ntf_tip_blue span {background: url(../img/ntf_tip.png) no-repeat right -17px}
share/assets/misc/login/css/style.css:287:		.box_c,.box_s,.box_s_reg {margin-bottom:30px}
share/assets/misc/login/css/style.css:288:		.box_c_heading {height:30px;border:1px solid #dcdcdc;font-size:16px;line-height:30px;position:relative}
share/assets/misc/login/css/style.css:289:		.box_c_heading .ff_icon {color:#bdbdbd;font-size:20px}
share/assets/misc/login/css/style.css:290:		.box_c_heading .box_c_ico {width:36px;border-right:1px solid #dcdcdc;box-shadow: 1px 0 0 rgba(255,255,255,.5);background: transparent;background: rgba(0, 0, 0, .2);float:left;text-align:center;line-height:34px;height:30px;overflow:hidden}
share/assets/misc/login/css/style.css:291:		.box_c_heading p {padding-left:12px !important;float:left;margin-bottom:0 !important;line-height:28px !important;font-size:16px !important}
share/assets/misc/login/css/style.css:292:		.box_c_heading a.right {line-height:26px}
share/assets/misc/login/css/style.css:293:		.box_c_heading .gh_button-group {margin:4px 12px 0 0}
share/assets/misc/login/css/style.css:294:		.box_c_heading .gh_button-group a {color:#333 !important}
share/assets/misc/login/css/style.css:295:		.box_c_heading .gh_button-group a:hover {color:#fff !important}
share/assets/misc/login/css/style.css:296:		.box_c_content {padding:12px;border-width:0 1px 1px;border-style:solid;border-color: #dcdcdc;background:#fff}
share/assets/misc/login/css/style.css:298:		.bAct_hide,.bAct_toggle {background: url(../img/bAct_bg.png) no-repeat 0 0;display:block;float:right;height:18px;width:18px;overflow:hidden;margin:7px 5px 0 0}
share/assets/misc/login/css/style.css:299:		.bAct_hide img,.bAct_toggle	img {display:block;cursor:pointer;background-image: url(../img/bAct_bg.png);background-repeat: no-repeat;height:18px;width:18px}
share/assets/misc/login/css/style.css:300:		.bAct_x {background-position: 0 -18px}
share/assets/misc/login/css/style.css:301:		.bAct_minus {background-position: 0 -36px}
share/assets/misc/login/css/style.css:302:		.bAct_plus {background-position: 0 -54px}
share/assets/misc/login/css/style.css:306:		.box_s_reg {padding:14px;border:1px solid #dcdcdc;background:#fff;font-size: 12px}
share/assets/misc/login/css/style.css:310:		.inner_heading {font-size:12px;padding:0 0 6px 2px;border-bottom:1px solid #e8e8e8}
share/assets/misc/login/css/style.css:314:		.chb_col {width:16px !important;vertical-align:middle;text-align:center}
share/assets/misc/login/css/style.css:317:		.table-menu{font-size:13px;padding:10px 0}
share/assets/misc/login/css/style.css:318:		.table-menu li{padding:4px 0}
share/assets/misc/login/css/style.css:319:		.enhanced th,.enhanced td,.table-menu-hidden {display:none}
share/assets/misc/login/css/style.css:320:		.legacy-ie .enhanced th.essential,.legacy-ie .enhanced td.essential{display:inline}
share/assets/misc/login/css/style.css:321:		.enhanced th.essential,.enhanced td.essential{display:table-cell}
share/assets/misc/login/css/style.css:324:		.tooltip {display:none;font-size:10px;padding:3px 6px;color:#fff;background:#000;background:rgba(0, 0, 0, 0.7);text-align:center;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px}
share/assets/misc/login/css/style.css:326:		.tooltip.t_t:after {top: 100%;left: 50%;margin-left:-4px;border-width:4px 4px 0;border-style: solid;border-color: #000 transparent transparent;border-color: rgba(0, 0, 0, 0.7) transparent transparent}
share/assets/misc/login/css/style.css:327:		.tooltip.t_b:after {bottom: 100%;left: 50%;margin-left:-4px;border-width:0 4px 4px;border-style: solid;border-color: transparent transparent #000;border-color: transparent transparent rgba(0, 0, 0, 0.7)}
share/assets/misc/login/css/style.css:328:		.tooltip.t_l:after {top: 50%;left: 100%;margin-top:-3px;border-width:3px 0 3px 5px;border-style: solid;border-color: transparent transparent transparent #000;border-color: transparent transparent transparent rgba(0, 0, 0, 0.7)}
share/assets/misc/login/css/style.css:329:		.tooltip.t_r:after {top: 50%;right: 100%;margin-top:-3px;border-width:3px 5px 3px 0;border-style: solid;border-color: transparent  #000 transparent transparent;border-color: transparent  rgba(0, 0, 0, 0.7) transparent transparent}
share/assets/misc/login/css/style.css:332:		.tabs li {display:block;float:left;height:30px;font-family: Helvetica, Arial, sans-serif;}
share/assets/misc/login/css/style.css:333:		.tabs li a{display:block;line-height:31px;padding:0 10px;border-width:0 1px;border-style:solid;border-color:transparent;font-size:12px;position:relative}
share/assets/misc/login/css/style.css:334:		.tabs li a:hover {text-decoration:none}
share/assets/misc/login/css/style.css:335:		.tabs li:last-child a {border-right:none}
share/assets/misc/login/css/style.css:336:		.tabs li a.current {background:#fff;border-color:#dcdcdc;color:#222}
share/assets/misc/login/css/style.css:339:		div.sticky-queue p {margin:0}
share/assets/misc/login/css/style.css:340:		div.sticky-queue{z-index:10001;position:fixed;background:#fff;border:1px solid #999;box-shadow:0 0 5px #bbb;-moz-box-shadow:0 0 5px #bbb;-webkit-box-shadow:0 0 5px #bbb;width:240px;font-size:11px}
share/assets/misc/login/css/style.css:341:		div.sticky-note{padding-right:20px}
share/assets/misc/login/css/style.css:342:		div.sticky{font-size:12px;color:#555;display:none;position:relative;padding:16px 10px 10px}
share/assets/misc/login/css/style.css:343:		img.sticky-close{position:absolute;top:10px;right:10px;height:14px;width:14px;cursor:pointer;background: url(../img/close.png) no-repeat 0 0}
share/assets/misc/login/css/style.css:344:		.top-right,.top-left{top:-2px;border-bottom-right-radius:6px;border-bottom-left-radius:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px}
share/assets/misc/login/css/style.css:345:		.bottom-right,.bottom-left{bottom:-2px;border-top-right-radius:6px;border-top-left-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-topleft:6px;-webkit-border-top-right-radius:6px;-webkit-border-top-left-radius:6px}
share/assets/misc/login/css/style.css:346:		.border-top-right,.border-top-left{border-top:1px solid #999}
share/assets/misc/login/css/style.css:347:		.border-bottom-right,.border-bottom-left{border-bottom:1px solid #999}
share/assets/misc/login/css/style.css:348:		.top-right,.bottom-right{right:20px}
share/assets/misc/login/css/style.css:349:		.top-left,.bottom-left{left:20px}
share/assets/misc/login/css/style.css:350:		div.sticky-queue .sticky-title {font-size:11px;text-transform:uppercase;border-bottom:1px solid #dcdcdc;margin-bottom:8px;padding:0 0 4px 4px}
share/assets/misc/login/css/style.css:351:		div.sticky-queue ul {margin:0 0 8px;padding:0}
share/assets/misc/login/css/style.css:352:		div.sticky-queue li {list-style:none;display:block;line-height:1.2;padding:0 4px 4px;margin-bottom:4px;border-bottom:1px dashed #dcdcdc}
share/assets/misc/login/css/style.css:356:		#showMessage.success {background-color:#7fae00}
share/assets/misc/login/css/style.css:357:		#showMessage.fail {background-color:#c00000}
share/assets/misc/login/css/style.css:358:		#showMessage.alert {background-color:#f68b01}
share/assets/misc/login/css/style.css:359:		#showMessage.info {background-color:#00a6fc}
share/assets/misc/login/css/style.css:363:		.showMsg_nav {float:right;padding-right:14px;font-size:small}
share/assets/misc/login/css/style.css:365:		.showMsg_list li {list-style:none}
share/assets/misc/login/css/style.css:370:		.v_navi {list-style:none;width:16%;float:left;margin:0;padding:10px 0;position:relative;left:1px;z-index:10}
share/assets/misc/login/css/style.css:371:		.v_navi li {font-size:13px;padding:8px;margin-bottom:2px;cursor:pointer;border-width:1px 0;border-style:solid;border-color:transparent;color:#a0a0a0}
share/assets/misc/login/css/style.css:372:		.v_navi li.current {border-color:#dcdcdc;background:#fff;color:#222}
share/assets/misc/login/css/style.css:373:		.v_scrollable {background:#fff;position:relative;overflow:hidden;border-left:1px solid #dcdcdc;margin-left:10px;min-height:140px}
share/assets/misc/login/css/style.css:376:		.h_scrollable {position:relative;overflow:hidden;width:100%;min-height:200px}
share/assets/misc/login/css/style.css:383:		.accordion li {list-style:none}
share/assets/misc/login/css/style.css:384:		.accordion .outer {border:1px solid #dcdcdc; border-width:0 1px 1px; background: #fff}
share/assets/misc/login/css/style.css:385:		.accordion .inner {margin-bottom:0; padding:10px 20px 15px}
share/assets/misc/login/css/style.css:387:		.accordion .inner form {margin-bottom: 0}
share/assets/misc/login/css/style.css:389:		.accordion .h a {color:#222;overflow:hidden;position:relative;cursor:pointer;font:700 12px/30px Helvetca, Arial, sans-serif;border:1px solid #dcdcdc;padding:0 12px;margin:10px 0 0;background: #fcfcfc;background: -moz-linear-gradient(top, #fcfcfc 0%, #efefef 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fcfcfc), color-stop(100%,#efefef));background: -webkit-linear-gradient(top, #fcfcfc 0%,#efefef 100%);background: -o-linear-gradient(top, #fcfcfc 0%,#efefef 100%);background: -ms-linear-gradient(top, #fcfcfc 0%,#efefef 100%);background: linear-gradient(top, #fcfcfc 0%,#efefef 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#efefef',GradientType=0 )}
share/assets/misc/login/css/style.css:390:		.accordion .h a	img {background: url(../img/down.gif) no-repeat 0 0;height:6px;width:14px;position:absolute;right:-14px;top:50%;margin-top:-3px;-webkit-transition:  all 0.2s ease-in-out;-moz-transition:  all 0.2s ease-in-out;-o-transition:  all 0.2s ease-in-out;-ms-transition:  all 0.2s ease-in-out;transition:  all 0.2s ease-in-out}
share/assets/misc/login/css/style.css:391:		.accordion .h a:hover {text-decoration:none}
share/assets/misc/login/css/style.css:393:		.accordion .h a.open img {-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);right:14px}
share/assets/misc/login/css/style.css:394:		.accordion p {font-size:12px;margin:0}
share/assets/misc/login/css/style.css:397:		.lbl {padding:2px 6px;font-size:10px;color:#fff;position:relative;top:-1px;vertical-align:middle}
share/assets/misc/login/css/style.css:405:		.content_list {list-style:none;font-size:12px}
share/assets/misc/login/css/style.css:406:		.content_list li {color:#d1d1d1;padding:0 4px 8px;margin-bottom:8px;border-bottom:1px solid #f1f1f1;line-height:1.1}
share/assets/misc/login/css/style.css:407:		.content_list li:last-child {border:none}
share/assets/misc/login/css/style.css:408:		.content_list p {margin-bottom:0;color:#222}
share/assets/misc/login/css/style.css:411:		#toTop{display:none;text-decoration:none;position:fixed;bottom:10px;right:10px;overflow:hidden;width:32px;height:32px;border:none;text-indent:-999px;background:url(../img/ui.totop.png) no-repeat left top}
share/assets/misc/login/css/style.css:412:		#toTopHover{background:url(../img/ui.totop.png) no-repeat left -32px;width:32px;height:32px;display:block;overflow:hidden;float:left;opacity:0;-moz-opacity:0;filter:alpha(opacity=0)}
share/assets/misc/login/css/style.css:416:		#footer {font-size:11px;margin-top:20px;height:30px}
share/assets/misc/login/css/style.css:418:/* -----------------------------------------
share/assets/misc/login/css/style.css:420:----------------------------------------- */
share/assets/misc/login/css/style.css:425:	.formRow {padding:9px 18px;border-bottom:1px solid #ededed}
share/assets/misc/login/css/style.css:426:	.formRow:last-child {border:none}
share/assets/misc/login/css/style.css:427:	input.input-text, textarea, select {border-width:1px;border-style:solid;border-color:#a9a9a9 #dcdcdc #dcdcdc #a9a9a9}
share/assets/misc/login/css/style.css:428:	select {max-width:96%;padding:3px 2px;background: #fff}
share/assets/misc/login/css/style.css:431:	.form_content {border-left:1px solid #e0e0e0}
share/assets/misc/login/css/style.css:433:	.form_legend p {font-size:11px;margin-bottom:0}
share/assets/misc/login/css/style.css:434:	.form_content .formRow:first-child {border-top:1px solid #e0e0e0}
share/assets/misc/login/css/style.css:435:	.form_content .formRow:last-child {border-bottom:1px solid #e0e0e0}
share/assets/misc/login/css/style.css:436:	.form_content .formRow {background:#fafafa;border-color:#e0e0e0;border-bottom:none}
share/assets/misc/login/css/style.css:437:	label.error {font-weight:700;font-size:12px;clear:both;position:relative;margin-top:-6px;color:#c00000 !important;float:none;display:block}
share/assets/misc/login/css/style.css:440:		.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
share/assets/misc/login/css/style.css:441:		.ui-timepicker-div dl { text-align: left; }
share/assets/misc/login/css/style.css:442:		.ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; padding-left:5px }
share/assets/misc/login/css/style.css:443:		.ui-timepicker-div dl dd { margin: 0 10px 22px 65px; }
share/assets/misc/login/css/style.css:444:		.ui-timepicker-div dl dd div {margin-top:5px}
share/assets/misc/login/css/style.css:445:		.ui-timepicker-div td { font-size: 90%; }
share/assets/misc/login/css/style.css:446:		.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
share/assets/misc/login/css/style.css:449:		.pbar .ui-progressbar-value {display:block !important}
share/assets/misc/login/css/style.css:451:		.percent,.elapsed {position:relative;text-align: right; font-size: 12px}
share/assets/misc/login/css/style.css:454:		.ui-widget-header a {font-size:12px;line-height:13px}
share/assets/misc/login/css/style.css:455:		.ui-tabs {width:auto;overflow:hidden}
share/assets/misc/login/css/style.css:456:		.ui-scrollable-tabs {border:none;background: none;position:relative}
share/assets/misc/login/css/style.css:457:		.ui-scrollable-tabs .ui-tabs-nav {width:10000px;padding:1px 0 0 1px;border-left:none;border-right:none;padding-top:1px;position:relative}
share/assets/misc/login/css/style.css:458:		.ui-scrollable-tabs .ui-tabs-nav-arrows{left:0;position:absolute;right:0;top:2px;padding:0}
share/assets/misc/login/css/style.css:459:		:first-child+html .ui-scrollable-tabs .ui-tabs-nav-arrows{z-index:1}
share/assets/misc/login/css/style.css:460:		.ui-scrollable-tabs .ui-tabs .ui-tabs-nav li{margin:0 1px}
share/assets/misc/login/css/style.css:461:		.ui-tabs-nav li .ui-tabs-close{float:left;margin-top:8px;margin-right:4px;border:none;cursor:pointer}
share/assets/misc/login/css/style.css:462:		.ui-scrollable-tabs .ui-tabs-nav-arrows .ui-tabs-arrow-next{float:right}
share/assets/misc/login/css/style.css:463:		.ui-scrollable-tabs .ui-tabs-nav-arrows .ui-tabs-arrow-previous{float:left}
share/assets/misc/login/css/style.css:464:		.ui-scrollable-tabs .ui-tabs-nav-arrows li{list-style:none;position:relative;cursor:pointer;display:none;z-index:1;margin:0;padding:0}
share/assets/misc/login/css/style.css:465:		.ui-scrollable-tabs .ui-tabs-nav-arrows li a{display:block;padding:5px 0 4px}
share/assets/misc/login/css/style.css:466:		.ui-datepicker {z-index:10 !important}
share/assets/misc/login/css/style.css:469:		label + .ui-spinner {margin-top:-6px}
share/assets/misc/login/css/style.css:470:		.ui-spinner button {height:14px;position:absolute;background:none;border:none;width:18px;padding:0;background: url(../img/spinner_arrows.gif) no-repeat 0 -100px;cursor:pointer}
share/assets/misc/login/css/style.css:471:		.ui-spinner .ui-spinner-up {top:0;right:0;background-position:0 0}
share/assets/misc/login/css/style.css:472:		.ui-spinner .ui-spinner-down {top:14px;right:0;background-position:0 -14px}
share/assets/misc/login/css/style.css:473:		.ui-spinner .ui-spinner-up:hover {background-position:-18px 0}
share/assets/misc/login/css/style.css:474:		.ui-spinner .ui-spinner-down:hover {background-position:-18px -14px}
share/assets/misc/login/css/style.css:475:		.ui-spinner {
share/assets/misc/login/css/style.css:477:			background: url("../foundation/images/misc/input-bg.png") 0 0 #fff;
share/assets/misc/login/css/style.css:478:			font-size: 13px;
share/assets/misc/login/css/style.css:482:			border-radius: 2px 2px 2px 2px;
share/assets/misc/login/css/style.css:483:			font-family: inherit;
share/assets/misc/login/css/style.css:486:			line-height:28px
share/assets/misc/login/css/style.css:488:		.ui-spinner .ui-spinner-box {background: none;border: none !important}
share/assets/misc/login/css/style.css:490:/* -----------------------------------------
share/assets/misc/login/css/style.css:492:----------------------------------------- */
share/assets/misc/login/css/style.css:495:		.login_box{position:relative;background:#fff;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.1) inset;-moz-box-shadow:0 1px 4px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.1) inset;box-shadow:0 1px 4px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.1) inset;margin:80px 10px 4em}
share/assets/misc/login/css/style.css:496:		.login_box:before,.login_box:after{content:"";position:absolute;z-index:-2}
share/assets/misc/login/css/style.css:497:		.login_box:before{-webkit-box-shadow:0 0 15px rgba(0,0,0,0.4);-moz-box-shadow:0 0 15px rgba(0,0,0,0.4);box-shadow:0 0 15px rgba(0,0,0,0.4);top:50%;bottom:0;left:10px;right:10px;-moz-border-radius:100px / 10px;border-radius:100px / 10px}
share/assets/misc/login/css/style.css:498:		.lb_content{position:relative;background:#fff;min-height:200px;padding:14px 14px 30px}
share/assets/misc/login/css/style.css:499:		.login_logo {position:absolute;top:-34px;left:14px}
share/assets/misc/login/css/style.css:500:        .lb_ribbon{color:#fff;position:relative;font-size:14px;float:left;clear:both;left:-20px;margin-bottom:30px;text-shadow:1px 1px 0 rgba(0,0,0,.2);-moz-box-shadow:2px 2px 0 rgba(0,0,0,0.1);-webkit-box-shadow:2px 2px 0 rgba(0,0,0,0.1);-o-box-shadow:2px 2px 0 rgba(0,0,0,0.1);box-shadow:2px 2px 0 rgba(0,0,0,0.1);padding:10px 24px}
share/assets/misc/login/css/style.css:501:		.lb_ribbon:before{content:" ";background-image:url(../img/ribbon.png);background-repeat:no-repeat;display:block;width:10px;height:10px;position:absolute;bottom:0;left:0;margin-bottom:-10px;z-index:-1}
share/assets/misc/login/css/style.css:503:		.lb_ribbon:before{background-position: 0 0}
share/assets/misc/login/css/style.css:505:		.lb_dgray:before{background-position: 0 -10px}
share/assets/misc/login/css/style.css:507:		.lb_red:before{background-position: 0 -20px}
share/assets/misc/login/css/style.css:513:		.error_box{margin-top:20%;position:relative;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.2), 0 0 40px rgba(0,0,0,0.1) inset;-moz-box-shadow:0 1px 4px rgba(0,0,0,0.2), 0 0 40px rgba(0,0,0,0.1) inset;box-shadow:0 1px 4px rgba(0,0,0,0.2), 0 0 40px rgba(0,0,0,0.1) inset}
share/assets/misc/login/css/style.css:514:		.error_box:before,.login_box:after{content:"";position:absolute;z-index:-2}
share/assets/misc/login/css/style.css:515:		.error_box:before{-webkit-box-shadow:0 0 15px rgba(0,0,0,0.4);-moz-box-shadow:0 0 15px rgba(0,0,0,0.4);box-shadow:0 0 15px rgba(0,0,0,0.4);top:50%;bottom:0;left:10px;right:10px;-moz-border-radius:100px / 10px;border-radius:100px / 10px}
share/assets/misc/login/css/style.css:516:		.error_panel {background: #fff url(../img/ico/alert64.png) no-repeat 30px center;padding:50px 30px 50px 120px}
share/assets/misc/login/css/style.css:517:		.error_link {position:absolute;bottom:10px;right:14px;font-size:11px}
share/assets/misc/login/css/style.css:518:		.error_box p {line-height:1.5;margin-bottom:8px}
share/assets/misc/login/css/style.css:521:/* -----------------------------------------
share/assets/misc/login/css/style.css:523:----------------------------------------- */
share/assets/misc/login/css/style.css:526:		.picture { background-color: #F9F9F9;border: 1px solid #ccc; padding: 3px;font:100 11px/1.3 Arial, sans-serif;display:block}
share/assets/misc/login/css/style.css:527:		.picture a:hover {text-decoration:none}
share/assets/misc/login/css/style.css:528:		.picture img {border: 1px solid #ccc;vertical-align:middle; margin-bottom: 3px;display: block}
share/assets/misc/login/css/style.css:531:		.picture figcaption {max-width:92px;color:#777 !important}
share/assets/misc/login/css/style.css:534:		.overview_list {list-style:none}
share/assets/misc/login/css/style.css:535:		.overview_list a {position:relative;color:#222;display:block;line-height:18px;font-size:13px;padding:8px 8px 8px 80px;overflow:hidden;border:1px solid #dcdcdc;margin-bottom:10px;-webkit-border-radius: 6px 6px 6px 6px;-moz-border-radius: 6px 6px 6px 6px;border-radius: 6px 6px 6px 6px;background: #f7f7f7}
share/assets/misc/login/css/style.css:536:		.overview_list a img {position:absolute;top:0;left:0;height:52px;width:60px;background-color:#fff;background-repeat:no-repeat;background-position:center center;border-right:1px solid #e4e4e4;box-shadow:1px 0 0 #fff;-webkit-border-top-left-radius: 6px;-webkit-border-bottom-left-radius: 6px;-moz-border-radius-topleft: 6px;-moz-border-radius-bottomleft: 6px;border-top-left-radius: 6px;border-bottom-left-radius: 6px}
share/assets/misc/login/css/style.css:537:		.overview_list .ov_nb {color:#A80000;font-size:14px;display:block;font-weight:700}
share/assets/misc/login/css/style.css:538:		.overview_list .ov_text {font-size:12px}
share/assets/misc/login/css/style.css:539:        .overview_list a:hover {text-decoration:none;border-color:#cbcbcb;box-shadow: 0 0 5px #d4d4d4}
share/assets/misc/login/css/style.css:542:		.ln-letters { overflow:hidden;padding:4px 0 16px}
share/assets/misc/login/css/style.css:543:		.ln-letters a {-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;font-size:12px;min-width:12px;text-align:center;display:block; float:left; padding:2px 6px;margin:2px 4px 2px 0;border:1px solid #dcdcdc;text-decoration:none;background: #fff;background: -moz-linear-gradient(top, #fff 0%, #eee 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fff), color-stop(100%,#eee));background: -webkit-linear-gradient(top, #fff 0%,#eee 100%);background: -o-linear-gradient(top, #fff 0%,#eee 100%);background: -ms-linear-gradient(top, #fff 0%,#eee 100%);background: linear-gradient(top, #fff 0%,#eee 100%)}
share/assets/misc/login/css/style.css:544:		.ln-letters a:hover,.ln-letters a.ln-selected {background: #E5E5E5}
share/assets/misc/login/css/style.css:545:		.ln-letters a.ln-disabled {color:#BFBFBF;border-color:#ececec;background:#F9F9F9}
share/assets/misc/login/css/style.css:548:		.pricing_table {padding:10px;text-align:center}
share/assets/misc/login/css/style.css:549:		.pricing_table .pricing_panel {width:28%;border:1px solid #ddd;background:#f9f9f9;padding:10px;margin:14px 0 6px;vertical-align:top}
share/assets/misc/login/css/style.css:550:		.pricing_table .pricing_promoted {width:30%;border:4px solid #2179b8;margin:0 -5px;vertical-align:top;background:#fff;padding:21px 10px 20px;box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);position:relative}
share/assets/misc/login/css/style.css:551:		.pricing_table .header {border-bottom:1px solid #d6d6d6;margin-bottom:14px;padding-bottom:10px}
share/assets/misc/login/css/style.css:552:		.pricing_table h1,.pricing_table h2,.pricing_table h3,.pricing_table h4 {margin-bottom:4px}
share/assets/misc/login/css/style.css:553:		.pricing_table .header p {font-size:13px;color:#333;margin-bottom:0;color:#6b6b6b}
share/assets/misc/login/css/style.css:554:		.pricing_table .pricing_row {border-bottom:1px dashed #dcdcdc;padding:5px 0;font-size:13px}
share/assets/misc/login/css/style.css:557:		.pricing_bottom {font-size:12px;font-style:italic;padding:20px 0 0;margin:0}
share/assets/misc/login/css/style.css:560:		.gallery_list {margin:0;padding:0;position:relative;list-style:none;width:447px}
share/assets/misc/login/css/style.css:561:		.gallery_list li {float:left;position:relative;overflow:hidden;text-align:center}
share/assets/misc/login/css/style.css:562:		.gallery_list span.img_overlay {background:#000 url(../img/mag_glass.png) no-repeat center center;background: rgba(0,0,0,.6) url(../img/mag_glass.png) no-repeat center center;border-radius: 20px 20px 20px 20px;color: #ddd;cursor: pointer;display: block;font-size: 24px;height: 40px;left: 50%;line-height: 40px;margin-left: -20px;margin-top: -20px;position: absolute;text-align: center;top: 50%;width: 40px;z-index: 1000;opacity:0}
share/assets/misc/login/css/style.css:566:		.slide_info {text-align:left;z-index:1002;position:absolute;top:6%;left:6%;background:#000;background: rgba(0,0,0,.6);width:73%;height:72%;padding:8%;color:#fff;font-size:11px}
share/assets/misc/login/css/style.css:568:		.slide_info a {color:#7CBDE3;margin-right:8px}
share/assets/misc/login/css/style.css:569:		.slide_info .slide_close {position:absolute;top:-4px;right:4px;color:#fff;cursor:pointer}
share/assets/misc/login/css/style.css:575:		.divider {cursor:pointer;position:absolute;top:0;left:-18px;width:5px;text-indent:-9999px;background:#dcdcdc;background:#fff;background:rgba(255,255,255,.4);border:1px solid #dcdcdc;-webkit-transition: all .4s ease-in-out;-moz-transition: all .4s ease-in-out;-o-transition: all .4s ease-in-out;-ms-transition: all .4s ease-in-out;transition: all .4s ease-in-out;-webkit-border-radius: 4px 4px 4px 4px;-moz-border-radius: 4px 4px 4px 4px;-ms-border-radius: 4px 4px 4px 4px;border-radius: 4px 4px 4px 4px}
share/assets/misc/login/css/style.css:576:		.divider:before {content:"";display:block;background: url(../img/divider_img.png) no-repeat 0 0;height:17px;width:17px;position:absolute;top:40px;left:-6px}
share/assets/misc/login/css/style.css:577:		.divider.colapsed:before {background-position:0 -17px}
share/assets/misc/login/css/style.css:579:		.use-sidebar #sidebar {display:block}
share/assets/misc/login/css/style.css:580:		.use-sidebar #mainCol {margin-left:250px}
share/assets/misc/login/css/style.css:583:		.sprkList li {padding:8px 10px 14px;border-bottom:1px solid #e8e8e8;margin-bottom:8px;line-height:1}
share/assets/misc/login/css/style.css:584:		.sprkList li:last-child {border:none;margin:0}
share/assets/misc/login/css/style.css:585:		.sprkList p {margin-bottom:0}
share/assets/misc/login/css/style.css:586:		.sparkItem {width:80px;height:30px;padding:2px;text-align:center}
share/assets/misc/login/css/style.css:589:		.st-accordion{width:100%;margin:0 auto}
share/assets/misc/login/css/style.css:590:		.st-accordion .top_H {height:auto;border-bottom:1px solid #dcdcdc;border-top:1px solid #fff;overflow:hidden}
share/assets/misc/login/css/style.css:591:		.st-accordion .top_H:first-child{border-top:none}
share/assets/misc/login/css/style.css:592:		.st-accordion .top_H:last-child{border-bottom: none}
share/assets/misc/login/css/style.css:593:		.st-accordion .top_Ha{padding:10px 40px 10px 10px;font-size:22px;display:block;position:relative;outline:none;color:#21759b;overflow:hidden}
share/assets/misc/login/css/style.css:594:		.st-accordion .top_Ha span.st-arrow{visiblity:hidden;background:transparent url(../img/down.gif) no-repeat center center;text-indent:-9000px;width:26px;height:14px;position:absolute;top:50%;right:-26px;margin-top:-7px;opacity:0;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}
share/assets/misc/login/css/style.css:595:		.st-accordion .top_Ha:hover {text-decoration: none}
share/assets/misc/login/css/style.css:596:		.st-accordion .top_Ha:hover span.st-arrow{opacity:1;right:10px}
share/assets/misc/login/css/style.css:597:		.st-accordion .st-open .top_Ha span.st-arrow{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);right:10px;opacity:1}
share/assets/misc/login/css/style.css:598:		.st-accordion .top_Ha:hover,.st-accordion .st-open .top_Ha{color:#000}
share/assets/misc/login/css/style.css:599:		.st-content{padding:5px 10px 20px}
share/assets/misc/login/css/style.css:600:		.st-content p{font-size:14px;line-height:22px}
share/assets/misc/login/css/style.css:601:		#st-documentation small {color:#999}
share/assets/misc/login/css/style.css:604:		#divRss {font-size:12px;overflow:hidden}
share/assets/misc/login/css/style.css:605:		.ItemTitle{font-weight:700;font-size:15px;line-height:17px;margin-bottom:5px !important;margin-top:8px;padding:8px 0 0;border-top:1px solid #dcdcdc}
share/assets/misc/login/css/style.css:606:		.ItemTitle:first-child {border:none;margin:0;padding:0}
share/assets/misc/login/css/style.css:607:		.ItemTitle a{text-decoration:none}
share/assets/misc/login/css/style.css:608:		.ItemTitle a:hover{ text-decoration:underline }
share/assets/misc/login/css/style.css:610:		.ItemDate{font-size:11px;color:#aaa}
share/assets/misc/login/css/style.css:613:		.stepy-titles {overflow:hidden;padding:0 10px}
share/assets/misc/login/css/style.css:614:		.stepy-titles li {margin:0 4px 12px 0;cursor:pointer;position:relative;line-height:1;float:left;padding:7px 14px 5px 40px;border:1px solid #dcdcdc;height:30px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px;-webkit-box-shadow: inset 0px 0px 0px 1px #fff;-moz-box-shadow: inset 0px 0px 0px 1px #fff;box-shadow: inset 0px 0px 0px 1px #fff; }
share/assets/misc/login/css/style.css:615:		.stepy-titles li.error-image {background-image: url(../lib/stepy/img/error_img.png);background-repeat: no-repeat;background-position: right 0}
share/assets/misc/login/css/style.css:616:		.stepy-titles div {font-size:13px;font-weight:700}
share/assets/misc/login/css/style.css:617:		.stepy-titles span {font-size:11px;color:#999}
share/assets/misc/login/css/style.css:618:		span.stepNb	{font-size: 34px;position:absolute;left:10px;top:4px;color:#bbb;font-weight:700}
share/assets/misc/login/css/style.css:619:		.stepy-titles .current-step {background: #e4f0f8;border-color:#aed2ea}
share/assets/misc/login/css/style.css:620:		.stepy-titles .current-step span.stepNb {color:#81a1b5}
share/assets/misc/login/css/style.css:621:		.stepy-wizzard fieldset {border:none;margin:0;padding:0 10px}
share/assets/misc/login/css/style.css:622:		.stepy-wizzard fieldset > p {margin:0 0 0 18px;padding:10px 0 0}
share/assets/misc/login/css/style.css:623:		.stepy-wizzard legend {display:none}
share/assets/misc/login/css/style.css:626:		.row.display { background: #f4f4f4; margin-bottom: 10px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; }
share/assets/misc/login/css/style.css:627:		.row.display .column, .row.display .columns { background: #e7e7e7; font-size: 11px; text-indent: 3px; padding-top: 6px; padding-bottom: 6px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; }
share/assets/misc/login/css/style.css:630:		.bc_show {height:60px;width:60px;margin:0 0 32px 0;border:1px solid #dcdcdc;-webkit-border-radius: 8px;-moz-border-radius: 8px;-ms-border-radius: 8px;border-radius: 8px;position:relative}
share/assets/misc/login/css/style.css:631:		.bc_show span {position:absolute;bottom:-22px;width:60px;text-align:center;height:18px;line-height:18px;font-size:11px;color:#222}
share/assets/misc/login/css/style.css:634:		.table_prev {background:  url(../img/table_arrows.gif) no-repeat 2px center;width:9px;height:25px;display:block}
share/assets/misc/login/css/style.css:635:		.table_next {background:  url(../img/table_arrows.gif) no-repeat -9px center;width:9px;height:25px;display:block}
share/assets/misc/login/css/style.css:636:		.fc-header-title h2 {font-size: 18px}
share/assets/misc/login/css/style.css:637:		.dataTables_scrollHeadInner {margin-top:12px}
share/assets/misc/login/css/style.css:638:		.dataTables_scrollHeadInner table {margin-bottom:0;top:1px}
share/assets/misc/login/css/style.css:639:		.dataTables_scrollBody {margin-bottom:12px}
share/assets/misc/login/css/style.css:640:		.dataTables_scrollBody table {margin-bottom:0;top:0}
share/assets/misc/login/css/style.css:644:		.search_page .search_heading {font-size:14px;color:#2e2e2e;background:#efefef;padding:4px 6px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px;margin-bottom:8px}
share/assets/misc/login/css/style.css:645:		.search_page .filter_box {padding-left:8px}
share/assets/misc/login/css/style.css:646:		.search_page .filter_box>a {font-weight:700;color:#009900}
share/assets/misc/login/css/style.css:648:		.search_page .filter_box li {padding:3px 12px;line-height:1.2;font-size:12px;position:relative}
share/assets/misc/login/css/style.css:649:		.search_page .filter_remove {position:absolute;left:-4px;top:1px;font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;float:right;font-size:20px;font-weight:700;line-height:18px;opacity:0.2;text-shadow:0 1px 0 #FFF}
share/assets/misc/login/css/style.css:650:		.search_page .filter_remove:hover{color:#000;cursor:pointer;opacity:0.4;text-decoration:none}
share/assets/misc/login/css/style.css:651:		.search_content {border-top:1px solid #dcdcdc}
share/assets/misc/login/css/style.css:652:		.search_content li {display:block;position:relative;padding:10px 30px;border-bottom:1px solid #dcdcdc}
share/assets/misc/login/css/style.css:654:		.search_content .item_title {font-size:14px;margin-bottom:10px;font-weight:700}
share/assets/misc/login/css/style.css:655:		.search_content .item_description {margin-bottom:10px}
share/assets/misc/login/css/style.css:656:		.search_content .item_tags {margin-bottom:10px;font-size:11px;color:#ddd;line-height:15px}
share/assets/misc/login/css/style.css:658:		.search_content .item_nb {position:absolute;left:8px;top:13px;font-size:11px;color:#858585}
share/assets/misc/login/css/style.css:661:		.search_page .pagination_bottom li {float:none;display:inline-block}
share/assets/misc/login/css/style.css:663:/* -----------------------------------------
share/assets/misc/login/css/style.css:665:----------------------------------------- */
share/assets/misc/login/css/style.css:667:	/* cross browser inline-block display */
share/assets/misc/login/css/style.css:669:		.pricing_panel,.pricing_promoted,form label {display:-moz-inline-stack;display:inline-block;*zoom: 1;*display:inline}
share/assets/misc/login/css/style.css:672:		#smoothmenu_h ul,#smoothmenu_v ul,.st-accordion .top_Ha {font-family: 'Open Sans Condensed', sans-serif;}
share/assets/misc/login/css/style.css:673:		h1,h2,h3,h4,h5,.box_c_heading p {font-family: 'Terminal Dosis', sans-serif;}
share/assets/misc/login/css/style.css:678:		.gallery_list li,.nstd_acc h4, #main_nav {-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px}
share/assets/misc/login/css/style.css:681:		.slider-content .title,.stepy-titles li { background: #f9f9f9;background: -moz-linear-gradient(top,  #f9f9f9 0%, #f0f0f0 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#f0f0f0));background: -webkit-linear-gradient(top,  #f9f9f9 0%,#f0f0f0 100%);background: -o-linear-gradient(top,  #f9f9f9 0%,#f0f0f0 100%);background: -ms-linear-gradient(top,  #f9f9f9 0%,#f0f0f0 100%);background: linear-gradient(top,  #f9f9f9 0%,#f0f0f0 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f9f9f9', endColorstr='#f0f0f0',GradientType=0 )}
share/assets/misc/login/css/style.css:683:		.grdnt_a .box_c_heading,.ssw_grdnt_a { background: #f2f2f2;background: -moz-linear-gradient(top, #f2f2f2 0%, #e5e5e5 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f2f2f2), color-stop(100%,#e5e5e5));background: -webkit-linear-gradient(top, #f2f2f2 0%,#e5e5e5 100%);background: -o-linear-gradient(top, #f2f2f2 0%,#e5e5e5 100%);background: -ms-linear-gradient(top, #f2f2f2 0%,#e5e5e5 100%);background: linear-gradient(top, #f2f2f2 0%,#e5e5e5 100%);}
share/assets/misc/login/css/style.css:684:		.grdnt_b .box_c_heading, .ssw_grdnt_b {background: #f6f8f9;background: -moz-linear-gradient(top,  #f6f8f9 0%, #e5ebee 50%, #d7dee3 51%, #f5f7f9 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f6f8f9), color-stop(50%,#e5ebee), color-stop(51%,#d7dee3), color-stop(100%,#f5f7f9));background: -webkit-linear-gradient(top,  #f6f8f9 0%,#e5ebee 50%,#d7dee3 51%,#f5f7f9 100%);background: -o-linear-gradient(top,  #f6f8f9 0%,#e5ebee 50%,#d7dee3 51%,#f5f7f9 100%);background: -ms-linear-gradient(top,  #f6f8f9 0%,#e5ebee 50%,#d7dee3 51%,#f5f7f9 100%);background: linear-gradient(top,  #f6f8f9 0%,#e5ebee 50%,#d7dee3 51%,#f5f7f9 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f6f8f9', endColorstr='#f5f7f9',GradientType=0 )}
share/assets/misc/login/css/style.css:686:		.grdnt_c .box_c_heading, .ssw_grdnt_c {background: #1693a5;background: -moz-linear-gradient(top, #1693a5 0%, #137b89 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1693a5), color-stop(100%,#137b89));background: -webkit-linear-gradient(top, #1693a5 0%,#137b89 100%);background: -o-linear-gradient(top, #1693a5 0%,#137b89 100%);background: -ms-linear-gradient(top, #1693a5 0%,#137b89 100%);background: linear-gradient(top, #1693a5 0%,#137b89 100%);color:#fff}		.grdnt_c .box_c_heading,.grdnt_c .box_c_ico {border-color:#0f606b}
share/assets/misc/login/css/style.css:688:		.grdnt_d .box_c_heading,.grdnt_d .box_c_ico {border-color:#8f0000}
share/assets/misc/login/css/style.css:689:		.grdnt_e .box_c_heading, .ssw_grdnt_e {background: #45484d;background: -moz-linear-gradient(top, #45484d 0%, #000000 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#45484d), color-stop(100%,#000000));background: -webkit-linear-gradient(top, #45484d 0%,#000000 100%);background: -o-linear-gradient(top, #45484d 0%,#000000 100%);background: -ms-linear-gradient(top, #45484d 0%,#000000 100%);background: linear-gradient(top, #45484d 0%,#000000 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#45484d', endColorstr='#000000',GradientType=0 );color:#fff}
share/assets/misc/login/css/style.css:690:		.grdnt_e .box_c_heading,.grdnt_e .box_c_ico {border-color:#000}
share/assets/misc/login/css/style.css:694:		.ptrn_a {background-image: url(../img/bg_a.png)}
share/assets/misc/login/css/style.css:695:		.ptrn_b {background-image: url(../img/bg_b.png)}
share/assets/misc/login/css/style.css:696:		.ptrn_c {background-image: url(../img/bg_c.png)}
share/assets/misc/login/css/style.css:697:		.ptrn_d {background-image: url(../img/bg_d.png)}
share/assets/misc/login/css/style.css:698:		.ptrn_e {background-image: url(../img/bg_e.png)}
share/assets/misc/login/css/style.css:703:		.mhover_a .ddsmoothmenu-v ul li a.selected,.mhover_a .ddsmoothmenu-v ul li a:hover, .mhover_a .ddsmoothmenu .pageselected {background-color: #eaf4f9}
share/assets/misc/login/css/style.css:706:		.mhover_b .ddsmoothmenu-v ul li a.selected,.mhover_b .ddsmoothmenu-v ul li a:hover, .mhover_b .ddsmoothmenu .pageselected {background-color: #eaf9ea}
share/assets/misc/login/css/style.css:709:		.mhover_c .ddsmoothmenu-v ul li a.selected,.mhover_c .ddsmoothmenu-v ul li a:hover, .mhover_c .ddsmoothmenu .pageselected {background-color: #e3f8fb}
share/assets/misc/login/css/style.css:712:		.mhover_d .ddsmoothmenu-v ul li a.selected,.mhover_d .ddsmoothmenu-v ul li a:hover, .mhover_d .ddsmoothmenu .pageselected {background-color: #ffe4e4}
share/assets/misc/login/css/style.css:715:		.mhover_e .ddsmoothmenu-v ul li a.selected,.mhover_e .ddsmoothmenu-v ul li a:hover, .mhover_e .ddsmoothmenu .pageselected {background-color: #2b2b2b;color:#fff}
share/assets/misc/login/css/style.css:717:		.mhover_e #smoothmenu_v > ul li a.selected,.mhover_e #smoothmenu_v > ul li a:hover {border-color:#000}
share/assets/misc/login/css/style.css:718:		.mhover_e .ddsmoothmenu ul li a {text-shadow: none}
share/assets/misc/login/css/style.css:721:		.fullW .container > .row {max-width:100%}
share/assets/misc/login/css/style.css:724:/* -----------------------------------------
share/assets/misc/login/css/style.css:726:----------------------------------------- */
share/assets/misc/login/css/style.css:728:	.ssw_trigger{position:fixed;top:40px;left:-1px;z-index:1001;text-decoration: none;font-size: 12px;color:#fff;width:15px;height:15px;padding: 6px 12px 6px 6px;background:#333 url(../img/settings.png) no-repeat 50% 50%;display: block;-webkit-border-top-right-radius: 8px;-webkit-border-bottom-right-radius: 8px;-moz-border-radius-topright: 8px;-moz-border-radius-bottomright: 8px;border-top-right-radius: 8px;border-bottom-right-radius: 8px;border:1px solid transparent}
share/assets/misc/login/css/style.css:729:	.ssw_trigger.active {border-color:#555}
share/assets/misc/login/css/style.css:730:	.style_switcher {font-size:12px;z-index:1000;position:fixed;top:30px;left:0;display:none;background:#000;background: rgba(0,0,0,.8);border:1px solid #111;-moz-border-radius-topright: 12px;-webkit-border-top-right-radius: 12px;-moz-border-radius-bottomright: 12px;-webkit-border-bottom-right-radius: 12px;width: 150px;height: auto;padding: 30px 30px 30px 50px;color:#f5f5f5}
share/assets/misc/login/css/style.css:732:	.style_item {display:block;margin-right:6px;height:20px;width:20px;border:2px solid #fff;float:left}
share/assets/misc/login/css/style.css:733:	.ssw_ptrn_a {background: url(../img/ssw_patterns.png) no-repeat 0 0}
share/assets/misc/login/css/style.css:734:	.ssw_ptrn_b {background: url(../img/ssw_patterns.png) no-repeat -30px 0}
share/assets/misc/login/css/style.css:735:	.ssw_ptrn_c {background: url(../img/ssw_patterns.png) no-repeat -60px 0}
share/assets/misc/login/css/style.css:736:	.ssw_ptrn_d {background: url(../img/ssw_patterns.png) no-repeat -90px 0}
share/assets/misc/login/css/style.css:737:	.ssw_ptrn_e {background: url(../img/ssw_patterns.png) no-repeat -120px 0}
share/assets/misc/login/css/style.css:738:	.style_active {border-color:#6fd05b}
share/assets/misc/login/css/style.css:741:/* -----------------------------------------
share/assets/misc/login/css/style.css:743:----------------------------------------- */
share/assets/misc/login/css/style.css:746:		@media only screen and (max-width: 959px) {
share/assets/misc/login/css/style.css:751:		@media only screen and (min-width: 768px) and (max-width: 959px) {
share/assets/misc/login/css/style.css:754:			.ntf_bar {float:right;padding-left:20px}
share/assets/misc/login/css/style.css:756:			.overview_list {text-align:center}
share/assets/misc/login/css/style.css:757:			.overview_list a {line-height:16px}
share/assets/misc/login/css/style.css:758:			.overview_list a span {float:none;border:none;box-shadow:none;margin:0 0 2px;padding:0;text-align:center}
share/assets/misc/login/css/style.css:761:	/* common styles max-width 767px */
share/assets/misc/login/css/style.css:762:		@media only screen and (max-width: 767px) {
share/assets/misc/login/css/style.css:765:			#search_box {margin-bottom:0}
share/assets/misc/login/css/style.css:766:			#search_box input[type="text"] {margin-top:2px}
share/assets/misc/login/css/style.css:767:			.user_box {float:none;margin-top:0}
share/assets/misc/login/css/style.css:768:			#rightcol_content {padding-left:0}
share/assets/misc/login/css/style.css:769:			.columns + .columns,.column + .column {margin-top:10px}
share/assets/misc/login/css/style.css:770:			.row .phone-one, .row .phone-two, .row .phone-three, .row .phone-four {margin-top:0}
share/assets/misc/login/css/style.css:771:			.v_navi {list-style:none;width:100%;float:none;left:0;overflow:hidden;left:-1px;padding:0;top:1px}
share/assets/misc/login/css/style.css:772:			.v_navi li {float:left;border-width:0 1px;margin-bottom:0}
share/assets/misc/login/css/style.css:773:			.v_scrollable {float:none;border-top:1px solid #dcdcdc;border-left:none;padding:0;margin:0}
share/assets/misc/login/css/style.css:775:			.mobileselect {width:96%;margin:4px 2%;font-family: arial,sans-serif}
share/assets/misc/login/css/style.css:776:			.dataTables_length,.dataTables_filter {float:none;clear:both;width:100%;text-align:left;padding:4px 0}
share/assets/misc/login/css/style.css:779:			.block-grid.mobile > li {margin-bottom:10px}
share/assets/misc/login/css/style.css:780:			.dataTables_info {float:none;margin-bottom:8px}
share/assets/misc/login/css/style.css:781:			.dataTables_paginate {display:block;float:none !important;text-align:left}
share/assets/misc/login/css/style.css:782:			.dataTables_paginate .first {margin-left:0}
share/assets/misc/login/css/style.css:783:            select.st-nav {max-width:240px}
share/assets/misc/login/css/style.css:784:            .login_box {margin-top:50px}
share/assets/misc/login/css/style.css:785:			#l_form .button {margin-top:10px}
share/assets/misc/login/css/style.css:786:            .lb_content {padding-bottom:10px}
share/assets/misc/login/css/style.css:789:			.form-field.error small, small.error {width:100%}
share/assets/misc/login/css/style.css:790:			.use-sidebar #sidebar, #sidebar {display:block;clear:both;width:100% !important;float:none}
share/assets/misc/login/css/style.css:791:			.use-sidebar #mainCol {margin-left:0 !important}
share/assets/misc/login/css/style.css:792:			.use-sidebar .divider {display: none !important}
share/assets/misc/login/css/style.css:793:            .tinynav { display: block;width:96%;margin: 6px auto;padding:3px 0;background: transparent url(../img/down.gif) no-repeat right center;border: none }
share/assets/misc/login/css/style.css:798:		@media only screen and (min-width: 480px) and (max-width: 767px) {
share/assets/misc/login/css/style.css:799:			.ntf_bar {padding-left:20px}
share/assets/misc/login/css/style.css:804:		@media only screen and (max-width: 479px) {
share/assets/misc/login/css/style.css:807:			.user_box {padding:10px 10px 5px;float:none;margin-top:0}
share/assets/misc/login/css/style.css:809:			.user_box .user_info {max-width:106px;border:none !important;margin:0 !important;padding-top:2px}
share/assets/misc/login/css/style.css:811:			.ntf_bar {padding-left:0;float:right}
share/assets/misc/login/css/style.css:813:			.box_c_ico,.user_avatar,.jqplot-point-label,.fc-header-right,.fc-button-today,#breadcrumbs {display:none}
share/assets/misc/login/css/style.css:814:			.tabs li a {padding:0 4px;font-size:10px}
share/assets/misc/login/css/style.css:816:            .stepy-titles li {float:none;clear:both;margin-right:0}
share/assets/misc/login/css/style.css:817:			.st-accordion .top_Ha {font-size:18px}
share/assets/misc/login/css/style.css:818:			.st-content p {font-size: 13px;padding: 0 0 10px;line-height:1.3}
share/assets/misc/login/css/style.css:819:			.error_box {background:#fff;padding:20px 20px 40px;margin-top:10%}
share/assets/misc/login/css/style.css:820:			.form_content {border-left:none}
Binary file share/assets/misc/login/foundation/images/misc/input-bg-outset.png matches
Binary file share/assets/misc/login/foundation/images/misc/input-bg.png matches
share/assets/misc/login/foundation/stylesheets/app.css:3:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/app.css:5:-----------------------------------------------------
share/assets/misc/login/foundation/stylesheets/app.css:12:/* -----------------------------------------
share/assets/misc/login/foundation/stylesheets/app.css:14:----------------------------------------- */
share/assets/misc/login/foundation/stylesheets/app.css:18:/* -----------------------------------------
share/assets/misc/login/foundation/stylesheets/app.css:20:----------------------------------------- */
share/assets/misc/login/foundation/stylesheets/app.css:25:/* -----------------------------------------
share/assets/misc/login/foundation/stylesheets/app.css:27:----------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:4:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:6:-----------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:15:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:17:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:43:		vertical-align: baseline;
share/assets/misc/login/foundation/stylesheets/foundation.css:46:		font-size: 62.5%;
share/assets/misc/login/foundation/stylesheets/foundation.css:48:	/* HTML5 display-role reset for older browsers */
share/assets/misc/login/foundation/stylesheets/foundation.css:54:		line-height: 1;
share/assets/misc/login/foundation/stylesheets/foundation.css:57:		list-style: none;
share/assets/misc/login/foundation/stylesheets/foundation.css:68:		border-collapse: collapse;
share/assets/misc/login/foundation/stylesheets/foundation.css:69:		border-spacing: 0;
share/assets/misc/login/foundation/stylesheets/foundation.css:72:	body { background: #fff; font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 13px; line-height: 18px; color: #555; position: relative; -webkit-font-smoothing: antialiased; }
share/assets/misc/login/foundation/stylesheets/foundation.css:76:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:78:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:79:	a { color: #2a85e8; text-decoration: none; line-height: inherit; }
share/assets/misc/login/foundation/stylesheets/foundation.css:82:	p a, p a:visited { line-height: inherit; }
share/assets/misc/login/foundation/stylesheets/foundation.css:85:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:87:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:88:	ul, ol { margin-bottom: 18px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:89:	ul { list-style: none outside; }
share/assets/misc/login/foundation/stylesheets/foundation.css:90:	ol { list-style: decimal; }
share/assets/misc/login/foundation/stylesheets/foundation.css:91:	ol, ul.square, ul.circle, ul.disc { margin-left: 30px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:92:	ul.square { list-style: square outside; }
share/assets/misc/login/foundation/stylesheets/foundation.css:93:	ul.circle { list-style: circle outside; }
share/assets/misc/login/foundation/stylesheets/foundation.css:94:	ul.disc { list-style: disc outside; }
share/assets/misc/login/foundation/stylesheets/foundation.css:95:	li { margin-bottom: 12px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:96:	ul.large li { line-height: 21px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:98:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:100:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:101:	table.fnd_table { background: #fff; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; margin: 0 0 18px; border: 1px solid #ddd;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:108:	table.fnd_table tfoot tr td { font-size: 12px; line-height: 18px; text-align: left; }
share/assets/misc/login/foundation/stylesheets/foundation.css:110:	table.fnd_table tfoot tr td { padding: 8px 10px 9px; font-size: 14px; font-weight: bold; color: #222; }
share/assets/misc/login/foundation/stylesheets/foundation.css:111:	table.fnd_table thead tr th:first-child, table.fnd_table tfoot tr td:first-child { border-left: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:112:	table.fnd_table thead tr th:last-child, table.fnd_table tfoot tr td:last-child { border-right: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:116:	table.fnd_table tbody tr:nth-child(even) { background: #f9f9f9; }
share/assets/misc/login/foundation/stylesheets/foundation.css:117:	table.fnd_table tbody tr td { color: #333; padding: 9px 10px; vertical-align: top; border: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:119:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:121:---------------------------------------------------*/
share/assets/misc/login/foundation/stylesheets/foundation.css:124:	.text-left   { text-align: left; }
share/assets/misc/login/foundation/stylesheets/foundation.css:125:	.text-right  { text-align: right; }
share/assets/misc/login/foundation/stylesheets/foundation.css:126:	.text-center { text-align: center; }
share/assets/misc/login/foundation/stylesheets/foundation.css:130:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:132:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:133:	h1, h2, h3, h4, h5, h6 { color: #181818; font-weight: bold; line-height: 1.25 }
share/assets/misc/login/foundation/stylesheets/foundation.css:134:	h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
share/assets/misc/login/foundation/stylesheets/foundation.css:135:	h1 { font-size: 46px; font-size: 4.6rem; margin-bottom: 12px;}
share/assets/misc/login/foundation/stylesheets/foundation.css:136:	h2 { font-size: 35px; font-size: 3.5rem; margin-bottom: 9px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:137:	h3 { font-size: 28px; font-size: 2.8rem; margin-bottom: 9px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:138:	h4 { font-size: 21px; font-size: 2.1rem; margin-bottom: 3px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:139:	h5 { font-size: 18px; font-size: 1.8rem; font-weight: normal; margin-bottom: 3px;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:140:	h6 { font-size: 15px; font-size: 1.5rem; font-weight: normal; }
share/assets/misc/login/foundation/stylesheets/foundation.css:142:	.subheader { color: #777; font-weight: 300; margin-bottom: 24px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:144:	p { font-size: 13px; font-size: 1.3rem; line-height: 1.25; margin: 0 0 18px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:146:	p.lead { font-size: 18px; font-size: 1.8rem; line-height: 1.5;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:148:	em, i { font-style: italic; line-height: inherit; }
share/assets/misc/login/foundation/stylesheets/foundation.css:149:	strong, b { font-weight: bold; line-height: inherit; }
share/assets/misc/login/foundation/stylesheets/foundation.css:150:	small { font-size: 60%; line-height: inherit; }
share/assets/misc/login/foundation/stylesheets/foundation.css:155:	blockquote, blockquote p { line-height: 20px; color: #777; }
share/assets/misc/login/foundation/stylesheets/foundation.css:156:	blockquote { margin: 0 0 18px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; }
share/assets/misc/login/foundation/stylesheets/foundation.css:157:	blockquote cite { display: block; font-size: 12px; font-size: 1.2rem; color: #555; }
share/assets/misc/login/foundation/stylesheets/foundation.css:161:	hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 12px 0 18px; height: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:163:	abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222; border-bottom: 1px solid #ddd; cursor: help; }
share/assets/misc/login/foundation/stylesheets/foundation.css:164:	abbr { text-transform: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:169:	 * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
share/assets/misc/login/foundation/stylesheets/foundation.css:172:	.print-only { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:174:		* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
share/assets/misc/login/foundation/stylesheets/foundation.css:175:		-ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
share/assets/misc/login/foundation/stylesheets/foundation.css:176:		p a, p a:visited { color: #444 !important; text-decoration: underline; }
share/assets/misc/login/foundation/stylesheets/foundation.css:180:		pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
share/assets/misc/login/foundation/stylesheets/foundation.css:181:		thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
share/assets/misc/login/foundation/stylesheets/foundation.css:182:		tr, img { page-break-inside: avoid; }
share/assets/misc/login/foundation/stylesheets/foundation.css:185:		h2, h3{ page-break-after: avoid; }
share/assets/misc/login/foundation/stylesheets/foundation.css:186:		.hide-on-print { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:187:		.print-only { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:190:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:193:	This is the mobile-friendly, responsive grid that
share/assets/misc/login/foundation/stylesheets/foundation.css:196:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:200:	.row { width: 100%; max-width: 980px; min-width: 727px; margin: 0 auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:201:	/* To fix the grid into a certain size, set max-width to width */
share/assets/misc/login/foundation/stylesheets/foundation.css:202:	.row .row { min-width: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:204:	.column, .columns { margin-left: 4.4%; float: left; min-height: 1px; position: relative; }
share/assets/misc/login/foundation/stylesheets/foundation.css:205:	.column:first-child, .columns:first-child { margin-left: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:206:	[class*="column"] + [class*="column"]:last-child { float: right; }
share/assets/misc/login/foundation/stylesheets/foundation.css:221:	.row .offset-by-one 	{ margin-left: 13.1%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:222:	.row .offset-by-two 	{ margin-left: 21.8%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:223:	.row .offset-by-three 	{ margin-left: 30.5%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:224:	.row .offset-by-four 	{ margin-left: 39.2%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:225:	.row .offset-by-five 	{ margin-left: 47.9%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:226:	.row .offset-by-six 	{ margin-left: 56.6%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:227:	.row .offset-by-seven 	{ margin-left: 65.3%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:228:	.row .offset-by-eight 	{ margin-left: 74.0%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:229:	.row .offset-by-nine 	{ margin-left: 82.7%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:230:	.row .offset-by-ten 	{ margin-left: 91.4%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:234:	.row .offset-by-one:first-child 	{ margin-left: 8.7%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:235:	.row .offset-by-two:first-child 	{ margin-left: 17.4%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:236:	.row .offset-by-three:first-child 	{ margin-left: 26.1%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:237:	.row .offset-by-four:first-child 	{ margin-left: 34.8%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:238:	.row .offset-by-five:first-child 	{ margin-left: 43.5%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:239:	.row .offset-by-six:first-child 	{ margin-left: 52.2%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:240:	.row .offset-by-seven:first-child 	{ margin-left: 60.9%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:241:	.row .offset-by-eight:first-child 	{ margin-left: 69.6%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:242:	.row .offset-by-nine:first-child 	{ margin-left: 78.3%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:243:	.row .offset-by-ten:first-child 	{ margin-left: 87%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:244:	.row .offset-by-eleven:first-child 	{ margin-left: 95.7%;  }
share/assets/misc/login/foundation/stylesheets/foundation.css:247:	.push-two 		{ left: 17.4% }
share/assets/misc/login/foundation/stylesheets/foundation.css:248:	.push-three 	{ left: 26.1%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:249:	.push-four 		{ left: 34.8%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:250:	.push-five 		{ left: 43.5%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:251:	.push-six 		{ left: 52.2%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:252:	.push-seven 	{ left: 60.9%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:253:	.push-eight 	{ left: 69.6%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:254:	.push-nine 		{ left: 78.3%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:255:	.push-ten 		{ left: 87%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:257:	.pull-two 		{ right: 17.4% }
share/assets/misc/login/foundation/stylesheets/foundation.css:258:	.pull-three 	{ right: 26.1%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:259:	.pull-four 		{ right: 34.8%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:260:	.pull-five 		{ right: 43.5%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:261:	.pull-six 		{ right: 52.2%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:262:	.pull-seven 	{ right: 60.9%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:263:	.pull-eight 	{ right: 69.6%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:264:	.pull-nine 		{ right: 78.3%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:265:	.pull-ten 		{ right: 87%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:269:	img, object, embed { max-width: 100%; height: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:270:	img { -ms-interpolation-mode: bicubic; }
share/assets/misc/login/foundation/stylesheets/foundation.css:271:	#map_canvas img, .map_canvas img {max-width: none!important;}
share/assets/misc/login/foundation/stylesheets/foundation.css:279:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:282:	These are 2-up, 3-up, 4-up and 5-up ULs, suited
share/assets/misc/login/foundation/stylesheets/foundation.css:287:	For IE7/8 compatibility block-grid items need to be
share/assets/misc/login/foundation/stylesheets/foundation.css:290:	that IE7/8 do not support :nth-child.
share/assets/misc/login/foundation/stylesheets/foundation.css:291:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:293:	.block-grid { display: block; overflow: hidden; }
share/assets/misc/login/foundation/stylesheets/foundation.css:294:	.block-grid>li { display: block; height: auto; float: left; }
share/assets/misc/login/foundation/stylesheets/foundation.css:296:	.block-grid.two-up { margin-left: -4% }
share/assets/misc/login/foundation/stylesheets/foundation.css:297:	.block-grid.two-up>li { margin-left: 4%; width: 46%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:298:/* 	.block-grid.two-up>li:nth-child(2n+1) {clear: left;} */
share/assets/misc/login/foundation/stylesheets/foundation.css:300:	.block-grid.three-up { margin-left: -2% }
share/assets/misc/login/foundation/stylesheets/foundation.css:301:	.block-grid.three-up>li { margin-left: 2%; width: 31.3%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:302:/* 	.block-grid.three-up>li:nth-child(3n+1) {clear: left;} */
share/assets/misc/login/foundation/stylesheets/foundation.css:304:	.block-grid.four-up { margin-left: -2% }
share/assets/misc/login/foundation/stylesheets/foundation.css:305:	.block-grid.four-up>li { margin-left: 2%; width: 23%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:306:/* 	.block-grid.four-up>li:nth-child(4n+1) {clear: left;} */
share/assets/misc/login/foundation/stylesheets/foundation.css:308:	.block-grid.five-up { margin-left: -1.5% }
share/assets/misc/login/foundation/stylesheets/foundation.css:309:	.block-grid.five-up>li { margin-left: 1.5%; width: 18.5%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:310:/* 	.block-grid.five-up>li:nth-child(5n+1) {clear: left;} */
share/assets/misc/login/foundation/stylesheets/foundation.css:313:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:315:-----------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:330:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:332:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:336:		display: inline-block;
share/assets/misc/login/foundation/stylesheets/foundation.css:337:		text-align: center;
share/assets/misc/login/foundation/stylesheets/foundation.css:340:		text-decoration: none;
share/assets/misc/login/foundation/stylesheets/foundation.css:341:		font-weight: bold;
share/assets/misc/login/foundation/stylesheets/foundation.css:342:		font-size: 13px; font-size: 1.3rem;
share/assets/misc/login/foundation/stylesheets/foundation.css:343:		line-height: 1;
share/assets/misc/login/foundation/stylesheets/foundation.css:344:		font-family: "Helvetica Neue", "Helvetica", Arial, Verdana, sans-serif;
share/assets/misc/login/foundation/stylesheets/foundation.css:353:	input[type=submit].button, button.button { -webkit-appearance: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:356:	button::-moz-focus-inner, input[type="reset"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="file"] > input[type="button"]::-moz-focus-inner {
share/assets/misc/login/foundation/stylesheets/foundation.css:361:		background: #00a6fc url(../images/misc/button-gloss.png) repeat-x 0 -31px;
share/assets/misc/login/foundation/stylesheets/foundation.css:362:		-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
share/assets/misc/login/foundation/stylesheets/foundation.css:363:		-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
share/assets/misc/login/foundation/stylesheets/foundation.css:364:		box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
share/assets/misc/login/foundation/stylesheets/foundation.css:365:		text-shadow: 0 -1px 1px rgba(0,0,0,0.28);
share/assets/misc/login/foundation/stylesheets/foundation.css:366:		background: #00a6fc url(../images/misc/button-gloss.png) repeat-x 0 -31px, -moz-linear-gradient(top, rgba(255,255,255,.4) 0%, transparent 100%);
share/assets/misc/login/foundation/stylesheets/foundation.css:367:		background: #00a6fc url(../images/misc/button-gloss.png) repeat-x 0 -31px, -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.4)), color-stop(100%,transparent));
share/assets/misc/login/foundation/stylesheets/foundation.css:369:		-webkit-transition: background-color .15s ease-in-out;
share/assets/misc/login/foundation/stylesheets/foundation.css:370:		-moz-transition: background-color .15s ease-in-out;
share/assets/misc/login/foundation/stylesheets/foundation.css:371:		-o-transition: background-color .15s ease-in-out;
share/assets/misc/login/foundation/stylesheets/foundation.css:375:		-moz-border-radius: 3px;
share/assets/misc/login/foundation/stylesheets/foundation.css:376:		-webkit-border-radius: 3px;
share/assets/misc/login/foundation/stylesheets/foundation.css:377:		border-radius: 3px;
share/assets/misc/login/foundation/stylesheets/foundation.css:380:		-moz-border-radius: 1000px;
share/assets/misc/login/foundation/stylesheets/foundation.css:381:		-webkit-border-radius: 1000px;
share/assets/misc/login/foundation/stylesheets/foundation.css:382:		border-radius: 1000px;
share/assets/misc/login/foundation/stylesheets/foundation.css:385:	.button.full-width {
share/assets/misc/login/foundation/stylesheets/foundation.css:387:		padding-left: 0 !important;
share/assets/misc/login/foundation/stylesheets/foundation.css:388:		padding-right: 0 !important;
share/assets/misc/login/foundation/stylesheets/foundation.css:389:		text-align: center;
share/assets/misc/login/foundation/stylesheets/foundation.css:392:	.button.left-align {
share/assets/misc/login/foundation/stylesheets/foundation.css:393:		text-align: left;
share/assets/misc/login/foundation/stylesheets/foundation.css:394:		text-indent: 12px;
share/assets/misc/login/foundation/stylesheets/foundation.css:397:	/* Sizes ---------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:398:	.tiny.button			{ font-size: 10px; padding: 6px 14px 8px; width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:399:	.small.button 			{ font-size: 11px; padding: 8px 20px 10px; width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:400:	.medium.button 			{ font-size: 13px; width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:401:	.large.button 			{ font-size: 18px; padding: 11px 48px 13px; width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:403:	/* Nice Sizes ---------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:404:	.nice.tiny.button 		{ background-position: 0 -37px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:405:	.nice.small.button 		{ background-position: 0 -34px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:406:	.nice.large.button 		{ background-position: 0 -30px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:408:	/* Colors ---------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:409:	.blue.button			{ background-color: #00a6fc; }
share/assets/misc/login/foundation/stylesheets/foundation.css:410:	.red.button				{ background-color: #e91c21; }
share/assets/misc/login/foundation/stylesheets/foundation.css:411:	.white.button			{ background-color: #e9e9e9; color: #333; }
share/assets/misc/login/foundation/stylesheets/foundation.css:412:	.black.button			{ background-color: #141414; }
share/assets/misc/login/foundation/stylesheets/foundation.css:413:	.green.button			{ background-color: #5b8737; }
share/assets/misc/login/foundation/stylesheets/foundation.css:415:	/* Nice Colors ---------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:418:	.nice.white.button		{ border: 1px solid #cacaca; text-shadow: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:422:	/* Hovers ---------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:423:	.button:hover, .button:focus 				{ background-color: #0192dd; color: #fff; }
share/assets/misc/login/foundation/stylesheets/foundation.css:424:	.blue.button:hover, .blue.button:focus		{ background-color: #0192dd; }
share/assets/misc/login/foundation/stylesheets/foundation.css:425:	.red.button:hover, .red.button:focus 		{ background-color: #d01217; }
share/assets/misc/login/foundation/stylesheets/foundation.css:426:	.white.button:hover, .white.button:focus	{ background-color: #dadada; color: #333; }
share/assets/misc/login/foundation/stylesheets/foundation.css:427:	.black.button:hover, .black.button:focus	{ background-color: #000; }
share/assets/misc/login/foundation/stylesheets/foundation.css:428:	.green.button:hover, .green.button:focus	{ background-color: #699c40; }
share/assets/misc/login/foundation/stylesheets/foundation.css:430:	/* Hovers ---------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:432:		-moz-box-shadow: inset 0 1px 0 rgba(0,0,0,.15);
share/assets/misc/login/foundation/stylesheets/foundation.css:433:		-webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.15);
share/assets/misc/login/foundation/stylesheets/foundation.css:434:		box-shadow: inset 0 1px 0 rgba(0,0,0,.15);
share/assets/misc/login/foundation/stylesheets/foundation.css:437:	/* Disabled ---------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:441:	@-moz-document url-prefix(http://) {
share/assets/misc/login/foundation/stylesheets/foundation.css:442:		input[type=submit].button::-moz-focus-inner, button.button::-moz-focus-inner { border: 0; padding: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:449:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:451:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:453:	div.alert-box { display: block; padding: 6px 7px; font-weight: bold; font-size: 13px; background: #eee; border: 1px solid rgba(0,0,0,0.1); margin-bottom: 12px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; text-shadow: 0 1px rgba(255,255,255,0.9); position: relative; }
share/assets/misc/login/foundation/stylesheets/foundation.css:454:	.alert-box.success { background-color: #7fae00; color: #fff; text-shadow: 0 -1px rgba(0,0,0,0.3); }
share/assets/misc/login/foundation/stylesheets/foundation.css:455:	.alert-box.warning { background-color: #f68b01; color: #fff; text-shadow: 0 -1px rgba(0,0,0,0.3); }
share/assets/misc/login/foundation/stylesheets/foundation.css:456:	.alert-box.error { background-color: #c00000; color: #fff; text-shadow: 0 -1px rgba(0,0,0,0.3); }
share/assets/misc/login/foundation/stylesheets/foundation.css:458:	.alert-box a.close { color: #000; position: absolute; right: 4px; top: 0; font-size: 18px; opacity: 0.2; padding: 4px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:459:	.alert-box a.close:hover,.alert-box a.close:focus { opacity: 0.4; }
share/assets/misc/login/foundation/stylesheets/foundation.css:461:/*  --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:463:    -------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:464:    ul.pagination { display: block; height: 24px; margin-left: -5px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:465:    ul.pagination li { float: left; display: block; height: 24px; color: #999; font-size: 15px; margin-left: 5px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:467:    ul.pagination li.current a, ul.pagination li:hover a, ul.pagination li a:focus { border-bottom: solid 2px #00a6fc; color: #141414; }
share/assets/misc/login/foundation/stylesheets/foundation.css:469:    ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus { border-bottom: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:471:/*  --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:473:    -------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:474:    ul.breadcrumbs { display: block; background: #f4f4f4; padding: 7px 10px; border: 1px solid #ddd; border-radius: 2px; overflow: hidden; }
share/assets/misc/login/foundation/stylesheets/foundation.css:476:	ul.breadcrumbs li a, ul.breadcrumbs li span { text-transform: uppercase; font-size: 11px; padding-left: 12px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:477:	ul.breadcrumbs li:first-child a, ul.breadcrumbs li:first-child span { padding-left: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:479:	ul.breadcrumbs li:first-child:before { content: ""; }
share/assets/misc/login/foundation/stylesheets/foundation.css:481:	ul.breadcrumbs li:hover a, ul.breadcrumbs li a:focus { text-decoration: underline; }
share/assets/misc/login/foundation/stylesheets/foundation.css:482:	ul.breadcrumbs li.current:hover a, ul.breadcrumbs li.current a:focus { text-decoration: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:484:    ul.breadcrumbs li.unavailable:hover a, ul.pagination li.unavailable a:focus { text-decoration: none; color: #999; cursor: default; }
share/assets/misc/login/foundation/stylesheets/foundation.css:486:	dl.sub-nav{display:block;width:auto;overflow:hidden;padding-top:4px;margin:0 0 10px -9px;font-size:11px;font-weight:700}
share/assets/misc/login/foundation/stylesheets/foundation.css:487:	dl.sub-nav dt,dl.sub-nav dd{float:left;display:inline;margin-left:9px;margin-bottom:4px}
share/assets/misc/login/foundation/stylesheets/foundation.css:488:	dl.sub-nav dt{color:#999;font-weight:400}
share/assets/misc/login/foundation/stylesheets/foundation.css:489:	dl.sub-nav dd a{text-decoration:none;-webkit-border-radius:12px;-moz-border-radius:12px}
share/assets/misc/login/foundation/stylesheets/foundation.css:490:	dl.sub-nav dd.active a{background:#00A6FC;color:#fff;padding:3px 9px}
share/assets/misc/login/foundation/stylesheets/foundation.css:492:/*  --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:494:    -------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:495:    ul.nice, ol.nice { list-style: none; margin: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:496:    ul.nice li, ol.nice li { padding-left: 13px; position: relative }
share/assets/misc/login/foundation/stylesheets/foundation.css:499:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:501:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:505:		background: -moz-linear-gradient(top, #FFFFFF 0%, #F4F4F4 100%);
share/assets/misc/login/foundation/stylesheets/foundation.css:506:		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(100%,#F4F4F4));
share/assets/misc/login/foundation/stylesheets/foundation.css:507:		background: -o-linear-gradient(top, #ffffff 0%,#f4f4f4 100%);
share/assets/misc/login/foundation/stylesheets/foundation.css:509:		box-shadow: 0 2px 5px rgba(0,0,0,0.15);
share/assets/misc/login/foundation/stylesheets/foundation.css:510:		-webkit-box-shadow: 0 2px 5px rgba(0,0,0,0.15);
share/assets/misc/login/foundation/stylesheets/foundation.css:511:		-moz-box-shadow: 0 2px 5px rgba(0,0,0,0.25);
share/assets/misc/login/foundation/stylesheets/foundation.css:515:/*	--------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:517:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:520:	ul.vcard { display: inline-block; margin: 0 0 12px 0; border: 1px solid #ddd; padding: 10px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:522:	ul.vcard li.fn { font-weight: bold; font-size: 15px; font-size: 1.5rem; }
share/assets/misc/login/foundation/stylesheets/foundation.css:524:	p.vevent span.summary { font-weight: bold; }
share/assets/misc/login/foundation/stylesheets/foundation.css:525:	p.vevent abbr { cursor: default; text-decoration: none; font-weight: bold; border: none; padding: 0 1px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:527:/* -----------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:529:----------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:532:	form label { display: block; font-size: 13px; line-height: 18px; cursor: pointer; margin-bottom: 9px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:534:	input.input-text, textarea { border-right: 1px solid #bbb; border-bottom: 1px solid #bbb; }
share/assets/misc/login/foundation/stylesheets/foundation.css:535:	input.input-text, textarea, select { display: block; margin-bottom: 9px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:536:	label + input.input-text, label + textarea, label + select, label + div.dropdown, select + div.dropdown { margin-top: -9px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:539:	input.input-text, textarea { font-size: 13px; padding: 4px 3px 2px; background: #fff; }
share/assets/misc/login/foundation/stylesheets/foundation.css:540:	input.input-text:focus, textarea:focus { outline: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:541:	input.input-text.oversize, textarea.oversize { font-size: 18px !important; padding: 4px 5px !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:542:	input.input-text:focus, textarea:focus { background: #f9f9f9; }
share/assets/misc/login/foundation/stylesheets/foundation.css:545:	input.input-text[disabled], textarea[disabled] { background-color: #ddd; }
share/assets/misc/login/foundation/stylesheets/foundation.css:551:	input.input-text, textarea { width: 254px; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; }
share/assets/misc/login/foundation/stylesheets/foundation.css:561:	.form-field input[type=radio], div.form-field input[type=checkbox] { display: inline; width:auto; margin-bottom:0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:564:	.form-field.error input, input.input-text.red,.form-field.error textarea { border-color: #C00000; background-color: rgba(255,0,0,0.15); }
share/assets/misc/login/foundation/stylesheets/foundation.css:565:	.form-field.error label, label.red { color: #C00000; }
share/assets/misc/login/foundation/stylesheets/foundation.css:566:	.form-field.error small, small.error { margin-top: -6px; display: block; margin-bottom: 9px; font-size: 11px; color: #C00000; width: 254px; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; }
share/assets/misc/login/foundation/stylesheets/foundation.css:578:	/* -----------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:580:	----------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:581:	form.nice div.form-field input, form.nice input.input-text, form.nice textarea { border: solid 1px #bbb; border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:582:	form.nice div.form-field input, form.nice input.input-text, form.nice textarea { font-size: 13px; padding: 6px 3px 4px; outline: none !important; background: url(../images/misc/input-bg.png) #fff; }
share/assets/misc/login/foundation/stylesheets/foundation.css:583:	form.nice div.form-field input:focus, form.nice input.input-text:focus, form.nice textarea:focus { background-color: #f9f9f9; }
share/assets/misc/login/foundation/stylesheets/foundation.css:586:	form.nice div.form-field input[disabled], form.nice input.input-text[disabled], form.nice textarea[disabled] { background-color: #ddd; }
share/assets/misc/login/foundation/stylesheets/foundation.css:588:	form.nice fieldset { border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:590:	form.nice div.form-field input[type=radio], form.nice div.form-field input[type=checkbox] { display: inline; width:auto; margin-bottom:0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:592:	form.nice div.form-field.error small, form.nice small.error { padding: 6px 4px; border: solid 0 #C00000; border-width: 0 1px 1px 1px; margin-top: -10px; background: #C00000; color: #fff; font-size: 12px; font-weight: bold; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; -webkit-border-bottom-left-radius: 2px; -webkit-border-bottom-right-radius: 2px; -moz-border-radius-bottomleft: 2px; -moz-border-radius-bottomright: 2px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:594: 	form.nice div.form-field.error .small + small, form.nice .small + small.error { width: 134px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:595:	form.nice div.form-field.error .medium + small, form.nice .medium + small.error { width: 254px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:596:	form.nice div.form-field.error .large + small, form.nice .large + small.error { width: 434px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:598:	form.nice div.form-field.error .small.oversize + small, form.nice .small.oversize + small.error { width: 136px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:599:	form.nice div.form-field.error .medium.oversize + small, form.nice .medium.oversize + small.error { width: 256px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:600:	form.nice div.form-field.error .large.oversize + small, form.nice .large.oversize + small.error { width: 436px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:602:	/* -----------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:604:	----------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:606:	form.custom span.custom { display: inline-block; width: 14px; height: 14px; position: relative; top: 2px; border: solid 1px #ccc; background: url(../images/misc/custom-form-sprites.png) 0 0 no-repeat; }
share/assets/misc/login/foundation/stylesheets/foundation.css:607:	form.custom span.custom.radio { border-radius: 7px; -webkit-border-radius: 7px; -moz-border-radius: 7px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:608:	form.custom span.custom.radio.checked { background-position: 0 -14px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:609:	form.custom span.custom.checkbox.checked { background-position: 0 -28px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:611:	form.custom div.custom.dropdown { display: block; position: relative; width: auto; height: 28px; margin-bottom: 9px; margin-top: 2px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:612:	form.custom div.custom.dropdown a.current { display: block; width: auto; line-height: 26px; min-height: 26px; padding: 0 38px 0 6px; border: solid 1px #ddd; color: #141414; background-color: #fff; word-wrap: nowrap }
share/assets/misc/login/foundation/stylesheets/foundation.css:613:	form.custom div.custom.dropdown a.selector { position: absolute; width: 26px; height: 26px; display: block; background: url(../images/misc/custom-form-sprites.png) -14px 1px no-repeat; right: 0; top: 0; border: solid 1px #ddd; }
share/assets/misc/login/foundation/stylesheets/foundation.css:615:	form.custom div.custom.dropdown.open a.selector { background-position: -14px -26px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:618:	form.custom div.custom.dropdown ul li { cursor: pointer; padding: 3px 38px 3px 6px; min-height: 18px; margin: 0; white-space: nowrap}
share/assets/misc/login/foundation/stylesheets/foundation.css:619:	form.custom div.custom.dropdown ul li.selected { background: url(../images/misc/custom-form-sprites.png) right -52px no-repeat; }
share/assets/misc/login/foundation/stylesheets/foundation.css:620:	form.custom div.custom.dropdown ul li:hover { background-color: #2a85e8; color: #fff; }
share/assets/misc/login/foundation/stylesheets/foundation.css:621:	form.custom div.custom.dropdown ul li.selected:hover { background: url(../images/misc/custom-form-sprites.png) #2a85e8 right -78px no-repeat; }
share/assets/misc/login/foundation/stylesheets/foundation.css:624:	form.custom div.custom.dropdown.open ul { display: block; z-index: 10; }
share/assets/misc/login/foundation/stylesheets/foundation.css:634:	form.custom div.custom.dropdown.open.expand ul { width: 100% !important; box-sizing: border-box; }
share/assets/misc/login/foundation/stylesheets/foundation.css:637:	form.custom .custom.disabled { background-color: #ddd; }
share/assets/misc/login/foundation/stylesheets/foundation.css:639:	/* -----------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:641:	----------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:642:	form.custom.nice span.custom.checkbox { border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:644:	form.custom.nice div.custom.dropdown a.current { border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; background-image: url(../images/misc/input-bg-outset.png); background-position: bottom right; }
share/assets/misc/login/foundation/stylesheets/foundation.css:645:	form.custom.nice div.custom.dropdown a.selector { height: 27px; border-width: 0 0 0 1px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:646:	form.custom.nice div.custom.dropdown ul { border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; -webkit-border-bottom-left-radius: 2px; -webkit-border-bottom-right-radius: 2px; -moz-border-radius-bottomleft: 2px; -moz-border-radius-bottomright: 2px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:648:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:650:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:652:	@media handheld, only screen and (max-width: 767px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:653:		h1 { font-size: 32px; font-size: 3.2rem; line-height: 1.3; }
share/assets/misc/login/foundation/stylesheets/foundation.css:654:		h2 { font-size: 28px; font-size: 2.8rem; line-height: 1.3; }
share/assets/misc/login/foundation/stylesheets/foundation.css:655:		h3 { font-size: 21px; font-size: 2.1rem; line-height: 1.3; }
share/assets/misc/login/foundation/stylesheets/foundation.css:656:		h4 { font-size: 18px; font-size: 1.8rem; line-height: 1.2; }
share/assets/misc/login/foundation/stylesheets/foundation.css:657:		h5 { font-size: 16px; font-size: 1.6rem; line-height: 1.2; }
share/assets/misc/login/foundation/stylesheets/foundation.css:658:		h6 { font-size: 15px; font-size: 1.5rem; line-height: 1.2; }
share/assets/misc/login/foundation/stylesheets/foundation.css:659:		body, p {  font-size: 15px; font-size: 1.5rem; line-height: 1.4; }
share/assets/misc/login/foundation/stylesheets/foundation.css:662:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:664:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:667:	@media only screen and (max-width: 767px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:668:		body { -webkit-text-size-adjust: none; -ms-text-size-adjust: none; width: 100%; min-width: 0; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:669:		.container { min-width: 0; margin-left: 0; margin-right: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:670:		.row { width: 100%; min-width: 0; margin-left: 0; margin-right: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:672:		.column, .columns { width: auto !important; float: none; margin-left: 0; margin-right: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:673:		.column:last-child, .columns:last-child { margin-right: 0; float: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:674:		[class*="column"] + [class*="column"]:last-child { float: none; }
share/assets/misc/login/foundation/stylesheets/foundation.css:678:		.offset-by-one, .offset-by-two, .offset-by-three, .offset-by-four, .offset-by-five, .offset-by-six, .offset-by-seven, .offset-by-eight, .offset-by-nine, .offset-by-ten, .offset-by-eleven, .centered { margin-left: 0 !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:680:		.push-two, .push-three, .push-four, .push-five, .push-six, .push-seven, .push-eight, .push-nine, .push-ten { left: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:681:		.pull-two, .pull-three, .pull-four, .pull-five, .pull-six, .pull-seven, .pull-eight, .pull-nine, .pull-ten { right: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:683:		/* Mobile 4-column Grid */
share/assets/misc/login/foundation/stylesheets/foundation.css:684:		.row .phone-one:first-child, .row .phone-two:first-child, .row .phone-three:first-child, .row .phone-four:first-child { margin-left: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:685:		.row .phone-one:last-child, .row .phone-two:last-child, .row .phone-three:last-child, .row .phone-four:last-child { float: right; }
share/assets/misc/login/foundation/stylesheets/foundation.css:687:		.row .phone-one, .row .phone-two, .row .phone-three, .row .phone-four { margin-left: 4.4%; float: left; min-height: 1px; position: relative; padding: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:689:		.row .phone-one 	{ width: 21.68% !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:690:		.row .phone-two 	{ width: 47.8% !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:691:		.row .phone-three 	{ width: 73.9% !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:692:		.row .phone-four 	{ width: 100% !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:694:		.row .push-one-phone { left: 26.08%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:695:		.row .push-two-phone { left: 52.2% }
share/assets/misc/login/foundation/stylesheets/foundation.css:696:		.row .push-three-phone { left: 78.3% }
share/assets/misc/login/foundation/stylesheets/foundation.css:698:		.row .pull-one-phone { right: 26.08% }
share/assets/misc/login/foundation/stylesheets/foundation.css:699:		.row .pull-two-phone { right: 52.2% }
share/assets/misc/login/foundation/stylesheets/foundation.css:700:		.row .pull-three-phone { right: 78.3%; }
share/assets/misc/login/foundation/stylesheets/foundation.css:703:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:705:	-------------------------------------------------- */
share/assets/misc/login/foundation/stylesheets/foundation.css:707:	@media only screen and (max-width: 767px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:708:		.block-grid.mobile { margin-left: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:709:		.block-grid.mobile > li { float: none; width: 100%; margin-left: 0; }
share/assets/misc/login/foundation/stylesheets/foundation.css:712:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:714:---------------------------------------------------*/
share/assets/misc/login/foundation/stylesheets/foundation.css:716:	.show-on-phones { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:717:	.show-on-tablets { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:718:	.show-on-desktops { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:720:	.hide-on-phones { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:721:	.hide-on-tablets { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:722:	.hide-on-desktops { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:725:	/* Modernizr-enabled tablet targeting */
share/assets/misc/login/foundation/stylesheets/foundation.css:726:	@media only screen and (max-width: 1280px) and (min-width: 768px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:727:		.touch .hide-on-phones { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:728:		.touch .hide-on-tablets { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:729:		.touch .hide-on-desktops { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:731:		.touch .show-on-phones { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:732:		.touch .show-on-tablets { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:733:		.touch .show-on-desktops { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:737:	@media only screen and (max-width: 767px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:738:		.hide-on-phones { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:739:		.hide-on-tablets { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:740:		.hide-on-desktops { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:742:		.show-on-phones { display: block !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:743:		.show-on-tablets { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:744:		.show-on-desktops { display: none !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:749:	table.show-on-desktops { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:750:	table.hide-on-phones { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:751:	table.hide-on-tablets { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:753:	@media only screen and (max-width: 1280px) and (min-width: 768px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:754:		.touch table.hide-on-phones { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:755:		.touch table.hide-on-desktops { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:756:		.touch table.show-on-tablets { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:759:	@media only screen and (max-width: 767px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:760:		table.hide-on-tablets { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:761:		table.hide-on-desktops { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:762:		table.show-on-phones { display: table !important; }
share/assets/misc/login/foundation/stylesheets/foundation.css:766:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:768:---------------------------------------------------*/
share/assets/misc/login/foundation/stylesheets/foundation.css:770:	@media only screen and (max-width: 767px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:771:		div.form-field input, div.form-field input.small, div.form-field input.medium, div.form-field input.large, div.form-field input.oversize, input.input-text, input.input-text.oversize, textarea,
share/assets/misc/login/foundation/stylesheets/foundation.css:772:		form.nice div.form-field input, form.nice div.form-field input.oversize, form.nice input.input-text, form.nice input.input-text.oversize, form.nice textarea { display: block; width: 100%; padding: 6px 2% 4px; font-size: 18px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:773:		form.nice div.form-field input, form.nice div.form-field input.oversize, form.nice input.input-text, form.nice input.input-text.oversize, form.nice textarea { -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; }
share/assets/misc/login/foundation/stylesheets/foundation.css:774:		form.nice div.form-field.error small, form.nice small.error { padding: 6px 2%; display: block; }
share/assets/misc/login/foundation/stylesheets/foundation.css:775:		form.nice div.form-field.error .small + small, form.nice .small + .error { width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:776:		form.nice div.form-field.error .medium + small, form.nice .medium + .error { width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:777:		form.nice div.form-field.error .large + small, form.nice .large + .error { width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:778:		form.nice div.form-field.error .expand + small, form.nice .expand + .error { width: auto; }
share/assets/misc/login/foundation/stylesheets/foundation.css:782:/* --------------------------------------------------
share/assets/misc/login/foundation/stylesheets/foundation.css:784:---------------------------------------------------*/
share/assets/misc/login/foundation/stylesheets/foundation.css:787:	@media only screen and (max-width: 767px) {
share/assets/misc/login/foundation/stylesheets/foundation.css:789:		button.button, input[type="submit"].button { width: 100%; padding-left: 0; padding-right: 0; margin-bottom: 5px; }
Binary file share/assets/misc/login/greensheet_login_logo.png matches
Binary file share/assets/misc/login/img/bAct_bg.png matches
Binary file share/assets/misc/login/img/bg_a.png matches
Binary file share/assets/misc/login/img/bg_b.png matches
Binary file share/assets/misc/login/img/bg_c.png matches
Binary file share/assets/misc/login/img/bg_d.png matches
Binary file share/assets/misc/login/img/bg_e.png matches
Binary file share/assets/misc/login/img/close.png matches
Binary file share/assets/misc/login/img/divider_img.png matches
Binary file share/assets/misc/login/img/down.gif matches
Binary file share/assets/misc/login/img/ico/alert64.png matches
Binary file share/assets/misc/login/img/ico/gh-icons.png matches
Binary file share/assets/misc/login/img/logo.png matches
Binary file share/assets/misc/login/img/mag_glass.png matches
Binary file share/assets/misc/login/img/nav_arrow.gif matches
Binary file share/assets/misc/login/img/ntf_tip.png matches
Binary file share/assets/misc/login/img/ribbon.png matches
Binary file share/assets/misc/login/img/settings.png matches
Binary file share/assets/misc/login/img/ssw_patterns.png matches
Binary file share/assets/misc/login/img/sw_width.gif matches
Binary file share/assets/misc/login/img/table_arrows.gif matches
Binary file share/assets/misc/login/img/ui.totop.png matches
Binary file share/assets/misc/login/powered_intellitree_footer.png matches
share/assets/misc/simplemde/fonts/font-awesome.min.css:2: *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
share/assets/misc/simplemde/fonts/font-awesome.min.css:3: *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
share/assets/misc/simplemde/fonts/font-awesome.min.css:4: */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
Binary file share/assets/misc/simplemde/fonts/fontawesome-webfont.ttf matches
Binary file share/assets/misc/simplemde/fonts/fontawesome-webfont.woff matches
Binary file share/assets/misc/simplemde/fonts/fontawesome-webfont.woff2 matches
share/assets/misc/simplemde/github-light.css:1:.pl-c{color:#969896;}.pl-c1,.pl-s .pl-v{color:#0086b3;}.pl-e,.pl-en{color:#795da3;}.pl-s .pl-s1,.pl-smi{color:#333;}.pl-ent{color:#63a35c;}.pl-k{color:#a71d5d;}.pl-pds,.pl-s,.pl-s .pl-pse .pl-s1,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sra,.pl-sr .pl-sre{color:#183691;}.pl-v{color:#ed6a43;}.pl-id{color:#b52a1d;}.pl-ii{background-color:#b52a1d;color:#f8f8f8;}.pl-sr .pl-cce{color:#63a35c;font-weight:bold;}.pl-ml{color:#693a17;}.pl-mh,.pl-mh .pl-en,.pl-ms{color:#1d3e81;font-weight:bold;}.pl-mq{color:#008080;}.pl-mi{color:#333;font-style:italic;}.pl-mb{color:#333;font-weight:bold;}.pl-md{background-color:#ffecec;color:#bd2c00;}.pl-mi1{background-color:#eaffea;color:#55a532;}.pl-mdr{color:#795da3;font-weight:bold;}.pl-mo{color:#1d3e81;}
share/assets/misc/simplemde/normalize.css:1:html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}body{margin:0;}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block;}audio,canvas,progress,video{display:inline-block;vertical-align:baseline;}audio:not([controls]){display:none;height:0;}[hidden],template{display:none;}a{background-color:transparent;}a:active,a:hover{outline:0;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:bold;}dfn{font-style:italic;}h1{font-size:2em;margin:0.67em 0;}mark{background:#ff0;color:#000;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}img{border:0;}svg:not(:root){overflow:hidden;}figure{margin:1em 40px;}hr{box-sizing:content-box;height:0;}pre{overflow:auto;}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{overflow:visible;}button,select{text-transform:none;}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}button[disabled],html input[disabled]{cursor:default;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}input{line-height:normal;}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto;}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box;}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}legend{border:0;padding:0;}textarea{overflow:auto;}optgroup{font-weight:bold;}table{border-collapse:collapse;border-spacing:0;}td,th{padding:0;}
share/assets/misc/simplemde/picoModal.js:36:     * A self-contained modal library
share/assets/misc/simplemde/picoModal.js:197:    /** Generates the grey-out effect */
share/assets/misc/simplemde/picoModal.js:200:            .clazz("pico-overlay")
share/assets/misc/simplemde/picoModal.js:232:        var id = getOption("modalId", "pico-" + autoinc++);
share/assets/misc/simplemde/picoModal.js:235:            .clazz("pico-content")
share/assets/misc/simplemde/picoModal.js:244:                boxSizing: 'border-box',
share/assets/misc/simplemde/picoModal.js:246:                '-ms-transform': 'translate(-50%,-38.1966%)',
share/assets/misc/simplemde/picoModal.js:247:                '-moz-transform': 'translate(-50%,-38.1966%)',
share/assets/misc/simplemde/picoModal.js:248:                '-webkit-transform': 'translate(-50%,-38.1966%)',
share/assets/misc/simplemde/picoModal.js:249:                '-o-transform': 'translate(-50%,-38.1966%)',
share/assets/misc/simplemde/picoModal.js:250:                transform: 'translate(-50%,-38.1966%)'
share/assets/misc/simplemde/picoModal.js:261:            .attr("aria-labelledby", getOption("ariaLabelledBy"))
share/assets/misc/simplemde/picoModal.js:262:            .attr("aria-describedby", getOption("ariaDescribedBy", id))
share/assets/misc/simplemde/picoModal.js:265:                    return /\bpico-close\b/.test(elem.elem.className);
share/assets/misc/simplemde/picoModal.js:280:                .clazz("pico-close")
share/assets/misc/simplemde/picoModal.js:297:                .attr("aria-label", getOption("close-label", "Close"));
share/assets/misc/simplemde/picoModal.js:371:            for (var i = items.length; i--;) {
share/assets/misc/simplemde/picoModal.js:564:             * change options that are re-evaluted regularly, such as
share/assets/misc/simplemde/simplemde.min.css:4: * @link https://github.com/NextStepWebs/simplemde-markdown-editor
share/assets/misc/simplemde/simplemde.min.css:7:.CodeMirror{color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{height:auto;min-height:300px;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:1}.CodeMirror-scroll{min-height:300px}.CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:9}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:relative;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:' ';height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar:hover,.editor-wrapper input.title:focus,.editor-wrapper input.title:hover{opacity:.8}.editor-toolbar.fullscreen{width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,1)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,rgba(255,255,255,1)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a{display:inline-block;text-align:center;text-decoration:none!important;color:#2c3e50!important;width:30px;height:30px;margin:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar a:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar a.fa-header-x:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"▲"}.editor-toolbar a.fa-header-smaller:after{content:"▼"}.editor-toolbar.disabled-for-preview a:not(.no-disable){pointer-events:none;background:#fff;border-color:transparent;text-shadow:inherit}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-preview,.editor-preview-side{padding:10px;background:#fafafa;overflow:auto;display:none;box-sizing:border-box}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;border:1px solid #ddd}.editor-preview-active,.editor-preview-active-side{display:block}.editor-preview-side>p,.editor-preview>p{margin-top:0}.editor-preview pre,.editor-preview-side pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid #ddd;padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:#d9d9d9}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.CodeMirror .CodeMirror-code .cm-link{color:#7f8c8d}.CodeMirror .CodeMirror-code .cm-url{color:#aab2b3}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}
share/assets/misc/simplemde/simplemde.min.js:4: * @link https://github.com/NextStepWebs/simplemde-markdown-editor
share/assets/misc/simplemde/simplemde.min.js:7:!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.SimpleMDE=e()}}(function(){var e;return function t(e,n,r){function i(a,l){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!l&&s)return s(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n?n:t)},u,u.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(e,t,n){"use strict";function r(){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,n=e.length;n>t;++t)s[t]=e[t],c[e.charCodeAt(t)]=t;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63}function i(e){var t,n,r,i,o,a,l=e.length;if(l%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===e[l-2]?2:"="===e[l-1]?1:0,a=new u(3*l/4-o),r=o>0?l-4:l;var s=0;for(t=0,n=0;r>t;t+=4,n+=3)i=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],a[s++]=i>>16&255,a[s++]=i>>8&255,a[s++]=255&i;return 2===o?(i=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,a[s++]=255&i):1===o&&(i=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,a[s++]=i>>8&255,a[s++]=255&i),a}function o(e){return s[e>>18&63]+s[e>>12&63]+s[e>>6&63]+s[63&e]}function a(e,t,n){for(var r,i=[],a=t;n>a;a+=3)r=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(o(r));return i.join("")}function l(e){for(var t,n=e.length,r=n%3,i="",o=[],l=16383,c=0,u=n-r;u>c;c+=l)o.push(a(e,c,c+l>u?u:c+l));return 1===r?(t=e[n-1],i+=s[t>>2],i+=s[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=s[t>>10],i+=s[t>>4&63],i+=s[t<<2&63],i+="="),o.push(i),o.join("")}n.toByteArray=i,n.fromByteArray=l;var s=[],c=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array;r()},{}],2:[function(e,t,n){},{}],3:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}function i(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return a.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=a.prototype):(null===e&&(e=new a(t)),e.length=t),e}function a(e,t,n){if(!(a.TYPED_ARRAY_SUPPORT||this instanceof a))return new a(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return u(this,e)}return l(this,e,t,n)}function l(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?d(e,t,n,r):"string"==typeof t?f(e,t,n):p(e,t)}function s(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number')}function c(e,t,n,r){return s(t),0>=t?o(e,t):void 0!==n?"string"==typeof r?o(e,t).fill(n,r):o(e,t).fill(n):o(e,t)}function u(e,t){if(s(t),e=o(e,0>t?0:0|m(t)),!a.TYPED_ARRAY_SUPPORT)for(var n=0;t>n;n++)e[n]=0;return e}function f(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!a.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|v(t,n);return e=o(e,r),e.write(t,n),e}function h(e,t){var n=0|m(t.length);e=o(e,n);for(var r=0;n>r;r+=1)e[r]=255&t[r];return e}function d(e,t,n,r){if(t.byteLength,0>n||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),a.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=a.prototype):e=h(e,t),e}function p(e,t){if(a.isBuffer(t)){var n=0|m(t.length);return e=o(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||K(t.length)?o(e,0):h(e,t);if("Buffer"===t.type&&J(t.data))return h(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function m(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),a.alloc(+e)}function v(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"binary":case"raw":case"raws":return n;case"utf8":case"utf-8":case void 0:return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return $(e).length;default:if(r)return q(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||0>t)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),0>=n)return"";if(n>>>=0,t>>>=0,t>=n)return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return N(this,t,n);case"ascii":return E(this,t,n);case"binary":return O(this,t,n);case"base64":return M(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function x(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r){function i(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,a=e.length,l=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,l/=2,n/=2}for(var s=-1,c=0;a>n+c;c++)if(i(e,n+c)===i(t,-1===s?0:c-s)){if(-1===s&&(s=c),c-s+1===l)return(n+s)*o}else-1!==s&&(c-=c-s),s=-1;return-1}function w(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new Error("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;r>a;a++){var l=parseInt(t.substr(2*a,2),16);if(isNaN(l))return a;e[n+a]=l}return a}function k(e,t,n,r){return V(q(t,e.length-n),e,n,r)}function S(e,t,n,r){return V(G(t),e,n,r)}function C(e,t,n,r){return S(e,t,n,r)}function L(e,t,n,r){return V($(t),e,n,r)}function T(e,t,n,r){return V(Y(t,e.length-n),e,n,r)}function M(e,t,n){return 0===t&&n===e.length?X.fromByteArray(e):X.fromByteArray(e.slice(t,n))}function N(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;n>i;){var o=e[i],a=null,l=o>239?4:o>223?3:o>191?2:1;if(n>=i+l){var s,c,u,f;switch(l){case 1:128>o&&(a=o);break;case 2:s=e[i+1],128===(192&s)&&(f=(31&o)<<6|63&s,f>127&&(a=f));break;case 3:s=e[i+1],c=e[i+2],128===(192&s)&&128===(192&c)&&(f=(15&o)<<12|(63&s)<<6|63&c,f>2047&&(55296>f||f>57343)&&(a=f));break;case 4:s=e[i+1],c=e[i+2],u=e[i+3],128===(192&s)&&128===(192&c)&&128===(192&u)&&(f=(15&o)<<18|(63&s)<<12|(63&c)<<6|63&u,f>65535&&1114112>f&&(a=f))}}null===a?(a=65533,l=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=l}return A(r)}function A(e){var t=e.length;if(Q>=t)return String.fromCharCode.apply(String,e);for(var n="",r=0;t>r;)n+=String.fromCharCode.apply(String,e.slice(r,r+=Q));return n}function E(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;n>i;i++)r+=String.fromCharCode(127&e[i]);return r}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;n>i;i++)r+=String.fromCharCode(e[i]);return r}function I(e,t,n){var r=e.length;(!t||0>t)&&(t=0),(!n||0>n||n>r)&&(n=r);for(var i="",o=t;n>o;o++)i+=U(e[o]);return i}function P(e,t,n){for(var r=e.slice(t,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function R(e,t,n){if(e%1!==0||0>e)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||o>t)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function H(e,t,n,r){0>t&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);o>i;i++)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function W(e,t,n,r){0>t&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);o>i;i++)e[n+i]=t>>>8*(r?i:3-i)&255}function B(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(0>n)throw new RangeError("Index out of range")}function _(e,t,n,r,i){return i||B(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,i){return i||B(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function z(e){if(e=j(e).replace(ee,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function j(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function U(e){return 16>e?"0"+e.toString(16):e.toString(16)}function q(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],a=0;r>a;a++){if(n=e.charCodeAt(a),n>55295&&57344>n){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(56320>n){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,128>n){if((t-=1)<0)break;o.push(n)}else if(2048>n){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(65536>n){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(1114112>n))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function G(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t}function Y(e,t){for(var n,r,i,o=[],a=0;a<e.length&&!((t-=2)<0);a++)n=e.charCodeAt(a),r=n>>8,i=n%256,o.push(i),o.push(r);return o}function $(e){return X.toByteArray(z(e))}function V(e,t,n,r){for(var i=0;r>i&&!(i+n>=t.length||i>=e.length);i++)t[i+n]=e[i];return i}function K(e){return e!==e}var X=e("base64-js"),Z=e("ieee754"),J=e("isarray");n.Buffer=a,n.SlowBuffer=g,n.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,n){return l(null,e,t,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,n){return c(null,e,t,n)},a.allocUnsafe=function(e){return u(null,e)},a.allocUnsafeSlow=function(e){return u(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);o>i;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return r>n?-1:n>r?1:0},a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(e,t){if(!J(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;n++)t+=e[n].length;var r=a.allocUnsafe(t),i=0;for(n=0;n<e.length;n++){var o=e[n];if(!a.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},a.byteLength=v,a.prototype._isBuffer=!0,a.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;e>t;t+=2)x(this,t,t+1);return this},a.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;e>t;t+=4)x(this,t,t+3),x(this,t+1,t+2);return this},a.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?N(this,0,e):y.apply(this,arguments)},a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:0===a.compare(this,e)},a.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},a.prototype.compare=function(e,t,n,r,i){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),0>t||n>e.length||0>r||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,l=n-t,s=Math.min(o,l),c=this.slice(r,i),u=e.slice(t,n),f=0;s>f;++f)if(c[f]!==u[f]){o=c[f],l=u[f];break}return l>o?-1:o>l?1:0},a.prototype.indexOf=function(e,t,n){if("string"==typeof t?(n=t,t=0):t>2147483647?t=2147483647:-2147483648>t&&(t=-2147483648),t>>=0,0===this.length)return-1;if(t>=this.length)return-1;if(0>t&&(t=Math.max(this.length+t,0)),"string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:b(this,e,t,n);if("number"==typeof e)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,e,t):b(this,[e],t,n);throw new TypeError("val must be string, number or Buffer")},a.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},a.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t=0|t,isFinite(n)?(n=0|n,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(0>n||0>t)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":return S(this,e,t,n);case"binary":return C(this,e,t,n);case"base64":return L(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;a.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,0>e?(e+=n,0>e&&(e=0)):e>n&&(e=n),0>t?(t+=n,0>t&&(t=0)):t>n&&(t=n),e>t&&(t=e);var r;if(a.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=a.prototype;else{var i=t-e;r=new a(i,void 0);for(var o=0;i>o;o++)r[o]=this[o+e]}return r},a.prototype.readUIntLE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r},a.prototype.readUIntBE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},a.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,n){e=0|e,t=0|t,n||R(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;D(this,e,t,n,i,0)}var o=1,a=0;for(this[t]=255&e;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n},a.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;D(this,e,t,n,i,0)}var o=n-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n},a.prototype.writeUInt8=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):W(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var o=0,a=1,l=0;for(this[t]=255&e;++o<n&&(a*=256);)0>e&&0===l&&0!==this[t+o-1]&&(l=1),this[t+o]=(e/a>>0)-l&255;return t+n},a.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var o=n-1,a=1,l=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)0>e&&0===l&&0!==this[t+o+1]&&(l=1),this[t+o]=(e/a>>0)-l&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),0>e&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):W(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,2147483647,-2147483648),0>e&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,n){return _(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return _(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&n>r&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(0>t)throw new RangeError("targetStart out of bounds");if(0>n||n>=this.length)throw new RangeError("sourceStart out of bounds");if(0>r)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,o=r-n;if(this===e&&t>n&&r>t)for(i=o-1;i>=0;i--)e[i+t]=this[i+n];else if(1e3>o||!a.TYPED_ARRAY_SUPPORT)for(i=0;o>i;i++)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+o),t);return o},a.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);256>i&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!a.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e=255&e);if(0>t||this.length<t||this.length<n)throw new RangeError("Out of range index");if(t>=n)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;n>o;o++)this[o]=e;else{var l=a.isBuffer(e)?e:q(new a(e,r).toString()),s=l.length;for(o=0;n-t>o;o++)this[o+t]=l[o%s]}return this};var ee=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":1,ieee754:15,isarray:16}],4:[function(e,t,n){"use strict";function r(e){return e=e||{},"function"!=typeof e.codeMirrorInstance||"function"!=typeof e.codeMirrorInstance.defineMode?void console.log("CodeMirror Spell Checker: You must provide an instance of CodeMirror via the option `codeMirrorInstance`"):(String.prototype.includes||(String.prototype.includes=function(){return-1!==String.prototype.indexOf.apply(this,arguments)}),void e.codeMirrorInstance.defineMode("spell-checker",function(t){if(!r.aff_loading){r.aff_loading=!0;var n=new XMLHttpRequest;n.open("GET","https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.aff",!0),n.onload=function(){4===n.readyState&&200===n.status&&(r.aff_data=n.responseText,r.num_loaded++,2==r.num_loaded&&(r.typo=new i("en_US",r.aff_data,r.dic_data,{platform:"any"})))},n.send(null)}if(!r.dic_loading){r.dic_loading=!0;var o=new XMLHttpRequest;o.open("GET","https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.dic",!0),o.onload=function(){4===o.readyState&&200===o.status&&(r.dic_data=o.responseText,r.num_loaded++,2==r.num_loaded&&(r.typo=new i("en_US",r.aff_data,r.dic_data,{platform:"any"})))},o.send(null)}var a='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~ ',l={token:function(e){var t=e.peek(),n="";if(a.includes(t))return e.next(),null;for(;null!=(t=e.peek())&&!a.includes(t);)n+=t,e.next();return r.typo&&!r.typo.check(n)?"spell-error":null}},s=e.codeMirrorInstance.getMode(t,t.backdrop||"text/plain");return e.codeMirrorInstance.overlayMode(s,l,!0)}))}var i=e("typo-js");r.num_loaded=0,r.aff_loading=!1,r.dic_loading=!1,r.aff_data="",r.dic_data="",r.typo,t.exports=r},{"typo-js":18}],5:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){var t=e.getWrapperElement();e.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:t.style.width,height:t.style.height},t.style.width="",t.style.height="auto",t.className+=" CodeMirror-fullscreen",document.documentElement.style.overflow="hidden",e.refresh()}function n(e){var t=e.getWrapperElement();t.className=t.className.replace(/\s*CodeMirror-fullscreen\b/,""),document.documentElement.style.overflow="";var n=e.state.fullScreenRestore;t.style.width=n.width,t.style.height=n.height,window.scrollTo(n.scrollLeft,n.scrollTop),e.refresh()}e.defineOption("fullScreen",!1,function(r,i,o){o==e.Init&&(o=!1),!o!=!i&&(i?t(r):n(r))})})},{"../../lib/codemirror":10}],6:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){function t(e){e.state.placeholder&&(e.state.placeholder.parentNode.removeChild(e.state.placeholder),e.state.placeholder=null)}function n(e){t(e);var n=e.state.placeholder=document.createElement("pre");n.style.cssText="height: 0; overflow: visible",n.className="CodeMirror-placeholder";var r=e.getOption("placeholder");"string"==typeof r&&(r=document.createTextNode(r)),n.appendChild(r),e.display.lineSpace.insertBefore(n,e.display.lineSpace.firstChild)}function r(e){o(e)&&n(e)}function i(e){var r=e.getWrapperElement(),i=o(e);r.className=r.className.replace(" CodeMirror-empty","")+(i?" CodeMirror-empty":""),i?n(e):t(e)}function o(e){return 1===e.lineCount()&&""===e.getLine(0)}e.defineOption("placeholder","",function(n,o,a){var l=a&&a!=e.Init;if(o&&!l)n.on("blur",r),n.on("change",i),n.on("swapDoc",i),i(n);else if(!o&&l){n.off("blur",r),n.off("change",i),n.off("swapDoc",i),t(n);var s=n.getWrapperElement();s.className=s.className.replace(" CodeMirror-empty","")}o&&!n.hasFocus()&&r(n)})})},{"../../lib/codemirror":10}],7:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t=/^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/,n=/^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/,r=/[*+-]\s/;e.commands.newlineAndIndentContinueMarkdownList=function(i){if(i.getOption("disableInput"))return e.Pass;for(var o=i.listSelections(),a=[],l=0;l<o.length;l++){var s=o[l].head,c=i.getStateAfter(s.line),u=c.list!==!1,f=0!==c.quote,h=i.getLine(s.line),d=t.exec(h);if(!o[l].empty()||!u&&!f||!d)return void i.execCommand("newlineAndIndent");if(n.test(h))i.replaceRange("",{line:s.line,ch:0},{line:s.line,ch:s.ch+1}),a[l]="\n";else{var p=d[1],m=d[5],g=r.test(d[2])||d[2].indexOf(">")>=0?d[2]:parseInt(d[3],10)+1+d[4];a[l]="\n"+p+g+m}}i.replaceSelections(a)}})},{"../../lib/codemirror":10}],8:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos)<e.start)&&(i.streamSeen=e,i.basePos=i.overlayPos=e.start),e.start==i.basePos&&(i.baseCur=t.token(e,i.base),i.basePos=e.pos),e.start==i.overlayPos&&(e.pos=e.start,i.overlayCur=n.token(e,i.overlay),i.overlayPos=e.pos),e.pos=Math.min(i.basePos,i.overlayPos),null==i.overlayCur?i.baseCur:null!=i.baseCur&&i.overlay.combineTokens||r&&null==i.overlay.combineTokens?i.baseCur+" "+i.overlayCur:i.overlayCur},indent:t.indent&&function(e,n){return t.indent(e.base,n)},electricChars:t.electricChars,innerMode:function(e){return{state:e.base,mode:t}},blankLine:function(e){t.blankLine&&t.blankLine(e.base),n.blankLine&&n.blankLine(e.overlay)}}}})},{"../../lib/codemirror":10}],9:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){e.operation(function(){a(e)})}function n(e){e.state.markedSelection.length&&e.operation(function(){i(e)})}function r(e,t,n,r){if(0!=c(t,n))for(var i=e.state.markedSelection,o=e.state.markedSelectionStyle,a=t.line;;){var u=a==t.line?t:s(a,0),f=a+l,h=f>=n.line,d=h?n:s(f,0),p=e.markText(u,d,{className:o});if(null==r?i.push(p):i.splice(r++,0,p),h)break;a=f}}function i(e){for(var t=e.state.markedSelection,n=0;n<t.length;++n)t[n].clear();t.length=0}function o(e){i(e);for(var t=e.listSelections(),n=0;n<t.length;n++)r(e,t[n].from(),t[n].to())}function a(e){if(!e.somethingSelected())return i(e);if(e.listSelections().length>1)return o(e);var t=e.getCursor("start"),n=e.getCursor("end"),a=e.state.markedSelection;if(!a.length)return r(e,t,n);var s=a[0].find(),u=a[a.length-1].find();if(!s||!u||n.line-t.line<l||c(t,u.to)>=0||c(n,s.from)<=0)return o(e);for(;c(t,s.from)>0;)a.shift().clear(),s=a[0].find();for(c(t,s.from)<0&&(s.to.line-t.line<l?(a.shift().clear(),r(e,t,s.to,0)):r(e,t,s.from,0));c(n,u.to)<0;)a.pop().clear(),u=a[a.length-1].find();c(n,u.to)>0&&(n.line-u.from.line<l?(a.pop().clear(),r(e,u.from,n)):r(e,u.to,n))}e.defineOption("styleSelectedText",!1,function(r,a,l){var s=l&&l!=e.Init;a&&!s?(r.state.markedSelection=[],r.state.markedSelectionStyle="string"==typeof a?a:"CodeMirror-selectedtext",o(r),r.on("cursorActivity",t),r.on("change",n)):!a&&s&&(r.off("cursorActivity",t),r.off("change",n),i(r),r.state.markedSelection=r.state.markedSelectionStyle=null)});var l=8,s=e.Pos,c=e.cmpPos})},{"../../lib/codemirror":10}],10:[function(t,n,r){!function(t){if("object"==typeof r&&"object"==typeof n)n.exports=t();else{if("function"==typeof e&&e.amd)return e([],t);(this||window).CodeMirror=t()}}(function(){"use strict";function e(n,r){if(!(this instanceof e))return new e(n,r);this.options=r=r?Wi(r):{},Wi(ea,r,!1),d(r);var i=r.value;"string"==typeof i&&(i=new Ca(i,r.mode,null,r.lineSeparator)),this.doc=i;var o=new e.inputStyles[r.inputStyle](this),a=this.display=new t(n,i,o);a.wrapper.CodeMirror=this,c(this),l(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),r.autofocus&&!Ao&&a.input.focus(),v(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Ei,keySeq:null,specialChars:null};var s=this;xo&&11>bo&&setTimeout(function(){s.display.input.reset(!0)},20),jt(this),Ki(),bt(this),this.curOp.forceUpdate=!0,Xr(this,i),r.autofocus&&!Ao||s.hasFocus()?setTimeout(Bi(vn,this),20):yn(this);for(var u in ta)ta.hasOwnProperty(u)&&ta[u](this,r[u],na);k(this),r.finishInit&&r.finishInit(this);for(var f=0;f<aa.length;++f)aa[f](this);kt(this),wo&&r.lineWrapping&&"optimizelegibility"==getComputedStyle(a.lineDiv).textRendering&&(a.lineDiv.style.textRendering="auto")}function t(e,t,n){var r=this;this.input=n,r.scrollbarFiller=ji("div",null,"CodeMirror-scrollbar-filler"),r.scrollbarFiller.setAttribute("cm-not-content","true"),r.gutterFiller=ji("div",null,"CodeMirror-gutter-filler"),r.gutterFiller.setAttribute("cm-not-content","true"),r.lineDiv=ji("div",null,"CodeMirror-code"),r.selectionDiv=ji("div",null,null,"position: relative; z-index: 1"),r.cursorDiv=ji("div",null,"CodeMirror-cursors"),r.measure=ji("div",null,"CodeMirror-measure"),r.lineMeasure=ji("div",null,"CodeMirror-measure"),r.lineSpace=ji("div",[r.measure,r.lineMeasure,r.selectionDiv,r.cursorDiv,r.lineDiv],null,"position: relative; outline: none"),r.mover=ji("div",[ji("div",[r.lineSpace],"CodeMirror-lines")],null,"position: relative"),r.sizer=ji("div",[r.mover],"CodeMirror-sizer"),r.sizerWidth=null,r.heightForcer=ji("div",null,null,"position: absolute; height: "+Da+"px; width: 1px;"),r.gutters=ji("div",null,"CodeMirror-gutters"),r.lineGutter=null,r.scroller=ji("div",[r.sizer,r.heightForcer,r.gutters],"CodeMirror-scroll"),r.scroller.setAttribute("tabIndex","-1"),r.wrapper=ji("div",[r.scrollbarFiller,r.gutterFiller,r.scroller],"CodeMirror"),xo&&8>bo&&(r.gutters.style.zIndex=-1,r.scroller.style.paddingRight=0),wo||go&&Ao||(r.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(r.wrapper):e(r.wrapper)),r.viewFrom=r.viewTo=t.first,r.reportedViewFrom=r.reportedViewTo=t.first,r.view=[],r.renderedView=null,r.externalMeasured=null,r.viewOffset=0,r.lastWrapHeight=r.lastWrapWidth=0,r.updateLineNumbers=null,r.nativeBarWidth=r.barHeight=r.barWidth=0,r.scrollbarsClipped=!1,r.lineNumWidth=r.lineNumInnerWidth=r.lineNumChars=null,r.alignWidgets=!1,r.cachedCharWidth=r.cachedTextHeight=r.cachedPaddingH=null,
share/assets/misc/simplemde/simplemde.min.js:8:r.maxLine=null,r.maxLineLength=0,r.maxLineChanged=!1,r.wheelDX=r.wheelDY=r.wheelStartX=r.wheelStartY=null,r.shift=!1,r.selForContextMenu=null,r.activeTouch=null,n.init(r)}function n(t){t.doc.mode=e.getMode(t.options,t.doc.modeOption),r(t)}function r(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.frontier=e.doc.first,_e(e,100),e.state.modeGen++,e.curOp&&Dt(e)}function i(e){e.options.lineWrapping?(Ja(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Za(e.display.wrapper,"CodeMirror-wrap"),h(e)),a(e),Dt(e),lt(e),setTimeout(function(){y(e)},100)}function o(e){var t=yt(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/xt(e.display)-3);return function(i){if(kr(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return n?o+(Math.ceil(i.text.length/r)||1)*t:o+t}}function a(e){var t=e.doc,n=o(e);t.iter(function(e){var t=n(e);t!=e.height&&ei(e,t)})}function l(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),lt(e)}function s(e){c(e),Dt(e),setTimeout(function(){w(e)},20)}function c(e){var t=e.display.gutters,n=e.options.gutters;Ui(t);for(var r=0;r<n.length;++r){var i=n[r],o=t.appendChild(ji("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&(e.display.lineGutter=o,o.style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=r?"":"none",u(e)}function u(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function f(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=mr(r);){var i=t.find(0,!0);r=i.from.line,n+=i.from.ch-i.to.ch}for(r=e;t=gr(r);){var i=t.find(0,!0);n-=r.text.length-i.from.ch,r=i.to.line,n+=r.text.length-i.to.ch}return n}function h(e){var t=e.display,n=e.doc;t.maxLine=Zr(n,n.first),t.maxLineLength=f(t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var n=f(e);n>t.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function d(e){var t=Pi(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function p(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+qe(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Ye(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function m(e,t,n){this.cm=n;var r=this.vert=ji("div",[ji("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=ji("div",[ji("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(r),e(i),Ea(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),Ea(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,xo&&8>bo&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function g(){}function v(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Za(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new e.scrollbarModel[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),Ea(e,"mousedown",function(){t.state.focused&&setTimeout(function(){t.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,n){"horizontal"==n?on(t,e):rn(t,e)},t),t.display.scrollbars.addClass&&Ja(t.display.wrapper,t.display.scrollbars.addClass)}function y(e,t){t||(t=p(e));var n=e.display.barWidth,r=e.display.barHeight;x(e,t);for(var i=0;4>i&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&O(e),x(e,p(e)),n=e.display.barWidth,r=e.display.barHeight}function x(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}function b(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop;r=Math.floor(r-Ue(e));var i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=ni(t,r),a=ni(t,i);if(n&&n.ensure){var l=n.ensure.from.line,s=n.ensure.to.line;o>l?(o=l,a=ni(t,ri(Zr(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=ni(t,ri(Zr(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function w(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=C(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;a<n.length;a++)if(!n[a].hidden){e.options.fixedGutter&&n[a].gutter&&(n[a].gutter.style.left=o);var l=n[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+"px")}}function k(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=S(e.options,t.first+t.size-1),r=e.display;if(n.length!=r.lineNumChars){var i=r.measure.appendChild(ji("div",[ji("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,a=i.offsetWidth-o;return r.lineGutter.style.width="",r.lineNumInnerWidth=Math.max(o,r.lineGutter.offsetWidth-a)+1,r.lineNumWidth=r.lineNumInnerWidth+a,r.lineNumChars=r.lineNumInnerWidth?n.length:-1,r.lineGutter.style.width=r.lineNumWidth+"px",u(e),!0}return!1}function S(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function C(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function L(e,t,n){var r=e.display;this.viewport=t,this.visible=b(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=$e(e),this.force=n,this.dims=P(e),this.events=[]}function T(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=Ye(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=Ye(e)+"px",t.scrollbarsClipped=!0)}function M(e,t){var n=e.display,r=e.doc;if(t.editorIsHidden)return Wt(e),!1;if(!t.force&&t.visible.from>=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==zt(e))return!1;k(e)&&(Wt(e),t.dims=P(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFrom<o&&o-n.viewFrom<20&&(o=Math.max(r.first,n.viewFrom)),n.viewTo>a&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Wo&&(o=br(e.doc,o),a=wr(e.doc,a));var l=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;Ft(e,o,a),n.viewOffset=ri(Zr(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var s=zt(e);if(!l&&0==s&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Gi();return s>4&&(n.lineDiv.style.display="none"),R(e,n.updateLineNumbers,t.dims),s>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,c&&Gi()!=c&&c.offsetHeight&&c.focus(),Ui(n.cursorDiv),Ui(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,l&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,_e(e,400)),n.updateLineNumbers=null,!0}function N(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=$e(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+qe(e.display)-Ve(e),n.top)}),t.visible=b(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&M(e,t);r=!1){O(e);var i=p(e);Re(e),y(e,i),E(e,i)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function A(e,t){var n=new L(e,t);if(M(e,n)){O(e),N(e,n);var r=p(e);Re(e),y(e,r),E(e,r),n.finish()}}function E(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Ye(e)+"px"}function O(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i,o=t.view[r];if(!o.hidden){if(xo&&8>bo){var a=o.node.offsetTop+o.node.offsetHeight;i=a-n,n=a}else{var l=o.node.getBoundingClientRect();i=l.bottom-l.top}var s=o.line.height-i;if(2>i&&(i=yt(t)),(s>.001||-.001>s)&&(ei(o.line,i),I(o.line),o.rest))for(var c=0;c<o.rest.length;c++)I(o.rest[c])}}}function I(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function P(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)n[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,r[e.options.gutters[a]]=o.clientWidth;return{fixedPos:C(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function R(e,t,n){function r(t){var n=t.nextSibling;return wo&&Eo&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var i=e.display,o=e.options.lineNumbers,a=i.lineDiv,l=a.firstChild,s=i.view,c=i.viewFrom,u=0;u<s.length;u++){var f=s[u];if(f.hidden);else if(f.node&&f.node.parentNode==a){for(;l!=f.node;)l=r(l);var h=o&&null!=t&&c>=t&&f.lineNumber;f.changes&&(Pi(f.changes,"gutter")>-1&&(h=!1),D(e,f,c,n)),h&&(Ui(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(S(e.options,c)))),l=f.node.nextSibling}else{var d=U(e,f,c,n);a.insertBefore(d,l)}c+=f.size}for(;l;)l=r(l)}function D(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?_(e,t):"gutter"==o?z(e,t,n,r):"class"==o?F(t):"widget"==o&&j(e,t,r)}t.changes=null}function H(e){return e.node==e.text&&(e.node=ji("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),xo&&8>bo&&(e.node.style.zIndex=2)),e.node}function W(e){var t=e.bgClass?e.bgClass+" "+(e.line.bgClass||""):e.line.bgClass;if(t&&(t+=" CodeMirror-linebackground"),e.background)t?e.background.className=t:(e.background.parentNode.removeChild(e.background),e.background=null);else if(t){var n=H(e);e.background=n.insertBefore(ji("div",null,t),n.firstChild)}}function B(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):Br(e,t)}function _(e,t){var n=t.text.className,r=B(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,F(t)):n&&(t.text.className=n)}function F(e){W(e),e.line.wrapClass?H(e).className=e.line.wrapClass:e.node!=e.text&&(e.node.className="");var t=e.textClass?e.textClass+" "+(e.line.textClass||""):e.line.textClass;e.text.className=t||""}function z(e,t,n,r){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var i=H(t);t.gutterBackground=ji("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+"px; width: "+r.gutterTotalWidth+"px"),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){var i=H(t),a=t.gutter=ji("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+"px");if(e.display.input.setUneditable(a),i.insertBefore(a,t.text),t.line.gutterClass&&(a.className+=" "+t.line.gutterClass),!e.options.lineNumbers||o&&o["CodeMirror-linenumbers"]||(t.lineNumber=a.appendChild(ji("div",S(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+r.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),o)for(var l=0;l<e.options.gutters.length;++l){var s=e.options.gutters[l],c=o.hasOwnProperty(s)&&o[s];c&&a.appendChild(ji("div",[c],"CodeMirror-gutter-elt","left: "+r.gutterLeft[s]+"px; width: "+r.gutterWidth[s]+"px"))}}}function j(e,t,n){t.alignable&&(t.alignable=null);for(var r,i=t.node.firstChild;i;i=r){var r=i.nextSibling;"CodeMirror-linewidget"==i.className&&t.node.removeChild(i)}q(e,t,n)}function U(e,t,n,r){var i=B(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),F(t),z(e,t,n,r),q(e,t,r),t.node}function q(e,t,n){if(G(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)G(e,t.rest[r],t,n,!1)}function G(e,t,n,r,i){if(t.widgets)for(var o=H(n),a=0,l=t.widgets;a<l.length;++a){var s=l[a],c=ji("div",[s.node],"CodeMirror-linewidget");s.handleMouseEvents||c.setAttribute("cm-ignore-events","true"),Y(s,c,n,r),e.display.input.setUneditable(c),i&&s.above?o.insertBefore(c,n.gutter||n.text):o.appendChild(c),Ci(s,"redraw")}}function Y(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+"px",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function $(e){return Bo(e.line,e.ch)}function V(e,t){return _o(e,t)<0?t:e}function K(e,t){return _o(e,t)<0?e:t}function X(e){e.state.focused||(e.display.input.focus(),vn(e))}function Z(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r||(r=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=o.splitLines(t),s=null;if(a&&r.ranges.length>1)if(Fo&&Fo.text.join("\n")==t){if(r.ranges.length%Fo.text.length==0){s=[];for(var c=0;c<Fo.text.length;c++)s.push(o.splitLines(Fo.text[c]))}}else l.length==r.ranges.length&&(s=Ri(l,function(e){return[e]}));for(var c=r.ranges.length-1;c>=0;c--){var u=r.ranges[c],f=u.from(),h=u.to();u.empty()&&(n&&n>0?f=Bo(f.line,f.ch-n):e.state.overwrite&&!a?h=Bo(h.line,Math.min(Zr(o,h.line).text.length,h.ch+Ii(l).length)):Fo&&Fo.lineWise&&Fo.text.join("\n")==t&&(f=h=Bo(f.line,0)));var d=e.curOp.updateInput,p={from:f,to:h,text:s?s[c%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Tn(e.doc,p),Ci(e,"inputRead",e,p)}t&&!a&&Q(e,t),Bn(e),e.curOp.updateInput=d,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function J(e,t){var n=e.clipboardData&&e.clipboardData.getData("text/plain");return n?(e.preventDefault(),t.isReadOnly()||t.options.disableInput||At(t,function(){Z(t,n,0,null,"paste")}),!0):void 0}function Q(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=Fn(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Zr(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Fn(e,i.head.line,"smart"));a&&Ci(e,"electricInput",e,i.head.line)}}}function ee(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,o={anchor:Bo(i,0),head:Bo(i+1,0)};n.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:n}}function te(e){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck","false")}function ne(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Ei,this.inaccurateSelection=!1,this.hasSelection=!1,this.composing=null}function re(){var e=ji("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none"),t=ji("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return wo?e.style.width="1000px":e.setAttribute("wrap","off"),No&&(e.style.border="1px solid black"),te(e),t}function ie(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ei,this.gracePeriod=!1}function oe(e,t){var n=Qe(e,t.line);if(!n||n.hidden)return null;var r=Zr(e.doc,t.line),i=Xe(n,r,t.line),o=ii(r),a="left";if(o){var l=co(o,t.ch);a=l%2?"right":"left"}var s=nt(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function ae(e,t){return t&&(e.bad=!0),e}function le(e,t,n){var r;if(t==e.display.lineDiv){if(r=e.display.lineDiv.childNodes[n],!r)return ae(e.clipPos(Bo(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return se(o,t,n)}}function se(e,t,n){function r(t,n,r){for(var i=-1;i<(u?u.length:0);i++)for(var o=0>i?c.map:u[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==n){var s=ti(0>i?e.line:e.rest[i]),f=o[a]+r;return(0>r||l!=t)&&(f=o[a+(r?1:0)]),Bo(s,f)}}}var i=e.text.firstChild,o=!1;if(!t||!Va(i,t))return ae(Bo(ti(e.line),0),!0);if(t==i&&(o=!0,t=i.childNodes[n],n=0,!t)){var a=e.rest?Ii(e.rest):e.line;return ae(Bo(ti(a),a.text.length),o)}var l=3==t.nodeType?t:null,s=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,n&&(n=l.nodeValue.length));s.parentNode!=i;)s=s.parentNode;var c=e.measure,u=c.maps,f=r(l,s,n);if(f)return ae(f,o);for(var h=s.nextSibling,d=l?l.nodeValue.length-n:0;h;h=h.nextSibling){if(f=r(h,h.firstChild,0))return ae(Bo(f.line,f.ch-d),o);d+=h.textContent.length}for(var p=s.previousSibling,d=n;p;p=p.previousSibling){if(f=r(p,p.firstChild,-1))return ae(Bo(f.line,f.ch+d),o);d+=h.textContent.length}}function ce(e,t,n,r,i){function o(e){return function(t){return t.id==e}}function a(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return""==n&&(n=t.textContent.replace(/\u200b/g,"")),void(l+=n);var u,f=t.getAttribute("cm-marker");if(f){var h=e.findMarks(Bo(r,0),Bo(i+1,0),o(+f));return void(h.length&&(u=h[0].find())&&(l+=Jr(e.doc,u.from,u.to).join(c)))}if("false"==t.getAttribute("contenteditable"))return;for(var d=0;d<t.childNodes.length;d++)a(t.childNodes[d]);/^(pre|div|p)$/i.test(t.nodeName)&&(s=!0)}else if(3==t.nodeType){var p=t.nodeValue;if(!p)return;s&&(l+=c,s=!1),l+=p}}for(var l="",s=!1,c=e.doc.lineSeparator();a(t),t!=n;)t=t.nextSibling;return l}function ue(e,t){this.ranges=e,this.primIndex=t}function fe(e,t){this.anchor=e,this.head=t}function he(e,t){var n=e[t];e.sort(function(e,t){return _o(e.from(),t.from())}),t=Pi(e,n);for(var r=1;r<e.length;r++){var i=e[r],o=e[r-1];if(_o(o.to(),i.from())>=0){var a=K(o.from(),i.from()),l=V(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;t>=r&&--t,e.splice(--r,2,new fe(s?l:a,s?a:l))}}return new ue(e,t)}function de(e,t){return new ue([new fe(e,t||e)],0)}function pe(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function me(e,t){if(t.line<e.first)return Bo(e.first,0);var n=e.first+e.size-1;return t.line>n?Bo(n,Zr(e,n).text.length):ge(t,Zr(e,t.line).text.length)}function ge(e,t){var n=e.ch;return null==n||n>t?Bo(e.line,t):0>n?Bo(e.line,0):e}function ve(e,t){return t>=e.first&&t<e.first+e.size}function ye(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=me(e,t[r]);return n}function xe(e,t,n,r){if(e.cm&&e.cm.display.shift||e.extend){var i=t.anchor;if(r){var o=_o(n,i)<0;o!=_o(r,i)<0?(i=n,n=r):o!=_o(n,r)<0&&(n=r)}return new fe(i,n)}return new fe(r||n,n)}function be(e,t,n,r){Te(e,new ue([xe(e,e.sel.primary(),t,n)],0),r)}function we(e,t,n){for(var r=[],i=0;i<e.sel.ranges.length;i++)r[i]=xe(e,e.sel.ranges[i],t[i],null);var o=he(r,e.sel.primIndex);Te(e,o,n)}function ke(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,Te(e,he(i,e.sel.primIndex),r)}function Se(e,t,n,r){Te(e,de(t,n),r)}function Ce(e,t,n){var r={ranges:t.ranges,update:function(t){this.ranges=[];for(var n=0;n<t.length;n++)this.ranges[n]=new fe(me(e,t[n].anchor),me(e,t[n].head))},origin:n&&n.origin};return Pa(e,"beforeSelectionChange",e,r),e.cm&&Pa(e.cm,"beforeSelectionChange",e.cm,r),r.ranges!=t.ranges?he(r.ranges,r.ranges.length-1):t}function Le(e,t,n){var r=e.history.done,i=Ii(r);i&&i.ranges?(r[r.length-1]=t,Me(e,t,n)):Te(e,t,n)}function Te(e,t,n){Me(e,t,n),fi(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function Me(e,t,n){(Ni(e,"beforeSelectionChange")||e.cm&&Ni(e.cm,"beforeSelectionChange"))&&(t=Ce(e,t,n));var r=n&&n.bias||(_o(t.primary().head,e.sel.primary().head)<0?-1:1);Ne(e,Ee(e,t,r,!0)),n&&n.scroll===!1||!e.cm||Bn(e.cm)}function Ne(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Mi(e.cm)),Ci(e,"cursorActivity",e))}function Ae(e){Ne(e,Ee(e,e.sel,null,!1),Wa)}function Ee(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=Ie(e,a.anchor,l&&l.anchor,n,r),c=Ie(e,a.head,l&&l.head,n,r);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new fe(s,c))}return i?he(i,t.primIndex):t}function Oe(e,t,n,r,i){var o=Zr(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(Pa(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(n){var c,u=s.find(0>r?1:-1);if((0>r?s.inclusiveRight:s.inclusiveLeft)&&(u=Pe(e,u,-r,u&&u.line==t.line?o:null)),u&&u.line==t.line&&(c=_o(u,n))&&(0>r?0>c:c>0))return Oe(e,u,t,r,i)}var f=s.find(0>r?-1:1);return(0>r?s.inclusiveLeft:s.inclusiveRight)&&(f=Pe(e,f,r,f.line==t.line?o:null)),f?Oe(e,f,t,r,i):null}}return t}function Ie(e,t,n,r,i){var o=r||1,a=Oe(e,t,n,o,i)||!i&&Oe(e,t,n,o,!0)||Oe(e,t,n,-o,i)||!i&&Oe(e,t,n,-o,!0);return a?a:(e.cantEdit=!0,Bo(e.first,0))}function Pe(e,t,n,r){return 0>n&&0==t.ch?t.line>e.first?me(e,Bo(t.line-1)):null:n>0&&t.ch==(r||Zr(e,t.line)).text.length?t.line<e.first+e.size-1?Bo(t.line+1,0):null:new Bo(t.line,t.ch+n)}function Re(e){e.display.input.showSelection(e.display.input.prepareSelection())}function De(e,t){for(var n=e.doc,r={},i=r.cursors=document.createDocumentFragment(),o=r.selection=document.createDocumentFragment(),a=0;a<n.sel.ranges.length;a++)if(t!==!1||a!=n.sel.primIndex){var l=n.sel.ranges[a];if(!(l.from().line>=e.display.viewTo||l.to().line<e.display.viewFrom)){var s=l.empty();(s||e.options.showCursorWhenSelecting)&&He(e,l.head,i),s||We(e,l,o)}}return r}function He(e,t,n){var r=dt(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),i=n.appendChild(ji("div"," ","CodeMirror-cursor"));if(i.style.left=r.left+"px",i.style.top=r.top+"px",i.style.height=Math.max(0,r.bottom-r.top)*e.options.cursorHeight+"px",r.other){var o=n.appendChild(ji("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));o.style.display="",o.style.left=r.other.left+"px",o.style.top=r.other.top+"px",o.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function We(e,t,n){function r(e,t,n,r){0>t&&(t=0),t=Math.round(t),r=Math.round(r),l.appendChild(ji("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px; top: "+t+"px; width: "+(null==n?u-e:n)+"px; height: "+(r-t)+"px"))}function i(t,n,i){function o(n,r){return ht(e,Bo(t,n),"div",f,r)}var l,s,f=Zr(a,t),h=f.text.length;return eo(ii(f),n||0,null==i?h:i,function(e,t,a){var f,d,p,m=o(e,"left");if(e==t)f=m,d=p=m.left;else{if(f=o(t-1,"right"),"rtl"==a){var g=m;m=f,f=g}d=m.left,p=f.right}null==n&&0==e&&(d=c),f.top-m.top>3&&(r(d,m.top,null,m.bottom),d=c,m.bottom<f.top&&r(d,m.bottom,null,f.top)),null==i&&t==h&&(p=u),(!l||m.top<l.top||m.top==l.top&&m.left<l.left)&&(l=m),(!s||f.bottom>s.bottom||f.bottom==s.bottom&&f.right>s.right)&&(s=f),c+1>d&&(d=c),r(d,f.top,p-d,f.bottom)}),{start:l,end:s}}var o=e.display,a=e.doc,l=document.createDocumentFragment(),s=Ge(e.display),c=s.left,u=Math.max(o.sizerWidth,$e(e)-o.sizer.offsetLeft)-s.right,f=t.from(),h=t.to();if(f.line==h.line)i(f.line,f.ch,h.ch);else{var d=Zr(a,f.line),p=Zr(a,h.line),m=yr(d)==yr(p),g=i(f.line,f.ch,m?d.text.length+1:null).end,v=i(h.line,m?0:null,h.ch).start;m&&(g.top<v.top-2?(r(g.right,g.top,null,g.bottom),r(c,v.top,v.left,v.bottom)):r(g.right,g.top,v.left-g.right,g.bottom)),g.bottom<v.top&&r(c,g.bottom,null,v.top)}n.appendChild(l)}function Be(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function _e(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.viewTo&&e.state.highlight.set(t,Bi(Fe,e))}function Fe(e){var t=e.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=e.display.viewTo)){var n=+new Date+e.options.workTime,r=sa(t.mode,je(e,t.frontier)),i=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(t.frontier>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength,s=Rr(e,o,l?sa(t.mode,r):r,!0);o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),h=0;!f&&h<a.length;++h)f=a[h]!=o.styles[h];f&&i.push(t.frontier),o.stateAfter=l?r:sa(t.mode,r)}else o.text.length<=e.options.maxHighlightLength&&Hr(e,o.text,r),o.stateAfter=t.frontier%5==0?sa(t.mode,r):null;return++t.frontier,+new Date>n?(_e(e,e.options.workDelay),!0):void 0}),i.length&&At(e,function(){for(var t=0;t<i.length;t++)Ht(e,i[t],"text")})}}function ze(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=Zr(o,l-1);if(s.stateAfter&&(!n||l<=o.frontier))return l;var c=Fa(s.text,null,e.options.tabSize);(null==i||r>c)&&(i=l-1,r=c)}return i}function je(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return!0;var o=ze(e,t,n),a=o>r.first&&Zr(r,o-1).stateAfter;return a=a?sa(r.mode,a):ca(r.mode),r.iter(o,t,function(n){Hr(e,n.text,a);var l=o==t-1||o%5==0||o>=i.viewFrom&&o<i.viewTo;n.stateAfter=l?sa(r.mode,a):null,++o}),n&&(r.frontier=o),a}function Ue(e){return e.lineSpace.offsetTop}function qe(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ge(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=qi(e.measure,ji("pre","x")),n=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,r={left:parseInt(n.paddingLeft),right:parseInt(n.paddingRight)};return isNaN(r.left)||isNaN(r.right)||(e.cachedPaddingH=r),r}function Ye(e){return Da-e.display.nativeBarWidth}function $e(e){return e.display.scroller.clientWidth-Ye(e)-e.display.barWidth}function Ve(e){return e.display.scroller.clientHeight-Ye(e)-e.display.barHeight}function Ke(e,t,n){var r=e.options.lineWrapping,i=r&&$e(e);if(!t.measure.heights||r&&t.measure.width!=i){var o=t.measure.heights=[];if(r){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Xe(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var r=0;r<e.rest.length;r++)if(ti(e.rest[r])>n)return{map:e.measure.maps[r],cache:e.measure.caches[r],before:!0}}function Ze(e,t){t=yr(t);var n=ti(t),r=e.display.externalMeasured=new Pt(e.doc,t,n);r.lineN=n;var i=r.built=Br(e,r);return r.text=i.pre,qi(e.display.lineMeasure,i.pre),r}function Je(e,t,n,r){return tt(e,et(e,t),n,r)}function Qe(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Bt(e,t)];var n=e.display.externalMeasured;return n&&t>=n.lineN&&t<n.lineN+n.size?n:void 0}function et(e,t){var n=ti(t),r=Qe(e,n);r&&!r.text?r=null:r&&r.changes&&(D(e,r,n,P(e)),e.curOp.forceUpdate=!0),r||(r=Ze(e,t));var i=Xe(r,t,n);return{line:t,view:r,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function tt(e,t,n,r,i){t.before&&(n=-1);var o,a=n+(r||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Ke(e,t.view,t.rect),t.hasHeights=!0),o=rt(e,t,n,r),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function nt(e,t,n){for(var r,i,o,a,l=0;l<e.length;l+=3){var s=e[l],c=e[l+1];if(s>t?(i=0,o=1,a="left"):c>t?(i=t-s,o=i+1):(l==e.length-3||t==c&&e[l+3]>t)&&(o=c-s,i=o-1,t>=c&&(a="right")),null!=i){if(r=e[l+2],s==c&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;l&&e[l-2]==e[l-3]&&e[l-1].insertLeft;)r=e[(l-=3)+2],a="left";if("right"==n&&i==c-s)for(;l<e.length-3&&e[l+3]==e[l+4]&&!e[l+5].insertLeft;)r=e[(l+=3)+2],a="right";break}}return{node:r,start:i,end:o,collapse:a,coverStart:s,coverEnd:c}}function rt(e,t,n,r){var i,o=nt(t.map,n,r),a=o.node,l=o.start,s=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;4>u;u++){for(;l&&zi(t.line.text.charAt(o.coverStart+l));)--l;for(;o.coverStart+s<o.coverEnd&&zi(t.line.text.charAt(o.coverStart+s));)++s;if(xo&&9>bo&&0==l&&s==o.coverEnd-o.coverStart)i=a.parentNode.getBoundingClientRect();else if(xo&&e.options.lineWrapping){var f=qa(a,l,s).getClientRects();i=f.length?f["right"==r?f.length-1:0]:qo}else i=qa(a,l,s).getBoundingClientRect()||qo;if(i.left||i.right||0==l)break;s=l,l-=1,c="right"}xo&&11>bo&&(i=it(e.display.measure,i))}else{l>0&&(c=r="right");var f;i=e.options.lineWrapping&&(f=a.getClientRects()).length>1?f["right"==r?f.length-1:0]:a.getBoundingClientRect()}if(xo&&9>bo&&!l&&(!i||!i.left&&!i.right)){var h=a.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+xt(e.display),top:h.top,bottom:h.bottom}:qo}for(var d=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(d+p)/2,g=t.view.measure.heights,u=0;u<g.length-1&&!(m<g[u]);u++);var v=u?g[u-1]:0,y=g[u],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:v,bottom:y};return i.left||i.right||(x.bogus=!0),e.options.singleCursorHeightPerLine||(x.rtop=d,x.rbottom=p),x}function it(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!Qi(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}function ot(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function at(e){e.display.externalMeasure=null,Ui(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)ot(e.display.view[t])}function lt(e){at(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function st(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ct(){return window.pageYOffset||(document.documentElement||document.body).scrollTop}function ut(e,t,n,r){if(t.widgets)for(var i=0;i<t.widgets.length;++i)if(t.widgets[i].above){var o=Lr(t.widgets[i]);n.top+=o,n.bottom+=o}if("line"==r)return n;r||(r="local");var a=ri(t);if("local"==r?a+=Ue(e.display):a-=e.display.viewOffset,"page"==r||"window"==r){var l=e.display.lineSpace.getBoundingClientRect();a+=l.top+("window"==r?0:ct());var s=l.left+("window"==r?0:st());n.left+=s,n.right+=s}return n.top+=a,n.bottom+=a,n}function ft(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;if("page"==n)r-=st(),
share/assets/misc/simplemde/simplemde.min.js:9:i-=ct();else if("local"==n||!n){var o=e.display.sizer.getBoundingClientRect();r+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:r-a.left,top:i-a.top}}function ht(e,t,n,r,i){return r||(r=Zr(e.doc,t.line)),ut(e,r,Je(e,r,t.ch,i),n)}function dt(e,t,n,r,i,o){function a(t,a){var l=tt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,ut(e,r,l,n)}function l(e,t){var n=s[t],r=n.level%2;return e==to(n)&&t&&n.level<s[t-1].level?(n=s[--t],e=no(n)-(n.level%2?0:1),r=!0):e==no(n)&&t<s.length-1&&n.level<s[t+1].level&&(n=s[++t],e=to(n)-n.level%2,r=!1),r&&e==n.to&&e>n.from?a(e-1):a(e,r)}r=r||Zr(e.doc,t.line),i||(i=et(e,r));var s=ii(r),c=t.ch;if(!s)return a(c);var u=co(s,c),f=l(c,u);return null!=al&&(f.other=l(c,al)),f}function pt(e,t){var n=0,t=me(e.doc,t);e.options.lineWrapping||(n=xt(e.display)*t.ch);var r=Zr(e.doc,t.line),i=ri(r)+Ue(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function mt(e,t,n,r){var i=Bo(e,t);return i.xRel=r,n&&(i.outside=!0),i}function gt(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,0>n)return mt(r.first,0,!0,-1);var i=ni(r,n),o=r.first+r.size-1;if(i>o)return mt(r.first+r.size-1,Zr(r,o).text.length,!0,1);0>t&&(t=0);for(var a=Zr(r,i);;){var l=vt(e,a,i,t,n),s=gr(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=ti(a=c.to.line)}}function vt(e,t,n,r,i){function o(r){var i=dt(e,Bo(n,r),"line",t,c);return l=!0,a>i.bottom?i.left-s:a<i.top?i.left+s:(l=!1,i.left)}var a=i-ri(t),l=!1,s=2*e.display.wrapper.clientWidth,c=et(e,t),u=ii(t),f=t.text.length,h=ro(t),d=io(t),p=o(h),m=l,g=o(d),v=l;if(r>g)return mt(n,d,v,1);for(;;){if(u?d==h||d==fo(t,h,1):1>=d-h){for(var y=p>r||g-r>=r-p?h:d,x=r-(y==h?p:g);zi(t.text.charAt(y));)++y;var b=mt(n,y,y==h?m:v,-1>x?-1:x>1?1:0);return b}var w=Math.ceil(f/2),k=h+w;if(u){k=h;for(var S=0;w>S;++S)k=fo(t,k,1)}var C=o(k);C>r?(d=k,g=C,(v=l)&&(g+=1e3),f=w):(h=k,p=C,m=l,f-=w)}}function yt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==zo){zo=ji("pre");for(var t=0;49>t;++t)zo.appendChild(document.createTextNode("x")),zo.appendChild(ji("br"));zo.appendChild(document.createTextNode("x"))}qi(e.measure,zo);var n=zo.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),Ui(e.measure),n||1}function xt(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=ji("span","xxxxxxxxxx"),n=ji("pre",[t]);qi(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function bt(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Yo},Go?Go.ops.push(e.curOp):e.curOp.ownsGroup=Go={ops:[e.curOp],delayedCallbacks:[]}}function wt(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}function kt(e){var t=e.curOp,n=t.ownsGroup;if(n)try{wt(n)}finally{Go=null;for(var r=0;r<n.ops.length;r++)n.ops[r].cm.curOp=null;St(n)}}function St(e){for(var t=e.ops,n=0;n<t.length;n++)Ct(t[n]);for(var n=0;n<t.length;n++)Lt(t[n]);for(var n=0;n<t.length;n++)Tt(t[n]);for(var n=0;n<t.length;n++)Mt(t[n]);for(var n=0;n<t.length;n++)Nt(t[n])}function Ct(e){var t=e.cm,n=t.display;T(t),e.updateMaxLine&&h(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new L(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Lt(e){e.updatedDisplay=e.mustUpdate&&M(e.cm,e.update)}function Tt(e){var t=e.cm,n=t.display;e.updatedDisplay&&O(t),e.barMeasure=p(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Je(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Ye(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-$e(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection(e.focus))}function Mt(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&on(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==Gi()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),(e.updatedDisplay||e.startHeight!=t.doc.height)&&y(t,e.barMeasure),e.updatedDisplay&&E(t,e.barMeasure),e.selectionChanged&&Be(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&X(e.cm)}function Nt(e){var t=e.cm,n=t.display,r=t.doc;if(e.updatedDisplay&&N(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null==e.scrollTop||n.scroller.scrollTop==e.scrollTop&&!e.forceScroll||(r.scrollTop=Math.max(0,Math.min(n.scroller.scrollHeight-n.scroller.clientHeight,e.scrollTop)),n.scrollbars.setScrollTop(r.scrollTop),n.scroller.scrollTop=r.scrollTop),null==e.scrollLeft||n.scroller.scrollLeft==e.scrollLeft&&!e.forceScroll||(r.scrollLeft=Math.max(0,Math.min(n.scroller.scrollWidth-n.scroller.clientWidth,e.scrollLeft)),n.scrollbars.setScrollLeft(r.scrollLeft),n.scroller.scrollLeft=r.scrollLeft,w(t)),e.scrollToPos){var i=Rn(t,me(r,e.scrollToPos.from),me(r,e.scrollToPos.to),e.scrollToPos.margin);e.scrollToPos.isCursor&&t.state.focused&&Pn(t,i)}var o=e.maybeHiddenMarkers,a=e.maybeUnhiddenMarkers;if(o)for(var l=0;l<o.length;++l)o[l].lines.length||Pa(o[l],"hide");if(a)for(var l=0;l<a.length;++l)a[l].lines.length&&Pa(a[l],"unhide");n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Pa(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function At(e,t){if(e.curOp)return t();bt(e);try{return t()}finally{kt(e)}}function Et(e,t){return function(){if(e.curOp)return t.apply(e,arguments);bt(e);try{return t.apply(e,arguments)}finally{kt(e)}}}function Ot(e){return function(){if(this.curOp)return e.apply(this,arguments);bt(this);try{return e.apply(this,arguments)}finally{kt(this)}}}function It(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);bt(t);try{return e.apply(this,arguments)}finally{kt(t)}}}function Pt(e,t,n){this.line=t,this.rest=xr(t),this.size=this.rest?ti(Ii(this.rest))-n+1:1,this.node=this.text=null,this.hidden=kr(e,t)}function Rt(e,t,n){for(var r,i=[],o=t;n>o;o=r){var a=new Pt(e.doc,Zr(e.doc,o),o);r=o+a.size,i.push(a)}return i}function Dt(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r||(r=0);var i=e.display;if(r&&n<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Wo&&br(e.doc,t)<i.viewTo&&Wt(e);else if(n<=i.viewFrom)Wo&&wr(e.doc,n+r)>i.viewFrom?Wt(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)Wt(e);else if(t<=i.viewFrom){var o=_t(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Wt(e)}else if(n>=i.viewTo){var o=_t(e,t,t,-1);o?(i.view=i.view.slice(0,o.index),i.viewTo=o.lineN):Wt(e)}else{var a=_t(e,t,t,-1),l=_t(e,n,n+r,1);a&&l?(i.view=i.view.slice(0,a.index).concat(Rt(e,a.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Wt(e)}var s=i.externalMeasured;s&&(n<s.lineN?s.lineN+=r:t<s.lineN+s.size&&(i.externalMeasured=null))}function Ht(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),!(t<r.viewFrom||t>=r.viewTo)){var o=r.view[Bt(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==Pi(a,n)&&a.push(n)}}}function Wt(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Bt(e,t){if(t>=e.display.viewTo)return null;if(t-=e.display.viewFrom,0>t)return null;for(var n=e.display.view,r=0;r<n.length;r++)if(t-=n[r].size,0>t)return r}function _t(e,t,n,r){var i,o=Bt(e,t),a=e.display.view;if(!Wo||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var l=0,s=e.display.viewFrom;o>l;l++)s+=a[l].size;if(s!=t){if(r>0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;br(e.doc,n)!=n;){if(o==(0>r?0:a.length-1))return null;n+=r*a[o-(0>r?1:0)].size,o+=r}return{index:o,lineN:n}}function Ft(e,t,n){var r=e.display,i=r.view;0==i.length||t>=r.viewTo||n<=r.viewFrom?(r.view=Rt(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=Rt(e,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(Bt(e,t))),r.viewFrom=t,r.viewTo<n?r.view=r.view.concat(Rt(e,r.viewTo,n)):r.viewTo>n&&(r.view=r.view.slice(0,Bt(e,n)))),r.viewTo=n}function zt(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function jt(e){function t(){i.activeTouch&&(o=setTimeout(function(){i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function n(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function r(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}var i=e.display;Ea(i.scroller,"mousedown",Et(e,$t)),xo&&11>bo?Ea(i.scroller,"dblclick",Et(e,function(t){if(!Ti(e,t)){var n=Yt(e,t);if(n&&!Jt(e,t)&&!Gt(e.display,t)){Ma(t);var r=e.findWordAt(n);be(e.doc,r.anchor,r.head)}}})):Ea(i.scroller,"dblclick",function(t){Ti(e,t)||Ma(t)}),Do||Ea(i.scroller,"contextmenu",function(t){xn(e,t)});var o,a={end:0};Ea(i.scroller,"touchstart",function(t){if(!Ti(e,t)&&!n(t)){clearTimeout(o);var r=+new Date;i.activeTouch={start:r,moved:!1,prev:r-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),Ea(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),Ea(i.scroller,"touchend",function(n){var o=i.activeTouch;if(o&&!Gt(i,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,l=e.coordsChar(i.activeTouch,"page");a=!o.prev||r(o,o.prev)?new fe(l,l):!o.prev.prev||r(o,o.prev.prev)?e.findWordAt(l):new fe(Bo(l.line,0),me(e.doc,Bo(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Ma(n)}t()}),Ea(i.scroller,"touchcancel",t),Ea(i.scroller,"scroll",function(){i.scroller.clientHeight&&(rn(e,i.scroller.scrollTop),on(e,i.scroller.scrollLeft,!0),Pa(e,"scroll",e))}),Ea(i.scroller,"mousewheel",function(t){an(e,t)}),Ea(i.scroller,"DOMMouseScroll",function(t){an(e,t)}),Ea(i.wrapper,"scroll",function(){i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Ti(e,t)||Aa(t)},over:function(t){Ti(e,t)||(tn(e,t),Aa(t))},start:function(t){en(e,t)},drop:Et(e,Qt),leave:function(t){Ti(e,t)||nn(e)}};var l=i.input.getField();Ea(l,"keyup",function(t){pn.call(e,t)}),Ea(l,"keydown",Et(e,hn)),Ea(l,"keypress",Et(e,mn)),Ea(l,"focus",Bi(vn,e)),Ea(l,"blur",Bi(yn,e))}function Ut(t,n,r){var i=r&&r!=e.Init;if(!n!=!i){var o=t.display.dragFunctions,a=n?Ea:Ia;a(t.display.scroller,"dragstart",o.start),a(t.display.scroller,"dragenter",o.enter),a(t.display.scroller,"dragover",o.over),a(t.display.scroller,"dragleave",o.leave),a(t.display.scroller,"drop",o.drop)}}function qt(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Gt(e,t){for(var n=wi(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&"true"==n.getAttribute("cm-ignore-events")||n.parentNode==e.sizer&&n!=e.mover)return!0}function Yt(e,t,n,r){var i=e.display;if(!n&&"true"==wi(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(t){return null}var s,c=gt(e,o,a);if(r&&1==c.xRel&&(s=Zr(e.doc,c.line).text).length==c.ch){var u=Fa(s,s.length,e.options.tabSize)-s.length;c=Bo(c.line,Math.max(0,Math.round((o-Ge(e.display).left)/xt(e.display))-u))}return c}function $t(e){var t=this,n=t.display;if(!(Ti(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.shift=e.shiftKey,Gt(n,e))return void(wo||(n.scroller.draggable=!1,setTimeout(function(){n.scroller.draggable=!0},100)));if(!Jt(t,e)){var r=Yt(t,e);switch(window.focus(),ki(e)){case 1:t.state.selectingText?t.state.selectingText(e):r?Vt(t,e,r):wi(e)==n.scroller&&Ma(e);break;case 2:wo&&(t.state.lastMiddleDown=+new Date),r&&be(t.doc,r),setTimeout(function(){n.input.focus()},20),Ma(e);break;case 3:Do?xn(t,e):gn(t)}}}}function Vt(e,t,n){xo?setTimeout(Bi(X,e),0):e.curOp.focus=Gi();var r,i=+new Date;Uo&&Uo.time>i-400&&0==_o(Uo.pos,n)?r="triple":jo&&jo.time>i-400&&0==_o(jo.pos,n)?(r="double",Uo={time:i,pos:n}):(r="single",jo={time:i,pos:n});var o,a=e.doc.sel,l=Eo?t.metaKey:t.ctrlKey;e.options.dragDrop&&el&&!e.isReadOnly()&&"single"==r&&(o=a.contains(n))>-1&&(_o((o=a.ranges[o]).from(),n)<0||n.xRel>0)&&(_o(o.to(),n)>0||n.xRel<0)?Kt(e,t,n,l):Xt(e,t,n,r,l)}function Kt(e,t,n,r){var i=e.display,o=+new Date,a=Et(e,function(l){wo&&(i.scroller.draggable=!1),e.state.draggingText=!1,Ia(document,"mouseup",a),Ia(i.scroller,"drop",a),Math.abs(t.clientX-l.clientX)+Math.abs(t.clientY-l.clientY)<10&&(Ma(l),!r&&+new Date-200<o&&be(e.doc,n),wo||xo&&9==bo?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())});wo&&(i.scroller.draggable=!0),e.state.draggingText=a,i.scroller.dragDrop&&i.scroller.dragDrop(),Ea(document,"mouseup",a),Ea(i.scroller,"drop",a)}function Xt(e,t,n,r,i){function o(t){if(0!=_o(g,t))if(g=t,"rect"==r){for(var i=[],o=e.options.tabSize,a=Fa(Zr(c,n.line).text,n.ch,o),l=Fa(Zr(c,t.line).text,t.ch,o),s=Math.min(a,l),d=Math.max(a,l),p=Math.min(n.line,t.line),m=Math.min(e.lastLine(),Math.max(n.line,t.line));m>=p;p++){var v=Zr(c,p).text,y=za(v,s,o);s==d?i.push(new fe(Bo(p,y),Bo(p,y))):v.length>y&&i.push(new fe(Bo(p,y),Bo(p,za(v,d,o))))}i.length||i.push(new fe(n,n)),Te(c,he(h.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x=u,b=x.anchor,w=t;if("single"!=r){if("double"==r)var k=e.findWordAt(t);else var k=new fe(Bo(t.line,0),me(c,Bo(t.line+1,0)));_o(k.anchor,b)>0?(w=k.head,b=K(x.from(),k.anchor)):(w=k.anchor,b=V(x.to(),k.head))}var i=h.ranges.slice(0);i[f]=new fe(me(c,b),w),Te(c,he(i,f),Ba)}}function a(t){var n=++y,i=Yt(e,t,!0,"rect"==r);if(i)if(0!=_o(i,g)){e.curOp.focus=Gi(),o(i);var l=b(s,c);(i.line>=l.to||i.line<l.from)&&setTimeout(Et(e,function(){y==n&&a(t)}),150)}else{var u=t.clientY<v.top?-20:t.clientY>v.bottom?20:0;u&&setTimeout(Et(e,function(){y==n&&(s.scroller.scrollTop+=u,a(t))}),50)}}function l(t){e.state.selectingText=!1,y=1/0,Ma(t),s.input.focus(),Ia(document,"mousemove",x),Ia(document,"mouseup",w),c.history.lastSelOrigin=null}var s=e.display,c=e.doc;Ma(t);var u,f,h=c.sel,d=h.ranges;if(i&&!t.shiftKey?(f=c.sel.contains(n),u=f>-1?d[f]:new fe(n,n)):(u=c.sel.primary(),f=c.sel.primIndex),Oo?t.shiftKey&&t.metaKey:t.altKey)r="rect",i||(u=new fe(n,n)),n=Yt(e,t,!0,!0),f=-1;else if("double"==r){var p=e.findWordAt(n);u=e.display.shift||c.extend?xe(c,u,p.anchor,p.head):p}else if("triple"==r){var m=new fe(Bo(n.line,0),me(c,Bo(n.line+1,0)));u=e.display.shift||c.extend?xe(c,u,m.anchor,m.head):m}else u=xe(c,u,n);i?-1==f?(f=d.length,Te(c,he(d.concat([u]),f),{scroll:!1,origin:"*mouse"})):d.length>1&&d[f].empty()&&"single"==r&&!t.shiftKey?(Te(c,he(d.slice(0,f).concat(d.slice(f+1)),0),{scroll:!1,origin:"*mouse"}),h=c.sel):ke(c,f,u,Ba):(f=0,Te(c,new ue([u],0),Ba),h=c.sel);var g=n,v=s.wrapper.getBoundingClientRect(),y=0,x=Et(e,function(e){ki(e)?a(e):l(e)}),w=Et(e,l);e.state.selectingText=w,Ea(document,"mousemove",x),Ea(document,"mouseup",w)}function Zt(e,t,n,r){try{var i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Ma(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!Ni(e,n))return bi(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){var u=ni(e.doc,o),f=e.options.gutters[s];return Pa(e,n,e,u,f,t),bi(t)}}}function Jt(e,t){return Zt(e,t,"gutterClick",!0)}function Qt(e){var t=this;if(nn(t),!Ti(t,e)&&!Gt(t.display,e)){Ma(e),xo&&($o=+new Date);var n=Yt(t,e,!0),r=e.dataTransfer.files;if(n&&!t.isReadOnly())if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),a=0,l=function(e,r){if(!t.options.allowDropFileTypes||-1!=Pi(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=Et(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[r]=e,++a==i){n=me(t.doc,n);var s={from:n,to:n,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Tn(t.doc,s),Le(t.doc,de(n,Qo(s)))}}),l.readAsText(e)}},s=0;i>s;++s)l(r[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(n)>-1)return t.state.draggingText(e),void setTimeout(function(){t.display.input.focus()},20);try{var o=e.dataTransfer.getData("Text");if(o){if(t.state.draggingText&&!(Eo?e.altKey:e.ctrlKey))var c=t.listSelections();if(Me(t.doc,de(n,n)),c)for(var s=0;s<c.length;++s)In(t.doc,"",c[s].anchor,c[s].head,"drag");t.replaceSelection(o,"around","paste"),t.display.input.focus()}}catch(e){}}}}function en(e,t){if(xo&&(!e.state.draggingText||+new Date-$o<100))return void Aa(t);if(!Ti(e,t)&&!Gt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Lo)){var n=ji("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Co&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),Co&&n.parentNode.removeChild(n)}}function tn(e,t){var n=Yt(e,t);if(n){var r=document.createDocumentFragment();He(e,n,r),e.display.dragCursor||(e.display.dragCursor=ji("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),qi(e.display.dragCursor,r)}}function nn(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function rn(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,go||A(e,{top:t}),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbars.setScrollTop(t),go&&A(e),_e(e,100))}function on(e,t,n){(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,w(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function an(e,t){var n=Xo(t),r=n.x,i=n.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(r&&l||i&&s){if(i&&Eo&&wo)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(r&&!go&&!Co&&null!=Ko)return i&&s&&rn(e,Math.max(0,Math.min(a.scrollTop+i*Ko,a.scrollHeight-a.clientHeight))),on(e,Math.max(0,Math.min(a.scrollLeft+r*Ko,a.scrollWidth-a.clientWidth))),(!i||i&&s)&&Ma(t),void(o.wheelStartX=null);if(i&&null!=Ko){var h=i*Ko,d=e.doc.scrollTop,p=d+o.wrapper.clientHeight;0>h?d=Math.max(0,d+h-50):p=Math.min(e.doc.height,p+h+50),A(e,{top:d,bottom:p})}20>Vo&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,n=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,n&&(Ko=(Ko*Vo+n)/(Vo+1),++Vo)}},200)):(o.wheelDX+=r,o.wheelDY+=i))}}function ln(e,t,n){if("string"==typeof t&&(t=ua[t],!t))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=Ha}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}function sn(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=ha(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&ha(t,e.options.extraKeys,n,e)||ha(t,e.options.keyMap,n,e)}function cn(e,t,n,r){var i=e.state.keySeq;if(i){if(da(t))return"handled";Zo.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=sn(e,t,r);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&Ci(e,"keyHandled",e,t,n),"handled"!=o&&"multi"!=o||(Ma(n),Be(e)),i&&!o&&/\'$/.test(t)?(Ma(n),!0):!!o}function un(e,t){var n=pa(t,!0);return n?t.shiftKey&&!e.state.keySeq?cn(e,"Shift-"+n,t,function(t){return ln(e,t,!0)})||cn(e,n,t,function(t){return("string"==typeof t?/^go[A-Z]/.test(t):t.motion)?ln(e,t):void 0}):cn(e,n,t,function(t){return ln(e,t)}):!1}function fn(e,t,n){return cn(e,"'"+n+"'",t,function(t){return ln(e,t,!0)})}function hn(e){var t=this;if(t.curOp.focus=Gi(),!Ti(t,e)){xo&&11>bo&&27==e.keyCode&&(e.returnValue=!1);var n=e.keyCode;t.display.shift=16==n||e.shiftKey;var r=un(t,e);Co&&(Jo=r?n:null,!r&&88==n&&!rl&&(Eo?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=n||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||dn(t)}}function dn(e){function t(e){18!=e.keyCode&&e.altKey||(Za(n,"CodeMirror-crosshair"),Ia(document,"keyup",t),Ia(document,"mouseover",t))}var n=e.display.lineDiv;Ja(n,"CodeMirror-crosshair"),Ea(document,"keyup",t),Ea(document,"mouseover",t)}function pn(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ti(this,e)}function mn(e){var t=this;if(!(Gt(t.display,e)||Ti(t,e)||e.ctrlKey&&!e.altKey||Eo&&e.metaKey)){var n=e.keyCode,r=e.charCode;if(Co&&n==Jo)return Jo=null,void Ma(e);if(!Co||e.which&&!(e.which<10)||!un(t,e)){var i=String.fromCharCode(null==r?n:r);fn(t,e,i)||t.display.input.onKeyPress(e)}}}function gn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,yn(e))},100)}function vn(e){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Pa(e,"focus",e),e.state.focused=!0,Ja(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),wo&&setTimeout(function(){e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Be(e))}function yn(e){e.state.delayingBlurEvent||(e.state.focused&&(Pa(e,"blur",e),e.state.focused=!1,Za(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function xn(e,t){Gt(e.display,t)||bn(e,t)||Ti(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function bn(e,t){return Ni(e,"gutterContextMenu")?Zt(e,t,"gutterContextMenu",!1):!1}function wn(e,t){if(_o(e,t.from)<0)return e;if(_o(e,t.to)<=0)return Qo(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Qo(t).ch-t.to.ch),Bo(n,r)}function kn(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r];n.push(new fe(wn(i.anchor,t),wn(i.head,t)))}return he(n,e.sel.primIndex)}function Sn(e,t,n){return e.line==t.line?Bo(n.line,e.ch-t.ch+n.ch):Bo(n.line+(e.line-t.line),e.ch)}function Cn(e,t,n){for(var r=[],i=Bo(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Sn(l.from,i,o),c=Sn(Qo(l),i,o);if(i=l.to,o=c,"around"==n){var u=e.sel.ranges[a],f=_o(u.head,u.anchor)<0;r[a]=new fe(f?c:s,f?s:c)}else r[a]=new fe(s,s)}return new ue(r,e.sel.primIndex)}function Ln(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){this.canceled=!0}};return n&&(r.update=function(t,n,r,i){t&&(this.from=me(e,t)),n&&(this.to=me(e,n)),r&&(this.text=r),void 0!==i&&(this.origin=i)}),Pa(e,"beforeChange",e,r),e.cm&&Pa(e.cm,"beforeChange",e.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Tn(e,t,n){if(e.cm){if(!e.cm.curOp)return Et(e.cm,Tn)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(Ni(e,"beforeChange")||e.cm&&Ni(e.cm,"beforeChange"))||(t=Ln(e,t,!0))){var r=Ho&&!n&&sr(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)Mn(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text});else Mn(e,t)}}function Mn(e,t){if(1!=t.text.length||""!=t.text[0]||0!=_o(t.from,t.to)){var n=kn(e,t);ci(e,t,n,e.cm?e.cm.curOp.id:NaN),En(e,t,n,or(e,t));var r=[];Kr(e,function(e,n){n||-1!=Pi(r,e.history)||(xi(e.history,t),r.push(e.history)),En(e,t,null,or(e,t))})}}function Nn(e,t,n){if(!e.cm||!e.cm.state.suppressEdits){for(var r,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(r=a[s],n?!r.ranges||r.equals(e.sel):r.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;r=a.pop(),r.ranges;){if(hi(r,l),n&&!r.equals(e.sel))return void Te(e,r,{clearRedo:!1});o=r}var c=[];hi(o,l),l.push({changes:c,generation:i.generation}),i.generation=r.generation||++i.maxGeneration;for(var u=Ni(e,"beforeChange")||e.cm&&Ni(e.cm,"beforeChange"),s=r.changes.length-1;s>=0;--s){var f=r.changes[s];if(f.origin=t,u&&!Ln(e,f,!1))return void(a.length=0);c.push(ai(e,f));var h=s?kn(e,f):Ii(a);En(e,f,h,lr(e,f)),!s&&e.cm&&e.cm.scrollIntoView({from:f.from,to:Qo(f)});var d=[];Kr(e,function(e,t){t||-1!=Pi(d,e.history)||(xi(e.history,f),d.push(e.history)),En(e,f,null,lr(e,f))})}}}}function An(e,t){if(0!=t&&(e.first+=t,e.sel=new ue(Ri(e.sel.ranges,function(e){return new fe(Bo(e.anchor.line+t,e.anchor.ch),Bo(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Dt(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)Ht(e.cm,r,"gutter")}}function En(e,t,n,r){if(e.cm&&!e.cm.curOp)return Et(e.cm,En)(e,t,n,r);if(t.to.line<e.first)return void An(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);An(e,i),t={from:Bo(e.first,0),to:Bo(t.to.line+i,t.to.ch),text:[Ii(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:Bo(o,Zr(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Jr(e,t.from,t.to),n||(n=kn(e,t)),e.cm?On(e.cm,t,r):Yr(e,t,r),Me(e,n,Wa)}}function On(e,t,n){var r=e.doc,i=e.display,a=t.from,l=t.to,s=!1,c=a.line;e.options.lineWrapping||(c=ti(yr(Zr(r,a.line))),r.iter(c,l.line+1,function(e){return e==i.maxLine?(s=!0,!0):void 0})),r.sel.contains(t.from,t.to)>-1&&Mi(e),Yr(r,t,n,o(e)),e.options.lineWrapping||(r.iter(c,a.line+t.text.length,function(e){var t=f(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),r.frontier=Math.min(r.frontier,a.line),_e(e,400);var u=t.text.length-(l.line-a.line)-1;t.full?Dt(e):a.line!=l.line||1!=t.text.length||Gr(e.doc,t)?Dt(e,a.line,l.line+1,u):Ht(e,a.line,"text");var h=Ni(e,"changes"),d=Ni(e,"change");if(d||h){var p={from:a,to:l,text:t.text,removed:t.removed,origin:t.origin};d&&Ci(e,"change",e,p),h&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(p)}e.display.selForContextMenu=null}function In(e,t,n,r,i){if(r||(r=n),_o(r,n)<0){var o=r;r=n,n=o}"string"==typeof t&&(t=e.splitLines(t)),Tn(e,{from:n,to:r,text:t,origin:i})}function Pn(e,t){if(!Ti(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null;if(t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!Mo){var o=ji("div","​",null,"position: absolute; top: "+(t.top-n.viewOffset-Ue(e.display))+"px; height: "+(t.bottom-t.top+Ye(e)+n.barHeight)+"px; left: "+t.left+"px; width: 2px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}function Rn(e,t,n,r){null==r&&(r=0);for(var i=0;5>i;i++){var o=!1,a=dt(e,t),l=n&&n!=t?dt(e,n):a,s=Hn(e,Math.min(a.left,l.left),Math.min(a.top,l.top)-r,Math.max(a.left,l.left),Math.max(a.bottom,l.bottom)+r),c=e.doc.scrollTop,u=e.doc.scrollLeft;if(null!=s.scrollTop&&(rn(e,s.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(o=!0)),null!=s.scrollLeft&&(on(e,s.scrollLeft),Math.abs(e.doc.scrollLeft-u)>1&&(o=!0)),!o)break}return a}function Dn(e,t,n,r,i){var o=Hn(e,t,n,r,i);null!=o.scrollTop&&rn(e,o.scrollTop),null!=o.scrollLeft&&on(e,o.scrollLeft)}function Hn(e,t,n,r,i){var o=e.display,a=yt(e.display);0>n&&(n=0);var l=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:o.scroller.scrollTop,s=Ve(e),c={};i-n>s&&(i=n+s);var u=e.doc.height+qe(o),f=a>n,h=i>u-a;if(l>n)c.scrollTop=f?0:n;else if(i>l+s){var d=Math.min(n,(h?u:i)-s);d!=l&&(c.scrollTop=d)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:o.scroller.scrollLeft,m=$e(e)-(e.options.fixedGutter?o.gutters.offsetWidth:0),g=r-t>m;return g&&(r=t+m),10>t?c.scrollLeft=0:p>t?c.scrollLeft=Math.max(0,t-(g?0:10)):r>m+p-3&&(c.scrollLeft=r+(g?0:10)-m),c}function Wn(e,t,n){null==t&&null==n||_n(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=n&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+n)}function Bn(e){_n(e);var t=e.getCursor(),n=t,r=t;e.options.lineWrapping||(n=t.ch?Bo(t.line,t.ch-1):t,r=Bo(t.line,t.ch+1)),e.curOp.scrollToPos={from:n,to:r,margin:e.options.cursorScrollMargin,isCursor:!0}}function _n(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=pt(e,t.from),r=pt(e,t.to),i=Hn(e,Math.min(n.left,r.left),Math.min(n.top,r.top)-t.margin,Math.max(n.right,r.right),Math.max(n.bottom,r.bottom)+t.margin);e.scrollTo(i.scrollLeft,i.scrollTop)}}function Fn(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=je(e,t):n="prev");var a=e.options.tabSize,l=Zr(o,t),s=Fa(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(r||/\S/.test(l.text)){if("smart"==n&&(c=o.mode.indent(i,l.text.slice(u.length),l.text),c==Ha||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?Fa(Zr(o,t-1).text,null,a):0:"add"==n?c=s+e.options.indentUnit:"subtract"==n?c=s-e.options.indentUnit:"number"==typeof n&&(c=s+n),c=Math.max(0,c);var f="",h=0;if(e.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)h+=a,f+="	";if(c>h&&(f+=Oi(c-h)),f!=u)return In(o,f,Bo(t,0),Bo(t,u.length),"+input"),l.stateAfter=null,!0;for(var d=0;d<o.sel.ranges.length;d++){var p=o.sel.ranges[d];if(p.head.line==t&&p.head.ch<u.length){var h=Bo(t,u.length);ke(o,d,new fe(h,h));break}}}function zn(e,t,n,r){var i=t,o=t;return"number"==typeof t?o=Zr(e,pe(e,t)):i=ti(t),null==i?null:(r(o,i)&&e.cm&&Ht(e.cm,i,n),o)}function jn(e,t){for(var n=e.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=t(n[i]);r.length&&_o(o.from,Ii(r).to)<=0;){var a=r.pop();if(_o(a.from,o.from)<0){o.from=a.from;break}}r.push(o)}At(e,function(){for(var t=r.length-1;t>=0;t--)In(e.doc,"",r[t].from,r[t].to,"+delete");Bn(e)})}function Un(e,t,n,r,i){function o(){var t=l+n;return t<e.first||t>=e.first+e.size?!1:(l=t,u=Zr(e,t))}function a(e){var t=(i?fo:ho)(u,s,n,!0);if(null==t){if(e||!o())return!1;s=i?(0>n?io:ro)(u):0>n?u.text.length:0}else s=t;return!0}var l=t.line,s=t.ch,c=n,u=Zr(e,l);if("char"==r)a();else if("column"==r)a(!0);else if("word"==r||"group"==r)for(var f=null,h="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),p=!0;!(0>n)||a(!p);p=!1){var m=u.text.charAt(s)||"\n",g=_i(m,d)?"w":h&&"\n"==m?"n":!h||/\s/.test(m)?null:"p";if(!h||p||g||(g="s"),f&&f!=g){0>n&&(n=1,a());break}if(g&&(f=g),n>0&&!a(!p))break}var v=Ie(e,Bo(l,s),t,c,!0);return _o(t,v)||(v.hitSide=!0),v}function qn(e,t,n,r){var i,o=e.doc,a=t.left;if("page"==r){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);i=t.top+n*(l-(0>n?1.5:.5)*yt(e.display))}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;;){var s=gt(e,a,i);if(!s.outside)break;if(0>n?0>=i:i>=o.height){s.hitSide=!0;break}i+=5*n}return s}function Gn(t,n,r,i){e.defaults[t]=n,r&&(ta[t]=i?function(e,t,n){n!=na&&r(e,t,n)}:r)}function Yn(e){for(var t,n,r,i,o=e.split(/-(?!$)/),e=o[o.length-1],a=0;a<o.length-1;a++){var l=o[a];if(/^(cmd|meta|m)$/i.test(l))i=!0;else if(/^a(lt)?$/i.test(l))t=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{
share/assets/misc/simplemde/simplemde.min.js:10:if(!/^s(hift)$/i.test(l))throw new Error("Unrecognized modifier name: "+l);r=!0}}return t&&(e="Alt-"+e),n&&(e="Ctrl-"+e),i&&(e="Cmd-"+e),r&&(e="Shift-"+e),e}function $n(e){return"string"==typeof e?fa[e]:e}function Vn(e,t,n,r,i){if(r&&r.shared)return Kn(e,t,n,r,i);if(e.cm&&!e.cm.curOp)return Et(e.cm,Vn)(e,t,n,r,i);var o=new va(e,i),a=_o(t,n);if(r&&Wi(r,o,!1),a>0||0==a&&o.clearWhenEmpty!==!1)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=ji("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(vr(e,t.line,t,n,o)||t.line!=n.line&&vr(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Wo=!0}o.addToHistory&&ci(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var l,s=t.line,c=e.cm;if(e.iter(s,n.line+1,function(e){c&&o.collapsed&&!c.options.lineWrapping&&yr(e)==c.display.maxLine&&(l=!0),o.collapsed&&s!=t.line&&ei(e,0),nr(e,new Qn(o,s==t.line?t.ch:null,s==n.line?n.ch:null)),++s}),o.collapsed&&e.iter(t.line,n.line+1,function(t){kr(e,t)&&ei(t,0)}),o.clearOnEnter&&Ea(o,"beforeCursorEnter",function(){o.clear()}),o.readOnly&&(Ho=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++ga,o.atomic=!0),c){if(l&&(c.curOp.updateMaxLine=!0),o.collapsed)Dt(c,t.line,n.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var u=t.line;u<=n.line;u++)Ht(c,u,"text");o.atomic&&Ae(c.doc),Ci(c,"markerAdded",c,o)}return o}function Kn(e,t,n,r,i){r=Wi(r),r.shared=!1;var o=[Vn(e,t,n,r,i)],a=o[0],l=r.widgetNode;return Kr(e,function(e){l&&(r.widgetNode=l.cloneNode(!0)),o.push(Vn(e,me(e,t),me(e,n),r,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=Ii(o)}),new ya(o,a)}function Xn(e){return e.findMarks(Bo(e.first,0),e.clipPos(Bo(e.lastLine())),function(e){return e.parent})}function Zn(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(_o(o,a)){var l=Vn(e,o,a,r.primary,r.primary.type);r.markers.push(l),l.parent=r}}}function Jn(e){for(var t=0;t<e.length;t++){var n=e[t],r=[n.primary.doc];Kr(n.primary.doc,function(e){r.push(e)});for(var i=0;i<n.markers.length;i++){var o=n.markers[i];-1==Pi(r,o.doc)&&(o.parent=null,n.markers.splice(i--,1))}}}function Qn(e,t,n){this.marker=e,this.from=t,this.to=n}function er(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function tr(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function nr(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function rr(e,t,n){if(e)for(var r,i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(l||o.from==t&&"bookmark"==a.type&&(!n||!o.marker.insertLeft)){var s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push(new Qn(a,o.from,s?null:o.to))}}return r}function ir(e,t,n){if(e)for(var r,i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(l||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(r||(r=[])).push(new Qn(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return r}function or(e,t){if(t.full)return null;var n=ve(e,t.from.line)&&Zr(e,t.from.line).markedSpans,r=ve(e,t.to.line)&&Zr(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,a=0==_o(t.from,t.to),l=rr(n,i,a),s=ir(r,o,a),c=1==t.text.length,u=Ii(t.text).length+(c?i:0);if(l)for(var f=0;f<l.length;++f){var h=l[f];if(null==h.to){var d=er(s,h.marker);d?c&&(h.to=null==d.to?null:d.to+u):h.to=i}}if(s)for(var f=0;f<s.length;++f){var h=s[f];if(null!=h.to&&(h.to+=u),null==h.from){var d=er(l,h.marker);d||(h.from=u,c&&(l||(l=[])).push(h))}else h.from+=u,c&&(l||(l=[])).push(h)}l&&(l=ar(l)),s&&s!=l&&(s=ar(s));var p=[l];if(!c){var m,g=t.text.length-2;if(g>0&&l)for(var f=0;f<l.length;++f)null==l[f].to&&(m||(m=[])).push(new Qn(l[f].marker,null,null));for(var f=0;g>f;++f)p.push(m);p.push(s)}return p}function ar(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&n.marker.clearWhenEmpty!==!1&&e.splice(t--,1)}return e.length?e:null}function lr(e,t){var n=mi(e,t),r=or(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],a=r[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(n[i]=a)}return n}function sr(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=Pi(r,n)||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var a=r[o],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(_o(c.to,l.from)<0||_o(c.from,l.to)>0)){var u=[s,1],f=_o(c.from,l.from),h=_o(c.to,l.to);(0>f||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-1}}return i}function cr(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function ur(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function fr(e){return e.inclusiveLeft?-1:0}function hr(e){return e.inclusiveRight?1:0}function dr(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),o=_o(r.from,i.from)||fr(e)-fr(t);if(o)return-o;var a=_o(r.to,i.to)||hr(e)-hr(t);return a?a:t.id-e.id}function pr(e,t){var n,r=Wo&&e.markedSpans;if(r)for(var i,o=0;o<r.length;++o)i=r[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!n||dr(n,i.marker)<0)&&(n=i.marker);return n}function mr(e){return pr(e,!0)}function gr(e){return pr(e,!1)}function vr(e,t,n,r,i){var o=Zr(e,t),a=Wo&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=_o(c.from,n)||fr(s.marker)-fr(i),f=_o(c.to,r)||hr(s.marker)-hr(i);if(!(u>=0&&0>=f||0>=u&&f>=0)&&(0>=u&&(s.marker.inclusiveRight&&i.inclusiveLeft?_o(c.to,n)>=0:_o(c.to,n)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?_o(c.from,r)<=0:_o(c.from,r)<0)))return!0}}}function yr(e){for(var t;t=mr(e);)e=t.find(-1,!0).line;return e}function xr(e){for(var t,n;t=gr(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function br(e,t){var n=Zr(e,t),r=yr(n);return n==r?t:ti(r)}function wr(e,t){if(t>e.lastLine())return t;var n,r=Zr(e,t);if(!kr(e,r))return t;for(;n=gr(r);)r=n.find(1,!0).line;return ti(r)+1}function kr(e,t){var n=Wo&&t.markedSpans;if(n)for(var r,i=0;i<n.length;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&Sr(e,t,r))return!0}}function Sr(e,t,n){if(null==n.to){var r=n.marker.find(1,!0);return Sr(e,r.line,er(r.line.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var i,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==n.to&&(null==i.to||i.to!=n.from)&&(i.marker.inclusiveLeft||n.marker.inclusiveRight)&&Sr(e,t,i))return!0}function Cr(e,t,n){ri(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Wn(e,null,n)}function Lr(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!Va(document.body,e.node)){var n="position: relative;";e.coverGutter&&(n+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(n+="width: "+t.display.wrapper.clientWidth+"px;"),qi(t.display.measure,ji("div",[e.node],null,n))}return e.height=e.node.parentNode.offsetHeight}function Tr(e,t,n,r){var i=new xa(e,n,r),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),zn(e,t,"widget",function(t){var n=t.widgets||(t.widgets=[]);if(null==i.insertAt?n.push(i):n.splice(Math.min(n.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!kr(e,t)){var r=ri(t)<e.scrollTop;ei(t,t.height+Lr(i)),r&&Wn(o,null,i.height),o.curOp.forceUpdate=!0}return!0}),i}function Mr(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),cr(e),ur(e,n);var i=r?r(e):1;i!=e.height&&ei(e,i)}function Nr(e){e.parent=null,cr(e)}function Ar(e,t){if(e)for(;;){var n=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?"bgClass":"textClass";null==t[r]?t[r]=n[2]:new RegExp("(?:^|s)"+n[2]+"(?:$|s)").test(t[r])||(t[r]+=" "+n[2])}return e}function Er(t,n){if(t.blankLine)return t.blankLine(n);if(t.innerMode){var r=e.innerMode(t,n);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Or(t,n,r,i){for(var o=0;10>o;o++){i&&(i[0]=e.innerMode(t,r).mode);var a=t.token(n,r);if(n.pos>n.start)return a}throw new Error("Mode "+t.name+" failed to advance stream.")}function Ir(e,t,n,r){function i(e){return{start:f.start,end:f.pos,string:f.current(),type:o||null,state:e?sa(a.mode,u):u}}var o,a=e.doc,l=a.mode;t=me(a,t);var s,c=Zr(a,t.line),u=je(e,t.line,n),f=new ma(c.text,e.options.tabSize);for(r&&(s=[]);(r||f.pos<t.ch)&&!f.eol();)f.start=f.pos,o=Or(l,f,u),r&&s.push(i(!0));return r?s:i()}function Pr(e,t,n,r,i,o,a){var l=n.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,f=new ma(t,e.options.tabSize),h=e.options.addModeClass&&[null];for(""==t&&Ar(Er(n,r),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(l=!1,a&&Hr(e,t,r,f.pos),f.pos=t.length,s=null):s=Ar(Or(n,f,r,h),o),h){var d=h[0].name;d&&(s="m-"+(s?d+" "+s:d))}if(!l||u!=s){for(;c<f.start;)c=Math.min(f.start,c+5e4),i(c,u);u=s}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e4);i(p,u),c=p}}function Rr(e,t,n,r){var i=[e.state.modeGen],o={};Pr(e,t.text,e.doc.mode,n,function(e,t){i.push(e,t)},o,r);for(var a=0;a<e.state.overlays.length;++a){var l=e.state.overlays[a],s=1,c=0;Pr(e,t.text,l.mode,!0,function(e,t){for(var n=s;e>c;){var r=i[s];r>e&&i.splice(s,1,e,i[s+1],r),s+=2,c=Math.min(e,r)}if(t)if(l.opaque)i.splice(n,s-n,e,"cm-overlay "+t),s=n+2;else for(;s>n;n+=2){var o=i[n+1];i[n+1]=(o?o+" ":"")+"cm-overlay "+t}},o)}return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Dr(e,t,n){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=je(e,ti(t)),i=Rr(e,t,t.text.length>e.options.maxHighlightLength?sa(e.doc.mode,r):r);t.stateAfter=r,t.styles=i.styles,i.classes?t.styleClasses=i.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.frontier&&e.doc.frontier++}return t.styles}function Hr(e,t,n,r){var i=e.doc.mode,o=new ma(t,e.options.tabSize);for(o.start=o.pos=r||0,""==t&&Er(i,n);!o.eol();)Or(i,o,n),o.start=o.pos}function Wr(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?ka:wa;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function Br(e,t){var n=ji("span",null,null,wo?"padding-right: .1px":null),r={pre:ji("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,splitSpaces:(xo||wo)&&e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o,a=i?t.rest[i-1]:t.line;r.pos=0,r.addToken=Fr,Ji(e.display.measure)&&(o=ii(a))&&(r.addToken=jr(r.addToken,o)),r.map=[];var l=t!=e.display.externalMeasured&&ti(a);qr(a,r,Dr(e,a,l)),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=$i(a.styleClasses.bgClass,r.bgClass||"")),a.styleClasses.textClass&&(r.textClass=$i(a.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Zi(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(wo){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return Pa(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=$i(r.pre.className,r.textClass||"")),r}function _r(e){var t=ji("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Fr(e,t,n,r,i,o,a){if(t){var l=e.splitSpaces?t.replace(/ {3,}/g,zr):t,s=e.cm.state.specialChars,c=!1;if(s.test(t))for(var u=document.createDocumentFragment(),f=0;;){s.lastIndex=f;var h=s.exec(t),d=h?h.index-f:t.length-f;if(d){var p=document.createTextNode(l.slice(f,f+d));xo&&9>bo?u.appendChild(ji("span",[p])):u.appendChild(p),e.map.push(e.pos,e.pos+d,p),e.col+=d,e.pos+=d}if(!h)break;if(f+=d+1,"	"==h[0]){var m=e.cm.options.tabSize,g=m-e.col%m,p=u.appendChild(ji("span",Oi(g),"cm-tab"));p.setAttribute("role","presentation"),p.setAttribute("cm-text","	"),e.col+=g}else if("\r"==h[0]||"\n"==h[0]){var p=u.appendChild(ji("span","\r"==h[0]?"␍":"␤","cm-invalidchar"));p.setAttribute("cm-text",h[0]),e.col+=1}else{var p=e.cm.options.specialCharPlaceholder(h[0]);p.setAttribute("cm-text",h[0]),xo&&9>bo?u.appendChild(ji("span",[p])):u.appendChild(p),e.col+=1}e.map.push(e.pos,e.pos+1,p),e.pos++}else{e.col+=t.length;var u=document.createTextNode(l);e.map.push(e.pos,e.pos+t.length,u),xo&&9>bo&&(c=!0),e.pos+=t.length}if(n||r||i||c||a){var v=n||"";r&&(v+=r),i&&(v+=i);var y=ji("span",[u],v,a);return o&&(y.title=o),e.content.appendChild(y)}e.content.appendChild(u)}}function zr(e){for(var t=" ",n=0;n<e.length-2;++n)t+=n%2?" ":" ";return t+=" "}function jr(e,t){return function(n,r,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=n.pos,u=c+r.length;;){for(var f=0;f<t.length;f++){var h=t[f];if(h.to>c&&h.from<=c)break}if(h.to>=u)return e(n,r,i,o,a,l,s);e(n,r.slice(0,h.to-c),i,o,null,l,s),o=null,r=r.slice(h.to-c),c=h.to}}}function Ur(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t}function qr(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,l,s,c,u,f,h,d=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=c=u=f=l="",h=null,v=1/0;for(var y,x=[],b=0;b<r.length;++b){var w=r[b],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?x.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(s+=" "+k.className),k.css&&(l=(l?l+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(y||(y=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!h||dr(h.marker,k)<0)&&(h=w)):w.from>p&&v>w.from&&(v=w.from)}if(y)for(var b=0;b<y.length;b+=2)y[b+1]==v&&(c+=" "+y[b]);if(!h||h.from==p)for(var b=0;b<x.length;++b)Ur(t,0,x[b]);if(h&&(h.from||0)==p){if(Ur(t,(null==h.to?d+1:h.to)-p,h.marker,null==h.from),null==h.to)return;h.to==p&&(h=!1)}}if(p>=d)break;for(var S=Math.min(d,v);;){if(g){var C=p+g.length;if(!h){var L=C>S?g.slice(0,S-p):g;t.addToken(t,L,a?a+s:s,u,p+L.length==v?c:"",f,l)}if(C>=S){g=g.slice(S-p),p=S;break}p=C,u=""}g=i.slice(o,o=n[m++]),a=Wr(n[m++],t.cm.options)}}else for(var m=1;m<n.length;m+=2)t.addToken(t,i.slice(o,o=n[m]),Wr(n[m+1],t.cm.options))}function Gr(e,t){return 0==t.from.ch&&0==t.to.ch&&""==Ii(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Yr(e,t,n,r){function i(e){return n?n[e]:null}function o(e,n,i){Mr(e,n,i,r),Ci(e,"change",e,t)}function a(e,t){for(var n=e,o=[];t>n;++n)o.push(new ba(c[n],i(n),r));return o}var l=t.from,s=t.to,c=t.text,u=Zr(e,l.line),f=Zr(e,s.line),h=Ii(c),d=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(Gr(e,t)){var m=a(0,c.length-1);o(f,f.text,d),p&&e.remove(l.line,p),m.length&&e.insert(l.line,m)}else if(u==f)if(1==c.length)o(u,u.text.slice(0,l.ch)+h+u.text.slice(s.ch),d);else{var m=a(1,c.length-1);m.push(new ba(h+u.text.slice(s.ch),d,r)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,m)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+f.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(f,h+f.text.slice(s.ch),d);var m=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,m)}Ci(e,"change",e,t)}function $r(e){this.lines=e,this.parent=null;for(var t=0,n=0;t<e.length;++t)e[t].parent=this,n+=e[t].height;this.height=n}function Vr(e){this.children=e;for(var t=0,n=0,r=0;r<e.length;++r){var i=e[r];t+=i.chunkSize(),n+=i.height,i.parent=this}this.size=t,this.height=n,this.parent=null}function Kr(e,t,n){function r(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;n&&!s||(t(l.doc,s),r(l.doc,e,s))}}}r(e,null,!0)}function Xr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,a(e),n(e),e.options.lineWrapping||h(e),e.options.mode=t.modeOption,Dt(e)}function Zr(e,t){if(t-=e.first,0>t||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(o>t){n=i;break}t-=o}return n.lines[t]}function Jr(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function Qr(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function ei(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function ti(e){if(null==e.parent)return null;for(var t=e.parent,n=Pi(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function ni(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(o>t){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var r=0;r<e.lines.length;++r){var a=e.lines[r],l=a.height;if(l>t)break;t-=l}return n+r}function ri(e){e=yr(e);for(var t=0,n=e.parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;n=o,o=n.parent)for(var r=0;r<o.children.length;++r){var a=o.children[r];if(a==n)break;t+=a.height}return t}function ii(e){var t=e.order;return null==t&&(t=e.order=ll(e.text)),t}function oi(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function ai(e,t){var n={from:$(t.from),to:Qo(t),text:Jr(e,t.from,t.to)};return di(e,n,t.from.line,t.to.line+1),Kr(e,function(e){di(e,n,t.from.line,t.to.line+1)},!0),n}function li(e){for(;e.length;){var t=Ii(e);if(!t.ranges)break;e.pop()}}function si(e,t){return t?(li(e.done),Ii(e.done)):e.done.length&&!Ii(e.done).ranges?Ii(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),Ii(e.done)):void 0}function ci(e,t,n,r){var i=e.history;i.undone.length=0;var o,a=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>a-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=si(i,i.lastOp==r))){var l=Ii(o.changes);0==_o(t.from,t.to)&&0==_o(t.from,l.to)?l.to=Qo(t):o.changes.push(ai(e,t))}else{var s=Ii(i.done);for(s&&s.ranges||hi(e.sel,i.done),o={changes:[ai(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,l||Pa(e,"historyAdded")}function ui(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function fi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||ui(e,o,Ii(i.done),t))?i.done[i.done.length-1]=t:hi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&r.clearRedo!==!1&&li(i.undone)}function hi(e,t){var n=Ii(t);n&&n.ranges&&n.equals(e)||t.push(e)}function di(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function pi(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function mi(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=0,i=[];r<t.text.length;++r)i.push(pi(n[r]));return i}function gi(e,t,n){for(var r=0,i=[];r<e.length;++r){var o=e[r];if(o.ranges)i.push(n?ue.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];i.push({changes:l});for(var s=0;s<a.length;++s){var c,u=a[s];if(l.push({from:u.from,to:u.to,text:u.text}),t)for(var f in u)(c=f.match(/^spans_(\d+)$/))&&Pi(t,Number(c[1]))>-1&&(Ii(l)[f]=u[f],delete u[f])}}}return i}function vi(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function yi(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var l=0;l<o.ranges.length;l++)vi(o.ranges[l].anchor,t,n,r),vi(o.ranges[l].head,t,n,r)}else{for(var l=0;l<o.changes.length;++l){var s=o.changes[l];if(n<s.from.line)s.from=Bo(s.from.line+r,s.from.ch),s.to=Bo(s.to.line+r,s.to.ch);else if(t<=s.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function xi(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;yi(e.done,n,r,i),yi(e.undone,n,r,i)}function bi(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function wi(e){return e.target||e.srcElement}function ki(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Eo&&e.ctrlKey&&1==t&&(t=3),t}function Si(e,t,n){var r=e._handlers&&e._handlers[t];return n?r&&r.length>0?r.slice():Oa:r||Oa}function Ci(e,t){function n(e){return function(){e.apply(null,o)}}var r=Si(e,t,!1);if(r.length){var i,o=Array.prototype.slice.call(arguments,2);Go?i=Go.delayedCallbacks:Ra?i=Ra:(i=Ra=[],setTimeout(Li,0));for(var a=0;a<r.length;++a)i.push(n(r[a]))}}function Li(){var e=Ra;Ra=null;for(var t=0;t<e.length;++t)e[t]()}function Ti(e,t,n){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Pa(e,n||t.type,e,t),bi(t)||t.codemirrorIgnore}function Mi(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)-1==Pi(n,t[r])&&n.push(t[r])}function Ni(e,t){return Si(e,t).length>0}function Ai(e){e.prototype.on=function(e,t){Ea(this,e,t)},e.prototype.off=function(e,t){Ia(this,e,t)}}function Ei(){this.id=null}function Oi(e){for(;ja.length<=e;)ja.push(Ii(ja)+" ");return ja[e]}function Ii(e){return e[e.length-1]}function Pi(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}function Ri(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function Di(){}function Hi(e,t){var n;return Object.create?n=Object.create(e):(Di.prototype=e,n=new Di),t&&Wi(t,n),n}function Wi(e,t,n){t||(t={});for(var r in e)!e.hasOwnProperty(r)||n===!1&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function Bi(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function _i(e,t){return t?t.source.indexOf("\\w")>-1&&Ya(e)?!0:t.test(e):Ya(e)}function Fi(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function zi(e){return e.charCodeAt(0)>=768&&$a.test(e)}function ji(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function Ui(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function qi(e,t){return Ui(e).appendChild(t)}function Gi(){for(var e=document.activeElement;e&&e.root&&e.root.activeElement;)e=e.root.activeElement;return e}function Yi(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function $i(e,t){for(var n=e.split(" "),r=0;r<n.length;r++)n[r]&&!Yi(n[r]).test(t)&&(t+=" "+n[r]);return t}function Vi(e){if(document.body.getElementsByClassName)for(var t=document.body.getElementsByClassName("CodeMirror"),n=0;n<t.length;n++){var r=t[n].CodeMirror;r&&e(r)}}function Ki(){Qa||(Xi(),Qa=!0)}function Xi(){var e;Ea(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Vi(qt)},100))}),Ea(window,"blur",function(){Vi(yn)})}function Zi(e){if(null==Ka){var t=ji("span","​");qi(e,ji("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Ka=t.offsetWidth<=1&&t.offsetHeight>2&&!(xo&&8>bo))}var n=Ka?ji("span","​"):ji("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Ji(e){if(null!=Xa)return Xa;var t=qi(e,document.createTextNode("AخA")),n=qa(t,0,1).getBoundingClientRect();if(!n||n.left==n.right)return!1;var r=qa(t,1,2).getBoundingClientRect();return Xa=r.right-n.right<3}function Qi(e){if(null!=il)return il;var t=qi(e,ji("span","x")),n=t.getBoundingClientRect(),r=qa(t,0,1).getBoundingClientRect();return il=Math.abs(n.left-r.left)>1}function eo(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<n&&a.to>t||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr"),i=!0)}i||r(t,n,"ltr")}function to(e){return e.level%2?e.to:e.from}function no(e){return e.level%2?e.from:e.to}function ro(e){var t=ii(e);return t?to(t[0]):0}function io(e){var t=ii(e);return t?no(Ii(t)):e.text.length}function oo(e,t){var n=Zr(e.doc,t),r=yr(n);r!=n&&(t=ti(r));var i=ii(r),o=i?i[0].level%2?io(r):ro(r):0;return Bo(t,o)}function ao(e,t){for(var n,r=Zr(e.doc,t);n=gr(r);)r=n.find(1,!0).line,t=null;var i=ii(r),o=i?i[0].level%2?ro(r):io(r):r.text.length;return Bo(null==t?ti(r):t,o)}function lo(e,t){var n=oo(e,t.line),r=Zr(e.doc,n.line),i=ii(r);if(!i||0==i[0].level){var o=Math.max(0,r.text.search(/\S/)),a=t.line==n.line&&t.ch<=o&&t.ch;return Bo(n.line,a?0:o)}return n}function so(e,t,n){var r=e[0].level;return t==r?!0:n==r?!1:n>t}function co(e,t){al=null;for(var n,r=0;r<e.length;++r){var i=e[r];if(i.from<t&&i.to>t)return r;if(i.from==t||i.to==t){if(null!=n)return so(e,i.level,e[n].level)?(i.from!=i.to&&(al=n),r):(i.from!=i.to&&(al=r),n);n=r}}return n}function uo(e,t,n,r){if(!r)return t+n;do t+=n;while(t>0&&zi(e.text.charAt(t)));return t}function fo(e,t,n,r){var i=ii(e);if(!i)return ho(e,t,n,r);for(var o=co(i,t),a=i[o],l=uo(e,t,a.level%2?-n:n,r);;){if(l>a.from&&l<a.to)return l;if(l==a.from||l==a.to)return co(i,l)==o?l:(a=i[o+=n],n>0==a.level%2?a.to:a.from);if(a=i[o+=n],!a)return null;l=n>0==a.level%2?uo(e,a.to,-1,r):uo(e,a.from,1,r)}}function ho(e,t,n,r){var i=t+n;if(r)for(;i>0&&zi(e.text.charAt(i));)i+=n;return 0>i||i>e.text.length?null:i}var po=navigator.userAgent,mo=navigator.platform,go=/gecko\/\d/i.test(po),vo=/MSIE \d/.test(po),yo=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(po),xo=vo||yo,bo=xo&&(vo?document.documentMode||6:yo[1]),wo=/WebKit\//.test(po),ko=wo&&/Qt\/\d+\.\d+/.test(po),So=/Chrome\//.test(po),Co=/Opera\//.test(po),Lo=/Apple Computer/.test(navigator.vendor),To=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(po),Mo=/PhantomJS/.test(po),No=/AppleWebKit/.test(po)&&/Mobile\/\w+/.test(po),Ao=No||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(po),Eo=No||/Mac/.test(mo),Oo=/\bCrOS\b/.test(po),Io=/win/i.test(mo),Po=Co&&po.match(/Version\/(\d*\.\d*)/);Po&&(Po=Number(Po[1])),Po&&Po>=15&&(Co=!1,wo=!0);var Ro=Eo&&(ko||Co&&(null==Po||12.11>Po)),Do=go||xo&&bo>=9,Ho=!1,Wo=!1;m.prototype=Wi({update:function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+o+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},setScrollLeft:function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz)},setScrollTop:function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert)},zeroWidthHack:function(){var e=Eo&&!To?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Ei,this.disableVert=new Ei},enableZeroWidthBar:function(e,t){function n(){var r=e.getBoundingClientRect(),i=document.elementFromPoint(r.left+1,r.bottom-1);i!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},clear:function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)}},m.prototype),g.prototype=Wi({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},g.prototype),e.scrollbarModel={"native":m,"null":g},L.prototype.signal=function(e,t){Ni(e,t)&&this.events.push(arguments)},L.prototype.finish=function(){for(var e=0;e<this.events.length;e++)Pa.apply(null,this.events[e])};var Bo=e.Pos=function(e,t){return this instanceof Bo?(this.line=e,void(this.ch=t)):new Bo(e,t)},_o=e.cmpPos=function(e,t){return e.line-t.line||e.ch-t.ch},Fo=null;ne.prototype=Wi({init:function(e){function t(e){if(!Ti(r,e)){if(r.somethingSelected())Fo={lineWise:!1,text:r.getSelections()},n.inaccurateSelection&&(n.prevInput="",n.inaccurateSelection=!1,o.value=Fo.text.join("\n"),Ua(o));else{if(!r.options.lineWiseCopyCut)return;var t=ee(r);Fo={lineWise:!0,text:t.text},"cut"==e.type?r.setSelections(t.ranges,null,Wa):(n.prevInput="",o.value=t.text.join("\n"),Ua(o))}"cut"==e.type&&(r.state.cutIncoming=!0)}}var n=this,r=this.cm,i=this.wrapper=re(),o=this.textarea=i.firstChild;e.wrapper.insertBefore(i,e.wrapper.firstChild),No&&(o.style.width="0px"),Ea(o,"input",function(){xo&&bo>=9&&n.hasSelection&&(n.hasSelection=null),n.poll()}),Ea(o,"paste",function(e){Ti(r,e)||J(e,r)||(r.state.pasteIncoming=!0,n.fastPoll())}),Ea(o,"cut",t),Ea(o,"copy",t),Ea(e.scroller,"paste",function(t){Gt(e,t)||Ti(r,t)||(r.state.pasteIncoming=!0,n.focus())}),Ea(e.lineSpace,"selectstart",function(t){Gt(e,t)||Ma(t)}),Ea(o,"compositionstart",function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}}),Ea(o,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},prepareSelection:function(){var e=this.cm,t=e.display,n=e.doc,r=De(e);if(e.options.moveInputWithCursor){var i=dt(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},showSelection:function(e){var t=this.cm,n=t.display;qi(n.cursorDiv,e.cursors),qi(n.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},reset:function(e){if(!this.contextMenuPending){var t,n,r=this.cm,i=r.doc;if(r.somethingSelected()){this.prevInput="";var o=i.sel.primary();t=rl&&(o.to().line-o.from().line>100||(n=r.getSelection()).length>1e3);var a=t?"-":n||r.getSelection();this.textarea.value=a,r.state.focused&&Ua(this.textarea),xo&&bo>=9&&(this.hasSelection=a)}else e||(this.prevInput=this.textarea.value="",xo&&bo>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},getField:function(){return this.textarea},supportsTouch:function(){return!1},focus:function(){if("nocursor"!=this.cm.options.readOnly&&(!Ao||Gi()!=this.textarea))try{this.textarea.focus()}catch(e){}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0;
share/assets/misc/simplemde/simplemde.min.js:11:},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var e=this;e.pollingFast||e.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},fastPoll:function(){function e(){var r=n.poll();r||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},poll:function(){var e=this.cm,t=this.textarea,n=this.prevInput;if(this.contextMenuPending||!e.state.focused||nl(t)&&!n&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var r=t.value;if(r==n&&!e.somethingSelected())return!1;if(xo&&bo>=9&&this.hasSelection===r||Eo&&/[\uf700-\uf7ff]/.test(r))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var i=r.charCodeAt(0);if(8203!=i||n||(n="​"),8666==i)return this.reset(),this.cm.execCommand("undo")}for(var o=0,a=Math.min(n.length,r.length);a>o&&n.charCodeAt(o)==r.charCodeAt(o);)++o;var l=this;return At(e,function(){Z(e,r.slice(o),n.length-o,null,l.composing?"*compose":null),r.length>1e3||r.indexOf("\n")>-1?t.value=l.prevInput="":l.prevInput=r,l.composing&&(l.composing.range.clear(),l.composing.range=e.markText(l.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},ensurePolled:function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},onKeyPress:function(){xo&&bo>=9&&(this.hasSelection=null),this.fastPoll()},onContextMenu:function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,r.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function n(){if(r.contextMenuPending=!1,r.wrapper.style.cssText=f,a.style.cssText=u,xo&&9>bo&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!xo||xo&&9>bo)&&t();var e=0,n=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==r.prevInput?Et(i,ua.selectAll)(i):e++<10?o.detectingSelectAll=setTimeout(n,500):o.input.reset()};o.detectingSelectAll=setTimeout(n,200)}}var r=this,i=r.cm,o=i.display,a=r.textarea,l=Yt(i,e),s=o.scroller.scrollTop;if(l&&!Co){var c=i.options.resetSelectionOnContextMenu;c&&-1==i.doc.sel.contains(l)&&Et(i,Te)(i.doc,de(l),Wa);var u=a.style.cssText,f=r.wrapper.style.cssText;r.wrapper.style.cssText="position: absolute";var h=r.wrapper.getBoundingClientRect();if(a.style.cssText="position: absolute; width: 30px; height: 30px; top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px; z-index: 1000; background: "+(xo?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",wo)var d=window.scrollY;if(o.input.focus(),wo&&window.scrollTo(null,d),o.input.reset(),i.somethingSelected()||(a.value=r.prevInput=" "),r.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),xo&&bo>=9&&t(),Do){Aa(e);var p=function(){Ia(window,"mouseup",p),setTimeout(n,20)};Ea(window,"mouseup",p)}else setTimeout(n,50)}},readOnlyChanged:function(e){e||this.reset()},setUneditable:Di,needsContentAttribute:!1},ne.prototype),ie.prototype=Wi({init:function(e){function t(e){if(!Ti(r,e)){if(r.somethingSelected())Fo={lineWise:!1,text:r.getSelections()},"cut"==e.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var t=ee(r);Fo={lineWise:!0,text:t.text},"cut"==e.type&&r.operation(function(){r.setSelections(t.ranges,0,Wa),r.replaceSelection("",null,"cut")})}if(e.clipboardData&&!No)e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/plain",Fo.text.join("\n"));else{var n=re(),i=n.firstChild;r.display.lineSpace.insertBefore(n,r.display.lineSpace.firstChild),i.value=Fo.text.join("\n");var o=document.activeElement;Ua(i),setTimeout(function(){r.display.lineSpace.removeChild(n),o.focus()},50)}}}var n=this,r=n.cm,i=n.div=e.lineDiv;te(i),Ea(i,"paste",function(e){Ti(r,e)||J(e,r)}),Ea(i,"compositionstart",function(e){var t=e.data;if(n.composing={sel:r.doc.sel,data:t,startData:t},t){var i=r.doc.sel.primary(),o=r.getLine(i.head.line),a=o.indexOf(t,Math.max(0,i.head.ch-t.length));a>-1&&a<=i.head.ch&&(n.composing.sel=de(Bo(i.head.line,a),Bo(i.head.line,a+t.length)))}}),Ea(i,"compositionupdate",function(e){n.composing.data=e.data}),Ea(i,"compositionend",function(e){var t=n.composing;t&&(e.data==t.startData||/\u200b/.test(e.data)||(t.data=e.data),setTimeout(function(){t.handled||n.applyComposition(t),n.composing==t&&(n.composing=null)},50))}),Ea(i,"touchstart",function(){n.forceCompositionEnd()}),Ea(i,"input",function(){n.composing||!r.isReadOnly()&&n.pollContent()||At(n.cm,function(){Dt(r)})}),Ea(i,"copy",t),Ea(i,"cut",t)},prepareSelection:function(){var e=De(this.cm,!1);return e.focus=this.cm.state.focused,e},showSelection:function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},showPrimarySelection:function(){var e=window.getSelection(),t=this.cm.doc.sel.primary(),n=le(this.cm,e.anchorNode,e.anchorOffset),r=le(this.cm,e.focusNode,e.focusOffset);if(!n||n.bad||!r||r.bad||0!=_o(K(n,r),t.from())||0!=_o(V(n,r),t.to())){var i=oe(this.cm,t.from()),o=oe(this.cm,t.to());if(i||o){var a=this.cm.display.view,l=e.rangeCount&&e.getRangeAt(0);if(i){if(!o){var s=a[a.length-1].measure,c=s.maps?s.maps[s.maps.length-1]:s.map;o={node:c[c.length-1],offset:c[c.length-2]-c[c.length-3]}}}else i={node:a[0].measure.map[2],offset:0};try{var u=qa(i.node,i.offset,o.offset,o.node)}catch(f){}u&&(!go&&this.cm.state.focused?(e.collapse(i.node,i.offset),u.collapsed||e.addRange(u)):(e.removeAllRanges(),e.addRange(u)),l&&null==e.anchorNode?e.addRange(l):go&&this.startGracePeriod()),this.rememberSelection()}}},startGracePeriod:function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){e.cm.curOp.selectionChanged=!0})},20)},showMultipleSelections:function(e){qi(this.cm.display.cursorDiv,e.cursors),qi(this.cm.display.selectionDiv,e.selection)},rememberSelection:function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},selectionInEditor:function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return Va(this.div,t)},focus:function(){"nocursor"!=this.cm.options.readOnly&&this.div.focus()},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return!0},receivedFocus:function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():At(this.cm,function(){t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},selectionChanged:function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},pollSelection:function(){if(!this.composing&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;this.rememberSelection();var n=le(t,e.anchorNode,e.anchorOffset),r=le(t,e.focusNode,e.focusOffset);n&&r&&At(t,function(){Te(t.doc,de(n,r),Wa),(n.bad||r.bad)&&(t.curOp.selectionChanged=!0)})}},pollContent:function(){var e=this.cm,t=e.display,n=e.doc.sel.primary(),r=n.from(),i=n.to();if(r.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o;if(r.line==t.viewFrom||0==(o=Bt(e,r.line)))var a=ti(t.view[0].line),l=t.view[0].node;else var a=ti(t.view[o].line),l=t.view[o-1].node.nextSibling;var s=Bt(e,i.line);if(s==t.view.length-1)var c=t.viewTo-1,u=t.lineDiv.lastChild;else var c=ti(t.view[s+1].line)-1,u=t.view[s+1].node.previousSibling;for(var f=e.doc.splitLines(ce(e,l,u,a,c)),h=Jr(e.doc,Bo(a,0),Bo(c,Zr(e.doc,c).text.length));f.length>1&&h.length>1;)if(Ii(f)==Ii(h))f.pop(),h.pop(),c--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),a++}for(var d=0,p=0,m=f[0],g=h[0],v=Math.min(m.length,g.length);v>d&&m.charCodeAt(d)==g.charCodeAt(d);)++d;for(var y=Ii(f),x=Ii(h),b=Math.min(y.length-(1==f.length?d:0),x.length-(1==h.length?d:0));b>p&&y.charCodeAt(y.length-p-1)==x.charCodeAt(x.length-p-1);)++p;f[f.length-1]=y.slice(0,y.length-p),f[0]=f[0].slice(d);var w=Bo(a,d),k=Bo(c,h.length?Ii(h).length-p:0);return f.length>1||f[0]||_o(w,k)?(In(e.doc,f,w,k,"+input"),!0):void 0},ensurePolled:function(){this.forceCompositionEnd()},reset:function(){this.forceCompositionEnd()},forceCompositionEnd:function(){this.composing&&!this.composing.handled&&(this.applyComposition(this.composing),this.composing.handled=!0,this.div.blur(),this.div.focus())},applyComposition:function(e){this.cm.isReadOnly()?Et(this.cm,Dt)(this.cm):e.data&&e.data!=e.startData&&Et(this.cm,Z)(this.cm,e.data,0,e.sel)},setUneditable:function(e){e.contentEditable="false"},onKeyPress:function(e){e.preventDefault(),this.cm.isReadOnly()||Et(this.cm,Z)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0)},readOnlyChanged:function(e){this.div.contentEditable=String("nocursor"!=e)},onContextMenu:Di,resetPosition:Di,needsContentAttribute:!0},ie.prototype),e.inputStyles={textarea:ne,contenteditable:ie},ue.prototype={primary:function(){return this.ranges[this.primIndex]},equals:function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var n=this.ranges[t],r=e.ranges[t];if(0!=_o(n.anchor,r.anchor)||0!=_o(n.head,r.head))return!1}return!0},deepCopy:function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new fe($(this.ranges[t].anchor),$(this.ranges[t].head));return new ue(e,this.primIndex)},somethingSelected:function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},contains:function(e,t){t||(t=e);for(var n=0;n<this.ranges.length;n++){var r=this.ranges[n];if(_o(t,r.from())>=0&&_o(e,r.to())<=0)return n}return-1}},fe.prototype={from:function(){return K(this.anchor,this.head)},to:function(){return V(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var zo,jo,Uo,qo={left:0,right:0,top:0,bottom:0},Go=null,Yo=0,$o=0,Vo=0,Ko=null;xo?Ko=-.53:go?Ko=15:So?Ko=-.7:Lo&&(Ko=-1/3);var Xo=function(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}};e.wheelEventPixels=function(e){var t=Xo(e);return t.x*=Ko,t.y*=Ko,t};var Zo=new Ei,Jo=null,Qo=e.changeEnd=function(e){return e.text?Bo(e.from.line+e.text.length-1,Ii(e.text).length+(1==e.text.length?e.from.ch:0)):e.to};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var n=this.options,r=n[e];n[e]==t&&"mode"!=e||(n[e]=t,ta.hasOwnProperty(e)&&Et(this,ta[e])(this,t,r))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"]($n(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:Ot(function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:r,modeSpec:t,opaque:n&&n.opaque}),this.state.modeGen++,Dt(this)}),removeOverlay:Ot(function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||"string"==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,void Dt(this)}}),indentLine:Ot(function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),ve(this.doc,e)&&Fn(this,e,t,n)}),indentSelection:Ot(function(e){for(var t=this.doc.sel.ranges,n=-1,r=0;r<t.length;r++){var i=t[r];if(i.empty())i.head.line>n&&(Fn(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Bn(this));else{var o=i.from(),a=i.to(),l=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var s=l;n>s;++s)Fn(this,s,e);var c=this.doc.sel.ranges;0==o.ch&&t.length==c.length&&c[r].from().ch>0&&ke(this.doc,r,new fe(o,c[r].to()),Wa)}}}),getTokenAt:function(e,t){return Ir(this,e,t)},getLineTokens:function(e,t){return Ir(this,Bo(e),t,!0)},getTokenTypeAt:function(e){e=me(this.doc,e);var t,n=Dr(this,Zr(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]<o)){t=n[2*a+2];break}r=a+1}}var l=t?t.indexOf("cm-overlay "):-1;return 0>l?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=[];if(!la.hasOwnProperty(t))return n;var r=la[t],i=this.getModeAt(e);if("string"==typeof i[t])r[i[t]]&&n.push(r[i[t]]);else if(i[t])for(var o=0;o<i[t].length;o++){var a=r[i[t][o]];a&&n.push(a)}else i.helperType&&r[i.helperType]?n.push(r[i.helperType]):r[i.name]&&n.push(r[i.name]);for(var o=0;o<r._global.length;o++){var l=r._global[o];l.pred(i,this)&&-1==Pi(n,l.val)&&n.push(l.val)}return n},getStateAfter:function(e,t){var n=this.doc;return e=pe(n,null==e?n.first+n.size-1:e),je(this,e+1,t)},cursorCoords:function(e,t){var n,r=this.doc.sel.primary();return n=null==e?r.head:"object"==typeof e?me(this.doc,e):e?r.from():r.to(),dt(this,n,t||"page")},charCoords:function(e,t){return ht(this,me(this.doc,e),t||"page")},coordsChar:function(e,t){return e=ft(this,e,t||"page"),gt(this,e.left,e.top)},lineAtHeight:function(e,t){return e=ft(this,{top:e,left:0},t||"page").top,ni(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t){var n,r=!1;if("number"==typeof e){var i=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>i&&(e=i,r=!0),n=Zr(this.doc,e)}else n=e;return ut(this,n,{top:0,left:0},t||"page").top+(r?this.doc.height-ri(n):0)},defaultTextHeight:function(){return yt(this.display)},defaultCharWidth:function(){return xt(this.display)},setGutterMarker:Ot(function(e,t,n){return zn(this.doc,e,"gutter",function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&Fi(r)&&(e.gutterMarkers=null),!0})}),clearGutter:Ot(function(e){var t=this,n=t.doc,r=n.first;n.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&(n.gutterMarkers[e]=null,Ht(t,r,"gutter"),Fi(n.gutterMarkers)&&(n.gutterMarkers=null)),++r})}),lineInfo:function(e){if("number"==typeof e){if(!ve(this.doc,e))return null;var t=e;if(e=Zr(this.doc,e),!e)return null}else{var t=ti(e);if(null==t)return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=dt(this,me(this.doc,e));var a=e.bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),n&&Dn(this,l,a,l+t.offsetWidth,a+t.offsetHeight)},triggerOnKeyDown:Ot(hn),triggerOnKeyPress:Ot(mn),triggerOnKeyUp:pn,execCommand:function(e){return ua.hasOwnProperty(e)?ua[e].call(null,this):void 0},triggerElectric:Ot(function(e){Q(this,e)}),findPosH:function(e,t,n,r){var i=1;0>t&&(i=-1,t=-t);for(var o=0,a=me(this.doc,e);t>o&&(a=Un(this.doc,a,i,n,r),!a.hitSide);++o);return a},moveH:Ot(function(e,t){var n=this;n.extendSelectionsBy(function(r){return n.display.shift||n.doc.extend||r.empty()?Un(n.doc,r.head,e,t,n.options.rtlMoveVisually):0>e?r.from():r.to()},_a)}),deleteH:Ot(function(e,t){var n=this.doc.sel,r=this.doc;n.somethingSelected()?r.replaceSelection("",null,"+delete"):jn(this,function(n){var i=Un(r,n.head,e,t,!1);return 0>e?{from:i,to:n.head}:{from:n.head,to:i}})}),findPosV:function(e,t,n,r){var i=1,o=r;0>t&&(i=-1,t=-t);for(var a=0,l=me(this.doc,e);t>a;++a){var s=dt(this,l,"div");if(null==o?o=s.left:s.left=o,l=qn(this,s,i,n),l.hitSide)break}return l},moveV:Ot(function(e,t){var n=this,r=this.doc,i=[],o=!n.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy(function(a){if(o)return 0>e?a.from():a.to();var l=dt(n,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=qn(n,l,e,t);return"page"==t&&a==r.sel.primary()&&Wn(n,null,ht(n,s,"div").top-l.top),s},_a),i.length)for(var a=0;a<r.sel.ranges.length;a++)r.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,n=Zr(t,e.line).text,r=e.ch,i=e.ch;if(n){var o=this.getHelper(e,"wordChars");(e.xRel<0||i==n.length)&&r?--r:++i;for(var a=n.charAt(r),l=_i(a,o)?function(e){return _i(e,o)}:/\s/.test(a)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!_i(e)};r>0&&l(n.charAt(r-1));)--r;for(;i<n.length&&l(n.charAt(i));)++i}return new fe(Bo(e.line,r),Bo(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?Ja(this.display.cursorDiv,"CodeMirror-overwrite"):Za(this.display.cursorDiv,"CodeMirror-overwrite"),Pa(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==Gi()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:Ot(function(e,t){null==e&&null==t||_n(this),null!=e&&(this.curOp.scrollLeft=e),null!=t&&(this.curOp.scrollTop=t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-Ye(this)-this.display.barHeight,width:e.scrollWidth-Ye(this)-this.display.barWidth,clientHeight:Ve(this),clientWidth:$e(this)}},scrollIntoView:Ot(function(e,t){if(null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:Bo(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line)_n(this),this.curOp.scrollToPos=e;else{var n=Hn(this,Math.min(e.from.left,e.to.left),Math.min(e.from.top,e.to.top)-e.margin,Math.max(e.from.right,e.to.right),Math.max(e.from.bottom,e.to.bottom)+e.margin);this.scrollTo(n.scrollLeft,n.scrollTop)}}),setSize:Ot(function(e,t){function n(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e}var r=this;null!=e&&(r.display.wrapper.style.width=n(e)),null!=t&&(r.display.wrapper.style.height=n(t)),r.options.lineWrapping&&at(this);var i=r.display.viewFrom;r.doc.iter(i,r.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){Ht(r,i,"widget");break}++i}),r.curOp.forceUpdate=!0,Pa(r,"refresh",this)}),operation:function(e){return At(this,e)},refresh:Ot(function(){var e=this.display.cachedTextHeight;Dt(this),this.curOp.forceUpdate=!0,lt(this),this.scrollTo(this.doc.scrollLeft,this.doc.scrollTop),u(this),(null==e||Math.abs(e-yt(this.display))>.5)&&a(this),Pa(this,"refresh",this)}),swapDoc:Ot(function(e){var t=this.doc;return t.cm=null,Xr(this,e),lt(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Ci(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Ai(e);var ea=e.defaults={},ta=e.optionHandlers={},na=e.Init={toString:function(){return"CodeMirror.Init"}};Gn("value","",function(e,t){e.setValue(t)},!0),Gn("mode",null,function(e,t){e.doc.modeOption=t,n(e)},!0),Gn("indentUnit",2,n,!0),Gn("indentWithTabs",!1),Gn("smartIndent",!0),Gn("tabSize",4,function(e){r(e),lt(e),Dt(e)},!0),Gn("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(Bo(r,o))}r++});for(var i=n.length-1;i>=0;i--)In(e.doc,t,n[i],Bo(n[i].line,n[i].ch+t.length))}}),Gn("specialChars",/[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(t,n,r){t.state.specialChars=new RegExp(n.source+(n.test("	")?"":"|	"),"g"),r!=e.Init&&t.refresh()}),Gn("specialCharPlaceholder",_r,function(e){e.refresh()},!0),Gn("electricChars",!0),Gn("inputStyle",Ao?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),Gn("rtlMoveVisually",!Io),Gn("wholeLineUpdateBefore",!0),Gn("theme","default",function(e){l(e),s(e)},!0),Gn("keyMap","default",function(t,n,r){var i=$n(n),o=r!=e.Init&&$n(r);o&&o.detach&&o.detach(t,i),i.attach&&i.attach(t,o||null)}),Gn("extraKeys",null),Gn("lineWrapping",!1,i,!0),Gn("gutters",[],function(e){d(e.options),s(e)},!0),Gn("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?C(e.display)+"px":"0",e.refresh()},!0),Gn("coverGutterNextToScrollbar",!1,function(e){y(e)},!0),Gn("scrollbarStyle","native",function(e){v(e),y(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),Gn("lineNumbers",!1,function(e){d(e.options),s(e)},!0),Gn("firstLineNumber",1,s,!0),Gn("lineNumberFormatter",function(e){return e},s,!0),Gn("showCursorWhenSelecting",!1,Re,!0),Gn("resetSelectionOnContextMenu",!0),Gn("lineWiseCopyCut",!0),Gn("readOnly",!1,function(e,t){"nocursor"==t?(yn(e),e.display.input.blur(),e.display.disabled=!0):e.display.disabled=!1,e.display.input.readOnlyChanged(t)}),Gn("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),Gn("dragDrop",!0,Ut),Gn("allowDropFileTypes",null),Gn("cursorBlinkRate",530),Gn("cursorScrollMargin",0),Gn("cursorHeight",1,Re,!0),Gn("singleCursorHeightPerLine",!0,Re,!0),Gn("workTime",100),Gn("workDelay",100),Gn("flattenSpans",!0,r,!0),Gn("addModeClass",!1,r,!0),Gn("pollInterval",100),Gn("undoDepth",200,function(e,t){e.doc.history.undoDepth=t}),Gn("historyEventDelay",1250),Gn("viewportMargin",10,function(e){e.refresh()},!0),Gn("maxHighlightLength",1e4,r,!0),Gn("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),Gn("tabindex",null,function(e,t){e.display.input.getField().tabIndex=t||""}),Gn("autofocus",null);var ra=e.modes={},ia=e.mimeModes={};e.defineMode=function(t,n){e.defaults.mode||"null"==t||(e.defaults.mode=t),arguments.length>2&&(n.dependencies=Array.prototype.slice.call(arguments,2)),ra[t]=n},e.defineMIME=function(e,t){ia[e]=t},e.resolveMode=function(t){if("string"==typeof t&&ia.hasOwnProperty(t))t=ia[t];else if(t&&"string"==typeof t.name&&ia.hasOwnProperty(t.name)){var n=ia[t.name];"string"==typeof n&&(n={name:n}),t=Hi(n,t),t.name=n.name}else if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return e.resolveMode("application/xml");return"string"==typeof t?{name:t}:t||{name:"null"}},e.getMode=function(t,n){var n=e.resolveMode(n),r=ra[n.name];if(!r)return e.getMode(t,"text/plain");var i=r(t,n);if(oa.hasOwnProperty(n.name)){var o=oa[n.name];for(var a in o)o.hasOwnProperty(a)&&(i.hasOwnProperty(a)&&(i["_"+a]=i[a]),i[a]=o[a])}if(i.name=n.name,n.helperType&&(i.helperType=n.helperType),n.modeProps)for(var a in n.modeProps)i[a]=n.modeProps[a];return i},e.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),e.defineMIME("text/plain","null");var oa=e.modeExtensions={};e.extendMode=function(e,t){var n=oa.hasOwnProperty(e)?oa[e]:oa[e]={};Wi(t,n)},e.defineExtension=function(t,n){e.prototype[t]=n},e.defineDocExtension=function(e,t){Ca.prototype[e]=t},e.defineOption=Gn;var aa=[];e.defineInitHook=function(e){aa.push(e)};var la=e.helpers={};e.registerHelper=function(t,n,r){la.hasOwnProperty(t)||(la[t]=e[t]={_global:[]}),la[t][n]=r},e.registerGlobalHelper=function(t,n,r,i){e.registerHelper(t,n,i),la[t]._global.push({pred:r,val:i})};var sa=e.copyState=function(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n},ca=e.startState=function(e,t,n){return e.startState?e.startState(t,n):!0};e.innerMode=function(e,t){for(;e.innerMode;){var n=e.innerMode(t);if(!n||n.mode==e)break;t=n.state,e=n.mode}return n||{mode:e,state:t}};var ua=e.commands={selectAll:function(e){e.setSelection(Bo(e.firstLine(),0),Bo(e.lastLine()),Wa)},singleSelection:function(e){e.setSelection(e.getCursor("anchor"),e.getCursor("head"),Wa)},killLine:function(e){jn(e,function(t){if(t.empty()){var n=Zr(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line<e.lastLine()?{from:t.head,to:Bo(t.head.line+1,0)}:{from:t.head,to:Bo(t.head.line,n)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){jn(e,function(t){return{from:Bo(t.from().line,0),to:me(e.doc,Bo(t.to().line+1,0))}})},delLineLeft:function(e){jn(e,function(e){return{from:Bo(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){jn(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return{from:r,to:t.from()}})},delWrappedLineRight:function(e){jn(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div");return{from:t.from(),to:r}})},undo:function(e){e.undo()},redo:function(e){e.redo()},undoSelection:function(e){e.undoSelection()},redoSelection:function(e){e.redoSelection()},goDocStart:function(e){e.extendSelection(Bo(e.firstLine(),0))},goDocEnd:function(e){e.extendSelection(Bo(e.lastLine()))},goLineStart:function(e){e.extendSelectionsBy(function(t){return oo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){e.extendSelectionsBy(function(t){return lo(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){e.extendSelectionsBy(function(t){return ao(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){e.extendSelectionsBy(function(t){var n=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div")},_a)},goLineLeft:function(e){e.extendSelectionsBy(function(t){var n=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:n},"div")},_a)},goLineLeftSmart:function(e){e.extendSelectionsBy(function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return r.ch<e.getLine(r.line).search(/\S/)?lo(e,t.head):r},_a)},goLineUp:function(e){e.moveV(-1,"line")},goLineDown:function(e){e.moveV(1,"line")},goPageUp:function(e){e.moveV(-1,"page")},goPageDown:function(e){e.moveV(1,"page")},goCharLeft:function(e){e.moveH(-1,"char")},goCharRight:function(e){e.moveH(1,"char")},goColumnLeft:function(e){e.moveH(-1,"column")},goColumnRight:function(e){e.moveH(1,"column")},goWordLeft:function(e){e.moveH(-1,"word")},goGroupRight:function(e){e.moveH(1,"group")},goGroupLeft:function(e){e.moveH(-1,"group")},goWordRight:function(e){e.moveH(1,"word")},delCharBefore:function(e){e.deleteH(-1,"char")},delCharAfter:function(e){e.deleteH(1,"char")},delWordBefore:function(e){e.deleteH(-1,"word")},delWordAfter:function(e){e.deleteH(1,"word")},delGroupBefore:function(e){e.deleteH(-1,"group")},delGroupAfter:function(e){e.deleteH(1,"group")},indentAuto:function(e){e.indentSelection("smart")},indentMore:function(e){e.indentSelection("add")},indentLess:function(e){e.indentSelection("subtract")},insertTab:function(e){e.replaceSelection("	")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),a=Fa(e.getLine(o.line),o.ch,r);t.push(Oi(r-a%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){At(e,function(){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var i=t[r].head,o=Zr(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new Bo(i.line,i.ch-1)),i.ch>0)i=new Bo(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),Bo(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Zr(e.doc,i.line-1).text;a&&e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),Bo(i.line-1,a.length-1),Bo(i.line,1),"+transpose")}n.push(new fe(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){At(e,function(){for(var t=e.listSelections().length,n=0;t>n;n++){var r=e.listSelections()[n];e.replaceRange(e.doc.lineSeparator(),r.anchor,r.head,"+input"),e.indentLine(r.from().line+1,null,!0)}Bn(e)})},openLine:function(e){e.replaceSelection("\n","start")},toggleOverwrite:function(e){e.toggleOverwrite()}},fa=e.keyMap={};fa.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},fa.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},fa.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},fa.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},fa["default"]=Eo?fa.macDefault:fa.pcDefault,e.normalizeKeyMap=function(e){var t={};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(/^(name|fallthrough|(de|at)tach)$/.test(n))continue;if("..."==r){delete e[n];continue}for(var i=Ri(n.split(" "),Yn),o=0;o<i.length;o++){var a,l;o==i.length-1?(l=i.join(" "),a=r):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[n]}for(var c in t)e[c]=t[c];return e};var ha=e.lookupKey=function(e,t,n,r){t=$n(t);var i=t.call?t.call(e,r):t[e];if(i===!1)return"nothing";if("..."===i)return"multi";if(null!=i&&n(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return ha(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var a=ha(e,t.fallthrough[o],n,r);
share/assets/misc/simplemde/simplemde.min.js:12:if(a)return a}}},da=e.isModifierKey=function(e){var t="string"==typeof e?e:ol[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t},pa=e.keyName=function(e,t){if(Co&&34==e.keyCode&&e["char"])return!1;var n=ol[e.keyCode],r=n;return null==r||e.altGraphKey?!1:(e.altKey&&"Alt"!=n&&(r="Alt-"+r),(Ro?e.metaKey:e.ctrlKey)&&"Ctrl"!=n&&(r="Ctrl-"+r),(Ro?e.ctrlKey:e.metaKey)&&"Cmd"!=n&&(r="Cmd-"+r),!t&&e.shiftKey&&"Shift"!=n&&(r="Shift-"+r),r)};e.fromTextArea=function(t,n){function r(){t.value=c.getValue()}if(n=n?Wi(n):{},n.value=t.value,!n.tabindex&&t.tabIndex&&(n.tabindex=t.tabIndex),!n.placeholder&&t.placeholder&&(n.placeholder=t.placeholder),null==n.autofocus){var i=Gi();n.autofocus=i==t||null!=t.getAttribute("autofocus")&&i==document.body}if(t.form&&(Ea(t.form,"submit",r),!n.leaveSubmitMethodAlone)){var o=t.form,a=o.submit;try{var l=o.submit=function(){r(),o.submit=a,o.submit(),o.submit=l}}catch(s){}}n.finishInit=function(e){e.save=r,e.getTextArea=function(){return t},e.toTextArea=function(){e.toTextArea=isNaN,r(),t.parentNode.removeChild(e.getWrapperElement()),t.style.display="",t.form&&(Ia(t.form,"submit",r),"function"==typeof t.form.submit&&(t.form.submit=a))}},t.style.display="none";var c=e(function(e){t.parentNode.insertBefore(e,t.nextSibling)},n);return c};var ma=e.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};ma.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pos<this.string.length?this.string.charAt(this.pos++):void 0},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var n=t==e;else var n=t&&(e.test?e.test(t):e(t));return n?(++this.pos,t):void 0},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);return t>-1?(this.pos=t,!0):void 0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Fa(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?Fa(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return Fa(this.string,null,this.tabSize)-(this.lineStart?Fa(this.string,this.lineStart,this.tabSize):0)},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);return i(o)==i(e)?(t!==!1&&(this.pos+=e.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}};var ga=0,va=e.TextMarker=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++ga};Ai(va),va.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&bt(e),Ni(this,"clear")){var n=this.find();n&&Ci(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;o<this.lines.length;++o){var a=this.lines[o],l=er(a.markedSpans,this);e&&!this.collapsed?Ht(e,ti(a),"text"):e&&(null!=l.to&&(i=ti(a)),null!=l.from&&(r=ti(a))),a.markedSpans=tr(a.markedSpans,l),null==l.from&&this.collapsed&&!kr(this.doc,a)&&e&&ei(a,yt(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var o=0;o<this.lines.length;++o){var s=yr(this.lines[o]),c=f(s);c>e.display.maxLineLength&&(e.display.maxLine=s,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&Dt(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Ae(e.doc)),e&&Ci(e,"markerCleared",e,this),t&&kt(e),this.parent&&this.parent.clear()}},va.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var n,r,i=0;i<this.lines.length;++i){var o=this.lines[i],a=er(o.markedSpans,this);if(null!=a.from&&(n=Bo(t?o:ti(o),a.from),-1==e))return n;if(null!=a.to&&(r=Bo(t?o:ti(o),a.to),1==e))return r}return n&&{from:n,to:r}},va.prototype.changed=function(){var e=this.find(-1,!0),t=this,n=this.doc.cm;e&&n&&At(n,function(){var r=e.line,i=ti(e.line),o=Qe(n,i);if(o&&(ot(o),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!kr(t.doc,r)&&null!=t.height){var a=t.height;t.height=null;var l=Lr(t)-a;l&&ei(r,r.height+l)}})},va.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=Pi(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},va.prototype.detachLine=function(e){if(this.lines.splice(Pi(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}};var ga=0,ya=e.SharedTextMarker=function(e,t){this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=this};Ai(ya),ya.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Ci(this,"clear")}},ya.prototype.find=function(e,t){return this.primary.find(e,t)};var xa=e.LineWidget=function(e,t,n){if(n)for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.doc=e,this.node=t};Ai(xa),xa.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,n=this.line,r=ti(n);if(null!=r&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(n.widgets=null);var o=Lr(this);ei(n,Math.max(0,n.height-o)),e&&At(e,function(){Cr(e,n,-o),Ht(e,r,"widget")})}},xa.prototype.changed=function(){var e=this.height,t=this.doc.cm,n=this.line;this.height=null;var r=Lr(this)-e;r&&(ei(n,n.height+r),t&&At(t,function(){t.curOp.forceUpdate=!0,Cr(t,n,r)}))};var ba=e.Line=function(e,t,n){this.text=e,ur(this,t),this.height=n?n(this):1};Ai(ba),ba.prototype.lineNo=function(){return ti(this)};var wa={},ka={};$r.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;r>n;++n){var i=this.lines[n];this.height-=i.height,Nr(i),Ci(i,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0;r<t.length;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;r>e;++e)if(n(this.lines[e]))return!0}},Vr.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n=0;n<this.children.length;++n){var r=this.children[n],i=r.chunkSize();if(i>e){var o=Math.min(t,i-e),a=r.height;if(r.removeInner(e,o),this.height-=a-r.height,i==o&&(this.children.splice(n--,1),r.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof $r))){var l=[];this.collapse(l),this.children=[new $r(l)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(o>=e){if(i.insertInner(e,t,n),i.lines&&i.lines.length>50){for(var a=i.lines.length%25+25,l=a;l<i.lines.length;){var s=new $r(i.lines.slice(l,l+=25));i.height-=s.height,this.children.splice(++r,0,s),s.parent=this}i.lines=i.lines.slice(0,a),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new Vr(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=Pi(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new Vr(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(o>e){var a=Math.min(t,o-e);if(i.iterN(e,a,n))return!0;if(0==(t-=a))break;e=0}else e-=o}}};var Sa=0,Ca=e.Doc=function(e,t,n,r){if(!(this instanceof Ca))return new Ca(e,t,n,r);null==n&&(n=0),Vr.call(this,[new $r([new ba("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=n;var i=Bo(n,0);this.sel=de(i),this.history=new oi(null),this.id=++Sa,this.modeOption=t,this.lineSep=r,this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Yr(this,{from:i,to:i,text:e}),Te(this,de(i),Wa)};Ca.prototype=Hi(Vr.prototype,{constructor:Ca,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=Qr(this,this.first,this.first+this.size);return e===!1?t:t.join(e||this.lineSeparator())},setValue:It(function(e){var t=Bo(this.first,0),n=this.first+this.size-1;Tn(this,{from:t,to:Bo(n,Zr(this,n).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),Te(this,de(t))}),replaceRange:function(e,t,n,r){t=me(this,t),n=n?me(this,n):t,In(this,e,t,n,r)},getRange:function(e,t,n){var r=Jr(this,me(this,e),me(this,t));return n===!1?r:r.join(n||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){return ve(this,e)?Zr(this,e):void 0},getLineNumber:function(e){return ti(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=Zr(this,e)),yr(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return me(this,e)},getCursor:function(e){var t,n=this.sel.primary();return t=null==e||"head"==e?n.head:"anchor"==e?n.anchor:"end"==e||"to"==e||e===!1?n.to():n.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:It(function(e,t,n){Se(this,me(this,"number"==typeof e?Bo(e,t||0):e),null,n)}),setSelection:It(function(e,t,n){Se(this,me(this,e),me(this,t||e),n)}),extendSelection:It(function(e,t,n){be(this,me(this,e),t&&me(this,t),n)}),extendSelections:It(function(e,t){we(this,ye(this,e),t)}),extendSelectionsBy:It(function(e,t){var n=Ri(this.sel.ranges,e);we(this,ye(this,n),t)}),setSelections:It(function(e,t,n){if(e.length){for(var r=0,i=[];r<e.length;r++)i[r]=new fe(me(this,e[r].anchor),me(this,e[r].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),Te(this,he(i,t),n)}}),addSelection:It(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new fe(me(this,e),me(this,t||e))),Te(this,he(r,r.length-1),n)}),getSelection:function(e){for(var t,n=this.sel.ranges,r=0;r<n.length;r++){var i=Jr(this,n[r].from(),n[r].to());t=t?t.concat(i):i}return e===!1?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],n=this.sel.ranges,r=0;r<n.length;r++){var i=Jr(this,n[r].from(),n[r].to());e!==!1&&(i=i.join(e||this.lineSeparator())),t[r]=i}return t},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||"+input")},replaceSelections:It(function(e,t,n){for(var r=[],i=this.sel,o=0;o<i.ranges.length;o++){var a=i.ranges[o];r[o]={from:a.from(),to:a.to(),text:this.splitLines(e[o]),origin:n}}for(var l=t&&"end"!=t&&Cn(this,r,t),o=r.length-1;o>=0;o--)Tn(this,r[o]);l?Le(this,l):this.cm&&Bn(this.cm)}),undo:It(function(){Nn(this,"undo")}),redo:It(function(){Nn(this,"redo")}),undoSelection:It(function(){Nn(this,"undo",!0)}),redoSelection:It(function(){Nn(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var r=0;r<e.undone.length;r++)e.undone[r].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){this.history=new oi(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:gi(this.history.done),undone:gi(this.history.undone)}},setHistory:function(e){var t=this.history=new oi(this.history.maxGeneration);t.done=gi(e.done.slice(0),null,!0),t.undone=gi(e.undone.slice(0),null,!0)},addLineClass:It(function(e,t,n){return zn(this,e,"gutter"==t?"gutter":"class",function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"gutter"==t?"gutterClass":"wrapClass";if(e[r]){if(Yi(n).test(e[r]))return!1;e[r]+=" "+n}else e[r]=n;return!0})}),removeLineClass:It(function(e,t,n){return zn(this,e,"gutter"==t?"gutter":"class",function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"gutter"==t?"gutterClass":"wrapClass",i=e[r];if(!i)return!1;if(null==n)e[r]=null;else{var o=i.match(Yi(n));if(!o)return!1;var a=o.index+o[0].length;e[r]=i.slice(0,o.index)+(o.index&&a!=i.length?" ":"")+i.slice(a)||null}return!0})}),addLineWidget:It(function(e,t,n){return Tr(this,e,t,n)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return Vn(this,me(this,e),me(this,t),n,n&&n.type||"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=me(this,e),Vn(this,e,e,n,"bookmark")},findMarksAt:function(e){e=me(this,e);var t=[],n=Zr(this,e.line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=me(this,e),t=me(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||n&&!n(s.marker)||r.push(s.marker.parent||s.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first,r=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+r;return o>e?(t=e,!0):(e-=o,void++n)}),me(this,Bo(n,t))},indexFromPos:function(e){e=me(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new Ca(Qr(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new Ca(Qr(this,t,n),e.mode||this.modeOption,t,this.lineSep);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],Zn(r,Xn(this)),r},unlinkDoc:function(t){if(t instanceof e&&(t=t.doc),this.linked)for(var n=0;n<this.linked.length;++n){var r=this.linked[n];if(r.doc==t){this.linked.splice(n,1),t.unlinkDoc(this),Jn(Xn(this));break}}if(t.history==this.history){var i=[t.id];Kr(t,function(e){i.push(e.id)},!0),t.history=new oi(null),t.history.done=gi(this.history.done,i),t.history.undone=gi(this.history.undone,i)}},iterLinkedDocs:function(e){Kr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):tl(e)},lineSeparator:function(){return this.lineSep||"\n"}}),Ca.prototype.eachLine=Ca.prototype.iter;var La="iter insert remove copy getEditor constructor".split(" ");for(var Ta in Ca.prototype)Ca.prototype.hasOwnProperty(Ta)&&Pi(La,Ta)<0&&(e.prototype[Ta]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ca.prototype[Ta]));Ai(Ca);var Ma=e.e_preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},Na=e.e_stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},Aa=e.e_stop=function(e){Ma(e),Na(e)},Ea=e.on=function(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={}),i=r[t]||(r[t]=[]);i.push(n)}},Oa=[],Ia=e.off=function(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else for(var r=Si(e,t,!1),i=0;i<r.length;++i)if(r[i]==n){r.splice(i,1);break}},Pa=e.signal=function(e,t){var n=Si(e,t,!0);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)},Ra=null,Da=30,Ha=e.Pass={toString:function(){return"CodeMirror.Pass"}},Wa={scroll:!1},Ba={origin:"*mouse"},_a={origin:"+move"};Ei.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Fa=e.countColumn=function(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/),-1==t&&(t=e.length));for(var o=r||0,a=i||0;;){var l=e.indexOf("	",o);if(0>l||l>=t)return a+(t-o);a+=l-o,a+=n-a%n,o=l+1}},za=e.findColumn=function(e,t,n){for(var r=0,i=0;;){var o=e.indexOf("	",r);-1==o&&(o=e.length);var a=o-r;if(o==e.length||i+a>=t)return r+Math.min(a,t-i);if(i+=o-r,i+=n-i%n,r=o+1,i>=t)return r}},ja=[""],Ua=function(e){e.select()};No?Ua=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:xo&&(Ua=function(e){try{e.select()}catch(t){}});var qa,Ga=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ya=e.isWordChar=function(e){return/\w/.test(e)||e>""&&(e.toUpperCase()!=e.toLowerCase()||Ga.test(e))},$a=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;qa=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(i){return r}return r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",t),r};var Va=e.contains=function(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do if(11==t.nodeType&&(t=t.host),t==e)return!0;while(t=t.parentNode)};xo&&11>bo&&(Gi=function(){try{return document.activeElement}catch(e){return document.body}});var Ka,Xa,Za=e.rmClass=function(e,t){var n=e.className,r=Yi(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}},Ja=e.addClass=function(e,t){var n=e.className;Yi(t).test(n)||(e.className+=(n?" ":"")+t)},Qa=!1,el=function(){if(xo&&9>bo)return!1;var e=ji("div");return"draggable"in e||"dragDrop"in e}(),tl=e.splitLines=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;r>=t;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},nl=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return t&&t.parentElement()==e?0!=t.compareEndPoints("StartToEnd",t):!1},rl=function(){var e=ji("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),il=null,ol=e.keyNames={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};!function(){for(var e=0;10>e;e++)ol[e+48]=ol[e+96]=String(e);for(var e=65;90>=e;e++)ol[e]=String.fromCharCode(e);for(var e=1;12>=e;e++)ol[e+111]=ol[e+63235]="F"+e}();var al,ll=function(){function e(e){return 247>=e?n.charAt(e):e>=1424&&1524>=e?"R":e>=1536&&1773>=e?r.charAt(e-1536):e>=1774&&2220>=e?"r":e>=8192&&8203>=e?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/,c="L";return function(n){if(!i.test(n))return!1;for(var r,u=n.length,f=[],h=0;u>h;++h)f.push(r=e(n.charCodeAt(h)));for(var h=0,d=c;u>h;++h){var r=f[h];"m"==r?f[h]=d:d=r}for(var h=0,p=c;u>h;++h){var r=f[h];"1"==r&&"r"==p?f[h]="n":a.test(r)&&(p=r,"r"==r&&(f[h]="R"))}for(var h=1,d=f[0];u-1>h;++h){var r=f[h];"+"==r&&"1"==d&&"1"==f[h+1]?f[h]="1":","!=r||d!=f[h+1]||"1"!=d&&"n"!=d||(f[h]=d),d=r}for(var h=0;u>h;++h){var r=f[h];if(","==r)f[h]="N";else if("%"==r){for(var m=h+1;u>m&&"%"==f[m];++m);for(var g=h&&"!"==f[h-1]||u>m&&"1"==f[m]?"1":"N",v=h;m>v;++v)f[v]=g;h=m-1}}for(var h=0,p=c;u>h;++h){var r=f[h];"L"==p&&"1"==r?f[h]="L":a.test(r)&&(p=r)}for(var h=0;u>h;++h)if(o.test(f[h])){for(var m=h+1;u>m&&o.test(f[m]);++m);for(var y="L"==(h?f[h-1]:c),x="L"==(u>m?f[m]:c),g=y||x?"L":"R",v=h;m>v;++v)f[v]=g;h=m-1}for(var b,w=[],h=0;u>h;)if(l.test(f[h])){var k=h;for(++h;u>h&&l.test(f[h]);++h);w.push(new t(0,k,h))}else{var S=h,C=w.length;for(++h;u>h&&"L"!=f[h];++h);for(var v=S;h>v;)if(s.test(f[v])){v>S&&w.splice(C,0,new t(1,S,v));var L=v;for(++v;h>v&&s.test(f[v]);++v);w.splice(C,0,new t(2,L,v)),S=v}else++v;h>S&&w.splice(C,0,new t(1,S,h))}return 1==w[0].level&&(b=n.match(/^\s+/))&&(w[0].from=b[0].length,w.unshift(new t(0,0,b[0].length))),1==Ii(w).level&&(b=n.match(/\s+$/))&&(Ii(w).to-=b[0].length,w.push(new t(0,u-b[0].length,u))),2==w[0].level&&w.unshift(new t(1,w[0].to,w[0].to)),w[0].level!=Ii(w).level&&w.push(new t(w[0].level,u,u)),w}}();return e.version="5.15.2",e})},{}],11:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror"),t("../markdown/markdown"),t("../../addon/mode/overlay")):"function"==typeof e&&e.amd?e(["../../lib/codemirror","../markdown/markdown","../../addon/mode/overlay"],i):i(CodeMirror)}(function(e){"use strict";var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode("gfm",function(n,r){function i(e){return e.code=!1,null}var o=0,a={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if("`"===e.peek()){e.next();var i=e.pos;e.eatWhile("`");var a=1+e.pos-i;return n.code?a===o&&(n.code=!1):(o=a,n.code=!0),null}if(n.code)return e.next(),null;if(e.eatSpace())return n.ateSpace=!0,null;if((e.sol()||n.ateSpace)&&(n.ateSpace=!1,r.gitHubSpice!==!1)){if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/))return n.combineTokens=!0,"link";if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return n.combineTokens=!0,"link"}return e.match(t)&&"]("!=e.string.slice(e.start-2,e.start)&&(0==e.start||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,"link"):(e.next(),null)},blankLine:i},l={underscoresBreakWords:!1,taskLists:!0,fencedCodeBlocks:"```",strikethrough:!0};for(var s in r)l[s]=r[s];return l.name="markdown",e.overlayMode(e.getMode(n,l),a)},"markdown"),e.defineMIME("text/x-gfm","gfm")})},{"../../addon/mode/overlay":8,"../../lib/codemirror":10,"../markdown/markdown":12}],12:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror"),t("../xml/xml"),t("../meta")):"function"==typeof e&&e.amd?e(["../../lib/codemirror","../xml/xml","../meta"],i):i(CodeMirror)}(function(e){"use strict";e.defineMode("markdown",function(t,n){function r(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return"null"==i.name?null:i}function i(e,t,n){return t.f=t.inline=n,n(e,t)}function o(e,t,n){return t.f=t.block=n,n(e,t)}function a(e){return!e||!/\S/.test(e.string)}function l(e){return e.linkTitle=!1,e.em=!1,e.strong=!1,e.strikethrough=!1,e.quote=0,e.indentedCode=!1,k&&e.f==c&&(e.f=p,e.block=s),e.trailingSpace=0,e.trailingSpaceNewLine=!1,e.prevLine=e.thisLine,e.thisLine=null,null}function s(t,o){var l=t.sol(),s=o.list!==!1,c=o.indentedCode;o.indentedCode=!1,s&&(o.indentationDiff>=0?(o.indentationDiff<4&&(o.indentation-=o.indentationDiff),o.list=null):o.indentation>0?o.list=null:o.list=!1);var f=null;if(o.indentationDiff>=4)return t.skipToEnd(),c||a(o.prevLine)?(o.indentation-=4,o.indentedCode=!0,S.code):null;if(t.eatSpace())return null;if((f=t.match(A))&&f[1].length<=6)return o.header=f[1].length,n.highlightFormatting&&(o.formatting="header"),o.f=o.inline,h(o);if(!(a(o.prevLine)||o.quote||s||c)&&(f=t.match(E)))return o.header="="==f[0].charAt(0)?1:2,n.highlightFormatting&&(o.formatting="header"),o.f=o.inline,h(o);if(t.eat(">"))return o.quote=l?1:o.quote+1,n.highlightFormatting&&(o.formatting="quote"),t.eatSpace(),h(o);if("["===t.peek())return i(t,o,y);if(t.match(L,!0))return o.hr=!0,S.hr;if((a(o.prevLine)||s)&&(t.match(T,!1)||t.match(M,!1))){var d=null;for(t.match(T,!0)?d="ul":(t.match(M,!0),d="ol"),o.indentation=t.column()+t.current().length,o.list=!0;o.listStack&&t.column()<o.listStack[o.listStack.length-1];)o.listStack.pop();return o.listStack.push(o.indentation),n.taskLists&&t.match(N,!1)&&(o.taskList=!0),o.f=o.inline,n.highlightFormatting&&(o.formatting=["list","list-"+d]),h(o)}return n.fencedCodeBlocks&&(f=t.match(I,!0))?(o.fencedChars=f[1],o.localMode=r(f[2]),o.localMode&&(o.localState=e.startState(o.localMode)),o.f=o.block=u,n.highlightFormatting&&(o.formatting="code-block"),o.code=-1,h(o)):i(t,o,o.inline)}function c(t,n){var r=w.token(t,n.htmlState);if(!k){var i=e.innerMode(w,n.htmlState);("xml"==i.mode.name&&null===i.state.tagStart&&!i.state.context&&i.state.tokenize.isInText||n.md_inside&&t.current().indexOf(">")>-1)&&(n.f=p,n.block=s,n.htmlState=null)}return r}function u(e,t){return t.fencedChars&&e.match(t.fencedChars,!1)?(t.localMode=t.localState=null,t.f=t.block=f,null):t.localMode?t.localMode.token(e,t.localState):(e.skipToEnd(),S.code)}function f(e,t){e.match(t.fencedChars),t.block=s,t.f=p,t.fencedChars=null,n.highlightFormatting&&(t.formatting="code-block"),t.code=1;var r=h(t);return t.code=0,r}function h(e){var t=[];if(e.formatting){t.push(S.formatting),"string"==typeof e.formatting&&(e.formatting=[e.formatting]);for(var r=0;r<e.formatting.length;r++)t.push(S.formatting+"-"+e.formatting[r]),"header"===e.formatting[r]&&t.push(S.formatting+"-"+e.formatting[r]+"-"+e.header),"quote"===e.formatting[r]&&(!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(S.formatting+"-"+e.formatting[r]+"-"+e.quote):t.push("error"))}if(e.taskOpen)return t.push("meta"),t.length?t.join(" "):null;if(e.taskClosed)return t.push("property"),t.length?t.join(" "):null;if(e.linkHref?t.push(S.linkHref,"url"):(e.strong&&t.push(S.strong),e.em&&t.push(S.em),e.strikethrough&&t.push(S.strikethrough),e.linkText&&t.push(S.linkText),e.code&&t.push(S.code)),e.header&&t.push(S.header,S.header+"-"+e.header),e.quote&&(t.push(S.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(S.quote+"-"+e.quote):t.push(S.quote+"-"+n.maxBlockquoteDepth)),e.list!==!1){var i=(e.listStack.length-1)%3;i?1===i?t.push(S.list2):t.push(S.list3):t.push(S.list1)}return e.trailingSpaceNewLine?t.push("trailing-space-new-line"):e.trailingSpace&&t.push("trailing-space-"+(e.trailingSpace%2?"a":"b")),t.length?t.join(" "):null}function d(e,t){return e.match(O,!0)?h(t):void 0}function p(t,r){var i=r.text(t,r);if("undefined"!=typeof i)return i;if(r.list)return r.list=null,h(r);if(r.taskList){var a="x"!==t.match(N,!0)[1];return a?r.taskOpen=!0:r.taskClosed=!0,n.highlightFormatting&&(r.formatting="task"),r.taskList=!1,h(r)}if(r.taskOpen=!1,r.taskClosed=!1,r.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(r.formatting="header"),
share/assets/misc/simplemde/simplemde.min.js:13:h(r);var l=t.sol(),s=t.next();if(r.linkTitle){r.linkTitle=!1;var u=s;"("===s&&(u=")"),u=(u+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");var f="^\\s*(?:[^"+u+"\\\\]+|\\\\\\\\|\\\\.)"+u;if(t.match(new RegExp(f),!0))return S.linkHref}if("`"===s){var d=r.formatting;n.highlightFormatting&&(r.formatting="code"),t.eatWhile("`");var p=t.current().length;if(0==r.code)return r.code=p,h(r);if(p==r.code){var v=h(r);return r.code=0,v}return r.formatting=d,h(r)}if(r.code)return h(r);if("\\"===s&&(t.next(),n.highlightFormatting)){var y=h(r),x=S.formatting+"-escape";return y?y+" "+x:x}if("!"===s&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return t.match(/\[[^\]]*\]/),r.inline=r.f=g,S.image;if("["===s&&t.match(/[^\]]*\](\(.*\)| ?\[.*?\])/,!1))return r.linkText=!0,n.highlightFormatting&&(r.formatting="link"),h(r);if("]"===s&&r.linkText&&t.match(/\(.*?\)| ?\[.*?\]/,!1)){n.highlightFormatting&&(r.formatting="link");var y=h(r);return r.linkText=!1,r.inline=r.f=g,y}if("<"===s&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){r.f=r.inline=m,n.highlightFormatting&&(r.formatting="link");var y=h(r);return y?y+=" ":y="",y+S.linkInline}if("<"===s&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){r.f=r.inline=m,n.highlightFormatting&&(r.formatting="link");var y=h(r);return y?y+=" ":y="",y+S.linkEmail}if("<"===s&&t.match(/^(!--|\w)/,!1)){var b=t.string.indexOf(">",t.pos);if(-1!=b){var k=t.string.substring(t.start,b);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(k)&&(r.md_inside=!0)}return t.backUp(1),r.htmlState=e.startState(w),o(t,r,c)}if("<"===s&&t.match(/^\/\w*?>/))return r.md_inside=!1,"tag";var C=!1;if(!n.underscoresBreakWords&&"_"===s&&"_"!==t.peek()&&t.match(/(\w)/,!1)){var L=t.pos-2;if(L>=0){var T=t.string.charAt(L);"_"!==T&&T.match(/(\w)/,!1)&&(C=!0)}}if("*"===s||"_"===s&&!C)if(l&&" "===t.peek());else{if(r.strong===s&&t.eat(s)){n.highlightFormatting&&(r.formatting="strong");var v=h(r);return r.strong=!1,v}if(!r.strong&&t.eat(s))return r.strong=s,n.highlightFormatting&&(r.formatting="strong"),h(r);if(r.em===s){n.highlightFormatting&&(r.formatting="em");var v=h(r);return r.em=!1,v}if(!r.em)return r.em=s,n.highlightFormatting&&(r.formatting="em"),h(r)}else if(" "===s&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return h(r);t.backUp(1)}if(n.strikethrough)if("~"===s&&t.eatWhile(s)){if(r.strikethrough){n.highlightFormatting&&(r.formatting="strikethrough");var v=h(r);return r.strikethrough=!1,v}if(t.match(/^[^\s]/,!1))return r.strikethrough=!0,n.highlightFormatting&&(r.formatting="strikethrough"),h(r)}else if(" "===s&&t.match(/^~~/,!0)){if(" "===t.peek())return h(r);t.backUp(2)}return" "===s&&(t.match(/ +$/,!1)?r.trailingSpace++:r.trailingSpace&&(r.trailingSpaceNewLine=!0)),h(r)}function m(e,t){var r=e.next();if(">"===r){t.f=t.inline=p,n.highlightFormatting&&(t.formatting="link");var i=h(t);return i?i+=" ":i="",i+S.linkInline}return e.match(/^[^>]+/,!0),S.linkInline}function g(e,t){if(e.eatSpace())return null;var r=e.next();return"("===r||"["===r?(t.f=t.inline=v("("===r?")":"]",0),n.highlightFormatting&&(t.formatting="link-string"),t.linkHref=!0,h(t)):"error"}function v(e){return function(t,r){var i=t.next();if(i===e){r.f=r.inline=p,n.highlightFormatting&&(r.formatting="link-string");var o=h(r);return r.linkHref=!1,o}return t.match(P[e]),r.linkHref=!0,h(r)}}function y(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=x,e.next(),n.highlightFormatting&&(t.formatting="link"),t.linkText=!0,h(t)):i(e,t,p)}function x(e,t){if(e.match(/^\]:/,!0)){t.f=t.inline=b,n.highlightFormatting&&(t.formatting="link");var r=h(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),S.linkText}function b(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),void 0===e.peek()?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/,!0),t.f=t.inline=p,S.linkHref+" url")}var w=e.getMode(t,"text/html"),k="null"==w.name;void 0===n.highlightFormatting&&(n.highlightFormatting=!1),void 0===n.maxBlockquoteDepth&&(n.maxBlockquoteDepth=0),void 0===n.underscoresBreakWords&&(n.underscoresBreakWords=!0),void 0===n.taskLists&&(n.taskLists=!1),void 0===n.strikethrough&&(n.strikethrough=!1),void 0===n.tokenTypeOverrides&&(n.tokenTypeOverrides={});var S={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"tag",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough"};for(var C in S)S.hasOwnProperty(C)&&n.tokenTypeOverrides[C]&&(S[C]=n.tokenTypeOverrides[C]);var L=/^([*\-_])(?:\s*\1){2,}\s*$/,T=/^[*\-+]\s+/,M=/^[0-9]+([.)])\s+/,N=/^\[(x| )\](?=\s)/,A=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,E=/^ *(?:\={1,}|-{1,})\s*$/,O=/^[^#!\[\]*_\\<>` "'(~]+/,I=new RegExp("^("+(n.fencedCodeBlocks===!0?"~~~+|```+":n.fencedCodeBlocks)+")[ \\t]*([\\w+#-]*)"),P={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\\]]|\\.)*\])*?(?=\])/},R={startState:function(){return{f:s,prevLine:null,thisLine:null,block:s,htmlState:null,indentation:0,inline:p,text:d,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,fencedChars:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(w,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkTitle:t.linkTitle,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,header:t.header,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedChars:t.fencedChars}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine){var n=t.header||t.hr;if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0)||n){if(l(t),!n)return null;t.prevLine=null}t.prevLine=t.thisLine,t.thisLine=e,t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.f=t.block;var r=e.match(/^\s*/,!0)[0].replace(/\t/g,"    ").length;if(t.indentationDiff=Math.min(r-t.indentation,4),t.indentation=t.indentation+t.indentationDiff,r>0)return null}return t.f(e,t)},innerMode:function(e){return e.block==c?{state:e.htmlState,mode:w}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:R}},blankLine:l,getType:h,fold:"markdown"};return R},"xml"),e.defineMIME("text/x-markdown","markdown")})},{"../../lib/codemirror":10,"../meta":13,"../xml/xml":14}],13:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../lib/codemirror")):"function"==typeof e&&e.amd?e(["../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["pgp"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists.txt$/},{name:"CoffeeScript",mime:"text/x-coffeescript",mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"]},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Jade",mime:"text/x-jade",mode:"jade",ext:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"null",mode:"jinja2"},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mime:"text/n-triples",mode:"ntriples",ext:["nt"]},{name:"Objective C",mime:"text/x-objectivec",mode:"clike",ext:["m","mm"],alias:["objective-c","objc"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mime:"application/x-httpd-php",mode:"php",ext:["php","php3","php4","php5","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mime:"text/x-sh",mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mime:"text/x-yaml",mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]}];for(var t=0;t<e.modeInfo.length;t++){var n=e.modeInfo[t];n.mimes&&(n.mime=n.mimes[0])}e.findModeByMIME=function(t){t=t.toLowerCase();for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.mime==t)return r;if(r.mimes)for(var i=0;i<r.mimes.length;i++)if(r.mimes[i]==t)return r}},e.findModeByExtension=function(t){for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.ext)for(var i=0;i<r.ext.length;i++)if(r.ext[i]==t)return r}},e.findModeByFileName=function(t){for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.file&&r.file.test(t))return r}var i=t.lastIndexOf("."),o=i>-1&&t.substring(i+1,t.length);return o?e.findModeByExtension(o):void 0},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n<e.modeInfo.length;n++){var r=e.modeInfo[n];if(r.name.toLowerCase()==t)return r;if(r.alias)for(var i=0;i<r.alias.length;i++)if(r.alias[i].toLowerCase()==t)return r}}})},{"../lib/codemirror":10}],14:[function(t,n,r){!function(i){"object"==typeof r&&"object"==typeof n?i(t("../../lib/codemirror")):"function"==typeof e&&e.amd?e(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(r,i){function o(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();if("<"==r)return e.eat("!")?e.eat("[")?e.match("CDATA[")?n(s("atom","]]>")):null:e.match("--")?n(s("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=s("meta","?>"),"meta"):(T=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==r){var i;return i=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),i?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=o,T=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return T="equals",null;if("<"==n){t.tokenize=o,t.state=d,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=l(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function s(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=o;break}n.next()}return e}}function c(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=c(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=o;break}return n.tokenize=c(e-1),n.tokenize(t,n)}}return"meta"}}function u(e,t,n){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n,(S.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function f(e){e.context&&(e.context=e.context.prev)}function h(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!S.contextGrabbers.hasOwnProperty(n)||!S.contextGrabbers[n].hasOwnProperty(t))return;f(e)}}function d(e,t,n){return"openTag"==e?(n.tagStart=t.column(),p):"closeTag"==e?m:d}function p(e,t,n){return"word"==e?(n.tagName=t.current(),M="tag",y):(M="error",p)}function m(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&S.implicitlyClosed.hasOwnProperty(n.context.tagName)&&f(n),n.context&&n.context.tagName==r||S.matchClosing===!1?(M="tag",g):(M="tag error",v)}return M="error",v}function g(e,t,n){return"endTag"!=e?(M="error",g):(f(n),d)}function v(e,t,n){return M="error",g(e,t,n)}function y(e,t,n){if("word"==e)return M="attribute",x;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||S.autoSelfClosers.hasOwnProperty(r)?h(n,r):(h(n,r),n.context=new u(n,r,i==n.indented)),d}return M="error",y}function x(e,t,n){return"equals"==e?b:(S.allowMissing||(M="error"),y(e,t,n))}function b(e,t,n){return"string"==e?w:"word"==e&&S.allowUnquoted?(M="string",y):(M="error",y(e,t,n))}function w(e,t,n){return"string"==e?w:y(e,t,n)}var k=r.indentUnit,S={},C=i.htmlMode?t:n;for(var L in C)S[L]=C[L];for(var L in i)S[L]=i[L];var T,M;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:d,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;T=null;var n=t.tokenize(e,t);return(n||T)&&"comment"!=n&&(M=null,t.state=t.state(T||n,e,t),M&&(n="error"==M?n+" error":M)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+k;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return S.multilineTagIndentPastTag!==!1?t.tagStart+t.tagName.length+2:t.tagStart+k*(S.multilineTagIndentFactor||1);if(S.alignCDATA&&/<!\[CDATA\[/.test(n))return 0;var l=n&&/^<(\/)?([\w_:\.-]*)/.exec(n);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!S.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=S.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+k:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:S.htmlMode?"html":"xml",helperType:S.htmlMode?"html":"xml",skipAttribute:function(e){e.state==b&&(e.state=y)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},{"../../lib/codemirror":10}],15:[function(e,t,n){n.read=function(e,t,n,r,i){var o,a,l=8*i-r-1,s=(1<<l)-1,c=s>>1,u=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,o=d&(1<<-u)-1,d>>=-u,u+=l;u>0;o=256*o+e[t+f],f+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=r;u>0;a=256*a+e[t+f],f+=h,u-=8);if(0===o)o=1-c;else{if(o===s)return a?NaN:(d?-1:1)*(1/0);a+=Math.pow(2,r),o-=c}return(d?-1:1)*a*Math.pow(2,o-r)},n.write=function(e,t,n,r,i,o){var a,l,s,c=8*o-i-1,u=(1<<c)-1,f=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=0>t||0===t&&0>1/t?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-a))<1&&(a--,s*=2),t+=a+f>=1?h/s:h*Math.pow(2,1-f),t*s>=2&&(a++,s/=2),a+f>=u?(l=0,a=u):a+f>=1?(l=(t*s-1)*Math.pow(2,i),a+=f):(l=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[n+d]=255&l,d+=p,l/=256,i-=8);for(a=a<<i|l,c+=i;c>0;e[n+d]=255&a,d+=p,a/=256,c-=8);e[n+d-p]|=128*m}},{}],16:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],17:[function(t,n,r){(function(t){(function(){function t(e){this.tokens=[],this.tokens.links={},this.options=e||h.defaults,this.rules=d.normal,this.options.gfm&&(this.options.tables?this.rules=d.tables:this.rules=d.gfm)}function i(e,t){if(this.options=t||h.defaults,this.links=e,this.rules=p.normal,this.renderer=this.options.renderer||new o,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=p.breaks:this.rules=p.gfm:this.options.pedantic&&(this.rules=p.pedantic)}function o(e){this.options=e||{}}function a(e){this.tokens=[],this.token=null,this.options=e||h.defaults,this.options.renderer=this.options.renderer||new o,this.renderer=this.options.renderer,this.renderer.options=this.options}function l(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function s(e){return e.replace(/&([#\w]+);/g,function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function c(e,t){return e=e.source,t=t||"",function n(r,i){return r?(i=i.source||i,i=i.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,i),n):new RegExp(e,t)}}function u(){}function f(e){for(var t,n,r=1;r<arguments.length;r++){t=arguments[r];for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}function h(e,n,r){if(r||"function"==typeof n){r||(r=n,n=null),n=f({},h.defaults,n||{});var i,o,s=n.highlight,c=0;try{i=t.lex(e,n)}catch(u){return r(u)}o=i.length;var d=function(e){if(e)return n.highlight=s,r(e);var t;try{t=a.parse(i,n)}catch(o){e=o}return n.highlight=s,e?r(e):r(null,t)};if(!s||s.length<3)return d();if(delete n.highlight,!o)return d();for(;c<i.length;c++)!function(e){return"code"!==e.type?--o||d():s(e.text,e.lang,function(t,n){return t?d(t):null==n||n===e.text?--o||d():(e.text=n,e.escaped=!0,void(--o||d()))})}(i[c])}else try{return n&&(n=f({},h.defaults,n)),a.parse(t.lex(e,n),n)}catch(u){if(u.message+="\nPlease report this to https://github.com/chjj/marked.",(n||h.defaults).silent)return"<p>An error occured:</p><pre>"+l(u.message+"",!0)+"</pre>";throw u}}var d={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:u,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:u,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:u,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};d.bullet=/(?:[*+-]|\d+\.)/,d.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,d.item=c(d.item,"gm")(/bull/g,d.bullet)(),d.list=c(d.list)(/bull/g,d.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+d.def.source+")")(),d.blockquote=c(d.blockquote)("def",d.def)(),d._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",d.html=c(d.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,d._tag)(),d.paragraph=c(d.paragraph)("hr",d.hr)("heading",d.heading)("lheading",d.lheading)("blockquote",d.blockquote)("tag","<"+d._tag)("def",d.def)(),d.normal=f({},d),d.gfm=f({},d.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),d.gfm.paragraph=c(d.paragraph)("(?!","(?!"+d.gfm.fences.source.replace("\\1","\\2")+"|"+d.list.source.replace("\\1","\\3")+"|")(),d.tables=f({},d.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),t.rules=d,t.lex=function(e,n){var r=new t(n);return r.lex(e)},t.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},t.prototype.token=function(e,t,n){for(var r,i,o,a,l,s,c,u,f,e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(t&&(o=this.rules.nptable.exec(e))){for(e=e.substring(o[0].length),s={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].split(/ *\| */);this.tokens.push(s)}else if(o=this.rules.lheading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:"="===o[2]?1:2,text:o[1]});else if(o=this.rules.hr.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"hr"});else if(o=this.rules.blockquote.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"blockquote_start"}),o=o[0].replace(/^ *> ?/gm,""),this.token(o,t,!0),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),a=o[2],this.tokens.push({type:"list_start",ordered:a.length>1}),o=o[0].match(this.rules.item),r=!1,f=o.length,u=0;f>u;u++)s=o[u],c=s.length,s=s.replace(/^ *([*+-]|\d+\.) +/,""),~s.indexOf("\n ")&&(c-=s.length,s=this.options.pedantic?s.replace(/^ {1,4}/gm,""):s.replace(new RegExp("^ {1,"+c+"}","gm"),"")),this.options.smartLists&&u!==f-1&&(l=d.bullet.exec(o[u+1])[0],a===l||a.length>1&&l.length>1||(e=o.slice(u+1).join("\n")+e,u=f-1)),i=r||/\n\n(?!\s*$)/.test(s),u!==f-1&&(r="\n"===s.charAt(s.length-1),i||(i=r)),this.tokens.push({type:i?"loose_item_start":"list_item_start"}),this.token(s,!1,n),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(!n&&t&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),this.tokens.links[o[1].toLowerCase()]={href:o[2],title:o[3]};else if(t&&(o=this.rules.table.exec(e))){for(e=e.substring(o[0].length),s={type:"table",
share/assets/misc/simplemde/simplemde.min.js:14:header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/(?: *\| *)?\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(s)}else if(t&&(o=this.rules.paragraph.exec(e)))e=e.substring(o[0].length),this.tokens.push({type:"paragraph",text:"\n"===o[1].charAt(o[1].length-1)?o[1].slice(0,-1):o[1]});else if(o=this.rules.text.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"text",text:o[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens};var p={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:u,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:u,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};p._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,p._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,p.link=c(p.link)("inside",p._inside)("href",p._href)(),p.reflink=c(p.reflink)("inside",p._inside)(),p.normal=f({},p),p.pedantic=f({},p.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),p.gfm=f({},p.normal,{escape:c(p.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:c(p.text)("]|","~]|")("|","|https?://|")()}),p.breaks=f({},p.gfm,{br:c(p.br)("{2,}","*")(),text:c(p.gfm.text)("{2,}","*")()}),i.rules=p,i.output=function(e,t,n){var r=new i(t,n);return r.output(e)},i.prototype.output=function(e){for(var t,n,r,i,o="";e;)if(i=this.rules.escape.exec(e))e=e.substring(i[0].length),o+=i[1];else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),"@"===i[2]?(n=":"===i[1].charAt(6)?this.mangle(i[1].substring(7)):this.mangle(i[1]),r=this.mangle("mailto:")+n):(n=l(i[1]),r=n),o+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(i[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(i[0])&&(this.inLink=!1),e=e.substring(i[0].length),o+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):l(i[0]):i[0];else if(i=this.rules.link.exec(e))e=e.substring(i[0].length),this.inLink=!0,o+=this.outputLink(i,{href:i[2],title:i[3]}),this.inLink=!1;else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),t=this.links[t.toLowerCase()],!t||!t.href){o+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,o+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),o+=this.renderer.strong(this.output(i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),o+=this.renderer.em(this.output(i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),o+=this.renderer.codespan(l(i[2],!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),o+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),o+=this.renderer.del(this.output(i[1]));else if(i=this.rules.text.exec(e))e=e.substring(i[0].length),o+=this.renderer.text(l(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(i[0].length),n=l(i[1]),r=n,o+=this.renderer.link(r,null,n);return o},i.prototype.outputLink=function(e,t){var n=l(t.href),r=t.title?l(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,l(e[1]))},i.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},i.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;r>i;i++)t=e.charCodeAt(i),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},o.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'<pre><code class="'+this.options.langPrefix+l(t,!0)+'">'+(n?e:l(e,!0))+"\n</code></pre>\n":"<pre><code>"+(n?e:l(e,!0))+"\n</code></pre>"},o.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},o.prototype.html=function(e){return e},o.prototype.heading=function(e,t,n){return"<h"+t+' id="'+this.options.headerPrefix+n.toLowerCase().replace(/[^\w]+/g,"-")+'">'+e+"</h"+t+">\n"},o.prototype.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},o.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"</"+n+">\n"},o.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},o.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},o.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},o.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},o.prototype.tablecell=function(e,t){var n=t.header?"th":"td",r=t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">";return r+e+"</"+n+">\n"},o.prototype.strong=function(e){return"<strong>"+e+"</strong>"},o.prototype.em=function(e){return"<em>"+e+"</em>"},o.prototype.codespan=function(e){return"<code>"+e+"</code>"},o.prototype.br=function(){return this.options.xhtml?"<br/>":"<br>"},o.prototype.del=function(e){return"<del>"+e+"</del>"},o.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(s(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(i){return""}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:"))return""}var o='<a href="'+e+'"';return t&&(o+=' title="'+t+'"'),o+=">"+n+"</a>"},o.prototype.image=function(e,t,n){var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"},o.prototype.text=function(e){return e},a.parse=function(e,t,n){var r=new a(t,n);return r.parse(e)},a.prototype.parse=function(e){this.inline=new i(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},a.prototype.next=function(){return this.token=this.tokens.pop()},a.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},a.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},a.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,i,o="",a="";for(n="",e=0;e<this.token.header.length;e++)r={header:!0,align:this.token.align[e]},n+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]});for(o+=this.renderer.tablerow(n),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],n="",i=0;i<t.length;i++)n+=this.renderer.tablecell(this.inline.output(t[i]),{header:!1,align:this.token.align[i]});a+=this.renderer.tablerow(n)}return this.renderer.table(o,a);case"blockquote_start":for(var a="";"blockquote_end"!==this.next().type;)a+=this.tok();return this.renderer.blockquote(a);case"list_start":for(var a="",l=this.token.ordered;"list_end"!==this.next().type;)a+=this.tok();return this.renderer.list(a,l);case"list_item_start":for(var a="";"list_item_end"!==this.next().type;)a+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(a);case"loose_item_start":for(var a="";"list_item_end"!==this.next().type;)a+=this.tok();return this.renderer.listitem(a);case"html":var s=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text);return this.renderer.html(s);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}},u.exec=u,h.options=h.setOptions=function(e){return f(h.defaults,e),h},h.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,sanitizer:null,mangle:!0,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new o,xhtml:!1},h.Parser=a,h.parser=a.parse,h.Renderer=o,h.Lexer=t,h.lexer=t.lex,h.InlineLexer=i,h.inlineLexer=i.output,h.parse=h,"undefined"!=typeof n&&"object"==typeof r?n.exports=h:"function"==typeof e&&e.amd?e(function(){return h}):this.marked=h}).call(function(){return this||("undefined"!=typeof window?window:t)}())}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],18:[function(e,t,n){(function(n,r){"use strict";var i=function(e,t,n,i){if(i=i||{},this.dictionary=null,this.rules={},this.dictionaryTable={},this.compoundRules=[],this.compoundRuleCodes={},this.replacementTable=[],this.flags=i.flags||{},e){if(this.dictionary=e,"undefined"!=typeof window&&"chrome"in window&&"extension"in window.chrome&&"getURL"in window.chrome.extension)t||(t=this._readFile(chrome.extension.getURL("lib/typo/dictionaries/"+e+"/"+e+".aff"))),n||(n=this._readFile(chrome.extension.getURL("lib/typo/dictionaries/"+e+"/"+e+".dic")));else{if(i.dictionaryPath)var o=i.dictionaryPath;else if("undefined"!=typeof r)var o=r+"/dictionaries";else var o="./dictionaries";t||(t=this._readFile(o+"/"+e+"/"+e+".aff")),n||(n=this._readFile(o+"/"+e+"/"+e+".dic"))}this.rules=this._parseAFF(t),this.compoundRuleCodes={};for(var a=0,l=this.compoundRules.length;l>a;a++)for(var s=this.compoundRules[a],c=0,u=s.length;u>c;c++)this.compoundRuleCodes[s[c]]=[];"ONLYINCOMPOUND"in this.flags&&(this.compoundRuleCodes[this.flags.ONLYINCOMPOUND]=[]),this.dictionaryTable=this._parseDIC(n);for(var a in this.compoundRuleCodes)0==this.compoundRuleCodes[a].length&&delete this.compoundRuleCodes[a];for(var a=0,l=this.compoundRules.length;l>a;a++){for(var f=this.compoundRules[a],h="",c=0,u=f.length;u>c;c++){var d=f[c];h+=d in this.compoundRuleCodes?"("+this.compoundRuleCodes[d].join("|")+")":d}this.compoundRules[a]=new RegExp(h,"i")}}return this};i.prototype={load:function(e){for(var t in e)this[t]=e[t];return this},_readFile:function(t,r){if(r||(r="utf8"),"undefined"!=typeof XMLHttpRequest){var i=new XMLHttpRequest;return i.open("GET",t,!1),i.overrideMimeType&&i.overrideMimeType("text/plain; charset="+r),i.send(null),i.responseText}if("undefined"!=typeof e){var o=e("fs");try{if(o.existsSync(t)){var a=o.statSync(t),l=o.openSync(t,"r"),s=new n(a.size);return o.readSync(l,s,0,s.length,null),s.toString(r,0,s.length)}console.log("Path "+t+" does not exist.")}catch(c){return console.log(c),""}}},_parseAFF:function(e){var t={};e=this._removeAffixComments(e);for(var n=e.split("\n"),r=0,i=n.length;i>r;r++){var o=n[r],a=o.split(/\s+/),l=a[0];if("PFX"==l||"SFX"==l){for(var s=a[1],c=a[2],u=parseInt(a[3],10),f=[],h=r+1,d=r+1+u;d>h;h++){var o=n[h],p=o.split(/\s+/),m=p[2],g=p[3].split("/"),v=g[0];"0"===v&&(v="");var y=this.parseRuleCodes(g[1]),x=p[4],b={};b.add=v,y.length>0&&(b.continuationClasses=y),"."!==x&&("SFX"===l?b.match=new RegExp(x+"$"):b.match=new RegExp("^"+x)),"0"!=m&&("SFX"===l?b.remove=new RegExp(m+"$"):b.remove=m),f.push(b)}t[s]={type:l,combineable:"Y"==c,entries:f},r+=u}else if("COMPOUNDRULE"===l){for(var u=parseInt(a[1],10),h=r+1,d=r+1+u;d>h;h++){var o=n[h],p=o.split(/\s+/);this.compoundRules.push(p[1])}r+=u}else if("REP"===l){var p=o.split(/\s+/);3===p.length&&this.replacementTable.push([p[1],p[2]])}else this.flags[l]=a[1]}return t},_removeAffixComments:function(e){return e=e.replace(/#.*$/gm,""),e=e.replace(/^\s\s*/m,"").replace(/\s\s*$/m,""),e=e.replace(/\n{2,}/g,"\n"),e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},_parseDIC:function(e){function t(e,t){e in r&&"object"==typeof r[e]||(r[e]=[]),r[e].push(t)}e=this._removeDicComments(e);for(var n=e.split("\n"),r={},i=1,o=n.length;o>i;i++){var a=n[i],l=a.split("/",2),s=l[0];if(l.length>1){var c=this.parseRuleCodes(l[1]);"NEEDAFFIX"in this.flags&&-1!=c.indexOf(this.flags.NEEDAFFIX)||t(s,c);for(var u=0,f=c.length;f>u;u++){var h=c[u],d=this.rules[h];if(d)for(var p=this._applyRule(s,d),m=0,g=p.length;g>m;m++){var v=p[m];if(t(v,[]),d.combineable)for(var y=u+1;f>y;y++){var x=c[y],b=this.rules[x];if(b&&b.combineable&&d.type!=b.type)for(var w=this._applyRule(v,b),k=0,S=w.length;S>k;k++){var C=w[k];t(C,[])}}}h in this.compoundRuleCodes&&this.compoundRuleCodes[h].push(s)}}else t(s.trim(),[])}return r},_removeDicComments:function(e){return e=e.replace(/^\t.*$/gm,"")},parseRuleCodes:function(e){if(!e)return[];if(!("FLAG"in this.flags))return e.split("");if("long"===this.flags.FLAG){for(var t=[],n=0,r=e.length;r>n;n+=2)t.push(e.substr(n,2));return t}return"num"===this.flags.FLAG?textCode.split(","):void 0},_applyRule:function(e,t){for(var n=t.entries,r=[],i=0,o=n.length;o>i;i++){var a=n[i];if(!a.match||e.match(a.match)){var l=e;if(a.remove&&(l=l.replace(a.remove,"")),"SFX"===t.type?l+=a.add:l=a.add+l,r.push(l),"continuationClasses"in a)for(var s=0,c=a.continuationClasses.length;c>s;s++){var u=this.rules[a.continuationClasses[s]];u&&(r=r.concat(this._applyRule(l,u)))}}}return r},check:function(e){var t=e.replace(/^\s\s*/,"").replace(/\s\s*$/,"");if(this.checkExact(t))return!0;if(t.toUpperCase()===t){var n=t[0]+t.substring(1).toLowerCase();if(this.hasFlag(n,"KEEPCASE"))return!1;if(this.checkExact(n))return!0}var r=t.toLowerCase();if(r!==t){if(this.hasFlag(r,"KEEPCASE"))return!1;if(this.checkExact(r))return!0}return!1},checkExact:function(e){var t=this.dictionaryTable[e];if("undefined"==typeof t){if("COMPOUNDMIN"in this.flags&&e.length>=this.flags.COMPOUNDMIN)for(var n=0,r=this.compoundRules.length;r>n;n++)if(e.match(this.compoundRules[n]))return!0;return!1}if("object"==typeof t){for(var n=0,r=t.length;r>n;n++)if(!this.hasFlag(e,"ONLYINCOMPOUND",t[n]))return!0;return!1}},hasFlag:function(e,t,n){if(t in this.flags){if("undefined"==typeof n)var n=Array.prototype.concat.apply([],this.dictionaryTable[e]);if(n&&-1!==n.indexOf(this.flags[t]))return!0}return!1},alphabet:"",suggest:function(e,t){function n(e){for(var t=[],n=0,r=e.length;r>n;n++){for(var i=e[n],o=[],a=0,l=i.length+1;l>a;a++)o.push([i.substring(0,a),i.substring(a,i.length)]);for(var s=[],a=0,l=o.length;l>a;a++){var u=o[a];u[1]&&s.push(u[0]+u[1].substring(1))}for(var f=[],a=0,l=o.length;l>a;a++){var u=o[a];u[1].length>1&&f.push(u[0]+u[1][1]+u[1][0]+u[1].substring(2))}for(var h=[],a=0,l=o.length;l>a;a++){var u=o[a];if(u[1])for(var d=0,p=c.alphabet.length;p>d;d++)h.push(u[0]+c.alphabet[d]+u[1].substring(1))}for(var m=[],a=0,l=o.length;l>a;a++){var u=o[a];if(u[1])for(var d=0,p=c.alphabet.length;p>d;d++)h.push(u[0]+c.alphabet[d]+u[1])}t=t.concat(s),t=t.concat(f),t=t.concat(h),t=t.concat(m)}return t}function r(e){for(var t=[],n=0;n<e.length;n++)c.check(e[n])&&t.push(e[n]);return t}function i(e){function i(e,t){return e[1]<t[1]?-1:1}for(var o=n([e]),a=n(o),l=r(o).concat(r(a)),s={},u=0,f=l.length;f>u;u++)l[u]in s?s[l[u]]+=1:s[l[u]]=1;var h=[];for(var u in s)h.push([u,s[u]]);h.sort(i).reverse();for(var d=[],u=0,f=Math.min(t,h.length);f>u;u++)c.hasFlag(h[u][0],"NOSUGGEST")||d.push(h[u][0]);return d}if(t||(t=5),this.check(e))return[];for(var o=0,a=this.replacementTable.length;a>o;o++){var l=this.replacementTable[o];if(-1!==e.indexOf(l[0])){var s=e.replace(l[0],l[1]);if(this.check(s))return[s]}}var c=this;return c.alphabet="abcdefghijklmnopqrstuvwxyz",i(e)}},"undefined"!=typeof t&&(t.exports=i)}).call(this,e("buffer").Buffer,"/node_modules/typo-js")},{buffer:3,fs:2}],19:[function(e,t,n){var r=e("codemirror");r.commands.tabAndIndentMarkdownList=function(e){var t=e.listSelections(),n=t[0].head,r=e.getStateAfter(n.line),i=r.list!==!1;if(i)return void e.execCommand("indentMore");if(e.options.indentWithTabs)e.execCommand("insertTab");else{var o=Array(e.options.tabSize+1).join(" ");e.replaceSelection(o)}},r.commands.shiftTabAndUnindentMarkdownList=function(e){var t=e.listSelections(),n=t[0].head,r=e.getStateAfter(n.line),i=r.list!==!1;if(i)return void e.execCommand("indentLess");if(e.options.indentWithTabs)e.execCommand("insertTab");else{var o=Array(e.options.tabSize+1).join(" ");e.replaceSelection(o)}}},{codemirror:10}],20:[function(e,t,n){"use strict";function r(e){return e=U?e.replace("Ctrl","Cmd"):e.replace("Cmd","Ctrl")}function i(e,t,n){e=e||{};var r=document.createElement("a");return t=void 0==t?!0:t,e.title&&t&&(r.title=a(e.title,e.action,n),U&&(r.title=r.title.replace("Ctrl","⌘"),r.title=r.title.replace("Alt","⌥"))),r.tabIndex=-1,r.className=e.className,r}function o(){var e=document.createElement("i");return e.className="separator",e.innerHTML="|",e}function a(e,t,n){var i,o=e;return t&&(i=Y(t),n[i]&&(o+=" ("+r(n[i])+")")),o}function l(e,t){t=t||e.getCursor("start");var n=e.getTokenAt(t);if(!n.type)return{};for(var r,i,o=n.type.split(" "),a={},l=0;l<o.length;l++)r=o[l],"strong"===r?a.bold=!0:"variable-2"===r?(i=e.getLine(t.line),/^\s*\d+\.\s/.test(i)?a["ordered-list"]=!0:a["unordered-list"]=!0):"atom"===r?a.quote=!0:"em"===r?a.italic=!0:"quote"===r?a.quote=!0:"strikethrough"===r?a.strikethrough=!0:"comment"===r?a.code=!0:"link"===r?a.link=!0:"tag"===r?a.image=!0:r.match(/^header(\-[1-6])?$/)&&(a[r.replace("header","heading")]=!0);return a}function s(e){var t=e.codemirror;t.setOption("fullScreen",!t.getOption("fullScreen")),t.getOption("fullScreen")?(V=document.body.style.overflow,document.body.style.overflow="hidden"):document.body.style.overflow=V;var n=t.getWrapperElement();/fullscreen/.test(n.previousSibling.className)?n.previousSibling.className=n.previousSibling.className.replace(/\s*fullscreen\b/,""):n.previousSibling.className+=" fullscreen";var r=e.toolbarElements.fullscreen;/active/.test(r.className)?r.className=r.className.replace(/\s*active\s*/g,""):r.className+=" active";var i=t.getWrapperElement().nextSibling;/editor-preview-active-side/.test(i.className)&&N(e)}function c(e){P(e,"bold",e.options.blockStyles.bold)}function u(e){P(e,"italic",e.options.blockStyles.italic)}function f(e){P(e,"strikethrough","~~")}function h(e){function t(e){if("object"!=typeof e)throw"fencing_line() takes a 'line' object (not a line number, or line text).  Got: "+typeof e+": "+e;return e.styles&&e.styles[2]&&-1!==e.styles[2].indexOf("formatting-code-block")}function n(e){return e.state.base.base||e.state.base}function r(e,r,i,o,a){i=i||e.getLineHandle(r),o=o||e.getTokenAt({line:r,ch:1}),a=a||!!i.text&&e.getTokenAt({line:r,ch:i.text.length-1});var l=o.type?o.type.split(" "):[];return a&&n(a).indentedCode?"indented":-1===l.indexOf("comment")?!1:n(o).fencedChars||n(a).fencedChars||t(i)?"fenced":"single"}function i(e,t,n,r){var i=t.line+1,o=n.line+1,a=t.line!==n.line,l=r+"\n",s="\n"+r;a&&o++,a&&0===n.ch&&(s=r+"\n",o--),E(e,!1,[l,s]),e.setSelection({line:i,ch:0},{line:o,ch:0})}var o,a,l,s=e.options.blockStyles.code,c=e.codemirror,u=c.getCursor("start"),f=c.getCursor("end"),h=c.getTokenAt({line:u.line,ch:u.ch||1}),d=c.getLineHandle(u.line),p=r(c,u.line,d,h);if("single"===p){var m=d.text.slice(0,u.ch).replace("`",""),g=d.text.slice(u.ch).replace("`","");c.replaceRange(m+g,{line:u.line,ch:0},{line:u.line,ch:99999999999999}),u.ch--,u!==f&&f.ch--,c.setSelection(u,f),c.focus()}else if("fenced"===p)if(u.line!==f.line||u.ch!==f.ch){for(o=u.line;o>=0&&(d=c.getLineHandle(o),!t(d));o--);var v,y,x,b,w=c.getTokenAt({line:o,ch:1}),k=n(w).fencedChars;t(c.getLineHandle(u.line))?(v="",y=u.line):t(c.getLineHandle(u.line-1))?(v="",y=u.line-1):(v=k+"\n",y=u.line),t(c.getLineHandle(f.line))?(x="",b=f.line,0===f.ch&&(b+=1)):0!==f.ch&&t(c.getLineHandle(f.line+1))?(x="",b=f.line+1):(x=k+"\n",b=f.line+1),0===f.ch&&(b-=1),c.operation(function(){c.replaceRange(x,{line:b,ch:0},{line:b+(x?0:1),ch:0}),c.replaceRange(v,{line:y,ch:0},{line:y+(v?0:1),ch:0})}),c.setSelection({line:y+(v?1:0),ch:0},{line:b+(v?1:-1),ch:0}),c.focus()}else{var S=u.line;if(t(c.getLineHandle(u.line))&&("fenced"===r(c,u.line+1)?(o=u.line,S=u.line+1):(a=u.line,S=u.line-1)),void 0===o)for(o=S;o>=0&&(d=c.getLineHandle(o),!t(d));o--);if(void 0===a)for(l=c.lineCount(),a=S;l>a&&(d=c.getLineHandle(a),!t(d));a++);c.operation(function(){c.replaceRange("",{line:o,ch:0},{line:o+1,ch:0}),c.replaceRange("",{line:a-1,ch:0},{line:a,ch:0})}),c.focus()}else if("indented"===p){if(u.line!==f.line||u.ch!==f.ch)o=u.line,a=f.line,0===f.ch&&a--;else{for(o=u.line;o>=0;o--)if(d=c.getLineHandle(o),!d.text.match(/^\s*$/)&&"indented"!==r(c,o,d)){o+=1;break}for(l=c.lineCount(),a=u.line;l>a;a++)if(d=c.getLineHandle(a),!d.text.match(/^\s*$/)&&"indented"!==r(c,a,d)){a-=1;break}}var C=c.getLineHandle(a+1),L=C&&c.getTokenAt({line:a+1,ch:C.text.length-1}),T=L&&n(L).indentedCode;T&&c.replaceRange("\n",{line:a+1,ch:0});for(var M=o;a>=M;M++)c.indentLine(M,"subtract");c.focus()}else{var N=u.line===f.line&&u.ch===f.ch&&0===u.ch,A=u.line!==f.line;N||A?i(c,u,f,s):E(c,!1,["`","`"])}}function d(e){var t=e.codemirror;I(t,"quote")}function p(e){var t=e.codemirror;O(t,"smaller")}function m(e){var t=e.codemirror;O(t,"bigger")}function g(e){var t=e.codemirror;O(t,void 0,1)}function v(e){var t=e.codemirror;O(t,void 0,2)}function y(e){var t=e.codemirror;O(t,void 0,3)}function x(e){var t=e.codemirror;I(t,"unordered-list")}function b(e){var t=e.codemirror;I(t,"ordered-list")}function w(e){var t=e.codemirror;R(t)}function k(e){var t=e.codemirror,n=l(t),r=e.options,i="http://";return r.promptURLs&&(i=prompt(r.promptTexts.link),!i)?!1:void E(t,n.link,r.insertTexts.link,i)}function S(e){var t=e.codemirror,n=l(t),r=e.options,i="http://";return r.promptURLs&&(i=prompt(r.promptTexts.image),!i)?!1:void E(t,n.image,r.insertTexts.image,i)}function C(e){var t=e.codemirror,n=l(t),r=e.options;E(t,n.table,r.insertTexts.table)}function L(e){var t=e.codemirror,n=l(t),r=e.options;E(t,n.image,r.insertTexts.horizontalRule)}function T(e){var t=e.codemirror;t.undo(),t.focus()}function M(e){var t=e.codemirror;t.redo(),t.focus()}function N(e){var t=e.codemirror,n=t.getWrapperElement(),r=n.nextSibling,i=e.toolbarElements["side-by-side"],o=!1;/editor-preview-active-side/.test(r.className)?(r.className=r.className.replace(/\s*editor-preview-active-side\s*/g,""),i.className=i.className.replace(/\s*active\s*/g,""),n.className=n.className.replace(/\s*CodeMirror-sided\s*/g," ")):(setTimeout(function(){t.getOption("fullScreen")||s(e),r.className+=" editor-preview-active-side"},1),i.className+=" active",n.className+=" CodeMirror-sided",o=!0);var a=n.lastChild;if(/editor-preview-active/.test(a.className)){a.className=a.className.replace(/\s*editor-preview-active\s*/g,"");var l=e.toolbarElements.preview,c=n.previousSibling;l.className=l.className.replace(/\s*active\s*/g,""),c.className=c.className.replace(/\s*disabled-for-preview*/g,"")}var u=function(){r.innerHTML=e.options.previewRender(e.value(),r)};t.sideBySideRenderingFunction||(t.sideBySideRenderingFunction=u),o?(r.innerHTML=e.options.previewRender(e.value(),r),t.on("update",t.sideBySideRenderingFunction)):t.off("update",t.sideBySideRenderingFunction),t.refresh()}function A(e){var t=e.codemirror,n=t.getWrapperElement(),r=n.previousSibling,i=e.options.toolbar?e.toolbarElements.preview:!1,o=n.lastChild;o&&/editor-preview/.test(o.className)||(o=document.createElement("div"),o.className="editor-preview",n.appendChild(o)),/editor-preview-active/.test(o.className)?(o.className=o.className.replace(/\s*editor-preview-active\s*/g,""),i&&(i.className=i.className.replace(/\s*active\s*/g,""),r.className=r.className.replace(/\s*disabled-for-preview*/g,""))):(setTimeout(function(){o.className+=" editor-preview-active"},1),i&&(i.className+=" active",r.className+=" disabled-for-preview")),o.innerHTML=e.options.previewRender(e.value(),o);var a=t.getWrapperElement().nextSibling;/editor-preview-active-side/.test(a.className)&&N(e)}function E(e,t,n,r){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className)){var i,o=n[0],a=n[1],l=e.getCursor("start"),s=e.getCursor("end");r&&(a=a.replace("#url#",r)),t?(i=e.getLine(l.line),o=i.slice(0,l.ch),a=i.slice(l.ch),e.replaceRange(o+a,{line:l.line,ch:0})):(i=e.getSelection(),e.replaceSelection(o+i+a),l.ch+=o.length,l!==s&&(s.ch+=o.length)),e.setSelection(l,s),e.focus()}}function O(e,t,n){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className)){for(var r=e.getCursor("start"),i=e.getCursor("end"),o=r.line;o<=i.line;o++)!function(r){var i=e.getLine(r),o=i.search(/[^#]/);i=void 0!==t?0>=o?"bigger"==t?"###### "+i:"# "+i:6==o&&"smaller"==t?i.substr(7):1==o&&"bigger"==t?i.substr(2):"bigger"==t?i.substr(1):"#"+i:1==n?0>=o?"# "+i:o==n?i.substr(o+1):"# "+i.substr(o+1):2==n?0>=o?"## "+i:o==n?i.substr(o+1):"## "+i.substr(o+1):0>=o?"### "+i:o==n?i.substr(o+1):"### "+i.substr(o+1),e.replaceRange(i,{line:r,ch:0},{line:r,ch:99999999999999})}(o);e.focus()}}function I(e,t){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className)){for(var n=l(e),r=e.getCursor("start"),i=e.getCursor("end"),o={quote:/^(\s*)\>\s+/,"unordered-list":/^(\s*)(\*|\-|\+)\s+/,"ordered-list":/^(\s*)\d+\.\s+/},a={quote:"> ","unordered-list":"* ","ordered-list":"1. "},s=r.line;s<=i.line;s++)!function(r){var i=e.getLine(r);i=n[t]?i.replace(o[t],"$1"):a[t]+i,e.replaceRange(i,{line:r,ch:0},{line:r,ch:99999999999999})}(s);e.focus()}}function P(e,t,n,r){if(!/editor-preview-active/.test(e.codemirror.getWrapperElement().lastChild.className)){r="undefined"==typeof r?n:r;var i,o=e.codemirror,a=l(o),s=n,c=r,u=o.getCursor("start"),f=o.getCursor("end");a[t]?(i=o.getLine(u.line),s=i.slice(0,u.ch),c=i.slice(u.ch),"bold"==t?(s=s.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,""),c=c.replace(/(\*\*|__)/,"")):"italic"==t?(s=s.replace(/(\*|_)(?![\s\S]*(\*|_))/,""),c=c.replace(/(\*|_)/,"")):"strikethrough"==t&&(s=s.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,""),c=c.replace(/(\*\*|~~)/,"")),o.replaceRange(s+c,{line:u.line,ch:0},{line:u.line,ch:99999999999999}),"bold"==t||"strikethrough"==t?(u.ch-=2,u!==f&&(f.ch-=2)):"italic"==t&&(u.ch-=1,u!==f&&(f.ch-=1))):(i=o.getSelection(),"bold"==t?(i=i.split("**").join(""),i=i.split("__").join("")):"italic"==t?(i=i.split("*").join(""),i=i.split("_").join("")):"strikethrough"==t&&(i=i.split("~~").join("")),o.replaceSelection(s+i+c),u.ch+=n.length,f.ch=u.ch+i.length),o.setSelection(u,f),o.focus()}}function R(e){if(!/editor-preview-active/.test(e.getWrapperElement().lastChild.className))for(var t,n=e.getCursor("start"),r=e.getCursor("end"),i=n.line;i<=r.line;i++)t=e.getLine(i),t=t.replace(/^[ ]*([# ]+|\*|\-|[> ]+|[0-9]+(.|\)))[ ]*/,""),e.replaceRange(t,{line:i,ch:0},{line:i,ch:99999999999999})}function D(e,t){for(var n in t)t.hasOwnProperty(n)&&(t[n]instanceof Array?e[n]=t[n].concat(e[n]instanceof Array?e[n]:[]):null!==t[n]&&"object"==typeof t[n]&&t[n].constructor===Object?e[n]=D(e[n]||{},t[n]):e[n]=t[n]);return e}function H(e){for(var t=1;t<arguments.length;t++)e=D(e,arguments[t]);return e}function W(e){var t=/[a-zA-Z0-9_\u0392-\u03c9\u0410-\u04F9]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af]+/g,n=e.match(t),r=0;if(null===n)return r;for(var i=0;i<n.length;i++)r+=n[i].charCodeAt(0)>=19968?n[i].length:1;return r}function B(e){e=e||{},e.parent=this;var t=!0;if(e.autoDownloadFontAwesome===!1&&(t=!1),e.autoDownloadFontAwesome!==!0)for(var n=document.styleSheets,r=0;r<n.length;r++)n[r].href&&n[r].href.indexOf("//maxcdn.bootstrapcdn.com/font-awesome/")>-1&&(t=!1);if(t){var i=document.createElement("link");i.rel="stylesheet",i.href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css",document.getElementsByTagName("head")[0].appendChild(i)}if(e.element)this.element=e.element;else if(null===e.element)return void console.log("SimpleMDE: Error. No element was found.");if(void 0===e.toolbar){e.toolbar=[];for(var o in K)K.hasOwnProperty(o)&&(-1!=o.indexOf("separator-")&&e.toolbar.push("|"),(K[o]["default"]===!0||e.showIcons&&e.showIcons.constructor===Array&&-1!=e.showIcons.indexOf(o))&&e.toolbar.push(o))}e.hasOwnProperty("status")||(e.status=["autosave","lines","words","cursor"]),e.previewRender||(e.previewRender=function(e){return this.parent.markdown(e)}),e.parsingConfig=H({highlightFormatting:!0},e.parsingConfig||{}),e.insertTexts=H({},X,e.insertTexts||{}),e.promptTexts=Z,e.blockStyles=H({},J,e.blockStyles||{}),e.shortcuts=H({},G,e.shortcuts||{}),void 0!=e.autosave&&void 0!=e.autosave.unique_id&&""!=e.autosave.unique_id&&(e.autosave.uniqueId=e.autosave.unique_id),this.options=e,this.render(),!e.initialValue||this.options.autosave&&this.options.autosave.foundSavedValue===!0||this.value(e.initialValue)}function _(){if("object"!=typeof localStorage)return!1;try{localStorage.setItem("smde_localStorage",1),localStorage.removeItem("smde_localStorage")}catch(e){return!1}return!0}var F=e("codemirror");e("codemirror/addon/edit/continuelist.js"),e("./codemirror/tablist"),e("codemirror/addon/display/fullscreen.js"),e("codemirror/mode/markdown/markdown.js"),e("codemirror/addon/mode/overlay.js"),e("codemirror/addon/display/placeholder.js"),e("codemirror/addon/selection/mark-selection.js"),e("codemirror/mode/gfm/gfm.js"),e("codemirror/mode/xml/xml.js");var z=e("codemirror-spell-checker"),j=e("marked"),U=/Mac/.test(navigator.platform),q={toggleBold:c,toggleItalic:u,drawLink:k,toggleHeadingSmaller:p,toggleHeadingBigger:m,drawImage:S,toggleBlockquote:d,toggleOrderedList:b,toggleUnorderedList:x,toggleCodeBlock:h,togglePreview:A,toggleStrikethrough:f,toggleHeading1:g,toggleHeading2:v,toggleHeading3:y,cleanBlock:w,drawTable:C,drawHorizontalRule:L,undo:T,redo:M,toggleSideBySide:N,toggleFullScreen:s},G={toggleBold:"Cmd-B",toggleItalic:"Cmd-I",drawLink:"Cmd-K",toggleHeadingSmaller:"Cmd-H",toggleHeadingBigger:"Shift-Cmd-H",cleanBlock:"Cmd-E",drawImage:"Cmd-Alt-I",toggleBlockquote:"Cmd-'",toggleOrderedList:"Cmd-Alt-L",toggleUnorderedList:"Cmd-L",toggleCodeBlock:"Cmd-Alt-C",togglePreview:"Cmd-P",toggleSideBySide:"F9",toggleFullScreen:"F11"},Y=function(e){for(var t in q)if(q[t]===e)return t;return null},$=function(){var e=!1;return function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0);
share/assets/misc/simplemde/simplemde.min.js:15:}(navigator.userAgent||navigator.vendor||window.opera),e},V="",K={bold:{name:"bold",action:c,className:"fa fa-bold",title:"Bold","default":!0},italic:{name:"italic",action:u,className:"fa fa-italic",title:"Italic","default":!0},strikethrough:{name:"strikethrough",action:f,className:"fa fa-strikethrough",title:"Strikethrough"},heading:{name:"heading",action:p,className:"fa fa-header",title:"Heading","default":!0},"heading-smaller":{name:"heading-smaller",action:p,className:"fa fa-header fa-header-x fa-header-smaller",title:"Smaller Heading"},"heading-bigger":{name:"heading-bigger",action:m,className:"fa fa-header fa-header-x fa-header-bigger",title:"Bigger Heading"},"heading-1":{name:"heading-1",action:g,className:"fa fa-header fa-header-x fa-header-1",title:"Big Heading"},"heading-2":{name:"heading-2",action:v,className:"fa fa-header fa-header-x fa-header-2",title:"Medium Heading"},"heading-3":{name:"heading-3",action:y,className:"fa fa-header fa-header-x fa-header-3",title:"Small Heading"},"separator-1":{name:"separator-1"},code:{name:"code",action:h,className:"fa fa-code",title:"Code"},quote:{name:"quote",action:d,className:"fa fa-quote-left",title:"Quote","default":!0},"unordered-list":{name:"unordered-list",action:x,className:"fa fa-list-ul",title:"Generic List","default":!0},"ordered-list":{name:"ordered-list",action:b,className:"fa fa-list-ol",title:"Numbered List","default":!0},"clean-block":{name:"clean-block",action:w,className:"fa fa-eraser fa-clean-block",title:"Clean block"},"separator-2":{name:"separator-2"},link:{name:"link",action:k,className:"fa fa-link",title:"Create Link","default":!0},image:{name:"image",action:S,className:"fa fa-picture-o",title:"Insert Image","default":!0},table:{name:"table",action:C,className:"fa fa-table",title:"Insert Table"},"horizontal-rule":{name:"horizontal-rule",action:L,className:"fa fa-minus",title:"Insert Horizontal Line"},"separator-3":{name:"separator-3"},preview:{name:"preview",action:A,className:"fa fa-eye no-disable",title:"Toggle Preview","default":!0},"side-by-side":{name:"side-by-side",action:N,className:"fa fa-columns no-disable no-mobile",title:"Toggle Side by Side","default":!0},fullscreen:{name:"fullscreen",action:s,className:"fa fa-arrows-alt no-disable no-mobile",title:"Toggle Fullscreen","default":!0},"separator-4":{name:"separator-4"},guide:{name:"guide",action:"https://simplemde.com/markdown-guide",className:"fa fa-question-circle",title:"Markdown Guide","default":!0},"separator-5":{name:"separator-5"},undo:{name:"undo",action:T,className:"fa fa-undo no-disable",title:"Undo"},redo:{name:"redo",action:M,className:"fa fa-repeat no-disable",title:"Redo"}},X={link:["[","](#url#)"],image:["![](","#url#)"],table:["","\n\n| Column 1 | Column 2 | Column 3 |\n| -------- | -------- | -------- |\n| Text     | Text     | Text     |\n\n"],horizontalRule:["","\n\n-----\n\n"]},Z={link:"URL for the link:",image:"URL of the image:"},J={bold:"**",code:"```",italic:"*"};B.prototype.markdown=function(e){if(j){var t={};return this.options&&this.options.renderingConfig&&this.options.renderingConfig.singleLineBreaks===!1?t.breaks=!1:t.breaks=!0,this.options&&this.options.renderingConfig&&this.options.renderingConfig.codeSyntaxHighlighting===!0&&window.hljs&&(t.highlight=function(e){return window.hljs.highlightAuto(e).value}),j.setOptions(t),j(e)}},B.prototype.render=function(e){if(e||(e=this.element||document.getElementsByTagName("textarea")[0]),!this._rendered||this._rendered!==e){this.element=e;var t=this.options,n=this,i={};for(var o in t.shortcuts)null!==t.shortcuts[o]&&null!==q[o]&&!function(e){i[r(t.shortcuts[e])]=function(){q[e](n)}}(o);i.Enter="newlineAndIndentContinueMarkdownList",i.Tab="tabAndIndentMarkdownList",i["Shift-Tab"]="shiftTabAndUnindentMarkdownList",i.Esc=function(e){e.getOption("fullScreen")&&s(n)},document.addEventListener("keydown",function(e){e=e||window.event,27==e.keyCode&&n.codemirror.getOption("fullScreen")&&s(n)},!1);var a,l;if(t.spellChecker!==!1?(a="spell-checker",l=t.parsingConfig,l.name="gfm",l.gitHubSpice=!1,z({codeMirrorInstance:F})):(a=t.parsingConfig,a.name="gfm",a.gitHubSpice=!1),this.codemirror=F.fromTextArea(e,{mode:a,backdrop:l,theme:"paper",tabSize:void 0!=t.tabSize?t.tabSize:2,indentUnit:void 0!=t.tabSize?t.tabSize:2,indentWithTabs:t.indentWithTabs!==!1,lineNumbers:!1,autofocus:t.autofocus===!0,extraKeys:i,lineWrapping:t.lineWrapping!==!1,allowDropFileTypes:["text/plain"],placeholder:t.placeholder||e.getAttribute("placeholder")||"",styleSelectedText:void 0!=t.styleSelectedText?t.styleSelectedText:!0}),t.forceSync===!0){var c=this.codemirror;c.on("change",function(){c.save()})}this.gui={},t.toolbar!==!1&&(this.gui.toolbar=this.createToolbar()),t.status!==!1&&(this.gui.statusbar=this.createStatusbar()),void 0!=t.autosave&&t.autosave.enabled===!0&&this.autosave(),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element;var u=this.codemirror;setTimeout(function(){u.refresh()}.bind(u),0)}},B.prototype.autosave=function(){if(_()){var e=this;if(void 0==this.options.autosave.uniqueId||""==this.options.autosave.uniqueId)return void console.log("SimpleMDE: You must set a uniqueId to use the autosave feature");null!=e.element.form&&void 0!=e.element.form&&e.element.form.addEventListener("submit",function(){localStorage.removeItem("smde_"+e.options.autosave.uniqueId)}),this.options.autosave.loaded!==!0&&("string"==typeof localStorage.getItem("smde_"+this.options.autosave.uniqueId)&&""!=localStorage.getItem("smde_"+this.options.autosave.uniqueId)&&(this.codemirror.setValue(localStorage.getItem("smde_"+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0),localStorage.setItem("smde_"+this.options.autosave.uniqueId,e.value());var t=document.getElementById("autosaved");if(null!=t&&void 0!=t&&""!=t){var n=new Date,r=n.getHours(),i=n.getMinutes(),o="am",a=r;a>=12&&(a=r-12,o="pm"),0==a&&(a=12),i=10>i?"0"+i:i,t.innerHTML="Autosaved: "+a+":"+i+" "+o}this.autosaveTimeoutId=setTimeout(function(){e.autosave()},this.options.autosave.delay||1e4)}else console.log("SimpleMDE: localStorage not available, cannot autosave")},B.prototype.clearAutosavedValue=function(){if(_()){if(void 0==this.options.autosave||void 0==this.options.autosave.uniqueId||""==this.options.autosave.uniqueId)return void console.log("SimpleMDE: You must set a uniqueId to clear the autosave value");localStorage.removeItem("smde_"+this.options.autosave.uniqueId)}else console.log("SimpleMDE: localStorage not available, cannot autosave")},B.prototype.createSideBySide=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;n&&/editor-preview-side/.test(n.className)||(n=document.createElement("div"),n.className="editor-preview-side",t.parentNode.insertBefore(n,t.nextSibling));var r=!1,i=!1;return e.on("scroll",function(e){if(r)return void(r=!1);i=!0;var t=e.getScrollInfo().height-e.getScrollInfo().clientHeight,o=parseFloat(e.getScrollInfo().top)/t,a=(n.scrollHeight-n.clientHeight)*o;n.scrollTop=a}),n.onscroll=function(){if(i)return void(i=!1);r=!0;var t=n.scrollHeight-n.clientHeight,o=parseFloat(n.scrollTop)/t,a=(e.getScrollInfo().height-e.getScrollInfo().clientHeight)*o;e.scrollTo(0,a)},n},B.prototype.createToolbar=function(e){if(e=e||this.options.toolbar,e&&0!==e.length){var t;for(t=0;t<e.length;t++)void 0!=K[e[t]]&&(e[t]=K[e[t]]);var n=document.createElement("div");n.className="editor-toolbar";var r=this,a={};for(r.toolbar=e,t=0;t<e.length;t++)if(("guide"!=e[t].name||r.options.toolbarGuideIcon!==!1)&&!(r.options.hideIcons&&-1!=r.options.hideIcons.indexOf(e[t].name)||("fullscreen"==e[t].name||"side-by-side"==e[t].name)&&$())){if("|"===e[t]){for(var s=!1,c=t+1;c<e.length;c++)"|"===e[c]||r.options.hideIcons&&-1!=r.options.hideIcons.indexOf(e[c].name)||(s=!0);if(!s)continue}!function(e){var t;t="|"===e?o():i(e,r.options.toolbarTips,r.options.shortcuts),e.action&&("function"==typeof e.action?t.onclick=function(t){t.preventDefault(),e.action(r)}:"string"==typeof e.action&&(t.href=e.action,t.target="_blank")),a[e.name||e]=t,n.appendChild(t)}(e[t])}r.toolbarElements=a;var u=this.codemirror;u.on("cursorActivity",function(){var e=l(u);for(var t in a)!function(t){var n=a[t];e[t]?n.className+=" active":"fullscreen"!=t&&"side-by-side"!=t&&(n.className=n.className.replace(/\s*active\s*/g,""))}(t)});var f=u.getWrapperElement();return f.parentNode.insertBefore(n,f),n}},B.prototype.createStatusbar=function(e){e=e||this.options.status;var t=this.options,n=this.codemirror;if(e&&0!==e.length){var r,i,o,a=[];for(r=0;r<e.length;r++)if(i=void 0,o=void 0,"object"==typeof e[r])a.push({className:e[r].className,defaultValue:e[r].defaultValue,onUpdate:e[r].onUpdate});else{var l=e[r];"words"===l?(o=function(e){e.innerHTML=W(n.getValue())},i=function(e){e.innerHTML=W(n.getValue())}):"lines"===l?(o=function(e){e.innerHTML=n.lineCount()},i=function(e){e.innerHTML=n.lineCount()}):"cursor"===l?(o=function(e){e.innerHTML="0:0"},i=function(e){var t=n.getCursor();e.innerHTML=t.line+":"+t.ch}):"autosave"===l&&(o=function(e){void 0!=t.autosave&&t.autosave.enabled===!0&&e.setAttribute("id","autosaved")}),a.push({className:l,defaultValue:o,onUpdate:i})}var s=document.createElement("div");for(s.className="editor-statusbar",r=0;r<a.length;r++){var c=a[r],u=document.createElement("span");u.className=c.className,"function"==typeof c.defaultValue&&c.defaultValue(u),"function"==typeof c.onUpdate&&this.codemirror.on("update",function(e,t){return function(){t.onUpdate(e)}}(u,c)),s.appendChild(u)}var f=this.codemirror.getWrapperElement();return f.parentNode.insertBefore(s,f.nextSibling),s}},B.prototype.value=function(e){return void 0===e?this.codemirror.getValue():(this.codemirror.getDoc().setValue(e),this)},B.toggleBold=c,B.toggleItalic=u,B.toggleStrikethrough=f,B.toggleBlockquote=d,B.toggleHeadingSmaller=p,B.toggleHeadingBigger=m,B.toggleHeading1=g,B.toggleHeading2=v,B.toggleHeading3=y,B.toggleCodeBlock=h,B.toggleUnorderedList=x,B.toggleOrderedList=b,B.cleanBlock=w,B.drawLink=k,B.drawImage=S,B.drawTable=C,B.drawHorizontalRule=L,B.undo=T,B.redo=M,B.togglePreview=A,B.toggleSideBySide=N,B.toggleFullScreen=s,B.prototype.toggleBold=function(){c(this)},B.prototype.toggleItalic=function(){u(this)},B.prototype.toggleStrikethrough=function(){f(this)},B.prototype.toggleBlockquote=function(){d(this)},B.prototype.toggleHeadingSmaller=function(){p(this)},B.prototype.toggleHeadingBigger=function(){m(this)},B.prototype.toggleHeading1=function(){g(this)},B.prototype.toggleHeading2=function(){v(this)},B.prototype.toggleHeading3=function(){y(this)},B.prototype.toggleCodeBlock=function(){h(this)},B.prototype.toggleUnorderedList=function(){x(this)},B.prototype.toggleOrderedList=function(){b(this)},B.prototype.cleanBlock=function(){w(this)},B.prototype.drawLink=function(){k(this)},B.prototype.drawImage=function(){S(this)},B.prototype.drawTable=function(){C(this)},B.prototype.drawHorizontalRule=function(){L(this)},B.prototype.undo=function(){T(this)},B.prototype.redo=function(){M(this)},B.prototype.togglePreview=function(){A(this)},B.prototype.toggleSideBySide=function(){N(this)},B.prototype.toggleFullScreen=function(){s(this)},B.prototype.isPreviewActive=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.lastChild;return/editor-preview-active/.test(n.className)},B.prototype.isSideBySideActive=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;return/editor-preview-active-side/.test(n.className)},B.prototype.isFullscreenActive=function(){var e=this.codemirror;return e.getOption("fullScreen")},B.prototype.getState=function(){var e=this.codemirror;return l(e)},B.prototype.toTextArea=function(){var e=this.codemirror,t=e.getWrapperElement();t.parentNode&&(this.gui.toolbar&&t.parentNode.removeChild(this.gui.toolbar),this.gui.statusbar&&t.parentNode.removeChild(this.gui.statusbar),this.gui.sideBySide&&t.parentNode.removeChild(this.gui.sideBySide)),e.toTextArea(),this.autosaveTimeoutId&&(clearTimeout(this.autosaveTimeoutId),this.autosaveTimeoutId=void 0,this.clearAutosavedValue())},t.exports=B},{"./codemirror/tablist":19,codemirror:10,"codemirror-spell-checker":4,"codemirror/addon/display/fullscreen.js":5,"codemirror/addon/display/placeholder.js":6,"codemirror/addon/edit/continuelist.js":7,"codemirror/addon/mode/overlay.js":8,"codemirror/addon/selection/mark-selection.js":9,"codemirror/mode/gfm/gfm.js":11,"codemirror/mode/markdown/markdown.js":12,"codemirror/mode/xml/xml.js":14,marked:17}]},{},[20])(20)});
share/assets/misc/simplemde/stylesheet.css:1:*{box-sizing:border-box}body{padding:0;margin:0;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;color:#606c71;}a{color:#1e6bb8;text-decoration:none;}a:hover{text-decoration:underline}.btn{display:inline-block;margin-bottom:1rem;color:rgba(255,255,255,0.7);background-color:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.2);border-style:solid;border-width:1px;border-radius:0.3rem;transition:color 0.2s,background-color 0.2s,border-color 0.2s;}.btn+.btn{margin-left:1rem}.btn:hover{color:rgba(255,255,255,0.8);text-decoration:none;background-color:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.3);}@media screen and (min-width: 64em) {.btn{padding:0.75rem 1rem}}@media screen and (min-width: 42em) and (max-width: 64em) {.btn{padding:0.6rem 0.9rem;font-size:0.9rem;}}@media screen and (max-width: 42em) {.btn{display:block;width:100%;padding:0.75rem;font-size:0.9rem;}.btn+.btn{margin-top:1rem;margin-left:0;}}.page-header{color:#fff;text-align:center;background-color:#159957;background-image:linear-gradient(120deg,#155799,#159957);}@media screen and (min-width: 64em) {.page-header{padding:5rem 6rem}}@media screen and (min-width: 42em) and (max-width: 64em) {.page-header{padding:3rem 4rem}}@media screen and (max-width: 42em) {.page-header{padding:2rem 1rem}}.project-name{margin-top:0;margin-bottom:0.1rem;}@media screen and (min-width: 64em) {.project-name{font-size:3.25rem}}@media screen and (min-width: 42em) and (max-width: 64em) {.project-name{font-size:2.25rem}}@media screen and (max-width: 42em) {.project-name{font-size:1.75rem}}.project-tagline{margin-bottom:2rem;font-weight:normal;opacity:0.7;}@media screen and (min-width: 64em) {.project-tagline{font-size:1.25rem}}@media screen and (min-width: 42em) and (max-width: 64em) {.project-tagline{font-size:1.15rem}}@media screen and (max-width: 42em) {.project-tagline{font-size:1rem}}.main-content :first-child{margin-top:0}.main-content img{max-width:100%}.main-content>h1,.main-content>h2,.main-content>h3,.main-content>h4,.main-content>h5,.main-content>h6{margin-top:2rem;margin-bottom:1rem;font-weight:normal;color:#159957;}.main-content p{margin-bottom:1em}.main-content code{padding:2px 4px;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:0.9rem;color:#383e41;background-color:#f3f6fa;border-radius:0.3rem;}.main-content pre{padding:0.8rem;margin-top:0;margin-bottom:1rem;font:1rem Consolas,"Liberation Mono",Menlo,Courier,monospace;color:#567482;word-wrap:normal;background-color:#f3f6fa;border:solid 1px #dce6f0;border-radius:0.3rem;}.main-content pre>code{padding:0;margin:0;font-size:0.9rem;color:#567482;word-break:normal;white-space:pre;background:transparent;border:0;}.main-content .highlight{margin-bottom:1rem}.main-content .highlight pre{margin-bottom:0;word-break:normal;}.main-content .highlight pre,.main-content pre{padding:0.8rem;overflow:auto;font-size:0.9rem;line-height:1.45;border-radius:0.3rem;}.main-content pre code,.main-content pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0;}.main-content pre code:before,.main-content pre code:after,.main-content pre tt:before,.main-content pre tt:after{content:normal}.main-content ul,.main-content ol{margin-top:0}.main-content blockquote{padding:0 1rem;margin-left:0;color:#819198;border-left:0.3rem solid #dce6f0;}.main-content blockquote>:first-child{margin-top:0}.main-content blockquote>:last-child{margin-bottom:0}.main-content table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all;}.main-content table th{font-weight:bold}.main-content table th,.main-content table td{padding:0.5rem 1rem;border:1px solid #e9ebec;}.main-content dl{padding:0}.main-content dl dt{padding:0;margin-top:1rem;font-size:1rem;font-weight:bold;}.main-content dl dd{padding:0;margin-bottom:1rem;}.main-content hr{height:2px;padding:0;margin:1rem 0;background-color:#eff0f1;border:0;}@media screen and (min-width: 64em) {.main-content{max-width:64rem;padding:2rem 6rem;margin:0 auto;font-size:1.1rem;}}@media screen and (min-width: 42em) and (max-width: 64em) {.main-content{padding:2rem 4rem;font-size:1.1rem;}}@media screen and (max-width: 42em) {.main-content{padding:2rem 1rem;font-size:1rem;}}.site-footer{padding-top:2rem;margin-top:2rem;border-top:solid 1px #eff0f1;}.site-footer-owner{display:block;font-weight:bold;}.site-footer-credits{font-style:italic;color:#819198;}@media screen and (min-width: 64em) {.site-footer{font-size:1rem}}@media screen and (min-width: 42em) and (max-width: 64em) {.site-footer{font-size:1rem}}@media screen and (max-width: 42em) {.site-footer{font-size:0.9rem}}
Binary file share/coreschema/ref_sqlite.db matches
share/devel/bootstrap/MyRapidApp.pm.tt:7:use Catalyst qw/[%- FOREACH plugin IN plugins %]
share/devel/bootstrap/MyRapidApp.pm.tt:9:[%- END %]
share/devel/bootstrap/MyRapidApp.pm.tt:16:__PACKAGE__->config(
share/devel/bootstrap/MyRapidApp.pm.tt:20:[%- cnf_section %]
share/devel/bootstrap/MyRapidApp.pm.tt:21:[% END -%]
share/devel/bootstrap/MyRapidApp.pm.tt:25:__PACKAGE__->setup();
share/devel/bootstrap/MyRapidApp.pm.tt:30:# ---
share/devel/bootstrap/MyRapidApp.pm.tt:33:# ---
share/devel/bootstrap/MyRapidApp.pm.tt:40:[% name %] - Catalyst/RapidApp based application
share/devel/bootstrap/app.psgi.tt:3:  $Bin = file($0)->parent->stringify; # Like FindBin
share/devel/bootstrap/app.psgi.tt:10:Plack::Util::load_psgi("$Bin/[%- appprefix -%].psgi")
share/devel/bootstrap/cpanfile.tt:1:# -- [% name %] cpanfile
share/devel/bootstrap/cpanfile.tt:6:#   cpanm --installdeps .
share/devel/bootstrap/cpanfile.tt:9:# --
share/devel/bootstrap/model_NAME_updater.pl.tt:25:[%- IF from_ddl -%] 'from-ddl+' => \$from_ddl, [%- END -%]
share/devel/bootstrap/model_NAME_updater.pl.tt:35:  [%- IF from_ddl -%] $from_ddl = 1; [%- END -%]
share/devel/bootstrap/model_NAME_updater.pl.tt:48:my $app_class   = '[%- name -%]';
share/devel/bootstrap/model_NAME_updater.pl.tt:49:my $model_class = '[%- model_class -%]';
share/devel/bootstrap/model_NAME_updater.pl.tt:56:my $appfile = file($applib,$pm)->absolute->resolve;
share/devel/bootstrap/model_NAME_updater.pl.tt:66:  $model_class->config->{schema_class}, 
share/devel/bootstrap/model_NAME_updater.pl.tt:67:  $model_class->config->{connect_info}{dsn},
share/devel/bootstrap/model_NAME_updater.pl.tt:68:  $model_class->config->{connect_info}{user}, 
share/devel/bootstrap/model_NAME_updater.pl.tt:69:  $model_class->config->{connect_info}{password}
share/devel/bootstrap/model_NAME_updater.pl.tt:76:  my $ddl = file($approot,'[%- from_ddl -%]')->resolve;
share/devel/bootstrap/model_NAME_updater.pl.tt:79:  die "malformed dsn '$dsn' - expected it to start with 'dbi:'" unless ($dbi eq 'dbi');
share/devel/bootstrap/model_NAME_updater.pl.tt:82:    " - only 'SQLite' is supported"
share/devel/bootstrap/model_NAME_updater.pl.tt:92:  my $sqlt = file( $model_class->can('_sqlt_db_path') 
share/devel/bootstrap/model_NAME_updater.pl.tt:93:    ? $model_class->_sqlt_db_path() 
share/devel/bootstrap/model_NAME_updater.pl.tt:98:    "Regenerating SQLite database from DDL - EXISTING DATA WILL BE DESTROYED!",'',
share/devel/bootstrap/model_NAME_updater.pl.tt:104:    print "\nCalled with --go - proceeding without confirmation...\n";
share/devel/bootstrap/model_NAME_updater.pl.tt:109:      "(tip: call with --go to skip this check)",
share/devel/bootstrap/model_NAME_updater.pl.tt:116:      print "Didn't get 'go' -- exiting.\n";
share/devel/bootstrap/model_NAME_updater.pl.tt:121:  my $ddl_text = $ddl->slurp;
share/devel/bootstrap/model_NAME_updater.pl.tt:124:  my $sqlt_tmp = file($sqlt->parent, join('','.',$sqlt->basename,'.tmp'));
share/devel/bootstrap/model_NAME_updater.pl.tt:125:  while(-e $sqlt_tmp) {
share/devel/bootstrap/model_NAME_updater.pl.tt:126:    $sqlt_tmp = file($sqlt->parent, join('','.',$sqlt->basename,'.tmp.',++$i));
share/devel/bootstrap/model_NAME_updater.pl.tt:129:  print "\n-->> calling system command:  sqlite3 " . $sqlt_tmp->relative . ' < ' . $ddl->relative . '  ';
share/devel/bootstrap/model_NAME_updater.pl.tt:132:  my $exit = $result->{exit_code};
share/devel/bootstrap/model_NAME_updater.pl.tt:136:    print " -- non-zero exit, removing temp file " . $sqlt_tmp->relative . " -- \n";
share/devel/bootstrap/model_NAME_updater.pl.tt:137:    $sqlt_tmp->remove;
share/devel/bootstrap/model_NAME_updater.pl.tt:138:    die $result->{err_msg};
share/devel/bootstrap/model_NAME_updater.pl.tt:141:    print join(' ',"-->> mv",$sqlt_tmp->relative,$sqlt->relative);
share/devel/bootstrap/model_NAME_updater.pl.tt:142:    $sqlt->remove if (-f $sqlt);
share/devel/bootstrap/model_NAME_updater.pl.tt:143:    $sqlt_tmp->move_to($sqlt);
share/devel/bootstrap/model_NAME_updater.pl.tt:157:  print "\nDumping schema \"$schema_class\" to \"" . file($applib)->resolve->relative . "\"\n";
share/devel/bootstrap/model_NAME_updater.pl.tt:180:  dir($applib)->contains($pm_path) or die "$pm_path is not within the local dir!";
share/devel/bootstrap/model_NAME_updater.pl.tt:182:  $pm_path = $pm_path->resolve->absolute;
share/devel/bootstrap/model_NAME_updater.pl.tt:183:  my $appdir = dir($approot)->resolve->absolute;
share/devel/bootstrap/model_NAME_updater.pl.tt:187:    $appdir->basename,'/',$pm_path->relative($appdir),
share/devel/bootstrap/model_NAME_updater.pl.tt:191:  my $CfgW = RapidApp::Util::RapidDbic::CfgWriter->new({ pm_file => "$pm_path" });
share/devel/bootstrap/model_NAME_updater.pl.tt:193:  $CfgW->save_to( "$pm_path" );
share/devel/bootstrap/model_NAME_updater.pl.tt:204:[%- updater_script_name -%] - updater script for RapidDbic model '[%- model_class -%]'
share/devel/bootstrap/model_NAME_updater.pl.tt:208: perl devel/[%- updater_script_name -%] [options]
share/devel/bootstrap/model_NAME_updater.pl.tt:211:   --schema    Regenerate DBIx::Class schema   [% IF from_ddl %]
share/devel/bootstrap/model_NAME_updater.pl.tt:212:   --from-ddl  Recreate db from DDL (implies --schema) 
share/devel/bootstrap/model_NAME_updater.pl.tt:213:   --go        Do not prompt before overwriting db from DDL [% END %]
share/devel/bootstrap/model_NAME_updater.pl.tt:214:   --cfg       Update TableSpec configs for new defaults (nondestructive)
share/devel/bootstrap/model_NAME_updater.pl.tt:216:   --all       Shortcut for: --from-ddl --schema --cfg [% ELSE %]
share/devel/bootstrap/model_NAME_updater.pl.tt:217:   --all       Shortcut for: --schema --cfg [% END %]
share/devel/bootstrap/model_NAME_updater.pl.tt:220: TableSpec Config Update (--cfg):
share/devel/bootstrap/model_NAME_updater.pl.tt:221:   When called with the --cfg option, the TableSpec configs within the RapidDbic section of
share/devel/bootstrap/model_NAME_updater.pl.tt:222:   the model will be updated to match the schema class. This is a non-destructive operation,
share/templates/rapidapp/README.md:3:RapidApp is an open-source application framework that is currently under development for quickly building dynamic Web 2.0/AJAX interfaces for various data models. It is based on the following open-source technologies:
share/templates/rapidapp/README.md:5:- Perl
share/templates/rapidapp/README.md:6:- Catalyst
share/templates/rapidapp/README.md:7:- ExtJS
share/templates/rapidapp/README.md:8:- DBIx::Class
share/templates/rapidapp/README.md:9:- Template::Toolkit
share/templates/rapidapp/exception.tt:6:	font-face: Arial;
share/templates/rapidapp/exception.tt:7:	font-family: sans-serif;
share/templates/rapidapp/exception.tt:8:	font-size: 10pt;
share/templates/rapidapp/exception.tt:11:	font-weight: bold;
share/templates/rapidapp/exception.tt:13:	vertical-align: top;
share/templates/rapidapp/exception.tt:16:	font-size: 9pt;
share/templates/rapidapp/ext_loginpage.tt:3:<!-- Fields required for history management -->
share/templates/rapidapp/ext_loginpage.tt:4:<form id="history-form" class="x-hidden">
share/templates/rapidapp/ext_loginpage.tt:5:    <input type="hidden" id="x-history-field" />
share/templates/rapidapp/ext_loginpage.tt:6:    <iframe id="x-history-frame"></iframe>
share/templates/rapidapp/ext_page.tt:2:	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
share/templates/rapidapp/ext_page.tt:3:	 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
share/templates/rapidapp/ext_page.tt:4:<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
share/templates/rapidapp/ext_page.tt:8:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
share/templates/rapidapp/ext_printview.tt:13:        BodyEl.addClass('rapidapp-printview');
share/templates/rapidapp/ext_printview.tt:22:				headers: { 'X-RapidApp-View': 'print' },
share/templates/rapidapp/ext_viewport.tt:3:<!-- Fields required for history management -->
share/templates/rapidapp/ext_viewport.tt:4:<form id="history-form" class="x-hidden">
share/templates/rapidapp/ext_viewport.tt:5:    <input type="hidden" id="x-history-field" />
share/templates/rapidapp/ext_viewport.tt:6:    <iframe id="x-history-frame"></iframe>
share/templates/rapidapp/ext_viewport.tt:22:<!-- 
share/templates/rapidapp/ext_viewport.tt:27:-->
share/templates/rapidapp/ext_viewport.tt:29:  [%- FOREACH url IN precache_imgs %]
share/templates/rapidapp/ext_viewport.tt:31:  [%- END %]
share/templates/rapidapp/ext_viewport.tt:33:[%- END -%]
share/templates/rapidapp/ext_viewport.tt:35:[%- END -%]
share/templates/rapidapp/http-404.html:1:﻿<title class="ra-icon-page-cancel">(404 not found)</title>
share/templates/rapidapp/http-404.html:2:<div style="font-face: Arial; font-family: sans-serif;padding-left:15px;">
share/templates/rapidapp/http-404.tt:3:	<title> [% name | html %] - Page not found</title>
share/templates/rapidapp/http-404.tt:5:		* { font-face: "Arial"; font-family: sans-serif; }
share/templates/rapidapp/misc/property_table.tt:4:table.property-table {
share/templates/rapidapp/misc/property_table.tt:8:table.property-table table.column {
share/templates/rapidapp/misc/property_table.tt:9:  font-size: 12px;
share/templates/rapidapp/misc/property_table.tt:10:  padding-left: 25px;
share/templates/rapidapp/misc/property_table.tt:13:table.property-table td.first table.column {
share/templates/rapidapp/misc/property_table.tt:14:  padding-left: 3px;
share/templates/rapidapp/misc/property_table.tt:17:table.property-table table.column td.name {
share/templates/rapidapp/misc/property_table.tt:18:  text-align: left;
share/templates/rapidapp/misc/property_table.tt:19:  font-weight: bold;
share/templates/rapidapp/misc/property_table.tt:20:  white-space: nowrap;
share/templates/rapidapp/misc/property_table.tt:21:  padding-right: 15px;
share/templates/rapidapp/misc/property_table.tt:24:table.property-table table.column td.value {
share/templates/rapidapp/misc/property_table.tt:25:  min-width: 70px;
share/templates/rapidapp/misc/property_table.tt:28:table.property-table tr {
share/templates/rapidapp/misc/property_table.tt:29:  vertical-align: top;
share/templates/rapidapp/misc/property_table.tt:32:table.property-table td div.cell {
share/templates/rapidapp/misc/property_table.tt:34:  vertical-align: baseline;
share/templates/rapidapp/misc/property_table.tt:47:<table class="property-table">
share/templates/rapidapp/misc/property_table.tt:53:       <td [%- 'class="first"' IF loop.first %]>
share/templates/rapidapp/misc/property_table.tt:54:        <table class="column column-[% loop.count %]">
share/templates/rapidapp/misc/property_table.tt:91:                    <div style="padding-left:3px;">
share/templates/rapidapp/pages/about_rapidapp.tt:3:<title class="ra-icon-information" style="color:darkgreen;">About RapidApp</title>
share/templates/rapidapp/pages/about_rapidapp.tt:7:<div id="ext-gen809" class="ra-doc">
share/templates/rapidapp/pages/about_rapidapp.tt:9:<div style="float:right;padding-top:5px;padding-right:20px;">
share/templates/rapidapp/pages/about_rapidapp.tt:14:<span style="color:#666666;font-size:.8em;padding-left:20px;">
share/templates/rapidapp/pages/about_rapidapp.tt:18:<p>RapidApp is an open-source application framework that is currently under development for quickly building dynamic Web 2.0/AJAX interfaces for various data models. It is based on the following open-source technologies:</p>
share/templates/rapidapp/pages/about_rapidapp.tt:28:<h3 style="padding-left:5px;">
share/templates/rapidapp/pages/about_rapidapp.tt:35:<h2 id="ext-gen1086">Features</h2>
share/templates/rapidapp/pages/about_rapidapp.tt:41:<p>RapidApp aims to <i>really</i> understand the DBIC schema (sources, columns and relationships) and provide a high-level declarative environment to build custom interfaces on top of. It ties Source-based views with ExtJS Data Stores, which in turn supply various ExtJS component interfaces such as Grids, Trees and DataViews. These CRUD views tie into the backend Source model and provide a virtual table interface with special types of columns:</p>
share/templates/rapidapp/pages/about_rapidapp.tt:46:<li>Single-Relationship Columns</li>
share/templates/rapidapp/pages/about_rapidapp.tt:47:<li>Multi-Relationship Columns</li>
share/templates/rapidapp/pages/about_rapidapp.tt:48:<li>M2M-Relationship Columns</li>
share/templates/rapidapp/pages/about_rapidapp.tt:52:<div style="padding-left:15px;padding-right:15px">
share/templates/rapidapp/pages/about_rapidapp.tt:62:<h4>Single-Relationship Columns</h4>
share/templates/rapidapp/pages/about_rapidapp.tt:64:<p>These are "belongs_to" relationships represented as columns. The value shown is a representation of the related row (its configured display column) and optionally an inline link to naviagte to the related row. When editing a Single-Relationship column an appropriate editor is supplied, such as a dropdown. </p>
share/templates/rapidapp/pages/about_rapidapp.tt:66:<h4>Multi-Relationship Columns</h4>
share/templates/rapidapp/pages/about_rapidapp.tt:70:<h4>M2M-Relationship Columns</h4>
share/templates/rapidapp/pages/about_rapidapp.tt:72:<p>These are "many_to_many" relationships represented as columns. The value shown is a representation of the related rows (currently this is limited to a comma-separated list). When editing a many to many selector is provided, such as a lust of checkboxes.
share/templates/rapidapp/pages/about_rapidapp.tt:76:<p>These are arbitrary user-defined columns that can be configured as an SQL literal with 'self' psudoname translations so they work in table/query view with multiple rows. Optional update code can also be supplied to perform custom business logic for creating/changing a value.
share/templates/rapidapp/pages/about_rapidapp.tt:82:<p>RapidApp also provides mechanisms for automatic configuration of interfaces such as grids and page-views making it possible to get an application running with just a DBIC Schema and few lines of code</p>
share/templates/rapidapp/pages/about_rapidapp.tt:98:</p><p>We started developing RapidApp for our own in-house use and are now actively working on making a public release to give back to the community. However, this is a lot of work! Besides the remaining coding tasks and finalization of the API, there is a lot of documentation to write in order for it to be used effectively by developers. If you are interested in getting involved or helping us finish the public release, contact me below!</p>
share/templates/rapidapp/pages/about_rapidapp.tt:109:<div style="padding-left:10px;padding-bottom:10px;">
share/templates/rapidapp/pages/about_rapidapp.tt:111:    <span style="font-size:1.1em;font-weight:bolder;font-family:Verdana;color:#3B4B21;">
share/templates/rapidapp/pages/about_rapidapp.tt:114:    <span class="monospace" style="font-size:1.1em;">
share/templates/rapidapp/pages/about_rapidapp.tt:118:  <a style="border-bottom:none;" target="_blank" href="http://www.intellitree.com">
share/templates/rapidapp/pages/roadmap.tt:3:<title class="ra-icon-date" style="color:darkgreen;">Roadmap</title>
share/templates/rapidapp/pages/roadmap.tt:7:<div class="ra-doc">
share/templates/rapidapp/pages/roadmap.tt:13:The current version of RapidApp (RapidApp 1) needs a couple of things done before being publically released as-is.
share/templates/rapidapp/pages/roadmap.tt:20:    Untangle current symlink-based setup process and allow to function as a proper installable perl/CPAN package
share/templates/rapidapp/pages/roadmap.tt:45:    Make Multi-rel columns extensions of Virtual Columns and consider separating multi-rel columns from DBIC multi-relationships (for example, support for multi-rels across multiple joins and/or arbitrary ResultSets)
share/templates/rapidapp/public/log_in_out_control.tt:5:-%]
share/templates/rapidapp/public/log_in_out_control.tt:6:[%- 
share/templates/rapidapp/public/log_in_out_control.tt:8:-%]
share/templates/rapidapp/public/log_in_out_control.tt:9:[%- IF username -%]
share/templates/rapidapp/public/log_in_out_control.tt:11:[%- ELSE -%]
share/templates/rapidapp/public/log_in_out_control.tt:13:[%- END -%]
share/templates/rapidapp/public/log_in_out_control_referer.tt:5:-%]
share/templates/rapidapp/public/log_in_out_control_referer.tt:6:[%- 
share/templates/rapidapp/public/log_in_out_control_referer.tt:8:-%]
share/templates/rapidapp/public/log_in_out_control_referer.tt:9:[%- IF username -%]
share/templates/rapidapp/public/log_in_out_control_referer.tt:11:[%- ELSE -%]
share/templates/rapidapp/public/log_in_out_control_referer.tt:13:[%- END -%]
share/templates/rapidapp/public/login.html:8:<!--[if lt IE 8]> <html class="lt-ie8" lang="en"> <![endif]-->
share/templates/rapidapp/public/login.html:9:<!--[if gte IE 8]><!--> <html lang="en"> <!--<![endif]-->
share/templates/rapidapp/public/login.html:11:  <meta charset="utf-8">
share/templates/rapidapp/public/login.html:12:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
share/templates/rapidapp/public/login.html:18:  <!-- Foundation framework -->
share/templates/rapidapp/public/login.html:20:  <!--[if lt IE 8]> <link rel="stylesheet" href="[% foundation_path %]stylesheets/ie.css" /> <![endif]-->
share/templates/rapidapp/public/login.html:26:  <div style="padding-top:60px;"></div>
share/templates/rapidapp/public/login.html:29:      <div class="eight columns centered" style="padding-top:0px;max-width:520px;">
share/templates/rapidapp/public/login.html:30:        <div class="login_box" style="max-width:500px;">
share/templates/rapidapp/public/login.html:32:          <div class="login_logo" style="top:-115px;">
share/templates/rapidapp/public/login.html:41:                <div style="padding-top:3px;">
share/templates/rapidapp/public/login.html:42:                  <img src="[% mnt_pfx %]/assets/rapidapp/misc/static/images/iconLoggedOut.png" style="vertical-align:middle;padding-bottom:5px;padding-right:9px;">
share/templates/rapidapp/public/login.html:43:                  <span style="padding-right:11px;font-weight:bold;font-size:1.1em;">Sign in</span>
share/templates/rapidapp/public/login.html:47:              <!--
share/templates/rapidapp/public/login.html:55:              -->
share/templates/rapidapp/public/login.html:57:              <!--
share/templates/rapidapp/public/login.html:61:              -->
share/templates/rapidapp/public/login.html:65:              <div style="font-size:1.1em;font-weight:bold;color:red;padding:10px;">
share/templates/rapidapp/public/login.html:76:                <!--
share/templates/rapidapp/public/login.html:82:                        <label for="upname">E-mail:</label>
share/templates/rapidapp/public/login.html:83:                        <input type="text" id="upname" name="upname" class="oversize expand input-text" />
share/templates/rapidapp/public/login.html:91:                -->
share/templates/rapidapp/public/login.html:98:          <div style="text-align:center;padding-bottom:5px;height:100%;">
share/templates/rapidapp/public/login.html:108:        <div style="position: absolute; bottom: -18px; width:100%;">
share/templates/rapidapp/public/login.html:109:          <div class="right" style="float:right;padding-right:15px;font-size:.7em;color:#666666;">
share/templates/rapidapp/public/login_form.tt:47:    [%- IF c.req.params.to -%]
share/templates/rapidapp/public/login_form.tt:49:    [%- END -%]
share/templates/rapidapp/public/login_form.tt:54:        <input type="text" id="username"  name="username" class="oversize expand input-text" />
share/templates/rapidapp/public/login_form.tt:58:        <input type="password" id="password"  name="password" class="oversize expand input-text" />
share/templates/rapidapp/public/login_form.tt:62:    <div class="cf" style="padding-bottom:30px;">
share/templates/rapidapp/public/login_form.tt:63:      <!--
share/templates/rapidapp/public/login_form.tt:65:      -->
share/templates/rapidapp/simple_auth_banner.tt:1:<div class="ra-footer" style="padding:2px;text-align:right;font-weight:bolder;">
share/templates/rapidapp/web1_page.tt:2:	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
share/templates/rapidapp/web1_page.tt:3:	 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
share/templates/rapidapp/web1_page.tt:4:<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
share/templates/rapidapp/web1_page.tt:7:  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
share/templates/rapidapp/xhtml_document.tt:1:﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
share/templates/rapidapp/xhtml_document.tt:3:<meta http-equiv="content-type" content="text/html; charset=utf-8">
t/01_basic.t:1:# -*- perl -*-
t/01_basic.t:6:use lib "$Bin/var/testapps/TestRA-ChinookDemo/lib";
t/01_basic.t:14:# ----------------
t/01_basic.t:20:  Catalyst::ScriptRunner->run('TestRA::ChinookDemo', 'Server');
t/01_basic.t:24:# ----------------
t/01_basic.t:31:my $root_cnt = client->browser_get_raw('/');
t/01_basic.t:36:my $decoded = (client->ajax_post_decode(
t/01_basic.t:39:) || [])->[0] || {};
t/01_basic.t:41:my $child_nodes = $decoded->{children} || [];
t/01_basic.t:43:  ref $_ && ref $_ eq 'HASH' ? $_->{id} : ()
t/01_basic.t:65:# returned content is *JavaScript* - not valid JSON - and we
t/01_basic.t:69:my $genre_grid = client->ajax_get_raw('/main/db/db_genre');
t/01_basic.t:73:  "Saw expected string within returned genre grid content [". client->last_request_elapsed . ']'
t/01_basic.t:77:my $genre_read = client->ajax_post_decode(
t/01_basic.t:89:$genre_read->{query_time} and $genre_read->{query_time} = undef;
t/01_basic.t:92:$genre_read->{success} and delete $genre_read->{success};
t/01_basic.t:136:my $foo_get = client->browser_get_raw('/foo');
t/01_basic.t:138:  $foo_get => "This is user-defined :Path controller action '/foo'",
t/01_basic.t:139:  "Got expected content from locally-defined :Path controller action"
t/01_basic.t:144:# -- for debugging:
t/02_rapiddbic_opts1.t:1:# -*- perl -*-
t/02_rapiddbic_opts1.t:7:use lib "$Bin/var/testapps/TestRA-ChinookDemo/lib";
t/02_rapiddbic_opts1.t:34:  __PACKAGE__->config(
t/02_rapiddbic_opts1.t:37:    # ------
t/02_rapiddbic_opts1.t:39:    # https://github.com/IntelliTree/RA-ChinookDemo/blob/02_rapiddbic_basics/lib/RA/ChinookDemo.pm
t/02_rapiddbic_opts1.t:40:    # ------
t/02_rapiddbic_opts1.t:67:                  # join all columns of all relationships (first-level):
t/02_rapiddbic_opts1.t:76:                  use_add_form => 0, #<-- also disables autoload_added_record
t/02_rapiddbic_opts1.t:172:                        $row->update({ firstname=>$fn, lastname=>$ln });
t/02_rapiddbic_opts1.t:183:  #__PACKAGE__->setup();
t/02_rapiddbic_opts1.t:190:# ----------------
t/02_rapiddbic_opts1.t:196:  Catalyst::ScriptRunner->run('TestApp1', 'Server');
t/02_rapiddbic_opts1.t:200:# ----------------
t/03_authcore.t:1:# -*- perl -*-
t/03_authcore.t:7:use lib "$Bin/var/testapps/TestRA-ChinookDemo/lib";
t/03_authcore.t:37:  __PACKAGE__->config(
t/03_authcore.t:47:  #__PACKAGE__->setup();
t/03_authcore.t:54:# ----------------
t/03_authcore.t:60:  Catalyst::ScriptRunner->run('TestApp2', 'Server');
t/03_authcore.t:64:# ----------------
t/03_authcore.t:78:  my $login_res = client->post_request('/auth/login',{
t/03_authcore.t:83:    $login_res->header('X-RapidApp-Authenticated'),
t/03_authcore.t:91:  my $res = client->get_request('/auth/logout');
t/03_authcore.t:93:    client->lres->is_redirect && client->lres->header('Location') eq '/',
t/03_authcore.t:100:  client->ajax_post_decode(
t/03_authcore.t:131:    $users_read->{rows},
t/03_authcore.t:152:      rows => $users_read->{rows},
t/03_authcore.t:153:      msg  => $users_read->{msg}
t/03_authcore.t:168:  my $users_update = client->ajax_post_decode(
t/03_authcore.t:181:    $users_update->{msg},
t/03_authcore.t:189:  my $full_name = shift || 'new-full_name';
t/03_authcore.t:192:  client->ajax_post_decode(
t/03_authcore.t:207:  my $full_name = shift || 'new-full_name';
t/03_authcore.t:213:    $users_update->{msg},
t/03_authcore.t:220:  my $full_name = shift || 'new-full_name';
t/03_authcore.t:231:  my $full_name = shift || 'new-full_name';
t/03_authcore.t:236:      rows => $users_update->{rows},
t/03_authcore.t:237:      msg  => $users_update->{msg}
t/03_authcore.t:248:my $root_cnt = client->browser_get_raw('/');
t/03_authcore.t:250:  $root_cnt => "TestApp2 v$TestApp2::VERSION - Login", 
t/03_authcore.t:259:  client->lres->is_redirect && client->lres->header('Location') eq '/',
t/03_authcore.t:263:my $users_grid = client->ajax_get_raw('/main/db/rapidapp_coreschema_user');
t/03_authcore.t:278:client->cookie( undef );
t/03_authcore.t:282:change_password('new-password');
t/03_authcore.t:284:login("Logged back in using new password",'new-password');
t/03_authcore.t:301:#  Note: users_read_path_denied() tests the non-authenticated case, not the perm denied case...
t/03_authcore.t:309:  "REQUEST:\n\n" .  client->lreq->as_string . "\n", 
t/03_authcore.t:310:  "RESPONSE:\n\n" . client->lres->as_string . "\n"
t/author/kwalitee.t:29:  -metayml_conforms_to_known_spec
t/author/kwalitee.t:30:  -metayml_conforms_to_known_spec
t/author/kwalitee.t:31:  -metayml_is_parsable
t/author/kwalitee.t:32:  -has_buildtool
t/author/kwalitee.t:33:  -has_manifest
t/author/kwalitee.t:34:  -has_meta_yml
t/author/kwalitee.t:38:push @test_args, '-no_symlinks';
t/author/kwalitee.t:41:# We also have to manually call ->import() like this to be able to programatically
t/author/kwalitee.t:46:Test::Kwalitee->import( tests => [@test_args] );
t/author/podspelling.t:43:set_spell_cmd('aspell list -l en');
t/unit/_binary_op_fuser.t:1:# -*- perl -*-
t/unit/_binary_op_fuser.t:15:  [ 'foo', { -in => [4,5,6] } ],
t/unit/_binary_op_fuser.t:16:  [ \'(SELECT foo FROM bar)', { -in => [4,5,6] } ],
t/unit/_binary_op_fuser.t:22:  [ \"(SELECT CONCAT(me.dept_no,CONCAT(\" - \",me.name)))",  { 'like' => '%substring%' }],
t/unit/_binary_op_fuser.t:33:  \["(SELECT CONCAT(me.dept_no,CONCAT(\" - \",me.name))) LIKE ?",[{},"%substring%"]]
t/unit/_binary_op_fuser.t:39:  my $sm = DBIx::Class::Schema->connect(
t/unit/_binary_op_fuser.t:42:  )->storage->sql_maker;
t/unit/datstor_column.t:1:# -*- perl -*-
t/unit/datstor_column.t:16:  $Col = RapidApp::Module::DatStor::Column->new({ name => 'col' }),
t/unit/datstor_column.t:19:$Col->apply_attributes;
t/unit/datstor_column.t:21:ok(! $Col->no_column  => "no_column is false as expected");
t/unit/datstor_column.t:22:ok(! $Col->allow_add  => "allow_add is false as expected");
t/unit/datstor_column.t:23:ok(! $Col->allow_edit => "allow_edit is false as expected");
t/unit/datstor_column.t:24:ok(  $Col->allow_view => "allow_view is true as expected");
t/unit/datstor_column.t:28:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:34:$Col->apply_attributes;
t/unit/datstor_column.t:36:ok(! $Col->no_column  => "[2] no_column is false as expected");
t/unit/datstor_column.t:37:ok(  $Col->allow_add  => "[2] allow_add is true as expected");
t/unit/datstor_column.t:38:ok(  $Col->allow_edit => "[2] allow_edit is true as expected");
t/unit/datstor_column.t:39:ok(  $Col->allow_view => "[2] allow_view is true as expected");
t/unit/datstor_column.t:43:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:50:$Col->apply_attributes;
t/unit/datstor_column.t:52:ok(  $Col->no_column  => "[3] no_column is true as expected");
t/unit/datstor_column.t:53:ok(! $Col->allow_add  => "[3] allow_add is false as expected");
t/unit/datstor_column.t:54:ok(! $Col->allow_edit => "[3] allow_edit is false as expected");
t/unit/datstor_column.t:55:ok(! $Col->allow_view => "[3] allow_view is false as expected");
t/unit/datstor_column.t:59:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:67:$Col->apply_attributes;
t/unit/datstor_column.t:69:ok(  $Col->no_column  => "[4] no_column is true as expected");
t/unit/datstor_column.t:70:ok(  $Col->allow_add  => "[4] allow_add is true as expected");
t/unit/datstor_column.t:71:ok(! $Col->allow_edit => "[4] allow_edit is false as expected");
t/unit/datstor_column.t:72:ok(! $Col->allow_view => "[4] allow_view is false as expected");
t/unit/datstor_column.t:77:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:84:$Col->apply_attributes;
t/unit/datstor_column.t:86:ok(! $Col->no_column  => "[5] no_column is false as expected");
t/unit/datstor_column.t:87:ok(! $Col->allow_add  => "[5] allow_add is false as expected");
t/unit/datstor_column.t:88:ok(! $Col->allow_edit => "[5] allow_edit is false as expected");
t/unit/datstor_column.t:89:ok(  $Col->allow_view => "[5] allow_view is true as expected");
t/unit/datstor_column.t:93:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:100:$Col->apply_attributes;
t/unit/datstor_column.t:102:ok(! $Col->no_column  => "[6] no_column is false as expected");
t/unit/datstor_column.t:103:ok(  $Col->allow_add  => "[6] allow_add is true as expected");
t/unit/datstor_column.t:104:ok(! $Col->allow_edit => "[6] allow_edit is false as expected");
t/unit/datstor_column.t:105:ok(  $Col->allow_view => "[6] allow_view is true as expected");
t/unit/datstor_column.t:110:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:117:$Col->apply_attributes;
t/unit/datstor_column.t:119:ok(  $Col->no_column  => "[7] no_column is true as expected");
t/unit/datstor_column.t:120:ok(  $Col->allow_add  => "[7] allow_add is true as expected");
t/unit/datstor_column.t:121:ok(! $Col->allow_edit => "[7] allow_edit is false as expected");
t/unit/datstor_column.t:122:ok(! $Col->allow_view => "[7] allow_view is false as expected");
t/unit/datstor_column.t:127:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:134:$Col->apply_attributes;
t/unit/datstor_column.t:136:ok(  $Col->no_column  => "[8] no_column is true as expected");
t/unit/datstor_column.t:137:ok(! $Col->allow_add  => "[8] allow_add is false as expected");
t/unit/datstor_column.t:138:ok(! $Col->allow_edit => "[8] allow_edit is false as expected");
t/unit/datstor_column.t:139:ok(  $Col->allow_view => "[8] allow_view is true as expected");
t/unit/datstor_column.t:143:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:150:$Col->apply_attributes;
t/unit/datstor_column.t:152:ok(  $Col->no_column  => "[9] no_column is true as expected");
t/unit/datstor_column.t:153:ok(! $Col->allow_add  => "[9] allow_add is false as expected");
t/unit/datstor_column.t:154:ok(! $Col->allow_edit => "[9] allow_edit is false as expected");
t/unit/datstor_column.t:155:ok(! $Col->allow_view => "[9] allow_view is false as expected");
t/unit/datstor_column.t:159:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:166:$Col->apply_attributes;
t/unit/datstor_column.t:168:ok(  $Col->no_column  => "[10] no_column is true as expected");
t/unit/datstor_column.t:169:ok(! $Col->allow_add  => "[10] allow_add is false as expected");
t/unit/datstor_column.t:170:ok(! $Col->allow_edit => "[10] allow_edit is false as expected");
t/unit/datstor_column.t:171:ok(! $Col->allow_view => "[10] allow_view is false as expected");
t/unit/datstor_column.t:176:  $Col = RapidApp::Module::DatStor::Column->new({ 
t/unit/datstor_column.t:182:$Col->apply_attributes;
t/unit/datstor_column.t:184:ok(! $Col->no_column  => "[11] no_column is false as expected");
t/unit/datstor_column.t:185:ok(  $Col->allow_add  => "[11] allow_add is true as expected");
t/unit/datstor_column.t:186:ok(  $Col->allow_edit => "[11] allow_edit is true as expected");
t/unit/datstor_column.t:187:ok(  $Col->allow_view => "[11] allow_view is true as expected");
t/unit/metakeys.t:1:# -*- perl -*-
t/unit/metakeys.t:21:    $Obj = RapidApp::Util::MetaKeys->load( $text ),
t/unit/metakeys.t:26:    $Obj->data,
t/unit/metakeys.t:71:#### Dynamic/flexible key-vals ####
t/unit/metakeys.t:94:comment.task_id  => task.id # <-- comment 2
t/unit/metakeys.t:106:task.assignee_id,  } . "\t\t" . q{      user.id #### <-- mixed tabs/spaces
t/unit/metakeys.t:107:task.creator_id  :::  user.id, #<-- rouge hanging comma
t/unit/metakeys.t:122:# JSON - mixed formats
t/var/testapps/TestRA-ChinookDemo/Makefile.PL:9:name 'TestRA-ChinookDemo';
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo.pm:22:__PACKAGE__->config(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo.pm:30:__PACKAGE__->setup();
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/Controller/Custom.pm:15:  $c->res->content_type('text/plain');
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/Controller/Custom.pm:16:  $c->res->body("This is user-defined :Path controller action '/foo'");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/Controller/Custom.pm:17:  return $c->detach;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB.pm:9:__PACKAGE__->load_namespaces;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB.pm:11:__PACKAGE__->meta->make_immutable(inline_constructor => 0);
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Album.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Album.pm:13:__PACKAGE__->table("Album");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Album.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Album.pm:22:__PACKAGE__->set_primary_key("albumid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Album.pm:23:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Album.pm:29:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Album.pm:36:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Artist.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Artist.pm:13:__PACKAGE__->table("Artist");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Artist.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Artist.pm:20:__PACKAGE__->set_primary_key("artistid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Artist.pm:21:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Artist.pm:28:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Customer.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Customer.pm:13:__PACKAGE__->table("Customer");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Customer.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Customer.pm:42:__PACKAGE__->set_primary_key("customerid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Customer.pm:43:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Customer.pm:49:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Customer.pm:61:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:13:__PACKAGE__->table("Employee");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:46:__PACKAGE__->set_primary_key("employeeid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:47:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:53:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:59:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Employee.pm:71:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Genre.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Genre.pm:13:__PACKAGE__->table("Genre");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Genre.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Genre.pm:20:__PACKAGE__->set_primary_key("genreid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Genre.pm:21:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Genre.pm:28:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Invoice.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Invoice.pm:13:__PACKAGE__->table("Invoice");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Invoice.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Invoice.pm:34:__PACKAGE__->set_primary_key("invoiceid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Invoice.pm:35:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Invoice.pm:41:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Invoice.pm:48:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/InvoiceLine.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/InvoiceLine.pm:13:__PACKAGE__->table("InvoiceLine");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/InvoiceLine.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/InvoiceLine.pm:26:__PACKAGE__->set_primary_key("invoicelineid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/InvoiceLine.pm:27:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/InvoiceLine.pm:33:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/InvoiceLine.pm:40:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/MediaType.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/MediaType.pm:13:__PACKAGE__->table("MediaType");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/MediaType.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/MediaType.pm:20:__PACKAGE__->set_primary_key("mediatypeid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/MediaType.pm:21:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/MediaType.pm:28:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Playlist.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Playlist.pm:13:__PACKAGE__->table("Playlist");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Playlist.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Playlist.pm:20:__PACKAGE__->set_primary_key("playlistid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Playlist.pm:21:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Playlist.pm:27:__PACKAGE__->many_to_many("trackids", "playlist_tracks", "trackid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Playlist.pm:29:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/PlaylistTrack.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/PlaylistTrack.pm:13:__PACKAGE__->table("PlaylistTrack");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/PlaylistTrack.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/PlaylistTrack.pm:20:__PACKAGE__->set_primary_key("playlistid", "trackid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/PlaylistTrack.pm:21:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/PlaylistTrack.pm:27:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/PlaylistTrack.pm:34:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:12:__PACKAGE__->load_components("InflateColumn::DateTime");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:13:__PACKAGE__->table("Track");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:14:__PACKAGE__->add_columns(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:34:__PACKAGE__->set_primary_key("trackid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:35:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:46:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:57:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:63:__PACKAGE__->belongs_to(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:69:__PACKAGE__->has_many(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:75:__PACKAGE__->many_to_many("playlistids", "playlist_tracks", "playlistid");
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/DB/Result/Track.pm:77:__PACKAGE__->meta->make_immutable;
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/Model/DB.pm:10:__PACKAGE__->config(
t/var/testapps/TestRA-ChinookDemo/lib/TestRA/ChinookDemo/Model/DB.pm:27:  $self->schema->deploy unless ($self->config->{no_deploy});
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:8:Catalyst::ScriptRunner->run('TestRA::ChinookDemo', 'Server');
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:14:testra_chinookdemo_server.pl - Catalyst Test Server
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:20:   -d --debug           force debug mode
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:21:   -f --fork            handle each request in a new process
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:23:   -? --help            display this help and exits
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:24:   -h --host            host (defaults to all)
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:25:   -p --port            port (defaults to 3000)
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:26:   -k --keepalive       enable keep-alive connections
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:27:   -r --restart         restart when files get modified
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:29:   -rd --restart_delay  delay between file checks
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:31:   -rr --restart_regex  regex match files that trigger
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:34:   --restart_directory  the directory to search for
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:37:   --follow_symlinks    follow symlinks in search directories
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:38:                        (defaults to false. this is a no-op on Win32)
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:39:   --background         run the process in the background
t/var/testapps/TestRA-ChinookDemo/script/testra_chinookdemo_server.pl:40:   --pidfile            specify filename for pid file
t/var/testapps/TestRA-ChinookDemo/testra_chinookdemo.psgi:6:my $app = TestRA::ChinookDemo->apply_default_middlewares(TestRA::ChinookDemo->psgi_app);
