From e6e317081c27ea9e76855c96e3a71fd500f1500d Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 24 Apr 2013 13:39:52 +0400 Subject: [PATCH 01/56] IDEA-106092 Groovy: 'create constructor matching super' should add java-doc from super with correct formatting --- .../generate/GroovyGenerationInfo.java | 17 ++++++ ...rCreateConstructorMatchingSuperTest.groovy | 52 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 plugins/groovy/test/org/jetbrains/plugins/groovy/intentions/GrCreateConstructorMatchingSuperTest.groovy diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java index 72b88cdfaa95..90c9b9e00f1f 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java @@ -20,14 +20,18 @@ import com.intellij.codeInsight.generation.PsiGenerationInfo; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.ScrollType; +import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMember; +import com.intellij.psi.codeStyle.CodeStyleManager; +import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.GrReferenceAdjuster; +import org.jetbrains.plugins.groovy.lang.groovydoc.psi.api.GrDocComment; import org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElement; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; @@ -92,6 +96,19 @@ public class GroovyGenerationInfo extends PsiGenerationInfo } GrReferenceAdjuster.shortenReferences(member); + + adjustDocCommentIfExists(member); + } + + private static void adjustDocCommentIfExists(PsiMember member) { + final PsiElement child = member.getFirstChild(); + if (child instanceof PsiDocComment) { + final Project project = member.getProject(); + final GrDocComment groovyDoc = GroovyPsiElementFactory.getInstance(project).createDocCommentFromText(child.getText()); + child.delete(); + CodeStyleManager.getInstance(project).reformat(member); + member.getParent().addBefore(groovyDoc, member); + } } @Override diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/intentions/GrCreateConstructorMatchingSuperTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/intentions/GrCreateConstructorMatchingSuperTest.groovy new file mode 100644 index 000000000000..8e450c215b8d --- /dev/null +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/intentions/GrCreateConstructorMatchingSuperTest.groovy @@ -0,0 +1,52 @@ +/* + * Copyright 2000-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.plugins.groovy.intentions + +/** + * @author Max Medvedev + */ +class GrCreateConstructorMatchingSuperTest extends GrIntentionTestCase { + GrCreateConstructorMatchingSuperTest() { + super('Create constructor matching super') + } + + public void testSuperWithJavaDoc() throws Exception { + myFixture.addClass('''\ +public class Base { + /** + * my doc + */ + public Base(int x) { + } +} +''') + + doTextTest('''\ +class Inheritor extends Base { +} +''', '''\ +class Inheritor extends Base { + /** + * my doc + */ + Inheritor(int x) { + super(x) + } +} +''') + + } +} From 77ef2cb0ae4f5162a9162019e7642e33b3b19461 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 23 Apr 2013 16:27:53 +0400 Subject: [PATCH 02/56] cleanup --- .../impl/text/PsiAwareTextEditorProvider.java | 5 +-- .../impl/text/TextEditorProvider.java | 32 +++++++++++++++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/text/PsiAwareTextEditorProvider.java b/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/text/PsiAwareTextEditorProvider.java index a38e9d5e5536..cbadd5b0fcac 100644 --- a/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/text/PsiAwareTextEditorProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/text/PsiAwareTextEditorProvider.java @@ -142,15 +142,16 @@ public class PsiAwareTextEditorProvider extends TextEditorProvider { } } + @NotNull @Override - protected EditorWrapper createWrapperForEditor(final Editor editor) { + protected EditorWrapper createWrapperForEditor(@NotNull final Editor editor) { return new PsiAwareEditorWrapper(editor); } private final class PsiAwareEditorWrapper extends EditorWrapper { private final TextEditorBackgroundHighlighter myBackgroundHighlighter; - private PsiAwareEditorWrapper(final Editor editor) { + private PsiAwareEditorWrapper(@NotNull Editor editor) { super(editor); final Project project = editor.getProject(); myBackgroundHighlighter = project == null diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java index a2e53b8fc12d..f184961e6ffc 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java @@ -65,6 +65,7 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { return ApplicationManager.getApplication().getComponent(TextEditorProvider.class); } + @Override public boolean accept(@NotNull Project project, @NotNull VirtualFile file) { if (file.isDirectory() || !file.isValid()) { return false; @@ -77,16 +78,19 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { return !ft.isBinary() || BinaryFileTypeDecompilers.INSTANCE.forFileType(ft) != null; } + @Override @NotNull public FileEditor createEditor(@NotNull Project project, @NotNull final VirtualFile file) { LOG.assertTrue(accept(project, file)); return new TextEditorImpl(project, file, this); } + @Override public void disposeEditor(@NotNull FileEditor editor) { Disposer.dispose(editor); } + @Override @NotNull public FileEditorState readState(@NotNull Element element, @NotNull Project project, @NotNull VirtualFile file) { TextEditorState state = new TextEditorState(); @@ -104,6 +108,7 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { return state; } + @Override public void writeState(@NotNull FileEditorState _state, @NotNull Project project, @NotNull Element element) { TextEditorState state = (TextEditorState)_state; @@ -114,11 +119,13 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { element.setAttribute(VERTICAL_SCROLL_PROPORTION_ATTR, Float.toString(state.VERTICAL_SCROLL_PROPORTION)); } + @Override @NotNull public String getEditorTypeId() { return TYPE_ID; } + @Override @NotNull public FileEditorPolicy getPolicy() { return FileEditorPolicy.NONE; @@ -135,7 +142,8 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { return textEditor; } - protected EditorWrapper createWrapperForEditor(final Editor editor) { + @NotNull + protected EditorWrapper createWrapperForEditor(@NotNull Editor editor) { return new EditorWrapper(editor); } @@ -210,77 +218,95 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { protected class EditorWrapper extends UserDataHolderBase implements TextEditor { private final Editor myEditor; - public EditorWrapper(Editor editor) { + public EditorWrapper(@NotNull Editor editor) { myEditor = editor; } + @Override @NotNull public Editor getEditor() { return myEditor; } + @Override @NotNull public JComponent getComponent() { return myEditor.getComponent(); } + @Override public JComponent getPreferredFocusedComponent() { return myEditor.getContentComponent(); } + @Override @NotNull public String getName() { return "Text"; } + @Override public StructureViewBuilder getStructureViewBuilder() { VirtualFile file = FileDocumentManager.getInstance().getFile(myEditor.getDocument()); if (file == null) return null; - + final Project project = myEditor.getProject(); LOG.assertTrue(project != null); return StructureViewBuilder.PROVIDER.getStructureViewBuilder(file.getFileType(), file, project); } + @Override @NotNull public FileEditorState getState(@NotNull FileEditorStateLevel level) { return getStateImpl(null, myEditor, level); } + @Override public void setState(@NotNull FileEditorState state) { setStateImpl(null, myEditor, (TextEditorState)state); } + @Override public boolean isModified() { return false; } + @Override public boolean isValid() { return true; } + @Override public void dispose() { } + @Override public void selectNotify() { } + @Override public void deselectNotify() { } + @Override public void addPropertyChangeListener(@NotNull PropertyChangeListener listener) { } + @Override public void removePropertyChangeListener(@NotNull PropertyChangeListener listener) { } + @Override public BackgroundEditorHighlighter getBackgroundHighlighter() { return null; } + @Override public FileEditorLocation getCurrentLocation() { return null; } + @Override public boolean canNavigateTo(@NotNull final Navigatable navigatable) { return false; } + @Override public void navigateTo(@NotNull final Navigatable navigatable) { } } From f437f549c709f5965361e78193f7843f1caa4877 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 23 Apr 2013 17:47:01 +0400 Subject: [PATCH 03/56] cleanup, notnull --- .../dictionary/AggregatedDictionary.java | 25 +++++++++++++------ .../spellchecker/dictionary/Dictionary.java | 6 +++-- .../dictionary/ProjectDictionary.java | 23 +++++++++++++---- .../dictionary/UserDictionary.java | 19 +++++++++++--- 4 files changed, 56 insertions(+), 17 deletions(-) diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/AggregatedDictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/AggregatedDictionary.java index 78ab84baa616..94f9d2fcc891 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/AggregatedDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/AggregatedDictionary.java @@ -16,6 +16,7 @@ package com.intellij.spellchecker.dictionary; import com.intellij.util.Consumer; +import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -23,11 +24,12 @@ import java.util.Collection; import java.util.Set; public class AggregatedDictionary implements EditableDictionary { - - private static final String DICTIONARY_NAME = "common"; + @NonNls private static final String DICTIONARY_NAME = "common"; private final EditableDictionary cachedDictionary; private final ProjectDictionary projectDictionary; + @NotNull + @Override public String getName() { return DICTIONARY_NAME; } @@ -38,10 +40,12 @@ public class AggregatedDictionary implements EditableDictionary { this.cachedDictionary.addToDictionary(projectDictionary.getWords()); } + @Override public boolean isEmpty() { return false; } + @NonNls @Override public String toString() { return "AggregatedDictionary{" + @@ -50,25 +54,26 @@ public class AggregatedDictionary implements EditableDictionary { '}'; } + @Override @Nullable - public Boolean contains(String word) { - if (word == null) { - return false; - } + public Boolean contains(@NotNull String word) { return cachedDictionary.contains(word); } + @Override public void addToDictionary(String word) { getProjectDictionary().addToDictionary(word); getCachedDictionary().addToDictionary(word); } + @Override public void removeFromDictionary(String word) { getProjectDictionary().removeFromDictionary(word); getCachedDictionary().removeFromDictionary(word); } + @Override public void replaceAll(@Nullable Collection words) { Set oldWords = getProjectDictionary().getWords(); getProjectDictionary().replaceAll(words); @@ -81,29 +86,35 @@ public class AggregatedDictionary implements EditableDictionary { } } + @Override public void clear() { getProjectDictionary().clear(); } + @Override public void traverse(@NotNull final Consumer consumer) { cachedDictionary.traverse(consumer); } + @Override public Set getWords() { return cachedDictionary.getWords(); } + @Override public int size() { - return (cachedDictionary.size()); + return cachedDictionary.size(); } + @Override @Nullable public Set getEditableWords() { return getProjectDictionary().getEditableWords(); } + @Override public void addToDictionary(@Nullable Collection words) { getProjectDictionary().addToDictionary(words); getCachedDictionary().addToDictionary(words); diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java index 1057bb6e2d32..b4a8c0aa8d77 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java @@ -16,20 +16,22 @@ package com.intellij.spellchecker.dictionary; import com.intellij.util.Consumer; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Set; public interface Dictionary { + @NotNull String getName(); @Nullable - Boolean contains(String word); + Boolean contains(@NotNull String word); boolean isEmpty(); - void traverse(final Consumer action); + void traverse(@NotNull Consumer action); @Nullable Set getWords(); diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java index 1202c9201531..25daa3c5f9cb 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java @@ -39,10 +39,13 @@ public class ProjectDictionary implements EditableDictionary { this.dictionaries = dictionaries; } + @Override public boolean isEmpty() { return false; } + @NotNull + @Override public String getName() { return DEFAULT_PROJECT_DICTIONARY_NAME; } @@ -52,12 +55,13 @@ public class ProjectDictionary implements EditableDictionary { } public void setActiveName(String name) { - this.activeName = name; + activeName = name; } + @Override @Nullable - public Boolean contains(String word) { - if (word == null || dictionaries == null) { + public Boolean contains(@NotNull String word) { + if (dictionaries == null) { return false; } int errors = 0; @@ -75,10 +79,12 @@ public class ProjectDictionary implements EditableDictionary { return false; } + @Override public void addToDictionary(String word) { getActiveDictionary().addToDictionary(word); } + @Override public void removeFromDictionary(String word) { getActiveDictionary().removeFromDictionary(word); } @@ -95,7 +101,7 @@ public class ProjectDictionary implements EditableDictionary { } EditableDictionary result = getDictionaryByName(activeName); if (result == null) { - result = new UserDictionary(this.activeName); + result = new UserDictionary(activeName); if (dictionaries == null) { dictionaries = new THashSet(); } @@ -120,15 +126,18 @@ public class ProjectDictionary implements EditableDictionary { } + @Override public void replaceAll(@Nullable Collection words) { getActiveDictionary().replaceAll(words); } + @Override public void clear() { getActiveDictionary().clear(); } + @Override @Nullable public Set getWords() { if (dictionaries == null) { @@ -141,6 +150,7 @@ public class ProjectDictionary implements EditableDictionary { return words; } + @Override public int size(){ int result = 0; for (Dictionary dictionary : dictionaries) { @@ -149,7 +159,8 @@ public class ProjectDictionary implements EditableDictionary { return result; } - public void traverse(final Consumer consumer) { + @Override + public void traverse(@NotNull final Consumer consumer) { if (dictionaries == null) { return; } @@ -160,12 +171,14 @@ public class ProjectDictionary implements EditableDictionary { } + @Override @Nullable public Set getEditableWords() { return getActiveDictionary().getWords(); } + @Override public void addToDictionary(@Nullable Collection words) { getActiveDictionary().addToDictionary(words); } diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java index f4a1615a114a..784cb5a98112 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java @@ -30,40 +30,48 @@ public class UserDictionary implements EditableDictionary { @NotNull private final THashSet words = new THashSet(); - public UserDictionary(String name) { + public UserDictionary(@NotNull String name) { this.name = name; } + @NotNull + @Override public String getName() { return name; } + @Override @Nullable - public Boolean contains(String word) { + public Boolean contains(@NotNull String word) { boolean contains = words.contains(word); if(contains) return true; return null; } + @Override public int size() { return words.size(); } + @Override @Nullable public Set getWords() { return words; } + @Override @Nullable public Set getEditableWords() { return words; } + @Override public void clear() { words.clear(); } + @Override public void addToDictionary(String word) { if (word == null) { return; @@ -71,6 +79,7 @@ public class UserDictionary implements EditableDictionary { words.add(word); } + @Override public void removeFromDictionary(String word) { if (word == null) { return; @@ -78,11 +87,13 @@ public class UserDictionary implements EditableDictionary { words.remove(word); } + @Override public void replaceAll(@Nullable Collection words) { clear(); addToDictionary(words); } + @Override public void addToDictionary(@Nullable Collection words) { if (words == null || words.isEmpty()) { return; @@ -92,6 +103,7 @@ public class UserDictionary implements EditableDictionary { } } + @Override public boolean isEmpty() { return words.size() == 0; } @@ -107,7 +119,8 @@ public class UserDictionary implements EditableDictionary { } - public void traverse(final Consumer consumer) { + @Override + public void traverse(@NotNull final Consumer consumer) { for (String word : words) { consumer.consume(word); } From 44be9c21705f04738c45f19d4de41412333548a9 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 23 Apr 2013 17:47:59 +0400 Subject: [PATCH 04/56] performance --- .../compress/CompressedDictionary.java | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/spellchecker/src/com/intellij/spellchecker/compress/CompressedDictionary.java b/spellchecker/src/com/intellij/spellchecker/compress/CompressedDictionary.java index 1f5f4e63647f..2e7587ff2c9f 100644 --- a/spellchecker/src/com/intellij/spellchecker/compress/CompressedDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/compress/CompressedDictionary.java @@ -28,7 +28,6 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public final class CompressedDictionary implements Dictionary { - private final Alphabet alphabet; private int wordsCount; private byte[][] words; @@ -39,6 +38,7 @@ public final class CompressedDictionary implements Dictionary { private TIntObjectHashMap> rawData = new TIntObjectHashMap>(); private static final Comparator COMPARATOR = new Comparator() { + @Override public int compare(byte[] o1, byte[] o2) { return compareArrays(o1, o2); } @@ -50,7 +50,7 @@ public final class CompressedDictionary implements Dictionary { this.name = name; } - void addToDictionary(byte[] word) { + void addToDictionary(@NotNull byte[] word) { SortedSet set = rawData.get(word.length); if (set == null) { set = createSet(); @@ -82,11 +82,12 @@ public final class CompressedDictionary implements Dictionary { rawData = null; } + @NotNull private static SortedSet createSet() { return new TreeSet(COMPARATOR); - } + @NotNull public List getWords(char first, int minLength, int maxLength) { int index = alphabet.getIndex(first, false); List result = new ArrayList(); @@ -111,19 +112,20 @@ public final class CompressedDictionary implements Dictionary { return result; } + @NotNull public List getWords(char first) { return getWords(first, 0, Integer.MAX_VALUE); } + @NotNull + @Override public String getName() { return name; } + @Override @Nullable - public Boolean contains(String word) { - if (word == null) { - return false; - } + public Boolean contains(@NotNull String word) { UnitBitSet bs = encoder.encode(word, false); if (bs == Encoder.WORD_OF_ENTIRELY_UNKNOWN_LETTERS) return null; @@ -141,18 +143,22 @@ public final class CompressedDictionary implements Dictionary { } + @Override public boolean isEmpty() { return wordsCount <= 0; } - public void traverse(Consumer action) { + @Override + public void traverse(@NotNull Consumer action) { throw new UnsupportedOperationException(); } + @Override public Set getWords() { throw new UnsupportedOperationException(); } + @Override public int size() { return wordsCount; } @@ -167,11 +173,13 @@ public final class CompressedDictionary implements Dictionary { return sb.toString(); } + @NotNull public static CompressedDictionary create(@NotNull Loader loader, @NotNull final Transformation transform) { Alphabet alphabet = new Alphabet(); final Encoder encoder = new Encoder(alphabet); final CompressedDictionary dictionary = new CompressedDictionary(alphabet, encoder, loader.getName()); loader.load(new Consumer() { + @Override public void consume(String s) { String transformed = transform.transform(s); if (transformed != null) { @@ -186,16 +194,20 @@ public final class CompressedDictionary implements Dictionary { return dictionary; } - public static int compareArrays(byte[] array1, byte[] array2) { - if (array1.length != array2.length) { - return array1.length < array2.length ? -1 : 1; + public static int compareArrays(@NotNull byte[] array1, @NotNull byte[] array2) { + return compareArrays(array1, 0, array1.length, array2); + } + private static int compareArrays(@NotNull byte[] array1, int start1, int length1, @NotNull byte[] array2) { + if (length1 != array2.length) { + return length1 < array2.length ? -1 : 1; } //compare elements values - for (int i = 0; i < array1.length; i++) { - if (array1[i] < array2[i]) { + for (int i = 0; i < length1; i++) { + int d = array1[i+start1] - array2[i]; + if (d < 0) { return -1; } - else if (array1[i] > array2[i]) { + else if (d > 0) { return 1; } } @@ -203,19 +215,17 @@ public final class CompressedDictionary implements Dictionary { } - public static boolean contains(byte[] goal, byte[] data) { + public static boolean contains(@NotNull byte[] goal, @NotNull byte[] data) { return binarySearchNew(goal, 0, data.length / goal.length, data) >= 0; } - public static int binarySearchNew(byte[] goal, int fromIndex, int toIndex, byte[] data) { + public static int binarySearchNew(@NotNull byte[] goal, int fromIndex, int toIndex, @NotNull byte[] data) { int unitLength = goal.length; int low = fromIndex; int high = toIndex - 1; while (low <= high) { int mid = low + high >>> 1; - byte[] toTest = new byte[unitLength]; - System.arraycopy(data, mid * unitLength, toTest, 0, unitLength); - int check = compareArrays(toTest, goal); + int check = compareArrays(data, mid * unitLength, unitLength, goal); if (check == -1) { low = mid + 1; } @@ -228,6 +238,4 @@ public final class CompressedDictionary implements Dictionary { } return -(low + 1); // key not found. } - - } From 6d0a5c880d3c6e705106c2e555c47ad33fe14537 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 14:19:44 +0400 Subject: [PATCH 05/56] cleanup --- .../com/intellij/util/containers/RecentStringInterner.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/platform/util/src/com/intellij/util/containers/RecentStringInterner.java b/platform/util/src/com/intellij/util/containers/RecentStringInterner.java index 556c1449d594..f7907e5f91bc 100644 --- a/platform/util/src/com/intellij/util/containers/RecentStringInterner.java +++ b/platform/util/src/com/intellij/util/containers/RecentStringInterner.java @@ -1,7 +1,6 @@ package com.intellij.util.containers; import com.intellij.openapi.util.LowMemoryWatcher; -import com.intellij.util.containers.SLRUCache; import jsr166e.SequenceLock; import org.jetbrains.annotations.NotNull; @@ -16,7 +15,6 @@ public class RecentStringInterner { private final int myStripeMask; private final SLRUCache[] myInterns; private final Lock[] myStripeLocks; - private final LowMemoryWatcher myClearingCallback; public RecentStringInterner() { this(8192); @@ -24,6 +22,7 @@ public class RecentStringInterner { public RecentStringInterner(int capacity) { final int stripes = 16; + //noinspection unchecked myInterns = new SLRUCache[stripes]; myStripeLocks = new Lock[myInterns.length]; for(int i = 0; i < myInterns.length; ++i) { @@ -44,11 +43,11 @@ public class RecentStringInterner { assert Integer.highestOneBit(stripes) == stripes; myStripeMask = stripes - 1; - myClearingCallback = LowMemoryWatcher.register(new Runnable() { + LowMemoryWatcher.register(new Runnable() { @Override public void run() { clear(); - }; + } }); } From 41151dd8e7c7c24403c64113c5b075d140ac1668 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 14:20:17 +0400 Subject: [PATCH 06/56] tests: already disposed --- .../committed/CommittedChangesCache.java | 39 ++++++++++++++++--- .../openapi/vcs/impl/VcsInitialization.java | 5 ++- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesCache.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesCache.java index 499a028127cb..9155a1a63fd9 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesCache.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesCache.java @@ -167,13 +167,20 @@ public class CommittedChangesCache implements PersistentStateComponent continuation) { myTaskQueue.run(new Runnable() { + @Override public void run() { final Ref success = new Ref(); try { @@ -387,6 +399,7 @@ public class CommittedChangesCache implements PersistentStateComponent resultRef = new Ref(Boolean.FALSE); myCachesHolder.iterateAllCaches(new NotNullFunction() { + @Override @NotNull public Boolean fun(final ChangesCacheFile changesCacheFile) { try { @@ -525,7 +539,7 @@ public class CommittedChangesCache implements PersistentStateComponent refreshCache(final ChangesCacheFile cacheFile) throws VcsException, IOException { final List newLists = new ArrayList(); @@ -586,6 +600,7 @@ public class CommittedChangesCache implements PersistentStateComponent ref = new Ref(); final List savedChanges = ApplicationManager.getApplication().runReadAction(new Computable>() { + @Override public List compute() { try { return cacheFile.writeChanges(newChanges); // skip duplicates; @@ -655,7 +670,7 @@ public class CommittedChangesCache implements PersistentStateComponent, List> groupLocations(final List in) { return myVcsZipper.groupLocations(in); } @@ -723,6 +739,7 @@ public class CommittedChangesCache implements PersistentStateComponent> consumer, final boolean inBackground) { debug("Loading incoming changes"); final Runnable task = new Runnable() { + @Override public void run() { final List list = loadIncomingChanges(inBackground); if (consumer != null) { @@ -757,6 +774,7 @@ public class CommittedChangesCache implements PersistentStateComponent caches = myCachesHolder.getAllCaches(); @@ -799,6 +817,7 @@ public class CommittedChangesCache implements PersistentStateComponent committedChangeLists) { try { debug("Processing updated files after refresh in " + cache.getLocation()); @@ -825,6 +844,7 @@ public class CommittedChangesCache implements PersistentStateComponent files = myCachesHolder.getAllCaches(); final RefreshResultConsumer notifyConsumer = new RefreshResultConsumer() { @@ -939,11 +962,13 @@ public class CommittedChangesCache implements PersistentStateComponent changes) { totalChangesCount += changes.size(); checkDone(); } + @Override public void receivedError(VcsException ex) { myError = ex; checkDone(); @@ -998,6 +1023,7 @@ public class CommittedChangesCache implements PersistentStateComponent list; @@ -1105,6 +1131,7 @@ public class CommittedChangesCache implements PersistentStateComponent Date: Wed, 24 Apr 2013 14:25:30 +0400 Subject: [PATCH 07/56] notnull --- .../intellij/openapi/vcs/impl/projectlevelman/NewMappings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java index 7558a5888dff..cb5d8fa59223 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java @@ -148,7 +148,7 @@ public class NewMappings { mappingsChanged(); } - private void keepActiveVcs(final Runnable runnable) { + private void keepActiveVcs(@NotNull Runnable runnable) { final MyVcsActivator activator; synchronized (myLock) { if (! myActivated) { From 80b1e841ba146857924fd6e73a33502077ad144c Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Wed, 24 Apr 2013 12:29:18 +0200 Subject: [PATCH 08/56] +1 for scanEndOffset --- .../src/com/intellij/openapi/editor/ex/util/EditorUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java index e59e5138cd7e..b663634d0852 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java @@ -301,7 +301,7 @@ public class EditorUtil { boolean useOptimization = true; boolean hasNonTabs = false; boolean hasTabs = false; - int scanEndOffset = Math.min(end, start + columnNumber - currentColumn[0]); + int scanEndOffset = Math.min(end, start + columnNumber - currentColumn[0] + 1); for (int i = start; i < scanEndOffset; i++) { char c = text.charAt(i); if (debugBuffer != null) { From 4fc205a528bdd182fa82ae8aa0058dc69a5ee2a7 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Wed, 24 Apr 2013 12:45:31 +0200 Subject: [PATCH 09/56] added ModialityState.NON_MODAL to invokeLter per review (http://crucible.labs.intellij.net/cru/CR-IC-573) --- .../src/com/intellij/psi/stubs/StubIndexImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java b/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java index 54fadd1786f9..2bef70bb802b 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java @@ -20,6 +20,7 @@ package com.intellij.psi.stubs; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.components.*; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; @@ -90,12 +91,14 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe else { final Throwable e = new Throwable(); // avoid direct forceRebuild as it produces dependency cycle (IDEA-105485) - ApplicationManager.getApplication().invokeLater(new Runnable() { + ApplicationManager.getApplication().invokeLater( + new Runnable() { @Override public void run() { forceRebuild(e); } - }); + }, ModalityState.NON_MODAL + ); } } dropUnregisteredIndices(); From 959de36fe70bca6d10d412a4b83d9d5c95a35b90 Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Wed, 24 Apr 2013 14:46:21 +0400 Subject: [PATCH 10/56] IDEA-106080 Installing 12.1.1 resulted in broken IDE --- .../intellij/openapi/wm/impl/ToolWindowsPane.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowsPane.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowsPane.java index 7a6a94c61c3f..11c92bf803d2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowsPane.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowsPane.java @@ -38,7 +38,6 @@ import com.intellij.util.ui.UIUtil; import javax.swing.*; import java.awt.*; -import java.awt.event.ComponentEvent; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.Comparator; @@ -1005,7 +1004,7 @@ public final class ToolWindowsPane extends JBLayeredPane implements Disposable { } } - private final class MyLayeredPane extends JLayeredPane{ + private final class MyLayeredPane extends JBLayeredPane { /* * These images are used to perform animated showing and hiding of components. * They are the member for performance reason. @@ -1018,8 +1017,6 @@ public final class ToolWindowsPane extends JBLayeredPane implements Disposable { myTopImageRef=new SoftReference(null); setOpaque(!UIUtil.isUnderDarcula()); add(splitter,JLayeredPane.DEFAULT_LAYER); - splitter.setBounds(0,0,getWidth(),getHeight()); - enableEvents(ComponentEvent.COMPONENT_EVENT_MASK); } @Override @@ -1067,8 +1064,7 @@ public final class ToolWindowsPane extends JBLayeredPane implements Disposable { /** * When component size becomes larger then bottom and top images should be enlarged. */ - protected final void processComponentEvent(final ComponentEvent e) { - if(ComponentEvent.COMPONENT_RESIZED==e.getID()){ + public void doLayout() { final int width=getWidth(); final int height=getHeight(); if(width<0||height<0){ @@ -1102,11 +1098,6 @@ public final class ToolWindowsPane extends JBLayeredPane implements Disposable { } setBoundsInPaletteLayer(component, info.getAnchor(), weight); } - validate(); - repaint(); - }else{ - super.processComponentEvent(e); - } } public final void setBoundsInPaletteLayer(final Component component,final ToolWindowAnchor anchor,float weight){ From fa96cb3aee8d15439b72c6a99bc06ced12525746 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Wed, 24 Apr 2013 15:01:03 +0400 Subject: [PATCH 11/56] [vcs] NPE fix. --- .../intellij/openapi/vcs/changes/VcsChangeDetailsManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/VcsChangeDetailsManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/VcsChangeDetailsManager.java index c4e920476e51..394484e360aa 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/VcsChangeDetailsManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/VcsChangeDetailsManager.java @@ -339,6 +339,7 @@ public class VcsChangeDetailsManager { protected JPanel dataToPresentation(ValueWithVcsException value) { final PreparedFragmentedContent requestForChange; try { + if (value == null) return noDifferences(); requestForChange = value.get(); if (requestForChange == null) return noDifferences(); if (requestForChange.isEmpty()) { From 0c230e1b51283267eb9b698bc344d946372b3203 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 24 Apr 2013 13:29:18 +0200 Subject: [PATCH 12/56] IDEA-99154 (fix command) --- platform/platform-impl/src/com/intellij/idea/StartupUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/idea/StartupUtil.java b/platform/platform-impl/src/com/intellij/idea/StartupUtil.java index ea5f9cc2a25d..28fb724f433a 100644 --- a/platform/platform-impl/src/com/intellij/idea/StartupUtil.java +++ b/platform/platform-impl/src/com/intellij/idea/StartupUtil.java @@ -186,7 +186,7 @@ public class StartupUtil { try { String shell = System.getenv("SHELL"); if (shell != null && new File(shell).canExecute()) { - String[] command = {shell, "-l", "-c", "/usr/bin/printenv -0"}; + String[] command = {shell, "-l", "-c", "/usr/bin/printenv"}; Process process = Runtime.getRuntime().exec(command); InputStream input = process.getInputStream(); @@ -194,7 +194,7 @@ public class StartupUtil { ByteArrayOutputStream lineBuf = new ByteArrayOutputStream(); int b; while ((b = input.read()) >= 0) { - if (b != 0) { + if (b != '\n') { lineBuf.write(b); } else { From 35ba698781668e166e35b45190c101fd53c9b20a Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 24 Apr 2013 04:38:27 -0700 Subject: [PATCH 13/56] google app engine: create artifact when support for framework is added if it isn't created yet --- .../facet/AppEngineSupportProvider.java | 45 +++++++++++-------- .../facet/AppEngineWebIntegration.java | 3 ++ .../AppEngineCommunityWebIntegration.java | 5 +++ 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineSupportProvider.java b/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineSupportProvider.java index b5b1be386585..255145fd9449 100644 --- a/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineSupportProvider.java +++ b/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineSupportProvider.java @@ -39,6 +39,10 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.packaging.artifacts.Artifact; +import com.intellij.packaging.artifacts.ArtifactManager; +import com.intellij.packaging.artifacts.ArtifactType; +import com.intellij.packaging.elements.ArtifactRootElement; +import com.intellij.packaging.elements.PackagingElementFactory; import com.intellij.packaging.impl.artifacts.ArtifactUtil; import com.intellij.ui.DocumentAdapter; import com.intellij.ui.HyperlinkLabel; @@ -94,28 +98,29 @@ public class AppEngineSupportProvider extends FacetBasedFrameworkSupportProvider private void addSupport(final Module module, final ModifiableRootModel rootModel, String sdkPath, @Nullable PersistenceApi persistenceApi) { super.addSupport(module, rootModel, null, null); - final VirtualFile descriptorDir = AppEngineWebIntegration.getInstance().suggestParentDirectoryForAppEngineWebXml(module, rootModel); - if (descriptorDir != null) { - createFileFromTemplate(AppEngineTemplateGroupDescriptorFactory.APP_ENGINE_WEB_XML_TEMPLATE, descriptorDir, - AppEngineUtil.APP_ENGINE_WEB_XML_NAME); - } - final AppEngineFacet appEngineFacet = AppEngineFacet.getAppEngineFacetByModule(module); LOG.assertTrue(appEngineFacet != null); final AppEngineFacetConfiguration facetConfiguration = appEngineFacet.getConfiguration(); facetConfiguration.setSdkHomePath(sdkPath); final AppEngineSdk sdk = appEngineFacet.getSdk(); - final Artifact artifact = findContainingArtifact(appEngineFacet); + final Artifact artifact = findOrCreateArtifact(appEngineFacet); + + final VirtualFile descriptorDir = AppEngineWebIntegration.getInstance().suggestParentDirectoryForAppEngineWebXml(module, rootModel); + if (descriptorDir != null) { + VirtualFile descriptor = createFileFromTemplate(AppEngineTemplateGroupDescriptorFactory.APP_ENGINE_WEB_XML_TEMPLATE, descriptorDir, + AppEngineUtil.APP_ENGINE_WEB_XML_NAME); + if (descriptor != null) { + AppEngineWebIntegration.getInstance().addDescriptor(artifact, module.getProject(), descriptor); + } + } final Project project = module.getProject(); AppEngineWebIntegration.getInstance().setupRunConfiguration(rootModel, sdk, artifact, project); final Library apiJar = addProjectLibrary(module, "AppEngine API", sdk.getLibUserDirectoryPath(), VirtualFile.EMPTY_ARRAY); rootModel.addLibraryEntry(apiJar); - if (artifact != null) { - AppEngineWebIntegration.getInstance().addLibraryToArtifact(apiJar, artifact, project); - } + AppEngineWebIntegration.getInstance().addLibraryToArtifact(apiJar, artifact, project); if (persistenceApi != null) { facetConfiguration.setRunEnhancerOnMake(true); @@ -146,21 +151,25 @@ public class AppEngineSupportProvider extends FacetBasedFrameworkSupportProvider } final Library library = addProjectLibrary(module, "AppEngine ORM", sdk.getOrmLibDirectoryPath(), sdk.getOrmLibSources()); rootModel.addLibraryEntry(library); - if (artifact != null) { - AppEngineWebIntegration.getInstance().addLibraryToArtifact(library, artifact, project); - } + AppEngineWebIntegration.getInstance().addLibraryToArtifact(library, artifact, project); } } - @Nullable - private static Artifact findContainingArtifact(AppEngineFacet appEngineFacet) { - final Collection artifacts = ArtifactUtil.getArtifactsContainingModuleOutput(appEngineFacet.getModule()); + @NotNull + private static Artifact findOrCreateArtifact(AppEngineFacet appEngineFacet) { + Module module = appEngineFacet.getModule(); + ArtifactType artifactType = AppEngineWebIntegration.getInstance().getAppEngineTargetArtifactType(); + final Collection artifacts = ArtifactUtil.getArtifactsContainingModuleOutput(module); for (Artifact artifact : artifacts) { - if (AppEngineWebIntegration.getInstance().getAppEngineTargetArtifactType().equals(artifact.getArtifactType())) { + if (artifactType.equals(artifact.getArtifactType())) { return artifact; } } - return null; + ArtifactManager artifactManager = ArtifactManager.getInstance(module.getProject()); + PackagingElementFactory elementFactory = PackagingElementFactory.getInstance(); + ArtifactRootElement root = elementFactory.createArtifactRootElement(); + elementFactory.getOrCreateDirectory(root, "WEB-INF/classes").addOrFindChild(elementFactory.createModuleOutput(module)); + return artifactManager.addArtifact(module.getName(), artifactType, root); } private static Library addProjectLibrary(final Module module, final String name, final String path, final VirtualFile[] sources) { diff --git a/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineWebIntegration.java b/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineWebIntegration.java index 82076bf1d301..f1d8a67f6779 100644 --- a/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineWebIntegration.java +++ b/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineWebIntegration.java @@ -52,4 +52,7 @@ public abstract class AppEngineWebIntegration { public abstract void addLibraryToArtifact(@NotNull Library library, @NotNull Artifact artifact, @NotNull Project project); public abstract List getSdkForConfiguredDevServers(); + + public void addDescriptor(@NotNull Artifact artifact, @NotNull Project project, @NotNull VirtualFile descriptor) { + } } diff --git a/plugins/google-app-engine/source/com/intellij/appengine/facet/impl/AppEngineCommunityWebIntegration.java b/plugins/google-app-engine/source/com/intellij/appengine/facet/impl/AppEngineCommunityWebIntegration.java index 060355357829..90ea918678ee 100644 --- a/plugins/google-app-engine/source/com/intellij/appengine/facet/impl/AppEngineCommunityWebIntegration.java +++ b/plugins/google-app-engine/source/com/intellij/appengine/facet/impl/AppEngineCommunityWebIntegration.java @@ -94,4 +94,9 @@ public class AppEngineCommunityWebIntegration extends AppEngineWebIntegration { public List getSdkForConfiguredDevServers() { return Collections.emptyList(); } + + @Override + public void addDescriptor(@NotNull Artifact artifact, @NotNull Project project, @NotNull VirtualFile descriptor) { + ArtifactManager.getInstance(project).addElementsToDirectory(artifact, "WEB-INF", PackagingElementFactory.getInstance().createFileCopy(descriptor.getPath(), null)); + } } From 0ce09b6515db59b7d681dc3ce9b676b6928bf017 Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 24 Apr 2013 04:56:37 -0700 Subject: [PATCH 14/56] google app engine: removed unused dependency --- plugins/google-app-engine/google-app-engine.iml | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/google-app-engine/google-app-engine.iml b/plugins/google-app-engine/google-app-engine.iml index 452bb1f80aed..52217861ad17 100644 --- a/plugins/google-app-engine/google-app-engine.iml +++ b/plugins/google-app-engine/google-app-engine.iml @@ -16,7 +16,6 @@ - From 721919135218fb463b6386c95cb32f0f253c6c17 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 24 Apr 2013 14:03:25 +0200 Subject: [PATCH 15/56] IDEA-106044 (overcautious assertion dropped) --- .../psi/impl/source/PsiTypeElementImpl.java | 30 ++++++++----------- .../codeInsight/psi/AnnotatedTypeTest.groovy | 5 +++- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java index 4c837556371a..cc46b4bd5cd0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java @@ -16,11 +16,13 @@ package com.intellij.psi.impl.source; import com.intellij.lang.ASTNode; -import com.intellij.openapi.diagnostic.Logger; import com.intellij.psi.*; import com.intellij.psi.impl.PsiImplUtil; import com.intellij.psi.impl.source.codeStyle.CodeEditUtil; -import com.intellij.psi.impl.source.tree.*; +import com.intellij.psi.impl.source.tree.CompositePsiElement; +import com.intellij.psi.impl.source.tree.ElementType; +import com.intellij.psi.impl.source.tree.JavaElementType; +import com.intellij.psi.impl.source.tree.TreeElement; import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.PsiTreeUtil; @@ -36,8 +38,6 @@ import org.jetbrains.annotations.Nullable; import java.util.List; public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeElement { - private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.PsiTypeElementImpl"); - private volatile PsiType myCachedType = null; @SuppressWarnings({"UnusedDeclaration"}) @@ -120,22 +120,16 @@ public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeEl if (PsiUtil.isJavaToken(child, JavaTokenType.QUEST)) { assert type == null : this; - PsiElement next = PsiTreeUtil.skipSiblingsForward(child, PsiComment.class, PsiWhiteSpace.class); - if (next == null) { - type = PsiWildcardType.createUnbounded(getManager()); + PsiElement boundKind = PsiTreeUtil.skipSiblingsForward(child, PsiComment.class, PsiWhiteSpace.class); + PsiElement boundType = PsiTreeUtil.skipSiblingsForward(boundKind, PsiComment.class, PsiWhiteSpace.class); + if (PsiUtil.isJavaToken(boundKind, JavaTokenType.EXTENDS_KEYWORD) && boundType instanceof PsiTypeElement) { + type = PsiWildcardType.createExtends(getManager(), ((PsiTypeElement)boundType).getType()); + } + else if (PsiUtil.isJavaToken(boundKind, JavaTokenType.SUPER_KEYWORD) && boundType instanceof PsiTypeElement) { + type = PsiWildcardType.createSuper(getManager(), ((PsiTypeElement)boundType).getType()); } else { - PsiElement bound = PsiTreeUtil.skipSiblingsForward(next, PsiComment.class, PsiWhiteSpace.class); - if (PsiUtil.isJavaToken(next, JavaTokenType.EXTENDS_KEYWORD) && bound instanceof PsiTypeElement) { - type = PsiWildcardType.createExtends(getManager(), ((PsiTypeElement)bound).getType()); - } - else if (PsiUtil.isJavaToken(next, JavaTokenType.SUPER_KEYWORD) && bound instanceof PsiTypeElement) { - type = PsiWildcardType.createSuper(getManager(), ((PsiTypeElement)bound).getType()); - } - else { - LOG.error("next=" + next + " bound=" + bound + ": " + this); - type = PsiWildcardType.createUnbounded(getManager()); - } + type = PsiWildcardType.createUnbounded(getManager()); } PsiAnnotation[] array = ContainerUtil.copyAndClear(annotations, PsiAnnotation.ARRAY_FACTORY, true); type = ((PsiWildcardType)type).annotate(array); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/psi/AnnotatedTypeTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/psi/AnnotatedTypeTest.groovy index cbaa56d3ec94..f186f9e8f5c8 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/psi/AnnotatedTypeTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/psi/AnnotatedTypeTest.groovy @@ -19,7 +19,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.testFramework.LightIdeaTestCase -@SuppressWarnings(["GrUnresolvedAccess"]) +@SuppressWarnings(["GrUnresolvedAccess", "GroovyAssignabilityCheck"]) class AnnotatedTypeTest extends LightIdeaTestCase { public void testTypeComposition() { @@ -55,6 +55,9 @@ class E2 extends Exception { } psi = javaFacade.elementFactory.createStatementFromText("@A java.lang.@TA(1) String s", context) assertEquals("@TA(1) String", psi.declaredElements[0].type.presentableText) + + psi = javaFacade.elementFactory.createStatementFromText("Collection s", context) + assertEquals("Collection", psi.declaredElements[0].type.presentableText) } } From 3433d392a34a9a564758535a8b5fa15326447e47 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 13:57:06 +0200 Subject: [PATCH 16/56] method applicability: do not check erased types if method was not called on raw type (IDEA-104992) --- .../src/com/intellij/psi/util/PsiUtil.java | 3 ++- .../genericsHighlighting/IDEA104992.java | 17 +++++++++++++++++ .../daemon/GenericsHighlightingTest.java | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA104992.java diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java index 49fbfec70d4c..b0f7d453363a 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java @@ -466,7 +466,8 @@ public final class PsiUtil extends PsiUtilCore { final PsiParameter[] parms = method.getParameterList().getParameters(); if (args.length < parms.length - 1) return ApplicabilityLevel.NOT_APPLICABLE; - final boolean isRaw = isRawSubstitutor(method, substitutorForMethod); + final PsiClass containingClass = method.getContainingClass(); + final boolean isRaw = containingClass != null && isRawSubstitutor(containingClass, substitutorForMethod); if (!areFirstArgumentsApplicable(args, parms, languageLevel, substitutorForMethod, isRaw)) return ApplicabilityLevel.NOT_APPLICABLE; if (args.length == parms.length) { if (parms.length == 0) return ApplicabilityLevel.FIXED_ARITY; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA104992.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA104992.java new file mode 100644 index 000000000000..3798c7058401 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA104992.java @@ -0,0 +1,17 @@ +import java.util.Collection; +import java.util.Set; + +class FooObject {} +class FooId {} + +interface Bar { + > T get(I key); + > Collection get(Collection keys); +} + +public class Target { + void foo(Bar bar) { + final Set> keys = null; + final Collection values = bar.get(keys); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java index 0527f38a76e1..e6c8ec1c5083 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -207,6 +207,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testIDEA103760(){ doTest5(false); } public void testIDEA105846(){ doTest5(false); } public void testIDEA105695(){ doTest5(false); } + public void testIDEA104992(){ doTest5(false); } public void testWildcardsOnRawTypes() { doTest5(false); } public void testDisableWithinBoundsCheckForSuperWildcards() { From afde44c719e55fff86f4a536add705e311fe739b Mon Sep 17 00:00:00 2001 From: "andrey.zaytsev" Date: Wed, 24 Apr 2013 16:16:22 +0400 Subject: [PATCH 17/56] Support for empty match ranges in Find --- .../find/impl/livePreview/LivePreview.java | 6 ++++- .../find/impl/livePreview/SearchResults.java | 22 ++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java index 803a7d19f227..541170c0471b 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java +++ b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java @@ -291,7 +291,11 @@ public class LivePreview extends DocumentAdapter implements ReplacementView.Dele final TextRange range = o.getPrimaryRange(); TextAttributes attributes = EditorColorsManager.getInstance().getGlobalScheme().getAttributes(EditorColors.TEXT_SEARCH_RESULT_ATTRIBUTES); - + if (range.getLength() == 0) { + attributes = attributes.clone(); + attributes.setEffectType(EffectType.BOXED); + attributes.setEffectColor(attributes.getBackgroundColor()); + } if (mySearchResults.isExcluded(o)) { highlightRange(range, strikout(attributes), myHighlighters); } else { diff --git a/platform/lang-impl/src/com/intellij/find/impl/livePreview/SearchResults.java b/platform/lang-impl/src/com/intellij/find/impl/livePreview/SearchResults.java index 7d623e5036cc..6399d6c69ed6 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/livePreview/SearchResults.java +++ b/platform/lang-impl/src/com/intellij/find/impl/livePreview/SearchResults.java @@ -303,13 +303,16 @@ public class SearchResults implements DocumentListener { private void findInRange(TextRange r, Editor editor, FindModel findModel, ArrayList results) { VirtualFile virtualFile = FileDocumentManager.getInstance().getFile(editor.getDocument()); + CharSequence charSequence = editor.getDocument().getCharsSequence(); + int offset = r.getStartOffset(); + int maxOffset = Math.min(r.getEndOffset(), charSequence.length()); + FindManager findManager = FindManager.getInstance(getProject()); while (true) { - FindManager findManager = FindManager.getInstance(getProject()); FindResult result; try { - CharSequence bombedCharSequence = StringUtil.newBombedCharSequence(editor.getDocument().getCharsSequence(), 3000); + CharSequence bombedCharSequence = StringUtil.newBombedCharSequence(charSequence, 3000); result = findManager.findString(bombedCharSequence, offset, findModel, virtualFile); } catch(PatternSyntaxException e) { result = null; @@ -318,8 +321,17 @@ public class SearchResults implements DocumentListener { } if (result == null || !result.isStringFound()) break; int newOffset = result.getEndOffset(); - if (offset == newOffset || result.getEndOffset() > r.getEndOffset()) break; - offset = newOffset; + if (result.getEndOffset() > maxOffset) break; + if (offset == newOffset) { + if (offset < maxOffset - 1) { + offset++; + } else { + results.add(result); + break; + } + } else { + offset = newOffset; + } results.add(result); } } @@ -494,7 +506,7 @@ public class SearchResults implements DocumentListener { private LiveOccurrence firstOccurrenceAfterOffset(int offset) { LiveOccurrence afterCaret = null; for (LiveOccurrence occurrence : getOccurrences()) { - if (occurrence.getPrimaryRange().getStartOffset() >= offset) { + if (occurrence.getPrimaryRange().getStartOffset() >= offset && occurrence.getPrimaryRange().getEndOffset() > offset) { if (afterCaret == null || occurrence.getPrimaryRange().getStartOffset() < afterCaret.getPrimaryRange().getStartOffset() ) { afterCaret = occurrence; } From baa2383bd5b3a97462ed89e52511ada305d18edd Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 24 Apr 2013 16:13:16 +0400 Subject: [PATCH 18/56] disable 'Process module annotations' action for external build as it does not make sense in the new build implementation (IDEA-106029) --- .../compiler/actions/ProcessAnnotationsAction.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/actions/ProcessAnnotationsAction.java b/java/compiler/impl/src/com/intellij/compiler/actions/ProcessAnnotationsAction.java index bb5970753e0c..3ed374732fc0 100644 --- a/java/compiler/impl/src/com/intellij/compiler/actions/ProcessAnnotationsAction.java +++ b/java/compiler/impl/src/com/intellij/compiler/actions/ProcessAnnotationsAction.java @@ -15,8 +15,8 @@ */ package com.intellij.compiler.actions; -import org.jetbrains.jps.model.java.compiler.AnnotationProcessingConfiguration; import com.intellij.compiler.CompilerConfiguration; +import com.intellij.compiler.CompilerWorkspaceConfiguration; import com.intellij.compiler.impl.FileSetCompileScope; import com.intellij.compiler.impl.ModuleCompileScope; import com.intellij.compiler.impl.javaCompiler.AnnotationProcessingCompiler; @@ -37,6 +37,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jps.model.java.compiler.AnnotationProcessingConfiguration; import java.text.MessageFormat; import java.util.ArrayList; @@ -79,7 +80,13 @@ public class ProcessAnnotationsAction extends CompileActionBase { return; } - CompilerConfiguration compilerConfiguration = CompilerConfiguration.getInstance(project); + if (CompilerWorkspaceConfiguration.getInstance(project).useOutOfProcessBuild()) { + presentation.setEnabled(false); + return; + } + + final CompilerConfiguration compilerConfiguration = CompilerConfiguration.getInstance(project); + final Module module = LangDataKeys.MODULE.getData(dataContext); final Module moduleContext = LangDataKeys.MODULE_CONTEXT.getData(dataContext); From a46ad391d7fa205ccf06435e229d7e1dd976a87f Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Wed, 24 Apr 2013 15:05:00 +0200 Subject: [PATCH 19/56] new stop icon --- platform/icons/src/process/stop.png | Bin 604 -> 588 bytes platform/icons/src/process/stop@2x.png | Bin 1550 -> 1245 bytes platform/icons/src/process/stop@2x_dark.png | Bin 0 -> 1495 bytes platform/icons/src/process/stopHovered.png | Bin 624 -> 607 bytes platform/icons/src/process/stopHovered@2x.png | Bin 0 -> 1295 bytes .../icons/src/process/stopHovered@2x_dark.png | Bin 1576 -> 1494 bytes .../icons/src/process/stopHovered_dark.png | Bin 654 -> 620 bytes platform/icons/src/process/stop_dark.png | Bin 637 -> 626 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 platform/icons/src/process/stop@2x_dark.png create mode 100644 platform/icons/src/process/stopHovered@2x.png diff --git a/platform/icons/src/process/stop.png b/platform/icons/src/process/stop.png index 0452dc9838938b9c4854e63df113978415d2dbaf..238d9409d9ac3da4ca7e163735e80996e53bf4af 100644 GIT binary patch delta 526 zcmV+p0`dLa1k41GNq_E1L_t(|+O$*OOH@G={^sWHj*@P&OG4695V+uOX{J4727<=w zgNc|XNCf?Y=x+(Ze31}@EeLvOR|`rdf=Dn?VO7vKMG8f8%kJDeJJY#$Q(G=RggS6I z+;hJ3&3C_>CGEc@@Yk$rXDbO~(DBF25(G?IEDrloX=QFbtGjZ$|J&8@5JXJLce2 zyxk?)9vg*H%E8Wg2&j|zoypXdR$g!iHj}ULgQVvSR(~jM?SM%hY|c)*SkEy|ceMs6 zO`fj35_Q}*mlpDlk)Jyc#ZKV+m(R}bH5U_agy$lCz131qDaCmp=I4GmzmpTEV3`(7 zQ_Rq3yy``A^}wq<)fsoL@0372PNmsIiPa2y10_5S{fY8awQ(t^NH%YwhVyCZ4Z#NNk^&-(<~2;2AX7NV9@ zH!qA<3dc`^MNkle8_^rl??A6YH_$Jj|B60}9#TGnT~H`r2K)&wJX2 zHnU$r4+kqNfn7JSp(=^IL8u5u{K^ zlxwPaUFov>AiSd0p$FQ?7mzwOKI=PDDg02I+b21C02MfzRqn!XV5QRxA8T)a`=fJ( z6=19rU4Qh;rC{Tz$o28BK^xxZa0aEZjZ5vc)ALMl?a)5Zza4Yi{b8Bniad6)ZHS7j z_0syz)smFtDyxb%mg9up*MzjU@PsB1fU8z+N+ zZX24F&N%Xq6wQRlHjd8BsVN?qT*2&CvF@=P_@{dzfyu~ePhiraI%kfFOyt34x80md zQCvo`ixOD0XW$&l+RqFV%yc>nzCPxHUw-hrMp^b|-H3v%F}^ui=&xvRll5=iXtk9%AaQke=FosT|AG3Rs~pWeI{ zHHTh76orM4KLb|c9}e!t${JfiQWwCbJ?|1R0@zsBJ-Bzy7n0MPquC3IAc($D2!D8n z^k97Ya1Ghn;4js6554xEZbY2Krl@-*qidKH@Pp`+X6J$FWJG)2${0>UqI3MYx}Krl zdEE&EiaeCobjsmf7`TI_EWU1VYTP`53!LwNM*wt85U?Yt$n(FHl1&GSr4z}WRMM%2 zWa<&}rs*z!&<)DDmIou@vtIuTgdQ9JhW~p4{|YbwD!_OSAwBc)00000NkvXXu0mjf D!~Rf> delta 1496 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 delta 562 zcmV-20?qy31n>lqNq-VaL_t(|+Qd^$XcIvc{$^**ZnH^F_r34Ec|(K{*o!IHqp7iR`TP{=EqHdy?T$u$wo-MbTHmNgSS zc`7DzqPjTWKoICmNHoFfx35dIML&G-(bG~x4_Kx0L^X^Uvn{k<8HV0>9My8kUwZ!u z-?w2^poT*o+<&qjH}!y9b`nMqX6`4{k8ja><~(?{>WReufwNft@CNI-tQ0}udf43r z!sRi$?5o1k`w1`^+&*;KKmVN^$8vgVr}HlFXeMAx%B|Eu+;MjHlC1uYa@YMAL4mov zopX+O@*?7wQdoF32CvD9t2e=9g8aL2P)em*vC=#Tgny(pf$O6C5E9phG5g{f7A9V9 zDUiY4soN<2%7Dzy_}E(5_A~yuaUslXd!F?6N3BX3#cZbG8KXUY2!=us+02@%>s?32 zUavO|((lx{W3t}Q4n%aNR0iX0OD0uuAY?!TS*3x%fU{;!Zx2$f1aCa0O>2>Gm(Ka~ zm|+YGkSnmC1;Qi>O)He%lEI~VW#qsA#!UeR02_7l@wSA4@Bjb+07*qoM6N<$f*Sc7 AF#rGn diff --git a/platform/icons/src/process/stopHovered@2x.png b/platform/icons/src/process/stopHovered@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..64d50f5f2c253c09736100b967caea3bcb05654e GIT binary patch literal 1295 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 efB%iY1sDM3>h9|H6`>FS0000 diff --git a/platform/icons/src/process/stop_dark.png b/platform/icons/src/process/stop_dark.png index 8d16ba2fd5a75dc752d00ef96817e131a6b54e75..73cd52212705a22568d55eec6150ff88e216951d 100644 GIT binary patch delta 564 zcmV-40?YmV1o8xsNq-bcL_t(|+Qd^!XcJ)&{&vl7ZI(pEYAfATMX;gRZdHU<#n;i| zHKD$5_H1 zdvIWw;hS&gpVvx^F>FO-Y*8Y0CzHttduLCxO6D5rpsXm}9DfU3cbZI=^ug#a%XxTX z2wMNS#spkOb~m+yv3$HkH`HbglmLGd^f^|w&s2thZE@69HtI$`)lEC7Wh&VmO z9SY5W`F>^_lYfw~%1E6wkb6G?obCnR()hptu<622`+tduOR`!#}Rm_%*^7# zAsteG7jhp8B9GXSlEnvo*SA0VUr#awDuOf zD_h8Yo<+(yfOPLcj8A^UoAQQ;aSm~(!-o_ESo*rfHR7ZH2Kd8 zb68d);2h5V*LwYwzYJdDtC^_o*L!y9d$Dh$iuHvR5!=zxiWN=6@5K_d`6d4PiKE#U zcEb$Dq?kP%m=~jSi+OdeY^>6xWVu%0>h~fd^iFiWGDT*f^X9M}s-XJmt*|q9$M`8< zC%r7oQY}}lJNA{#6Vm(1TelsK)lXUa?|J(91pNe%Nq-+nL_t(|+Qd`OYZE~f{wB%BZDX1UmSoq&G^7xSLUQ#776ZNY zB0>YX2;M!aClBJGh~l3hc#+gg4|+2d6}<>z^iUM5{UMFE(PYzYvdQkwjI$eSZ1>oM z4<7UJ-kZmJ-+V(j=QxP@a6k*}f^xa+o_BJ|5!&nB=8Vk{zkgqKVw}=C@%f(kW%>Hm zrEkVHy^g};=X)DCHkTgHnOgg4D3wzE!5~1$Ai;T>n&y?x+S)}?Gu`@7U-GOlmpU?P zcl7Gd$*lS-JqcM+z%A2t2RpGwCac;z`eO7%?y#qU-R<5BDKSMjZarMUVtos8Jmz|J zW6O<&)i^?GJbz9NA6Ig*Bk+0%JcUcLd&7T~ex}}tAF3YOta|~5+PMCR`?-FgUcrq zm1b3Phtln!y}s$@BFAIc4296# zXdwD!r5%vvWcI;=zGsD-)`)&XqQ%Ja*Jq>6R#fv1httH^GGmA|TbeHzEE>(0?%}|Z zrx@ Date: Wed, 24 Apr 2013 15:05:42 +0200 Subject: [PATCH 20/56] special icon for dark variant --- platform/icons/src/actions/clean@2x_dark.png | Bin 984 -> 667 bytes platform/icons/src/actions/clean_dark.png | Bin 461 -> 422 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/platform/icons/src/actions/clean@2x_dark.png b/platform/icons/src/actions/clean@2x_dark.png index db8502021308fd6de652277df00dfec367feb427..665aaf9799e36812571d3751bfaa436ea328d148 100644 GIT binary patch delta 606 zcmV-k0-^ob2b%?uNPhx7NklFRx{jWhme}RnE4xKW2MY^PCd7-JLjBx?wyf^w|wna00AOkA(EI|)=1}7SES@dztGjjwoFach`P#sG=#2hid2ByFb=xV?|6FF|d zw5fpzxB#sU-0ZE)8Syd@2IrvT7b>ouxx+dGE1EUG1g8c70^o7mWff~xs@fTPIAHUEKh@4B*&~`+xU=e&aQ2diQUrl>L zv6k}n+a07*qoM6N<$f+j^3(f|Me delta 926 zcmV;P17ZA|1=t6WNPh!*Nkl+5ZLy}lX0YY?AGBof~b4-dcY z?d@%DZEbDhcM|?V;60EjS3oC|cXV`IX>DyC(CKuIDwRr7tJM;pY~)C%)7fV{9^c*G z-d+j@gCArOtAFJPXhx!5hr{8)sGS;(MyjZ&$R_7gG$DXUrBYHdnUpXauUA%9UcvST zE}u>kpf0eMe0Lqm2O1h0oEZ55rrZxm=u6_M1Z}d<0b>w*iyVdW6cW&Ev)LRV>cxnE zg+ifGzu$isv)~gm!Dn9IN1vUYol(TZ5PK6GUEsP{w10rg%E}h3`5=j-(db$r5YWPG zpP8BQBB4(#g;);S_>MmGMa(*5!EuLNMGLT6tsc~YktA6EE|<&YCOI)RHRVMC`f`PY zK5gPXd|5L$7z>UIsH2+>!duI zlU^7M27ilKTQS`hi^bF5-!CmMFK^Iia&pqEjKMp%*=#;CTJ8{VnMsl)FQS$baKnE#)9uVgU)@vU!f8%O!WCam@+# zg`I^7-)G8LauqEAXZRxUjputf91hIQ&GB;S7F&%wLaZvzdtL_mypV>Fz@bK_$O!rfuCI4&?#U@XAh>1}%FVFg$kjtUNatuPi0APoJ zMp*z0Z5>#`v@c@X<7I!8p8qd67x3Q*_!lF<0K;R`YA?G^9{>OV07*qoM6N<$f~&u` AQ~&?~ diff --git a/platform/icons/src/actions/clean_dark.png b/platform/icons/src/actions/clean_dark.png index c07babe21e55b94bb9870e5e34a5cee2a05978f7..8f43815201964c1c17e349f874342fa6f1729648 100644 GIT binary patch delta 358 zcmV-s0h#{I1EvFzNqVR*bfO-6L{a2z z!>|KI7?-UDbvS_6EHIAa?*dLGIEA5{eM)RW8LFA1E0=urOMkN0pkhk-0wZt+Av9qT z5|^0B)>Mqej`{+ds%|=h8Z0R>(Hm>>Wu0vM0t@bK6_|$xtiUSV$yRZ3#r7?rN$2Q; z8(4G0vJNhx*Tqfbhv?O^W{X{1!(SITgg2enVHR#-K-hUkzCf}2zQBt%%-S!&y>=sTd-4EdiYY7S#}KQ! zw)cNF(R|B)t+MG_9qhpqe8LAjYBmL*YzjO5oxcPa0Fc^8r?L6`OaK4?07*qoM6N<$ Ef^-zAfB*mh delta 398 zcmV;90dfAO1I+`FNq=uiL_t(|+G70w|33pIfRU;OaBy(InDRiZ3&f&O{%at<1jLU( zoF6}a;5EQhS64SeK|#TrhlfW2B=F_Smj^(w Date: Wed, 24 Apr 2013 15:06:09 +0200 Subject: [PATCH 21/56] updated server icon --- platform/icons/src/webreferences/server.png | Bin 928 -> 224 bytes platform/icons/src/webreferences/server@2x.png | Bin 0 -> 260 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 platform/icons/src/webreferences/server@2x.png diff --git a/platform/icons/src/webreferences/server.png b/platform/icons/src/webreferences/server.png index c1d353bde7ede7afaf9c32ce10b104dbfab9a09f..e5bf3d23bace488f62895d16ab5116816f2ad88f 100644 GIT binary patch delta 207 zcmV;=05Jcc2jBsa8Gi-<001BJ|6u?C02y>eSaefwW^{L9a%BKPWN%_+AW3auXJt}l zVPtu6$z?nM004qXL_t(|+G70w|33pIfCZT|efo5wOv}v7WQ4JqkR_fxc>=~jz=(}T zl7|CEWG_TTMfn0LGXf4cwQSk4%~-u)YiqlSNUt+uH2~dtBuEG1{rmU*i17kW14g}o z-wQG_GN8nSky4q6^=p=WGuC8Iv;kF16B#Hn0B2xOnw0iXwv8Gi!+001a04^sdD0uWG4R7L;)|13IOGCgEALu*!Df-gH^Rb7Ek zRC`ldfGajxPgj31F=bU-fHgU7IY4c_=l?W6XK8MiOjUkiWR5mMYF&@Zc&y;3*ZNtG z&}eR!oXquAjnILy-)C!-V3yF2!tQpgXo3mj+m;+)8oI%-CJsuxxUry@%H8D@y^xe!pGao z)a81FuvlY?@qhIA=I8L{>+{~^?^24(WNM6&#q;9j@7v?+g1PKhAQA!|#N+=z6T(k;U{xbgj|b<>cq^NOh`ZYmUUv z+wSuCdad2n-se}3&V#w^Qi{w^h{;TZ#YcL$M02clt$*Y~aHnKzjK0a(YNFom^7mku z*wEPLX`r`Zo&DY`J=ktNG-<{F9F&&ixN-wqF1M0Ru@yK~xx5V_<**Mt@c&CMH%!5G^3W3L z2iV$rW`}v&26%^r$8j*I*sqc4Dwr{$U9{7F`ovfs21)-W{>f9OrKX7m`*#=Cu`vjG zq#LZwn3~jRI@4oTRtgJ)Mc@MQ(BjJ4dWlJab62fqW3UQZClwJH6&)j;85Ez8$ig7& zD1Rrfps1m#WRl~Uo0reRpzKwoT2fk8UZGayRb2x#RNcp+!Ns+?#nr{Zr?m}et(LZq z?mRH)>Fw(WIt&Q(^zH2I42|4vY;1r|XE3(*b#k8V?Br`^&dF)X$iTq6aM9u=OP4KQ rv62_!ZEij;KezR6eq4OqAT9u3El69xw+^V300000NkvXXu0mjftgH>o diff --git a/platform/icons/src/webreferences/server@2x.png b/platform/icons/src/webreferences/server@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..743c146ebfedf657ea48013e58d8942eb33f7326 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G%RF5iLn>}1{rUgj{;&g+S{oyq&JLAj{`38=E;xDSOp3}$ zM*n#>k}-h_%F2g14juW_?jx0OWGeTfMT=?{`WSP)wP016rW?JjGUF*zbo6cCD|~Mk z&gFKC^Q`#)uhu^6S<^ysro}rGOvHPhHC>ExVBFA@bZSvU%mp#q{}vtVqGnkb@G&$U z4)JVx!u0Kaj*ZWMiAeS{j7L{5;&tnO^zfp-grOpXKmvm>hw)`Uv;3z(7c+Re`njxg HN@xNAAkSh7 literal 0 HcmV?d00001 From 7893a5446363b3feb0d452a68f8dd906716b273e Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 24 Apr 2013 17:37:17 +0400 Subject: [PATCH 22/56] IDEA-98078 IntelliJ IDEA always reports "No suspicious code found" on attempt to run inspections locally --- .../com/intellij/codeInspection/ui/InspectionResultsView.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java index 6eba9a5d5207..4aa80ee686d4 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java @@ -503,9 +503,6 @@ public class InspectionResultsView extends JPanel implements Disposable, Occuren for (Tools currentTools : tools.values()) { final InspectionTool defaultTool = (InspectionTool)currentTools.getDefaultState().getTool(); final HighlightDisplayKey key = HighlightDisplayKey.find(defaultTool.getShortName()); - if (profile != null && !profile.isToolEnabled(key)) { - continue; //exclude disabled inspections from view - } for (ScopeToolState state : currentTools.getTools()) { final InspectionTool tool = (InspectionTool)state.getTool(); if (myProvider.checkReportedProblems(tool)) { From c3df7469c8ddbaf3198ebfe869b91c4f34a6ac71 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 14:40:46 +0400 Subject: [PATCH 23/56] notnull --- .../intellij/openapi/roots/FileIndexFacade.java | 16 ++++++++-------- .../com/intellij/mock/MockFileIndexFacade.java | 6 +++--- .../roots/impl/ProjectFileIndexFacade.java | 4 ++-- .../openapi/vcs/impl/DefaultFileIndexFacade.java | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java b/platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java index 2f3b7dad1885..0fef33392218 100644 --- a/platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java +++ b/platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java @@ -37,16 +37,16 @@ public abstract class FileIndexFacade { return ServiceManager.getService(project, FileIndexFacade.class); } - public abstract boolean isInContent(VirtualFile file); - public abstract boolean isInSource(VirtualFile file); - public abstract boolean isInSourceContent(VirtualFile file); - public abstract boolean isInLibraryClasses(VirtualFile file); + public abstract boolean isInContent(@NotNull VirtualFile file); + public abstract boolean isInSource(@NotNull VirtualFile file); + public abstract boolean isInSourceContent(@NotNull VirtualFile file); + public abstract boolean isInLibraryClasses(@NotNull VirtualFile file); - public abstract boolean isInLibrarySource(VirtualFile file); - public abstract boolean isExcludedFile(VirtualFile file); + public abstract boolean isInLibrarySource(@NotNull VirtualFile file); + public abstract boolean isExcludedFile(@NotNull VirtualFile file); @Nullable - public abstract Module getModuleForFile(VirtualFile file); + public abstract Module getModuleForFile(@NotNull VirtualFile file); /** * Checks if file is an ancestor of baseDir and none of the files @@ -56,7 +56,7 @@ public abstract class FileIndexFacade { * @param child the child directory or file to check for ancestry. * @return true if it's a valid ancestor, false otherwise. */ - public abstract boolean isValidAncestor(final VirtualFile baseDir, final VirtualFile child); + public abstract boolean isValidAncestor(@NotNull VirtualFile baseDir, @NotNull VirtualFile child); public boolean shouldBeFound(GlobalSearchScope scope, VirtualFile virtualFile) { return (scope.isSearchOutsideRootModel() || isInContent(virtualFile) || isInLibrarySource(virtualFile)) && !virtualFile.getFileType().isBinary(); diff --git a/platform/core-impl/src/com/intellij/mock/MockFileIndexFacade.java b/platform/core-impl/src/com/intellij/mock/MockFileIndexFacade.java index aa6014021ac9..ee0f2bb45344 100644 --- a/platform/core-impl/src/com/intellij/mock/MockFileIndexFacade.java +++ b/platform/core-impl/src/com/intellij/mock/MockFileIndexFacade.java @@ -63,7 +63,7 @@ public class MockFileIndexFacade extends FileIndexFacade { } @Override - public boolean isInLibrarySource(VirtualFile file) { + public boolean isInLibrarySource(@NotNull VirtualFile file) { return false; } @@ -73,12 +73,12 @@ public class MockFileIndexFacade extends FileIndexFacade { } @Override - public Module getModuleForFile(VirtualFile file) { + public Module getModuleForFile(@NotNull VirtualFile file) { return myModule; } @Override - public boolean isValidAncestor(VirtualFile baseDir, VirtualFile child) { + public boolean isValidAncestor(@NotNull VirtualFile baseDir, @NotNull VirtualFile child) { return VfsUtilCore.isAncestor(baseDir, child, false); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectFileIndexFacade.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectFileIndexFacade.java index 53e7a381ac04..25d9b5b11170 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectFileIndexFacade.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectFileIndexFacade.java @@ -70,12 +70,12 @@ public class ProjectFileIndexFacade extends FileIndexFacade { @Nullable @Override - public Module getModuleForFile(VirtualFile file) { + public Module getModuleForFile(@NotNull VirtualFile file) { return myFileIndex.getModuleForFile(file); } @Override - public boolean isValidAncestor(final VirtualFile baseDir, VirtualFile childDir) { + public boolean isValidAncestor(@NotNull final VirtualFile baseDir, @NotNull VirtualFile childDir) { if (!childDir.isDirectory()) { childDir = childDir.getParent(); } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultFileIndexFacade.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultFileIndexFacade.java index d6fc0f9388c2..beeb05718573 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultFileIndexFacade.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultFileIndexFacade.java @@ -56,7 +56,7 @@ public class DefaultFileIndexFacade extends FileIndexFacade { } @Override - public boolean isInLibrarySource(VirtualFile file) { + public boolean isInLibrarySource(@NotNull VirtualFile file) { return false; } @@ -65,11 +65,11 @@ public class DefaultFileIndexFacade extends FileIndexFacade { } @Override - public Module getModuleForFile(VirtualFile file) { + public Module getModuleForFile(@NotNull VirtualFile file) { return null; } - public boolean isValidAncestor(final VirtualFile baseDir, final VirtualFile childDir) { + public boolean isValidAncestor(@NotNull final VirtualFile baseDir, @NotNull final VirtualFile childDir) { return VfsUtil.isAncestor(baseDir, childDir, false); } From 366d9d47b60244c2a03a85fc48bc5f2abf658d50 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 16:03:27 +0400 Subject: [PATCH 24/56] cleanup --- .../spellchecker/SpellCheckerManager.java | 24 +++++++++++-------- .../spellchecker/dictionary/Dictionary.java | 1 - .../dictionary/EditableDictionary.java | 3 --- .../dictionary/ProjectDictionary.java | 10 ++++---- .../dictionary/UserDictionary.java | 11 +++++---- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/spellchecker/src/com/intellij/spellchecker/SpellCheckerManager.java b/spellchecker/src/com/intellij/spellchecker/SpellCheckerManager.java index 7df9cfa8f6d1..b9d63d442292 100644 --- a/spellchecker/src/com/intellij/spellchecker/SpellCheckerManager.java +++ b/spellchecker/src/com/intellij/spellchecker/SpellCheckerManager.java @@ -80,7 +80,7 @@ public class SpellCheckerManager { public void updateBundledDictionaries(final List removedDictionaries) { for (BundledDictionaryProvider provider : Extensions.getExtensions(BundledDictionaryProvider.EP_NAME)) { for (String dictionary : provider.getBundledDictionaries()) { - boolean dictionaryShouldBeLoad = this.settings == null || !this.settings.getBundledDisabledDictionariesPaths().contains(dictionary); + boolean dictionaryShouldBeLoad = settings == null || !settings.getBundledDisabledDictionariesPaths().contains(dictionary); boolean dictionaryIsLoad = spellChecker.isDictionaryLoad(dictionary); if (dictionaryIsLoad && !dictionaryShouldBeLoad) { spellChecker.removeDictionary(dictionary); @@ -97,10 +97,11 @@ public class SpellCheckerManager { } } } - if (this.settings != null && this.settings.getDictionaryFoldersPaths() != null) { + if (settings != null && settings.getDictionaryFoldersPaths() != null) { final Set disabledDictionaries = settings.getDisabledDictionariesPaths(); - for (String folder : this.settings.getDictionaryFoldersPaths()) { + for (String folder : settings.getDictionaryFoldersPaths()) { SPFileUtil.processFilesRecursively(folder, new Consumer() { + @Override public void consume(final String s) { boolean dictionaryShouldBeLoad =!disabledDictionaries.contains(s); boolean dictionaryIsLoad = spellChecker.isDictionaryLoad(s); @@ -116,13 +117,13 @@ public class SpellCheckerManager { } } - - if (removedDictionaries != null && removedDictionaries.size() > 0) { + + if (removedDictionaries != null && !removedDictionaries.isEmpty()) { for (final String name : removedDictionaries) { spellChecker.removeDictionary(name); } } - + restartInspections(); } @@ -138,6 +139,7 @@ public class SpellCheckerManager { spellChecker.reset(); final StateLoader stateLoader = new StateLoader(project); stateLoader.load(new Consumer() { + @Override public void consume(String s) { //do nothing - in this loader we don't worry about word list itself - the whole dictionary will be restored } @@ -146,7 +148,7 @@ public class SpellCheckerManager { // Load bundled dictionaries from corresponding jars for (BundledDictionaryProvider provider : Extensions.getExtensions(BundledDictionaryProvider.EP_NAME)) { for (String dictionary : provider.getBundledDictionaries()) { - if (this.settings == null || !this.settings.getBundledDisabledDictionariesPaths().contains(dictionary)) { + if (settings == null || !settings.getBundledDisabledDictionariesPaths().contains(dictionary)) { final Class loaderClass = provider.getClass(); final InputStream stream = loaderClass.getResourceAsStream(dictionary); if (stream != null) { @@ -158,10 +160,11 @@ public class SpellCheckerManager { } } } - if (this.settings != null && this.settings.getDictionaryFoldersPaths() != null) { + if (settings != null && settings.getDictionaryFoldersPaths() != null) { final Set disabledDictionaries = settings.getDisabledDictionariesPaths(); - for (String folder : this.settings.getDictionaryFoldersPaths()) { + for (String folder : settings.getDictionaryFoldersPaths()) { SPFileUtil.processFilesRecursively(folder, new Consumer() { + @Override public void consume(final String s) { if (!disabledDictionaries.contains(s)) { loaders.add(new FileLoader(s, s)); @@ -225,7 +228,7 @@ public class SpellCheckerManager { protected List getRawSuggestions(@NotNull String word) { if (!spellChecker.isCorrect(word)) { List suggestions = spellChecker.getSuggestions(word, MAX_SUGGESTIONS_THRESHOLD, MAX_METRICS); - if (suggestions.size() != 0) { + if (!suggestions.isEmpty()) { boolean capitalized = Strings.isCapitalized(word); boolean upperCases = Strings.isUpperCase(word); if (capitalized) { @@ -249,6 +252,7 @@ public class SpellCheckerManager { public static void restartInspections() { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { Project[] projects = ProjectManager.getInstance().getOpenProjects(); for (Project project : projects) { diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java index b4a8c0aa8d77..b9cc69913edb 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/Dictionary.java @@ -22,7 +22,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Set; public interface Dictionary { - @NotNull String getName(); diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/EditableDictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/EditableDictionary.java index d2abc06519bc..fdccba32ce56 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/EditableDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/EditableDictionary.java @@ -21,7 +21,6 @@ import java.util.Collection; import java.util.Set; public interface EditableDictionary extends Dictionary { - void addToDictionary(@Nullable String word); void removeFromDictionary(@Nullable String word); @@ -34,6 +33,4 @@ public interface EditableDictionary extends Dictionary { @Nullable Set getEditableWords(); - - } diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java index 25daa3c5f9cb..b72c8f45928a 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/ProjectDictionary.java @@ -17,6 +17,7 @@ package com.intellij.spellchecker.dictionary; import com.intellij.util.Consumer; import gnu.trove.THashSet; +import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -25,8 +26,7 @@ import java.util.HashSet; import java.util.Set; public class ProjectDictionary implements EditableDictionary { - - private static final String DEFAULT_CURRENT_USER_NAME = "default.user"; + @NonNls private static final String DEFAULT_CURRENT_USER_NAME = "default.user"; private static final String DEFAULT_PROJECT_DICTIONARY_NAME = "project"; private String activeName; private Set dictionaries; @@ -35,7 +35,7 @@ public class ProjectDictionary implements EditableDictionary { public ProjectDictionary() { } - public ProjectDictionary(Set dictionaries) { + public ProjectDictionary(@NotNull Set dictionaries) { this.dictionaries = dictionaries; } @@ -70,8 +70,7 @@ public class ProjectDictionary implements EditableDictionary { if (contains == null) { errors++; } - else - if (contains) { + else if (contains) { return true; } } @@ -208,6 +207,7 @@ public class ProjectDictionary implements EditableDictionary { return result; } + @NonNls @Override public String toString() { return "ProjectDictionary{" + "activeName='" + activeName + '\'' + ", dictionaries=" + dictionaries + '}'; diff --git a/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java b/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java index 784cb5a98112..7ee25df992cb 100644 --- a/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java +++ b/spellchecker/src/com/intellij/spellchecker/dictionary/UserDictionary.java @@ -17,6 +17,7 @@ package com.intellij.spellchecker.dictionary; import com.intellij.util.Consumer; import gnu.trove.THashSet; +import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -24,11 +25,10 @@ import java.util.Collection; import java.util.Set; public class UserDictionary implements EditableDictionary { - private final String name; @NotNull - private final THashSet words = new THashSet(); + private final Set words = new THashSet(); public UserDictionary(@NotNull String name) { this.name = name; @@ -105,7 +105,7 @@ public class UserDictionary implements EditableDictionary { @Override public boolean isEmpty() { - return words.size() == 0; + return words.isEmpty(); } @Override @@ -115,7 +115,7 @@ public class UserDictionary implements EditableDictionary { UserDictionary that = (UserDictionary)o; - return !(name != null ? !name.equals(that.name) : that.name != null); + return name.equals(that.name); } @@ -128,9 +128,10 @@ public class UserDictionary implements EditableDictionary { @Override public int hashCode() { - return name != null ? name.hashCode() : 0; + return name.hashCode(); } + @NonNls @Override public String toString() { return "UserDictionary{" + "name='" + name + '\'' + ", words.count=" + words.size() + '}'; From 1217d497851f1b2f037fc676d86ca5f1f035483f Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 17:19:12 +0400 Subject: [PATCH 25/56] no tests found error --- .../idea/maven/execution/MavenResolveToWorkspaceTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenResolveToWorkspaceTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenResolveToWorkspaceTest.java index 3cfb1a4ca46d..4cf5b79a615b 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenResolveToWorkspaceTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenResolveToWorkspaceTest.java @@ -35,9 +35,9 @@ import java.util.Properties; /** * @author Sergey Evdokimov */ -public class MavenResolveToWorkspaceTest extends MavenImportingTestCase { +public abstract class MavenResolveToWorkspaceTest extends MavenImportingTestCase { - public void _testIgnoredProject() throws Exception { + public void testIgnoredProject() throws Exception { createProjectPom("test" + "project" + "1" + From b3391e85d569f767aa4d42fbbb9e2c891f3eb8af Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 17:24:28 +0400 Subject: [PATCH 26/56] check paths case-insensitively --- .../idea/maven/MavenImportingTestCase.java | 10 ++-- .../jetbrains/idea/maven/MavenTestCase.java | 4 ++ .../importing/FacetImporterTestCase.java | 7 ++- .../maven/importing/GroovyImporterTest.java | 9 ++-- .../project/MavenProjectsManagerTest.java | 54 +++++++++---------- .../project/MavenProjectsTreeReadingTest.java | 20 +++---- 6 files changed, 52 insertions(+), 52 deletions(-) diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java index ab77fe477b3c..8a4f802a7e88 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java @@ -33,7 +33,6 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.progress.EmptyProgressIndicator; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl; -import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; import com.intellij.openapi.roots.*; import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable; import com.intellij.openapi.roots.libraries.Library; @@ -45,7 +44,6 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.IdeaTestUtil; -import com.intellij.util.ArrayUtil; import com.intellij.util.PathUtil; import com.intellij.util.concurrency.Semaphore; import com.intellij.util.ui.UIUtil; @@ -116,7 +114,7 @@ public abstract class MavenImportingTestCase extends MavenTestCase { expectedRoots[i] = VfsUtil.pathToUrl(expectedRoots[i]); } - assertUnorderedElementsAreEqual(actual, expectedRoots); + assertUnorderedPathsAreEqual(actual, Arrays.asList(expectedRoots)); } protected void assertSources(String moduleName, String... expectedSources) { @@ -155,7 +153,7 @@ public abstract class MavenImportingTestCase extends MavenTestCase { actual.add(folderUrl); } - assertUnorderedElementsAreEqual(actual, expected); + assertUnorderedPathsAreEqual(actual, Arrays.asList(expected)); } protected void assertModuleOutput(String moduleName, String output, String testOutput) { @@ -211,9 +209,9 @@ public abstract class MavenImportingTestCase extends MavenTestCase { private void assertModuleLibDepPath(LibraryOrderEntry lib, OrderRootType type, List paths) { if (paths == null) return; - assertUnorderedElementsAreEqual(lib.getRootUrls(type), ArrayUtil.toStringArray(paths)); + assertUnorderedPathsAreEqual(Arrays.asList(lib.getRootUrls(type)), paths); // also check the library because it may contain slight different set of urls (e.g. with duplicates) - assertUnorderedElementsAreEqual(lib.getLibrary().getUrls(type), ArrayUtil.toStringArray(paths)); + assertUnorderedPathsAreEqual(Arrays.asList(lib.getLibrary().getUrls(type)), paths); } protected void assertModuleLibDepScope(String moduleName, String depName, DependencyScope scope) { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java index dcf900e1f087..ef8e43f78829 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java @@ -35,6 +35,7 @@ import com.intellij.testFramework.UsefulTestCase; import com.intellij.testFramework.fixtures.IdeaProjectTestFixture; import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory; import com.intellij.util.ui.UIUtil; +import gnu.trove.THashSet; import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.NonNls; import org.jetbrains.idea.maven.indices.MavenIndicesManager; @@ -497,6 +498,9 @@ public abstract class MavenTestCase extends UsefulTestCase { protected static void assertUnorderedElementsAreEqual(Collection actual, Collection expected) { assertEquals(new HashSet(expected), new HashSet(actual)); } + protected static void assertUnorderedPathsAreEqual(Collection actual, Collection expected) { + assertEquals(new THashSet(expected, FileUtil.PATH_HASHING_STRATEGY), new THashSet(actual, FileUtil.PATH_HASHING_STRATEGY)); + } protected static void assertUnorderedElementsAreEqual(T[] actual, T... expected) { assertUnorderedElementsAreEqual(Arrays.asList(actual), expected); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FacetImporterTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FacetImporterTestCase.java index 0c11426e5a1f..31ae08162462 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FacetImporterTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FacetImporterTestCase.java @@ -3,8 +3,7 @@ package org.jetbrains.idea.maven.importing; import com.intellij.facet.Facet; import com.intellij.facet.FacetManager; import com.intellij.facet.FacetType; -import com.intellij.openapi.vfs.VfsUtil; -import com.intellij.util.ArrayUtil; +import com.intellij.openapi.vfs.VfsUtilCore; import org.jetbrains.idea.maven.MavenImportingTestCase; import java.util.ArrayList; @@ -25,11 +24,11 @@ public abstract class FacetImporterTestCase expectedRootUrls = new ArrayList(); for (String r : roots) { - String url = VfsUtil.pathToUrl(getProjectPath() + "/" + r); + String url = VfsUtilCore.pathToUrl(getProjectPath() + "/" + r); expectedRootUrls.add(url); } - assertUnorderedElementsAreEqual(actualRoots, ArrayUtil.toStringArray(expectedRootUrls)); + assertUnorderedPathsAreEqual(actualRoots, expectedRootUrls); } protected FACET_TYPE getFacet(String module) { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/GroovyImporterTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/GroovyImporterTest.java index be05c84b78bc..9cf632dc956d 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/GroovyImporterTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/GroovyImporterTest.java @@ -8,11 +8,10 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; import org.jetbrains.idea.maven.MavenImportingTestCase; -import org.jetbrains.idea.maven.importing.MavenDefaultModifiableModelsProvider; -import org.jetbrains.idea.maven.importing.MavenRootModelAdapter; import org.jetbrains.plugins.groovy.config.GroovyConfigUtils; import java.io.File; +import java.util.Arrays; public class GroovyImporterTest extends MavenImportingTestCase { @Override @@ -67,9 +66,9 @@ public class GroovyImporterTest extends MavenImportingTestCase { Library[] libraries = GroovyConfigUtils.getInstance().getSDKLibrariesByModule(getModule("project")); assertTrue("unexpected groovy libs configuration: " + libraries.length, libraries.length > 0); Library library = libraries[0]; - assertUnorderedElementsAreEqual( - library.getUrls(OrderRootType.CLASSES), - "jar://" + getRepositoryPath() + "/org/codehaus/groovy/groovy-all-minimal/1.5.6/groovy-all-minimal-1.5.6.jar!/"); + assertUnorderedPathsAreEqual( + Arrays.asList(library.getUrls(OrderRootType.CLASSES)), + Arrays.asList("jar://" + getRepositoryPath() + "/org/codehaus/groovy/groovy-all-minimal/1.5.6/groovy-all-minimal-1.5.6.jar!/")); } public void testAddingGroovySpecificSources() throws Exception { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java index cee2ec718491..ac9b17abe4c8 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java @@ -371,8 +371,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { MavenProject parentNode = roots.get(0); MavenProject childNode = myProjectsTree.getModules(roots.get(0)).get(0); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"))); updateSettingsXml("" + " " + @@ -387,14 +387,14 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { ""); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"))); deleteSettingsXml(); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/${prop}")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/${prop}"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}"))); updateSettingsXml("" + " " + @@ -409,8 +409,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { ""); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"))); } public void testUpdatingProjectsWhenSettingsXmlLocationIsChanged() throws Exception { @@ -461,20 +461,20 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { MavenProject parentNode = roots.get(0); MavenProject childNode = myProjectsTree.getModules(roots.get(0)).get(0); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"))); getMavenGeneralSettings().setUserSettingsFile(""); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/${prop}")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/${prop}"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}"))); getMavenGeneralSettings().setUserSettingsFile(new File(myDir, "settings.xml").getPath()); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"))); } public void testUpdatingProjectsOnSettingsXmlCreationAndDeletion() throws Exception { @@ -586,8 +586,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { MavenProject parentNode = roots.get(0); MavenProject childNode = myProjectsTree.getModules(roots.get(0)).get(0); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"))); createProfilesXmlOldStyle("" + " one" + @@ -600,14 +600,14 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { ""); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"))); deleteProfilesXml(); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/${prop}")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/${prop}"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}"))); createProfilesXmlOldStyle("" + " one" + @@ -620,8 +620,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { ""); waitForReadingCompletion(); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"))); } public void testHandlingDirectoryWithPomFileDeletion() throws Exception { @@ -691,9 +691,9 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { myProjectsManager.setIgnoredFilesPatterns(Arrays.asList("*.xxx")); state = myProjectsManager.getState(); - assertUnorderedElementsAreEqual(state.originalFiles, p1.getPath(), p2.getPath()); + assertUnorderedPathsAreEqual(state.originalFiles, Arrays.asList(p1.getPath(), p2.getPath())); assertUnorderedElementsAreEqual(MavenWorkspaceSettingsComponent.getInstance(myProject).getState().enabledProfiles, "one", "two"); - assertUnorderedElementsAreEqual(state.ignoredFiles, p1.getPath()); + assertUnorderedPathsAreEqual(state.ignoredFiles, Arrays.asList(p1.getPath())); assertUnorderedElementsAreEqual(state.ignoredPathMasks, "*.xxx"); MavenProjectsManagerState newState = new MavenProjectsManagerState(); @@ -705,10 +705,10 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { myProjectsManager.loadState(newState); - assertUnorderedElementsAreEqual(myProjectsManager.getProjectsTreeForTests().getManagedFilesPaths(), - p1.getPath(), p3.getPath()); + assertUnorderedPathsAreEqual(myProjectsManager.getProjectsTreeForTests().getManagedFilesPaths(), + Arrays.asList(p1.getPath(), p3.getPath())); assertUnorderedElementsAreEqual(myProjectsManager.getExplicitProfiles(), "three"); - assertUnorderedElementsAreEqual(myProjectsManager.getIgnoredFilesPaths(), p1.getPath()); + assertUnorderedPathsAreEqual(myProjectsManager.getIgnoredFilesPaths(), Arrays.asList(p1.getPath())); assertUnorderedElementsAreEqual(myProjectsManager.getIgnoredFilesPatterns(), "*.zzz"); waitForReadingCompletion(); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsTreeReadingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsTreeReadingTest.java index 0f594ce41042..2f118ed2b79f 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsTreeReadingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsTreeReadingTest.java @@ -1594,13 +1594,13 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { MavenProject parentNode = roots.get(0); MavenProject childNode = myTree.getModules(roots.get(0)).get(0); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"))); updateAll(Arrays.asList("two"), myProjectPom); - assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2")); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")); + assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2"))); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"))); } public void testUpdatingModelWhenProfilesXmlChange() throws Exception { @@ -1628,7 +1628,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { List roots = myTree.getRootProjects(); MavenProject project = roots.get(0); - assertUnorderedElementsAreEqual(project.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1")); + assertUnorderedPathsAreEqual(project.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1"))); createProfilesXmlOldStyle("" + " one" + @@ -1642,7 +1642,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { updateAll(myProjectPom); - assertUnorderedElementsAreEqual(project.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2")); + assertUnorderedPathsAreEqual(project.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2"))); } public void testUpdatingModelWhenParentProfilesXmlChange() throws Exception { @@ -1683,7 +1683,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { List roots = myTree.getRootProjects(); MavenProject childProject = roots.get(1); - assertUnorderedElementsAreEqual(childProject.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")); + assertUnorderedPathsAreEqual(childProject.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"))); createProfilesXmlOldStyle("parent", "" + @@ -1697,7 +1697,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { ""); update(parent); - assertUnorderedElementsAreEqual(childProject.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")); + assertUnorderedPathsAreEqual(childProject.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"))); } public void testUpdatingModelWhenParentProfilesXmlChangeAndItIsAModuleAlso() throws Exception { @@ -1738,7 +1738,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { updateAll(myProjectPom); MavenProject childNode = myTree.getModules(myTree.getRootProjects().get(0)).get(0); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"))); createProfilesXmlOldStyle("" + " one" + @@ -1751,7 +1751,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { ""); updateAll(myProjectPom); - assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")); + assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"))); } public void testDoNotUpdateModelWhenAggregatorProfilesXmlChange() throws Exception { From bfe130acae51d19289186e77bcf3ce64ec823241 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 17:42:45 +0400 Subject: [PATCH 27/56] EA-45865 - assert: DocumentImpl.a --- ...onizer.java => DocumentsSynchronizer.java} | 27 ++++++--- .../openapi/diff/FragmentContent.java | 60 +++++++++++-------- 2 files changed, 55 insertions(+), 32 deletions(-) rename platform/platform-api/src/com/intellij/openapi/diff/{DocumentsSynchonizer.java => DocumentsSynchronizer.java} (79%) diff --git a/platform/platform-api/src/com/intellij/openapi/diff/DocumentsSynchonizer.java b/platform/platform-api/src/com/intellij/openapi/diff/DocumentsSynchronizer.java similarity index 79% rename from platform/platform-api/src/com/intellij/openapi/diff/DocumentsSynchonizer.java rename to platform/platform-api/src/com/intellij/openapi/diff/DocumentsSynchronizer.java index 5204ddfcaeb3..b0e48b756184 100644 --- a/platform/platform-api/src/com/intellij/openapi/diff/DocumentsSynchonizer.java +++ b/platform/platform-api/src/com/intellij/openapi/diff/DocumentsSynchronizer.java @@ -15,26 +15,29 @@ */ package com.intellij.openapi.diff; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.event.DocumentAdapter; import com.intellij.openapi.editor.event.DocumentEvent; import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -abstract class DocumentsSynchonizer { +abstract class DocumentsSynchronizer { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.diff.DocumentsSynchonizer"); private Document myOriginal = null; private Document myCopy = null; private final Project myProject; - private boolean myDuringModification = false; + private volatile boolean myDuringModification = false; private int myAssignedCount = 0; private final DocumentAdapter myOriginalListener = new DocumentAdapter() { + @Override public void documentChanged(DocumentEvent e) { if (myDuringModification) return; onOriginalChanged(e, getCopy()); @@ -42,39 +45,47 @@ abstract class DocumentsSynchonizer { }; private final DocumentAdapter myCopyListener = new DocumentAdapter() { + @Override public void documentChanged(DocumentEvent e) { if (myDuringModification) return; onCopyChanged(e, getOriginal()); } }; private final PropertyChangeListener myROListener = new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { if (Document.PROP_WRITABLE.equals(evt.getPropertyName())) getCopy().setReadOnly(!getOriginal().isWritable()); } }; - protected DocumentsSynchonizer(Project project) { + protected DocumentsSynchronizer(Project project) { myProject = project; } - protected abstract void onCopyChanged(DocumentEvent event, Document original); + protected abstract void onCopyChanged(@NotNull DocumentEvent event, @NotNull Document original); - protected abstract void onOriginalChanged(DocumentEvent event, Document copy); + protected abstract void onOriginalChanged(@NotNull DocumentEvent event, @NotNull Document copy); - protected abstract void beforeListenersAttached(Document original, Document copy); + protected abstract void beforeListenersAttached(@NotNull Document original, @NotNull Document copy); protected abstract Document createOriginal(); protected abstract Document createCopy(); - protected void replaceString(final Document document, final int startOffset, final int endOffset, final String newText) { + protected void replaceString(@NotNull final Document document, final int startOffset, final int endOffset, @NotNull final String newText) { LOG.assertTrue(!myDuringModification); try { myDuringModification = true; CommandProcessor.getInstance().executeCommand(myProject, new Runnable() { + @Override public void run() { LOG.assertTrue(endOffset <= document.getTextLength()); - document.replaceString(startOffset, endOffset, newText); + ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override + public void run() { + document.replaceString(startOffset, endOffset, newText); + } + }); } }, DiffBundle.message("save.merge.result.command.name"), document); } diff --git a/platform/platform-api/src/com/intellij/openapi/diff/FragmentContent.java b/platform/platform-api/src/com/intellij/openapi/diff/FragmentContent.java index 608a40c548f6..6c40b3797efb 100644 --- a/platform/platform-api/src/com/intellij/openapi/diff/FragmentContent.java +++ b/platform/platform-api/src/com/intellij/openapi/diff/FragmentContent.java @@ -23,11 +23,11 @@ import com.intellij.openapi.editor.event.DocumentEvent; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.fileTypes.FileType; -import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.IOException; @@ -39,19 +39,16 @@ public class FragmentContent extends DiffContent { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.diff.FragmentContent"); private final DiffContent myOriginal; private final FileType myType; - private final MyDocumentsSynchonizer mySynchonizer; + private final MyDocumentsSynchronizer mySynchonizer; public static final Key ORIGINAL_DOCUMENT = new Key("ORIGINAL_DOCUMENT"); - public FragmentContent(DiffContent original, TextRange range, Project project, VirtualFile file) { + public FragmentContent(@NotNull DiffContent original, @NotNull TextRange range, Project project, VirtualFile file) { this(original, range, project, file != null ? DiffContentUtil.getContentType(file) : null); } - public FragmentContent(DiffContent original, TextRange range, Project project, FileType type) { - this(original.getDocument().createRangeMarker(range.getStartOffset(), range.getEndOffset(), true), original, type, project); - } - - private FragmentContent(RangeMarker rangeMarker, DiffContent original, FileType fileType, Project project) { - mySynchonizer = new MyDocumentsSynchonizer(project, rangeMarker); + public FragmentContent(@NotNull DiffContent original, @NotNull TextRange range, Project project, FileType fileType) { + RangeMarker rangeMarker = original.getDocument().createRangeMarker(range.getStartOffset(), range.getEndOffset(), true); + mySynchonizer = new MyDocumentsSynchronizer(project, rangeMarker); myOriginal = original; myType = fileType; } @@ -65,27 +62,35 @@ public class FragmentContent extends DiffContent { } + @Override public void onAssigned(boolean isAssigned) { myOriginal.onAssigned(isAssigned); mySynchonizer.listenDocuments(isAssigned); super.onAssigned(isAssigned); } + @Override public Document getDocument() { return mySynchonizer.getCopy(); } + @Override public OpenFileDescriptor getOpenFileDescriptor(int offset) { return myOriginal.getOpenFileDescriptor(offset + mySynchonizer.getStartOffset()); } - public VirtualFile getFile() { return null; } + @Override + public VirtualFile getFile() { + return null; + } + @Override @Nullable public FileType getContentType() { return myType != null ? myType : myOriginal.getContentType(); } + @Override public byte[] getBytes() throws IOException { return getDocument().getText().getBytes(); } @@ -97,52 +102,59 @@ public class FragmentContent extends DiffContent { return new FragmentContent(new DocumentContent(project, document), TextRange.create(rangeMarker), project, type); } - private class MyDocumentsSynchonizer extends DocumentsSynchonizer { + private class MyDocumentsSynchronizer extends DocumentsSynchronizer { private final RangeMarker myRangeMarker; - public MyDocumentsSynchonizer(Project project, RangeMarker originalRange) { + public MyDocumentsSynchronizer(Project project, @NotNull RangeMarker originalRange) { super(project); myRangeMarker = originalRange; } - public int getStartOffset() { return myRangeMarker.getStartOffset(); } + public int getStartOffset() { + return myRangeMarker.getStartOffset(); + } - protected void onOriginalChanged(DocumentEvent event, Document copy) { + @Override + protected void onOriginalChanged(@NotNull DocumentEvent event, @NotNull Document copy) { if (!myRangeMarker.isValid()) { fireContentInvalid(); return; } - replaceString(copy, 0, copy.getTextLength(), - subText(event.getDocument(), myRangeMarker.getStartOffset(), getLength())); + replaceString(copy, 0, copy.getTextLength(), subText(event.getDocument(), myRangeMarker.getStartOffset(), getLength())); } - protected void beforeListenersAttached(Document original, Document copy) { + @Override + protected void beforeListenersAttached(@NotNull Document original, @NotNull Document copy) { boolean writable = copy.isWritable(); - Document copyEx = copy; - if (!writable) copyEx.setReadOnly(false); - replaceString(copy, 0, copy.getTextLength(), - subText(original, myRangeMarker.getStartOffset(), getLength())); - copyEx.setReadOnly(!writable); + if (!writable) { + copy.setReadOnly(false); + } + replaceString(copy, 0, copy.getTextLength(), subText(original, myRangeMarker.getStartOffset(), getLength())); + copy.setReadOnly(!writable); } private int getLength() { return myRangeMarker.getEndOffset() - myRangeMarker.getStartOffset(); } + @Override protected Document createOriginal() { return myRangeMarker.getDocument(); } + @Override protected Document createCopy() { final Document originalDocument = myRangeMarker.getDocument(); - String textInRange = originalDocument.getCharsSequence().subSequence(myRangeMarker.getStartOffset(), myRangeMarker.getEndOffset()).toString(); + String textInRange = + originalDocument.getCharsSequence().subSequence(myRangeMarker.getStartOffset(), myRangeMarker.getEndOffset()).toString(); final Document result = EditorFactory.getInstance().createDocument(textInRange); result.setReadOnly(!originalDocument.isWritable()); result.putUserData(ORIGINAL_DOCUMENT, originalDocument); return result; } - protected void onCopyChanged(DocumentEvent event, Document original) { + @Override + protected void onCopyChanged(@NotNull DocumentEvent event, @NotNull Document original) { final int originalOffset = event.getOffset() + myRangeMarker.getStartOffset(); LOG.assertTrue(originalOffset >= 0); if (!original.isWritable()) return; From 7b6da7572221f3da8f7452744b5d10da82445d53 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 24 Apr 2013 17:59:06 +0400 Subject: [PATCH 28/56] store Lowmemorywatcher in a field to prevent GC --- .../com/intellij/util/containers/RecentStringInterner.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/util/src/com/intellij/util/containers/RecentStringInterner.java b/platform/util/src/com/intellij/util/containers/RecentStringInterner.java index f7907e5f91bc..00111c8078c4 100644 --- a/platform/util/src/com/intellij/util/containers/RecentStringInterner.java +++ b/platform/util/src/com/intellij/util/containers/RecentStringInterner.java @@ -15,6 +15,9 @@ public class RecentStringInterner { private final int myStripeMask; private final SLRUCache[] myInterns; private final Lock[] myStripeLocks; + // LowMemoryWatcher relies on field holding it + @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"}) + private final LowMemoryWatcher myLowMemoryWatcher; public RecentStringInterner() { this(8192); @@ -43,7 +46,7 @@ public class RecentStringInterner { assert Integer.highestOneBit(stripes) == stripes; myStripeMask = stripes - 1; - LowMemoryWatcher.register(new Runnable() { + myLowMemoryWatcher = LowMemoryWatcher.register(new Runnable() { @Override public void run() { clear(); From 3d9008c296a79a96e21f080b1d41af1afa69e46a Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 16:19:38 +0200 Subject: [PATCH 29/56] add single static import: process nested references (IDEA-94951) --- .../AddSingleMemberStaticImportAction.java | 99 ++++++++++--------- .../DisabledInsideParameterizedReference.java | 6 ++ .../InsideParameterizedReference.java | 6 ++ ...ReferenceInsideParameterizedReference.java | 6 ++ ...nceInsideParameterizedReference_after.java | 9 ++ .../InsideParameterizedReference_after.java | 9 ++ .../AddSingleStaticImportActionTest.java | 39 ++++++++ 7 files changed, 128 insertions(+), 46 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/DisabledInsideParameterizedReference.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference_after.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference_after.java diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java index 4f4d74c36cda..faa2deee62df 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddSingleMemberStaticImportAction.java @@ -61,8 +61,7 @@ public class AddSingleMemberStaticImportAction extends PsiElementBaseIntentionAc if (parent instanceof PsiMethodReferenceExpression) return null; if (parent instanceof PsiJavaCodeReferenceElement && ((PsiJavaCodeReferenceElement)parent).getQualifier() != null) { PsiJavaCodeReferenceElement refExpr = (PsiJavaCodeReferenceElement)parent; - PsiReferenceParameterList parameterList = refExpr.getParameterList(); - if (parameterList != null && parameterList.getFirstChild() != null) return null; + if (checkParameterizedReference(refExpr)) return null; PsiElement resolved = refExpr.resolve(); if (resolved instanceof PsiMember && ((PsiModifierListOwner)resolved).hasModifierProperty(PsiModifier.STATIC)) { PsiClass aClass = getResolvedClass(element, (PsiMember)resolved); @@ -99,6 +98,11 @@ public class AddSingleMemberStaticImportAction extends PsiElementBaseIntentionAc return null; } + private static boolean checkParameterizedReference(PsiJavaCodeReferenceElement refExpr) { + PsiReferenceParameterList parameterList = refExpr instanceof PsiReferenceExpression ? refExpr.getParameterList() : null; + return parameterList != null && parameterList.getFirstChild() != null; + } + @Nullable private static PsiClass getResolvedClass(PsiElement element, PsiMember resolved) { PsiClass aClass = resolved.getContainingClass(); @@ -158,58 +162,61 @@ public class AddSingleMemberStaticImportAction extends PsiElementBaseIntentionAc @Override public void visitReferenceElement(PsiJavaCodeReferenceElement reference) { - if (reference.getParameterList() != null && - reference.getParameterList().getFirstChild() != null) return; + try { + if (checkParameterizedReference(reference)) return; - if (referenceName.equals(reference.getReferenceName()) && !(reference instanceof PsiMethodReferenceExpression)) { - final PsiElement qualifierExpression = reference.getQualifier(); - PsiElement referent = reference.getUserData(TEMP_REFERENT_USER_DATA); - if (!reference.isQualified()) { - if (referent instanceof PsiMember && referent != reference.resolve()) { - PsiElementFactory factory = JavaPsiFacade.getInstance(reference.getProject()).getElementFactory(); - try { - final PsiClass containingClass = ((PsiMember)referent).getContainingClass(); - if (containingClass != null) { - PsiReferenceExpression copy = (PsiReferenceExpression)factory.createExpressionFromText("A." + reference.getReferenceName(), null); - reference = (PsiReferenceExpression)reference.replace(copy); - ((PsiReferenceExpression)reference.getQualifier()).bindToElement(containingClass); + if (referenceName.equals(reference.getReferenceName()) && !(reference instanceof PsiMethodReferenceExpression)) { + final PsiElement qualifierExpression = reference.getQualifier(); + PsiElement referent = reference.getUserData(TEMP_REFERENT_USER_DATA); + if (!reference.isQualified()) { + if (referent instanceof PsiMember && referent != reference.resolve()) { + PsiElementFactory factory = JavaPsiFacade.getInstance(reference.getProject()).getElementFactory(); + try { + final PsiClass containingClass = ((PsiMember)referent).getContainingClass(); + if (containingClass != null) { + PsiReferenceExpression copy = (PsiReferenceExpression)factory.createExpressionFromText("A." + reference.getReferenceName(), null); + reference = (PsiReferenceExpression)reference.replace(copy); + ((PsiReferenceExpression)reference.getQualifier()).bindToElement(containingClass); + } + } + catch (IncorrectOperationException e) { + LOG.error (e); } } - catch (IncorrectOperationException e) { - LOG.error (e); + reference.putUserData(TEMP_REFERENT_USER_DATA, null); + } else { + if (qualifierExpression instanceof PsiJavaCodeReferenceElement) { + PsiElement aClass = ((PsiJavaCodeReferenceElement)qualifierExpression).resolve(); + if (aClass instanceof PsiVariable) { + aClass = PsiUtil.resolveClassInClassTypeOnly(((PsiVariable)aClass).getType()); + } + if (aClass instanceof PsiClass && InheritanceUtil.isInheritorOrSelf((PsiClass)aClass, resolvedClass, true)) { + boolean foundMemberByName = false; + if (referent instanceof PsiMember) { + final String memberName = ((PsiMember)referent).getName(); + final PsiClass containingClass = PsiTreeUtil.getParentOfType(reference, PsiClass.class); + if (containingClass != null) { + foundMemberByName |= containingClass.findFieldByName(memberName, true) != null; + foundMemberByName |= containingClass.findMethodsByName(memberName, true).length > 0; + } + } + if (!foundMemberByName) { + try { + qualifierExpression.delete(); + } + catch (IncorrectOperationException e) { + LOG.error(e); + } + } + } } } reference.putUserData(TEMP_REFERENT_USER_DATA, null); - } else { - if (qualifierExpression instanceof PsiJavaCodeReferenceElement) { - PsiElement aClass = ((PsiJavaCodeReferenceElement)qualifierExpression).resolve(); - if (aClass instanceof PsiVariable) { - aClass = PsiUtil.resolveClassInClassTypeOnly(((PsiVariable)aClass).getType()); - } - if (aClass instanceof PsiClass && InheritanceUtil.isInheritorOrSelf((PsiClass)aClass, resolvedClass, true)) { - boolean foundMemberByName = false; - if (referent instanceof PsiMember) { - final String memberName = ((PsiMember)referent).getName(); - final PsiClass containingClass = PsiTreeUtil.getParentOfType(reference, PsiClass.class); - if (containingClass != null) { - foundMemberByName |= containingClass.findFieldByName(memberName, true) != null; - foundMemberByName |= containingClass.findMethodsByName(memberName, true).length > 0; - } - } - if (!foundMemberByName) { - try { - qualifierExpression.delete(); - } - catch (IncorrectOperationException e) { - LOG.error(e); - } - } - } - } } - reference.putUserData(TEMP_REFERENT_USER_DATA, null); } - super.visitReferenceElement(reference); + finally { + super.visitReferenceElement(reference); + } } }); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/DisabledInsideParameterizedReference.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/DisabledInsideParameterizedReference.java new file mode 100644 index 000000000000..b349ea73b377 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/DisabledInsideParameterizedReference.java @@ -0,0 +1,6 @@ +import foo.*; +class Class2 { + public static void main(String[] args) { + Class1.foo(); + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference.java new file mode 100644 index 000000000000..85aa9ae8521e --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference.java @@ -0,0 +1,6 @@ +import foo.*; +class Class2 { + public static void main(String[] args) { + new Class1.Inner2(); + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference.java new file mode 100644 index 000000000000..cf579dda8629 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference.java @@ -0,0 +1,6 @@ +import foo.*; +class Class2 { + public static void main(String[] args) { + new Class1.Inner2ner1>(); + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference_after.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference_after.java new file mode 100644 index 000000000000..9a2ff4d54a98 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReferenceInsideParameterizedReference_after.java @@ -0,0 +1,9 @@ +import foo.*; + +import static foo.Class1.Inner1; + +class Class2 { + public static void main(String[] args) { + new Class1.Inner2(); + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference_after.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference_after.java new file mode 100644 index 000000000000..6f57f14f5fa4 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addSingleStaticImport/InsideParameterizedReference_after.java @@ -0,0 +1,9 @@ +import foo.*; + +import static foo.Class1.Inner2; + +class Class2 { + public static void main(String[] args) { + new Inner2(); + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/intention/AddSingleStaticImportActionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/intention/AddSingleStaticImportActionTest.java index d7bacf264398..9ecdd1cfa79e 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/intention/AddSingleStaticImportActionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/intention/AddSingleStaticImportActionTest.java @@ -30,6 +30,45 @@ public class AddSingleStaticImportActionTest extends JavaCodeInsightFixtureTestC myFixture.checkResultByFile(getTestName(false) + "_after.java"); } + public void testInsideParameterizedReference() { + myFixture.addClass("package foo; " + + "public class Class1 {" + + " public static class Inner1 {}\n" + + " public static class Inner2 {}" + + "}"); + myFixture.configureByFile(getTestName(false) + ".java"); + + final IntentionAction intentionAction = myFixture.findSingleIntention("Add static import for 'foo.Class1.Inner2'"); + assertNotNull(intentionAction); + myFixture.launchAction(intentionAction); + myFixture.checkResultByFile(getTestName(false) + "_after.java"); + } + + public void testInsideParameterizedReferenceInsideParameterizedReference() { + myFixture.addClass("package foo; " + + "public class Class1 {" + + " public static class Inner1 {}\n" + + " public static class Inner2 {}" + + "}"); + myFixture.configureByFile(getTestName(false) + ".java"); + + final IntentionAction intentionAction = myFixture.findSingleIntention("Add static import for 'foo.Class1.Inner1'"); + assertNotNull(intentionAction); + myFixture.launchAction(intentionAction); + myFixture.checkResultByFile(getTestName(false) + "_after.java"); + } + + public void testDisabledInsideParameterizedReference() { + myFixture.addClass("package foo; " + + "public class Class1 {" + + " public static T foo(){return null;}\n" + + "}"); + myFixture.configureByFile(getTestName(false) + ".java"); + + final IntentionAction intentionAction = myFixture.getAvailableIntention("Add static import for 'foo.Class1.foo'"); + assertNull(intentionAction); + } + @Override protected String getTestDataPath() { From a3188745178324a2ab97e70fa1b51b35ce51af86 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 23 Apr 2013 16:27:27 +0200 Subject: [PATCH 30/56] improve description now that inspection warns in more cases --- .../UnnecessaryCallToStringValueOf.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryCallToStringValueOf.html b/plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryCallToStringValueOf.html index 3d95b3ac2f14..ecbdf6ff2ff8 100644 --- a/plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryCallToStringValueOf.html +++ b/plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryCallToStringValueOf.html @@ -1,8 +1,8 @@ -Reports on any calls to String.valueOf() -used in string concatenations. The conversion to string is handled automatically by the compiler -without a call to String.valueOf(), making it unnecessary. +Reports on any calls to String.valueOf() used in string concatenations and as arguments to the +print and println methods of java.io.PrintWriter and java.io.PrintStream. The conversion +to string will be handled by the underlying library methods without an explicit call to String.valueOf().

Powered by InspectionGadgets From e79160e10ff93bee76ba25b8f8686f3203b6cb20 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 23 Apr 2013 16:28:26 +0200 Subject: [PATCH 31/56] IDEA-105612 (Add "redundant toString() call" inspection) --- .../InspectionGadgets/src/META-INF/plugin.xml | 4 + .../siyeh/InspectionGadgetsBundle.properties | 2 + .../UnnecessaryToStringCallInspection.java | 200 ++++++++++++++++++ .../UnnecessaryToStringCall.html | 13 ++ .../UnnecessaryToString.java | 30 +++ .../style/unnecessary_tostring/expected.xml | 32 +++ ...UnnecessaryToStringCallInspectionTest.java | 10 + 7 files changed, 291 insertions(+) create mode 100644 plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java create mode 100644 plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryToStringCall.html create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/UnnecessaryToString.java create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/expected.xml create mode 100644 plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessaryToStringCallInspectionTest.java diff --git a/plugins/InspectionGadgets/src/META-INF/plugin.xml b/plugins/InspectionGadgets/src/META-INF/plugin.xml index 1b3efecf24ca..2e8c2d98e469 100644 --- a/plugins/InspectionGadgets/src/META-INF/plugin.xml +++ b/plugins/InspectionGadgets/src/META-INF/plugin.xml @@ -2297,6 +2297,10 @@ key="unnecessary.call.to.string.valueof.display.name" groupBundle="messages.InspectionsBundle" groupKey="group.names.code.style.issues" enabledByDefault="false" level="WARNING" implementationClass="com.siyeh.ig.style.UnnecessaryCallToStringValueOfInspection"/> + #ref can be simplified to ''{0}'' #loc +unnecessary.tostring.call.problem.descriptor=Unnecessary #ref() call #loc unnecessary.call.to.string.valueof.quickfix=Replace with ''{0}'' throwable.result.of.method.call.ignored.display.name=Throwable result of method call ignored throwable.result.of.method.call.ignored.problem.descriptor=Result of #ref() not thrown #loc diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java new file mode 100644 index 000000000000..d7cad4ef4f13 --- /dev/null +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java @@ -0,0 +1,200 @@ +/* + * Copyright 2008-2013 Bas Leijdekkers + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.siyeh.ig.style; + +import com.intellij.codeInspection.ProblemDescriptor; +import com.intellij.openapi.project.Project; +import com.intellij.psi.*; +import com.intellij.util.IncorrectOperationException; +import com.siyeh.InspectionGadgetsBundle; +import com.siyeh.ig.BaseInspection; +import com.siyeh.ig.BaseInspectionVisitor; +import com.siyeh.ig.InspectionGadgetsFix; +import com.siyeh.ig.psiutils.ParenthesesUtils; +import com.siyeh.ig.psiutils.TypeUtils; +import org.jetbrains.annotations.Nls; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class UnnecessaryToStringCallInspection extends BaseInspection { + + @Override + @Nls + @NotNull + public String getDisplayName() { + return InspectionGadgetsBundle.message("unnecessary.tostring.call.display.name"); + } + + @Override + @NotNull + protected String buildErrorString(Object... infos) { + final String text = (String)infos[0]; + return InspectionGadgetsBundle.message("unnecessary.tostring.call.problem.descriptor", text); + } + + @Override + @Nullable + protected InspectionGadgetsFix buildFix(Object... infos) { + final String text = (String)infos[0]; + return new UnnecessaryCallToStringValueOfFix(text); + } + + public static String calculateReplacementText(PsiExpression expression) { + if (expression == null) { + return "this"; + } + return expression.getText(); + } + + private static class UnnecessaryCallToStringValueOfFix extends InspectionGadgetsFix { + + private final String replacementText; + + UnnecessaryCallToStringValueOfFix(String replacementText) { + this.replacementText = replacementText; + } + + @NotNull + public String getName() { + return InspectionGadgetsBundle.message("unnecessary.call.to.string.valueof.quickfix", replacementText); + } + + @Override + protected void doFix(Project project, ProblemDescriptor descriptor) throws IncorrectOperationException { + final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)descriptor.getPsiElement().getParent().getParent(); + final PsiReferenceExpression methodExpression = methodCallExpression.getMethodExpression(); + final PsiExpression qualifier = methodExpression.getQualifierExpression(); + if (qualifier == null) { + replaceExpression(methodCallExpression, "this"); + } else { + methodCallExpression.replace(qualifier); + } + } + } + + @Override + public BaseInspectionVisitor buildVisitor() { + return new UnnecessaryCallToStringValueOfVisitor(); + } + + private static class UnnecessaryCallToStringValueOfVisitor extends BaseInspectionVisitor { + + @Override + public void visitMethodCallExpression(PsiMethodCallExpression expression) { + super.visitMethodCallExpression(expression); + final PsiReferenceExpression methodExpression = expression.getMethodExpression(); + final String referenceName = methodExpression.getReferenceName(); + if (!"toString".equals(referenceName)) { + return; + } + if (isToStringCallNecessary(expression)) { + return; + } + final PsiExpressionList argumentList = expression.getArgumentList(); + final PsiExpression[] arguments = argumentList.getExpressions(); + if (arguments.length != 0) { + return; + } + final PsiExpression qualifier = methodExpression.getQualifierExpression(); + if (qualifier != null && qualifier.getType() instanceof PsiArrayType) { + // do not warn on nonsensical code + return; + } + registerMethodCallError(expression, calculateReplacementText(qualifier)); + } + + private boolean isToStringCallNecessary(PsiMethodCallExpression expression) { + final PsiElement parent = ParenthesesUtils.getParentSkipParentheses(expression); + if (parent instanceof PsiPolyadicExpression) { + final PsiPolyadicExpression polyadicExpression = (PsiPolyadicExpression)parent; + final PsiType type = polyadicExpression.getType(); + if (!TypeUtils.typeEquals(CommonClassNames.JAVA_LANG_STRING, type)) { + return true; + } + final PsiExpression[] operands = polyadicExpression.getOperands(); + int index = -1; + for (int i = 0, length = operands.length; i < length; i++) { + final PsiExpression operand = operands[i]; + if (expression.equals(operand)) { + index = i; + } + } + if (index > 0) { + if (!TypeUtils.typeEquals(CommonClassNames.JAVA_LANG_STRING, operands[index - 1].getType())) { + return true; + } + } else if (operands.length > 1) { + if (!TypeUtils.typeEquals(CommonClassNames.JAVA_LANG_STRING, operands[index + 1].getType())) { + return true; + } + } else { + return true; + } + } else if (parent instanceof PsiExpressionList) { + final PsiExpressionList expressionList = (PsiExpressionList)parent; + final PsiElement grandParent = expressionList.getParent(); + if (!(grandParent instanceof PsiMethodCallExpression)) { + return true; + } + final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)grandParent; + final PsiReferenceExpression methodExpression1 = methodCallExpression.getMethodExpression(); + final String name = methodExpression1.getReferenceName(); + final PsiExpression[] expressions = expressionList.getExpressions(); + if ("insert".equals(name)) { + if (expressions.length < 2 || !expression.equals(ParenthesesUtils.stripParentheses(expressions[1]))) { + return true; + } + if (!isCallToMethodIn(methodCallExpression, "java.lang.StringBuilder", "java.lang.StringBuffer")) { + return true; + } + + } else if ("append".equals(name)) { + if (expressions.length < 1 || !expression.equals(ParenthesesUtils.stripParentheses(expressions[0]))) { + return true; + } + if (!isCallToMethodIn(methodCallExpression, "java.lang.StringBuilder", "java.lang.StringBuffer")) { + return true; + } + } else if ("print".equals(name) || "println".equals(name)) { + if (!isCallToMethodIn(methodCallExpression, "java.io.PrintStream", "java.io.PrintWriter")) { + return true; + } + } + } else { + return true; + } + return false; + } + + private boolean isCallToMethodIn(PsiMethodCallExpression methodCallExpression, String... classNames) { + final PsiMethod method = methodCallExpression.resolveMethod(); + if (method == null) { + return false; + } + final PsiClass containingClass = method.getContainingClass(); + if (containingClass == null) { + return false; + } + final String qualifiedName = containingClass.getQualifiedName(); + for (String className : classNames) { + if (className.equals(qualifiedName)) { + return true; + } + } + return false; + } + } +} diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryToStringCall.html b/plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryToStringCall.html new file mode 100644 index 000000000000..69cfb6134430 --- /dev/null +++ b/plugins/InspectionGadgets/src/inspectionDescriptions/UnnecessaryToStringCall.html @@ -0,0 +1,13 @@ + + +Reports on any calls to .toString() used in string concatenations and as arguments to the +print and println methods of java.io.PrintWriter and java.io.PrintStream. The conversion +to string will be handled by the underlying library methods without an explicit call to .toString(). +

+Note that without the .toString() the expression will have different semantics (the string "null" will be used instead of + throwing a NullPointerException). + +

+Powered by InspectionGadgets + + \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/UnnecessaryToString.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/UnnecessaryToString.java new file mode 100644 index 000000000000..a77660ab714a --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/UnnecessaryToString.java @@ -0,0 +1,30 @@ +package com.siyeh.igtest.style.unnecessary_tostring; + +public class UnnecessaryToString { + + String foo(Object o) { + return "star" + o.toString(); + } + + String bar() { + char[] cs = {'!'}; + return "wars" + cs.toString(); + } + + void fizzz(Object o) { + boolean c = true; + System.out.println(o.toString() + c); + } + + void polyadic(Object s) { + s = "abc" + s.toString() + "efg"; + } + + void printStream(Object o) { + System.out.print(o.toString()); + } + + void builder(StringBuilder builder, Object o) { + builder.append(o.toString()); + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/expected.xml new file mode 100644 index 000000000000..9aea4d234a81 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_tostring/expected.xml @@ -0,0 +1,32 @@ + + + + + UnnecessaryToString.java + 6 + Unnecessary call to '.toString()' + Unnecessary <code>toString()</code> call #loc + + + + UnnecessaryToString.java + 20 + Unnecessary call to '.toString()' + Unnecessary <code>toString()</code> call #loc + + + + UnnecessaryToString.java + 24 + Unnecessary call to '.toString()' + Unnecessary <code>toString()</code> call #loc + + + + UnnecessaryToString.java + 28 + Unnecessary call to '.toString()' + Unnecessary <code>toString()</code> call #loc + + + \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessaryToStringCallInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessaryToStringCallInspectionTest.java new file mode 100644 index 000000000000..797b4273106d --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessaryToStringCallInspectionTest.java @@ -0,0 +1,10 @@ +package com.siyeh.ig.style; + +import com.siyeh.ig.IGInspectionTestCase; + +public class UnnecessaryToStringCallInspectionTest extends IGInspectionTestCase { + + public void test() throws Exception { + doTest("com/siyeh/igtest/style/unnecessary_tostring", new UnnecessaryToStringCallInspection()); + } +} \ No newline at end of file From 186fe4229ccf092f4d6b5d22146c03df9e03dac1 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 24 Apr 2013 16:32:00 +0200 Subject: [PATCH 32/56] IDEA-106008 ('convert variable argument parameter to array' action generates uncompilable code in case of parametrized vararg) --- .../ig/jdk/VarargParameterInspection.java | 88 ++++++++----------- .../vararg_parameter/GenericType.after.java | 11 +++ .../jdk/vararg_parameter/GenericType.java | 12 +++ .../ig/fixes/jdk/VarargParameterFixTest.java | 18 ++++ 4 files changed, 79 insertions(+), 50 deletions(-) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.after.java create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.java create mode 100644 plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/jdk/VarargParameterFixTest.java diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/VarargParameterInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/VarargParameterInspection.java index f011d6dd84c2..f93166cfd2b3 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/VarargParameterInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/jdk/VarargParameterInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2011 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2013 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,13 +15,13 @@ */ package com.siyeh.ig.jdk; +import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.search.searches.ReferencesSearch; -import com.intellij.util.IncorrectOperationException; import com.intellij.util.Query; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; @@ -44,15 +44,13 @@ public class VarargParameterInspection extends BaseInspection { @Override @NotNull public String getDisplayName() { - return InspectionGadgetsBundle.message( - "variable.argument.method.display.name"); + return InspectionGadgetsBundle.message("variable.argument.method.display.name"); } @Override @NotNull public String buildErrorString(Object... infos) { - return InspectionGadgetsBundle.message( - "variable.argument.method.problem.descriptor"); + return InspectionGadgetsBundle.message("variable.argument.method.problem.descriptor"); } @Override @@ -65,27 +63,29 @@ public class VarargParameterInspection extends BaseInspection { @NotNull public String getName() { - return InspectionGadgetsBundle.message( - "variable.argument.method.quickfix"); + return InspectionGadgetsBundle.message("variable.argument.method.quickfix"); } @Override - protected void doFix(Project project, ProblemDescriptor descriptor) - throws IncorrectOperationException { + protected void doFix(Project project, ProblemDescriptor descriptor) { final PsiElement element = descriptor.getPsiElement(); final PsiMethod method = (PsiMethod)element.getParent(); final PsiParameterList parameterList = method.getParameterList(); final PsiParameter[] parameters = parameterList.getParameters(); - final PsiParameter lastParameter = - parameters[parameters.length - 1]; + final PsiParameter lastParameter = parameters[parameters.length - 1]; if (!lastParameter.isVarArgs()) { return; } - final PsiEllipsisType type = - (PsiEllipsisType)lastParameter.getType(); + final PsiEllipsisType type = (PsiEllipsisType)lastParameter.getType(); final Query query = ReferencesSearch.search(method); final PsiType componentType = type.getComponentType(); - final String typeText = componentType.getCanonicalText(); + final String typeText; + if (componentType instanceof PsiClassType) { + final PsiClassType classType = (PsiClassType)componentType; + typeText = classType.rawType().getCanonicalText(); + } else { + typeText = componentType.getCanonicalText(); + } final Collection references = query.findAll(); for (PsiReference reference : references) { modifyCalls(reference, typeText, parameters.length - 1); @@ -93,59 +93,48 @@ public class VarargParameterInspection extends BaseInspection { final PsiType arrayType = type.toArrayType(); final PsiManager psiManager = lastParameter.getManager(); final PsiElementFactory factory = JavaPsiFacade.getInstance(psiManager.getProject()).getElementFactory(); - final PsiTypeElement newTypeElement = - factory.createTypeElement(arrayType); - final PsiTypeElement typeElement = - lastParameter.getTypeElement(); + final PsiTypeElement newTypeElement = factory.createTypeElement(arrayType); + final PsiTypeElement typeElement = lastParameter.getTypeElement(); + if (typeElement == null) { + return; + } + final PsiAnnotation annotation = AnnotationUtil.findAnnotation(method, "java.lang.SafeVarargs"); + if (annotation != null) { + annotation.delete(); + } typeElement.replace(newTypeElement); } - public static void modifyCalls(PsiReference reference, - String arrayTypeText, - int indexOfFirstVarargArgument) - throws IncorrectOperationException { - final PsiReferenceExpression referenceExpression = - (PsiReferenceExpression)reference.getElement(); - final PsiMethodCallExpression methodCallExpression = - (PsiMethodCallExpression)referenceExpression.getParent(); - final PsiExpressionList argumentList = - methodCallExpression.getArgumentList(); + public static void modifyCalls(PsiReference reference, String arrayTypeText, int indexOfFirstVarargArgument) { + final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)reference.getElement(); + final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)referenceExpression.getParent(); + final PsiExpressionList argumentList = methodCallExpression.getArgumentList(); final PsiExpression[] arguments = argumentList.getExpressions(); @NonNls final StringBuilder builder = new StringBuilder("new "); builder.append(arrayTypeText); builder.append("[]{"); if (arguments.length > indexOfFirstVarargArgument) { - final PsiExpression firstArgument = - arguments[indexOfFirstVarargArgument]; + final PsiExpression firstArgument = arguments[indexOfFirstVarargArgument]; final String firstArgumentText = firstArgument.getText(); builder.append(firstArgumentText); - for (int i = indexOfFirstVarargArgument + 1; - i < arguments.length; i++) { - builder.append(','); - builder.append(arguments[i].getText()); + for (int i = indexOfFirstVarargArgument + 1; i < arguments.length; i++) { + builder.append(',').append(arguments[i].getText()); } } builder.append('}'); final Project project = referenceExpression.getProject(); - final PsiElementFactory factory = - JavaPsiFacade.getElementFactory(project); - final PsiExpression arrayExpression = - factory.createExpressionFromText(builder.toString(), - referenceExpression); + final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project); + final PsiExpression arrayExpression = factory.createExpressionFromText(builder.toString(), referenceExpression); if (arguments.length > indexOfFirstVarargArgument) { - final PsiExpression firstArgument = - arguments[indexOfFirstVarargArgument]; - argumentList.deleteChildRange(firstArgument, - arguments[arguments.length - 1]); + final PsiExpression firstArgument = arguments[indexOfFirstVarargArgument]; + argumentList.deleteChildRange(firstArgument, arguments[arguments.length - 1]); argumentList.add(arrayExpression); } else { argumentList.add(arrayExpression); } - final CodeStyleManager codeStyleManager = - CodeStyleManager.getInstance(project); - final JavaCodeStyleManager javaCodeStyleManager = - JavaCodeStyleManager.getInstance(project); + final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(project); + final JavaCodeStyleManager javaCodeStyleManager = JavaCodeStyleManager.getInstance(project); javaCodeStyleManager.shortenClassReferences(argumentList); codeStyleManager.reformat(argumentList); } @@ -165,8 +154,7 @@ public class VarargParameterInspection extends BaseInspection { return; } final PsiParameter[] parameters = parameterList.getParameters(); - final PsiParameter lastParameter = - parameters[parameters.length - 1]; + final PsiParameter lastParameter = parameters[parameters.length - 1]; if (lastParameter.isVarArgs()) { registerMethodError(method); } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.after.java new file mode 100644 index 000000000000..7c6d0d34ed4d --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.after.java @@ -0,0 +1,11 @@ +package com.siyeh.igfixes.jdk.vararg_parameter; + +@SuppressWarnings("UnusedDeclaration") +public class GenericType { + final void addClasses(Class[] classes) { + } + + void test() { + addClasses(new Class[]{Number.class, Byte.class}); + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.java new file mode 100644 index 000000000000..595bf0032e2b --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/jdk/vararg_parameter/GenericType.java @@ -0,0 +1,12 @@ +package com.siyeh.igfixes.jdk.vararg_parameter; + +@SuppressWarnings("UnusedDeclaration") +public class GenericType { + @java.lang.SafeVarargs + final void addClasses(Class... classes) { + } + + void test() { + addClasses(Number.class, Byte.class); + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/jdk/VarargParameterFixTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/jdk/VarargParameterFixTest.java new file mode 100644 index 000000000000..f14e395ff243 --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/jdk/VarargParameterFixTest.java @@ -0,0 +1,18 @@ +package com.siyeh.ig.fixes.jdk; + +import com.siyeh.InspectionGadgetsBundle; +import com.siyeh.ig.IGQuickFixesTestCase; +import com.siyeh.ig.jdk.VarargParameterInspection; + +public class VarargParameterFixTest extends IGQuickFixesTestCase { + + @Override + protected void setUp() throws Exception { + super.setUp(); + myFixture.enableInspections(new VarargParameterInspection()); + myRelativePath = "jdk/vararg_parameter"; + myDefaultHint = InspectionGadgetsBundle.message("variable.argument.method.quickfix"); + } + + public void testGenericType() { doTest(); } +} \ No newline at end of file From 0fd0dce5804cecbf18983a5e8fae9dd80f3fd4ab Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 24 Apr 2013 17:33:41 +0400 Subject: [PATCH 33/56] at the end of compilation additionally refresh output roots for generated sources, if they are located under module's source content. Need this to update errors highlighting in IDEA, if annotation processors generated something --- .../intellij/compiler/impl/CompileDriver.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java index d9f3aac34d4f..f6bc2f473598 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java @@ -854,15 +854,37 @@ public class CompileDriver { if (refreshOutputRoots) { // refresh on output roots is required in order for the order enumerator to see all roots via VFS final Set outputs = new HashSet(); - for (final String path : CompilerPathsEx.getOutputPaths(ModuleManager.getInstance(myProject).getModules())) { + final Module[] affectedModules = compileContext.getCompileScope().getAffectedModules(); + for (final String path : CompilerPathsEx.getOutputPaths(affectedModules)) { outputs.add(new File(path)); } + final LocalFileSystem lfs = LocalFileSystem.getInstance(); if (!outputs.isEmpty()) { final ProgressIndicator indicator = compileContext.getProgressIndicator(); indicator.setText("Synchronizing output directories..."); - LocalFileSystem.getInstance().refreshIoFiles(outputs, false, false, null); + lfs.refreshIoFiles(outputs, false, false, null); indicator.setText(""); } + if (compileContext.isAnnotationProcessorsEnabled()) { + final Set genSourceRoots = new HashSet(); + final CompilerConfiguration config = CompilerConfiguration.getInstance(myProject); + for (Module module : affectedModules) { + if (config.getAnnotationProcessingConfiguration(module).isEnabled()) { + final String path = CompilerPaths.getAnnotationProcessorsGenerationPath(module); + if (path != null) { + final File genPath = new File(path); + final VirtualFile vFile = lfs.findFileByIoFile(genPath); + if (vFile != null && ModuleRootManager.getInstance(module).getFileIndex().isInSourceContent(vFile)) { + genSourceRoots.add(vFile); + } + } + } + } + if (!genSourceRoots.isEmpty()) { + // refresh generates source roots asynchronously; needed for error highlighting update + lfs.refreshFiles(genSourceRoots, true, true, null); + } + } } SwingUtilities.invokeLater(new Runnable() { public void run() { From 4d8cc2e719c5e3f1930ddd9b43727fecf7b2eecf Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 24 Apr 2013 18:12:39 +0400 Subject: [PATCH 34/56] simplify checks --- .../com/intellij/compiler/impl/CompileDriver.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java index f6bc2f473598..e64ff40f5181 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java @@ -866,27 +866,23 @@ public class CompileDriver { indicator.setText(""); } if (compileContext.isAnnotationProcessorsEnabled()) { - final Set genSourceRoots = new HashSet(); + final Set genSourceRoots = new THashSet(FileUtil.FILE_HASHING_STRATEGY); final CompilerConfiguration config = CompilerConfiguration.getInstance(myProject); for (Module module : affectedModules) { if (config.getAnnotationProcessingConfiguration(module).isEnabled()) { final String path = CompilerPaths.getAnnotationProcessorsGenerationPath(module); if (path != null) { - final File genPath = new File(path); - final VirtualFile vFile = lfs.findFileByIoFile(genPath); - if (vFile != null && ModuleRootManager.getInstance(module).getFileIndex().isInSourceContent(vFile)) { - genSourceRoots.add(vFile); - } + genSourceRoots.add(new File(path)); } } } if (!genSourceRoots.isEmpty()) { // refresh generates source roots asynchronously; needed for error highlighting update - lfs.refreshFiles(genSourceRoots, true, true, null); + lfs.refreshIoFiles(genSourceRoots, true, true, null); } } } - SwingUtilities.invokeLater(new Runnable() { + SwingUtilities.invokeLater(new Runnable() { public void run() { int errorCount = 0; int warningCount = 0; From 20c2133fc1f9e2de26b5140cf6d6ad6dc42bd944 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 24 Apr 2013 18:27:46 +0400 Subject: [PATCH 35/56] cleanup --- .../openapi/fileEditor/impl/HistoryEntry.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/HistoryEntry.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/HistoryEntry.java index d83db06c8587..6edf3eaff1a7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/HistoryEntry.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/HistoryEntry.java @@ -25,14 +25,18 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.util.containers.HashMap; import org.jdom.Element; -import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Map; final class HistoryEntry{ - @NonNls public static final String TAG = "entry"; + static final String TAG = "entry"; + private static final String FILE_ATTR = "file"; + private static final String PROVIDER_ELEMENT = "provider"; + private static final String EDITOR_TYPE_ID_ATTR = "editor-type-id"; + private static final String SELECTED_ATTR_VALUE = "selected"; + private static final String STATE_ELEMENT = "state"; public final VirtualFile myFile; /** @@ -40,11 +44,6 @@ final class HistoryEntry{ */ public FileEditorProvider mySelectedProvider; private final HashMap myProvider2State; - @NonNls public static final String FILE_ATTR = "file"; - @NonNls public static final String PROVIDER_ATTR = "provider"; - @NonNls public static final String EDITOR_TYPE_ID_ATTR = "editor-type-id"; - @NonNls public static final String SELECTED_ATTR_VALUE = "selected"; - @NonNls public static final String STATE_ELEMENT = "state"; public HistoryEntry(@NotNull VirtualFile file, @NotNull FileEditorProvider[] providers, @NotNull FileEditorState[] states, @NotNull FileEditorProvider selectedProvider){ myFile = file; @@ -78,7 +77,7 @@ final class HistoryEntry{ FileDocumentManager.getInstance().getDocument(myFile); } - List providers = e.getChildren(PROVIDER_ATTR); + List providers = e.getChildren(PROVIDER_ELEMENT); for (final Object provider1 : providers) { Element _e = (Element)provider1; @@ -121,7 +120,7 @@ final class HistoryEntry{ for (final Map.Entry entry : myProvider2State.entrySet()) { FileEditorProvider provider = entry.getKey(); - Element providerElement = new Element(PROVIDER_ATTR); + Element providerElement = new Element(PROVIDER_ELEMENT); if (provider.equals(mySelectedProvider)) { providerElement.setAttribute(SELECTED_ATTR_VALUE, Boolean.TRUE.toString()); } From c58368d1484be42f3412cfc15bfab25b660d667b Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 24 Apr 2013 18:58:19 +0400 Subject: [PATCH 36/56] restoring selected editor on project reopening --- .../impl/FileEditorManagerImpl.java | 2 +- .../fileEditor/FileEditorManagerTest.java | 164 +++++++++++++----- 2 files changed, 125 insertions(+), 41 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java index 3b4bed5808aa..00bdcf158897 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java @@ -847,7 +847,7 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Projec } // Restore selected editor - final FileEditorProvider selectedProvider = getSelectedFileEditorProvider(editorHistoryManager, file); + final FileEditorProvider selectedProvider = entry == null ? getSelectedFileEditorProvider(editorHistoryManager, file) : entry.mySelectedProvider; if (selectedProvider != null) { final FileEditor[] _editors = newSelectedComposite.getEditors(); final FileEditorProvider[] _providers = newSelectedComposite.getProviders(); diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java index c8f4c78a9ba1..58e489d06e44 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java @@ -16,11 +16,14 @@ package com.intellij.openapi.fileEditor; import com.intellij.ide.ui.UISettings; +import com.intellij.mock.Mock; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ExpandMacroToPathMap; import com.intellij.openapi.fileEditor.impl.EditorWithProviderComposite; import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl; +import com.intellij.openapi.project.Project; import com.intellij.openapi.util.JDOMUtil; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.PlatformTestCase; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase; @@ -30,8 +33,10 @@ import com.intellij.util.containers.ContainerUtil; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; +import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.model.serialization.PathMacroUtil; +import javax.swing.*; import java.io.File; import java.io.IOException; import java.util.Arrays; @@ -46,7 +51,6 @@ import java.util.concurrent.Future; public class FileEditorManagerTest extends LightPlatformCodeInsightFixtureTestCase { private FileEditorManagerImpl myManager; - @SuppressWarnings("JUnitTestCaseWithNonTrivialConstructors") public FileEditorManagerTest() { PlatformTestCase.initPlatformLangPrefix(); @@ -54,7 +58,7 @@ public class FileEditorManagerTest extends LightPlatformCodeInsightFixtureTestCa public void testTabOrder() throws Exception { - openFiles(); + openFiles(STRING); assertOpenFiles("1.txt", "foo.xml", "2.txt", "3.txt"); } @@ -63,7 +67,7 @@ public class FileEditorManagerTest extends LightPlatformCodeInsightFixtureTestCa int limit = UISettings.getInstance().EDITOR_TAB_LIMIT; try { UISettings.getInstance().EDITOR_TAB_LIMIT = 2; - openFiles(); + openFiles(STRING); // note that foo.xml is pinned assertOpenFiles("foo.xml", "3.txt"); } @@ -72,6 +76,65 @@ public class FileEditorManagerTest extends LightPlatformCodeInsightFixtureTestCa } } + public void testOpenRecentEditorTab() throws Exception { + PlatformTestUtil.registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new MyFileEditorProvider(), getTestRootDisposable()); + + openFiles(" \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n"); + FileEditor[] selectedEditors = myManager.getSelectedEditors(); + assertEquals(1, selectedEditors.length); + assertEquals("mockEditor", selectedEditors[0].getName()); + } + + private static final String STRING = "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n"; + private void assertOpenFiles(String... fileNames) { EditorWithProviderComposite[] files = myManager.getSplitters().getEditorsComposites(); List names = ContainerUtil.map(files, new Function() { @@ -83,43 +146,8 @@ public class FileEditorManagerTest extends LightPlatformCodeInsightFixtureTestCa assertEquals(Arrays.asList(fileNames), names); } - private void openFiles() throws IOException, JDOMException, InterruptedException, ExecutionException { - Document document = JDOMUtil.loadDocument(" \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n"); + private void openFiles(String s) throws IOException, JDOMException, InterruptedException, ExecutionException { + Document document = JDOMUtil.loadDocument(s); Element rootElement = document.getRootElement(); ExpandMacroToPathMap map = new ExpandMacroToPathMap(); map.addMacroExpand(PathMacroUtil.PROJECT_DIR_MACRO_NAME, getTestDataPath()); @@ -156,4 +184,60 @@ public class FileEditorManagerTest extends LightPlatformCodeInsightFixtureTestCa protected boolean isWriteActionRequired() { return false; } + + private static class MyFileEditorProvider implements FileEditorProvider { + @NotNull + @Override + public String getEditorTypeId() { + return "mock"; + } + + @NotNull + @Override + public FileEditorState readState(@NotNull Element sourceElement, @NotNull Project project, @NotNull VirtualFile file) { + return FileEditorState.INSTANCE; + } + + @Override + public void writeState(@NotNull FileEditorState state, @NotNull Project project, @NotNull Element targetElement) { + } + + @Override + public boolean accept(@NotNull Project project, @NotNull VirtualFile file) { + return true; + } + + @NotNull + @Override + public FileEditor createEditor(@NotNull Project project, @NotNull VirtualFile file) { + return new Mock.MyFileEditor() { + @Override + public boolean isValid() { + return true; + } + + @NotNull + @Override + public JComponent getComponent() { + return new JLabel(); + } + + @NotNull + @Override + public String getName() { + return "mockEditor"; + } + }; + } + + @Override + public void disposeEditor(@NotNull FileEditor editor) { + } + + @NotNull + @Override + public FileEditorPolicy getPolicy() { + return FileEditorPolicy.PLACE_AFTER_DEFAULT_EDITOR; + } + } } From c75897f5202db2958ef8c8d0a9354d8c6e1d6f45 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 24 Apr 2013 16:08:37 +0200 Subject: [PATCH 37/56] Test cleanup --- .../daemon/LightAdvHighlightingJdk6Test.java | 15 +++++---------- .../daemon/LightAdvHighlightingTest.java | 4 ++-- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java index 0e400c19cb0e..c31cce339a0b 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java @@ -28,24 +28,19 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; /** - * This class is for "lightweight" tests only, i.e. those which can run inside default light project set up - * For "heavyweight" tests use AdvHighlightingTest + * This class is for "lightweight" tests only, i.e. those which can run inside default light project set up. + * For "heavyweight" tests use AdvHighlightingTest. */ public class LightAdvHighlightingJdk6Test extends LightDaemonAnalyzerTestCase { @NonNls static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/advHighlighting6"; private void doTest(boolean checkWarnings, boolean checkInfos, Class... classes) { - setLanguageLevel(LanguageLevel.JDK_1_6); + setLanguageLevel(LanguageLevel.JDK_1_6); ((JavaVersionServiceImpl)JavaVersionService.getInstance()).setTestVersion(JavaSdkVersion.JDK_1_6, myTestRootDisposable); enableInspectionTools(classes); doTest(BASE_PATH + "/" + getTestName(false) + ".java", checkWarnings, checkInfos); } - private void doTest(boolean checkWarnings, boolean checkWeakWarnings, boolean checkInfos, Class... classes) { - enableInspectionTools(classes); - doTest(BASE_PATH + "/" + getTestName(false) + ".java", checkWarnings, checkWeakWarnings, checkInfos); - } - @NotNull @Override protected LocalInspectionTool[] configureLocalInspectionTools() { @@ -57,6 +52,6 @@ public class LightAdvHighlightingJdk6Test extends LightDaemonAnalyzerTestCase { }; } - public void testJavacQuirks() throws Exception { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(true, false); } - public void testMethodReturnTypeSubstitutability() throws Exception { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(true, false); } + public void testJavacQuirks() { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(true, false); } + public void testMethodReturnTypeSubstitutability() { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(true, false); } } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java index f68f93c16ee6..b1217ddec696 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -241,7 +241,7 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase { }; point.registerExtension(extension); - + try { UnusedDeclarationInspection deadCodeInspection = new UnusedDeclarationInspection(); enableInspectionTool(deadCodeInspection); From 44e359d268f509b016a2b6dc23794e3fc2b42c6a Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 24 Apr 2013 17:00:15 +0200 Subject: [PATCH 38/56] IDEA-106119 (more rigorous check for "this" qualifier) --- .../codeInsight/daemon/impl/analysis/HighlightUtil.java | 6 +++--- .../advHighlighting/QualifiedThisSuper.java | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 7151855d7a4d..2098dd6bacaf 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -1357,9 +1357,9 @@ public class HighlightUtil extends HighlightUtilBase { } } - final PsiClass aClass; + PsiClass aClass; if (qualifier != null) { - final PsiElement resolved = qualifier.resolve(); + PsiElement resolved = qualifier.advancedResolve(true).getElement(); if (resolved != null && !(resolved instanceof PsiClass)) { String description = JavaErrorMessages.message("class.expected"); return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(qualifier).descriptionAndTooltip(description).create(); @@ -1393,7 +1393,7 @@ public class HighlightUtil extends HighlightUtilBase { } return null; } - + private static boolean isInsideDefaultMethod(PsiMethod method, PsiClass aClass) { while (method != null && method.getContainingClass() != aClass) { method = PsiTreeUtil.getParentOfType(method, PsiMethod.class, true); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/QualifiedThisSuper.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/QualifiedThisSuper.java index cba08cdf3f99..76336cd0090a 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/QualifiedThisSuper.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/QualifiedThisSuper.java @@ -15,3 +15,10 @@ class R { System.out.println(Z.super.toString()); } } + +class W { + static String some = ""; + static void m() { + synchronized (some.this) { } + } +} From bdf214f098e9e4e18da70c26264fa89537f6a4e0 Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Wed, 24 Apr 2013 19:09:58 +0400 Subject: [PATCH 39/56] WEB-7606 Settings are not saved in emmet plugin --- .../emmet/CssEditPrefixesListPanel.java | 12 ++++++---- .../options/emmet/EmmetConfigurable.java | 2 +- .../options/emmet/EmmetOptions.java | 22 +++++++++---------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java b/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java index 5cb55b2f0c43..765c00e4d051 100644 --- a/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java +++ b/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java @@ -28,6 +28,10 @@ import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import java.util.ArrayList; import java.util.List; +import java.util.Set; + +import static com.google.common.collect.Lists.newArrayList; +import static com.google.common.collect.Sets.newHashSet; /** * User: zolotov @@ -66,12 +70,12 @@ public class CssEditPrefixesListPanel { myPrefixesTableView.setEnabled(value); } - public void setState(List prefixInfos) { - myPrefixesModel.setItems(prefixInfos); + public void setState(Set prefixInfos) { + myPrefixesModel.setItems(newArrayList(prefixInfos)); } - public List getState() { - return myPrefixesModel.getItems(); + public Set getState() { + return newHashSet(myPrefixesModel.getItems()); } public JPanel createMainComponent() { diff --git a/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java b/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java index a702df6fde61..9dbfc55456fd 100644 --- a/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java +++ b/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java @@ -137,7 +137,7 @@ public class EmmetConfigurable implements SearchableConfigurable, Disposable, Co public void apply() throws ConfigurationException { EmmetOptions emmetOptions = EmmetOptions.getInstance(); emmetOptions.setEmmetEnabled(myEnableEmmetJBCheckBox.isSelected()); - emmetOptions.setEnableBemFilterByDefault(myEnableBEMFilterJBCheckBox.isSelected()); + emmetOptions.setBemFilterEnabledByDefault(myEnableBEMFilterJBCheckBox.isSelected()); emmetOptions.setEmmetExpandShortcut(getSelectedEmmetExpandShortcut()); emmetOptions.setAutoInsertCssPrefixedEnabled(myAutoInsertCssVendorJBCheckBox.isSelected()); emmetOptions.setFuzzySearchEnabled(myEnabledFuzzySearchJBCheckBox.isSelected()); diff --git a/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java b/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java index dd005841293c..614e17a736a7 100644 --- a/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java +++ b/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java @@ -15,6 +15,7 @@ */ package com.intellij.application.options.emmet; +import com.google.common.collect.Sets; import com.intellij.application.options.editor.WebEditorOptions; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.components.*; @@ -29,10 +30,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; -import java.util.List; +import java.util.Collection; import java.util.Map; +import java.util.Set; -import static com.google.common.collect.Lists.newLinkedList; import static com.google.common.collect.Maps.newHashMap; import static com.google.common.io.Resources.getResource; @@ -48,7 +49,7 @@ import static com.google.common.io.Resources.getResource; )} ) public class EmmetOptions implements PersistentStateComponent, ExportableComponent { - private boolean myEnableBemFilterByDefault = false; + private boolean myBemFilterEnabledByDefault = false; private boolean myEmmetEnabled = WebEditorOptions.getInstance().isZenCodingEnabled(); private int myEmmetExpandShortcut = WebEditorOptions.getInstance().getZenCodingExpandShortcut(); private boolean myFuzzySearchEnabled = true; @@ -56,7 +57,7 @@ public class EmmetOptions implements PersistentStateComponent, Exp @Nullable private Map prefixes = null; - public void setPrefixInfo(List prefixInfos) { + public void setPrefixInfo(Collection prefixInfos) { prefixes = newHashMap(); for (CssPrefixInfo state : prefixInfos) { prefixes.put(state.getPropertyName(), state.toIntegerValue()); @@ -67,8 +68,8 @@ public class EmmetOptions implements PersistentStateComponent, Exp return CssPrefixInfo.fromIntegerValue(propertyName, getPrefixes().get(propertyName)); } - public List getAllPrefixInfo() { - List result = newLinkedList(); + public Set getAllPrefixInfo() { + Set result = Sets.newHashSetWithExpectedSize(getPrefixes().size()); for (Map.Entry entry : getPrefixes().entrySet()) { result.add(CssPrefixInfo.fromIntegerValue(entry.getKey(), entry.getValue())); } @@ -76,11 +77,11 @@ public class EmmetOptions implements PersistentStateComponent, Exp } public boolean isBemFilterEnabledByDefault() { - return myEnableBemFilterByDefault; + return myBemFilterEnabledByDefault; } - public void setEnableBemFilterByDefault(boolean enableBemFilterByDefault) { - myEnableBemFilterByDefault = enableBemFilterByDefault; + public void setBemFilterEnabledByDefault(boolean enableBemFilterByDefault) { + myBemFilterEnabledByDefault = enableBemFilterByDefault; } public void setEmmetExpandShortcut(int emmetExpandShortcut) { @@ -141,7 +142,6 @@ public class EmmetOptions implements PersistentStateComponent, Exp return ServiceManager.getService(EmmetOptions.class); } - @SuppressWarnings("UnusedDeclaration") @NotNull public Map getPrefixes() { if (prefixes == null) { @@ -155,7 +155,7 @@ public class EmmetOptions implements PersistentStateComponent, Exp this.prefixes = prefixes; } - public static Map loadDefaultPrefixes() { + public Map loadDefaultPrefixes() { Map result = newHashMap(); try { Document document = JDOMUtil.loadDocument(getResource(EmmetOptions.class, "emmet_default_options.xml")); From c6d01e7502cc9643de98e735cad310458537b339 Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Wed, 24 Apr 2013 18:40:09 +0400 Subject: [PATCH 40/56] UI Inspector: NPE fix & "class name" title --- .../internal/inspector/UiInspectorAction.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java b/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java index 21b56711aeea..f94197480d06 100644 --- a/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java +++ b/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java @@ -197,9 +197,11 @@ public class UiInspectorAction extends ToggleAction implements DumbAware { } private void switchInfo(Component c) { - myInspectorTable = new InspectorTable(c); myWrapperPanel.removeAll(); - myWrapperPanel.add(myInspectorTable, BorderLayout.CENTER); + if (c != null) { + myInspectorTable = new InspectorTable(c); + myWrapperPanel.add(myInspectorTable, BorderLayout.CENTER); + } myWrapperPanel.revalidate(); myWrapperPanel.repaint(); } @@ -319,6 +321,10 @@ public class UiInspectorAction extends ToggleAction implements DumbAware { @Override public void valueChanged(TreeSelectionEvent e) { TreePath path = e.getNewLeadSelectionPath(); + if (path == null) { + onComponentChanged(null); + return; + } Object component = path.getLastPathComponent(); if (component instanceof ComponentNode) { Component c = ((ComponentNode)component).getOwnComponent(); @@ -411,12 +417,14 @@ public class UiInspectorAction extends ToggleAction implements DumbAware { } private static class InspectorTable extends JPanel { + private JLabel myTitleLabel; private InspectorTableModel myModel; private DimensionsComponent myDimensionComponent; private InspectorTable(@NotNull final Component component) { setLayout(new BorderLayout()); + myTitleLabel = new JLabel(component.getClass().getCanonicalName(), SwingConstants.CENTER); myModel = new InspectorTableModel(component); final StripeTable table = new StripeTable(myModel); @@ -433,6 +441,7 @@ public class UiInspectorAction extends ToggleAction implements DumbAware { table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); + add(myTitleLabel, BorderLayout.NORTH); add(new JBScrollPane(table), BorderLayout.CENTER); myDimensionComponent = new DimensionsComponent(component); add(myDimensionComponent, BorderLayout.SOUTH); From cf8050cdc5ee363cd0270f1bfe08fdaeaa2ae908 Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Wed, 24 Apr 2013 19:06:08 +0400 Subject: [PATCH 41/56] Fix ProjectImpl leak (after-review refactoring) --- .../debugger/ui/JavaDebuggerSupport.java | 16 ++++++++++++---- .../BreakpointsFavoriteListProvider.java | 10 +--------- .../breakpoints/XBreakpointPanelProvider.java | 12 ++++++++++-- .../breakpoints/ui/BreakpointPanelProvider.java | 5 +++-- .../tree/BreakpointMasterDetailPopupBuilder.java | 9 +++++---- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/JavaDebuggerSupport.java b/java/debugger/impl/src/com/intellij/debugger/ui/JavaDebuggerSupport.java index dc6cbd46e207..17f7c7d686ba 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/JavaDebuggerSupport.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/JavaDebuggerSupport.java @@ -21,6 +21,7 @@ import com.intellij.debugger.impl.DebuggerContextImpl; import com.intellij.debugger.settings.*; import com.intellij.debugger.ui.breakpoints.*; import com.intellij.ide.DataManager; +import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.PlatformDataKeys; @@ -31,16 +32,17 @@ import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Key; import com.intellij.util.containers.ContainerUtil; import com.intellij.xdebugger.AbstractDebuggerSession; -import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointItem; import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule; import com.intellij.xdebugger.impl.DebuggerSupport; import com.intellij.xdebugger.impl.actions.DebuggerActionHandler; import com.intellij.xdebugger.impl.actions.DebuggerToggleActionHandler; import com.intellij.xdebugger.impl.actions.EditBreakpointActionHandler; import com.intellij.xdebugger.impl.actions.MarkObjectActionHandler; +import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointItem; import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointPanelProvider; import com.intellij.xdebugger.impl.evaluate.quick.common.QuickEvaluateHandler; import com.intellij.xdebugger.impl.settings.DebuggerSettingsPanelProvider; @@ -212,15 +214,21 @@ public class JavaDebuggerSupport extends DebuggerSupport { } @Override - public void addListener(final BreakpointsListener listener, Project project) { - BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(getCurrentProject()).getBreakpointManager(); + public void addListener(final BreakpointsListener listener, Project project, Disposable disposable) { + BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(project).getBreakpointManager(); final MyBreakpointManagerListener listener1 = new MyBreakpointManagerListener(listener, breakpointManager); breakpointManager.addBreakpointManagerListener(listener1); myListeners.add(listener1); + Disposer.register(disposable, new Disposable() { + @Override + public void dispose() { + removeListener(listener); + } + }); } @Override - public void removeListener(BreakpointsListener listener) { + protected void removeListener(BreakpointsListener listener) { for (MyBreakpointManagerListener managerListener : myListeners) { if (managerListener.myListener == listener) { BreakpointManager manager = managerListener.myBreakpointManager; diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java index 6cf8a8c03024..086b96dd403c 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java @@ -20,9 +20,7 @@ import com.intellij.ide.favoritesTreeView.AbstractFavoritesListProvider; import com.intellij.ide.favoritesTreeView.FavoritesManager; import com.intellij.ide.projectView.PresentationData; import com.intellij.ide.util.treeView.AbstractTreeNode; -import com.intellij.openapi.Disposable; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Disposer; import com.intellij.pom.Navigatable; import com.intellij.ui.CheckedTreeNode; import com.intellij.ui.ColoredTreeCellRenderer; @@ -68,14 +66,8 @@ public class BreakpointsFavoriteListProvider extends AbstractFavoritesListProvid super(project, "Breakpoints"); myBreakpointPanelProviders = XBreakpointUtil.collectPanelProviders(); for (final BreakpointPanelProvider provider : myBreakpointPanelProviders) { - provider.addListener(this, myProject); + provider.addListener(this, myProject, myProject); provider.createBreakpointsGroupingRules(myRulesAvailable); - Disposer.register(project, new Disposable() { - @Override - public void dispose() { - provider.removeListener(BreakpointsFavoriteListProvider.this); - } - }); } myTreeController = new BreakpointItemsTreeController(myRulesAvailable); myTree = new BreakpointsSimpleTree(myProject, myTreeController); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointPanelProvider.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointPanelProvider.java index c3f153f23063..3f080772e758 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointPanelProvider.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointPanelProvider.java @@ -15,6 +15,7 @@ */ package com.intellij.xdebugger.impl.breakpoints; +import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.editor.Document; @@ -22,6 +23,7 @@ import com.intellij.openapi.editor.markup.GutterIconRenderer; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.ContainerUtil; import com.intellij.xdebugger.XDebuggerManager; @@ -53,14 +55,20 @@ public class XBreakpointPanelProvider extends BreakpointPanelProvider { void breakpointsChanged(); } - public abstract void addListener(BreakpointsListener listener, Project project); + public abstract void addListener(BreakpointsListener listener, Project project, Disposable disposable); - public abstract void removeListener(BreakpointsListener listener); + protected abstract void removeListener(BreakpointsListener listener); public abstract int getPriority(); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java index 939dc2a2595a..47516e84c979 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java @@ -15,6 +15,7 @@ */ package com.intellij.xdebugger.impl.breakpoints.ui.tree; +import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.CheckboxAction; import com.intellij.openapi.project.Project; @@ -23,6 +24,7 @@ import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.ui.popup.JBPopupListener; import com.intellij.openapi.ui.popup.LightweightWindowEvent; import com.intellij.openapi.util.Condition; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.SystemInfo; import com.intellij.ui.popup.util.DetailView; import com.intellij.ui.popup.util.DetailViewImpl; @@ -177,8 +179,9 @@ public class BreakpointMasterDetailPopupBuilder { } }; + final Disposable listenerDisposable = Disposer.newDisposable(); for (BreakpointPanelProvider provider : myBreakpointsPanelProviders) { - provider.addListener(listener, myProject); + provider.addListener(listener, myProject, listenerDisposable); } final MasterDetailPopupBuilder.Delegate delegate = new MasterDetailPopupBuilder.Delegate() { @@ -247,9 +250,7 @@ public class BreakpointMasterDetailPopupBuilder { @Override public void onClosed(LightweightWindowEvent event) { - for (BreakpointPanelProvider provider : myBreakpointsPanelProviders) { - provider.removeListener(listener); - } + Disposer.dispose(listenerDisposable); saveBreakpointsDialogState(); } }); From e242282deb41c328afbe971fc167e47ddfb26df9 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 24 Apr 2013 17:32:28 +0200 Subject: [PATCH 42/56] =?UTF-8?q?update=20gson=20=E2=80=94=202.2.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/libraries/gson.xml | 4 ++-- lib/gson-2.2.1.jar | Bin 189617 -> 0 bytes lib/gson-2.2.3.jar | Bin 0 -> 193968 bytes lib/src/gson-2.2.1-sources.jar | Bin 126410 -> 0 bytes lib/src/gson-2.2.3-sources.jar | Bin 0 -> 129994 bytes 5 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 lib/gson-2.2.1.jar create mode 100644 lib/gson-2.2.3.jar delete mode 100644 lib/src/gson-2.2.1-sources.jar create mode 100644 lib/src/gson-2.2.3-sources.jar diff --git a/.idea/libraries/gson.xml b/.idea/libraries/gson.xml index 67778e62935d..beaa3d762dc6 100644 --- a/.idea/libraries/gson.xml +++ b/.idea/libraries/gson.xml @@ -1,11 +1,11 @@ - + - + \ No newline at end of file diff --git a/lib/gson-2.2.1.jar b/lib/gson-2.2.1.jar deleted file mode 100644 index 93ac6d70b3ee93be63f2f51b34c8c8bac0777292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189617 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�=__Dc#<0$o3+3&@4s(e~-SaPwHxmI4 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

8__

Nu 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 diff --git a/lib/gson-2.2.3.jar b/lib/gson-2.2.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4e18be67924adf92fa0b91979a1d8921df6b52a GIT binary patch literal 193968 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%0A|m#BFHla4h&l@_#)Mb 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 z zdg&)$9yEB8YxX;~4KFP80OO~9y(2|Z!N8D3y#%(5dFCwxhbiokW3bi`$B3diL;MFY z4mY8)gq&!&GqGooh=mGy79r@HT^8ofxxp7*mg51u1m*NV(ccSz&J!I^h*~do^^JfSJYos4FYz6d8Q_wYZO6VW^H*(HOV9FE`FkW|m?a8C1yUgwR}cVx1+^nhO@OyBw~CUoy% zg;4_4h3Wya z!|hd2C3GoL!n#D6zx!0JEiiZ>Z`LOq zN{4Zjd@%^s5<2mHt2S~%az?&&tO*rLud=|#7QF%y`@lH2ETEvbISHG|=vkqnjFIFb z4m_z)g@=$pOlCtk57kS2gqX7Nf`LW)`kC-aeTGE3@RqP~Gp&4Pgam~YQmed3ktEUr zYJ{lLr6jccjBbL7-BD>?AShLr_{pLU_)LOCHF*LAE~>_%eJ2&H&L8o?6Avn+I7IN7 zXjsixY0@TK@LPtV;D%t|@#^b)M`kjIoW8#BUUkwX!`PTI4KU};bOLwAh&p1N7;?!S z*PowXc5_;^IL&F-3A!m=*fC?uM~EZ*Jc-x`>8D3&3&uwWhU;EAt((ZWN64jaWj>hq zI%>mMabZK{pF^pUF?Sg4(`&}_*flio*D9e)zUiu6%~@F?$dn@m3NFE}L=4{Rn

I zj#A8oA#G?C*|0^`N~`G}2{3sn>x9msg{LeM(@lyN8NO6GFvE{6 z5kEw)@V{;QQw+n~^xLl=o>9HK+P04V1u^@?DN<2P5<`Uz2xcGzk3r2mhM{f|c zH>G{dG1>kq!@MVX#2GMbWl=2gMiGhx)iM6nJpY@ca0E!}Lx>T^)KhiCk*6YAAEG(iRK-tO6KQ3X{~( zHd&HnCg#+=VZPMbbs~(4*CFE3cIzTA51c(gjcuw7OXOXD49s_bZ~JT8lVL-C4Jr& zlKoH@y`y|}ItwI`B_|xT6Tzku4}pS{$)f&Isu+bXZx$IJCDL z6WF`o zL1qB6US81lpKS7J0W20Nvx6=ai+sUT_TNuAEMSL)H_~-RNZh!g7;?tE3n5%R5n{c6 z-R3Bi52p1U)JHf?7LB~n%$d!@f<*Mg-4V%)#N0ApR@ouTFN7xQx~vd!;-H{z&EVkscib4PnJ-|;8|R8YpL zN+PPk>jGvkmD2&m4o9rm1K$LR_H(lSyR`y5m*e^~D+<4E!Vj|pKe?-Joa>xl*<+4xyDadWCbJ*&(hS0E@uOknmPGq1D^ z;%7#y%lL7UpIN5t$CJALQrF@pZETsKvzFHV#QdXYDhr!5qx znb2*x0ot4s994=+UVr9UJ#AL*CM7#n+8|Y0wvuL6P;_Kn+VHZMOD85mS9nJdMmho1~VL zq9)s&mri^wDZMFL*w75z)E)2Dc*#+rnmyc!X1v3~B{#Ta(e$a;Uye=o_PZ$e!Hqm!+QZfc&QU1vP7jgR@q2ohr!}yR)3#()dw9JpdzN6Q%#l~|&(D$rCc8^{Qu)5^lI2?rEv{A0m?K!qbVo+2 ztMJm#rzWSCw7R?DOhjS5=6VufIo zQq;<%kPD^jdO6J?tQ2o673_Kii;;q6bi5O+%t#z}3K@=Kreob=Ao$s?uoQJHwJk?U z_3)8Y7t0BQYITfBzI@VSIn&}|)yk9Q3(V|-a{ALsd?{@KeAAh*Z_UMjInmTt3l$es_z4s9bOr5iv_84v^S5N>BhbBg{9!D}?d-6=Vnw`J;Mj+{= z8Ve;mQhxwX*sQ;!g8FL%C)}TaUb#g$UDE-tWJ6xcJby37@iP)*1N!e6jb`H2ZCli~ zNSQPHCZRkCJNwXfT_kGF2+3-A4hypyvW46Q@39(7p`d3Hxr|8`Pr^AgPGp-B7ocNY zje@IzmPx%QiZ){bNW(U!;6ITOz>^fA$q-^G+~c}q3F1W#Uy)w; zqhym!sJf!J0(t7#;l@2H9J{i+V&b#YFu{XBLkr`gkS0s*KJqoBoS|J0t0vGp%P((A z&am=-+|i%AJ|(URFWkl|XnBRc|9Y1PaEs|K4=uOy3Qd|fx>AbXc)rUc2b`7^qyNDF z?=TK7MKy)hKPJoMpV;L859O$AZ0}(DUo1{Y;*{K=07~dDF+pVb;kU1L1$32l3}mVm zO9^WrN$s=(xrP!KSmf>TG#Y66YTKZ^ne>=kxbHgbL zFlCwBmWN06_KqqZgo|u?tLnDANH&WoOFZTcq0q!5FLA{+MgfP)&q$0hd-Ifocgvw} z$J*{nk$MHEmKh{-(Mz9AtUPXKrTyL-4t>i}@B@X7-CxL~*2}e=%2LSECI+}9XCbrS ze97_63&{srI}B<2dD{s+;btN>=UOO{Wt1L;$GT~Op!0^ujwDSl2kN!&MYUkW;}qzp;eV7wxDK?Y8eVu`ozD#xUnJ z8iHt?cM=~hL~}fbcO=dO`;;ez154ASLFVb^uyo9Gm^^dc26sg2^UimjgDE3bY#l@H z^V(RNEBa(9RT@X;ju`!1Y)`)dGb}C7|AR?&QSr^0`^Te_|9d0B|346P|3SZdcZD#}v<-fT@&dB!3cXe zywA}aa3AMUkiNn~08}v&y)H zp=5&Vvnx)LmprH=Pq3K9gRxR1vJwyN2(uCo^@y_)5B&(VQa8njB&D3BFukOs7LY#N zA!-2C%=~CeatdO39Ij$qMM8B6c0zh?Lnlb(krz{m)+rsW@U%?%s4r{H zl)d}BeayLwRRwtoca9plWI5JKbA+C=k&=Pu=ccD>kX`=;e!!xgCL=~D$q2=x;W=upbKT8={bZ4_1-eV}o^`V(kV%ZC|*-G0|mlY-riOiYm z7tBpBdd$mwXra8TMdY8&!F;t$rnDU+N0qE-85!qP3bCa$w3Is;MOU*5oF>%p7^PMl z^?+)vyeP~iaX1?@GF!xonuN0^bH&GRtHcV{aZj-omaK-7SYh7Ip-0AMn~XT<3fV2C zmKIi%cs#>I^RZ^CLC4$w#EoNmh{c;hs)C^glgA8ZQF^eHnT=-$G!+X6&0j3{x*tJL zuCWX+?DdEX+B0Oyn*nuilx=$r)}*zeRttp<4rH!3oEteQEQYWGMo6jo!qri)`g;Vs zOZQ>$)c$!Y?>pv=;e%oeoanZ5hqI%0hqN7!6+yKg;(~6~>k6{(s?NjT+(rf(zzR!O zift>=*8F-1W!1Ydml&YmC?ky6fxZ%#8o-00UXAd9!tV=$I$GL6z*DZr0YkwVX$%ma zpAaW{Xw2I6i`i{%7cahu9nuil%8AFje#jd5PfZ^ZpG&Cmy;)#JpRp3GH3#f^q{ zg@1X0rn%pist`kt+JeRsshbEUF+sXov`#$rgG+tY@OKaGxB6ip-}(FKwrkJVT$FLU z?KR0D?xirmp5J=}B{HV^7Fw5o$n>SZzIjPuT>)78;%tkn?)D(f8SSbQ=!Yd3zr;W&9y)K(?hM7MtT6lQP3*%cZ&Uh8P!{>J zC2>~#M>75|oRwcFmnUjdhed_hA8(|L%iy)rMF4l%-EL2BdH;E3+^CYnu57@Yf){MDUXRfJVQYj zRP^d`%qrqV`^?ck){c#zb4}8yR{*r9cgoB3ZXhgVM{6)o_VPo$Lsb6=5%drqTDH-~ zM1x(bM6F6TfOSbp$&$t01TRf%DeACVR$L8Q&sh`i0igReZgH$m0~vnSFEGnwTx9k= zB~7;nY79+rseL3AQw-?1!)FudZr#M#+>ZiWNe9X?31yiC=e49EFjZLN*&|YNQ*pQW zcH zTuBScvAog`(XqWe6#bzS1+|nyFg~;hKn>BEj5K=UE9=9No}C^sSc>o z%C?wZpYqR*6Rn62bU-ZSw%T?ZG&;DBxX%qQLtyYX&iDVQ++jnwo5BAo_x8WaP4R!J z1qy~v&ZhqZp$|1O2??GK0g{NW<6k3hli_mt|CDwm z;83-1e=5lyQYe*WM3G%8TC5=y*|iPE5(Z-kty+NFPWNU-&(VbJETJGQl6bKb^5Ct;!!_b zw10l1?fR!It~Sa1!1M##FNc)--{=f%ew&l7nt1c7ji+g6JAbj7?NM_n<0l8cRE3si zT3yVZt-$j}L)t$UWoaGTQ1h;%2!I57Txpo!&0r_W0PN*v(VF zK9=@g)Rh!zeP7tFF@L^*8&_nWlt~oH(aq03@r~Kie4DVJB2lL=2|B-xA@S#5R!yln zkh);5i==P5OIg#JE&FA=`b4TPIri~Be%hpf?!gF~<2x=vRZoYiE{$W!HLhF8ZnWXD zo^S86ZkngW&LpC;OrA8)&kGCfW%L`<^X;ESD@Ge+?RWk9EQI&nrJ~xyCj_T&yL9!J zS4Z&ePKyV#RDE*<-BLfkRPqe3|M$hOo<*y9D!E;A)V`nmwc~X6kL{n6R}2nxZYA^v z7Km70S8gxckQ>v?Nm{TvL+L5B226_)NSf%vY;u z;b@?waG;~%aZ)CSaMn0l z_&AHQ^tfNH3Ds1mzu^f{>eja0rJ3^tYv9qU z*)BSo%PQ$r)Wu{krzf=VBh~gh3MlPQ)p^sOUJT^@Z>LYR{fWr@vwS7}>cP)Hm{rCl z+8++Ac~$;iS3vj0($aULUd???b_+Y78I>N(ZvK;BcVVC3$qh=CCT+=<#TDnDUl4%r zrt6-yWqCohjm!L!J(;u2xNp5k%y2$=XI;sk=-9oFOn zCh4CWluwlj-eO)7@zm3HdX#@ft-aMhC!ONk$?X;uF!K2`Fc5pk(%Kcdn`yX3JnG0|(ApJZ;;H9P78C(W3= zm66#RM)Olef7QfTTkX0Xa{J880WD>*W8QJfuOg$4tNdKCs8pZ#T^=p3+*#*{^JLw8 z!M2RUS__ZYDa9y;PMA&f>=ayIyvR5C()n;@KC8xR zujO`Y^L2f=w$EeNQ?czTPjw1})Ay)YD8eDLmA?&&lYg5Rzy57fEK+9|Ae!?g);?>u zX>lRnozfG02Lc^R?&qGhSDTlm@?jxKTZQx_fxq}$+r~AX3Y(}K7KHDp{I>2+=>;G2 zoBv%Wlk-cnZ#vy2T=|iG(J8^e=3t+0PJEHz`k3V7Uk;p6w3%Fb=H=!sv=RWE({ zh_S-c3N;+gOg%WMP2y$X#J;-eZ;nsonl!&^xx{Lh?96tLQ`KK}*6q6+O2}Rt5cgfE ztNn{!cftqt2PgHG91wO`8MIxw(O=eF{BcOCTvd9lu0{QZ_4DP!KA9+# z&GqRZEt9oR`F>ANcHjBA(Sv&eM83IcnM!o+j5)Wjx2++=x@2zTSEwRxq3{Q`i{!&rX!@I|!={^6&%TRm8eIOmaY9uo z_xXz@>OKG~rcdFar`qV&5=T5#JPr3mA=V|rE^o@=dCWmHyP?DM|^4qQ} z_B!R0;`yYb&&^W}DH+azDb(QgbM<3A+ZT727?*2XmxXf=ob%0mU!(i6;aYOjqwCQJ zmD0smEu)jdlGv&OTgSZFn*B_G8B<&%~E(%AN2> zd+MLi&Sx`QySMD_`hI53OQDmE+i!EX?JTtMjhXYq+nm4u6)dZpB}|EYlDR`x{a|a~ zWUrp?p`cSitCl$%FLU+_ zZJSi&@ShF+lZ}|+oSXxB8ZtlbFF7T2Ig-68Zt$15%_w4;W zuV8xQ-2Cf&Gv_Xy+PUZ8tN6&l$R|+>k#!FaaLMp)%H5U z8Ufw6Z*ucU#@8vcd!6 z|J+>uM-`pzzZFi_xei%g1!}iEi)?R338IlGZe&9^-izi>9ZvbWKmA`X=jP@%(6*ePkY%U+8_65kFAd- zk#{gl`OI}~xk;V@9^o5Z&Adg{<|$M1Wn@-fow-QHKE>k=Ni#`l@m;#&lA48@Q@k$n zJPv*;UDzW2F+xjCqe7vzwLPb`HK#SJJx9E?^<(CIH+SKcI;n@_BjO{XCU8kONl2zh zI_}vj=OSU5Vi)5R_Snj-236Gzq2!Q^^cpa51cb z!^hxYC2KhO<%OTq+l$iTfl9I!mWs)f{iWrJT*aGbnq?LL4)l)gXt;7{o4)$Y!Gw8y zQS-i8PTO@X@M%c>4D&53Xr8~)Qo~NCTJ`o;70xBJSXW5zy`l9yB{@)c5^s=3mwQ}E z+VvYsbGqG?D;(Xu3IYzzDyov?jwX9<(v*5|>AFYgk^ICXLcg~dulRDqWwWXOi39n) z5vwnkK5CAq2^y}{XZxa;LHL~7c&rT_IeR0fFwql`{ zYqXWT!k0nAnaxM*(kYYwd%ynKWie69YX%1K2H}A>=r0|;&n601`RYcvw9LwWlTLR` zb+R_qS5Q%^Fd(hs=YNfP&6 zT&xca%xe-@mY)03>x9c?QNz#1Er*u$HU z({sMS^yQFP`J#D$1Bku)Kv^wMQrRc0wF5`IUscGGE03cGZW)=wknn; ze-Q`-Dibl+7=kdNU%vow-TeI+II&m2*O838kSnT3uJH8t_w*&BE<^@9`d^Ws!ehT6 z7ydzC=m~~qdo^;5@$d_|S`mat20B7JbTx@W@uv+P3>w51NpchjM%1tG$^yw7e2hvV z`Lcz9{aPb01SXXojH@@roh_EcDAdr9kb1!^9F^?h3$r1%DB>s-emHWB8D(TM*7pM_=>^RR|YmEJo`ahX(iujjY=YBN8Dr*`bc+A+oy_$qxrTxn<|miGX|t-bgr(zUUF3Aa2;9+fiuVIEr`~bn)#3 zmY|w~>_OLgLs!LGyGJL?GAM@Vp9)eVcR@y9^oTGaEa*@k9y)z>Xnkd*MPt@&lf{h#W+wdXs$NYg}+JmFT83A^@)eyh?R+knocpaT&57vqtgG2p;*G zH|7CrY30)Dz*VKeq0j@~H3JJimKN3xX(EWVVznj=s#%K=2*<(x3s3_-J(CS4aVV^i z9uNn&CF+gh2T+747;P~McQG`U%!(KrD-=wK`d~Ncs~J8L)p0ap^d_WbCTJuI!c_;w zLV@}`UKX4z@o%K;R3zVs^DvXttB;>VleHbJ?9cWi`Wgfxw7zn*$4{cJ#+v0+mvw?P zxaJqI3R++F@auT>HFA_Svzr#~*yXYe2=u^BkuGWUMUSvq%7(;_5=8PK>-+lpyZxP3 zF=IDcy-05cH9Z40X^aBHPkO|=3N9>vUzpJMDNxd^a@ zz}8Dp_`>?*!Z)VSsA22KBds4Z&Alkq>}^0(3?&S0?UP1qXc$6*;UiHU#}Ek?YBLa@ z`U6a8Yg0_e&!WTHrOLIhDwhMvY>Y)R&DoF)Cy=#NvYS7}-5WVS6ep3$_P#MR1efiC z^;fh-u3NCd$690vJLTj^z4Goji617+>saDz}P7=`NFzAo0 z$AOMxXM+~22xm~wBq-V|QBJFF%LbhxhZCVrLYDx2B$PIHB(0nI1>n?opT$yccR-dD zOwRr2#D)#eAgmP@C(R}O6g;XC;&47nq`viRNZ?M2Z!p72>&$Vdu{y^9nTf21vFo8= zMM!L5v18W{@ihZ&;U}t+(%j{1!P-|r09_Q5vO60lMw>XmHzm4}sGQ7kLN%uj;;$PM zO8w*042sLl)MUPnS$A$!J z94mi!oHp{ev$`6R5qmIlR8iSbFldP3BXKcnIjYRQE3mc*SMc~rmaryiKQ&;e36eCy z8=c#=x3VEYI^*Fpd(B2>jrwkG$JvunJM`N-@45c zH>mp>{2ju+Vy{$McxE5JOmjuQ5^fDIdPz5 zP{*mSW)+*HE0OCpC7k^Ku(Ecv%W-?#e}W5N z1;*7VHqmrWY&OH|J>DUVzA!4IfqyW?edxQ)SrgOWcxbf(=}Rym+B*U=IT16cGzhm3 zmeCb4(1ZAQ1Ph`G&gG1YKm#X+YNn^({Rk2aU?kAa9Tx%KJa;SCfFZJsVl4P_8boN4GR1(OwWKwt|5=t>`Rb6f-(8h8~&pSrQo z2yBj+1zjH}-sMCwoS7LUA>uUN*Ag>7<%3gI3NSm?iDFJ9|5M^z8dlG52NLYZSR(ZS zCjy4?LulaiDoyuZa)*Ni_8@^4D(F{Kav~Vo$I8IM+L=Ti4P1Q<35+PiTpjtVIWaJR z<8&y;bEov^LiJh;4Em_?tJRGI-6j~;GyR5=mjjg)5P)0ix2LZ}I*ADwdp!Cu4mz+0 zPGtB}W|KOB;1RSc=u|bMX)3z4v+z;5|D9Hzugzkyd zzjGpBjtV>>f(;G#tO5ZJLP|%sEK$EWag4SsjNiV&+&sKlRM068GFV~^Ee%WlxJ!N5 zzEK0mRgW%gHV_8_2@FBfl^m%ha})H!DxssJT82790IO6fkKD?*uHv>*!T!=mcDJB3qK(%Vtb+Y zKu6khagGG&U}jw%g0i)F@*rCj0STIbB*l?{F_blNO7!}b9fy&8N5R-&!`yKZXy7=J zoJ^C%jR`P61`>1yZI5n-_Gn5p;xJEdD~|#DJZl;jv_tEKEW2 z_Bu@7UZcQ?g{hapqxiB?FI5at6UG+V^Epv4wgNJ7glK4vtn9J)?u<|ndEyJFbpyWK!?fdrJN{Gn$y6U zKwrMvf58Gwa~+ckZ!aGg0Z!X-G5?gw9`LSa&=Xn!Cxda}Yv9Cr+aWzy(;yg`UP^f3568^?u@0&o%1wnx7QCq9%taLS0L8ZDp*@V%hfLE~G&)1T~<2nru( z{My_ZO2~exFA#+2GUZ6≫uQhTBcN>>eF2xMv!K_d`g7=o@uT0h}0E1_*1%-6(eB zaSkZyrzmqKDGlaCgHn_Rj_2};P9;AEIU+%hl_<};xpQ0u#*|<`21eH6Y^T^%-3OZt zU=m|9JUcWFyKCU|h(cyJ_;!P1y~hM%-@$Pa;LMfuxm!OAfB>f;7|{zYj}LLe$5cN& z->M0GlDH8_P5=pdiGAS_HYCjV2XI8lI%R*Q8dRhR)zt)L@!B{x=-AsF!~Zg}#en_& z!2sDQ#W^62HE^PDtq3KKixcid8U(|gLcAr57z6BSmz=(u#ESC zSCJ`jU*2tOVFCZvd{WWvf)wacIwhI+^F`lgLpFNXoV8+lvn#KBh01XaBE$$Kf#*Xu zpm??=8U|CTWD0F)&cm8f)x9$^1DM{!TM@-rRQW$J;#9zkA+mCckOV1W%nMT)kJ+Fy zct68O)&tiu5}j}!jQt6Wy%06<*)OpaIJ^H?L*K5ITxo&ygHV+eP|zZ;vCukuZ8A z;*^YnnUD2%18gf;8x1?70}G32Ze19KMhazm)R%eDE{w0^(RP4+2e9&E`a^EU)_-CR zYqo|1S~DOMVf!>Z)PVd8TavkHlg{)4 z$r8vUGAJLr+{=RG?;;!PF)K?h9^{3Zc^0-H%c0;p2oo`yK=eFTGFb!GcunE?1es18 zNC_mbT00T0WHdc z=+Y>$ZDwF0hr~u6^{28P;11WA?Ql1Y0G$Sbh(eQs-i_IvhSCX#jp)ngY0)YHNe&Rv z^+Ht&i#XH)1i=;ssM@fh!xN`o?EP)=9d;fNs^E>zdMjpQK^Zatd)Q^ufAJc^I)@uP zgMl8a+#D<{b>!I+#Ok*GKID-vo@b8G>;*v{6(Br|v;zA)nN`X#*5QJQw-e5JAiKT? zx`^X2{ZvL-sz@0NYee=S1^d#N)<;?Uz*gznS2Lm5O*ADCVC((ZiyqOhg+)dZHESI1 z(omyd5d0CQG_A45;$Q{G$^KDOZe$>hY#4+lI?nmmVPP3U5^v7X)Ge6T1BotHnmG^6 zwZ{S?^0J-h7-env91Af%8PhU2z(Z5a_8zKpIJN!Ml{)?$P=6D=(e5bifkk3UKzP#b zTC(UC65akVMD&9p0-jhVr P3;vve6{J6aKp^}d9)udi literal 0 HcmV?d00001 diff --git a/lib/src/gson-2.2.1-sources.jar b/lib/src/gson-2.2.1-sources.jar deleted file mode 100644 index fb9538e5e6fc8a53631fcd56ef641cb680a88423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126410 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�EP4>(MgD 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 diff --git a/lib/src/gson-2.2.3-sources.jar b/lib/src/gson-2.2.3-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..c7a01482831b857f79f8098e2517e47c65088a5f GIT binary patch literal 129994 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

    l;w$D#@l& zz}bW7dG`_>zL(}IkkyfMO^P|uU@Qsb^9B5GLJa|6Q@6rP`_9tO|HZ??U;zNg{>I|| z%4e%rm~D@L=hY}9vgDYEov;&Nit zCFtMVu40NYhAkEyu=H7J+&?EAXS$+dJndmh%Gb@)t7z`!z;Euy67_bY6*Xe$srJK& z)lamC)iI@WX^|K8S0EB42k*%?VRq>jMaz+LMCEd4fW&ss%9|*Q9%p>7p$x*jtdkP znB(oIMJ3G&HY3yLUM`$C^`!9<2X^~Z(hC@JZy0qFB%Y9_=l2<>b4$wv^QGGpR~d-_`V zKOG5Fev&8|P%B|5nVYCa!VoC2l}bfGP%Z{DXDJB5kyetX1~>M%7X-Gh&X%qaWz}dP znlO%IN9RwLG9r;2ZuRh-K8$h{(RiV-5gKk}pPOeG`4{QfQgXY?-yqS9&G~LqJeK53 z+v1|>LS^TXz>AHmQVk{dz4jNNJGn+bXpZ+q3I&6L!vAf$UC6BRk^3P;AO>KOy7#d;>lf^>@k?rW0M7 z=#byecRA$$Ju(yU9HBjKwd7{Zh0mTPV$pU6VQ7grc9(kq%8=tMs8U1TgK!)G&`#*K zn-UA?<8eR1bd9F0`BVN(U*J#-Tds)Jg%*l?E%l=1RNxs_F&+#1f{&C-&j&g*HZ(iP zSBD5q@F7z@-DO&0Zx-^TY!q#z_LS8)xD z_C45R)vmje7?551rE-W7R|@7rx)~wh?Jm3bb)-UJFoZVBh7p|!uF^4kc1ys`cApi7 z%^`#HvlE~9+7lnZKCLDEhiZaRAsCln1Q>ShwCSV>v;_XM5ByhNO|hT+0HL+yz96$W z8N$zTB!VpJrXt-SJs`Fq)grTI!FA7~goWSlnh{p$nlF{L7H`Ac%3W+P zk1s1YjNY*?bbm%2^x@)Oj2leIVmdW#0Sz72Me7Rylc95N!(3|{Zh698-Uh>7&+T`g z%F?(*b5&%^a;u?vPoRUq#;$~@!Xp)`2qLZgh9JRTKiX_XtVMHb5ll`;Xyu;;@sO=gdA9kgVdPH2Fp2DiKZVUvM^@!%Uy)RY zwe3e$#YhtofF;{-ggf=H`22Xjdz>x4?uE<>p_v#)MT@kL2)!R?N+E*~5lTrFHF%8^ zY^0zRY_2JIdMQRM0_|YF)#Xt_AL^*-z1O70JKUkLy^ZxccZgag?<)=7RrllOeL4lP zD@SH#2CR#of4IJ}R7t=K@;&PaVs@koWT)eTR)Zx(_Uz8BXBIBxTTSG_H+eCG*%zD| z2oR>rK3#WcFiX(FPK&2y1RaB$t!=2HUrRhjBn~HT&`=c@=&WGdvh~JTQblE=& z%&wlox`E}XiX1SW2{~d&LD_=nTzS0@*U&$TP{|AIsY@IBu|HR;ERRy~ZQ5c`68hl0lT3|KVc7tyj z)?tb5(G8OnhGrtTGe{(QM5l`#iKuipzIg7gk_X0@zYMipQC@EM#pVm%aW4ka%ULx| zsi5B*06V$ZpJ90^k`Eyk7-L2QqG?T{iuyp#7zJQmg6XS;rS*1AA$$v16_amhIsJIC zE`lq%`Vc!-OEID9{1r7yVH4mj@RL!%uZ=3HN0AIwl-p2DqGrWA9KHvjivqRug=%UF z90ll>o={w32Gj!HkFTG-n=dlU5M!^3pIRq*GBLGh<;a-cjcEa4>$XxjGJ`SuR1_5( zr(z+X0!9oa=pW?+76}+*o=#JOZJJw{q{H@=F0u*|bx0J}Y0_GC45&fJ)?Z;F8080b z-C`Ht@v!5}l-v<;y)f!z>1|Q(Ogz7OaBE4EIkvWkG*qmGo*H_v6qLl$=WO-=SXc`s zz^@bee$zdl1=yD~NlY5k%&`X-r0gzU+^=5DSiCr1iH0Fqyj&_Z{wMxwD+mD~yChBs zY8q_KMRv0PfxkJ|tB5L$<5^Mvz~7~<9?!*dMD{QIMYTfwelhLLJXY5`Ps@sm`#yVv zNwYRrqn6>VsysFo8;ve#W)8V)zD;2`xnyBSq0`4GBaVO;J>i3+thYRr08vJvDBDgw z%Tur2t4OM^T0SkI0HI9)bO7Z@3G*_3H-%sf^&^ZtMXXYxmRTD*?3e%>!WKgs2qb<5 zrI#|L(l|*r7@n+7GLBg$thqxY_bvBmAgkbjV?ROTl)F$9_3G8ohXq(=qr4fhH(=vo z3|cG~*z%xpx(x$L!C?znT@|5;f_z#y53H zA!J~B8HVDvU92RrvHBE{k6q%_!!770hQy8DAIEzgrX?5PEKGwJRZBSCSJ7->Hfiqf z!b{8qU|QuJI%S243mld!zZUo1=t{}r-8IUFXL@9d@0D}OX%Zz4@l6w-Mu=v{8N!F( zOUdCLDvXeA!vx)SjPO;)Si-@MnAOAHlr4?S@_P$DJBwF3TKKwN9?(k?KMb7M-E5cUHU4$@}t*ZBfOAB@(87x*e^l1#p=mW>tVmOja{+sdMy0w_f=@0QT?+ z!c(5Y=f}vx6}SeDdhQXg%U(2|f0{g}6Djm7_hnl&orjD9@+Ee2)rR1Bh}#~_T+^AX zXEeXN5L$9B-;V^-dx<#kknvQvtD!?VwiY^LycrR_%nTdcH)!dR#ZKgZTH6S(ur&sK zX25um`H0=)aYjbAz} zM)~yUZ0_7Z5BE%3UtFcpPY}8C<;(HqdWG@6<83^Cfc`s%;Q?c%IDBE)&=-dNUFh~# zBB}Jx0M5i%*1+Z;gz`@?`y;nk!`|Af51xaKBE&!}gUI$>(*$<{Y8srZgM2|-&Y+S*KWAD&N~paPE8DqdK@P@_q&(3x7Rlk=bijvDroVb zSX-ko$wQ!vmi}OyPzK83Q6EiQz|YXp$(nr|C*M4*XKh;A-<3jEPcS9x0E=)I(IAC1 z)g^xg!egky6$VJBst^Q^BVeAY{*;UCm)^08%u^y8)t>c_=uUYH!Pl1ZIMjA##AcO2 zhLmHSC&feSn}oC5i@YVq_>>IV0B$Mgx9Z#3Zem8UZUkndR@BgW5Ma+;XdYaMCO3?+qA zz8=-ofr1H2=CElL(V!gYH+O=imcS@IhIQd2 zeZN*Sk*?finoLky5uH}DmG1kWUI_h%E?VI%isq%{?BKkJ&rB^pPHsnU6g5V& zu>qsRZzo7F%Lg3s;==tjv~*!=(~En*9U0L;E3Oe42iK<9i;qP8jyQfC#p>q{>v{Tt zapt+ViBrV7SQeo>fgklWa5kW%z*}$|Eq!q-AYVeDCrGsgB6E>EK_x7|SqO>*uHzM% zh!*Jw^O{;NJLV06jHI&%+OrjJ$t?oCy#}?D%69D|Sv!%uEKU+7 zZuUX&r4i&1QFh?v2d2!+T^olgFh5!>VE7JB`QJbs&*HZ%k}2QxB@|IA_{cj&9w(33^vrV|26C9-smQUjh%1103ocNN!rn70xf@qH>!!BOl4OiuJhGQa z!cIqW!m@e|5B_(L&%>P5MB@^|&Z^b&T|%WF&E00d!I|~DXQOWMx*GzrWYZj<-1E#C zF1yvU$DDY10jm{Sr`%>k$LeoTk|y1tA00fZcl~$gjXWW*qWbwcig=C%;qGp` za9xMvC^0V3fJ#`tJ1WdM0eF@Gn(WW5h_<}eIrlYqCYb&3f#kTEPu880OB@7-IbE|H zB+D?lTYW+Qclct8LjDZ=qF#U0&uIQ13TAI$WMyDxLStcTYWF7-(}`h#3*bi(@sz!_ zGE4zpoyCaG*40-h?I2~e+dwyQRlqjC^3xk0^pSBdFNy#+g(4`1tUAMiTw&n^3aIyQ#s+&cRtiazF z06Y0OUtzn=v(X{yBnj*F3!u|;>(d0Q6q$FHze0NAdk8L}XRJRU`0WJZ)!H7R84hgZ z!mz@Md-Z(fj;0`4cNI!7E7l8$OH3Z;N~q1GFFA2gBw`HoOc7QUkZIOXej z`xgWQbh%W&(qpoGK`{Iu5R6)tj-xYJvan|OngS3CtoA1a$7*6qx-@|*Am$2JLYNX@ z&VmWs#yx%&R-)r&%e^2}&AuRbO@^|H$w8%qr~7JGVOa;*P@0@QjT&DUyLV)aP#0!x zti{dU#l0!WF7d^SQEPYsRC{{&-rl^%W*@jpaAS3@(*@`_E!w<;_=-4 zVv{!5Ug%hVut^tYnp)w*lntm@J?5+eA}$ZlqBS*{37CDSh!r>z`whOmcS8{ef?iAY+yG94v7mhE> z>1@;|qi6>hJM7L)#`F}P8R$;Ncp1Y**2k08Q}W|J8%+%LD6XnR?2EC858(x_3=SdW zc3wfzkbi#w@Q9c5g>mK^S{5uLlL?fz76o$ZCGQG(5V!dS&KJB@lqy{)qFUBkEgV5y z8pmCky}6mj$wCrWFk=^&U*+d2^KzoGh_E=}DM@a}TbI4Qw0AgH*ZD!WgC;cn7}yUj zTk&Q7%zr`MBK4I4@A}Sl@#>l#j^!Owg6{OgDK%w9ucSkO&S_koGL#fKDQX4(3HsRr zGH4`LSYgqPk5r?3?}g&@tqCXT(x5x}!%P*340JXom{st{hw6pLC(!>OiB<=(z&Ok_ z@c36YzKsX~;P1-Ne`MqZ92^YX{{+G<%?(>DHU#e#H5hIDIAGVqgR-#9{`!kXN!YU5 zEHL*%)y0Uhh|L7;G0S}4YnZXFlOxt4RfbpNYIg1{4o7w&i!Jw`0mrjSYm$-1rg>Xj z!Kuf`e7!T0Bov|DQACaS1zL!X7SA9K9J`noQ9^7+3?Gn8W;a|bqU4Zt1&-#4eG+M$ z99{Tf$>Rpos`$yloA!eUV8uXByYLJ%)DVz$8D?erj7PO7E=P}$@vnomKIL08u{Ip?U{0Op!6JU^jo6+ zJdS{`6Oh`Lg0GV({`K2a56t$~z}wZ9j;sB44@Tb&oX0?)^Jh07_Ra#<2^?>4&3oSi zhP^TL*Z$LsA!cO+q<@7M*bKgeKr0>UFk-|GDGz?jkaqZ@EsFtG;fMmm58B_xO9jBm zKoTR`YA4%cUH0;$Ijhiq{SNn|PgK}5Mj;U$i&TZiQC#mAYu2C3TGMbMNwC`Vot}^E zO7ymH?|(QlwiUs2ZZfUVBK|(3z3nhnx!y8aWA2>OVeCpEn?Aw%eVF7hUa=1X`+{;m zX{Y7H3uJ50NE%lNH;QD=yIVT=_kpynBCl9j6JU(sfW*212QqsMqT}RPj=^4uQuW;I zu9&@?nIAn#F$|;#55hCXB!{C$Et4tEgzY*-3_oP{8_oAR(J497RVH8prer}o#9s9}i}qGFtr(heOA&lI?-K+Uk< z-86kFr#?Y`X!+%YgEnyYD$=srM7Yrl0nm!^FG)CRAAH-po2;gkBQ%>OFuu0qSm1TW z5)_%Uit~ajvSwwqRdNqtx%A)=ez0QbQ__xf>vtCwsSm0uj=SJ)0_<-73~neeTCToB z`R%V(WCltMQVM~*2A8PN^c_IErL$u$t|C*%_n#aR&y5payu*tA0x58YYpcJ=g3t@^V^f#<5z>f>J`N7cAk>SleSX!} zxaEtKE(xa@L&wW|lPj5+q*Go4sZ^(}{HiT+c;y)_1fh$YDuxnt>aN{`Scss1W>}Ux zKRbq#^F4Qv(RtILYF{utrQ(No(7@o%@oZ;8B{N@%g_VKs0qE!#GHCyP6TiVwf@Z87 zlR99o#t`go{sVy%^<_stlEkHWX}%Tgo__Mu-lOQ|QQvm6D%Lhi9RcK$jH8|cEeTm% zd#hxy6$V&$tk&u|@bJ6P)BE(f^*j6ZgF}-22I)hDkTq8zkMxKnZ7WKaaM-Ub3fK9$ z^=*?bQj9Hx06SpU;$>QXsfp8N$vd!c87Z(Qi7H_lb(hxNI1lcu&B3w}-T9vdA6rJl zwl_L6dhcn-Qw$~U`fSN~WEjd$A!?$%MgV*E zVTdxRri985(P*-(y0MYYT!}K;hhsN9U!@d+OJ_PupVqg6e*6%{(tohs5BSdGW5@j_ zd#Gk*60{9rJfEw|y|b_w@pP%K2`Sxr|N31>lcG1KI5~X$G}GJ&bFJ6Y5c9ShM~cWF zGIiOC%~qTUbhYkW;^DHrFT(-hZNuCQ`e*7Do8-*eF3ySNJ}uAjM!*Ja_4nJpqVH;} z=yMYzgX(QNpc*`E#N(VhYzU^$CdYh;M`(|qQfVUg+wy6B!HQ|SZ5#$EeqzW+%qqe@ zN}81eJasu|+FYtq58SPd-FXH=NRaAcN@C^XT28=wrFlFIHgRSn2_Z&(CU>eVE?7_U zBlE$9dcE2t){R*Nj11uA=$2oz};U29gA3^GIV{kBRi&w1#)~dNN(RFHrG&J4XC+L} z00tD|S7J2980Xt9PVTqe6Sm^|?E`>QU9c~^z2AN&l8z8@7Bj8bc9p3KhMI}p?;RYF zbU9Yrra4qFDG%mL6|8~LmNk%gCZH}fs$hPGBr@6?Ew3lCX{W^%Vj$FCA1VwYXm=UvLtzC&l>C$#h%UYP`tqF2&4j{lJ$YOFmEa85^&T~j0aSnoW zTNs}`eThO;11HOy2h%_9PH^Q+)#SVGQJbZ@RP$E-jV5Z;;j7q>%@+t`e&aQC^Jj4E!B)hoo_XU1YzyvtVA5x< zu=-H(9uH)$o2=hW#1z8edmk(a&v0^tV~ac&IlxYb?ZrXDt+)z!i6JSmH{7!im1~=O zuEA155|$wY1JFwa@8<~fZ3BcnF7|G0nPA+4N&ST_pwJjrAn<99GzM0KmpJ-wibg-k zjGFqzHV>buiY&RCKZ%9C^^)9mQH5IO=gUGYo5@!wNXEd;(ZDano_!?^>}F@a+EPO2 z;QyU>dXrqhz5)RN5Poq_oWF_3|FAe&XX}4dLXwjdo+NL4#7ea zk=gmUI{d6C8h{8;!p(HDHfZGJ&872@C@ASU1m)|4c&ki6dgLu=L9;x~=o{ezmzmky zoEVzx16Vc!;=m}QQG%@0ze@(wL8gGU`UzK01Te+pFK!;tDqs!w^%`Lb)4~$@ijqlc zR=wu*PQr1s75_eabJp>k1oTui@tI?{{AA6V%y)ZC&vg~M67kmz?B7OJQ~u=uT}fOX zL=)bm&ms;=tt8G$MB`l5x=V=VpF*X?6ih2S-lX8Akq*4ZDO%oj&EL-e7>FN2kK5aV z54Rs5`3r&8XYv~T24QmxbdE4HkDMXxbf$*~;r53Qi z0~L93vnRASqiZ2r4K^Im^nUB@00@t!&@QCjI^+Z_<(C z%ZS*B81ZuhtZ2)bNp(f1wA6PCn-7Zu7XXRAtW7kGVAO=_hmhYp&RL@<0?Hz{a9FC! zt=FRr71FZLc`~0t=J>^lFaDRJhJY=F67yG9wp{0tu0IJ=mJ+U#GvsUY4{O7TB*if? zQ7jr5sO)9TZzPX%3BV)7c1uZx3ROq1jE$^yTqx)=V7GnN8`mXQO|}nV3)~Qe6EU>? zdp%nCxWCswEXbiS20BrJ$1r2crG2Y$&d}6BHubC&Xlov~T{j@1g}*98)*S&wpSdZU z_>lFkf~{{1<@q^srcwuPeLx_HS3Do%F8jJ#^%Ua8UD6m);==vdN?~ZBm-p@-T&!qF zHfTaO*!}DmqbdBRYW@ar0d!=&;M8VnRhT^8*QB7ti(#IF3Y%MdCl-Xd(uQ;CQ{+A0 zEGzqD7bru%48Ba;cAPP~@%B#FNpimW3D}ra&+ox}l5H4_JH6Eu*a+Xd?RHhx)ovMe z^SJzRir@i&L-+mx@IOZLM^kNM)VZeom(h@arG8ld#%TW4YW#=wD4G};n>a}Pv-?=U z$jHR;A8oeIi2{!6^a#P%AE;beKtdP9BS!~F8Rb)HaHL}g6wok3bw6_^6wk`n?%Ts8A_UXbx3zeXi{l35mDZN*vvYb-Ru0){h5Hl+! zGM{5vzfCSW}82L}}i zsF&!O`y`Qc=;5XG9q*EEk{L3@T?qylCCwa65AS>4%y(P60zaS%`Hbkg=dUk0}5T@ilTE*w*SY zh#dx_9yKt*d+uG6;HK3bR$f}mp_gO&Nc{bmI#Hf^lwb%yc%;P_mHPQbrRe|De^lDQ z!@}BK-oU}}t4!o=kE*wdjNJx1Lf4xbjDrT*=(tTR3tDMrZ1rp}En$mDY$J0@ znqpxJriKFA%Qe^UFdLhNM(~Lwc8|NCnY-pLto}@`^i%pK8i>+#vb$3iD>b`;3`K(C z&N=o$(CzUYXK2tTPX1`6g6hnK$33l%aC)=N^X6`eodIRg?BQBuC63?>X>gVdeykum zkx>L%tCG`!PaLcuibA$$q7r$ILAr{Ecfu$mAl)J`4Fr9=0ea@oww~A!0feU!rS4pr z58gi@#j%7G(2rW#1Yn zaoRynp;drf7XCdrLylB>QaymH4mq58%+fKG!^Bu&QLP*Cn=fxfIjG8*r-m-$#<~G_ zOS(e{5)D~e_KRV)j_;vlEl#omXa&I55|(Kfa=Bv&gu{^hon82yawQ9C&+YS%pu_zJ7=1Un(sYH+cUPcU^)}?7 zTbbs8rCwwckxm?Y-@y#r&>Ro)8!;+K%1;jj2(CfY z8~5C4%P=^yXsH>tg*eBn0$c+0BsF^2#_H(9{)=-+PfMc%p2sA}tp4aZ6F=7q#1A^A zlS_pdp6X#-xG6-$#K3h9?mW4iYQ6>u1`^+wA_cn9XYWj16nkMJO1JPARSa8aUmV9+ zj_NI0{EJkvC|@v*wCU)+WE_|{AsL1>f4SRtVmxI z8+Fq{A(N$z8znKmEaf!Ei;jmFQsE_XYzUAN=Hvll0jf#EpKq5y_>hW)mCv@->EYCX zkz01?+q7ux?yex$JDSBC($s2DomO~0oILLsyy9(998rn%{E$fP$OLi@xB~IQ+`vtH z^wJt(z88}KytmZojQ&3Yly1a#qO(2reBj1{+GkUp|Y3$i~FbPydiWyfUs` zWQIySDxIvDWUp?_T8vrnOt8vFNU$H5Y)#GlnXcRdpj6053uxgCA< z6RVGK4Mj#*n!}A*0SgRPXgJxO3*kHkn#jX2N<_zvl%Z3SK~$A|VKT_rC?T{ZjVYtQ z0EQzNS(3&CsUxGH{A4FO#mA6LMiXh=Dh&yLKk%ZBnay^*RyM68c6rVKt83{w7FcKM zgHcHH2O9ZF8Q1Gf^z%oUj2Z@J?iY$9O}3qpNvQu;rj{T$ENC(p7sr=`OK$p2*yXV2 zub1|SlV-q4O}#V`R+$D=X{}tmPuQQ(g!moCQRi$DQwKJYFvfYclwa)IA&Du2Os-rz zJ4;j;sA~5&D_27)Q`5(Uo1_rQ-fN9KRrPwGMD7qSYUkZ@hA7n7fr7C3(sqcVA?{@c znemgp(NboU_!{>BnANE(K%BHL^;E=rmVlbJeSBSZU^&r_1)i z%tW8MF{k&nc-V7dO%JbJy|yJWj1Z9@r|Z`}kB9{1RAc28k2OdpNf=<{lo2bud;o?;LxKM1wI0AM2;nBjm^E-8Tn z+_2+?*P7tm7D@~okb89ce5-vnuvYyD2f9s5Rma&L`WobowG_fBP)z&O zdF@zEw~a>4`r<@RsYUz1kjZDbYLX|d3RkiInZ1hHcDd+xz4klX_`yXK#>v%K|EWqR zsS!EQvNibuoHNucW~I&6OwPqBTy~}&>y%trcSh0bl>{0vlF*I}vs+3*aC_gisH+82 zli}6XkFLvd{pURt?#_%Zsm^5e=3Tl^$Z9m@Rr-FCre`j#v;NFV`7MdU8T0t+$zc2Q zArxaX0f8aY2V{yiPg;BeuBgIL=L{juLMGZ8^}-oT@&N2*?C^Jz>_7bI;P>~w3Td3R$YcS%33m}_~COpc#N&Z;Bwk4 z#~4kHN7Lf>#e_v@t$5IZbE?bemgzpIQ`&u=@ddAluzbq13j3cYJBQc*w(~I5HK1Guh698RIzb2OikM@BsUgD6)eS^=Y0B+BIO~$^r(os z9t2=(9kOQ_y0e^a10Awi*?=RTm9OsvC0BC3@Hmgq7g#FB?dkP&%X@rGSmw!GRH5l0 z)s&)vn+7*OzG|~Oy?hb@>&ncgo~+@NrA8{TA!@;M;0W0Ks%tcF!ih~Vv?=vV=bdz{ zlRnY(${cGNI{7t&G+k%dd0VEO>bPEs^Yn!8?ACy8RQBZBos$afl?ki#PHPr_RcCVe zxL(#U#_?K5WZu=1ZmJ(!B^q*O9hAijesuT^>eYI!xuUVLq{ur_+e5wPZn8ZU1`BoA z+MB$cWrV}rW1)qP3fUh)o`RJzWlU2SV;J2>`p7WhIkQG&ivUU@zO+>~OqZO8ncR2ek5m0-M zMv=D1)XPw(_mr?-f`+g)v441mb>Y?_dy-$$YZ}5>%!ywK#iGK(Ddx?0YBX3T9Yj+A*07ZxKveYFNY)yAM-n^leD7J_Y!N;;%Abls8B3(IsWt^bfrr&Mb z5q&VGfqBO+GN?PmHPjbOCQmn|BQ*z}!`w?-$hk2tOf1*wKO2_mj|(j;au!V~@H|{W z=23lT^v6Mlid2bV*4tU2l)EbeZfl0fTRdq<@b$2q49-3RR`t^I_rF$l?Tqf><~6hrGox09GG)*7 zrxv1L$VFEetk0s`$s9)4maj}sB$Z;VaCMeI??UPhbcAXnoRL}m=U*j~S+67EpK(O^ zZxEuINZ2s>2+1>YhK32!ZXAcHKinM$S8iwY{wGJHt|`wS(zoYA^EGe-{xx$>{-5Gs zc?Sy{3nvSge-1xSsYyAmiz9U3QMIosSJ@-(P8nED)O<5aD7^px9ZZs|7QpPQ3>M|W z6d+Iid~=D#g)lNmm@@FbjVi{|d-B@iX^gS72f@LpN=}<%QO^eRV(0yU=9S`rW@pc{ zDgc4pf=Uf#c*2L|spg;IXe2t?>$xa|bk!ab47us!1&ahZTT|%zE=jt~=ntwTM9xCY zAcjQ^h8RGFu7Iz8;-C)6!{)VFDzuYG<} zxTIO7%F3i~Q)XI)j~c1fB3rV7<-AR_BfYEj?S>s}=u;x7U%$jk9}&o54aES=8dMQ5 zlOo1U6KN+INi(Q{bZ~x!s+c|fR=6@bjnsomkApj^o!Sq>h+uJp$X?XB)iO3qAu&oi z>o)bHg+Y3Kz@UT8rJd*mK5yY#hs&sBdti&q{OM|U_*93@->7*O{u7rX0>A)jocKw4 zT{O#1;Kl@sBBqtfYuC_xm)d{{j;ZZ{axe^k&yv8feeN5ehcPJvbY42^50^bcu_{g2 zyWip=H>8*8dGS1vCgzdy1qNtY%a$xbq{$&YYYA%yYpR>@treHIoO>l&BjITNTk(K6 ziQ8(jJ+*Eh$s#pbX*EsD3Zi#$?8rjW1g-o?f;9$x5856KLsG{moVqrJ$dARlNA&`b zXp*g~yyYm4Bll%6@do2!NF@s3X~B(~vhXY_8zyGYrIify_Muk*5!Y$uuQ^&4$GUm= zJ$&@>BwVH|4fz7n{s88f3^CqFXJDEFxzDW-O75B13HFYMEFaD#zK&x}`U!L|0+; zv_$JLPZo-(cx-QYk$1deHD`h}Lb!cdcSrZj91w@!sy?CzWi~nJ>oLP_80gZDnb(z{ z7>C(H+5)#F1-jE?B+kMd6w>1)6>Uj~3t)RYW}bh#vB_^1aU}ji-S)XMk~`By0J<2y%LdyMAGl|4_Z|I;)Ng2tk_ivO+MCfnd)uS>(8Z+u(QrOZ$<8<$1ctb12-J zF!H9x2M)A$G?y#O;Zxa}3d0H&&Y`_X2AHo@F#Ax!H`r(Mx|sJv8a8F(ZE7to7`2)T zql36>X4$esZ?b3l_&d^vvK04AwXNlQwl8rC7Yxme5q6sX!d8JL;~T3g#08T`MN;7EPI@n`ASb5HH+UZ@iyf?;r4OhOSz6?G4OC1K>1galmL}&@FRI`0zSG-=z}pV72P9UxW|=@sD^i5l z?fd!{^`k;1m6#-P3}rvi7DU{FAw;RPe1Hxy6!gzS+0NMz`tP4QQ{A65gbx4u9Vo9f zx)HUMdPD8_Ng<1PM+jhOL6;luvBALj{^iPX&?FoK;)})AiY5+{o0i#v<5WeCB4AKn z+KqsIYgkVUo7;2!`gLo=aj}~N+d%Xw5FxKe%JBx7;eMm$1+0h+e1yT z1oMY38E?2rUL~&UCCxFnWAE(1jWr#5LM3Tq$d0N{&}2lPo$Fpaa_5KA`YAc8H zrEfM8URuyCdb!lpe)_Eh z`B&{c0Yv%SGaVu&rrC~|gK2VfNb^tQCrwabJh}BIrbd%Sg(t&L*cMqc+0~M@artNn zarv0SY!pYFnnMd|&SHH}Yq0JfS%)Z^OJODndguT`o<{@h0M_Rt*W5dVK0!fp#3(rcD2qNPrw7ajN81M3SQL!#-v`;6{+;<~uU|tr(mep7GQ(TCJer7gayCvxs z(Y82ux`A3JJMmwWv5adKyK7{mhVTrpRtr%X8_T?f=_N}(7_iiT+C8Sz~?6wT*CHuDcty$}07Nu6h&kiKSX_-t2 zk>5}!HH(;I`(D?p#Tq&BUNoz{bacGPV>ZrIJQZf?IvV!bT9!fbFQrYckz+MI>OQwK zo>ierTrLb~NqV;1ybc)7**|HrcLh>kSCH_U?QL}GTF3Zl)8rlQ+7{w(#c$V-(YuI; zyAg;%_B6z+^elOck9y3r#>HMaRpepn0)6x2ZxNsQ&K{cD(oGV%JLYxjdLq37tM7*T zK>nrc={DplaI@!kgWaRRVLbZ^u>7Sc{8I8rtHt=_?KVL7^8e|bXN4_L5C7Oev>#>@ z)&I>7{vV}t*0>p4AV!$rYo3v8_2oN&9(#exNChtdNC%dw_+k+7Bk*QBJ@AO4%U9FU zDFY4tey;r!w>UM31x)2+B?Oe^u)r=Ebq7~UHm6YI1F?lj>B-W{X{uXL>^s%O*lnk4 zi>x$M=v+cEo^-Qedy{4u`oCO^C7ZgI9P6_;(p57bvYJAROb6*$-8|vQ74A}Mxm|v7 z8j@8zT;AsyuW{9Dpe|p)S;OJ9!Z~jOR{p}_E7Lz@lFxY3I66{v&d!~;&&d=1|FOnT z!P)#EAhou;KRR6p0|3DEfBP-|jXV-Da5ho#us0DjHn9I8DE&KcZc$To+TcL&JyE~7 zK}sSdI~$sjRq{NNSbU2egiSYHWH+D}i%HOt4xPvTdap4CBom;6ck{5XZ+^cl+qP4; z%~{>U>15JA;>obM>4bH6^Kb#pE0$3T77*dn#3;gxQ=o`0Kwv!1H-pHD7JZnzWZ9=a zj+6$x{*b{gT8Aw*f@s4F!>IW5Z%q_`|fH0VNoE~+c z2!-U~g5g|K#BHQ#d{cSRRo?}QPB zk`jpHhr&}fB&XKTM1;}+xgfKSWDG|$k?_>a5}d}lszV~H;8>YPBMyx0RN}-(`S7ck z?cwydD)1x*vch#V0mkzF^DG4hE9|&1f-hdQu=^=YSdK5oR*XJF@KwGacJM&HyxsHs z8UJ9O;CCye#CjpeOZL$*h)7bFjG^@so6uGfLkcNriotLhPhn9+u|A{_5qdf_7ou_c zTn7`Xst5xc17)7mOtUT*M;hes%4LcPO)wZ~s38#!wY@;*y4pJVxbdo4b zyH?ovmU^E$)h^VVphuOUuL<gpKWuR)f zmGRROq;@!i4EZibuz|9Zj%6tSFQ*Y{Do6{`0!>=rw}|wVCzhCLG{JO2EKXHpQlp_z zP#72qYYZ?`19fJJ?J9*KXiCfT=rQnzF0eg7=rh`h!ma)8S!mEcakJpwU3kE1y*U8B zxTtB_6mS!=kjGY+gQIV~ImiQ1fO<`=s+1*p6>^ zsO&%#P0}W7IFYQKbvP^UYO!`<&OK;G=d_x0fMNAyUaU%2qZPzDL~@>hg2QR;J=JEL z+jEWsz4c&2OJl*u?f6!C8Kj2KH$KcS_^FhS$FwQx=ao>&fhCS|I?tG%X-*3@g4mAs zjb5a2mCK{#yT8M6r@~dHi~FC#zC9KHOD()5I6RZ%~h>0v=iTWEPtvZyXmZ z*t4sYw(x@&)iaX(aHm`|9?{qd*nzE=J=>syyNIyNVuwnCCh=WP_mu8BFPI0)6?>OH z`_E%NJ92NvB<4g9l9joCT20#Ob}t>Hp`2!wGQ|s6e)E7c70w|ixF2Dzda-WC)VK4@ z5K5fE?na!3=9Ws{7m8C;Ju*8%daMjA6u;J3AbGv7BHxHeyfJO|*UAT6d*1Yo?Wj*> z?K`MbX>j(P=xa% zm%n}%m;YTZRV-}&54ns{RdhP|8D0KIE(?yY@PtOF?td(gdTYI;APmfFr2OyKDZsHSQTEKK{e;P#fn;_&yYk}YBp!q>_mupj!3 zP_U58MFOE@LK!GEW$IkbAp8mzb)a4j{Q%~`9yV*f^sNbhYEywWf)cnQX3qJ=b*k(L=@yb^qsi(;in^iDwESoT7%n%*W zg}4WmIceG?fI4P=>kON?!0ZKW+9V{X5cRkzQE3G#oTy1m=U5jSCWfM3S6Cz+^&T;z zk}XD+MpWt$BrPYRP(;<)#9kI*Xkg%^Z#NjF&G~JD9OKEm=wTCZO7{7CeO$f;g%3T{ zU-OE-Lt?ZCZy{+iJJ_dW>}Bg1{{f9#9S2! zP$WpnJI_)YwHD0_5G8CDfHV!bYKwi@D3G-Ht9@D-*>B|G^Fiyo^&I4QVV{#MSoC;? zSRtx+A#T9nVE3doQfz&B7}Pzo2#;dIgCG8YZ1DphQwmjM5Cn=Wt(B&8d3{U27U~^{O+~iBJ8w2hPpbRTXtK z**Ep@0ev!-R8)BeR;jtyNF1EA6}yM#^Zlm!vE)~0Xvt{E}5rKCf*%|AhV@YldbSE!1~p1zz@Z{=fWTU-JJ~Yo_!czT{7K z`4598X7I0={XaXQ9?k84^#c5UdI2jBo+^_?8?#%|DCA{aa+SH%ZZxF1vopK`BqRl; z5~%H2Mf20!4TJfju_q?hHt5^0eI97C{}d^I|P z`jdexc`-`sQw!#OyWld!aEso&kulXc+j4bwruSKWgqB_B!bnb(geQIIMB-6t;QE+_ zQ0qtyqt@^iaMn3aI?9vXvhka+XAds&uI#mK-(1;iX+br);VH`b=SG z-T?eE$4edZQh23N_}6?idj^hv{28>R>`v`nVdq`zn?EcI_MtL2hKx_B@9f!~xBdka zcewB5BV)ipltVc@i`^McI{}Rnu*7M13N<2;r9_v36`Yl`*b_)C5X`wYAten`plAtM znpPpk5q>xBW92!xi7N^}p z`pJ$2X4M%hm-%#y<38MtZ!~6GxzeAra{@0Ua%=7YlU5a9u{Rq8iU%HQr7?TNG?fBY zWq2FpMp@IKNe}kaNaA?j5+-KmXwEfP?dZkmoq36H`(e%*R?~s1aGAZ$mh411oFfNQ zt7Id08z>AtqBD}oD4Pr;SYb#R`Hp$Fuz4{`=^9+l_Ox^N7`OOL*y2?X04D!8x&HI7q zri~S8T;ltakBLvQ#Be_0b=AT?Jm_h>E?3e}YgkCkswR-zYgW?6 zb&?r+RO!#4zHVW^UG3EMU0pGd*Xnd&6~(Z=Wp*M`(E|5NN0a88#?+)_h&v+-W~zv; zTTOy<5r!JAwzfu6OGI*nvg^iyON5AwhN}<@%g}3g1>r_PKZtF<*P+#IUlfiZP$wPW zwE*O69ch=UyCepq@Fk~OrS*9NH}>1Ywx|CIcPtSdKlW;6PngdDBv9Ma%}lhdh6~Qt zkJ2M&+3lWMstJP%EqR*6HU7X5BS!dJr(r?CRywR_*+E{^vqar2X;z<|@3~PehJe%? zw!xX(v`WtP5q|(tm_fk%hel~Xs5M`>NcoYVTy-7cH$BfeBr*gpCP?86`BB&M6he`= z31^o6!{_K1SG?V?EL!N8jwGwcs&F@?`BN&;;A$>9&-Sa{fTlfFGgfoOJ0RjJa>2iF zGJp5$lz=(Z4CNT#-tzjsLq?Y+k&Y_D0}0H-&SmJmHkfN$c-1=js4Z?r=Xd$AgcNC< z1GCavDpF+uzSGe&@S^b3@oY+-JrqdXaUmLz;k_{kOeAV>cwi^cf2*c!dQ`Mowmi9X zn}J(g0UjZ`t;ISaI;<6#J=FMnJ%$_nBCwN<^{0ar?pjU0;Mtb8Cxgc?b(mhI$qgnH zs@qZDp+ue~c$dJMO3g=}%x0`D#^nzTq&~5a%x?13BayOp0l|0d{>qo9o;+VU2<{I9 zYogLpbp;(oE%{_!kvgr|4M`76P@nU8d;LBT9P1PaVj$-hQ^a&>)!DeZImxp>JKUP* z1h>{P#!UMq|GSsro6n^Z11_vi#^JU=u59(vag9bfrqIZ;_!7HQFPS6mY;>5?kR-ZP z(#Z1?`MH|)kXR*F)LaTZ2o*X4<8su{Ic}S-P<$uc$m<7v;#>Z%xjrpn+gFeWe+mQT zzxn&GGE1@FXBSRF-MG%;{YquqRV9$Xs^MJ4$=cM68hdJvmae>pYc69AfL99kMy{u? z@t+^MPur=hrd^?6Wt+}oSRh?upd00p!u(-Sf9iFMfTf>0X3R_WIR#mejL`+@jQMHk z`KrqauRMa*S_Oz)obHNVT_^0SMcoE&%!GU&_FL?T!o7A{Pv-}|4MR_Uz2Jq2mU*hV z8klB5HEB}J@@mP~&U|b&)fAqzd)Rk?-T=W2B&61G*}YE~ z-^|?^DNE#bh?3rli+T6BR5XU1i^`+!rXd^T2{13YKV`GLFdi<)3!2TL3zWc}5E7Y7 z!urzL&-SkM>}up{R~U!WT7PoS%5z8F)o|5BT+t@)R17Eu?YOd?!8`GmdzQ3Rm<8Ns zhIPa&^PhZr0M$3`Yoe>rN;2zXxF7jbrg9lWc#522z2G>jUn_P$*Ax6eIDTPr! zHk*8QpNc4v_&8J%C@vsN#yfnS!k$Iyd_JH}^KI>PKEjV6MgNAGDm+Ohd3M!QC4V;w z$YOYS=mUgRwjx()(`w%QqEgLiJ+w+lM`#D%$N&UolbJEt7A<^{!H=uEVLPGX;QVsYhi4S9+n^Xh6( znWu0H={la8&A^hKkNpH`$tVWFZ7b3W2X#7 z+6YiVckG`EV`xA`5BZ7lG!c-9Sf-Q&PJ{~+UM!AObSseE=)5X8O(D$Q1i<*wKK+~$ zQkuPJYi4RYw+kt}kC~oQR%^(lyr$k>N5}8bFtFc0~N^mf*BWp_N0dvvgA#ZK`rx&s zzd=YYKX5Vi;s7S!Gf|8_8@P`$ii{CG)TNIWE&SmE-*bcc1vl6QXHSDUy3fxn3&S8Q zcy!oMwViw~1_iBJYRrTe5fUE%|E!`jtsP?&34cwqe?d(hSYr3G6USQ1x^| z>y))1IfRbuV`$1Yua<9B=3P8r(>n z#`*xR&8$bkj{(0e5Ya=$rEM$v_qo|L3(@jA_;R{|TCB?JY;nxsONqkaSR5@7MzlK)T$_B3!@fPdW61=WDyO{sZ>(iaHb2RL3(0d zf4DneH6I^R*LMDL9&6>jSptm*a; z(^l~A00e+Df!%*@iN~qvd3fsuFjKBoG{EZC=Ii}(`Qr4v}& zCm|zJdkhc(TBpJNz(|+8nt;UA!Al!;zzubM0I)4%rUj%9v-uJO7j?GirMY?gyk*&* z@ScTM*4SOt0D#ptWVy)a*9Y&9&?3>X%cqoCI#N{6 zw(~xnZ4q(}6tI`Dg2(PGnyrmzpJ;oY!`FeT3hXb=1te(cW3ICBg8uiRFoKUT*PDA) zRam7HH5p3DmgF(lZp)%JT9VMLdl3onbzF4mPGH_#6{Z`90zhxf?lN`R!?HQ^n_UgA~Zm9~ft4*5?HAPR&>G2HXAX7uxnTIueQ?(nV zSwgKt46pj}U+};xAnLYiH|}y~$pl~QmxomXr0@<6!r<}y9>bEBUbsUJ{>Xa!@!-LF z?Vo|aNtI+z3_%nvEXPI|MH9P-6lXKLq1}T{DQoi|paE*YDwmH`E_Slx4 z$XlJ6cdtkdU+KX`9Nu}V9AWf>HK9x*g0hfmh-pN^I#T^sWi>y};d$z9rX zwe8wvy;lb|Z(rrlXwYM&h4*y@R;E89)oepXumgTQ4)-OAPgQ1oNv0(2SJPp4KLx&- zr07~qWu{7Bw>o1fPE}M#*8&fMf`OcHEpsh>jUgkdC-^pqleR8SNl$^Q_;kmib5Xpk@b%gIYH& z-+3Jy6ghbsVI@om<~ZIEFsngE_vZ-ZVId$3JY|pvjK>QQOl|&f(En6ca^PE7U}iA! zByKHK*+EQk%-=P!lfD)%(L@m$qBs<|uEp&Y)uB6U|7D%(Xp6+ z+4`4+QyEJSXVwEHgP~c)dWj+a6@n%<-U^VZkr`kiXHOW9Mw{AVk=QgC{(TN6ft@se zHD|zLHj69{l@i~W9A-!=BqKY@8O1sLH^M3cQ*iRJXuP}{6DWFI zmIyDzV3ZE`NHn1HUnmHH*!pZi>lT#ZjKqL=Fx(~*4Jgb7gR&8sgugJ4oS6dM!F$^OQxgYjb*W(a~T_e`R zkZj~ioJJ&0_sDT(h}hXoR4Ho4HN{_Uu8baYojLacyq75o#pG;WFu(n8OtS@Q4Xac; zSC6n7Av*1C=1prh^+i77*@~p)J8+;GDbkWxBy9LHkYh-LL4{>iU0hl8A!?QGeWuC$ zUY-`;+C4Mq{*DQWHg3BynIRXy`t;eWeIyckISlvSN3a`{+_KiOtMtpH>G$W>#vL<)WU)OF-~FLx<)5@Hj#xqjqsp5TYtz)d=&=3q03?fvZiIVNDxwM)v0Y zh3Xdk2B2&9xedsOj6X7>uJBpFzMp}@Spi3{pI$dS@6QMKDRwa*0>)3pC+}W7{zZ$2 zT7lC^#^^qql|>~DwIpe1M1!@Iss7q|L7g!px+O|w7x$`5S=!=dYL{ZB%txWJMkeyLKX#tN^Hie9X?l^3CmwGI`gRhw1D@mo zsd~~fxuvG0XjM3Pb7fCxcev;UHYNRk9S)ooazMdvSfol5<8jt(S$MZ?%>M#CV+l1q z-GNR}1Q&m>v9eB92ArBDvg1Ec_${0{L8edNiXD5G z6CjSjl&OdBCJs@Z+1CpCMIvGm*k^m7a*bO!#3_&`jR$@9R;xp^;%q~tV3jJ%P^^AF zX0SXJX3RkcoW)z(9VCGOgtnmNQD3SO1rTOM+-ua3y`DyDE7OC~aWA{?HVKgNf(t3k!kGoslP0G<32kvU~YbpGT zX@ois4RIIpNHSvl*F}4qpIyMDV&3D$w>VpDfwcCQ58o+Se#$k?#A|^H78T*tpEve( zVY>F{+t%(XkVd9fY7_6>1*ejwV6%cvB~r{%?A zXaP1IsyO6|Ig=qJ929~18j92w$dM`?(o>zkzdub)(+-uAX}~|-#SE3VJa#k8Ox3rq zgBiU|tas1hSmmB*7Rru%6~9@L2j`E5&p z*_oE8WcR{uC_zN#9i?lYAS2d_IcY|~5`PQSl1?gMnL<5|cS+R3l!FvHcSNR05J6g* zpjD4a5=!sElN0A)1RMfks=ZhoBL_0fnty3xG;v+IuAaM4tQ|1S9B;2J{=M29cpb5K zzO`%KaOjaXtY9_1tJ5(#y)_0l3{ev`3~U`WgtY)O%$3w(rqt}2O;()f2Ik7iXc;Go z$e^-eVx5qsH4lk7?UeU7K!$97BgTly;;iGaNo$@apu0b|`62aE2{cH!ytV?Dv z6(fbl@V*G?Qc@8y3;m2t&;{!k*LvFv^;c*3krLUlVCF6}lgjoac!k){>AMSBPTYF`8@n$WXXDBdhy3`E-^2yJbyAFeJe;;lJ( zd--bQLfz@G|t`0$<`gj`^6%gMPth5$=@sN&(xRwQA^K^3fvR}t2 zWI05=iO?zgC4*&BKZPs;$$Y-v0_w}1bampKKiRyWkNip#E?a;zgprU}SjFj<;8zg|M2XCIIq%tS6hxM8-QmAL@sb8`jsRsdr8v|OF5r=3x?-1Pm z5xQ0rEO-z9XU?#z{_skkLH4qafr$V-QioWv4Byllb^*HVM!%~Rg~y<(Ezp5s=iV6H z$L}iv>1H?tzUzJ`qU_}0q8K(u%+d}>MtCG-azOQ9$qI}>A-OQ(^;VtdGF`_6JW2+` zKp((yb$!H*tEe=)u`Z#z67vz-=I=7s^Yn{r75Y54-1{lXsot(#rB5REn@nd4OOCBz z#x8s2NSy}Ltw@fvbm4^hp^)a#b(}yEnu@c;Zut(j?yJO=($hW}OLjtY;YWA9X*4=@ z;ZtmwKam@}i5?;SDr`d4=(5Aftp))Z3JtBuG5#sz&W!i^A-GPTiA~&H7>H@%&M@e1 zYc-l)gj^$J-a5l8VhR^mE-MRZjcR-BQq;qbH>qE}N=&)EOB7!?LCJKx`g3t6t?HF2 z94Kv;bP^JVd50b}&87w$ccBIvwx@F4jrMATs`%1O$DxDnA@}O32Nz&s1f5GFquO#6 zP=l^IQ6`iAcVg`9jW{A4VYUwv^;0djiW=r-SfoI`2F{WU+z>W&<0ME@c5K76{nd*8 zxbigQq!6%G&1QkiMXE2uuUH!!M6*AofM2B$a%<*SD5PEqi$o0!>iQa!}mpz&ZEV}unk;0@vW7>QbHC8(y zkf6-g6V%LB9bHD?8;E_Zt!_2?6uOcI)g%qTF{r4_IKV6bl>uRMaT6Y? zI&;_}ao0A4L3oZuj8GsBGUyIv`eaHA>kphE9aKz#(ID9>>i~6DH`Y`^@E-5q_6qn= z;85c8FqmHS2ycBhD0{UGsPn7ZUG=EqxAMESoTxy{q@qj^Lle~be@M@kUcb_GevtG@nOeUG>$emNQWp}MM z#3>ivF}&l@>>_u=lXr!E*t|$$i7BBFXKg-Hvi(V7_F*DqRz7mb!1YXkY+=4})V56R z0*bJ&&_Z20cNY?!@_>$auGwawQ_jo&F#8Fg7EvD{v2rQo@|drq;6sUA4=R*95Zg>sf`}=_S#g$a*tIus>e|gqIfR^^}!P~fBh|}?;FhSGNf;XPWYk8E)-5rN4KZv6#n}n?h7ZT4t!{pbl<^X zCg_!uZdM(x-BQ4AhDxXRqJIW67bRMzv_;HGN?iOGuT$;H$V+jWSxDT`=kgE?d+jk? zJz}ITZTAhV+wz^?tXHCATI7|baB1~x_GN-DR$<7z zcopcHohy6WwJ8BKc9;63M`kL;iSfCCix_`1U2D`8!-m}KcGWfkhg0+YgfEg&&tt)~ zu;6lMSmalAs2%`};OXc+f3G!~1>TzslEds4J_hzaK-l{bJ|M`#ZSd(O zC3%MNn%ye)7j+-1Eo@5V$GZuT=F0hFgSYpLeq9sJ9a5no=IVN);P&bZvC?T;Hlw5_ zzGdN!bzUK^f$WKFJ6z&5mvZ_I8MeQ~6@bd07L*?K;t|p;iWy(W;gPhDF{9*GWNI5b z>{UIP@8)=NV8o7o?!StLpS+q_9wK-!YrA`;bW|b(XW;4wlQ3A58u}G*&G1klS1Y7+*(8SH2Ym z=r8@9{+y5}-k1<;O=qg5Z%1d-)Sd|{gTFBV>0zn8I8K5s7i%za^0BLFTaO!5Ct@4G6s~G8oFaN+3Higx^0Rq=3|&5#1^F#OcHZaD>0;W*Vs*_1ZsOf( zvRgt+H7i}(34C+bHcE`IQ~6yVl@R=q&i-gCIt*fR(g-`wuh`E&0=OWd?^v;2OTnxl z-bJonE42fz#AZ|1?^!9DbRK#ED^!8AR+~apeeQp$(G)fr^yFR&+govKb#30%Z&g?2c(o0oH$oNiS~5}Jw5FmvcSTc6)@vtk ztu3v~aSwf(vK49nPSx~?x@!0(ggtzJo%;RHu{%>mM96rDHwXp^06@s{zl_NK-9!9` zx&IG88WB zI_%rk?M48ATuiPhw$++>5gj&c(BN6qrGdcl^%LkN?=kO*`5a*)o%t2@ald@NdZ>#+ z3nbQUzXAwFg7w0TMrJL?wx2yhqRX_XyM+0XKx%V`9EHpeHNnqaCxHx!)mXm3C5EC6$}W^PuRxSJj6G%#zpEYVY*<6`@)jV=y+Wwy%T#Fm>3VAD9$2F8LwPk zA8OY|Mp#gRlIfRf(aFcf)7{s1tw85M9*G_nkS_}d{;Q53=lL7FIJKpA$e$E4V!aNV zKNL^CEx1;&5;G^T8nB04QRbA$R3TN2;?d`#%(vYW=no?Ezed-+Coa~ zv{MqmvWU>ad2AS)eO%M+B4%^^(9G`6*O`})->t5;b0}gJKWPE=EGG11XBZoHe-rc! zjz9j}edwOeAfL%R%tvc%4H#ib+@+CobvvC=I(SneJh^&(y6@3!zQw+w09p)f0XItc z6j8Iu{fL~S8WMs-oGqa5PC4^VJjB;PI1C&-|0Hf4BDAS#Pvb95BE`jv0aUcbe8$`U z$IBkTaMVGw0NZ-4rkmWVfVZHT1&Uo9>KXk*tm{YlpO`ls7J{EKb>Uf~(=q*Qfig8# zJ2Y>+(STtWgR#X}klywy&ayg9ckf*`{MaT#NuJapA`9@l!JXB7#tU_7v2#mn6k7$p zfB0E?No*hGbW3?lhVrjB;h+U$0CW`U>fIL6)GOCkNSIF#vGs$QH!W z-ujLnrzmUddhYK6{L(P~PN9DR^mRJOw56bY`qyZrt1Y(o|0%?_4a`r}XZZ}7soZ>H z9DP05ZIG&Df>51~R>Hyx3_(S1W;SJb0E`~-mQX(;GQM{d@VgJXjAH>)=HIF=MV%SG zVDq1KN_YuRQwq#5avpj27&+|@EECksI-1k>PB8CeZ!{+uFi^O}h~9aqpHW`Kb{;cw6cTd1rWjp;n-BW*0y*Y*I*Im6>b@rOo5h8< zvZReSPilp%le;pnH=t#hb#Tr@0KQA4Cj6qcaHMhsVggvv)O8oJMlJlO7{m<7hV+e^TTNsJ>?TbhB zW59>_B+KIx$X9r6xLGD}ea_$w#J3q=XgOwOw-P+lfWE*!ds_%ONs?~DHa+8otz{;< zY2Mq=J$5uZe>!fKm|{PHm@EUGB0Mt0qM3A1f~Jue;N;NxRMXdTLV)~&WCc0Ius{)g zG~P|CzBeDK8um26@SVQ*KzF8+Hc%S1>#Xe=nS^YKTGZx^kU2h2da@)$ zkg521K41ykG%6b)22lbY#G$&+X08IY zAMdm+`h_^8D$B)*q(??TH``sQneQ;GP7R{WLtzOdn08l>(g%^_HtsTL%MPgi8Cg3a z-U=$RORqVN!mBVw^FfEYMKlet{m!t#;{qH&K;{Qg>*)&qE$ik@9N)0S;-0G9Kbkg3 zhM%=y14&bYO6zP*uRjGSA_#Y30sPI@UmjT^kA*tCv8*wH2$2*DU?GP!w+#t(~=O6Qw?XyhXJZA3#l9*#rNb zgPW7(U{E*y-CPBTkBSgdYYM>p3;xkn_~7O9bh1U_gDt;YA(du8vn^ZUqe?giI3LPN z#|=u~=p0&Y8`gHme$j8W?`;L}nSDM|AW2vcl+_*>N}I|czc+HSE5L@qQOsxy1$N(<)rAmX`l_|V*~kCo|B9S`O{@g zr0kF1#Fx_{wkj4c@nR5Z(rM7Z0 zzTcqwyRn~q=DMxpa_9k%Q&8Xi#$0G(N}DZ-cjpwC(C*E-14S3NB~`ofG=2M&I*o_6 z3W&XPjuzC6fRlVE6AVj!mJfm}*{w^1KZKjW9hOY1TJ$qCat3#EYrPHPoa2fTo2~5` z=s@;m^T8#ju*gG2fIZa|O1-K`dAb!mDeUYE>$lX?wt6D45^=BvRhfWW+fzz$175$Z z32BImk_vbD>j@#ecml_ed>geF<@WXS^v>9`fpftNsJ+3m=UQhkRyNYh5dadJ>L2iP zUh=hZcNO7c?*+<^aGz(mcNgKH;tEJ@Po3ASc6H#U8_Ig&oJ&NTPx%8@U+2@fF&v1a zr)Y)ze$elgkmRuVyX^Qoyx`>LY66on9c}9a7+j7+j&LRdDBx1c`sZJ2Crco zx2^l`vP`M?3Yga1&>D64)=^G|t+`8i+s=~{b)ORp*rZmhIk2Oq!N+~V-Vb;X${euG zR*sAenj%>Sa%s;o|09~U>026O5_l83A`((UT}B?X@;rqF?#)`P?a?-|xz-PoF~04# zinX47BoQBYpG0qbco}3qQS?~Uop+kjTk8(hcvjX_8#pUER@v(oH@H@G->ztSG(LTw zhGVC|3YtcEWLMii<|bx6Pe7DA?`9~Fg*>EBur2v8I3Ie@xRIB`T^DiW+f(>9J8(*{ zsR#RQvK-ot>*8#7&GYG7%)b3uiSEdyd}|QDA~okxKgT5+BSs_-ugP{vgWrXm6n13f zXv+szG5ZllA>zW2c)nN3)+>Z*Cre#&1!8FCs65a21@K&&0OiBG_m^*UT{ri#2!C;HOH-yMGceBsT7x^0I8Gc8)4uJAvk9(2_ z#hNL96d+LJKN!%zunzyZQ+%ZHt&fmi<2_8cZ6vJzwif?RYN5gt$g7P47?$eOENyu@ z>+Q9{wLGY(GayjWlpVy0ONF5+tS~#1j*mJ$typ!6oyVY>qim!zD?FVKg@;LW$Me(q zTTc;hNGPDzVP6;?u!=%7$9}UqziKl<-%yH9Tta6BZkq=1{=Da#{h_HErSaSOHsTx&pov9I5a}HEA24GPN1{b- zJiVgIR1T>uT~YePxfR2<{^^*x_GJa#&UXvx-)Z7s+TCcUsZ4b)Hz!Dq8n58_1{Va?e0Hs zH%~$h9f_;npkq4cA=GSme?@K|8*}v3)mE)ty7%1|ai88=MLykj6t+YQF-@QS5hwlf zjDe1?I4FA9Ms%+IA+ZD9XLJOnHQi3VcT~>c#dGryL&K|`RJPRAPUAJC*Ljf;!6Sz8 zx68aaG<#F47pMnv+@`eZS|nqBp=~B@M<3Ffi}5>*xbywh{o~BrSijJ7fqz74<6|6G z<51@gxD5@|nlH%y%i7-Ze5SUnFWXovTD+Qk-0zz@raF(Jc+*J9XGU#QVP%zh-p~-$ zfJ*estmA9bTeA?_rzLmpJ>@bY9X}W z^18f=(E<$RqjqIfvBY|Qw^H8*+S2!~bqPX3y;6W$FO8>Fp{V8$_QcFTz6R+g2taf9 z1=cv^xyUWnfBI(l(Y41ZZEn6jGERn%Ny?E_Y$PYd=jLEV4iGR1P79gTj;yR~J!s1} zGRGH<2M`ex%^yVE5$UlI0ShigI1xPr%Na^T^cV7@+A?MEK;RS!R-|#k#194W4^2w$ zd0snhtR471e~~sZwnbmY03zQ+CMZo67RTYZ+9UNu(3+ej6&%niTIOXIYecUzausHc z?h8$NR5Es+G^Xy-ar`FkApERT&~?I7Sefq9tIC>hYPa9zLM3a_?Q%0W6`Kov7y;U3;SnRZ$^u3bj;s5 zT1}I@u33>S(zj#UogC012$hC4w^5pKC+>~dp>YS1y$>%J^yOd-$qV}u+1SlccThZwWk7ij8E2NTgQx7PxKZX@bf@o`>v=qNT=_~ zX-&fm*2}GKJ9|}dCo%&K*o}5%PY75qN&*SqEbT}7lMB||jR=)8zJ6Q;&kv2my#dtR z#e!7qQA)AxZ6kop$%&gAyVneob>GhjsA1!tHAf;E>0>Y{MzS=22y(D#CKuu>KlF_K z2JJ4B$%J-)Z>6R|n2kumP`vkzrh!e9WsBvlb?Z{p<7I73!aVDND9PKaPsU^CO8n(M z$$M!M&xrTgPn6CNun3t07*3NQHu)yr(_Vw2=}#f6zU+U|?&$@lvhVT}_S}sZTRypg z@%%DcfFa@qFh#hn0$RuHO2aULfc1O7tm?X@Ka2N>i`?(Tw(&!8ZrtBTKp^5rCCY>U z!vCLO>0f-_&sM)$=pXK>3N`=$<9|II{|nNq;%H*>A5ibV>x0Xh+DVHND86}m4u=C! zR~Wy=5mO8bu}A7bqf=X2Ojzd`E`yz0moSZ2U$4F160!IHUZ~aZ0WA5v>Ga+|a*{VZ zp2FY>#*JAGpsgZh|3c2?^>{l#|HBdF*b|G&s_BA z?y=JrUKi957D<75eq}O-g9$8&=wGrEAU?1YQ0)MX2q@1a>c8qhl4!KDg$GX@ML|?8 zO=%JWWtB7mY3~t*>7fa%Ndm>(K)%WW(YF)$xzwfjUjOKUs~f%i#)az|SbG*@z!0)S z(0McRL)g=^%g6Q(efG8YfI}e^=6=woQ2{w6Q?_5s7_}9#7zyEIrz2&|Y2?f@G+!Vh zg@%Iml@<*~6qFfBB&Di>{9ly4V|T4#w{98R#)@s*wr$(CZQHhO+qUgw#mP!idCxvo zXMd{CRi2Z-bZKq5dEa1wcT`8jIDX&_wyxy_Ol;W!Ep z5Oi>lW1R$LT|(?#d@BlX0|JXB>Bt2L9j+=QF|4#uVD;+y!3mQ&{su{msp$somk$^M zw5t?xqLu=SlKyL5V8L3?weC|7-DMbCFr2WnNn1{-D!{#`e;a>2Cg>Gtqngk`Ilb=> zFzJQ2>_~_1*`tSG$ve-91#uQc@_rSFBxXzGfVD-I4vcy^j~qm7>z3xBZ5MD`_6!1O zuKd~V<=tkNJfj+rDDG-j|CQgxGdR)RqMK?}6kLkqa}bgu?n1?LlHYd?GdP}`BO zqy-kDxqf#GirUWM(LZBt{I)+^5`XNt{vv>sJn@VgaPR-V0)0>KUy zohkMA!8>BH4$o%z%BGVy|JKB~&*T#!gM#|TYR{rClPR?e;SlH!{M|4_UIgJNN^DEt z*ij)q_pRDfQ>CSlgI7Qm^dNz~D==_p&zr%aYiR4Ou9os)`*-5kZ|#!hQv zuB(Nm!W5g!Nv$bXl|b5ufm;ZhQasyc&Mtm4aLcZmpLPC7V6mf{4WfB}y}yrdO#wr# z9;Ncwqr;@NExE?F$mO2s@h7_(9jj|91}$KeCq1fbRx{vudD?QY_;k8Cz_<%T;he1v z0Wu@0hnsJe!ODkxiS#8N`K)QNkX4W!>t3C%FVbuz7>yr)idqMUQpYabLk^nhz;f^%d@BvxbfVjV55DZ1DIjZ7-c! zaql9%QG%vd0iBT(gMt!{-?`;8&=9Y3Jy$Nx*TpV>5X=o;Yo9J<#W0|Ij}@h&-v{LV zLM5sYOCeN5rTM zI2MV+^n6k&_kt+uax;y&Gji#YWtfmPv_&^n{Mo`6va@Hqu$AW4`hHbmV-IDQ2mwZE zej?`Ki8!!;mo*@a`mZ|l+x^MX+1$O*B(oTV$e;KSmd;ZKs2Ip(LIF@xAq;ftQZXk+ zf4~1&B)lPc1I%DQW)$}DG{S4B4Q5*Livtvi4D4a4WF77)Mh5}V5vE)c{!@pJ%$gpt zkhdna-_sv2F)*GTFUW6G+4`+RC(cGw%!UqCRsx+S!WK)0dDxVOtsNXYV(EN~LbAcN z{i4bQ4vZ#HQMkl?ie%Es$$b*tCm*=N(NbOXmlPwXsLiN-pkO zEqi{+82C zS7oKZh>(f*Ol;HbvZ7Awe1keMZa#JVOXGM>Owfu{!u>%6`l%oi^ojDdqNid;F;l*C zR?n+@x=s--gY~5nB^bXk*9IEKZT!-!*nz;icF3Au&Qb5Mbu z7Rp6NW>$yigih`6V9Tgcs=;&OFe{$SEGa&~pAd zaL+PGM==kD=!nUbIZ7$C@HQq4AG7G+`@kNQY$vbPt!jS0 zEOfQC2A8n6--pW&Y-;5`%Dqaf9YYqi@eg-aK>s;1;Eape|4u=poyTEpyV|NwPtgK{ zPk-^%fIS#$C(<-u@?hPqEH#+LE5Ape#-Yitk$r)GEAa%bUE=BLP^*mCvqtN9;{mMd z0+3rSk%#p&%_oxoIuT&_fLMHCTEk?gJpS4L&>qpS%Ud-!il+9lWMwX9~N9 zN7%D~ALibqvMQFQ(eC~5Zy6d9B^;iGYHo`-eOFfx@0^%Oz%fg)AeZmbak~b$KR*4% z*X6mRm`~86ohXj7jsgOzi>n)qvrsQnoM*2sM>F0$_6R{QN3(~=*r=nZgN=DW*Np-Y z_tIXPy;$v+alsUSb0}86C%!vf=cZnVFU91(kODg;t6QMb( zTEF}nlwTl2wh3nw=}=~C+>DKeWaqW%f1>g}C@%x$42f!qLg}*KpSTmFXbl#PSz*Mh z9X@AV=oa>?0ZbSZ)^+ZU3<%Ml_YYrT@b@B<#3Je8ozMba_%fe1Th6laBl z>yJ#24wH4Mk=|54;;Dwja}oqZ^{n&|(3nBI z2Ww=Vqm%F^AW_LJ6@ra4zgxTiL?N^v40@8t9%n}$^-uN=&4Dj_9(>u3ARH07Ji(JALPs*nD?&#=6Y^9z31>W#!uNZVs{ms z=$2$pvo0XM89CUto6xlwnr&fbcT_l?6b9^$*GS9fPqPego^K$g#d7I1tEbkP6I%En zR3Vf^Z}z-wQukqlY!}jFX%_Qw0%RPCUGm@d6i2aXmgQN4M;e* zG^FfIHU=#!G3}uTunpqU{793g9{=-~w#=T_enqusbaf!kmiD|g3YY%&r9g^8gJ{R+c0k|0+!x+3Li3*` zzNn>lCs!1bnREkZ11%W@1o4t6uIRV{*FSLRWUs+;!V_?Wqr`?pr@=GO0 z?jvv_L(1Vqet4YdM`10Mg?37eBlmXiM|(~F8I9;nppM#u-f*;Tb*Lo_ym3bX5seVs zM~v=GS`Ta;aE;0jUbkobcB+Nd4JA;!r&pr~?Qd?0r$g;Y*bzU7vZnR#XOR7^81Kfr zn9|OALn`X!F?+ckpJ)8@cv&JB>@JN8iKQAWxr03=qFs6}QfB^{(4QonnQ$L^ zy;gc$PRI89`L%RGG%XE--72Mud-=z1ex*`e4|Mk??zqIUTbXEquRwqdCAsXvvz5qq zXES1I&8{;i92YTLnh`d;Y)dNj;+C>+R)J3oY)^jP*yq#XJ z+kgKJ6Y-w|2a!ELoAK{BB>!y-@&Au&*nb;>iY~U!{~J)F=4fDV|G#-&J*s<3zp@u! zv(O)dtgzUj*;9^1?!EK~Ic^6#S#5T|kQ$GG_;BV{O4%E1IR*3Sd?ZXtdgx$*3B`~5 zL|kvN|BOUhU*H6lb9aR@uS$`{CgU%|a7+i?B(2vcfX^rGMj{)X@}sub)@XoTjlZ)GE7lmNq*-so8okWaxef zkEgpSr{3&7{GzG3g0aeVl`e%= z@~lS;X^)JZ4=A(3XxR&39irBp{@zJDXnE2qJIN*lHR~tu-~$~=V)P1oIo6bGD)^-P z7BkY5H>MWy^cH~#RJ=uEQUZdT3(43jn%d4>^u7V|hk~9G`v@XS-=w7A9%F=A z-0*j?xY+{}zn~vfk8DG?wMlFiUX7r|2kVsg$^V!H51TcFfaZ=!;= zc&EuHYgaKandO*>WVeAk`im4*8{xJ!}P`EjtgWU{AOq=ow)DWe`Pp z;IKC`V+7Wj@%DRPS!`V22@z0@TwRv3=H1s70#&gis#Ca5tF{7Yxx!lKBR+QwYDmtlm+uAq+TuDZgk;m;M|o&!~E#AHK7_SxwawiNkj+h}n5X zIdeen;6F$#5v`QD?sEmM<-IW1L#|;om^0g|wNT$u6IFOy3-@Aq%OeHOBLC15dlk_ZKPt&S8$_mv}++)7W`*7sbwyM>DW7TTP z@ubiED(1HfyW6RK+>W^6P(U4_g{spNQno8(@?)zNo2%2yJ*_PsEc-1D;^8TAw7E&3 zsix{V$NJkSmLc18J@&RV4%&$K{r81#BRZFl!upFJ``0;GjQ0QMM62d#@qZ%-chvXn zetEIK${UAgp#tOD?Ux3P){cm_3Z`QMM{JZK`FW(9`V@(j;%iTvkKA#sDUqr)PrEqtw!Vm_mhGa((CUOr^ zl5=dRpupm{qr9hm*px^}xVfP+1dO0szhxc{Cfe1)U{DQUbSz1c1#l&LqjtEjTsdqAzvEaCn&&K4_uj1WLoHF{mI=hE(KSGkv*QqQ&SL zkGx^2ny}&#sga}lmHS5&(Sew=08qfo`9=?l@lM&ZIa|x{ORDJVyMhU zOeqFtUb>0wL2c@aV+=$TW!iK`3l#`@CR@i={Y-PNX5=)D^1TcEIlO2hX*2dVO{g=; z`*??#SP5KN%(+=koM5uzT?Vg^A27wl=M91=16lOss~}c~j5Bc9(WO^rp6eqw3qn&V z&ob20gv1b*UQr5p4Xs`>DI`Wj(W8PD_Quvn>%C;fChlgGXn7K^+>Qg;pJho`LrDvh zFaAh%<`HLsAmX&N!tBE6hEsab_)`!TLu*oU6L6rCB8s`~dc2P=V0rOY;j(<`Ln`p^ z_p7%L%1jvD*wDM_k$b4wfTa|_KiTTw0DLhDN{J>Y+>s^v8AE@H*@V9z$fTz>q9<{G z-AReL6qP$Jl#)eRlgRn|#p)X(V3GNt`V_6 zW8(+0-L1^<69`+f+<$tyFk+GpO5|*(NY6W2Wb$6?$sigC__nz7X|F0BsD(|j;%rEH z5Y{121j%nYDc#t##Bqd+zVEQV{qDWl?Ok@7r2||8`6CNq!QDZ zgUv&`Q2hoQqMlyN{8d6uu_n+qL9n}T3b}{&Fw&|SFwk8^F7FE_IbISNS8S&&j9sQI zh{*pSW6BQnSJ|SAIxu1mqYp8izZx+1{^_H~ui?6e@#qy@L4c*&Hh^5?)8yA3xG|Ma ztEF_nhH$;yo_t;%GlG#jh`dyER8dMB)IzWrkqBtLLrLCyuNMS3DIO9C-TFZYF zgkGI-^pnE5m8|QP@^J^4k#Y4}gHuT2Fz0AeuyUA}L*f=3GF)I|QA^17NULP_KlA#r zYLhB6CK3TLRc1a32o0+Y&JwJ{zneJU-l_-n8HrxR~3Q541er2TkSx60L(h zU5}_R&8W0b0y_$w}tlM zzrPOsYi-hV>98aJIt@p9BMR>L-m~v&L0>mo@ar$L*+wn!)#4d1ZwYv`Iph{+dK>Mu zW-zg|eht4){T%#jS?$cWf4M!+3F3PY7+X<+z(Mj)w-OiM5F8)51#LdjTXN zYu5i~S1uCm@?b^=0C)i&LoB&|dz?Z{D4$X=Kb3=j-Jgi81O^CB19lNP|j>k*|#ykGkD>8ZyH zjMMwcJdVfk?Bs9nr0HWQ>}=R|oS4|pm@nm&2JL#gIC6SGlCD_=xg~>1l_4eN>NF^q z)?XCgiv+|^6=fGywClJDMC|=wU>;|BZc&uilSrC39;(UE8cRU-#>^el`q;PZNRy$) zz>*Wg46|-=P%X0=?b@OSe3I*)Q3Y8nxFrq%>Vu0^S>x^n;khi+_osXN9$hkRq^#tX zYkIY%%b~TS$Ec~RC_I0C*n6pjs7}+Aw>8Qt{iY4D7a;o>bn62fEZBN@^=W2nM^}i19&Eku zk1KR+*E<_qZDwg~M^RR;_jI=xtX(RH*37hup!n!o`{!bxUP)dw-& zsMpZwoZDN#ynceh_!GvYE94m~CJDwOz~LUg-EH8>DJnyj!YQt@(%<*U+}{T>B#Vvd zrj9Eh#_7JCRi;%TzKl_Bq{APBAdi! zDkFDZqkc%B_>w2hS)V3&lswNV;!e5}xUbT_z)EO9u4!Ld(rx&=25)L`T{n9dUDSD{ z-I3I-mW|pBg|RT%X&i&#TM0pYk0!@ACLTSKXXqXLn0n%C2;hE7Dfz`Rr1}RvLMPL; zDU<+Crzg#+k-fB4a^>@r1pr?y4wiIpP^Bu@CL9KJA^CORK&r$T*I3MAlrN4ffP4Vo zP$-cB(f#Aengn8&FD7xAEXqpv&tY-bhi7bTcRvn~-!mh8^RatP$g1Hjm|u;6lbBkn z8#s0#BJ3E0_^}f{4EfhJ=BlWhg~Ij4Som%%iM5xwZXYKinzA9@R@NoE{zHo4Pv#?Q z?TcVBSrLRYQ<@&!Ji4_41SiqLgB1JdDa63#Z+{8rBIOjK3|KtYh0Rqk;2o|aYcgE| zbdPj{((d@<)x>uI7W(6|EiP~>%zF5qlZhjyVhfTnj6Au<7xi-(+~)xWtQb1e@!Nk5 z+<(k2stLXYAIohh z9G(8d(2%u9>Kr0#SX_t~2-k>jDs`QMZRd%&PD|A~(s4#29tk~ROB7MbXif^y5r4tG zET1&;D^yQAi%#4hB$Rx?wkVW3g0w(+)TBI<+(FW`|>@g!4bc2O-X4e1gVX4 zO<$-EFb?jl$Of`_yDTK|__W2_APk6Y`bk!+ppYB9CesUG(bz(T2g;`Hi7Xm) zpw_)r(c!U)*qytcp{C5kZCpC|B@2AVr!YH_?wwdZX0zJ}g?&@=m04E56BFX!Bjz-A z)>F(spgv(#v}gLd`*nhCx0Z0f#8>~&ceP>i&73dKa;J0UoP z5A|>Ouz#!{Y$@B8pnM`NqoMF8Is&=eK~?4`x%&6P`hlW(tO>q z&y7T%iT2ni>D${sVA{Y-M^J&{h0GcS_dfX#5072<=hriI{`W-RV2-pVc=N^G(@B^J04F2f4yL1+qc$jJnjP?k-lcacrgx^YC0FNMQK3bd`&)!{K= z=>z^|q*uFFMR3IDJmy)bCF*`SvQ3u&pB{E9ljKR;mcs%JdbJd{1{1F0x87%%R@HxL z0WZc1a;3eK=9~HGIxY2Xi$_5;qxUeg2-TpCE9+2|B^V}#LrhWRNq@Md=KwO+OCfx` z0VEitH9MTGc0{(pHQh`Vxt*3^UowlSQnbRA8X+5)((O?e&)(j_zmPfyE*)KpfKbYb z*vhE%Rl=9Py(8A@X$x)|_$T4qJGaMG>2%Bu)Q$G`(j~E0KBXTb0_r?u3R<=6vL?#5 z-lw3^dh1nff(J%b5S%krZ5=qvY;6%Z-+Xy4wot4akDqN5MYiL&R=_}o6>j_d?~mby z$}^in3TbAVE)1Q`KCg+1p+49;1$$$|R!kSCfZ$(S$!COA)8biZLSkx``$(EZu8i(V zhW1a#@Q!+J>nw-j6LY=FSnaLoEE6}u++NARW$O?xZDvE#N~?u&**~g$EXD(u_@=bx zYjMo?!58tJba@umb1JUD=gWjxWy54~3`Fc(L1hRoT&uP7rxMKyE0rHD8bi$kfcH*J zmQpreoceprCt3<=?>SlyS!w3dSft|PEUrbRUYm^baJ(i`s?fS6P8Fi@gmtD)q;Z^f z9Jz%3gr!576TVeA&=%s2p4Ot^L-jo`2Sg**7a}fA_AXiVMe*R~JebowSPj}JO{Q>u zZQ@AJw-}||MlW|`aTV~wNLu0W8)C*P{nB9u!SpnAl6d*-t@O>}gx>5`SJtZeO8*)t z(QiM7&NCTy)+NWnInu?9^@4@R9@_q3*pkDTBbP1JSap<0m>-Y!l42TnFjg-varyQs3wDZ_Z|I+Qbl(IjaEXOtcR zB_^Uuk(cL;=bKr%U1yt3qMQVjVP`ti)^yyigEeFGJESd z5yqP^h`&U;)YI^5qYBom7?a zBy;>7HCo6>&SNrS4=3i*0YK8J-^JI0yfMf=&8$$GFV!>wlJsb-@hxGIw!eynlNlpod0#-h_j!_+>Q00p}85<)yI;}TJ>#ph{qpZZ!{~zlcLTDQE1-69kJ@__lNnH*4BCXDN!GJ%}ts~ zdFGC6%$<{*i81Mryd>=<+Qv84Oa|DZo0~>4twf1id$?*G!!=8kIu$mT{%;p!R-52B%8Wi5v!^uDKp0+3a{Ui;&H2FuktJWZpNe_NY0Q(<*cf|$o?m+XKe%*w zkB`bg4PDqcg!OFpJTFN}mGNh4Am&tkH&7r69C$Kk-RS{AJPr-FdCl^vdeg#)x-*t> zo4M-2e6234?lnxpCRwJi7MU!zOVJ#^)*kfD5YYDNuv4M}@ir&Jw->o540t}t8B`_aYV)r^RQ!B zo+u_IH`aQ0%;TI4g{Hr>cEdDKD9ioLWm>tNoMXB<`!+5o0bC~N4e;9*?XHH+U%@;P z=gzVb+qTnyo-SG=DvE(lKgGbKOL{d7PonlwChGR^`%CayUhi;vl1A6gs-I?RlIZzTy6HHf4n{5^YKBR zVN^1*1FGl!#~M;^ol`_PJIO)e>w4*r)DJJXWjUv6Yrg7C z*nip~QvYW-8+nqvYD|!y^Q!DvEj4BgYTL`?qjWIVw4rlM*y>eVzvo2p*|xXt>;9Iv zLgTpj_qDu0k5;sg$UF-!0g~v{TdNd;jjCCXd$G9PD744y4<0y^b$No-S|v8^13dnA zO5f!t-$nED>+ZThg1U2^j*p5h-6fi!v{gNf;epOtbq@9ubvu#0YSr$5#M5_6fa6MG zaYv7fnt(UuvC5_xsb|#Jbf%2E#hH)!T$TA7x|&;IC1bc2R+3xUhW6&*HkB|%-`@F@ ztGMmwet;8J)dSI|*n(=PW@DbZ=M?pJLvP+MhiEn`{>9BJtWe|>#*1yko9c>iZdIH8nV+pRz0ta2>>Yy7aGx8oq`3Q|=p9G+GP=uC*adhPp?p<< z#g>m5y;tl7@g&yU^+TV-``J99FSfUi`LP>k1H&jUXs?qKHxE{`ykQHUDlWo;NzEX# z<+1Dip|PMnp(>k#5Ihkso%R>c#NJBnt+_sBGBH0^(zwl;@IjI;aZh%GJNy)yR*uQklyb%)LYCy6MQ$N)BSS~ba@gU0pPs3k& zpgAizEXF@g>XyUK)@s1ETv9nJLR$__u-tEgYG#}?lb*(nd1&Aiz}wa7(hP_vn64MG zMNJcgvT}2fN{Gq6M{^St6W(n}=%h(sN=C+m%-TC0fR`kBvTG|3-Z@he>}58X@8S%L zUrsMKiW^;bvlRzm(mA^#B&IHhQokw6pmM#WA*>})dDXPx}jYq*M zX@2_L{(&c1SjKjNVZB}-aw(cSMFj0A7JUX3*XP``2qhwIeedAn?Y$1?JVc7gOwHz0N|J524G}oLuY1ZXJ&0eXZCw* zqx*k^fJ)AeCI&YDb#^OJ)3L)6L-9FN(|)&bm`D`9l!{-G7gSUPrxdajQBa1R0xi{b zZDnd2B|q$YoxY}~218c!p{M3@o8@`kj>BxD!*-V7NwI6zrlt|;A?^7U0h0L0TP85V zHWG)1Fmvy(oN=$BWZ(xb1(AFXxUiVuP5{p2t}@3-v7A@8~mPz&>2@xP zZKc2a4{E0*OV37RPk|JeL(7C4iU=CVf`a$ zJ~%UoVaq^;=WDGgj4or$8cC9w-N_h#nC0#OP3bp0>DjLLFQ04Z7TNe(|C=P9aDh74 z-7I$egZ4_8N_iW%%h%&Bd1F~)xL~gL@#65$r{S$tUkGosh~Pxl6o{zXeno_YO9@R{ zS9(D&9auglQ90jz?1aYCbSm8WdNto z^qEv$p+Cy$w5xmrlI}I@l#pe6W23XZTvzfzZ2Uv*r}L+RFMAk{8VY7gMoThSCKY7` zS!#Rx-A*qQ{QLvAs9#2>oIa%j1dz`?2ig<$=eotDfI-qZYE}DzLd1pUG;{(t)(3_u z1w~deh#M2y_9Q&iGoAWjwo@mBw~RcvkE{c_#}NfS^hm;O{Yq`oy2^f&*snEx_yiTLo*E8Y4_t z`K|+Cy~yVVn!KBgT3T83*+nWjj&d_ld)(}pi}*!9&hXVKhvYcU+rsyP4)CB6iP;K- z7q;5f?PZ`Qe14z2GxlKlM$ZGqdQcjv!i>lnIVi6@o7TnWma?f^%gvVjJ|tRM^o7Yb z5A2dd3^ri88kZ#7783l9Ki7J7DjCh)4mE7$^4Wt?X}gJfH@!-72`(ys$78W`4svLZ zpq25Mkb>fm!-+{{U6+9efJ5=YMsz}-<7kVtHcrA;D%@_Yy}Sj-QKhg78FUx7QmZq9$+ZFhu%B9z%^YQY%%ztmSJ(;Lm$HYCD@<$!x76SC zK=|$mo4I>NIq0Tn{C_Xe3W=22O}pg^xKan&f*nhh^}Hgp6qwrM8(&KCRP=6bN(MU^ zV@mYzA2ibs_T|Bhw9s$)quV{{Q$rPDF-K6IX*rsnRo)=0pZ`S3W-0oJXxH%Y6af3d zk9a#;7&bBY8ot!IwxrzwfT>S~qF&h2ERZtlM_k8 zs;Ir^_Sjg@LS6I`mC_Xn-diE~>nBp2tL{bQmT9t1WtKo4VxzaQ=BH&Z9aW2jDzdM! z${?IpnI%^@fBe-E#hIj*$tX=4Dp>kONg1VdF+Yqek(x#An5cI`siZ&j+9l7?rwsB4 z$j?my3elG!on-X-fPFG1VkygD79UJiS0hb3J1dqeau7$p3c5F@+ijaZPL9srtlYbR z)idRIkJ4%>l+QoZOGxCnH7bn&)uR&-_A`kol#(ghDOj7AKn=Pn7CEPCJSwP5o+-&# z1Ja9?v`Y((aOtKFAd4p8`dW!qH$w%Sn6_1EVM9p<@B#mv9p8uEMD z3OM`Z#m>y?WNGDQ=l0v~Rt`4iE}xFCRpc!6F{g|8s3nU5=A{#IJO#V4EphVcX)sDG z3&t*(aeyt}R~S1MFDu&@OyE!|LTJw{LZ&nU1Cc?JN*Huup(#Y58j?tX{qzlU|gG{CEc+vR6yxOvg$5(GL`8T9Z$+NG$Oi zOM$>nbIE*$7wcaz*6x!*b8Cik!Lg#5GS(5nisdIxVyuW_+)R&4GpTs|uwf7&MKWSV z;3tyx2gdgAk$AM?c_*kabpV=;JaFXZntl3n+GPb-Xm9mO5b;PrJ`JQ|JRO{mpm*gG z(&&|BET!|TaJ*zy!|TgNORA|8Xbue4#-qC6km^q#Fscec8=^w%po>7K?VVhhZ0@-C z5$TbtT8r*a@z**=o|IBRLr@(Qfj(@dxBx<2E+B+Lo~#tG0azy+-M@-O^fM|*Y8a*@ zD}4Y#6##=&%1%GlLSs7Tz-x2wv$N4yg9EO8Mi_`n+!uWcv7Bq26hTF(_s*vOIxld9 z3qYsJg|{LZfoJJ3zA70->)Ao7;x2Rw^x|9&@U;t3M5kQuh<(#c?O!25hBbr0rEG&&r_fPNp*851+ z5%jb6iDyfJRhbkDfV(MDd2<5w&clxKB650V0#30$#gz$U)h1gIZPYBpEBKoewBKIf zJ|)L9vAq> z{l`XKQjJzqc0pK$=10Q4i8Rc~R>6%Z$S?$0q)-!G5~VNy735+kjDy330V-$gv#?*d?I3n(1F`Rj?PsJi+D8B-qnAD29F3O0+&EZ@EK!gL zUL}<&68sw+_E{nNjnLnbX9S%{T-zv9u;EFo6ohx5m_jD8nCBKWG~mRk&M8spY!v&o|y07=$<> zx0zdDm(i{5Fa!63JEmTqpoX9Z`Q9vp#XU4_i_y6;PMXelf8C;mlgkX1WP!fqs$L#H=7JqlvojTi!(M-eY?{8<+$bdZ5 z2{)scM$hr;2hXfB1yj>@F#&V5x{vIPC=-gx?a8#$d=MMZQj!GWiu{StYD{gxLz;Ck zc_Y#>bFx6RDSQWm!XUYOr*sS#zz#eE@=%yD!R^i*_=9T!0H{55yPApKVm{3$AM+6_I z-nz$bs(uiSQc!a?y-Sv9JukmvQ9puIqGR+6DyE>hCzwX;VFtDiC zQvDXEWzA+5?l1Ush5T~)9UaJl8oa~x5!|AnS;2KbxC|92ZHx0s=Zrc@f@=Et>AJ)T-0Fl27h6H|_wJ&d zup>h(0l{no^`;ZXfz&LgX@oFG`)jk`KAWZ+FQi~JRr81Fh9R2J`-z#QCpN_Pvxviz zRT7*6w$k|gb8CXwlwFg${_tkyY&@gTF{zTxd!fXw(oHH%`>|!OjB?R>LoZ5 zew*2_GNdE#;aB7^AdCiJoJCWm=S`+8^3UUhe*pjS^W3r=1fInDpEP@7*D6ISBpyV1 zIfl4-UA56YQQ`3fM(Dg9l^6vGz&?82n=HSe-@>9D2z zYT1MAPfy5N> zUU*=@6NdJ(hye%NSu!0kqo5uSLPFO+4m`Rn#~H|~z_IpRoh}d8l2O8MhD#O(OF5wr zi0YlIpop{G1^{_2zw_eIh6n;m0m>}A@2R4nzTj0tgn|ps7>q%R3e3cNUSE1Vx^Qs+ zW=Cc=bkuY(aWe5~#46pUvpGeLwyJg4xJIea>mcP-=YfH(&a(K@mvzP?qSF5Z+lB;rnx?)y zQ1^%SDH-?$*UxP~dRoGq4nvcuzrI6_i*HW9ndE}vaj6_Ji>#e1dYSLLfHOjv{^F6+ zRdh$3^cF#`%vq#%bkKB|$+fC1f2^1zouAbq+GW)1d@(>?`U%D9mln`5m{L9P3L4SK zi0NM`O$pB?#Qg>|hoQaZ5ZJ+#Bx@#5d<)GS%{Ag&ri(iH_5u>?3h9_ee=3-vR{|h# zX4I^n4@k~Vfy2YVzKjy(IWnZbG@@gZC|l+}9^Zs1$^$Ce4^NcFw7p|VGEA|BEKG?q zxK09?^;4;?TfxQ&$g(x95gW8(x8E_dJTMU838Xb=_mb8_R&YM;z2p~ZD@QctDe$4% zVNCMRW$FxT_TUn5y_h=b9~6-yqPS{(T(p7U4KweWQT?5Sd7dR;weP4z~)KYGAV&Xl#wM*<23P;F+XBpz$=UcK_LPzm^)FD1@n`f4BK0Kq%0dISC z2+raq0k(}NF!~3$^Z>q1U7Rxb2~05fcgE4~c1l(Q{%|`C2)v(dN0#ej8SbDOx(?J^ zG&tHF{psuag59o6Nk%Y>em`Myi|&=sl|Q#~T8IWPcYXg!QI9@|=VkJe|$SNQNKi3fgRefSUPfD;8C^3(H->s%;q>7_a-lOI(-7%X<%G!5?KSp!F zs)Fl$(f*2==E03B3U;QxzJ^TrP@Qbe{}W>vz~iP{Sd-Zq)XkMT)x5!e5w97sb<8!l z-Mtl5G87$7ncAT{2jJ3-gH$;apSK`ueF8+93BY4g}xk(9K&1krUAAyc~+ zLZ;-J6~bU!DpiPHFfGf#l)(d9R@X1r``kVCmADb3`NkuGz=d;SL)v*gSTkR+(LM}v zuzDs6CoICJD`3UCCe^?<_=dQF%+xd1^8nut(iHDryD?{}^Vh@gP!tvp|!k-d4xGe=QmpuvkZ|whb6?T;9H8D514#PrUi>*RE1l(>s?|d9+Qg za!hOiWW6b6-BU~ymJweQtX$T8j;~uBIFPCloDdpfY1wkXt25SlP{nZAfx03B^Fr@z zk9RJ+5OnyG+~_n2K6__wm^Uu-4%OpNhgPvRXIg?m>yT-1l#K;c-6S%iU(OLyo{LRN@2eOP1mCI`D{xYXiU&; z{?ZyU>o!B!1b7l*UN_hPcrF>cV9!$xwUI9WUxd9=lPFNLEZDZK-L|#cwrzX2ZQHhO z+qP}nwtM=!=SEz_nVGls11hSrvQ}nhp^fY7=)i%AT+4^zd3#EQ=@HdMDMBpjMJ+h3 zvgIX+l}jfq>{NS9OuI><%e0b3W@ZIIoThehWP+wV(q?i20UqT+-Q)3u=U!R@+Bu3t z(%BS~2L(RyEo(u}<}ttzIwUv}?%Q;Bw5zk!^@Wo@MT!+)AfH+&(r&dx8JNXE^>&(7 zd~Y#^aqB=T!x7i}nUlvF5Q_nY8Qz}hm>G#f4#i2S;*+^R7}9UaNMVS#u9Co-Kpb%g z&+=-c1sDo#e;)~C{1w2%`zm>#?`8jcvfuGcc=)F_#^U3j)d=k^*c}k#VLjxO?tq$ z@X|A5)D#t&@>Tn(%sDA_qK|MPfC;->oU{?OnDZLNY@k+%vgPt=hgaujT=?pXqdzcR z7m-_~+wcoxHT+!rqs>@L>f@PRg3w@Gk(5fH|nnT9$&| ztk=d`>f6vVm~I}503)XW#j^TlC7kc{X0qX1aZzABP>wFMl6{h97CNRtF+wj7%iRu< zH1`{7=vIPy^qYD~jh084{Tf=~JNDH(%-=H_2rLYpqZsErJqGG*ILd}=Y01fgSV0%1@CIR==ZZu zGNxieGTPyup!&5@d2%bM9}J1?)*YB{d0{|deOcY6-F5=|D&s#5S4Si@a0aqtTEZv24bs!sK3^1l2Cm9HToIjiCmw;;1wG%0^X)RF)YTm!@9RN1fX>+_SI&zU)+W zf*61!$ozkZOf@}WP9h{SNmZ1gO3i~{vrzzw?6Ww8g9YrR^#NEU&*aL&EN(XEt6@Tb zB4Kp;X&o7h(QwC6C||7=RGz18clmy0BJ}Kcgi?!W^|4oKDz1t11DF<|mh1P*Uc>Qqfxs zcT2OO%(2zayH6ZHUgm*zP$vyc=-a+B!M$6dpFIGST1$yQnDr4 z$F)mJq3axK3tp;FK621PCq;9b(3vqw@7NT%R!92MdyFljaFDR8xv$DrU@K}49@Gwa zqPJ?V5f}#32|pOT{z}U^y|Dn>e{jP7sQ#rwvpULcQ=2s{p1Fow%W?UrP$o%@_3%Gp zw$Pk2fkrJAqAzJDQpE}tc|!WvaaA@KA901D*CjEcB*->GgrTUFmv9Fo`@ji_v9&MA z0q$(1_huqKEK1r6Su|9i?;wH4fq61oX=aOD&{vu}MMzej_8Pubc)K)?&z4Ht$9P;* zr$i3Ss$W0MNpA!H^I;OJPbOf4n7}Z9(~4znF=U0{6m0D&8bq{IpJ=OR~zB&-dsUxQm*Sv z%?jOF&AnrY<^~JEU;L>qvc32~HEi8UbjgE({6>{$&}b2}xL%z$W+&_jrNAZlV|yP}YvP4tzBJYD{`9vy+xT-TXZe z=x%dceO1~I-X5S72{RSsM1IS48XXbRPsl%TY!x?{?g;VZhg;O~e<wHV zL7B#*1z2`aBZ?|^m)Qd&RbOqvucDsyv&a9vXU1!C!io&zMulN|Qduq;)OkCdbPzTP zm#$x^a#d#)d{T^6+cD)05EO`9orq1BxkhhcRj%Oap8*dH9|SbA{H+hIVK2g`G67QS zE{j-l{ZQ8K2Xoq$gu5#=_F3_~uDCf%Rxsb~a}IwIzAYxVyckO?x42*&qoSt$%f&oP z<&I|t`j|?FiuD3e`rt-vXzEgQ!@rp8QWRq4LM zlI9}9<2hw6-S#s*>=mmYG)ww@+JnWrxRwUwxn3=GYZ)arSAIR#Q>AVWwqu=9PbFoS zOqa($fZP!x(;^4`u5?X={f}FRUQvXSod+`x3Sczf)9dN?FN0@wWvaGM}B+KVM@o}SlZ=#)fA zSFJYJstOu2@p3F|Hk|rVDhSxO9z`A1g^ovN->1&b2BLPp}NMpQzFJsBPD?#`@tXB-aY`lVWZ+DzHExYtj2*XkP@?8rS@( zREm0)himzJNpt)PIGqF^hHOB&Dq5%NDBGa+*@LgV?ae`XOw^h57Uf`RVMhTmMWW%9 z(zAO4$>1fg?0Ls>S9@G5TM`jjxuE#``)eHpp5*TNXLZsjBD)XdX>lT(W1k%~)5dv{ z)5!V8@6T-!qf4xI8_1ItGLn{gJ~)z6(8RdPB#&%u7(KkK90tO(m6)1Bg-sksd%Uq+ z?ShA1mLUFaspP9;^wP_@Q_7e-$(R6>?4HcXvyZWdiy`q3dUrbb0jL9PoOgrazCDzM zfI#;1tJetI$_@6H6Y%SP|#YpwkIxzjA>lnP~_peLM@2UHCrph;^q4$wlA4b+PivSMp3 zF8W$@w=X)y2xO#mL5!a{Rj;6E&)f>n6rUiWb^w@W+s3uY)E^hTz)m*89Gftgh9N;x zz|Yel)|K|X^Hd8LY*D#eq(nZJnwcgf3Sw*n z#2g<_lZ7x>CaO6$c&W*Twmzzk;~>ctns%6Q-@}s_Y0^OWIbmq`TeheEV81@;W}F>n zjZ?cSGMlfC+UN3J{Lxa|OZ^K16LBZBV`Z)5dqEo9g9OPH_cF8(mU15Bx8Iy4{$**&0kX%X8T~m(R0h*@Zk_ zS~A)SZ$@QhhLr*X0oi7n2TS&D9jYw!i3-fFLCKpCzCx?*ic1$ z;U8kX8nNEgCJlLG$><;DQH%E-gxA2R2|Oy|g>D|WysC`9RaVW5-Umc1o~0Ck=%s4O z=gJI+AsLgfbmN3%5kX_ADh&o{a|3~|)QVVb5&9}HKQ~BTeXJ0^1II_}r#>Ty-O5KK zn{w9U8nz@-Rxek}KS2NM)L0%6D8OY+J}Lg|w;1#1|0l6o(8k)q(ca0>(Z>FNd;X7m z~nAo3~*Ru$NN=@v+#>NG;W_+W@TaO)L++aGExmk#QuFr(a*m=GYz|Zd$`FtC;2`al zq-YE^3CZ0r(_tJFpA;ge8FDI@d>-G+Tc!onh!mc^j>_dVAE4`!_i+>x*nSzY2~jn4 z-RbDOgdP5RK!l;&b7W(?i1`=*{B{TK>H~l6;$`CmiC*q^c(o!F2M(kdjrTN|WZCZo z(Z|vhquldL4F^z;Frmn>OC4g>5-CL_)}jq0jG+W!BVfo=gP3YmU!RYFJ8#x7J)t9p z;69s?!gyms73~gXhBDccuLv47C~F~qkDEVyQyfc+K9Wb?vUyeYakVx8%VVAw=Ye(0 z{ko&vJ9veTVG;E)VVxw)g3ec56rW(Wh2Jhd7iG26gP}LEAAVv9waVsAHG+;FkMMa7 zti8oXFc_0jQ)O}`ZJ z$#i6v<@^L5c}teFC|U3E9+(!gySEp55<9aH??6AUTU{!*27&lncKw+VRP)e~soVg@4s4oqY4^EQ05 z05t1oG^X(#IcjZS0164O&1|5cqX3_qWCFJbD9OMH2!&$JUTeV3EG2Bs)}@1-j}lg+ zS^^HXQX%>LiCkLh&2vTyQb`BXcX<|uak zG4qx}QqTo803|NRs%ixzKe%lSW24Z+@WK#!0G+FzTNF~qZ347H`p6IZOWl0!QhIFSM435sBRtB;YGU) zYxIv=X?}z7<%kK-pH9aqb6&K=5m{ep0_`*uc~O#ZDI%LqiZ!6W)QoAaoU|)g*oft6 z>V5P5gL-rJKsQQyvDE_&d(gRXm>V)ftb;WYiSD!qMRhmE;r{5@0ySU3dt%8^tgNni z0@%1Igog~(se9DnQTgf@Gllne}$wh>;x*`0z=NhDtAucBL3jV!tpMOYe*6(Lbqrq-(Eu^DfZ ztPX(6;+0+vq1hNj%Wf;$jX`WLR#A7#q_uHi+7md4>*QBl?u zdyiixD21Ox8yM!V!Ps~mTQbTG%aj2#5t03ra+APj?-Rtcb{rH=x+rq!u}V_^IHas} zGmc%t=*WK#PR?H63O9&&r!5d43wF$7@9vZ2=o^c))R(?vnUb~W)>({x??hw+UnU$v zal2ZmB4H9G2JKuYj;uMc>qW3;tPEh&7Ny>9(y;*REm$QMm|q0h37Q&L{~sB;|4~14 zh1{H^0096T{JI7Ge_A2`m-<=G-q_H_+Q{rb-f92!9n(qiMs|Z9;VXLZ$5zP`qEwQS zNBSTHO=6@z4<(L%P?WWe7;I(QvLrA4b;rd{Vc8!|S^AQ*$Kz&;oo#z3z%aGky~<5p z{kB-tmNCsU*rG_n4`FQbMnP*Gc18|sGB1wZycShJtszoJ&I z>rWO(WRtnx*fM@n&@jHAEih<_!fU*~m7nD3Vm(^s7);(#vwaX4hA0>=I6_lx)8-7`i6uY5@B{4;79lbq1UjW`dAS&Z4&j=gkZy5(MT zgQPl8JJd?hBEKXo3KQj#_N7gG_2|CR{${Cyfw8u_bULgK!;N4fvmF`ygVaFzRKCQ> zT}G*Vqf0s5{Kt<^o}iH1Yud;K)8yVyxZ;P`Uv~&MsR|o};h0;d@S0&?BP`VZ6b%=w zQ1Tm?p-vY%{!Ie;((J@Ch6B(Uu`FtA6~aXGAdPtPQhB7mXW) z%(zpaz)$EgNij^xEendUwR_;fxean|*B2mIxHj*pEJ7QLp@l`b2{gn;SIo(t1@nBd z&vjH_uVJB}WO!gzaC8#fLO3I{qN6kxnur4$9)ae!Yt+_S5&I?2y1Ab6&-OrF8-pJl zVo|&{z~_sUp^-FCqqitmO4B;Bl%^b5W*^pjz?dM$uX>!fJY`LaT;V#JX%mq~+dFtl zR|%YN?L0D6i9wR3EPKBPqP|aG(Ek?z{ZEzufO1iz{kq9$|G#`R{*T4Ckg3ONfg>d0kEXI0uadS~JDQI)IPH0v zx>hJQ;w;gz49~oAdoU@k0ecLec4}gv)K$mIiaDE_o4a}BzvzrbNf8HuL~B zP%NI0)fP`zChY6EH5Sk|xQ=*pNncngg3j6nC%_EDd0Sv#3& zs1WvKD7lz%^!9q<(HUG(eSIREs_tIcxm)^x6jy@wK8zW+1%ptuBQZW7XGyWA3zYhZ zJ(nP*RD@KZdJs8`xA!8G4vQ>}H>oneHvMI>Srkiu?Sa}=W9|(^7y1C4x{U=-jS@LA zgx#tp68ZoD%?!^(Hp4={ghfn(q%0d(m5_EyYP8^GDjHfF=Z%2y>Ej>bNLEriwiZ=t zD2AvCgz~%zL8gz0xP;(vo+Ma>&({fEpsLBZvmnbR`w+kEZME_yGQbCm7?Gv*JveC1 zB%CNPk@1|bHIz{-wNaXi8GHLjalV|E_HY@n65IW%vulylSRID~0O zsZmjJML)UnE{TtCLoL6 z1ArfDy;6oKt5)pvI5S*8Wbc&a+ebH|xpTy41Y_PjZ749w6^hIT3MR9*y7o1D#L30O z%#PWf8Zu%N-CUwbhCSC=MmZIDLt09&P>9`5<1|6*>Pd~iVOJjjo$V{r5z_z{%xzh$ zr&K`(CrvdbxeN9nSw)^#1z((+STyMiJE)`62MqL#obIc||0S_4jt6$k8vESvY5R%d z%DLEmGlP^+sTGi8jxO|rT>ysxeuB8Ecr;FO{|a={wR)7oofltjW;IigY~d;A!R zQh)6O7F`9hkTE5y;3B)@3PdP^U++-7&V+A@XUGz^vS%5CGflsR(wZt(_1!7Aed`(f z6(t1Z!clZtb8Z!NS$(qONyLBiq_+Ls=e^XJKV|iKtX#1?5Yd7|JM*pYz-zTyX}+qS zN5cXJXJic({seF+dB-r{Vn{SP1JRBR@%psCHvE0rrHwaqe=mB}IBaDM7nJ(b7@@Xj z;%Bbc7VISeFpd+XRM405=CP{M>j_C7r6z@q!IVZGep3FR_&b)o4p5R5A~w`|mB>1^ zSD1(L27hphf?#*F#}Par-N34r+Q)qzn>FheS#H+dndzNeO9*}lq|h#SMt|-fBI(=jFD;9E%zF?UOs%md4BH&fv^m3ZNgLHbIRBAgM$^GhO~!9N2$5l&feC{)23 z>tt^qF3Z~?7FXBoI=iBFE`9$Rr6c(;Y`pG07;atY4W_YZCo~vY@D8tr*PoTC8keat zJs^)(hU!MDf1WiSD=3f%lrP9~e}&bLrFcUu5O z#jDD3X!w9LglIVUoq;q4H*tgu$4T6MW>pF^QOrdSBIs`XRHf8=-G7*UF7+~)u%ZWo z7@>kaOiv*rKy^%iE$zV9T}%Hk1l!ljXNFuWlyi~8maVB231lHLkE0XFh7d~awhz!- z#9T(>$la}&>>$p%6hhxrz{@W(PhkMB)z!HvHCxlBk1VVarga(jYxfq>j= zXx{)(ktXh^n%PG`kT6Vpnv|zd>ZKy@Js|N)>0em}`HayK~PUl)wB@V_2Nc zAx0qcdSw>hHzLMYy*r<{w+B^Ch=>?7K%GHS)9H0=V~bL~v+vW*(XVd}uDRQH1Q|59 z!)>pqRO)3;A{SSWr6F+V*EiIVsLofiQW`Hh>m1I+XKgY1s|td;R%JggKLWz!N3o>h z_PBSZtQ}8&UN_0=KM;j;q8~oo#`NC05&`EwNOk7EVT+0OU0Z5Yo9@q?Sx3iAe#>u< zwuWSqA3Lvn<>y4S35Ae?zYmUAuyGf=1G(I-XGjg=gWx9CnrX1(Xk8k}E}4u*bLKw9 zeXPEyCZItG?K&;Ae{>l}w&gaj{_zc4Rq$`Y3qH6094##Z*$p>NVt|pO9%{mxmG(gK z72@WY8hoTt-DiSX%$1SN`r=;S7tHqWivd1-r|9jiZXFTYdOB%nDq+nARqd~uHV_jF z#2!J-K=wo1eSOGUuT`7Cb#g?IlO#cob9!@lCnr&2r#FMQVZ)HcbGMp<4pt?@7Ei(2 zQH1vBXct;8H^d)3)-l!4H+ok*2(5(%v^Mx=j7gb}zc0QC-DJi{kH({S%?TR)OMBdB zyrpJS@aBI5RMvGXJYK|*PN}~&Z-@W@K>FX*{cpuvIywAS{I7CL-_iJ=+kbI*s#d>< z3g$PFw~w7qAH8}Lb%=h^OoNp!tD_(A+)$OjLy!Vv=8hu z0_4o~Q1G5Te#K`qf5g!;T)Awatzg*La|eassX7i|JMFsAl(KleuZitv_Z?C zuhUmYE_N@V-lyOgx8Y@lF(1|Tz=j3XG9X`rzo3&+G-HW{^YL}ZkpMc$>t|e7aetXw zlt?1dg)~*q&5oS+mwE$MHh@A?$IG}gXHDmeSqH{U=aETrM9_UQeL8bx2jKC74l!%dQgj80a7&x$HL$@0^Pv-CqcxTchzPb zVOH)N6(|(VY1=0E5K*;g8&o0e{1*VaoC;3edB-S4JN(=s3vPqS64U5$`2cO$uF=GR}U|^1$%z=er%Kf|AWH znr6Jguif#dC4{#;kn|;O_4XHsx!gSik|VdtcT?RUYUw`$nj0T!xOWi0sT4O~dYVPi*JE<=Q(0(!Z4qShu;X zC}zXu<)3{^>$V0C@GLFh26T60g0O6Dk2W@!8W!7(g4yupJMH$_VZ>2uu^|c8+(%NC*FOa?PR{?r$8&Ek8@b{Rk}+JZE^>0JPUO6n?_g6E zmh2sKV?qbTAqKtAVDg=KJaM^5G1bqnG*3CVNXHO44xNnCt^T3+ig3|l5@zY`xjPr7 zjA*@wIRoC*?^14TyPL4MHEWc3bN4Yb$;I#u47;5jrQUqvv~%L)M`094@}71%bsPB` zkNwN4>cY@|llL_~r$ncWMTH#cR0gAw@iW+e;qa&PwU324w$%Zg_GM31+!s&$^!%vu~UUXEv#%l z0_5txYW7Hbv;*EACSTrG76EZrtZV^3Anl%|s~&t*PUYUSE)E({oeZTyu((DZR9&CbUPcQAksYUr1Gzljot@zFK%8pzAp#pB3>jz1J z>n)C3ryUoPA`Y9^QCmjTK;gP?q3{i-240i@6d=j|sm4c-4caG;}9H07zN9+bBre5WfT^tR_=4l-~N{cv*9Z zsdaEObcL3Kia;G~np)~L95sz33dJ{0^sIHwHjHh@V3V*KbYf6f>qjEK2X^y3FeAX} zwPOJg15TeIXL3f5NFi!Mi8%Ev(~7)+3z0b0!cO{wB$orF_b90>|K3+k#P1c3U4QZ6 zUrCQrJh}VkRc;I%z;`JHXp=wvQ4x8t5hVlpYFhe6Lc~fz#l#RmbXC$Cl8*3~--2|{ zkC0Oi7Ud?-u1w$+C}v6JdoOkMXmUWj&0Z~(f3PhyCl~1#8x8@@aUbnL%xvdLA7qO> z7wHyX9J=J?8oVFDqr6#w4$UzBJDg{g+F!@ZnIE~?7z+2yg#uxw))KLF@1Q2OOgxm# z6w^$hxB!C(#;SRNvI6z_t-YJWua5-cGa7fB?My3{f5VU6kL}XM*9%x!))muOO7KE^ z-gO>L7%tda^1vE~4*swsV5t~F%F*W}ESp)8D;naK8ju+LE|Dz>F4Fzw-jRlzTMDJ} z4TpoZsB}&XI74Y_wy#HP3mkK$Bsz)O$j?!8pb(MKb$JUIx$5+~!jIdQmDZWjNrhv9 zf(u_Y`AY&gIFMv~1+x=Xad(nav%wXNIHAJ{u&!fuLCLh1fhPgQd$iRPj+Phq|E%FJ zB5HhuL?e(`?ycW8oDAQbd`zudwyc~pS$+Gk7(M!VK<9B(~Y@|*ThOd zNkpW%%rO##GrM>N(G5t;j)l&?wjX9=VH_j~ z&@J}!C=gO$?W1+cG>AK`1-duXmH)gXPpqg0jh=E2QCC1NX~A{=X&Ag2$ebW%uxpH)=O#?s92zhHS&(uBeWJxcJ4TR4*rXfOw#Dhaj%#3FM7 zy`5=^Iw5bokhb`$w)V{H?p6hQ+T1be^ zuEKb|h?o$rVjy(-9Zt~jU$r_B&|-nqM(UEBS_c5U|D-M9jD*lT0?Mz3KMz+AifEXw zf(0_`{Z)Xi&f8rC$FsMDwFPXmTu*0;BXZnS>Xt3tPwXv`6Eq2yXDbLyRvEI!r$-i2 z9d0BmkY90PcrY+58<*b-Ih&(q&zN2~qe8+#vKETc2D53=Y=|^kt^_Xg zO@cC;5hH6=+_aU)^-T^sOBGNxnQD^fYB&b1A#*!)XY~zb0GuNZB97Xo|tyAx6yl;=NqQHRnJujf< zh!5uR3R)KxBEbXZy8n4bgQAyuQH~95^5gTvGU=cPj4WtXL$;tCEwe*jr0HfzOa3bm z0Nga4EoG~COW7`=@+oiQuOtDts+)_=vOivW(b|l@%Qji7= zweebQcDi4sE4jYWdjQbO2}IdwFPip}o&OhYa+%Z}?PMYM>Oo4Fhf`+-zsjuYtkd*qN!B6g)Ih%rtPd+68#OM0^gWH2 z2pZ}gE~^nGXHUEbCLNdJ>G1UR$r=0Og~&ZymX4IQVaaxe2>_z8+H`yY3mfHFGbV2U z{H3z_6$Q?*D^eK<#F^(zqs?&W#%^^a%4;<_TeBUacH+$p;ni}XxU%u(Yye$YuLauXlgjlgg|+nAP4gYUgY$;f+u72C z*DGrwnPM5_9&UCT|Fj^r3x622%U-nec;9*DnFR&R+_9`TucR_%HhsIeq)z3&a0dgu8whVJuOE-$j^VFTzd; zj;vg1iP)?(N>K}(G5}jxS(#=8z+&f0$K^%JbkOH!@)|c2*123ln)t*wEvw}uEv@VM z0oWC;q+Jb@U6;)?8@I3G-~ey8Yxw~tuVy}wS?x@rxRhEZPf3w^7Y$-dpztv?9_=%D zSfXlI*&aq(#Z*ZCpmcy#r9DuqlFtmhNVuMWW|H`=Z-xR5uFzlUM3^*40x@}>rZdMh zh{#WNE;yTw|J)xA<;=KUubMeoUC=JVf9q+fBD|c|rRz=0N-sVk|o-1g{K%ctLCLY}B z2D>A8&Th*0ZY8ML5+Uzv8+|5V5Jg)&+mkUi!8Wvhv7lIUuhO)UL|K^|#W93~SBQwb zh+OVik+BdBD4Q`;+GG*(^iN{~I;T0FT$;@q9AMfccSL;KQn`aI-<|2f?(cCy=)91X z>&9)BL=q3;V_?Ksm3;JJdWMLyH2nrSS;jtZxRlkn{M3S=G*>oOo0U?I> za=$v0hoHGZDaJ-jg1$JhsNxaQoZXS;&sFttYGBk36{(WND)yKx0OE`)`#2vDZ!&>j-7!n*5Q_*Z)jBu*|jx6WX}@m?wT zgTP8uJbEt9mw*D8^u8rTPe9X_i+VPR$HU-r2xo$Qh=?LRNdS8lbuqMlxKgkwqI%Ro zxwayq{P=sUEPUOEfuEQ5KazdA+hOxGrCMIukgTC_B0@F7+Kzb)0g~woX0K}!*>`ja zH~ov`WXwipm)1 zSAW_A)sMYAOi%Hcy2dukXWEKa*v?%KLvvwZFU1KTD`gESGeZaVHV%<4@B~Wh*Upkt zWf#vE6OkgWk&+5~)29h>v1 zXU?A8wyya8fsg(7A_@)?JkJh4`W>_$Ia&ozsD2izZWTSkF`Sj|dRrln4i6L;A1Zdm zpAt#1rD)PPLbL@jn+2s20Fth>d{>pm;{Ig-%F6=@kqKbUua0+lg>%k6taW+B#9%G?DrQ|4 zKL7Ts3PaR9-d+o^ezOtLq({cA^5P9op5I?N<(}gZ)Cj|FAI93&E#;ClU#g0;7o1>= zfEv_fyuXCCtTq?7v3)*SyM25Yw4uKqbil@c(Oo>(;~}0k6&8GZKr0N#{#($rai^GU zZtg@CvwL-8*$(m22$gI;S4|+QaiAC+th)nK70#IlG;a5*gi_)Hs)i4Ylo;?f_55r@ zEL-4QLbAi;;Erl${i2(+{@1R2cY;AC1T=)qBB`pm_k9=de>MF7d}iE`djanLMOj7| z004OZ4bu7#|7%88HgEN4rIX$wfKd@g!~?FEP73kILQi_AD*4=Pi4410g+q zx)M_gf&6Hq#C-z)7>6hIfP|BC!8k=vj|hu-^-F+lbT~W9L(V%fcst%r!Rq7N# zsRyALjq~WmI12sBh&f$R4Xyc25GsVTCE|u4B+X8yWoG-ucD-ivNL6B6bAj2v(w9N` zR{`9ut-f0~v}se~Z1sqW{%tKrq+PG&`f%Xn@Zk6E^=42D8}c3W1T7w38iD@a6zftE zCY7l9%@CNP8vmgJ>zJDvvt0PfD|Vn@sY??^E!iuqg6WcQ-M7>7MTWsddl+Iw#_YM- zaACNpjdk=5?G&)0-&VVLZ)5Ag$c)f)gnXO68rU*mz@Dw-%wl(ks0Qps!2Kp$I^R;R zTmtqbP7;$wH!~Oj_ba)Hk&dXz7)w?Enxal3n4BXyiQw`_yA!~QE+X^>E*07nRMlFW zjnJ_ya&r)7^VSoF8!At} zV65u}Pa&j1uqSBpBZ-T!UaN%+XR-xpNIRov-!+QTM8_m4gbr>HTIb0sJWOYDP2cxN zs3L0Jy+k)FPaX~mP*5+pRa*-rfqS*RO59U~fYy>?ThyQX$4de2O&<)Z4cCpIsB>60 zPoPAlR*y|6?x|Cog)G0yzJ_PZ#fz_jfgJ4Sby3uhGEF|P-xgt~BXueA;AySISISAA4eixGVV@^Q9$w^o+(!ToB!i%GHTgGp=S+9)g>0+$s@p3@|C zsmT!PdetNgwVoKfLRh6>Ve)**dv#Rvwlxs1Z6~p?%GnIw zKP}XM&VFMK=8B3~=ufG4&rzd!QvvKIfPvSc@~Xf;eq@`$Hxq7}cf+Q-Joh^17f?|syMy38oAq|?*3oOJx$t$DE ziO5+F85sbW87Pd>VlRzi3teT`PZmY3LQoe>T#Aq>n7+Ha;cGtVfvF6 zY2Cb%v<*n(Xy{@oGcS%%tj9$u6&Cjojgxq<1p-;Z@}?VD8K~x#X8`-DOeSlnKnDv& zJvlKiHl)>Z<0}j(Rz3fcF2&r89j){oTFb;(q)RHWzp)}!GwIV1^DJ%rP_+#h9NfIb zXRvF#@L$&!zsZbcktgMkS_iG4=&a04Tlu~Lk4Bvc>_9bmDG(ccJe*j8J~pp9<#!vp zfv!A7&i0?O3v?PAM>veHL=}7arqn-?r|Ji%k4y_{|6bHgIFX&|C|xbCZ=0O4Yg_XM z+kxjW3Ufc9iW*nXcLE6_~|NF}89A6Yf=wIGa2TQj#-Cskx#0R;e9O`chf= zxEi*syKJJqk`?1<9#ZrrW4oNXMz-EpO?WlFPj@ybqF``HB8e7jLf_TdXWi) zrDIq#4{f>0UdvuKa1yoT*xKnUErDA$ct?OdA5wWF>6(a*{nCJd^WAmZUzhGdaMD;zR4{1<>jOuK{aR z{zsX6RuhVMV^suXbl7J>`A>|hxb7&6Q}ag3v@Wt!xzsV?b)*ouueb8v|rd11p&rWHeFXA-ECHR?+p$Z-Ts9DA!@SFsV#I<#cDG@L;3HVyB^ZdJ8+PK4ALh;DYU<&|u6MTD%?b?-A)6M!8T(_66$_dlw+O<{|z=&nupKlUn6u@>0 z@&r%4h2;a!v7kIh+OxzE19AZv8cbu$L49H}EfNgGLaiYIlAvMe_9XjO-T7vjk<63&DKEU^MmQr@52g3p!$QA{&h-7060P85?Xs~DqPjR`oPh3c21y^%dytlKHvc7Ta3WAapECn}5F+LRi zd{VEQ3U!-{WBI1t7&RxIT~H%v?aUWM3w}=wbJWZ{ zJoBDchVSbDwR^zjZAYYvgRmI3*~wsp_Zwt@0Wk-Yt9=K&X2f$uA&!W_&f~FqvAI8` zGIp8-ayf={u{Lt8%FdzGif`ryK@=a!lD2SqqgQknpM_9%Hpeu}| ziPz=C9~0~U)aCbkwxm`uRu&5Ne1T*ux^;|ZtvU#}aK9jW$n<^*>A*}_1!jqKPN(KhAbBXPB-O_eVy!X9XH0tpBM$cSCJAWjs=qWCzPccHZ?3f zK~(I<|46AO8&GRn^Vi{&Br~|2TgkCpD>!u*+PjT4j-BMPSL@R^rJhmuYrM|26IHhJ ztORR~ukcSx>cWHs7vBs0V>Z_3WJ+=qg-5jQkgLPkH77BW7h>El!Ak~T-8{pCDx%`| zcJ}W~#iU|invEvpF_4E(0po(-jyp1gQ&%{&Hr7Ky8%GJwv`quSuUF}oJvVE{z5 zzNI6s&FO@l8bIxOma-TGJYc(CV4nquxJ7?`r;5s~+-RC|3fAIJr{mBJbq{B5m> ziG0U^L8Ylj8SQq}TkDA}{9j!|Upc_HZUb^c4bDpr^^FtDF6I+SM^Ju_dK63GI=n*~ zB=~QEHT>8{?yN0Wty&2j&>dJ4i~l-~3s?HKlaD@a>3+b}nfBZ8;#=jHK>n_NE7+XZ zE%lSyOGoS+JW)i{JsMFTp)bPTs#Xo)%?tdJW*iSuSvI&XQyPtC?w-$9Kh(!Hd~tv@cbAlu(YID(l5j z)n@&^5)LFnEXKD=-{c$_3b@&TW)X{V!1HqBo@2uGhrEHqR-#_zy6_-x-6>zSsRz6QOUqQAvxcRsDtYOotGOr?<{h)Mm&JGgV)saZBwM^HdMdt!%rZ zVZYkUP_(xvda3CBw!H@fF-fHdF`DP{N{y%285m zN!y*F6@C)q2l#)lh%dp}e0R()cPNkm0R0#M0A&BmIr(3MyZ^m9KCH2ugxP`UyW3ZI z&5f?TrO##e8I-PNgg3KeYdLV*DOsYZDe7+vZXvrsP0IW8>P<5Z!_>dQ%SZgFufJsJ z;!?;aD-KbDkYaQN!#Oj|3K2iWSSs>d8q;Pn>qS9n5$?$N=ppw zNZ&8gKA)#s;51?Gk<^tB1ITFdptmE-FdW_}xmB|Jw@wRYw*Y?EAcm2A0=|UJd9MKTvi)y0t z&(fQtGdKEo*6_F%o-=7CA*By(V(_pFHUe99`Y(?4^xw>Al7{*}Ry*~}R=;_%C|nMv zS1SXODv6Xw)oqksP)!peZ96Cc)`IhM``_wPr4I*o3^~v0qeJ(P#py5#AMBkSxVo~# z`Cwby^M{j+km3-Jc-0}Ii4q-(Q3DrxdJ~omO$s`1cjrAcyd^#kz?s)-h<#~Pg0#dC zrjM&55HO6(SF}G=ry1Gr#+~EGOIuQ?*L-p37A1EJ38Q}^l#g&dP@~-zoX%>dK#azK zXbUWaVowZDVpP_2MNLe!$9g>y<~=D`lKa&XhPRJW2QTXI8)Xsa)?mC+d~wD zeCQqz;LsvXGx&3LRYYU-NyF^Wb=@4FgW}u5FK`lB;^MbWnL$p*KI-N_y zl{?Ox9izAPv8Y^b`qzleNImwsc9sk-l|8$9KEiK`a#ePQE?kp2y~xt`z3C}`NnMY) zIiDlDRO$VF5}xpC{#X3H-a=O47392w6s7E+dhznIgoVUgN`&`foR0P z;~GU>fhVZM^Yy?u(|I=PmVRaY;>822THXP5tlr*LX$qXsJ#ITcTh;Rr9{l zp6+Qza`8yZ$?$7&{Y_pO*%1qMnH2*O{hQ{!>hDI&sl;}v`iI9UraeRu$RJj{f&f*K zTT4P1-z8hun!$V$Oq@OMY7vQ-5Co1my>4YIbNNO$36*L*m%h3IyQysI5V#>FKY(?U z8PJWS#je!1&cRGjaH!acrQQ)RF)NscSHiy3-R;~Bg@LDq%x+2UlGH7Op~+wk!q@x)>9&Ji4`O;FsX{DGCi;55)Lgw zCBb8uz!EvTQ5wV$PY~%(n@<|0JR(liJ^mJ{D1^!2M20j;;}3b?aXsd!hW=pjeB{2- z*9(K^$mtco;DUv2DeY!}>lKg_M%| z$I~7dXqT&7Ib%h!YLE@~cD!V&OYr7h4JGfEE^KQ|RsHNb$MHbsaUh1@n0q_v6Tym# zE!%e0R^+m2Eo!aKG;Rwrcsm zkv8^X0bO zeq2^oGzvc21WJ0m1Azs9iL84GvyH#Si}a<#?~-<$*Xb@DKx%U;P@80~ec}+aV%N;& zbcg2j?4@0h_Sl1&U1Fa%xI`(RMKX_Le0)dDuK(ypb0)Hgs=L2~m$wQ^&I(!#o$|?| zb6sxYn%lDc3H=7JF{7mi>mU=2_=c;15ByR7vPaO$6nyWG@p}zO5EcTCc;1pndYkNp zk4om?K3*h@*I-n9W5}M{!DcP^nYso&y-wSJJ6LPo-a)IqLkUZj?q3V)^k#Y&n~b3~ z0std~1AMk3-(Z5_#WXK`nbt$tu}F@NU{?V5iMsH0t-*T$;F{wN1o}t{XR1CIp}~Jj z;`YajE#!}|Rq~1_TwJP=ihCky`O4JB>=c3i-m%P6+UoIyBxjx+b&bu^f%7`pAMd@k z1#?FTDK9OOd$bG*17PleP)i3i z^nwZvZM{;ux%XG+kDrBI0ciq4h>i{(#~~Hm52fYpwPLdl7&Ot!CUE-<;fX3T)Bfcs zR7%A-e`LgMP|EIXWd@h<{(R4@rkIg!CjEDlz<+Yb))PVX_`eE--LKpFzvb;Ee)|Iq zY>iBWe)l4NO9cK$fe%sLwL{`S@SW9TxR4+hI4|uiL%LQ;9u&y8B>4k(e|9DNN9opc z_JtK>>EE~Mh-)Lo{taN}-xoHfUGGPu2XBDc{f$_l*GkLgblQ$ zanmM>WOgm}w#;<*X*t`{)!#6Oo$UDj)1H#ioR|HZTp12%*IJCs%-)TGP4p6n|JKqJ zv8v!E%zb}INet~fs#MPsNythyXN#cvI=C~e2nbE5rq@h488}raL+6SB==*tD``Vl_ zJ$~*jMmVEJwXo>$#O8@NJ$_g<^qmS%dEhk)TpHM<{8Ssw!uwIjk^W5MoD6@Pa!LJg zf_{ulcy$__N`BA?IBMkSQxZaSVf&CKXgT%w7-f}x1=a$v4~L5FF-9-(Y0%|_z7F7G zNqJ*2$WrUVWDN+hyb;H})n&?WWo;8nmGpee4s}})` zR$OWa78X>*zT^v}KxvY9o((36n62>=F~mt;8WabR14qilDB{OBM^pv0@s;KxjAFG! zwI-qe?ibEZaCZ{%bzL^%1AQmk)IrozEYA<)`Qr9%?^Bi-JcBWZHW-OHf*#TVVhpep z(~2Q4$fD(PR|wytULL?Yru`dUayfxk(S4P!c&*D7=|`po%aSahJ~>5nq_~K^2X$Oa z@f8f8^dNFn<0R}7xL>B%rghyDfriT}nfA+>X-Th5E;!MYo4z%Dt}~10LU#c8;i5~4 zIp)QFgyO!(eTnUl;48V7KM*IZCAS*g+b0#Y&QPGKB!GN4tK}SOtDMbSm^`^5?x8z} zYeHCwL535?9tOvf*!fRbJvqmnfJqE%J;sO1T~eQy?Nmg_8il|k32E;oOw7}HLa1FV zU{3VizHyLm8 zFHF?+n?rmnGm1+xM&ZSqV*M+s0CA zfl>xoN>$`d!<0FGR7KkUC7ah-8^7GAcU`aJW$x}yVuVY5dh`ljOoaFq^Lb}|1wvnQ ztBxmqDaj9MP|9w#9n~cuJ`xT4($6NfD>uj#>oKM1yAzjNwwE2B6v6X`CWcdeVAqfx zZeCNU+cKNYjxicmhvY01MOsicHPZ zL+#<8(^;riVbY$YB|=zOC9es`(q}=AN9bBFO7o<*cp&;!aAt4`HSp5hRciG@<0c!ctd~l#98Nx-w(j*oEr2=qL@0q2TAgL*RkS098F&IT32;mi zsEN5eq-HAD_)UXc^%;F1<&lba=3i36r2Ka(#g&qqQ)3Q=VTA?k@lW)s?*?&nuGfc` zM5>-V=~ntUI?^B=q?~`9VY%?Q;Q!wfX4$-Xe)yN@vii;RkpC}t_y5?tN*=b(2JZjA zR2MosYo#!zq9rB?3Y-Ww*=0nJNzdg?tpnk2oTu6bKOB`M?f*bsv7YuIOiDL3Q;zUK z>j<)OaC%XQHKW&w*lCLKugOCs%Zvw3K^Fgj{&Pu1{35D4!|Kc2 zf0!<(+etYE<<)0&tVScFCh-Hh#bS|twX05%VQh=l>Gg=)LUsOH0XAa9@aMkFRXL3m4Nxa?}qz;Tw z_-ywdn-`w2Y>QP@=Z-kDNa{KR)-Bv|tM``UdU^((-66O458nU7bZw-t{xV%A@`($g zt-)s~AvG4iS)Sl6$$^sd>cMDyrq};4T_o#*opZlT*CIfXF#*rV$+?UUfx?ne#w`#W zn`1VM67x*y|2bHJ#TX8q zJi~V&rfAx@C1i0q{&k+{GYnOplQ1^=58*?+JS%x>a1)JCnwS$AX2`XTZvQ)Oo=wFnLY4*lZ(MLhfGjZ^N!eMCE4u7 z?wr?}PN%O%!m?ID;@*?Z$%eF*W0~6S;mss3xZdvULcy;>f|eUj=J-UvpB%d$n#Rn8_XpFSiJ3Y$379Z)fZlXaMEF{2XpDswg*LS zp}%U&!#sIkegOWjjKx`%%l9n1czyZ%v899hze8T47ADrlvIaI5wr2m8CS6w7N!noj z&py}I-5fuvbmF-XS(l8EdSbjSLDP;6>Eb#4V5&ew1Ga?jZ@T?;hiY8EsosL@T)Gin zzqsntVJ5-5r3W0=9RN6^E+w4~rWwq}{p)UD?oM&SW5OU=1W+@6J|x_|)B{EY)d|#e zpdhaaqVG!@-1qd?_8B0$`eNg|$)ZoyaE*Y}>k@skdp4qG&e^gIm86o{%f-ZVI@5!@jnNpv1oxjq9&c(FT zjR6y8biY0d@)LAbW8&BJ;X@TPXlP=o$3}`=gISbbhbjhQRl`1wE)G_cL{FIJ$~Q4o zm3DAMg0@LcM=1?e%fMCDVd4L)4mRxzQB)5(`?*hk6`#~rRHc@5N#(xT*L@XNCpv^c znns@-1q=* znmP^5dP<+hrfs5*c%)4eLMqBaik_6EOdVn{0=Hcm1@w#w`}ZA~Ly$D6BSnFJm66Ma znVz5mrrV5-I^R9uKw^RjsT+YiW-)uOM3JX$*9+*K+c!U8_{0*vkAUHje zz(`7xC2<{gR$Etje>ge`)2OWX$|pg@b!FoA)~sTT z_iFV|_ushF5OKr+*bY&Oy#?VZ=#Yypt7Whu`ImA#?PRJ5@-i#>NE1$z&><_~(GuBM zo0oPF8_4r?E2>GM=Y)4A)pXDmK0@0aCtG}Bchu#I)xVZ<8zw+1Oa63G1awyw4_(KjVL|c5J%tQIDrq)#o$_)m z!WQNXN@6{Ki25^72_!uy-T`U5=c=WVIyOii2dU9eDuiKVw@Fe+F*E4ae5pJJ@jy0~ zm4Miv9|E8HbMF$yWY#(94hC(ONv4Q5XJ0E5!M~1Mk`-^z=h`&vl?hb)ev9LQ;asUD znw$vPX-!|}RJCv4j#PJY(d-K*+>K$SDha>=l{SKHn?8|4M-7Z$N7ZS3&%RMhe1O>{ z2NkJOx{5Q~5A~eRp`+$D15f>t=M5xgJ&f22Uf(CvcaEHA|5&^GXYJoakkL47D*zYK z(catZt(z&k{p9{Gc39=q6i2p1@gB}pop2P{oarjMCpLxq2?eWiCuQVfLQGhwiVcDM5Y%sFgBnEUSTM&V4~qYE7sUU)CgZGpmY3BuY^w zhyUr9^Y-zmK&&Vy1gp^AzsxAD{16%_aO7weR8=ex?pkU7jvEp3gp zc&S5q?hu)x7$7l8tFLGkvR%FgT}?wP`87orpUxs&89c0>)hX{iy?MJ~z>_BFk`GUl z*=$;YiRi+;xITL(5DZJv<}Q4tJ}x(aI{(S|xzTXu_th@yy*7PZqUtR3RP)Kv5SV+3 zO=_W22(VGx*y%+Y*+tsuMB8@_Egi%(Q7u*Sk{e_1*Qk!1gmEI12 z9Ixv;{+*Kg_dW{_LmBay>|ITOWn$lSKuE%4mDx#miC-@-=K8Eza;cxC7UGz91qKz- z<$wQzknnonvtB)3qq=-G*Ux}Damn+a+pQ(g<1bw8R&5ns79Bq4O8J)v+X5FcVRn+( zr|mgbTybgmQ@>A z=k$(y)|Q%>8z-w07XL6Kd(N@z+H7Z;cDXx-c3DRAjK1{SR0zK5hb262Qi0v>tSLrd zf5sQK))Xzg-Ub+WEd(}iDEi&dzDFlwuA@LY@61Qnc;An8icu?dOx#P^KkJPa_^wvf z9y(6XoUMGtD9Ff67*Y_D%fXLNJq6n6<~}=?S`?i;ZtEZ7R&FC&al-cQQIy=b41Q`s z?+sjeW4JGx4&%Z-TSlYq{8xzD>{h|JMQCmX1Pds|><-I2tz59>w{OIi61*<1o;W22 z4Np3Q{xIP6weZDNZh5XTbfB!$eL`_mq+c$K)6{W+%X#Mxz)C^$O29!nEUtY4|KH>C zKP5As0n3^=&;S7DB>($y>1bkV{hJD;`;YshY-eTi|F!`vYyS2civRI@)tkTE1j=BM zw9KoeH%1cFZvuxz!78VT3~OL+HA`UWoF^Zt|Jkkc;w?@vIh5}R>*8i_C@t&zT;(ak z=D8RkVow{^jCdCma_05di;MdQSy!BGhE4lOEDA;FN%JQ+jXQ)=t^=rN&tA12#IGZT zp!>8EnK4Z7&?r1S|2Fj_2(dwZ5-Qaiwqr>?1=}P1k15dc9UUYcb2#>&4r<1Mhu|T} zvygtv`=c}S7R}))ax5tpz6oj#kEf4^uLDc( zdvp|6tes;FIw|?D-4uEAD`(hh{*XVcA}ma;Ko$PeD5ESi68kBCG>;w$k{wIcq#X>C zA{D6^YMdwaba|RNiTUFius_U<+Oc2v-`C$9xrs^fXvzBY`m*}NnzFK*s>Y9p(QEDY zzCJF7kB=Tcp!#}(o2vNs_0rVnLi^{n$iw_7kTv`*p&p3kVm3#z+mzEKsuVTugr|f9 zOOGETr#YsMY1BA0K|s}{6cmM}l<7%WGt{A`n?05qqCjw-JO|3VO9%*tR6KPsLy z95h9fc`jWR7%HB_1&pysnreJKQhj|q8tdFSI*T2&MUpYfg(%eQJfU@&Fld~FjMll& zq=?TX8(RIj!&zvPZXgk(IG~b)pW88b=TQnwESLFRsvGWWa=Z^k;ZmJi+?gjz%3{kF zoOFuW_wQf7K%~RCj_6No)f`!>IoKyC;^NaI$Qmpa`>3 z_-%;BCS+ykPNv*{5=Wm;e~vhiCK5ALQB{(%maO0D)C@NUgkH zV$M&h&u)LOA$QO)ufEbgxh$!cTmswHSMgg2FV)*=A-5*vd;GE(`vEyl!^{=?C|mVc8Elx)Sr3Mee%MY1v$I)DP3zfIk`}h%Sjmf-b@y5bX1!zb z`y29T5+FokP?nmwH~XQvn#orRs0B{bQa$|}UaIO-F#m#5qdH%v`O z;}5XXQp5Z?Mqvo9(%kRxi|ZjIANn>$y$5vE2OcS2fMmcy^KNA220X9Ntv6zZk)N9NWde6F~UWOIK9 zB=wI+R5wC0R2gCw{=veEtKZt>{q-R;GUDY*5*Ct>BcH-a6wpsNE|E5WDbt7|)9_6- zmv$-SR(iCQfIx-i#r5MvaFyl_kH0ly!-CN!Opj1lyJH)0GVcRl3Ho~aaW)0<-&H+E zS+#AQS~*(J2eiAuzfQPSGEd|0QQF{GCMXfK!IU{Q4@u8jA9jIop468A=hQUwM2C49 zNa~QOXeWVgP;MYH#7364i5M13t(55rG1!2(cx5uf#(YV#(t)fv8RI)uY4>UZphjmY z5%aD@!4yj)m~7T^L8tIoYMxlV zYtR326NZfOX0mI?uo7sLLYsLLJjZ7(&eiUcAAY2&X>(a>i$PzGtDckHqo0Y>^(MXz z*sT@B4dl=1zU*JZ6QQ;&UkJwS^^uq%p(Hf2c^u|V-iq%u?my+Pdjqd0Y13RDW5521#`?xUwz0GJR3Vn3naeO{yhcSFR{KbpiuSc>?CM@@P}qd4`l4-#(Jj$q z6*uuYu0t!#lw`9qTw#C}S-|F=Rwwfd3fYq;1WwVRS(q&_q|a;wzHH9*Q2Eq~ zE=Ra4YaV5sU`>1*3f85{@ELQ0aW)k?*q{)e1z5B}fS<;5jUZ=Wz>}nv7LaD*L*@t% z!Kh84>9ImxDZlMt~?|jI{y_ou`MEBqSq^{QM+ZbpUZwYeNM?IZVBUk2z(n^;S zToX&m8@#tWl9+leRHjzzw9K}yS2#D^Rvb=^7#){bzis6YF|H;)N=>nx^rTV+RjhFu zZMVOx8WNQe*1FW!OCznmtLO4sjf52We1T%fC^^kBD|^gp6za$I{uQ!W^f8n)AOCx< zvQuse7%;W0MAY$tEat`CuPama&c64qMSD9+(-RbDlr^)I_3=OBjg%`|G0cbZ2sx|f zq>&8s`%4b7xbnk_?3%7L$H^6cNWON&Tmv2KjkvvVitbSNTbdS!9=`lAlu1v!g!o zf(c65>XWddw?g)-G_$+!dEgm^&!t{vJt zP924vl)fhvB9jkT^sy@Zi@e_6wS`Xw-;#=-&>3#Q867n=!|PN(6iki<^xV$|&qc5j z2aXe5lmmCfofL#F)=#=kO10OeIilty)tcXH)+C(m9XXE4;cI^qE1E5t*s56DZVdn3}p5p~~a?39$M zuQVW^uGSxW55G?L~~HSTW)6evNz~AOz_97lx&ZVNv6A1G?0u&rzYO!o#B9d zcClO(5d7-L!w=&6bHNAZLn&M5L@`P7N5f~%$qo9GCqTtNLH z1qG%PoSqB-TaWD;vL$wK*Uzo2*Pgu`5|10gogKrJGQ4w0*hkTs0dGwn!!1vD*RkYm z+wC%u-8*KjgBVUPGa8QmLDnf#H%rPOUW@v;wdaSBsF^Lh3V7(gc(wBr9sl(NXZF>( zDIky(dQ&pwp&4=SY-4IO?SZsz5bb8#Wnr84JP3{F*#>TSxm2D05!_`3LF-@cmXZiC zQkYBe>T-g%P0j&6ap#?N!1Nz zk$|mF)AEg$Xabzxvn9g0AdGMk$(o>LXYLyhBu7U%27^`=MUCDBr0c)swM=DUL6oNb zjd5H60Ht&QfZw1PfRUXIotd4TnY9U>*{{eh%~Gm zdFa6&$af(l_N8L#kxY82=@8QdVF#Os+U4DK&KH(KsSt$^oKh-APulT9E#6C zBa#><&zv|QlM+$f6d6h$l9Pu=ylD)G*F_;@hRqqk?b>dI5>g{CEEcB!v$wbR^TP`c zwvIPV3QEs920!gdvh|z$MnzD?sZCTr=@>iOMNd}p~hl7Y2wBl!iyA{cduuqh5 zS1S&`^Fc*XU_1}!?xDCDk|s=dNJi6e?jh&)w0P2Au?5aoPY?e-3^;>*`5nv^u$vRW z=X(z2)76F@mK#k=8~rw@<3d17J2)!z+rWCE{kXf9#(wof^*eu-;}QgF(Z_yw$lZql zn1-OB7!_^}NXCU?qbN$AJtpsr5T$Q1ZiFCHlwRPNL#0#a1e3gw~y98Fh@l( z5Qw9E91MVadGViVgMd(FOh>>1P2!fxy}bq$v`|gf15r@y4>!Qh23RB1ijHJ<;^p04 ztNV07rUS^Brr9-N4>*%O$=ZaAln!m8!PFHSXJ?;jwCB*CIlgDlM%&yI+?HKnPbDHQ zUwozh>p|BB;(&?j_!_X=Uqn!UUjoxsn7w*Vw)bAc)dPD9pSwBy44yx8)6|vBCcMJ+ zzE=S57l$XhZoup%PPbWBn;+_gK z2Pg|C^x;PukNUX;#$92!;R@!dKD6bI#&Y~>_cy~-8NLRK9cI76VNZ~m@kyw;$G%^A zkD0lcm;;0;aLpj0*!Dln)r6lC(@75XesZl5t@BK2rl&Kg$Cq^?lMstbZ*0218TcL5$UGR2-2wND{MFbWdHG` z&qV)y_+VVx=*MJkjF8`A$d+)!y>66F@YT1DK-hN{Hv`m?DC_~R!wBb@6BfPbQo^ZW z94?h`&))RILRXOVw?g$nyg35l!g)fv1q>jibbLT?#;8H|4{-b>w=J}?U&U;nv0{}c z2m=gv5P~)bJE|mQ-TPH?w{}+qQ&ConhN;9M~qMD1ug`J7=cfv5yIoChP7RY zWchABF^$l`L9UifAW64y+NIcT=XaTOQ#b*@b_f>B!NVK~gN-PI%h@5?N3tjlOi81+ z(~q_FST#m4l?lA`ZRkuNGTPi?EfIbg!*-;@PG5diG`{&o;Y0GjQ<%MLqkEKLXO!So8CKu` z-hiI={y}qmyFjDHyRxYB>Nj}v$aQ-G?lJIi@Pe8+D`-v3N!S2`nu8N)E*Z?;Mn&2 z`tt$i2qf(m>_7OIv(%k`{%o7PR==_VH0=KLE#v)TTPGto-U?y81+7+OM|FTo)#A5K z3)qGsD+huKw=+>RHUJudqt=S0gm)Ku&&xLtP=~P~W{PY|QOq>n_l80ZLS~36hUiGs z6jCHF|7{e~^gr%Qx=$3SNblSVDU^@by?95F#}e=BR|a5i2c{-ElC?GlU~FfXu|som z$fNE53$!iT21K-)#ohz|SFRsdi64=MZ*2k;yqRE*dUbrU77LQ}r(s z6YD01K=@ILya3dfcTm2oaHVx2+L+r!l1@XX#x`RfOB*-O43GkvKm}+;5IT;n1>dn; z-4Cw3sK+eD32@&FgD`q_%=?fIcovg_43_kx$s3V=MdN?GVDH>+P9F}s6J>2n9}^A) zC;LRd04PIEr}q@{h%2SN8tze&#Wom+^~Q_Y5=@sR;6sfy+vhQ5wYUj0jb3>;2JjY_ zM)*cfls>BY2CXi|4jA6ByZsihXdl{7K<~7bjxualpW!D2)q;76-ph;1BH)D7@XSMk z(vNYn7-VIsmv3@wAGVR<4NZ-3yEKa}HS!0x8%Y$^i4EQfpJmcv(~V7;GY2Li8x6L%k1Vc?SQ}qTmD5m#i?p z8W&nJujyM`Is$xzI6^{PwNUL~9W$`7fwJ=!&^@X)8M7Y_jHwVV8kS)t4){4gHI!%z zJu*!Jtjw{sE;Sdbjd!Rxd$O`NVa8~`1wD*x5WhSYT`>lbs$PRMPlV2L)Kg7-nkZnE zH+Zh0t@|>P7ayto>|D(mX;emx=KymJXUTKvk~mQA+w$>yrP5=wn&-qi3iDv&4Xi2j zB{&61gsSdeoiqx~1}8|_I{$nGAv#wletuiy(lCGztew`vt0;vq&%=WlgBHb?Fw%ZT zMx(f~=MeD-I?_uJAvf167id1WVA*5l@Ceb{0VXY zr%08+i|T!`BoK8ylg2{yVgaBmpo)d)MGDHcprKeaj7x?vjS0^|gtVpM#>5Uv3&Do*Rrj#u9GUac42zu9Vr7?3h-4GP|VEkMM2Bn=BtB^YEV>G zlyclF=)XQdgY)3;3aZSb&Jfa0wBY`V?@kprUF7Ehjw|JL zUZ#K6nkn=F+4D<~iX+W=Cb+!ZvMD^=VRYwnt`V^GcL6o`Qbj7hs`I z4ZqCGvXxm6Ec~KQ?3kPq@Nwh^jedpC z_QXnf7-L7*efg+c{WE8^dkNoF*Oj*E=I-L)u)}k6JGXyo;P$x^ghxlaTGzLVt***o z2F(I~JJ>)WpBJ+-`ma7FRtu9^rmJVM{ObDLL2lb_XKYJ0t|z2$3o#BWIDekqsn=ay zzKTq=(C_(WnHI+R;qacMdAlUa@Ip-*;J`~Ljg#EpJUAnz&k z7JU1evrxGc#dli84k znjTI{3n}f3YgNDrI8B7H2pt|rG*U%c2&?HVhRls9cIdMxQD9>rXjRw6nW&YK;20Jz zu0ocs7Qfc%RY93bCtpFZ%VeOZTYp#a0w6V}uD@p?wZ=ObeZpFf<2V=$MvhoAup_w* z;Aa@xAd+C9H7Bnvr*w`TkmaX=AFr=OeJBfubnyCcS@*o@fb zRtlNHZxK-%QMS{LLC7+!NeJef1F#(+Zy|7by3$r~itl1p4}+ZuiG5bvym=NvuBc&@ zl%}j>5i^0%KH4KfxvIu}%gK!wEh;ZZ4;wx&bjadrmo=z~XyXUX&^Z&~-(^#WPcv-V z=1QEtW8s1)$AWVsc6DGP`E8gFOYGYzUx>$+lx=;#$f3T3XfY}8b-;E;@Vx`8#@!S1ElL&Ss$w53)}TYl6c5 z*UAn1-EFbmV*V|6htcSiE+AN$cnLOQn$@b*$EcsnvUzIB5#Pm15f`z@?^+Z|iL)TW zbkpOC8-yROsi7lmV=-l#R zT@?_6cY!^DBsl~u^a_>L((A;0+j|{!8SK60`%*I=#uD9Lg5!p1PP&N5!UfWjFUlh{E+zG*&IHI{@cD!D5OTn3 z7vAk3BepYh0%ko8+Q&U99I=D(4gFZz3>J|Q^?R{ZPX0rv>S+o*zq=Q+30p?{9Qb8i zR8Q#5VTbI)2SA8oB7o2yIP($ypUhn)j;x&NjH*)*LUfFrKs>XG+03?~6_G)!9ksIa z%V@fg?d7?a3oNmZMNS%Dh*I>a2fCP3<2B_a7vws`pjoHEJuv<0RSXV7cnN|(3NOf$ zVD*gv`zVQ&#B)q1K(59C^UR5Eo!I&n@L6eME13cG0GgM92%NP7E>K8REt+EP!|9g2 z-nydeF3;h!959jfV^+z3aP9>$rmWUNL4&@)OdbdD#5(icB0?{^PGMokw5sd^Mm0m7 z3x_f0c$GP4vP;h2M!nk;4&}I&B-1XRFYztm7Rk&io2$*2%yKQMIu5}cC&dJ;_dDR& zIBLL9|4REY27BvzmXsmik%MeN^2 zarPGXHfk!uLEP*)+x=g$2Z$pl3YokLtezakA5#!em^k_L1*!VCZ_XjQM<%LC zJp!T(?voeSNnL0P$S^_6r9hQ`aDe8_sA*i|K%m$p_)$G`giBt#>I3)ZnlM$7L|b=X~>@1bf7iQCV(W zsL5mngPYC0gzQmI}_`NNr{8)jShkm@&?#DM1xG-3p%Wy=k~3+~(0Q}=VxP%-Wh z=KU>ODKkY&bHNo zs5U;(5cRXwf#Q%~RX?px=QPhT0jLW=xX#DZ8ROT-vSJxvj(U>OX%<)&bJ|(NqUy6^ zZgnX;%7Fo!Y9BFogPm2_$CFiE!cU*#@b zyC%ba_VW50cMgx*gG}D;4W)U3bB@Vt%yt+GXZqWcUTK7LDCt`AnTQ@CTpD#vhnUpY ziDi11}8)#`iTcacj8!5XY<*@J3X~WK2)B zoB~2aB6b0)dxVOdLqh4-A^{*1zQLbqCbz_Ln;Y z_0~n2&QJLww-C&+P3(2)-)3%~DEoxuxH__>z27iyC(C-A)}>$1SSL{7>Wdbkur4=_ zwHT@ql~Jd(Y(Rxwd!rR5f!?@+PevY*97BiA*sVKoO7`-(r^ub*_%=M@i_7qf-_S2y zv54Dytb)(e?y5p+yPBc^dDG`xfLc?daWUhuyEN;EbsbB^Tu3ck{-i_gRFELrazLg* z6VOm2*3A@=Vyz@o*-<#78d~XeG4@JGp23A8h=L0}Ww=9Dlk0ivLT<60gr4!V9ftND zFI}JTZ14pS-`-T5x4?{>H3@Xf;&(gF6z%XV?$LV2mhScq*o;&W=iBIlgdzW~hMMf2 ze??aY%+#uSZh>O;I_awvr0aRTHJa1yB2uEMJ4jQzEU&THR2^o3$-8=4ln^cfYml_- zk`^_#f;guZkZJlOLV09^JeS1Wk)+W;v8jg_sZ7#20^nz_*rJh%dIejDRgDaHKu$SW zRSDndR$1zh)X~LQvpn5(>1vW2|I_F3+S@o*D{HHM zuv_l%Lhl`H(yL7@!ko03ZmPqA*a*a=qLb0{<4_Icp#vIltadV*Ij5KAoD}nix4W7C zV+?x2WE55YdB->`nfLi3#>59^#eHA4tJ>~2iExOrsq5%A&B%4DnHx{U`4hs83Jwk8 z^8XO_PC=qXQMPT_Hc#2MZQHhO+x98jwr!rWZQFd+H#(xbF0r!8QlM?rD->dYPeDTC0T|e#RmCgC zW5-olhFiA<0GWJ zVT0g(YPZtxDWQ%5X@FFKnbZTZ-{zPYgPqT^JjRcRYumVSfLF>=X%O_h^fWbHwz|s) z7PENc3-J-Ow!R9C%KgrVSV~V44C5G6GnY`r-+6hK46TS^1jyrG~(^9>Z3p`#e zT$AvM!XO>diD%TB#>&loh_Lp_x3Lfdaz-on3Dd?-GB)r=Khlp6+L!%tw z8O+#SL*QKD>n|IQ4_^XsgmLxDQr=ZTWmSY85t-2woCn2+G1s2Wsg=rkrP5kKpjM3O za%KZ4okGTZy3voKB+~}qmB)B+AI>=kXyuSuarNU6QINl+*!*eiND`i^@f zkX%lAIvp3Qo%RXWYN|?&uEX(t*dGlCu*g4lyxLRjJb9IH)}wm;cRq};y469RWo%RN zY^iM4FaVjTP;s+GDy~Z8xl<%Hr%5_4RY_CbkC0tg?g6=g^eQ$ z+d8Q5)o3-Jf45DlZ$9Wnrfy;iXud=#OfD_}wY26ON=Fm7Yu5M*KhkUXPCGd6rr9d$ zd(^I}UUb`Se|`Z)!{eym^8Q}4Z5%}1a$YzG&cbFM5kv`L{AQz49eL?# zwLb(O$Hwj!`Psp*3u^PXGL%hsp?rSg$VZhe;seRP&BgK6_MZU*RHs~04&-DQb1N(2bP~aW$M=~dJ7<^_0;EJ#fj9=x~;GR$;|C7Kta>ke9vMxBvPd$O360PYQ`kM47h~|aUp$hlj zTd>E1oh|b+Tn^adt5l5cg$mX>&q1GhU~yVxAvfn)9V@Zyg21qpK1OxlxeuH z3FFKp15lxg+c00(V(Y(h=*>+|;g^hqFMVb=rwP@-pHqQY;Np3-zk~WTthVMYmsK(?(}ipC-Q)r z12W<7-A%wry2t9=kKWhj48HiTZ@@4}!3r2Ubf;9ko6HZ8{90f08w_S+`YW!Z9VVA| zmd_ql)G^B)4|U$=y7dpg|I*9;hnKgY2LJy47g?_UOG^3QC@KHpwE92HQ?=w z3bG=2uc&Rd(Y1&rD0eDt$Yj)8c2elXE!H2J-a`Z+gk*qV0KgQEzwUH`3)UNwWJln= z<6DRadUL1C^e$`!>T!lgucGhY4@<7)0&PpS|Uj{-eQEh4p?K%Op>W@v=vhvp$s|Gq zB@*(Lmn9&kOr>V=FV+)b3bSM}1&(k?i_6C$-=G#e`vwz27A_K_P++gxW95OZ+6=H=7Nn;V9nyv@g6WuG72{{r@VJ%OV1?!LK6Kt z$ZU61Bn0iP4Dnt6Irn^+n1}K_B&L4B2{rG2!V1R-y=GviRU+XSdt&sDIL=<)=Dm6? z=T+kv;zJ%%*6p}}E?_kPb2y#khN2Q*Jx@Cp6+5`y^Amumvpz0eZpB zKU!{MK!vdnWw-Z5q9Wu$qWXtu^75wm93|R`CXSm1srMA!PiD@qx5LxR%fr{p!_lOL zgM-F7*pV=DIE1?qS4og&+?;=tj55p(3I_1_55P0@7qMHxHX$x(L<6?NJ_!i#5J3im zI%)+G5|WJHbsMMO)Uuj*2bb297k9e^aQ;YH4h6zbIH8e|lzPN`$TSlvY3cz9Fa*=O z50O`bJxqMK`v^M{KXyp_lHdx~V_W)RR}ZkCU-@BXQW(g8(tYgAXu^C!r&AOpQm4Ii zN@oa1<8b!lhsfR*UIh#?%S&R6TSRMiyU3EIl!1 zJBbKf@I}XodvKc4LWDC9OSYsn?`2#6i>!@w6|R^hrWTc2mrG$#l+DqfwS`KTB^EF% z6OJm^{PWxK;z>Lyg}^s=N)Nb8;I61urIe+t$bXCbQyj|o7wb||;m)Ey4B1=sG!ykg zQs8RuFvVH07chx+y}R2!1@F3Tb`)EbUynJ@eL51sb0nz+@dS+?0ccDoj{+J(TJ5?v z=<)$W8jad8m7|2qHHZ47taGQm5sW?7>|Od)iw8;U9~l-5Z(kXH*W14TO-r?`v(5h( zSr&!rH}hEw=Kr5!{NI4}SE^ce8^0t+`1l|D^DseK9*zrtKr00NoCE6#B#*i*G#@PU zH+56O1WJivhQQAkT*XA1Neir|z8o+NdXbz-w;m^g53w+Cdk~@YT2#4Iur34iZ9Kdm zFhBA1B8Y%+AFBPK8uw_y0~{y@F;LS8`Y{b@zazdD~ z{M`DV_B57|m-_BoPRKQ(D8qz-2TM`{w_fJFX}|ZoA4>Xn9xU&HV0x_X#D#MwSj)1V z(D?D9hYA{$tMI3uCDlq=lI`lvcU(P!&Xsow-N}qwr6O%$&Qwb>tq%r$D`>a_kEPG2 zN^8{gO(+J;u~oW`VXQm)aZ9zgIRO=-Frgev*ipVlqnb*T!&+O~BEkv}EjpfDDjGtm zDbqPL*S24E%34Ob%tgv1`xsL71RRO2;ZcbTo7If0t+^w{iez?aB~{T59^*oX$v%7@|X=z ztGU1P5$&WWBu;)sGnXjd6r*4^*Q5b#?Crs*PAb)vZ{(yza9L0;{jGcFtDd!~wmyo0 zy^$d~b+TC+B$VlkZYkE6IVGWwV3px48iVI^~DYReT+7D&Chn-Qa(mlx{ zZ!sQaevGQ>5*y>uNuW=2*voTnLC8H9QK3X#KmUX@6iou}IvFL@2VR?OtJ`2*6W@S# z#ZvsY3K3-;dL9_h@L*JyV>2CbP;@C{0G&?RmUp2(K6SOEBZ&@9-@Rb^ZJXpzr1z+Ua@&=S+Uh3s&s>` zVm)8CP@p2B`VY`=!_>9Z`i!JW{K&Eh1@YwxYxQX7LYv-mV+I%5^)`hgB_#3= z*m+lnLt|$yQM6#`X7<4bzQ2wBV3@^JvHC~r=XzTXyQ=xD`hJeq`TYy}zgFwiCOCoW zom=8NWB>p?@&DZv<>dTJYO$gFkF%bdqlNQ-=3^{zzbRphE%!dCHJMoj)eS?`9RyL0 zU>JJXBsAD}QDi#C6s0m7Fc(f4^m{(_-f(qzdBQ;gj$gkhr1+ca_WHgo(X{@li3rIN|@<3iTT+}LlYsR1W~;ekl$LDJgczA+zt2cylmr|6>+@u`7N_C?qq*qE(~5Q z`{7waEz1XC)GT}D>fu=foHskNaK>&Q?`r0vBp#n}RZLgL=n!D+Q6bBbzu`hs1K$9H zL1J9_`73`1e0f0OIHm|gWXBi>NX(G(AR;$U6B*y$-yFzqzf@N;j?#Niw7Quk{(*!L z$fbj*fy6CYI3F5D%C4cc19OXv$ZQ3H9r(#O-S4pB|Ukjoh9Aik^Cu0hx#(m`Kl0JD!{&~)LICy=Chke@;D zG^9=XkkN9!gc^3S6MO*sd*66i|76|d*fr?BzAk?Ul7fI5oY=$?h(-x`AOmFlLVnLn zwp(V1MA$tNL((7szruyb!!dY7>_G8XJN)rZeV&n~vX{=w(&)Y@qZ`h-Id{L$*ISTw z0X&hl%hp}U9*#JaOblBihFe8=H=(~Jr@(X+Lt=;%>9603ee%$kv`%VS{NBXsQ2Gjd znPc>*Nz@Vo5dkTw9F`4A?7d&+mxm)Hu#;WWuU;dZ*--BJT%fkLs*9|3+4KzY+cy!deg za|A|fcI9z0;v5Y3LBYO$n6G=quhlk4qVx==sMBV`3Y`Af8d#&Jb{B|!R(Koo_az9@m z*B;QdHe?&9Z_ymEy7NpoAFEtu78X-x>Ri$?Y4)8WmBTkO!@A(z^JI{9{Qg121ZZt zS~tn~cs*Jg7f>=cwB$BRwd8VneO&9Y?DEh&fc3cEtB;}lbf#Xk$`~UT)ISqPH14Xj zYr#|0{-8ETh7=nUlxV<5D%{cBgI}&Di%ahzo=wjgY|gy7`L?{Tt?k$1_@akpjMqaW8KgVq@h6Jz zia_$mq}jvo3QT34Fmc~Zg!pnY3wjCj2)Ci!+>jFq2V`+W`Khb1p>jpZTxo_?vMZQB2)HI`Eh)So@*J60B0Q2A#YT z_)wlNa!nRj5#Zs-=~ap=>I)Z6*cT^P5XUS6sxdcHf$)!nlr=g+qKrQ!xv7_N29>-i zAP5se$;(+H!V`kvdNhkZ93QFac$aSC?w))= z734n(AVfZb5#EI+Lip`{n3E2m?VWxak@lxw-CaCz(E*S( z{js|o=W?0AA~3kOAF2$!pbyV@mfhfn|1>WpvanBZ5&{bk&!!(LNHQ!L0hQPV>sLxN36aQ+=JYmNA`CoU2Yo2V|8emy-xyJ z4_f9IY{dFJgopcM6hSeIg^w}x&1Mb1sBIYj)P0&r;@g9OC+q9s=IkAa99=tV7t8DX zVyk_B{Q1>cyH&W5RNEZ2RB$8CkJ?RHfzoi5eS+>~MQZBL9RiP_<#lU?=c{J}zxPip zjuoW?D>(NHTD|{O+nJTlhF!16*l)+v@rW7nB=nZeJfe=77$6yW9F;K7P_2Io|n{s2_ zbFSJy2)^wi&v6alkp70J%P+P;W>!;`r={|Va6^$ zc@%!~7Ckd1J6Y%7$VGp5yJ=5IQW#rs-=$vV>ma#5H`na{D4iJ4P%E4u$0Iw<&P@3 z1r^XA5IAG~ zf2@yWN~<77iu|7#2B|>HqnlqHVy7e1l{G7N3x>{%owQc^aW`;Y$>FMILVe5NNb>V; zeIv-PGTzJf)T6Ql^G5Hdi(4<1Op%K@s-O&3^_!KVaCEOK1*S@bqiy1 z?JbT@B^s#Kg{tv%58lVejWhO#8eBmO3n}ZxMkRLL{EuO1e2y#2wLKC7a)s+FdPgwL zeUK+rsBg6^w>=_q=oJocU#kz_6fm@n`hiu$boJ(l!Ku&br~C^QZuPaQBkgW$6gWfo z!JC>*F3=Z?%news*X$^LrJz`|EnuN=1xnQGi!VrFgxmUf!b=vfmBvUVxCf!3Nb0qN$#;=MOJZYZj^uIffbtV%HH zG{a;-5NZdoa;-~_(kX-PA_D73PdQ!6&zM%b&~>98JtKiFtJLSL-z|KRqRnMS7TRvZ z23u%v32-XX8BG)8l?ttHw)P%~xAe*&hG>pr?}J)&7-?uWgSfqttIva^8`-7FPYZ=sTUefvSZQHSTP#v2 z7MNcnN+gpIk>7_m=$I{;Wm-h17%w23n^7*ne50WXi1<5p0p?&QNkqea=JW7C z4cN@@HSp!v2qoEdM+h-1MYA(hhf+{9=RTuB6P}31&c~Ud&Sn*w!y-P3lGq8`2q=3L zK!pmm1yH8M_&`3!siHS9;wxY+m)aV>&pF0rW^NT5+J}ji9J6DJUG|Ad6Th&+C`t&i z@KKIr`BW2t{thzlo}a_>7H0CJo+&XFRT3%7Ul2*~wy7pytP~d6&dRmQC$XGMH3!yE zs%YQ!PkVmwk$_L%mJvoKCfe=aqsjszyE52f*Qp=W&5T|+Pe|546PG7RWW$yG*6cs5JW62YxFjd=%=_;I0~FAnN@PE%vj;6U8l~Ns58*Pv4A>hR9cY94hELO zXU?4fAW_xwXz4`8dn0ycK!+mAMMW*6(e(m6r#mmJRV%yJR$DBiHL_?@DOC8Qx1&|; z3H4ointZeGuimpGTQ14`GJifDy;!D#tlc34f-`l&kw-lGE`9qavEz)4W6&VLY@Mz0 zn@wps;YX&zw-lV>L9t}Xcf&ABII0jb0#;6`b@KHUl}>Mfw$zVTbAZ02N%R0_p!5&_ zx0}QOEViA%a9K!32Lxz33W^7KIz27Ylq93UlZIeF-yk`4WOyDkohy+x8O0F4T0~79 zOtz#)xeQJx-4|FK%o6K<7+&zx-(rmg`;{DV=B(HbS;iQmvPLr7`l}J1s{rx6D#vD6 zU9Y`x(gXIV09P4q%4qc|*T>1|ZdSHRX}m+}laERYpF)0DTT#$8x)!2ptqQU+N{J*# zu&)6^EP>>_+uNfLL=zpdtx)g}D`cvI)F z-SZiQNPlSnJkxGoPv<~^fw-h7GwXQ|52EZ=0nWJ;r>ut2z0ZZ`MA0EFF3?I0@f=7l zS%VS<&KZAY9;+xD=q}OeGx{7xZ(lUeK0O^Od#P1I&Di)74T$_Mti*3tq8H|a6#0Nv zQAcmMSWZeXU&W^LL2;1r-}2i0&N8E4=7GK?*V)}_YD)wWS|KMiPMF#DmGq&0bdYyt z9)xGhLVR9JxwyWRr{9tX)bXDDKw1oki;FCiB;DGSS+-a2;${8%g{04_kZew!=gKmf z6_!_Tp@uQ(6;c!WneP?#8PfAnpW^*JoZ|2(uUnTXbokEI*|zaSNg50q%~p53(Q^+2 zl#8@Zp}O(rkW_1#QHapeh6(Wr(H|%)XxK0Hl#aRUv7Y7fl*rp8&#I}>=FP&6XL1kz zrIl)l#UplSrU_8@iGB44Q#On8Mi*}NvRjoq#yPDm4Ot>B=efZ_%`HTE=Y(y15f&T$ zJpD>*8C8wmi<51)r7*3|vtDEo@Kw;#Z0-O`dyLJN{k=alQ$|8Ky;_NUvHOUyhnJez ze}>#Mqe^c(Mopt-<|Y*x9*`&#uH+p?^Ma21s^g9+V>(>%-*?*i5vmb#ZVY~I0Dkla zuYR~TP9D;FNzrN5l6Wgm^uQ%0MX6NPKKOCn{-OZTRKJTRQvHna55t-%MI5gagi&|v zydw==TYs|YxPZnPBdIk?aG%J5$ZkE(@%qt8Y6wIones~J-!Or#EVptkYVZ~gY;p`~ z1uE`1SFsUNNizS*4?@u)p+*t!FSk;EY_Bay!f>L6 zfBlN@*{51KC(bDBn zCJduP=593>!P-RciRo3oV3nAbnO!FRYE~FY8q`Y0BsU@A6@Iw7@8iGH{qsPB&%dS` z5P2^>k72%)HpT4ZvAVQkbgtw=z_YOtDw~~P$5y!)HpRQwYhC!SzC2SPY6Rp8fm7uD zx|YX*P0fwnUJKaWg|F|RJdGVHQT(V1(3gm|-qeMip)F&7t@1YsF^%RS-Wqx-Cv?;8 z*4JL1Hy3d4Hv>vf;OWWdZ)DeU=7pwu>c^qe2UfDW)VqQ2=y89=xXYV#FEc~yae9a! zZyxE{wnlk~U1nt_p|5!Bg~hGR0sa#|o=gEG^-@md*;9}Ns#{5eTz*3@Sc9~vyH!BwXZymgHt{-vhDv%s0?B4vqb zG0yKkpIWB;$7_dJFP%y^+my|Pat{+1VyLeCFkVTUuyxnsnPd_PULBuDpJOW*lfH|c zMemk@)!?%s6mPP;LL?pRdU(E5StM_m8utX9LuDsJFFYd^ql*N*cCD-}{&{{zaedlS z;~t`A0xd*ckgLva4%HE2Sml#67Nf|esscizwYGz@(B@s&z_Eu_@8iFPS^tO8`-~8b zrtg=*`S{D=Wc*)7Jpb7=lrgY2wR5yFG5(M4;r|>GFDdogF7P9CpHPV&@hgIMR)c_3 z5({GWkq|3p`Fn0!lg=o5tz6bzh^qW#x5h4%6bRZ6p>K3D*=>6+B7{tYeJ)J(DA zb_wI*90uRq-57{S38`hl)`1S}3)%&SuP*DL_6C^)Gxr zFLV2Y-}3uJYYA+*6eE3dF{=sjkB4!Dts<0`h+cwB@vx@FnmE25~4-GZ=-xSB~3X`MUzbz*aXJLSKGUl9EMae~C zj|TCi7JUBRa>u!)Q5-&aQ>H=V+?d78*}p*1cJbqJ=fK`L=D*r=X~vFoWT7TygRRA| zQ2a`uTpmmAX^edNb*x;HHOA%3l7bmClnD$b$D!4sgp_M&6Co{}2-={3wNWRacW}N+ zs8Axga9_P~{by&$txPErPojD`OSwM%Zo6%c`ma&4x|8`h+ZXL-@+xnhyW?T6t&_c94cfM@mukC9j*>`qPsg7Gr?<0(W!oX&wM0;2hz)VDX4m z*gH?h<9S}KLFH$@+{54aZO{v7MRmqdH9ZGB4UxNApsAk}eOwnt^PLHHkg!ph)7x|e zuljj1f5X-L--dN>^@IXZC!6_Zze))V2mpXzxY++i3ixkL^#1~jWvlcn9He^7P& zg_iF(_(u=wk_}w3AR-Tv^!S4Nn~g*naZ&^DP$6=uTCE!%m)6kI zKUo9ftW?95?EwdKklvg>?r>^~sw{%UP`LH-=f9s zD7WK$VMfsG=dH1_J*y~GYXgDR{NljXq7(frQ|#G6aiFZfvpPZAj0`3PeCqb}PN#S3 zRLIRI4r5!4eoRp2N0tpRASND*7dEz%H*Or-G^t#Uksjrxy6ZYm_6SjftWdL|j<^m) z7E4&DADec<;WsFCp(?0U0ZRQ8!F8tj23<{)Xt8{!vj4P~jvku6pO~;&3h$(}uz#Z0gr&bYdB0no0!9H-E`^LUVbVww9HO z2z`r%MelxCCR+=+G#>L)kHd#<8R3;PwVKpVNvXXged8#)95!wjRd9YP8v{*|C!$p# zniFu<)*WE;2Td-cNt_UYTuV zSHQ{FL8BoP$GuQ)4?O^4A>_qH35|nfS(cRCsOgJWC&IKk^o0njTQ=nMtZ1)wNIL`0 zgN}4*b_d4SVzI21t6h7m+&pZ47v=^klw~pnL?}*q0`4OOv zq}9%?zepeR)zRBA(>Uz9wJ(Q#T5CBnz=^GCd3#X_Fz)+2>H@h|a|zR&wlPP-D4QNt z5>Jy*9)T zfa>WR(eUTrOXdwW*|;nS7d`#ee1+xp-n2gUFLvT(clB?D=vY&9d0>=mitv>^RCZ1Q zD4&?P7Qva3j~O~|q059hd-%&PEV^~IosA8iV^r~39-`Fjh|o#ACpkEi2&X$${Zk&Z z_(D@Nk|rT_axQqb3p!~)r3*aMUEl;L&+L5b+MpnUFD!0N`^(iRu?96-J;YFby^3P3 zrH*3;tf&Wvr_|y_DXnwNOu(=omx;yxIMOd&PfOBB78>?>c;U8tiTl!o732+sq@%eJ1lqZzRns@Ro#w&1+mat z7N5<4jLThWQT&6PTyN9&WtSc(HM$|L`kVYr&-r2I?K1tQ+mBc0_lj~ska8LjBohUegsMrE>=WbV z(};TYuTu>tI~vRg=<_Me-^mgphTw&IzGHi>&l1Si9&_+DL1@-_X6HabH*&&JqOLeM|b&6hQpcRw=klieFR1*e6=dw9Lo;r87av1#0DKNHD8 zLwg6-35}yICo5i-2I!oZ*zoTV;w{vEt5Fa9r|&RDU)oQ)3k_9hbX`0O<{ue{UB&y_ zNhxGF*(gV5;&%A3xz22zL5Y*5CCtu?2;LYQI{X&^n8rVBC05W#GH1B@MuRMfi_ zz{z2qzip52Nni(bad3YfyerMO2h&0X<3mg~yz8<#i4mbGQ$fT-A z-f+g#RcNl>f!dWG@LBkyxov#_qjk;I20URQOJ6ADA$;jVKTkDXvT&{sgRFP<%wo2! zgCJT4BAD98``fnf?CZ1bbs z@6~Z$)0nLl@DC_In_7=f8jxeLAa@9D$DeY@bvWa61Px`2CJm&i$pKj3rtS#V#< zPe$s(1^`WWg2BQFic7*XQ8NoIktGMbRU53{m|;EW{k{4*dkz>SG?(Y=@Is&1WbHS( z2L(pFw|kBGa+?4E2uW=}a(?lMh2(S+UD&@65|};2Po_KnX8BkUL>eUgli_o6@p+h4 zRPt5R)W;FtpU_<0(0}HL@4A5(uzUmqa0mU)mtvTAFW9@j?h9<8-ZS*ox)&0Xj2HJB*+@-0GtxhHdqZThKpQXP0%m_;wYnZj=nm* zfU-0FmAU^Ibefr`RAV(Kw3FJabx>dJ*ckggw(vpcJCz=!!M1kXD5f$$2AuoljO_Jz zKHTBSzs(MwU`qZPjvt`^5Sa;K6IFj8Le8)<*B{`X$*^~9N)_(n9cW1wV-&fhkqv-1 zBUIQ*m#{C4{GAXUl*=1lAA{g&cR(s(w-E>DoPiGHtQ0O!1Y^4?fT1ftXdS>fHU#S) z7Y-ROMHEUZYILo_JoM0G8X1Xs)Pr~uVn7%JK45PWfC%jvF`Y>a zcsD3y^{gyh+z>{96y3fBJM+V?+CM?iJ12cpw5hyHi`&U0{wDMRdahbXzClK>pf9gF zenrJKZeVk01U2A4{y0z*MiNdOfSd*uHDh{ z-uNMsy9$BuO>Gh^^`g264M&Fw-cQW~=Ve5Hr?vUh(a?g*z|TzR-?(J88%4YghP2#+ zW^Y*%l1S0ZD2ns}cSLmo0{EXXu?SZLB1!p~fi@@_N8H$fC>x|l>^^wQGg&diJ#nVG z(7$()tVO(hNqhVtSLY5N^U{}X>6`f*dTKp9$ghS-=ckEwF|9*^qmivl*o|6U_+JXa zMU(A@e#V^{0UrQS4ki#ddy61R3pg!3V3wi&^7EfiKuM_P6|%z|Sn*$A&Jx_YiBu7- zwoWzYGC!~e8XTm1cGSOp{c7_+U(-r2utRIH$s6`e4$@w+l=C=^d0(t~f*8Nm>SVsx z$1<}&7@7z*GtKnF$!>3zdQ7p#Y$3jK^Q?GC_s>{IO0WnU28Hl`J-3PnS(%G%( zu%=8s==svW7x_vlIw9ISI`yzdH}ICZ;{4n{4~|W>s%@+IuDLb*?hnV~Zql%^r(%2c zwKLzV|Db+9`L=Y2GKqx(L{chFnwx%@hu<=5u>zF)^R6zmzb`q}-mjg&kuLC7q0kpE zSbvZ-{-c$lN!$xAY4*U7DOroi*+=V>+rLoOD6!z(&hi8S{az11^|Ily+n0kb;)X3~ zvCPW;Q}tauXSf6VlNVt)$9QKzk0^j zqnB7boG^Ath>~^XX)jCFzd7IP8pP41w+~|AtKF1Q9%PUSu}ONk&VH-9RbY=%FP!-g zkpgQq9xw$Yva46igD@M@flzwbhlNin3u26OU~ZnZ(N{`ve17OG;pj{p+&LhIc3Vuv zns^3JfHNLYp&4$X&$hlIYDBC)2uYyI7Ot?WBCfXg(ER>sb^{b=x?u8(#76#w{IJNE zp{6pn@>lI03N?(|pAp%Y2+lWpPx{fL-idNKfR7eJ^t$ur1~L1tJfOWxWVjkg^Uf+Z z>TT05fs!6=?s`Uj;SEe(5Hs?T{;UpRUmXVMWY~`W8NC*Oi;iWv(|cP31T$YU_QY=k zM-JRxGphi+K;F%O0?>LK34D3Rq>(#|5Rjkl$0!~M$#JFdx0RtE%iN<-kdEVpC1lKD zeDuZH=W8^kRF17b$G7YI@$7}^v4mcJ$F0zWze50wC;kO)`u0@yx z98f%LtIi=Kho<$TlXKK=dh6$r8!CNGV$!$(Ux0yrRL=_`x(8#!2xQ})+7bg0ThrWv z;8`9)N5NlHdM&WJ-Z%X%c~w;JGQv>M7l?RWMqutcARB6***5?)R~U!Ie>XjLS7BhDEVD2M~xh4-+#MyiMDq9f}fc z7^X3&VV*CCk4KSE%m&5X;Be@3Y;74o@D8eW7&&kgS4>-^P=SkSb>ZCQ=cj+V>vhm5kZ4>DSp3ivXPj%}OZ|xf1Ip9az0P8OoREN+=go>^-DHRntS)xM>vm1`D+ma_hk4 zqz-mu?3GYR0Xtlg2-&=0x z+W9jwghcvEMzmmOlfBr(iz)L2H7a)+;;;5`OtBvgdxTtem|7!oh^3SK)>2LMh;o`igU}>)JajAtv!6K{e*y?rB^9GpenDy>% z(Yn|;*~-liIymWdeUZzb9$~cU=tlR5nm+RCj~VdePrCWd7GQJlk`7u}F=Ic+OMQFR zzc~fr^KFhTx#(h2MJH=oDV~*k2(t!uKECbd$u$E9-&)yxQ=~qaJrc6J zAyM=*qS$sQGs>VH7RnGUSvnwr2ziDxZ}XI#YtW9B6&vl&t=}pB+u-(m&r$smQ@q;X zeFBTurb#%@_y1%9`E&ZF?9eQ)!SaHTvrj}71<9d z^QvKbOLrj)WTPgHJszpjlLdU?n>d2*{%o5Dg(==idVr0bECB!fX*f{~CjHqVEF*y4 zI8*HCH7N(R`2Gai)M;M{(hNkB&)OPI&lg{E+ zCWVV3Cq(L^XlXHWV28*~xJAm<8ByN&S3#>61q8tgH3Jx`{m1|Hh1+x~kQxvTmHO5= zIo=!luleNYEFvg1(Q~A-Tab0#)e~TAM$=vN<(pZ)K#^U+y&DCAwWK1a_grG zkt8#l8+a+&O^B}c1o1X7BF{%~Al_cxP_z4LpRd&(Z>Mu!!vUvB0^E08 zTWPhjKY%U6-)ob$Hz=9YS(qDaXEd8EolMdlLy~!#OOWyntsIj3^{&~0=BB?{$!JzV zlMuJ5dC~Q3`YX6_T<4{cLaD*vw(z}?5{wzQCXETL`OcznX$qbASG!V*NX3XFbL8x! zS=bw2d-Q1Ed@%2AlH?HxVz|Zy>U}$YzQ6@;hcbgzHq{t_{q4G^hlC3W|43j-{8P@m zcxN02!b2!Ws8i*Hfd6g$W4s%|ROCggUIzO^?-yy**EIG(F6-^KqE*bMaO|V(n>Zx# z9=%IXKZB)+!Z>7&z8$*=h?Q7JinmC-z(Wq|=StJ76g0?(3<>Dbd38=MQrhAqQ4E}d zX4)S-z?ZZ%+j}pBSc5CcO%;r@?s~)d0i}_~e1IQI?!yvSlG4Wsk&V_Ne0Cv{=&Z8F zgE-;el#tK`U7bh76-Q#Iu>ZJ)+^9N$g!H~U9Re<}{@^*C8u(Kp%PX>-`*x3@DhMJ8 z$P53P8<0Db)zdLHK{Q`c2E;MJ-zX=c&MvF*WMwsv`{hYLDT7DAQMy`JGo&(2-#p^z zxuqx5m}zei2Vahi-LRGK{bXOlm)oD%Z=M}c;bOm&)`XchwY`cSJGeT{{Jz3mLQTXp zh6)LI7nP!sU^3qHVGU43d#~<(4ov2eh(~eNYD!!%_Z}>f7-oY$rGfH>;q{n^tsn(N zA#@XQ5i!bPoAdqGY2r$G%OA4orFy$4H{y2GIbVEVmewINSaJ(drgN10 zb}f%&DK$V(MlBCerV|F?Zy^LC#ME5HABc;*j%B!TmvU>h=4E1$Okf~5-yR@wJkKVl zK~DM-2TuT)cVGB$r3d1@+ogK%z)|>m3Gm*_u&dVeGDzAmPOtbo>)&YF`U4dnN=8Jr zHNL|f{|?%Jz?gLF@7Gk*8y}y1pIWs(a2oaMUXKcEd)`fe_jdd-DN}#AP3siVdr|<% z83%620DI1=(x&4B`$WB_vUK@BXpV)ftUXgplrjlOlTKd#%GKMG{#8@kj{CUooX1A$ zaI$869HGY)QeV}C<;0k@xah*u!<^0AvUI0$uD2u#kOh1%_8|5M1R!78h*h zMx6ULuLL11HK+0aOmcLZ?9uS|PtS7vdC25qx?rWfY38BwQQB6f@;kW9St1Oin`GZL zwZ0DMie0?qJT%iIUgk63A-a7)qqQ>z38k@9x95JKeBrC1WzhD$>LskbH#TIZH z39Y4CJ$TipHCi>0DJF915TUJm5ijotx-y)t)JV>BjaR810IkIC;YbL#A^5IPT^jMS znm*A>Eo@MEwg5~-o)pPXU~_I-%<9=x^>DMYIwy~%I|~mMV?dG%TZ!>*VhN1);a511 z)1Zsp)&@z>mF)`H5mqs>rl4sC^Dtwsq`FaiJUqPb&hvx5&}rRl(40>oK0vVB;}_M% zsM$}J`A3)KYE!9$SCu6N+tNp!p~KEO;XThDHPz3?A+temltm-qv$3lD^U-TLN34?Z z|FQKB%$Y!qwq|VGPRF)w+qP}vjcwbuZQC}x<8++dKIhKNnL73Th+V7p-s^c5?PJE# zD1ju9W)z__@UxdoHy9*(qD~emwU_Yx;!IX?r>{|Uq4nB7Jx#OAjws zX=YvV6q)>>n_!tYvINbRaS9y<7X#J3-Bv>E15rb3qg4fJiA0aswykk@8cs_Z3BaUr zhl?!@-7fCr4Ug??&RoeH;AA>o!~0s(=Znr)tpfY$Z4n6`9BO4uKipPAALvL3ZuFYd zM3jX~$4xTAh3s(H{UX_ux{K}+d^lPxaZ2?HXJ%H04)M}yExoP66}M4>1V>TCxDR?s zKAg>xlnwBA7>28(^MGwG1G&_`DaauVArmGfT3Lnnaddk)e;tUa>sUCOj@FqQ{a(D6 zdJ$V~^OQRol!re%e*SJaI%UE)z(za`FwM=h+VC_d+VY@MY#P(aY?03+Vw5l~& zIR-jloPWR>7a>%6TGtSnQeUKEBFW*xVjjz)u?F|(S5IpQt4X9cSxA*^LaSdB%ng4RZZCr>WG={1`Ho(^c9K`SXq?P@A!$3Qh<@7EX~X!P;xez5hQzA_w{ zDnH%Ye6J!(a z@w(Ya|LP)llQ(gi{f5_j?KAs8d-g5Vv_VS~&Q`a~Ou+%S+SV^FD^3SKS}a7Q+x{Y` z3H^QW5NR=q_t2wNbiQ6v$E}p4o15Kx@;QXB+iC(f52pCRWlg`vInDI>?;B}tI z^}0rB`>Z%y$@L0gh|kbk31psmB=Q{>IA>Q@a;gb5q0ez=fzpMRlhM*fmhMewlS8Du z;5y7Q+c`WUlQF72FmNrCFm_6Hp){5l#?o|8Xm69$sZ}`O{+uZ$>7Ax6%S%+z;Q?CA zh~voRZy}1%G7d~mR7{y_G-tacQ+%}4fXZE82x5Ye%*bQ<924B)>nRIJEaKjHjLW}g zNWow3U`5}I!kQ5*jDY~$v-{f=ga+GF96m;^yD4b|0fKu~-f7HtjF39b&6YZ$-vId> z#A5WVc^7^MF%VT$TEK+EfC&-P*F|nl&0kr04i{gU(1J zv$PSltxk1exp!NiS`lMu+|fr3YHD4gJFkj+nt%CtVXKI-a2so|9G;5Rs;yANxuAz{ zYB$tbNvG+Lprc0QOV<~;MzvHm+Q*&bAkT^D3jifI@inSu`9kpvQfSY?kA}>^>g3{3 zC%;F0UiZU-W0i+no8Ut!Nx{pE`j_|b*K+0Gz)2tao`lqKEh2~)2w7wg^6Xw$E)miR zK=<%t)RAi7?Z_*xJLO;m%Rr|a_p7wr~H>rU%2g`d60wI*4$kym`(6-_JyPEzUru-YYICf z+L)rOzWtXZDOAl(Q=jl{^Pg&2QtHj-&XVnK0U~x*&SsgmF}h5XvwjsuseTv;Vs*6^ zWG{2|NX}+$PCL6Be80fPRnIlR>&525CC%hg5O5NtKH#h{4XamcF{PSX0~ueY0B+ed z+N5dD&(U>uJk=(7T2XIip4}x5kzxJ^CYnM3VW><;tv7@LO}~lyTW&P{gxx0lMjhlg zy=hz`1Eb) z`0aN~@`~j`HVNh6O&}98+#^||@mvP1S5lnvDaS8gSbNsi8q9_{3s|wDISzhmH&|?n z=jjgT+1w1v8dPdoR)*=%d$MBVuCfEjT-0l>91&~2g@1pIS!xD0?i3(xIqgZH zCf0<3Ul(Sp137EzemeAf$qcYIo_3?BUQX3X)fy>l5etKL9ber!b6F0vw8SRaF<#S^ ze_6{ziU2CC?R{yvEbES?WF4dIme3mOD7BD38qx|X^DDw8t+rVju3Z~~{Q~3fy|E~0 zZJ&N%I;EB6_vu7P$0jqz`ZV}DsvA#72kQyTn`G5w6JcSrVojORCp1axQA&+9+t+&?FeCF=2USI%1 zKZy2~@d2s~EnqICio$y+AIiRwL8nv`Er$)mT>C>huNp4Gi03$UEqt$<=eZw#cVmdo~PR?gIpUNL;zt2uO|Cgo`1 z_+|`8XQ;h4+4J##$udj%`^DI|#?v-889uL6DjFe>Me?k?W?~?c+QqUzl25m6)K~T> zYW;;^4*lVMsrOEus|@XZO#($m_?j63uF)LYsUvi7b`YW$(g@N$+FUgLd9K=tlAA4G zA$Y<{3O@J@xj9K9WqVE~eF?_H(dx40F$OWU9qesD&TDAq8={68hJ zsmnDewzGO+!bYye3>t!FN;Ol>rbYfPZ`S9c`sHNE66y!iv)whbFSSs1YF-Z=pO=C6 zL(Nl(o_Em{=-gDi_^E`{o6<>4=JG#Q#dS^^bn7>^0&YsOZow?zqL#Eq+%@?f7?uX2 z)jHo$%)LTxV;m8~v~9i2JAgXQ`P;J0wLZ8Tr|!)hMWFtmE*`{HcGu&>QE;DQ@6pdD z!dwYGITmV6G%qh6lj!mrSh^DF<+HzOvl^_%)Qb65 z?_D-&276;fmF9m-YePY@xtLD{w)DP~T78r-5Av6cs}A~mX7M0;n&pCk>V>|{eL!5h z7uUB?2MWIgHc)znWUN5Ak(IiMZz zM?wkIA3%lMBaBh3Xo@l-5?h;YX``&5Lq_Ky^c$WT>6&MBI)dI1lK+{-DNM<4pYv9n;6Mr7n840RUB=S?#85Lme0LT!cMPP zC8UFL$|tXo&$wN#?d`beOU(U<+RN=OHgqJsY2)v};5=#KQ=U2RMp&gnXastQv&EUk zb3d{hE|hWSo2KAJ;O2C%LNIR&To{?!^`kG14Fu!G1;S)yBSI}@Az(t1(bPMKsY_w0 zAn(1vhKsku%8=KE7uFwClX34gFLDy9BfHf*HIz>=bjn6aj*F&x8ivGV^v;`B0Q6DF z^Z27(EC{LT;_(22BQ4njxG$x9`2EbQ zE2pAqy*OQXjeCwjhWCCc#Za@=qC9(epmnqkdUEGs6S`iQ?R+CPx<@WN%zpx%>TW}uH&havFh302JLCvR2;J4t* zo`W_1vDY53Wk#UG%h0P%{RkKP#W!KXcy>|%*fAg_*8E**C(WY$@>2B;KckUT0MGI_ zNoLj8|FdZ{6*5pNI3->Z2j~0+d6<)Fc@;(=iy~r+{wJYfhkG5!p9BA`cu`tNedAsh zbk3jB*Q7Gb2SIsdUw%%%jYgG|%=9)t4e>L@+6%pQUcsFu8Yh0Esml5`tDGL}BwZ~! zls)79@j{+Y?i!6V|5WObbWWp_-3P*Oo#Neh9*n1mr}o5oBF=kwO}(#U+ul27m3Sib zZmT<}pBaK;hyt;{&b}w#?s6lA!V__THuTJMxUEH^k*=?x&#bbjpMOu7hJ#Z_OLAeh zhStqhaiaF2+6;Lz=ePnl{_IZ|uPMD(1!_zf|80xx{4nmGJ@7Cyv?4**2mLR5^7WMm zzhxYp06vFq1-?YndWO16<;yD6EE{<+L+86p{IE7-_OA=sZXM}Kii*+|1(<4RV~$HiyrBBf>#_fhC~WAg&Jd4sh-d%~C1iQL^*LX2*ux#3~myigm{? z$rY=~!89uirrU4jtC}aD!f9gNYVUfk-#PcMdbU^_pz=8k@UGdj@)8u1-*fp4r+TXE zE-IU&G(&6X79yT8(9}ZQBT9rC{zkmR=!vencR^tQSl?~A%XY`AGvk8oLj(*@SKk_V zY6$Vlamu7)nErPgs>Xzp%)0#-4;owYnmW}U)GbY?WM6;V+i*N?JV$@~REd_ZW;@y0 z%nZs>TL!#pk&zR-Z8s{#P@BZm{hyorAbg3_4~h^==2@Jzn0>W|mL}iTEAgA+v|ao3 zDwiV5waJc7z|=fY$R~GroEsaPjdmR;Y{R3km2szdbzm7&&P$jEftgP63g8VIs+Nkj zRPi^oiE{d_<+?r#zq#Xu;;Azf?ebXniQbB#4mNsK=em9gpPivLgx1fmcDGF;`t62a zyqAvVd|qyOGdtUwtgAFIW&4RvhV|$iyVWV{Nt_KdF2hl%RFkh-zDT0##K^L454~V5 z7!4v4y`opg_RV17Z)^IZ&HRGISr?+9BM4`TJbC5-<)Ip@j>1anx;78$^P)Q~o9I=5 zjTpx5>|4&{LR^Wg&*aQezue{{FgP6=1~gp(6ymNcE~dzZ#T|hN>XK|!Jmz$G*43D3 zKg{z93_&}mPHg)3@_lMPnI`#SZFb7}@6I~*slEl7W%Fv#A71E&Ba(G~mJ8oXR=VyR z3twsRe8oxpCSq^K18#URO3hnCo@Ed`T5p4B?Lf;KAHi}g$ zm*=AzO67GH%s1|%!;0g~BFItc2OF;+mbE6Gd+R10VW${=`OULP%N{}Xu5}IJ{*|f_ z{N9^3m`pqDugz4nm*}ua)B?UBoj-27vxJu zwSl1fz$1J35qI*yZw!Gudbu6livih>w|jC*F{`DMylsdVE2fXwD46cEbOduM2&cGk zAe;tI(*{qw4ARehN>tniWTy-$FVRYG(TN{`)Dz88Q=8wp#(m}RiUxG2`fzHJ{I&Fo z)DH!7EqrF1XHN7pOrDb3BZskjB}#K4GzkwT0&=}B`8NECB;qa{v5tiLXwfZhivW^s+ zb#a@}Wfz7-GgpyMu9+KMMN~IC%;lD)NLqHk+hYefd`U^l=15HnQTHJjvLAbyruD~` z`vmoN1Z(xUL9=3(7j{NgjPgxQk+m!d!_F}&MtE=Xa_^qMhI{gLpUs&G4R&)+bMDA7 zCn?P{>)9XA>pl_v8W$}2WNl3CXdoZO=lh6y6b0X(*1(2U@n$VgnlD%ChDy$0ZS?Ln zA-Av5~ zEz#GQsbTeTlCVD$Xx~&(_EwF8!RH36WXPDciP#MDo4r5(Yel~2i%s+FANQmM4+KQ| zA6Sq7Vx3gXoUM#(t-SxAf@`dXp34>|n%}v`P9cllg<|sMvV78PO4;VxF6|}SmOLSV z4wqc~L7F+m{PotS&Nf79>CYK(gIoV?=Q;H;CZD%Z`hU?*41DnP;ZIj5Cm!Awvig!y zZYV;*fI2mj)?_L*?$oqT<)sod=)SCEWWU5Us^UvES7A_$3l52|L+tF0tSEJ3nJv$% zoKW~vN|ig(eu}1lyc4;(8iw?R=#u!G+1;|{q2z^*$uMnC;6DN+vb=^ya)?8Sp_f5n z{CL(JH4@3z)Rv##nu((?j-kG+xjG%HL+P~!_7YF)O`()FNzYa)1&R_GHdHGD9$SW_ z9mQhLaRB#Ud;BdTXYx~AbJAS-v_~y^ig2|W9#P8!T#>1;QXo@__j);dk~S}PV`AO& z`}^!Mr%#^WFH83Pel^CPfAMto$&NSPq0I9=`PZ_;lLoIJ4@so;VEm`P_8gEAbzO<9 z$fmh60U#lhn@nR$)Qnoln!8?q>_AgMYs(BIhr#{t* zbmd}F;hp`hb#YX%=po!C1dRIGMP`JKb1<5XWzA~ z!z5W{rK9t}fcOh@r)X_>k3WKW>6q(DkdZJZH-TPH`UR(0ctFG@MXq`s@|47PfRnfB zDv~0uq`rXM47B0A8%nBB7vRB~Sx_R_W}#HPx7fjkDH6BxT8NT>&kZKdEe;zcRcFlH z_~~eojPnZ;0c9;ZM(I}64j=v3=C{Y4{6)U}f810pxHsf_QGpBw&jgr-g#t7NgciiS zMXZXo-st546-#m4T*I?`p@R}qfk50Rn}iU7gpUE|2A?Z7?fFuGQK8UyS889=d!qAK zP*kDhxLfuQTEaoM-!cST`Ao*etsQ(K<%$OwNk75ORv2V*jg!+pV&<~~;Z^KAam)8* zb@J{T=Y%+G_0$q$=i|bTagily3u3b|wSjtGqe1q$hZ`UTB2JJA*$02lGY{sr;!=-5D z3N&*UV07FsbrBdR($}4JnqdodoRbNX{AWvgsV__@&6=AJQrNDsFuAl^WvYL= zh__D?L1Nk>oZm*(?g!_L_;_YIoV2DREh(%6( zg;|C1#6KWVw$*_vMyIO14j>D&BgQwD*IuvP4U-#1)}a_X8q>tdWfn%3I!~I`_!9?k zy2bPrIM0cH^&gw>C;M#Pt9xPi9~9!h%UneGgTRtZAPTN4~^d^V6u*sy{=OLR$l8VP8QCT!;ZxDwhFq=B)nv! z_x5-ko?3+>|Gpca; zQ_}%8utyB=pO{ptPcoBIbw`5y!9<6Qn9|96K={TL0?tnG5(2kO3^5&A(ruxJP%UVs z;6+(2IknJ&j0V6*9Bm#fPXeyjed5mqC|v;hM{J-ynI6}=f9~viUp!MnY%7(;^Mbj> z%j6OFY@I^p9p_zzbrS~M*G-90<29Y(bSPL|rgHjJ1GHxMk|+!p9WUC zm!MPwrOh1M!ml(9=7Oj)Eza$Fcp;$oU8IH9IN#5UM1h@d6nnH}?S?ESD~Suq&@s5N zkBLidjY8j-sCvG`$OBD0Q%I~-nA8R>s#DCt{E{MSk$Wbxj|hVsFowOu><`!Q@Db`( z>x1hFomP*BIyo7B3P-I|3=92-Xo49;16i9@KB`W9nACc>*gsPbFh_BgzUE%5F_1}Y zFd|Vlh;ySkABb5*F$gtC%82iPirT%%k9ETPni~37cNv&WR-R%Y3m#^?9%{%sz|l7# zG<~BpY7pi23pOz%hOXkTj7OGr$GIKSaAWE>onMqdxa*ev?DTK+WU2(%!FN{9%toQO zDY_mpWWfm#ETd=pZNn?b%0Z4x+8wiL*M7qZ24Y+++X&D(Aos~%q>vqurRxkmpds^o z{dywZB^fK6<`Zt>fJ(iXw?d)2cqvo+7LiM&}cwFWdGqPs5+aOsd_n@37Hx>{=b6BT1_2~Wlkjj+xm<@hYbkhoGB7b zicNMwznkdFp`Y$5Hlj$cG{w`hAua;;v8DPbs2sP#*%QTC_I+IzD~2f`@4)0u+muN3 zt?%R^?mjmck$X~^Cu(WotC~egAprc=Gf3#0G8###s-&5TXL; zLWM2PaSgFSU^elLe%Zn+14pBe^U*=yX+zU3ZG`L6KV?zLTazT(ke>nU@70Dx>a#&6 zuw)J$c>$A8NZ$ks6e{^Cx^m{X^!#%N*1ld`{P}WoWsXkJ6qx7b$(tufc>TRW_iq-j z9?t$(pb~8h2>r8YUV)6@Op~M{+bNG2p@5czhnR3-(BF2z)@kOBtIVRK(GC+K1Q#BYGz z2EhqKXD4%IZLINd1zG1<(lo0RlnDh+7<=I7yYkLGLwlwzQDJOoO;9wjV7@jTU|H~0 zaAoSa@rNTmDkE{AFcS=7EAR)-cnw2N#yrwI_fI1u!afZ>lA=3P)S!rbu&O~rjDM8V7OK#n?Gq^D6 zGJF^Z!rt#*S7RM!0rbdkgr!eEGI-gIK{7){n(*{oMV`oCKq;4D>r%)#J9MPi>NJ8K zt5KF#yFw(}YEZy85ku>k8&IhcoTj6A4nP@)tpgZV0i#9ygKTo_4<( zi0P6_TnQC(=~cDC=WxNsfUH}QZf6{tJksva71(wfN)Djb*m{XfsL!8)nXN=Y5|b@YF$$knxchdb`A7%fn6ic$Oufr%uI}n^<74M(HN&gsh9siS=N*(HLc`aS|d`LE9 z7d{Yu;q);QJy9xyWi!+FFn#9OVZ$Ut(v?FLP6X#0`Y0!ek*lw7?i6IXM9<)zF4!3U zWm>zTQ`Xkd?Jg8;XTsjDbo~CR)Hg?_pJ3Ebrb~o$yfkot<-PsbTOdNp70!dd%5E?@ zD_u684-mp#6B4HyWsY2SiKZRm@C^D~+E3!HOdGq`)zHs%D15kKSyCtKa+OnUI_aDVeab)0waTIMBkp0zs>kWuk_zTDD$Xut933cP@~5au>I>c1SKBFGL$awt zz1KQzkykZz5Dlad+zvcK)F_q@rS?S{g(05 z0_I-RAgz(;y*&BUorI(|b7XdEp#}U~gu0)tV;Dm$(bLRnY@}S@^#mkxb!l`dJIEz& zZ83WDFf!jP2GLm%zjt_Om5&kP5g=Epj)N;FzA;Pk)Lz#?V6nGtCU#^Gv=QZya|?(1 zJbL_Y0o=vfZxI|qA(4Af!cH|l-65u{#QSu01Oj_*To*UJ3oyRXoOl)Ebu<*8u}L)b z9vv*0Y4$BdD)qnn<9ffFZGpZtG~Sly4U!ysm+>~YR=7$>4JG9FGynQ{+zI?oHlga0 z3C4+}u&Mr2th4>2R*C*oHvO+$`lGGmfZL7i|58ts0x5H8o_g{G1lb4Wl#{KzPH%jA z0ygMXpq?V?)2fMJn~eLJE$?aWPX~)qGWwwkdH+j7jatlpgi<(46G{pQV*O)002| z-A;GGS*3Q4I7%}UkTID$Axn&*9t3AMsyWPc#jf-yd?8C_&aTipgF>Fxm9fMn4`WTj z&x38QDXB?sG>pd|I}8xUkhgkgp^JJGYVX#iH<7{_|CR5mqHoh}@wL2uo?f3HxMsgT zPOG*SrTgVl=+fZXf#QsyP3{cURpv}3OMgP9!Ki_?;+=UdY>_Of$wHsTtU+mBVwZS* zSY*jLdks|<4m)7Sj9Qy4v)FGNnNE@ZH4O#uy+Yj6^Tmr$pdjSW$w7RtXBZuYbn$jr= zA{w(-BR}$WO(3cn4x$@-)c)`S(B}vAXVt^7!}gQVH0H0WhUP+zH-FTjNE%6iLn%VnMGjkQtU;^A`x> z)GY6MlOb($6B_$fo1!6}8P*aonD)je^h z{?<@BF2BS|UemAXWke6>AbALr&45eq#`ScAOp&OT4Kmm`bV(LJ12Q;K#6(#9&x6dOz@lc$J> zUhDPyIZ&^Yx=Zmg*w*RV1>qj}r_(L`h6yYS|8X-NhC`#DW#oHN^niihAF)84!+q;J z7m+HSB=ha|YYEf5n*vv9(G$(b-CFvbt-2mv)T;dySFEF`j4$HJN!?aR`uGD{V5a_$uJPE*V0o*2g}H3 zkRiPj?o4O(nxs%N7!uTU*9{eZwmF{=s=TbL-`c#|(PIeV7UgIxYO=GEGer9fSmvoE zl0oIBQRK?%L16#dVW8AqL@YcAR+OlK#d0|-)!ltT=U`K)R;~Sp&NMxs01IjJH9!%% zyEO(?1x0;!6G{iCBQT6h+-QZLl`PD*P&g%?zZnt1$~z^57GG$R zbv0`4kORikMIMwXV$)^=iP8 zn9v6v>4}!)!4g)j0MM-lbHsw&XfV3G@wDPbR?!=H4Gq`&&vf(B5q3HtVb4!k7I2o!OYhV@sZGAENTE(8sh->fvqjoC1Yw5B{}j>+wtfN_r~8GoClKe3Dd$lS-Pl$C)W_h zF|^nw1=ETa5!!!4LRd)Pi%kdZ%R&7GXFCv}>z(la+1bI|c@BsJL_x05^DIu)`Zxi3)Pnb#u01bFyFLvlQvOtrLph#-tj=M z&tP~>=6~(QITT71NA|Y^hv(*7YA$!e%mBpQmbSZ$;WOrM!NKHl1+PHUm&As7uaK$5 zb-1NjH@(2F1#MkMvosN9`chE3#WS2Lm}y=4;s=Wig4>Lps<43w03FhZO%U+oZ5_3( zLQh=twFwN9mU%ZWXQ(VvXmfo$YOaAZS43raetM|iV2pfPBt~pzV^PCB)DN^HOumx5 z(VIxcb`vwo9VP2VPRCh@NhQo>PI1aoURpn3h(p(_m zvOE%~&(sw^GUbOv30Fuipr1{rje`{*kqa!ANuwtQPIHv*%r1y{@RIohSwK3PImL>% z=>D>TOof=D|KjZ>_16f(TxhoMZ1AN?vctc;gv&sM#HHYyv^yf_XOquS>{CV1d?8UG0T+WDF0CvPN5_7D|sMb3b?o zH*c`7qa*8#4{!V2Kvg%K*C@o}mbCF6)-ffV3{ne&tWrbK`psQ0D}jTd@iDxdg@=Ll zt9o(shr#^S>MPKyFAwZ_R=vfuEVh53t~^0{3G=hSs~w~snBBTqZ_iG{W8O;GgKge# za~4|L9(jO!U`y+Gr5w#ITf!hfLh?EqOM2H>a}&C=3~IB?(EtY7?)YM~0vo3w;Ei__ zPoiSX8c{5f#VLLk?rHSr;19^}fB#9Z zv7FF689u}=_7`iWK^m9d4Ksd)?WLI80}*(r%4ifO0ap;42SrWd`PTS)mr!{H*)rAW z!aW^ zTp%v)Z)v2GO4$a^V9B$zyNaDzdkxvF9#;hHaC98gA9E*6ed#!B(4&tcKc2rY4t_EZ zUKoYeiMiAH@stlWn(9{H&>jXH_e^G?5j8kK#|~+AfxfKn#J1XnVLog9(?D~bpVKQ} z*){Wz+Bv}rO0g_XBgVo#%9NF@14YYjar zd_2n^gw&fU@)x?79<7_tBR%RpkF@$NRMoa2>obM^>ab3r&Z+>rwfX@TGV@w_WR$B} zflm2UpC5?-xsm8}lL>jeAe0LITii4K1q4L$A8sW7y}IXYWoPAT<^F&5RIS?A4!E7j zKXv`a)_4fc1$9e1=_GX~({V24E2(hPQb=faLba5Ulh&2nr8N~?KexGuCg~qd1WNE^ z_em_nnftt)WXpbw!I+M8>Di()XE0mq<#$)7)Blt$%5x+LUz~6W!4dXi6UQkEhUf~O zAl7q*?WV-vCKlXxi4>IyOg%9A!r4&rzgH$Nu_HGo&}layj4KUOol}UFGhlSX17P2j zgCdAiqRq%O@tieb+19T$sY;-I+n7%@naC_A8b<0X6`*9bO3$U~3_QC3>)A|uQ}9=_ zz3If#jor_?Ib+uw3$-ma{|K^zisb7pO=3agF?<6#HChu>6?P-r1lR`cA!j)mRgZiq z%6$!JWlj~F3}<9!getjlk1}{qj<;p2LSRHAmb^FVMZEk$6~|RPH`$5G&tdyvIOOX} zcmFLs!8->j*52^5<6Ya&0wKcPHU1Ms{^9M{;5LGzDD3*-ej2n^pf!wek^-wO=^QMz zY^f5J-h-m7SVY-qGkUgD#-v2vh$S+uR}&JI7poXJ1=%kY*usn@5%g}$Li=g}X8^g- z#iU``Fl9z5Grvu%B5@|=>kxrfgP}EnZsewpZopts^VXz)&1(z=myMJ;Q36q<7TV_% zjsLf6`kmq!Y9TuB_LS@NH%-wjz6@gxWc8?K{fb{9Xd$H0h$|UV9`7$gla^iy;09SJ zi2I4dL@^oyA}6Z|vV!zl1+18bO*B$Upg+@TSn&jLmu-Gm?ska2vc5{{_={*(Qs=GOZTRWp(8i(HMBk%PN z0@zd?@Vq%+)39R(Ue&REZ(#`pMLs!BWKa50te8suOrj?9&5K3euzTl7So)_Pd0II^ zw_mI%R4?7Y8A-yddVNA-p%XO-e# zn)7($K+RF;T8#q;w+KN5QQ+>L0kA`~?1#W=Q~Z^`E7VYq`+_ei z6P3rlTa?CY5@EK?-K3J8T7q0#OM)}Ci*O8wjt!H@F+$Nrhjs@vOXoz~VMRjZ#32?m z8Z=8`#&X!zkxk%9MH;0j$LQBgNc%Md+!k9?JCUK|y%j{G6gQ}okTvcmESPoa!#l(% zjEAO|42Ry5x;ooXlO16ocCE~Q$1BS^zsbQwP@ULV5RrssKH`ycSIG=UN>}nODF+XS zdRUXfcbC2t9~K;=8V#r1HeQH?iHOE^w^Hy%r?bKud=?tPO}bdN^OZWwfRHe%Ti;!T zCqTt?&*geNpF3KMAS!_n7{#B|RA165G9&i?P1=ldpYhI-P0+%=Igb}$6k-X0M=cII zKk*i8_Nq2y6Okm;obR;fbT!eV!n;8u1sxIt%@yRD%lI=}fm z*()-ey3^6M2+Qs8$*!ZyLho2mDj4xlH*CY3qMbmdKgBTyt_#j z3Nx_*>1>{f7u9Yy+P*wgo<;4H|8u~Tc@T6XPI!OmU2vch4cSUl*@tDw8ibp|&_FC| z=TgDfMas(VO;2=YQ<3+x)uz`x=?zmq*j5mG*=oSuGE~+_pzfP{0y`WDF2Z% z^9t71v51(-FzeWZ3$ORcUFjjmsI42qyo9g+y2>7)7X2RYfv~x|0z4~{`9jJ0uc17^ zTiz^`EI(9NXHfTjwT=QG_t0YI$z%xzQ`<*Lb;48OVR z)4GPZCwX+MdW+bDy%E6qiLVM;1QpIJ|7pQ{ZSV?j9!JShN zn;R73s|&Ixi*0;;$HgWvw!}LWejxma=C_^CG*AyuAOEou&|h$N!)P)HX4*)fgD6|B zsv9q%V`*ocqqdua9;LSB!g2r~8qt_8=oh__d>xtj%ky(>#;a+sIekKmmRZ#KL;j)nU>)2<3o772OP5AP+=d(^diUEPFsptKt zoXxpc%TZ{VUtGu64?b#j;FsD)P@-EhDooLrn=g7Kn17n+_oNEPP?pcT`~S4?H}aix z!R&C!oUc0%!G`1cz=%EM3^%pTlWQ0 z;ec~2Q*p-wEpZ%#lAt?$?b!JIUE#61ERk&3Esl8sTHpb6SK02s&P8drFK($=Z1wLl zIPCQV8R);gF!O_?^29;l|Arpayd$zY?nI%s6L6{H)aC0Bfpvc2(;=}HzTeltLZuHs zd6gj!s;DWN?>*egae9(G7Y?nTx-h z5a2DvuwxqsYJB*lA^8&ESVMuZMH-NFZ}>U?M-ceK54+$xE09Qg6}`w`bS9ZpKvt-$ zRRfc%j-%<@Wt(*5HwtB2IiQD)&6`HX`XH`k$=~U_lOJ^ zC-HwcfZ#9x%3S}B^U&p<&1xCrV~8FwmgoI3Y~xdfVc1U5i7Oy0J^{Ay_#=h{pTlPiGKwzVK*z= z|4(1YYv;1fzO?^Hqxf7#;buzhwyZnmw9^r{RFS@sDQQ*i;^G3Dm@tw>q7~dyJAK(N z@BxxQBsS@smCn!dOx7j}5+~lvYwro5SF|$aft%{P98oL*ROTnnN!5;P^+r+CDg%Kypa@P1^GddV0$TIgZm+9)*MbM-_(8lk2fQK}os zIVo0%J^lx>w7JX2kGsk}Xyo>qA*L>ML-9LmLtOv^FGL))jVv##er2cfp0p z#4W+}$|Hb>SYKbyBQxzK%SI%zFN0)|uo!;4zXL*I$KM-ET+%kZdLfxHY+6oDpdvb% zrYgXmv`I7-o?`*OeE>u5n;YVdIrl3}*7B!g0T>1=o@;T^J>c}xdNbOz11rjo6}fO@ z6gx?LI&u@len6e1FP@B!Zb!bJKFww?KTcY5VqiLqY>vJ)FPgeKA?)WxFFzWL3P_yK zzY7Dm8sfPnn{$E+vWQAo1x~Q5SA`AH8l|{aeL7;iGq!r_PjsR@o=BT9%}AC|>xAKO zRRIqI4T>Hz&zQ-_v!4M#;cs?9xeZ8&4oWyEm>$l!BMJXaP(zVx(fcQBEDhiH$j*|S zp6{8aR*ko=zrRdmhsu!9%~KBawm?lrhReLpclrNeV>4t$#&RzJT3zAmqmc zd+9;0V;aR(l`7pp%isb1ndvU~N1+rv$qID!v6<%|z7@D@S=;b}K?(PheEgD?TCoG# zk$@LmG0r$tbDmUSi*qDzW~6e($8J=8BY|dp$p#F>Ljesr{FVw#_289Mh}i{ZR=}u8 zQ%ccAbzI?EFpo?|_Dt=S%i zcm;i6g5=W3B$eG&I(SQ5VHEkz0kh-LTU8yk=$u!mromBw@uOPZI33Dc`x@&u;ImM7-y8%M3955z%QKJ-J0^Ws78QLwrsO4t_=Rna z`bv*Rm46D+*9wyag;F}{GBgr2M#KwL2F6jDB5s-92em+ngkmrE0F^}J%0&JRta@im z2FVE~2Nw=ZJ28A_2tfSK9yw?`!cN35@HWl~?3Fe73vv#|@?Pol<2keHHOV@q(P<`rHEbNO zP1k`*k>!NF#8zKuOAnEiqDJ}x9yB@8N#LXAg|FM~n(gOS$(zE01|yg*R@TVh*S1qw z%V~|J@fQtrt~o{{^_e<2O>*s3Re7mn+jx~4rNl6z%gjcRF{{IVTFmr-FqMpk(RJL3 zx8$6%lQtgGp#p?=DwU1YNY^sL43df!=;Lb)#E61|HsuDnay4lWdl2}}ekg+^SiB3+ zE#tZ{7R;M%X2;!3H<9#$L9?O%Ufq|{GVp4@&M#fb(Gs6-cCQL>9sP0)(S13=Aj`+% z=-t5Ne8w%wV-{`Xhe@pUN=tQIHL44nEt|orcZI9rM?1v4d<>O5Z)&|ou8@-*l3W;; zHFPEHpeAZK@Gu_Yo-gYNS=5%GO*JAlG0(;eqwJ?##yjhi^v_BWr|g3!~^8jS0K9Z|6$JYtwX1@))(y%o@G2U}mukcV*{{!lg>K zYPb~f?G-MeLz=t<-}NO@^_co>GP^+pF{xo*7-Q#korOa$I0+w{+E-AAa+*6tPH|7* z3@cbmZc}i(!6b#a&wSBn`Vi|s_NZV~#cU#kTg8xb-n^}$iLof)F^3{gbm+_eb%}Lp zy2fOM(Wq?q#HUGal=&Yosi(W=ze%UqKrSyClDxYXDYCKkwE=S+P?5*+V_a8&5FTT_L*OU4-}UY(u3|kyDAdjjzMF5y4=HW0fj z+7z=>QAsHsup<9+$+51v2gH1Js>jAk78B!-=DnY!saRScwQ7m)Y5xG*-f9|HinpcN zCX2YEu6wcGCg8SN_u3JzqW_s%ZBUPztr$vNj^{odW%*UQRyI8I=yCnKQp$Ya@Qr(e z7;@!?&6Wg9mI!t6Hc;$5<6ZWy()e^Os1hf-n-6T_LKe(8^E27~DIXCCoJ3>v8Mh^VFZ?hoVUTb$u803Ci6N1x8&+LNe)b%^Z(dhspQzlE zk?mE<9?YQK|uqU|(ISfuU8J&@XRKu&`7fCuz z!{3xj1`qmKq{?+S1Xvsyz@=IBxJwb%>}SF=>ZXSb=L}%tK|L4jywm;K@w`UM%Sb8r z(Iq}zX_1M!lGDw115KFMuEr^d7|bmgzTJkr4t3@2=@2k#Qg1I$$)3n3;-rui5B(Zeq-LYn zE*ZYABik;dq1G}z4ZG2&rRXrH>1VP|t#~tCR-{~K4M9h~9jg0Te_=VSAE)jePdn}z zim4;Q?eU0Zt4OD%Vae0Z){%zxZmlyu@XrsdojPGBGPGDL^&$lxZs>O(?4aSk|DZ{7 zc#(|z)v(Ev$+amW0{r4Ut!s17bkd2DxJtC;yz-&#Gjb#^L}}V}eQM3SvmMKNW~xrN z^tdeWP(Qm*0`|-(2bNST;lOFT4!@~udy4<+UR|#FM>i4aPw)VL>i0g6I7;V&1{kRV z0=whVEmDtvj5;~!^HG|u_{uSDs)EwQx03RaRa1p4A(tM9_VT;T4+Xh)U0Y$KCzJ~v zx4eFnnyJ%v@m{lm(4jFC`nft|_KjmFWpCAf`DE~&M)CHAxt?`C1`A_D+y6~(ORpTX zNjs-wS(;OqNlsx=3MW+&2%#Y>$#QgKCV{>2$$FS~;T+XOj4h*-S-lVg`^MAx!n2c> zWLd8EfdiE@tZWO8|gfdtQ-!Qmg$$eVq;{*2w7S=5@^_I((U~@ze&Nk6mhOu=PDiu_->gLdse%ud+ zf!i0qQyx-0&oa{;8<)FqYGd+gIrF{Kbmze1$9tC_TuP1b4iNo>EU0f_GWBa%u-ulz zT}>An;OsqBN%J-^%(*dm^8 zWr2&uci$7)f~{ zi~mr(OxX7L<(0r|+(?Rpy`M(QWJcze3%e8cK=_d9Vwr+#>Zii5?lY@IXS;AD<*0@iB||8M!0Allnl%~0SF_d_ zkCZ^4NohqmSi%_(Rof7SuUpU<`KGr;p7KBPF{i@mG7q2hRz zxmjU>Fn{yD?it=0D)+dxtXnCba;@&GL!{-7f(Or#oXoBnD&u};pq()GmiSqdN`g!&Z}ky-_Bf;2|p*e zsc67%E3P(m!hf3Ln#~q6VZP23DxIbM8uHcKG3lYCSA?2pyYB3@&JN8RZ#U`21jFIE ztq$*6=o@Wc^+UDf}?6(n#mUp)=ZWA!)GUnrPi>_VE?GSxdI*6eDJwTc2NzP&k)T3=CU8 zu!uBa7d7AP^k%nNEr{1enFKD&_`2C#xIN`a7TM-BqtoZ&6={?vX_BTE<$zl&Imgly zR%vu$@e^OM!chjEAOp924Vvv8yc+$dY5 z(-YIPgiI{8RMnp(NcD+6F3COQ*j=`sXFOsdc*Jt%i27^7Sd+1OWgXGmRzAxR)x`+X z0Ue1j@VejB)yS1iaXibbFG6wd9v;VuR;)lC zwy~YJqwvFjf2otBgpeZLo8Ls;Qx8TwN?C2n)Of~6Si5EJWBSU=8-Av43kCje$DH2J z3$i2ZaG*`vH_HTA%g;YY+CQt6=rDV{&A=v&_?%%*vy6|gTReT@4ITa3#`2NohWtlQ zQ6I$$hx1Kt2?W}AzMaVLQHYuF;|ZV!M_Jt%x>NbOMX^+7Bg4=_J9uNZHL*<4V{6F3 zcJrmt)|RS}9PLQ>Ct(-ZwK6ub`)u}0@$cx9a)oH#f4);7>~-@lvHV>Z2h@;4h*?eD z-E3VA1ET1b9Fy$Fnx(^G8n>C=tv9|hW zS4Ufy%I*)-k#HmD@+(eu<7@SWX?33=|K=_vx>Ldi|dogG}VJ#X3H)AtGi!0 z6$3d~8yt=wO&4&7Z8j$M(=-|R^F&F}50X*)wLq1!<{mZs_fuRmr}V!`58iFhn)11r@N5n^_emq;-m@Gf?Kmo9x}*|B1byHVXr>-Owwett_OtFJ4co z)aT`{K3Pq|nW$B;sn5PzyvXRL=ANoD(v?&=(VA}_GhYkSRz|^vjS0B=(q3N|AVVsbYFMo!1=Q~4 z6JIqCdpA+e*XN91Rr@Fa;e6~Sd4aW!&C6hamMvEtV!`327O6`DTSYj!L!?j%a`uL= zu$9p4_<`U~g zcA}3*@MN{W8A)>gmu*@rV%Z~&p$Fv)wu>s3W=@1!P;Wu%8Lto<^_pAS{x+hajh+r_Opha%AA4O%6#rPiG}kv%?BoM+Y+fIW%zoc znZ=}z>D>K@ORsJ$ki7JPawlk1WW%0ATI=Y(^*`(0SmqlLiZ!b4Q*aFBx*A=yEKX0A zH{w)!S2>%WNG*emqQL&$*$?mioCho)wwJRjQ=zs4OJeXd;<=~O-6a|W{5wk0rp|uI zzb&T1%Hrx7^zE~)LP~TH`!^?_Zkx6&6!f$0GM6L7$Th0vPC(V#S-HTL3kObm5BEU2HU(`iY`WEs$FMB-nZ1qDYc+bxDEZ2rjOyjN z3jsBP)37?3V=rSv$l5h-oly6iC{YPHnpEptWl9y7zmaL4`W2@j<*oI}7r_o!%a=X0 zZ#x7$c^H?a%Ib&A8UTM8bM2YiR!O{N$UzcRIDLMTX*OUs;5&Haje|>%M+(*#Kp+== zqfh+!@ZW!6@xgx=HDq1|{ZUulSVcrrPXp|6+i6A&xd58=ZIUWJ0>40u1A&0uJ-@CT z1V8xvtC_Bfo~DMnk+G<*#%}@y5@q521HaP@f9C@P-7zU(+QHp0`owNQwyTBke=VHg za3`3%@kX>V>-qp}#cS9%egnw7-KLuso)f%}+YpAi}2zzx|!ITEeiGE!*9 zX29I7g&golv;COAPDMcPd)-@Lsc5?INFXLUrilC!7p-DDmi^%#P&-$slY@whyCZy0 zxo`Y$Y?Tnm-2`m4TNe^wI`1pDi@P1RxahT79pqhj9l#qZ!9fteryvA^LIiMPGtnNQ z;^hVXxzQKXR%q{%`7TSu54_6|yqR$K(9yB!F@9N_@`0-D1fAygQ{htfWUmxn_?O?Cx>t_4k;TxEGM(;*# zZtPF613u6MG=b>{C+h@)#8&bLAhPN} zv6}%f;sl5{yWLGmeIKfcyEoL)K?Meb+d=md7#(#|!@Gr=fRqd%4FUi9b>$#NH1|R8 zJA*eu(vV6$i*NaqTf2bbDshy9;>j4`c<=1a-cXR`vnHHd7x z`3(C1;v2iT?aOC4AAREKJ6EDS;Cb^P-T=$}x=@H<p~&Itp3&6Prtv!8AqrC2cl>9(;f~q<-;#1V7t< z_3$GM?$^N-=)lYNlT{=TpO6;_-)m|c|j0T@Bjq4CpWbQd5_>~`9exPNt_3WuTVL{J1{DC%#vK&$JJ zhw@Q-(3t>mDdk<`xu5W_&M>+#^aa(+&-rNP1@-XQBNGfo-&Q&d+g4@)DG^<_>^6>T z>c4v1F^-v+%g&Jnn8ra5CR?M*Uz!dASp&i2@UFr1W$lCKL9Z|3L5~L8r2;_|$wi8G z9Ruk=l=9~rjCaT=gnsEhSa8UQ1Jn&0Def74VzS-Mi5&!`B*#CeKs8b`;zNo@;_Ba1G?!-GNAUU>`U}R>b&-)dO153gL_I6G8T!1fH|o zjy(pi$ zkoY99BhQWj!FLpb_QT#t&C{R&0k=6oN-QDK$IS%tkoYD6njI(-Fsqsz1nDd`@kcS^ z4OqY{ejh#arvtAYZApaz=0hq7L}-_k(@WS)H3vtiFU;p(F$F#R)xI!(F;FTk0j&z} z0;g_ZgLUBGh#bt@D1A80#SS~`p~;V}Bw31p$gi<%MgJL_jJDO!dGVua#4f+k{yU<- ziB}5*wFmdb9J_=ifZ$+NqiE#M^oeCAbR{0qQC0jAz@$O3%()8&A=(?J4s&pGaL2x9 zL>DYe(!NUvK5X&3?WZ!s9{Nw5y&Lrx$f9HoE_>C3Xkwo;svCV2k}EI_W&xXnm}0{w{xFKayARaw?;d~b!EL2=y`K45Ag2|G z-h8_TzsQMA#W-$hANTnmqR*TSR2#!Z1w^BGe2Uy6;f?twxoT==A7? zKx{`p2*I3z^N43>uyMa+#GcLxC`y&Wu_c~mkd@D!`qRWxR@g9bV+OLO7@GN)OpiA4 z3^$=j9dPh9;NX}y4mk*C&%ZKtp)g0dmz#q<8vb{EZav~wiF*G!%Ly2XiTKZy@8|PZ zJ{r5XSEAM6h^RTw0+44xW(Lmw>p~&8{q{u~*}*-qABODp^7kDk3UMW1U*um3Ty#AD z^RUg|O#57HCVI#_nPQL3i+0UFk7e5d<{+X9uz?s+ zta-WDxg@`dl4W}k|2U-tGn4PNr|>tesR5gYR^zXy2UybWwM70mPyIPI4;_3k7tHHx V6M(o4foOq$mq1pPodj_L@_%SXGOqvt literal 0 HcmV?d00001 From f4f6df79f2e03ae74c7bf22299f2afc25ec53603 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Wed, 24 Apr 2013 20:00:59 +0400 Subject: [PATCH 43/56] IDEA-103878 Option "Don't Detect" for Settings -> Maven -> Importing -> Generated sources folder has not the desired effect +review CR-IC @Anton.Makeev --- .../maven/importing/MavenFoldersImporter.java | 6 ++++-- .../maven/importing/FoldersImportingTest.java | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java index 5f1d3729f6eb..85eb284522e3 100755 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java @@ -186,8 +186,10 @@ public class MavenFoldersImporter { myModel.unregisterAll(targetDir.getPath(), true, false); - myModel.addSourceFolder(myMavenProject.getAnnotationProcessorDirectory(true), true, true); - myModel.addSourceFolder(myMavenProject.getAnnotationProcessorDirectory(false), false, true); + if (myImportingSettings.getGeneratedSourcesFolder() != MavenImportingSettings.GeneratedSourcesFolder.IGNORE) { + myModel.addSourceFolder(myMavenProject.getAnnotationProcessorDirectory(true), true, true); + myModel.addSourceFolder(myMavenProject.getAnnotationProcessorDirectory(false), false, true); + } File[] targetChildren = targetDir.listFiles(); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java index 248c3cd67b97..fa0857650c3c 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java @@ -608,6 +608,25 @@ public class FoldersImportingTest extends MavenImportingTestCase { "target/generated-sources"); } + public void testIgnoreGeneratedSources() throws Exception { + createStdProjectFolders(); + + MavenProjectsManager.getInstance(myProject).getImportingSettings().setGeneratedSourcesFolder( + MavenImportingSettings.GeneratedSourcesFolder.IGNORE); + + createProjectSubFile("target/generated-sources/annotations/A.java", "package com; class A {}"); + createProjectSubFile("target/generated-sources/annotations/com/B.java", "package com; class B {}"); + + importProject("test" + + "project" + + "1"); + + assertSources("project", + "src/main/java", + "src/main/resources"); + } + + public void testAddingExistingGeneratedSources4() throws Exception { createStdProjectFolders(); From 99e8fef5d16e1d7d1144df614b11dc4399ce2633 Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 24 Apr 2013 16:04:05 +0400 Subject: [PATCH 44/56] don't process instance members of a class annotated with @Category inside of it --- .../groovy/lang/psi/util/GrClassImplUtil.java | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java index 6f0428fea243..a910b1d3b9fc 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java @@ -36,6 +36,8 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.GroovyFileType; +import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.GrModifierList; +import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.GrAnnotation; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField; import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral; @@ -47,6 +49,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrAc import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrGdkMethod; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrReflectedMethod; +import org.jetbrains.plugins.groovy.lang.psi.api.types.GrCodeReferenceElement; import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; @@ -278,10 +281,20 @@ public class GrClassImplUtil { @NotNull ResolveState state, @Nullable PsiElement lastParent, @NotNull PsiElement place) { + if (place instanceof GrCodeReferenceElement && lastParent instanceof GrModifierList) { + final PsiElement possibleAnnotation = PsiTreeUtil.skipParentsOfType(place, GrCodeReferenceElement.class); + if (possibleAnnotation instanceof GrAnnotation && possibleAnnotation.getParent() == lastParent) { + return true; //don't process class members while resolving annotation which annotates current class + } + } + for (final PsiTypeParameter typeParameter : grType.getTypeParameters()) { if (!ResolveUtil.processElement(processor, typeParameter, state)) return false; } + + boolean processInstanceMethods = shouldProcessInstanceMembers(grType, lastParent); + NameHint nameHint = processor.getHint(NameHint.KEY); //todo [DIANA] look more carefully String name = nameHint == null ? null : nameHint.getName(state); @@ -296,7 +309,7 @@ public class GrClassImplUtil { CandidateInfo fieldInfo = fieldsMap.get(name); if (fieldInfo != null) { final PsiField field = (PsiField)fieldInfo.getElement(); - if (!isSameDeclaration(place, field)) { //the same variable declaration + if (processInstanceMember(processInstanceMethods, field) && !isSameDeclaration(place, field)) { //the same variable declaration final PsiSubstitutor finalSubstitutor = PsiClassImplUtil.obtainFinalSubstitutor(field.getContainingClass(), fieldInfo.getSubstitutor(), grType, substitutor, factory, level); @@ -307,7 +320,7 @@ public class GrClassImplUtil { else { for (CandidateInfo info : fieldsMap.values()) { final PsiField field = (PsiField)info.getElement(); - if (!isSameDeclaration(place, field)) { //the same variable declaration + if (processInstanceMember(processInstanceMethods, field) && !isSameDeclaration(place, field)) { //the same variable declaration final PsiSubstitutor finalSubstitutor = PsiClassImplUtil.obtainFinalSubstitutor(field.getContainingClass(), info.getSubstitutor(), grType, substitutor, factory, level); @@ -324,7 +337,7 @@ public class GrClassImplUtil { for (List list : methodsMap.values()) { for (CandidateInfo info : list) { PsiMethod method = (PsiMethod)info.getElement(); - if (!isSameDeclaration(place, method) && isMethodVisible(isPlaceGroovy, method)) { + if (processInstanceMember(processInstanceMethods, method) && !isSameDeclaration(place, method) && isMethodVisible(isPlaceGroovy, method)) { final PsiSubstitutor finalSubstitutor = PsiClassImplUtil.obtainFinalSubstitutor(method.getContainingClass(), info.getSubstitutor(), grType, substitutor, factory, level); @@ -340,7 +353,7 @@ public class GrClassImplUtil { if (byName != null) { for (CandidateInfo info : byName) { PsiMethod method = (PsiMethod)info.getElement(); - if (!isSameDeclaration(place, method) && isMethodVisible(isPlaceGroovy, method)) { + if (processInstanceMember(processInstanceMethods, method) && !isSameDeclaration(place, method) && isMethodVisible(isPlaceGroovy, method)) { final PsiSubstitutor finalSubstitutor = PsiClassImplUtil.obtainFinalSubstitutor(method.getContainingClass(), info.getSubstitutor(), grType, substitutor, factory, level); @@ -373,6 +386,27 @@ public class GrClassImplUtil { return true; } + private static boolean shouldProcessInstanceMembers(@NotNull GrTypeDefinition grType, @Nullable PsiElement lastParent) { + if (lastParent != null) { + final GrModifierList modifierList = grType.getModifierList(); + if (modifierList != null && modifierList.findAnnotation(GroovyCommonClassNames.GROOVY_LANG_CATEGORY) != null) { + return false; + } + } + return true; + } + + private static boolean processInstanceMember(boolean shouldProcessInstance, @NotNull PsiMember member) { + if (shouldProcessInstance) return true; + + if (member instanceof GrReflectedMethod) { + return ((GrReflectedMethod)member).getBaseMethod().hasModifierProperty(PsiModifier.STATIC); + } + else { + return member.hasModifierProperty(PsiModifier.STATIC); + } + } + @NotNull private static List getInnerClassesForResolve(@NotNull final GrTypeDefinition grType, @Nullable final PsiElement lastParent, From 553e35498154cae84cb403556e625b4d881c78cc Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 24 Apr 2013 19:53:22 +0400 Subject: [PATCH 45/56] Groovy: resolve classes before fields --- .../GrReferenceExpressionImpl.java | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java index 829c73474fd0..284d32d7686c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java @@ -73,7 +73,6 @@ import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil; import org.jetbrains.plugins.groovy.lang.resolve.ClosureMissingMethodContributor; import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil; import org.jetbrains.plugins.groovy.lang.resolve.processors.*; -import org.jetbrains.plugins.groovy.refactoring.GroovyRefactoringUtil; import org.jetbrains.plugins.groovy.util.ResolveProfiler; import java.util.*; @@ -95,7 +94,6 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl 0) return classCandidates; + final boolean isLValue = PsiUtil.isLValue(this); String[] accessorNames = isLValue ? GroovyPropertyUtils.suggestSettersName(name) : GroovyPropertyUtils.suggestGettersName(name); List accessorResults = new ArrayList(); @@ -258,22 +258,6 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl 0) { - for (GroovyResolveResult candidate : fieldCandidates) { - PsiElement element = candidate.getElement(); - LOG.assertTrue(element != null, candidate); - if (GroovyRefactoringUtil.isLocalVariable(element) && !(element instanceof GrBindingVariable)) { - preferVar = true; - break; - } - } - } - return preferVar; - } - - public GroovyResolveResult[] getCallVariants(GrExpression upToArgument) { return resolveMethodOrProperty(true, upToArgument, true); } From c7a5dd9fa215e46a2d558044c19277ed8af2fb5f Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 24 Apr 2013 20:58:48 +0400 Subject: [PATCH 46/56] IDEA-106091 Groovy: index access resolving in case of unresolved invoked expression --- .../statements/expressions/path/GrIndexPropertyImpl.java | 9 +++++++-- .../groovy/lang/highlighting/GrAssignabilityTest.groovy | 4 ++-- .../codeBlock/unresolvedArrayAccess.java | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrIndexPropertyImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrIndexPropertyImpl.java index 219bf607c1b7..2ce54ad11c7c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrIndexPropertyImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrIndexPropertyImpl.java @@ -72,7 +72,10 @@ public class GrIndexPropertyImpl extends GrExpressionImpl implements GrIndexProp GrExpression selected = getInvokedExpression(); PsiType thisType = selected.getType(); - if (thisType == null) return null; + if (thisType == null) { + thisType = TypesUtil.getJavaLangObject(this); + } + GrArgumentList argList = getArgumentList(); @@ -153,7 +156,9 @@ public class GrIndexPropertyImpl extends GrExpressionImpl implements GrIndexProp GrExpression invoked = getInvokedExpression(); PsiType thisType = invoked.getType(); - if (thisType == null) return GroovyResolveResult.EMPTY_ARRAY; + if (thisType == null) { + thisType = TypesUtil.getJavaLangObject(this); + } GrArgumentList argList = getArgumentList(); diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrAssignabilityTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrAssignabilityTest.groovy index 992c5bfccc6b..d5dbb5681728 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrAssignabilityTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrAssignabilityTest.groovy @@ -570,7 +570,7 @@ print i[1] +print a[1, 2] ''') } @@ -632,7 +632,7 @@ i[1] = 2 +a[1, 3] = 2 ''') } diff --git a/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/unresolvedArrayAccess.java b/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/unresolvedArrayAccess.java index bf6515e7cb67..dc65c743da98 100644 --- a/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/unresolvedArrayAccess.java +++ b/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/unresolvedArrayAccess.java @@ -1,2 +1,2 @@ java.lang.Object foo; -print(foo.getAt(1)); +print(org.codehaus.groovy.runtime.DefaultGroovyMethods.getAt(foo, 1)); From 0dc7262c45807245337288308448a237daad8461 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 18:38:21 +0200 Subject: [PATCH 47/56] getExpectedTypeByParent utility --- .../com/intellij/psi/util/PsiTypesUtil.java | 55 ++++++++ .../source/resolve/PsiResolveHelperImpl.java | 117 ++++++------------ 2 files changed, 95 insertions(+), 77 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java index 43890225a21c..d770f131a608 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java @@ -184,4 +184,59 @@ public class PsiTypesUtil { } return null; } + + @Nullable + public static PsiType getExpectedTypeByParent(PsiExpression methodCall) { + final PsiElement parent = PsiUtil.skipParenthesizedExprUp(methodCall.getParent()); + if (parent instanceof PsiVariable) { + if (checkSameExpression(methodCall, ((PsiVariable)parent).getInitializer())) { + return ((PsiVariable)parent).getType(); + } + } + else if (parent instanceof PsiAssignmentExpression) { + if (checkSameExpression(methodCall, ((PsiAssignmentExpression)parent).getRExpression())) { + return ((PsiAssignmentExpression)parent).getLExpression().getType(); + } + } + else if (parent instanceof PsiIfStatement) { + if (checkSameExpression(methodCall, ((PsiIfStatement)parent).getCondition())) { + return PsiType.BOOLEAN.getBoxedType(parent); + } + } + else if (parent instanceof PsiWhileStatement) { + if (checkSameExpression(methodCall, ((PsiWhileStatement)parent).getCondition())) { + return PsiType.BOOLEAN.getBoxedType(parent); + } + } + else if (parent instanceof PsiForStatement) { + if (checkSameExpression(methodCall, ((PsiForStatement)parent).getCondition())) { + return PsiType.BOOLEAN.getBoxedType(parent); + } + } + else if (parent instanceof PsiDoWhileStatement) { + if (checkSameExpression(methodCall, ((PsiDoWhileStatement)parent).getCondition())) { + return PsiType.BOOLEAN.getBoxedType(parent); + } + } + else if (parent instanceof PsiTypeCastExpression) { + return ((PsiTypeCastExpression)parent).getType(); + } + else if (parent instanceof PsiReturnStatement) { + final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(parent, PsiLambdaExpression.class); + if (lambdaExpression != null) { + return LambdaUtil.getFunctionalInterfaceReturnType(lambdaExpression.getFunctionalInterfaceType()); + } + else { + PsiMethod method = PsiTreeUtil.getParentOfType(parent, PsiMethod.class); + if (method != null) { + return method.getReturnType(); + } + } + } + return null; + } + + private static boolean checkSameExpression(PsiExpression templateExpr, final PsiExpression expression) { + return templateExpr.equals(PsiUtil.skipParenthesizedExprDown(expression)); + } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java index 1cf2d419d97b..c9fbfbf60ded 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java @@ -34,10 +34,7 @@ import com.intellij.psi.scope.processor.MethodCandidatesProcessor; import com.intellij.psi.scope.processor.MethodResolverProcessor; import com.intellij.psi.scope.util.PsiScopesUtil; import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.psi.util.InheritanceUtil; -import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.psi.util.PsiUtil; -import com.intellij.psi.util.TypeConversionUtil; +import com.intellij.psi.util.*; import com.intellij.util.ArrayUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.containers.HashMap; @@ -1015,88 +1012,50 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { PsiSubstitutor substitutor, ParameterTypeInferencePolicy policy) { Pair constraint = null; - PsiType expectedType = null; + PsiType expectedType = PsiTypesUtil.getExpectedTypeByParent(methodCall); - if (parent instanceof PsiVariable) { - if (methodCall.equals(PsiUtil.skipParenthesizedExprDown(((PsiVariable)parent).getInitializer()))) { - expectedType = ((PsiVariable)parent).getType(); - } - } - else if (parent instanceof PsiAssignmentExpression) { - if (methodCall.equals(PsiUtil.skipParenthesizedExprDown(((PsiAssignmentExpression)parent).getRExpression()))) { - expectedType = ((PsiAssignmentExpression)parent).getLExpression().getType(); - } - } - else if (parent instanceof PsiIfStatement) { - if (methodCall.equals(PsiUtil.skipParenthesizedExprDown(((PsiIfStatement)parent).getCondition()))) { - expectedType = PsiType.BOOLEAN.getBoxedType(parent); - } - } - else if (parent instanceof PsiWhileStatement) { - if (methodCall.equals(PsiUtil.skipParenthesizedExprDown(((PsiWhileStatement)parent).getCondition()))) { - expectedType = PsiType.BOOLEAN.getBoxedType(parent); - } - } - else if (parent instanceof PsiForStatement) { - if (methodCall.equals(PsiUtil.skipParenthesizedExprDown(((PsiForStatement)parent).getCondition()))) { - expectedType = PsiType.BOOLEAN.getBoxedType(parent); - } - } - else if (parent instanceof PsiDoWhileStatement) { - if (methodCall.equals(PsiUtil.skipParenthesizedExprDown(((PsiDoWhileStatement)parent).getCondition()))) { - expectedType = PsiType.BOOLEAN.getBoxedType(parent); - } - } - else if (parent instanceof PsiReturnStatement) { - final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(parent, PsiLambdaExpression.class); - if (lambdaExpression != null) { - expectedType = LambdaUtil.getFunctionalInterfaceReturnType(lambdaExpression.getFunctionalInterfaceType()); - if (expectedType == null) { + if (expectedType == null) { + if (parent instanceof PsiReturnStatement) { + final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(parent, PsiLambdaExpression.class); + if (lambdaExpression != null) { return getFailedInferenceConstraint(typeParameter); } - } else { - PsiMethod method = PsiTreeUtil.getParentOfType(parent, PsiMethod.class); - if (method != null) { - expectedType = method.getReturnType(); - } } - } - else if (parent instanceof PsiExpressionList) { - final PsiElement pParent = parent.getParent(); - if (pParent instanceof PsiCallExpression && parent.equals(((PsiCallExpression)pParent).getArgumentList())) { - constraint = policy.inferTypeConstraintFromCallContext(methodCall, (PsiExpressionList)parent, (PsiCallExpression)pParent, typeParameter); - if (constraint == null && PsiUtil.isLanguageLevel8OrHigher(methodCall)) { - constraint = graphInferenceFromCallContext(methodCall, typeParameter, (PsiCallExpression)pParent); - if (constraint != null) { - final PsiType constraintFirst = constraint.getFirst(); - if (constraintFirst == null || constraintFirst.equalsToText(CommonClassNames.JAVA_LANG_OBJECT)) { - constraint = null; + else if (parent instanceof PsiExpressionList) { + final PsiElement pParent = parent.getParent(); + if (pParent instanceof PsiCallExpression && parent.equals(((PsiCallExpression)pParent).getArgumentList())) { + constraint = policy.inferTypeConstraintFromCallContext(methodCall, (PsiExpressionList)parent, (PsiCallExpression)pParent, typeParameter); + if (constraint == null && PsiUtil.isLanguageLevel8OrHigher(methodCall)) { + constraint = graphInferenceFromCallContext(methodCall, typeParameter, (PsiCallExpression)pParent); + if (constraint != null) { + final PsiType constraintFirst = constraint.getFirst(); + if (constraintFirst == null || constraintFirst.equalsToText(CommonClassNames.JAVA_LANG_OBJECT)) { + constraint = null; + } } } } - } - } else if (parent instanceof PsiLambdaExpression) { - expectedType = ourGraphGuard.doPreventingRecursion(methodCall, true, new Computable() { - @Override - public PsiType compute() { - return LambdaUtil.getFunctionalInterfaceReturnType(((PsiLambdaExpression)parent).getFunctionalInterfaceType()); - } - }); - if (expectedType == null) { - return null; - } - } else if (parent instanceof PsiTypeCastExpression) { - expectedType = ((PsiTypeCastExpression)parent).getType(); - } else if (parent instanceof PsiConditionalExpression) { - if (PsiUtil.isLanguageLevel8OrHigher(parent)) { - try { - final Pair pair = inferFromConditionalExpression(parent, methodCall, typeParameter, substitutor, policy); - if (pair != null) { - return pair; + } else if (parent instanceof PsiLambdaExpression) { + expectedType = ourGraphGuard.doPreventingRecursion(methodCall, true, new Computable() { + @Override + public PsiType compute() { + return LambdaUtil.getFunctionalInterfaceReturnType(((PsiLambdaExpression)parent).getFunctionalInterfaceType()); } + }); + if (expectedType == null) { + return null; } - finally { - GraphInferencePolicy.forget(parent); + } else if (parent instanceof PsiConditionalExpression) { + if (PsiUtil.isLanguageLevel8OrHigher(parent)) { + try { + final Pair pair = inferFromConditionalExpression(parent, methodCall, typeParameter, substitutor, policy); + if (pair != null) { + return pair; + } + } + finally { + GraphInferencePolicy.forget(parent); + } } } } @@ -1196,6 +1155,10 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return result; } + private static boolean checkSameExpression(PsiExpression templateExpr, final PsiExpression expression) { + return templateExpr.equals(PsiUtil.skipParenthesizedExprDown(expression)); + } + private static Pair inferExceptionConstrains(PsiTypeParameter typeParameter, PsiExpression expression, PsiMethod method, From 7c0df8e26f75ea4933ab08954bb5744eb7a053b7 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 18:39:27 +0200 Subject: [PATCH 48/56] redundant cast: do not report redundant cast if dbl boxing/unboxing is prevented (IDEA-105323) --- .../generics/BoxingInConditional/expected.xml | 9 +++++++++ .../generics/BoxingInConditional/src/Test.java | 10 ++++++++++ .../intellij/codeInspection/RedundantCast15Test.java | 2 ++ .../src/com/intellij/psi/util/RedundantCastUtil.java | 10 +++++++++- 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/expected.xml create mode 100644 java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/src/Test.java diff --git a/java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/expected.xml b/java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/expected.xml new file mode 100644 index 000000000000..3bf1252e596b --- /dev/null +++ b/java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/expected.xml @@ -0,0 +1,9 @@ + + + + Test.java + 8 + Redundant type cast + Casting <code>2</code> to <code>Integer</code> is redundant + + diff --git a/java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/src/Test.java b/java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/src/Test.java new file mode 100644 index 000000000000..995072a79416 --- /dev/null +++ b/java/java-tests/testData/inspection/redundantCast/generics/BoxingInConditional/src/Test.java @@ -0,0 +1,10 @@ +//This is a test for JDK_15 LanguageLevel +public class Test { + private Integer foo(String s, Integer i) { + return s == null ? i : (Integer)2; + } + + private int foo1(String s, Integer i) { + return s == null ? i : (Integer)2; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java index db20eca0956a..0fe49b1a5435 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCast15Test.java @@ -24,6 +24,8 @@ public class RedundantCast15Test extends InspectionTestCase { public void testBoxingInRef() throws Exception { doTest(); } + public void testBoxingInConditional() throws Exception { doTest(); } + public void testInference1() throws Exception { doTest(); } public void testInference2() throws Exception { doTest(); } diff --git a/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java b/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java index 32021974bbe1..2852584db636 100644 --- a/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java +++ b/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java @@ -383,7 +383,9 @@ public class RedundantCastUtil { PsiElement parent = typeCast.getParent(); if (parent instanceof PsiConditionalExpression) { //branches need to be of the same type - if (!Comparing.equal(operand.getType(), ((PsiConditionalExpression)parent).getType())) { + final PsiType operandType = operand.getType(); + final PsiType conditionalType = ((PsiConditionalExpression)parent).getType(); + if (!Comparing.equal(operandType, conditionalType)) { if (!PsiUtil.isLanguageLevel5OrHigher(typeCast)) { return; } @@ -578,6 +580,12 @@ public class RedundantCastUtil { if (firstOperand != null && otherOperand != null && wrapperCastChangeSemantics(firstOperand, otherOperand, operand)) { return true; } + } else if (parent instanceof PsiConditionalExpression) { + if (opType instanceof PsiPrimitiveType && !(((PsiConditionalExpression)parent).getType() instanceof PsiPrimitiveType)) { + if (PsiPrimitiveType.getUnboxedType(PsiTypesUtil.getExpectedTypeByParent((PsiExpression)parent)) != null) { + return true; + } + } } return false; } From b75e282adec59eb2c910c300e0d5c4cc685354b2 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 19:07:44 +0200 Subject: [PATCH 49/56] EA-45911 - assert: CompositeElement.textToCharArray --- .../fxml/refs/JavaFxControllerFieldSearcher.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxControllerFieldSearcher.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxControllerFieldSearcher.java index 6f09d6fb4932..3e9fc9efa3c6 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxControllerFieldSearcher.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/JavaFxControllerFieldSearcher.java @@ -70,11 +70,11 @@ public class JavaFxControllerFieldSearcher implements QueryExecutor Date: Wed, 24 Apr 2013 19:09:01 +0200 Subject: [PATCH 50/56] EA-45864 - assert: CreateLocalFromUsageFix.getAnchor --- .../daemon/impl/quickfix/CreateLocalFromUsageFix.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java index 155c7ac89281..41ffc74a1129 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java @@ -155,7 +155,7 @@ public class CreateLocalFromUsageFix extends CreateVarFromUsageFix { } final PsiCodeBlock block = PsiTreeUtil.getParentOfType(parent, PsiCodeBlock.class, false); - LOG.assertTrue(block != null && block.getStatements().length > 0, block); + LOG.assertTrue(block != null && block.getStatements().length > 0, "block: " + block +"; parent: " + parent); PsiStatement[] statements = block.getStatements(); for (int i = 1; i < statements.length; i++) { if (statements[i].getTextRange().getStartOffset() > minOffset) return statements[i-1]; From ee382a06f169d41a78ed8e7013ada416bc577720 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 19:12:29 +0200 Subject: [PATCH 51/56] EA-45861 - AIOOBE: CreateClassFromUsageBaseFix.getSuperClassName --- .../daemon/impl/quickfix/CreateClassFromUsageBaseFix.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java index 3d482f54b4ab..1845c960f7e9 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java @@ -156,7 +156,8 @@ public abstract class CreateClassFromUsageBaseFix extends BaseIntentionAction { final PsiClassType.ClassResolveResult classResolveResult = PsiUtil.resolveGenericsClassInType(expectedTypes[0].getType()); final PsiClass psiClass = classResolveResult.getElement(); if (psiClass != null && CommonClassNames.JAVA_LANG_CLASS.equals(psiClass.getQualifiedName())) { - PsiType psiType = classResolveResult.getSubstitutor().substitute(psiClass.getTypeParameters()[0]); + final PsiTypeParameter[] typeParameters = psiClass.getTypeParameters(); + PsiType psiType = typeParameters.length == 1 ? classResolveResult.getSubstitutor().substitute(typeParameters[0]) : null; if (psiType instanceof PsiWildcardType && ((PsiWildcardType)psiType).isExtends()) { psiType = ((PsiWildcardType)psiType).getExtendsBound(); } From 69291499bdda128d601e0ffd2ba5bc5e6e968176 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Wed, 24 Apr 2013 22:07:04 +0400 Subject: [PATCH 52/56] IDEA-106145 Maven Artifact Search dialog: clicks on "plus"/"joint" tree element are processed as Add +review CR-IC --- .../maven/indices/MavenArtifactSearchPanel.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArtifactSearchPanel.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArtifactSearchPanel.java index 53fb0662242a..e1d78d10e3cf 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArtifactSearchPanel.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenArtifactSearchPanel.java @@ -123,11 +123,14 @@ public class MavenArtifactSearchPanel extends JPanel { new DoubleClickListener() { @Override - protected boolean onDoubleClick(MouseEvent event) { - Object sel = myResultList.getLastSelectedPathComponent(); - if (sel != null && myResultList.getModel().isLeaf(sel)) { - myListener.itemSelected(); - return true; + protected boolean onDoubleClick(MouseEvent e) { + final TreePath path = myResultList.getPathForLocation(e.getX(), e.getY()); + if (path != null && myResultList.isPathSelected(path)) { + Object sel = path.getLastPathComponent(); + if (sel != null && myResultList.getModel().isLeaf(sel)) { + myListener.itemSelected(); + return true; + } } return false; } From 2925825f9cb4c3ca1797f522cf9c8f8868a19b8a Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 24 Apr 2013 20:24:37 +0200 Subject: [PATCH 53/56] Command line API cleaned, take 2 --- .../openapi/projectRoots/JdkUtil.java | 2 +- .../configurations/GeneralCommandLine.java | 38 +++++-------------- .../execution/GeneralCommandLineTest.java | 2 +- .../connections/ConnectionOnProcess.java | 3 +- .../src/git4idea/commands/GitHandler.java | 3 +- .../plugins/groovy/mvc/MvcFramework.java | 2 +- 6 files changed, 17 insertions(+), 33 deletions(-) diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java index fc5d141aad57..6eaa636943be 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java @@ -164,7 +164,7 @@ public class JdkUtil { commandLine.setExePath(exePath); final ParametersList vmParametersList = javaParameters.getVMParametersList(); - commandLine.setEnvironment(javaParameters.getEnv()); + commandLine.getEnvironment().putAll(javaParameters.getEnv()); commandLine.setPassParentEnvironment(javaParameters.isPassParentEnvs()); final Class commandLineWrapper; diff --git a/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java b/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java index 410cdfb06b7e..c49c42561748 100644 --- a/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java +++ b/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java @@ -48,7 +48,7 @@ public class GeneralCommandLine implements UserDataHolder { private String myExePath = null; private File myWorkDirectory = null; - private Map myEnvParams = null; + private final Map myEnvParams = ContainerUtil.newTroveMap(); private boolean myPassParentEnvironment = true; private final ParametersList myProgramParams = new ParametersList(); private Charset myCharset = CharsetToolkit.getDefaultSystemCharset(); @@ -93,40 +93,22 @@ public class GeneralCommandLine implements UserDataHolder { @NotNull public Map getEnvironment() { - return myEnvParams != null ? Collections.unmodifiableMap(myEnvParams) : Collections.emptyMap(); + return myEnvParams; } /** @deprecated use {@link #getEnvironment()} (to remove in IDEA 14) */ @SuppressWarnings("unused") public Map getEnvParams() { - return myEnvParams; + return getEnvironment(); } - public void setEnvironment(@Nullable Map envVars) { - if (envVars != null) { - if (myEnvParams == null) myEnvParams = ContainerUtil.newHashMap(); - myEnvParams.putAll(envVars); - } - } - - public void setEnvironment(@NotNull String name, @NotNull String value) { - if (myEnvParams == null) myEnvParams = ContainerUtil.newHashMap(); - myEnvParams.put(name, value); - } - - public void removeEnvironment(@NotNull String name) { - if (myEnvParams != null) { - myEnvParams.remove(name); - if (myEnvParams.isEmpty()) { - myEnvParams = null; - } - } - } - - /** @deprecated use {@link #setEnvironment(Map)} (to remove in IDEA 14) */ + /** @deprecated use {@link #getEnvironment()} (to remove in IDEA 14) */ @SuppressWarnings("unused") - public void setEnvParams(@Nullable final Map envParams) { - myEnvParams = envParams; + public void setEnvParams(@Nullable Map envParams) { + myEnvParams.clear(); + if (envParams != null) { + myEnvParams.putAll(envParams); + } } public void setPassParentEnvironment(boolean passParentEnvironment) { @@ -271,7 +253,7 @@ public class GeneralCommandLine implements UserDataHolder { environment.clear(); } - if (myEnvParams != null && !myEnvParams.isEmpty()) { + if (!myEnvParams.isEmpty()) { if (SystemInfo.isWindows) { THashMap envVars = new THashMap(CaseInsensitiveStringHashingStrategy.INSTANCE); envVars.putAll(environment); diff --git a/platform/platform-tests/testSrc/com/intellij/execution/GeneralCommandLineTest.java b/platform/platform-tests/testSrc/com/intellij/execution/GeneralCommandLineTest.java index 8edda25b922a..7994aea2dd6c 100644 --- a/platform/platform-tests/testSrc/com/intellij/execution/GeneralCommandLineTest.java +++ b/platform/platform-tests/testSrc/com/intellij/execution/GeneralCommandLineTest.java @@ -229,7 +229,7 @@ public class GeneralCommandLineTest { } private static void checkEnvPassing(GeneralCommandLine commandLine, Map testEnv, boolean passParentEnv) throws Exception { - commandLine.setEnvironment(testEnv); + commandLine.getEnvironment().putAll(testEnv); commandLine.setPassParentEnvironment(passParentEnv); String output = execAndGetOutput(commandLine, null); diff --git a/plugins/cvs/cvs-core/src/com/intellij/cvsSupport2/connections/ConnectionOnProcess.java b/plugins/cvs/cvs-core/src/com/intellij/cvsSupport2/connections/ConnectionOnProcess.java index bcf34e8f48a0..b866d1cd9136 100644 --- a/plugins/cvs/cvs-core/src/com/intellij/cvsSupport2/connections/ConnectionOnProcess.java +++ b/plugins/cvs/cvs-core/src/com/intellij/cvsSupport2/connections/ConnectionOnProcess.java @@ -142,7 +142,8 @@ public abstract class ConnectionOnProcess implements IConnection { protected synchronized void execute(GeneralCommandLine commandLine) throws AuthenticationException { try { - commandLine.setEnvironment(EnvironmentUtil.getEnvironmentProperties()); + commandLine.getEnvironment().clear(); + commandLine.getEnvironment().putAll(EnvironmentUtil.getEnvironmentProperties()); myProcess = commandLine.createProcess(); myErrThread = new ReadProcessThread( diff --git a/plugins/git4idea/src/git4idea/commands/GitHandler.java b/plugins/git4idea/src/git4idea/commands/GitHandler.java index 0669a9ee164e..0816bb93db0e 100644 --- a/plugins/git4idea/src/git4idea/commands/GitHandler.java +++ b/plugins/git4idea/src/git4idea/commands/GitHandler.java @@ -451,7 +451,8 @@ public abstract class GitHandler { LOG.debug(String.format("handler=%s, port=%s", myHandlerNo, port)); addAuthListener(httpAuthenticator); } - myCommandLine.setEnvironment(myEnv); + myCommandLine.getEnvironment().clear(); + myCommandLine.getEnvironment().putAll(myEnv); // start process myProcess = startProcess(); startHandlingStreams(); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcFramework.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcFramework.java index c9c968814d85..05948bb888ec 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcFramework.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcFramework.java @@ -389,7 +389,7 @@ public abstract class MvcFramework { final VirtualFile griffonHome = getSdkRoot(module); if (griffonHome != null) { - commandLine.setEnvironment(getSdkHomePropertyName(), FileUtil.toSystemDependentName(griffonHome.getPath())); + commandLine.getEnvironment().put(getSdkHomePropertyName(), FileUtil.toSystemDependentName(griffonHome.getPath())); } final VirtualFile root = findAppRoot(module); From b7eff52b83cd031e4de7a6b02f05ff5e83fecb11 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 19:42:02 +0200 Subject: [PATCH 54/56] safe delete: do not insert additional extends item if already present (IDEA-106144) --- .../usageInfo/SafeDeleteExtendsClassUsageInfo.java | 7 ++++++- .../refactoring/safeDelete/UsageInExtendsList.java | 3 +++ .../refactoring/safeDelete/UsageInExtendsList_after.java | 3 +++ .../testSrc/com/intellij/refactoring/SafeDeleteTest.java | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList.java create mode 100644 java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java index d11352fed71d..6d7f6c586875 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java @@ -18,6 +18,7 @@ package com.intellij.refactoring.safeDelete.usageInfo; import com.intellij.openapi.diagnostic.Logger; import com.intellij.psi.*; import com.intellij.psi.util.TypeConversionUtil; +import com.intellij.util.ArrayUtilRt; import com.intellij.util.IncorrectOperationException; /** @@ -50,15 +51,19 @@ public class SafeDeleteExtendsClassUsageInfo extends SafeDeleteReferenceUsageInf if (extendsList != null) { final PsiClassType[] referenceTypes = extendsList.getReferencedTypes(); final PsiReferenceList listToAddExtends = refClass.isInterface() == myExtendingClass.isInterface() ? myExtendingClass.getExtendsList() : extendingImplementsList; + final PsiClassType[] existingRefTypes = listToAddExtends.getReferencedTypes(); for (PsiClassType referenceType : referenceTypes) { + if (ArrayUtilRt.find(existingRefTypes, referenceType) > -1) continue; listToAddExtends.add(elementFactory.createReferenceElementByType((PsiClassType)mySubstitutor.substitute(referenceType))); } } final PsiReferenceList implementsList = refClass.getImplementsList(); if (implementsList != null) { - final PsiClassType[] referenceTypes = implementsList.getReferencedTypes(); + final PsiClassType[] existingRefTypes = extendingImplementsList.getReferencedTypes(); + PsiClassType[] referenceTypes = implementsList.getReferencedTypes(); for (PsiClassType referenceType : referenceTypes) { + if (ArrayUtilRt.find(existingRefTypes, referenceType) > -1) continue; extendingImplementsList.add(elementFactory.createReferenceElementByType((PsiClassType)mySubstitutor.substitute(referenceType))); } } diff --git a/java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList.java b/java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList.java new file mode 100644 index 000000000000..04c1fba3bdf7 --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList.java @@ -0,0 +1,3 @@ +nterface Foo {} +interface Bar extends Foo {} +class FooBarImpl implements Foo, Bar {} diff --git a/java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList_after.java b/java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList_after.java new file mode 100644 index 000000000000..c1c4f899abe5 --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/UsageInExtendsList_after.java @@ -0,0 +1,3 @@ +nterface Foo {} + +class FooBarImpl implements Foo {} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java b/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java index 9c1cf4915312..27d78094281e 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java @@ -65,6 +65,10 @@ public class SafeDeleteTest extends MultiFileTestCase { doTest("IFoo"); } + public void testUsageInExtendsList() throws Exception { + doSingleFileTest(); + } + public void testParameterInHierarchy() throws Exception { myDoCompare = false; doTest("C2"); From 4409b11a086a10020005f5235e09adc1de3d2d87 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Apr 2013 20:50:05 +0200 Subject: [PATCH 55/56] javafx packaging: deep copy --- .../packaging/AbstractJavaFxPackager.java | 18 ++++++++----- .../javaFX/packaging/JavaFxAntGenerator.java | 8 +++--- .../javaFX/packaging/JavaFxAntTaskTest.java | 26 +++++++++---------- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java index 7d5f7c25007b..e4e88132fb8f 100644 --- a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java +++ b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java @@ -20,6 +20,7 @@ import com.intellij.openapi.application.PathManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.ArrayUtilRt; import com.intellij.util.Base64Converter; import com.intellij.util.PathUtilRt; import com.intellij.util.io.ZipUtil; @@ -38,6 +39,7 @@ import java.util.List; */ public abstract class AbstractJavaFxPackager { private static final Logger LOG = Logger.getInstance("#" + AbstractJavaFxPackager.class.getName()); + private static final String JB_JFX_JKS = "jb-jfx.jks"; //artifact description protected String getArtifactRootName() { @@ -84,7 +86,7 @@ public abstract class AbstractJavaFxPackager { tempUnzippedArtifactOutput = FileUtil.createTempDirectory("artifact", "unzipped"); final File artifactOutputFile = new File(zipPath); ZipUtil.extract(artifactOutputFile, tempUnzippedArtifactOutput, null); - copyLibraries(artifactOutputFile.getName(), tempUnzippedArtifactOutput); + copyLibraries(FileUtil.getNameWithoutExtension(artifactOutputFile), tempUnzippedArtifactOutput); } catch (IOException e) { registerJavaFxPackagerError(e); @@ -128,11 +130,15 @@ public abstract class AbstractJavaFxPackager { private void copyLibraries(String zipPath, File tempUnzippedArtifactOutput) throws IOException { final File[] outFiles = new File(getArtifactOutputPath()).listFiles(); if (outFiles != null) { + final String[] generatedItems = new String[] {JB_JFX_JKS, zipPath + ".jar", zipPath + ".jnlp", zipPath + ".html"}; for (File file : outFiles) { - if (file.isFile()) { - final String fileName = file.getName(); - if (fileName.endsWith(".jar") && !zipPath.equals(fileName)) { - FileUtil.copy(file, new File(tempUnzippedArtifactOutput, fileName)); + final String fileName = file.getName(); + if (ArrayUtilRt.find(generatedItems, fileName) < 0) { + final File destination = new File(tempUnzippedArtifactOutput, fileName); + if (file.isFile()) { + FileUtil.copy(file, destination); + } else { + FileUtil.copyDir(file, destination, true); } } } @@ -320,7 +326,7 @@ public abstract class AbstractJavaFxPackager { } private String getKeystore(boolean selfSigning) { - return selfSigning ? getArtifactOutputPath() + File.separator + "jb-jfx.jks" : getKeystore(); + return selfSigning ? getArtifactOutputPath() + File.separator + JB_JFX_JKS : getKeystore(); } private String getStorepass(boolean selfSigning) { diff --git a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java index 5c4e56572558..01ff08300845 100644 --- a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java +++ b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java @@ -53,13 +53,13 @@ public class JavaFxAntGenerator { topLevelTagsCollector.add(new SimpleTag("fx:fileset", new Pair("id", allButPreloader), new Pair("dir", tempDirPath), new Pair("excludes", preloaderJar), - new Pair("includes", "*.jar"))); + new Pair("includes", "**/*.jar"))); } final String allButSelf = "all_but_" + artifactName; final SimpleTag allButSelfAndPreloader = new SimpleTag("fx:fileset", new Pair("id", allButSelf), new Pair("dir", tempDirPath), - new Pair("includes", "*.jar")); + new Pair("includes", "**/*.jar")); allButSelfAndPreloader.add(new SimpleTag("exclude", new Pair("name", artifactFileName))); if (preloaderJar != null) { allButSelfAndPreloader.add(new SimpleTag("exclude", new Pair("name", preloaderJar))); @@ -69,7 +69,7 @@ public class JavaFxAntGenerator { final String all = "all_" + artifactName; final SimpleTag allIncluded = new SimpleTag("fx:fileset", new Pair("id", all), new Pair("dir", tempDirPath), - new Pair("includes", "*.jar")); + new Pair("includes", "**/*.jar")); topLevelTagsCollector.add(allIncluded); //register application @@ -100,7 +100,7 @@ public class JavaFxAntGenerator { final List fileset2Jar = new ArrayList(); fileset2Jar.add(new Pair("dir", tempDirPath)); - fileset2Jar.add(new Pair("excludes", "*.jar")); + fileset2Jar.add(new Pair("excludes", "**/*.jar")); createJarTag.add(new SimpleTag("fileset", fileset2Jar.toArray(new Pair[fileset2Jar.size()]))); createJarTag.add(createResourcesTag(preloaderFiles, false, allButPreloader, allButSelf, all)); diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java index 191304c602c6..0c58204fbc17 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java @@ -35,18 +35,18 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ private static final String SIGNED = "signed"; public void testJarDeployNoInfo() throws Exception { - doTest("\n" + + doTest("\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -64,18 +64,18 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ } public void testJarDeployTitle() throws Exception { - doTest("\n" + + doTest("\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -95,18 +95,18 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ } public void testJarDeploySigned() throws Exception { - doTest("\n" + + doTest("\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -131,22 +131,22 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ options.put(PRELOADER_JAR, "preloader.jar"); doTest("\n" + "\n" + - "\n" + + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + From f39dcca32eb548ccd1584336bc3e85c1b1b13f0e Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 24 Apr 2013 22:19:08 +0200 Subject: [PATCH 56/56] Stupid NPE fixed --- .../src/com/intellij/openapi/projectRoots/JdkUtil.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java index 6eaa636943be..15279968ff0d 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java @@ -164,7 +164,9 @@ public class JdkUtil { commandLine.setExePath(exePath); final ParametersList vmParametersList = javaParameters.getVMParametersList(); - commandLine.getEnvironment().putAll(javaParameters.getEnv()); + if (javaParameters.getEnv() != null) { + commandLine.getEnvironment().putAll(javaParameters.getEnv()); + } commandLine.setPassParentEnvironment(javaParameters.isPassParentEnvs()); final Class commandLineWrapper;