From a2eb86746198b8795e27c04945c2db263570a1ed Mon Sep 17 00:00:00 2001
From: Dmitry Trofimov
+ PyCharm keeps track of which of its features you are using and will offer you some tips to let you know
+ about the features you may have missed. These tips will be shown while the startup process is going on.
+ You can always get back to them by selecting Help | Productivity Guide
+ on the menu bar.
+ Version control annotations show the latest changes of each line in one click.
+ Just right-click an annotation and use the Show Diff command in the context menu.
+
+ Right-clicking on a breakpoint (in the left gutter) invokes the context menu where
+ you can quickly enable/disable the breakpoint or adjust its properties.
+ It is very easy to change the built-in web server port (File | Settings – Debugger – JavaScript),
+and use the "Built-in server port" spinner to set the new value. Next, open an HTML page in your browser and see it running on the defined port.
+ When in the Code Completion lookup, you can ease the search by filtering the list with the help of the "camel words" prefixes.
+ When in the Go to Class,
+ Go to Symbol, or
+ Go to File popup,
+ you can ease the search by filtering the lookup list with the help of the "camel words" prefixes.
+ When an autopopup completion is active,
+ &shortcut:EditorLookupDown; and &shortcut:EditorLookupUp;
+ will close it and move the caret down or up in the editor.
+
+ You can switch between sorting completion variants by relevance or alphabetically by using an icon at the bottom right:
+ The Changes tool window shows all deleted, modified, and unversioned files in a single view.
+Use &shortcut:ActivateChangesToolWindow; keyboard shortcut to show or hide this tool window. From the Changes tool window you can perform all the necessary version control actions: commit changes, manage changelists, put resources under version control, examine differences and more. The format of a regular expression can be rather complicated.
+To make sure you didn't miss some slash of quotation mark, place the caret
+somewhere in the expression you want to check, and press &shortcut:ShowIntentionActions;. In the pop-up frame type a string that you think should match your regular expression. If the background turns green, you are lucky. If it turns red, then you have to look for a mistake.
+
+ A special variant of the Code Completion feature invoked by pressing &shortcut:CodeCompletion; twice allows you to
+ complete the name of any class
+ no matter if it was imported in the current file or not.
+ If the class is not imported yet, the import statement is generated automatically.
+ Use the &shortcut:PasteMultiple; shortcut to choose and insert recent clipboard contents into the text.
+ There are two ways of closing all tabs in the editor, except the current one:
+
+ The Code Completion feature lets you quickly complete different kinds of statements
+ in the code.
+ For example, start typing a class name and press &shortcut:CodeCompletion;
+ to complete it.
+ When multiple choices are available, they are shown in the lookup list.
+ When you are finding text in the current file (&shortcut:Find;), you don't need to type the whole search string:
+ Basic Code Completion is available in the search field. Start typing, press &shortcut:CodeCompletion;, and
+ select the desired string from the suggestion list. When using basic code completion (&shortcut:CodeCompletion;),
+type any characters that exist anywhere in an identifier.
+
+ When using basic code completion (&shortcut:CodeCompletion;),
+ you don't need to type upper-case letters in CamelHump names.
+ It is enough to type the initial letters of the camel names in lower case, and they will be smartly recognized.
+ This behavior is enabled, if None is selected from the
+Case sensitive completion drop-down list (the
+Code Completion page of the Editor settings).
+
+
diff --git a/python/resources/tips/ColorEditingInCss.html b/python/resources/tips/ColorEditingInCss.html
new file mode 100644
index 000000000000..cf92ed9baa2f
--- /dev/null
+++ b/python/resources/tips/ColorEditingInCss.html
@@ -0,0 +1,19 @@
+
+ &productName;
+ simplifies your work
+ with colors in CSS files. The color
+ properties have the icons of the corresponding color in the left gutter area of the editor.
+ Click color icons to choose the desired color from the color picker. You can easily make column selection by dragging your mouse pointer while keeping the
+ Alt key pressed.
+
+ You can comment and uncomment lines of code using &shortcut:CommentByLineComment;.
+ &shortcut:CommentByLineComment; comments or uncomments the current line or
+ several selected lines with single line comments ({# in Django templates,
+ or # in Python scripts).
+ Pressing &shortcut:CommentByBlockComment; for a selected block of source code
+ in a Django template surrounds the block with {% comment %}
+ and {% endcomment %} tags.
+ The keyboard shortcut Ctrl+K enables you to quickly invoke the Commit Changes dialog.
+ This dialog shows all modifications in project, gives summary information of file status and suggests improvements before check-in. You can use Basic Completion
+ (&shortcut:CodeCompletion;) in HTML, CSS and JavaScript files, for completing attributes,
+ parameters, tags, selectors, etc. For the embedded local terminal, you can define your favorite shell,
+default tab name, and other settings.
+Choose
+File | Settings (Windows/*nix) or
+PyCharm | Preferences (Mac)
+on the main menu, and then open the page Terminal.
+ You can work in the Python or Django shell without leaving the IDE.
+ Just choose Run Python Console or Run Django Console
+ in the Tools menu.
+ Working in the interactive consoles, you don't need to memorise the command line syntax or available functions.
+ Instead, you can use the familiar code completion &shortcut:CodeCompletion;.
+ Moreover, from within the lookup list, you can press &shortcut:QuickJavaDoc;
+ to view the item's documentation.
+
+ If you have already spent some time working in the interactive consoles,
+ you don't need to re-type the previously entered commands to repeat them.
+ Instead, press &shortcut:EditorScrollUp; and
+ &shortcut:EditorScrollDown; to scroll through
+ the history of commands.
+If nothing is selected in the editor, and you press &shortcut:$Copy;, then the whole line at caret is copied to the clipboard.
+ &shortcut:EditorDuplicate; in the editor duplicates the selected block or the current line
+ when no block is selected.
+ When using autopopup Code Completion, you can select the first item using &shortcut:EditorChooseLookupItemDot;.
+ The selected name is automatically entered in the editor followed by dot. Use &shortcut:QuickImplementations;
+ (View | Quick Definition),
+ to quickly review definition or content of the symbol at caret, without the need to open it
+ in a new editor tab. The Quick Definition Viewer
+ (&shortcut:QuickImplementations;) can be also used for items in lookup lists that appear on code
+ completion and class/file/symbol navigaton commands. &shortcut:EditorSelectWord; (select word) in the editor selects the word at the caret
+ and then selects expanding areas of the source code. For example, it may select a method name,
+ then the expression that calls this method, then the whole statement, then the containing block, etc.
+ You can also select the word at the caret and the expanding areas of the source code by double-clicking the target areas in the editor.
+ To compare two directories, select one or both of them in the Project view and
+ press &shortcut:CompareDirs;.
+ When using Code Completion, you can accept the currently highlighted selection in the popup list
+ with the period character (.), comma (,),
+ semicolon (;), space and other characters.
+ The selected name is automatically entered in the editor followed by the entered character. You can easily open an external file for editing, if you just drag it from the Explorer or Finder to the editor. You can avoid escaping backslashes in your regular expressions. Start typing a regular expression, then press &shortcut:ShowIntentionActions; and choose Edit RegExp.
+The regular expression opens in a separate tab in the editor, where you can type backslashes as is. All changes are synchronized with the original regular expression, and escapes are presented automatically. When ready, just press &shortcut:EditorEscape; to close the regular expression editor.
+
+
+
diff --git a/python/resources/tips/Emmet.html b/python/resources/tips/Emmet.html
new file mode 100644
index 000000000000..6dcec74020a3
--- /dev/null
+++ b/python/resources/tips/Emmet.html
@@ -0,0 +1,11 @@
+
+ Speed up HTML, XML or CSS development with Emmet. Enable this framework in the Emmet(Zen Coding) page of the Settings/Preferences dialog:
+ You can jump directly to any deeply buried file, if you press &shortcut:GotoFile;, and type just a couple
+of characters of the enclosing directories and file names: Use either a slash or a backslash as a delimiter. The &shortcut:EditorEscape; key in any tool window moves the focus to the editor. &shortcut:HideActiveWindow; moves the focus to the editor and also hides the current (or last active) tool window. The &shortcut:JumpToLastWindow; key moves the focus from the editor to the last focused tool window. To easily evaluate the value of any expression while debugging the program, select its text in the editor
+ (you might want to press a &shortcut:EditorSelectWord; a few times to efficiently perform this operation)
+ and then press &shortcut:EvaluateExpression;.
+ You can exclude any file from your project. As a result, such a file will be ignored by indexing, inspection and code completion.
+ In the Project tool window, select the file you want to ignore, and choose
+ Mark as plain text in its context menu.
+ If necessary, you can always return the file to its original type using the
+ Mark as <file type> context menu command. The Extract Variable
+ refactoring helps you simplify complicated statements in your code. For example, in the code fragment below,
+ you can select an expression in the code, and press &shortcut:IntroduceVariable; (Refactor | Extract | Variable).
+ Welcome to PyCharm Productivity Guide
+ 







+
+
on the editor tab.

















You can quickly navigate in the currently edited file with &shortcut:FileStructurePopup; + (Navigate | File Structure).
+It shows the list of members of the current class. Select an element you want to navigate to and press the + Enter key or the &shortcut:EditSource; key.
+To easily locate an item in the list, just start typing its name.
+ + + + + diff --git a/python/resources/tips/FindReplaceToggle.html b/python/resources/tips/FindReplaceToggle.html new file mode 100644 index 000000000000..60d7b31dc700 --- /dev/null +++ b/python/resources/tips/FindReplaceToggle.html @@ -0,0 +1,17 @@ + + + + + + +It is very easy to toggle between find and replace functionality.
+When you perform search and replace in a file, pressing &shortcut:Find; +shows the search pane. Pressing &shortcut:Replace; adds field, where you can type the replace string.
+ +While in the Find in Path dialog, you can switch to +replace by pressing &shortcut:ReplaceInPath;. Same way, press &shortcut:FindInPath; to hide the +Replace with field, and switch to mere search.
+ + + + diff --git a/python/resources/tips/FindUsages.html b/python/resources/tips/FindUsages.html new file mode 100644 index 000000000000..a7162139a42f --- /dev/null +++ b/python/resources/tips/FindUsages.html @@ -0,0 +1,12 @@ + + + + + ++ You can quickly find all places where a particular class, method or variable is used in the whole project + by positioning the caret at the symbol's name or at its usage in code and pressing &shortcut:FindUsages; + (Find Usages + in the popup menu).
+ + diff --git a/python/resources/tips/FinishByControlEnter.html b/python/resources/tips/FinishByControlEnter.html new file mode 100644 index 000000000000..28a907d7d3e5 --- /dev/null +++ b/python/resources/tips/FinishByControlEnter.html @@ -0,0 +1,10 @@ + + + + + ++ &shortcut:EditorChooseLookupItemAlways; will +choose the first item of the autopopup completion when there is no selection there.
+ + diff --git a/python/resources/tips/GoToAction.html b/python/resources/tips/GoToAction.html new file mode 100644 index 000000000000..89a93e95e3f2 --- /dev/null +++ b/python/resources/tips/GoToAction.html @@ -0,0 +1,16 @@ + + + + + + + +To quickly find a menu command or toolbar action, you do not need to look through the menus. Just press + &shortcut:GotoAction; + (Help | Find Action on the main + menu) and start typing the name of the action. Choose the desired action from the suggestion list.
+ + + + + diff --git a/python/resources/tips/GoToClass.html b/python/resources/tips/GoToClass.html new file mode 100644 index 000000000000..2cdf5eb3f0d1 --- /dev/null +++ b/python/resources/tips/GoToClass.html @@ -0,0 +1,16 @@ + + + + + ++ To open any class in the editor quickly, press &shortcut:GotoClass; + (Navigate | Class) + and start typing the name of the class. Choose the class from a drop-down list that appears.
+
+ 
+ You can open any file in your project in a similar way by using &shortcut:GotoFile; + (Navigate | File)
+ + diff --git a/python/resources/tips/GoToDeclaration.html b/python/resources/tips/GoToDeclaration.html new file mode 100644 index 000000000000..7db07bbfdf96 --- /dev/null +++ b/python/resources/tips/GoToDeclaration.html @@ -0,0 +1,17 @@ + + + + + + + +To navigate to the declaration of a class, method or variable used somewhere in the code, + position the caret at the usage and press &shortcut:GotoDeclaration;. You can also click the mouse + on usages with the Ctrl + key pressed to jump to declarations.
+
To quickly find and run an inspection, press + &shortcut:RunInspection; + and start typing the name of the inspection or its group. Choose the desired inspection from the suggestion list and + then specify the desired scope.
+ + + + + diff --git a/python/resources/tips/GoToSymbol.html b/python/resources/tips/GoToSymbol.html new file mode 100644 index 000000000000..85d099fd8121 --- /dev/null +++ b/python/resources/tips/GoToSymbol.html @@ -0,0 +1,17 @@ + + + + + + + +To open any particular method or field in the editor quickly, press &shortcut:GotoSymbol; + (Navigate | Symbol) + and start typing its name.
+Choose symbol from the drop-down list that appears.
+
+ To open any class or file in the editor at the desired line, press &shortcut:GotoFile; + (Navigate | File), + start typing the name, and choose the one from the suggestion list. + Then type the colon (:) and a line number.
++ The selected file will open with the caret at the specified line.
+
+ 
+ To see the inheritance hierarchy for a selected class, + press &shortcut:TypeHierarchy; + (Navigate | Type Hierarchy). + You can also invoke the hierarchy view right from the editor + to see the hierarchy for the currently edited class.
+
+ 
Use &shortcut:HighlightUsagesInFile; (Edit | Find | Highlight Usages in File) + to quickly highlight usages of some variable in the current file.
+Use &shortcut:FindNext; and &shortcut:FindPrevious; keys to navigate through highlighted usages.
+Press &shortcut:EditorEscape; to remove highlighting.
+ + + + + diff --git a/python/resources/tips/HorizontalScrolling.html b/python/resources/tips/HorizontalScrolling.html new file mode 100644 index 000000000000..f70b0cd50c7c --- /dev/null +++ b/python/resources/tips/HorizontalScrolling.html @@ -0,0 +1,10 @@ + + + + + ++ Enable the horizontal scrolling with the mouse wheel by holding + the Shift key.
+ + \ No newline at end of file diff --git a/python/resources/tips/ImageFileCompletion.html b/python/resources/tips/ImageFileCompletion.html new file mode 100644 index 000000000000..cc6a5291b7ab --- /dev/null +++ b/python/resources/tips/ImageFileCompletion.html @@ -0,0 +1,15 @@ + + + + + + + +Use Basic Completion + (&shortcut:CodeCompletion;) within HTML, CSS and other files, for completing image file names.
+
You can quickly view the image referenced at caret by using the + Quick Definition + (&shortcut:QuickImplementations;). The underlying image will be opened in a popup instead of a separate editor tab.
+
PyCharm allows configuring Python interpreters on the various stages of development:
+&productName; lets you jump from your check-in comment to an issue in your task tracker.
+All you have to do is to define issue navigation patterns on the + Version Control page of the Settings/Preferences + dialog:
+
When you commit a changelist, and type the check-in comment, make sure it matches one of your issue navigation patterns. + Later, when you browse through the changelists in the repository, such comments turn into hyperlinks:
+
Clicking a hyperlink brings you directly to an issue in your task tracker.
+ + + + + \ No newline at end of file diff --git a/python/resources/tips/JoinLines.html b/python/resources/tips/JoinLines.html new file mode 100644 index 000000000000..144035ddb624 --- /dev/null +++ b/python/resources/tips/JoinLines.html @@ -0,0 +1,10 @@ + + + + + ++ The &shortcut:EditorJoinLines; shortcut joins two lines + into one and removes unnecessary spaces to match your code style.
+ + diff --git a/python/resources/tips/JumpToLastEdit.html b/python/resources/tips/JumpToLastEdit.html new file mode 100644 index 000000000000..1438812f4e1d --- /dev/null +++ b/python/resources/tips/JumpToLastEdit.html @@ -0,0 +1,15 @@ + + + + + + + +&shortcut:JumpToLastChange; (Navigate | Last Edit Location) + brings you back to the last place where you made changes in the code.
+Pressing &shortcut:JumpToLastChange; a few times moves you deeper into your changes history.
+ + + + + diff --git a/python/resources/tips/LaunchConsole.html b/python/resources/tips/LaunchConsole.html new file mode 100644 index 000000000000..5b2213c0c57d --- /dev/null +++ b/python/resources/tips/LaunchConsole.html @@ -0,0 +1,15 @@ + + + + + ++ While debugging, you might need an interactive console at hand... This is most easy. +During the debugging session, switch to the Debugger Console, +and then press the very lowest button in its toolbar. +
+The console becomes interactive, and shows a prompt, where you can enter commands, and view output.
+
To view which line separators style is used in the current file, +look at the Status Bar:
+
+
+ To change the current line ending style, just click the spinner.
+ + \ No newline at end of file diff --git a/python/resources/tips/LineEndingsFolder.html b/python/resources/tips/LineEndingsFolder.html new file mode 100644 index 000000000000..a7824801b636 --- /dev/null +++ b/python/resources/tips/LineEndingsFolder.html @@ -0,0 +1,13 @@ + + + + + +You do not need to open a file in the editor to change its line separator style. +Use the Project tool window instead: select one or more files, +or folders, point to File | Line Separators on the main menu, +and then choose the desired line ending style.
+For a directory, new line separator applies recursively.
+
+
+
\ No newline at end of file
diff --git a/python/resources/tips/LiveTemplates.html b/python/resources/tips/LiveTemplates.html
new file mode 100644
index 000000000000..be1d10b45a42
--- /dev/null
+++ b/python/resources/tips/LiveTemplates.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+ + Live Templates let you generate many typical code constructs in seconds. For example, type + for in a Django template
+
+ 
+ and then press the Tab key to see what happens.
+
+ 
+ Use the Tab key to move between the template fields.
+See Live Templates page of the Settings / Preferences +dialog for more details.
+ + diff --git a/python/resources/tips/LiveTemplatesDjango.html b/python/resources/tips/LiveTemplatesDjango.html new file mode 100644 index 000000000000..4bd3fa725cfa --- /dev/null +++ b/python/resources/tips/LiveTemplatesDjango.html @@ -0,0 +1,13 @@ + + + + + +If you are going to use Django live templates, make sure that Django is selected +as the default Python template language in the Settings / Preferences dialog: +
+
+ 
To see your local history of changes in a file, invoke + Local History | Show History + from the context menu. You can navigate through different file versions, see the differences and roll back to any previous version.
+Use the same context menu item to see the history of changes on a directory. You will never lose any code with this feature!
+ + + + + diff --git a/python/resources/tips/Managepy.html b/python/resources/tips/Managepy.html new file mode 100644 index 000000000000..ca9250ea3acd --- /dev/null +++ b/python/resources/tips/Managepy.html @@ -0,0 +1,18 @@ + + + + + ++ The easiest way to run a utility of the manage.py task is to + choose Run manage.py Task in the + Tools menu, or press &shortcut:Django.RunManageTaskAction;.
++ As you type the name of the utility you want to run, the lookup list shrinks + to show the matching entries only.
++ If you type an asterisk, PyCharm will show the complete list of all the available tasks.
+
+ 
To help you learn the purpose of each item in the main menu, its short description is shown in the status + bar at the bottom of the application frame when you position the mouse pointer over this item.
+ + + + + diff --git a/python/resources/tips/MethodSeparators.html b/python/resources/tips/MethodSeparators.html new file mode 100644 index 000000000000..1ce1b039d762 --- /dev/null +++ b/python/resources/tips/MethodSeparators.html @@ -0,0 +1,16 @@ + + + + + + + +To show separator lines between methods in the editor, open the editor settings + and select the Show method separators check box in the + Appearance page.
+ +
Use &shortcut:MethodUp; and &shortcut:MethodDown; keys to quickly move between methods in the editor.
+ + + + diff --git a/python/resources/tips/MoveToChangelist.html b/python/resources/tips/MoveToChangelist.html new file mode 100644 index 000000000000..440cc9c17ee2 --- /dev/null +++ b/python/resources/tips/MoveToChangelist.html @@ -0,0 +1,17 @@ + + + + + + + + +If you don't want to commit some of your changes to the repository, you can set them aside for a while, by moving + to a separate changelist, or by putting them to a shelf. Select such file in the Local tab of the Changes tool + window, and on the context menu choose Move to another changelist, + or Shelve Changes.
+ + + + + diff --git a/python/resources/tips/MoveUpDown.html b/python/resources/tips/MoveUpDown.html new file mode 100644 index 000000000000..0575c20e7c63 --- /dev/null +++ b/python/resources/tips/MoveUpDown.html @@ -0,0 +1,28 @@ + + + + + ++ The Code | Move Statement Up/Down action is useful for reorganizing the code lines + in your file, e.g., for bringing a variable declaration closer to the variable usage.
++ For example, select a code fragment and press &shortcut:MoveStatementUp; or + &shortcut:MoveStatementDown;.
++ Before:
+
+ 
+ After moving the lines up:
+
+ 
+ After moving the lines down:
+
+ 
+ When there is no selection, the line at the cursor will be moved.
+ + + diff --git a/python/resources/tips/MultipleProjects.html b/python/resources/tips/MultipleProjects.html new file mode 100644 index 000000000000..2efdd0852d09 --- /dev/null +++ b/python/resources/tips/MultipleProjects.html @@ -0,0 +1,16 @@ + + + + + + + +&productName; can work with several projects in one window. +To open a project in the same window with the already opened one, choose +Open directory, then in the Open project +dialog box, select the option +Open in current window, and select the check box +Add to currently opened projects.
+ + + diff --git a/python/resources/tips/NavBar.html b/python/resources/tips/NavBar.html new file mode 100644 index 000000000000..2029dc95e2b8 --- /dev/null +++ b/python/resources/tips/NavBar.html @@ -0,0 +1,15 @@ + + + + + + + +Navigation bar is a quick alternative to the Project view.
+Use &shortcut:ShowNavBar; keyboard shortcut to show the navigation bar, and arrow keys to locate the necessary files or folders.
+ + + +
Ctrl+Click (on Windows) or Cmd+Click (on MacOS) a tab in the editor to navigate to any part of the file path. +Select the necessary element in the drop-down, and the corresponding file path opens in an external browser +(e.g., in the Explorer, if your OS is Windows).
+
+ You can easily override the methods of the base class by pressing + &shortcut:OverrideMethods; (Code | Override Methods).
+
+ 
If the cursor is between the parentheses of a method call, pressing &shortcut:ParameterInfo; brings up + a list of valid parameters.
+
TODO tool window lets you preview each of the +encountered TODO items – just click the preview button on the toolbar.
+ +
+ + + diff --git a/python/resources/tips/PyColorFiles.html b/python/resources/tips/PyColorFiles.html new file mode 100644 index 000000000000..4ac26ed2e950 --- /dev/null +++ b/python/resources/tips/PyColorFiles.html @@ -0,0 +1,15 @@ + +
+ + + ++ You don't need to guess which __init__.py or + views.py you are looking at...
++ Make the editor tabs and the lines in navigation lists stand out + using the File Colors page of the project settings.
+
+ 
When you press &shortcut:ShowIntentionActions; to invoke a quick fix or intention action, + press the right arrow key to reveal the list of additional options.
+Depending on the context, you can choose to disable inspection, fix all problems, + change inspection profile, etc.
+
+ To quickly see the documentation for the symbol at caret, press &shortcut:QuickJavaDoc; + (View | Quick Documentation).
+
+ 
The shortcuts such as &shortcut:QuickJavaDoc; + (View | Quick Documentation), + &shortcut:ParameterInfo; (View | Parameter Info), + &shortcut:GotoDeclaration; (Navigate | Declaration) + and others can be used not only in the editor but in the code completion popup list as well.
+
With a single keystroke, you can apply another code style/coloring scheme or keymap right from the editor. + Just press &shortcut:QuickChangeScheme; + (View | Quick Switch Scheme), + to specify the scheme you want to change.
+
Use &shortcut:RecentChanges; to quickly review your recent changes to the project.
+
&shortcut:RecentFiles; (View | Recent Files) + brings a popup list of the recently visited files. Choose the desired file and press + Enter to open it.
+
Besides recent files, you can bring up results of the usage searches you have performed + recently. To do that, use the same &shortcut:RecentFiles; shortcut with the Find tool window having + the focus, and select the desired find usages result from the Recent Find Usages popup.
+ +
When searching for a text string in a file, use recent history: with the search pane already open, click + the down arrow to show the list of recent entries. +

If you place the caret at certain symbol and press &shortcut:Refactorings.QuickListPopupAction;, +you will see the list of refactorings applicable to the current context.
+
+ 
Found yourself in a situation, when you want to use an interpreter located remotely? With +PyCharm it is quite easy.
+To configure a remote interpreter, press &shortcut:ShowProjectStructureSettings;, and +under the Project Settings. open the page Python Interpreters.
+Then press &shortcut:NewElement;, and choose the option Remote:
+
You can use this remote interpreter for your project, or just leave it as one of the available interpreters.
+ + diff --git a/python/resources/tips/Rename.html b/python/resources/tips/Rename.html new file mode 100644 index 000000000000..a1307443a10f --- /dev/null +++ b/python/resources/tips/Rename.html @@ -0,0 +1,17 @@ + + + + + + + +You can easily rename your local variables with automatic correction of all places where they are used.
+To try it, place the caret at the variable you want to rename, and press &shortcut:RenameElement; + (Refactor | Rename). + Type the new name in the popup window that appears, or select one of the suggested names, + and press + Enter.
+
It is possible to rename CSS selectors directly from HTML. Position the caret at + the selector to be renamed and press &shortcut:RenameElement; + (Refactor | Rename).
+ + + + + diff --git a/python/resources/tips/Reopen.html b/python/resources/tips/Reopen.html new file mode 100644 index 000000000000..f66edac2e0ac --- /dev/null +++ b/python/resources/tips/Reopen.html @@ -0,0 +1,20 @@ + + + + + + + +To open again one of the recent projects, use Reopen(on Windows and Linux)/Open Recent(on MacOS) +on the File menu:
+
Another way to reopen a project is to right-click the &productName; icon on the task bar: + +
+ + +
If there are too many run/debug configurations of the same type, you can group them into folders, and thus distinguish them visually.
+
+ + + diff --git a/python/resources/tips/ScopesInTODO.html b/python/resources/tips/ScopesInTODO.html new file mode 100644 index 000000000000..9872b807a7a9 --- /dev/null +++ b/python/resources/tips/ScopesInTODO.html @@ -0,0 +1,15 @@ + +
+ + + + +If you are working on a large project, with numerous TODO items, +filter them by scopes.
+Use the Scope-Based tab in the TODO tool window to show only those items +that pertain to the scope of interest.
+ +
+ + + diff --git a/python/resources/tips/SearchEverywhere.html b/python/resources/tips/SearchEverywhere.html new file mode 100644 index 000000000000..9488ee263bda --- /dev/null +++ b/python/resources/tips/SearchEverywhere.html @@ -0,0 +1,15 @@ + +
+ + + + + +Find any action, symbol, or setting in &productName; with +Double Shift:
+
.
+
You can also click
in the upper-right corner of the product window.
+
You can quickly find a setting you need in the Settings/Preferences dialog, without browsing through the numerous options. +Just type some characters that, in your opinion, exist in the option description, and the list of settings will reduce to the +matching ones. Select the desired entry, and see the setting that contains the entered characters highlighted:
+
To quickly select the currently edited element (class, file, method or field) in any view (Project view, + Structure view or other), + press &shortcut:SelectIn;.
+
By pressing &shortcut:ChooseRunConfiguration; you can access the Run/Debug dropdown on the main toolbar, + without the need to use your mouse.
+ + + + + \ No newline at end of file diff --git a/python/resources/tips/SelectTasks.html b/python/resources/tips/SelectTasks.html new file mode 100644 index 000000000000..db5fb1a34864 --- /dev/null +++ b/python/resources/tips/SelectTasks.html @@ -0,0 +1,15 @@ + + + + + + +When working with a lengthy list of tasks, you don't need to delete them one by one. + Select several tasks, using Shift + or Control/Command keys, click the right arrow, and then click +Remove. +
+
+ + + diff --git a/python/resources/tips/ShowAppliedStyles.html b/python/resources/tips/ShowAppliedStyles.html new file mode 100644 index 000000000000..2f6b0984b220 --- /dev/null +++ b/python/resources/tips/ShowAppliedStyles.html @@ -0,0 +1,17 @@ + +
+ + + + + +You can quickly review all styles currently applied to an HTML tag, by right-clicking the tag name and selecting + Show Applied Styles For Tag + from the context menu:
+
You can bring forward the list of all usages of a class, method or variable across the whole + project, and quickly jump to the selected usage. To do that, place the caret at the symbol's name or at its usage + in code and press &shortcut:ShowUsages; (Edit | Find | Show Usages + in the main menu), scroll the list and click the desired usage.
+
The speed search is available in all the tree views: just start typing and you'll quickly locate the necessary item.
+
In the Live Templates settings, use speed search to find templates with certain text in the template abbreviation, body or description.
+Start typing the desired text, and the list of available templates will shrink to show matching templates only:
+
+ + + diff --git a/python/resources/tips/Spellchecker.html b/python/resources/tips/Spellchecker.html new file mode 100644 index 000000000000..7361ddf2aaaf --- /dev/null +++ b/python/resources/tips/Spellchecker.html @@ -0,0 +1,15 @@ + +
+ + + + +Keep your source code typo-free with the help of the built-in Spellchecker.
+ +All texts, including comments, textual strings and literals, are inspected against the pre-defined dictionaries. +All typos are highlighted, which leaves you with the task of choosing the correct word, accepting the current spelling, or disabling inspection.
+Use &shortcut:ShowIntentionActions; to see the list of available actions.
+ + + + diff --git a/python/resources/tips/SpellcheckerDictionaries.html b/python/resources/tips/SpellcheckerDictionaries.html new file mode 100644 index 000000000000..c81027a013f0 --- /dev/null +++ b/python/resources/tips/SpellcheckerDictionaries.html @@ -0,0 +1,12 @@ + + + + + + +If you lack words in the pre-defined dictionaries, you can create your own ones. A custom dictionary is a mere +textual file with a .dic extension, with each word starting on a new line.
+All you have to do is to point to the directories where your dictionaries are stored, in the +Spelling of the Settings dialog.
+ + diff --git a/python/resources/tips/Surround.html b/python/resources/tips/Surround.html new file mode 100644 index 000000000000..a7b2478b56ef --- /dev/null +++ b/python/resources/tips/Surround.html @@ -0,0 +1,14 @@ + + + + + ++ When you want to catch exceptions thrown by some code fragment, + select it in the editor, press &shortcut:SurroundWith; + (Code | Surround With) and choose try/except. + This will automatically generate the except clause.
+
+ 
Use the Switcher (&shortcut:Switcher;) to switch between open files and tool windows. + Keeping Ctrl pressed, use the Up and Down arrow keys, + Tab or Shift+Tab, Alt for navigation; + use Delete or BackSpace to close editor tab or hide a tool window.
+
Did you know that you can close tabs in the editor and the tool windows of &productName; without actually + using the context menu commands? + It is enough to point with your mouse cursor to a tab to be closed, and click the middle mouse button, or just + use the Shift+click combination.
+ + + + diff --git a/python/resources/tips/TabInLookups.html b/python/resources/tips/TabInLookups.html new file mode 100644 index 000000000000..328047399be6 --- /dev/null +++ b/python/resources/tips/TabInLookups.html @@ -0,0 +1,17 @@ + + + + + + + +When using Code Completion, you can accept the currently highlighted selection in the popup list + with &shortcut:EditorChooseLookupItemReplace; key.
+Unlike accepting with the &shortcut:EditorChooseLookupItem; key, the selected name will overwrite + the rest of the name to the right of the caret. This can be especially useful for replacing one method + or variable name with another.
+ + + + + diff --git a/python/resources/tips/TagNameCompletion.html b/python/resources/tips/TagNameCompletion.html new file mode 100644 index 000000000000..cdce27443c63 --- /dev/null +++ b/python/resources/tips/TagNameCompletion.html @@ -0,0 +1,17 @@ + + + + + ++ A special variant of the Code Completion feature invoked by pressing &shortcut:CodeCompletion; twice allows you to + complete + XML tag names from namespaces not declared in the current file. + If the namespace is not declared yet the declaration is generated automatically. +
+ +
+ It's very easy to navigate between the Django templates and referencing views.
+
+ To do that, use the icons
and
+ in the left gutter of the editor.
+ 
You don't need to leave PyCharm to work with your favorite shell. Just choose +Tools | Open Terminal on the main menu, +and enjoy using the embedded local terminal.
+
You can gain quick access to the available tool windows: hover your mouse
+pointer over
icon in the lower left corner of the IDE window.
The list of tool windows shows up, leaving you with the task of selecting the desired one:
+
All your most indispensable VCS commands are just one-click away...
++Choose VCS | VCS Operations Popup +on the main menu, and get a popup with the VCS commands that are relevant to the current context: +
+ +
+ You can quickly get familiar with the main features of the IDE by reading these tips.
++ You can try out the features described in the tips while this dialog stays open on the screen.
++ If you close the dialog, you can always get back to it using + Help | Tip of the Day on the menu bar.
+ + diff --git a/python/resources/tips/WideScreen.html b/python/resources/tips/WideScreen.html new file mode 100644 index 000000000000..1ef170b896a4 --- /dev/null +++ b/python/resources/tips/WideScreen.html @@ -0,0 +1,16 @@ + + + + + + + +Tune the &productName; tool windows layout to make better use of your screen.
+Toggle between the vertical and side-by-side placement of the tool windows by +Ctrl+click (Windows/*nix) or Cmd+click (Mac) on the splitter:
+ + +
For the pattern search in the Go to Class, + Go to Symbol and + Go to File pop-up frames, + use * and space symbols.
+* stands for any symbol.
+Space at the end means the end of a pattern, and the preceding string will be considered not just a prefix but a whole pattern. + The list of the suggested names will be reduced accordingly.
+
Use Basic Completion + (&shortcut:CodeCompletion;) for completing words in text and comments in files of many different types.
+All the words from the current file that start with the typed prefix will appear in the lookup list.
+
LeOC| z&!M9yxXc^YBMa0xL-~X9=}BxO8}~5VD5Jb$F{A7;28EXwvMNj*91K$R&_)Qf#v;Oz zPey$;;PFH%0%v1obaeD!rj(4Y*>WhEUMYPvlZR2#e(&RjjpxpM=f7i-sgS0OakWP| zZNJ-Z7cY7(GYt$NNB@XG}-yMkZ zZ@b0Ae@-Lm+5l6hQahOrj5m*#`S>yyg)tm&+A4Lc1Fpsd6b=!;*VJ5OTIViy_=_;t zKu;JTxnO3@nCIsb!f# Y3Ym1AZWQbnvE+DNfihcor4=`<&e`x4iHedp} zpI*t`1!gngkQZH$cGZ57Y=}BB*Gr4{S(Mv_)s# D|Mg*-fEw5$_+-`j2*3w&}u)&*^>U_6{m{BB3?rwB@R?-hAGqw>ab zlUI6Jk6Fr*guIWKQRSRnjo#oi+3skbc;LlmA6*jcYC?Ri#zM}~v1;Kc&8nrmTtOsP zM^p0(Os-4<;WwW%o|G}UAP={cfpt5fqawFmjd6L8XTtAZ0KKtJ#)!Xg){Cs4XYRI? zij)Mesr()V)&l*JC&s_xd9{E1cCA=+2~kiDQ4gr9kUY`Hdmk*(1@6gz>i8!`@2>9d z?9fPfdwY`)s0`&IqGtZ7=$CYzIMSI3NE@Vp%yyW0BOYz!^328IEg3Bo!K0l$a<9IX zJEmY_m^*e>y#4@gZ_e#sk>xI3VI~W zGYy3h}{XkA?1+A7Swqnj~3J)QB<=iuR}nlVNIH!jrv z^!HgzOVjiEpJeiC738(O=Z67GAV_mum_ayy|DE@ui{33_*Xf9h EetDeZ>Z@^smZ&8d=snB(@16>?bO#2%=}BZGs9bQrdmVh6@4 z+r^ewYT6M<@8wg1P*U}J>qBMz#g<*MH1OYN+u!irek-qX#X?1^i3_OSa3{%yqqQBr zD}!6!bl)1h&sjW;RaSe@@^n {r%hf%)4FrY;_~CLlC-V%Qf-egPTI&gRbrX!k+y#Mj`ci z$h<- iPq^7!`%Ro)XL~qEaHp@c`mZ!Uqu+C4RF#sDM_cUAM zubL%E%7?eMkvq>Ud&{_1cUYaywJxOma1%V2+BAMH_z_{>1U>Qa1&61nfOlS<(ApEM z>8#`Nv_vUmJd-CPmQFBdyv23zqx+mT=w=rnO)LD6CEkZb|3_H+-DXVE;H1efF7Hzz z>rtw|lpmloot++efwuT*?X0SSzbcQXj-t!A#{WU(w0)mi{08@|l#N_mT(n5nfDhW* zR>@9=1_l+{hTvvM(YDJD3gUjNtMO;l+9bivpOF2iBZ$x9jfIp2-bH>Wycpg$Fysm( z=d<~4pB)``NLNRB+JbUgcV$$sV7=Ee&dRIQq}aIJ8(_S-RBguzs`XOOj^Mam!zXKN zUGlQBA3sE4e=WvzwW#Hj-Tqw+PzC Y-MQA3b&>>sqzOW~AVX zHy4c07I0dHoj@b%=&GpEuXe{~+?_z!hBisw%&dS#CK!g-Qr65rD?lv);=1`a8Rd>H zn@1ZsjR|-*6k f-_>c6_bO`lG4+O@+S721<&b5Nd{6+ z`#0&od*e7IemeLb{)>{Ma6YBarSgh+f`B*V-C5#7Pv5I?cDKB=JQp1;i2Df@?$O4k z+6qCY(R0CX>6gH X(<74*X=?B&HkK^BP_DTaAs43;`K5 zOItC (3J;`WX44uMA##@sHySeUAH1On| z>+a}AQzqM$qmfBnF)^KhA@(g<%*=r(SOX$^{ko#Ea*P-W46C5?xPGKSN2ifdhn=o~ z$Za+_($i%_Y*~!+!L9szbhGODy(S67~a&)a%McWnC@i3 FEwvwBaG_|r4=PN;5*&?v&Wf4-|Q55_&`JHzAw-;MvXak?UP)NZN z4_G3Ynwo+_W8?_w6kG(!DH8^cZoZe496Z$x*tJ sSQn2o(05N{ ?(gC1GX7D0B=$(plY=nhqr&}wfyCjy6}cF|$xyGqXp>}a0R zGo5YZ4&JcDNgp7VP!*3&N}$Hm;(^UgAe)V09hgkXk!BQL$mLKvqpzhk3nKj5+H+8- zi2uViv*veT#;9N575Sg5d%v`_w0C)LMMOlz#8wX6rfWn$M9Ex_Yb0`WB0H^@$NgBJ zMl$m1`F+t0lhPs`6&rK<0q@BYQE~wJ0fMnaF(n`(U027$!{gc?OIluDPWM5K=Bvba z?tVr+JMgX`?2?t8EmiPAQnI^PA;p2;Fyy&ai+OL!QSj%|=ho5i`--j& xN6qukfq^j=22Neum_2s+o6Uix}POjDY*H zX;D >SE=sA<8LE@Q!`hmpI^<+4ax9_NFvh>} zUk5QZb5{q6yQYvXPrn!c`5Pq~C|j{*YA(L=ZnXr;YwH2JgZxtQ@sm;k*~Xoy0IRQX zg7E-#D3S4dWazS6SYlOKrK(zo##p23p>=O6W1?88n9j}5d54p;KT8$d;ZHiZxBY19 zdDr3U?pvx=jx;X>Vrz6QLd(=hR2~=8xWX5!t?_O!wgv;-aWMUhPxYgQC-bg%y3B>^ z_hQv`a?FHYP4nBOG^Tu& @?)}TEwO@TNWqYIX}QL)q+jsbw+=D%KmxU!?a zg-oTnS2?tnUpeH}@uYQqNtA@Ma5spR4_ezl` c-~4ir>6Af6C4zw-IFhQE+knyylzeJBikjdzpnqo&D|Rq9m?U4K|2ijx*Zdn zBnf`epO-}p%}m|b)lP(en^4*Vf-163`9Z$~3~5YiL-GCiw&l4J^Eh``={gAMei|I@ zaXV#noA%0x+4Lhex0>SWraf7uMvU-+#Qm2%Gs^VMTa!H$k0cyI)i8`=cPDMm9V<=} z-Zwvgv2 Vk}dtl6$hAJ)C{EJgYWWFMgR4YZQD%bq@E!dhU9W$*A10 zgbW0kI-Pe?3Bc`?y!!Zr_N>m~+%DcHdZ(YhWj;?|AaNAi$e2JJyxi89-ci~FQq^D^ zp@wqNNkak<+r3njjV%LVp7%UIYX%HULTqz)%qNu6g1a>;w-$XbQSC9mF^*gnWs7+^ zMYAE$HxJrpW>~l)6bIin^i?^S{UXio@fg-mNm!ir`QtZ`s@Dc#ZVXB7HWo^Wm?AV1 zRsuyMiMNmT>SrBW?uaR8Y~+weK2o#6t;Yf1qWX)tW9VW>k*Y_DevI|^(V^r)Zm@wS z^0^N;a%tG)%!WPgZ)e@$Npt{}dYt NfY&V)nteB-$tdC}=QTdi?F@ zgxunyN$eH8cOTzh)vi)Y=K=)LX|)Er(PBqt-Q|mn#m-s^|M&fP+NbQ?s#tY@Ybu7% zM2+wF3(9`{_7!xG-omzy)RJ1Ab*(%9L}yTEu~XXa1b@RS)*)8Vlq+&AZFQ|8onq`s zQ90}U%YJ6#767`uu{$@034yXlr Q)2EFT&0JKU{uF5aAd;*Q!I%*q*dE;KE;X@ Or?ebqD5I{mpV#U z(FHc&gdyPS?rcx5k_TTkn4Fh}zkO{!@Ef`2F6@}ENkws{kwQESPfATw&EG{XmZH`5 z{8|{n?rR<>2K2)wSe6pT0@2;Q2~yCV(<{B*F=ZjAjbcAEAn5B(d;8zOwRaDAG^Ifi zjh5T8k!LiQq6sTdXG`TT*fMp5T6Ri`vGW@Lwg3ECFJ^{_c2A0IrB>shn5??pwXS7! z>c?EwH2)ZyQvb1E4E^SS zkF (6Mi?*XV) 8Z+WBBKI z3Y-c#eB<%=XxON }L9aoouByaKVdgVVpE)_4hJJ}uW@jQKZZ2+fJhXaHa)RFHdjHK7G} zH`Fx@RNkrTm^$erLuuAF1KmqEr`crBoSj^3r1S7hHKosMYR_7$kMY|c=R`ptte+Vl z-?z3HwKWNtG*|jBUW_Ze4EwWD>mNMPs=4qyUar|7;@l^;gOOFqgc)?%FS|x|_V7~F zQaX~XzNC&YXlEOA^J3Cz_CyO-l}=c5P4wwzP^tj 9u6 ztIps<;pKzp{dl-Zqg47nklt~3NA+|{g_dR4RP}I`M+Ii|YT1SEI8JvXp|~r7YcbDJ z{%;M6H{#?1uO{KQ?fiNKArZI%zfUvK9NYfYr%3zRoo!+Te10B=pb1Mv^fv_lJ}X#T zyWb4VqM2^KIO}ZQ+zu|{=!8{ycGwhF@(04ld)CA={uT0YJPjF|%+q`8gJ}`%yJc`E zcu}!h%eJK!_JQu@{oPgq*u!=9bRwm-6P~s<^ti$w)0lSfT(^~yH%7IbKyKizU*M<$ z=-r8n%x?^fL90iF+{w y4xS<~bns<+)?)pq(o{%vwCa`4Lwv2xx73y6_#LTrT6gT#f+w(*2&M z^>ONZ;27A)^ o!C9B22_3CFD|~^Sc$Sw9U (!1d z1$HM7BQK;OPQIHBV|jkCrQx;pmD{s-@Pe^13==X?XCl>JhJH%QWdQ3Uv2%RYd0Fu# z=U)lb+V}hOR<()0@# 7x=Z)Ydkc=p1GTWAudO1?duch2vyf7IKj zk-6&de<;Ta2>A1YH5dxtMMIlt^$0&rVsaaK2n{s)YJ~y>RXRRxOo*?tmjWS;?4HZF z9Du}rtH8+fZK^0MATh)hXPxVIb$rDia=x8R?0DMFXn(x6*JH{VuaO+R(Te)S+Ls!g z`|l4M@gn5j56-`iu>P%cm3YnySg2`gf0{A-i@~GXZewP4*d;PnsN8NN1j|8MX_rNN z*K(w$4n|+VdTJ=<6DF{8_JajnPWFPhV16Ume`}fJeVd|-1UTL2JyRZ2#gBnjCYh2t zLJ9zQ@BTTi-gn+ZDfV)7xaq}utO&HyvRH37;xrR76*Km}xm_@yFF<+*V UY;x?AzwTfBQ0Fdgv$o#;C5O^Qhh!a_UzHzt^r%I-<^x;2$ zO-+g`aFa@Wc-vWX`IPt1>_c8yt$Sz3r -mcL}c`aj^AU=q%OP+a^ZRQ zaGt|CL?#OVy6MVFAofXw-8n~& V8`Iat8aC*T$-W1PfDiN@R{`i&DwLLVsxR}im||GTaLbYss;+X3Pj z2g_KnD@<7GXg#L xlI@y l~$}hcqWnz1R204FlIIFJD7_ zz3s|>_3NIs&y|feD+_sajYH4;%3tvhKcx7>| 0A?O`ROn)}C_ zz)At#*#^`Q7rOnm+bJGh<0le;@(tNwVgu2)M`$u0pvV7o-oN$}^1=o0!U;aY&iavQ zq24x+-xUXNPPcY^>T^XCeh3X-dXcbNe?0N(F#4}O(YxQ r}gMCL^$GNhxOyl=$M;Q4gOfT}Jp<*_g<>QXI$$QL&FEwBAy zDjm8P4s?|$ViAxZpdX}G%8S9K8oy^y=@-C1UDQHz{g3@{vp@Bla?0XVwYI)iTZ@){ zgV_hxCtrgBsPzoD0x1L`@W?FC#K{R+!p(YT#~UIGk!xjDymgO|OcfQ9sbhe4K3x=B z=(ujS;08W%w`;uskYBUnG{^zRr$3fOtB08MtXI1Gt3Kk;Eo_f2vn71)qr-Txw<8NN z0~Bf(+Yb&tS|4-cPzC-n1Di(*nZOizp}L#QtKoGlHF|MdP{uC=mZvUq5DzFIYHCJM z%w}a@NK4m)GV>69!&{NW;~btubhesc8d5DDn*D8Ceqm3a!2Z*e0bYbnVMx>k<_=Qf zXe>ku#g +*!1NT{-eU&`Cx+OS zJFLup*$81%4GZEix}`>l|0^<9Um0~I{ClaWe^wF9QabR#I9RRTmAH~bj0OGO=^^_h z{3kA+LRPhkMaEMZV$MlI5KV%c;ZVun{{n Hn6TC6ayb+_T}VriKfQX7P=fM|G-xWuc36Cjx%ux{yaOZY8Vv zBy&9VhA4fyu%m6cj?x+j`D|K7qKu`9La=X~yZ1__JEUY< @xcrT^28xfw+5ls6=fz737x f#CG*Ru|Hc2zyL=aiC~W5FkcL-I>%$?` z>t%>Z#zvB?&9tw2UPSbWcpL*keKEw0lp6VgF^aD4CF%3}1|A1J+SUrv-XK3Lx_ao# zO#!eNSrmdHZ7CF=VnurPQtoRnM8Q98DL&E(3+R1GZlH3`lqNOYhm-R;D~XqbKUb-( ziTsu2I ~ZA9S8= {BcwpS$HgEo$i1=aRC5H#Limu<-z!){ce^3=RH35~D zYE=cA3L<*zl;J;xVx3pYB#ZT&@3Q2x WZ+K7dIg_gWT2WprT(q aBZ!H*oBE5LuYo@g0u*FarK{eXhWsDacI9LM literal 0 HcmV?d00001 diff --git a/python/resources/tips/images/CodeCompletionInSearch@2x_dark.png b/python/resources/tips/images/CodeCompletionInSearch@2x_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..13a36f0b9cb086ca917dd4be18ac40086aa459f5 GIT binary patch literal 22653 zcmY(qWl&t(7A=fJ@BqPG6WpD~-AQnFcXxMp3-0bNjY~*ycXxMd`sJQ`?)To;Ro%6J z>|M3joO6ve=NO|Sl@ugV5b+TqARthrrNmSqAfS@|UWXyT{r$C5vKoMZKoqtV6;+ZJ z6(v=2vNyA|F@=DTLdi*U|M7hVJAA5#t7jU6oRsPw-|G|UET7aD80ARm041of5NbCu zSP87p-_%Tg^g&97lN*a;Aq58+Eq%I0R~qS8785_%h_U{3Rl{+&nFSiv+*&zmTUs%{ z@?GkLP (yUx2SUiPz1Z8`Gt p@UgQIB+Vev?3*zAE z>)hP)PdNx?tW5piN7My2k*wlac$bm4P!I?yLp 8 N- z36f5f-Hx0v`S-&| f0=uJ|HkN_!k z=rm|XDJV-Jm_}j1^4}6 RbQ3&F6fYX6d??Z7wLJp7=LJaGdWro}g zv_uHHM*mVMT$zAfjFu^~h)$q|;3+Ds#Ek_#EE<`Bo+R`#OxF+oSHRHEZPG+cOrVFoVt z2;N?}X3UO}n&G064D&*UafX^4&LO86I$PjNP>In(L#YN$wV>N4&d=Gg3`1%L@dn!U z=?&1!hUa{QsH1&&yMzvY?YKIub{w@ZZD>m|T>)o kQ{2^^cu1hUI-9wf<&TAs+gsUl}r&vpwN2*VSmL#Z@@|7A( zQHD@lWJQ5TrbEb6$WydL1*P0>UZXOjGe=9YN6c5omq{|2E&VQiZ@ebCD$zRiEZv(* zF=Z*;JzbwMk4B%&U*@Cqy&X!qU#S0kU{SqVfy7SpfIz6UcvfMmQG`*JQKV7uF2}Gk zRd-TgQX7V1h0sa;EL8~^zQ|mO=WKhkd^7K==_)gkBv n!!a-QQAQXzgfyQpr=zQXy00 zE9F$}7qAv`Ds3wj=b5djtqiSJtlkzFt750hrrdLnkF%IlNhzRgxhr5zPpPk$}(v%>DMV=6#$g;YVwMKl0a?$ zUwzZ0s|L}++5P1OQ3XK5T*IOrV~Wbesu|iMts=e=ZsS(Rs2jkZHg$buj&zcA?6~~* z<@wDY2AxyQQ^?kb7S!xj99^S@_3N6N)e?*OJcImWK1H6{FLX!((HhY?*c;gT^cVEs z8P4cQG{0%WYS=cP*1ry}4rN*E8vBlhS?w7&O_pvPw$xNGY`Fn1eEG6;>o>5w6uPD! zQ6I_QsNY!N1;RbTdr+U2UEIEQh4?OfK0DrNpS+3LgQxMPX_%8P+se_L{5FX)S%id) zbB#04fa^5lxYJJPl*nkp7^CmuP%y8$mb#~P_WE0XDfY;1$aZLBSzra!{ziu;i 7i#zD&=CASjUA>&D&E_0j9n zn<5N1O!cQ@#9|l;7&UkR66+@nSXY?Ae#ri=AQGloeM+5qY$%a;QMXY3PaMd)UtXPY z8R^-psn0#zRXzMX++i4u#KlC1x}@UAX2&F>W3gqi-6h5)hs75p<;A_l)5T@eHRv^) z_9bGpVn|B`ut^BMcvHGLRXojZ$cFEo?;`G9GP3EUHJz_IwH#DTOw}gn_iH-R5)+UR zZJ~oBF$XFR )O+WE_J;ZhZ| zP-rGm?yIw=Syx8fhuniy3}rS|uqINIRpX|)q-owS<=>wV@AtFz?IwuE@5bN!ILtWQ zUCn#lKEmGnIWDbHYeE-mb=Eo*+;#gqcOH7r;%!N7rB<#dBqm}_3AXH_Hs_V|mFs&A zESjzkM?^YAly`a Jb3e X5ZF}z`9eyoP+mho z2ti1T3IFhbyy&q^Fj;aX_GtY3d93N`^b&s9L_w!SFoIWCDwa~l<}NlFFSU#nQdYD0 zWWO^b7xQ2|vPa?;GKjgO6k{y*D_<&zyas&~gF%Zx9Rj8w7DgCdwunH8X+irzMOWKQ z^+1K^i0>&U{i(;ND{LLWyjIxThEdwkk{R_0?q$Eoi+u1Qb8f=J}ojb zWW6QYtFvi-ZA~_!tFyDbsVRAuh$uy-WYKP31|KRcfXo2F1|Nnt6){y^t^5bAa)DC* zaEa-!qdN?HF^ca*-v;~<$_e&98NtXe5g6~js*JrwrQ4TYeMvQGy1jY#c*%O5mUm&m zWu3V~1e=4}-r~(^KDw)4UxGd}4NZ(*h_=klZPlBYn`cRchg(`W1h8iQ4qGq|LxB|S zLuZDuP1Pb4O+gG~x6HaJrv zuF({RZ>`F!oV+4SW@ab1sa3ljI`(yZ%M=ysau#ICgMEhZW+$_dhA;;%lv41{7UV=} z5gd|tS_|>m>I15=!o|g!g%K{rpie_;6NLe% -4LqcZq`<=HL5 zQ@%=_L60cHdhD`2WUfx3B{~sKzt)#`c`0qF*9!T&pH^p~Z<^f4tOU6w2+dCMA$JW_ zXB22IO=8FosNn|_h)}x6#gG5s#D~1vV+S96x+;SGCy&U1T#Qf-l=O-?7Ol>?qY-2` zDw~bo>2j|6KRdh43__|MEr(JKu;x7(ca-Qw36q+`hGr50$DR4bsOP^|wzGz?Yxl%h zLOF$)4BU;v=5l$`-41^ejk`ZAEE_i@7jVKHOQSe_sVD#1VLf?74C6KJW{Jc1 ?hx*WToqW*0Uv-(qD-y7hYZR z&LA>T{M0i5jIiW#UHJ3m{%0vviKcd6{V17B4Ez7?H01wmI4Kc`xG<3dslDzrVpN0} zvgD&lnhMUeK%Z|7L1qcL{Jtu` {OM^I)3_DlJ%F2c?)C~=7|12JZ znS73qboA9NdV~r3TFUVZ z*EYr>n~R`ecMiHT!Qkn%O-PSMp0kC2y6N0M9yzpTbG|=edWWr(&n*%FU37p$4@|Xw zA3Q5Ial*=(?}bB9-VPklNszCFRAsXKXYB@b6cFLiBgipCxT4Hy)to=nXjzfMGMV4Y z94%;YmqBDi>oPB?BL#j%AsC!P?}-zn5?a!fMo;}WZc-F(qO~LA3l`SsMWoF^xRw=^ z5y4(9L}NjfBYya-K0cUI6c*>TSw7K@i=U8xQTfBBD*K$%3=lIlg&kj!#(vHkp@N z X z92T`>BkefnKk4pKc3YVUgPpr;J^kzy;v8(EB{2xBnK=UeyRXG|&+9$ !
cF$xunA0$==#iTA_YR8_kUE6rgQNPC1qOIF&Ej_>m) zY{|_(X{Qy@a?2(Q0H-Ge#d7ZP_eJppT6*7RQsECRk1*-xThM wN!1H!@YL=hE>!lTwtxQ69=K90J448ZCS z&;Adj2_gSeTCMRhV;Mmwl7v>9S`faKa2+av7`P^P$G8}h43K!U{bLoBkStKQ%*R$J z94|M4xSiowMUzEnGA|g}(mk)D73we?L%$X Dz z@lTw4R|5d2f81PEBzen)VtxSCetpr}$9Pz!(RdlEDg_Cz-S mzJ2AB!s1fQYKw)kiNrt2<#xr3vf$z0q4X|4mj4q)S#=Y zJ!jR9cpZ5qHY1pOVj;1cVSOB#`@}zoM0$`ZbmxKRzg?Q}G4<1SG=>jU0&jWTWfbi7 z)$cRJmlKHj_-@|fphniM&5>?s!(d!eeweA5A`BO8>-+Y#ONN JF1qUP>2F(##f)S;qT zu=T!QheVy{chAY>Z43VQg9=)J>00M#G zotbjfuyToof~&nA;2DJzy=h4@N^&F^=2NOY*P%6d-3q#|bLC+F2QL4kOIRGlHJoB) zyOJW2BVvuhxI_RCB``XVt(s$)jUw=DZ2R||jNljbU)6kyZTzVvE}C9sw6(rxXW%K{ zePg+ET2_i^<3_@Q{ZfMiXy~XFt^2=2nux(>7D+g{+Ow0+;o$p>QGyrYx&Ol|$1cYF zA4=}QY+JzlCj9f*u=wlg-esoubHQ5(q5r{E@1MCDD$a|Y!G{wPbz%5y0GRaPnXA+H z&5f*lTro<+`Xh9SV7K0p9ZK?jXpoQCCjga%9~WnWqi@i~oqxN)Z%zBkz#-~>cVcvR z#m)9Vm=Qo$ANsjZqtTn6&UhmA >b)1&S48W)8}o3@pVSIH8{#%KQGcW}xsuiIHn9{q1O+{z7wE9(&8 z>0if(e~eL=V?*rmV>lqZulOK-8Tu2HtKDsLgvk i$$Iy|$Q>KjL#DKECX&2CN2k2IDSq zyj0idNsps-r=J#tRBM78nuvzzzL6@fVxIX!qz|I1azBe{vxEr9!> x4r^JGi`1|E2@KVOBF9L zRL4@Lwd>Dzmp<7Pw^lT}mR%A~;&kScn44|hVN}Yprc%yfckoh|q||JdbG16s)%5v# z1Ygi#W8c?(>mu4BY^m4hLVK%}KUqQWxN}Th-#Z6z-J7>Vutc|F(EYUKjRrc<2es7M zS^nF;GQ>fQV4+LLu+*SS IR3C>SJfwL($7E;X| zs1B|^d}FDuChSaK66+1-vSWTRVEUdVO=<6$xa*_PJT_D`#7o6Eee=qe6wZ_~+J318 zEzOR=va7S?)*L&xPCA5e^SCJ2<0MV<{V~5)$MeG4K;ir*<{PH;LVPQ{CqmRG#u60r zRKgDoOVSw^CFXhO$dQgd>eY|G$mxtKd5^~6@KEqRU%=0BsW?#qv7$$vcwS(ZN8EQG zEjddnt9!0`sdrKo3hFjXid=oR?*2v-AZ~0aI8m9Vb79eeRM a!CEho`s8QPQLsb{3IBRJH^uZ>KccHuNZx809r zPO>KCFqPC5;M?J!72XTOT6S@pJo}1VyF#%tNY6VMu2<-IvqVh14Akc>{XzlGju%uG zCFdZy`F&3B`!-H ;#w&HsC%(SU1s4_Y12>gMJp4Y-*<@G}297A7%n$23 zP^%+v0PA^tV@BHBRa^aP6gsip)U$QZyRi37rGk%6#@mH%R?JYazXyxWeu7K-C(YqR z)^Od2kEO>tPcWO@EvuZ_+`8qtC5BW7tk*GmJ-Q3g&}^%ff2DkA?rxYrh2qDy=ZdoL zXbpUM^pe*r+0 pc1Oz9{6(^ W@$Y4(mD(uhJqKwh6iK?GnD?!1=Vi)nZ)qNU-T*;G^)kIOb?T$$ z*DR0SIPc@d9EwJ21J6q+(DNJ9tlX6wFZ{KY)JPI$7Q7SH^#4_y2U&t_TJ; 1{?OwO(OV{ z*LM|YlK~j-)L^SHj95~7-3j!*Dp|7=IE_9njqh>#*$b9)MeJAa20?=(03K)MOim}a zfUFOHpa_RIEF0$iPQ0L8I9#Qmj9A-jj(u02Q>Naj=*g|-YjSa8OH0Pke?y)R3B}ra zy>-O9$gY%1f1MTS`(~Q2indQ8@QOF?eIGAK7Xn!<{1QJBhxH>e6}28;RME8=C4u3p zD|}XxF!KB`kfbbKh$&Lcisx7e=M33dlDHV^%v=%tRpggT{-OqMD7#3_4|q?hW)ggL z=Z-{S1Y4?O>#b&Bgs@$G756vNIxQS)Arw{EQ< IF`VF7~jVRhO@rZ$Ga% z$|{L$3;t4&_@ftHtkb%T^mhaXgz3t%31nZ1r$tw-jVOE4K8$TkeU>lpMFIg22kIGe zyo? 7i+RMsbQ$R+GPF0s P4mTFG(4Sz=2vzxU zY^rC@ByI@vQZB;*emGSmLdf3U-unj5`oxNR4tHLZtW98O;z;_r-v^eo*LZRi(A}=N z?f~)ln~(#R*J}!r0@00rTl&el&?;GWZcYhb8S(-(IofFC|4}tn!a}3iMAmBG-8eeq z>Yv5nfp`65M7X!oFt=$>8}b!JX!YR@(VeEed<@o$RuZovVa0rzazH?|4!7f_5M(lIr9BGFVkTKadJ~g044P;KnSu48+ zjqQhOWqg=Sqe8dBKa!&Ncsu*}uV_XWoX(zZP*so<2$4lP;Uc!mPBATc06Ap_&H-@v zRX!SPOC4hvda5N!j*2ZfM+a;XMSgs%^*S;mh`{~KN<7a|?ZmD`_d~O1IWH_gVIA8< z(eKIf^#$#A&BX)7R3+n(Ej8EUv`bo(e67RXJ3+nJ9QYo7KP3LZYPMYR8{BS8)wXq~ zBt<^KHhSE^ vkO=(>#5lvq}GVc&d{4Cv5n5*Q2<|CEQ#XqB|Yq zY$`TPn=QIr$6sq$us|-&+qaut5pnBGbMe<{Znqu2Dk8c($`3
6G%;102HF!p z$8!BRmAM$_dr$l7HUUJ&GyV^Vh1I1CqPT797uGFP)2iN%ph}`L;Oc8ui=dwVJFi|Z zwLb?)pH{g8KBX65Eo4`{q5RN7=5BEljG@T1M=v3#{B*Ory7m6n_6y4`)7{*dO2Xbg z> fm}p{zqqGrmAeRX=z42d338K$5?Sc-tU!_ zX-B)TCoyuZYs}e2HSe>jl5!7rZ9N47S>!Rp@S?mOfjqU3^ny)v;@~r* zeM-Nlls L4P=0wS?Yg42u$|;OH4-3;$qwzKY+Rs2vN| z(buj1TZpej_Y1D9QPRs-`MFuW@XH2TU3UK5OhZceS~bwF 7X8Nb?p2@; L!gr(lV2)AQ_uLDrNi;_x|6P*W zzb)-B#Mw^Ap!px-aS5WXUq^zwK2j**Xhh^T#g
vly4K#03;R3S@v5%Iq+bfTJ18vnu4fdI_P$J@iD38HNE|;AMS)=gb1TH_ zF7AdW;sS2*y5GClL!$RgSst~z|B{9_gix#=O)qR^3Nln0bdle>KXqGY!~ar*yITEt z$N3oI2r@P7o8n^(&htE$U0wP#yE0CKc>@o8Zm~lyEQkl6P1~p#Jw}58(sGv}B9n-x zX&)gMh8?Y+Y5Tv{vLJi)IO-bm(N@7&4&ggty3epmIg0d!#n_>b^IB6jG#KCb0{`%x zSU*Yj={){!ns ~Y60s;j#2*T7p7XKI;BuwK0aF6v9&jbQ0bmM%>z z;&ea;xqo326qNJ!MKEPXN2@GjIZF44HAxioD40C=NhAi{sau4NQ&gfrXOZQ6qMGr+ z7S&&pQftwY^0amIMTsf+daHE;RR5DDkmQwM?lX#MlgI14S``Ei*lSyhxx$SeOJclM zxZLP+6K_ THpUs=MT!lE1+=iNeA30`Um@c zph_~g$eCVaui~{cPjtXW #{6%Mo2?N%5@l{fB?j^^=ZC;H6nEs0kiFf; za#Sr(jJkAt+(D5amL-;%aXdz;C1*uu2s+^nCAsY?ZKabj5Ryi;fbomaUl9wr96osb zP>f0slXp0Nl4AO;f!J^JlYg{ctvf4YM7}D0gCFwK3X#_D#V9*qjQ~}9iEEz-{;Dme zYhEAzzLtvNjquV7oA)73eBDx5ETi`A`}YWrnkQ)ggg&}R+-{ &X~ 2OhQ|lMQak!_dtY`F3ITp! zO-l5k4NP?(3EV%s_ln{$D!f!0;#1xdq4A^ZQ8@l3sCe{Q$zybX3b@DlJr|h|_e8l= z?Yz|aMk?faB>=AbvQN?sLEiP*cD~0X4P9@_ucwi##<5y0wqE}t^O-1wF%r~BmYHw_ zX?)+?BS}KTb~5ne)3;lTdbQhl!M6^FCC<`ahh=snm=tj>8zBgu3Ca;yehXqF7)9U^ z0V5k;2@<0=FfklIv8rKz_}o&v*;h-?_@Zh{FI8C5dP!r#lK%09-1$_Knpk&!+ RC1v&9d~an->yzN3&_&xwgUt!fZLRGd zOD arKvms|s>0@ttzv(nwZ zHPC&zfZAzU3@}QX_x$7-xg>Q+o8#gEwp(cd^=-7#oUcxPH?&MlzhaoZ-@n@d4L4Ct ziA94FKZ=YA@9{L*66vo48#cOa0fX6g%q4_qTW>pT_x(>m#g7|uH0^W2=Z~kk{gtNo zsG+%C9+-Z@!zFs+oeFzGeqyvT&m&j5o#mUon(~F?-?`7kzL|oV7m~-KBwi#$_-+p8 zz~r{gyzOtus1@%)-TA~n*fzMtGV1Gi@DZZ0|6%f(VOGN+MzCRGIOK!5j>BQ1ku0^0 zmuH$sdXZ1E&?&rFqpIXmgI^ms^|`hz(niL CZz?naXZTOWK 5h5(qX0B;K3{5|Y3H`o6h^6a-Emc(Ze|^+~3APw7+(#$Ez(BTr}^ zNH~iH%F_jfA5^+G)#0zkF0aNTo}2)q@X^8IUXW8rAI}4jN7vZqAn0+;ma(gSg*y_+ zXVU7U7qmS2hUPeR%H4ovVE`k1?69};9^}=S-y@A+f%nxek)2+~HuT7iCDpqBl)x<~ zp$9h?D^}gle4vj_;79+}2gb#rpb~G}#R0Ux-#LQu39GKI%nWnf$M|_+n|$^367@qK z%vCM#JHTsnGdI>IcZKsmqs=x-cmQh1A5;n)1CQ&)eiUeS{)C9Bp8%?rH#EZi#N_0^ zh!~w;wlA7uECw;`l0$UMQDc2cnRgJu(mG0gtRxmBr|TqhifCjKfLe~clqC^^K4lJ@ zXnnqP#rhLPzAAU5@ah40PtJs9jNG~Tepx?eg%OIASDcy-96d~4i+-fASg-c~bK62< zc>a5$tyOqW=$O6P*GFfnp(wp#D2`%hK%*Qtq@aV{Hv6Qk>B}a==i|{ED;KaKwI8r~ z3%|(L Y&@p-+TduHu<1gvdercGe})|7;LjdcnBa4s!B z4QuD{rgY_UMVsonb5dRkSbmCT>XD-|>wnsC=4vwFlK=eO(j$`f%J-@3 ^^e+S)e{SIae^~!^)UQi=CdLxKV;}{Q#dz6vkqLbZ=P(e#p`}@3#T*co3VPL zU99rd?q=cU h>9B=lJ@8>{xeS0gnU;EnghJ%Xn z0XHb C0u%fB~NlA!gT+o=$nxsW4>jqj^NH^NzN|# zoIWg3HC**Unqhrg?XnjHIx&g^KgKA?!2>uz+#^#vn31vS;Ih)s&PoIM4NT6K=@c;G z69)9Mh^+bWp%2K`Gr_!alsK44hf%N$+h0R3y8BC(uY1`QjntVdN$Su*hn#iYx1a#I z-nk|~L|l{ 7^#mc*(7Y>c_|PoU6`$5uI~*nJmLqS%K0@{1|Vn>4%8i)umw4_-h#>% @7{~_1gkTp2FA|U`EAWbIQxcdJXf{9Z!h&(p4WbK z+53ntiYlCUh{wS>*;nsOG8~>DlHj;xp~dMMq|*(M=lS2~y7yAZP;WgbtW-lcc5E^` zpU{4BzjU*+<-|^s@-zMut@w`is^wE8e*z=$=-Imhd`G`HeGsS;=e--WpRS^~Dtw9@ zb?RYgy8ZWP$Ni4ZJkpH8oN~5J_sTD2gwmV9OT?VmZ+X*gL0@QK#Yd 3aQGm-w-RuM`&y#|p|*F>auFo10$59AB{a^V0Cr@~wsBA=(~b7Z zy1c`ypt`=2>E-Q<+r`!CX2-Pw)hJfMQoSasSL(IinT#k?vzbIqKeoSEKoj{6+1r q9RNFCv>seblh*$73IWefvy*to`f$ zOn#4l%Ch9S3`Y{u)yijKliSo$U=wePK^IFQ7}-y~!t*9c&tPL &&;crZ5+sU zmf;_c9UT4a<=tf}Pvusc?x;ki9^yw<54$9(UNlC!FkKE_9d-RYZV9l0508C%xSzH; z>TXwPxh=+(ylZyipE_YPKmK$%=DqnciJR$zBha5a&em;cF0kVY5PKIC9H#k&W?N<( zoO2F!SxmgCap z Fds%U&b$;!uJogf)3=K9b}b;bKgpnPb&WQb8vJ;XZ%NDn( zb8FEI^i*Tb6Z@9d=(4?w`ts~`bDu~NPC@R8z32co99r0D2Omx9CLG !}6Kcu&O1xsncaF!HV{b3dDzMRr>`N-=%&9Zw0IH(YTZ6gd zZVA%OWL(~%f;E3RI%m(@ls3Oc+P0K`Meo Niv-Rmkcxc_poj-v^2Dki3ySa_E8 z5;SPHJ-l6235h0y{w!1QMSdQ&+hz=9fY6!EXtK 2i+*@xdOum`l4yi+7LAd1J;rjOh zt0>XGvsAHD4MB~AW$ca62?*z+^x-qZjV1GPIji82ky|dj@YyF=a`!shYJhee!fm#v zNzi=i_^rZ)if6{`Z%!Pi=;prB_umZMXw;m`KiUEBEEK|PUvXB|hlSZ%7?dhYXVgK# z$g+yph;y!=r87netl{9{J$9_P9`2$mahxvr8VO8pZ+?BhM^Bct &t~Abopdck4sgA79S68P*ApPRR?lZR zvwSu7dFWyP=))UbI8lRtsAN?C3f*G9&P3SEpa;+cPPp5OINpm+Y a~@VLzy|@2wLQYx*)B3_?X%zl*~2M+hIx>@RD903f;6GLQugu zlL6>Q|Ma9bQqn*n@
KQ0Ixu(N#wi_qoPbN)z(YfY5(g5q`sA|um za}Y)stPO_eFx{2rSTEJiJYK9VDN^1n21b8RKTg}|TBhTnzw(mfRcBpHOJkb4)=XNq z2 E83+{Q%=$^T!3!Z57!At)er0x}^d|dF{xtdkab-#@lS?TCk8UxN5-? z$RVLX2ddMu$es1G?oRut!%8P2OM$yh-xSfY*4l~cr`uHAl-lzan+f}c*qxyh@!*(i z(%KZ=D7tX5vOLbv7S)0!`XgNFBD%}&9%UnOMwxe17MbZ<))-xd zMjqG`Z3wV;b(hYjT zm&SXP+H^aDeqStrTor7{z7EeMsr~bNrVIeyT8`$Hv|mY1Tid_QUZ1+&f^!fmpPrs( z{-cwfhUw|h{@z*Enq&A5>zNsEJvN4F_fBfiW1=mP{M&D-Yg}S&^|GDWJ5W#iKx@LS zt^XYFKMK188+ibvz0VsbSt2*PXA7muE4?uxoES>(sKlt?WYndSE8g`ackW(o>K&;> zz i3&Ur6t;w|z7F-P{%ve&JD2Dwz)Jr!Mf2@D(~Ydf$g^#TK=-%H-T5DH z5tR52kMFRVyCX9weC{#hab0e;nPNo$n?qaSpfoTePi#CmgveRKs;Lanhx{euH)&07 zNc`XTj1CopoGF0MB}~%2$XOytJBcoGpRG|tjbsSX;U}F2EBB=|7e-%Vq|SI^SwBPs zzXss3adGp#IU3PKjUghDj)&&(vKC($#>i?`9}m@s=QpHa5~au62*|432Q{whS@O|Y z`rEyJz;D=@Q<~5+ v_MtAy1AMOZH*A5e1P vC&X?)&Kw$d1u+5?Y~N$R|6TV_}ODkMvE$&%k7Jer>L zuLM!K^!J@9kh+~mXNE_ **Ju(F9-E7Fh+_MalU(hM=>L4! z447-5(5B$>+G~}_tH$}K$!m^+*whHdqx #cu@=MeQiO$HYg?LWTrn7 zcY581CQZB*jGzRU=}}u)XibdX<)prD-P}6 9tkj7pT42oBwi9+GS6^UHPkgl=iUJpDy^A;+!2OvzAv-K?bSHN zTHnIj`@rH~G7*fTwkQ=nQ@4ZVBZ~pmv9Fp;ig9qAE}6A*`pK3tWB_}NtHa6rCrn`3 z*Y|Lxx_7fwd&-wJskQ7ciq`3WtEHO-y$|y5%E{9Bc0#c)5O1~ki1R^PQwHQ(nLoG_ z&bsnKe-=PC1oA3WLs4U=rIVA<1uV0`#0q1T5KZ }sC*g_ z&kGC;6m7!~5}AAhFkHm>VjL?t#f7CUr-{!5p^GyhfXi7bfo$zGL3!aUwbs{h8))uZ z!Myn-{PsJbJDZ4}{Mzi34=$>t<7F>sKW4@o{oLn!7xR~%c!BwxKPoti&fClIgu~mx zotv+mo$prT4_2?Gt?J*+ir%ar|B>T0P@tZPf+-+@AXvY$>)lya;1d_qjn#Q`b#y-$ z0*fB56U>2p9CrgN7RR$?>Oyqt4-ePZ%9~eV4jqSvJ^JgfUPdk73d?&bSn0nvoLYIN z+|1s*>iUw!yMnL@tP&=)!LToBy-C+kh$A<3o7~|~YTaNCF_p-e@QKsp9U!{;y!Xhr z__@WGrZ2%yQ?su29ANG<2&0fjRA%abs2WlsAwR2!r?gR$ZfxbutSFAOzzye_;WE|& zoE=S-1gZi^`8Nvfd$o{C $etc5aYd0cqk1(_PK8@TT7js#
xa?XII?&w8^iAl4k)zbF~2X8mA$ItkH3e zn|9CU@8flJ_{&R=kvvm+>ju>Vi~jKK8~)pUfkg`dun1*pH8-7nZ*cg6zg%|8_PLfV zIMZIw@6PhrUaHx&KQ;pKfHnxi9WXD)`NJ6UX>7~{g`WB!VV=|hyHj5kR5R}=&y)Kx zZ*;DVmp|u{QP+sB4r)O)!t3T{XwX2IW!zdZ)+#)Gw~jCVIPGeVSyF)>flK8PZVohp z1A>!IR-?&OFVq=$P|kn^bQd3c<4#kNfV=j^W iQ+VaX#m1jCDy0B}eOo<$%%fL E{c`55tgkMNlKyc8=U3b2dr(|2jBaFp7#@`N*DOd`(v=;;@G%S{mbiYp079) zeJ?74&%WqYi3*t~N(Fe&ktoYZ^`F+v;X7$Pv-d@*MH$B|`f?OP2n{8r8{<1B1Itp# z5*{Qd`j%JSdf}fF`XBpj09itWP@`nhMlXVPpkyV^l^L0#tdE9wQ>#@T##Q;Jf9+iV z5Vh?J2x0 EbJeV9!_o5R9fx*si6$JbJ`aHVpuPQ%6d9W zwg2yXTW~=UDK~0RC0^8yo!1Zra(CP_aQwP^p#Rql_)j2&x;|fXu2CjPxyrY8EuLAR ziJh5|Yd@@dvpwwaZt7M2`k(Rq?>{|Ap&%1ulBB5El HjAC@I)=xf-=?zj$l%BzZBg|a15iYf@aWYM;Y{ND!*5SjxZ zFvn>%tH~%9s 3_DofAYAD0JAT2n_%OJl9i^Rc_=aOlVeNVX%6pu zt_xB*tCGEwqm*6hfUQwI+5=* lD|#QlZqM0eYw{5=M_PJXEGTLxi%XGLAdqHRwz4(hZ& z=)NGjJo?1-zC4?Hotw;JIpKhqfSuufj}B @Lpoqeq!$ zfgg)17IRcyCtILJZh04%>HA3Md#2pueDK*`*YQUry=z&{h>BmN-}Alat6(nuG>xBW zke{75JVOKM u4L(koe?*4sCVb-5tFEuoi>no(lv7#*vN70v@Vkc_0 z|F3c(Me~UeLd0fY&VuZ(r8L~rT~AL+6hR-5ysN5J^D7JDZ%^(s6eolNkH muBv%)EQ+Mm8TyTes&KB~=qPizzBd=p&2*#*TJ>FR*_)tE z+xu1;ra52x%c7jDo#74W4HttxOoztqVDlHQ&x!ZiN0<_V7iSu)|F?#b1J7cGOq%46 zW07%9iYhMjKMn+l@#tqJrsU_)rqas&xn ^uj*n{@ozB~Z^gVsD(nff{>T4AQ z3KY2 gkia7t>xQqag z5veL7?Lx)0M!eAfgfu13_ >Bh8)xsf$yPg?^XJl7tHjB0I8HkaQTuf%a4#I%*p)8|ot6CLH6< zTkCc(+d-OI7y*tJd5_P^2SPI*c1NPMhf7lhuzd@qFJlL^%6PyUaM#GJ>&8cH={B!Q z_4?t`#h)x+JmhlfggbGOl-|AAr{Wu7xWRCLHc=22-sDSgwq9W&|K3+-6%2s(#k*1! z4@~NpSvmg$iD`s~dwNBK-X7^wSHAsT3nkKd z)Um$uW|ngFU5XvB_E|@4_;%=1%irCCzjo0jz*FI1)T1IT3=NEw2f7|w({4RE(>* jn_)O5Xh9q!r zBoQ5buGOF_LTiLp>hiY 7QvV+vwss40yGp!$UZ5$G8&;g^Ve+acc=nX(P zj!_7cq*^8FRD{?~@>zJ~(j tDhJ=Xc5y{oGkJ>oIE# z2qfd;-ei=e?tjGLn<7-Hy+i8PvTvfEk{>=v{Gb**C)GUj)jDG}vmV0i_k-`OSLzzD z_byNT3)tp&1}P~SkpGX9GkrzXH2tI;|F2F)MMyCU+ zL>{;U6798nUtRcL9_!c75LJNwsxgG;iKr{mdh-+(@Kw*9hiYvwBjex&sz7*MJ;+<{ zHSm&?Y9*V15#no3SBg#IllH6ttNPFMt}#1|;d!o{XGZKSx4o8691gJK#eT(ImkqTg zA$SaO{j^dq`DTB)JJQkG-E!vA^YgmeC_->}?o{2E3`l8GKE{0xW_vT$1_Uqy4I=lz z|L+Xe*YHw%uO{gyWf`A}0UU6zlP?3s^D|oGCqcN5nB&aLcux+jL>p8sTS)PA`ET4R z?sOmdopksYrno<3aj}&ssh7?qc`8s@NjM>&8r3mg^1mL)(AFt(YlQ8I%vpQ8UHS6$ z*Do{J5!dLeUKI5&))7^xj9$Ek<88bssaUZRJ?+X16+8dVt(FRJEMk@{w;@djlOxVj z<|>YV041_}F-yl^-~Mi_`ehZ-&&Vfsz?cD~PrLN=n9C*MG{LWtM9!F;enem1#7P(5 zK5B{nV9cQF4`{@Uw}Lce_S62ur;7>T8Dv1F&Qsu ItFQe=G5eV`O*URSxuOF_CH(wTf_d}6?nF@Rj9?7BUc17vWj)epJbsa0+W 8fkm;r~TXVBP!C7bn;JABTR4e|%Wp1RQm8oF=l?R2ai;h{9de-&8+B*b~A z0bn_a15CFpm#q-G7rPv1Wo;9(!6@FkuZ` *s zujS{Q$eSiV5I@934!f$15Y CNY{ktCr$$6$- zS7Q}8B7yD;7Aa;sy1PXm5-9GjmSIqFIyTQv;VHMbZ*7oLqBv8CH{lpPao=xralQ9+ zD3%xSpi&+Iq4K1$IXRC~q>tF38A4#{qauv~?A{Ww{q7aU843A9x|@`jRor=(rNWXe zx$$d?!u3XL=PpM&+*YouOT-QU3ry?-5Zxc^7zdQMEG2B@W~Eb(Oux@)+0_K$Q#Zs9 zR%tNCuaJ-_8kaPXtuy%MGVni_-T4{cyN79=Cv!hMSc-Ledp?C~?4MZxPq?Xh#e4%S z-J&;_^P`7Hv%IYhJU%v9)y6l{)Rfzq(BFhv71RM0c6Sk`yU&uO&hX;8O+9BN8X`jp zP740^4-qs@Cr8+
+uJ8l9>qgi2T#XTBE{=^E624YrQbi8zaLAh|;~Qy=DqnDQwQ68Dw5C#)7kYn0v7 zM{GDp)DKP1cksTRIx?%gsNj_U*%4I=ZdBTZIn=Z*#kcQJsrK_lZ00eB&4JjP0=~@i zMA@fikH=)vfKpnVU%&2(eoT_ZwQo>!Sx8a|0{GbV-BZ!o_Z65_Pz}cgVl~pPh?Ob> z%ATY290InbxWB61tmcXghD&6BPTU2~%q0|zHM-TZKTm7aP)o{*NuU!a<3z^JK4`^v zc`S({P816L)U#Q}{*>a*gra-QZgrzZm)+*OC~tc+>Zwb9{5D?d?SOaQ9PKt66j1R4 z_FkuHxpwwz@%?a3t10$mqt(bG)Yqc?me)Y|t(Ygrrh*))Sv%sC2^!Isg5R_bW+bT* z?WCfI&rh^_L&i4NZ=;3-mi%mXl^*S5s@!(k`e3dNL7qoez^_v(H#^vb>8G`ze^Nzz z!t-4J!B$;}c)t4ejqA$Q&ig?Bz%TA5{Y%nQ^=2GZdG|Z;2SU`=w>q@ms<{y?z^v+M zgkP0N^r|+2;%H~5J`Cx`?%uaID4 Q;GcRW zK!j3poi0bN)&o1Tq?nRi?nQ?h
W28Ztio>WjEjZ)|~507x|eLTeS-iQCogxwoP z%hII*d5Afm1cW^&XC&csFaIeoG$)c4@4#SDoTML;{nn`>V*B1iGNp6RdniF+=5Xn_ zBZJ(?Y|LHo@8JJ0L{|5JTvq}K_DA^6e-Eg|{EbB|>`*X&2FPJGS9ygrYd(&;#=%5d zf@%&sX`fWpIwJ4r#1$@(VYKum6OyRPf(agm)~7)%QAfpzH@2tbyQ627PT-xQSS<{& zA6#|thKZNr%oYS3zMhOpZ1&Lnd2pW&lH7HlC>weal4;cju_OnSHiR+8_Z(=<;T%&u zu}#%(5D&=i(W{X46xlhE`f5XoZG)6dRW5g*S7Mnp>{;l0%uMY${f0f 44YSZvTcW$;JfFxZn zt&sXRn`l3t-O$@m^R+&+wH>^>PknB!67?H3P-zw!HMns^qI>fA+<2uMcV?FBoT1~B zKR#ES&TzEYaHC&ve!sHsBRzGJ6bk*XWc!!ts#qh}Wk(8NP&yeol!Gz~w1S4Y4BMT8 z-z2V85{rB6bEHelFvA#9ZHpAPVS7 T!xlgE+HOf#t)A0phSatB*b;WG|!k aL8crXW1kEz 5yUXVDNPIz}+bV7;a@F=l=&8`hwRz~g zg!OtZzm8r5*eYi95M*1~{Ov}sS_@akd!=NtF?26;zdfhXK36756tlQWWLIF&s16No zhu06Q%I}U4Zz#i3>R~QW2uXly*z;q8IC||q99|P}KbmxRC3eXaO&oUY!H^YnQZvp2 zBmI&SbW%(ZphGQw-k=YTp7>Unzv4l%nG-Qvc?f5Jo0ACNoK-)rN+$hDqAb1S^K&?e zN)W1LrcsvJS(n!Ana95NJ<}vErht3- 09~3P>Dbfw{dd? ze0e^0=ZTOD8)?smuOV}I$h2Y+EP1zov%i%4Lt`O7?As|qe<6Kh?qrzwW@;qwG@er$ z??&n~@y5dZ+QtEC+d-|6IS(lbeuBVVZN~M5{SfGy9c(ARt0QRQfln~$mMTj$N>Uxw zI2u;?rmVqdytphWGk=+4rAqTWaw0c7JId>!UfQIXu|BxETa9P=v9U`6qqp9BaPMju z%LDXkfJ9+_S5pu@hem|CWGPC7dE8HYO}|g~zv7gC<9-rkx~n6i68I901*tN{q=h8j zEWR P6yP|fY3$;B@c?OX| z(xx0c+G|<2W}m qxGqvDa m~v zSKd%7zGSAnYfer6c5Dt!!j~YvNhB+a<}`>_ZXi6^&+*5nPxf{kI*Y#cxzjw`D=o!i z*Dk#B1j#?Jej%LhcQ?@QGs^N4!U83FRp961Ks}9z-m!$TM>JN@l`q)Bnk4KMFP6B6 zKlW0#Zn9IaAh@xn_DYx`fJdysgo0Nqxl^nmO1tGkc5dTIzT4tqZ HTTI^zes+o>TX#FdKY>PwK%70xQwuO6%+JGobAd5&LMv%NpPE_!p+i z(<7qo0j!zdZN!=6sH^HE1tX1X8%r$*FY6$jjRmYBI-`|#NKO!E*KPTB1Uuc1kK|+x zSRy_ZGS{Hc07d9azIL^J+>1|Zss#`gG~%U2mGbj%`CCO($T>9mm#%4>;y&z~00gmi zGC~=h@BW)R^S_u+`T+TwFLCCFRL2qH+qvL@rO+EzoPSvs+I;ZYny^+iysAjyexSe> z6<8DlB(Um7O&_Iyfee3-hMMlQg%DShn^SbAl1uiN({`Pdc)8U7?%?>>0w MYOC@F(97sL~yt2F$arz)F0hRJ15IY6Y1X`MLmm2#7{)h6P2%7&(9 z!MyyFJD@&uJAZoC=&jWyrgI)UCme@}hh^u$9KGma$TcSL`)ZGQeVD+j<@IzDU }TRm0{Ew{h{0xS2e$EaoH*!Xyx5sAA?ECGX?gZRrdmE zI_CKmS5^)FU^p8AvJj4Io!z;e-@t{2o}AbZCVY);!4yXn@w~1t3mp~s9ttA+jBR Xyilcc#@a-P zpXxAi$ipPz`Nc P}y5 z?3h2=T`e>eEbsG_3Vh9RXpu6eOaEkBf0?ehx#PF~{F+h4g%671=w^as`nWA=So4Lm zyp^U2SBS-eNV8g5LDYJx=r|2J#MLaY(q0fq1Cs#nsgu;w)xiUkm{VL`gOk6Nho7Qz z&%e-EjUxMoPpN!u^bN|(ylx1N4`S;PAXd2_{`bv=5W6x8JBASAP^QizD`7+K8|qx~ z 5z6O~((Rq)Ydb8I3fioOS^z9_$C|0w?nqVIA< z+eGTz3cSQk#(?M;-C?4v&TX$udc71`quOXJnAH+wguk6nfE=m{9~ZVSeT}yryzOe% zwr|89Vf5ifhLIh^_!ER=Sv~=x>5b_6a_S$<6VCd0AJS%uOVEl9yRF$aaP5vcaec7d zu#0?R*dt^Tz5-zc`}eGr*fd-s1>`PmKlJC*l>B#H9;)G4Jv}`euF<)3wwWU$$|py* z?237a-@P=yMBh1wJlwwKp_#1FUIByuwP^M@!4@TIInlLa^2U-i! T-8gKvYP)Y)J#LyBK?>PS2F??SA64d3DZKdaZI zLdA-Wckf;n#5d`L6$-*8!S>X_k9u;o7tFiOZa_G=gDvGTX&oSBpO-?S20exM2aV;Y zcs L_vk-}A`%kP-67pFbayw>!vI5fNed|5EhV8ycS%T!bVx|INH<9RhQ}v- zdEb}w{axpr>-@u97tE}^_F8-2pS{+)_dPTB1S!f(AS2)*0001FDM?Xf002e``dS1Y z4*DO> AR;1)ie@&BHV$Sswj@#_A|$r SdiGl?H$$3NS~8zKRGFsSNncsQMWL@EHeCqEc>*0Eh(uEZsbW$p9aa0UHNW{0{)* zc`;Mifbq8kdGLTR7(fz@1jRkUdVqnNuQL6;<`zIkfgl;<{pKPVAFV1@iF-Z`4*<^L znvp1i1^}NVVfr2b$+LR^5uzu(uq3ju8O%dXb9wr<0X32^fadPF-UOK;HjJ9M0X&zz zow)_lg%- &Nn8CZ6K{bkGa-D9q%2A@EU2zNOYu>E8#PJu8 zVqA~`1%V39@>LHjyDgi&wqWjsJk}g?1_*lXGlb$HMgdSw*;(C=0f3mM(+EL27(j1A z_96iA@jH&r`&ew*4tM}SG{g64iO@r&PZ$NwkKcSE{Md|r&k#;j5Q(Ch7gZQ;$%g SG5^9e!sE=7B2%Wc^ -*sDTI0Kxt7MzcPkM0Y7hJRv63Ve-b z6h2PY2alZ;exJ-xl0Didn`G@Zh7wu(XZ!4XdBWyVx{~C34E7k@VLF08BPTzTum+z8 zf0ST}^(|9^9l7TuSo@wBFSsMaVbGBsMb{_(t;HZ-1reW5)!TQ2GT)sX0iMC(AfG{& z$0nf@hB~3I#0-Ko@u)hnK+BpO>Jc0uLQO7bO#J3F!) _KQ*Mw~px41`JbLNR(n3uZ^IoBX(jEP@&D9848mTE>K($3mM4CpaNB#JTevBl= z c?43*NLDFCDGSL-Nrr5dZ2los$QxOz^+>C(nI-r#p8}GEsOm_RNQLOLuGXb$ z3}E}~1=&Y$DU`Eg(WN=S0?YSv(piO*GCnBv=B16me|QZ{*Os!%a8_hed6oBs-6@%} zHw8 p(KZ6mo3FwB}g%X!<3QSi(TUkj3|hYpZK74_uIt1Cd{LN*dANTHwCG zeTP$x%akOW`(QXB>9Z>H7%P5~X(CFZjhg1uqo*F2QD4yGfN|<^UU91*RMi~R1ird` zKvd0FL&?`u_skVnD_301do+TT|22 4mI{h{Fey0+T3{)D^p4 zn8zKZb35D 0N3`;hxyFu*bhFqDp(7n&4$6>@!Z|JL};Xw!ZZYjgeEwv%nDU@Cp; zA YpXsLx#tXVO!nwb`u}Cv)ocK6-9u|-z_NHAr zgfpZw{#(39_k(!3_~U{^b$)d>^+WZs0;y4*b^3LyQ4LE)e2o;O6ktks)%(Jf!Zzm= zt67W%j0oBx+CvrVZ!8<<8weZ88*rQ4M}|j~M^;Duggpf4grhu;JRbIrPCd?+wjbBC z=h<8H+VWc0G)(bLGaXX*Ik0nOBD>KOoD;BBtlkB`vrc#Kj$6jtsvD{tKFms~Pnjy5 zuo{`};cNHIKa*oj!SB*-<=YlI*g4i*u